简述加密、摘要、数字签名、数字证书

加/解密

从一个经典的例子说起:Bob和他的朋友们经常通过写信的方式交流,Bob不希望除了朋友以外的人可以获取信件的内容,决定采用将信件加密的方式,保证信息安全。

在信息传输中,为了防止被第三方截获并获取信息,将传输的明文通过秘钥和一定算法转换为密文,这个过程即为加密;使用对应的算法和秘钥将密文还原为明文即为解密。加解密过程中的算法是公开的,但秘钥是保密的。一般来讲,只要保证秘钥不泄漏,通信可以保证通信安全。

通过加解密是否使用同一个秘钥将加密分为:对称加密和非对称加密。

对称加密

Bob准备了一个秘钥,并将它分发给了每一个朋友。Bob每次发出信件时会通过加密算法和秘钥对信件内容加密,当朋友们收到信件后,使用约定的解密算法和秘钥恢复信件为明文。朋友们回信时,同样使用秘钥和加密算法对信件加密,Bob收信后解密,从而完成通信过程加密。这个过程就是对称加密。

对称加密是指加密和解密使用同一个秘钥进行。常用的对称加密算法有DES、3DES(TripleDES)和AES

非对称加密

Bob和他的朋友们使用对称加密的方式通信,遇到一些问题:

  1. 必须提前将秘钥分发给朋友们,分发过程中可能被截获
  2. 如果朋友A的信件被朋友B不小心拿到,朋友B可以识别信件中的内容

对此,Bob决定做以下改进:

  1. 每人都准备两个秘钥,即公钥和私钥,将公钥分发给朋友,私钥则自己保存
  2. 想要给谁写信则使用谁的公钥对信件进行加密,收到信件的人使用自己的私钥解密

这个过程就是非对称加密。

非对称加密中加密和解密使用不同的秘钥,即公钥和私钥。一般将公钥发送给其他用户使用,私钥则仅服务自身使用,换言之公钥可以是公开的,私钥是绝对保密的。使用公钥加密只能使用私钥解密,使用私钥加密只能使用公钥解密。当下最常见最流行的非对称加密为RSA

实际使用中往往是对称加密和非对称加密混合使用

摘要

Bob计划给朋友们写一封信,想保证朋友们拿到信件后可以确定信件未被篡改过。于是将信的内容经过MD5运算后得到一个固定长度的字符串附在信件后面,这个字符串就是信件的摘要。朋友收到信后使用同样的算法生成摘要,进行比对,即可确认信件是否被修改过。

摘要算法(Digest):即常说的散列函数、哈希函数,对任意一组输入数据进行计算,得到一个固定长度的输出摘要。常见的摘要算法有:MD5、SHA1、SHA2(SHA224、SHA256、SHA384)

摘要算法一般有以下特性:

  1. 不可逆:只有算法,没有秘钥,只能加密,不能解密
  2. 难题友好性:想要破解只能暴力枚举
  3. 发散性:只要原文有一点点改动,摘要就要发生剧烈变化,即:雪崩效应
  4. 抗碰撞性:原文不同,计算后摘要也要不同

常见的摘要算法有:MD5、SHA1、SHA2(SHA224、SHA256、SHA384),实践证明:MD5和SHA1的抗碰撞性不佳,SHA2是当前最主流的摘要算法

数字签名

上文描述的摘要过程有一个严重的漏洞:如果黑客劫持了Bob的信件,修改后生成新的摘要,附在信件后面,朋友收到后则无法判断信件是否被修改过。我们可以对摘要进行加密来解决这个问题,具体如何操作?

上文中,Bob和他的朋友们使用非对称加密通信时,我们发现通信过程中总是使用公钥加密,私钥解密。从非对称加密的概念中我们得知,私钥加密、公钥解密也是可行的。如果Bob写了一封信使用自己的私钥加密,发送给朋友A,朋友A使用Bob的公钥可以正常解密内容,但是如果朋友B也拿到信件,其仍然可以解密内容,此时唯一能确定的是:信件一定是Bob发出的。也就是说:使用私钥加密,公钥解密起到的作用是:身份认证

因此,我们可以将Bob的私钥对其信件摘要加密,并附在信件末尾,此即为数字签名。朋友收到后,使用Bob的公钥解密得到原文摘要,在与原文生成摘要对比,即可确定信件是否被篡改。这个过程也叫作验签

数字证书

非对称加密中总是需要先发送公钥,直接发送公钥的发送有一定风险。如:Joe将自己的公钥发送给Bob的朋友们,并谎称这是Bob的公钥,Joe就可以伪装成Bob与他的朋友们进行通信。即存在公钥信任问题:如何保证这个公钥一定是Bob的呢?

为了保证公钥的可靠性,引入了数字证书,数字证书包含一个主体及其公钥等信息,由特定的CA机构颁发给这个主体,CA机构具有极高的可信度。使用数字证书的一般过程如下:

  1. Bob向CA机构申请证书,CA机构将Bob的公钥等信息进行摘要运算,得到证书的摘要;
  2. CA用自己的私钥将摘要进行签名算法,生成证书的数字签名,也就是证书指纹;
  3. 一起发布证书信息和证书数字签名,Bob得到数字证书;
  4. Bob给朋友写信时,在信件中附上信件数字签名和申请的数字证书,一起发送给朋友;
  5. 朋友收到信件后,先证书验签:取出数字证书,对证书验签,获取可信的Bob公钥(数字证书的验签过程:一般操作系统存储有可靠的CA机构公钥,其余验签过程同上文验签);
  6. 证书验签完成后,进行信件验签,使用Bob的公钥和信件的数字签名进行验签。

数字证书常见内容:

  1. 所有者:Bob
  2. 公钥:Bob的公钥
  3. 颁发者:CA
  4. 有效期:
  5. 签名哈希算法:指定的摘要算法,用来计算证书的摘要
  6. 签名算法:用于生成签名
  7. 指纹(数字签名):证书的摘要,保证完整性
  8. 序列号:唯一标识

数字证书信息

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值