[发明专利]一种SM9数字签名的白盒实现方法与装置有效
申请号: | 201810445236.4 | 申请日: | 2018-05-10 |
公开(公告)号: | CN108667619B | 公开(公告)日: | 2020-11-24 |
发明(设计)人: | 何德彪;张语荻;张宇波;陈泌文 | 申请(专利权)人: | 武汉大学 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/08 |
代理公司: | 湖北武汉永嘉专利代理有限公司 42102 | 代理人: | 唐万荣;李丹 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sm9 数字签名 实现 方法 装置 | ||
1.一种SM9数字签名的白盒实现方法,其特征在于,包括以下步骤:
1)生成白盒密钥
1.1)由密钥生成中心KGC产生身份为IDA的用户User的签名私钥DA,DA=[t2]P1;设定第一个临时数t1=H1(IDA||hid,n)+ks,第二个临时数其中,ks是系统主私钥;n为循环群和的阶;P1、P2分别是群的生成元;hid为签名私钥时用户在产生数字签名时用到的一个秘密值;H1(·)为由{0,1}*到的密码杂凑函数;
1.2)用户User从{1,2,…,n-1}选择k个均匀分布的随机数{x1,x2,…,xk},并计算元组和元组{X1=[x1]DA,X2=[x2]DA,…,Xk=[xk]DA};其中,k≥256;
1.3)用户User从{1,2,…,n-1}选择256个均匀分布的随机数{y1,y2,…,yi,…,y256},并计算元组和元组{Y1=-DA+[y1]DA,Y2=-[2]DA+[y2]DA,…,Y256=-[2255]DA+[y256]DA},其中元组{β1,β2,…,β256}作为公开参数被公开;
1.4)删除随机数组{x1,x2,…,xk}和{y1,y2,…,yi,…,y256},保留元组{α1,α2,…,αk}、{X1,X2,…,Xk}和{Y1,Y2,…,Y256}为白盒密钥,公开元组{β1,β2,…,β256};
2)生成白盒签名
身份为IDA的用户User生成消息M对应白盒签名的步骤如下:
2.1)生成一个k比特的随机串r,设其二进制表示为rk…r2r1,并计算和
2.2)计算h=H2(M||w′,n),设其二进制表示为h256h255…h2h1,计算令S′=S1+S2;H2(·)为由{0,1}*到的密码杂凑函数;
2.3)输出签名(h,S′),即为消息M对应白盒签名;
3)验证白盒签名
验证者Verifier收到消息M以及对应的白盒签名(h,S′)后执行如下验证步骤:
3.1)检查h是否属于集合{1,2,…,n-1}中,如果不是则验证不通过,否则检查S′是否属于群中,如果不是则验证不通过,否则进入下一步;
3.2)将h二进制表示为h256h255…h2h1,计算
3.3)计算g=e(P1,Ppub-s),t=gh;Ppub-s为系统主公钥;
3.4)计算h1=H1(IDA||hid,n),P=[h1]P2+Ppub-s;
3.5)计算u2=e(S′,P),计算w=u·t;
3.6)计算h2=H2(M||w,n),若h2=h则验证通过。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810445236.4/1.html,转载请声明来源钻瓜专利网。