数字签名与数字证书

news2024/9/27 23:24:06

数字签名与数字证书

  • 数字签名
  • 数字证书
    • 数字证书的原理
    • 数字证书的特点
  • 如何验证证书机构的公钥不是伪造的

数字签名

数字签名是非对称密钥加密技术与数字摘要技术的应用,数字签名就是用加密算法加密报文文本的摘要(摘要通过hash函数得到)而生成的内容

发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用发送方的私钥对这个摘要进行加密生成数字签名,之后将数字签名和报文一起发送给接收方,即数字证书

接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再公钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该报文是发送方的。举一个例子,A和B都已经获取了对方的公钥,以下是A和B利用数字签名的通信过程:

(1)A将原文加工生成发送内容

  1. A用哈希算法(如MD5)计算要发送内容message的Hash值(message的摘要)。
  2. 用非对称加密算法(如RSA算法)加密摘要,生成数字签名。 将message加数字签名作为发送内容。

(2)B收到数据,进行解密验证内容

  1. 首先对message进行同样的哈希计算,算出原文的Hash值(摘要1)。
  2. 用A的公钥解密签名,得到摘要2。
  3. 比对两个摘要是否相等。如果不相等,证明原文或者签名被修改过。

数字证书

采用公钥机制进行加密传输面临的一个问题是公钥的发布是未受信任的。任何一个用户都可以通过网络向所有人发布伪造的公钥,如果某个用户假冒真正用户的名义发布一个公钥,在该假冒者被揭穿以前,他可以解读所有发向真正用户的加密消息,还可以通过签名冒充真正用户的身份。

数字证书的原理

数字证书就是一个人或者组织在网络世界中的身份证,其发证机关是证书管理机构(certificate authority,CA)。CA用自己的私钥对用户的身份信息(主要是用户名和该用户的公钥)进行签名,该签名和用户的身份信息一起就形成了证书。
在这里插入图片描述

用户A把自己的证书发送给用户B。用户B使用CA的公钥对证书的签名进行验证,由于只有CA才能生成该证书,因此只要证书验证正确,即说明证书是由CA发布的,证书中用户A的公钥是值得信赖的。用户B以后就可以使用该公钥验证用户A的签名或者进行和A进行加密通信。使用数字证书验证用户的身份的过程如下:
在这里插入图片描述

整个数字证书的使用流程如下:
在这里插入图片描述

数字证书的特点

  1. 由专门的机构签发的数字证书才安全有效。
  2. 签发数字证书是收费的。
  3. 不会被冒充,安全可信。
  4. 数字证书有使用期限,过了使用期限,证书变为不可用。CA也可以在试用期内,对证书进行作废操作。

如何验证证书机构的公钥不是伪造的

这里有一个有趣的问题,用户B使用证书机构的公钥来验证用户A的数字证书,但如何又能够知道用户B拿到的证书机构的公钥不是伪造的呢?

解决办法是再找一个证书管理机构(certificate authority,CA)对该证书机构的公钥颁发一个证书,这样形成了一个公钥证书的嵌套循环,该循环的终点就是根证书机构。根证书机构较少,其公钥可以通过安全的方式发布,如通过USB拷贝、书面文件当面移交。

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

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

相关文章

「回溯框架」

文章目录 0 回溯和动态规划(dp)的区别0.1 框架 1 刷题1.1 全排列1.1.1 题解1.1.2 Code1.1.3 结果 1.2 N皇后1.2.1 题解1.2.2 Code1.2.3 结果 0 回溯和动态规划(dp)的区别 动态规划的核心是穷举,那么回溯算法和dp有什么…

单机最快的队列Disruptor解析和使用

前言 介绍高性能队列Disruptor原理以及使用例子。 Disruptor是什么? Disruptor是外汇和加密货币交易所运营商 LMAX group 建立高性能的金融交易所的结果。用于解决生产者、消费者及其数据存储的设计问题的高性能队列实现。可以对标JDK中的ArrayBlockingQueue。是目前单机且…

IDC报告背后:大模型时代,重新理解AI公有云

大模型之于AI公有云的意义,在于大模型可以改变过去“手工作坊定制算法”的高成本模式,转向“工厂模式”,只需要微调和精调,就可以形成针对性的场景算法。 作者|葛覃 出品|产业家 一年前,依然有不少云计算从业者思…

基于智能状态和源代码插桩的 C 程序内存安全性动态分析

