AES算法(六)理论总结
目录
AES 算法到底是什么?
严格来说 AES 是一种通用的加密标准,通常我们常说的 AES 算法是指 AES 标准的实现算法:Rijndael 算法。
Rijndael 算法到底是什么?
Rijndael 算法是一个分组密码算法族,其分组长度包括 128 比特、160 比特、192 比特、224 比特、256 比特,密钥长度也包括这五种长度。
AES-128、AES-196、AES-256 是什么?
AES 标准算法 是选取了分组长度为 128 Bit,密钥长度为 128 Bit、192 Bit 和 256 Bit 的三个版本,名称分别为 AES-128、AES-196 和 AES-256。
如果分组长度不等于 128 Bit,那么它不可以被称为 AES 算法,只能称为 Rijndael 算法的一种实现方式。
PKCS5Padding、PKCS5Padding、PKCS7Padding 是什么?
分组密码算法中需要将明文按指定大小进行分组,由于明文并非指定大小的整数倍,因此在明文的最后一个分组通常需要将其填充至加密算法所要求的分组大小后进行加密,常见的填充模式有:
- NoPadding
- PKCS5Padding
- PKCS7Padding
- ISO10126Padding
- ISO7816-4Padding
- ZeroBytePadding
- X923Padding
- TBCPadding(Trailing-Bit-Compliment)
- PKCS1Padding
ECB、CBC、CTR 是什么?
分组密码算法只能加密固定长度为 N 比特的分组数据(DES 和 3DES 算法中 N=64,AES 算法中 N=128),若待加密数据长度 != N ,则待加密数据需要被分组或填充至长度为 N 比特的数据块用以加密,至于如何分组及填充则取决于使用的工作模式和填充方式。常见的工作模式如下:
- 电子密码本:Electronic Code Book Mode (ECB)
- 密码分组链接:Cipher Block Chaining Mode (CBC)
- 密文反馈:Cipher Feedback Mode (CFB)
- 输出反馈:Output Feedback Mode (OFB)
- 计数器模式:Counter Mode (CTR)
- 消息认证码:Message Authentication Code(GCM)
如果以上知识点有不理解的地方,可以先去查看一下对应的理论讲解。