私钥生成方法及相关方法、系统、计算机设备和存储介质与流程

文档序号:30229433发布日期:2022-06-01 04:06阅读:118来源:国知局
私钥生成方法及相关方法、系统、计算机设备和存储介质与流程

1.本发明属于信息安全技术领域,特别涉及一种sm9用户签名私钥的私钥生成方法以及相应的私钥生成系统、数字签名生成方法、数字签名验证方法、数字签名生成系统、数字签名验证系统、计算机设备和计算机可读存储介质。


背景技术:

2.sm9标识密码算法是国家密码管理局于2016年发布的一种基于标识的密码算法。sm9使用用户标识作为用户的公钥,用户私钥由密钥生成中心(kgc)根据用户标识和密钥生成中心的主密钥(密钥即私钥)生成。由于把用户标识作为用户公钥,因而与传统的基于数字证书的公钥基础设施(pki)体系相比,在证书管理环节能得到一定的简化。
3.sm9标识密码算法包括数字签名、密钥交换、密钥封装以及加解密算法。其中数字签名算法使用用户的签名密钥,密钥交换、密钥封装以及加解密算法使用用户的加密密钥。其中,用户签名私钥由密钥生成中心根据用户标识和密钥生成中心的签名主私钥生成。因此密钥生成中心承担了整个系统中用户签名私钥的生成。而这则导致了用户对签名私钥的生成无法进行控制的问题。


技术实现要素:

4.针对上述问题,本发明提供一种sm9用户签名私钥的私钥生成方法。
5.本发明提供的私钥生成方法,包括:
6.生成系统参数;
7.生成用户密钥生成中心签名主公钥p
pubs2

8.通过系统密钥生成中心对所述用户密钥生成中心签名主公钥p
pubs2
进行签名,并公布用户参数;
9.用户根据所述用户参数生成用户签名私钥dsu。
10.进一步,
11.所述生成系统参数是通过所述系统密钥生成中心来实现,包括:
12.通过所述系统密钥生成中心生成系统密钥生成中心签名主私钥ks1和系统密钥生成中心签名主公钥p
pubs1
,所述系统密钥生成中心签名主私钥ks1为随机整数,且ks1∈[1,n-1],其中n为素数,设群g2是阶为n的加法循环群,则所述系统密钥生成中心签名主公钥p
pubs1
为群g2中的元素,且满足
[0013]
p
pubs1
=[ks1]p2ꢀꢀꢀꢀꢀꢀ
(1),
[0014]
式(1)中,p2为群g2的生成元,方括号[]代表椭圆曲线上的倍点运算,方括号[]中的数为整数;
[0015]
通过所述系统密钥生成中心选择系统标识ids,并使用所述系统密钥生成中心签名主私钥ks1和系统标识ids生成对应的系统用户私钥dss,dss满足
[0016]
dss=ks1×
(h1(ids||hid,n)+ks1)-1
ꢀꢀꢀꢀ
(2),
[0017]
式(2)中,h1(ids||hid,n)为密码函数,||表示将数据的字节串合并,hid为用一个字节表示的函数识别符,由系统密钥生成中心选择并公开。
[0018]
进一步,
[0019]
所述生成系统参数还包括:
[0020]
通过所述系统密钥生成中心将所述系统密钥生成中心签名主公钥p
pubs1
和系统标识ids公开发布。
[0021]
进一步,
[0022]
所述生成用户密钥生成中心签名主公钥p
pubs2
通过所述用户的密码设备来实现,同时,还通过所述密码设备生成用户密钥生成中心签名主私钥ks2。
[0023]
进一步,
[0024]
所述通过系统密钥生成中心对所述用户密钥生成中心签名主公钥p
pubs2
进行签名,并公布用户参数包括:
[0025]
所述用户通过所述密码设备将所述用户密钥生成中心签名主公钥p
pubs2
和用户标识ida提交给所述系统密钥生成中心,由所述系统密钥生成中心对用户身份和所述用户标识ida进行验证,
[0026]
若验证失败,则返回错误;
[0027]
若验证正确,通过所述系统密钥生成中心使用所述系统用户私钥dss和系统密钥生成中心签名主公钥p
pubs1
对所述用户密钥生成中心签名主公钥p
pubs2
签名,得到签名后发送所述签名给所述用户。
[0028]
进一步,
[0029]
所述公布用户参数包括:
[0030]
通过所述系统密钥生成中心公开发布所述用户标识ida和用户密钥生成中心签名主公钥p
pubs2
,并标注所述用户标识ida和用户密钥生成中心签名主公钥p
pubs2
的状态为有效。
[0031]
进一步,
[0032]
所述用户根据所述用户参数生成用户签名私钥dsu包括:
[0033]
所述用户通过所述密码设备使用所述用户密钥生成中心签名主私钥ks2和用户标识ida生成所述用户签名私钥dsu,dsu满足
[0034]
dsu=ks2×
(h1(ida||hid,n)+ks2)-1
ꢀꢀꢀꢀ
(3)。
[0035]
进一步,
[0036]
在所述签名之后,还包括:
[0037]
注销所述用户密钥生成中心签名主公钥p
pubs2

