现代密码学-数字签名

从消息认证码到数字签名

前面讲到,消息认证码无法防止否认,A,B之间共享密钥计算出MAC,A,B都能计算出MAC,对于第三方C来说,他无法证明这个MAC是A计算的还是B计算的。

通过数字签名解决问题。

A,B各自使用不同的密钥-公钥密码,A用私钥生成一个签名,B可以用A公开的公钥进行验证。

签名的生成和验证

数字签名中的两种行为:

        生成消息签名

        验证消息签名

数字签名:将公钥密码反过来用,

私钥公钥
公钥密码接收者解密使用发送者加密使用
数字签名签名者生成签名使用验证者验证签名使用
个人持有公开

数字签名的方法

直接对消息签名

  1. A用私钥对消息进行加密
  2. A将消息和签名发给B
  3. B用A的公钥对收到的签名进行解密
  4. B将解密出来的消息和A发的消息进行对比

直接对消息签名

对消息的散列值签名

A用单向散列函数计算消息的散列值

A用自己的私钥对散列值加密

A将消息和签名发给B

B用A的公钥对收到的签名进行解密

B将解密得到的散列值和A发来的消息的散列值进行比较

对消息的散列值签名

对消息的散列值签名时序图 

使用公钥密码的私钥生成签名,主要是利用了私钥只有特定的人才持有这一特性。签名和消息是具有对应关系的,消息不同,签名内容不同。如果将一份签名提取出来放在另一个消息后面,验证签名的时候会失败。

应用实例

安全信息公告

软件下载

公钥证书

SSL/TLS

对数字签名的攻击

中间人攻击:确认自己得到的公钥是否真的是通信对象的

单向散列函数攻击:散列函数抗碰撞性

利用数字签名攻击公钥密码-不要直接对消息进行签名,对散列值进行签名更安全;公钥密码和数字签名分别使用不同的密钥

数字签名无法解决的问题

数字签名可以识别出篡改和伪装,还可以防止否认。前提条件是用于签名的公钥属于真正的发送者。数字签名用来识别消息篡改、伪装及否认,但我们必须从一个没有被伪装的发送者得到没有被篡改的公钥才行----死循环。

怎样才能确认自己得到的公钥是合法 的 ---使用证书。那么证书又由谁来颁发才安全呢?---公钥基础设施PKI

 

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

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

相关文章

LeetCode刷题之HOT100之组合总和

2024/6/3 周一,工作日的第一天。昨晚梦到被导师说去实验室不积极哈哈哈,风扇开到二级,早上被吹醒。买的书马上快要到了。上午刚来准备刷题,结果去搞了一下数据库sql,做的差不多了,还差点格式转换就差不多出…

军用电源性能测试有哪些测试项目?需要遵循什么标准?

为了确保军用电源在极端条件下能够正常工作,必须对其进行一系列严格的性能测试。这些测试不仅包括效率、电压调整率和负载调整率等基本参数的测试,还包括动态响应能力、绝缘电阻、耐压测试、温度系数以及高低温循环等综合性能的评估。 测试项目 效率 电压…

MySQL -- 连接查询

MySQL使用连接查询(JOIN)是为了从多个相关表中获取数据。连接查询是一种强大且常用的操作,可以根据某些条件将两张或多张表中的数据组合在一起,返回一个联合结果集。 1.为什么使用连接查询 数据规范化: 数据库设计时通…

站点被篡改快照被劫持解决服务方法教程_一招制敌

站点被篡改快照被劫持解决服务方法教程_一招制敌 被篡改表现形式: 站点打不开或跳转到别的网站。 攻击者目的: 报复、勒索、卖防御产品(如DDOS防御产品)。 攻击成本: 工具(如VPN购买)成本、人…

智能工厂生产设备实时监控技术的UI设计

智能工厂生产设备实时监控技术的UI设计

Flutter的Dart语法入门

文章目录 前言1. 类型声明2. 数据类型2.1 基本数据类型常量 2.2 String2.3 集合2.4 unicode 3. Dart函数特征3.1 可变参数列表和默认入参3.2 匿名函数3.3 typedef 4. Dart面向对象4.1 构造函数4.2 访问权限4.3 类的继承 参考资料附录 前言 每个语言都有控制流语句就不写测试代…

房地产vr全景展示交互视频让购房者更有参与感

在当今房地产市场中,购房者的需求日益多样化和个性化。为满足这一趋势,我们创新性地将VR虚拟现实技术应用于楼盘宣传,为购房者带来前所未有的沉浸式购房体验。 一、地理位置全景展示 通过实景拍摄与VR技术的结合,我们为购房者呈现…

