对称加密、非对称加密、数字签名

对称加密和非对称加密

对称加密

通信双方使用同一个密钥,不同算法工作。数据发送方使用密钥和加密算法对数据进行加密,数据接收方使用密钥和解密算法对密文进行解密,还原数据。

基本模型如下图所示。


对称加密模型
  • 常见对称加密算法DES、AES。
  • 加密算法缺点:密钥需要数据发送方通过不可信网络传输给数据接受方,密钥存在泄漏风险。

非对称加密

通信双方使用不同的密钥,相同的算法工作。数据发送方持有公钥,数据接收方持有私钥。公钥由数据接收方通过网络发送给数据发送方。数据发送方通过加密算法和公钥对数据进行加密,数据接收方通过加密算法和私钥对密文进行解密,还原数据。

基本模型如下图所示。


非对称加密模型
  • 常见非对称加密算法 RSA、DSA。
  • 非对称加密算法私钥由数据接收方持有,不会在网络上传递,保证了密钥的安全。
  • 非对称加密算法通常比对称加密算法计算复杂,性能消耗高。
  • 非对称加密算法可用于数字签名。

数字签名

数字签名是安卓 APK 校验安装包是否被篡改、损坏的有效手段。数字签名采用了非对称加密 + Hash 两种技术。具体原理参见下图,主要是以下几步。

  1. 对原始数据进行 hash,得到数据摘要。
  2. 通过私钥和加密算法对数据摘要进行加密得到加密后的数据摘要。
  3. 将加密后的数据摘要附加在原始数据后,组合成签名后的数据,并发送个对方。
  4. 对方收到签名后的数据后,将原始数据和签名的摘要分开。同样通过 hash 原始数据得到一份数据摘要。
  5. 对加密后的数据摘要通过公钥解密,得到待验证的数据摘要。
  6. 对比两份数据摘要,只要完全一致则表明原始数据未被篡改或损坏。


    数字签名模型

你可能感兴趣的:(对称加密、非对称加密、数字签名)