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

相關文章
相關標籤/搜索