前面一篇将过DH密钥交换算法,ECDH(Elliptic Curve Diffie-Hellman)顾名思义就是ECC+DH,安全性保证由椭圆曲线离散对数难题来保证。其思想与DH一致。
椭圆曲线密码学
椭圆曲线密码学是属于非对称密码学的。其公私钥计算公式如下:
- 私钥是一个随机数 d d d,取值范围在 1 , . . . , n − 1 {1,...,n-1} 1,...,n−1,其中 n n n是子群的阶
- 公钥是点 H = d G H=dG H=dG, G G G是子群的基点
如果我们知道私钥 d d d和椭圆曲线参数 G G G,求公钥 H H H是很容易的,但是只知道公钥 H H H和椭圆曲线参数 G G G,求解私钥 d d d是非常困难的,需要解决离散对数难题,椭圆曲线的安全性保证有赖于此。
ECDH密钥交换
ECDH工作过程如下(以Alice和Bob为例):
- 首先Alice和Bob需要使用同一条椭圆曲线,参数 ( p , a , b