数字签名是什么?

今天,我读到一篇好文章。

它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。

我对这些问题的理解,一直是模模糊糊的,很多细节搞不清楚。读完这篇文章后,发现思路一下子就理清了。为了加深记忆,我把文字和图片都翻译出来了。

====================================================

数字签名是什么?

作者:David Youd

翻译:阮一峰

原文网址:http://www.youdzone.com/signature.html

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.

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

(完)

 

什么是公钥和私钥(公钥和私钥的作用与区别) 很多人在学习的过程中,不清楚公钥和私钥的作用与区别,本章在这里做一个详细的介绍。在非对称加密算法中,存在两个密钥:公钥和私钥。私钥用于解密,而公钥用于加密。私钥由持有者保管,不会与其他人共享。持有者可以使用私钥对使用公钥加密的信息进行解密。 阅读详情

相关推荐

Java生成RSA公私钥文件(pem格式和der格式)

本篇介绍使用Java语言生成非对称加密中的RSA公私钥文件的几种方法

u014137486的专栏 5215

非对称加密:公钥与私钥

公钥和私钥作为非对称加密技术的核心,提供了一种安全的方式来加密数据、实现数字签名和进行安全通信。随着信息技术的发展,对加密技术的依赖日益增加,公钥基础设施(PKI)和相关加密技术在确保数字时代安全性和隐私方面发挥着重要作用。不断的技术进步和新挑战的出现,要求不断发展和更新这些加密技术。

十年以上架构设计经验,专注于软件架构和人工智能领域,对机器视觉、NLP、音视频等领域都有涉猎 1万+

量子数字签名概述

本文对量子数字签名这一技术进行了初步的讨论

量子领域相关话题 2613

公钥和私钥

1.公钥和私钥原理: 1)鲍勃有两把钥匙,一把是公钥,另一把是私钥 2)鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 3)苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 4)鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。

qq_27563511的博客 1718

关于数字签名

数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。

2302_76241188的博客 744

认识数字签名

是一种基于非对称加密技术的安全机制,用于验证信息发送者的真实身份,并确保信息的完整性和未被篡改。数字签名通过结合非对称加密和数字摘要(哈希函数)来实现,在签名过程中,信息的发送者使用自己的私钥对信息的数字摘要(哈希值)进行加密,形成独特的签名。接收者在收到信息后,可以使用发送者的公钥来解密签名,并重新计算信息的数字摘要。如果两个摘要相匹配,那么可以确认信息未被篡改,并且发送者的身份是真实的。

weixin_63265626的博客 663

数字签名技术

目录 一、数字签名 二、数字签名技术 2.1、基于哈希算法的数字签名与验证 2.2、基于非对称密钥加密体制的数字签名与验证 三、数字签名的作用 一、数字签名 数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称

七天 1万+

超详细!动态规划详解分析(典型例题分析和对比,附源码)

为啥要使用动态规划?什么时候使用动态规划?以下是我的一些理解和心得,如果你感兴趣,就接着往下看吧。 对您有帮助的话记得给我点个赞哟! 动态规划的基本思想 动态规划(Dynamic Programming,DP)算法通常用于求解某种具有最优性质的问题。在这类问题中,可能会有许多可行解,每一个解都对应一个值,我们希望找到具有最优值的解。 动态规划算法与分治法类似,其基本思想也是将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解中 得到原有问题的解。与分治法不同的是,动态规划经分解后得到的子问题

qq_44398094的博客 8万+

数字签名-原理

数字签名1. 从消息认证到数字签名1.1. 消息认证码的局限性1.2. 通过数字签名解决问题2. 签名的生成和验证3. 数字签名的方法3.1 签名步骤3.2 过程图解4. 数字签名无法解决的问题 “数字签名 — 消息到底是谁写的” 数字签名是一种将相当于现实世界中的盖章、签字的功能在计算机世界中进行实现的技术。使用数字签名可以识别篡改和伪装,还可以防止否认。 1. 从消息认证到数字签名 1.1....

学无止境 1万+

头歌MySQL数据库实训答案 有目录

