数字签名和数字证书是什么

阮一峰译数字签名--读后感 阮一峰译数字签名–读后感 数字签名简单概念 数字签名 就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字同时也是对信息的发送者发送信息的真实性的一个有效证明。是对非对称密钥加密技术和数字摘要技术的应用。先对原文信息作数字摘要处理(通过hash算法,md5、sha之类的),得到定长的hash值,再用密钥对中的私钥对hash值以及相关算法信息进行加密。 数字签名的信息完整性 阅读详情


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

它用图片通俗易懂地解释了,"数字签名"(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.

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

(完)

转载自:http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

加密、数字签名和数字证书看这一篇就够了 本文将介绍网络安全的基础知识: - 对称加密 - 非对称加密 - 混合加密 - 数字签名 - 数字证书 深入研究网络传输数据时的窃听、假冒、篡改和事后否认行为是怎么形成的,以及如何防范这些非法行为。 阅读详情

相关推荐

Android安全加密:数字签名和数字证书

Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名和数字证书 Android安全加密:Https编程 一、数字签名1. 概述数字签名是非对称加密与数字摘要的组合应用2. 应用场景 校验用户身份(使用私钥签名,公钥校验,只要用公钥能校验通过,则该信息一定

JackChan 1万+

什么是数字签名?其安全性从何而来?

一、数字签名简介 数字签名是基于公钥密码体制(非对称密钥密码体制)的。 1.1.基本特征 数字签名必须保证以下三点: 报文鉴别——接收者能够核实发送者对报文的签名; 报文的完整性——接收者不能伪造对报文的签名或更改报文内容。 不可否认——发送者事后不能抵赖对报文的签名; 1.2.数字签名的验证过程 上图位用户A使用数字签名向用户B传输一份文件的过程: 首先,文件经过单向散列函数的处理得到一份占128位的摘要(无论文件多大,经过单向散列函数的处理,生成的摘要都是128位),这份摘要相当

Caption C 2万+

公钥、私钥、数字签名和数字证书的概念及解密

* 密钥: 对称加密设置的密码 * 公钥: 公钥用于加密信息和解密数字签名 * 私钥: 私钥用于解密信息和加密消息摘要 * 消息摘要,数字指纹 : 对消息使用HASH算法获取的固定长度的字符串 * 数字签名: 使用私钥加密的消息摘要 * 数字证书:CA用自己的私钥,对需要认证的公钥及相关的信息进行加密

oscar999的专栏 1万+

数字签名(digital signature)技术介绍

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

liitdar的博客 2万+

从防御者视角复盘:用WinArpAttacker和Wireshark在Windows上模拟并检测ARP欺骗攻击

本文详细解析了Windows平台下的ARP欺骗攻击与防御策略,通过WinArpAttacker和Wireshark工具模拟攻击并检测异常流量。文章涵盖实验环境搭建、攻击原理深度解析、流量特征分析及企业级防御方案,帮助安全运维人员全面掌握ARP攻击检测与防护技术。

weixin_30918633的博客 121

一生一芯预学习:从零搭建Verilator仿真环境与NVBoard实战

本文详细介绍了如何从零搭建Verilator仿真环境,并完成NVBoard实战项目,为'一生一芯'预学习提供完整指导。内容包括环境配置、工具安装、波形生成、自动化构建及可视化调试技巧,帮助初学者快速掌握数字逻辑设计与仿真验证的核心技能。

keras9composer的博客 701

密码学系列之七:数字签名

在当今数字化的信息世界里,数字化文档的认证性、完整性和不可否认性是实现信息安全的基本要求。数字签名是满足上述要求的主要手段之一,也是现代密码学的主要研究内容之一。本文首先介绍数字签名的基本概念和基本原理,然后介绍几种常用的数字签名实现方案,最后介绍数字签名的扩展。

聚集机器学习、信息安全 1万+

ESD笔记(三)_常用ESD保护电路优缺点

根据ESD防护器件的TLP I-V特性我们可将ESD器件分为回滞类和非回滞类两种; 回滞类的ESD器件包括NPN三极管、栅极接地 NMOS ( GGNMOS, Gate-grounded NMOS )、可控桂(SCR, siliconcontrolled rectifier)等。 非回滞类的ESD器件包括二极管、二极管串、沟道工作的MOS管、PNP三极管、栅极接电源的PMOS(GDPMOS)等,与回滞类ESD器件相比,其TLP曲线没有负阻区的存在。 常用于ESD防护的器件包括PN结二极管、GGN

weixin_47139649的博客 1万+

【网络安全】数字签名

数字签名技术作为一种关键的安全机制,在全球范围内得到了广泛的应用和快速的发展。从技术原理到应用场景,再到法律效力和安全性考量,数字签名不断地推动着数字经济的创新和增长。

衍生星球的博客 3165

单线激光雷达的工作原理

单线激光雷达通过单一激光束的水平扫描和时间 / 相位测量,实现二维环境的距离感知,是低成本二维导航的核心传感器。尽管其无法直接提供三维信息,但其可靠性和经济性使其在消费级和工业级场景中广泛应用。随着技术发展,部分单线雷达通过振动镜或 MEMS 微振镜实现微小角度偏转,可近似模拟多线扫描效果,进一步拓展了应用边界。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 1859

出现 RuntimeError: adaptive_avg_pool2d_backward_cuda does not have a deterministic implementation的解决方法

大致就是在执行主函数的训练函数中,在反向传播这一块出现了问题。解决方法就是添加如下代码块。找到提示bug的行数。

码农研究僧的博客 5532

数字签名和数字证书的原理解读(图文)

数字签名和数字证书的原理解读(图文) 发布日期:2018-10-11 数字签名和数字证书的区别是什么?数字证书是由权威机构CA证书授权中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档。而数字签名是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。对于数字签名和数字证书的运用原理,相信有不少朋友还不清楚,下文将为大家解疑答惑。 数...

小老虎 3万+

52、Power BI Desktop 数据筛选全攻略

本文全面介绍了Power BI Desktop中各类数据筛选功能的使用方法,涵盖布尔型数据筛选、高级文本筛选、Top N筛选、可视化级别、页面级别和报告级别筛选等核心操作。通过详细步骤、流程图和实际案例,帮助用户深入理解筛选器的层级关系与综合应用技巧,并提供常见问题解决方案,助力高效精准的数据分析与可视化展示。

linux6sysadmin的博客 110

数字签名和数字证书

Web of Trust:最初是由Phil Zimmermann在引入PGP加密软件时引入的,信任网络依赖于间接关系,Web of Trust利用了这一点,通过使用数字签名来担保个人的公钥,每个参与者在验证公钥属于该人时,都会签署他们认识的每个人的公钥,然后每个人都建立一个他们信任的人的名单,为其他人提供担保,如果信任网络变得足够大,那么就有理由期望间接信任关系将使大多数人能够与大多数其他人进行交流,然而,信任网络也存在问题,它们包括Web of Trust使用去中心化的方法,使其难以管理。

2503_90719298的博客 2073

【学习系列】SAP RAP 20:Unmanaged场景开发示例-调用BAPI、BAPI包装类、BO接口创建标准采购订单

本文介绍了在SAP RAP(Restful ABAP Programming)框架下,通过三种方式实现采购订单创建的方案。首先分析了RAP框架对传统BAPI调用的限制,特别是禁止显式COMMIT语句的要求。随后详细阐述了三种实现方式:1)直接调用传统BAPI(仅支持OP环境);2)使用BAPI包装类(仅支持OP环境);3)调用标准业务对象接口(支持所有环境)。 文章重点说明了在unmanaged场景下的技术实现细节,包括字段控制、缓冲区管理、测试运行与实际调用的分离处理等。针对每种方式都提供了完整的实施步骤