[0038]
进一步,
[0039]
所述注销所述用户密钥生成中心签名主公钥p
pubs2
包括:
[0040]
用户标识为所述ida的用户a通过用户a的密码设备申请注销相应的用户密钥生成中心签名主公钥p
pubs2

[0041]
通过所述系统密钥生成中心验证用户身份和所述用户标识ida;
[0042]
由所述系统密钥生成中心公开发布所述用户标识ida和用户密钥生成中心签名主公钥p
pubs2
,并修改所述用户标识ida和用户密钥生成中心签名主公钥p
pubs2
的状态为已注销。
[0043]
本发明还提供一种私钥生成系统,用于实现权利要求1-9中任一项所述的私钥生
成方法,所述私钥生成系统包括:系统密钥生成中心和用户的密码设备。
[0044]
本发明还提供一种数字签名生成方法,所述数字签名生成方法采用上述的私钥生成方法对消息进行数字签名。
[0045]
本发明还提供一种数字签名验证方法,所述数字签名验证方法采用上述的私钥生成方法对消息进行数字签名验证。
[0046]
进一步,所述数字签名验证方法包括:
[0047]
对用户密钥生成中心签名主公钥p
pubs2
和系统密钥生成中心对p
pubs2
的签名sig2进行数字签名验证且通过;
[0048]
对消息m和所述消息m的数字签名sig进行数字签名验证且通过;
[0049]
向系统密钥生成中心查询用户标识ida和p
pubs2
状态是否为有效,若所述用户标识ida和p
pubs2
状态为有效,且若所述消息m未被篡改,则数字签名验证通过,否则数字签名验证失败。
[0050]
本发明还提供一种数字签名生成系统,所述数字签名生成系统用于实现上述的数字签名生成方法,所述数字签名生成系统包括:上述的私钥生成系统。
[0051]
本发明还提供一种数字签名验证系统,所述数字签名验证系统用于实现上述的数字签名验证方法,所述数字签名验证系统包括:上述的私钥生成系统。
[0052]
本发明还提供一种计算机设备,所述计算机设备包括储存器、第一处理器及储存在所述存储器上并可在所述第一处理器上运行的第一计算机程序,所述第一计算机程序被所述第一处理器执行时实现下列方法的一种或几种:
[0053]
上述的私钥生成方法;
[0054]
上述的数字签名生成方法;
[0055]
上述的数字签名验证方法。
[0056]
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质用于储存第二计算机程序,所述第二计算机程序可被至少一个第二处理器所执行,以使所述至少一个第二处理器执行下列方法的一种或几种:
[0057]
上述的私钥生成方法;
[0058]
上述的数字签名生成方法;
[0059]
上述的数字签名验证方法。
[0060]
本发明的私钥生成方法中,用户签名私钥由用户生成,使得用户对用户签名私钥具有完全的自主权,有效解决了在单系统密钥生成中心kgc下,由于系统密钥生成中心拥有所有用户私钥所导致的、用户对用户签名私钥的生成无法进行控制的安全问题。
[0061]
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。
附图说明
[0062]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
这些附图获得其他的附图。
[0063]
图1示出了根据本发明实施例的sm9用户签名私钥的私钥生成方法流程图。
具体实施方式
[0064]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0065]
除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术;本技术的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本技术的说明书和权利要求书或上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同对象,而不是用于描述特定顺序或主次关系。本技术中出现的“多个”指的是两个以上(包括两个)。
[0066]
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
[0067]
图1为本发明提供的sm9用户签名私钥的私钥生成方法流程图。参见图1,本发明的私钥生成方法包括如下步骤。
[0068]
a、生成系统参数,包括:
[0069]
a1、通过系统kgc生成系统kgc签名主私钥ks1和系统kgc签名主公钥p
pubs1
。系统kgc签名主私钥ks1为随机整数,且ks1∈[1,n-1],其中n为素数。设群g2是阶为n的加法循环群,则系统kgc签名主公钥p
pubs1
为群g2中的元素,且满足
[0070]
p
pubs1
=[ks1]p2ꢀꢀꢀꢀ
(1),
[0071]
式(1)中,p2为群g2的生成元,方括号[]代表椭圆曲线上的倍点运算,方括号[]中的数为整数,具体参见标准gm/t0044-2016《sm9标识密码算法》中的第3节。本发明中各等式中的方括号[]的含义均与上述方括号[]的含义相同。
[0072]
a2、通过系统kgc选择系统标识ids(即系统kgc的身份识别标识,是系统kgc为自己的身份生成的一个用户签名密钥,用于系统kgc签名用),并使用系统kgc签名主私钥ks1和系统标识ids生成对应的系统用户私钥dss,dss满足
[0073]
dss=ks1×
(h1(ids||hid,n)+ks1)-1
ꢀꢀꢀ
(2),
[0074]
式(2)中,h1(ids||hid,n)为gm/t0044.2-2016《sm9标识密码算法第2部分数字签名算法》第5.4.2.2中定义的密码函数,用于把任意的系统标识ids通过h1映射为一个256比特的整数;||表示将数据的字节串合并;hid为用一个字节表示的函数识别符,为固定值并由系统kgc选择并公开。
[0075]
a3、通过系统kgc将系统kgc签名主公钥p
pubs1
和系统标识ids公开发布。
[0076]
b、生成用户kgc签名主密钥,包括:
[0077]
由于所述用户kgc签名主密钥包括用户kgc签名主私钥ks2和用户kgc签名主公钥
p
pubs2
,因而本步骤包括通过用户自己的密码设备生成用户kgc签名主私钥ks2和用户kgc签名主公钥p
pubs2

