非对称加密 数字签名 数字证书 CA机构配合的原理与步骤

首先了解非对称加密的一些细节:

  1. 非对称加密里面,公钥加密只可以私钥解密,私钥加密(签名)只可以公钥来解密(验证)。
  2. 非对称加密通过公钥加密,私钥解密,来处理对传输信息的加密以及解密。
  3. 非对称加密通过私钥对传输信息摘要进行签名,通过公钥来验证出这份摘要,如果可以用公钥解密出来,可以证明消息是正确的发送者发送来的。(可能有的人会问,公钥不是每个人都可以获得的吗?那我随便截获一段A发送的信息,不就可以通过A的公钥解密了吗?但其实是不是的,一般只会通过私钥对信息的摘要进行签名,B收到信息后通过公钥也只能解密出原来信息的摘要,摘要一般是通过Hash函数计算出来的,拥有不可逆性,及几乎不可能从摘要反推出来原文,后文会详细展开)

以RSA为例,简易的单向加密步骤(及单纯Alice给Bob发送消息)

  1. Bob通过RSA算法生成一对公钥和私钥,把私钥保存起来,私钥不可以发送给任何人。
  2. 将公钥发送出去,这样Alice就可以收到。
  3. Alice获取到Bob的公钥,将要进行发送的数据,通过公钥进行加密生成密文。
  4. 将加密后的密文发送给Bob。
  5. Bob收到加密后的密文,并用自己的私钥解密出明文。

上面的步骤可以看出来一些问题:

  1. Bob无法确认收到的信息是来自Alice的
  2. 与对称加密不同,非对称加密的复杂度是要高很多的,也是很费时的,所以如果Alice传输的是一个非常大的文件,对整个文件进行加密是非常不明智的

于是引出了带有数字签名,以及摘要的详细步骤:

  1. Alice生成自己的公钥与私钥,将公钥发送给Bob。
  2. Bob生成自己的公钥与私钥,将公钥发送给Alice。
  3. Alice将要发送的明文,通过Bob的公钥进行加密,生成密文
  4. Alice将要发送的明文,通过Hash算法生成信息摘要(一般Hash算法生成的信息摘要都是固定长度,而且很短的,如MD5,SHA256)。
  5. Alice用自己的私钥对这份信息摘要进行签名,生成数字签名
  6. Alice将密文,以及刚刚生成的数字签名进行打包,一起通过网络发送给Bob。
  7. Bob收到Alice发送的密文以及数字签名
  8. Bob通过自己的私钥对密文进行解密生成明文
  9. Bob通过Alice的公钥数字签名进行解密,获得信息摘要
  10. Bob通过与Alice相同的Hash算法,对明文进行运算,生成新的信息摘要
  11. Bob通过对比收到的信息摘要,与刚刚自己的生成的信息摘要,来判断密文的完整性,以及发送方是否是Alice。

在这个过程中,如果密文被篡改,导致密文的内容发生变化,接收方无法正确解密被篡改后的密文。数字签名的验证过程会失败,因为接收方的验证会生成不同的摘要与发送方的数字签名不匹配。
完整性的保证:如果Bob这边生成的摘要和接收到的摘要是一样的,则证明原文的完整性保证了,因为如果原文有一点点变化,Hash算法会导致生成的信息摘要有很大的变化。而且,如果使用Alice的公钥对数字签名进行解密成功,则一定证明是通过Alice的私钥进行加密的。

那么,我怎么确认我收到的公钥,就一定是Bob的呢?

是的,Bob将自己的公钥发送给Alice的时候,很有可能会被Eve获取,然后Eve将自己的公钥发送给Alice。那么每次Alice通过Eve的公钥进行加密,Eve就可以获取Alice加密前的明文了。

这里就引出了CA机构。
CA(Certification Authority)机构是负责颁发和管理数字证书的权威机构。说通俗一点,就是用来给予所有公钥一个权威性证明的机构。它要做的事情,就是帮助我们确认这个公钥就是来自Bob的。这也就是数字证书(Digital Certificate)的作用。只要是被CA机构认证过的公钥,我们就可以确认他是我们期待的那个用户的公钥。后文会详细说明。

来看看Bob如何获取CA机构认证的吧:

  1. Bob将自己的公钥,以及自己的部分个人信息发送给某个权威的CA证书颁发机构。
  2. CA机构核实Bob的身份后,将颁发一个数字证书。数字证书里面包含了Bob的个人信息,以及公钥。所以可以证明这个公钥属于Bob。
  3. Bob获取到自己的数字证书后,将证书发布到互联网上。Alice就可以获取到这个数字证书,可以证明这个公钥就是Bob的。如果是其他人的数字签名,比如Eve,用证书里面的Bob的公钥就无法解密了。

那么如何确保数字证书一定不会被伪造呢?

是的,如果有人造假数字证书呢?一些Eve开的CA机构,不就可以颁给Bob一个假的数字证书,里面的公钥用自己的了?那Eve后面不是就又可以用自己的私钥进行解密了?

可惜,Eve虽然尽力了,但也仅限于此了。因为CA机构自己也有一套公钥和私钥,在颁发数字证书的时候,会用自己的私钥对“Bob的身份信息以及公钥的信息摘要”进行数字签名,贴在证书里面。而,我们的电脑或手机系统里面,默认就已经安装了根证书,根证书里面记录了可以信任的CA机构以及其公钥,所以CA机构的公钥,Eve使无论如何也无法在网络中进行截获或者篡改的。通过根证书里面的公钥,可以解密出数字证书里面的数字签名获取“Bob的身份信息以及公钥的信息摘要”,然后将证书里面的信息进行Hash运算生成摘要,对比两个摘要,就可以确保了数字证书的不可伪造性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值