AES 加密定义了使用高级加密标准 (AES)(也称为 FIPS 197)批准的 128 位、192 位或 256 位对称加密算法隐藏电子信息的阶段。
在 1990 年代,美国政府要求将一种密码算法标准化,以供他们在全球范围内使用。它被称为高级加密标准 (AES)。
提交了几个提案,经过多次辩论,一种称为 Rijndael 的算法被接受。Rijandael 是由 Joan Daemen 和 Vincent Rijmen 发明的。出现新算法的需要实际上是因为 DES 中公认的弱点。
DES 的 56 位密钥不再被认为可以安全抵御攻击,这取决于详尽的密钥搜索,并且 64 位块也被视为弱密钥。AES 基于具有 128 位密钥的 128 位块。
定义 AES 结构时有以下几点:
这种结构的特点是它不是feistel结构。在feistel结构中,一半的数据块用于改变另一半的数据块,从而交换了一半。
两个 AES 决赛选手,例如 Rijandael,不需要 Feistel 结构,而是在每一轮中使用替换和排列并行处理完整的数据块。
支持作为输入的键被扩展为一个由 44 个 32 位字组成的数组 w [i]。有四个不同的字(128 位)作为每一轮的轮密钥。
使用了多个阶段,一个排列和三个替换 -
Substitution bytes - 它用作 S-box 来实现块的逐字节替换。
Shift rows - 一个简单的排列。
混合列- 创建对 GF (28) 的算术使用的替代。
Add round key - 现代块与扩散键部分的平滑按位异或。
对于加密和解密,密码都以添加轮密钥阶段开始,然后是包含所有四个阶段的九轮,然后是第 10 轮三个阶段。
它只能添加创建使用密钥的轮密钥阶段。出于这个原因,密码以添加轮密钥阶段开始和结束。在开始或结束时应用的任何其他阶段在不知道密钥的情况下都是可逆的,因此不会增加安全性。
add round key stage 是一种 vernam cipher 形式,它本身并不危险。其他三个阶段支持混淆、扩散和非线性,但它们本身不支持任何安全性,因为它们不需要密钥。