[0078]
其中,用户的密码设备可以是智能密码钥匙或密码模块。用户kgc签名主私钥ks2为随机整数,且ks2∈[1,n-1],其中n为素数。设群g2是阶为n的加法循环群,则用户kgc签名主公钥p
pubs2
为群g2中的元素,且满足
[0079]
p
pubs2
=[ks2]p2ꢀꢀꢀꢀꢀꢀ
(2),
[0080]
式(2)中,p2为群g2的生成元。
[0081]
c、通过系统kgc对用户kgc签名主公钥p
pubs2
进行签名,并公布用户参数,包括:
[0082]
c1、用户通过用户的密码设备将用户kgc签名主公钥p
pubs2
和用户标识ida提交给系统kgc,由系统kgc对用户身份和用户标识ida进行验证,其中,用户标识ida可以是身份证,手机号等数码信息。用户标识ida和用户的用户kgc签名主公钥p
pubs2
,理论上没有联系,但通过系统kgc公开发布,验证者可以查询以确定的用户标识ida的唯一对应的用户kgc签名主公钥。
[0083]
c2、若步骤c1中验证失败,则返回错误。
[0084]
c3、若步骤c1中验证正确,通过系统kgc使用系统用户私钥dss和系统kgc签名主公钥p
pubs1
对用户kgc签名主公钥p
pubs2
签名,得到签名sig2并发送该签名给用户。
[0085]
c4、通过系统kgc公开发布用户标识ida和用户kgc签名主公钥p
pubs2
,并标注用户标识ida和用户kgc签名主公钥p
pubs2
的状态为有效。
[0086]
d、注销用户kgc签名主公钥p
pubs2
,包括:
[0087]
d1、用户标识为ida的用户通过用户的密码设备申请注销其用户kgc签名主公钥p
pubs2

