AES 加密
一、前言
1、 简介
AES,高级加密标准(Advanced Encryption Standard)。是用来替代 DES,目前比较流行的对称加密算法。对称加密算法就是加密和解密用相同的密钥,具体的加密流程如下图
明文 P:
等待加密的数据。
密钥 K:
用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。密钥为接收方与发送方协商产生,但不可以直接在网络上传输,否则会导致密钥泄漏,通常是通过非对称加密算法加密密钥,然后再通过网络传输给对方,或者直接面对面商量密钥。密钥是绝对不可以泄漏的,否则会被攻击者还原密文,窃取机密数据。
AES 加密函数:
设 AES 加密函数为 E,则 C = E(K, P),其中 P 为明文,K 为密钥,C 为密文。也就是说,把明文 P 和密钥 K 作为加密函数的参数输入,则加密函数 E 会输出密文 C。
密文 C:
经过 AES 加密后的数据。
AES 解密函数:
设 AES 解密函数为 D,则 P = D(K, C),其中 C 为密文,K 为密钥,P 为明文。也就是说,把密文 C 和密钥 K 作为解密函数的参数输入,则解密函数会输出明文 P。
2、 加密模式
AES 只是个基本算法,实现 AES 有几种模式,主要有 ECB、CBC、CFB 和 OFB 这几种(其实还有个 CTR)
-
电码本模式(ECB)
这种模式是将整个明文分为若干段相同的小段,然后对每一小段进行加密
-
密码分组链接模式(CBC)
这种模式是先将明文分成若干小段,然后每一小段与初始块或者上一段的密文段进行异或运算后再与密钥进行加密
-
计算器模式(CTR)
完全的流模式。将瞬时值与计数器连接起来,然后对此进行加密产生密钥流的一个密钥块,再进行XOR操作
-
密码反馈模式