【密码学】数字签名

一、数字签名的基本概念

        数字签名是一种用于验证电子文档完整性和身份认证的密码学技术。它通过使用公钥加密体系中的私钥对文档的一部分(通常是文档的摘要)进行加密,从而创建一个“签名”。这个签名可以附在文档上,或作为一个单独的文件。

        在生成数字签名前,通常会先使用哈希函数(如SHA-256)将原始消息转换成一个固定长度的摘要。这样做的目的是为了提高效率和安全性,因为直接对长消息进行签名可能非常耗时且不安全。

二、数字签名算法

        数字签名方案由三个算法构成,这个三个步骤共同构成了数字签名的基础,确保了数据的完整性和不可抵赖性,以及发送者身份的验证。

(1)密钥生成算法

        生成一对密钥的过程,包括一个私钥(private key)和一个公钥(public key)。私钥用于签名,而公钥用于验证签名。这一过程通常涉及随机数生成器来确保密钥的安全性和独特性。

  • 公钥:可以公开,用于加密信息或验证数字签名。
  • 私钥:需要保密,用于解密信息或生成数字签名。

(2)签名算法

        使用发送者的私钥对消息摘要进行加密,生成数字签名。签名后,将签名附加到原始消息上一起发送。

【注】谁签名就用谁的私钥来加密,而且是对摘要加密而不是文件。

(2)验证算法

        接收者使用发送者的公钥对数字签名进行解密,得到一个解密后的摘要。接收者同时使用相同的哈希函数对收到的消息再次进行哈希处理,得到一个新的摘要。

比较这两个摘要是否相同:

  • 如果相同,则证明消息在传输过程中没有被篡改,并且确实是发送者发出的。
  • 如果不同,则说明消息可能已被篡改或并非来自声称的发送者。

三、数字签名的安全性

数字签名必须保障以下几点:

  1. 数据完整性:数字签名可以确保数据在传输过程中未被篡改。当发送方使用其私钥对数据的摘要(通常是通过哈希算法产生的)进行加密时,接收方可以使用发送方的公钥解密这个摘要,并且用自己的哈希算法对收到的数据重新生成摘要。如果两个摘要匹配,那么可以确定数据在传输过程中没有被修改。

  2. 身份认证:数字签名提供了发送方的身份认证。由于只有持有正确私钥的人才能生成有效的数字签名,因此接收到有效签名的接收方可以确信数据确实来自声称的发送方。

  3. 不可否认性:数字签名可以防止发送方否认其发送的数据。由于数字签名是使用发送方的私钥创建的,发送方无法否认该签名,因为这相当于否认自己私钥的有效性。这种特性对于商务交易、法律文件和其他需要责任追溯的场合尤其重要。

  4. 时间戳:数字签名还可以包含时间戳,证明文档是在特定时间之前签署的。这对于某些法律要求或合同条款可能很重要,以确定文档的有效性或合规性。

        为了实现上述功能,数字签名通常结合了非对称加密(公钥/私钥对)、哈希函数和证书颁发机构(CA)来验证公钥的所有权。

四、数字签名与消息认证的对比

(1)消息认证

  1. 目的:消息认证的主要目的是验证消息的完整性和确认消息的来源。它确保消息在传输过程中未被篡改,并且来自声称的发送方。

  2. 技术:消息认证通常使用消息认证码(MAC)来实现。MAC是使用共享密钥对消息进行加密产生的一个固定长度的值,接收方使用相同的密钥和消息来重新计算MAC,然后与接收到的MAC进行比较,以验证消息的完整性和来源。

  3. 隐私性:MAC本身并不提供消息的机密性,即它不加密消息的内容。因此,通常需要结合使用对称加密来保护消息内容的隐私。

  4. 适用场景:MAC适用于需要快速验证消息真实性和完整性的场景,尤其是在共享密钥已经安全分发的前提下。

(2)数字签名

  1. 目的:数字签名不仅验证消息的完整性和来源,还提供了不可否认性(Non-repudiation),即发送者不能否认他发送了该消息。此外,数字签名还可以验证消息的创建时间,防止重放攻击。

  2. 技术:数字签名使用公钥加密技术,发送者使用自己的私钥对消息或消息的散列值进行加密,生成数字签名。接收者使用发送者的公钥解密数字签名,验证消息的真实性和完整性。

  3. 隐私性:数字签名本身也不提供消息内容的机密性,但它可以与对称加密结合使用,以确保消息的隐私。

  4. 适用场景:数字签名适用于需要提供高度安全和法律效力的场景,如电子合同、法律文件、财务交易等,其中不仅需要验证消息的来源和完整性,还需要确保发送者对消息的发送行为负责。

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

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

相关文章

如何将HEVC格式的视频转换为无损、未压缩的MP4格式视频?

在和大家分享视频格式转换之前,先跟大家分享一下HEVC格式的视频到底是什么文件?压缩原理是什么?了解了它的本质之后,我们就可以知道如何保证视频高清无损了。 如何将HEVC格式的视频转换为无损、未压缩的MP4格式视频? …

逐步实践复现 SELF-RAG

SELF-RAG 简介 SELF-RAG(Self-Reflective Retrieval-Augmented Generation)是一种检索增强生成(RAG)的框架,它通过自我反思学习检索、生成和批判,以提高大型语言模型(LLM)的质量和真…

通用业务指标管理系统设计

设计一个通用业务指标管理系统,旨在帮助企业全面监控和管理关键业绩指标(KPIs),以驱动决策制定和业务优化。以下是一个综合性的设计方案,涵盖核心功能模块、技术架构、以及用户体验设计要点: 1. 核心功能模块 目标设定与分解 战…

「C++系列」一篇文章说透【存储类】

