ECDH算法集錦可以看到目前比較常見的ECDH算法,ECC算法與DH結合使用,密鑰交換算法稱為ECDH,用于密鑰磋商!
軟件相關
ECC算法用途比RSA還猛,不僅可以加解密、簽名驗證。還可以與DH結合使用,用于密鑰磋商,這個密鑰交換算法稱為ECDH。交換雙方可以在不共享任何秘密的情況下協(xié)商出一個密鑰。ECC是建立在基于橢圓曲線的離散對數問題上的密碼體制,給定橢圓曲線上的一個點P,一個整數k,求解Q=kP很容易;給定一個點P、Q,知道Q=kP,求整數k確是一個難題。ECDH即建立在此數學難題之上。密鑰磋商過程:
假設密鑰交換雙方為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。
BTW:目前Openssl里面的ECC算法的套件支持是ECDSA/ECDH。在國密的SSL套件中,可以使用ECDSA/ECC(密鑰加密傳輸),ECDSA/ECDH(密鑰磋商)兩種套件。目前看起來ecc是一個趨勢,但還沒有形成一個統(tǒng)一的全球標準,還是試用階段,很多國家或組織都可以選擇自己的橢圓曲線參數或方程。它的安全性還沒有很好的結論。