DH加密算法全称为Diffie-Hellman密钥交换协议/算法,是由Whitfield Diffie与Martin Hellman在1976年提出的,属于非对称加密算法。
DH算法的用途
DH加密算法主要用于密钥的交换,能够实现了在非安全网络下通信双方密钥的安全建立,从而使通信双方能够使用这个密钥进行消息的加密解密,从而实现通信的安全。
DH算法的原理
DH算法的基本原理就是通过共享的参数协商一个对称秘钥,然后用这个对称秘钥加密后面的通信。这里用到了离散对数函数,这样即使中间人截获了公钥,也无法计算出各自的私钥。
DH算法的流程
假设Ali和Bob需要互相通信并共享秘钥
- Ali先给Bob一个明文共享参数P、G,此信息可以被任何人识别。
- Ali 自己生成一个随机数A(Ali的私钥),并不将A告诉包括Bob在内的任何人。
- Bob自己生成一个随机数B(Bob的私钥),并不将B告诉包括Ali在内的任何人。
- Ali通过自己的私钥A对G、P进行加密后(G^AmodP)的值传送给Bob。
- Bob通过自己的私钥B对Ali通过第4步发送给Bob的信息(G^AmodP)进行加密得到(G^AmodP)^BmodP=G^AxBmodP=S。
- 同理,Bob通过自己的私钥B对G、P进行加密后(G^BmodP)的值传送给Ali。
- Ali通过自己的私钥A对Bob通过第6步发送给Bob的信息(G^BmodP)进行加密得到(G^BmodP)^AmodP=G^B×AmodP=G^A×BmodP=S。
- 因此Ali和Bob得到了他们协议后的公钥S,及他们各自的私钥A和私钥B。
在这一过程中P必须是一个非常大的质数,才能保证在第4步、第6步中相互传递加密信息之后,私钥 A 和私钥B不会被第三方攻击者猜出来。
DH算法的缺点
DH算法虽然可以保护通信信息安全,但却无法确认通信双方的真实身份,很难防范中间人的攻击。所以在日常使用中,DH算法经常辅以其他的数字签名算法(如RSA等)一同使用,用于验证通信双方的真实身份。
免责声明:素材源于网络,如有侵权,请联系删稿。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。