抗量子计算的密码就一定安全?

VSole2021-12-26 05:55:13

背景介绍

众所周知,目前使用的公钥加密算法都是基于某个数学困难问题,比如大整数分解问题和离散对数问题。但是一旦大型量子计算机研制成功,这两个问题可以通过肖算法得到有效的解决。因此美国国家标准与技术研究院(NIST)在多年前发起了征集后量子时代密码算法的项目。

NIST后量子时代标准化项目目前进行了三轮。第一轮主要关注算法在安全性上的评估;第二轮主要考虑算法的具体实现;第三轮关注算法在侧信道攻击下的安全性。

第三轮评审的四个候选算法中有三个都是基于格理论的算法,分别是基于NTRU方案的候选者NTRU,基于Learning With Errors(LWE)方案的Kyber和基于Learning With Rounding(LWR)方案的Saber。这三个算法的困难性都来源于向线性方程中插入未知噪声。

在2021年的学术会议CHES上,Kalle Ngo等人实现了针对带掩码IND-CCA安全的Saber KEM算法实现的侧信道攻击。应用神经网络学习高阶模型,不需要知道随机掩码值,并且在建模阶段不需要一个可以被完全控制的分析设备。其中,带掩码IND-CCA安全的Saber KEM算法由Michiel等人于2020年提出,该算法的开销是无掩码版本的2.5倍[1]

泄露分析

论文首先介绍了Saber的公钥加密算法和密钥封装算法,具体算法过程如图1和图2所示。

图1 Saber公钥加密算法

图1中是Saber的公钥加密算法,同一般的公钥加密算法,用户需要生成一对公私钥,发送方使用公钥加密要传递的信息,接收方收到信息后使用私钥解密。

图2 Saber密钥封装算法

图2是Saber的密钥封装算法,其中应用了图1中的公钥加解密算法。密钥封装算法一般是用于传递对称加密算法的密钥,其相比于直接用公钥加密算法有效率上的优势。这篇论文攻击的是密钥解封算法,具体就是图2的第1行代码。

