DH密钥交换算法过程

Diffie-Hellman(简称 DH) 密钥交换是最早的密钥交换算法之一,它使得通信的双方能在非安全的信道中安全地交换密钥,用于加密后续的通信消息。

Whitfield Diffie 和 Martin Hellman 于 1976 提出该算法,之后被应用于安全领域,比如 Https 协议的 TLS(Transport Layer Security) 和 IPsec 协议的 IKE(Internet Key Exchange) 均以 DH 算法作为密钥交换算法。
Dillie-Hellman 密钥交换协议基于求解离散对数问题的困难性,即对于下述等式:
G^d =MmodP 
其中, d 称为模P 的以G 为底数的M 的对数,在已知G和P 的前提下,由d 求M 很容易,只相当于进行一次指数计算。而再由M 反过来求d, 则需要指数级次计算。随着P 取得足够大,就能实现足够的安全强度。

DH密钥交换算法:最终目的是生成一个共享的密钥。

AB两人进行DH密钥交换过程
1、首先选取两个参数:质数P和G,P和G都是公开的;
        计算公式一:M=G^dmodP;
        这里取P=23,G=5
2、A、B两方都生成一个随机数d,dA=6,dB=15
3、AB两方都使用计算公式生成一个余数;
        A方:MA=5^6mod23=8
        B方:MB=5^15mod23=19
4、AB两方都将生成的余数M发送给对方;
5、AB双方接收到对方的余数之后,带入公式二再次进行计算
        公式二:M^dmodP【这里的随机数d是自己生成的那个随机数】
        A方:A接收到B的余数MB=19,带入公式二:19^6mod23=2
        B方:B接收到A的余数MA=8,带入公式二:8^15mod23=2

这里计算出来的2,就是AB生成的共享密钥

这里只是一个简单的例子,实际中质数P至少要有2048比特的长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值