写点什么

对称加密与非对称加密总结

作者:暖蓝笔记
  • 2022 年 3 月 11 日
  • 本文字数:1562 字

    阅读完需:约 5 分钟

隐私保护?不是吓唬大家,信息是透明的兄 die,不过尽量去维护个人的隐私吧,今天学习对称加密和非对称加密。


大家先读读这个字"钥",是读"yao",我以前也是,其实读"yue"


一 、对称加密


对称加密,顾名思义,加密方与解密方使用同一钥匙(秘钥)。具体一些就是,发送方通过使用相应的加密算法和秘钥,对将要发送的信息进行加密;对于接收方而言,使用解密算法和相同的秘钥解锁信息,从而有能力阅读信息。


1 常见的对称加密算法

无论是数据库的信息存储,还是为了避免用户的 Cookie 发生泄漏,通常都会使用相应的加密算法进行加密,尽最大能力的去保护敏感信息。


DES


DES 使用的密钥表面上是 64 位的,然而只有其中的 56 位被实际用于算法,其余 8 位可以被用于奇偶校验,并在算法中被丢弃。因此,DES 的有效密钥长度为 56 位,通常称 DES 的密钥长度为 56 位。假设秘钥为 56 位,采用暴力破 Jie 的方式,其秘钥个数为 2 的 56 次方,那么每纳秒执行一次解密所需要的时间差不多 1 年的样子。当然,没人这么干。DES 现在已经不是一种安全的加密方法,主要因为它使用的 56 位密钥过短。



IDEA


国际数据加密算法(International Data Encryption Algorithm)。秘钥长度 128 位,优点没有专利的限制。


AES


当 DES 被破解以后,没过多久推出了 AES 算法,提供了三种长度供选择,128 位、192 位和 256,为了保证性能不受太大的影响,选择 128 即可。


SM1 和 SM4


之前几种都是国外的,我们国内自行研究了国密 SM1 和 SM4。其中 S 都属于国家标准,算法公开。优点就是国家的大力支持和认可


总结下几种


2 对称秘钥的应用

非对称算法


在对称加密中,发送方与接收方使用相同的秘钥。那么在非对称加密中则是发送方与接收方使用的不同的秘钥。其主要解决的问题是防止在秘钥协商的过程中发生泄漏。比如在对称加密中,小蓝将需要发送的消息加密,然后告诉你密码是 123balala,ok,对于其他人而言,很容易就能劫持到密码是 123balala。那么在非对称的情况下,小蓝告诉所有人密码是 123balala,对于中间人而言,拿到也没用,因为没有私钥。所以,非对称密钥其实主要解决了密钥分发的难题。如下图



其实我们经常都在使用非对称加密,比如使用多台服务器搭建大数据平台 hadoop,为了方便多台机器设置免密登录,是不是就会涉及到秘钥分发。再比如搭建 docker 集群也会使用相关非对称加密算法。

1 常见的非对称加密

RSA(RSA 加密算法,RSA Algorithm)


优势是性能比较快,如果想要较高的加密难度,需要很长的秘钥。


ECC


基于椭圆曲线提出。是目前加密强度最高的非对称加密算法


SM2


同样基于椭圆曲线问题设计。最大优势就是国家认可和大力支持。


三种对比


三 散列算法

这个大家应该更加熟悉了,比如我们平常使用的 MD5 校验,在很多时候,我并不是拿来进行加密,而是用来获得唯一性 ID。在做系统的过程中,存储用户的各种密码信息,通常都会通过散列算法,最终存储其散列值。

1 常见的散列

MD5


MD5 可以用来生成一个 128 位的消息摘要,它是目前应用比较普遍的散列算法,具体的应用场景你可以自行  参阅。虽然,因为算法的缺陷,它的唯一性已经被破解了,但是大部分场景下,这并不会构成安全问题。但是,如果不是长度受限(32 个字符),我还是不推荐你继续使用 MD5 的。


SHA


安全散列算法。SHA 分为 SHA1 和 SH2 两个版本。该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。


SM3


国密算法 SM3.加密强度和 SHA-256 想不多。主要是收到国家的支持。


总结



至此,总结下,大部分情况下使用对称加密,具有比较不错的安全性。如果需要分布式进行秘钥分发,考虑非对称。如果不需要可逆计算则散列算法。因为这段时间有这方面需求,就看了一些这方面的资料,入坑信息安全,就怕以后洗发水都不用买。谢谢大家查看!

用户头像

暖蓝笔记

关注

还未添加个人签名 2019.10.15 加入

银行国企上岸

评论

发布
暂无评论
对称加密与非对称加密总结_3 月月更_暖蓝笔记_InfoQ写作平台