改进对 8 轮 AES - 192 和 AES - 256 的单密钥攻击
1. AES 简介
高级加密标准(AES)是一种支持 128、192 和 256 位密钥大小的 SP 网络。128 位明文被视为 4x4 的字节矩阵,每个字节代表有限域 GF(2⁸) 中的一个值。AES 每一轮对状态矩阵应用四个操作:
- SubBytes (SB) :对状态的每个字节并行应用 16 次相同的 8 位到 8 位可逆 S 盒。
- ShiftRows (SR) :将第 i 行循环左移 i 个字节。
- MixColumns (MC) :在有限域 GF(2⁸) 上,将每一列乘以一个常量 4x4 矩阵。
- AddRoundKey (ARK) :将状态与 128 位子密钥进行异或操作。
在第一轮,会额外应用一个 AddRoundKey 操作(使用白化子密钥),而在最后一轮,MixColumns 操作会被省略。包含 MixColumns 操作的轮次被称为完整轮次。轮数取决于密钥长度:128 位密钥使用 10 轮,192 位密钥使用 12 轮,256 位密钥使用 14 轮。
AES 的密钥调度算法将用户密钥转换为 Nr + 1 个 128 位的子密钥。子密钥数组表示为 W[0, …, 4 · Nr + 3],其中 W[·] 的每个字由 32 位组成。密钥调度规则如下:
- 对于 i = Nk, …, 4 · Nr + 3:
- 如果 i ≡ 0 mod Nk,则 W[i] = W[i - Nk