System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及信息安全,具体地说是一种基于身份的椭圆曲线多重盲签名方法、系统、设备及介质。
技术介绍
1、随着经济数字化转型进程的不断加快,特别是5g、人工智能、物联网等新技术的快速普及应用,数据交换越来越频繁,数据安全的重要性也愈发凸显。椭圆曲线加密算法基于椭圆曲线的困难性问题或双线性映射,实现加密、解密和签名等操作,是现代密码学中的一种重要工具,相较于rsa加密具有更高的计算效率。
2、在电子商务、电子投票、数字版权保护等需要共同签署或全体签名的场景中,多重盲签名技术被广泛应用。这种签名技术允许一个消息被多个签名者进行盲签名,并且每个签名者只能看到自己签名的消息,而无法看到其他签名者的签名内容和消息,可以保护签名者的隐私和数据安全。然而多重盲签名在兼顾签名过程安全性和匿名性的同时,也存在着一些问题,主要体现在随着签名方数量的增加,会增加密钥分发的复杂性,同时也会导致签名计算量和签名长度的增长,导致签名效率下降。
3、故如何克服因签名方数量增加导致的多重盲签名效率下降,实现多重签名过程中匿名性和安全性的平衡是目前亟待解决的技术问题。
技术实现思路
1、本专利技术的技术任务是提供一种基于身份的椭圆曲线多重盲签名方法、系统、设备及介质,来解决如何克服因签名方数量增加导致的多重盲签名效率下降,实现多重签名过程中匿名性和安全性的平衡的问题。
2、本专利技术的技术任务是按以下方式实现的,一种基于身份的椭圆曲线多重盲签名方法,该方法具体如下:
4、盲化阶段:各个签名方随机选取秘密值,计算得到椭圆曲线上对应的秘密点,签名请求方对签名方的身份公钥和秘密点进行聚合,并以聚合值对签名信息进行盲化;
5、签名阶段:各个签名方对盲化信息进行身份私钥签名,并二次加密;且签名请求方对各个签名方的私钥签名及其二次加密结果进行聚合签名;
6、解盲及验证阶段:签名请求方对盲签结果进行解盲,解盲后的信息与盲化阶段得到的聚合值共同组成待签名信息的签名结果。
7、作为优选,初始化阶段具体如下:
8、密钥生成中心kgc随机选取一个大素数q,选取定义在有限域f(q)上的一条安全椭圆曲线e,g是椭圆曲线e上一个阶为素数n的基点;
9、随机选取一个整数d,公布基点g,秘密保存私钥d;其中,1≤d≤n-1;
10、公布一个长度为整数的密码哈希函数h: {0, 1}*→zq;
11、公布签名方pi的身份idi;其中,i=1, 2, ……, k,即共k个签名方;
12、为签名方pi生成基于身份idi的私钥pski=d·h(idi)(mod n),利用身份idi的私钥pski为签名方计算身份公钥qi=pski·g,公布签名方pi的身份公钥qi,并通过安全的秘密信道将身份私钥pski发送给签名方pi。
13、更优地,盲化阶段具体如下:
14、签名方pi随机选取一个数ri作为秘密值,将ri与基点g做乘法运算进行加密得到椭圆曲线上的秘密点ri,即ri=ri·g,并将秘密点ri发送给签名请求方p0;其中,i=1, 2, ……,k;
15、签名请求方p0随机选取两个数α和β,对所有签名方pi的身份公钥qi和秘密点ri进行聚合计算,得到所有签名方身份公钥和秘密点的聚合值,公式为t=+=(x, y),再通过t=x+h(m) (mod n)得到第一部分签名t;
16、签名请求方p0利用α,β,t对待签名信息m进行盲化,得到盲化信息m1=α-1·(t-β);
17、签名请求方p0将 (m1, t) 广播给各个签名方。
18、更优地,签名阶段各个签名方对盲化信息进行基于身份私钥和秘密值的个人签名,并利用身份私钥对签名进行加密,签名请求方收集签名方的个人签名及加密结果,并进行聚合签名。
19、更优地,签名阶段具体如下:
20、签名方pi,在接收到(m1, t)后,对盲化信息m1进行基于身份私钥和秘密值的个人签名,得到si=(1+pski)-1·(ri-m1·pski);并利用身份私钥对si加密得到ci=si·pski,发送(si, ci)给签名请求方p0;其中,i=1, 2, ……, k;
21、签名请求方p0对si进行有效性验证,即计算(si+m1)·qi+si·g=ri是否成立,并判断得到的个人签名的有效性,将无效签名退回对应的签名方,进行重新签名;其中,i=1, 2,……, k;
22、签名请求方p0 对si,ci进行聚合签名,得到盲签结果s,c;其中,s=;c=;i=1, 2, ……, k。
23、更优地,解盲及验证阶段具体如下:
24、签名请求方p0对盲签结果s,c进行解盲,得到第二部分和第三部分签名s, c;其中,s=α·s,c=α·c;
25、 (t, s, c) 是待签名信息m的签名,任何人都能基于公开的信息,通过计算(s+c)·g+t·=(x, y),判断t=x+h(m) (mod n)是否成立,验证本签名的有效性。
26、一种基于身份的椭圆曲线多重盲签名系统,该系统用于实现上述的基于身份的椭圆曲线多重盲签名方法;该系统包括:
27、初始化模块,用于通过密钥生成中心基于椭圆曲线算法生成基点和私钥,公布一个密码哈希函数,分别为每一个签名方生成对应的身份公钥和身份私钥,并通过一个安全的秘密信道将身份私钥发送给相应的签名方;
28、盲化模块,用于各个签名方随机选取秘密值,计算得到椭圆曲线上对应的秘密点,签名请求方对签名方的身份公钥和秘密点进行聚合,并以聚合值对签名信息进行盲化;
29、签名模块,用于各个签名方对盲化信息进行身份私钥签名,并二次加密;且签名请求方对各个签名方的私钥签名及其二次加密结果进行聚合签名;
30、解盲及验证模块,用于签名请求方对盲签结果进行解盲,解盲后的信息与盲化阶段得到的聚合值共同组成待签名信息的签名结果。
31、作为优选,初始化模块包括:
32、选取子模块一,用于密钥生成中心kgc随机选取一个大素数q,选取定义在有限域f(q)上的一条安全椭圆曲线e,g是椭圆曲线e上一个阶为素数n的基点;
33、选取子模块二,用于随机选取一个整数d,公布基点g,秘密保存私钥d;其中,1≤d≤n-1;
34、公布子模块一,用于公布一个长度为整数的密码哈希函数h: {0, 1}*→zq;
35、公布子模块二,用于公布签名方pi的身份idi;其中,i=1, 2, ……, k,即共k个签名方;
36、私钥生成子模块,用于为签名方pi生成基于身份idi的私钥pski=本文档来自技高网...
【技术保护点】
1.一种基于身份的椭圆曲线多重盲签名方法,其特征在于,该方法具体如下:
2.根据权利要求1所述的基于身份的椭圆曲线多重盲签名方法,其特征在于,初始化阶段具体如下:
3.根据权利要求1或2所述的基于身份的椭圆曲线多重盲签名方法,其特征在于,盲化阶段具体如下:
4.根据权利要求3所述的基于身份的椭圆曲线多重盲签名方法,其特征在于,签名阶段各个签名方对盲化信息进行基于身份私钥和秘密值的个人签名,并利用身份私钥对签名进行加密,签名请求方收集签名方的个人签名及加密结果,并进行聚合签名。
5.根据权利要求4所述的基于身份的椭圆曲线多重盲签名方法,其特征在于,签名阶段具体如下:
6.根据权利要求5所述的基于身份的椭圆曲线多重盲签名方法,其特征在于,解盲及验证阶段具体如下:
7.一种基于身份的椭圆曲线多重盲签名系统,其特征在于,该系统用于实现权利要求1-6中任一项所述的基于身份的椭圆曲线多重盲签名方法;该系统包括:
8.根据权利要求7所述的基于身份的椭圆曲线多重盲签名系统,其特征在于,初始化模块包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序可被处理器执行以实现如权利要求1至6中任一项所述的基于身份的椭圆曲线多重盲签名方法。
...【技术特征摘要】
1.一种基于身份的椭圆曲线多重盲签名方法,其特征在于,该方法具体如下:
2.根据权利要求1所述的基于身份的椭圆曲线多重盲签名方法,其特征在于,初始化阶段具体如下:
3.根据权利要求1或2所述的基于身份的椭圆曲线多重盲签名方法,其特征在于,盲化阶段具体如下:
4.根据权利要求3所述的基于身份的椭圆曲线多重盲签名方法,其特征在于,签名阶段各个签名方对盲化信息进行基于身份私钥和秘密值的个人签名,并利用身份私钥对签名进行加密,签名请求方收集签名方的个人签名及加密结果,并进行聚合签名。
5.根据权利要求4所述的基于身份的椭圆曲线多重盲签名方法,其特征在于,签名阶段具体如下:
...【专利技术属性】
技术研发人员:张峰,林一伟,李照川,王冠军,常靓,张悦,苏航,林浩,
申请(专利权)人:浪潮软件科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。