预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)国家知识产权局(12)发明专利申请(10)申请公布号CN115765986A(43)申请公布日2023.03.07(21)申请号202211322934.8(22)申请日2022.10.27(71)申请人武汉大学地址430072湖北省武汉市武昌区珞珈山武汉大学(72)发明人韦薇罗敏包嘉斌彭聪冯琦何德彪(74)专利代理机构武汉科皓知识产权代理事务所(特殊普通合伙)42222专利代理师肖明洲(51)Int.Cl.H04L9/08(2006.01)权利要求书2页说明书5页附图1页(54)发明名称基于SM9数字签名算法的环签密生成方法、系统及设备(57)摘要本发明公开了一种基于SM9数字签名算法的环签密生成方法、系统及设备,本发明利用双线性映射的双线性、非退化性与可计算性特性,采用SM9数字签名算法与哈希函数构造了一种环签密方案;本发明通过对SM9数字签名算法进行优化,具有更低的计算开销和通信开销,特别适用于能量和带宽受限的通信环境,弥补了SM9数字签名算法在环签密方案中的空缺。CN115765986ACN115765986A权利要求书1/2页1.一种基于SM9数字签名算法的环签密生成方法,其特征在于,包括以下步骤:步骤1:输入安全参数λ,密钥生成中心KGC选择两个阶为q的加法循环群(G1,+),(G2,+)以及一个阶同样为q的乘法群(GT,·),q为一个大素数;选择三个哈希函数H1(·),H2(·),n+1**H3(·);H1:H2:H3:{G1}×GT×{0,1}→{0,1};是由1,2,,....,q‑1组成的整数集合;密钥生成中心KGC随机选择整数并计算:g=e(P1,sP2);其中,P1和P2分别表示群G1和G2的生成元;e()是从G1×G2到GT的双线性对映射;GT是阶为q的乘法循环群;密钥生成中心KGC公布系统参数并秘密保存自己的主私钥msk=s;步骤2:当标识为IDi的用户申请获取私钥时,密钥生成中心KGC为用户IDi生成签名私钥‑1Si=si·P1和解密私钥Di=si·P2;其中,si=s·(vi+s),vi=H1(IDi);密钥生成中心KGC将签名私钥Si和解密私钥Di发送给用户IDi;步骤3:给定一个接收者的身份IDη以及一个身份集合Un={ID1,ID2,…,IDn},发送者利用其签名私钥Sπ对消息m进行签密;其中,1≤π≤n;具体包括以下子步骤:步骤3.1:随机选择n+1个整数计算vη=H1(IDη),步骤3.2:对所有的i∈{1,2,...,n}\{π},计算步骤3.3:计算h=H2(w||m||Un),vi=H1(IDi);其中,表示群GT上的幂运算;x||y表示x与y的拼接;步骤3.4:计算其中,modq表示模q运算;步骤3.5:判断;如果lπ=0,则回转执行步骤3.1,重新开始签密流程;否则执行步骤3.6;步骤3.6:计算密文其中,Rπ=lπ·Sπ;步骤3.7:输出环签密σ=(h,R0,R1,...,Rn,C),将(Un,σ)发送给接收者。2.根据权利要求1所述的基于SM9数字签名算法的环签密生成方法,其特征在于,当接收者收到(Un,σ′=(h′,R′0,R′1,…,R′n,C′)),解密获得消息明文m′并验证环签名;具体实现包括以下步骤:步骤4.1:计算其中,w′0=e(R′0,Dη);步骤4.2:对所有i∈1,2,…,n,计算v′i=H1(IDi),步骤4.3:验证等式h′=H2(w′||m′||Un)是否成立;若等式成立,则环签名通过验证,m′即为消息明文;否则,环签名验证不通过。3.一种基于SM9数字签名算法的环签密生成系统,其特征在于,包括以下模块:模块1,用于输入安全参数λ,密钥生成中心KGC选择两个阶为q的加法循环群(G1,+),(G2,+)以及一个阶同样为q的乘法群(GT,·),q为一个大素数;选择三个哈希函数H1(·),H2n+1*(·),H3(·);H1:H2:H3:{G1}×GT×{0,1}→{0,2CN115765986A权利要求书2/2页1}*;是由1,2,,....,q‑1组成的整数集合;密钥生成中心KGC随机选择整数并计算:g=e(P1,sP2);其中,P1和P2分别表示群G1和G2的生成元;e()是从G1×G2到GT的双线性对映射;GT是阶为q的乘法循环群;密钥生成中心KGC公布系统参数并秘密保存自己的主私钥msk=s;模块2,用于当ID为IDi的用户申请获取私钥时,密钥生成中心KGC为用户IDi生成签名私‑1钥Si=si·P1和解密私钥Di=si·P2;其中,si=s·(vi+s),vi=H1(IDi);密钥生成中心KGC将签名私钥Si和解密私钥Di发送给用户IDi;模块3,用于给定一个接收者的身份IDη以及一个身份集合Un={ID1,ID2,…,IDn},发