感染式计算与虚拟轮次:无输出前检查的分组密码故障保护
一、引言
在当今的数字世界中,密码设备的安全至关重要。然而,实现攻击正成为密码设备安全的一大威胁。这些攻击不再将密码设备视为黑盒,而是利用设备实现过程中的特性,主要分为被动的侧信道攻击和主动的故障攻击。
侧信道攻击通过测量设备在计算过程中的属性,如计算时间、功耗、电磁辐射等,来推断密码密钥。例如,Kocher发现计算密码算法的时间可能泄露密钥信息,后续研究还发现微处理器的功耗与执行的代码和处理的数据有关。为应对侧信道攻击,可采用随机值掩码中间状态、非确定性执行算法等方法,其中使用虚拟轮次引入时间随机性是一种有效手段。
故障攻击则试图通过插入故障来改变设备的行为,从而获取密钥信息。常见的故障攻击方法包括差分故障分析、碰撞故障分析等。为防止故障攻击,通常会引入冗余计算和一致性检查,但这些检查本身可能成为攻击目标。
本文提出了基于感染式计算的对策,将密码轮次、虚拟轮次和冗余轮次相结合,确保任何注入的故障都会影响密文,使攻击者无法获取密钥信息,从而无需在实现结束时进行故障检测。
二、背景知识
故障攻击自提出以来,不断发展以减少所需的故障数量。例如,单故障可能足以破解AES实现。为检测故障攻击,通常会在密码算法实现中引入冗余。常见的方法包括重复计算、引入奇偶校验字节、生成摘要值等。然而,这些方法的验证阶段可能被攻击者利用。
为防止攻击者通过多次注入故障绕过检查,Yen和Joye引入了感染式计算的原则。其核心思想是使注入的故障改变密码算法的输出,使其无法泄露秘密信息。常见的实现方式是在输入中引入秘密错误,计算结果后再消除该错误的影响。
超级会员免费看
订阅专栏 解锁全文
13

被折叠的 条评论
为什么被折叠?



