4

我正在制定一种加密策略,该策略将加密通过 BTLE 在 iOS 和 Android 设备之间共享的数据。我们想使用基本的椭圆曲线密码学。

我们目前正在实施我们的 iOS 应用程序,我们的 Android 应用程序将在下个月左右开始开发。所以,我的问题如下:

我知道在 iOS 上我可以使用证书、密钥和信任服务来生成 kSecAttrKeyTypeECDSA 类型的密钥对。这很酷。

我看到适用于 Android 的加密库BouncyCastle也支持 ECDSA。

所以,我的问题是.. 我可以指望在任一平台上生成的密钥对在 iOS 和 Android 上的加密和解密方面运行相同吗?

IE

iOS 用户 A

  • 使用 iOS ECDSA 生成他​​们的公钥/私钥对
  • 持有对用户 B 的公钥的引用

安卓用户 B

  • 使用 BouncyCastle ECDSA 生成他​​们的公钥/私钥对
  • 持有对用户 A 的公钥的引用

用户 B 可以使用用户 A 的公钥对消息进行编码.. 将编码数据发送给用户 A 并期望用户 A 能够解码吗?

4

1 回答 1

4

不,因为 ECDSA 仅用于生成签名 - 例如进行身份验证。然而,ECIES 应该可以使用 Android 上的 Bouncy Castle 和 iOS 上的 CryptoPP。也可以将 ECDH 与单独的身份验证或静态 ECDH 一起使用,但这可能需要一些学习曲线。

请注意,ECIES 引入了额外的开销,所以不要忘记将其纳入您的计算中......

于 2014-12-13T00:25:08.830 回答