原文来自微信公众号“编程语言Lab”:基于智能状态和源代码插桩的 C 程序内存安全性动态分析 搜索关注“编程语言Lab”公众号(HW-PLLab)获取更多技术内容! 欢迎加入 编程语言社区 SIG-程序分析 参与交流讨论(加入方式&a…

警惕!通过谷歌和必应搜索广告传播的新型恶意活动

据观察,一种新的恶意广告活动利用谷歌搜索和必应的广告,以AnyDesk、Cisco AnyConnect VPN和WinSCP等IT工具的用户为目标,诱骗他们下载木马安装程序,目的是入侵企业网络,并可能在未来实施勒索软件攻击。 Sophos在周三的…

Python生成pyc以及pyd文件的方法

文章目录 0. 背景1. pyc文件的生成2. pyd文件的生成3. 两者的异同 0. 背景 当有些模块的代码需要一定的保密性,这个时候就需要考虑pyc和pyd文件了。今天就好好琢磨一下这两种文件的生成和使用方法。让自己的知识能够朝着商业化的方向再前进一步。 1. pyc文件的生成…

为企业发展赋能增效:中国智能交通协会来访闪马智能

7月26日,中国智能交通协会秘书长杨颖一行来访闪马智能,闪马智能助理总裁兼营销与方案中心总经理黄智宏、CMO王一佳、副总裁詹诚以及副总裁兼智慧城市创新院院长邵钦豪等出席了交流会。 上海电科智能系统股份有限公司、卡斯柯信号有限公司、上海澳星照明电…

告别胆怯,大步向前,迎接新挑战!

告别胆怯,大步向前,迎接新挑战! “赤日炎炎似火烧,野田禾稻半枯焦。农夫心内如汤煮。公子王孙把扇摇。”读罢《水浒传》中的这一首七绝诗,受其感染,笔者也乘兴呤顺口溜四句抒怀:“烈日炎炎似火…

FlatBuffers 使用编译器

1、前言 可能刚接触的人会思考为啥要使用编译器: 一般跨平台、跨语言的都有一套固定的流程,大致可分为: 撰写IDL文件 -> 使用对应语言的编译器,编译成对应的语言 -> 序列化 ->持久化 -> 反序列化 这里就对应着这个…

Spring中IOC容器常用的接口和具体的实现类

在Spring框架没有出现之前,在Java语言中,程序员们创建对象一般都是通过关键字new来完成,那时流行一句话“万物即可new,包括女朋友”。但是这种创建对象的方式维护成本很高,而且对于类之间的相互关联关系很不友好。鉴于…

三言两语说透关于 MySQL2 和 MySQL 的区别

MySQL是最流行的开源关系型数据库管理系统,拥有大量的使用者和广泛的应用场景。而MySQL2是MySQL官方团队推出的新一代MySQL驱动,用于取代老版的MySQL模块,提供更好的性能和更丰富的功能。本文将介绍MySQL2相较于MySQL有哪些优势以及具体的技术区别。 My…

01 关于 ABAP RAP 模型

ABAP RAP 模型 概览 关于 RAP 专栏内容,是个人在 SAP 官方提供的课程学习后整理的文档。这些文档涉及部分对概念的理解。在这里,不做具体讲解,而是跟随后续实例开发教程,通过实际练习,让大家能够理解这些概念。 ABAP …

【Linux】多线程——生产者和消费者模型

目录 1 生活中的例子 2 为何要使用生产者消费者模型 3 生产者和消费者模型的特点 优点 4 如何理解生产消费模型提高了效率? 5 基于BlockingQueue(阻塞队列)的生产者消费者模型 C queue模拟阻塞队列的生产消费模型 1 生活中的例子 存在多个消费者&#xff0c…

pve安装ikuai并设置,同时把pve的网络连接到ikuai虚拟机

目录 前因 前置条件 安装ikuai 进入ikuai的后台 配置lan口,以及wan口 配置lan口桥接 按实际情况来设置了 单拨(PPOE拨号) 多拨(内外网设置点击基于物理网卡的混合模式) 后续步骤 pve连接虚拟机ikuai的网络以及其他虚拟机连接ikuai的网…

QT中日期和时间类

QT中日期和时间类 QDateQTimeQDateTime QDate QDate类可以封装日期信息也可以通过这个类得到日期相关的信息, 包括:年, 月, 日。 // 构造函数 QDate::QDate(); QDate::QDate(int y, int m, int d);// 公共成员函数 // 重新设置日期对象中的日期 bool QDate::setDate(int year…

【数据结构与算法】整合一

GitHub同步更新(已分类):Data_Structure_And_Algorithm-Review 公众号:URLeisure 的复习仓库 公众号二维码见文末 以下是本篇文章正文内容,下面案例可供参考。 吐血整理数据结构合集一: 整理了之前发的文…

SpringBoot集成Thymeleaf

Spring Boot 集成 Thymeleaf 模板引擎 1、Thymeleaf 介绍 Thymeleaf 是适用于 Web 和独立环境的现代服务器端 Java 模板引擎。 Thymeleaf 的主要目标是为开发工作流程带来优雅的自然模板,既可以在浏览器中正确显示的 HTML,也可以用作静态原型&#xf…

华为云NFS使用API删除大文件目录

最近在使用华为云SFS时,如果一个目录存储文件数超过100W,执行 “rm -rf path”时,存在删不动的情况,可以使用华为云API接口,执行异步删除。 华为官网: 删除文件系统目录_弹性文件服务 SFS_API参考_SFS Tu…

八方锦程15周年巡讲重磅启动,上海首场巡讲圆满举行

7月27日,八方锦程15周年巡讲——“与行业大咖同行 打造卓越人力资源官”活动在上海圆满举行! 作为八方锦程15周年巡讲的第一站,这一时刻,近200位与会人力资源从业者共同见证。 活动由八方锦程人才研究院副院长Leon主持并致开幕词。他向与会人员分享了举办该系列活动的初心,以八…

Mybatis源码-三种SqlSession的区别

三个SqlSession DefaultSqlSession与SqlSessionManager 与SqlSessionTemplate 是我常见的3种sqlsesion 从类图可以看出他们三个都实现了了SqlSession,也就是他们都可以表示一个会话。与其他不同的是SqlSessionManager实现了SqlSessionFactory 这三种sqlsession的区…