一、对称算法

加密和解密的密钥是相同的。对称算法又分为流密码算法和分组密码算法。

流密码算法每次加/解密一字节的明文/密文;分组密码算法将明文/密文分成固定长度的数据块,用同一密钥和算法对数据块进行加/解密,再拼凑起来得到最终的明文/密文。

常见的对称算法有DES、3DES等。

二、非对称算法

加密和解密的密钥是不同的。从一个密钥很难推导出另一个密钥,公钥可以公开,私钥必须秘密保存。常见的非对称加密算法有RSA、DH等。

三、摘要算法

将任意长度的输入消息数据转化成固定长度的数据输出。常见的摘要算法有MD5、SHA1等。

四、数字信封

对称密码算法优点是加解密运算非常快,适合处理大批量数据。缺点是密钥分发与管理比较复杂。

非对称密码算法优点是公钥与私钥分开,适合密钥的分发与管理。缺点是运行速度不快,不适合处理大批量数据。

如果将对称密码算法和非对称密码算法的优点结合起来,则既能处理大批量数据,又能简化密钥的分发与管理,数字信封机制基于此应运而生。

数字信封不需要分发和管理对称密钥,而是随机产生对称密钥,采用对称密钥算法对大批量数据进行加密,并采用非对称密码算法对该对称密钥进行加密;解密时,先用非对称密码算法解密后获得对称密钥,然后使用对称密码算法解密后获得数据明文。

  • 生成数字信封:
  1. 消息发送方预先获得接收方的公钥。
  2. 消息发送方随机产生对称密钥,并用该对称密钥和对称算法对消息进行加密。
  3. 消息发送方用消息接收方的公钥和非对称算法对上述对称密钥进行加密。
  4. 消息发送方将消息密文和对称密钥密文一起发送给消息接收方。
  • 拆解数字信封:
  1. 消息接收方收到消息密文和对称密钥密文。
  2. 消息接收方使用自己的私钥和非对称密码算法对对称密钥密文进行解密后获得对称密钥明文。
  3. 消息接收方使用上述对称密钥和对称算法对消息密文解密后获得消息明文。 

但数字信封容易被狸猫换太子,不法分子把太子换掉,把狸猫放在襁褓里并用对称算法加密,再通过获取接收方的公钥来加密自己的对称算法,一起发给对方,对方收到后,用私钥解开,得到坏人的对称密钥,然后再用对称密钥解开秘密襁褓,得到一个狸猫。仅此字面意思举例。

参考:一文读懂生成数字信封和拆解数字信封流程 (baidu.com)https://baijiahao.baidu.com/s?id=1668083338071856205&wfr=spider&for=pc