目录
1 Diffie Hellman算法
密钥交换DH
- Alice和Bob希望通过在不安全的通道上交换信息来获得共享的密钥k
- 他们同意使用公共参数:生成器G和素数mod p,即对素数字段Fp ={1,2,…, p−1}
- Alice生成私钥a<P,计算她的公钥 A = Ga (mod p)
Bob生成私钥b,计算他的公钥 B = Gb (mod p)。 - Alice和Bob互相交换公钥,然后计算:
Alice: KAs = Ba = Gba mod§
Bob: KBs = Ab = Gab mod§
- 共享密钥为Ks = KAs = kBs
- Alice生成私钥a<P,计算她的公钥 A = Ga (mod p)
- 共享密钥k随后被用于使用对称密钥加密系统的加密/解密。
举例 - 公共参数:生成器G = 2,素数模p = 31
- Alice生成私钥a = 13,计算她的公钥A = 213 (mod 31) = 8
Bob生成私钥b = 17,并计算他的公钥B = 217 (mod 31) = 4。 - 他们互相交换公钥,然后计算:
Alice: KAs = 413 (mod 31) = 16
Bob: KBs = 817 (mod 31) = 16
- 此