Administrator
Published on 2021-11-24 / 185 Visits
0

对称加密算法与非对称加密算法

对称加密算法

概念

加密和解密使用同一个密钥,对称加密算法又称传统加密算法。
加密解密过程:明文->密钥加密->密文,密文->密钥解密->明文。
可以看出,加密和解密都用到同一个密钥,加解密的过程看起来很对称。

优缺点

算法公开,计算量小,加密速度快,加密效率高。
双方使用相同的钥匙,安全性得不到保证。

注意

密钥的保密工作非常重要 ,密钥要求定期更换。

加密模式

  • ECB:电子密码本,就是每个块都是独立加密
  • CBC:密码块链,使用一个密钥和一个初始化向量(IV)对数据执行加密转换

只要是对称加密都有 ECB和 CBC模式,加密模式是加密过程对独立数据块的处理。对于较长的明文进行加密需要进行分块加密,在实际开发中,推荐使用CBC的,ECB的要少用。

经典算法

  • DES(Data Encryption Standard):数据加密标准(现在用的比较少,因为它的加密强度不够,能够暴力破解)
  • 3DES:原理和DES几乎是一样的,只是使用3个密钥,对相同的数据执行三次加密,增强加密强度。(缺点:要维护3个密钥,大大增加了维护成本)
  • AES(Advanced Encryption Standard):高级加密标准,目前美国国家安全局使用的,苹果的钥匙串访问采用的就AES加密。是现在公认的最安全的加密方式,是对称密钥加密中最流行的算法。

非对称加密算法

概念

非对称加密算法需要两个密钥:公开密钥(publickey) 和私有密(privatekey),公开密钥和私有密钥是一对,对称加密算法又称现代加密算法。
非对称加密是计算机通信安全的基石,保证了加密数据不会被破解。
可以看出,加密和解密都用到不同密钥,加解密的过程看起来不对称。

优缺点

算法强度复杂,安全性依赖于算法与密钥。加密解密速度慢。

经典算法

  • RSA
  • ECC

应用场景

由于非对称加密算法的加密解密速度要比对称算法速度慢很多,在实际应用中,通常采取数据本身的加密和解密使用对称加密算法(AES),用非对称加密算法加密并传输对称算法所需的密钥。HTTPS过程就是这样的。

对比

对称加密只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。
非对称加密有两种密钥,其中一个是公开的。

MD5

概念

除了对称加密算法与非对称加密算法,还存在MD5算法,此算法可以用来判断数据或文件是否被篡改或者完整。

  • 不可逆运算
  • 对不同的数据加密的结果是定长的32位字符(不管文件多大都一样)
  • 对相同的数据加密,得到的结果是一样的(也就是复制)。
  • 抗修改性 : 信息“指纹”,对原数据进行任何改动,哪怕只修改一个字节,所得到的 MD5 值都有很大区别.
  • 弱抗碰撞 : 已知原数据和其 MD5 值,想找到一个具有相同 MD5 值的数据(即伪造数据)是非常困难的.
  • 强抗碰撞: 想找到两个不同数据,使他们具有相同的 MD5 值,是非常困难的

进阶

MD5是可以被破解的,但是可以通过加盐来增加安全性,盐就是一串比较复杂的字符串,加盐的目的是加强加密的复杂度,这么破解起来就更加麻烦,盐越长越复杂,加密后破解起来就越麻烦。

参考

常见三种加密(MD5、非对称加密,对称加密)
https://www.cnblogs.com/shoshana-kong/p/10934550.html