差分故障分析 破解 AES白盒

DFA破解白盒AES

站在巨人的肩膀上看世界

懒得讲,直接分享我感觉一些还不错的文章吧。

AES白盒的原理、差分故障分析的原理

  1. 复习AES加密流程,了解故障对密文的影响,进行差分故障分析,并且根据第10论密钥反推AES加密的密钥

    https://bbs.kanxue.com/thread-280335.htm

    文章作者写的很详细,事实上对AES白盒的差分故障分析,就是在最后一轮列混合前,修改state状态的i字节,最后会导致密文发生四字节的改变,之后与未修改state状态得到的密文进行差分,以获取第10轮密钥Ki的范围,通过不断更换i的值,即可不断缩短Ki大小的范围,最后,范围内将只存在唯一符合的值。

    之后作者通过数学公式推导了一下,可以根据已知的第10轮密钥,一直逆推出第1轮所使用的密钥,即AES加密的密钥。

  2. AES白盒(Chow方案)的设计与实现

    https://blog.csdn.net/qq_37638441/article/details/128968233

    这里作者给出了部分源码,事实上,到这一步的时候,作者的工作还没有完全完成:
    image-20241017232244689

少了一步混合双射,不过大概的思想讲的很透彻

差分故障分析破解AES白盒的代码实现

工具介绍

  1. 首先需要一个python库: phonenixAES ,使用这个库,我们可以推到出AES白盒的第10轮密钥

  2. 之后需要一个轮密钥推到密钥的程序: https://github.com/SideChannelMarvels/Stark

    使用这个程序,我们可以从第10轮轮密钥逆推出第一轮轮密钥

使用方法

  1. 固定输入,首先正常获取AES白盒的输出

  2. 在最后一轮列混合前,倒数第二轮列混合后,依次修改AES白盒输入的第0~15个字节(修改成什么值都行,但要记住修改成的值是相同的),并记录输出数据,就像这样:

    image-20241017233426131
  3. 之后把这17条数据喂给 phoenixAES 库,即可得到第10轮密钥

    import phoenixAES with open('tracefile', 'wb') as t: t.write(""" D679E5A02E32F14DF5CC278581653274 3879E5A02E32F185F5CC818581703274 4F79E5A02E32F1B5F5CC1B8581F03274 2979E5A02E32F1ADF5CCCC8581533274 3D79E5A02E32F131F5CCEC8581123274 D6E8E5A0C232F14DF5CC271881650A74 D622E5A0A932F14DF5CC274881652174 D674E5A08F32F14DF5CC276981655474 D6FAE5A07532F14DF5CC27C88165C674 D67975A02E8AF14D8CCC2785816532B2 D679E9A02EBBF14DDACC27858165324C D6796BA02E3EF14DE1CC278581653259 D67924A02EA5F14DF0CC278581653294 D679E5932E32AF4DF5142785C4653274 D679E5BD2E32184DF559278558653274 D679E5152E32F64DF59627859D653274 D679E58F2E329F4DF5DE27858C653274 """.encode('utf8')) phoenixAES.crack_file('tracefile')
  4. 利用 keyschedule 即可回复第1轮密钥,即得到AES加密的密钥

    ./aes_keyschedule EA9F6BE2DF5C358495648BEAB9FCFF81 10

参考:

https://bbs.kanxue.com/thread-280335.htm

https://blog.csdn.net/qq_37638441/article/details/128968233

https://equinox-shame.github.io/2023/12/27/AES 白盒学习/#Chow方法下的AES白盒的实现


__EOF__

本文作者_TLSN
本文链接https://www.cnblogs.com/lordtianqiyi/p/18473314.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   TLSN  阅读(165)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示