版权声明:本文为博主原创文章,转载注明出处。 https://blog.csdn.net/s_lisheng/article/details/90712333
前面一篇将过DH密钥交换算法,ECDH(Elliptic Curve Diffie-Hellman)顾名思义就是ECC+DH,安全性保证由椭圆曲线离散对数难题来保证。其思想与DH一致。
椭圆曲线密码学
椭圆曲线密码学是属于非对称密码学的。其公私钥计算公式如下:
- 私钥是一个随机数 ,取值范围在 ,其中 是子群的阶
- 公钥是点 , 是子群的基点
如果我们知道私钥 和椭圆曲线参数 ,求公钥 是很容易的,但是只知道公钥 和椭圆曲线参数 ,求解私钥 是非常困难的,需要解决离散对数难题,椭圆曲线的安全性保证有赖于此。
ECDH密钥交换
ECDH工作过程如下(以Alice和Bob为例):
- 首先Alice和Bob需要使用同一条椭圆曲线,参数 相同。
- Alice和Bob生成各自的公私钥。Ailce生成私钥 ,公钥 ,Bob生成私钥 ,公钥 。
- Alice和Bob交换各自的公钥 和 。
- Alice计算 ,Bob计算 。可以推导出它们计算的值相同。推导过程 。
至此,Alice和Bob得到了相同的 ,但是第三方在知道椭圆曲线和 , 的情况下,是无法获知 的,因为要推导出 ,就必须知道其中一个私钥,这必须破解椭圆曲线离散对数难题,是做不到的。
应用上,一般先利用ECDH协商共享密钥,再利用共享密钥计算出对称密钥等其他需要的密钥,通信双发对数据进行对称加密安全通信。
参考文档:
The Elliptic Curve Diffie-Hellman (ECDH)
Elliptic Curve Cryptography: ECDH and ECDSA