DH算法-迪菲-赫尔曼密钥交换协议
DH算法即Diffie–Hellman key exchange-迪菲-赫尔曼密钥交换协议,是一种密钥交换的方法。主要用于TLS握手中安全的交换对称加密密钥。
根据不同的算法,DH协议可以分为
- 基于离散对数算法
- Static DH:静态DH协议(服务端私钥固定)
- DHE:临时私钥DH协议(服务端私钥随机)
- 基于ECC椭圆曲线算法
- ECDH:椭圆曲线DH协议(服务端私钥固定)
- ECDHE:临时私钥椭圆曲线DH协议(服务端私钥随机)
离散对数
对数logN是指数的逆运算,指数+取模运算 可以使得逆运算(对数运算)的结果是不连续的(逆向推导困难)。
如 A = gᵃ % p
,指数a称为,A以g为底以p为模的离散对数。知道A、g、p很难推导出a。
ECC椭圆曲线算法
椭圆曲线中定义了一种特殊的标量乘法,即 曲线上的一个点G * 整数a = 曲线上的另一个点A,该乘法具有逆向推动困难的特点。
如 A(x,y) = G(x,y) * a
,知道结果A,和G很难推导出a。
DH协议流程
其中数字a和随机数b一般分别为服务端私钥、客户端私钥。而A和B则一般是计算出的服务端公钥、客户端公钥。
DH及DHE
ECDH及ECDHE