数字签名和数字证书详解

简介:

原文件地址:http://www.tuicool.com/articles/7buueeQ

密钥分为两种:对称密钥和非对象密钥

对称密钥算法:DES 3DES AES,加密算法快

非对称密钥算法:RAS,加密算法慢


摘要:采用某种摘要算法,将明文转化为固定长度的字符,摘要也被称为指纹.相同的文件内容和文件名具有
相同的指纹

摘要算法:md5(二进制:128位,16进制:32位),SHA1(二进制:256位,64位)

wKiom1iznODynshEAAAcmg19rOg237.png



对称密钥理解图:

wKiom1izl1_ilVi_AABUv3_B1Lg868.jpg

wKioL1izl7OAaqdlAABQRNrD6oU484.jpg



基于Bob向Alice发送文件的场景,

wKiom1iztp2AasWVAAA0GE8jd3g288.jpg

  1. 摘要算法(md5,SHA1) +Bob的原始文件 计算出=> 这个文件的摘要值

  2. 非对称密钥算法(RSA)+ Bob私钥 + 上一步的摘要值 =>摘要密文

  3. 摘要密文 + 原始文件 发送给 => Alice

摘要密文和原始文件被称作Bob对原始文件的签名结果

数字签名:就是对原始文件的摘要(指纹),用其私钥进行加密



Alice收到Bob发来的信息后:

wKioL1izuwCx0PJVAABVnGK23Yk766.jpg



  1. Alice使用Bob的公钥将收到的摘要密文解密得到摘要值(能用Bob的私钥解密,说明对方一定是Bob,这个摘要值很明显是由Bob计算得到的)

  2. Alice利用摘要算法(md5,SHA1) + 原始文件 =>摘要值(这个由Alice计算得到的)与上一步得到的摘要值对比,一样说明Alice从Bob接受到的数据是完整的,没有人篡改过.

    以上两个步骤被称为验签


PKCS10(P10)数据包:公钥 + 密钥的算法 + 该公钥的所有者(主题) + 该公钥的有效期等属性




签名过程:

wKioL1izvU6jHgp_AAA_3Q9eBEk441.jpg

  1. Bob将自己的P10数据包发送给CA,经过CA签名得 原始文件(P10数据包) + 摘要密文(由CA私钥加密形成),这个签名后的结果被称为数字证书.


数字证书同样遵循一个格式标准,我们称作X509标准,我们一般提到的X509证书就是如此。



基于这个数字证书,再来看Bob如何给Alice发送一份不可否认,不可篡改的文件


wKiom1izvwij1pGhAAA79lxGC_g800.jpg

  1. Bob将自己的签名后的结果(原始文件(Hello World!) + 摘要密文(Bob私钥加密hello,world后) ) + Bob的数字证书(P10数据包 + 摘要密文(P10数据包经CA私钥加密)) 发送给Alice






Alice接受Bob发送的数据过程

wKioL1izxPCwh4eaAABepah1SDU198.jpg

  1. Alice利用CA公钥对Bob发来的数字证书进行验证,如果验证成功,则提取证书中的
    公钥,对Bob发来的文件进行验签,如果验证成功,则证明文件不可否认不可篡改.


        总结:基于数字证书后,Alice不需要自己维护一个公钥库维护Bob(等人的)公钥证书,只要持有CA

     的公钥即可.


本文转自神ge 51CTO博客,原文链接:http://blog.51cto.com/12218412/1901591


相关文章
|
10月前
|
存储 安全 算法
数字证书
本实验带您了解并使用数字证书。
145 0
|
2月前
|
安全 网络安全 数据安全/隐私保护
数字证书是什么?
【5月更文挑战第9天】数字证书是什么?
23 1
|
2月前
|
存储 弹性计算 运维
生成签名私钥和证书
【4月更文挑战第29天】
23 1
|
存储 安全 数据安全/隐私保护
现代密码学-CA与数字证书详解
现代密码学-CA与数字证书详解
400 0
现代密码学-CA与数字证书详解
|
安全 数据安全/隐私保护 C++
加密/解密 公钥/私钥
加密/解密 公钥/私钥
500 0
加密/解密 公钥/私钥
|
算法 数据安全/隐私保护
|
开发者
公钥证书
开放平台证书说明  蚂蚁金服开放平台提供对X.509格式证书的支持,开发者上传证书后,后续在和支付宝开放平台交互过程中支付宝会尝试使用该证书进行报文验签。  证书说明 在报文签名场景下,报文接受方使用发送方的公钥进行报文验签即可,而证书的一个好处在于引入了CA机构对公钥进行认证,保证该证书所属实体的真实性。
665 0
|
算法 数据安全/隐私保护 安全
|
Web App开发 算法 网络安全