对称加密算法–AES
AES 全称 Advanced Encryption Standard (高级加密标准),是取代了 DES (Data Encryption Standard)的一种对称加密算法。在这个算法的标准形成之前,有多个算法参与竞争,最后胜出的是由比利时密码学家 Joan Daemen 和 Vincent Rijmen 设计的 Rijndael 算法。也就是说今天的AES算法实际上应该是 Rijndael 算法的一种实现。
搞懂一个算法,首先要弄明白它的 输入 / 输出 。对于个一对称加密算法,其加密(Encode)和解密(decode)使用的都是同一密钥 K 如果我们称明文(Plain Text)为 P ,称密文(Cipher Text)为 C ,那么就有:
C = AES_encode(P, K) // 加密过程
P = AES_decode(C, K) // 解密过程
我们知道,需要加密的明文往往很长,需要被分为不同的 分组 分别进行加密。AES规定的分组大小为128 bit(刚好是16 * 8 bit),密钥 K 的长度可以是128 bit,192 bit或256 bit。
分组模式目前有五种(CBC、ECB、CTR、OCF