对称加密和非对称加密

500 阅读3分钟

对称加密

   对称加密通过一个密钥对明文进行加密,得到不可读的密文。解密者通过通过加密算法用同样的密钥对密码进行解密得到原来的明文。

image.png 对称加密最大的问题在于密钥的管理,因此,对称加密密钥分发、保管必须严格控制,以免泄露。

非对称加密

   为解决对称加密共享密钥引发的问题,计算机科学家发明了一种更神奇的加密方式。这种加密方式需要两个密钥,一个是 公钥 ( public key )、一个是 私钥 ( private key )。私钥由自己保管,不能泄露;公钥分发给任何需要与自己通讯的参与者,无须保密。

   数据加密者根据加密算法,用公钥对明文进行加密,得到不可读懂的密文。数据解密者根据加密算法,用私钥对密文进行解密,得到原来的明文。

image.png    由于加密环节和解密环节所用的密钥不同,因此这种加密方式也称为 非对称加密 ( asymmetric encryption )。由于公钥可以对外公开,也就不用刻意保护了。

在网上看到一个很好的例子 记录一下

   Alice 是一位帮会大佬,手下有许多小弟, Bob 是其中一位。小弟们在外行动,定期汇报成果,接受指令。为保证通讯安全, Alice 通过非对称加密算法,打造了一对密钥: Alice 小心翼翼地保管着私钥,并把公钥分发给 Bob 等小弟们。 数据加密 小弟 Bob 需要向 Alice 汇报工作, Alice 不希望汇报内容被第三方获悉,包括其他小弟。这时, Bob 用 Alice 给的公钥对汇报数据进行加密,再差人送给 Alice 。Alice 收到 Bob 送来的数据后,用自己手中的私钥一解,就知道 Bob 说啥了。 由于用公钥加密的数据只有私钥能解,而私钥只有 Alice 有,因此汇报内容不可能被第三方知晓。换句话讲,只要私钥不泄露,加密数据便不会被其他人获悉。 数据签名 Alice 给 Bob 下达行动指令,内容虽然可以公开,但 Alice 必须防止不法之徒伪造指令。 为此, Alice 先借助类似 MD5 或 SHA 的哈希算法,为指令文本计算 摘要 。同样的文本生成的摘要一定相同;不同的文本,哪怕只差一个字母,生成的摘要一定不同。 接着,Alice 用私钥对摘要进行加密,并将加密结果作为 签名 与指令一起发给 Bob 。 Bob 接到指令后,用公钥对签名进行解密,得到 Alice 生成的摘要。然后,他用同样的算法,重新为指令文本计算摘要。如果两个摘要吻合,便可确定指令是 Alice 下达的。 其他别有用心的第三方,或许已经掌握了摘要计算方法,但苦于缺少私钥,也就没有办法伪装成 Alice ,向 Bob 下达指令了。

原文链接:blog.csdn.net/weixin_2962…