一、DH算法
DH 算法其实也叫作 Diffie - Hellman 密钥交换协议,是一个不安全的秘钥共享网络协议,无法避免中间人攻击。
二、DH算法的原理
假设 Ali 和 Bob 需要互相通信并共享秘钥
- Ali 先给 Bob 一个明文共享参数 、 ,此信息可以被任何人识别。
- Ali 自己生成一个随机数 (Ali 的私钥) ,并不将 告诉包括 Bob 在内的任何人。
- Bob自己生成一个随机数(Bob 的私钥) ,并不将 告诉包括 Ali 在内的任何人。
- Ali 通过自己的私钥 对 、 进行加密后( )的值传送给 Bob 。
- Bob通过自己的私钥 对 Ali 通过第 4 步发送给 Bob 的信息()进行加密得到 。
- 同理,Bob 通过 自己的私钥 对 、 进行加密后( )的值传送给 Ali 。
- Ali 通过自己的私钥 对 Bob 通过第 6 步发送给 Bob 的信息()进行加密得到 。
- 因此Ali和Bob得到了他们协议后的公钥 ,及他们各自的私钥 和私钥 。
在这一过程中 必须是一个非常大的质数,才能保证在第4步、第6步中相互传递加密信息之后,私钥 和私钥 不会被第三方攻击者猜出来。
DH算法通信过程图示
前面也说过,DH 算法无法避免中间人攻击,个人觉得原因是 A 和 B 通信时,对方不一定是 B 和 A,因为没有对双方进行认证。
作者:云子可信
链接:https://www.zhihu.com/question/274142856/answer/676178421
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。