您的位置:首页 > 其它

消息摘要、数字签名、数字证书

2017-08-29 19:10 288 查看
1、数据摘要

消息摘要就是根据一定的运算规则对原始数据进行某种形式的信息提取,通过数据摘要后的消息摘要的长度总是固定的,它也叫做数据指纹,因为它可以唯一的标识一段数据。

著名的摘要算法有RSA公司的MD5算法和SHA-1算法



2、数字签名

使用非对称加密技术生成一对公私钥对,消息的发生者A使用私钥进行数据的加密,消息的接受者B使用公钥进行解密来验证消息的真实性。



3、将原文数据和签名数据一块进行传输



4、消息的接收者接收到数据之后,首先使用同样的方法对原文进行消息摘要,得到摘要A,然后使用公钥给数字签名进行解密,得到消息摘要B,最后比较摘要A和摘要B,如果相同,数据原文没有被篡改,否则就表示原文被篡改。



从这里我们可以知道,消息的发送者拥有私钥,消息的接收者拥有公钥,但是消息的接收者对手中公钥的真实性并无法做出判断。例如,A给B通信,A生成了一个公密钥对,A拥有密钥,B拥有公钥,A使用私钥加密,B使用A的公钥解密。现在C自己来生成一个公私钥对,并且使用生成的公钥将B手上持有的A的公钥替换掉,然后C使用生成的私钥就可以给B发消息,此时B还以为跟A在通信,其实他在跟C通信。

解决这个问题的办法就是使用数字证书。

5、数字证书是由证书签证机关(CA)签发的对用户的公钥的认证。通俗地讲,数字证书就是个人或单位在Internet的身份证。数字证书主要包括三方面的内容:证书所有者的信息、证书所有者的公钥和证书颁发机构的签名。

那么如何对我们的公钥进行认证呢?向一个证书发布机构CA申请证书,我们需要将证书的信息告诉给CA,CA就会将这些信息写到证书中去,然后使用自己的私钥对证书进行加密,这样我们就可以将这种证书投入使用,当将这个证书发生给对方之后,对方会在自己操作系统中受信任的发布机构的证书中去找 CA的证书,如果找不到,那说明证书可能有问题,程序会给出一个错误信息。如果在系统中找到了CA的证书,那么应用程序就会从证书中取出CA的公钥,这样使用这个公钥就可以对接收到的数字证书进行解密,解密之后就可以拿到我们自己的公钥信息。

现在,假如A跟B通信,A不会提前将自己的公钥给B,而且通过证书的形式给B,这样B就可以确定公钥的真实性了。A会通过一个证书的形式在证书中附上自己的相关信息以及自己的公钥,然后通过CA的私钥对证书进行加密。



6、然后将这个数字证书也附加到一块进行传输。



7、B接到到消息后,通过CA的公钥对数字证书进行解密,这样就可以拿到A的公钥,然后通过A的公钥来对签名进行进行解密得到摘要信息。



欢迎关注微信公众号:DroidMind

精品内容独家发布平台





呈现与博客不一样的技术干货
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: