美文网首页
加密算法概览

加密算法概览

作者: CurryCoder | 来源:发表于2021-03-07 21:18 被阅读0次

1.对称加密

  • 加密方和解密方使用同一套密钥。即:发送方通过使用相应的加密算法和密钥,对将要发送的信息进行加密;对接收方来说,使用解密算法和相同的密钥解锁信息,从而有能力理解对方的信息。
  • DES、IDEA、AES、SM1、SM4

2.非对称加密

  • 非对称加密中,发送方和接收方使用的是不同的密钥,主要解决的问题是防止在密钥协商的过程中发泄漏。
  • RSA、ECC、SM2

3.散列算法

  • MD5、SHA(SHA1、SHA2)、SM3

4.非对称加密

  • 非对称加密使用两个密钥,一个是public key,一个是private key。通过一个特殊的数学算法,使得数据的加密和解密使用不同的密钥。因为用的是不同的密钥,所以称为非对称加密。

  • 如果使用非对称加密,一般遵从这样的原则:公钥只用来加密,私钥只用来解密。另外,我们注意到一点,因为私钥不会在公网上传播,因此,私钥也可以认为是个人身份的证明。

捕获.PNG
  • 如果在发送过程中,有人(例如C)修改了里面密文消息,B拿到的密文,解密之后得到明文,并非A所发送的,信息也不正确,但是B并不知道。所以这里就要解决两个问题:
    • (1).A的身份认证(确保消息是A发出的)
    • (2).A发送的消息完整性(确保消息没有被其他人篡改)

-要解决上面两个问题就要引入一个概念:数字签名。要讲解数字签名,还需要先了解另一个概念:消息摘要。

  • 消息摘要是将消息经过哈希转换成一个固定长度的、值唯一的字符串。值唯一的意思是不同的消息转换的摘要是不同的,并且能够确保唯一。该过程不可逆,即不能通过摘要反推明文(似乎SHA1已经可以被破解了,SHA2还没有。一般认为不可破解,或者破解需要耗费太多时间,性价比低)。利用这一特性,可以验证消息的完整性。

  • 既然消息摘要可以保证消息的完整性,而private key又可以作为身份证明,那么用private key加密过的消息摘要就同时解决了上述的两个问题——身份认证和消息完整性,这个“由private key加密的消息摘要”也就是数字签名。

使用数字签名后的加密消息摘要.PNG
  • 详细过程如下所示:
    • (1).A和B都各有一个public key和一个private key,这些key根据相应的算法已经生成好了。private key只保留在各自的本地,public key传给对方;

    • (2).将数据明文进行摘要(hash)运算后得到摘要(消息完整性),再将摘要用A的private key加密(身份认证),得到数字签名;然后用B的public key加密数据加密得到密文,最后将密文和数字签名一块发给B;

    • (3).收到A的消息后,先将密文用自己的private key解密,得到明文。对明文进行摘要运算,得到实际收到的摘要;再将数字签名用A的public key进行解密后,得到正确的摘要(解密成功说明A的身份被认证了)。将两份摘要进行对比,如果一致,则说明消息没有被篡改(消息完整性);

5.CA

  • 现实中,通过CA(Certificate Authority)来保证public key的真实性。CA也是基于非对称加密算法来工作。有了CA后,B会先把自己的public key(和一些其他信息)交给CA。CA用自己的private key加密这些数据,加密完的数据称为B的数字证书。现在B要向A传递自己的public key,B传递的是CA加密之后的数字证书。A收到以后,会通过CA发布的CA证书(包含了CA的public key),来解密B的数字证书,从而获得B的public key。(备注:现实的数字证书不仅包含所有者public key,还包含证书信息:过期时间和序列号,所有者信息:姓名等)

  • CA把自己的CA证书集成在了浏览器和操作系统里面。A拿到浏览器或者操作系统的时候,已经有了CA证书,没有必要通过网络获取,那自然也不存在劫持的问题。

6.SSL/TLS的应用

  • 非对称加密算法比对称加密算法要复杂的多,处理起来也要慢得多。如果所有的网络数据都用非对称加密算法来加密,效率会很低。所以在实际应用中,非对称加密只会用来传递一条信息,那就是用于对称加密的密钥。当对称加密的密钥确定后,A和B还是通过对称加密算法进行网络通信。这样,既保证了网络通信的安全性又不影响效率,A和B也不用见面商量密钥了。所以,在现代,A和B之间要进行安全,省心的网络通信,需要经过以下几个步骤:
    • (1).通过CA体系交换public key;
    • (2).通过非对称加密算法交换用于对称加密的密钥;
    • (3).通过对称加密算法加密正常的网络通信;

相关文章

网友评论

      本文标题:加密算法概览

      本文链接:https://www.haomeiwen.com/subject/otxfmktx.html