公钥加密应用--数字签名

article/2025/9/25 6:45:46

公钥加密应用–数字签名

文章目录

  • 公钥加密应用--数字签名
    • 概述
    • 私钥加密
    • HASH算法
    • 签名算法的使用流程
    • 签名算法的应用
      • 认证身份
      • 完整性
      • 不可抵赖性
    • 撤销签名密钥
    • 签名算法
      • DSA算法
      • ECDSA算法
      • ECDSA--SM2签名算法
    • Reference

概述

​ 本文主要带大家详细了解数字签名的一些知识,数字签名利用了那些算法(非对称加密算法,hash算法),数字签名可以应用于电子签名。数字签名的作用:身份认证、完整性校验、不可抵赖性。数字签名的撤销等

私钥加密

​ 在非对加密的算法中,我们都是利用公钥加密的,其实也可以利用私钥进行加密(数学等式做支撑,就像公钥加密一样)。私钥加密的话这时候只能公钥进行解密了,这就是签名的本质原理。 私钥直接对信息的加密的值也可以认为是签名,也可以hash信息一下在加密生成签名。

HASH算法

先说一下一个常见的对于签名的攻击:存在性伪造。这种伪造攻击对于one way trap door function签名(RSA实现的签名属于此类签名)来说是有效的。加入hash算法可以有效防止这种攻击。也就是在签名前对消息进行过hash,然后对hash值利用私钥进行签名 。

   m⬇
z=hash(m)⬇sign(z)//私钥加密⬇tag

签名中加入hash算法的其他好处1

  • 高效性

    信息更短,更加高效

  • 兼容性

    hash算法可以转化成你想要的格式,兼容了一下私钥加密算法

  • 完整性

    hash算法可以校验完整性

我们现在一般认为签名算法包含了hash算法。

签名算法的使用流程

当小明使用签名要给小红发送一封重要消息的时候。下图为这个发送过程。

在这里插入图片描述

首先,小明对信息进行hash算法的到摘要值,然后对这个摘要值进行私钥加密。加密的结果就是签名,然后把签名附着在信息上发送给小红。

小红怎么验证签名值呢?小红首先对信息进行hash得到摘要值,然后对接收到签名使用公钥进行解密的解密值。然后对摘要值解密值进行比较。如果相等则说明签名验证成功,如果不相等则说明签名验证失败。

签名算法的应用

认证身份

私钥只有指定的签发者知道,签名只能由此签发者知道,也只有他才能签名。公钥是公开的,有公钥就能验证签名,所以来说这就保证信息的来源的可靠。

完整性

当消息被修改,签名就立马失效,无法验证通过。签名算法使用着hash算法,它本身可以保证消息的完成性。

不可抵赖性

不可抵赖性是指的是,只要签发的信息,可以被公钥验证而且在签发时间公私密钥对没声明撤销,签发者就不能抵赖签发了此消息。

撤销签名密钥

​ 当密钥发生泄漏了怎么办,我们是可以撤销的,可以提供在线查询哪些密钥对撤销了。怎么保证泄露之前的签名值可用呢?就是在签名中加入时间戳。

举一个栗子关于证书里面签名的2

在这里插入图片描述

(信息的hash值+ 当前时间)私钥加密 = 时间戳。(图中的签名不包括hash,所以我们这里直接写成私钥加密)

验证的时候我们能使用公钥解密出当前信息的hash和时间戳,能进行时间的对比。下图为信息和相对应的签名的组合
在这里插入图片描述

签名算法

DSA算法

全称:Digital Signature Algorithm(里面含有非对称加密算法的), 一种签名算法。由于安全性的原因已经不能签发签名了,但还可以验证之前签发的签名。3

ECDSA算法

使用椭圆曲线算法模拟实现DSA算法。

ECDSA–SM2签名算法

在这里插入图片描述

一般SM2的签名算法,大家使用的hash函数是SM3 。下面是java的BC包实现SM2签名的部分代码。可以看出使用的hash算法

 public SM2Signer(DSAEncoding encoding){this.encoding = encoding;this.digest = new SM3Digest();}

Reference


  1. Digital_signature#Method “There are several reasons to sign such a hash (or message digest) instead of the whole document.” ↩︎

  2. Signature lifecycle and timestamping “生成过程” ↩︎

  3. Digital Signature Algorithm “A draft version of the specification FIPS 186-5 indicates DSA will no longer be approved for digital signature generation, but may be used to verify signatures generated prior to the implementation date of that standard.” ↩︎


http://chatgpt.dhexx.cn/article/SuH3SmsS.shtml

相关文章

公钥加密

公钥密码又称为非对称密码,拥有公钥密码的用户分别拥有加密密钥和解密密钥。通过加密密钥不能得到解密密钥。并且加密密钥是公开的。 什么是密钥配送问题 在现实世界中使用对称密码时,我们一定会遇到密钥配送问题( key distribution problem)。 假如 …

SM2公钥加密与解密

SM2加解密 字符串公钥SM2加解密工具类 始于我工作中的一个需求,在网上很少找到资料所以来写一下 字符串公钥 公钥是对接方给的,是一个长字符串类似于这种格式 工具类中也有生成公私钥的方法,我测试加解密也能成功 秘钥生成借鉴的是这个文章…

公钥加密算法-RSA

