位置:首页 > 安全分类 > WEB安全

针对多故障注入场景的持续性故障攻击方法

  • 2022-02-28 13:02:19
简介 背景介绍2018年,浙江大学张帆等人基于统计的思想对运行着AES算法的密码系统进行攻击,称为持续性故障分析(Persistent Fault Analysis, PFA)[1]。该论文中首次提出持续性

背景介绍

2018年,浙江大学张帆等人基于统计的思想对运行着AES算法的密码系统进行攻击,称为持续性故障分析(Persistent Fault Analysis, PFA)[1]。该论文中首次提出持续性故障的概念。相对于过往研究中的瞬时性故障和永久性故障,持续性故障存在周期介于两者之间,持续性故障注入后会持续影响密码设备的运算,直到设备重启。相比瞬时性故障,持续性故障获取故障密文效率更高;相比永久性故障,持续性故障注入不会保留明显证据。在AES算法的轮密钥扩展操作完成后,十轮加密开始前,向S盒中注入一次持续性故障,会导致S盒一个位置的输出值被改变。通过分析故障加密得到的密文值的分布情况,PFA使用约2000条密文可恢复AES的初始密钥。

2022年的CHES会议,Soleimany等人在经典PFA的基础上,向S盒注入多个持续性故障的攻击,高效地恢复出AES算法的密钥[2]。本文重点讨论了注入多个持续性故障的场景,以填补经典PFA在此场景应用中的空白。与经典PFA的攻击场景相比,本篇论文在保持唯密文攻击的基础上,针对S盒注入多个持续性故障,应用场景更加宽松,更符合实际攻击需求。论文主要贡献有两方面:

1)提出了一种新的多故障攻击技术,将持续性故障应用于S盒多个位置中,通过对密文字节值的统计,获得密钥字节间的异或值,达到减少候选密钥的数量和所需的加密次数。

2)论文在纯密文模型中开发了该类密码算法恢复密钥的通用框架,使得执行持续故障攻击和密钥恢复的场景更加通用化。通过进一步运算,根据算法唯一地确定密钥攻击结果。此外,在所需密文的数量和运算时间复杂度之间提供了一个总体权衡。

攻击原理

(1)获取密钥字节间的异或值

本文中的攻击场景如下:向S盒注入λ个持续性故障,使得S盒中λ个位置的输出因故障而发生改变,且S盒故障位置输出值的集合与原输出值集合交集为空。假设S盒λ个注入故障的位置,原输出值组成集合V,则在注入故障后,故障S盒将不会输出V中的值。攻击者使用故障S盒加密获得N条错误加密的密文,统计第一个字节(0号字节)未出现的值记作D[0],再统计其余字节(j号字节)未出现的值记作D[j]。那么D[0]与D[j]的异或值即为密钥的0号字节与j号字节的异或值。假设skR[j]代表密钥的第j号字节的值,则D[0]、D[j]与δj存在如下关系:

其中D[0]、D[j]可通过统计故障密文字节值的分布获得,即在获得足够多的故障密文的情况下,则可以得到密钥字节间的异或值,达到缩小候选密钥空间的效果。算法如Algorithm 1所示:

(2)根据前九轮故障S盒输出值,从密钥候选空间中确定作为最终攻击结果的密钥。

通过步骤1,可以获得候选密钥的集合,根据候选密钥K[i]与故障密文字节未出现的值,可以算出故障注入前S盒原本输出值V[i]。理论上,故障S盒的输出值中不会出现V[i]中的值。通过如下所述的算法2,通过故障密文C与候选密钥可以得到第九轮到第一轮的故障S盒输出值,理论上计算出的输出值不应出现在V[i]中;否则,则说明该密钥候选值不是真实的密钥。算法如Algorithm 2所示:

实验设置

利用电磁故障注入装置(EMFI)将持续性故障注入DUT。选择EMFI有几个原因:首先,电磁故障注入属于非侵入式故障攻击。此外,它还可用于从芯片正面注入故障,因此只需极少的时间。论文中EMFI装置由一个脉冲发生器组成,该脉冲发生器可以产生高电压脉冲(高达200V),上升时间非常低(<4ns)。脉冲发生器由来自DUT的外部触发信号直接触发,该信号使电压脉冲与DUT的操作同步。EM脉冲注入器是一种定制的手工制作的EM探头,设计为一个简单的环形天线。该设置还包含一个额外的继电器开关,用于执行设备的自动上电重置,用于验证是否注入可持续性故障。关于实验中使用的EM探头,请参考下图:

图1 基于32位ARM Cortex-M4F内核的STM32F407VG微控制器上的电磁故障注入设置

实验结果

当收集的故障密文条数充足时,密文中单个字节未出现值的个数与故障注入个数相等为λ。所需故障密文条数约为1448条,并伴随一定的密钥搜索空间。

表1 密文足够时,攻击所需密文条数与密钥待确认的搜索空间

当收集的故障密文条数不足时,密文中单个字节未出现值的个数λ'大于故障注入个数λ(λ'>λ)。所需故障密文条数约为1024条,并伴随一定的密钥搜索空间。

表2 密文不足时,攻击所需密文条数与密钥待确认的搜索空间

结论

虽然对持续性故障攻击现有的研究文献中已证明了在注入单个故障的情况下进行持续性故障分析的可行性,但将已知故障注入技术扩展到多故障场景下仍存有挑战。在本文中,我们提出持续性故障分析在多故障场景下的新的方法,并在实践中验证了多故障注入的可能性,为PFA提供了新的见解。

参考资料

[1] Fan Zhang, Xiaoxuan Lou, Xinjie Zhao, Shivam Bhasin, Wei He, Ruyi Ding, Samiya Qureshi, and Kui Ren. Persistent fault analysis on block ciphers. IACR Trans. Cryptogr. Hardw. Embed. Syst., 2018(3):150–172, 2018.

[2] Soleimany, H., Bagheri, N., Hadipour, H., Ravi, P., Bhasin, S., & Mansouri, S. (2021). Practical Multiple Persistent Faults Analysis. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2022(1), 367–390.

很赞哦! (119)