CN113381850B - 一种sm9用户密钥生成方法、装置、设备及存储介质 - Google Patents
一种sm9用户密钥生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113381850B CN113381850B CN202110712817.1A CN202110712817A CN113381850B CN 113381850 B CN113381850 B CN 113381850B CN 202110712817 A CN202110712817 A CN 202110712817A CN 113381850 B CN113381850 B CN 113381850B
- Authority
- CN
- China
- Prior art keywords
- kgc
- kgcs
- user
- private key
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3026—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本公开涉及一种SM9用户密钥生成方法、装置、电子设备及存储介质;在本方案中,需要t方KGC联合生成用户的密钥分量,最终由用户根据每个KGC发送的密钥分量生成最终密钥,从而提高密钥安全性;并且,本方案在初始化时,采用门限(t,n)秘密分享作为基础工具分享主私钥,在密钥生成阶段采用加法同态加密算法交互数据,使得本方案只需要t个KGC参与生成密钥,而t‑1个KGC参与不能生成密钥,从而降低密钥生成阶段所需的KGC数量,达到门限阈值最优。
Description
技术领域
本公开涉及信息安全技术领域,特别涉及一种SM9用户密钥生成方法、装置、设备及存储介质。
背景技术
现代密码学的设计思想是将安全性归结到密钥上,密码算法都是公开的,所以,如何安全有效的管理密钥是个重要的问题。在基于标识的标准密码算法SM9中,用户的私钥均是由密管中心KGC(Key Generation Center)生成,然后分发给用户,即SM9用户的私钥不能做到仅用户自己掌握,因此具有安全隐患。目前已有的解决方案可分为两类,一种是采用多方KGC联合生成私钥,每个KGC分别给用户下发部分私钥,最终由用户计算出真正的私钥;另一种是采用门限机制,由KGC联合生成、下发用户私钥。但是,前者需要每个KGC都参与,当某个KGC不能正常工作时,系统无法正常下发私钥,缺乏健壮性。而后者现有的解决方案不能做到阈值最优,即为了抵抗t-1方合谋攻击,至少需要2t-1个KGC在线为用户生成私钥,密钥生成阶段所需的KGC数量较多,需要花费较多的资源。
发明内容
本公开的目的是提供一种SM9用户密钥生成方法、装置、设备及存储介质,以提高密钥的安全性,减少密钥生成阶段所需的KGC数量,避免资源浪费。
为了实现上述目的,本公开提供一种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个私钥分量生成最终密钥。
可选的,所述每个KGC根据本KGC的主私钥、参与生成密钥的KGC数量以及在有限域的多项式,分别生成与n个KGC对应的n个第一份额,包括:
确定n个KGC中第i个KGC在有限域的多项式为:
fi(xj)=ksi+ai,1xj+...+ai,t-1xj t-1;其中,fi(xj)为第i个KGC生成的发给第j个KGC的第一份额,xj为第j个KGC的身份标识,ksi为第i个KGC的主私钥,ai,1~ai,t-1为有限域FN中的随机数;1≤i≤n,1≤j≤n;
每个KGC基于所述多项式生成与n个KGC对应的n个第一份额。
可选的,所述每个KGC根据本KGC及其他KGC发送的第一份额计算第二份额,包括:
每个KGC计算本KGC生成的第一份额与其他KGC发送的第一份额之和,作为每个KGC的第二份额。
可选的,所述t个KGC利用本KGC的第二份额及目标用户的用户ID联合生成与每个KGC对应的私钥分量,包括:
t个KGC中的目标KGC通过预定算法对所述目标KGC的第二份额以及携带所述用户ID的密码函数生成结果进行运算,得到第一运算结果;根据所述目标KGC的第二份额生成第一中间参数;
所述目标KGC获取其他KGC的第二运算结果及第二中间参数,所述第二运算结果为通过所述预定算法对其他KGC的第二份额运算得到,所述第二中间参数为根据其他KGC的第二份额生成;
所述目标KGC利用所述第二运算结果、第一随机数及预定算法得到第三运算结果,并获取其他KGC的第四运算结果,所述第四运算结果为其他KGC利用所述第一运算结果、第二随机数及所述预定算法得到的;
所述目标KGC根据所述目标KGC的第二份额、所述密码函数生成结果及所述第一随机数及所述第二随机数生成第三中间参数,并获取其他KGC发送的第四中间参数,所述第四中间参数为根据其他KGC的第二份额及第一随机数及所述第二随机数生成的;
每个KGC根据所述第一中间参数、所述第二中间参数、所述第三中间参数、所述第四中间参数计算与每个KGC对应的私钥分量。
可选的,所述预定算法为加法同态加密算法。
可选的,所述目标KGC利用所述第二运算结果、第一随机数及预定算法得到第三运算结果之前,还包括:
每个KGC生成自身随机数、以及本KGC与其他KGC间的随机数;
则所述第一随机数包括:所述目标KGC的自身随机数、所述目标KGC与其他KGC间的随机数;
所述第二随机数包括:其他KGC的自身随机数,其他KGC与所述目标KGC间的随机数。
可选的,t个KGC将生成的私钥分量发送至所述目标用户,以便所述目标用户根据t个KGC发送的t个私钥分量生成最终密钥,包括:
t个KGC将生成的私钥分量通过安全信道发送至所述目标用户,以便所述目标用户将t个KGC发送的t个私钥分量之和作为最终密钥。
为实现上述目的,本公开还提供了一种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个私钥分量生成最终密钥。
为实现上述目的,本公开还提供了一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述的SM9用户密钥生成方法的步骤。
为实现上述目的,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的SM9用户密钥生成方法的步骤。
通过上述技术方案可知,本公开提供了一种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个私钥分量生成最终密钥。可见,本方案需要t方KGC联合生成用户的密钥分量,最终由用户根据每个KGC发送的密钥分量生成最终密钥,从而提高密钥安全性;并且,本方案在初始化时,采用门限(t,n)秘密分享作为基础工具分享主私钥,在密钥生成阶段采用加法同态加密算法交互数据,使得本方案只需要t个KGC参与生成密钥,而t-1个KGC参与不能生成密钥,从而降低密钥生成阶段所需的KGC数量,达到门限阈值最优。
本公开还同时提供了一种SM9用户密钥生成装置、设备及存储介质,具有相同的有益效果,在此不再赘述。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本公开实施例提供的一种SM9用户密钥生成方法流程示意图;
图2为本公开实施例提供的另一种SM9用户密钥生成方法流程示意图;
图3为本公开实施例提供的两方KGC运算过程示意图;
图4为本公开实施例提供的一种SM9用户密钥生成装置结构示意图;
图5为本公开实施例提供的一种电子设备结构示意图。
具体实施方式
本公开的核心是提供一种SM9用户密钥生成方法、装置、设备及存储介质,以提高密钥的安全性,减少密钥生成阶段所需的KGC数量,避免资源浪费。
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
参见图1,为本公开实施例提供的一种SM9用户密钥生成方法流程示意图;可以看出,本方案所述的SM9用户密钥生成方法具体包括如下步骤:
S101、每个KGC根据本KGC的主私钥、参与生成密钥的KGC数量以及在有限域的多项式,分别生成与n个KGC对应的n个第一份额,并发送至对应的KGC;其中,n为KGC的总数,t为n个KGC中参与生成密钥的KGC数量;
需要说明的是,本实施例中的S101及S102为n方KGC的初始化过程,n表示所有KGC的总数量,参与生成密钥的KGC数量则用t表示,n和t均为正整数,n和t之间的关系可表示为:t≤n。本方案在初始化时,采用门限(t,n)秘密分享作为基础工具分享主私钥,使得本方案只需要t个KGC参与生成密钥即可,而t-1个KGC则不能生成密钥,从而降低密钥生成阶段所需的KGC数量,达到门限阈值最优。
在本实施例中,假定n方密钥生成中心分别为KGCi,i表示n个KGC/t个KGC中的第i个KGC,第i个KGCi的身份标识为xi∈[1,N-1],1≤i≤n。在初始化之前,KGCi产生随机数ksi∈[1,N-1]作为系统主私钥,KGCi还需要生成在有限域FN上的多项式:fi(x)=ksi+ai,1x+...+ai,t-1xt-1,其中ai,1~ai,t-1为有限域FN中的随机数。每个KGC的主私钥及多项式确定后,便需要计算n个KGC中的第i个KGCi向第j个KGCj发送的第一份额,即fi(xj)=ksi+ai,1xj+...+ai,t- 1xj t-1,fi(xj)为第i个KGC生成的发给第j个KGC的第一份额,xj为第j个KGC的身份标识,ksi为第i个KGC的主私钥,ai,1~ai,t-1为有限域FN中的随机数;1≤i≤n,1≤j≤n。
通过上述过程,使得每个KGC均生成与每个KGC主私钥对应的第一份额,如:共有n个KGC,第1个KGC1生成f1(x1)作为自身的第一份额,KGC1生成f1(x2)作为KGC2的第一份额,并将f1(x2)发送至KGC2,KGC1生成f1(x3)作为KGC3的第一份额,并将f1(x3)发送至KGC3,以此类推,直至将生成的f1(xn)作为KGCn的第一份额,并将f1(xn)发送至KGCn。同理,KGC2~KGCn也需要执行上述过程,生成自身的第一份额及发送至其他KGC的第一份额。
S102、每个KGC根据本KGC及其他KGC发送的第一份额计算第二份额;
需要说明的是,执行上述S101后,每个KGC均会生成自身及发送至其他KGC的第一份额,也就是说,每个KGC均会有自身的第一份额以及其他KGC发送的第一份额,在本实施例中,每个KGC需要计算本KGC生成的第一份额与其他KGC发送的第一份额之和,作为每个KGC的第二份额。如:n个KGC中的第i个KGCi需要计算其中,di为KGCi的第二份额,fj(xi)为KGCj向KGCi发送的第一份额,通过该方式,使得每个KGC均可获得对应的第二份额,该第二份额会作为新密钥参与后续私钥分量生成过程,这种采用门限(t,n)秘密分享作为基础工具分享主私钥,使得本方案只需要t个KGC参与生成密钥即可,而t-1个KGC则不能生成密钥,从而降低密钥生成阶段所需的KGC数量,达到门限阈值最优。
S103、t个KGC利用本KGC的第二份额及目标用户的用户ID联合生成与每个KGC对应的私钥分量,并发送至所述目标用户,以便所述目标用户根据t个KGC发送的t个私钥分量生成最终密钥。
在本实施例中,每个KGC通过上述初始化过程得到对应的第二份额后,参与生成密钥的t个KGC会基于第二份额联合计算生成用户的私钥分量,用户接收到t个KGC发送的私钥分量后,会通过相关计算得到最终密钥。
综上可见,在本实施例中,不需要n个KGC全部参与生成密钥,只需要n个KGC中的t个KGC参与即可,也即:本实施例可以在n个KGC中存在n-t个不能正常工作的KGC时,仍然正常的下发私钥分量,从而提高系统的健壮性;并且,本方案需要t方KGC联合生成用户的密钥分量,最终由用户根据每个KGC发送的密钥分量生成最终密钥,使得最终密钥只有用户自己掌握,从而提高密钥安全性;进一步,本方案在初始化时,采用门限(t,n)秘密分享作为基础工具分享主私钥,使得本方案只需要t个KGC参与生成密钥,而t-1个KGC参与不能生成密钥,在密钥生成阶段采用加法同态加密算法交互数据,从而降低密钥生成阶段所需的KGC数量,达到门限阈值最优。
参见图2,为本公开实施例提供的另一种SM9用户密钥生成方法流程示意图;在本实施例中,提供了一种KGC联合生成私钥分量的具体方式,本实施例所述的SM9用户密钥生成方法具体包括如下步骤:
S201、每个KGC根据本KGC的主私钥、参与生成密钥的KGC数量以及在有限域的多项式,分别生成与n个KGC对应的n个第一份额,并发送至对应的KGC;其中,n为KGC的总数,t为n个KGC中参与生成密钥的KGC数量;
S202、每个KGC计算本KGC生成的第一份额与其他KGC发送的第一份额之和,作为每个KGC的第二份额;
需要说明的是,本实施例中的S201~S202与上一实施例中的S101~S102相同,具体说明参见上一实施例,在此便不再赘述。
S203、t个KGC中的目标KGC通过预定算法对目标KGC的第二份额以及携带用户ID的密码函数生成结果进行运算,得到第一运算结果;根据目标KGC的第二份额生成第一中间参数;
具体来说,本实施例在生成私钥分量时,可通过t个KGC联合生成私钥分量,且该私钥分量是t个KGC中每个KGC均会生成的。在计算私钥分量时,本方案首先从t个KGC中选择目标KGC,该目标KGC为t个KGC中的其中一个KGC,为了方便说明,在本实施例中,选取t个KGC中的第1个KGC作为目标KGC,并记为:KGC1;而对于t个KGC中除KGC1之外的KGC,在本实施例中用其他KGC表示,也即:本实施例中的其他KGC为t个KGC中除目标KGC(KGC1)之外的KGC。确定目标KGC之后,目标KGC需要通过预定算法计算第一运算结果,在本实施例中,该预定算法可以为加法同态加密算法,在交互运算过程中,采用同态加密算法可隐藏敏感信息。
需要说明的是,参与运算的t方密钥生成中心会分别与每个KGC对应的拉格朗日系数,该拉格朗日系数会参与私钥分量的联合运算。在本实施例中,将第i个KGC的拉格朗日系数为:/>因此,KGC1生成第一运算结果及第一中间参数时,是根据KGC1的拉格朗日系数/>KGC1的第二份额d1、以及携带用户ID的密码函数生成结果H(IDA||hid,N),进行加法同态加密算法得到第一运算结果,并根据KGC1的拉格朗日系数/>KGC1的第二份额d1及生产元P1生成第一中间参数。
其中,第一运算结果为:第一中间参数α1为:/>其中,E为加法同态加密算法,/>为KGC1的拉格朗日系数,d1为KGC1的第二份额,H为杂凑函数派生的密码函数,IDA为用户ID,hid为私钥生成函数识别符,N为循环群G1的阶数,P1为G1的生成元。
S204、目标KGC获取其他KGC的第二运算结果及第二中间参数,第二运算结果为通过预定算法对其他KGC的第二份额运算得到,第二中间参数为根据其他KGC的第二份额生成;
可以理解的是,目标KGC计算第一运算结果及第一中间参数时,其他KGC也在计算第二运算结果及第二中间参数;第二运算结果为根据其他KGC的拉格朗日系数及第二份额di进行加法同态加密算法运算得到,第二中间参数为根据其他KGC的拉格朗日系数/>第二份额di及生产元P1生成的。
其中,第二运算结果为:第二中间参数αi为/>在本步骤中,第二运算结果及第二中间参数为t个KGC中除目标KGC(KGC1)之外的KGC计算生成的,因此本步骤中i的取值范围为:2≤i≤t,也即:t个KGC中的第1个KGC计算第一运算结果及第一中间参数,第2~t个KGC均计算第二运算结果及第二中间参数。
S205、目标KGC利用第二运算结果、第一随机数及预定算法得到第三运算结果,并获取其他KGC的第四运算结果,第四运算结果为其他KGC利用第一运算结果、第二随机数及预定算法得到的;
需要说明的是,在本实施例中,每个KGC还需要生成自身随机数、以及本KGC与其他KGC间的随机数,例如:KGCi生成的随机数为vij,1≤j≤t,令自身随机数ri为:vii。KGC1在计算第三运算结果时,不需要对其他KGC发送的第二运算结果解密,可直接利用加法同态加密算法的性质在密文基础上进行计算。并且,KGCi在计算第三运算结果时,还需要确定第一随机数,该第一随机数包括:KGCi的自身随机数ri、KGCi与其他KGC间的随机数vij。也即:本实施例中的第三运算结果为:/>其中,i=1,2≤j≤t。
本实施例中的其他KGC在计算第四运算结果时,也不需要对目标KGC发送的第一运算结果进行解密,可直接利用加法同态加密算法的性质在密文基础上进行计算。并且,其他KGC在计算第四运算结果时,还需要确定第二随机数,该第二随机数包括:其他KGC的自身随机数ri,其他KGC与目标KGC间的随机数vi1。也即:本实施例中的第四运算结果为:/>其中,2≤i≤t。
S206、目标KGC根据目标KGC的第二份额、密码函数生成结果及第一随机数及第二随机数生成第三中间参数,并获取其他KGC发送的第四中间参数,第四中间参数为根据其他KGC的第二份额及第一随机数及所述第二随机数生成的;
在本实施例中,KGC1计算的第三中间参数T1为:其中的/>表示每个KGC的自身随机数之和,/>表示其他KGC与目标KGC间的随机数之和,表示目标KGC与其他KGC间的随机数之和。其他KGC(KGCi,2≤i≤t)计算的第四中间参数Ti为:/>2≤i≤t,/>表示每个KGC的自身随机数之和,/>表示t个KGC中的每个KGC与当前的KGCi间的随机数之和(/>中不包括j=i的情况),/>表示当前的KGCi与t个KGC中的每个KGC间的随机数之和(/>中不包括j=i的情况)。
S207、每个KGC根据所述第一中间参数、所述第二中间参数、所述第三中间参数、所述第四中间参数计算与每个KGC对应的私钥分量。
需要说明的是,在上述交互过程中,KGC计算出第一运算结果、第一中间参数、第二运算结果、第二中间参数、第三运算结果、第四运算结果、第三中间参数以及第四中间参数后均进行公开,将上述各个参数公开后,每个KGC均可通过安全信道主动获取已公开的任意参数,或者KGC可通过安全信道向其他KGC发送已公开的任意参数,也即:上述各个参数对于每个KGC来说,均为已知的参数。
在本实施例中,KGCi需要先计算第五中间参数其中,/>为:KGC1的第三中间参数T1与其他KGC(KGCi,2≤i≤t)的第四中间参数Ti之和,ri为KGCi的自身随机数。再计算第六中间参数/>第六中间参数为KGC1的第一中间参数α1与其他KGC(KGCi,2≤i≤t)的第二中间参数αi之和。并根据第五中间参数Li及第六中间参数β计算私钥分量γi=Liβ。至此,t个KGC中的每个KGC均生成了一个私钥分量,每个KGC均需要将其生成的私钥分量发送至用户,以便用户自己生成最终密钥。
S208、t个KGC将生成的私钥分量通过安全信道发送至所述目标用户,以便所述目标用户将t个KGC发送的t个私钥分量之和作为最终密钥。
可以理解的,目标用户接收到t个KGC发送的t个私钥分量之后,便可将这t个私钥分量按照预定算法生成最终密钥,在本实施例中,该预定算法为加法,也即:目标用户将t个私钥分量之和作为最终密钥。需要说明的是,目标用户生成最终密钥的方式在此并不限定,本实施例仅以加法为例进行说明。
综上可见,本方案通过t方KGC联合生成用户的密钥分量时,可采用同态加密算法隐藏敏感信息,提高交互过程的安全性;并且,t方KGC在进行交互时,可通过交互的各个运算结果及中间参数生成私钥分量,目标用户可根据各个KGC发送的私钥分量即可生成最终密钥,最终密钥只有用户自己掌握,从而提高密钥安全性。
基于上述实施例可知,本公开使用加法同态加密作为基本工具设计分布式(t,n)门限KGC生成机制,具备最优门限阈值的性质。并且,(t,n)门限方案使得t-1个KGC不能共谋恢复用户的私钥,只需t个KGC在线即可为用户生成私钥。在本实施例中,以(2,3)门限的私钥生成机制,即两方KGC参与运算为例描述本公开的详细过程。
由于KGC的总数n为3,因此在初始化时需要3方KGC参与:KGC1、KGC2、KGC3,假定三方KGC1、KGC2和KGC3的身份标识分别为x1、x2、x3∈[1,N-1],系统主私钥分别为ks1、ks2和ks3,则三方KGC初始化过程如下:
1、KGCi生成多项式为:fi(x)=ksi+aix,ai∈[1,N-1],1≤i≤3;则KGCi生成第一份额fi(xj),其中:1≤i≤3,1≤j≤3,并将fi(xj)发送给KGCj。如:KGC1生成f1(x1)作为本KGC1的第一份额,KGC1生成f1(x2)作为KGC2的第一份额,并将f1(x2)发送至KGC2,KGC1生成f1(x3)作为KGC3的第一份额,并将f1(x3)发送至KGC3,同理,KGC2~KGC3也需要执行上述过程,生成自己的第一份额及发送至其他KGC的第一份额。
2、KGCi计算第二份额di:di=f1(xi)+f2(xi)+f3(xi);如:若KGCi为KGC1,则d1=f1(x1)+f2(x1)+f3(x1),其中,f1(x1)为KGC1自己生成的第一份额,f2(x1)为KGC2发送给KGC1的第一份额,f3(x1)为KGC3发送给KGC1的第一份额。至此,每个KGC均会生成自己的第二份额。
在目标用户申请私钥时,设定目标用户的ID为IDA,由于t为2,即表示只有两方KGC参与计算,在此假定为:KGC1和KGC2参与密钥生成,其中,KGC1为选定的目标KGC。KGC1和KGC2需要计算各自的拉格朗日系数,根据公式可生成KGC1的拉格朗日系数/>为:/>KGC2的拉格朗日系数/>为:/>参见图3,为本公开实施例提供的两方KGC运算过程示意图,图3所述的运算方法如下:
2、KGC1生成随机数v11、v12,其中v11为KGC1的自身随机数r1,即:r1=v11;KGC1计算并公开第三运算结果:KGC2生成随机数v21、v22,其中v22为KGC2的自身随机数r2;KGC2计算并公开第四运算结果:/>
4、KGC1计算第五中间参数:L1=(T1+T2)-1r1,KGC1计算第六中间参数:β=α1+α2,根据第五中间参数L1及第六中间参数β计算私钥分量γ1=[L1]β,并将γ1发送给目标用户;
5、KGC2计算第五中间参数:L2=(T1+T2)-1r2,KGC2计算第六中间参数:β=α1+α2,根据第五中间参数L2及第六中间参数β计算私钥分量γ2=[L2]β,并将γ2发送给目标用户;
6、用户接收到KGC1发送的γ1及KGC2发送的γ2后,在本地计算最终私钥dsA,其中:
dsA=γ1+γ2=[L1+L2]β=(T1+T2)-1(r1+r2)[ks1+ks2+ks3]P1==[(ks1+ks2+ks3+H(IDA||hid,N))-1(ks1+ks2+ks3)]P1。
需要说明的是,在目前的SM9标准中,用户私钥的生成方式如下:G1和G2均为N阶循环群,N为素数;P1和P2分别为G1、G2的生成元。KGC产生随机数ks∈[1,N-1]作为系统主私钥,Ppub=[ks]P2作为主公钥。hid表示私钥生成函数识别符,H为杂凑函数派生的密码函数,像集为[1,N-1],设用户标识为IDA,KGC计算t1=H(IDA||hid,N)+ks,t2=kst1 -1mod N,用户私钥为dsA=[t2]P1。可见,用户通过本方案得到的最终私钥格式与标准算法一致。
综上可见,本方案中的用户私钥由KGC以门限方式联合计算生成,用户私钥由自己运算得到,最终用户私钥格式与SM9标准算法中一致;在初始化时,采用门限(t,n)秘密分享作为基础工具,实现了门限阈值最优,只需t个KGC参与运算即可生成用户私钥,t-1个KGC得不到用户私钥,KGC在交互运算过程中采用同态加密算法隐藏敏感信息,通过该方式,可使得本方案在提高密钥安全性的基础上,降低了私钥计算过程中所需的参与KGC数量,由2t-1个降到t个,避免浪费较多的资源。
下面对本发明实施例提供的密钥生成装置、设备及存储介质进行介绍,下文描述的密钥生成装置、设备及存储介质与上文描述的密钥生成方法可以相互参照。
参见图4,本公开实施例提供的一种SM9用户密钥生成装置结构示意图,如图四所示,该密钥生成装置100包括:
第一份额生成模块110,用于根据每个KGC的本KGC的主私钥、参与生成密钥的KGC数量以及在有限域的多项式,分别生成与n个KGC对应的n个第一份额,并发送至对应的KGC;
第二份额生成模块120,用于根据每个KGC的本KGC及其他KGC发送的第一份额计算第二份额;其中,n为KGC的总数,t为n个KGC中参与生成密钥的KGC数量;
私钥分量生成模块130,用于根据t个KGC的本KGC的第二份额及目标用户的用户ID联合生成与每个KGC对应的私钥分量;
私钥分量发送模块140,用于将每个KGC对应的私钥分量发送至所述目标用户,以便所述目标用户根据t个KGC发送的t个私钥分量生成最终密钥。
其中,第一份额生成模块110包括:
多项式确定单元,用于确定n个KGC中第i个KGC在有限域的多项式为:fi(xj)=ksi+ai,1xj+...+ai,t-1xj t-1;其中,fi(xj)为第i个KGC生成的发给第j个KGC的第一份额,xj为第j个KGC的身份标识,ksi为第i个KGC的主私钥,ai,1~ai,t-1为有限域FN中的随机数;1≤i≤n,1≤j≤n;
第一份额生成单元,用于通过每个KGC基于所述多项式生成与n个KGC对应的n个第一份额。
其中,所述第二份额生成模块120具体用于:每个KGC计算本KGC生成的第一份额与其他KGC发送的第一份额之和,作为每个KGC的第二份额。
其中,所述私钥分量生成模块130包括:
第一运算模块,用于通过t个KGC中的目标KGC通过预定算法对所述目标KGC的第二份额以及携带所述用户ID的密码函数生成结果进行运算,得到第一运算结果;根据所述目标KGC的第二份额生成第一中间参数;
第一获取模块,用于通过所述目标KGC获取其他KGC的第二运算结果及第二中间参数,所述第二运算结果为通过所述预定算法对其他KGC的第二份额运算得到,所述第二中间参数为根据其他KGC的第二份额生成;
第二运算模块,用于所述目标KGC利用所述第二运算结果、第一随机数及预定算法得到第三运算结果;
第二获取模块,用于获取其他KGC的第四运算结果,所述第四运算结果为其他KGC利用所述第一运算结果、第二随机数及所述预定算法得到的;
第三运算模块,用于通过所述目标KGC根据所述目标KGC的第二份额、所述密码函数生成结果及所述第一随机数及所述第二随机数生成第三中间参数;
第三获取模块,用于获取其他KGC发送的第四中间参数,所述第四中间参数为根据其他KGC的第二份额及第一随机数及所述第二随机数生成的;
第四运算模块,用于通过每个KGC根据所述第一中间参数、所述第二中间参数、所述第三中间参数、所述第四中间参数计算与每个KGC对应的私钥分量。
其中,所述预定算法为加法同态加密算法。
其中,所述装置还包括:随机数生成模块,用于通过每个KGC生成自身随机数、以及本KGC与其他KGC间的随机数;
则所述第一随机数包括:所述目标KGC的自身随机数、所述目标KGC与其他KGC间的随机数;所述第二随机数包括:其他KGC的自身随机数,其他KGC与所述目标KGC间的随机数。
其中,私钥分量发送模块140具体用于:将t个KGC生成的私钥分量通过安全信道发送至所述目标用户,以便所述目标用户将t个KGC发送的t个私钥分量之和作为最终密钥。
图5是根据一示例性实施例示出的一种电子设备结构示意图。如图5所示,该电子设备200可以包括:
存储器201,上存储有计算机程序;
处理器202,用于执行所述存储器中的所述计算机程序,以实现上述任意方法实施例所述的SM9用户密钥生成方法的步骤。
进一步,该电子设备200还可以包括多媒体组件203,信息输入/信息输出(I/O)接口204,以及通信组件205中的一者或多者。
其中,处理器202用于控制该电子设备200的整体操作,以完成上述的应用于电子设备中的SM9用户密钥生成方法中的全部或部分步骤;存储器201用于存储各种类型的数据以支持在该电子设备200的操作,这些数据例如可以包括用于在该电子设备200上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器201可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
多媒体组件203可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器201或通过通信组件205发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口204为处理器202和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件205用于该电子设备200与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件205可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备200可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述给出的SM9用户密钥生成方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述密钥生成方法的步骤。例如,该计算机可读存储介质可以为上述存储有程序指令的存储器201,上述程序指令可由电子设备200的处理器202执行以完成上述密钥生成方法。
Claims (10)
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在有限域的多项式为:
fi(xj)=ksi+ai,1xj+...+ai,t-1xj t-1;其中,fi(xj)为第i个KGC生成的发给第j个KGC的第一份额,xj为第j个KGC的身份标识,ksi为第i个KGC的主私钥,ai,1~ai,t-1为有限域FN中的随机数;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利用所述第二运算结果、第一随机数及预定算法得到第三运算结果,并获取其他KGC的第四运算结果,所述第四运算结果为其他KGC利用所述第一运算结果、第二随机数及所述预定算法得到的;
所述目标KGC根据所述目标KGC的第二份额、所述密码函数生成结果及所述第一随机数及所述第二随机数生成第三中间参数,并获取其他KGC发送的第四中间参数,所述第四中间参数为根据其他KGC的第二份额及第一随机数及所述第二随机数生成的;
每个KGC根据所述第一中间参数、所述第二中间参数、所述第三中间参数、所述第四中间参数计算与每个KGC对应的私钥分量。
5.根据权利要求4所述的SM9用户密钥生成方法,其特征在于,所述预定算法为加法同态加密算法。
6.根据权利要求4所述的SM9用户密钥生成方法,其特征在于,所述目标KGC利用所述第二运算结果、第一随机数及预定算法得到第三运算结果之前,还包括:
每个KGC生成自身随机数、以及本KGC与其他KGC间的随机数;
则所述第一随机数包括:所述目标KGC的自身随机数、所述目标KGC与其他KGC间的随机数;
所述第二随机数包括:其他KGC的自身随机数,其他KGC与所述目标KGC间的随机数。
7.根据权利要求1至6中任意一项所述的SM9用户密钥生成方法,其特征在于,t个KGC将生成的私钥分量发送至所述目标用户,以便所述目标用户根据t个KGC发送的t个私钥分量生成最终密钥,包括:
t个KGC将生成的私钥分量通过安全信道发送至所述目标用户,以便所述目标用户将t个KGC发送的t个私钥分量之和作为最终密钥。
8.一种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个私钥分量生成最终密钥。
9.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1至7中任一项所述的SM9用户密钥生成方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7中任一项所述的SM9用户密钥生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110712817.1A CN113381850B (zh) | 2021-06-25 | 2021-06-25 | 一种sm9用户密钥生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110712817.1A CN113381850B (zh) | 2021-06-25 | 2021-06-25 | 一种sm9用户密钥生成方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113381850A CN113381850A (zh) | 2021-09-10 |
CN113381850B true CN113381850B (zh) | 2023-03-31 |
Family
ID=77579239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110712817.1A Active CN113381850B (zh) | 2021-06-25 | 2021-06-25 | 一种sm9用户密钥生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113381850B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079412A (zh) * | 2014-07-08 | 2014-10-01 | 甘肃省电力设计院 | 基于智能电网身份安全的无可信pkg的门限代理签名方法 |
CN104320259A (zh) * | 2014-10-31 | 2015-01-28 | 西安电子科技大学 | 基于Schnorr签名算法的无证书签名方法 |
CN112003696A (zh) * | 2020-08-25 | 2020-11-27 | 成都卫士通信息产业股份有限公司 | Sm9密钥生成方法、系统、电子设备、装置及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102223629B (zh) * | 2009-11-26 | 2013-11-13 | 中国人民解放军空军工程大学 | 一种移动自组网门限密钥分发方法 |
US8732481B2 (en) * | 2012-01-30 | 2014-05-20 | Hewlett-Packard Development Company, L.P. | Object with identity based encryption |
US11310039B2 (en) * | 2018-11-20 | 2022-04-19 | Board Of Regents, The University Of Texas System | Lightweight distributed signature protocol for mobile computing and IoT devices |
CN110166239B (zh) * | 2019-06-04 | 2023-01-06 | 成都卫士通信息产业股份有限公司 | 用户私钥生成方法、系统、可读存储介质及电子设备 |
CN110855425A (zh) * | 2019-10-25 | 2020-02-28 | 武汉大学 | 一种轻量级多方协同sm9密钥生成、密文解密方法与介质 |
CN111222879A (zh) * | 2019-12-31 | 2020-06-02 | 航天信息股份有限公司 | 一种适用于联盟链的无证书认证方法及系统 |
CN112260830B (zh) * | 2020-10-21 | 2021-11-19 | 青海交通职业技术学院 | 秘密共享机制下无证书门限签密方法 |
CN112398648B (zh) * | 2020-11-05 | 2023-12-29 | 华控清交信息科技(北京)有限公司 | 一种密钥管理方法、装置和用于密钥管理的装置 |
CN112906038B (zh) * | 2021-03-26 | 2023-04-07 | 成都卫士通信息产业股份有限公司 | 基于sm9密钥的门限化处理方法、装置、设备及存储介质 |
-
2021
- 2021-06-25 CN CN202110712817.1A patent/CN113381850B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079412A (zh) * | 2014-07-08 | 2014-10-01 | 甘肃省电力设计院 | 基于智能电网身份安全的无可信pkg的门限代理签名方法 |
CN104320259A (zh) * | 2014-10-31 | 2015-01-28 | 西安电子科技大学 | 基于Schnorr签名算法的无证书签名方法 |
CN112003696A (zh) * | 2020-08-25 | 2020-11-27 | 成都卫士通信息产业股份有限公司 | Sm9密钥生成方法、系统、电子设备、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
"A verifiable dynamic threshold key management scheme based on bilinear pairing without a trusted party in mobile ad hoc network";Xianyong Meng;《2012 IEEE International Conference on Automation and Logistics》;20120831;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113381850A (zh) | 2021-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112906044B (zh) | 多方安全计算方法、装置、设备及存储介质 | |
CN107196926B (zh) | 一种云外包隐私集合比较方法与装置 | |
JP6507171B2 (ja) | 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法 | |
CN112906039B (zh) | 一种无证书分布式签名方法、装置、介质和电子设备 | |
CN111901111B (zh) | Sm9密钥生成方法、装置、系统及可读存储介质 | |
CN112003696B (zh) | Sm9密钥生成方法、系统、电子设备、装置及存储介质 | |
CN112906038B (zh) | 基于sm9密钥的门限化处理方法、装置、设备及存储介质 | |
CN111404952B (zh) | 变电站数据加密传输方法、装置、计算机设备和存储介质 | |
CN112926075B (zh) | 一种sm9密钥生成方法、装置、设备及存储介质 | |
US8923519B2 (en) | Method of efficient secure function evaluation using resettable tamper-resistant hardware tokens | |
CN112953700B (zh) | 一种提升安全多方计算效率的方法、系统及存储介质 | |
CN114070556B (zh) | 一种门限环签名方法、装置、电子设备及可读存储介质 | |
CN107888385B (zh) | Rsa模数生成方法、rsa密钥生成方法、计算机设备及介质 | |
CN113300835A (zh) | 一种加密方案接收者确定方法、主动秘密分享方法 | |
CN113381850B (zh) | 一种sm9用户密钥生成方法、装置、设备及存储介质 | |
CN117134900A (zh) | 一种实现非对称加密的结构及控制方法 | |
CN114362912A (zh) | 基于分布式密钥中心的标识密码生成方法、电子设备及介质 | |
CN112926074B (zh) | 一种sm9密钥门限化生成方法、装置、设备及存储介质 | |
CN115567202B (zh) | 一种隐私数据可信比较方法、系统、设备及计算机介质 | |
CN110837633B (zh) | 智能凭证实现方法、系统及可读存储介质 | |
CN110958115B (zh) | 基于sm9白盒的数字签名装置、方法、存储介质及设备 | |
CN114095157B (zh) | 密钥管理方法、装置、计算机设备及可读存储介质 | |
CN116599662A (zh) | 针对弱口令的审计方法及装置 | |
CN117278200A (zh) | 基于多方同态加密的数据处理方法、装置、设备和介质 | |
Begum et al. | Two tier protocol for hierarchical access control in medical image transmission |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |