椭圆曲线密码学
椭圆曲线密码学(英語:,缩写:)是一種基于椭圆曲线数学的公开密钥加密演算法。椭圆曲线在密码学中的使用是在1985年由Neal Koblitz和Victor Miller分别独立提出的。
ECC的主要优势是它相比RSA加密演算法使用較小的密鑰長度并提供相当等级的安全性[1]。ECC的另一个优势是可以定义群之间的双线性映射,基于Weil对或是Tate对;双线性映射已经在密码学中发现了大量的应用,例如基于身份的加密。
密钥交换
椭圆曲线密码学的许多形式有稍微的不同,所有的都依赖于被广泛承认的解决椭圆曲线离散对数问题的困难性上,对应有限域上椭圆曲线的群。
伽罗瓦域
对椭圆曲线来说最流行的有限域是以素数为模的整数域(参见模运算),或是特征为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有私钥kA和kB,公钥是PA和PB,那么Alice能计算kA*PB=(kA*kB)*G;Bob能计算同样的值kB*PA=(kB*kA)*G。
这允许一个“秘密”值的建立,这样Alice和Bob能很容易地计算出,但任何的第三方却很难得到。另外,Bob在处理期间不会获得任何关于kA的新知识,因此Alice的私钥仍然是私有的。
加密
基于这个秘密值,用来对Alice和Bob之间的报文进行加密的实际方法是适应以前的,最初是在其他组中描述使用的离散对数密码系统。这些系统包括:
- 椭圆曲线迪菲-赫尔曼密钥交换(ECDH)
- MQV(ECMQV)
- ElGamal离散对数密码体制(ECElGamal)
- 椭圆曲线数字签名算法(ECDSA)
对于ECC系统来说,完成运行系统所必须的群操作比同样大小的因数分解系统或模整数离散对数系统要慢。不过,ECC系统的拥护者相信ECDLP问题比DLP或因数分解问题要难的多,并且因此使用ECC能用小的多的密钥长度来提供同等的安全,在这方面来说它确实比例如RSA之类的更快。到目前为止已经公布的结果趋于支持这个结论,不过一些专家表示怀疑。
ECC被广泛认为是在给定密钥长度的情况下,最强大的非对称算法,因此在对带宽要求十分紧的连接中会十分有用。
建议
美国国家标准与技术局和ANSI X9已经设定了最小密鑰長度的要求,RSA和DSA是最小2048位,ECC是最小224位,相应的對稱密鑰加密的密钥长度是最小128位,這樣的組合在2030年以前是安全的[2]。
在2005年2月16日,NSA宣布决定采用椭圆曲线密码的战略作为美国政府标准的一部分,用来保护敏感但不保密的信息。NSA推荐了一组被称为Suit B的算法,包括用来密钥交换的橢圓曲線Menezes-Qu-Vanstone(ECMQV)和橢圓曲線Diffie-Hellman(ECDH),用来數字簽名的椭圆曲线数字签名算法。这一组中也包括AES和SHA。
安全性
如果攻击者拥有大型量子计算机,那么他可以使用秀尔算法解决离散对数问题,从而破解私钥和共享秘密。目前的估算认为:破解256位素数域上的椭圆曲线,需要2330个量子比特与1260亿个托佛利门。[3]相比之下,使用秀尔算法破解2048位的RSA则需要4098个量子比特与5.2万亿个托佛利门。因此,椭圆曲线会更先遭到量子计算机的破解。目前还不存在建造如此大型量子计算机的科学技术,因此椭圆曲线密码学至少在未来十年(或更久)依然是安全的。但是密码学家已经积极展开了后量子密码学的研究。其中,超奇异椭圆曲线同源密钥交换(SIDH)有望取代当前的常规椭圆曲线密钥交换(ECDH)。
另见
- SECG(Standards for Efficient Cryptography Group (SECG))
- 椭圆曲线数字签名算法
- 橢圓曲線迪菲-赫爾曼金鑰交換
- 公開金鑰加密
- 抽象代数
- 奇幻熊
- 密鑰合意協議
- ECMQC
参考文献
- Neal Koblitz, "Elliptic curve cryptosystems", Mathematics of Computation 48, 1987, pp203–209
- 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", Springer-Verlag, 2004
- L. Washington, "Elliptic Curves: Number Theory and Cryptography", Chapman & Hall/CRC, 2003
- Standards for Efficient Cryptography Group (SECG), SEC 1: Elliptic Curve Cryptography, Version 1.0, September 20, 2000. (archived as if Nov 11, 2014)
- D. Hankerson, A. Menezes, and S.A. Vanstone, Guide to Elliptic Curve Cryptography, Springer-Verlag, 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 Elliptic-Curve Cryptography on Mobile Healthcare Devices, Networking, Sensing and Control, 2007 IEEE International Conference on, London, 15–17 April 2007 Page(s):239–244
- Saikat Basu, A New Parallel Window-Based Implementation of the Elliptic Curve Point Multiplication in Multi-Core Architectures, International Journal of Network Security, Vol. 13, No. 3, 2011, Page(s):234–241 (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 quantum-resistant 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, 1-152, Paris, 1978. 页面存档备份,存于
外部链接
- 橢圓曲線密碼學使用薦議書,NIST文件(PDF檔) 页面存档备份,存于
- Certicom press release regarding 109 bit ECC challenge 页面存档备份,存于
- Certicom線上橢圓曲線密碼學簡介
- 數位簽章標準,含橢圓曲線密碼學數位簽章標準(ECDSA) 页面存档备份,存于
- 参见Wikisource:Cryptography获得曲线的算法程序和一些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 Pairing-Based Crypto Lounge
- . wiki.openssl.org. [2020-05-02].
- . www.keylength.com. [2020-04-06].
- Roetteler, Martin; Naehrig, Michael; Svore, Krysta M.; Lauter, Kristin. . 2017. arXiv:1706.06752 [quant-ph].