用户ID就是:为用户身份标识,具体见下面SM2算法预处理的第一步,主要是不知道这个值在SM2算法寄存器里面是多少或者是怎么设置的?
另外,上一个关于SM2加密和解密的疑问,恳请回复下,目前在做项目需要使用SM2的硬件加解密。
谢谢!
4. sm2 签名算法
4.1 预处理1
预处理1是指使用签名方的用户身份标识和签名方公钥,通过运算得到Z值的过程。Z值用于预处理2。
输入:
ID:字符串,用户身份标识
Q:SM2PublicKey,用户的公钥
输出:
Z:字节串,预处理1的输出
计算公式:Z = S M 3 ( E N T L ∣ ∣ I D ∣ ∣ a ∣ ∣ b ∣ ∣ x G ∣ ∣ y G ∣ ∣ x A ∣ ∣ y A )
参数说明:
ENTL:为由2个字节标识的ID的比特长度;
ID:为用户身份标识。无特殊约定的情况下,用户身份标识ID的长度为16字节,其默认值从左至右依次为:0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38。
a,b:为系统曲线参数;
x G , y G \displaystyle x_G,\ y_G xG, yG 为基点;
x A , y A \displaystyle x_A,\ y_A xA, yA 为用户的公钥。 |