NTRU

NTRU是一个带有专利保护的开源公开密钥加密系统，使用来加密数据。它包括两部分算法：用来加密，用来进行数字签名。与其他流行的公钥加密系统不同，它可以防止被Shor算法破解，并显著提升了性能。

历史 
第一个被命名为NTRU的加密系统版本，是数学家，，和于1996年开发的。同年，Daniel Lieman加入了NTRU开发团队，并成立了公司NTRU Cryptosystems, Inc.， 获得了该加密系统的专利。2009年，该公司被一家名为Security Innovation的软件安全公司收购。2013年，Damien Stehle和Ron Steinfeld创建了NTRU的一个可靠版本，目前正在由欧盟委员会授权的后量子加密小组进行研究。

2016年5月，Daniel Bernstein，Tanja Lange等人发布了NTRU Prime，通过消除一些令人不安的代数结构以抵抗潜在的攻击。

性能 
在同等加密强度下，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，作为X9金融服务标准的一部分。
 欧洲委员会的PQCRYPTO计划正在考虑标准化Stehle-Steinfeld可靠版本的NTRU

发行方式 
最初，NTRU只有一个带专利保护的付费开源库可用，打算写开源实现的作者收到诉讼威胁。直到2011年出现了第一个开源实现，在2013年，Security Innovation豁免了开源项目的专利授权要求，并以GPL v2协议释放了一份NTRU的参考实现。

Security Innovation依然提供付费的专有软件选项。

现在存在两个开源的NTRU实现：
 GPL-licensed下的参考实现
 BSD-licensed下的库
分别在Java和C下可用。

参考

外部链接 
 Security Innovation homepage

密码学