不对称加密算法、数字签名、证书

对称加密算法

小S和小T在网上聊天,聊天内容通过网络传送给对方,但是他们不想对话的内容让第三方知道,怎么办呢?那就把对话内容先加密再传给对方吧,然后再由对方解密,于是他们俩人选定了一个共同的密钥(key),通过这个密钥可以加密和解密信息

  1. 小S打了一段字:ABCDE ,然后通过密钥加密,密文是EFUXI,然后通过网络传送给小T,这样就算有人截取到了这个密文,没有这个密钥也不知道小S说的是什么。

  2. 小T接收到了小S的密文: EFUXI ,然后通过他们两个共同拥有的密钥对密文进行解密,知道了小S想说的话其实是ABCDE ,这样就完成了一次对话。

上面就是对称加密算法的流程,通讯双方拥有同一密钥,使用同一个加密解密算法,实现信息的保密传输。但是这样有很多问题


非对称加密算法

小S开了一个网店,每天要和好多客户交流,用户经常需要把个人信息发送给小S好让他寄东西给他们,这就又需要对这些用户信息进行加密了。

于是小S想把自己的密钥分发给这些用户,可是用户太多了,分发给这么多用户,密钥很容易就泄露了,怎么办呢?

小S想到了非对称加密算法,他创建了一对密钥,也就是两个密钥,一个叫做公钥,一个叫做私钥,用私钥加密的信息只有用公钥才能解密,用公钥加密的信息只有私钥才能解密,小S把公钥放在了网上,任由客户下载,而小S保存着私钥,不给任何人。

客户在发送私人信息给小S的时候,先下载公钥,通过公钥对信息加密后再发送,这样没有私钥是解不开加密信息的,也就保证了信息的保密性

* 非对称加密算法广泛使用于分布式系统,不过对于对称加密算法来说,它需要加密与解密的时间更长,更复杂 *


数字签名

小S网店开的越来越好,他想答谢新老客户的厚爱,决定在网上发表一篇声明说明店里最近的优惠政策。 但是他怕声明发表出来后有人私自篡改他写的声明,对他进行摸黑,那么如何能证明这个声明确实是小S写的呢?

于是小S想到了数据摘要算法,又叫做Hash算法,这个算法可以针对一段数据进行压缩,压缩成一段只有几十到几百字节的”摘要”,而且原数据任何一位的变动都会导致这个”摘要”的不同。这样只要小S写好声明,然后用算法对声明生成一段”摘要”,然后将这个放在文章下面就好了。

这样用户看到这个文章的时候,只要用相同的算法再进行一次Hash算法,与小S生成的”摘要”一对比,如果完全一致,就说明这篇声明是小S写的并且没有改动过啦!

可是万一有人连小S的”摘要”都伪造了怎么办呢?于是小S用自己非对称加密算法钥匙对中的私钥对这个”摘要”进行了加密,这样用户只要用从网上下载下来的公钥对这个”摘要”进行解密后再对比就好了,不会再有人能冒充小S了,因为私钥只要小S一个人有。

那么问题又来了,既然小S有私钥,为什么不直接对整篇声明进行加密呢?还要用数据摘要算法干什么? 在这里,数据摘要算法主要起到了压缩数据大小的作用,因为非对称加密算法确实很慢,如果只是为了验证数据完整性就全部加密数据那实在太慢了,而仅仅加密一个几十字节的数据明显速度会提升很多。

上面这一段数据摘要算法+私钥加密的过程就是所谓的数字签名,主要目的是为了确保数据完整性,但是数据传输还是明文的


证书

有一天小T找到小S,告诉小S他在网上发现了好几个公钥,都说是小S那个网店的公钥,他都不知道哪个是真的了。

小S发现确实是这样,网上有人冒充是他的公钥提供给网友下载,干扰他的生意,于是他决定,把他的公钥放在一个权威的机构,让这个机构替他发放公钥,公众都信任这个权威机构,这样就不担心有人冒充他的公钥了。

这样小S找到了一个证书发放机构(CA),告诉他们”我需要一个证书,来证明我的公钥是真的!”,CA工作人员让小S提交了一些必要的信息,然后审核他提供的信息,然后让小S把他的公钥交给CA。

CA根据小S提供的信息和他提供的公钥,制作了一份电子版的证书这份证书包含着小S真正的公钥,而且还写明了这个公钥是小S那个网店的公钥,然后CA又对整个证书进行了数字签名(用CA机构自己的私钥加密),然后把这个证书放在了自己(CA)的网站上供用户下载。

小S开心的回去了,告诉所有客户,以后需要我的公钥只要去那个CA的官网去下载我的证书,然后用CA的公钥解密,就可以找到我的网店的公钥了,再也不用担心别人伪冒我的公钥了,只有CA官网里那个是真的!

上面这就是证书的说明,前提是用户要信任CA机构

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值