数字签名的目的:
完整性 确保数据在传输过程中没有被篡改
身份认证 确保你收到的数据是对应的人员发送过来的
不可否认性 发送方不能否认签名数据
数字签名要素:
原文
摘要
证书
哈希算法:
md2、md5(128位散列值)、国密sm3(256位)
主要作用 将原来比较大的数据散列成较小的值
Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。
这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一确定输入值(不能从散列值推算出原文)。
签名数据包:
attached 版本、哈希算法、原文、摘要、证书、CRL
detached 版本、哈希算法、摘要、证书 (detached中不包括原文信息,原文信息需要通过其他方式发送给验签方)
raw裸签 摘要 (裸签中不包括原文和证书信息)
签名验签过程:
1.首先client端利用哈希算法散列原文数据
2.然后利用自己的私钥将散列值加密
3.client端将证书、原文、散列值发送给server端
4.server利用证书中的公钥解密加密数据,得到散列值
5.然后利用同样的哈希算法将原文散列,对比两个散列值是否相同
数字信封的目的:
机密性 确保原文在加密后无法破解
解决了单独使用对称算法或非对称算法加密的缺点
数字信封流程:
A先用由计算机随机生成的一组一次使用的对称密钥—会话密钥(Session Key)加密信息原文,形成密文,然后用B的公钥对会话密钥进行加密处理,并将加密的会话密钥附在密文后一起发送给B;B在收到密文和加密的会话密文后,先用自己的私钥对加密的会话密钥解密,获得会话密钥,然后再用会话密钥解密密文,最终获得信息原文。
原文地址:http://10460741.blog.51cto.com/10450741/1859892