關於ECDSA/ECC(密鑰加密傳輸)和ECDSA/ECDH(密鑰磋商)

最近項目中用到了ECC的相關算法,惡補了一下相關知識


ECC:Elliptic Curves Cryptography,橢圓曲線密碼編碼學

ECDSA:用於數字簽名,是ECC與DSA的結合,整個簽名過程與DSA類似,所不一樣的是簽名中採取的算法爲ECC,最後簽名出來的值也是分爲r,s。

ECDH:是基於ECC(Elliptic Curve Cryptosystems,橢圓曲線密碼體制,參看ECC)的DH( Diffie-Hellman)密鑰交換算法。交


重點說一下,ECDH用途

由於通過ECDH,雙方可以在不共享任何祕密的前提下協商出一個共享祕密,因此,ECDH廣泛用於協議之中,通過ECDH得到對稱加密密鑰。如TLS中的*_ECDH_*密碼套件。使用DH算法的協議,都可以升級到ECDH算法。ECDH具有ECC的高強度、短密鑰長度、計算速度快等優點。

密鑰交換過程:

假設密鑰交換雙方爲Alice、Bob,其有共享曲線參數(橢圓曲線E、階N、基點G)。

1.Alice生成隨機整數a,計算A=a*G。Bob生成隨機整數b,計算B=b*G。
2.Alice將A傳遞給Bob。A的傳遞可以公開,即攻擊者可以獲取A。由於橢圓曲線的離散對數問題是難題,所以攻擊者不可以通過A、G計算出a。Bob將B傳遞給Alice。同理,B的傳遞可以公開。

3.Bob收到Alice傳遞的A,計算Q=b*A

4.Alice收到Bob傳遞的B,計算Q‘=a*B

總結:

  Alice、Bob雙方即得Q=b*A=b*(a*G)=(b*a)*G=(a*b)*G=a*(b*G)=a*B=Q' (交換律和結合律),即雙方得到一致的密鑰Q。


參考資料:ECDH   

                    ECC-ECDSA

                    ECC-ECDH

                           ECDH -wiki

                           ECDH-PYTHON

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章