跳转到内容

椭圆曲线密码学

维基百科,自由的百科全书

椭圆曲线密码学(英語:Elliptic Curve Cryptography,缩写:ECC)是一種基于椭圆曲线数学公开密钥加密演算法

ECC的主要优势是它相比RSA加密演算法使用較小的密鑰長度并提供相当等级的安全性[1]。ECC的另一个优势是可以定义群之间的双线性映射,基于Weil对或是Tate对;双线性映射已经在密码学中发现了大量的应用,例如基于身份的加密

歷史

[编辑]

椭圆曲线在密码学中的使用是在1985年由Neal Koblitz英语Neal Koblitz[2]Victor Miller英语Victor Miller[3]分别独立提出的。椭圆曲线密码学的演算法是在2004年至2005年開始廣泛應用。

理論

[编辑]

針對密碼學應用上的椭圆曲线是在有限域(不是實數域)的平面曲线,其方程式如下:

有一個特別的无穷远点(標示為∞)。座標會選定為特定的有限域,其特征不等於2或是3,也有可能是更複雜的曲線方程。

椭圆曲线產生的集合是阿贝尔群,以无穷远点為單位元。此群的結構會繼承以下代数簇除子的結構:

密钥交换

[编辑]

椭圆曲线密码学的许多形式有稍微的不同,所有的都依赖于被广泛承认的解决「椭圆曲线离散对数」问题的困难性上,对应有限域上椭圆曲線的群。

伽罗瓦域

[编辑]

对椭圆曲线来说最流行的有限域是以素数为模的整数域(参见模运算,或是特征为2的伽罗瓦域 GF(2m)。后者在专门的硬件实现上计算更为有效,而前者通常在通用处理器上更为有效。专利的问题也是相关的。一些其他素数的伽罗瓦域的大小和能力也已经提出了,但被密码专家认为有一点问题。

给定一条椭圆曲线E以及一个域,考虑具有形式有理数点阿贝尔群,其中x和y都在中并且定义在这条曲线上的群运算"+"(运算"+"在條目椭圆曲线中描述)。然后定义第二个运算"*" | Z×:如果P是上的某个点,那么定义等等。針對给定整数j和k,。椭圆曲线离散对数问题(ECDLP)就是给定点P和Q,确定整数k使。 -- 一般认为在一个有限域乘法群上的离散对数问题(DLP)和椭圆曲线上的离散对数问题(ECDLP)並不等价;ECDLP比DLP要困难的多。

在密码的使用上,會選擇曲线和其中一个特定的基点G,並且公開這些資料。會再選擇一个随机整数k作为私钥;公布值為的公钥(注意假设的ECDLP困难性意味着k很难从P中确定)。如果Alice和Bob有私钥kAkB,公钥是PAPB,那么Alice能计算kA*PB=(kA*kB)*G;Bob能计算同样的值kB*PA=(kB*kA)*G

这允许一个“秘密”值的建立,这样Alice和Bob能很容易地计算出,但任何的第三方却很难得到。另外,Bob在处理期间不会获得任何关于kA的新知识,因此Alice的私钥仍然是私有的。

加密

[编辑]

基于这个秘密值,用来对Alice和Bob之间的报文进行加密的实际方法是适应以前的,最初是在其他组中描述使用的离散对数密码系统。这些系统包括:

对于ECC系统来说,完成运行系统所必须的群操作比同样大小的因数分解系统或模整数离散对数系统要慢。不过,ECC系统的拥护者相信ECDLP问题比DLP或因数分解问题要难的多,并且因此使用ECC能用小的多的密钥长度来提供同等的安全,在这方面来说它确实比例如RSA之类的更快。到目前为止已经公布的结果趋于支持这个结论,不过一些专家表示怀疑。

ECC被广泛认为是在给定密钥长度的情况下,最强大的非对称算法,因此在对带宽要求十分紧的连接中会十分有用。

建议

[编辑]

美国国家标准与技术局ANSI X9已经设定了最小密鑰長度的要求,RSADSA是最小2048位,ECC是最小224位,相应的對稱密鑰加密的密钥长度是最小128位,這樣的組合在2030年以前是安全的[4]

在2005年2月16日,NSA宣布决定采用椭圆曲线密码的战略作为美国政府标准的一部分,用来保护敏感但不保密的信息。NSA推荐了一组被称为Suit B的算法,包括用来密钥交换的橢圓曲線Menezes-Qu-Vanstone(ECMQV)和橢圓曲線Diffie-HellmanECDH),用来數字簽名椭圆曲线数字签名算法。这一组中也包括AESSHA

安全性

[编辑]

旁路攻击

[编辑]

椭圆曲线密码学和其他的离散对数不同,在离散对数中可以用相同的程序處理平方以及乘法,但椭圆曲线上的加法在加倍(P = Q)和一般加法(PQ)上會因為使用的座標系統而有顯著的不同。因此有關旁路攻击(例如時間或能量分析)的防治就格外的重要。例如用固定模式窗口(fixed pattern window,也稱為comb)的方式[需要解释][5](這不會增加運算時間)。另外也可以使用愛德華曲線英语Edwards curve,這是一類特別的椭圆曲线,其中的加倍和加法可以用同一個運算完成[6]。另一個ECC系統的疑慮是差別錯誤分析的風險,特別是在智慧卡上的應用[7]

