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

一种支持批验证的SM9数字签名方法与流程

2021-10-27 20:04:00 来源:中国专利 TAG:数字签名 验证 支持 方法 信息安全

一种支持批验证的sm9数字签名方法
技术领域
1.本发明涉及信息安全技术领域,尤其涉及一种支持批验证的sm9数字签名方法。


背景技术:

2.数字签名是一种用于鉴定签名者和签名消息有效性的密码安全技术,通过验证签名保证签名者身份的真实性和不可抵赖性,同时检验消息在传输过程中是否遭到篡改,确保消息的完整性和真实性。数字签名是公钥密码体系中的一个重要研究领域,在云计算、物联网、区块链等应用中得到广泛使用。
3.消息签名的有效性验证需要消耗一定的计算资源,当需要验证多个消息签名时,采用逐个验证的方法会消耗较多的计算资源,不适用于计算资源有限的应用场景。此外,多个签名的验证耗时较大,不满足车联网等应用的需求。在这种亟需提高多个签名验证效率的背景下,支持批验证的签名孕育而生。为实现密码自主可控,保障网络与信息安全,我国自主设计了sm9数字签名算法并成为了国际标准。然而,由于sm9签名算法结构的特殊性,该算法并不支持批验证,严重阻碍了sm9数字签名算法的应用。


技术实现要素:

4.本发明的目的在于提供一种支持批验证的sm9数字签名方法,在不改变sm9数字签名的整体架构上,对签名算法进行优化,使其支持单个签名者生成签名的批验证,与签名逐个验证的方法相比,签名验证效率提高了约50%。
5.本发明采用的技术方案是:
6.一种支持批验证的sm9数字签名方法,包括步骤:
7.s1、密钥生成中心生成密钥生成中心的主公私钥对,将生成的主公钥公开给系统中的用户,并秘密保存主私钥;
8.s2、密钥生成中心利用主公私钥对生成签名者的签名密钥,将签名密钥通过安全信道发送给签名者;
9.s3、签名者基于待签名的消息,利用密钥生成中心生成的签名密钥和密钥生成中心的主公钥生成签名;
10.s4、验证算法基于消息签名、签名者的标识和密钥生成中心的主公钥,验证签名的有效性;
11.s5、批验证算法基于单签名者生成的多个消息签名、签名者标识和密钥生成中心的主公钥,批量验证多个签名的有效性。
12.本发明的有益效果在于:sm9数字签名算法作为我国的商用密码算法,具有强安全性和高效率性,常用于保护数据的完整性,得到了广泛的应用。但是,当需要验证多个消息签名时,只能逐个验证,无法实现签名的批量验证,计算开销较大,而且验证时间较长,效率低下,无法满足物联网等应用的新需求,限制了sm9数字签名算法的部署。
13.本发明在不改变sm9数字签名算法整体架构的基础上,对消息签名生成算法进行
优化,使其能批量验证单个签名者生成的多个签名。即,当需要验证由某个签名者生成的多个消息签名的有效性时,不需要逐个签名验证,而是同时验证多个签名的有效性。该方法不仅降低了计算开销,而且减少了验证时间,有效提高了签名的验证效率,有助于促进sm9数字签名算法的应用。
附图说明
14.以下结合附图和具体实施方式对本发明做进一步详细说明;
15.图1为一种支持批验证的sm9数字签名方法流程图;
16.图2为签名算法流程示意图;
17.图3为签名验证算法流程示意图;
18.图4为签名批验证算法流程示意图。
具体实施方式
19.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图对本技术实施例中的技术方案进行清楚、完整地描述。本发明最关键的构思在于:由单个签名者生成的多个sm9消息签名可实现批量验证。
20.如图1至图4之一所示,本发明公开了一种支持批验证的sm9数字签名方法,其包括步骤:
21.s1、密钥生成中心生成密钥生成中心的主公私钥对,将生成的主公钥公开给系统中的用户,并秘密保存主私钥;
22.s2、密钥生成中心利用主公私钥对生成签名者的签名密钥,将签名密钥通过安全信道发送给签名者;
23.s3、签名者基于待签名的消息,利用密钥生成中心生成的签名密钥和密钥生成中心的主公钥生成签名;
24.s4、验证算法基于消息签名、签名者的标识和密钥生成中心的主公钥,验证签名的有效性;
25.s5、批验证算法基于单签名者生成的多个消息签名、签名者标识和密钥生成中心的主公钥,批量验证多个签名的有效性。
26.进一步的,所述步骤s1具体包括:
27.首先选取双线性群bp=(g1,g2,g
t
,e,n),群g1和群g2的生成元分别为p1和p2。产生随机数α∈[1,n

1]作为主私钥,计算g2中的元素p
pub
=αp2,计算g
t
中的元素g=e(p1,p
pub
)。选择并公开用一个字节表示的签名密钥生成函数识别符hid;
[0028]
其中,
[0029]
bp:双线性群;
[0030]
n:循环群g1,g2,g
t
的阶,且n>2
191
的素数;
[0031]
g1:阶为素数n的加法循环群;
[0032]
g2:阶为素数n的加法循环群;
[0033]
g
t
:阶为素数n的乘法循环群;
[0034]
e:从g1×
g2到g
t
的双线性映射;
[0035]
α:主私钥;
[0036]
[1,n

1],:不小于1且不大于n

