非对称加密

  再说“非对称加密”之前,我们先聊一聊“对称加密”。对称加密是我们所熟知的加密,通过加密算法和秘钥将明文加密成密文。其中算法和秘钥都是固定的,也就是说如果我们的算法和秘钥有任何泄露的话,我们的加密也就不再安全。这个是“对称加密”的问题,现在想一下我们真正的使用场景。假设我们是发送端,为了信息的安全,需要把内容加密发送,所以接收端必须要知道加密算法和秘钥,这才可以识别加密内容并使用。这就带来了一个问题,我们的信息安全是建立在信任接收端之上的,相信接收端不会泄露我们的加密算法和秘钥,所以“对称加密”严格来说并不太安全。由于以上“对称加密”的问题,这就催生了“非对称加密”。
  “非对称加密”需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。

  另一方面,甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;乙方再用自己的私匙对数据进行验签。这是数字签名的使用。数字签名是非对称密钥加密技术与数字摘要技术的应用。数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
  “非对称加密”解决了“对称加密”信息安全依赖第三方的问题,当然这个还是建立在自己不会泄露自己的私钥的基础上的。

如果感到快乐,你就拍拍手。