一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于SM2算法的可追踪环签名方法、系统、设备及介质与流程

2023-02-01 20:50:49 来源:中国专利 TAG:

基于sm2算法的可追踪环签名方法、系统、设备及介质
技术领域
1.本技术涉及信息安全技术领域,更具体地说,涉及基于sm2算法的可追踪环签名方法、系统、设备及介质。


背景技术:

2.传统数字签名可保证数字资源的真实性、有效性及不可抵赖性,但无法实现签名人的匿名性。2001年,rivest等提出了环签名的概念。在环签名中,签名生成只涉及签名人私钥及其他所有成员的公钥,而签名验证则仅平等地依赖全体成员的公钥。环签名使验证者相信签名源自某个群体但又不知具体签名人,实现了强匿名性,可有力地支撑电子货币、线上选举、数字金融等热点应用。
3.但是环签名的强匿名性阻碍了监管,也无法根据环签名判断签名者的身份,为不法分子提供了可乘之机。现今已有多种不同形式和不同性质的可追踪环签名算法被提出,为签名者的身份追踪提供了一个方法。但大多都是针对国外算法的量身定制,缺少对具体算法的自主控制,比如无法基于sm2算法对数据进行环签名。
4.综上所述,如何基于sm2算法对数据进行环签名是目前本领域技术人员亟待解决的问题。


技术实现要素:

