密码学 | 数字签名 + 数字证书

🥑原文:数字签名和数字证书的原理解读 - 知乎

🥑声明:后文图中若未明确指明,默认是 Bob 的公钥或私钥。

Step1:Bob 有两把钥匙,一把是公钥,另一把是私钥。 

Step2:Bob 把公钥分发给他的朋友们 —— Alice 和 Chris —— 每人一把。 

Step3:假设 Alice 要给 Bob 写一封保密的信。

Alice 写完信后用 Bob 的公钥进行加密,就可以达到保密的效果。

Step4:Bob 收信后,用私钥解密,就看到了信件内容。

这里需要强调的是,只要 Bob 的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。

Step5:Bob 给 Alice 回信,决定采用 数字签名

Bob 写完后先对信件内容使用 Hash 函数,生成信件的 digest 总结。

Step6:然后,Bob 使用私钥,为这个总结生成一个 数字签名

Step7:Bob 将这个数字签名,附在信件后面,一起发给 Alice 。

Step8:Alice 收信后,取下数字签名,用 Bob 的公钥解密,得到信件的总结。由此证明,这封信确实是 Bob 发出的。

数字签名作用一:验证这封信到底是谁发的,见第 8 步。

数字签名作用二:验证这封信是否被篡改过,见第 9 步。

Step9:Alice 再对信件本身使用 Hash 函数,将得到的结果,与上一步得到的总结进行对比。如果两者一致,就证明这封信未被篡改过。

为什么不直接对 digest 进行解析?答:因为哈希函数具有单向性,所以没有办法根据 Hash 结果求解原始值。这里重新对信件内容使用 Hash 函数,通过比较新老 Hash 结果是否一致,来判断信件内容是否被篡改。

Step10:复杂的情况出现了。

  1. Chris 偷偷打开 Alice 的电脑,把 Bob 的公钥换成了自己的公钥;
  2. Alice 实际拥有的是 Chris 的公钥,但她还以为这是 Bob 的公钥;
  3. Chris 冒充 Bob,用自己的私钥制造数字签名,并写信给 Alice;
  4. Alice 将会使用假的 Bob 公钥进行解密。

Step11:后来,Alice 感觉不对劲,发现自己无法确定公钥是否真的属于 Bob 。

Alice 想到了一个办法,要求 Bob 去找 证书中心,为公钥做认证。证书中心用自己的私钥,对 Bob 的公钥和一些相关信息一起加密,生成 数字证书

证书中心的英文是 certificate authority,简称 CA;数字证书的英文是 Digital Certificate 。

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

Step13:Alice 收信后,用 CA 的公钥解开 数字证书,就可以拿到 Bob 真实的公钥了,然后就能证明 数字签名 是否真的是 Bob 签的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安全狗云眼的主要功能有哪些?

"安全狗云眼"是一款综合性的网络安全产品,主要用于实时监控和保护企业的网络安全。其核心功能包括威胁检测、漏洞扫描、日志管理和合规性检查等。 以下是安全狗云眼的主要功能详细介绍: 1、资产管理 定期获取并记录主机上的Web站点、Web容器、…

达梦数据库——异常崩溃(core)分析处理

CORE文件介绍 core文件是在程序异常崩溃时生成的文件,它包含了程序在崩溃瞬间的内存状态信息,主要是用来调试和分析问题。我们可以使用调试器工具(如GDB)来分析core文件,以便定位和解决问题。 CORE文件的配置 开启cor…

ActiveMQ主从架构和集群架构的介绍及搭建

目录 一、主从和集群架构的特点 1.1 主从架构的-Master/slave模式特点 1.2 集群架构-Cluster模式特点 二、ActiveMQ的主从架构 2.1 架构图 2.2 特点 2.3 实现方式(3种) 2.4 实现 (基于LevelDB复制) 2.4.1 准备环境 2.4.2…

2024化工制造企业数字化白皮书

来源:蓝凌研究院 中国石油和化学工业联合会发布2023年中国石油和化工行业经济运行情况。数据显示,2023年,我国石化行业实现营业收入15.95万亿元, 同比下降1.1%,利润总额8733.6亿元,行业经济运行总体呈现低…

vscode搭建C/C++环境

文章目录 一、安装vscode 二、下载安装g 三、安装VSCode插件 四、配置运行环境 一、安装vscode 直接官网免费下载:下载完成后进行安装,记得更换安装路径Visual Studio Code - Code Editing. RedefinedVisual Studio Code is a code editor redefine…

大数据------额外插件及技术------Git(完整知识点汇总)

Git 定义 它是分布式版本控制工具,主要用于管理开发过程中的源代码文件(如:Java类、xml文件、html页面等),在软件开发过程中被广泛应用 作用 代码回溯:快速回到某一代码历史版本版本切换:同一个…

