数字证书又叫“数字身份证”、“网络身份证”,是由证书认证中心CA发放并经认证中心数字签名,包含公开密钥拥有者以及公开密钥相关信息的一种电子文件,可以用来证明数字证书持有者的真实身份。数字证书的格式一般采用X.509国际标准。
数字签名的过程
用户A将待发送的信息原文经散列函数运算生成摘要信息,并用自己的私有密钥对摘要信息进行加密,将形成的密文和原文传送给用户B。用户B接收到密文后,使用A的公开密钥验证密文,得到摘要信息,并按照约定的摘要算法对原文进行摘要运算,再将两个摘要值进行比对,一致则表明数据未被篡改。
数字签名实现了用户的身份认证,保证了数据在传输过程中的完整性、和交易的不可否认性;但是,任何拥有发送方公开密钥的人都可以验证数字签名的正确性,因此无法保证数据的机密性
加密的过程
加密:A首先要用B的公钥对信息原文进行加密,形成密文,发送给B;B在收到密文后用自己的私钥进行解密,将密文恢复为原文。该过程实现了信息的保密性以及对信息接收方B的认证
由于加密和数字签名都只保证了信息在传输过程中的完整性、保密性、不可否认性和真实性的一部分,只有将两者相结合才能实现所有安全特性
所以真正AB信息传递过程中,完整的情况如下:
A的行为
1、A把信息原文进行哈希运算,得到信息的数字摘要
2、A用自己私钥,采用非对称加密算法,对数字摘要进行加密,得到数字签名
3、A用对称算法的密钥,采用对称算法,对信息原文和数字签名和A的公钥一起加密,得到加密信息
4、A用B的公钥,采用非对称算法,把对称密钥加密,形成信封。就像是对称密钥装到了B公钥加密的信封里面
5、A把加密信息和数字信封一起发给B
B的行为
1、B收到数字信息,用自己的私钥解密信封,拿到对称密钥
2、B用对称密钥,把加密信息解密,得到信息原文和数字签名和A的公钥
3、B用A的公钥解密数字签名,得到数字摘要1
4、B将原文用同样的哈希算法,得到数字摘要2
5、将摘要1和摘要2对比。如果相等,则原文没有被修改,签名是真实的
详细图解:
参考网站:https://baike.baidu.com/item/%E6%95%B0%E5%AD%97%E7%AD%BE%E5%90%8D
https://baike.baidu.com/item/%E6%95%B0%E5%AD%97%E8%AF%81%E4%B9%A6