SM2算法验签验证-多种工具验证

1.     通过智能密码钥匙登录系统时,开启wireshark抓取登录过程数据包;在业务系统开发者界面下,查找相关信息(服务端发回的随机数)

国密SM2算法验签-多种工具验证_SM2算法验签

提取服务端发回随机数

       serverRandom:"HJUHf5mHHH1KMB4TUg6dFA=="

2.     在业务系统开发者界面下,查找相关信息(客户端发回的随机数、签名值)

提取相关信息

国密SM2算法验签-多种工具验证_SM2算法验签_02

       random:"NG5DNUVKZHdqN3BYeXkyZg=="

signValue:"MEUCIQCwZBl1CoDAYUHYRkjYdOczg/fdu6dvji1F+qXR1nymxQIgcYT/jmV/IR/JPlFfw+Jlbjfq9sLibBvseQQurGL59V0="

3.     通过插件工具,查看智能密码钥匙中的客户端签名证书,提取公钥

国密SM2算法验签-多种工具验证_SM2算法验签_03

提取公钥:

04d224460667d6d13c770f81b2a4518de3c91c53b91a1131f43a7e619d3ca723cbf253698e4ce75f63cf1e04421376cef52fc2e876fdc051bc8881c0aacf7932d0

4.      使用算法验证工具-1

国密SM2算法验签-多种工具验证_SM2算法验签_04

5.     依据算法工具,所需信息,将以上提取信息总结如下

随机数:后端随机数+前端随机数

HJUHf5mHHH1KMB4TUg6dFA==NG5DNUVKZHdqN3BYeXkyZg==

将以上随机数转化为16进制

国密SM2算法验签-多种工具验证_SM2算法验签_05

提取相关信息:

484a554866356d484848314b4d4234545567366446413d3d204e4735444e55564b5a4864714e33425965586b795a673d3d

6.     将签名值Base64,解码

国密SM2算法验签-多种工具验证_SM2算法验签_06

提取以上信息

3045022100b06419750a80c06141d84648d874e73383f7ddbba76f8e2d45faa5d1d67ca6c502207184ff8e657f211fc93e515fc3e2656e37eaf6c2e26c1bec79042eac62f9f55d

7.     将以上所有信息,输入到算法验证工具,即可验证成功

国密SM2算法验签-多种工具验证_SM2算法验签_07

注:将签名值的数据,输入到算法验证工具时,需将开头的3045022100和中间的0220删除后,在输入到算法验证工具中,方可验证成功

 

4.      使用算法验证工具-2

国密SM2算法验签-多种工具验证_SM2算法验签_08

国密SM2算法验签-多种工具验证_SM2算法验签_09

5.     依据算法工具,所需信息,将以上提取信息总结如下

A、提取证书公钥值为:     04d224460667d6d13c770f81b2a4518de3c91c53b91a1131f43a7e619d3ca723cbf253698e4ce75f63cf1e04421376cef52fc2e876fdc051bc8881c0aacf7932d0

Public Key X:输入值:证书公钥值删除开头04后64位:d224460667d6d13c770f81b2a4518de3c91c53b91a1131f43a7e619d3ca723cb

Public Key Y:输入值:证书公钥值后64位: f253698e4ce75f63cf1e04421376cef52fc2e876fdc051bc8881c0aacf7932d0

B、User ID:输入值为:1234567812345678的十六进制:

C、Data:随机数:后端随机数+前端随机数

HJUHf5mHHH1KMB4TUg6dFA==NG5DNUVKZHdqN3BYeXkyZg==

将以上随机数转化为16进制:484a554866356d484848314b4d4234545567366446413d3d4e4735444e55564b5a4864714e33425965586b795a673d3d

D、将签名值Base64,解码:

3045022100b06419750a80c06141d84648d874e73383f7ddbba76f8e2d45faa5d1d67ca6c502207184ff8e657f211fc93e515fc3e2656e37eaf6c2e26c1bec79042eac62f9f55d

              SignatureR:输入值为:开头的3045022100和中间的0220之间的值:b06419750a80c06141d84648d874e73383f7ddbba76f8e2d45faa5d1d67ca6c5

              SignatureS:输入值为:中间0220之后的值:7184ff8e657f211fc93e515fc3e2656e37eaf6c2e26c1bec79042eac62f9f55d        

6.     将以上所有信息,输入到算法验证工具,即可验证成功

国密SM2算法验签-多种工具验证_SM2算法验签_10

国密SM2算法验签-多种工具验证_SM2算法验签_11

国密SM2算法验签-多种工具验证_SM2算法验签_12

国密SM2算法验签-多种工具验证_SM2算法验签_13

国密SM2算法验签-多种工具验证_SM2算法验签_14

国密SM2算法验签-多种工具验证_SM2算法验签_15

国密SM2算法验签-多种工具验证_SM2算法验签_16

国密SM2算法验签-多种工具验证_SM2算法验签_17