对称加密

  • 又称私钥加密,使用单个私钥来加密和解密数据,收发双方都用同一密钥进行解密,必须保护密钥传输过程中不被他人得到。由于同一密钥同时用于加解密,所以称为对称加密。
  • 私钥加密算法非常快,特别适合加密较大的数据流。
原理
  • 举个栗子,甲和乙是一对生意搭档,他们住在不同的城市。由于生意上的需要,他们经常会相互之间邮寄重要的货物。为了保证货物的安全,他们商定制作一个保险盒,将物品放入其中。他们打造了两把相同的钥匙分别保管,以便在收到包裹时用这个钥匙打开保险盒,以及在邮寄货物前用这把钥匙锁上保险盒。只要甲乙小心保管好钥匙,就算有人得到保险盒也无法打开。
  • 在对称加密中,数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,若想解读原文,则需要使用加密密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。
特征
  • 加密解密的速度比较快,适合数据比较长时的使用。
  • 秘钥传输过程不安全,且容易被破解,秘钥管理也比较麻烦。

不对称加密

  • 又称公钥加密,使用公钥和私钥,公钥和私钥都在数学上相关联,用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证。公钥可以被任何人发现,用于对发送到私钥持有者的数据加密。称为不对称算法的原因是用公钥加密而解密确实用的私钥。
  • 例子,小红和小明使用不对称加密传送数据。首先,小红在本地生成公钥/私钥对,并通过不安全的网络将公钥发送给小明(因为小明发起发送数据请求,向她索要公钥了)。接着,小明使用该公钥加密数据后发送,而小红使用她的私钥解密该数据。
  • 反之,小红若想给小明会消息,则会先向小明索要其公钥,然后用该公钥加密消息再发送,而小明用自己的私钥解密该消息。
  • 即使黑客中途截获密钥和消息,但没有私钥也解密不了。
  • 算法:RSA,DSA,DH asymmetric cryptography。
  • 缺点:公钥算法非常慢,不适合用来加密大量数据,仅对传输少量的数据有用。
数字签名
  • 数字签名验证发送方的身份并帮助保护数据的完整性。
  • 使用不对称加密对消息生成数字签名,首先,小红用哈希算法加密消息生成消息摘要。然后,再用私钥应用于该消息摘要生成个人签名,将消息摘要+个人签名发送给小明。小明收到后首先使用小红的公钥解密签名得到消息摘要,如果该消息摘要与收自小红的消息摘要一致,则可以确定该消息来自私钥持有人,并且数据未被篡改。
  • 但公钥易被窃取,因此任何人都可以验证签名,所以还需要对消息进行加密。
总结
  • 公钥用于加密和验章,私钥用于解密和签章。