所以我们都同意密钥是 128 位或 192 位或 256 位的固定长度。如果我们的上下文是 50 个字符的大小(字节)% 16 = 2 个字节。所以我们对上下文进行了 3 次加密,但剩下的两个字节将如何存储在 State 块中。我应该填充它们,标准没有指定如何处理这种情况。
MixColumns 阶段是 AES 中最复杂的方面,但是我一直无法理解数学表示。我对矩阵乘法有所了解,但我对数学结果感到惊讶。将一个值乘以 2,左移小端 1 位置,右移大端。如果我们将最高有效位设置为 1 (0x80),那么我们应该将移位结果与 0x1B 进行异或。我认为乘以 3 意味着将值移动 2 个位置。
我检查了 Wikipedia 上的各种资源,甚至是提供 C 实现的教程。但我更感兴趣的是完成我自己的实现!感谢您提供任何可能的意见。