文章目录 一、C 存储类1. 类的定义2. 对象的创建3. 对象在内存中的布局4. 对象的存储位置 二、auto 存储类1. auto的基本用法2. auto与存储类的关系1) 自动存储类(最常见的)2) 静态存储类3) 动态存储类(通过new) 三、register 存储…

C标准库读写文件

函数介绍 库变量 变量描述size_t无符号整数类型,是sizeof关键字的结果,表示对象大小FILE文件流类型,适合存储文件流信息的对象类型 库宏 宏描述NULL空指针常量EOF表示已经到达文件结束的负整数stderr、stdin、stdout指向FILE类型的指针&a…

【数智化案例展】吉林省消防救援总队——基于大语言模型的119智慧助手

‍ 嘉诚信息案例 本项目案例由嘉诚信息投递并参与数据猿与上海大数据联盟联合推出的《2024中国数智化转型升级创新服务企业》榜单/奖项评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 随着信息时代的迅猛发展,消防人员正面临前所未有的知识爆炸挑战。为了高…

day30--56. 合并区间+ 738.单调递增的数字

一、56. 合并区间 题目链接:https://leetcode.cn/problems/merge-intervals/ 文章讲解:https://programmercarl.com/0056.%E5%90%88%E5%B9%B6%E5%8C%BA%E9%97%B4.html 视频讲解:https://www.bilibili.com/video/BV1wx4y157nD 1.1 初见思路 …

数据库第四次练习

数据准备 创建两张表:部门(dept)和员工(emp),并插入数据,代码如下 create table dept( dept_id int primary key auto_increment comment 部门编号, dept_name char(20) comment 部门名称 ); in…

SAP PS学习笔记02 - 网络,活动,PS文本,PS文书(凭证),里程碑

上一章讲了PS 的概要,以及创建Project,创建WBS。 SAP PS学习笔记01 - PS概述,创建Project和WBS-CSDN博客 本章继续讲PS的后续内容。包括下面的概念和基本操作,以及一些Customize: - 网络(Network&#xf…

力扣-回溯法

何为回溯法? 在搜索到某一节点的时候,如果我们发现目前的节点(及其子节点)并不是需求目标时,我们回退到原来的节点继续搜索,并且把在目前节点修改的状态还原。 记住两个小诀窍,一是按引用传状态…

欣奇随机美图源码

欣赏养眼美图让人心情愉悦 新增正能量进站引导首页 上传文件解压即可用有手就行 美图输出接口自判断版 http://mt.xqia.net/api.php http://mt.xqia.net/api.php?typejson 源码下载:https://download.csdn.net/download/m0_66047725/89520368 更多资源下载&…

20240711每日消息队列-------------MQ消息的积压的折磨

目标 解决MQ消息的积压 背景 菜馆系统----------- 系统读取消息,处理业务逻辑,持久化订单和菜品数据,然后将其显示在菜品管理客户端上。 最初我们的用户基数很小,上线后的一段时间内,MQ消息通信还算顺利。 随着用户…

R包:‘ggcharts好看线图包‘

介绍 ggcharts提供了一个高级{ggplot2}接口,用于创建通用图表。它的目标既简单又雄心勃勃:让您更快地从数据可视化的想法到实际的绘图。所以如何?通过处理大量的数据预处理,为您模糊{ggplot2}细节和绘图样式。生成的图是ggplot对象,可以使用…

蓝桥 7.11 dp

2.砝码称重 - 蓝桥云课 (lanqiao.cn) 思路 动态规划的核心思想是将问题分解成更小的子问题,并存储子问题的解,以避免重复计算 数组 dp[i][j] 表示使用前 i 个砝码可以称出的重量为 j 的数量 更新过程如下: 1.初始化:dp[0][0] …

python:sympy 求解一元五次方程式

pip install sympy 或者 本人用的 anaconda 3 自带 sympy 在北大数学训练营,韦东奕 用卡丹公式 巧妙 求解一元五次方程式: \latex $x^510*x^320*x-4 0$ from sympy import *x symbols(x) expr x**5 10*x**3 20*x -4# 用卡丹公式 尝试化简 a sym…

【IOS】React Native之HelloWorld

RN搭建开发环境 rvm 安装3.2.2 brew install node18 brew install watchman# 使用nrm工具切换淘宝源 npx nrm use taobao# 如果之后需要切换回官方源可使用 npx nrm use npmnpm install -g yarnbrew install cocoapodsnpm uninstall -g react-native-cli react-native-communi…

<数据集>表情识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:2504张 标注数量(xml文件个数):2504 标注数量(txt文件个数):2504 标注类别数:7 标注类别名称:[Neutral, Happy, Angry, Fear, Sad, surprised, Disguist] 序号类别名…

开始Linux之路(暑假提升)

人生得一知己足矣,斯世当以同怀视之。——鲁迅 Linux操作系统简单操作指令 1、ls指令2、pwd命令3、cd指令4、mkdir指令(重要)5、whoami命令6、创建一个普通用户7、重新认识指令8、which指令9、alias命令10、touch指令11、rmdir指令 及 rm指令(重要)12、man指令(重要…

Transformer——多头注意力机制(Pytorch)

1. 原理图 2. 代码 import torch import torch.nn as nnclass Multi_Head_Self_Attention(nn.Module):def __init__(self, embed_size, heads):super(Multi_Head_Self_Attention, self).__init__()self.embed_size embed_sizeself.heads headsself.head_dim embed_size //…

【VSCode】设置背景图片

1.下载background插件:拓展程序→background→install安装→设置: 2.点击在 settings.json 中编辑: 3.将settings.json文件中所有代码注释,添加以下代码: {// 是否开启背景图显示"background.enabled": t…