[0088]
d2、通过系统kgc验证用户身份和用户标识ida;
[0089]
d3、由系统kgc公开发布用户标识ida和用户kgc签名主公钥p
pubs2
,并修改用户标识ida和用户kgc签名主公钥p
pubs2
的状态为已注销。
[0090]
e、用户通过用户的密码设备使用用户kgc签名主私钥ks2和用户标识ida生成用户签名私钥dsu,dsu满足
[0091]
dsu=ks2×
(h1(ida||hid,n)+ks2)-1
ꢀꢀꢀ
(3),
[0092]
式(3)中,hid为前述的函数识别符。
[0093]
本发明还提供一种私钥生成系统,用于实现上述私钥生成方法。所述私钥生成系统包括系统kgc和用户的密码设备。
[0094]
本发明提供的私钥生成方法可用于数字签名生成方法以生成数字签名;还可用于数字签名验证方法,以验证数字签名。
[0095]
同理,本发明提供的私钥生成系统可用于数字签名生成系统以生成数字签名;还可用于数字签名验证系统,以验证数字签名。
[0096]
因此,本发明还提供一种上述私钥生成方法的应用,把上述私钥生成方法用于生成数字签名sig,即本发明还提供一种数字签名生成方法,所述数字签名生成方法采用上述私钥生成方法所生成的用户kgc签名主公钥p
pubs2
,用户签名私钥dsu,识别符hid和消息m为输入参数,对消息m按照gm/t0044.2-2016《sm9标识密码算法第2部分数字签名算法》中第6章的算法和流程对消息m进行数字签名,从而得到数字签名sig,签名者将ida,p
pubs2
,系统
kgc对p
pubs2
的签名sig2,m,sig发送给签名验证者。
[0097]
此外,本发明还提供一种上述私钥生成方法的应用,把上述私钥生成方法用于验证数字签名,即本发明还提供一种数字签名验证方法,所述数字签名验证方法采用上述私钥生成方法所生成的用户kgc签名主公钥p
pubs2
、系统kgc对p
pubs2
的签名sig2、函数识别符hid、用户标识ida、消息m和数字签名sig做为输入参数,按照gm/t0044.2-2016《sm9标识密码算法第2部分数字签名算法》中第7章的算法和流程对p
pubs2
和sig2进行数字签名验证且通过,对消息m和sig进行数字签名验证且通过,并向系统kgc查询ida和p
pubs2
状态是否为有效,若ida和p
pubs2
状态为有效可知若消息m未被篡改,则数字签名可验证通过,否则数字签名验证失败。即在本发明的数字签名验证方法中,首先验证系统kgc对p
pubs2
的签名sig2和消息m的数字签名sig,验证通过后再查询系统kgc对p
pubs2
的状态是否有效,其原因在于可能存在密码设备丢失的情况,此时,用户将注销p
pubs2
,以避免被盗的密码设备被用于签名。
[0098]
本发明还提供一种私钥生成系统的应用,所述私钥生成系统用于数字签名生成系统,即本发明还提供一种包括所述私钥生成系统的数字签名生成系统,所述数字签名生成系统用于实现上述数字签名生成方法。
[0099]
本发明还提供一种私钥生成系统的应用,所述私钥生成系统用于数字签名验证系统,即本发明还提供一种包括所述私钥生成系统的数字签名验证系统,所述数字签名验证系统用于实现上述数字签名验证方法。
[0100]
本发明还提供一种计算机设备,包括储存器、第一处理器及储存在所述存储器上并可在所述第一处理器上运行的第一计算机程序,第一计算机程序被第一处理器执行时实现上述的私钥生成方法、数字签名生成方法和数字签名验证方法中的一中方法或几种方法。
[0101]
本发明还提供一种计算机可读存储介质,用于储存第二计算机程序,第二计算机程序可被至少一个第二处理器所执行,以使至少一个第二处理器执行上述的私钥生成方法、数字签名生成方法和数字签名验证方法中的一中方法或几种方法。
[0102]
本发明的私钥生成方法有效解决了在单系统密钥生成中心下,由于系统密钥生成中心拥有所有用户私钥所导致的、用户对签名私钥的生成无法进行控制的安全问题。本发明的数字签名生成方法和数字签名验证方法使用上述私钥生成方法生成的私钥,进行sm9的数字签名生成和验证,本发明的数字签名生成方法和数字签名验证方法兼容现有密码设备接口,并且无需更改实现代码。
[0103]
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1