针对M&M防护的零值故障攻击

admin 2025年4月6日19:40:33评论6 views字数 2192阅读7分18秒阅读模式
针对M&M防护的零值故障攻击

距离一站式防护侧信道与

故障攻击还有多远?

撰文 | 刘 铮

编辑 | 刘梦迪

一、背景介绍

在2024年的CHES会议上,来自日本电气通信大学的Haruka Hirata(平田遼)等人提出了一种针对M&M防护的故障攻击方法,该方法利用了硬件实现的塔域AES流水线S盒中,不同信号路径传播延迟不同的特点,通过时钟毛刺注入故障。当S盒输入为0时,故障无效,当S盒输入非0时,故障有效。基于此识别S盒的输入是否为0,从而恢复AES算法密钥。实现攻击后,Haruka Hirata等人提出了一种更高细粒度的detection防护,成功防护了该攻击方法[1]

M&M(Masks and Macs)是一种可以同时防护侧信道分析与差分故障分析的方法,由Lauren De Meyer等人在2019年的CHES会议上提出[2]。该方法的主要创新是将传统的基于二次加密的故障防护方法,转变成了基于明文MAC tag二次加密的故障防护方法(此处的MAC是在GF(2^k)上乘以α,MAC(p)=α*p,其中α固定未知,感兴趣的读者可以查看原论文),避免了通过注入两次相同故障从而破解二次加密防护的问题,具体如下图所示。

针对M&M防护的零值故障攻击

左图为传统故障防护方法,右图为基于MAC的故障防护方法。左图通过注入两次相同的故障可绕过防护,右图无法实现,MAC(p)变换中包含未知变量

需要特别说明的是图中的加密是可以带掩码的,因此该防护可以同时防御侧信道和差分故障分析。

二、攻击原理

Haruka Hirata等人针对AES算法进行了攻击。攻击原理并不复杂,AES的S盒包含求逆以及仿射变换两步,其中0的逆元还是0。在AES加密的最后一轮S盒计算时注入故障,收集不会发生故障的密文,然后猜测密钥反推S盒输入分布。如果猜测密钥正确,那么S盒输入分布中,输入0的概率应该是最高的,攻击算法如下图所示。

针对M&M防护的零值故障攻击

故障攻击流程,先收集无效故障密文,然后猜测密钥,反推S盒输入分布,根据S盒输入分布中0是否是概率最高判断猜测密钥是否正确

接下来说明为什么S盒输入为0时故障会无效:

如下图所示为论文攻击的S盒实现,其中在stage2、stage3和stage4中,红色路径的延迟要远远小于黑色部分,注入合适的时钟毛刺可以保证红线部分不发生故障,黑色部分发生故障。当输入为0时,红线部分的值也为0,只要注入的时钟毛刺不影响红线部分,无论黑色部分如何发生故障,都会在stage5被消除。反之,当输入不为0时,由于红线部分的值不为0,stage5无法消除黑色部分故障的影响,最终S盒输出会发生故障。

针对M&M防护的零值故障攻击

论文攻击的S盒实现为塔域流水线硬件实现,其中红线路径的传播延迟远远小于黑色部分,通过注入合适的时钟毛刺,可以使得红线部分不发生故障,黑色部分发生故障

三、实验结果

作者在ASIC上进行了论文中提出的带二阶M&M防护的AES算法的硬件实现。该实现进行一次AES加密需要239个时钟周期。芯片的图片以及设计信息如下图所示。

针对M&M防护的零值故障攻击

芯片布局,更清晰的图片查看原论文

针对M&M防护的零值故障攻击

芯片设计信息

实验原理与环境如下图所示:

针对M&M防护的零值故障攻击

实验环境原理图,利用触发进行故障注入

针对M&M防护的零值故障攻击

实验环境图

对故障原理的验证结果如下所示,可以看到在stage2和stage4,当输入为0时,故障率为0。

针对M&M防护的零值故障攻击

实验原理验证,在stage2和stage4,当输入为0时故障率明显较低

实验结果如下图所示,约500条无效密文可恢复密钥。

针对M&M防护的零值故障攻击

故障注入实验结果图汇总

四、防护改进

针对前文的攻击,Haruka Hirata等人提出了针对M&M防护改进方法,主要思路是在S盒流水线的每一阶段都校验输出是否正确,提高detection粒度,具体如下图所示。

针对M&M防护的零值故障攻击

S盒细粒度detection实现

Haruka Hirata等人在FPGA上验证了该防护的有效性。该防护的开销以及攻击结果如下图所示。

针对M&M防护的零值故障攻击

改进的M&M防护开销

针对M&M防护的零值故障攻击

改进的M&M防护实验结果,可以看到没有输入的故障率有明显不同

总结

Haruka Hirata等人针对M&M防护提出了一种故障攻击方法,并针对该攻击提出了一种更高细粒度的M&M防护手段。但小编认为,论文有个问题没有讲清楚(也可能是小编没有读懂):论文提到待攻击的AES为带有二阶M&M防护的,也就是说S盒输入是带掩码的。在带掩码的场景下论文提出的攻击就没那么简单,直觉上看只有掩码和被掩值都为0的情况下才会发生无效故障,但此时的攻击效率会显著降低。

参考资料

[1] Hirata H, Miyahara D, Arribas V, et al. All You Need Is Fault: Zero-Value Attacks on AES and a New λ-Detection M&M[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2024, 2024(1): 133-156.

[2] De Meyer L, Arribas V, Nikova S, et al. M&M: Masks and macs against physical attacks[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2019: 25-50.

针对M&M防护的零值故障攻击

往期精彩文章推荐

针对M&M防护的零值故障攻击 
针对M&M防护的零值故障攻击

原文始发于微信公众号(数缘信安社区):针对M&M防护的零值故障攻击

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月6日19:40:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   针对M&M防护的零值故障攻击https://cn-sec.com/archives/3920131.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息