数字签名过程及数字证书

数字签名是什么? 

作者:David Youd 
翻译:阮一峰 
原文网址:http://www.youdzone.com/signature.html 

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

 

 

2.Bob把公钥送给他的朋友们-Pat、Doug、Susan-- 每人一把。

  

 

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

 

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

 

 5.Bob 给Susan回信,决定采用“数字签名”。他写完后先用Hash函数,生成信件的摘要(Digest)。

 

 6.然后,Bob使用私钥,对这个摘要(Digest)加密,生成“数字签名”(signature)。

 

7.Bob将这个“数字签名”,附在信件下面,一起发给Susan。(同样,如果Bob 要回复加密信息给Susan,那么Susan先公布自己的公钥给Bob用于加密,Susan 保存自己的私钥用于解密)

即假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密;

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

 

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

 

10.那么复杂的情况出现了,Doug想欺骗Susan,他偷偷使用了Susan的电脑,用自己的公钥换走了Bob的公钥。此时Susan实际拥有的是Doug的公钥,但是自以为是Bob 的公钥。因此,Doug就可以冒充Bob,用自己的私钥做成“数字签名”,写信给Susan,让Susan用假的Bob公钥进行解密

 

 

 11.后来,Susan感觉不对劲,发现在即无法确定公钥是否真的属于Bob。她想到了一个办法,要求Bob 去找“证书中心”(Certificate authority ,简称CA)为公钥做认证。证书中心用自己的私钥,对Bob的公钥和一些相关信息一起加密,

     生成:数字证书(Digital Certificate)

 

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

13.Susan收信后,用CA的公钥解开数字证书(Digital Certificate)就可以拿到Bob的真实公钥了,然后就能证明“数字签名(”Signture“)是否真的是Bob签的

 

 

下面,我们看一个应用”数字证书”的实例:https协议。这个协议主要用于网页加密:

 

主要步骤如下:

1.客户端向服务器发出加密请求

 

 

 

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

 

 

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

 

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

 

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

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

不过,非对称加密(公钥加密)在计算上相当复杂,性能欠佳,远远不比对称加密,so 在一般情况下,往往通过公钥加密来创建临时的对称密钥,亦即会话密钥(一次性用于会话中加密的对称式密钥),

然后才通过对称加密来传输大量、主体的数据。

 

 

 

参考链接:

https://baike.baidu.com/item/%E9%9D%9E%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95/1208652 
https://baike.baidu.com/item/%E9%9D%9E%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86/9874417 
https://zh.wikipedia.org/wiki/Session_key

 

转载于:https://www.cnblogs.com/ppp1314520818/p/10594037.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/278105.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Teams与OneDrive for Business和SharePoint的关系

作为一个相对看重个人信息安全与隐私的人,个人附件等资料在Microsoft Teams中的存储方式、文件访问权限、可见范围问题引起了我的好奇。 众所周知,Teams包含3大主要的模块:单人聊天、团队、会议。那下面让我们一起来看一下,对这三…

hadoop学习笔记(二):centos7三节点安装hadoop2.7.0

环境win7vamvare10centos7 一、新建三台centos7 64位的虚拟机 master 192.168.137.100 root/123456 node1 192.168.137.101 root/123456 node2 192.168.137.102 root/123456 二、关闭三台虚拟机的防火墙,在每台虚拟机里面执行: systemctl sto…

index.html 的默认301或者302跳转

index.html 的默认301或者302跳转 <!DOCTYPE html> <html> <head> <title>Google</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> <script>window.locat…

在Microsoft Teams中的Visio协作

所有Team站点都带有专用文件库&#xff0c;用于存储所有工作组的内容。 您现在可以从桌面或云存储站点将Visio文件上载到此库&#xff0c;例如&#xff0c;您所在Team的资产都集中在一个位置&#xff0c;供具有权限的任何人进行访问。与其他存储文件一样&#xff0c;您可以直接…

用区块链打击假新闻 这可能是最2017年的一件事

据外媒报道&#xff0c;非营利性基金会PUBLIQ公布了一个基于区块链打造的平台。这是一个用于创建和分享原创新闻和媒体内容的平台&#xff0c;它将在近期推出。据了解&#xff0c;PUBLIQ创建这一平台则是希望能借用类似于比特币一样的系统来打击假新闻。 通过创建一个受信任的经…

oo面向对象第一单元总结

oo第一次作业主要考察了多项式的求导&#xff0c;从简单的幂函数求导到三角函数求导再到嵌套函数的求导&#xff0c;难度循序渐进&#xff0c;对我们对于面向对象的理解的要求也在一次一次提升。一行行代码打下来&#xff0c;一夜夜熬过去&#xff0c;我也来到了这个短暂的停靠…

Microsoft Teams免费版本初体验

Microsoft Teams推出有一段时间了&#xff0c;如果想要体验Teams&#xff0c;必须需要有Office365的订阅。最近微软为了进一步推广Teams&#xff0c;突然宣布Teams免费了。使用过Teams的读者知道Teams是基于Office365账号和组的&#xff0c;那它免费后&#xff0c;不使用Office…

