后量子密码研究思考与实践
2022年10月,法国物理学家阿兰•阿斯佩Alain Aspect,美国理论与实验物理学家约翰•弗朗西斯•克劳泽John F. Clauser以及奥地利科学家安东•塞林格Anton Zeilinger共同获得了诺贝物理学奖,以褒奖三位物理学家用实验方式证实了被爱因斯坦所描述的纠缠态粒子间“鬼魅般的超距作用(spooky action at a distance)”。随着量子计算、量子通信、量子密码等的不断发展,量子技术近年来走上了大众视野,并得到广泛关注,量子研究正稳步向前、走向成熟。
作为量子领域的最关键的应用之一,量子计算机具备运行速度快,解决特定问题处理能力强等特点,因此受到了国内外众多学者和技术研究机构的关注,发展尤为迅猛。从上世纪 80 年代初期,美国物理学家Paul Benioff首次提出量子计算的概念并设计出可执行的、有经典类比的量子图灵机以来,包括中国、美国、英国、日本等在内的多个国家均宣布其在量子计算机的理论和工程领域取得了巨大进展。
图1. IBM量子处理器开发路线
尽管量子计算机的出现与发展给计算性能带来了极大的提升,但同时也给个人和企业的数据隐私造成了现实的安全威胁。根本原因在于,当前大多数密码算法,如Diffie-Hellman(DH)、RSA、ECC等,其安全性都是基于传统的数论难题,例如离散对数Discrete Logarithm和大整数分解Integer Factoring问题。而在量子计算时代,这些问题都不再“困难”。事实上,
同时,由于当前互联网中广泛使用的安全协议和密码系统多数基于DH、RSA、ECC等经典算法进行设计和构造,当这些底层算法在量子计算机面前不再安全时,利用这些协议和系统保护的敏感数据也就存在被攻破的风险。
图2. 后量子密码迁移时间线
应对量子计算机给数据安全带来挑战的有效方法是完成算法与协议的后量子(可抵御量子计算机攻击)密码迁移(Post-Quantum Cryptography-PQC Migration),也就是将所有目前采用的基于传统数论难题的公钥密码算法,替换为抗量子计算攻击的后量子密码算法版本,使其既能在传统的计算机上面高效运行,又能在有效时间内抵抗量子计算机攻击。目前,学术界与工业界针对后量子密码算法的研究已持续多年,主流后量子密码算法类别包括:
1)基于哈希(Hash based)的密码系统,其中,由Merkle设计的Hash-Tree的公钥签名方案是此类密码的典型方案;
2)基于编码(Coding based)的密码系统,例如由McEliece设计的“Hidden-Goppa-Code”公钥加密方案,以及由我国王新梅教授的新梅方案等[4];
3)格基密码(Lattice based),基于格上难题构造的密码算法目前吸引了越来越多的关注,早期格基密码的一个典型代表是著名的NTRU方案;
4)多变量(Multivariate based)公钥密码,如1988年Matsumoto设计的多变量加密、签名方案;
5)基于超奇异同源(Supersingular Isogeny)的算法,提供了基于特殊椭圆曲线代数结构上的后量子密钥交换算法;
6)其它密码算法,如基于零知识证明ZKP、分组密码算法AES256等。
量子计算机的威胁不是一个即时问题,而是一个持久问题,攻击者完全可以由公开信道提前获取并大量存储由经典加密系统加密的密文,以待足够强大的量子计算机出现后再进行破解,即“现存后解”(Store Now and Decrypt Later-SNDL)攻击。在 2022年5月《自然》杂志发表的《后量子密码迁移指南》[3]中,对SNDL攻击以及后量子密码迁移时间线(如图2)进行了说明。可以说,后量子密码迁移是一项长期的工作,需尽早布局并尽可能提前完成后量子密码迁移工作,以保证个人、企业以至国家的核心数据在量子时代的安全。
目前,对传统基于数论的密码系统造成威胁的攻击算法主要有两种:Shor算法和Grover算法。前者能解决
Shor算法:由Peter W. Shor提出,使用了量子叠加的比特位来高效的运算离散傅里叶变换(DFT),使得在量子计算机下降为\(O(log^2 N)\)。利用这个特性,Shor算法可以有效解决有限交换群的隐藏子群问题(HSP),进而解决大整数分解和离散对数问题并对现有的RSA、DH、ECC等公钥加密系统构成严重威胁。
Grover算法:也称为量子搜索算法,由Lov K. Grover于1996年提出。算法基于量子叠加态和量子相位干扰原理,相对于传统搜索算法,可在无序序列中以平方倍的速度搜索出特定数。Grover算法主要是针对传统密码学中的对称加密算法或哈希函数。目前已知的针对对称加密算法AES和安全哈希函数的攻击方法,复杂度为\(O(N)\)。利用Grover算法,在量子计算机上进行同样的攻击需要\(O(N^{1/2} )\)的复杂度,因此,只需要提高加密算法的安全参数就可以做到后量子安全,比如使用AES512替代AES256,或将Sha-3的输出长度翻倍等。
综上所述,后量子密码迁移的关键在于替换易被Shor算法攻击的公钥密码算法,如RSA和ECC。当前较通用的解决方法是采用格密码算法或基于哈希的后量子数字签名系统。
这一类加密系统的安全性可以归约到向量空间上的计算困难问题。如最短向量,最近邻搜索等。格密码的优势主要是在性能方面,可以与经典的公钥加密系统相当,因此可以用来实现更复杂的密码协议,如同态加密和安全多方计算协议等。但是格密码需要谨慎的选择安全参数,以确保安全性。
格的定义:
格是维欧式空间的个线性无关向量组\(b1,b2,…,bn\)(称为格基)的所有整系数线性组合。同一个格可以用不同的格基来表示。m称为格的维数,n称为格的秩,m=n时,二维格和格基如图2所示。
图3. 二维格示例
如图3所示, (V1,V2 ),(V1',V2' )是二维格的两组格基,(V1',V2' )趋于正交,称为优质基,(V1,V2 )夹角较小,称为劣质基。
格上的困难问题:
a) 最短线性无关向量问题(SIVP):对于一个维度足够高的格,通过一组格基找到一组短格基是困难的;
b) 最近向量问题(CVP):给定一组格基向量bi和目标向量V,能否有效找到一组整系数Ci,使得由这组整系数和格基向量所确定的向量V'=∑i Ci bi 距离目标向量V最近,在一个足够复杂的空间里,CVP问题是NP难问题。
格密码算法所基于的困难问题通常是容错学习(Learning With Error-LWE)。LWE问题的输入是矩阵A和向量v,v=As+e,从中恢复出s是困难的,LWE问题可以归约到上述的SIVP问题。
一个简单的基于环Ring-LWE问题的密码方案:
a) 密钥生成:公钥记为(a,b=as+e),私钥记为s。a,b,s,e均为多项式,且s,e的系数是比较小的。
b) 加密:将待加密的消息记为{0,1}系数多项式m,随机选取三个系数较小的多项式r,e1,e2,计算密文(c,d),其中c=ar+e1,d=br+e2+m(q-1)/2。
c) 解密:通过d-cs的方式还原m,如果d-cs的第i个系数距离0更近,则令m的第i位为0;如果d-cs的第i个系数距离(q-1)/2更近,则令m的第i位为1。【通过判断每一位来获得整个消息】
正确性验证:
\(d-cs=br+e2+m(q-1)/2-(ar+e1)s=er+e2-e1s+m(q-1)/2\)
如果m的第i位为0,则d-cs的第i位为er+e2-e1s的第i个系数,而r,e1,e2都是系数比较小的多项式,因此结果靠近0;如果m的第i位为1,则d-cs的第i位为多项式er+e2-e1s的第i个系数加上(q-1)/2,此时结果更靠近(q-1)/2。
以上就是一个简单的格公钥密码方案,除了前面提到的需要谨慎选择安全参数来保证格上数学问题的困难性,还需要选取适当的参数来保证算法的正确性。
数字签名不同于公钥加密,其过程可以存在信息损失。在传统计算机中,数字签名的存在性等价于单向函数(One Way Function)的存在性。因为可将哈希函数看作任意布尔电路,进而将其安全性归约到NP完全问题上,因而理论上通过哈希函数就可以构造出足够安全的数字签名算法。
Lamport一次签名方案
a) 密钥生成:预设待签名消息长度为\(t\),随机选取Hash函数的原相\((x_0^1,x_1^1),(x_0^2,x_1^2),...,(x_0^t,x_1^t)←{0,1}*\)。对于所有\(a∈{0,1},i∈[t]\),计算公钥\(y_a^i=h(x_a^i)\)。输出密钥对\((sk,pk)←({x_a^i},{y_a^i}),a∈{0,1},i\in [t]\)。
b) 签名:定义\(m_i\)为消息\(m\)的第\(i\)个比特,输出签名\(sig←{x_{m_i}^i },i∈[t]\)。
c) 验证:验证\(y_{m_i}^i=h(x_{m_i}^i))\)。
以上签名方案只能进行一次签名,这是因为:如果得到两个超过1位不同的消息的签名,就可以构造第三个合法签名,从而破坏签名方案的存在不可伪造性。不过,结合Merkle树可以将一个一次签名方案扩展为可多次签名的方案,且允许签名的数量可预先设定,如图3所示。
图4. Merkle签名示意图
如图4所示,假设要对消息\(m_{19}\)进行签名,在利用某个一次签名方案签名\(m_{19}\)后,可以输出节点19到根节点1的路径上所有相邻节点的私钥共同作为完整签名,即\(K_{18},K_8,K_5,K_3\)。签名验证过程中,通过两个子节点对应的签名联合计算并验证是否与父节点对应签名匹配,直到验证到根节点\(K_1\)。
除此之外,后量子安全的密码算法还包括多变量加密系统、基于椭圆曲线同源的系统、基于编码的加密系统等。但这些加密系统有的性能表现太差,不具备实用性,有的没法归约到经典的计算困难问题上,因而没有成为主流后量子密码选项。
上述算法一定是抗量子的吗?现在看来是的,但未来却不一定。就像RSA在提出之后不久就有了很多攻击方法,但RSA算法自己也在不断改进完善。在经过了大量业内学者的研究和评估下,很有可能某些算法就被发现并不安全,比如基于超奇异同源的密钥封装SIKE算法就被发现是不安全的。那为什么还要做后量子的迁移呢?早一步布局后量子密码迁移,数据就早一步实现了后量子安全。如同RSA算法一样,就算目前使用的方法还不是那么完善,但在不断的改进中,最终会走向成熟。一般来讲,一项基础密码算法从提出到被行业广泛应用,大约需经历20年的验证与完善期,但随着量子计算时代的加快来临,后量子密码急需尽快成熟并替换现有密码体系。目前来看,通过上述方法(如格、哈希等)构造的算法非常有可能成为量子时代的标准密码算法。
美国国家标准与技术研究所(NIST)于2009年发布了后量子密码算法综述,2012年正式启动了后量子密码算法标准项目,2016年发布后量子密码算法征集公告,相关评估工作分为3轮进行,每轮18个月左右,预计2024年之前完成。初期的征集一共收到了82份文件,经过长时间的评估以及同行之间的算法攻击,发现了很多算法并不安全。在2022年7月,NIST公布了4项杀出重围并将进行标准化的算法提案,包括密钥封装算法CRYSTAL-Kyber,以及三个数字签名算法CRYSTAL-Dilithium,Falcon和SPHINC+。同时公布了四个第四轮候选的密钥封装算法:BIKE,McEliece,HQC和SIKE算法(如图5)。然而近期比利时鲁汶大学团队公布的论文提出SIKE算法的SIDH安全假设在某些情况下是可破解的。
图5. NIST 2022年公布的标准算法和候选算法
2022年2月,美国公布了《关键和新兴技术清单》,将后量子密码作为量子信息技术列入了国家安全的考虑范围中。2022年5月,《自然》杂志发布的《后量子密码迁移的指导综述》指出由于SNDL攻击的存在,向后量子密码迁移是一件现在就要开始做的事情。美国互联网工程任务组(IETF)也在制定改进的传输层(TLS)协议,以适配后量子密码算法。著名咨询公司Gartner预计在2023年,将有20%的组织开始筹备后量子密码迁移工作。
国家信息基础设施安全是国家安全的核心关基环节。从近期西北工业大学遭受美国国安局网络攻击的事件看来,美国正在对我国的关键设施进行全面网络渗透和信息窃取,并很有可能已经存储了大量的使用传统数论密码(RSA,ECC)加密的数据以用于现存后解SNDL攻击,这也势必对我国信息安全造成了重大安全隐患。加快推进我国后量子密码标准化与迁移工作,对保障我国国家信息安全已显得至关重要。
中国密码学会在2019年启动了密码算法竞赛,征集了一系列后量子密码算法。其中,LAC算法成功获奖,并进入了NIST第二轮后量子密码候选算法名单。清华大学的丁津泰教授提出的Rainbow算法,成功加入了第三轮的NIST决赛算法。但两者都在激烈的同行审议中被发现存在可被攻击方式。除此之外,中国密码学会也举办了量子密码学术年会,除学术界在研究和探索后量子密码技术之外,我国企业对于后量子密码标准化研究工作的关注与早期工程化工作仍显不足。整体上,当前产业界对后量子安全的研究维度不高,仅有个别企业开始推进包括从软件协议层面小范围的尝试后量子密码迁移,从硬件芯片层面来加速后量子密码的运行效率,从安全性上对已有后量子算法进行评估等。此外,有区块链公司也开始关注后量子的区块链技术以保障量子计算时代链上数据的安全,比如如何实现多重签名、环签名、门限签名、零知识证明等技术的抗量子能力与链的融合,并且关注算法的替换。
天翼电子商务有限公司(翼支付)作为中国电信互联网金融与科技战略重要版块之一已积极推进后量子密码迁移的理论研究与工程实践工作。如图6所示。
图6. 中国电信在后量子安全领域的探索工作
具有标杆意义的NIST后量子标准化进程已进入收尾阶段,但从SIKE算法被攻破这一案例来看,仍然无法确定仍处于标准化进程中的算法是否足够安全。鉴于目前算法安全的不确定性,电信团队并没有直接进行核心算法的后量子密码迁移工程,而是采用基于“国密SM系列算法+PQC后量子候选算法”相融合的方式进行探索,遵循只要国密算法或PQC算法其中一种没有被攻破,那么攻击者就无法攻破融合后的密码算法这一思路。同时,系统预留标准化接口,为后续转为国产后量子标准算法留出可拓展、可插拔的灵活空间。
翼支付综合考虑后量子安全与迁移对量子计算机时代数据安全融通的影响与意义,将后量子安全与迁移这项工作从具体密码算子,扩展到包括隐私计算与区块链在内的多个领域。概括来说,在后量子安全领域的布局可以分成五个维度,包括硬件层、传输层、基础算法层、进阶算法层和应用层(如图6):
1)在硬件层,积极探索软硬结合的方式,如后量子+隐私计算的一体机,以增强后量子密码算法的效率和安全性;
2)在传输层,采用后量子+国密的融合方案代替传统Diffie-Hellman协议来逐步重构TLS/SSL,作为底层数据加密通信协议;
3)在基础算法层,给出四个基础密码模块,为上层的进阶算法以及应用层提供基础能力,包括密钥协商、公钥加密、数字签名以及国密+后量子混合密钥策略。这些基础算法设计遵循标准化、可插拔思想,一旦最新研究发现某算法安全性比较弱或被攻破,可快速替换为新型的安全算法;
4)在进阶算法层,推进利用后量子密码算法改进隐私计算中的多种上层算法,以允许参与方在不暴露自己的数据的前提下实现后量子安全的数据融通。例如,重构实现后量子安全的不经意传输(Oblivious Transfer-OT)协议,并基于其构造后量子安全的隐私查询方案(OT -》PIR);将VOLE算法和ECDH算法替换为抗量子密码算法以实现后量子安全的安全求交(Private Set Intersection-PSI)协议;另一方面,设计了基于格公钥密码的多方自定义计算方案;而在联邦学习中,采用基于格的同态加密算法取代了传统的Paillier算法。此外,对抗量子的环签名、群签名算法和抗量子的零知识证明协议进行了部分设计与工程实现,以期提升量子计算时代区块链的安全性;
5)在应用层,通过底层的后量子密码能力,对于上层的数据融通及应用提供抗量子密码分析和攻击的能力,包括但不限于数据流通、数据存证、金融反诈、密态推理、电子支付等。
量子计算技术的研发与后量子密码标准化是一项长期的工作,由于上述工作所基于的后量子算法仍处于标准化进程阶段,仍有大量研究与验证工作待学术与产业界共同推进完成,因而中国电信所推进的后量子技术研究与工程化工作以积累实践经验,储备技术人才为主,相关技术成果并不直接应用于当前的生产业务系统。相关研发工作与国家、集团级重大科研项目及产业应用紧密结合,为后量子迁移工作提供丰富的实战化场景验证环境。
随着数据隐私保障监管政策与法律法规的逐步收紧,数据安全已成为国家安全、社会安全、经济安全和金融安全的关键支柱。为保证数据隐私合规、实现跨域融通以最大化释放数据价值,隐私计算、区块链、可信执行环境等技术体系的深入研发意义重大,而作为核心技术底座的密码学,其安全性更是对数据安全至关重要。
量子计算机技术的飞速发展促进了现代密码学由单纯的对数据进行加密、签名等基本算法,进入到对数据要素融通进行全流程隐私保护的后量子时代。尽管传统基于数论难题的密码算法受到了量子计算机的巨大挑战,但以格密码为代表的后量子密码算法却进一步推动了现代密码学的发展。如何将目前广泛使用的密码算法迁移到更安全的后量子版本,如何将后量子安全算法与隐私计算、区块链、大数据AI、网络与数据安全等新一代信息技术相融合,并基于其构建更加安全、高效的安全协议,是后量子时代密码工作者与研究机构需要关注的核心问题之一,也是确保我国关基长期安全的重大任务。
[1] IBM Unveils 400 Qubit-Plus Quantum Processor and Next-Generation IBM Quantum System Two(2022). url: https://newsroom.ibm.com/2022-11-09-IBM-Unveils-400-Qubit-Plus-Quantum-Processor-and-Next-Generation-IBM-Quantum-System-Two
[2] Yan, Bao, et al. "Factoring integers with sublinear resources on a superconducting quantum processor". arxiv(2022), 2022.12372.
[3] Joseph, David, et al. "Transitioning organizations to post-quantum cryptography." Nature 605.7909 (2022): 237-243.
[4] Xinmei, Wang. "Digital signature scheme based on error-correcting codes." Electronics Letters 26.13 (1990): 898-899.
[5] Castryck, Wouter, and Thomas Decru. "An efficient key recovery attack on SIDH (preliminary version)." Cryptology ePrint Archive (2022).