1的整数集合;
[0037]
p1:群g1的生成元;
[0038]
p2:群g2的生成元;
[0039]
p
pub
:群g2中的元素;
[0040]
g:群g
t
中的元素;
[0041]
hid:用一个字节表示的签名密钥生成函数识别符,由密钥生成中心选择并公开。
[0042]
所述步骤s2中密钥生成中心为签名者生成签名密钥具体包括:
[0043]
为产生签名者的签名密钥sk,首先在有限域f
n
上计算非零元素t1=h1(id||hid,n) α,计算t2=α
·
t1‑1,然后计算签名者的签名密钥sk=t2·
p1;
[0044]
其中,
[0045]
id:签名者的标识,可以唯一确定签名者的公钥;
[0046]
sk:签名者的签名密钥,属于群g1中的元素;
[0047]
f
n
:有限域;
[0048]
id||hid:id与hid的拼接,其中id和hid是比特串或字节串;
[0049]
t1:临时变量,属于有限域f
n
中的元素;
[0050]
t2:临时变量,属于有限域f
n
中的元素;
[0051]
h1(id||hid,n):到由密码杂凑函数派生的密码函数。
[0052]
所述步骤s3中签名者生成数字签名具体包括:
[0053]
产生随机数r∈[1,n

1],计算c=r
·
p1,w=g
r
,h=h2(m||w,n),,并输出签名σ=(c,s);
[0054]
其中,
[0055]
r:[1,n

1]中的随机数;
[0056]
m:待签名的消息;
[0057]
c:临时变量,属于群g1中的元素;
[0058]
w:临时变量,属于群g
t
中的元素;
[0059]
h:临时变量,属于有限域f
n
中的整数;
[0060]
h2(m||w,n):{0,1}
*
×
g
t
到的由密码杂凑函数派生的密码函数;
[0061]
:临时变量,属于有限域f
n
中的整数;
[0062]
s:临时变量,属于群g1中的元素;
[0063]
σ:消息m的签名。
[0064]
所述步骤s4中签名验证具体包括:
[0065]
假设待验证的消息签名为(σ,m,id),其中σ=(c,s)。验证者首先计算w=e(c,p
pub
),h'=h2(m||w',n),p=h1(id||hid,n)p2 p
pub
,u=e(s,p),w'=u
·
g
h
'。接着验证w'=w是否成立,若不成立则输出该签名无效,否则输出该签名是有效签名;
[0066]
其中,
[0067]
h':临时变量,属于有限域f
n
中的整数;
[0068]
p:临时变量,属于群g2中的元素;
[0069]
u:临时变量,属于群g
t
中的元素;
[0070]
w':临时变量,属于群g
t
中的元素。
[0071]
所述步骤s5中签名批验证具体包括:
[0072]
假设由签名者id生成的n个待验证的消息签名为(σ
i
,m
i
),其中σ
i
=(c
i
,s
i
),i=1,2,

,n。验证者对任意的i=1,2,

,n,计算w
i
=e(c
i
,p
pub
),h
i
=h2(m
i
||w
i
,n),接着,验证是否成立。若成立,则表示该n个签名对是有效的,否则至少存在一个签名是无效的;
[0073]
其中,
[0074]
n:正整数,表示待验证签名的个数;
[0075]
m
i
:待验证的消息;
[0076]
σ
i
:标识为id的签名者对消息m
i
的签名;
[0077]
w
i
:临时变量,属于群g
t
中的元素;
[0078]
h
i
:临时变量,属于有限域f
n
中的整数。
[0079]
sm9签名的批验证过程具体如下:
[0080][0081]
此处对公式计算中需要说明的是:
[0082]
假设g1,g2,g
t
均是阶为大素数n的循环群,p1,p2分别是群g1,g2的生成元,z
n
为包含n个元素的整数域,双线性群bp由五元组(g1,g2,g
t
,e,n)组成。其中映射e:g1×
g2→
g
t
为双线性映射,满足以下3个条件:
[0083]
(1)双线性性:对任意的生成元p1∈g1,p2∈g2和都有e(ap1,bp2)=e(p1,p2)
ab

[0084]
(2)非退化性:至少存在元素p∈g1,q∈g2满足e(p,q)≠1;
[0085]
(3)可计算性:对于任意的p∈g1,q∈g2,存在多项式时间算法高效计算e(p,q)。
[0086]
本发明在不改变sm9数字签名算法整体架构的基础上,对消息签名生成算法进行优化,使其支持多个签名的批验证。该技术不仅降低了计算开销,还减少了签名验证时间,有效提高了签名验证的效率,有助于进一步拓宽sm9数字签名算法的应用。
[0087]
显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献

  • 日榜
  • 周榜
  • 月榜