博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数字签名的原理
阅读量:5142 次
发布时间:2019-06-13

本文共 1111 字,大约阅读时间需要 3 分钟。

 (Bob) 有两个密钥, (Bob的公钥)和 (Bob的私钥)。

Bob的私钥只有自己知道, (Bob的公钥)可以让所有人都知道:(Pat)、(Doug)、(Susan) 。公钥和私钥是由特殊算法生成的,都可以用来把明文加密成不可读的密文,用相反的密钥可以把密文解密成可读的明文。

 


有一天,(Susan) 写了一封信,”Hey Bob, how about lunch at Taco Bell. I hear they have free refills!”,然后通过(Bob的公钥)进行加密,变成“HNFmsEm6Un BejhhyCGKOK JUxhiygSBCEiC 0QYIh/Hn3xgiK BcyLK1UcYiY lxx2lCFHDC/A”,她可以放心的把信交给其他人,帮忙把信送给Bob。 (Bob)看到信之后,用 (Bob的私钥),解密这封信,就能看到Susan写的原话了。其他送信的人是完全看不懂的。

 (Bob)打算给Susan回信,他并不害怕别人知道他说什么,所以他不需要对全文加密,但是他害怕有人偷偷修改他的内容,所以他首先给全文生成一个摘要信息。   。然后对摘要进行加密,经过 (Bob的私钥)的加密,就变成了一个独一无二的数字签名。数字签名被附加到信件的结尾,一起发给 (Susan) 。(Susan)用 (Bob的公钥)解密数字签名,得到当时的信件摘要。然后自己再计算一次信息摘要,如果相同,那么证明信件没有被别人修改过。


送信的(Doug)有一次偷偷的使用(Susan)的电脑,用自己的 (Doug的公钥)替换了 (Bob的公钥),没有人去刻意记忆公钥,所以Susan当时没有发现,她给Bob写信的时候使用了她认为是Bob的公钥(实际上是Doug的公钥)对信件进行加密.现在(Doug)既可以读到Susan的信,也可以冒充 (Bob)制作数字签名,真正Bob的数字签名却被认为是错的。


后来, (Bob)发现了问题,他找到”证书中心”(certificate authority,简称CA),CA用 (CA的私钥),把Bob的 (Bob的公钥)加密一次,这个就是数字证书。带数字证书和Bob的数字签名的信件发给(Susan)后,Susan先用 (CA的公钥)对数字证书解密,拿到一个一定真实的Bob公钥,进而证明的数字签名是否是真的,进而证明信件有没有被改动过。

英文原文:http://www.youdzone.com/signature.html

 

转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/04/11/3013844.html

你可能感兴趣的文章
mime.go
查看>>
微信公众平台接口配置问题
查看>>
SQL查询记录添加序号(HANA)
查看>>
如何与资源管理器互动剪切/拷贝/粘贴文件
查看>>
微信开发(1) :网页授权获取用户的基本信息 实现微信登录(转)
查看>>
linux用命令行编译使用函数库
查看>>
关于数学学习
查看>>
第九篇 AJAX
查看>>
CSS的一些总结
查看>>
C# 多线程,异步,并行编程
查看>>
面对对象初识
查看>>
隐私条款-77Studio
查看>>
flare3d_animation
查看>>
GridView行背景色改变效果
查看>>
Krpano教程 生成平面图
查看>>
常见的 JavaScript 内存泄露
查看>>
在Salesforce中实现对Object的增删改查操作
查看>>
火狐浏览器中js获取event对象
查看>>
【观点】“马云:金融是要为外行人服务",这个观点其实并不新鲜
查看>>
Python简单剪刀石头布编程实例
查看>>