RSA算法 RSA算法是由它的三位开发者,即 Ron Rivest、Adi Shamir 和 Leonard Adleman 的姓氏的首字母组成的 (Rivest-Shamir-Adleman)。 RSA 可以被用于公钥加密、数字签名和密钥交换。 文章目录 RSA算法一、简介二、RSA算法流程1、 加密或者验签过程2、解密或者签名…

公钥加密与PKI实验

环境:安装openssl库和bless工具 1.openssl库 2.bless工具 一.成为数字证书认证机构 1.新建一个工作目录 2.为CA生成自签名证书 二.为PKILabServer.com生成证书 1.生成公开/私有密钥对 2.生成证书签名请求 3.生成证书 三.在网站中…

java公钥加密私钥解密_公钥加密,私钥解密示例程序(JAVA)详解

公钥与私钥机制属于非对称加密的范畴,非对称是相对于对称加密而言的,对称加密用于加密与解密的密钥是同一把,而非对称加密则用于加密与解密的密钥不相同,一个公开,称为公钥;一个保密,称为私钥&a…

c#加密:四、公钥加密和签名

一、公钥加密 1、概述 公钥加密是非对称的,因此加密和解密需要使用不同的密钥。对称加密的密钥可以是一串长度合适的任意字节串。但非对称加密则需要专门制作一对密钥。 这个密钥对包含一个公钥和一个私钥。它们将一起完成如下工作: 公钥加密消息&#…

为什么用公钥加密却不能用公钥解密?

本文为掘金社区首发签约文章,14天内禁止转载,14天后未获授权禁止转载,侵权必究! 一直以来我都在逃避写HTTPS。 毕竟。 HTTPS里名词太多。概念又巨繁琐。 实在是太难解释了,能不写我尽量不写。。。。 但为了让图解网…

公钥加密算法

3 公钥加密算法 加密工具使用 运行RSA-Tool,点击Start按钮,滑动鼠标生成一个随机数。点击Generate生成一对大质数p、q及Npq。 自己选定一个可用的整数e(可使用默认的10001,也可以使用其他的)。点击Calc.D生成d。 3 将公钥(N,e)发送给小伙…

2021-05-05

5.5 实训主题:密码学(后续) 公钥加密算法 RSA算法的数学原理 阅读RSA.cpp中的代码,了解其实现方法。调试运行RSA.cpp,选择两个不同的素数。根据生成的d和e验证公式de ≡ 1 (mod (p-1)(q-1))。输入要加密的数。验证…

公钥密钥加密原理

转载自:https://www.jianshu.com/p/0bf1c3c047e5 第6章 网络编程与网络框架 6.1 公钥密钥加密原理 6.1.1 基础知识 密钥:一般就是一个字符串或数字,在加密或者解密时传递给加密/解密算法。对称加密算法:加密和解密都是使用的同…

公钥密码体制及RSA公钥加密算法(上)

一.公钥密码体制 (1)公钥(非对称)密码概述: 优点:免去密钥分发,密钥管理简单 (2)公钥加密的设计原则: 已知公私钥,进行加密解密是简单容易的 单…

网关与路由器的区别!!

自我认识: “网关” :让两个不同网络相互之间进行通信,可以使具有不同协议的网络相互连接。 “路由器”:能在计算机网络之间发送和接收数据包的设备,并且提供最佳路由路径的一种网络互联设备。但是只能在使用相同协议…

什么是网关和网关的作用

什么是网关? 网关(Gateway)指的是这一个网络连接到另一个网络的“关口”,它又称网间连接器、协议转换器。在Internet网里,网关的作用是一种连接内部网与Internet上其它网的一种中间设备,通俗来说,也叫做“路由器”。网关地址是能…

微服务——API网关

什么是API网关 API网关(API Gateway)是应用服务之前的系统,用来代理业务系统的服务API,在网关层处理所有的非业务功能,实现管理授权、访问控制和流量限制等功能。这样业务系统就可以专注于业务,而不用去处…

网关和路由器的区别

摘要:网关是逻辑概念,路由器是物理设备,路由器可以作为网关来使用。路由器是一个设备,而网关是一个结点(概念层)。应该说:路由器可以实现网关的功能。另外,网关的功能还可以由局域网中一台双网卡的机器&…

PowerBI Server端管理数据网关

作为企业PowerBI的管理员,日常工作除了分发报表,可能就是管理网关了,目前国际版的Server端已经更新了网关管理的页面,但是入口没变,仍然是设置—管理网关。 新建数据源 进入管理网关页面后,左上角有一个新…

守护企业网关

相比UTM、防毒墙等概念,用户关注的只是网关处如何确保网络安全以及对病毒攻击的拦截。 有一天,在一家大型外企工作的小王,利用午休空挡通过MSN将一个名为Dancing Skeleton的游戏小程序传给朋友分享,当消息发过去后,屏…

网关介绍

网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。在使用…

微服务网关——需求篇

概念 API Gateway(API GW / API 网关),顾名思义,是企业 软件系统在系统边界上提供给外部访问内部接口服务的统一入口。网关并不是微服务所特有的,实际上网关在微服务之前就已经存在很久了,例如银行、证券等…

网关是什么?工业网关是什么?

网关是什么?工业网关是什么? 网关(Gateway)又称网间衔接器、协议转化器。网关在传输层上以完结网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器相似,不同的是互连层。网关既…