[发明专利]基于SM2数字签名的隐式证书密钥生成方法有效
申请号: | 202011259622.8 | 申请日: | 2020-11-12 |
公开(公告)号: | CN112367175B | 公开(公告)日: | 2021-07-06 |
发明(设计)人: | 姜奇;刘强;赵贵川;马建峰;马卓;张俊伟;杨超;马鑫迪;李兴华;杨力 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/30;H04L9/08 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 王品华;王玺钧 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 sm2 数字签名 证书 密钥 生成 方法 | ||
1.一种基于SM2数字签名算法的隐式证书密钥生成方法,其特征在于,包括如下:
(1)系统参数初始化,并通过证书颁发机构CA生成主密钥对:
(1a)按国家密码局认定的国产密码算法SM2标准设置如下参数:
设椭圆曲线方程E为y2=x3+ax+b,并设椭圆曲线方程E上的阶为n的基点G=(xG,yG),其中a、b∈Fq,Fq是阶为q的有限域,xG、yG分别为基点的横坐标和纵坐标;
选取消息摘要长度为256比特的密码杂凑算法Hash()为密码散列函数SM3;
(1b)证书颁发机构CA用随机数发生器产生第一随机数dCA∈[1,n-1]作为私钥,并将私钥dCA与基点G在椭圆曲线E上的乘积PCA作为公钥:PCA=dCA·G;
(2)申请证书的用户usr用随机数发生器产生随机数x∈[1,n-1]作为临时私钥,用临时私钥x与基点G在椭圆曲线E上的乘积X作为临时公钥:X=x·G,并将自己的身份标识IDA和临时公钥X发送给证书颁发机构CA;
(3)证书颁发机构CA生成隐式证书cert和签名s:
(3a)证书颁发机构CA用随机数发生器产生第二随机数k∈[1,n-1],并计算公钥重建数据:V=X+k·G=(x1,y1),其中x1和y1为公钥重建数据V的横坐标和纵坐标;
(3b)证书颁发机构CA根据公钥重建数据V生成可信的隐式证书:cert={V,meta},其中,meta为包含用户身份信息、CA系统信息和待签名消息的元数据,即meta=ZA||M;ZA=Hash(ENTLA||IDA||a||b||xG||yG||xCA||yCA),其中ENTLA是由用户usr的身份标识IDA的长度转换而成的两个字节,a为椭圆曲线方程E中变量x的系数,b为椭圆曲线方程E中的常数项,xG,yG分别为基点G的横坐标和纵坐标,xCA,yCA分别为系统公钥PCA的横坐标和纵坐标;M为待签名的消息;
(3c)证书颁发机构CA使用密码散列函数SM3计算隐式证书cert和公钥PCA连接值的哈希值h:h=Hash(cert,PCA),并利用私钥dCA通过SM2数字签名算法得到对隐式证书cert的签名:s=(1+dCA)-1(k-r·dCA)mod n,其中r=(h+x1)mod n,mod n表示模n运算;
(3d)将隐式证书cert和签名s发送给申请证书的用户usr;
(4)申请证书的用户usr生成完整公钥U,并对该完整公钥U和签名s进行验证,获得完整公私钥对:
(4a)申请证书的用户usr使用密码散列函数SM3重新计算隐式证书cert与公钥PCA相连接的哈希值:h=Hash(cert,PCA);
(4b)申请证书的用户usr根据其计算的哈希值h重新计算中间值:r=(h+x1)mod n,并检验r∈[1,n-1],s∈[1,n-1]是否成立:若成立,则用户usr计算完整私钥:u=(x+s)mod n,否则,退出验证过程,其中x是usr的临时私钥;
(4c)申请证书的用户usr根据完整私钥u生成完整公钥:U=u·G,并计算公钥重建数据V与公钥PCA在椭圆曲线E上t倍的差值:Q=V-t·PCA,其中t=(r+s)mod n;
(4d)申请证书的用户usr验证U与Q是否相等:若相等,则将(u,U)作为自己的完整公私钥对参数并保存,结束验证,否则,验证失败。
2.根据权利要求1所述的方法,其特征在于,所述(4d)中申请证书的用户usr验证U与Q相等的真实性,过程如下:
(4d1)将(4b)中u=(x+s)mod n带入到(4c)的U=u·G公式中,得到U=(x+s)G;
(4d2)将(4d1)的式子去括号后加上t与PCA在椭圆曲线E上的乘积t·PCA,再减去t·PCA得到U=x·G+(s·G+t·PCA)-t·PCA;
(4d3)将SM2数字签名算法的验证步骤:k·G=s·G+t·PCA带入到(4d2)得到的公式,得到U=X+k·G-t·PCA;
(4d4)将(3a)中V=X+k·G带入到(4d3)得到的公式中,得到U=V-t·PCA;
(4d5)将(4c)中Q=V-t·PCA带入到(4d4)得到的公式中,得到U=Q,即得到用户完整公钥U与通过公钥重建数据V与公钥PCA的t倍差值Q相等的结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011259622.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于深度学习的甲状腺癌病理图像分类方法
- 下一篇:一种金鲳鱼饲料及其制备方法