公钥、私钥、hash、数字签名、CA以及验证过程

简单理解

公钥私钥数字签名

公钥和私钥互相对应,成对存在

公钥加密私钥解密(密文),私钥加密公钥解密(数字签名)

数字签名保证不可否认性,只有拥有私钥的人可以加密

这个过程公钥是公开,用CA来保证公钥的安全,当然CA也有自己的公钥和私钥


hash

又叫做指纹,简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

有很多种方法,通常来检验大文件的完整性


CA和验证流程

可以信任的第三方CA,用来对公钥进行合法性检验。

完整的安全传输公钥并验证的过程:

alice和bob通信

1.alice:

向CA申请证书,将公钥和个人信息发送给CA,申请数字证书

2.CA:

验证A,并制作数字证书

数字证书的格式普遍采用的是X.509V3国际标准,一个标准的X.509数字证书包含以下一些内容:

1、证书的版本信息;

2、证书的序列号,每个证书都有一个唯一的证书序列号;

3、证书所使用的签名算法;

4、证书的发行机构名称,命名规则一般采用X.500格式;

5、证书的有效期,通用的证书一般采用UTC时间格式;

6、证书所有人的名称,命名规则一般采用X.500格式;

7、证书所有人的公开密钥;

8、证书发行者对证书的签名。

CA为了保证证书没有被篡改,对主体内容生成hash生成指纹,并用自己的私钥加密指纹,再将算法和指纹密文一并放入证书中

3.bob:

使用CA公钥解密指纹密文

再对证书主题内容进行hash

结果与解密的指纹进行验证,保证没有被篡改

之后,开始使用alice的公钥

此时,只有alice、bob和可以信任的第三方CA知道alice的公钥

上一篇:Python的tuple容器


下一篇:ruby -- 进阶学习(十七)应用代码优化