Diffie-Hellman 密钥交换协议简单解释

一、原理简介

Diffie-Hellman 是一种密钥交换协议,它本身不进行加密或认证,只用于生成一个双方共享的秘密值,然后该值可用于对称加密算法中。

核心思想是利用 离散对数问题难解性,即:给定 g 和     g^{a} \ mod \ p,难以求出 a。

二、算法步骤

假设 Alice 和 Bob 要协商一个密钥:

1. 公共参数(可公开)

  • 一个大素数 p

  • 一个生成元 g,通常是 p 的原根

这两个值是公开的,任何人(双方)都可以知道。

2. 各自生成私钥和公钥

  • Alice 选择一个私钥 a,计算 A = g^{a} \ mod \ p

  • Bob 选择一个私钥 b,计算 B = g^{b} \ mod \ p

然后 Alice 和 Bob 交换各自的公钥 A、B

3. 计算共享密钥

  • Alice 计算 s = B^{a} \ mod \ p

  • Bob 计算s = A^{b} \ mod \ p

由于数学性质,两者结果相同:

s = (g^{a})^{b} \ mod \ p = (g^{b})^{a} \ mod \ p = g^{ab} \ mod \ p

这个 s 就是共享的密钥!

 三、一个简单示例

为了便于理解,我们使用小数字(实际应用中数字必须很大):

公共参数:

  • p = 23

  • g = 5

私钥选择:

  • Alice 选择 a=6

  • Bob 选择 b=15

公钥计算:

  • Alice 计算 A = 5^{6} \ mod \ 23 = 15625\mod \ 23 =8

  • Bob 计算 B = 5^{15} \ mod \ 23 = 30517578125\mod \ 23 =2

交换后计算共享密钥:

  • Alice 计算 s = B^{a} \ mod \ p = 18

  • Bob 计算s = A^{b} \ mod \ p = 18

所以双方共享密钥 s=18

四、安全性说明

  • 安全依赖于 离散对数问题的难度

  • 攻击者即使截获 g,p,A,B,也无法有效计算出 a 或 b,更无法求出共享密钥 s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值