Title: 算法:DH算法原理
Author: "Peng Li"<aqnote@aqnote.com>
Date: 2015.12.11
Keywords: Math, DH
Copyright:
算法:DH算法原理
离散对数的概念
原根:
如果a是素数p的一个原根,那么数值:
a(modp),a2(modp),…,a(p−1)(modp) a \pmod{p},\quad a^2 \pmod{p},\quad …,\quad a^{(p-1)} \pmod{p} a(modp),a2(modp),…,a(p−1)(modp)
是各不相同的整数,且以某种排列方式组成了从1到p-1的所有整数。
离散对数:
如果对于一个整数Y,素数p的一个原根a,可以找到一个唯一的指数Y,使得:
Y=aX(modp)(0≤X≤p−1) Y = a^X \pmod{p} (0 \leq X \leq p-1) Y=aX(modp)(0≤X≤p−1)
那么指数i称为b的以a为基数的模p的离散对数。
算法描述
Diffie-Hellman算法的有效性依赖于计算离散对数的难度,
其含义是:
当已知大素数p和它的一个原根a后,对给定的b,要计算i,被认为是很困难的;
而给定i,计算b 却相对容易。
Diffie-Hellman算法:
假如用户A和用户B希望交换一个密钥
取素数p和整数a,a是p的一个原根,公开a和p
- A选择随机数 XA≤pX_A \le pXA≤p,并计算 YA=aXA(modp)Y_A = a ^ {X_A} \pmod{p}YA=aXA(modp)
- B选择随机数 XB≤pX_B \le pXB≤p,并计算 YB=aXB(modp)Y_B = a ^ {X_B} \pmod{p}YB=aXB

DH算法是一种基于离散对数难题的密钥交换协议,确保双方在不安全的信道上协商出共享密钥。算法描述中,用户A和B各自选择随机数并计算公钥,然后利用对方的公钥和自己的私钥计算出相同的密钥,而第三方无法通过公开信息推断密钥。举例展示了如何使用DH算法进行实际的密钥交换过程。
最低0.47元/天 解锁文章
6533





