对最多10轮AES - 256变体的实用复杂度密钥恢复攻击
一、AES概述
AES(高级加密标准)是一种迭代分组密码,在2000年10月经过三年竞赛后被NIST选定,成为国家和国际标准,取代DES成为软件和硬件应用中最广泛部署的分组密码。AES有三种标准化版本:AES - 128、AES - 192和AES - 256,它们的密钥长度分别为128位、192位和256位,轮数分别为10轮、12轮和14轮。
此前,虽然对AES - 128没有比穷举搜索更快的已知攻击,但AES - 192和AES - 256近期被证明可被攻击,时间复杂度分别为$2^{176}$和$2^{99.5}$,不过这些复杂度虽比穷举搜索快,但完全不实用,似乎并未对基于AES的系统安全构成真正威胁。
判断密码分析攻击实用性的因素众多,通常关注攻击的总运行时间。一般认为,约$2^{64}$基本指令的攻击复杂度可作为实用和理论复杂度的分界点,约等于256次AES加密。
为评估密码系统的安全余量,有两种方法:一是比较完整密码方案的最佳已知攻击时间复杂度与该阈值;二是比较可实用攻击的轮数与迭代密码系统的总轮数。本文采用第二种方法。
以下是对AES - 256不同轮数攻击的总结:
| 轮数 | 场景 | 时间 | 数据 | 内存 | 结果 |
| — | — | — | — | — | — |
| 8 | 密钥差异 - 选择明文 | $2^{31}$ | $2^{31}$ | 2 | 区分器 |
| 8 | 子密钥差异 - 选择密文 | $2^{26.5}$ | $2^{26.5}$ | $2^{26.5}$ | 35个子密钥位 |
超级会员免费看
订阅专栏 解锁全文
94

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



