LAC
紫胶/格基密码系统
CPA和CCA安全的LAC(格基密码系统)密码包括四个不同的LAC相关原语,基于环上带错误的多项式学习(poly-LWE)问题。LAC密码基元是
LAC.CPA: 一个安全的公钥加密方案,它也是其他三个实现的基础
LAC.KE:直接从LAC.CPA转换而来的安全密钥交换协议
LAC.CCA:一种安全的密钥封装机制,它与LAC.CPA相关
LAC.AKE:一种认证密钥交换协议
LAC可以在Intel和ARM处理器上运行(与大多数其他竞争对手一样),使用相对较小的键,并且具有良好的性能。对于NIST所需的安全实现的第二轮的开始,密钥的大小范围从512字节到1,204字节,公钥的大小范围从544字节到1,056字节,密文的大小范围从712字节到1,424字节。这使LAC成为NIST竞争对手中第四小的组合密钥和密文大小。
从NIST竞赛评审员那里看来,关于LAC安全性的问题确实比平均数要多,其中包括以下评论:(https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/round-1/official-comments/LAC-official-comment.pdf),但到目前为止,他们都没有声称有重大突破。
LAC团队由中国密码学家组成。中国密码学家参与了许多抗量子算法和提交给NIST的文件。这是有道理的,因为中国是量子计算机、设备、基于量子的密码学和防御研究的领导者。
有关LAC的更多信息,请下载https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/round-1/submissions/LAC.zip.LAC团队没有面向公众的网站,但是这个zip文件包含了很多相关的信息。
LEDAcrypt
LE DA密码
LED加密基于低密度奇偶校验码的密码系统是一种基于准循环低密度奇偶校验码和临时密钥的非对称密码。它是由第一轮的LEDAkem/LEDApkc合并而成,并根据NIST的建议进行了许多改进。
LEDAcrypt是尼德赖特密码系统的一个修改版本。QC-LDPC码允许高速解码和更小的密钥对。在NIST所需安全实现的第二轮开始时,私钥的大小范围从452字节到1,092字节,公钥的大小范围从1,872字节到8,520字节,密文的大小范围从1,872字节到4,616字节。LEDAcrypt允许完全的前向保密性,并使用SHA-3(256到512位)来实现其散列功能但是,像许多其他基于代码的方案一样,容易出现解密失败。LEDAcrypt团队位于意大利。
有关LEDAcrypt的更多信息,请参见www.led acrypt.org。
NewHope
新希望
NewHope是基于环错误学习(Ring-Learning with Error,Ring-LWE)问题的一种CCA和CPA安全的基于格的密钥交换方法。它有四个实例化:
NewHope512-CPA-KEM
NewHope1024-CPA-KEM
NewHope512-CCA-KEM
NewHope512-CCA-CAM
NewHope1024-CCA-KEM
NewHope1024-CCA-CAM
512个环尺寸版本据称等于或大于AES-128,并且1024个环尺寸版本据称等于或大于AES-256。在NIST所需的安全实现的第二轮开始时,CCA版本的密钥大小从1,888字节到3,680字节,公钥大小从928字节到1,824字节,密文大小从1,120字节到2,208字节。NewHope有相对较好的性能,Google已经进行了相当多的探索。它是开放量子安全计划的一部分。
有关NewHope的更多信息,请参见https://newhopecrypto.org.
NTRU
NTRU (第N次截断多项式环)是一个快速的,基于NTRU加密方案的格型KEM(NTRU加密方案自1996年以来一直存在,并且得到了很好的研究)。NTRU是第一个不基于因式分解或离散对数问题的公钥密码系统(在McEliece之后),也是第一个不受Shor算法影响的非对称密码。NTRU在NIST第二轮中是NTRU Encrypt(加密)和NTRU-HRS-KEM的合并,这两个软件在第一轮中分别提交。NTRU的底层密码获得了专利,但后来在2013年发布到公共领域。
在实际的密码学术语中,NTRU使用的格比一般的格有更多的“结构”,这使得它能够比传统的公钥系统(如RSA和ECC)更快地加密和生成安全密钥,并且比大多数第一轮提交的文件(尽管不是所有的)更快。对于NIST所需的安全实现的第二轮的开始,密钥的大小范围从935字节到1590字节;公钥和密文的大小范围从699字节到1230字节。NTRU由一个多国团队提交给NIST竞赛。它是开放量子安全计划的一部分。
有关NTRU的更多信息,请下载https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/round-2/submissions/NTRU-Round2.zip.
NTRU Prime
NTRU总理
NTRU Prime是一种公钥密码系统,被创建为一个专家版的NTRU“调整”版本,为NTRU Prime团队所称的“NTRU Classic”添加更多保护。“ NTRU Prime团队讨论了(https://ntruprime.cr.yp.to/ntruprime-20170816.pdf)所有可能的安全问题与基于格的密码和NTRU经典,然后使用不同类型的环。NTRU Prime团队将他们的密码描述为“高安全性素数度大伽罗瓦群惯性模理想格型密码学的有效实现”,其他人则将其描述为使用“不可约、非分圆多项式”。” 对于大多数非数学专业的学生来说,这两种描述都是相当陌生的,而且解释起来需要更多的数学知识,而这种讨论是不合适的。在NIST所需的安全实现的第二轮开始时,密钥大小从1,518字节到1,999字节,公钥大小从994字节到1,322字节,密文大小从897字节到1,312字节。
NTRU Prime减少了NTRU Classic的一些比较明显的弱点,消除了解密失败,并在恒定的时间内这样做,以减轻一些定时侧信道攻击。即使NTRU Classic团队提交了NTRU Classic的“改进版”,NTRU Prime团队仍然警告完全信任任何基于格的密码学,包括它自己。NTRU Prime是由包括Daniel Bernstein在内的多国团队提交给NIST的。
有关NTRU Prime的更多信息,请参见https://ntruprime.cr.yp.to.
NTS-KEM
NTS-KEM是McEliece和Niederreiter公钥加密方案的基于代码的KEM变体。像许多基于代码的密码,它需要大的公钥大小,但不像早期的,它能够实现CCA安全的不可区分性。NTS-KEM使用的是SHA3-256。在NIST要求的安全实现的第二轮开始,密钥的大小范围从9,248到19,922字节,公钥的大小范围从319,488到1,419,704字节,密文的大小范围从128到253字节。NTS-KEM在所有竞争者中具有最大的公钥和最小的密文大小。只有经典麦克利西接近了。
该团队位于英国,在参加比赛之前已经在英国和美国申请了专利。当前的版本不是恒定时间。一个由Daniel Bernstein领导的团队一直在争论为什么Classic McEliece比NTS-KEM更好,而NTS-KEN的开发者对此进行了反驳:https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/round-1/official-comments/Classic-McEliece-official-comment.pdf.
有关NTS-KEM的更多信息,请参见https://nts-kem.io.
ROLLO
罗洛
ROLLO(Rank-Our boros,LAKE和LOCKER)是一种基于低秩奇偶检验(LRPC)的密码群,它基于NIST第一轮中的另外三种基于密码的密码:LAKE、LOCKER和Our boros-R。LAKE(现在称为ROLLO-I)是一种CPA安全的KEM,LOCKER(ROLLO-II)。是一种CCA安全的PKE(公钥加密),而Rank-Ouroboros(ROLLO-III)是一种KEM。
LRPC是一种相对较新的基于秩度量的编码,它提供了快速的性能和较小的密钥大小。要了解有关LRPC的更多信息,请参阅https://pdfs.semanticscholar.org/d791/016d78b1054ce6c756a55ac78909ede25fdb.pdf.ROLLO密码速度快,密钥尺寸更小。对于NIST要求的安全实现,第二轮开始时,密钥总是40字节,公钥和密文的范围是465到947字节。罗洛拥有一些最小的密钥和密文大小的所有竞争对手,以及锡克。在消极的一面,基于LRPC码的密码还没有得到很好的研究,不像其他机制那样值得信任。ROLLO是由一个法国团队提交的。
Rollo的更多信息,请参阅https://pqc-rollo.org/.
Round5
第5轮
Round5是一组基于格的密码算法,它依赖于一般的舍入学习(GLWR)问题来统一研究得很好的舍入学习(LWR)和环式舍入学习(RLWR)。格的问题,为其提供保护。这是两个独立的NIST第一轮候选人:第2轮和Hila5合并。R5_CPA_KEM是一个CPA安全的KEM,R5_CCA_PKE是一个CCA安全的公钥加密密码。密码和他们的不可区分性要求有些令人惊讶,因为大多数提交的后量子KEM通常是CCA安全的(即,选择密码攻击抵抗),而不是CPA安全的(选择明文抗攻击)。
与其他基于LWR和RL WR的密码相比,Round5在低带宽下具有良好的性能。密钥大小和密文都很短。对于NIST要求的安全实现的第二轮开始,密钥范围从16到32字节,公钥范围从634到1,117字节,密文范围从682到1,274字节。Round5具有第四个最小的组合尺寸(仅次于ROLLO、LAC和SIKE)。Round5团队主要来自荷兰和飞利浦公司,其中有一名英国成员和一名美国成员。
有关第5轮的更多信息,请参阅https://round5.org.
RQC
RQC(Rank Quasi-Cycle)是一种基于准循环秩综合解码困难性的后量子公钥加密算法,它使用随机秩码。RQC使用Gabidulin码,这是众所周知的(在密码和数学界)的推广。Reed—Solomon码进行解码。综合征解码被认为是一种被充分理解的、高效率的解码方法,它可以对噪声信道中发现的错误进行解码--或者用外行人的术语来说,这是一种很好的基于密码的编码和解码方法。对于NIST所需的安全实现的第二轮的开始,私钥总是40个字节,公钥的大小范围从853到2284个字节,密文的范围从1690到4552个字节。它的故障率低到零。
RQC团队位于法国,密码部分由法国DGA(法国政府国防采购办公室)资助。
有关RQC的更多信息,请参见https://pqc-rqc.org.
SABER
军刀
SABER是一个基于格的CCA安全加密和CCA安全的KEM套件,其保护依赖于解决模块学习舍入(MLWR)问题的难度。它提供了三种安全级别:
LightSABER: 类似于AES-128的后量子安全级别
军刀:类似于AES-192的后量子安全级别
消防卫星:类似于AES-256的后量子安全级别
对于NIST所需的安全实现的第二轮的开始,密钥大小范围从832位到1,664位,公钥大小范围从672字节到1,312字节,密文范围从736字节到1,472字节。它具有良好的性能、灵活性和较低的带宽,安全所需的随机性较少。SABER的密码不能用于数字签名。SABER的提交团队设在比利时。
关于SABER的更多信息,见www.esat.kuleuven.be/cosic/pqcrypto/saber/。
SIKE
小溪/超级等温线密钥封装
超级等温线密钥封装(SIKE)是提交给NIST竞赛的唯一基于等基因的密码(套件)。PKE是一个CCA安全的公钥加密方案,SIKE.KEM是一个CCA安全的KEM。SIKE是基于一个同基因键交换结构被称为超奇异异基因Diffie-Hellman(SIDH)。对于NIST所需的安全实现的第二轮的开始,它的私钥大小从44字节到80字节,公钥大小从330字节到564字节,密文大小从346字节到596字节。SIKE具有最小的公钥大小和接近最小的私钥大小。如果您考虑所有三种尺寸组合在一起,SIKE的组合尺寸是所有竞争对手中最小的。
虽然Sike的创建者很快就指出,自上世纪90年代以来,关于椭圆曲线(在有限域上)等量计算的研究相对较新,研究较少。一般来说,同源密码具有很大的潜力,相对较小的密钥长度,但安全性和性能,特别是,仍然是激烈的辩论。您可以通过阅读NIST SIKE审稿人的评论(https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/round-1/official-comments/SIKE-official-comment.pdf).如果超奇异等基因密码学能够经受住长时间的持续攻击,它将有很大的机会成为未来更受欢迎的抗量子密码之一。SIKE拥有一个多国提交团队,是开放量子安全项目的一部分。
有关SIKE的更多信息,请参阅https://sike.org.
ThreeBears
三头熊
ThreeBears是一种基于格的非对称公钥交换密码,使用MLWE的变体构建。ThreeBears提供了一种仅对CPA安全的模式,以及另一种同时对CPA和CCA安全的模式。基本的数学环使用所谓的伪梅森素数。梅森素数是一个小于2的幂(即x2-1)的素数,以法国数学家的名字命名。它们也常用于传统的椭圆曲线密码体制。有关梅森素数的更多信息,请参见https://en.wikipedia.org/wiki/Mersenne_prime.伪梅森素数是具有一个额外特征的梅森数,即减法分量可以是任何大于0的小数字(而不仅仅是1)。根据它的创造者,三只熊的命名是因为它的伪梅森素数与之前的金发姑娘密码使用的素数有相同的数学结构,并且它有三个不同的参数集,分别命名为BabyBear、MamaBear和PapaBear。
ThreeBears还依赖于纠错码,速度相当快,与竞争对手相比,它的密钥交换失败次数是最低的。对于NIST要求的安全实现,第二轮开始时,密钥总是40字节(与其他三个密码并列第二小),并用作种子值。公钥大小从804到1584字节,密文从917到1697字节。
关于三只熊,最大的未知数是基于伪梅森素数的格是否比其他基于格的密码更能抵御密码攻击,这是它的创造者、斯坦福大学和哈佛大学的迈克·汉伯格承认的事实。ThreeBears由Rambus公司支持。
有关ThreeBears的更多信息,请参见https://shiftleft.org/papers/threebears/或www.shiftleft.org/papers/threebears/threebears-spec.pdf.
这些正式的第二轮NIST候选标准中的一个或多个有可能在未来几年内成为美国后量子非对称加密标准。表6.3总结了各种后量子非对称公钥交换和KEM及其密钥和密文大小,这些密钥和密文大小用于最流行的NIST安全级别提交(即级别1、3和5)。
报告值是从密码的NIST提交文件中选取的样本,和/或由提交小组的成员确认。它们可能只反映密码的一个或多个版本,即使报告了更多版本。它们可能不反映密码的特定版本的特定字段的最大或最小值,但被选择为至少相当代表其他可能的值。某些版本的极端值可能无法充分表示。秘密密钥大小在某些情况下可能包括公钥大小--换句话说,它们可能没有在文档中明显地显示出来。
表6.3NIST第2轮PKE和KEMs以及按NIST安全分类级别1、3和5划分的密钥和密文大小。
图例: SK =密钥大小, PK =公钥大小, CT =密文;所有值均为字节。
附注:图表示每个密码套件中特定的密码实现。
PKE和KEM密钥和密文大小的一般观察
下面是一些关于不同的PKE和KEM密钥和密文大小的一般比较观察,如表6.3所示。
没有特定的算法密码类型(代码,晶格,多元)作为一个类被证明始终具有最大或最小的大小。几乎每个级别的大小都有最小和最大的尺寸,大多数在中间。这违背了许多理论讨论的预测,各种类型的密码具有一致的更大或更小的密钥大小。明确的模式出现了,支持理论的论点,但有足够的例外,它并没有使假设的实际规则。
最小的秘密和公钥(以及第二小的密文)是SIKE,其次是ROLLO。
最大的密钥来自Classic McEliece、FRODO-KEM和NTS-KEM。
有四种密码(bike、classic mceliece、frodo-kem和nts-kem)始终具有最大的公钥大小。
经典的McEleece和NTS-KEM公钥大小与其他15种密码相比,是表外的一类,但它们的密文也是最小的(紧随其后的是SIKE和ROLLO)。
最大的密文来自BIKE、FRODO-KEM和HQC。
最小的组合密钥和密文大小来自SIKE,其次是ROLLO,然后是Round5。
一个很棒的在线NIST量子密钥比较网页是https://pqc-wiki.fau.edu/w/Special:DatabaseHome.
除了密钥和密文大小之外,还对每种算法的许多其他特性进行了审查,包括
性能(包括软件和硬件实现)
存储大小(运行时和介质上)
密钥生成
加密速度
解密速度
复杂性
实施的难易程度
失效率
提供安全保护的能力
所有这些因素,以及更多的因素,都是由利益相关者针对每个提交的密码进行审查的。最好地处理这些因素的密码,随着持续的安全弹性,将进展到第三轮和/或最终被认为是NIST后量子标准密码的选择。
抗量子数字签名
量子抵抗数字签名方案是一种对运行基于量子算法的量子计算机不太敏感的加密数字签名。它们不使用基于量子的属性来击败攻击。目前有超过一打的抗量子数位签章方案,虽然九个第二轮NIST非对称候选方案中,有一个或多个可能会成为最终的NIST联邦标准。NIST第二轮数字候选人,按字母顺序排列为:
CRYSTALS-二锂
猎鹰
GeMSS
GeMS公司
LUOV
卢奥夫
MQDSS
Picnic
野餐
qTESLA
量子特斯拉
Rainbow
彩虹
SPHINCS+
括约肌+
附注:至少有三个其他主要的量子抵抗数字签名方案不符合NIST的提交标准:莱顿-米卡里签名(LMS)、扩展的Merkle签名方案-MT(XMSS)和块链后量子签名(BPQS)。至少前两个是有状态的,如果在数据恢复活动期间处理不当,可能会导致问题,BPQS使用了一种相对未经测试的混合方法,它称之为有状态和无状态之间的桥梁。您可以阅读更多关于xmss和lms的信息。https://eprint.iacr.org/2017/349.pdf关于BPQShttps://eprint.iacr.org/2018/658.pdf.
CRYSTALS-二锂/晶体-二锂
晶体-二锂是基于MLWE,作者认为它可以被认为是非结构LWE和结构RLWE之间的晶格。它还使用交互式知识证明思想,称为Fiat-Shamir with Abort(https://www.iacr.org/archive/asiacrypt2009/59120596/59120596.pdf),它与前面提到的ZPK系统相似但又不同。在一个交互式的知识证明系统中,证明者不证明给验证者,它知道x的值。被称为知识提取器的第三个过程证明给验证者。见https://en.wikipedia.org/wiki/Proof_of_knowledge获取更多关于交互式知识证明理论和系统的详细信息。
Dilithium创建相对较小的数字签名和公钥,同时提供AES-128级别或更高级别的安全性。对于NIST所需的安全实现的第二轮的开始,所有实现(NIST安全级别1、2和3)的密钥大小为64字节,公钥大小范围为1,184到1,760字节,签名大小范围为2,044到3,366字节。像其他抗量子的数字签名一样,Dilithium从一个小的私钥开始,在这种情况下是64位,它只是一个种子值,被伪随机化为另一个值,然后算法使用该值生成公钥和数字签名。
当只考虑抗量子数字签名的大小而不考虑任何其他特征时,对于比较目的来说,最有意义的大小是公钥和生成的数字签名(以及它们的总体组合大小)。“私钥”通常可以增加或减少。增加私钥的大小(原始种子值版本或实际用于执行实际工作的最终计算的更大值)通常至少会略微降低性能,反之亦然。实现者通常可以根据自己的选择增加或减少密钥和签名值,以在安全性和性能之间进行权衡。
NIST
NIST指示提交者选择特定的值以满足不同的NIST安全级别要求。团队有时会稍微修改他们的算法或值,以获得改进的大小/性能特征。这也是为什么NIST有一个“比赛”比赛改进了许多算法,或者至少让他们尽可能地考虑他们特定的建议实现。
有趣的是,在第一轮CRYSTALS-Dilithium被提交给NIST后,评审人员发现了一个弱点,这原来是CRYSTALS-Dilithium RNG中的一个简单的两行编码换位错误,实施者承认并在快速更新中修复了这个错误。给公众和其他团队一个审查所有算法的机会,如果他们愿意的话,只会有助于改进所有算法。好的密码算法在公众的审查下得以维持和改进。不要相信那些将自己的算法保密,不允许世界审查和测试的加密创造者。这绝不是安全的好迹象。Dilithium团队是跨国公司,包括来自IBM和谷歌的成员。它是开放量子安全计划的一部分。
有关晶体的更多信息,请参见https://pq-crystals.org/和https://pq-crystals.org/dilithium/index.shtml.
FALCON
猎鹰
猎鹰(Fast Fourier Lattice-based Compact signatures over NTRU)是一个基于NTRU Lattice-based的数字签名算法,基于环短整数解(SIS)问题(与qTESLA一样)。SIS问题是非常难以解决的,虽然大多数基于格的密码学使用的是所谓的最短向量问题(SVP)。FALCON也是基于2008年的工作,导致了一个通用的框架,称为Gentry,Peikert,和Vaikuntanathan(GPV)框架,用于构建安全的散列和签名基于格的签名方案。它还使用浮点算术与53位的精度。
二锂和qTESLA依赖于Fiat-Shamir范式,而FALCON则使用竞争性的“hash-then-sign”范式。基于前者的算法依赖于知识证明系统,并且可能存在安全地签署长消息的问题。Hash-then-sign算法通过首先对消息进行散列(并获得更短的散列结果),然后对散列结果而不是消息进行签名来克服这个问题。
附注:CRYSTALS-Dilithium基于Module-SIS,它与Ring-SIS相似但又不同。本质上,它们都是很难解决的数学问题,但有些比其他的更难。如果你对数学和工作努力的区别感兴趣,可以阅读https://eprint.iacr.org/2012/090.
FALCON是专门为具有良好的性能而设计的,特别是在低内存环境下。FALCON的创建者有意将他们的算法定位为最小公钥和签名大小的有力竞争者,但它使用浮点数学(这在不支持这种数学的平台上降低了整体性能)。
在NIST要求的安全实现的第二轮开始时(只向NIST级别1和5提交了FALCON),FALCON密钥的大小从1280字节到2304字节,公钥的大小从897字节到1793字节,数字签名的大小从617字节到1233字节。根据其创建者的说法,FALCON-512的公钥大小为897字节,数字签名为617字节,其安全性相当于RSA 2048位(公钥和签名为256字节)。Falcon的团队是跨国的,Thomas Pornin是主要的创作者。
有关FALCON的更多信息,请参阅https://falcon-sign.info.
GeMSS
GeMS公司
GeMS公司(大多变量签名方案)是一个EUF-CMA-安全的基于多元的签名方案,产生相当小的签名后量子签名(258至576位,而不是字节,长)。在第二轮开始时,NIST需要安全实现,它使用中到大密钥(公钥大小从352到3,041千字节,密钥从13到76千字节不等)。这给了gems最小的签名,也是所有竞争者中最大的两个公钥大小之一。(彩虹也有类似的特点)。
签名创建过程相当缓慢,但签名验证速度很快。GeMSS是建立在一个较老的多元签名方案,称为石英,它使用vHiddenField方程(-vHFE)使用“减号”和“醋”修饰符。您可以在这里阅读更多有关hfe及其修饰符的内容:https://en.wikipedia.org/wiki/Hidden_Field_Equations.。GeMSS是由一个法国提交小组创建的,作为法国国家项目的一部分。
有关GeMSS的更多信息,请参见www-polsys.lip6.fr/link/NIST/GeMSS.html。
LUOV
卢奥夫
卢奥夫是一个基于UOV的多元公共数字签名方案。UOV产生大的密钥大小和使用非唯一的密钥。这可能会让任何学习过传统密码学的人感到困惑。在传统的非对称密码体制中,每一对公私密钥都是彼此唯一的。使用UOV和其他多变量算法,一个公钥可能最终得到数百万个不同的私钥。这种关系不是1:1。
LUOV使用UOV的修改版本,该版本具有高效的密钥(32字节长),从而允许更小的公钥和更好的性能。LUOV的秘密钥匙在较小的一边。对于NIST所需的安全实现的第二轮的开始,LUOV有从12到76 kilobit的公钥大小和从311到494字节的数字签名,并且它使用伪随机数生成器(PRNG)。然而,该团队并没有提交NIST安全级别1、3或5的建议实现,这使其成为唯一这样做的团队。新的、“解除”的保护方法尚未得到广泛评价和安全测试,尽管基本的UoV已得到广泛审查(至少自1996年以来)。LUOV由比利时团队提供支持。
关于LUOV的更多信息,见www.esat.kuleuven.be/cosic/pqcrypto/luov/。
MQDSS
MQDSS(多元二次数字签名方案)是一种多元数字签名方案,它使用广义Fiat-Shamir变换(如CRYSTAL-Dilithium)和5-Pass Sakumoto,Shirai,Hiwatari(SSH)识别方案。它是第一个多元数字签名是可证明安全的,只依赖于解决多元二次方程的难度,来实现其保护。
对于NIST Round 2安全提交(级别1到4),它的公钥和私钥的大小非常小,分别从46到64字节和16到24字节不等(它们没有提交级别5实例)。这是非常小的,在所有竞争者中并列第一或第二小。不幸的是,它提供了巨大的数字签名,范围从20到43千字节。这是巨大的,并列第二大的所有竞争对手,这是即使在第一轮和第二轮之间的变化,性能加倍,签名大小减半。它本质上是恒定时间。MQDSS有希望,但需要更多的研究、测试和优化。MQDSS有一个多国团队组成。
有关MQDSS的更多信息,请参见http://mqdss.org.
Picnic
野餐
Picnic系列数字签名算法,是NIST提交的唯一使用零知识证明的算法,它提供了一个单一消息的证明。根据Picnic团队的说法,它“不依赖于数论或代数硬度的假设”。与MQDSS和CRYSTALS-Dilithium一样,Picnic的两个变种(Picnic-FS和Picnic2)依赖于菲亚特-沙米尔变换模型,第三个变种(Picnic-UR)依赖于昂鲁变换模型。野餐使用SHAKE。在NIST所需的安全实现的第二轮开始时,它创建了较小的公钥和私钥大小(分别为32到64字节和16到32字节),但具有更大的数字签名(32到125千字节)和更低的性能。
Picnic已经使用TLS和x.509数字证书进行了测试。它是开放量子安全计划的一部分。该团队修改了OpenSSL(世界上最流行的开源加密程序)以使用Picnic以及基于Picnic的数字证书(使用基于Picnic的密钥和签名)。他们使用Picnic建立到Apache Web服务器的TLS 1.2连接,这可能是第一个公开宣布的后量子算法。必须修改OpenSSL以接受和使用与Picnic相关联的较大密钥大小。该团队注意到,TLS标准仅支持65535字节的密钥大小,因此必须对其进行更新,以更容易地支持后量子算法。该团队还测试了Picnic与连接到示例PerkinElmer应用程序的安全硬件安全模块(HSM)设备一起工作,并且获得了成功。这证明了后量子密码学可以在现实世界中使用,只需要稍作修改。Picnic是由一个跨国团队设计的,其中包括微软的研究人员。
有关Picnic的详细信息,请参阅https://microsoft.github.io/Picnic/.
qTESLA
量子特斯拉
QTESLA基于特斯拉家族以前的许多方案,包括BG计划、Tesla方案、环形特斯拉方案和Tesla#方案。它是一个EUF-CMA安全的,RLWE基于格的数字签名方案有两个主要的原始变种:可证明安全(高安全性需求)和启发式(更好的性能)。与其他后量子密码学一样,它依赖于Fiat-Shamir with Aborts变换(从2012年开始),它也基于Bai-Galbraith签名方案的一个更有效的变体(最初于2014年宣布)。它是恒定的时间,具有相对平均的密钥大小和签名。对于NIST Round 2所需的安全实现,公钥大小从1,504到6,432字节,密钥大小从1,216到4,672字节,数字签名大小从1,376到5,920字节。QTesla是开放量子安全计划的一部分。
在NIST的审查过程中,发现了一个弱点(见https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/round-2/official-comments/qTESLA-round2-official-comment.pdf)并在后续的版本中进行了修正,尽管对于是否真正修正仍有一个持续的讨论。这些类型的强硬,“通过火锻造”的辩论是有益的密码学和最终的赢家,无论它可能是。QTESLA有一个跨国团队,包括微软的研究人员。(www.microsoft.com/en-us/research/project/qtesla/).
有关qTESLA的更多信息,请访问www.qt esla.org。
Rainbow
彩虹
Rainbow是一个EUF-CMA安全的多元数字签名算法,使用了Unbalanced Oil&Vinegar的多层实现。所提出的算法包含几个变种最大化的性能,大小,或安全。它使用SHA-2散列算法,根据安全分类从256位到512位。
签名生成速度非常快,签名大小也很短。对于NIST要求的安全实现的第二轮开始,私钥的范围从93到1,227千字节,公钥的范围从149到1,705千字节,签名的范围从512到1,632位(不是字节)。像GeMSS,这给之间的所有竞争对手的最小签名,但也最大的秘密和公共密钥。键的大小可以做得更小,但这样做会降低整体性能。
安全方面,Rainbow是经过更多测试的后量子算法之一。创建于2005年,上一次成功的需要修改代码的攻击发生在2008年。这是超过10年没有更好的攻击它。尽管如此,研究人员仍在继续挖掘算法的弱点和攻击面,包括这篇2018年的论文:www.hindawi.com/journals/scn/2018/2369507/。
更多信息,请下载https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/round-2/submissions/Rainbow-Round2.zip.
SPHINCS+
括约肌+
SPHINCS +是一个无状态的基于哈希的数字签名方案,有三个变种。它是基于2015年推出的SPHINCS的改进版本。改进的重点是减少由此产生的数字签名大小。这是一个灵活的框架,有超过36个变种的组合,包括
SPHINCS+-SHAKE256
括约肌+鲨鱼 256
SPHINCS+-SHA-256
括约肌+ SHA - 256
SPHINCS+-Haraka
括约肌+原板
SPHINCS +基于已知和使用已久的基于哈希的数字签名,最早创建于 20 世纪 70 年代末(以及第一个非对称密码)。SPHINCS +是 2017 年提交的第一个抗量子数字签名方案。SPHINCS +是无状态的,这点很重要。
SPHINCS +的创建者通过拥有一个顶级的、不变的基于 XMSS 的公私密钥对来签名和验证其他执行签名的低级伪随机密钥对实现了这一点。创建者称之为超树(与标准的Merkle树相比),基于在超树底部使用几次签名方法(这是它与基于状态散列的签名的区别)。在超树的根结点中,单个的、重用的私钥被用作种子值的排序,然后伪随机函数使用该种子值生成较低的结点密钥对。
SPHINCS +使用 SHA256 、 SHAKE256 或 Haraka ,它有小签名和更快的版本。对于相同的密钥大小,更快的版本具有更大的签名。对于NIST要求的安全实现的第二轮开始,公钥的范围是16到32字节,私钥是64字节,数字签名的范围是8,080到49,216字节。这使得括约肌+有一些最长的签名。
括约肌+保守的设计目的。因为它是基于散列的,所以它不容易受到Shor算法的影响,而且主要是担心Grover算法的进步。唯一的主要问题是对散列函数本身的加密攻击(对于使用消息初始散列的任何签名方法都是如此)。不幸的是,基于 SPHINCS + hash 的方法也意味着它与大多数竞争者相比速度相对较慢,并且生成更长的数字签名。
SPHINCS +的创建是由欧盟委员会通过其信息和通信技术( ICT )计划和美国国家科学基金会资助的。SPHINCS+是由一个跨国团队创建的,包括首席研究员Andreas Hülsing和Daniel J.Bernstein。
有关括约肌+的更多信息,请参见https://sphincs.org.
正如你所看到的,有很多抗量子算法进入了NIST评估过程的第二轮。表6.4总结了各种数字签名方案及其密钥和签名大小。
报告值是从团队的NIST提交文件中选取的样本,即使报告了多个版本,也可能反映算法的一个或多个版本。它们可能无法反映特定方案的最大值或最小值,但它们被选择为至少能相当代表其他可能的值。某些版本的极端值可能无法充分表示。
签名密钥及其大小的一般性观察
下面是一些关于各种数字签名密钥和签名大小的一般性比较观察,如表6.4所示。
没有特定的算法方案类型(哈希、格、多元或ZKP)被证明具有最大或最小的大小。几乎每个班级的规模都有最小和最大的代表,大多数在中间。
最小的密钥来自 LUOV 和 Picnic ,紧随其后的是 SPHINCS +。野餐和括约肌+也有最小的公钥大小。
到目前为止,最大的秘密和公开密钥来自GeMSS和Rainbow,但它们也产生了到目前为止最小的签名(唯一以比特对字节衡量的签名)。
最大的签名来自野餐,其次是SPHINCS+和MQDSS。
每个算法也正在审查许多其他特点,包括
性能(包括软件和硬件实现)
存储大小(运行时和介质上)
密钥生成
加密速度
解密速度
复杂性
实施的难易程度
失效率
提供安全保护的能力
表6.4:NIST第二轮数字签名算法密钥大小(按NIST安全分类)
图例: SK =密钥大小, PK =公钥大小, Sig =签名大小。
注1:除非另有说明,以字节为单位的大小。K =千字节, b =比特。
注2:数字仅对每个加密套件中的特定算法实现是准确的。
所有这些因素,以及更多因素,都由利益相关者对每个提交的算法进行审查。最好地处理这些因素的密码学将进入第三轮和/或最终被考虑为NIST后量子数字签名标准选择。
警告
后量子密码是必要的,在一个我们的许多传统密码可以被打破的世界。我们的保护将通过增加传统密码的密钥大小和实现量子抵抗和基于量子的密码学来实现。我们将首先使用抗量子密码,然后是基于量子的密码。
这是我们正在进行的安全战的本质。直到我们有足够的量子计算机和处理能力,供应商可以建造廉价的量子计算机,客户可以大规模购买,我们才能拥有广泛、廉价和可用的量子密码学。当这种情况发生时,我们可能都将使用基于量子的密码学。
不过,在那之前,有钱的对手会有足够多的量子计算机和处理器来攻击我们传统的量子加密技术。使用抗量子密码是我们从现在到未来的桥梁。我们将被迫实施抗量子密码学作为一种中间防御。
然而,有几个重要的原因,为什么人们不应该简单地轻率进入量子抵抗(或基于量子)密码过早。三个主要问题是缺乏标准,性能问题,以及缺乏验证保护。
缺乏标准
本章重点介绍了NIST和世界上选择后量子密码标准的尝试。的标准,目前有26个加密方案正在审查中,只有两个(或者更多)会胜出。如果你现在选择实现一个特定的抗量子算法,有一个更大的机会,你不会选择一个成为新的标准。
如果选择错误,则一旦新标准被了解或停留在您自己选择的(非标准)实现中,你还可以切换到新标准。史表明,后一种选择的效率非常低,而且会显著增加您的安全性和/或操作风险。选择继续使用非标准算法可能是有风险的,因为对于一个特定的算法(例如它声称的安全保护或性能问题),经常会有强烈的争论,为什么它没有被选为最终的标准。
从一个过早选择的后量子算法转移到新的标准当然是更容易接受的前进道路,但可能会增加整体成本。您应该开始尝试实现抗量子加密,但要小心大范围的全面生产部署。你不想花太多的钱走上一条可能不正确的道路。一个更好的选择是开始用一些值得信赖的抗量子算法进行有限的实验和部署,并确保你现在购买的产品是加密敏捷的。加密敏捷意味着无论它现在使用什么现有的加密算法,都可以根据需要很容易地用另一种算法替换。更多内容请参见第九章“立即准备”。
性能问题
即使抗量子加密标准具有较小的密钥大小,创建和验证密钥所需的工作量通常也比传统加密大得多。这就是为什么NIST竞赛需要大量的性能测试和提交者都在尽力优化他们的算法的速度。NIST可能会选择一个后量子标准,具有良好的性能/安全性权衡,但移动到后量子算法可能会降低整体性能,即使在最好和最快的计算机和设备。在生产环境或产品中大规模迁移到抗量子算法之前,必须经过仔细考虑。
缺乏验证保护
最重要的是,大多数抗量子密码算法在很长一段时间内都是相对较新且未经测试的.有几个例外,但大多数抗量子算法甚至不能完全被他们的创建者完全信任,因为它们永远是安全的。大多数涉及到新的复杂的数学,目前看来这些数学从不平凡到不可打破。但是,只要出现一种新型攻击或一种新算法,就能使抗量子算法提供的安全保护彻底崩溃。
如果你看看今天的现代密码学,并以它的历史为指导,这一点尤其正确。就在几年前,使用128位密钥的对称密钥加密被认为是非常强大的,但现在量子计算机与格罗弗的算法配对,使它们的保护减半。Shor的算法已经做好了准备,可以破解当今大部分的公钥加密。自从Shor的算法发表以来,有许多新的算法被创造出来,声称在素数破解方面比Shor的算法更好。这就是进化。这就是进步。关于加密攻击的一个真理是,随着时间的推移,它们只会变得更好,它们攻击的加密技术只会变得更弱。
在可预见的未来,我们无法知道抗量子密码是否无法破解。我们不会知道,直到几十年过去了,其中每一个算法都经历了一次又一次的攻击,并继续生存。我们无法知道下一个肖尔或格罗弗的算法突破何时会到来,但很可能会有进一步的突破。然后有一天,我们的量子抵抗算法将被削弱和下降,就像SHA1,MD5,DES,以及在他们之前的众多密码学。在其他强大算法的许多现实世界实现中,可能会发现更多的风险和漏洞。我们很少写出没有bug的代码,这是人类的天性。当任何人告诉你某个东西是无法破解的时候,他们总是错的。
尽管如此,我们没有其他更好的选择,只能相信,量子抵抗密码术会给我们比传统密码学更多的保护,并给我们足够长的保护时间,直到我们完全、长期地向基于量子的密码学过渡。请注意,没有任何东西,甚至是量子抵抗密码学,是无法破解或错误证明。这是一个风险,我们都必须接受,直到其他更好的出现-就像我们对传统的,现代的密码学,是我们今天所依赖的。
更多信息
以下是Daniel Bernstein在2009年发表的一篇关于后量子密码学的优秀论文:https://pqcrypto.org/www.springer.com/cda/content/document/cda_downloaddocument/9783540887010-c1.pdf.
有关后量子密码学和PerkinElmer的精彩讨论,请访问www.primekey.com/wp-content/uploads/2017/08/post-quantum-algorithms-for-pki.pdf.
总结
本章涵盖了抗量子密码学,并总结了在NIST的后量子密码学标准化竞赛中晋级第二轮的26种密码算法。本文探讨了不同类型的抗量子算法,以及它们的优缺点和密钥大小。其中至少有两种或两种以上的算法(一种用于公钥加密,另一种用于数字签名),可能在未来几年内成为美国新的后量子加密标准。第七章将介绍基于量子的密码学。