差分故障分析 破解 AES白盒

DFA破解白盒AES

站在巨人的肩膀上看世界

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

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

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

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

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

    之后作者通过数学公式推导了一下,可以根据已知的第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白盒的实现

posted @ 2024-10-17 23:43  TLSN  阅读(45)  评论(0编辑  收藏  举报