如何通过安全通道进行通信的两个设备达成共享密钥?

时间:2012-05-29 18:26:19

标签: android algorithm cryptography

我有两个运行应用的Android设备。该应用使用Bump API与目标交换信息,以便提供共享密码供以后使用。

具体而言,共享密钥稍后将被发送到中央服务器,然后将设备注册为“情侣”。

我想出了两种类型的解决方案,但也必须有其他解决方案。

  1. 决定两个设备中的哪一个可以产生秘密(例如,通过翻转硬币)
  2. 让两个设备输入一部分秘密并将它们组合起来(例如,将两个贡献相乘或异或)
  3. 这种情况的最佳解决方案是什么?

    - EDIT-- 我没有尝试安全通信(我认为Bump通道足够安全)。 相反,我正在努力为这个特定问题找到最优雅的解决方案。

2 个答案:

答案 0 :(得分:5)

马上就会想到

Diffie-Hellman key exchange

答案 1 :(得分:-1)

每个设备生成长度等于共享密钥的随机数据,并将其发送到其他设备。共享秘密是这两部分的异或。

即使一个设备坏了并且只生成零个字符串,共享密钥仍然会很好。