非对称加密算法 (RSA、DSA)概述

非对称加密算法系列文章,推荐阅读顺序:

  1. 非对称加密算法 (RSA、DSA)概述
  2. 非对称加密算法 RSA+对称AES
  3. 非对称加密算法 (DSA)

加密的作用
数据传输加密
在开发应用过程中,客户端与服务端、服务端与第三方系统经常需要进行数据传输,涉及到重要隐私信息时,自然会想到对其进行加密,即使传输过程中被“有心人”截取,也不会将信息泄露。
尤其是随着微服务框架的流行,公网的可被捕捉交互越来越频繁,为了防止非授权第三方偷窥数据、篡改数据。我们需要进行数据加密和数字签名。

  1. 信息加密:收信者是唯一能够解开加密信息的人,因此收信者手里的必须是私钥。
  2. 数字签名:数字签名是为了表明信息没有受到伪造,确实是信息拥有者发出来的,附在信息原文的后面。就像手写的签名一样,具有不可抵赖性和简洁性。简洁性:对信息原文做哈希运算,得到消息摘要,信息越短加密的耗时越少。不可抵赖性:信息拥有者要保证签名的唯一性,必须是唯一能够加密消息摘要的人,因此必须用私钥加密 (就像字迹他人无法学会一样),得到签名。如果用公钥,那每个人都可以伪造签名了。

一、基本概念

1.1 非对称加密

非对称加密需要两个密钥:公钥 (publickey) 和私钥 (privatekey)。公钥和私钥是一对,如果用公钥对数据加密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公钥进行解密。因为加密和解密用的是不同的密钥,所以称为非对称加密。

因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。简单的说是“公钥加密,私钥解密;私钥加密,公钥解密”。

1.2 对称加密

对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。这样安全性就大了很多。

1.3 RSA 与 DSA 对比

  1. 相同点:
    RSA 与 DSA 都是非对称加密算法。
  2. 区别:
    DSA 只能用于数字签名,而无法用于加密(某些扩展可以支持加密);RSA 即可作为数字签名,也可以作为加密算法。不过作为加密使用的 RSA 有着随密钥长度增加,性能急剧下降的问题。在业界支持方面,RSA 显然是赢家。RSA 具有更为广泛的部署与支持。

1.4 工作原理(单向数据)

  1. A 要向 B 发送信息,B 要产生一对用于加密和解密的公钥和私钥。
  2. B 的私钥保密,B 的公钥告诉 A。
  3. A 要给 B 发送信息时,A 用 B 的公钥加密信息,因为 A 知道 B 的公钥。
  4. A 将这个消息发给 B (已经用 B 的公钥加密消息)。
  5. B 收到这个消息后,B 用自己的私钥解密 A 的消息。其他所有收到这个报文的人都无法解密,因为只有 B 才有 B 的私钥。

1.5 工作原理(双向数据)

非对称加密算法 (RSA、DSA)概述_第1张图片
双向数据加密
  1. A 要向 B 发送信息,A 和 B 都要产生一对用于加密和解密的公钥和私钥。
  2. A 的私钥保密,A 的公钥告诉 B;B 的私钥保密,B 的公钥告诉 A。
  3. A 要给 B 发送信息时,A 用 B 的公钥加密信息,因为 A 知道 B 的公钥。
  4. A 将这个消息发给 B (已经用 B 的公钥加密消息)。
  5. B 收到这个消息后,B 用自己的私钥解密 A 的消息。其他所有收到这个报文的人都无法解密,因为只有 B 才有 B 的私钥。

你可能感兴趣的:(非对称加密算法 (RSA、DSA)概述)