图解SM2算法流程(合)[亲测有效]

图解SM2算法流程(合)[亲测有效]图解SM2算法流程——第1章概述A.SM2主要功能A.1.公私钥私钥:BN_大整数公钥:EC-Point椭圆曲线上的点整体结构A.2第2部分——数字签名算法A.2.1签名(UserA)l签名者用户A的密钥对包括其私钥dA和公钥PA=[dA]G=(xA,yA)l签名者用户A具有长度为entlenA比特的可辨别标识IDA,…

大家好,欢迎来到IT知识分享网。

图解SM2算法流程——第1章 概述 

A. SM2主要功能

A.1. 公私钥

私钥:BN_大整数

公钥:EC-Point椭圆曲线上的点

整体结构

图解SM2算法流程(合)[亲测有效]

A.2 第2部分——数字签名算法

A.2.1 签名(User A)

l  签名者用户A的密钥对包括其私钥dA公钥PA=[dA]G= (xA,yA)

l  签名者用户A具有长度为entlenA比特的可辨别标识IDA,

l  ENTLA是由整数entlenA转换而成的两个字节

l  ZA=H256(ENTLA || IDA || a || b || xG || yG|| xA || yA)。

l  待签名的消息为M

l  数字签名(r,s)

图解SM2算法流程(合)[亲测有效]

说明:第5步若r=0r+k=n则返回第3步;第6步若s=0则返回第3步。

A.2.2 验签(User B)

l  签名者用户A的密钥对包括其私钥dA公钥PA=[dA]G= (xA,yA)

l  签名者用户A具有长度为entlenA比特的可辨别标识IDA,

l  ENTLA是由整数entlenA转换而成的两个字节

l  ZA=H256(ENTLA || IDA || a || b || xG || yG|| xA || yA)。

l  消息为M数字签名(r,s)

 图解SM2算法流程(合)[亲测有效]

 

A.2.3 原理

首先,验证流程B4计算的点(x′1; y′1) 和签名步骤A3 计算的点 ( x1, y1 )相等。

计算流程

(x′1; y′1)

= [s′]G + [t]PA

= [s′]G + [s′] PA + [r′] PA

= [s′]G +[s′][dA] G +[r′·dA] G

= [(1+ dA)×s′] G+[r′·dA] G

= [k − r · dA) ] G+[r′·dA] G

= [k] G

= ( x1, y1 )

A.3 第3部分——密钥交换协议

A.3.1 密钥交换(User A & User B)

图解SM2算法流程(合)[亲测有效]

A.3.2 原理

参与KDF运算的所有输入数据均相等,所以得到的协商密钥自然相同。

A.4 第4部分——密钥封装和加解密

A.4.1 加密(User A)

图解SM2算法流程(合)[亲测有效]

说明:第3步计算S=[h]PB略,因h=1。

A.4.2 解密(User B)

图解SM2算法流程(合)[亲测有效]

说明:第2步计算S=[h]C1略,因h=1。

A.4.3 原理

关键在于说明加密流程第4步计算的 [k]PB= (x2, y2) 与解密流程第2步计算的 [dB]C1 = (x2, y2) 相等。解密流程第2步计算

计算流程

(x2, y2)

= [dB]C1

=[dB][k]G

=[k] [dB] G

=[ k] PB

[k]PB是加密流程第4步计算值。所以加密流程第4步计算的[k]PB = (x2,y2) 与解密流程第2步计算的[dB]C1 = (x2y2) 相等。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/24580.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信