Encryption 加密密钥交换理解

Encryption 加密密钥交换理解,encryption,public-key-encryption,Encryption,Public Key Encryption,我试图理解加密密钥交换机制。我对这个例子有点困惑: 没有找到很多有用的参考资料。有人能解释一下EKE的机制和它是如何工作的吗?双方在交换什么?为什么攻击中间人是安全的?这将非常有帮助谢谢。在尝试寻找EKE或DH-EKE的实现时,我预计参考文献数量相当有限。维基百科相互之间的交叉链接以及我遇到的解释并不一定那么容易理解。EKE的原始专利于2011年到期,导致我对EAP-EKE的理解被公布 我在Bruce Schneier的《应用密码学》(第二版)中找到了最好的解释,包括对算法的改进。既然你已经有


我试图理解
加密密钥交换
机制。我对这个例子有点困惑:


没有找到很多有用的参考资料。有人能解释一下EKE的机制和它是如何工作的吗?双方在交换什么?为什么攻击中间人是安全的?这将非常有帮助
谢谢。

在尝试寻找EKE或DH-EKE的实现时,我预计参考文献数量相当有限。维基百科相互之间的交叉链接以及我遇到的解释并不一定那么容易理解。EKE的原始专利于2011年到期,导致我对EAP-EKE的理解被公布

我在Bruce Schneier的《应用密码学》(第二版)中找到了最好的解释,包括对算法的改进。既然你已经有了这个过程的图像,我将尝试用外行的方式回答那里发生了什么。我只是在学习自己,所以我可能会误解你的图像,但它似乎是DH-EKE实现。关于这个答案,我将坚持EKE的观点,因为我想我已经基本理解了;-)

根据是爱丽丝和鲍勃有一个共同的秘密。我可能忽略了它的“弱”程度(在您的图像中,它被标记为弱),但让我们假设它是一个有效的对称加密密钥

双方都有相同的对称密钥,这是一个共享秘密

  • Alice为会话Pa(private)和p'a(public)生成唯一的公钥/私钥对Alice使用S加密公钥并将其发送给Bob

  • Bob(S)解密Alice消息并恢复Alice的公钥p'a。Bob生成随机会话密钥K。Bob使用Alice的公钥P'a加密K并将其发送给Alice

  • Alice解密消息并获得K。Alice生成随机字符串Ra,用K加密并发送给bob

  • Bob解密消息以获得Ra,生成另一个随机Rb,用K对两者进行加密,并将加密消息发送给Alice

  • Alice解密消息,验证她自己的Ra在消息中是否有效。她只用K加密Rb并发送给Bob

  • Bob解密Rb并验证自己的Rb是否有效

  • 为了让伊芙摆脱中间那个人,她只看到密钥被其他密钥加密。如果不破解公钥算法,就不可能从Alice和Bob之间的监控流量中猜出密码。然而,弱共享秘密确实允许Eve在图片中假装成Alice或Bob,因此(我的术语可能有缺陷)可以对侦听服务器发起主动攻击

    在我描述的版本中有一些假设,其他人对此做了最好的解释(已发布),Alice被信任生成良好的密钥对,Bob被信任生成良好的会话密钥。还有一些算法更适合(或者有些算法更差)。“应用密码学”中列出了一些内容,但由于我的第二版似乎有点落后于AES之类的内容,我相信可以挖掘出更多优秀密码的最新信息,以便为算法选择

    值得一提的是,我似乎需要自己用C#和Java(Azure.NET后端,Android客户端)实现EKE。我试着用一种对别人有用的方式来包装它

    更新: 关于C#的非常简单的实现可在以下网站上获得:


    它的短切数位,因为它是现在(只是SHA256的纯文本使用初始密钥),所以要小心。我目前的使用将在单独的通道中机器生成安全密钥并将其分发给双方,因此我不需要任何更复杂的实现来实现此测试床。

    在某些情况下(人工生成的密码)弱机密性是这一过程中的一项要求——算法的优雅性在这一领域尤为突出。这可能会影响我对开始使用共享密钥作为密钥的过程的描述。