现代密码学-数字签名

ops/2024/9/23 9:34:47/

从消息认证码到数字签名

前面讲到,消息认证码无法防止否认,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.ppmy.cn/ops/47239.html

相关文章

SpringCloud学习笔记(一)

SpringCloud、SpringCloud Alibaba 前置知识: 核心新组件: 所用版本: 学习方法: 1.看理论:官网 2.看源码:github 一、微服务理论知识 二、关于SpringCloud各种组件的停更/升级/替换 主业务逻辑是&#x…

【Git】

一、git介绍 git - 分布式版本控制工具Version control systems(VCSs) VS 集中式版本控制工具 Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。 Git 易于学习,占地面积小,性能极快。它具有廉价的…

【bug】在 Windows 上安装 SDKMAN! 的完整指南

在 Windows 系统上,安装 SDKMAN! 可能会遇到一些小问题。本文将详细介绍如何解决这些问题并成功安装 SDKMAN!。 问题描述 当在 PowerShell 中运行以下命令以安装 SDKMAN! 时: curl -s get.sdkman.io | bash你可能会遇到以下错误: bash : …

基于单片机智能防触电装置的研究与设计

摘 要 : 针对潮湿天气下配电线路附近易发生触电事故等问题 , 对单片机的控制算法进行了研究 , 设 计 了 一 种 基 于 单片机的野外智能防触电装置。 首先建立了该装置的整体结构框架 , 再分别进行硬件设计和软件流程分析 &#xf…

Vue 的响应式系统原理

Vue 的响应式系统是其核心功能之一,它允许数据模型发生变化时自动更新视图。这个机制使得 Vue 能够高效地跟踪依赖关系,并在数据发生变化时仅更新必要的部分,而不是全局重新渲染。 Vue 的响应式系统原理主要包括以下几个方面: 1:数据观测: Vue 使用 Object.define…

网络安全等级保护相关标准及发展

目录 等保标准 等保定级 发展 等保标准 2016年11月发布的《网络安全法》第二十一条提出“国家实行网络安全等级保护制度”。 等级保护标准体系: (1)安全等级类标准 主要包括GB/T 22240-2008《信息安全技术 信息系统安全保护等级保护定…

代码随想录算法训练营Day8|541. 反转字符串II、替换数字、151.翻转字符串里的单词、卡码网:55.右旋转字符串

541. 反转字符串II 1.这道题刚开始把题意理解错了,以为对于任意长度的字符串都只反转[0,k-1]以及[2k,3k-1]区间的值。 2.但实际上是要把一个字符串分成若干长度为2k的小区间,反转前[0,k-1]的字符串,[k,2k-1]保持不变; 3.如果有一个区间字符串…

外包干了3个多月,技术退步明显。。。。。

先说一下自己的情况,本科生,19年通过校招进入广州某软件公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…