NIST后量子密码算法实际性能评价-1

NIST在第三轮算法竞选中做了一些聪明的事情,第三轮分为两组:入围算法和候选算法。

决赛入围者是NIST(以及参与NIST决策的大多数密码学家)认为可立即投入生产并值得立即标准化的算法。

同时,替代候选算法是一种算法,但是出于某种原因,NIST认为在对它充满信心之前,还需要进行几年的密码分析和研究。

我相信密码学领域的每个人都对第三轮的选择都有自己的看法,但是这里从一个实践应用角度分析第三轮的决赛入围者。

评判标准

我们将从实际应用的角度评价密钥封装算法(KEM), 而不是从理论上的公钥加密和密钥封装的安全性概念,即:

1.与现有传输层协议(TLS,Noise等)集成的可能性


2.在应用层加密中支持离线公钥加密的API(也称为“密封”)。

这意味着您可以在线加密(使用公钥),但是解密需要一个密钥,该密钥保持离线状态,并且仅在需要时才可以访问。

我们将根据以下标准评价数字签名算法:

1.无状态性:该算法可以在回滚的虚拟机中安全使用吗?


2.带宽:签名长度是否比较小?

第三轮密钥封装算法决赛入围者

McEliece

经典McEliece算法是基于纠错码。

经典McEliece具有较大的公钥(在第2轮提交中从261120字节到1357824字节不等),但密文短(128到240字节)。这使得很难在TLS之类的协议中实现Classic McEliece(因为仅要传输公钥,它至少需要4个TCP数据包)。

Classic McEliece没有解密失败,因此适用于离线公钥加密。但是,巨大的公钥也可能会阻碍此处的采用。

CRYSTALS

CRYSTALS包含两个算法:Kyber(密钥封装)和Dilithium(签名)。

Kyber公钥的范围从800字节(对于Kyber-512)到1568字节(对于Kyber-1024),密文的范围从736字节到1568字节,这意味着Kyber可以轻松用于TLS等协议。

Kyber解密的失败概率约为2^160。尽管这种可能性不太可能在现实世界中发生,但严格来说,算法中包含的任何非零故障概率,意味着用Kyber加密对称密钥会阻止您成功解密。

由于没有机会从错误中恢复(尽管不太可能),因此很难推荐Kyber进行离线解密协议。

NTRU

NTRU是另一种基于格的算法,是有史以来历史最长的后量子格密码系统之一。(由于太早了,所有专利都已过期。)

与Kyber一样,NTRU提供小的公钥(低端的ntruhps2048509为699字节,高端的ntruhps4096821为1230字节),这使得NTRU适用于要求小尺寸公钥的应用。

与Kyber一样,对于所有参数集,NTRU的解密失败率通常低于2^100中的1。  (确切的故障率未在NTRU规范文档中给出。)严格来说,这可能永远不会成为现实问题。但是从技术上讲,仍然可以使用无法解密的NTRU加密某些内容。这使得很难为该用例推荐NTRU。

SABRE





SABRE是另一种基于格的密钥封装算法。  SABER的安全性是基于与Kyber和NTRU不同的问题。但是,SABRE可以通过调用其轻型模式LightSABER。

SABRE提供小型公钥(672至1312字节)和密文(736至1472字节)。TLS对于SABRE应该没有问题。

与其他基于格的算法一样,解密失败概率也不为零(对于SABRE变种,解密失败概率为2 ^-120到2^-165)。

总结

如果后量子密码的唯一目标是设计可用于在线模式(例如TLS)的密码学基,那么任何基于格的算法(Kyber,NTRU,SABRE)都是不错的选择。

对于离线公钥加密,所有这三个算法都具有解密失败的风险,只有通过多次加密同一会话密钥并存储多个密文,才能真正缓解这种风险。这种故障风险已经可以忽略不计了(更可能是宇宙射线),但是离线协议没有恢复机制(而在线协议只能重新启动密钥交换并调用它)。


关键词: NIST  后量子密码算法  

该内容来自于互联网公开内容,非区块链原创内容,如若转载,请注明出处:https://htzkw.com/archives/28742

联系我们

aliyinhang@gmail.com