NTRU是一个带有专利保护的开源公开密钥加密系统,使用加密数据。它包括两部分算法:用于加密,用于数字签名。与其他流行的公钥加密系统不同,NTRU可抵御Shor算法破解,并具有较高性能。
历史
第一个被命名为NTRU的加密系统版本,是数学家,,和于1996年开发的。同年,Daniel Lieman加入了NTRU开发团队,并成立了公司NTRU Cryptosystems, Inc., 获得了该加密系统的专利。2009年,该公司被一家名为Security Innovation的软件安全公司收购。2013年,Damien Stehle和Ron Steinfeld创建了NTRU的一个可靠版本,目前正在由欧盟委员会授权的后量子加密小组进行研究。通过消除一些令人不安的代数结构以抵抗潜在的攻击。
性能
在同等加密强度下,NTRU执行大开销的私钥操作比RSA算法快得多。RSA算法的私钥操作耗时与密钥长度呈三次方关系,而NTRU相应操作为二次方关系。
据鲁汶大学电子工程部门表示,「使用一块现代的GTX280显卡,在256 bit加密强度下,最高可达每秒二十万次的加密的吞吐量。与最新的对称加密AES实现相比(这并不公平),只慢了大概二十倍。」
防止量子计算机破解
与RSA加密演算法和椭圆曲线加密算法()不同,NTRU在基于量子计算机的攻击面前没有已知的弱点。国家标准技术研究所在一份2009年的调查中写到「目前不存在一种能同时兼顾公钥加密和数字签名,并在Shor算法面前没有弱点的可行替代方案」以及「在基于格的众多已有加密方案中,NTRU加密算法族看起来是最可行的」。欧盟的PQCRYPTO计划(Horizon 2020 ICT-645622)正在评估Stehle–Steinfeld可靠版本的NTRU (并非原始版本的NTRU算法),以作为一项潜在的欧洲标准。然而Stehle-Steinfeld版本的NTRU「比原始版本效率要低得多」."
标准
- IEEE Std 1363.1标准,发布于2008年,标准化了基于格的公钥加密算法,尤其是NTRUEncrypt。
- X9.98标准,标准化了基于格的公钥加密算法,尤其是NTRUEncrypt,作为[http://www.x9.org/ X9]金融服务标准的一部分。
- 欧洲委员会的PQCRYPTO计划正在考虑标准化Stehle-Steinfeld可靠版本的NTRU直到2011年出现了第一个开源实现,并以GPL v2协议释放了一份NTRU的参考实现。
现在存在两个开源的NTRU实现:
- GPL-licensed下的参考实现
- BSD-licensed下的库
分别在Java和C下可用。
参考
外部链接
- [http://www.securityinnovation.com Security Innovation homepage]
评论 (0)