橢圓曲線密碼學（，縮寫：）是一種基於橢圓曲線數學的公開金鑰加密演演算法。 ECC 的主要優勢是它相比 RSA 加密演演算法使用較小的金鑰長度並提供相當等級的安全性。ECC 的另一個優勢是可以定義群之間的雙線性對映，基於 Weil 對或是 Tate 對；雙線性對映已經在密碼學中發現了大量的應用，例如基於身份的加密。 歷史 橢圓曲線在密碼學中的使用是在 1985 年由和分別獨立提出的。橢圓曲線密碼學的演演算法是在 2004 年至 2005 年開始廣泛應用。 理論 針對密碼學應用上的橢圓曲線是在有限域（不是實數域）的平面曲線，其方程式如下： y2 x3 ax b 有一個特別的無窮遠點（標示為）。座標會選定為特定的有限域，其特徵不等於 2 或是 3，也有可能是更複雜的曲線方程。 由橢圓曲線產生的集合是阿貝爾群，以無窮遠點為單位元。此群的結構會繼承以下代數簇中除子的結構： mathrm Div0 E to mathrm Pic0 E simeq E 金鑰交換 橢圓曲線密碼學的許多形式有稍微的不同，所有的都依賴於被廣泛承認的解決「橢圓曲線離散對數」問題的困難性上，對應有限域上橢圓曲線的群。 伽羅瓦域 對橢圓曲線來說最流行的有限域是以素數為模的整數域（參見模運算）GF p，或是特徵為 2 的伽羅瓦域 GF（2m）。後者在專門的硬體實現上計算更為有效，而前者通常在通用處理器上更為有效。專利的問題也是相關的。一些其他素數的伽羅瓦域的大小和能力也已經提出了，但被密碼專家認為有一點問題。 給定一條橢圓曲線 E 以及一個域 GF q，考慮具有 x y 形式有理數點 E q 的阿貝爾群，其中 x 和 y 都在 GF q 中並且定義在這條曲線上的群運算 （運算 在條目橢圓曲線中描述）。然後定義第二個運算 ZE qE q：如果 P 是 E q 上的某個點，那麼定義 2PPP 3P2PPPPP 等等。針對給定整數 j 和 k，jkPjkPkjP。橢圓曲線離散對數問題（ECDLP）就是給定點 P 和 Q，確定整數 k 使 kPQ。 一般認為在一個有限域乘法群上的離散對數問題（DLP）和橢圓曲線上的離散對數問題（ECDLP）並不等價；ECDLP 比 DLP 要困難的多。 在密碼的使用上，會選擇曲線 E q 和其中一個特定的基點 G，並且公開這些資料。會再選擇一個隨機整數 k 作為私鑰；公佈值為 PkG 的公鑰（注意假設的 ECDLP 困難性意味著 k 很難從 P 中確定）。如果 Alice 和 Bob 有私鑰 kA 和 kB，公鑰是 PA 和 PB，那麼 Alice 能計算 kAPBkAkBG；Bob 能計算同樣的值 kBPAkBkAG。 這允許一個 秘密 值的建立，這樣 Alice 和 Bob 能很容易地計算出，但任何的第三方卻很難得到。另外，Bob 在處理期間不會獲得任何關於 kA 的新知識，因此 Alice 的私鑰仍然是私有的。 加密 基於這個秘密值，用來對 Alice 和 Bob 之間的報文進行加密的實際方法是適應以前的，最初是在其他組中描述使用的離散對數密碼系統。這些系統包括： 橢圓曲線迪菲 赫爾曼金鑰交換（ECDH） （ECMQV） ElGamal 離散對數密碼體制（ECElGamal） 橢圓曲線數字簽名演算法（ECDSA） 對於 ECC 系統來說，完成執行系統所必須的群操作比同樣大小的因數分解系統或模整數離散對數系統要慢。不過，ECC 系統的擁護者相信 ECDLP 問題比 DLP 或因數分解問題要難的多，並且因此使用 ECC 能用小的多的金鑰長度來提供同等的安全，在這方面來說它確實比例如 RSA 之類的更快。到目前為止已經公佈的結果趨於支援這個結論，不過一些專家表示懷疑。 ECC 被廣泛認為是在給定金鑰長度的情況下，最強大的非對稱演算法，因此在對頻寬要求十分緊的連線中會十分有用。 建議 美國國家標準與技術局和 ANSI X9 已經設定了最小金鑰長度的要求，RSA 和 DSA 是最小 2048 位，ECC 是最小 224 位，相應的對稱金鑰加密的金鑰長度是最小 128 位，這樣的組合在 2030 年以前是安全的。 在 2005 年 2 月 16 日，NSA 宣佈決定採用橢圓曲線密碼的戰略作為美國政府標準的一部分，用來保護敏感但不保密的資訊。NSA 推薦了一組被稱為 Suit B 的演算法，包括用來金鑰交換的橢圓曲線 MenezesQuVanstone（ECMQV）和橢圓曲線 DiffieHellman（ECDH），用來數字簽名的橢圓曲線數字簽名演算法。這一組中也包括 AES 和 SHA。 安全性 旁路攻擊 橢圓曲線密碼學和其他的離散對數不同，在離散對數中可以用相同的程式處理平方以及乘法，但橢圓曲線上的加法在加倍（P Q）和一般加法（P Q）上會因為使用的座標系統而有顯著的不同。因此有關旁路攻擊（例如時間或能量分析）的防治就格外的重要。例如用固定模式視窗（fixed pattern window，也稱為 comb）的方式（這不會增加運算時間）。另外也可以使用，這是一類特別的橢圓曲線，其中的加倍和加法可以用同一個運算完成。另一個 ECC 系統的疑慮是差別錯誤分析的風險，特別是在智慧卡上的應用 See for example 。 後門 密碼學專家擔心，美國國家安全域性（NSA）可能已在至少一個以橢圓曲線為基礎的偽亂數產生器中置入後門 Did NSA Put a Secret Backdoor in New Encryption Standard wwwschneiercom。前美國中央情報局（CIA）職員愛德華斯諾登所洩漏的內部摘要暗示，NSA 在雙橢圓曲線確定性隨機位元生成器標準中加入後門。微軟公司的研究人員針對此標準中一個的疑似後門進行分析，並得出結論：擁有此演演算法私鑰的攻擊者，可以只根據 32 位元組的 PRNG 輸出，找到加密的金鑰。 密碼學家發起了「SafeCurves」計劃，整理並列出安全性易實現且設計過程完全公開可驗證的曲線，以減少曲線被植入後門的可能性。 量子計算攻擊 如果攻擊者擁有大型量子計算機，那麼他可以使用秀爾演算法解決離散對數問題，從而破解私鑰和共享秘密。目前的估算認為：破解 256 位素數域上的橢圓曲線，需要 2330 個量子位元與 1260 億個託佛利門。相比之下，使用秀爾演算法破解 2048 位的 RSA 則需要 4098 個量子位元與 52 萬億個託佛利門。因此，橢圓曲線會更先遭到量子計算機的破解。目前還不存在建造如此大型量子計算機的科學技術，因此橢圓曲線密碼學至少在未來十年（或更久）依然是安全的。但是密碼學家已經積極展開了後量子密碼學的研究。其中，（SIDH）有望取代當前的常規橢圓曲線金鑰交換（ECDH）。 無效曲線攻擊 若 ECC 是在虛擬機器運作，攻擊者可以用無效的曲線來取得完整的 PDH 私鑰。 相關條目 （高效密碼學標準組） 橢圓曲線數字簽名演算法 橢圓曲線迪菲 赫爾曼金鑰交換 公開金鑰加密 抽象代數 奇幻熊 加密貨幣 Curve25519 DNSCurve RSA 加密演演算法 橢圓曲線迪菲 赫爾曼金鑰交換 ECDH 橢圓曲線數字簽名演算法 ECDSA EdDSA 橢圓曲線的純量乘法 公開金鑰加密 量子密碼學 參考文獻 Neal Koblitz Elliptic curve cryptosystems Mathematics of Computation 48 1987 pp203209 V Miller Use of elliptic curves in cryptography CRYPTO 85 1985 Blake Seroussi Smart Elliptic Curves in Cryptography Cambridge University Press 1999 Hankerson Menezes Vanstone Guide to Elliptic Curve Cryptography SpringerVerlag 2004 L Washington Elliptic Curves Number Theory and Cryptography Chapman HallCRC 2003 Standards for Efficient Cryptography Group SECG SEC 1 Elliptic Curve Cryptography Version 10 September 20 2000 archived as if Nov 11 2014 D Hankerson A Menezes and SA Vanstone Guide to Elliptic Curve Cryptography SpringerVerlag 2004 I Blake G Seroussi and N Smart Elliptic Curves in Cryptography London Mathematical Society 265 Cambridge University Press 1999 I Blake G Seroussi and N Smart editors Advances in Elliptic Curve Cryptography London Mathematical Society 317 Cambridge University Press 2005 L Washington Elliptic Curves Number Theory and Cryptography Chapman Hall CRC 2003 The Case for Elliptic Curve Cryptography National Security Agency archived January 17 2009 Online Elliptic Curve Cryptography Tutorial Certicom Corp archived here as of March 3 2016 K Malhotra S Gardner and R Patz Implementation of EllipticCurve Cryptography on Mobile Healthcare Devices Networking Sensing and Control 2007 IEEE International Conference on London 1517 April 2007 Page s239244 Saikat Basu A New Parallel WindowBased Implementation of the Elliptic Curve Point Multiplication in MultiCore Architectures International Journal of Network Security Vol 13 No 3 2011 Page s234241 archived here as of March 4 2016 Christof Paar Jan Pelzl Elliptic Curve Cryptosystems Chapter 9 of Understanding Cryptography A Textbook for Students and Practitioners companion web site contains online cryptography course that covers elliptic curve cryptography Springer 2009 archived here as of April 20 2016 Luca De Feo David Jao Jerome Plut Towards quantumresistant cryptosystems from supersingular elliptic curve isogenies Springer 2011 archived here as of May 7 2012 Jacques Vélu Courbes elliptiques Société Mathématique de France 57 1152 Paris 1978 外部連結 橢圓曲線密碼學使用薦議書，NIST 檔案（PDF 檔） Certicom press release regarding 109 bit ECC challenge Certicom 線上橢圓曲線密碼學簡介 數位簽章標準，含橢圓曲線密碼學數位簽章標準（ECDSA） 參見 WikisourceCryptography 獲得曲線的演算法程式和一些 NIST 曲線的測試向量 OpenSSL：開源 SSL，已支援橢圓曲線密碼學 Crypto：開源 C 橢圓曲線密碼學 API libecc Open source ECC library Demo of elliptic curve point counting and domain parameter generation Primer on elliptical curve cryptography 開源 Java 密碼學 API 橢圓曲線密碼學問答集 The PairingBased Crypto Lounge Category 橢圓曲線密碼學 Category 公鑰密碼學 Category 有限域