[发明专利]基于SM2数字签名算法的群签名标识签发方法有效
申请号: | 201910036016.0 | 申请日: | 2019-01-15 |
公开(公告)号: | CN109600233B | 公开(公告)日: | 2021-06-08 |
发明(设计)人: | 马文平;刘威;刘小雪 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/30;H04L9/08 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 王品华;朱红星 |
地址: | 710071 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 sm2 数字签名 算法 签名 标识 签发 方法 | ||
1.一种基于SM2数字签名算法的群签名标识签发方法,其特征在于,包括如下:
(1)参数初始化:
设Fq是阶为q的有限域;选取椭圆曲线方程E为y2=x3+ax+b,其中a、b∈Fq;设有限域Fq上椭圆曲线方程E的所有的有理点组成的集合为E(Fq);设E上的阶为n的基点G=(xG,yG),其中xG,yG为基点的坐标;选取消息长度为v比特的密码杂凑算法Hv();选取安全散列函数H:{0,1}→ZG,其中ZG为基点G的整数值,选取对称加密算法E();
(2)密钥生成中心KGC随机选取作为群私钥,其中是阶为q的整数串,并将群私钥SKGM和基点G的乘积作为群公钥:PKGM=SKGMG;
(3)群成员A加入群:
(3.1)群管理员GM为群成员A生成公私钥对(SKA,PKA),并通过安全信道发送给群成员A,群成员A将身份和公钥信息(IDA,PKA)通过安全信道发送给群管理员GM,其中IDA为群成员A真实身份,PKA为群成员A的公钥,SKA为群成员A的私钥;群管理员GM将群成员A的身份信息(IDA,PKA)存储到群成员信息列表中,并计算群签名中间量EA,再通过安全信道将EA发送给群成员A;群管理员GM计算群签名中间量EA,是由群管理员GM选取群签名中间量随机数利用如下公式计算群签名中间量EA:
EA=(SKGM+PKA)·γ-1,
其中,SKGM为群公钥,PKA为群成员A的公钥;
(3.2)群管理员GM先选择多项式其中,t为群成员的总数,xi是第i个群成员的假名,θ为群共享对称秘钥,(C0,C1,…,Ct-1)为多项式的参数;再计算椭圆曲线上基点G的ω倍点W=ωG,及群成员A的假名xA,并将该W点和该多项式参数在群内公开;群管理员GM先选择随机数再利用如下公式计算群成员A的假名xA:
xA=H(IDA||ωPKA)
其中,H()为散列函数,IDA为群成员A的真实身份,PKA为群成员A的公钥;
(3.3)群成员A根据接收的参数(C0,C1,…,Ct-1),计算出群共享对称秘钥θ;其实现如下:
(3.3a)群成员A先根据群管理员公开的椭圆曲线上基点G的ω倍点W和自己的私钥SKA,计算自己的假名xA′=H(IDA||WSKA);
(3.3b)群成员A通过如下公式计算出群共享对称秘钥θ:
其中,t是群中的成员总数,xi是第i个群成员的假名,(C0,…,C1,Ct-1)为多项式的参数;
(4)群成员A对消息M进行签名:
(4.1)群成员A发送对称密文Eθ(IDA,PKA,T,T)给群管理员GM,其中PKA,T为群成员A的临时公钥,T为当前时间的时间戳,Eθ()为对称加密算法;
(4.2)群管理员GM接收到密文Eθ(IDA,PKA,T,T)后使用秘钥θ解密,若解密成功且时间戳T有效,则可得到成员A的身份信息(IDA,PKA,T,T),执行步骤(4.3),否则,终止本次签名;
(4.3)群成员A产生随机数k∈[1,n-1],其中n为基点G的阶数,并计算椭圆曲线上的点β=(x1,y1)=[k]G,其中x1,y1为所求点的横纵坐标;
(4.4)群成员A选取三个随机数并利用待签名消息M,群公钥PKGM以及群成员A的临时私钥SKA,T,通过概率算法输出群签名标识为(c,s1,s2,s3,TA,T,PKA,T,r,s),其中,c是杂凑函数作用于临时公钥PKA,T和群公钥PKGM的杂凑值,s1是第一随机数r1的盲化值,s2是第二随机数r2的盲化值,s3是第三随机数r3和临时私钥SKA,T的盲化值,TA,T为成员私钥SKA,T对签名中间量EA的加密值,r为由椭圆曲线点的横坐标x1求出的余数值,s为群公钥PKGM对随机数r1,r2,r3的盲化值;
利用如下公式,计算杂凑函数作用于临时公钥PKA,T和群公钥PKGM的杂凑值c:
c=H(PKA,T||PKGM||EA)
其中,H()为安全散列函数,PKA,T为群成员A的临时公钥,PKGM为群公钥,EA为签名中间量;
(5)对群签名标识(c,s1,s2,s3,TA,T,PKA,T,r,s)进行验证:
(5.1)验证者D先检验r∈[1,n-1],s∈[1,n-1]是否成立,若成立,则执行(5.2),否则,群签名非法,执行步骤(6);
(5.2)验证者D再依次计算待签名消息M的杂凑值e′和验签中间量t′,并计算椭圆曲线点(x′1,y′1)=(s1+s3)-1(s-t′),和验签值R=(e′+x′1)mod n,其中x′1,y′1为所求椭圆曲线点的横纵坐标,mod n表示一个整数除以n的求余运算;杂凑值e′和验签中间量t′按如下公式进行:
t′=c(PKGM+GPKA,T)+s1TA,T-s2GPKGM-s2G+cPKA,T,
e′=Hv(ZA||M),
其中,c为杂凑函数作用于临时公钥PKA,T和群公钥PKGM的杂凑值,PKGM为群公钥,G为椭圆曲线的基点,PKA,T为群成员A的临时私钥,s1为第一随机数r1的盲化值,s2为第二随机数r2的盲化值,PKGM为群公钥,Hv()为密码杂凑函数,v是消息摘要长度,ZA为群成员A的杂凑值;
(5.3)验证者D验证R=r是否成立,若成立,则群签名合法,结束群签名过程,否则,群签名非法,执行(6);
(6)群管理员GM从群签名中提取出成员私钥SKA,T对签名中间量EA的加密值TA,T,使用群私钥SKGM和群成员A的临时公钥PKA,T计算出签名者的公钥PKA,再通过存储在成员信息列表中的群成员身份信息(IDA,PKA)追踪到签名的群成员真实身份IDA,执行(7);
(7)群管理员GM选择一个新的群共享对称秘钥并生成新的多项式f(x)′,计算除追踪到签名的群成员真实身份IDA以外的其余t-1个群成员的假名xi,并将新的多项式参数(C0′,C1′,…Ct-1′)公开,使得被追踪到身份为IDA的群成员将无法通过该参数计算出新的群共享对称秘钥,因而无法进行签名,此时该群成员被撤销。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910036016.0/1.html,转载请声明来源钻瓜专利网。