ECDH密钥交换

前面一篇将过DH密钥交换算法,ECDH(Elliptic Curve Diffie-Hellman)顾名思义就是ECC+DH,安全性保证由椭圆曲线离散对数难题来保证。其思想与DH一致。算法

椭圆曲线密码学

椭圆曲线密码学是属于非对称密码学的。其公私钥计算公式以下:安全

  • 私钥是一个随机数d,取值范围在{1,...,n-1},其中n是子群的阶
  • 公钥是点H=dGG是子群的基点

若是咱们知道私钥d和椭圆曲线参数G,求公钥H是很容易的,可是只知道公钥H和椭圆曲线参数G,求解私钥d是很是困难的,须要解决离散对数难题,椭圆曲线的安全性保证有赖于此。微信

ECDH密钥交换

ECDH工做过程以下(以Alice和Bob为例):post

  1. 首先Alice和Bob须要使用同一条椭圆曲线,参数(p,a,b,G,n,h)相同。
  2. Alice和Bob生成各自的公私钥。Ailce生成私钥d_A,公钥H_A=d_AG,Bob生成私钥d_B,公钥H_B=d_BG
  3. Alice和Bob交换各自的公钥H_AH_B
  4. Alice计算S=d_AH_B,Bob计算S=d_BH_A。能够推导出它们计算的值相同。推导过程S=d_AH_B=d_Ad_BG=d_B(d_AG)=d_BH_A

至此,Alice和Bob获得了相同的S,可是第三方在知道椭圆曲线和H_AH_B的状况下,是没法获知S的,由于要推导出S,就必须知道其中一个私钥,这必须破解椭圆曲线离散对数难题,是作不到的。加密

应用上,通常先利用ECDH协商共享密钥,再利用共享密钥计算出对称密钥等其余须要的密钥,通讯双发对数据进行对称加密安全通讯。.net

参考文档:
The Elliptic Curve Diffie-Hellman (ECDH)
Elliptic Curve Cryptography: ECDH and ECDSA3d

欢迎关注微信公众号,共同进步! cdn

相关文章
相关标签/搜索