首页 > 编程语言 >SM2算法功能简述(一) 数字签名生成流程

SM2算法功能简述(一) 数字签名生成流程

时间:2023-03-14 10:12:31浏览次数:39  
标签:公钥 验证 数字签名 SM2 ZA 简述 FFFFFFFF

SM2数字签名算法由一个签名者对数据产生数字签名,并由一个验证者验证签名的可靠性。每个签名者有一个公钥和一个私钥,其中私钥用于产生签名,验证者用签名者的公钥验证签名。在签名的生成过程之前,要用密码杂凑函数对M (包含ZA和待签消息M)进行压缩;在验证过程之前,要用密码杂凑函数对M′(包含ZA和验证消息M′)进行压缩。

 

SM2推荐椭圆曲线参数如下:

使用素数域256位椭圆曲线

椭圆曲线方程:y2 = x3 + ax + b

p= FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF

a= FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC

b= 28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93

n= FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF409 39D54123

Gx= 32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589 334C74C7

Gy= BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E5 2139F0A0

数字签名生成流程:

关键参数说明:

ZA=H256(ENT LA || IDA || a || b || xG || yG || xA || yA) (SM3算法做摘要)

ENT LA : 用户ID的位长度

IDA :用户ID

xA  :公钥X

yA  :公钥Y

M(—)   :ZA || M (ZA 与 M拼接)

e   : 密码杂凑函数作用于消息M的输出值(SM3(ZA||M)预处理得到的结果)

k   : [1,n-1]范围内的随机数

r   : (e+x1)mod n  (mod同余定理)

S   :((1+dA)-1 *(k-r*dA)) mod n  (dA 用户的私钥 )

标签:公钥,验证,数字签名,SM2,ZA,简述,FFFFFFFF
From: https://www.cnblogs.com/liaqi333/p/17213907.html

相关文章

  • 简述HTTP1.0,1.1,2.0,3.0的主要区别以及QUIC协议
    HTTP/1.0(构建可拓展性)请求中新增协议版本信息引入HTTP头概念响应中新增状态码默认使用短连接:浏览器每使用一个静态资源就会建立连接直到任务结束中断连接HTTP/1.1......
  • 鸿蒙生态应用/服务开发三大理念简述
    鸿蒙生态应用与服务开发三大理念一次开发,多端部署:多种设备类型,无需重复开发多套代码,维护多个版本;数据同步降低复杂度,降低多设备开发环境获取门槛,多端界面快速预览效果,提......
  • kali更新源数字签名错误解决办法
    apt-getupdate更新时出现错误,提示Release文件已经过期,无论是使用kali官方源还是阿里源、中科大源都报该错误。网上查找相关资料,签名出错需要下载数字签名,方案如下:wgeta......
  • Spring:简述一下bean的生命周期吧?
    bean的生命周期是指它在ioc容器中从创建到销毁的整个过程。 <hr> 一、生命周期1、实例化,为对象分配内存。2、构造方法。3、属性注入,set注入。4......
  • Go 简述
     1、Go主要用于服务端开发、定位开发“大型软件”,擅长的领域(1)服务端编程:处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理(2)网络编程:Web应用、API应......
  • FPGA 原理、结构、开发流程简述
    简介本文主要介绍了博主在阅读天野英晴主编的《FPGA原理和结构》一书时的读书笔记,方便更好的了解和入门FPGA。本博客图片均来自于参考文献[1]。FPGA特性和粒度FPGA是......
  • 数字签名是什么玩意?
    今天,我读到一篇好文章。它用图片通俗易懂地解释了,"数字签名"(digitalsignature)和"数字证书"(digitalcertificate)到底是什么。我对这些问题的理解,一直是模模糊糊的,很多细......
  • 简述traceroute命令的原理
    原理traceroute命令是一种用于显示数据包从源主机到目的主机经过的路由器和网络设备的路径的工具。traceroute命令的原理是利用IP数据报的生存时间(TTL)字段和因特网控制报......
  • 简述WPF中的画刷(Brush)
    我们知道,在GDI+中,画刷用于填充图形形状,如矩形、椭圆、扇形、多边形和封闭路径。在GDI+中,画刷分为以下几种:SolidBrush,TextureBrush,HatchBrush,LinearGradientBrush和PathGradi......
  • 【转载】一文看懂HTTPS、证书机构(CA)、证书、数字签名、私钥、公钥
    说到https,我们就不得不说tls/ssl,那说到tls/ssl,我们就不得不说证书机构(CA)、证书、数字签名、私钥、公钥、对称加密、非对称加密。这些到底有什么用呢,正所谓存在即合理,这篇......