Python文件处理--进阶

Python标准库文件操作相关模块: 1.使用pickle序列化 序列化指的是:将对象转化成“串行化”数据形式,存储到硬盘或通过网络传输到其他地方。反序列化是指相反的过程,将读取到的“串行化数据”转化成对象。我们可以使用pickle模块…

算法部署 | 使用TensorRT部署AlphaPose姿态估计算法

项目应用场景 面向 AlphaPose 姿态估计算法的推理加速场景,项目采用 TensorRT 进行 GPU 算法加速推理。 项目效果 项目细节 > 具体参见项目 README.md (1) 模型转换 python pytorch2onnx.py --cfg ./configs/coco/resnet/256x192_res50_lr1e-3_1x.yaml --chec…

基于Springboot的简历系统

基于SpringbootVue的简历系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页 简历模板 招聘会 求职论坛 系统公告 后台登录 后台首页 用户管理 简历模板 模板…

面试八股——JVM★

类加载 类加载器的定义 类加载器的类别 类装载的执行过程 类的装载过程: 加载: 验证: 准备: 这里设置初始值并不是传统意义的设置初始值(那个过程在初始化阶段)。 解析: 初始化: …

YOLOv8改进 | Conv篇 | CVPR2024最新DynamicConv替换下采样(包含C2f创新改进,解决低FLOPs陷阱)

一、本文介绍 本文给大家带来的改进机制是CVPR2024的最新改进机制DynamicConv其是CVPR2024的最新改进机制,这个论文中介绍了一个名为ParameterNet的新型设计原则,它旨在在大规模视觉预训练模型中增加参数数量,同时尽量不增加浮点运算&#x…

servlet的三个重要的类(httpServlet 、httpServletRequst、 httpServletResponse)

一、httpServlet 写一个servlet代码一般都是要继承httpServlet 这个类,然后重写里面的方法 但是它有一个特点,根据之前写的代码,我们发现好像没有写main方法也能正常执行。 原因是:这个代码不是直接运行的,而是放到…

气象观测站点数据下载与处理

一、下载途径 全国400多个气象站气候数据(1942-2022) 王晓磊:中国空气质量/气象历史数据 | 北京市空气质量历史数据 气象数据免费下载网站整理 中国气象站观测的气象数据怎么下载 二、R语言处理 2.1 提取站点文件 library(dplyr) library(…

(助力国赛)数学建模可视化!!!含代码1(折线图、地图(点)、地图(线)、地图(多边形)、地图(密度)、环形图、环形柱状图、局部放大图)

众所周知,数学建模的过程中,将复杂的数据和模型结果通过可视化图形呈现出来,不仅能够帮助我们更深入地理解问题,还能够有效地向评委展示我们的研究成果。   今天,作者将与大家分享8种强大的数学建模可视化图形及其在…

解决VirtualBox虚拟机启动失败的问题

一.出现的问题(未能启动虚拟电脑,由于物理网卡未找到) 一、错误信息分析 “未能启动虚拟电脑,由于物理网卡未找到”:这个错误通常是由于VirtualBox无法识别或连接到物理网卡造成的。可能是由于驱动程序问题、网络设置错…

2024年阿里云最便宜的轻量应用服务器与云服务器价格及优惠购买入口

2024年,阿里云推出了几款价格最便宜的轻量应用服务器和云服务器,其中轻量应用服务器2核2G3M公网带宽50GB 高效云盘活动价格61元1年,经济型e实例4核16G10M公网带宽100G ESSD Entry云盘活动价格最低只要30元/1个月,通用算力型u1实例…

pyskl手势/动作识别的实现与pytorch cuda环境部署保姆教程

恭喜你,找到这篇不需要翻墙就能够成功部署的方法。在国内布置这个挺麻烦的,其他帖子会出现各种问题不能完全贯通。便宜你了。。 实话5年前我用1080训练过一个基于卷积和ltsm的手势识别,实话实说感觉比现在效果好。是因为现在的注意力都在tra…

【Spring】Spring MVC入门

Spring MVC入门 一、什么是Spring Web MVC? 1.1 MVC定义 MVC是Model View Controller的缩写,是一种软件架构的设计模式,将软件系统分为模型、视图、控制器三个部分。 示意图如下: 可以看到,Controller作为一个“粘合剂”处于M…

Hadoop——Yarn基础架构

Hadoop——Yarn基础架构 Hadoop YARN(Yet Another Resource Negotiator)是Apache Hadoop生态系统中的一个子项目,它是用于集群资源管理的框架,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台&…

Mac 利用Homebrew安装JDK

一、安装JDK17 1.安装openjdk17 2.把homebrew安装的openjdk17软链接到系统目录: brew install openjdk17 sudo ln -sfn $(brew --prefix)/opt/openjdk17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk 一、检查是否安装成功 在Termina…