听说这玩意可以安全交换密钥 —— 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 密钥交换算法的优化,它保留了后者的优点,同时克服了其弱点。


相关文章
|
5月前
|
运维 算法 安全
异常检测算法及其在安全领域的应用
【6月更文挑战第4天】在数字化时代,数据安全至关重要,异常检测算法扮演着守护者角色。它能自动学习正常行为模式,及时发现网络攻击和欺诈行为。非监督式异常检测算法尤其重要,如基于距离的方法,通过计算数据点间距离识别偏离常规的点。Python的scikit-learn库可实现这一算法。异常检测不仅应用于金融领域的欺诈检测,还广泛用于工业监控、医疗诊断和社交媒体分析,为多领域数据安全提供保障。随着技术进步,异常检测将更智能、高效,成为数据安全的重要防线。
158 2
|
13天前
|
算法 安全 Java
介绍一下比较与交换算法
【10月更文挑战第20天】介绍一下比较与交换算法
10 0
|
3月前
|
算法 安全 JavaScript
安全哈希算法:SHA算法
安全哈希算法:SHA算法
50 1
安全哈希算法:SHA算法
|
3月前
|
安全 算法 Java
java系列之~~网络通信安全 非对称加密算法的介绍说明
这篇文章介绍了非对称加密算法,包括其定义、加密解密过程、数字签名功能,以及与对称加密算法的比较,并解释了非对称加密在网络安全中的应用,特别是在公钥基础设施和信任网络中的重要性。
|
3月前
|
算法 安全 网络安全
Diffie-Hellman (DH) 算法的工作原理
【8月更文挑战第23天】
255 0
|
5月前
|
机器学习/深度学习 存储 算法
Python5种算法回溯+剪枝、字典序、递归交换、计数回溯、迭代法 实现全排列ll【力扣题47】
Python5种算法回溯+剪枝、字典序、递归交换、计数回溯、迭代法 实现全排列ll【力扣题47】
|
4月前
|
算法 安全 网络安全
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
|
5月前
|
搜索推荐 算法 Java
JAVA中的交换类排序算法详解
JAVA中的交换类排序算法详解
44 1
|
5月前
|
存储 机器学习/深度学习 算法
python 3种算法 回溯法、字典序生成、递归交换 实现全排列【力扣46题】
python 3种算法 回溯法、字典序生成、递归交换 实现全排列【力扣46题】
|
6月前
|
算法 安全 网络协议
https原理--RSA密钥协商算法
https原理--RSA密钥协商算法
79 0