2020年7月22日是公钥密码技术发展史上的又一个重要的里程碑,美国国家标准与技术研究院(NIST)公布了进入第三轮评审的七种后量子时代公钥密码算法,引起了国际密码学界的高度关注[1]。
公钥密码目前是足够安全的,但是量子计算机的进步和传统电子计算机的飞速发展对公钥密码的未来安全投下了阴影。为了确保互联网的长治久安,不断地完善和提高公钥密码的安全性,未雨绸缪作好充备的准备,这已经成了通信密码学界的共识。
从2012年起,NIST启动后量子时代密码(PQC)项目,成立了包括12个密码专家的项目成员组。表一展示了NIST推动PQC标准化的时间表。
到2017年11月30日截止日期前,NIST共收到各种后量子时代公钥密码算法82项,其中59项有关秘钥分发/加密解密,23项有关身份认证/电子签名。这些算法分别来自美国16个州和世界六大洲共25个国家。其中共有69种候选算法同时满足最低验收标准和提交要求,被正式列入第一轮审核程序。
第一轮评审持续到2019年1月,在此期间对候选算法的安全性、效率和其他特性进行了深入的评估,然后NIST选择了26种算法进入第二轮评审。接着在公众反馈和内部反复的测试评估的基础上,通过大浪淘沙,有15种算法脱颕而出进入第三轮评审。这15种获胜的算法被分成两组,其中的7种入围决赛,另8种将作为候补算法。详见图一。
决赛入围的密码算法很有可能在第三轮评审结束后立即进行标准化。由于CRYSTALS-KYBER,NTRU和SABRE都是基于格理论的密码算法,因此NIST打算选择其中的一种作为密钥分发的最后标准。对于数字签名方案也会在CRYSTALS-DILITHIUM和FALCON中二选其一。由此看来,基于格理论的密码算法似乎是用于公钥加密、密钥分发(KEM)和数字签名方案的最有前途的通用算法[2]。
NIST这次设立候补小组颇具创意。在下一轮评估后,某种候补算法有可能弯道超车,被选为最后的标准算法。另外,某些运营效率较差的候补算法也有可能因为其高安全性而被推荐给特定客户,以満足某些应用场景的特殊需求。
接下来的第三轮评审预计将持续12至18个月。在这个攻坚阶段中,NIST 希望密码界同仁们能对候选方案作出更深入的评估。NIST 特别强调,评审的重点除了密码算法的安全性以外,必须把算法抗侧道攻击的能力,算法与互联网协议的兼容,以及算法在各种硬件设备上运行的效率作为评价的重要依据。
NIST计划在2021年春季或夏季主办第三次PQC标准化会议。希望在2022年初在最后胜出的算法中选定几个实施标准化,因此第三轮将作为PQC标准化第一阶段的最后一轮评审。
下面谈谈我对PQC发展策略的几点体会。
1) 君子引而不发,跃如也。
近年来,NIST主导下的后量子时代公钥密码标准化过程一直在紧锣密鼓地进行中,在新冠疫情引发的全球性灾难中,PQC标准化依旧按照原定的时间表有条不紊地向前推进。但是NIST也反复强调,如果评審过程中有新的技术突破或其它不确定因素出现,PQC标准化进度会隨时作出调整,不排除增加新一轮(第四轮)评审的可能。
量子计算机对公钥密码安全毕竟没有现实的威胁,所以完全没有必要急于固化技术匆忙推出产品;但同时又保持高度的警惕,不断研发、测试并掌握多种新的抗量子攻击的密码算法,一旦面临威胁立刻可以把研究成果产品化并投入实用。文武之道、一张一弛,NIST在推进PQC标准化的过程中始终保持着良好的节奏感。
老家苏州有句俗语:不要船还没翻就跳进河里去。为了互联网的长治久安,密码安全的研发必须时刻准备着,但千万不要操之过急自乱阵脚。君子引而不发,跃如也。这才是真正谋长远、做大局的正确决策。
2)具有现实感的理想主义者
一种技术的优劣是由该技术的多项性能共同决定的,因此技术评审时,在选取考核的各项性能和确定它们的权重时必须统筹兼顾有全局观念。评估密码算法的核心标准是安全性,这毫无疑问,但是NIST又把密码算法的运行效率、与互联网的兼容性等作为评估的重要标准,这是十分明智的做法。技术评審不是选美,不是挑花架子出来做秀。评审的最终目的是挑选最实用的技术以满足市场的需求,这就注定了必须从使用者的角度出发,把技术的可行性、易用性放在十分重要的位置。
另外,在指定技术性能的标准时,也必须科学合理、实事求是。NIST在整个评审过程中从来也没有提出过“无条件绝对安全”这类不合理的要求。因为“无条件绝对安全”的要求不仅很难实现,而且为了这个目标一定会付出难以承受的代价,在工程界的词典中它从来就不存在。
从更长远的角度来看,任何技术都需要更新和完善,公钥密码技术当然也不例外。但是更新后的系统必须与互联网的总体框架协调,升级换代的过程也要稳步有序地推进。密码系统牵动整个互联网的生态环境,这是一个比操作系统更为庞大复杂的生态系统,对于这种牵一发而动全身的技术更新,千万不能异想天开、草率行事。
一个优秀的工程师应该是具有现实感的理想主义者。只有理想不顾现实,就会走向极端导致失败;反之,只有现实而没有理想,则难以脱颖而出迈向优秀。一个优秀的工程师就是不断地在理想和现实之间寻求妥协、保持平衡。
3)以多元化应付不确定的未来
NIST在多轮评审中,在淘汰一些密码算法时保持了高度的克制,在推出本轮候选算法时特地安排了一个包括8种密码算法的后备梯队。NIST为了保留抗量子密码算法的多样性上可谓是煞费可心。
评审后量子时代公钥密码是为了应对未来信息安全的挑战,而未来是高度不确定的,信息安全领域更是技术对抗博弈的战场,需要面对的问题高度复杂和不确定。技术多样性是应付高度复杂且不确定的未来的唯一选择,地球上生物能够绵延数亿年靠的就是多样性,这里面的道理是相通的。
后量子密码技术PQC是以数学为基础的软件技术,软件技术可以让多种密码算法共存于一个系统之中,这使用过程中可以方便地更新和切换,所以PQC其实是对抗后量子时代高度不确定环境的唯一途径。
关于公钥密码的升级换代,存在两条绝然不同的技术路线:主流路线是IETF推出TLS1.3,NIST规划用十年的时间制定后量子时代密码的新标准;另一条路线是中国开建量子密码干线工程,这两种路线形成鲜明的对比,世界主流路线PQC是渐进、开放和合作的路线,釆用的是以数学原理为基础的软件技术;而中国的QKD相反採取了激进、封闭的路线,釆用的是以物理原理为基础的硬件技术。究竟哪条路线能更有效地确保互联网未来的安全呢?我觉得都不用查看内容,单从思维层面上来看,高下立见。
当然,中国密码界不乏有识之士,我的母校复旦大学和上海交大在PQC的学术研究领域都有高水准的成果。但是科硏的资源和媒体的灯光全都聚焦在中科大的量子通信项目上,所以对PQC的进展就鲜有人知。
近期量子通信的宣传基调也作了调整,反复强调QKD不会取代传统密码,而是要与传统密码合作,特别提到要携手PQC共同对抗量子计算机威胁。但问题是PQC有完整的解决方案,它完全不需要QKD,有关PQC的所有国际会议和海量资料中对QKD没有只字片语,这就是明证。量子通信想要牵手PQC恐怕只能是一厢情愿的单想思罢了。
[1] https://nvlpubs.nist.gov/nistpubs/ir/2020/NIST.IR.8309.pdf
[2]公钥密码的功能可归纳为三个方面:1)为通信双方建立共享的对称密钥;2)为通信双方提供身份认证,以及保证传输文件的完整性和不可抵赖性;3)提供数据的加密解密功能。公钥密码功能中第一和第二项是互联网上数据传输安全的根本保证,大多数情况下有第一第二项就足够了。其中第三项与第一项在功能上有重叠:一般而言,数据的加密解密应该依靠通信双方取得的对称密钥,而不是公钥密码。