1.鲍勃有两把钥匙,一把是公钥,另一把是私钥。

2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。

3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果

4.鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。

5.鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)

6.然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。

7.鲍勃将这个签名,附在信件下面,一起发给苏珊。

8.苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。

9.苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。

10.复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。

11.后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找"证书中心"(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。

12.鲍勃拿到数字证书以后,就可以放心了。以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。

13.苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。

14.下面,我们看一个应用"数字证书"的实例:https协议。这个协议主要用于网页加密。
15.首先,客户端向服务器发出加密请求。

16.服务器用自己的私钥加密网页以后,连同本身的数字证书,一起发送给客户端。

17.客户端(浏览器)的"证书管理器",有"受信任的根证书颁发机构"列表。客户端会根据这张列表,查看解开数字证书的公钥是否在列表之内。

18.如果数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用,浏览器会发出警告。

19.如果这张数字证书不是由受信任的机构颁发的,浏览器会发出另一种警告。

20.如果数字证书是可靠的,客户端就可以使用证书中的服务器公钥,对信息进行加密,然后与服务器交换加密信息。

私钥和公钥?什么是数字签名?相关推荐

  1. 私钥、公钥、数字签名、数字证书、HTTPS

         加密:公钥加密,私钥解密      认证:私钥加密,公钥解密 如果A给B发送一个加密的有数字签名的文件,会怎么样呢? 首先A有自己的公钥和私钥:A_public_key, A_private ...

  2. HTTPS、证书机构(CA)、证书、数字签名、私钥、公钥

    说到https,我们就不得不说tls/ssl,那说到tls/ssl,我们就不得不说证书机构(CA).证书.数字签名.私钥.公钥.对称加密.非对称加密.这些到底有什么用呢,正所谓存在即合理,这篇文章我就 ...

  3. 一文看懂HTTPS、证书机构(CA)、证书、数字签名、私钥、公钥

    君问归期未有期 说到https,我们就不得不说tls/ssl,那说到tls/ssl,我们就不得不说证书机构(CA).证书.数字签名.私钥.公钥.对称加密.非对称加密.这些到底有什么用呢,正所谓存在即合 ...

  4. 公钥 私钥_区块链中私钥、公钥和钱包地址三者关系

    在昨天Pi首页更新过内容中,Wes spencer提到了钱包等一系列的问题,那么小编就带大家再来回顾一下数字货币钱包的起源!一.加密数字货币钱包的概念及原理加密货币钱包是指,可以用来存储,发送和接收多 ...

  5. RSA不对称加密,公钥加密私钥解密,私钥加密公钥解密

    RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作. RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一 ...

  6. 私钥,公钥,钱包地址,助记词,keyStore的区别

    私钥,公钥,钱包地址,助记词,keyStore的区别 私钥:本质上是一个包含64位的随机数,是随机生成的 公钥:公钥是由私钥经过加密算法后生成的,拥有私钥,可以算出公钥,拥有公钥却不能算出私钥 钱包地 ...

  7. 分享一个RSA加解密工具类,公钥加密私钥解密、私钥加密公钥解密、私钥签名公钥验签、生成公钥私钥

    测试: public static void main(String[] args) {try {//生成公钥私钥Map<String, Object> map = RSAUtil.ini ...

  8. keytool生成私钥、公钥、证书详解

    from  http://blog.csdn.net/xueyepiaoling/article/details/6524200 如果对keytool生成的密钥库的概念不清楚,对密钥库中存放的是什么不 ...

  9. rsa私钥和公钥_如何创建RSA公钥和私钥?

    rsa私钥和公钥 RSA is an algorithm used for Cryptography. It was patented until 2000 in the USA (not the w ...

  10. 公钥加密私钥解密私钥加密公钥解密

    公钥加密体制 1.公钥加密体制用于保密性时,就是公钥加密,私钥解密. 因为公钥是可以公开了, 那么任何人都可以使用公钥对信息进行加密,但是只有持有私钥的人才能正确解密.这样就保证了信息的保密性,因为只 ...

最新文章

  1. html表格鼠标高亮行列,JS实现的表格行鼠标点击高亮效果代码
  2. 职高中专的模块化课程设计难点
  3. 皮肤的实时3S渲染(OpenGL + GLSL)
  4. enum与int、String之间的转换
  5. python有必要看数据结构_盘点 Python 10 大常用数据结构(上篇)
  6. 【TensorFlow】TensorFlow函数精讲之tf.contrib.layers.flatten()
  7. 搭建Android开发环境
  8. java设计模式之备忘_[译]Java 设计模式之备忘录
  9. rdlc报表 矩形高固定_固定资产管理系统_简化资产管理流程
  10. 你所能用到的数据结构之番外篇---逆袭的面向对象(一)
  11. Tableau系列软件概况
  12. html调用js里面的函数,html如何调用js函数
  13. win10iot c语言,Win10 IoT系统是什么版本?
  14. 微信验证码无法连接到服务器,微信无法连接到服务器1237解决方法
  15. 实现微信公众号二维码生成
  16. 【第一节 Node.js简介】
  17. 叮咚小区官网新闻已不更新
  18. 解决虚拟机中Win7系统无法安装vmware tools问题
  19. Flex Builder3调试运行提示没有安装Flash Player
  20. 各种软件的视频教程 链接http://www.51zxw.net/default.aspx

热门文章

  1. 网上购车平台超低首付买车再度掀起大波浪!
  2. RTP H264 NAL
  3. 这10款数据可视化软件工具免费好用
  4. 感谢传智播客+C#.Net学习之旅
  5. NOI模拟(5.19) JSOID2T3 军训列队 (bzoj5319)
  6. 一个字符串吧大写字母转换为小写字母
  7. ai取代程序员_未来50%的工作都将被人工智能给取代,程序员会被机器人取代吗?...
  8. 分布式数据库系统面临的问题和挑战
  9. 可以储存照片的字段类型是_如果将学生的“照片”存储在表中,则数据应采用的字段类型为...
  10. 微信链接卡片在线制作工具及教程