1、概述算法
DH秘钥交换算法,能够让双方在彻底缺少对方信息的前提条件下,经过不安全的信道达成一个共享密钥。安全
此秘钥用于对后续信息交换进行对称加密加密
2、离散对数问题(Discrete Logarithm Problem,DLP)spa
若是p是一个素数,g和x是整数,计算 y = g^x mod p 很是快。可是相反,先知道p,g,y要求某个x(离散对数)it
知足等式y = g^x mod p 是十分困难的。通信
15 = 3 ^ x mod 17 ==> x = 6安全性
g和p的选择对此类系统的安全性影响很大,为了保证没法求解离散对数问题,p应该是一个很大的素数。例如ab
3、系统
Alice和Bob想共有一个秘钥,用于对称加密。可是他们之间的通讯渠道是不安全的。可能被第三方Eve看到。
1.Alice和Bob先对p和g达成一致,并且是公开的,Eve也是知道的他们的值
2.Alice取一个私密的整数a,不让任何其余人知道,发送Bob计算结果 A = g^a mod p.Eve也能看到A的值
3.相似,Bob取一个私密的整数b,发给Alice结果 B = g^b mod p. Eve也能看到B的值
4.Alice计算 S=B^a mod p = (g^b )^a mod p = g^ab mod p
5.Bob计算 S = A^b mod p = (g^a )^b mod p = g^ab mod p