头歌java实训答案集数据库部分一条一条的写,可鼠标手动粘贴,除特定命令外未分大小写。 第1关:创建数据库 第2关创建表 第3关:使用主键约束 第4关:外键约束 第5关:添加常用约束 MySQL数据库 - 数据库和表的基本操作(一) 第1关:查看表结构与修改表名 第2关:修改字段名与字段数据类型 第3关:添加与删除字段 第4关:修改字段的排列位置 第5关:删除表的外键约束 MySQL数据库 - 数据库和表的基本操作(二) 第1关:插入数据 第2关:更新数据 第3关:删除数据 MySQL数据库 - 单表查询(

m0_67401761的博客 4万+

51单片机IAP在线升级

51单片机IAP在线升级 爱矽半导体E85F3325单片机IAP在线升级教程,此处可查看更新及demo下载 文章目录前言一、ROM资源二、KEIL有关知识1.BL51连接器:2.LX51连接器:三、Keil其他相关项说明:四、MCU启动文件说明:五、例程BOOTLOADER使用说明六、例程使用可更改说明:七、程序使用通信方式:XMODEM八、APP程序说明九、APP代码升级说明十、代码合并烧写 前言 扩展-IAP 主要用于产品出厂后应用程序的更新作用 ,类似于其他引导装载升级程序的方法,在系统中必须始终

qq_42415953的博客 6666

数字签名的过程详解

数字签名的过程详解1. 数字证书的概念2. 数字签名的过程3. 加密的过程4. 数字签名两大特性5. 用到的部分名词解释 1. 数字证书的概念 数字证书又叫“数字身份证”、“网络身份证”,是由证书认证中心CA发放并经认证中心数字签名,包含公开密钥拥有者以及公开密钥相关信息的一种电子文件,可以用来证明数字证书持有者的真实身份。数字证书的格式一般采用X.509国际标准。 2. 数字签名的过程 用户A将待发送的信息原文经散列函数运算生成摘要信息,并用自己的私有密钥对摘要信息进行加密,将形成的密文和原文传送给用户B

kaiser king的博客 2万+

扫码器USB键盘报告描述符数据格式解析

Byte0用于判断Shift是否按下,当按下时Byte0的Bit1会置1,即0x02,若未按下,Bit为0,即0x00。0x00 0x00 0x00 0x00 0x00 0x00 0x00--->>未按下Shift。0x00 0x00 0x00 0x00 0x00 0x00 0x00--->>按下Shift。0x00 0x04 0x00 0x00 0x00 0x00 0x00--->>输出A。0x00 0x04 0x00 0x00 0x00 0x00 0x00--->>输出a。

m0_65548585的博客 1141

数字签名原理及其应用

签名的作用无非就是证明某个文件上的内容确实是我写的/我认同的,别人不能冒充我的签名(不可伪造),我也不能否认上面的签名是我的(不可抵赖)。 我们知道,手写签名之所以不能伪造,是因为每一个人的笔迹都是独一无二的,即使模仿,也可以通过专家鉴定分别出来。而不能抵赖,是因为每个人的笔迹都有固定特征,这些特征是很难摆脱的。 正是这两点特性使得手写签名在日常生活中被广泛承认,比如签合同、借条等等。 而数字签名

那些零零散散的算法 5万+

攻防世界 web高手进阶区 9分题 Web_python_flask_sql_injection

继续ctf的旅程,开始攻防世界web高手进阶区的9分题,本文是Web_python_flask_sql_injection的writeup

闵行小鱼塘 1473

INS/伪距组合导航(2)

伪距惯导组合导航

u014430081的博客 827

数字签名

文章目录我们需要数字签名签名的生成和验证数字签名的方法直接对消息进行签名对消息的hash值进行签名数字签名可以替代现实生活中的签名吗?数字签名无法解决的问题 我们需要数字签名 之前的文章我们讲了MAC(Message Authentication Code)消息认证码,MAC是认证消息的完整性的技术。它是由任意长度的消息和在发送者和接受者中间共享的密钥生成的。 MAC有个缺点就是秘钥是共享的,因为...

程序那些事 1万+

华为 MetaERP 集成盘古大模型、天筹 AI 求解器等生成式 AI 相关技术能力,结合华为云数智融合平台的支撑,在供应链预测中围绕需求预测、物料匹配

华为 MetaERP 集成盘古大模型、天筹 AI 求解器等生成式 AI 相关技术能力,结合华为云数智融合平台的支撑,在供应链预测中围绕需求预测、物料匹配、风险预警等核心场景开展实践,大幅提升了供应链预测的精准度与效率,以下是具体实践内容及成效: 动态需求预测,降低库存偏差华为供应链涉及数万种采购物料,物料清单层级高,且市场需求波动大。MetaERP 集成华为云 ModelArts 等工具构建专属动态需求预测模型,融合深度学习算法,纳入市场趋势、历史销售、产能数据等多维度信息进行综合预测。在华为自身供应链应

金牌架构师 700

数字签名是什么

数字签名(又称)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称与技术的应用。

顺其自然~专栏 2998

增距镜或中继镜选型

增距镜光路图

camerall 5244

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【计算机网络】网络安全 : 数字签名 ( 数字签名简介 | 数字签名实现 | 数字签名功能 | 保密数字签名 )

一、数字签名 、 二、基于公钥的数字签名实现 、 三、数字签名 功能 、 四、保密数字签名

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 6418

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

五、数字签名及存在的问题

文章目录数字签名防止假冒防止篡改事后否认数字签名的漏洞中间人攻击 背景:A和B通信,X是中间人 数字签名   上一篇我们说到了消息认证码可以防止假冒和篡改,而无法防止事后否认,这里我们会讲解数字签名为什么能解决这个问题。   当我们用私钥加密的时候,我们会把这个操作称为数字签名。 防止假冒   X假冒A给B发消息,由于X没有A的私钥,无法生成正确的数字签名。即使X不签名直接发过去,B也会直接丢弃,所以X无法假冒。 防止篡改 1.A给B发文档,先把文档进行哈希,生成摘要,然后用自己的私钥对摘要加密生成数字

卓越无关环境,保持空杯心态——靡不有初,鲜克有终 5396

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

数字签名介绍

区块链中数字签名的介绍

WJiaJiaBest的博客 3407

Excel数字签名技术总结

Excel数字签名 1、数字签名按签署者分:万维网第三方机构签名、自签名 2、按签名类型分:包围式、封装式、独立式 3、证书相关的文件有:私钥文件、公钥文件、证书请求文件、证书、密钥库 4、证书生成的工具有很多,常见的有两种:keytool、openssl 5、数字签名后的Excel按签名状态分三种:有效的、可恢复的、无效的 6、Excel数字签名只有在windows上用office软件才能查看,WPS及Mac机器都无法查看 7、Excel数字签名【商业化】产品对比

搬砖工 1719

Java安全——数字签名

这个命令会使用密钥库中的信息对xyz.jar文件进行签名。sdo是密钥库中的一个实体,通过它可以找到相应的私钥来进行签名。工具使用密钥库中的信息来查找特定的实体,并使用这些信息对jar文件进行签名或验证签名。该类提供了数字签名算法的功能,可以用于对数据进行签名和验证签名。类的使用是实现数字签名的核心。最后,使用公钥验证签名。这个命令会验证xyz.jar文件的签名是否有效。通过解析这些关键信息,我们可以验证签名的有效性。同样,我们可以使用类中的。方法验证签名的有效性。签名的jar文件可以通过Java的。

xnxqwzy的博客 1448

Go-数字签名详解与Rsa数字签名代码

数字签名概述 手写签名是一种传统的确认方式,如写信、签订协议、支付确认等。在数字系统中同样有签名应用的需求,如假定A发送一个认证的信息给B,如果没有签名确认的措施,B可能伪造一个不同的消息,但声称是从A收到的;或者为了某种目的,A也可能否认发送过该消息。很显然,数字系统的特点决定了不可能沿用原先的手写签名方法来实现防伪造或抵赖,这就是提出了如何实现数字签名的问题。 数字签名(Digital Signature)是电子信息技术发展的产物,是针对电子信息 的一种签名确认方法,它是利用 数学方法和密码算法对该

关注网络安全、云原生安全 3787
上一篇: 我喜欢出发 - 汪国真
下一篇: StackOverflow的404错误页面
SleepInDelphi
博客等级 码龄19年 32粉丝 388原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值