JS:封装函数判断数据类型

思路 1 ).根据 typeof() 的返回值将数据分为2种情况 a.返回值为 string number boolean undefined function (直接返回 typeof() 的返回值) b.返回值为object 2 ).再将 typeof() 返回值为 object 的数据分为2种情况 a.null (直接返回自身) b.包装类 对象 数组 (再进行细分) var…

强制禁用gitlab的双因子认证:Two-Factor Authentication

&#xff08;一&#xff09;问题描述&#xff1a; 此博客解决如下问题&#xff1a;禁用gitlab的双因子认证 禁用前&#xff0c;如图&#xff08;此时&#xff0c;你在gitlab中什么也干不了&#xff09; &#xff08;二&#xff09;思路分析&#xff1a; 百度了很多方法&#xf…

如何将Outgoing Webhook部署到中国版Azure

在这篇文章中&#xff0c;我们主要来如何将Azure DevOps中的项目作为应用发布到中国版Azure的App Service中。 什么是Azure DevOps Azure DevOps, 原名为VSTS, 全称是Visual Studio Team System&#xff0c;是由微软开发的一套具有高生产力、高集成性、可扩展的生命周期开发工…

Google SRE 读书笔记 扒一扒SRE用的那些工具

写在前面 最近花了一点时间阅读了《SRE Goolge运维解密》这本书&#xff0c;对于书的内容大家可以看看豆瓣上的介绍。总体而言&#xff0c;这本书是首次比较系统的披露Google内部SRE运作的一些指导思想、实践以及相关的问题&#xff0c;对于我们运维乃至开发人员都有一定的借鉴…

第8章 java中的并发工具类

8.1 等待线程完成的CountDownLatch 作用&#xff1a;让一个线程等待其余线程完成之后在继续执行&#xff0c;如主线程等待开启服务的子线程执行完毕后主线程继续执行&#xff0c;类似于join。 转载于:https://www.cnblogs.com/AshOfTime/p/10608910.html

Microsoft Teams的Meet Now功能

今天&#xff0c;我们宣布完成了Skype for Business to Teams路线图中首次披露的几项关键会议功能。当个人联系&#xff0c;沟通和协作时&#xff0c;工作就自然而然的完成了&#xff0c;我们相信这些功能&#xff08;除了我们2月的公告之外&#xff09;使Microsoft Teams为所有…

深入 Adobe Reader 保护模式 —— 第一部分 —— 设计

原作者&#xff1a;Liz McQuarrie, Ashutosh Mehra, Suchit Mishra, Kyle Randolph, Ben Roger 译者&#xff1a;lordVice 校对&#xff1a; StrokMitream 看雪翻译小组 介绍 我是 Kyle Randolph&#xff0c; 和我一起的还有负责 Acrobat 系列产品的安全团队&#xff0c; 这些产…

Java泛型主题讨论

说明&#xff1a;在学习泛型这一知识点中&#xff0c;主要参考自《疯狂Java讲义》第7章P307-P330的泛型内容&#xff0c;因为是跳着阅读&#xff0c;所以前面的一些名词不是特别清楚&#xff0c;这里也做出适当备注&#xff0c;供自己识记与理解。 1.泛型 理解&#xff1a;说到…

初学Vue.js,从头来过~

之前上课也学过vue.js&#xff0c;但是一遍过下来&#xff0c;实话&#xff0c;没有记住什么&#xff0c;所以决定自己在对照着文档过一遍&#xff0c;所以之后会弄一些基础的东西&#xff0c;还请大神们莫喷~~~~今天先给平台打一个预防针&#xff0c;Young C 要来啦~~ 吼吼&…

从Microsoft Teams技术栈看前端技术发展趋势

在前不久的微软美国一年一度的Ignite大会上&#xff0c;微软宣布Microsoft Teams是微软历史上发展最快的应用。它将取代Skype for business&#xff0c;成为语音视频协作的主打产品。 我也有幸在上个月微软中国年度技术大会Tech Summit 2018上被邀请作为讲师讲解基于Teams平台…

LeetCode 最大正方形

在一个由 0 和 1 组成的二维矩阵内&#xff0c;找到只包含 1 的最大正方形&#xff0c;并返回其面积。 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0输出: 4解法&#xff1a;判断以某个点为正方形右下角时最大的正方形时&#xff0c;那它的上方&#xff0c;左方和左上…

solidity字符串拼接

如果你希望马上开始学习以太坊DApp开发&#xff0c;可以访问汇智网提供的出色的在线互动教程&#xff1a; 以太坊DApp实战开发入门去中心化电商DApp实战开发当你开始学习使用solidity开发以太坊智能合约之后&#xff0c;很快你会碰到一个问题&#xff1a; 在solidity中该如何拼…

Confluence Cloud的Teams Message Extension

Confluence Cloud的Message Extension现在正式登入Microsoft Teams。 它可用于团队频道和私人聊天&#xff0c;使您的对话更具描述性和信息性。 从Microsoft Teams应用商店获取Confluence Cloud应用程序并连接到Confluence Cloud实例。 连接后&#xff0c;您将能够搜索Conflue…