5.本技术的目的是提供一种基于sm2算法的可追踪环签名方法,其能在一定程度上解决如何基于sm2算法对数据进行环签名的技术问题。本技术还提供了一种基于sm2算法的可追踪环签名系统、设备及计算机可读存储介质。
6.为了实现上述目的,本技术提供如下技术方案:
7.一种基于sm2算法的可追踪环签名方法,其特征在于,应用于任一目标签名方,包括:
8.获取基于sm2算法确定的第一密码杂凑函数、第二密码杂凑函数、第三密码杂凑函数、椭圆曲线群的生成元、所述椭圆曲线群的阶数、整数集合;
9.获取待签名的目标消息;
10.获取预设数量个其他签名方的公钥,并与所述目标签名方的公钥组成公钥列表;
11.基于所述公钥列表生成所述目标消息的标签,基于所述第一密码杂凑函数及所述标签生成消息摘要;
12.基于所述目标消息、所述标签、所述目标签名方的公钥、所述第二密码杂凑函数生成第一中间辅助参数及第二中间辅助参数;
13.基于所述整数集合生成与所述目标签名方及所述其他签名方一一对应的随机数;
14.基于目标签名方的私钥、所述阶数、所述公钥列表、所述标签、所述消息摘要、所述随机数、所述第一中间辅助参数、所述第二中间辅助参数、所述第三密码杂凑函数、所述生成元生成签名值和目标数值;
15.将所述第二中间辅助参数、所述签名值、所述目标数值及所有的所述其他签名方对应的所述随机数作为所述目标消息的可追踪环签名。
16.优选的,所述基于目标签名方的私钥、所述阶数、所述公钥列表、所述标签、所述消息摘要、所述随机数、所述第一中间辅助参数、所述第二中间辅助参数、所述第三密码杂凑函数、所述生成元生成签名值和目标数值,包括:
17.基于所述第一中间辅助参数及所述第二中间辅助参数生成与所述其他签名方一一对应的第一数值;
18.基于所述目标签名方对应的所述随机数、所述第三密码杂凑函数、所述标签、所述第一中间辅助参数、所述第二中间辅助参数、所述生成元、所述消息摘要生成第二数值;
19.基于所述其他签名方对应的所述随机数、所述生成元、所述第二数值、所述其他签名方的公钥、所述消息摘要、所述第三密码杂凑函数生成所述签名值及第三数值;
20.基于所述目标签名方的私钥、所述目标签名方对应的所述随机数、所述第三数值及所述阶数生成所述目标数值。
21.优选的,所述基于所述公钥列表生成所述目标消息的标签,基于所述第一密码杂凑函数及所述标签生成消息摘要,包括:
22.通过第一运算公式,基于所述公钥列表生成所述目标消息的所述标签,基于所述第一密码杂凑函数及所述标签生成所述消息摘要;
23.所述第一运算公式包括:
24.tag=(issue,l);w=h1(tag);
25.其中,tag表示所述标签;issue表示预设数据号;l表示所述公钥列表,l={p1,p2,...,pi,...,pn},pi表示所述目标签名方的公钥;pj表示第j个所述其他签名方的公钥,j≠i;n表示所述公钥列表中的公钥总数量;h1表示所述第一密码杂凑函数;w表示所述消息摘要;
26.所述基于所述目标消息、所述标签、所述目标签名方的公钥、所述第二密码杂凑函数生成第一中间辅助参数及第二中间辅助参数,包括:
27.通过第二运算公式,基于所述目标消息、所述标签、所述目标签名方的公钥、所述第二密码杂凑函数生成所述第一中间辅助参数及所述第二中间辅助参数;
28.所述第二运算公式包括:
29.a0=h2(tag,m);a1=(σi/a0)
1/i
;σi=di·
w;
30.其中,a0表示所述第一中间辅助参数;h2表示所述第二密码杂凑函数;m表示所述目标消息;a1表示所述第二中间辅助参数;i表示所述目标签名方的标号;di表示所述目标签名方的私钥。
31.优选的,所述基于所述第一中间辅助参数及所述第二中间辅助参数生成与所述其他签名方一一对应的第一数值,包括:
32.通过第三运算公式,基于所述第一中间辅助参数及所述第二中间辅助参数生成与所述其他签名方一一对应的所述第一数值;
33.所述第三运算公式包括:
34.σj=a0a
1j
∈g,j=1,...,i-1,i 1,...,n;
35.其中,σj表示与第j个所述其他签名方对应的所述第一数值;g表示所述生成元;
36.所述基于所述目标签名方对应的所述随机数、所述第三密码杂凑函数、所述标签、所述第一中间辅助参数、所述第二中间辅助参数、所述生成元、所述消息摘要生成第二数值,包括:
37.通过第四运算公式,基于所述目标签名方对应的所述随机数、所述第三密码杂凑函数、所述标签、所述第一中间辅助参数、所述第二中间辅助参数、所述生成元、所述消息摘要生成所述第二数值;
38.所述第四运算公式包括:
39.c
i 1
=h3(tag,a0,a1,ki·
g,ki·
w);
40.其中,c
i 1
表示所述第二数值;h3表示所述第三密码杂凑函数;ki表示所述目标签名方对应的所述随机数;
41.所述基于所述其他签名方对应的所述随机数、所述生成元、所述第二数值、所述其他签名方的公钥、所述消息摘要、所述第三密码杂凑函数生成所述签名值及第三数值,包括:
42.通过第五运算公式,基于所述其他签名方对应的所述随机数、所述生成元、所述第二数值、所述其他签名方的公钥、所述消息摘要、所述第三密码杂凑函数生成所述签名值及所述第三数值;
43.所述第五运算公式包括:
44.c
j 1
=h3(tag,a0,a1,tj,yj),j=i 1,...,n,1,...,i-1;
45.tj=sj·
g (sj cj)
·
pj;yj=sj·
w (sj cj)
·
σi;
46.其中,cn的值为所述签名值;sj表示第j个所述其他签名方对应的所述随机数,j=1,...,i-1,i 1,...,n;ci表示所述第三数值;
47.所述基于所述目标签名方的私钥、所述目标签名方对应的所述随机数、所述第三数值及所述阶数生成所述目标数值,包括:
48.通过第六运算公式,基于所述目标签名方的私钥、所述目标签名方对应的所述随机数、所述第三数值及所述阶数生成所述目标数值;
49.所述第六运算公式包括:
50.si=((1 di)-1
·
(k
i-ci·di
))mod q;
51.其中,si表示所述目标数值;di表示所述目标签名方的私钥;q表示所述阶数。
52.一种基于sm2算法的可追踪环签名方法,应用于签名验证方,包括:
53.获取基于sm2算法确定的第一密码杂凑函数、第二密码杂凑函数、第三密码杂凑函数、椭圆曲线群的生成元、所述椭圆曲线群的阶数、整数集合;
54.获取目标签名方发送的目标消息、标签、公钥列表、可追踪环签名,所述可追踪环签名包括第二中间辅助参数、签名值、目标数值及所有的其他签名方对应的随机数;
55.验证所述签名值、所述其他签名方对应的所述随机数、所述第一数值是否属于所述整数集合;
56.若所述签名值、所述其他签名方对应的所述随机数、所述第一数值属于所述整数集合,则基于所述目标消息、所述标签、所述第二中间辅助参数、所述第二密码杂凑函数生成第一中间辅助参数及校验值,基于所述第一密码杂凑函数及所述标签生成消息摘要;
57.基于所述第一中间辅助参数、所述第二中间辅助参数、所述校验值、所述公钥列
表、所述消息摘要、所述第三密码杂凑函数、所述生成元、所述阶数验证所述签名值是否正确;
58.若所述签名值正确,则判定所述可追踪环签名为合法签名;
59.其中,所述公钥列表包括预设数量个其他签名方的公钥及所述目标签名方的公钥;所述标签基于所述公钥列表生成;所述目标签名方及所述其他签名方一一对应的随机数基于所述整数集合生成;所述签名值和所述目标数值基于所述目标签名方的私钥、所述阶数、所述公钥列表、所述标签、所述消息摘要、所述随机数、所述第一中间辅助参数、所述第二中间辅助参数、所述第三密码杂凑函数、所述生成元生成。
60.优选的,所述基于所述第一中间辅助参数、所述第二中间辅助参数、所述校验值、所述公钥列表、所述消息摘要、所述第三密码杂凑函数、所述生成元、所述阶数验证所述签名值是否正确,包括:
61.判断目标等式是否成立,若所述目标等式成立,则基于所述第一中间辅助参数、所述第二中间辅助参数、所述校验值、所述公钥列表、所述消息摘要、所述第三密码杂凑函数、所述生成元、所述阶数判定所述签名值正确;若所述目标等式不成立,则基于所述第一中间辅助参数、所述第二中间辅助参数、所述校验值、所述公钥列表、所述消息摘要、所述第三密码杂凑函数、所述生成元、所述阶数判定所述签名值不正确;
62.所述目标等式包括:
63.c1=c
n 1