DeveloperMrMeng的博客 598

android11.0 Launcher3 高端定制之循环滑动

待机界面可以向左、向右循环切换页面 效果图 修改清单 packages/apps/Launcher3/res/values-zh-rCN/strings.xml packages/apps/Launcher3/res/values/config.xml packages/apps/Launcher3/res/values/strings.xml packages/apps/Launcher3/res/xml/launcher_preferences.xml packages/apps/Launc

cczhengv 1548

一文彻底搞懂加密、数字签名和数字证书,看不懂你打我!

前言 这本是 2020 年一个平平无奇的周末,小北在家里刷着 B 站,看着喜欢的 up 主视频。 在一旁玩手机的女朋友突然问”你知道数字证书是来干啥的不,为啥浏览器提示证书不可信?” 你要说这个,那我可来劲了,于是乎从加密、数字签名一直讲到了数字证书。。。终于把女朋友讲睡着了,独自写下这篇文章。 正文 如果你能非常清晰的回答出以下问题,可以直接拉到最下面帮我点个赞~,把时间用去陪陪女朋友: 非对称加密中公私钥都可以加密,那么什么时候用公钥加密,什么时候用私钥“加密” ? 什么是数字签名,数字签名的作

编程指北 5万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

数字签名和数字证书详解

签名 当你在一个纸质文件上写上你的名字,按上你的指纹,就意味着这张纸上的内容经过了你的认可,你的笔迹和指纹就是你身份的证明。这是因为,笔迹很难伪造,而每个人的指纹更是独一无二的。在签名前,我们会检查文件内容有没有歧义、有没有涂改、有没有多余不必要的空白等,确认无误后再写下我们的名字,而收到签名后文件的人,再次对文件内容及签名进行检查,以确保文件内容没有被篡改。 因此,签名可以用来认证签名者的身份及确保被签名文件内容的真实性。 数字签名 在互联网时代,文件以电子形式存在电脑里,我们从网上下载的文件、程

卡了个卡 5398

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

数字签名和数字证书使用详解

需要注意的是,这个例子中使用的密钥库文件和密码都是保存在代码中的,实际使用中应该使用更安全的方式来保存密钥库和密码。需要注意的是,这个例子中使用的密钥库文件和密码都是保存在代码中的,实际使用中应该使用更安全的方式来保存密钥库和密码。以下是使用Java进行数字签名的实例,该实例使用了Java标准库中的java.security包和java.util.Base64包,签名过程包括:生成密钥对、使用私钥签名数据,验证过程包括:使用公钥验证签名。然后,它将数字签名添加到请求头中,并发送 HTTP POST 请求。

swadian2008的博客 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

数字证书和数字签名

数字签名是一种加密技术,用于验证数字文档的完整性、真实性和身份。它使用了公钥密码学的原理和技术,以及哈希函数来实现。数字签名基于公钥密码学的原理,使用了非对称密钥加密算法。它使用了两个密钥:私钥(私有密钥)和公钥(公共密钥)。私钥只有文档的签名者(CA机构)拥有,并且必须保密保存。公钥可以被任何人访问。签名通过使用公钥密码学和哈希函数的组合,实现了对数字文档的完整性、真实性和身份的验证。其它:私钥,公钥,数字签名的区别。

陈开心的博客 1529

什么是数字签名和数字证书?

图解数字签名和数字证书

小林coding 1万+
上一篇: SQL语句优化技巧
下一篇: 设计模式(6)状态模式--行为型
gycool21
博客等级 码龄17年 10粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值