一种SM9用户密钥生成方法、装置、设备及存储介质制造方法及图纸

技术编号:30020984 阅读:29 留言:0更新日期:2021-09-11 06:41
本公开涉及一种SM9用户密钥生成方法、装置、电子设备及存储介质;在本方案中,需要t方KGC联合生成用户的密钥分量,最终由用户根据每个KGC发送的密钥分量生成最终密钥,从而提高密钥安全性;并且,本方案在初始化时,采用门限(t,n)秘密分享作为基础工具分享主私钥,在密钥生成阶段采用加法同态加密算法交互数据,使得本方案只需要t个KGC参与生成密钥,而t

【技术实现步骤摘要】
一种SM9用户密钥生成方法、装置、设备及存储介质


[0001]本公开涉及信息安全
,特别涉及一种SM9用户密钥生成方法、装置、设备及存储介质。

技术介绍

[0002]现代密码学的设计思想是将安全性归结到密钥上,密码算法都是公开的,所以,如何安全有效的管理密钥是个重要的问题。在基于标识的标准密码算法SM9中,用户的私钥均是由密管中心KGC(Key Generation Center)生成,然后分发给用户,即SM9用户的私钥不能做到仅用户自己掌握,因此具有安全隐患。目前已有的解决方案可分为两类,一种是采用多方KGC联合生成私钥,每个KGC分别给用户下发部分私钥,最终由用户计算出真正的私钥;另一种是采用门限机制,由KGC联合生成、下发用户私钥。但是,前者需要每个KGC都参与,当某个KGC不能正常工作时,系统无法正常下发私钥,缺乏健壮性。而后者现有的解决方案不能做到阈值最优,即为了抵抗t

1方合谋攻击,至少需要2t

1个KGC在线为用户生成私钥,密钥生成阶段所需的KGC数量较多,需要花费较多的资源。

技术实现思路

