橢圓曲線密碼學
橢圓曲線密碼學(英語:Elliptic curve cryptography,縮寫為ECC),一種建立
公開密鑰加密的演算法,基於
橢圓曲線數學。橢圓曲線在密碼學中的使用是在1985年由Neal Koblitz和
Victor Miller分別獨立提出的。
ECC的主要優勢是在某些情況下它比其他的方法使用更小的
密鑰——比如
RSA加密算法——提供相當的或更高等級的安全。ECC的另一個優勢是可以定義群之間的
雙線性映射,基於Weil對或是Tate對;雙線性映射已經在密碼學中發現了大量的套用,例如基於身份的加密。不過一個缺點是加密和解密操作的實現比其他機制花費的時間長。
加密
基於這個秘密值,用來對Alice和Bob之間的報文進行加密的實際方法是適應以前的,最初是在其他組中描述使用的離散對數密碼系統。這些系統包括:
對於ECC系統來說,完成運行系統所必須的群操作比同樣大小的因數分解系統或模整數離散對數系統要慢。不過,ECC系統的擁護者相信ECDLP問題比DLP或因數分解問題要難的多,並且因此使用ECC能用小的多的
密鑰長度來提供同等的安全,在這方面來說它確實比例如
RSA之類的更快。到目前為止已經公布的結果趨於支持這個結論,不過一些專家表示懷疑。
ECC被廣泛認為是在給定密鑰長度的情況下,最強大的非對稱算法,因此在對頻寬要求十分緊的連線中會十分有用。
優點
安全性高
處理速度快
公鑰密碼系統的加密算法ECC與RSA的對比
第六屆國際密碼學會議對套用於公鑰密碼系統的加密算法推薦了兩種:基於大整數因子分解問題(IFP)的
RSA算法和基於橢圓曲線上
離散對數計算問題(
ECDLP)的
ECC算法。RSA算法的特點之一是數學原理簡單、在工程套用中比較易於實現,但它的單位安全強度相對較低。目前用國際上公認的對於RSA算法最有效的攻擊方法--一般數域篩(NFS)方法去破譯和攻擊RSA算法,它的破譯或求解難度是亞指數級的。ECC算法的數學理論非常深奧和複雜,在工程套用中比較難於實現,但它的單位安全強度相對較高。用國際上公認的對於ECC算法最有效的攻擊方法--Pollard rho方法去破譯和攻擊ECC算法,它的破譯或求解難度基本上是指數級的。正是由於
RSA算法和
ECC算法這一明顯不同,使得ECC算法的單位安全強度高於RSA算法,也就是說,要達到同樣的安全強度,ECC算法所需的
密鑰長度遠比RSA算法低。這就有效地解決了為了提高安全強度必須增加密鑰長度所帶來的工程實現難度的問題。
建議
美國國家標準與技術局和ANSI X9已經設定了最小密鑰長度的要求,RSA和DSA是1024位,ECC是160位,相應的對稱分組密碼的密鑰長度是80位。NIST已經公布了一列推薦的橢圓曲線用來保護5個不同的對稱密鑰大小(80, 112, 128, 192, 256)。一般而言,二進制域上的ECC需要的非對稱密鑰的大小是相應的對稱密鑰大小的兩倍。
Certicom是ECC的主要商業支持者,擁有超過130項
專利,並且已經以2千5百萬美元的交易獲得了
美國國家安全局(NSA)的技術許可。他們也已經發起了許多對ECC算法的挑戰。已經被解決的最複雜的是109位的密鑰,是在2003年初由一個研究團隊破解的。破解密鑰的這個團隊使用了基於
生日攻擊的大塊並行攻擊,用超過10,000台
奔騰級的PC機連續運行了540天以上。對於ECC推薦的最小密鑰長度163位來說,當前估計需要的計算資源是109位問題的10倍。
在2005年2月16日,NSA宣布決定採用橢圓曲線密碼的戰略作為美國政府標準的一部分,用來保護敏感但不保密的信息。NSA推薦了一組被稱為Suit B的算法,包括用來密鑰交換的Menezes-Qu-Vanstone橢圓曲線和Diffie-Hellman橢圓曲線,用來數字簽名的橢圓曲線數字簽名算法。這一組中也包括
AES和
SHA。
另見
SECG(Standards for Efficient Cryptography Group (SECG))
密鑰合意協定