Diffie-Hellman密钥交换协议

简介: Diffie-Hellman密钥交换协议

Diffie-Hellman也就是DH算法,本章我们将简单介绍一下该算法。

什么是DH算法?


DH算法是Diffie和Hellman两位作者于1976年提出的一种密钥交换协议。它的主要用途是在非安全网络下通信双方密钥的安全建立,从而使通信双方能够使用这个密钥进行消息的加密解密,从而实现通信的安全。DH算法实现的是密钥交换或者密钥协商,通信双方各自生成自己的私钥和公钥,私钥仅对自己可见,然后交换公钥,并根据自己的私钥和对方的公钥,生成最终的密钥secretKey,DH算法通过数学定律保证了双方各自计算出的secretKey是相同的


在基于对称加密进行安全通信的过程中,通信双方需要持有一个共享的密钥。只有这样,由任何一方加密的信息才能由另一方使用相同的密钥解密。

但是在能够安全的通信之前,通信双方应该如何约定一个共享的密钥呢?这就是安全中的经典问题:密钥配送问题。


常用的加密算法

对称加密算法

   流加密(序列密码算法)

   分组加密

   常用的对称加密算法:DES/3DES、AES


非对称加密算法

   RSA    支持变长密钥的公共密钥算法

DH算法的计算过程


Alice和Bob都有一个只有自己知道的私钥,在特定规则(g, a, p)下生成自己的公钥A;

Alice将自己的公钥A,连同g, p共同发给Bob

Bob在收到Alice发送来的公钥A, g, p后,先使用相同的规则((g, a, p))生成自己的公钥B;

再使用Alice的公钥A计算生成共享密钥K

Bob将自己的公钥B发送给Alice即可。(Alice已经有g, p, 因此无需在发送)

Alice在接收到Bob的公钥B后,使用相同的规则计算成功共享密钥K

至此,Alice 和 Bob便同时拥有了共享密钥K。此时由于各自的私钥a,b未在互联网上传播,因此即使存在窥探者Eve,他仅通过公开的A\B\g\p在短时间内无法破解出a,b,K。

因此DH算法便可以在不安全的网络上协商出密钥,基于此构建安全的加密通道。


看到这里可能还是有点懵,所以这里我们就不聊数学原理,因为实际情况太过于复杂,我们就以一种简单的计算案例来进行理解整个DH算法的过程。

a96a802ec97335b2ace66bd59c477472_59b01feb0b064daeb1826ea514119856.png


我们一步一步的来理解。

这里的P是一个质数,正常环境下一般比较大,可以将其进行公开。

g是一个DH算法中所固定的一个数(是一个双方已知的值)。

x和y为A、B双方自己所知道的一个随机值,正常环境中一般比较大。

X和Y时经过A和B双方根据自身已有的值来运算出来的值,将这两个值计算出后,再互相发送给对方进行二次计算。

最后双方经过公式计算出来的Z是相同的。

也就是说,Z就是双方经过DH算法协商出来的密钥。


该算法的好处在于,黑客根据已公开的数据(P,g,X,Y),难以推导出x、y,因为是取模运算,是不可逆的。而且正常环境下P和x,y的值都非常大,这也使破解难度加大。协商出来的Z,在A、B通信时,传输的相当于就是一个对称密钥,相当于是A、B之间进行一个私密的传输,不会造成密钥泄露,而导致中间人劫持(因为A、B双方都不会把协商的密钥Z发出,只会用Z对数据进行加密和解密)


注意:真实情况下这样的密钥协商可能会进行很多次,以达到更高的安全性和可靠性。

相关文章
|
3月前
|
算法 数据安全/隐私保护
对称密钥加密算法和公开密钥加密算法有什么区别
【4月更文挑战第19天】对称密钥和公开密钥加密算法各有特点:对称密钥加密速度快,适用于大量数据,但密钥管理困难;公开密钥加密安全性高,密钥管理方便,但速度慢,常用于数字签名和身份验证。两者在不同场景下有不同优势。
120 6
|
2月前
|
存储 安全 算法
RSA非对称加密算法中的密钥对生成与传输
RSA非对称加密算法的密钥对生成与传输是信息安全领域的核心问题之一。密钥生成过程需要保证随机性和安全性,而密钥的传输则需要选择适当的方式来确保其保密性和完整性。通过合理的密钥管理和保护措施,可以有效地利用RSA算法保护通信安全,防止信息泄露和篡改。在实际应用中,用户和系统管理员需要结合具体情况选择最佳的密钥生成和传输策略,以达到最佳的安全性和效率。
|
3月前
|
算法 安全 数据安全/隐私保护
公钥密码学:解密加密的魔法世界
【4月更文挑战第20天】
50 2
公钥密码学:解密加密的魔法世界
|
3月前
|
算法 安全 关系型数据库
非对称加密算法Diffie-Hellman算法
Diffie-Hellman算法是一种非对称加密方法,用于在不安全的通道上建立共享密钥。它基于两个用户交换公开的p和g(大素数和其原根)以及各自的随机数计算得出相同的秘密密钥s/s'。算法的安全性依赖于离散对数问题的困难性,防止未授权者计算出密钥。该算法与对称加密(如AES)结合,先生成共享密钥,再用于加密实际通信,确保消息安全。
71 2
|
3月前
|
安全 算法 网络安全
|
10月前
非对称式多谐振荡电路的介绍
非对称式多谐振荡电路:实现多频率稳定振荡的关键 引言: 非对称式多谐振荡电路是一种能够产生多个频率的振荡信号的电路结构。它通过非对称的反馈回路和多个谐振网络的组合来实现多频率的振荡。本文将介绍非对称式多谐振荡电路的原理、应用、设计与实现方法,以及其优缺点。 一、原理 非对称式多谐振荡电路的原理是通过放大器和反馈回路的相互作用来实现多频率的振荡。具体原理如下: 1. 初始状态:当电路开始工作时,放大器的输出信号为零。 2. 放大器放大信号:输入信号经过放大器放大后,形成一个较大的输出信号。 3. 反馈信号:放大器的输出信号被送回到反馈回路中,与输入信号相叠加形成反馈信号。 4. 正反
156 0
|
10月前
|
算法 网络安全 开发工具
TLS/SSL 协议-非对称加密(RSA)原理
TLS/SSL 协议-非对称加密(RSA)原理
202 0
|
12月前
|
自然语言处理 网络协议 安全
为什么用公钥加密却不能用公钥解密?
为什么用公钥加密却不能用公钥解密?
326 0
|
安全 关系型数据库 数据安全/隐私保护
迪菲赫尔曼密钥交换的理解
迪菲赫尔曼密钥交换的理解
迪菲赫尔曼密钥交换的理解
|
算法 数据安全/隐私保护
RSA公钥密码算法和Diffie-Hellman密钥交换
RSA公钥密码算法和Diffie-Hellman密钥交换
327 0
RSA公钥密码算法和Diffie-Hellman密钥交换