先了解下AES和RSA的区别,前者属于对称加密,后者属于非对称加密。
1、对称加密
对称加密就是加密和解密使用同一个密钥。
用数学公示表示就是:
加密:Ek(P) = C
解密:Dk(C) = P
这里E表示加密算法,D表示解密算法,P表示明文,C表示密文。
是不是看起来有点不太容易理解?看下图:
看过间谍局的知友们一定知道电台和密码本的功能。潜伏里面孙红雷通过电台收听到一堆数字,然后拿出密码本比对,找到数字对应的汉字,就明白上级传达的指令。而军统的监听台没有密码本,只看到一堆没有意义的数字,这就是对称算法的原理。
AES就属于对称加密,常见的对称加密方法还有DES、3DES、Blowfish、RC2以及国密的SM4。
2、非对称加密
对称加密快而且方便,但是有个缺点——密钥容易被偷或被破解。非对称加密就可以很好的避免这个问题。
非对称算法把密钥分成两个,一个自己持有叫私钥,另一个发给对方,还可以公开,叫公钥,用公钥加密的数据只能用私钥解开。
加密: E公钥(P) = C
解密::D私钥(C) = P
这下就不用担心密钥被对方窃取或被破解了,私钥由自己保管。
非对称加密算法核心原理其实就是设计一个数学难题,使得用公钥和明文推导密文很容易,但根据公钥、明文和密文推导私钥极其难。
RSA就属于非对称加密,非对称加密还有Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)以及国家商用密码SM2算法。
3、AES和RSA
AES和RSA都很安全,至少在目前的计算机体系结构下,没有任何有效的攻击方式。量子计算机时代,RSA有一定的破绽,因为利用shro's algorithm,量子计算机穷举计算质因子速度可以提高N个数量级,能够在有限的时间内破解RSA密钥。AES256至少目前并没有什么明显的漏洞。
AES作为对称加密技术,加密速度很快。现在高端一点的CPU都带有AES-NI指令,可以极快的完成加密和解密。
举例来说,坚果云存储系统采用了intel 的AES-NI加速,在采用AES加密和解密的时候,
单核的性能可以超过 1GB Byte/秒,非常非常快,很适合对大量数据进行加解密。
但是AES作为对称加密技术,如何安全的