day26-单元测试

1. 单元测试Junit 1.1 什么是单元测试?(掌握) 1.2 Junit的特点?(掌握) 1.3 基本用法:(掌握) 实际开发中单元测试的使用方式(掌握) public class …

C语言,排序

前言 排序,可以说是数据结构中必不可缺的一环。我们创造数据存储它,要想知道数据之间的联系,比较是必不可少的。不然,费劲心思得来的数据若是不能有更多的意义,那么拿到了又有什么用? 排序是计算机内经常进…

风险投资公司正在帮助小投资者购买Anthropic、OpenAI等热门公司的股票

近年来,风险投资公司对于人工智能(AI)领域的公司,如Anthropic、Groq、OpenAI等,表现出了极高的投资热情。这些公司因为它们在AI技术方面的创新而备受瞩目。但是,对于很多小投资者来说,由于资金有…

[C#]使用C#部署yolov8的目标检测tensorrt模型

【测试通过环境】 win10 x64 vs2019 cuda11.7cudnn8.8.0 TensorRT-8.6.1.6 opencvsharp4.9.0 .NET Framework4.7.2 NVIDIA GeForce RTX 2070 Super 版本和上述环境版本不一样的需要重新编译TensorRtExtern.dll,TensorRtExtern源码地址:TensorRT-CShar…

期权的权利金怎么算的

期权权利金的计算涉及多个因素,包括敲定价格、到期时间以及整个期权合约的具体情况。期权的权利金具体的计算公式和因素可能因不同的期权合约和市场条件而有所不同,下文为大家介绍期权的权利金怎么算的 ?本文来自:期权酱 一、期权…

【LeetCode】二叉树oj专题

如有不懂的地方,可查阅往期相关文章! 个人主页:小八哥向前冲~ 所属专栏:数据结构【c语言】 目录 单值二叉树 对称二叉树 计算二叉树的深度 二叉树的前序遍历 相同二叉树 另一棵树的子树 二叉树的构建和遍历 翻转二叉树 判…

spring boot 中的异步@Async

spring boot 开启异步调用 1、启动类上添加EnableAsync注解,表示启动异步 2、在具体实现异步的方法上添加Async注解 package com.example.demo;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootAppli…

YOLOv3+mAP实现金鱼检测

YOLOv3mAP实现金鱼检测 Git源码地址:传送门 准备数据集 按帧数读取视频保存图片 video2frame.py使用labelimg标注工具对图片进行标注统一图片大小为 416x416,并把标签等信息写成.xml文件 conver_point.py读取缩放后的标签图片,转为左上角右下…

如何快速部署上线项目

CSDN 的小伙伴们,大家好呀,我是苍何。 今天在群里面看到有小伙伴反馈说,面试的时候一被问到简历中的项目还没上线,就不继续问了,感觉挺奇葩的,要知道就校招来说,项目本身大部分都是练手的项目&…

Linux基础1-基本指令3

上篇文章我们说到了文件,pwd,touch,mkdir等知识。 Linux基础1-基本指令2(你真的了解文件吗?)-CSDN博客 本文继续梳理其他基础命令 1.本章重点 1.删除一个空目录命令rmdir 2.删除一个文件指令rm(重要!) 3.man命令&am…

做视频号小店保证金要交多少?保证金提现条件是什么?

大家好,我是喷火龙。 做视频号小店也是需要缴纳保证金的,保证金分为类目保证金和浮动保证金。 先来说说类目保证金,类目保证金由视频号小店主体资质类型和经营商品类目决定。 类目保证金有以下三点需要注意: 1. 如果你要申请新…

CentOS 7~9 救援模式恢复root密码实战指南

在管理Linux服务器时,忘记root密码是一件棘手的事情,但幸运的是,CentOS提供了救援模式来帮助我们重置root密码。本文将详细介绍如何通过GRUB引导菜单进入紧急模式(或称为救援模式),进而恢复root用户的密码。…

Python量化交易学习——Part4:基于基本面的单因子选股策略

技术分析与基本面分析是股票价格分析最基础也是最经典的两个部分。技术分析是针对交易曲线及成交量等指标进行分析,基本面分析是基于公司的基本素质进行分析。 一般来说选股要先选行业,在选个股,之后根据技术分析选择买卖节点,因此针对行业及个股的基本面分析是选股的基础。…