gpt4 book ai didi

encryption - 加密 key 交换理解

转载 作者:行者123 更新时间:2023-12-02 16:22:15 26 4
gpt4 key购买 nike


我正在尝试了解加密 key 交换机制。我对这个插图有点困惑:
EKE
并没有找到很多有用的引用资料。谁能解释一下 EKE 的机制及其工作原理吗?双方正在交换什么以及为什么攻击(例如中间人)是安全的?这将会非常有帮助。
谢谢。

最佳答案

在尝试寻找 EKE 或 DH-EKE 的实现时,我预计现有的引用资料数量相当有限。维基百科相互交叉链接,我遇到的解释不一定那么容易理解。 EKE的原始专利于2011年到期,导致我的理解EAP-EKE得以发布。

我在 Bruce Schneier 的《应用密码学》(第二版)中找到了最好的解释,包括对算法的改进。由于您已经了解了该过程,因此我将尝试以通俗易懂的方式回答其中发生的情况。我只是在学习自己,所以我可能会弄错你的图像,但它似乎是 DH-EKE 实现。我会坚持使用 EKE-idea 来回答这个问题,因为我认为我已经基本理解了;-)

基础是爱丽丝和鲍勃共享一个共同的 secret 。我可能会忽略一点它有多“弱”(在你的图像中它被标记为弱),但让我们假设它是一个有效的对称加密 key 。

双方都有相同的对称 key S,这是一个共享的 secret

  1. Alice 生成 session Pa(私有(private))和 P'a(公共(public))唯一的公钥/私钥对,Alice 使用 S 加密公钥并将其发送给 Bob。

  2. Bob(知道 S)解密 Alice 的消息并恢复 Alice 的公钥 P'a。 Bob 生成随机 session key K。Bob 使用 Alice 的公钥 P'a 加密 K 并将其发送给 Alice。

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

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

  5. Alice 解密消息,验证消息中她自己的 Ra 是否有效。她仅用 K 加密 Rb 并将其发送给 Bob。

  6. Bob 解密 Rb 并验证他自己的 Rb 是否有效。

对于 Eve 来说,要实现中间人,她只看到 key 是用其他 key 加密的。如果不破解公钥算法,就不可能从 Alice 和 Bob 之间受监控的流量中猜测密码。然而,弱共享 secret 确实允许 Eve 尝试假装是图片中的 Alice 或 Bob,因此(我的术语可能有缺陷)可以发起针对监听服务器的主动攻击。

我描述的版本中有一些假设,最好由其他人(已发布)解释,Alice 被信任生成良好的 key 对,Bob 被信任生成良好的 session key 。另外,有些算法更适合(或者有些更糟糕)。 “应用密码学”中列出了一些内容,但由于我的第二版似乎有点落后于 AES 之类的内容,我相信会挖掘出更多关于好的密码的最新信息来选择算法。

就其值(value)而言,我似乎需要自己使用 C# 和 Java(Azure .NET 后端、Android 客户端)来实现 EKE。我尝试以对其他人有用的方式打包它。

更新:C# 上非常简单的实现可在以下位置找到: https://github.com/kallex/sharp-eke-example

它像现在一样快捷了一些位(只是明文的 SHA256 来使用初始 key ),所以要小心。我当前的使用方式是通过机器生成安全 key 并将其分发给单独 channel 中的双方,因此我不需要为此测试台进行任何更复杂的实现。

关于encryption - 加密 key 交换理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15779392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com