Recovering the CTR_DRBG state in 256 traces (CHES 2020)
摘要:
NIST CTR_DRBG规范描述了随机数获取时需要的最大次数,例如规定在CTR模式下最大的次数为4096. 回顾CHES 2007年Jaffe针对AES CTR模式的攻击,其在不知道nonce信息的情况下需要 条曲线,由于次数限制因而在实际情况下这种攻击是安全的。而在本文中,我们仅仅使用256条曲线进行攻击,远远低于NIST的限制。文章使用模拟的曲线去研究信噪比与攻击成功率之间的关系。不仅如此,作者还阐述了如何在Cortex-M4上的AES-CTR模式下成功攻击并恢复密钥和nonce的过程。其公开了曲线和代码以供大家复现。
贡献:
相比Jaffe的攻击,本文只用了256条曲线,并分析了与信噪比之间的联系。在多种设备上给出了攻击的可行性最终验证了NIST对CTR-DRBG提供了过多的宽松环境(需要的次数)。我们结合CHES 2017年的文章《 Improved blind side-channel analysis by exploitation of joint distributions of leakages》和《 Non-profiled deep learning-based side-channel attacks with sensitivity analysis》提供了更加灵活的攻击手段并可以处理非对齐曲线。
通常来说,考虑到抗SCA攻击的掩码要求,在运算中PRNGs需要源源不断的提供新的随机数。降低随机性的要求将会导致以masking为核心的防护策略失效。目前,很少有公开的资料对此类PRNG进行研究。不仅如此,更是很少有针对PRNG本身是否需要考虑抗侧信道攻击的研究成果。文章作为针对PRNG的保护进行了研究探索,磁分析仅仅获取了侧信息而没有相关的明密文数据。
结论:
文章描述了如何在未知key和nonce的情况下使用256条曲线对AES-CTR模式成功实施侧信道攻击,其相比之前Jaffe提出的攻击有了很大的提升。重要的是按照这个条数证明NIST目前针对CTR-DRBG的规范是过于宽松了,4096次运算导致可以实施文章中提出的针对AES-CTR的攻击方法。
文章还借用了DDLA的思想来处理非对齐的曲线以及blind SCA,其可以忽略CTR模式假设。
作者还对PRNG的掩码实现进行了研究(例如敌手只能获取其功耗信息),此类公开研究成果较少。研究表明此类掩码方式并不适合这类PRNG,而建议减少PRNG需要的运算次数或者更新其状态等。总之对于PRNG的各种生成方式的安全分析都可以是未来的一个研究方向。