听说这玩意可以安全交换密钥 —— Diffie-Hellman 算法

简介: Diffie-Hellman 密钥交换算法,是由 Whitfield Diffie 和 Martin Hellman 在1976年共同提出的一个奇妙的密钥交换协议。这个算法的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥,然后可以用这个密钥进行加密和解密。(注意:Diffie-Hellman 算法是一种建立密钥的方法,而不是加密方法,只能用于密钥的交换,而不能进行消息的加密和解密)

Diffie-Hellman


  密钥的配送一直是一个难以解决的问题,我们始终无法保证在不安全的线路中安全传递密钥。直到 Diffie-Hellman 密钥交换算法出现:一种确保共享密钥安全穿越不安全网络的方法

Diffie-Hellman 密钥交换算法,是由 Whitfield Diffie 和 Martin Hellman 在1976年共同提出的一个奇妙的密钥交换协议。这个算法的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥,然后可以用这个密钥进行加密和解密。(注意:Diffie-Hellman 算法是一种建立密钥的方法,而不是加密方法,只能用于密钥的交换,而不能进行消息的加密和解密)


Diffie-Hellman 算法描述


  1. 有两个全局公开的参数,一个素数 p 和一个整数 a,其中 a 是 p 的本原元(a mod p,a2 mod p,a3 mod p…是互不相同的数,而且以某种排列包含从 1 到 p-1 的所有整数)。
  2. 假设有用户 A 和 B 希望安全交换一个密钥。
  3. A 用户生成一个作为私有密钥的随机数 XA(XA < p),这个随机数只能 A 知道,然后计算公开密钥 YA = aXA mod p,并发送给 B 用户。
  4. B 用户生成一个作为私有密钥的随机数 XB(XB < p),这个随机数只能 B 知道,然后计算公开密钥 YB = aXB mod p,并发送给 A 用户。
  5. A 用户使用 XA 和收到的 YB 计算共享密钥 K = YBXA mod p = (aXB mod p)XA mod p = aXB*XA mod p。
  6. B 用户使用 XB 和收到的 YA 计算共享密钥 K = YAXB mod p = (aXA mod p)XB mod p = aXA*XB mod p。
  7. 此时双方计算出相同密钥 K,成功交换共享密钥,使用密钥 K 进行通信。


Diffie-Hellman 安全性


 在 Diffie-Hellman 算法中,公开的变量是 p、a、YA、YB ,共享密钥 K = aXA*XB mod p。其中 p、a 变量已知,问题在于已知 YA、YB求 XA、XB这个问题涉及到离散对数问题,要解决是非常困难的。所以,我们可以相信 Diffie-Hellman 算法是非常安全的。


Diffie-Hellman 缺点


  • 没有提供双方身份的任何信息。
  • 它是计算密集性的,因此容易遭受阻塞性攻击,即对手请求大量的密钥。
  • 受攻击者花费了相对多的计算资源来求解无用的幂系数而不是在做真正的工作。
  • 没办法防止重演攻击
  • 容易遭受中间人的攻击


Oakley 算法是对 Diffie-Hellman 密钥交换算法的优化,它保留了后者的优点,同时克服了其弱点。


相关文章
|
2月前
|
监控 安全 算法
137_安全强化:输入过滤与水印 - 实现输出水印的检测算法与LLM安全防护最佳实践
随着大语言模型(LLM)在各行业的广泛应用,安全问题日益凸显。从提示注入攻击到恶意输出生成,从知识产权保护到内容溯源,LLM安全已成为部署和应用过程中不可忽视的关键环节。在2025年的LLM技术生态中,输入过滤和输出水印已成为两大核心安全技术,它们共同构建了LLM服务的安全防护体系。
|
3月前
|
存储 算法 安全
即时通讯安全篇(三):一文读懂常用加解密算法与网络通讯安全
作为开发者,也会经常遇到用户对数据安全的需求,当我们碰到了这些需求后如何解决,如何何种方式保证数据安全,哪种方式最有效,这些问题经常困惑着我们。52im社区本次着重整理了常见的通讯安全问题和加解密算法知识与即时通讯/IM开发同行们一起分享和学习。
294 9
|
5月前
|
传感器 算法 安全
机器人路径规划和避障算法matlab仿真,分别对比贪婪搜索,最安全距离,RPM以及RRT四种算法
本程序基于MATLAB 2022A实现机器人路径规划与避障仿真,对比贪婪搜索、最安全距离、RPM和RRT四种算法。通过地图模拟环境,输出各算法的路径规划结果,展示其在避障性能与路径优化方面的差异。代码包含核心路径搜索逻辑,并附有测试运行图示,适用于机器人路径规划研究与教学演示。
547 64
|
10月前
|
算法 安全 Java
即时通讯安全篇(一):正确地理解和使用Android端加密算法
本文主要讨论针对Android这样的移动端应用开发时,如何正确的理解目前常用的加密算法,为诸如即时通讯应用的实战开发,如何在合适的场景下选择适合的算法,提供一些参考。
291 0
|
算法 安全 JavaScript
安全哈希算法:SHA算法
安全哈希算法:SHA算法
595 1
安全哈希算法:SHA算法
|
算法 安全 Java
介绍一下比较与交换算法
【10月更文挑战第20天】介绍一下比较与交换算法
130 0
|
安全 算法 Java
java系列之~~网络通信安全 非对称加密算法的介绍说明
这篇文章介绍了非对称加密算法,包括其定义、加密解密过程、数字签名功能,以及与对称加密算法的比较,并解释了非对称加密在网络安全中的应用,特别是在公钥基础设施和信任网络中的重要性。
|
算法 安全 网络安全
Diffie-Hellman (DH) 算法的工作原理
【8月更文挑战第23天】
2240 0
|
算法 安全 网络安全
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法

热门文章

最新文章