信息安全中的AES加密和解密是什么?
AES 加密定义了使用高级加密标准 (AES) 中批准的 128 位、192 位或 256 位对称加密算法隐藏电子信息的过程,也称为 FIPS 197。
在 1990 年代,美国政府需要标准化一种加密算法,该算法将由他们全球使用。它被称为高级加密标准 (AES)。
提交了多个提案,经过多次讨论,一种称为 Rijndael 的算法被接受。Rijndael 由 Joan Daemen 和 Vincent Rijmen 发明。实际上,需要提出一种新算法是因为 DES 中已知的弱点。
DES 的 56 位密钥不再被认为对依赖于穷举密钥搜索的攻击是安全的,并且 64 位块也被视为脆弱的。AES 基于 128 位块和 128 位密钥。
在定义 AES 结构时,有以下几点:
该结构的特点是它不是 Feistel 结构。在 Feistel 结构中,数据块的一半用于更改数据块的另一半,因此这两半被交换。
两个 AES 决赛入围者,例如 Rijndael,不需要 Feistel 结构,而是在每一轮中并行处理完整的数据块,使用替换和置换。
作为输入支持的密钥扩展到一个包含 44 个 32 位字的数组 w[i]。四个不同的字(128 位)充当每一轮的轮密钥。
使用了多个阶段,其中一个用于置换,三个用于替换:
**字节替换** - 它使用 S 盒来实现块的逐字节替换。
**行移位** - 一个简单的置换。
**列混淆** - 一个使用 GF(28) 上的算术创建的替换。
**添加轮密钥** - 现代块与扩散密钥的一部分进行平滑的按位异或运算。
对于加密和解密,密码都从添加轮密钥阶段开始,然后是包含所有四个阶段的九轮,最后是包含三个阶段的第 10 轮。
它只能添加使用密钥的轮密钥阶段。由于这个原因,密码以添加轮密钥阶段开始和结束。在开头或结尾应用的任何其他阶段都是可逆的,无需了解密钥,因此不会增加任何安全性。
添加轮密钥阶段是一种 Vernam 密码的形式,并且它本身不会很危险。其他三个阶段支持混淆、扩散和非线性,但它们本身不会提供任何安全性,因为它们不需要密钥。