64.其中,c
j 1
=h3(tag,a0,a1,tj,yj),tj=sj·
g (sj cj)
·
pj,yj=sj·
w (sj cj)
·
σi,i=1,2,...,n;w=h1(tag);a0=h2(tag,m),σi=a0a
1i
,i=1,2,...,n;c1表示所述签名值;h3表示所述第三密码杂凑函数;tag表示所述标签,tag=(issue,l),issue表示预设数据号;l表示所述公钥列表,l={p1,p2,...,pi,...,pn},pi表示所述目标签名方的公钥;pj表示第j个所述其他签名方的公钥,j≠i;n表示所述公钥列表中的公钥总数量;a0表示所述第一中间辅助参数;a1表示所述第二中间辅助参数;g表示所述生成元;w表示所述消息摘要;h1表示所述第一密码杂凑函数;h2表示所述第二密码杂凑函数;m表示所述目标消息;sj表示第j个所述其他签名方对应的所述随机数,j=1,...,i-1,i 1,...,n;si表示所述目标数值。
65.一种基于sm2算法的可追踪环签名方法,应用于追踪方,包括:
66.获取基于sm2算法确定的第一密码杂凑函数、第二密码杂凑函数;
67.获取所有签名方的公钥,所述签名方包括目标签名方及其他签名方;
68.获取第一目标消息及对应的第一可追踪环签名;
69.获取与所述第一目标消息同标签的第二目标消息及对应的第二可追踪环签名;
70.基于所述第一密码杂凑函数计算所述标签的消息摘要;
71.基于所述第一目标消息、所述标签、所述第一可追踪环签名中的第二中间辅助参数、所述第二密码杂凑函数生成各个所述签名方对应的第一类校验值;
72.基于所述第二目标消息、所述标签、所述第二可追踪环签名中的第二中间辅助参数、所述第二密码杂凑函数生成各个所述签名方对应的第二类校验值;
73.对于每个所述签名方,若所述签名方对应的所述第一类校验值与所述第二类校验值相等,则将所述签名方的公钥作为追踪结果;
74.其中,目标消息对应的可追踪环签名包括第二中间辅助参数、签名值、目标数值及
所有的所述其他签名方对应的随机数;所述标签基于公钥列表生成,所述公钥列表包括预设数量个所述其他签名方的公钥及所述目标签名方的公钥;所述目标签名方及所述其他签名方一一对应的所述随机数基于所述sm2算法的整数集合生成;所述签名值和所述目标数值基于所述目标签名方的私钥、所述sm2算法的阶数、所述公钥列表、所述标签、所述消息摘要、所述随机数、第一中间辅助参数、所述第二中间辅助参数、所述sm2算法的第三密码杂凑函数、所述sm2算法的生成元生成;所述第一中间辅助参数基于所述目标消息、所述标签、所述第二密码杂凑函数生成。
75.一种基于sm2算法的可追踪环签名系统,应用于任一目标签名方,包括:
76.第一获取模块,用于获取基于sm2算法确定的第一密码杂凑函数、第二密码杂凑函数、第三密码杂凑函数、椭圆曲线群的生成元、所述椭圆曲线群的阶数、整数集合;
77.第二获取模块,用于获取待签名的目标消息;
78.第三获取模块,用于获取预设数量个其他签名方的公钥,并与所述目标签名方的公钥组成公钥列表;
79.第一生成模块,用于基于所述公钥列表生成所述目标消息的标签,基于所述第一密码杂凑函数及所述标签生成消息摘要;
80.第二生成模块,用于基于所述目标消息、所述标签、所述目标签名方的公钥、所述第二密码杂凑函数生成第一中间辅助参数及第二中间辅助参数;
81.第三生成模块,用于基于所述整数集合生成与所述目标签名方及所述其他签名方一一对应的随机数;
82.第四生成模块,用于基于目标签名方的私钥、所述阶数、所述公钥列表、所述标签、所述消息摘要、所述随机数、所述第一中间辅助参数、所述第二中间辅助参数、所述第三密码杂凑函数、所述生成元生成签名值和目标数值;
83.第一处理模块,用于将所述第二中间辅助参数、所述签名值、所述目标数值及所有的所述其他签名方对应的所述随机数作为所述目标消息的可追踪环签名。
84.一种基于sm2算法的可追踪环签名设备,包括:
85.存储器,用于存储计算机程序;
86.处理器,用于执行所述计算机程序时实现如上任一所述基于sm2算法的可追踪环签名方法的步骤。
87.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述基于sm2算法的可追踪环签名方法的步骤。
88.本技术提供的一种基于sm2算法的可追踪环签名方法,应用于任一目标签名方,获取基于sm2算法确定的第一密码杂凑函数、第二密码杂凑函数、第三密码杂凑函数、椭圆曲线群的生成元、椭圆曲线群的阶数、整数集合;获取待签名的目标消息;获取预设数量个其他签名方的公钥,并与目标签名方的公钥组成公钥列表;基于公钥列表生成目标消息的标签,基于第一密码杂凑函数及标签生成消息摘要;基于目标消息、标签、目标签名方的公钥、第二密码杂凑函数生成第一中间辅助参数及第二中间辅助参数;基于整数集合生成与目标签名方及其他签名方一一对应的随机数;基于目标签名方的私钥、阶数、公钥列表、标签、消息摘要、随机数、第一中间辅助参数、第二中间辅助参数、第三密码杂凑函数、生成元生成签名值和目标数值;将第二中间辅助参数、签名值、目标数值及所有的其他签名方对应的随机
数作为目标消息的可追踪环签名。本技术借助sm2算法实现了对目标消息的可追踪环签名,扩充了现有的数据环签名方法。本技术提供的一种基于sm2算法的可追踪环签名系统、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
89.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
90.图1为本技术实施例提供的一种基于sm2算法的可追踪环签名方法的第一流程图;
91.图2为本技术实施例提供的一种基于sm2算法的可追踪环签名方法的数据交互图;
92.图3为本技术实施例提供的一种基于sm2算法的可追踪环签名方法的第二流程图;
93.图4为本技术实施例提供的基于sm2算法的可追踪环签名方法的另一示意图;
94.图5为本技术实施例提供的一种基于sm2算法的可追踪环签名方法的第三流程图;
95.图6为本技术实施例提供的一种基于sm2算法的可追踪环签名系统的结构示意图;
96.图7为本技术实施例提供的一种基于sm2算法的可追踪环签名设备的结构示意图;
97.图8为本技术实施例提供的一种基于sm2算法的可追踪环签名设备的另一结构示意图。
具体实施方式
98.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
99.为便于理解本技术提供的数据环签名方案,现对本技术涉及的sm2算法中的参数释义进行说明:
100.阶为素数q的椭圆曲线群,元素为椭圆曲线上的点。
101.g:循环群的一个生成元。
102.q:循环群的阶。
103.由整数1,2,...,q-1组成的整数集合。
104.mod q:模q运算。
105.h:密码杂凑函数。
106.h1:
107.h2:
108.h3:
109.m:消息值。
110.σ:签名值。
111.||:比特串拼接符号。
112.包含p个元素的素域。
113.#tlist:表示列表中的总元素个数。
114.ui:用户。
115.a0:密码计算中间辅助参数1,无实际意义。
116.a1:密码计算中间辅助参数2,无实际意义。
117.ti:密码计算中间辅助参数3,无实际意义。
118.yi:密码计算中间辅助参数4,无实际意义。
119.issue:数据号,一串由0和1组的字符串。
120.实际应用中,可以给定安全参数1n;选择一个有限域生成椭圆曲线方程y2=x3 ax b mod p,满足方程的点构成一个阿贝尔群随机选取一个生成元g的坐标为(xg,yg),其阶为q;再输出系统参数之后,一个用户ui随机选取作为自身私钥,计算公钥pi=di·
g,输出公私钥对(pi,di)。以生成本技术进行数据环签名时所需的参数。
121.请参阅图1和图2,图1为本技术实施例提供的一种基于sm2算法的可追踪环签名方法的第一流程图,图2为本技术实施例提供的一种基于sm2算法的可追踪环签名方法的数据交互图。
122.本技术实施例提供的一种基于sm2算法的可追踪环签名方法,应用于任一目标签名方,可以包括以下步骤:
123.步骤s101:获取基于sm2算法确定的第一密码杂凑函数、第二密码杂凑函数、第三密码杂凑函数、椭圆曲线群的生成元、椭圆曲线群的阶数、整数集合。
124.实际应用中,可以先确定sm2算法中的相应参数,也即可以先获取基于sm2算法确定的第一密码杂凑函数、第二密码杂凑函数、第三密码杂凑函数、椭圆曲线群的生成元、椭圆曲线群的阶数、整数集合。
125.步骤s102:获取待签名的目标消息。
126.实际应用中,在获取基于sm2算法确定的第一密码杂凑函数、第二密码杂凑函数、第三密码杂凑函数、椭圆曲线群的生成元、椭圆曲线群的阶数、整数集合之后,便可以获取待签名的目标消息,目标消息的类型可以根据实际需要确定,比如目标消息可以为图像数据、音频数据、短信等,本技术在此不做具体限定。
127.步骤s103:获取预设数量个其他签名方的公钥,并与目标签名方的公钥组成公钥列表。
128.实际应用中,在获取待签名的目标消息之后,便可以获取预设数量个其他签名方的公钥,并与目标签名方的公钥组成公钥列表,以便后续基于公钥列表生成目标消息的可追踪环签名。
129.步骤s104:基于公钥列表生成目标消息的标签,基于第一密码杂凑函数及标签生成消息摘要。
130.实际应用中,在获取预设数量个其他签名方的公钥,并与目标签名方的公钥组成
公钥列表之后,便可以基于公钥列表生成目标消息的标签,基于第一密码杂凑函数及标签生成消息摘要,以便后续基于标签及消息摘要生成目标消息的可追踪环签名。
131.具体应用场景中,在基于公钥列表生成目标消息的标签,基于第一密码杂凑函数及标签生成消息摘要的过程中,可以通过第一运算公式,基于公钥列表生成目标消息的标签,基于第一密码杂凑函数及标签生成消息摘要;
132.第一运算公式包括:
133.tag=(issue,l);w=h1(tag);
134.其中,tag表示标签;issue表示预设数据号;l表示公钥列表,l={p1,p2,...,pi,...,pn},pi表示目标签名方的公钥;pj表示第j个其他签名方的公钥,j≠i;n表示公钥列表中的公钥总数量;h1表示第一密码杂凑函数;w表示消息摘要。
135.步骤s105:基于目标消息、标签、目标签名方的公钥、第二密码杂凑函数生成第一中间辅助参数及第二中间辅助参数。
136.实际应用中,在基于公钥列表生成目标消息的标签,基于第一密码杂凑函数及标签生成消息摘要之后,便可以基于目标消息、标签、目标签名方的公钥、第二密码杂凑函数生成第一中间辅助参数及第二中间辅助参数。
137.实际应用中,在基于目标消息、标签、目标签名方的公钥、第二密码杂凑函数生成第一中间辅助参数及第二中间辅助参数的过程中,可以通过第二运算公式,基于目标消息、标签、目标签名方的公钥、第二密码杂凑函数生成第一中间辅助参数及第二中间辅助参数;
138.第二运算公式包括:
139.a0=h2(tag,m);a1=(σi/a0)
1/i
;σi=di·
w;
140.其中,a0表示第一中间辅助参数;h2表示第二密码杂凑函数;m表示目标消息;a1表示第二中间辅助参数;i表示目标签名方的标号;di表示目标签名方的私钥。
141.步骤s106:基于整数集合生成与目标签名方及其他签名方一一对应的随机数。
142.实际应用中,在基于目标消息、标签、目标签名方的公钥、第二密码杂凑函数生成第一中间辅助参数及第二中间辅助参数之后,便可以基于整数集合生成与目标签名方及其他签名方一一对应的随机数。
143.步骤s107:基于目标签名方的私钥、阶数、公钥列表、标签、消息摘要、随机数、第一中间辅助参数、第二中间辅助参数、第三密码杂凑函数、生成元生成签名值和目标数值。
144.实际应用中,在基于整数集合生成与目标签名方及其他签名方一一对应的随机数之后,便可以基于目标签名方的私钥、阶数、公钥列表、标签、消息摘要、随机数、第一中间辅助参数、第二中间辅助参数、第三密码杂凑函数、生成元生成签名值和目标数值。
145.具体应用场景中,在基于目标签名方的私钥、阶数、公钥列表、标签、消息摘要、随机数、第一中间辅助参数、第二中间辅助参数、第三密码杂凑函数、生成元生成签名值和目标数值的过程可以中,可以基于第一中间辅助参数及第二中间辅助参数生成与其他签名方一一对应的第一数值;基于目标签名方对应的随机数、第三密码杂凑函数、标签、第一中间辅助参数、第二中间辅助参数、生成元、消息摘要生成第二数值;基于其他签名方对应的随机数、生成元、第二数值、其他签名方的公钥、消息摘要、第三密码杂凑函数生成签名值及第三数值;基于目标签名方的私钥、目标签名方对应的随机数、第三数值及阶数生成目标数值。
146.具体应用场景中,在基于第一中间辅助参数及第二中间辅助参数生成与其他签名方一一对应的第一数值的过程中,可以通过第三运算公式,基于第一中间辅助参数及第二中间辅助参数生成与其他签名方一一对应的第一数值;
147.第三运算公式包括:
148.σj=a0a
1j
∈g,j=1,...,i-1,i 1,...,n;
149.其中,σj表示与第j个其他签名方对应的第一数值;g表示生成元;
150.在基于目标签名方对应的随机数、第三密码杂凑函数、标签、第一中间辅助参数、第二中间辅助参数、生成元、消息摘要生成第二数值的过程中,可以通过第四运算公式,基于目标签名方对应的随机数、第三密码杂凑函数、标签、第一中间辅助参数、第二中间辅助参数、生成元、消息摘要生成第二数值;
151.第四运算公式包括:
152.c
i 1
=h3(tag,a0,a1,ki·
g,ki·
w);
153.其中,c
i 1
表示第二数值;h3表示第三密码杂凑函数;ki表示目标签名方对应的随机数,表示由整数1,2,...,q-1组成的整数集合;
154.在基于其他签名方对应的随机数、生成元、第二数值、其他签名方的公钥、消息摘要、第三密码杂凑函数生成签名值及第三数值的过程中,可以通过第五运算公式,基于其他签名方对应的随机数、生成元、第二数值、其他签名方的公钥、消息摘要、第三密码杂凑函数生成签名值及第三数值;
155.第五运算公式包括:
156.c
j 1
=h3(tag,a0,a1,tj,yj),j=i 1,...,n,1,...,i-1;
157.tj=sj·
g (sj cj)
·
pj;yj=sj·
w (sj cj)
·
σi;
158.其中,cn的值为签名值;sj表示第j个其他签名方对应的随机数,j=1,...,i-1,i 1,...,n,ci表示第三数值;
159.在基于目标签名方的私钥、目标签名方对应的随机数、第三数值及阶数生成目标数值的过程中,可以通过第六运算公式,基于目标签名方的私钥、目标签名方对应的随机数、第三数值及阶数生成目标数值;
160.第六运算公式包括:
161.si=((1 di)-1
·
(k
i-ci·di
))mod q;
162.其中,si表示目标数值;di表示目标签名方的私钥;q表示阶数。
163.步骤s108:将第二中间辅助参数、签名值、目标数值及所有的其他签名方对应的随机数作为目标消息的可追踪环签名。
164.实际应用中,在基于目标签名方的私钥、阶数、公钥列表、标签、消息摘要、随机数、第一中间辅助参数、第二中间辅助参数、第三密码杂凑函数、生成元生成签名值和目标数值之后,便可以将第二中间辅助参数、签名值、目标数值及所有的其他签名方对应的随机数作为目标消息的可追踪环签名。
165.本技术提供的一种基于sm2算法的可追踪环签名方法,应用于任一目标签名方,获取基于sm2算法确定的第一密码杂凑函数、第二密码杂凑函数、第三密码杂凑函数、椭圆曲线群的生成元、椭圆曲线群的阶数、整数集合;获取待签名的目标消息;获取预设数量个其
他签名方的公钥,并与目标签名方的公钥组成公钥列表;基于公钥列表生成目标消息的标签,基于第一密码杂凑函数及标签生成消息摘要;基于目标消息、标签、目标签名方的公钥、第二密码杂凑函数生成第一中间辅助参数及第二中间辅助参数;基于整数集合生成与目标签名方及其他签名方一一对应的随机数;基于目标签名方的私钥、阶数、公钥列表、标签、消息摘要、随机数、第一中间辅助参数、第二中间辅助参数、第三密码杂凑函数、生成元生成签名值和目标数值;将第二中间辅助参数、签名值、目标数值及所有的其他签名方对应的随机数作为目标消息的可追踪环签名。本技术借助sm2算法实现了对目标消息的可追踪环签名,扩充了现有的数据环签名方法。
166.实际应用中,在本技术提供的基于sm2算法的可追踪环签名方法中,目标签名方在生成目标消息的可追踪环签名之后,还可以对可追踪环签名进行验证,以便根据验证结果对目标消息进行处理。
167.请参阅图2和图3,图3为本技术实施例提供的一种基于sm2算法的可追踪环签名方法的第二流程图。
168.本技术实施例提供的一种基于sm2算法的可追踪环签名方法,应用于签名验证方,可以包括以下步骤:
169.步骤s201:获取基于sm2算法确定的第一密码杂凑函数、第二密码杂凑函数、第三密码杂凑函数、椭圆曲线群的生成元、椭圆曲线群的阶数、整数集合。
170.步骤s202:获取目标签名方发送的目标消息、标签、公钥列表、可追踪环签名,可追踪环签名包括第二中间辅助参数、签名值、目标数值及所有的其他签名方对应的随机数。
171.步骤s203:验证签名值、其他签名方对应的随机数、第一数值是否属于整数集合;若签名值、其他签名方对应的随机数、第一数值属于整数集合,则执行步骤s204。
172.实际应用中,在签名值、其他签名方对应的随机数、第一数值不属于整数集合的情况下,可以判定可追踪环签名无效等。
173.步骤s204:基于目标消息、标签、第二中间辅助参数、第二密码杂凑函数生成第一中间辅助参数及校验值,基于第一密码杂凑函数及标签生成消息摘要。
174.步骤s205:基于第一中间辅助参数、第二中间辅助参数、校验值、公钥列表、消息摘要、第三密码杂凑函数、生成元、阶数验证签名值是否正确;若签名值正确,则执行步骤s206。
175.步骤s206:判定可追踪环签名为合法签名。
176.实际应用中,在基于第一中间辅助参数、第二中间辅助参数、校验值、公钥列表、消息摘要、第三密码杂凑函数、生成元、阶数验证签名值不正确的情况下,可以判定可追踪环签名无效等,本技术在此不做具体限定。
177.具体应用场景中,在基于第一中间辅助参数、第二中间辅助参数、校验值、公钥列表、消息摘要、第三密码杂凑函数、生成元、阶数验证签名值是否正确的过程中,可以判断目标等式是否成立,若目标等式成立,则基于第一中间辅助参数、第二中间辅助参数、校验值、公钥列表、消息摘要、第三密码杂凑函数、生成元、阶数判定签名值正确;若目标等式不成立,则基于第一中间辅助参数、第二中间辅助参数、校验值、公钥列表、消息摘要、第三密码杂凑函数、生成元、阶数判定签名值不正确;
178.目标等式包括:
179.c1=c
n 1

