什么是对称加密
加密和解密使用相同的秘钥称为对称加密。
主流的对称加密算法
DES:已经淘汰
3DES:相对于DES有所加强,但是仍然存在较大风险
AES:全新的对称加密算法。
对称加密的特点
特点决定使用场景,对称加密拥有如下特点:
快速
速度快,可用于频率很高的加密场景。
可逆
使用同一个秘钥进行加密和解密。
分组加密
可选按照128、192、256位为一组的加密方式,加密后的输出值为所选分组位数的倍数。密钥的长度不同,推荐加密轮数也不同,加密强度也更强。
例如:
AES加密结果的长度由原字符串长度决定:一个字符为1byte=4bit,一个字符串为n+1byte,因为最后一位为'\0',所以当字符串长度小于等于15时,AES128得到的16进制结果为32位,也就是324=128byte,当长度超过15时,就是64位为1282byte。
对称加密的使用场景
因为对称加密速度快的特点,对称加密被广泛运用在各种加密场所中。但是因为其需要传递秘钥,一旦秘钥被截获或者泄露,其加密就会玩完全破解,所以AES一般和RSA一起使用。
因为RSA不用传递秘钥,加密速度慢,所以一般使用RSA加密AES中锁使用的秘钥后,再传递秘钥,保证秘钥的安全。秘钥安全传递成功后,一直使用AES对会话中的信息进行加密,以此来解决AES和RSA的缺点并完美发挥两者的优点,其中相对经典的例子就是HTTPS加密,后文会专门研究。
AES加密算法的基本原理
本文针对ECB模式下的AES算法进行大概讲解,针对每一步的详细算法不再该文讨论范围内。
1、明文分组
128位的明文被分成16个字节的明文矩阵,然后将明文矩阵转化成状态矩阵,以“abcdefghijklmnop”的明文为例:

2、密文分组
同样的,128位密钥被分成16组的状态矩阵。与明文不同的是,密文会以列为单位&