後門

[编辑]

密碼學專家擔心,美国国家安全局(NSA)可能已在至少一個以椭圆曲线為基礎的偽亂數產生器中置入kleptographic英语kleptographic後門[8]。前美國中央情報局(CIA)職員爱德华·斯诺登所洩漏的內部摘要暗示,NSA在双椭圆曲线确定性随机比特生成器標準中加入後門[9]微軟公司的研究人員針對此標準中一個的疑似後門進行分析,並得出結論:擁有此演算法私鑰的攻擊者,可以只根據32位元組的PRNG輸出,找到加密的密鑰[10]

密碼學家發起了「SafeCurves」計劃,整理並列出安全性易實現且設計過程完全公開可驗證的曲線,以減少曲線被植入後門的可能性[11]

量子計算攻擊

[编辑]

如果攻击者拥有大型量子计算机,那么他可以使用秀尔算法解决离散对数问题,从而破解私钥和共享秘密。目前的估算认为:破解256位素数域上的椭圆曲线,需要2330个量子比特与1260亿个托佛利门[12]相比之下,使用秀尔算法破解2048位的RSA则需要4098个量子比特与5.2万亿个托佛利门。因此,椭圆曲线会更先遭到量子计算机的破解。目前还不存在建造如此大型量子计算机的科学技术,因此椭圆曲线密码学至少在未来十年(或更久)依然是安全的。但是密码学家已经积极展开了後量子密碼學的研究。其中,超奇异椭圆曲线同源密钥交换英语Supersingular isogeny key exchange(SIDH)有望取代当前的常规椭圆曲线密钥交换(ECDH)。

無效曲線攻擊

[编辑]

若ECC是在虛擬機器運作,攻擊者可以用無效的曲線來取得完整的PDH私鑰[13]

相關條目

[编辑]

参考文献

[编辑]
  1. ^ Elliptic Curve Cryptography - OpenSSLWiki. wiki.openssl.org. [2020-05-02]. (原始内容存档于2020-12-04). 
  2. ^ Koblitz, N. Elliptic curve cryptosystems. Mathematics of Computation. 1987, 48 (177): 203–209. JSTOR 2007884. doi:10.2307/2007884可免费查阅. 
  3. ^ Miller, V. Use of elliptic curves in cryptography. Advances in Cryptology — CRYPTO '85 Proceedings. Lecture Notes in Computer Science 85. 1985: 417–426. ISBN 978-3-540-16463-0. doi:10.1007/3-540-39799-X_31.  |journal=被忽略 (帮助)
  4. ^ Keylength - NIST Report on Cryptographic Key Length and Cryptoperiod (2019). www.keylength.com. [2020-04-06]. (原始内容存档于2020-04-04). 
  5. ^ Hedabou, M.; Pinel, P.; Beneteau, L. A comb method to render ECC resistant against Side Channel Attacks (PDF). 2004 [2021-12-17]. (原始内容存档 (PDF)于2021-12-17). 
  6. ^ Cr.yp.to: 2014.03.23: How to design an elliptic-curve signature system. [2021-12-17]. (原始内容存档于2014-03-23). 
  7. ^ See, for example, Biehl, Ingrid; Meyer, Bernd; Müller, Volker. Differential Fault Attacks on Elliptic Curve Cryptosystems (PDF). Lecture Notes in Computer Science 1880. 2000: 131–146 [2021-12-17]. ISBN 978-3-540-67907-3. doi:10.1007/3-540-44598-6_8. (原始内容存档 (PDF)于2021-12-17).  |journal=被忽略 (帮助)
  8. ^ "Did NSA Put a Secret Backdoor in New Encryption Standard?"页面存档备份,存于互联网档案馆). www.schneier.com.
  9. ^ Government Announces Steps to Restore Confidence on Encryption Standards. NY Times – Bits Blog. 2013-09-10 [2015-11-06]. (原始内容存档于2014-07-12). 
  10. ^ 存档副本 (PDF). [2021-12-17]. (原始内容存档 (PDF)于2014-02-26). 
  11. ^ Bernstein, Daniel J.; Lange, Tanja. SafeCurves: choosing safe curves for elliptic-curve cryptography. [2016-10-01]. (原始内容存档于2021-11-09). 
  12. ^ Roetteler, Martin; Naehrig, Michael; Svore, Krysta M.; Lauter, Kristin. Quantum resource estimates for computing elliptic curve discrete logarithms. 2017. arXiv:1706.06752可免费查阅 [quant-ph]. 
  13. ^ Cohen, Cfir. AMD-SEV: Platform DH key recovery via invalid curve attack (CVE-2019-9836). Seclist Org. 2019-06-25 [2019-07-04]. (原始内容存档于2019-07-02). The SEV elliptic-curve (ECC) implementation was found to be vulnerable to an invalid curve attack. At launch-start command, an attacker can send small order ECC points not on the official NIST curves, and force the SEV firmware to multiply a small order point by the firmware’s private DH scalar. 

外部链接

[编辑]