数字证书&数字签名 详解

首先明确几个基本概念:

1、密钥对,在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。

2、公钥,公钥用来给数据加密,用公钥加密的数据只能使用私钥解密。

3、私钥,如上,用来解密公钥加密的数据。

4、摘要,对需要传输的文本,做一个HASH计算,一般采用SHA1,SHA2来获得。

5、签名,使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。

6、签名验证,数据接收端,拿到传输文本,但是需要确认该文本是否就是发送发出的内容,中途是否曾经被篡改。因此拿自己持有的公钥对签名进行解密(密钥对中的一种密钥加密的数据必定能使用另一种密钥解密。),得到了文本的摘要,然后使用与发送方同样的HASH算法计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。

7、数字签名,是非对称加密技术和数字摘要技术的应用。使用Hash函数获取数据/报文的摘要,然后再利用私钥对摘要进行加密,即可获得数字签名。数据接收者使用发送者的公钥进行解密,获得数据的摘要,以确定信息发送者。(报文的发送者利用hash函数生成报文的散列值/报文摘要,发送方再使用自己的私钥对这个散列值/报文摘要进行加密,形成数字签名。然后,这个数字签名作为报文的附件和报文一并发送给报文的接收方。接收者根据接收到地原始报文计算出散列值/报文摘要,再利用发送方的公钥对数字签名进行解密,然后对两个散列值进行对比,以确认信息的可靠性

8、数字证书,CA中心对发送者/申请者的公钥和其他相关信息进行加密,生成数字证书。以后发送数据时,发送者连同数字签名、数字证书一并发送;接收者使用CA的公钥(根证书获取)解开数字证书,即可获得发送者的公钥,然后就能证明数字签名是否来自真正的发送者

在签名的过程中,有一点很关键,收到数据的一方,需要自己保管好公钥,但是要知道每一个发送方都有一个公钥,那么接收数据的人需要保存非常多的公钥,这根本就管理不过来。并且本地保存的公钥有可能被篡改替换,无从发现。怎么解决这一问题了?由一个统一的证书管理机构来管理所有需要发送数据方的公钥,对公钥进行认证和加密。这个机构也就是我们常说的CA。认证加密后的公钥,即是证书,又称为CA证书,证书中包含了很多信息,最重要的是申请者的公钥。

CA机构在给公钥加密时,用的是一个统一的密钥对,在加密公钥时,用的是其中的私钥。这样,申请者拿到证书后,在发送数据时,用自己的私钥生成签名,将签名、证书和发送内容一起发给对方,对方拿到了证书后,需要对证书解密以获取到证书中的公钥,解密需要用到CA机构的”统一密钥对“中的公钥,这个公钥也就是我们常说的CA根证书,通常需要我们到证书颁发机构去下载并安装到相应的收取数据的客户端,如浏览器上面。这个公钥只需要安装一次。有了这个公钥之后,就可以解密证书,拿到发送方的公钥,然后解密发送方发过来的签名,获取摘要,重新计算摘要,作对比,以验证数据内容的完整性。



你可能感兴趣的:(数字证书&数字签名 详解)