180.其中,c
j 1
=h3(tag,a0,a1,tj,yj),tj=sj·
g (sj cj)
·
pj,yj=sj·
w (sj cj)
·
σi,i=1,2,...,n;w=h1(tag);a0=h2(tag,m),σi=a0a
1i
,i=1,2,...,n;c1表示签名值;h3表示第三密码杂凑函数;tag表示标签,tag=(issue,l),issue表示预设数据号;l表示公钥列表,l={p1,p2,...,pi,...,pn},pi表示目标签名方的公钥;pj表示第j个其他签名方的公钥,j≠i;n表示公钥列表中的公钥总数量;a0表示第一中间辅助参数;a1表示第二中间辅助参数;g表示生成元;w表示消息摘要;h1表示第一密码杂凑函数;h2表示第二密码杂凑函数;m表示目标消息;sj表示第j个其他签名方对应的随机数,j=1,...,i-1,i 1,...,n;si表示目标数值。
181.实际应用中,在本技术提供的基于sm2算法的可追踪环签名方法中,目标签名方在生成目标消息的可追踪环签名之后,还可以对签名方进行追踪,以便根据追踪结果对签名方进行处理。请参阅图4和图5,图4为本技术实施例提供的基于sm2算法的可追踪环签名方法的另一示意图,图5为本技术实施例提供的一种基于sm2算法的可追踪环签名方法的第三流程图。
182.本技术实施例提供的一种基于sm2算法的可追踪环签名方法,应用于追踪方,可以包括以下步骤:
183.步骤s301:获取基于sm2算法确定的第一密码杂凑函数、第二密码杂凑函数。
184.步骤s302:获取所有签名方的公钥,签名方包括目标签名方及其他签名方。
185.步骤s303:获取第一目标消息及对应的第一可追踪环签名。
186.步骤s304:获取与第一目标消息同标签的第二目标消息及对应的第二可追踪环签名。
187.步骤s305:基于第一密码杂凑函数计算标签的消息摘要。
188.步骤s306:基于第一目标消息、标签、第一可追踪环签名中的第二中间辅助参数、第二密码杂凑函数生成各个签名方对应的第一类校验值。
189.步骤s307:基于第二目标消息、标签、第二可追踪环签名中的第二中间辅助参数、第二密码杂凑函数生成各个签名方对应的第二类校验值。
190.步骤s308:对于每个签名方,若签名方对应的第一类校验值与第二类校验值相等,则将签名方的公钥作为追踪结果。
191.实际应用中,在对于每个签名方,若签名方对应的第一类校验值与第二类校验值相等,则将签名方的公钥作为追踪结果之后,若追踪结果中只有一个公钥,则表示签名方对同一个标签签署了两个不同的消息,可以直接输出该公钥来表示;若追踪结果中的公钥为所有签名方的公钥,则表示签名方对同一个标签签署了两遍相同的消息,可以输出“链接”来表示;若追踪结果中的公钥数量大于1个且并非所有的公钥,则表示追踪结果为其他,可以输出“独立”来表示。
192.请参阅图6,图6为本技术实施例提供的一种基于sm2算法的可追踪环签名系统的结构示意图。
193.本技术实施例提供的一种基于sm2算法的可追踪环签名系统,应用于任一目标签名方,可以包括:
194.第一获取模块101,用于获取基于sm2算法确定的第一密码杂凑函数、第二密码杂
凑函数、第三密码杂凑函数、椭圆曲线群的生成元、椭圆曲线群的阶数、整数集合;
195.第二获取模块102,用于获取待签名的目标消息;
196.第三获取模块103,用于获取预设数量个其他签名方的公钥,并与目标签名方的公钥组成公钥列表;
197.第一生成模块104,用于基于公钥列表生成目标消息的标签,基于第一密码杂凑函数及标签生成消息摘要;
198.第二生成模块105,用于基于目标消息、标签、目标签名方的公钥、第二密码杂凑函数生成第一中间辅助参数及第二中间辅助参数;
199.第三生成模块106,用于基于整数集合生成与目标签名方及其他签名方一一对应的随机数;
200.第四生成模块107,用于基于目标签名方的私钥、阶数、公钥列表、标签、消息摘要、随机数、第一中间辅助参数、第二中间辅助参数、第三密码杂凑函数、生成元生成签名值和目标数值;
201.第一处理模块108,用于将第二中间辅助参数、签名值、目标数值及所有的其他签名方对应的随机数作为目标消息的可追踪环签名。
202.本技术实施例提供的一种基于sm2算法的可追踪环签名系统,应用于签名验证方,可以包括:
203.第四获取模块,用于获取基于sm2算法确定的第一密码杂凑函数、第二密码杂凑函数、第三密码杂凑函数、椭圆曲线群的生成元、椭圆曲线群的阶数、整数集合;
204.第五获取模块,用于获取目标签名方发送的目标消息、标签、公钥列表、可追踪环签名,可追踪环签名包括第二中间辅助参数、签名值、目标数值及所有的其他签名方对应的随机数;
205.第一验证模块,用于验证签名值、其他签名方对应的随机数、第一数值是否属于整数集合;
206.第五生成模块,用于若签名值、其他签名方对应的随机数、第一数值属于整数集合,则基于目标消息、标签、第二中间辅助参数、第二密码杂凑函数生成第一中间辅助参数及校验值,基于第一密码杂凑函数及标签生成消息摘要;
207.第二验证模块,用于基于第一中间辅助参数、第二中间辅助参数、校验值、公钥列表、消息摘要、第三密码杂凑函数、生成元、阶数验证签名值是否正确;若签名值正确,则判定可追踪环签名为合法签名;
208.其中,公钥列表包括预设数量个其他签名方的公钥及目标签名方的公钥;标签基于公钥列表生成;目标签名方及其他签名方一一对应的随机数基于整数集合生成;签名值和目标数值基于目标签名方的私钥、阶数、公钥列表、标签、消息摘要、随机数、第一中间辅助参数、第二中间辅助参数、第三密码杂凑函数、生成元生成。
209.本技术实施例提供的一种基于sm2算法的可追踪环签名系统,应用于追踪方,可以包括:
210.第六获取模块,用于获取基于sm2算法确定的第一密码杂凑函数、第二密码杂凑函数;
211.第七获取模块,用于获取所有签名方的公钥,签名方包括目标签名方及其他签名
方;
212.第八获取模块,用于获取第一目标消息及对应的第一可追踪环签名;
213.第九获取模块,用于获取与第一目标消息同标签的第二目标消息及对应的第二可追踪环签名;
214.第一计算模块,用于基于第一密码杂凑函数计算标签的消息摘要;
215.第六生成模块,用于基于第一目标消息、标签、第一可追踪环签名中的第二中间辅助参数、第二密码杂凑函数生成各个签名方对应的第一类校验值;
216.第七生成模块,用于基于第二目标消息、标签、第二可追踪环签名中的第二中间辅助参数、第二密码杂凑函数生成各个签名方对应的第二类校验值;
217.第一处理模块,用于对于每个签名方,若签名方对应的第一类校验值与第二类校验值相等,则将签名方的公钥作为追踪结果;
218.其中,目标消息对应的可追踪环签名包括第二中间辅助参数、签名值、目标数值及所有的其他签名方对应的随机数;标签基于公钥列表生成,公钥列表包括预设数量个其他签名方的公钥及目标签名方的公钥;目标签名方及其他签名方一一对应的随机数基于sm2算法的整数集合生成;签名值和目标数值基于目标签名方的私钥、sm2算法的阶数、公钥列表、标签、消息摘要、随机数、第一中间辅助参数、第二中间辅助参数、sm2算法的第三密码杂凑函数、sm2算法的生成元生成;第一中间辅助参数基于目标消息、标签、第二密码杂凑函数生成。
219.本技术实施例提供的基于sm2算法的可追踪环签名系统中相应模块的功能可以参阅上述描述,在此不再赘述。
220.本技术还提供了一种基于sm2算法的可追踪环签名设备及计算机可读存储介质,其均具有本技术实施例提供的一种基于sm2算法的可追踪环签名方法具有的对应效果。请参阅图7,图7为本技术实施例提供的一种基于sm2算法的可追踪环签名设备的结构示意图。
221.本技术实施例提供的一种基于sm2算法的可追踪环签名设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如上任一实施例所描述基于sm2算法的可追踪环签名方法的步骤。
222.请参阅图8,本技术实施例提供的另一种基于sm2算法的可追踪环签名设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现数据环签名设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(hml)、通用串行总线(usb)、高清多媒体接口(hdmi)、无线连接:无线保真技术(wifi)、蓝牙通信技术、低功耗蓝牙通信技术、基于ieee802.11s的通信技术。
223.本技术实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如上任一实施例所描述基于sm2算法的可追踪环签名方法的步骤
224.本技术所涉及的计算机可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质。
225.本技术实施例提供的基于sm2算法的可追踪环签名系统、设备及计算机可读存储介质中相关部分的说明请参见本技术实施例提供的基于sm2算法的可追踪环签名方法中对应部分的详细说明,在此不再赘述。另外,本技术实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
226.还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
227.对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献