论文提出了两个问题,第一个问题是如何确定泄露位置,第二个问题是如何在不知道掩码的情况下恢复信息message(也就是图2中密钥解封算法第一行的m')。

对于第一个问题,论文提出的解决方案是根据无掩码的实现方案确定若干大概位置,对于每一个大概位置使用深度学习模型进行学习,如果模型可以学习到一个很高的准确度,则认为这些点有泄露,否则就平移窗口并重复训练。

对于第二个问题,在目前场景下,message是一个256比特的数,每个比特是0或者1。对于message的每一个比特m,一阶掩码会将其分为两个分量r和m⨁r。在训练阶段,模型将两个分量对应的波形共同作为输入,将m的值作为标签。在攻击阶段,模型将两个分量对应的波形共同作为输入,输出一个概率值,代表该比特为1的概率。

由于公钥加密算法可以预计算一组对应于随机或者选择message的密文,因此本论文的攻击方法可以在训练阶段在被攻击设备上采集能量迹作为训练集。

图3是Saber带掩码和不带掩码的解密算法源码,其中标红的代码是存在泄露的代码。

图3 不带掩码和带掩码的Saber解密算法的C源码

可以看到,带掩码的解密算法存在两种泄露,第一种泄露是在其第8行代码,poly_A2A函数将带掩码的中间值的两个分量作为输入,对其逐比特进行操作。第二种泄露是在其第9和10行代码,POL2MSG函数的功能是将比特数组转换为字节数组,因此也存在泄露。

实验环境与攻击模型

图4是这篇论文的实验环境,包括一个ChipWhisperer-Lite板子,一个CW308 UFO板子和一个CW308T-STM32F4目标板。其中D1、D2和D3都是同一种芯片,但是D1和D2是同一厂商生产的芯片,D3是另一厂商生成的芯片。

图4 用来采集能量迹的设备以及三种实验中使用的板子

论文的攻击模型取决于攻击者拥有的攻击时间长短。如果攻击者有充足的时间在被攻击设备上采波,则训练集和测试集均来源于被攻击设备,在这种情况下,D1用来训练和攻击;如果攻击者的时间只够用来采集攻击波形,则攻击者需要另一台类似设备用来建模。在这种情况下, D1用来建模,D2和D3用来攻击。

实验过程与结果

在实验的建模阶段,采集若干能量迹,按照字节或者比特进行切分,因其是带有一阶掩码防护的能量迹,因此通过将两个分量对应的能量迹进行组合,可以将训练集扩大32(按字节分段)或者256倍(按比特分段)。

对于poly_A2A函数的泄露,训练一个模型即可,对于POL2MSG函数的泄露,由于用一个字节需要连续异或8个比特,每次异或时其余的比特状态不同,因此需要训练8个模型。

因为论文数据集中的能量迹在时间轴上非常整齐,因此作者发现MLP的效果要比CNN更好,所以论文最终使用的是MLP。

图5(a)Saber密钥解封部分的初始能量迹;(b)包含poly_A2A(v1,v2),POL2MSG(v1,m1)和POL2MSG(v2,m2)的能量迹;(c)POL2MSG的两个分量;(d)第一个分量的前15字节。

图5是原始能量迹。论文作者首先根据无防护版本算法的经验确定了一个大概的位置,根据poly_A2A函数中有一个大小为256的循环和POL2MSG函数中有一个大小为32的循环,确定了它们的具体位置。

图5(c)是带掩码的中间值的两个分量对应的能量迹,论文作者通过将两个分量对应的能量迹按字节进行切分,并将对应字节的能量迹进行拼接,构造了神经网络的训练和测试集。

训练阶段,从D1上采集了50K条波,随机密文和密钥。对于poly_A2A函数的泄露,构建了4K×256=1.024M训练集,对于POL2MSG函数的泄露,构建了50K×32=1.6M训练集。测试阶段,从D1,D2和D3上分别采集了1K的波形作为测试集,测试集是随机密文和固定密钥。

图6 论文实验结果,从上到下分别是只使用POL2MSG函数的泄露的结果,只是用poly_A2A函数的泄露的结果和两个函数的泄露都使用的结果。

图6是论文中实验结果的截图。分别是只使用POL2MSG函数的泄露结果、只使用poly_A2A函数的泄露结果和使用两个函数的泄露结果。

由实验结果发现,对于POL2MSG函数的泄露,第7个比特最难攻破,对于poly_A2A函数的泄露,第0个比特最难攻破。

为了解释这一现象,论文对波形做了TVLA和SOST测试。结果如图7和图8所示。

图7 m⨁r分量的第一个字节的poly_A2A泄露和POL2MSG泄露的t-test结果

图8 POL2MSG泄露逐比特的t-test结果

论文作者分析后认为,对于poly_A2A泄露,只有第一个比特前的操作和其它比特不同,因此导致了第一个比特的泄露比其它比特低;对于POL2MSG泄露,越靠后异或的比特位的能量泄露越小。

在成功恢复出中间值message后,论文据此恢复出了密钥。

总结

作者使用了24条能量迹恢复出了带掩码的Saber算法的密钥,提出了模型的训练过程可以在被攻击设备上进行,发现了先前从未发现的泄露类型,并且在密钥恢复阶段展示了一种新的密钥恢复方法可以抵消在中间值恢复时的一些错误。

量子计算机对称密钥
本作品采用《CC 协议》,转载必须注明作者和本文链接
SIKE入选后量子计算加密第四轮备选方案,但研究人员用一台PC仅花费一小时就破解了。
2016年,NIST邀请全球密码学家设计并审查可能的抗量子方法,以确保从网站到电子邮件的所有通信安全。前不久NIST宣布,仅选择CRYSTALS-Kyber算法用于后量子世界的通用加密。还有IBM,将Kyber用于其第一款抗量子磁带机。选定的四种加密算法将成为NIST后量子密码标准的一部分,预计将在2024年左右最终确定。这一选择标志着NIST后量化密码标准化项目的开始。
CNSA2.0 对称密钥算法3、通用抗量子公钥算法NIST最近才宣布了后量子密码的标准化选择,因此,目前既没有最终标准也没有现实有效的联邦信息处理标准。NSA敦促NSS所有者和经营者特别需要注意这要求,在此期间仍需遵守CNSA1.0。NSA预计,符合NSM-10的NSS过渡到QR算法将在2035年完成,NSA敦促供应商、NSS业主和运营商尽一切努力,在这一最后期限前完工。在适当的情况下,CNSA2.0算法将在NSS的商业产品类中强制使用,同时保留允许在特殊情况下使用其他算法的选项。
人工智能密码学”为观察人工智能与密码系统的互动、影响提供新视角,也为当下后量子密码技术探索提供新方案,无疑是一个值得探究的新方向。
攻击者,尤其是国家支持的网络黑客,目前正在设法收集加密数据,期望将来能够解密。针对这一未来的威胁,量子安全公司Qrypt发布了一款产品“Qrypt密钥生成”,旨在消除传统密钥分发的需要,从而消除非对称加密。但这一说法还有一个重要的附加条件,量子计算机的能力取决于可控制的量子比特数。这个随机数在云中生成,意味着可根据需求量弹性产生。两人都是美国前中央情报局官员。
量子计算综述报告
2021-11-19 11:43:31
对于所有非物理专业的毕业生而言,量子这个概念多半是模糊而又熟悉的,因为没有系统学习过量子力学,因此对什么是量子往往难以理解并说不清楚,但近年来量子这个词又不断高频出现在大众视野面前,从量子通信、量子卫星到量子计算···。
针对后量子密码算法芯片的侧信道攻击
量子密钥分配的安全性包括协议的安全性和实际系统的安全性,协议理论上的信息论安全性已经得到了完整的证明,然而实际系统由于器件存在着非理想性,会导致产生各种安全性漏洞,如何分析和应对实际系统安全性是量子密钥分配技术走向应用所面临的重要课题,总结了量子密钥分配安全性的进展情况和面临的难点问题,并对未来的研究方向进行了展望。
量子通信的发展目标是构建全球范围的广域量子通信网络体系。通过光纤实现城域量子通信网络,进而通过中继器实现邻近两个城市之间的连接,最终通过卫星平台的中转实现遥远区域之间的连接,是广域量子通信网络的发展路线。
VSole
网络安全专家