数字签名 转载:http://www.youdzone.com/signature.html
What is a Digital Signature?An introduction to Digital Signatures, by David Youd
![]() Bob |
![]() |
(Bob's public key)
|
Bob has been given two keys. One of Bob's keys is called a Public Key, the
other is called a Private Key.
| Bob's Co-workers: | ||||
![]() |
![]() |
![]() |
![]() |
Anyone can get Bob's Public Key, but Bob keeps his Private Key to himself |
| Pat | Doug | Susan | ||
Bob's Public key is available to anyone who needs it, but he keeps his Private Key
to himself. Keys are used to encrypt information. Encrypting information means
"scrambling it up", so that only a person with the appropriate key can make it
readable again. Either one of Bob's two keys can encrypt data, and the
other key can decrypt that data.
Susan (shown below) can encrypt a message using Bob's Public Key. Bob uses his
Private Key to decrypt the message. Any of Bob's coworkers might have access
to the message Susan encrypted, but without Bob's Private Key, the data is
worthless.
![]() |
![]() |
"Hey Bob, how about lunch at Taco Bell. I hear they have free refills!" | ![]() |
HNFmsEm6Un |
![]() |
![]() |
HNFmsEm6Un |
![]() |
"Hey Bob, how about lunch at Taco Bell. I hear they have free refills!" |
With his private key and the right software, Bob can put digital signatures on
documents and other data. A digital signature is a "stamp" Bob places on the
data which is unique to Bob, and is very difficult to forge. In addition, the
signature assures that any changes made to the data that has been signed can
not go undetected.
![]() |
![]() |
![]() |
To sign a document, Bob's software will crunch down the data into just a few lines by a process called "hashing". These few lines are called a message digest. (It is not possible to change a message digest back into the original data from which it was created.) |
![]() |
![]() |
![]() |
Bob's software then encrypts the message digest with his private key. The result
is the digital signature.
![]() |
![]() |
Finally, Bob's software appends the digital signature to document. All of the
data that was hashed has been signed.
![]() |
![]() |
|
![]() |
![]() |
Bob now passes the document on to Pat.
![]() |
First, Pat's software decrypts the signature (using Bob's public key) changing it back |
Plot complication...
![]() |
Doug (our disgruntled employee) wishes to deceive Pat. Doug makes sure that Pat receives a signed message and a public key that appears to belong to Bob. Unbeknownst to Pat, Doug deceitfully sent a key pair he created using Bob's name. Short of receiving Bob's public key from him in person, how can Pat be sure that Bob's public key is authentic? |
It just so happens that Susan works at the company's certificate
authority center. Susan can create a digital certificate for Bob simply
by signing Bob's public key as well as some information about Bob.
|
|
|
|
|
Now Bob's co-workers can check Bob's trusted certificate to make sure
that his public key truly belongs to him. In fact, no one at Bob's
company accepts a signature for which there does not exist a certificate
generated by Susan. This gives Susan the power to revoke signatures if
private keys are compromised, or no longer needed. There are even more
widely accepted certificate authorities that certify Susan.
Let's say that Bob sends a signed document to Pat. To verify the signature
on the document, Pat's software first uses Susan's (the certificate
authority's) public key to check the signature on Bob's certificate.
Successful de-encryption of the certificate proves that Susan created it.
After the certificate is de-encrypted, Pat's software can check if
Bob is in good standing
with the certificate authority and that all of the certificate information
concerning Bob's identity has not been altered.
Pat's software then takes Bob's public key from the certificate and uses it
to check Bob's signature. If Bob's public key de-encrypts the signature
successfully, then Pat is assured that the signature was created using Bob's
private key, for Susan has certified the matching public key. And of course,
if the signature is valid, then we know that Doug didn't try to change the
signed content.

Although these steps may sound complicated, they are all handled behind
the scenes by Pat's user-friendly software. To verify a signature, Pat need
only click on it.
(c) 1996, David Youd
Permission to change or distribute is at the discretion of the author
Warning: You may be missing a few lines of text if you print this document.
This seems to occur on pages following pages that have blank space near
the bottom due to moving tables with large graphics in them to the next
page so that the images are not split across pages. If this happens
to you, simply print out document in sections. (Ex: I have the problem on
page 4, so I print pages 1-3, then pages 4-5.)
数字签名 转载:http://www.youdzone.com/signature.html的更多相关文章
- 深入浅出HTTPS工作原理(转载)
转载自: https://blog.csdn.net/wangtaomtk/article/details/80917081 深入浅出HTTPS工作原理 HTTP协议由于是明文传送,所以存在三大风险: ...
- Java Security:公钥私钥、数字签名、消息摘要是什么
1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥. 2. 鲍勃把公钥送给他的朋友们----帕蒂.道格.苏珊----每人一把. 3. 苏珊要给鲍勃写一封保密的信.她写完后用鲍勃的公钥加密,就可以达到保密的 ...
- 和安全有关的那些事(非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS及其他)
转自http://blog.csdn.net/bluishglc/article/details/7585965 对于一般的开发人员来说,很少需要对安全领域内的基础技术进行深入的研究,但是鉴于日常系统 ...
- 使用数字签名实现数据库记录防篡改(Java实现)
本文大纲 一.提出问题 二.数字签名 三.实现步骤 四.参考代码 五.后记 六.参考资料 一.提出问题 最近在做一个项目,需要对一个现成的产品的数据库进行操作,增加额外的功能.为此,需要对该产品对数据 ...
- RAS非对称加密与数字证书数字签名
它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么. 我对这些问题的 ...
- 【Java密码学】用Java数字签名提供XML安全
简介 众所周知,XML在产品和项目开发中起着非常重要的作用.通过XML文档可以获取很多信息,还可以使用XML文件进行CRUD(增加.查询.更新和删除)操作.然而值得注意的是,我们如何确保XML中的数据 ...
- signature.html
原文网址:http://www.youdzone.com/signature.html 阮一峰:http://www.ruanyifeng.com/blog/2011/08/what_is_a_d ...
- 公钥与私钥的理解,以及https的应用原理
1.公钥与私钥原理1)鲍勃有两把钥匙,一把是公钥,另一把是私钥2)鲍勃把公钥送给他的朋友们----帕蒂.道格.苏珊----每人一把.3)苏珊要给鲍勃写一封保密的信.她写完后用鲍勃的公钥加密,就可以达到 ...
- 公钥与私钥,HTTPS详解
1.公钥与私钥原理1)鲍勃有两把钥匙,一把是公钥,另一把是私钥2)鲍勃把公钥送给他的朋友们----帕蒂.道格.苏珊----每人一把.3)苏珊要给鲍勃写一封保密的信.她写完后用鲍勃的公钥加密,就可以达到 ...
随机推荐
- 关于Angular+ngx-perfect-scrollbar自定义各大浏览器滚动条样式的解决方法
资料: http://manos.malihu.gr/jquery-custom-content-scroller/ (此项是结合Jquery使用的,在此并未采用) https://www.npmj ...
- python一些小知识点is和编码
dic = { "name":["alex", "wusir", "taibai"], 'py9':{ "ti ...
- linux安装mysql(yum)
申明,不要用root安装 步骤: 下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch ...
- ssh速度慢
原因:DNS解析默认开了 解决方法: vi /etc/ssh/sshd_config, 将#UseDNS yes 改为 : UseDNS no 然后重启ssh服务即可. PS: 其实不好,因为毕竟 ...
- 类型限定符volatile
目录 类型限定符volatile 强制内存读取 禁止编译优化 注意:volatile不能够保证线程同步 volatile bool flag; volatile int a; 添加volatile限定 ...
- powerDesigner的建表语句默认设置为去掉双引号
powerDesigner的建表语句默认设置为去掉双引号,依次执行如下操作: Database ------>> Edit Current DBMS ------>> Scri ...
- 关于SpringMVC中的转发与重定向的说明
写的非常详细,参看该地址:https://www.zifangsky.cn/661.html 总结: 1.请求转发:url地址不变,可带参数,如?username=forward 2.请求重定向:ur ...
- Java静态代理与动态代理实现
一.什么是代理 代理是一种设计模式,它提供了一种通过代理访问目标对象的方式.在应用代理之前,我们调用对象的过程如下: 客户端直接调用对象并获取返回值.而应用了代理之后,我们调用对象的过程变成如下: 客 ...
- WDS无人参与批量部署Ser 2008
WDS无人参与批量部署Ser 2008 对于其它windows镜像采用此方法也是可以实现的: 1. 准备工作: 虚拟机server2012一个: 地址192.168.1.1/24 Server2008 ...
- S02_CH06_XADC实验
S02_CH06_XADC实验 6.1实验概述 这次借助zynq的内嵌的XADC来采集zynq内部的一些参数: •VCCINT:内部PL核心电压 •VCCAUX:辅助PL电压 •VREFP:XADC正 ...