[0003]本公开的目的是提供一种SM9用户密钥生成方法、装置、设备及存储介质,以提高密钥的安全性,减少密钥生成阶段所需的KGC数量,避免资源浪费。
[0004]为了实现上述目的,本公开提供一种SM9用户密钥生成方法,包括:
[0005]每个KGC根据本KGC的主私钥、参与生成密钥的KGC数量以及在有限域的多项式,分别生成与n个KGC对应的n个第一份额,并发送至对应的KGC;每个KGC根据本KGC及其他KGC发送的第一份额计算第二份额;其中,n为KGC的总数,t为n个KGC中参与生成密钥的KGC数量;
[0006]t个KGC利用本KGC的第二份额及目标用户的用户ID联合生成与每个KGC对应的私钥分量,并发送至所述目标用户,以便所述目标用户根据t个KGC发送的t个私钥分量生成最终密钥。
[0007]可选的,所述每个KGC根据本KGC的主私钥、参与生成密钥的KGC数量以及在有限域的多项式,分别生成与n个KGC对应的n个第一份额,包括:
[0008]确定n个KGC中第i个KGC在有限域的多项式为:
[0009]f
i
(x
j
)=ks
i
+a
i,1
x
j
+...+a
i,t
‑1x
jt
‑1;其中,f
i
(x
j
)为第i个KGC生成的发给第j个KGC的第一份额,x
j
为第j个KGC的身份标识,ks
i
为第i个KGC的主私钥,a
i,1
~a
i,t
‑1为有限域F
N
中的随机数;1≤i≤n,1≤j≤n;
[0010]每个KGC基于所述多项式生成与n个KGC对应的n个第一份额。
[0011]可选的,所述每个KGC根据本KGC及其他KGC发送的第一份额计算第二份额,包括:
[0012]每个KGC计算本KGC生成的第一份额与其他KGC发送的第一份额之和,作为每个KGC的第二份额。
[0013]可选的,所述t个KGC利用本KGC的第二份额及目标用户的用户ID联合生成与每个
KGC对应的私钥分量,包括:
[0014]t个KGC中的目标KGC通过预定算法对所述目标KGC的第二份额以及携带所述用户ID的密码函数生成结果进行运算,得到第一运算结果;根据所述目标KGC的第二份额生成第一中间参数;
[0015]所述目标KGC获取其他KGC的第二运算结果及第二中间参数,所述第二运算结果为通过所述预定算法对其他KGC的第二份额运算得到,所述第二中间参数为根据其他KGC的第二份额生成;
[0016]所述目标KGC利用所述第二运算结果、第一随机数及预定算法得到第三运算结果,并获取其他KGC的第四运算结果,所述第四运算结果为其他KGC利用所述第一运算结果、第二随机数及所述预定算法得到的;
[0017]所述目标KGC根据所述目标KGC的第二份额、所述密码函数生成结果及所述第一随机数及所述第二随机数生成第三中间参数,并获取其他KGC发送的第四中间参数,所述第四中间参数为根据其他KGC的第二份额及第一随机数及所述第二随机数生成的;
[0018]每个KGC根据所述第一中间参数、所述第二中间参数、所述第三中间参数、所述第四中间参数计算与每个KGC对应的私钥分量。
[0019]可选的,所述预定算法为加法同态加密算法。
[0020]可选的,所述目标KGC利用所述第二运算结果、第一随机数及预定算法得到第三运算结果之前,还包括:
[0021]每个KGC生成自身随机数、以及本KGC与其他KGC间的随机数;
[0022]则所述第一随机数包括:所述目标KGC的自身随机数、所述目标KGC与其他KGC间的随机数;
[0023]所述第二随机数包括:其他KGC的自身随机数,其他KGC与所述目标KGC间的随机数。
[0024]可选的,t个KGC将生成的私钥分量发送至所述目标用户,以便所述目标用户根据t个KGC发送的t个私钥分量生成最终密钥,包括:
[0025]t个KGC将生成的私钥分量通过安全信道发送至所述目标用户,以便所述目标用户将t个KGC发送的t个私钥分量之和作为最终密钥。
[0026]为实现上述目的,本公开还提供了一种SM9用户密钥生成装置,包括:
[0027]第一份额生成模块,用于根据每个KGC的本KGC的主私钥、参与生成密钥的KGC数量以及在有限域的多项式,分别生成与n个KGC对应的n个第一份额,并发送至对应的KGC;
[0028]第二份额生成模块,用于根据每个KGC的本KGC及其他KGC发送的第一份额计算第二份额;其中,n为KGC的总数,t为n个KGC中参与生成密钥的KGC数量;
[0029]私钥分量生成模块,用于根据t个KGC的本KGC的第二份额及目标用户的用户ID联合生成与每个KGC对应的私钥分量,并发送至所述目标用户,以便所述目标用户根据t个KGC发送的t个私钥分量生成最终密钥。
[0030]为实现上述目的,本公开还提供了一种电子设备,包括:
[0031]存储器,其上存储有计算机程序;
[0032]处理器,用于执行所述存储器中的所述计算机程序,以实现上述的SM9用户密钥生成方法的步骤。
[0033]为实现上述目的,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的SM9用户密钥生成方法的步骤。
[0034]通过上述技术方案可知,本公开提供了一种SM9用户密钥生成方法,包括:每个KGC根据本KGC的主私钥、参与生成密钥的KGC数量以及在有限域的多项式,分别生成与n个KGC对应的n个第一份额,并发送至本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种SM9用户密钥生成方法,其特征在于,包括:每个密管中心KGC根据本KGC的主私钥、参与生成密钥的KGC数量以及在有限域的多项式,分别生成与n个KGC对应的n个第一份额,并发送至对应的KGC;每个KGC根据本KGC及其他KGC发送的第一份额计算第二份额;其中,n为KGC的总数,t为n个KGC中参与生成密钥的KGC数量;t个KGC利用本KGC的第二份额及目标用户的用户ID联合生成与每个KGC对应的私钥分量,并发送至所述目标用户,以便所述目标用户根据t个KGC发送的t个私钥分量生成最终密钥。2.根据权利要求1所述的SM9用户密钥生成方法,其特征在于,每个KGC根据本KGC的主私钥、参与生成密钥的KGC数量以及在有限域的多项式,分别生成与n个KGC对应的n个第一份额,包括:确定n个KGC中第i个KGC在有限域的多项式为:f
i
(x
j
)=ks
i
+a
i,1
x
j
+...+a
i,t
‑1x
jt
‑1;其中,f
i
(x
j
)为第i个KGC生成的发给第j个KGC的第一份额,x
j
为第j个KGC的身份标识,ks
i
为第i个KGC的主私钥,a
i,1
~a
i,t
‑1为有限域F
N
中的随机数;1≤i≤n,1≤j≤n;每个KGC基于所述多项式生成与n个KGC对应的n个第一份额。3.根据权利要求2所述的SM9用户密钥生成方法,其特征在于,所述每个KGC根据本KGC及其他KGC发送的第一份额计算第二份额,包括:每个KGC计算本KGC生成的第一份额与其他KGC发送的第一份额之和,作为每个KGC的第二份额。4.根据权利要求1所述的SM9用户密钥生成方法,其特征在于,所述t个KGC利用本KGC的第二份额及目标用户的用户ID联合生成与每个KGC对应的私钥分量,包括:t个KGC中的目标KGC通过预定算法对所述目标KGC的第二份额以及携带所述用户ID的密码函数生成结果进行运算,得到第一运算结果;根据所述目标KGC的第二份额生成第一中间参数;所述目标KGC获取其他KGC的第二运算结果及第二中间参数,所述第二运算结果为通过所述预定算法对其他KGC的第二份额运算得到,所述第二中间参数为根据其他KGC的第二份额生成;所述目标KGC利用所述第二运...

【专利技术属性】
技术研发人员:王现方刘仁章
申请(专利权)人:成都卫士通信息产业股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1