CN113259097A - 基于cpk的可多态配置的密钥生成方法及装置 - Google Patents
基于cpk的可多态配置的密钥生成方法及装置 Download PDFInfo
- Publication number
- CN113259097A CN113259097A CN202110521343.2A CN202110521343A CN113259097A CN 113259097 A CN113259097 A CN 113259097A CN 202110521343 A CN202110521343 A CN 202110521343A CN 113259097 A CN113259097 A CN 113259097A
- Authority
- CN
- China
- Prior art keywords
- alice
- private key
- factor
- key
- key factor
- 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.)
- Granted
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/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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明实施例提供一种基于CPK的可多态配置的密钥生成方法及装置,属于信息安全技术领域。所述方法包括:生成用户标识对应的自选私钥因子,并向密钥生成中心发送密钥申请消息,所述密钥申请消息中包括所述用户标识;接收所述密钥生成中心返回的密钥信息,所述密钥信息中包括所述用户标识对应的分发私钥因子;利用所述自选私钥因子与所述分发私钥因子生成所述用户标识对应的复合私钥。本发明实施例适用于加解密与数字签名过程。
Description
技术领域
本发明涉及信息安全技术领域,具体地涉及一种基于CPK的可多态配置的密钥生成方法及装置。
背景技术
随着信息化技术的发展,通过网络进行信息交流和办公已成为主要的工作方式,如何保障通信双方的真实性鉴别及通信内容的安全已成为基本的安全需求。尤其是随着物联网的兴起,物与物之间如何有效的进行真假鉴别,如何保障数据传输的机密性、真实性与完整性,以及数据源的真实性已成为制约物联网发展的关键。而采用公钥密码技术,以数字签名实现通信双方的真假鉴别和数字信封技术实现密钥的安全传递以建立安全通道是目前的主流安全方案,如何有效的管理物联网中的海量公钥是物联网安全方案的重点。
传统公钥密码体制中,例如采用RSA、DSA、ECC等算法的系统,公钥的产生和用户的标识没有关系,需要由第三方CA(Certificate Authority,认证中心)发放证书,即对用户的公钥和标识进行签名,将二者绑定,这个基于传统公钥密码系统的以CA为中心的体系叫做公钥基础架构,即PKI(Public Key Infrastructure)。这种PKI-CA的密码生产与管理体制,在进行安全业务过程时,需要CA中心提供证书查询与认证支持,这种高度依赖中心的方案时延高,安全通信时的附加数据量大,在物联网方面应用难以满足需求。
标识密码体制是一种新型的公钥管理体制,密钥通过标识计算生成,简化了公钥管理的复杂性,且可实现端对端的直接鉴别,无中心依赖,是物联网理想的公钥管理方案。组合公钥(Combined Public Key,缩写为CPK)体制是标识密码体制的典型代表,将标识通过密码算法实现了与密钥的绑定,实现标识等效公钥,所以可以通过标识的管理实现公钥的管理,以公钥的计算过程替代了公钥的证明,使整个体系得以简化和高效。
然而现有技术中的组合公钥密钥生成方法存在一些不足之处,例如:用户不能参与私钥生成问题,即CPK的私钥都是由密钥生成中心完全分发的,中心掌握所有用户的私钥,而按照数字签名法的要求,签名私钥应由用户生成或参与生成,确保用户私钥只有用户自己知晓。
本发明实施例可以完全解决上述问题。
发明内容
本发明实施例的目的是提供一种基于CPK的可多态配置的密钥生成方法及装置,采用客户端与密钥生成中心协同方式完成密钥的生成,提高了用户密钥的安全性、用户对于私钥的自主可控性。
为了实现上述目的,本发明实施例提供一种基于CPK的可多态配置的密钥生成方法,所述方法应用于客户端,包括:生成用户标识对应的自选私钥因子,并向密钥生成中心发送密钥申请消息,所述密钥申请消息中包括所述用户标识;接收所述密钥生成中心返回的密钥信息,所述密钥信息中包括所述用户标识对应的分发私钥因子;利用所述自选私钥因子与所述分发私钥因子生成所述用户标识对应的复合私钥。
进一步地,所述方法还包括:利用所述密钥生成中心公布的椭圆曲线基点与所述自选私钥因子,得到所述用户标识对应的自选公钥因子,其中,所述密钥申请消息中还包括所述自选公钥因子。
进一步地,所述利用所述自选私钥因子与所述分发私钥因子生成所述用户标识对应的复合私钥包括:根据cskAlice=(uskAlice+dskAlice)mod n,得到所述用户Alice的标识对应的复合私钥cskAlice,其中,uskAlice为所述用户标识对应的所述自选私钥因子,dskAlice为所述用户标识对应的所述分发私钥因子。
进一步地,所述密钥信息中还包括所述用户标识对应的伴随公钥因子以及所述伴随公钥因子的截止时间,并通过下述方式得到所述用户标识对应的复合公钥:根据所述用户标识以及预设因子,利用哈希算法得到映射序列;根据所述映射序列以及所述密钥生成中心公布的公钥矩阵,得到所述用户标识对应的身份公钥因子;根据预设系数算法,得到所述用户标识对应的校验系数;根据所述校验系数、身份公钥因子以及伴随公钥因子,得到所述用户标识对应的复合公钥。
进一步地,所述根据所述用户标识以及预设因子,利用哈希算法得到映射序列包括:根据δ=hψ(IDAlice||*),得到所述映射序列δ,其中,IDAlice为所述用户Alice的标识,*为所述预设因子,hψ为哈希算法ψ,||表示拼接符号。
进一步地,所述根据所述映射序列以及所述密钥生成中心公布的公钥矩阵,得到所述用户标识对应的身份公钥因子包括:将所述映射序列按照从高到低的顺序,以指定位数进行分组,得到指定组数;根据所述指定组数中每组中的数值,依次得到所述公钥矩阵中每列对应的行坐标Ik,其中,0≤k≤t-1,t为所述指定组数;根据得到所述用户Alice的标识对应的身份公钥因子IPKAlice,其中,PKk为在所述公钥矩阵中坐标(Ik,k)对应的公钥矩阵元素。
进一步地,所述预设系数算法包括:根据α=hSM3(IDAlice||APKAlice||*ETAlice)lmod2m,l=0,1,32≤m≤256,得到所述校验系数α,其中,hSM3为哈希函数SM3,IDAlice为所述用户Alice的标识,APKAlice为所述伴随公钥因子,ETAlice为所述APKAlice的截止时间,l、m为设定常数,||表示拼接符号,*表示其后的内容为可选因子。
进一步地,所述根据所述校验系数、身份公钥因子以及伴随公钥因子,得到所述用户标识对应的复合公钥包括:根据CPKAlice=α·IPKAlice+APKAlice,得到所述用户Alice的标识对应的复合公钥CPKAlice,其中,α为所述校验系数,IPKAlice为所述身份公钥因子,APKAlice为所述伴随公钥因子。
相应地,本发明实施例还提供一种基于CPK的可多态配置的密钥生成方法,所述方法应用于密钥生成中心,包括:当接收到客户端发送的密钥申请消息时,生成掩藏私钥因子,所述密钥申请消息中包括用户标识;根据所述用户标识以及预设因子,利用哈希算法得到映射序列,并根据所述映射序列以及预设的私钥矩阵,得到所述用户标识对应的身份私钥因子;根据预设系数算法,得到所述用户标识对应的校验系数;根据所述校验系数、所述身份私钥因子以及所述掩藏私钥因子,得到所述用户标识对应的分发私钥因子;向所述客户端发送包括所述分发私钥因子的密钥信息,以便所述客户端利用其本地生成的所述用户标识对应的自选私钥因子与所述分发私钥因子生成所述用户标识对应的复合私钥。
进一步地,所述根据所述用户标识以及预设因子,利用哈希算法得到映射序列包括:根据δ=hψ(IDAlice||*),得到所述映射序列δ,其中,IDAlice为所述用户Alice的标识,*为所述预设因子,hψ为哈希算法ψ,||表示拼接符号。
进一步地,所述根据所述映射序列以及预设的私钥矩阵,得到所述用户标识对应的身份私钥因子包括:将所述映射序列按照从高到低的顺序,以指定位数进行分组,得到指定组数;根据所述指定组数中每组中的数值,依次得到所述预设的私钥矩阵中每列对应的行坐标Ik,其中,0≤k≤t-1,t为所述指定组数;根据得到所述用户Alice的标识对应的身份私钥因子iskAlice,其中,skk为在所述私钥矩阵中坐标(Ik,k)对应的私钥矩阵元素。
进一步地,所述密钥申请消息中还包括所述用户标识对应的自选公钥因子,所述方法还包括:利用所述密钥生成中心公布的椭圆曲线基点与所述掩藏私钥因子,得到掩藏公钥因子;根据所述自选公钥因子与所述掩藏公钥因子,得到所述用户标识对应的伴随公钥因子,并设置所述伴随公钥因子的截止时间。
进一步地,所述根据所述自选公钥因子与所述掩藏公钥因子,得到所述用户标识对应的伴随公钥因子包括:根据APKAlice=UPKAlice+HPKAlice,得到所述用户Alice的标识对应的伴随公钥因子APKAlice,其中,UPKAlice为所述用户标识对应的所述自选公钥因子,HPKAlice为所述用户标识对应的所述掩藏公钥因子。
进一步地,所述预设系数算法包括:根据α=hSM3(IDAlice||APKAlice||*ETAlice)lmod2m,l=0,1,32≤m≤256,得到所述校验系数α,其中,hSM3为哈希函数SM3,IDAlice为所述用户Alice的标识,APKAlice为所述伴随公钥因子,ETAlice为所述APKAlice的截止时间,l、m为设定常数,||表示拼接符号,*表示其后的内容为可选因子。
进一步地,所述根据所述校验系数、所述身份私钥因子以及所述掩藏私钥因子,得到所述用户标识对应的分发私钥因子包括:根据dskAlice=(α·iskAlice+hskAlice)mod n,得到所述用户Alice的标识对应的分发私钥因子dskAlice,其中,α为所述校验系数,iskAlice为所述用户标识对应的所述身份私钥因子,hskAlice为所述用户标识对应的所述掩藏私钥因子。
进一步地,所述密钥信息还包括所述伴随公钥因子以及所述伴随公钥因子的截止时间。
相应地,本发明实施例还提供一种基于CPK的可多态配置的密钥生成装置,所述装置应用于客户端,包括:自选因子生成模块,用于生成用户标识对应的自选私钥因子;通信模块,用于向密钥生成中心发送密钥申请消息,所述密钥申请消息中包括所述用户标识;所述通信模块还用于接收所述密钥生成中心返回的密钥信息,所述密钥信息中包括所述用户标识对应的分发私钥因子;私钥生成模块,用于利用所述自选私钥因子与所述分发私钥因子生成所述用户标识对应的复合私钥。
相应地,本发明实施例还提供一种基于CPK的可多态配置的密钥生成装置,所述装置应用于密钥生成中心,包括:通信模块,用于接收客户端发送的密钥申请消息,所述密钥申请消息中包括用户标识;因子生成模块,用于生成掩藏私钥因子;身份私钥因子生成模块,用于根据所述用户标识以及预设因子,利用哈希算法得到映射序列,并根据所述映射序列以及预设的私钥矩阵,得到所述用户标识对应的身份私钥因子;系数生成模块,用于根据预设系数算法,得到所述用户标识对应的校验系数;分发私钥生成模块,用于根据所述校验系数、所述身份私钥因子以及所述掩藏私钥因子,得到所述用户标识对应的分发私钥因子;所述通信模块还用于向所述客户端发送包括所述分发私钥因子的密钥信息,以便所述客户端利用其本地生成的所述用户标识对应的自选私钥因子与所述分发私钥因子生成所述用户标识对应的复合私钥。
相应地,本发明实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有指令,该指令用于使得机器执行如上所述应用于客户端的基于CPK的可多态配置的密钥生成方法和/或如上所述应用于密钥生成中心的基于CPK的可多态配置的密钥生成方法。
通过上述技术方案,用户所使用的复合私钥是由用户利用密钥生成中心返回的分发私钥因子和其生成的自选私钥因子自行生成,最终所使用的复合私钥,只能用户自己所有,而密钥生成中心是无法获得的,保证了复合私钥的安全性以及用户对于私钥的主控性。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1是本发明实施例提供的组合公钥矩阵示意图;
图2是本发明实施例提供的一种基于CPK的可多态配置的密钥生成方法的流程示意图;
图3是本发明实施例提供的另一种基于CPK的可多态配置的密钥生成方法的流程示意图;
图4是本发明实施例提供的又一种基于CPK的可多态配置的密钥生成方法的流程示意图;
图5是本发明实施例提供的客户端Alice、UMC与KGC之间的交互过程的流程示意图;
图6是本发明实施例提供的用户A和用户B之间的交互过程的流程示意图;
图7是本发明实施例提供的一种基于CPK的可多态配置的密钥生成装置的结构示意图;
图8是本发明实施例提供的另一种基于CPK的可多态配置的密钥生成装置的结构示意图。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的记号进行说明。
CPK基于自定义ECC(Elliptic Curves Cryptography,椭圆曲线密码)或SM2(当需要使用国家标准算法时采用)。采用自定义ECC算法时,遵循CPK9.0及其以上的版本。
采用SM2时,遵循国标SM2算法。不失一般性,记有限域为Fq,其中q是某个素数p的方幂。椭圆曲线E由y2=(x3+ax+b)mod q和参数(a,b,G,n,q)定义。其中a,b是系数,a,b,x,y∈Fq,其阶为n,基点为G,且G=(x,y),x,y∈Fq。
KGC:表示密钥生成中心(Key Generation Center)。KGC负责生成算法的所有公开参数,并参与或负责实体复合公、私钥的生成。
CPKU:用户(或实体)U的复合公钥,是通用表示方法。如实体A、B的复合公钥分别表示为CPKA,CPKB,Alice的复合公钥表示为CPKAlice,Bob的复合公钥表示为CPKBob,等等。
cskU:用户(或实体)U的复合私钥,是通用表示方法。如实体A、B的复合私钥分别表示为cskA,cskB,Alice的复合私钥表示为cskAlice,Bob的复合私钥表示为cskBob,等等。
hψ(IV,M):表示用哈希算法ψ(包括但不限于国标SM3算法)和初始向量IV对消息M进行哈希,当使用标准的初始向量时,简记为hψ(M);当ψ为默认算法时,简记为h(M)。
表示使用安全加密算法和密钥k加密消息M,当k为对称密钥时,其为对称加密;k为非对称密钥时,其为非对称加密。如ESM4(k,M)表示采用的是国标对称分组SM4算法,ESM2(CPKU,M)表示采用的是国标SM2算法,以用户U的复合公钥CPKU加密消息M。当为默认算法时,也简记为E(k,M)。
表示采用解密算法以密钥k解密密文C,如DSM4(KAB,C)表示采用的算法是SM4,以会话密钥KAB解密密文C。同理,DSM2(cskU,C)表示用户U以自己的复合私钥cskU解密密文C。当为默认算法时,也简记为D(k,C)。
CPK巧妙利用了ECC算法的特性。ECC具有以下复合特性:任意多对私钥之和与对应的公钥之和构成新的公、私钥对。设私钥ri对应的公钥为Ri=riP,于是其和为(r1+r2+…+rm)mod n=r,则对应公钥之和为(R1+R2+…+Rm)mod n=R。那么,r和R刚好形成新的公、私钥对。这是因为CPK正是基于这一基本特性设计的。
本发明实施例提供的用户私钥由客户端用户自定义、密钥生成中心(KeyGeneration Center,KGC)定义和标识与矩阵计算生成的身份私钥因子等三部分构成,并最终由客户端用户自己复合得到最终用户所使用的复合私钥,确保了用户所使用的复合私钥只有用户自己所有,密钥生成中心无法获得,符合了国家电子签名法关于私钥的安全性要求。而与复合私钥对应的复合公钥则是由验证方或使用方根据对方的伴随公钥、标识和公钥矩阵在本地计算生成,不需要依赖密钥生成中心。另外,本申请是基于CPK的可多态配置的密钥生成,是以CPK为基础,将实体标识对应到实体密钥,并可多态配置的一种新的密钥生成技术。下面将详细描述本发明实施例关于基于CPK的密钥生成方法的具体实施方式。
在实施密钥生成方法之前,首先,由密钥生成中心根据选定的椭圆曲线参数,生成s×t个随机的ECC的密钥对(rij,Rij),0≤i≤s-1,0≤j≤t-1,其中s和t为2的次方数,即log2s,log2t的值均为整数,通常取s=t,而且满足Rij=rij·G,,rij是私钥矩阵元素,Rij为公钥矩阵元素。另外,在生成s×t个密钥对时,要求任意两个rij不同,若是存在两个相同的rij,则视为对应的密钥对为无效密钥对,需要重新生成。上述s×t个私钥矩阵元素构成s×t的私钥矩阵(SKM),s×t个公钥矩阵元素构成s×t的公钥矩阵(PKM),如图1所示。在下述基于CPK的密钥生成方法中,将会应用上述私钥矩阵与公钥矩阵生成密钥。其中,私钥矩阵加密保存在所述密钥生成中心,对应的公钥矩阵被公布,任何用户均可获取公钥矩阵。
实施例一
图2是本发明实施例提供的一种基于CPK的密钥生成方法的流程示意图。如图2所示,所述方法应用于客户端,包括如下步骤:
步骤201,生成用户标识对应的自选私钥因子,并向密钥生成中心发送密钥申请消息,所述密钥申请消息中包括所述用户标识。
其中,以用户Alice为例,用户Alice在客户端随机生成其用户标识IDAlice对应的自选私钥因子uskAlice,为了申请私钥,用户将包括其用户标识的密钥申请消息发送至所述密钥生成中心。
另外,在生成自选私钥因子的同时,可利用所述密钥生成中心公布的椭圆曲线基点与所述自选私钥因子,得到所述用户标识对应的自选公钥因子UPKAlice,例如,UPKAlice=uskAlice·G,并在发送所述密钥申请消息时,将所述自选公钥因子放置在所述密钥申请消息中,与用户标识一同发送至所述密钥生成中心,以便所述密钥生成中心根据所述自选公钥因子生成所述用户标识对应的伴随公钥因子,其用于生成所述用户标识对应的复合公钥。
步骤202,接收所述密钥生成中心返回的密钥信息,所述密钥信息中包括所述用户标识对应的分发私钥因子;
步骤203,利用所述自选私钥因子与所述分发私钥因子生成所述用户标识对应的复合私钥。
其中,根据cskAlice=(uskAlice+dskAlice)mod n,得到所述用户标识对应的复合私钥cskAlice,其中,uskAlice为所述用户标识对应的所述自选私钥因子,dskAlice为所述用户标识对应的所述分发私钥因子。
其中,所述复合私钥可用于数据签名过程。
通过本发明实施例,虽然密钥生成中心也负责生成标识的私钥,但也仅是最终所应用的复合私钥中的一部分,即分发私钥因子,而最终所使用的复合私钥是由用户利用分发私钥因子和其生成的自选私钥因子自行生成,只能用户自己所有,而密钥生成中心是无法获得的,保证了复合私钥的安全性以及用户对于私钥的主控性。
另外,所述密钥信息中还包括所述用户标识对应的伴随公钥因子以及所述伴随公钥因子的截止时间,以便用户生成复合公钥的时候使用。
其中,所有用户均可在获取到自己或者其他用户的用户标识以及伴随公钥因子之后,计算得到对应的复合公钥。下面将提供用户在获得伴随公钥因子之后,得到所述用户标识对应的复合公钥的方式:
(1)根据所述用户标识以及预设因子,利用哈希算法得到映射序列。
其中,根据δ=hψ(IDAlice||*),得到所述映射序列δ,其中,IDAlice为所述用户标识,*为所述预设因子,hψ为哈希算法(例如,可以为SHA1、SHA256、MD5和SM3等),||表示拼接符号。所述预设因子是一种灵活组合,在密钥生成中心初始化时确定该预设因子是由哪些元素组合而成,例如,可为空,也可以是伴随公钥因子与其对应的截止时间的拼接。其中,对于映射序列的输出要求不少于需要的位数。若公钥矩阵的规模为32×32,则要求输出不低于160位。
(2)根据所述映射序列以及所述密钥生成中心公布的公钥矩阵,得到所述用户标识对应的身份公钥因子。
其中,将所述映射序列δ按照从高到低的顺序,以指定位数进行分组,得到指定组数。所述指定位数可通过公钥矩阵的行数得到,例如log2s,其中s为公钥矩阵的行数,以s=32为例,则所述指定位数为log2 32=5,即指定位数为5bit,所述指定组数为所述公钥矩阵的列数,以t=32为例,则所述指定组数为32组。然后,根据所述指定组数中每组中的数值,依次得到所述公钥矩阵中每列对应的行坐标Ik,其中,0≤j≤t-1,t为所述指定组数。之后,根据坐标(Ik,k),从所述公钥矩阵得到所述坐标对应的公钥矩阵元素,即得到t个公钥矩阵元素,记为PKk。最后,根据得到所述用户标识对应的身份公钥因子IPKAlice,其中,Pkk为在所述公钥矩阵中坐标(Ik,k)对应的公钥矩阵元素。
(3)根据预设系数算法,得到所述用户标识对应的校验系数。
其中,可根据α=hSM3(IDAlice||APKAlice||*ETAlice)lmod 2m,l=0,1,32≤m≤256,得到所述校验系数α,其中,hSM3为哈希函数SM3,IDAlice为所述用户Alice的标识,APKAlice为所述伴随公钥因子,ETAlice为所述APKAlice的截止时间,l、m为设定常数,||表示拼接符号,*表示其后的内容为可选因子。
其中,当l=0时,所述校验系数为常数1;当l=1,m=256时,校验系数为α=hSM3(IDAlice||APKAlice||*ETAlice);当l=1,32≤m<256时,校验系数为hSM3(IDAlice||APKAlice||*ETAlice)mod 2m。具体选择使用哪一种预设系数算法,可由所述密钥生成中心初始化时,设置所要运行默认的预设系数算法。
另外,对于“*”后内容的选择,可根据应用场景的具体要求,以及与映射序列中所使用的预设因子共同配合决定。也就是说,映射序列中的预设因子与预设系数算法中的“*”后内容的选择需要根据应用场景选配,具体如何选配将在后面进行描述。
(4)根据所述校验系数、身份公钥因子以及伴随公钥因子,得到所述用户标识对应的复合公钥。
其中,根据CPKAlice=α·IPKAlice+APKAlice,得到所述用户标识对应的复合公钥CPKAlice,其中,α为所述校验系数,IPKAlice为所述身份公钥因子,APKAlice为所述伴随公钥因子。
对于用户的复合公钥可根据其对应的伴随公钥因子、用户标识以及公钥矩阵在本地计算生成,不需要依赖密钥中心。另外,由于伴随公钥因子与该用户标识对应的自选公钥因子有关,即由用户控制,也保证了最终复合公钥的安全性。另外,相对于相关技术中的若是在由密钥生成中心生成标识私钥,若是其不能完全保证标识私钥的安全性,则当一定量的标识私钥泄露或被窃取后,会导致其他用户的私钥皆不安全的问题,而由于本申请实施例中的复合私钥是由客户端用户自定义、密钥生成中心定义和标识与矩阵计算生成的身份私钥因子等三部分构成,并最终由客户端用户自己复合得到最终用户所使用的复合私钥,即使存在密钥生成中心泄漏私钥的问题,其泄漏的也仅是复合私钥的一部分,不会导致整个复合私钥的安全问题,以及其他用户的复合私钥的安全问题,而且由于用户自己掌握其复合私钥的生成,确保复合私钥只有用户自己知晓,进一步保证了复合私钥的安全性以及用户对于私钥的主控性。
实施例二
图3是本发明实施例提供的一种基于CPK的可多态配置的密钥生成方法的流程示意图。如图3所示,所述方法应用于密钥生成中心,包括如下步骤:
步骤301,接收客户端发送的密钥申请消息,所述密钥申请消息中包括用户标识;
步骤302,当接收到所述密钥申请消息时,生成掩藏私钥因子。
其中,在本发明实施例中以所接收的用户Alice的用户标识为例,即所述密钥申请消息中包括用户标识IDAlice。
密钥生成中心随机生成掩藏私钥因子hskAlice。另外,在生成掩藏私钥因子的同时,还可利用所述密钥生成中心公布的椭圆曲线基点与所述掩藏私钥因子,得到掩藏公钥因子HPKAlice,例如,HPKAlice=hskAlice·G。
另外,根据所述自选公钥因子与所述掩藏公钥因子,得到所述用户标识对应的伴随公钥因子,例如,根据APKAlice=UPKAlice+HPKAlice,得到所述用户标识对应的伴随公钥因子APKAlice。另外,设置所述伴随公钥因子的截止时间,即所述伴随公钥因子的有效期,当所述伴随公钥因子的截止时间到期时,则需要重新申请,从而需要更新用户标识对应的复合私钥,进一步保证复合私钥的安全性。
步骤303,根据所述用户标识以及预设因子,利用哈希算法得到映射序列,并根据所述映射序列以及预设的私钥矩阵,得到所述用户标识对应的身份私钥因子。
其中,根据δ=hψ(IDAlice||*),得到所述映射序列δ,其中,*为所述预设因子,hψ为哈希算法ψ(例如,可以为SHA1、SHA256、MD5和SM3等),||表示拼接符号。所述预设因子是一种灵活组合,在密钥生成中心初始化时确定该预设因子是由哪些元素组合而成,例如,可为空,也可以是伴随公钥因子与其对应的截止时间的拼接。其中,对于映射序列的输出要求不少于需要的位数。若公钥矩阵的规模为32×32,则要求输出不低于160位。
在得到所述映射序列之后,将所述映射序列δ按照从高到低的顺序,以指定位数进行分组,得到指定组数。所述指定位数可通过私钥矩阵的行数得到,例如log2s,其中s为私钥矩阵的行数,以s=32为例,则所述指定位数为log2 32=5,即指定位数为5bit,所述指定组数为所述私钥矩阵的列数,以t=32为例,则所述指定组数为32组。然后,根据所述指定组数中每组中的数值,依次得到所述预设的私钥矩阵中每列对应的行坐标Ik,其中,0≤k≤t-1,t为所述指定组数。之后,根据坐标(Ik,k),从所述预设的私钥矩阵得到所述坐标对应的私钥矩阵元素,即得到t个私钥矩阵元素,记为skk。最后,根据得到所述用户标识对应的身份私钥因子iskAlice,其中,skk为在所述私钥矩阵中坐标(Ik,k)对应的私钥矩阵元素。
步骤304,根据预设系数算法,得到所述用户标识对应的校验系数。
其中,可根据α=hSM3(IDAlice||APKAlice||*ETAlice)lmod 2m,l=0,1,32≤m≤256,得到所述校验系数α,其中,hsM3为哈希函数SM3,IDAlice为所述用户Alice的标识,APKAlice为所述伴随公钥因子,ETAlice为所述APKAlice的截止时间,l、m为设定常数,||表示拼接符号,*表示其后的内容为可选因子。
其中,当l=0时,所述校验系数为常数1;当l=1,m=256时,校验系数为α=hSM3(IDAlice||APKAlice||*ETAlice);当l=1,32≤m<256时,校验系数为hSM3(IDAlice||APKAlice||*ETAlice)mod 2m。具体选择使用哪一种预设系数算法,可由所述密钥生成中心初始化时,设置所要运行默认的预设系数算法。
另外,对于“*”后内容的选择,可根据应用场景的具体要求,以及与映射序列中所使用的预设因子共同配合决定。也就是说,映射序列中的预设因子与预设系数算法中的“*”后内容的选择需要根据应用场景选配,具体如何选配将在后面进行描述。
步骤305,根据所述校验系数、所述身份私钥因子以及所述掩藏私钥因子,得到所述用户标识对应的分发私钥因子。
其中,根据dskAlice=(α·iskAlice+hskAlice)mod n,得到所述用户标识对应的分发私钥因子dskAlice,其中,α为所述校验系数,iskAlice为所述用户标识对应的所述身份私钥因子,hskAlice为所述用户标识对应的所述掩藏私钥因子。
步骤306,向所述客户端发送包括所述分发私钥因子的密钥信息,以便所述客户端利用其本地生成的所述用户标识对应的自选私钥因子与所述分发私钥因子生成所述用户标识对应的复合私钥。
其中,所述密钥信息还可包括所述伴随公钥因子以及所述伴随公钥因子的截止时间。
通过本发明实施例,虽然密钥生成中心也负责生成标识的私钥,但也仅是最终所应用的复合私钥中的一部分,即分发私钥因子,即使其无法保证分发私钥因子的安全性,以及泄露或者被窃取了一定量的分发私钥因子,也不会导致最终复合私钥的不安全问题,以及其他用户复合私钥的不安全问题,因为本发明实施例中最终所使用的复合私钥是由用户利用分发私钥因子和其生成的自选私钥因子自行生成,只能用户自己所有,而密钥生成中心是无法获得的,即使存在密钥生成中心泄漏私钥的问题,其泄漏的也仅是复合私钥的一部分,不会导致整个复合私钥的安全问题,以及其他用户的复合私钥的安全问题,而且由于用户自己掌握其复合私钥的生成,确保复合私钥只有用户自己知晓,进一步保证了复合私钥的安全性以及用户对于私钥的主控性。
实施例三
为了便于理解客户端与密钥生成中心之间的交互过程,在本发明实施例中提供一种基于CPK的密钥生成方法的流程示意图,如图4所示,其中客户端用户Alice与KGC之间的交互过程包括如下步骤:
步骤401,用户预要申请密钥之前,生成第一随机数N0,并将所述第一随机数作为与KGC之间的会话密钥;
步骤402,利用KGC的公钥加密所述会话密钥,将密文C1发送至所述密钥生成中心;
步骤403,KGC接收密文C1,利用预置的私钥解密得到会话密钥N0,并向用户返回安全通道建立成功的提示;
步骤404,当用户接收KGC发送的安全通道建立成功的提示后,随机生成自选密钥因子(uskAlice,UPKAlice),包括自选私钥因子uskAlice和自选公钥因子UPKAlice,并将用户标识IDAlice和自选公钥因子UPKAlice利用会话密钥加密发送给KGC;
步骤405,KGC利用会话密钥解密得到IDAlice和UPKAlice,然后随机生成掩藏密钥因子(hskAlice,HPKAlice,),包括掩藏私钥因子hskAlice和掩藏公钥因子HPKAlice;
步骤406,KGC根据自选公钥因子与掩藏公钥因子,得到所述用户标识对应的伴随公钥因子,例如,根据APKAlice=UPKAlice+HPKAlice,得到所述用户标识对应的伴随公钥因子APKAlice,同时设置伴随公钥因子的截止时间ETAlice;
步骤407,KGC计算映射序列δ=hsm3(IDAlice||APKAlice||ETAlice),并根据所述映射序列以及预设的私钥矩阵,得到所述用户标识对应的身份私钥因子iskAlice;
步骤408,KGC计算校验系数。
其中,根据α=hSM3(IDAlice||APKAlice||*ETAlice)lmod 2m,l=0,1,32≤m≤256,得到所述校验系数α,其中,hSM3为哈希函数SM3,IDAlice为所述用户Alice的标识,APKAlice为所述伴随公钥因子,ETAlice为所述APKAlice的截止时间,l、m为设定常数,||表示拼接符号,*表示其后的内容为可选因子。
步骤409,KGC计算分发私钥因子,dskAlice=(α·iskAlice+hskAlice)mod n;
步骤410,KGC计算dskAlice、APKAlice、ETAlice的完整性校验码C2,C2=hsm3(dskAlice||APKAlice||ETAlice);
步骤411,KGC将dskAlice、APKAlice、ETAlice利用N0加密得到密文C3,将数据C2和C3返回用户;
步骤412,用户解密C3得到数据dskAlice、APKAlice、ETAlice,并通过C2校验数据的完整性;
步骤413,用户将自选私钥因子与分发私钥因子复合,得到复合私钥cskAlice=(uskAlice+dskAlice)mod n;
步骤414,用户通过用户标识、预设因子以及公钥矩阵,得到所述用户标识对应的身份公钥因子,以及根据预设系数算法,得到校验系数,并根据所述校验系数、身份公钥因子以及伴随公钥因子,得到所述用户标识对应的复合公钥,验证所得的复合公钥与通过复合私钥计算得到的复合公钥是否匹配。
本发明实施例中步骤404-414中涉及的复合私钥生成过程以及复合公钥的生成过程可参见上述实施例一和二中的具体实现过程,此处不再赘述。
其中,对于时延要求严格的场景,需要将计算速度放在首位。此时,在预设系数算法中,可直接将校验系数设置为固定常数1,则计算映射序列时的哈希算法设置为δ=hψ(IDAlice||APKAlice||ETAlice)(若设置了伴随公钥因子的截止时间)或者δ=hψ(IDAlice||APKAlice)(若未设置伴随公钥因子的截止时间)。此时,要求公钥矩阵和私钥矩阵的规模不低于16×16,以确保方案的安全性。若需要进一步提高安全性,可将公钥矩阵和私钥矩阵同时设置为16×32或32×32。矩阵大小视应用的具体场景而定。
若应用中对时延没有很高要求,但存贮空间有限,则密钥矩阵规模应在安全的前提下尽量最小,于是校验系数在设置了伴随公钥因子的截止时间时可取为α=hSM3(IDAlice||APKAlice||ETAlice)或在没有设置截止时间时为α=hSM3(IDAlice||APKAlice)。相应地,计算映射序列时的预设因子设置为空,即为δ=hψ(IDAlice),此时,密钥矩阵规模可以很小,例如4×4。
当时延和存贮空间都受到一定约束,既有所要求,又不至于严苛的情形下,应将两者均衡考虑。一般可先根据存贮空间的限制,确定密钥矩阵的大小,例如,选定密钥矩阵为8×8,则相应地可将校验系数设置为α=
hSM3(IDAlice||APKAlice||ETAlice)mod 264,而映射序列设置为δ=hψ(IDAlice||APKAlice||ETAlice)。当然,若是时延可以适当放宽,也可以将校验系数设置为α=hSM3(IDAlice||APKAlice||ETAlice)mod 296或α=hSM3(IDAlice||APKAlice||ETAlice)mod 2128,以提高安全性。从实际应用来看,构造SM3的96位的有意义的碰撞,已非常困难,因此96位已经可以满足大多数应用场景下的实际安全要求。当然,也可以根据应用场景的要求,将参数设置为更安全的情形。
若选定的密钥矩阵规模为8×16,则可将校验系数设置为α=hSM3(IDAlice||APKAilice||ETAilice)mod 248或更大。
若选定的密钥矩阵规模为16×16,则可将校验系数设置为α=hsM3(IDAlice||APKAlice||ETAlice)mod 232或更大。
反过来,若对时延的要求更严格,则可先确定校验系数的取值,再确定密钥矩阵的规模。校验系数的位数越多,则时延越大,反之则越小。总之,校验系数的位数和密钥矩阵大小的选取,要根据时延、存贮空间以及安全性要求均衡考虑,选择适当的参数。
相对于相关技术中CPK只有一种固定形态,而通过本发明实施例,当生成复合私钥的终端的的存贮资源有明确要求时,可根据终端的计算资源和存贮资源来调整多态配置密钥,以适应多种不同应用场景的不同需求。另外,也解决了标识与公、私钥对的唯一对应问题,即使当复合私钥丢失等原因导致需要更新复合私钥时,无需改变标识,只需要客户端重新生成自选私钥因子和/或密钥生成中心重新生成掩藏私钥因子即可重新得到新的复合私钥,而无需改变标识。
实施例四
在具体应用场景中,用户可以向自己所在的用户管理中心(UMC,User ManagementCenter)进行注册,提供自己的用户标识、电话号码等信息,并设置自己的客户端登录口令,注册成功后用户与用户管理中心协商得到注册码hAlice。某些自动化设备则进行自动注册模式,按系统要求提供用户标识和其它信息。该注册过程可根据不同的应用环境进行布置,在本发明实施例中不做赘述。
下面以手机用户为例来描述该用户为手机或与手机绑定的其它设备(电脑、汽车网关、安全视频设备等)申请复合私钥的过程。
用户注册成功后,客户端会询问是否自动进入申请复合私钥。用户可以选择立即申请或稍后申请。申请复合私钥前,要先用注册口令登录系统。若用户忘记注册口令,则尝试四次失败后,系统应阻止其登录,并要求用户重新设置口令。重新设置口令的过程实际上是重复一遍注册过程(提示符不同)。若用户能正常登录客户端系统,则可以开始复合私钥申请。
客户端利用用户管理中心申请复合私钥的过程如图5所示,包括如下步骤:
步骤501,用户Alice在客户端利用注册口令登录进入CPK的客户端系统,点击“申请私钥”按钮,开始申请私钥过程。系统先提示用户生成自己的自选私钥因子,要求用户随意输入12个字符,则系统自动将其转化为二进制数,记为rAlice,之后系统调用SM3算法生成uskAlice和自选公钥因子UPKAlice:
uskAlice=hSM3(IDAlice||rAlice),UPKAlice=uskAlice·G
之后,选取用户本地时间(年月日时分秒)TimeAlice,并根据rAlice生成另一随机数N1,N1=hSM3(rAlice||TimeAlice)。在本地直接调用所存储的KGC的公钥PKKGC,计算C1=ESM2(PKKGC,IDAlice||N1||UPKAlice),h1=hSM3(hAlice,IDAlice||TelAlice||TimeAlice||C1)。
然后,向UMC发送分发私钥申请,其中包括新用户Alice分发私钥因子的申请提示符用户标识IDAlice、电话号码TelAlice、用户本地时间TimeAlice、密文C1和身份认证码h1。其中身份认证码h1是以hAlice为初始向量的哈希值,而hAlice是在用户注册过程中得到的。
步骤502,UMC先校验时间是否在5分钟内,若不在,则向用户发送“超时无效”,并抛弃所收到的消息,客户端的此次申请作废,需要重新开始申请。若在5分钟内,则校验h1,若校验错误,则提示出错并要求重发。若连续两次校验出错,则中止私钥分发。若校验正确,则UMC计算:
h2=hSM3(IV′,IDAlice||TelAlice||C1||TimeUMC)
步骤503,KGC先校验h2,再解密C1,并比较解密后的IDAlice与收到的明文IDAlice是否一致。若不一致,则返回UMC出错信息。若连续两次出错,则发出攻击预警。若一致,生成掩藏私钥因子hskAlice=hSM3(IV*,IDAlice),其中IV*是KGC自己独有的用来生成用户掩藏私钥因子的特殊秘密值。接着,根据APKAlice=UPKAlice+HPKAlice,得到所述用户标识对应的伴随公钥因子APKAlice,同时设置伴随公钥因子的截止时间ETAlice。
接着,计算映射序列δ=hsm3(IDAlice||APKAlice||ETAlice),并根据所述映射序列以及预设的私钥矩阵,得到所述用户标识对应的身份私钥因子iskAlice。校验系数α=hsm3(IDAlice||APKAlice||ETAlice)mod 2m以及分发私钥因子dskAlice=(α·iskAlice+hskAlice)mod n。
KGC生成一次性6位随机数N*,并将其发送至用户的手机上,并提醒用户必须在1分钟内将该数字填写在注册窗口的指定栏内,同时生成随机数N2,并计算:
KAlice=hSM3(IDAlice||N1||N2||N*),CAlice=ESM4(KAlice,IDAlice||dskAlice)
并将IDAlice、N2、CAlice、APKAlice、ETAlice发送给UMC。
步骤504,UMC直接将IDAlice、N2、CAlice、APKAlice、ETAlice转发至用户Alice。
步骤505,客户端用户填入N2和N*后,计算KAlice=hSM3(IDAlice||N1||N2||N*),解密CAlice,得到dskAlice,再计算复合私钥cskAlice=(uskAlice+dskAlice)mod n。
之后,计算校验系数α=h(IDAlice||APKAlice||*ETAlice)lmod 2m,l=0,1,32≤m≤256以及身份公钥因子IPKAlice,并验证 中的箭头两端的结果是否相等,若不相等,则客户端自动向UMC报错。否则接受APKAlice、ETAlice、dskAlice,并将复合私钥cskAlice在客户端加密保存。客户端提示用户私钥安装成功,同时向UMC发送“IDAlice已正确收到私钥”的信息,私钥分发过程结束。
当用户伴随公钥到期,或用户私钥丢失等,因而需要更新私钥时,可以向KGC申请更新私钥和伴随公钥。更新过程如同申请新私钥的过程。
实施例五
上述所申请的复合私钥与复合公钥可适用于加解密以及数字签名过程,,本发明实施例以用户A和用户B之间的数字签名过程为例进行描述,如图6所示,包括:
步骤601,用户A利用复合私钥对消息进行签名,并发送签名数据包至用户B,所述签名数据包包括消息、签名值、签名标识(用户A的标识IDA)以及用户A的伴随公钥因子APKA以及截止时间ETA;
步骤602,用户B收到用户A发送的所述签名数据包;
步骤603,用户B根据用户A的标识IDA以及预设因子,利用哈希算法得到映射序列;
步骤604,用户B根据所述映射序列以及密钥生成中心公布的公钥矩阵,得到用户A的标识IDA对应的身份公钥因子IPKA;
步骤605,用户B根据预设系数算法,得到所述用户标识对应的校验系数α;
步骤606,用户B根据所述校验系数、身份公钥因子以及伴随公钥因子,得到所述用户标识对应的复合公钥,CPKA=α·IPKA+APKA;
步骤607,用户B利用复合公钥对所述签名值进行验证。
上述对于复合私钥和复合公钥可参见上述实施例一至四中的描述的生成过程获得。
实施例六
图7是本发明实施例提供的一种基于CPK的可多态配置的密钥生成装置的结构示意图。如图7所示,所述装置70应用于客户端,包括:自选因子生成模块71,用于生成用户标识对应的自选私钥因子;通信模块72,用于向密钥生成中心发送密钥申请消息,所述密钥申请消息中包括所述用户标识;所述通信模块还用于接收所述密钥生成中心返回的密钥信息,所述密钥信息中包括所述用户标识对应的分发私钥因子;私钥生成模块73,用于利用所述自选私钥因子与所述分发私钥因子生成所述用户标识对应的复合私钥。
进一步地,所述自选因子生成模块还用于利用所述密钥生成中心公布的椭圆曲线基点与所述自选私钥因子,得到所述用户标识对应的自选公钥因子,其中,所述密钥申请消息中还包括所述自选公钥因子。
进一步地,所述私钥生成模块还用于根据cskAlice=(uskAlice+dskAlice)mod n,得到所述用户Alice的标识对应的复合私钥cskAilice,其中,uskAlice为所述用户标识对应的所述自选私钥因子,dskAlice为所述用户标识对应的所述分发私钥因子。
进一步地,所述密钥信息中还包括所述用户标识对应的伴随公钥因子以及所述伴随公钥因子的截止时间,所述装置还包括公钥生成模块74,用于通过下述方式得到所述用户标识对应的复合公钥:
根据所述用户标识以及预设因子,利用哈希算法得到映射序列;
根据所述映射序列以及所述密钥生成中心公布的公钥矩阵,得到所述用户标识对应的身份公钥因子;
根据预设系数算法,得到所述用户标识对应的校验系数;
根据所述校验系数、身份公钥因子以及伴随公钥因子,得到所述用户标识对应的复合公钥。
进一步地,所述根据所述用户标识以及预设因子,利用哈希算法得到映射序列包括:根据δ=hψ(IDAlice||*),得到所述映射序列δ,其中,IDAlice为所述用户Alice的标识,*为所述预设因子,hψ为哈希算法ψ,||表示拼接符号。
进一步地,所述根据所述映射序列以及所述密钥生成中心公布的公钥矩阵,得到所述用户标识对应的身份公钥因子包括:将所述映射序列按照从高到低的顺序,以指定位数进行分组,得到指定组数;根据所述指定组数中每组中的数值,依次得到所述公钥矩阵中每列对应的行坐标Ik,其中,0≤k≤t-1,t为所述指定组数;根据得到所述用户Alice的标识对应的身份公钥因子IPKAlice,其中,PKk为在所述公钥矩阵中坐标(Ik,k)对应的公钥矩阵元素。
进一步地,所述预设系数算法包括:根据α=hSM3(IDAlice||APKAlice||*ETAlice)lmod2m,l=0,1,32≤m≤256,得到所述校验系数α,其中,hSM3为哈希函数SM3,IDAlice为所述用户Alice的标识,APKAlice为所述伴随公钥因子,ETAlice为所述APKAlice的截止时间,l、m为设定常数,||表示拼接符号,*表示其后的内容为可选因子。
进一步地,所述根据所述校验系数、身份公钥因子以及伴随公钥因子,得到所述用户标识对应的复合公钥包括:根据CPKAlice=α·IPKAlice+APKAlice,得到所述用户Alice的标识对应的复合公钥CPKAlice,其中,α为所述校验系数,IPKAlice为所述身份公钥因子,APKAlice为所述伴随公钥因子。
所述基于CPK的可多态配置的密钥生成装置70中的各模块的具体实现过程,可参见上述基于CPK的可多态配置的密钥生成方法的实施例一、三、四、五的处理过程。
实施例七
图8是本发明实施例提供的一种基于CPK的可多态配置的密钥生成装置的结构示意图。如图8所示,所述装置80应用于密钥生成中心,包括:通信模块81,用于接收客户端发送的密钥申请消息,所述密钥申请消息中包括用户标识;因子生成模块82,用于生成掩藏私钥因子;身份私钥因子生成模块83,用于根据所述用户标识以及预设因子,利用哈希算法得到映射序列,并根据所述映射序列以及预设的私钥矩阵,得到所述用户标识对应的身份私钥因子;系数生成模块84,用于根据预设系数算法,得到所述用户标识对应的校验系数;分发私钥生成模块85,用于根据所述校验系数、所述身份私钥因子以及所述掩藏私钥因子,得到所述用户标识对应的分发私钥因子;所述通信模块还用于向所述客户端发送包括所述分发私钥因子的密钥信息,以便所述客户端利用其本地生成的所述用户标识对应的自选私钥因子与所述分发私钥因子生成所述用户标识对应的复合私钥。
进一步地,所述身份私钥因子生成模块还用于根据δ=hψ(IDAlice||*),得到所述映射序列δ,其中,IDAlice为所述用户Alice的标识,*为所述预设因子,hψ为哈希算法ψ,||表示拼接符号。
进一步地,所述身份私钥因子生成模块还用于将所述映射序列按照从高到低的顺序,以指定位数进行分组,得到指定组数;根据所述指定组数中每组中的数值,依次得到所述预设的私钥矩阵中每列对应的行坐标Ik,其中,0≤k≤t-1,t为所述指定组数;根据得到所述用户Alice的标识对应的身份私钥因子iskAlice,其中,skk为在所述私钥矩阵中坐标(Ik,k)对应的私钥矩阵元素。
进一步地,所述密钥申请消息中还包括所述用户标识对应的自选公钥因子,所述因子生成模块还用于利用所述密钥生成中心公布的椭圆曲线基点与所述掩藏私钥因子,得到掩藏公钥因子;
所述装置还包括伴随公钥生成模块86,用于根据所述自选公钥因子与所述掩藏公钥因子,得到所述用户标识对应的伴随公钥因子,并设置所述伴随公钥因子的截止时间。
进一步地,所述因子生成模块还用于根据APKAlice=UPKAlice+HPKAlice,得到所述用户Alice的标识对应的伴随公钥因子APKAlice,其中,UPKAlice为所述用户标识对应的所述自选公钥因子,HPKAlice为所述用户标识对应的所述掩藏公钥因子。
进一步地,所述预设系数算法包括:根据α=hSM3(IDAlice||APKAlice||*ETAlice)lmod2m,l=0,1,32≤m≤256,得到所述校验系数α,其中,hSM3为哈希函数SM3,IDAlice为所述用户Alice的标识,APKAlice为所述伴随公钥因子,ETAlice为所述APKAlice的截止时间,l、m为设定常数,||表示拼接符号,*表示其后的内容为可选因子。
进一步地,所述分发私钥生成模块还用于根据dskAlice=(α·iskAlice+hskAlice)mod n,得到所述用户Alice的标识对应的分发私钥因子dskAlice,其中,α为所述校验系数,iskAlice为所述用户标识对应的所述身份私钥因子,hskAlice为所述用户标识对应的所述掩藏私钥因子。
进一步地,所述密钥信息还包括所述伴随公钥因子以及所述伴随公钥因子的截止时间。
所述基于CPK的可多态配置的密钥生成装置80中的各模块的具体实现过程,可参见上述基于CPK的可多态配置的密钥生成方法的实施例二、三、四的处理过程。
实施例八
本发明实施例还提供了一种机器可读存储介质,所述机器可读存储介质上存储有指令,该指令用于使得机器执行如上所述应用于客户端的基于CPK的可多态配置的密钥生成方法和/或如上所述应用于密钥生成中心的基于CPK的可多态配置的密钥生成方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种基于CPK的可多态配置的密钥生成方法,其特征在于,所述方法应用于客户端,包括:
生成用户标识对应的自选私钥因子,并向密钥生成中心发送密钥申请消息,所述密钥申请消息中包括所述用户标识;
接收所述密钥生成中心返回的密钥信息,所述密钥信息中包括所述用户标识对应的分发私钥因子;
利用所述自选私钥因子与所述分发私钥因子生成所述用户标识对应的复合私钥。
2.根据权利要求1所述基于CPK的可多态配置的密钥生成方法,其特征在于,所述利用所述自选私钥因子与所述分发私钥因子生成所述用户标识对应的复合私钥包括:
根据cskAlice=(uskAlice+dskAlice)modn,得到所述用户Alice的标识对应的复合私钥cskAlice,其中,uskAlice为所述用户标识对应的所述自选私钥因子,dskAlice为所述用户标识对应的所述分发私钥因子。
3.根据权利要求1所述基于CPK的可多态配置的密钥生成方法,其特征在于,所述密钥信息中还包括所述用户标识对应的伴随公钥因子以及所述伴随公钥因子的截止时间,并通过下述方式得到所述用户标识对应的复合公钥:
根据所述用户标识以及预设因子,利用哈希算法得到映射序列;
根据所述映射序列以及所述密钥生成中心公布的公钥矩阵,得到所述用户标识对应的身份公钥因子;
根据预设系数算法,得到所述用户标识对应的校验系数;
根据所述校验系数、身份公钥因子以及伴随公钥因子,得到所述用户标识对应的复合公钥。
5.根据权利要求3所述基于CPK的可多态配置的密钥生成方法,其特征在于,所述预设系数算法包括:
根据α=hSM3(IDAlice||APKAlice||*ETAlice)lmod2m,l=0,1,32≤m≤256,得到所述校验系数α,其中,hSM3为哈希函数SM3,IDAlice为所述用户Alice的标识,APKAlice为所述伴随公钥因子,ETAlice为所述APKAlice的截止时间,l、m为设定常数,||表示拼接符号,*表示其后的内容为可选因子。
6.一种基于CPK的可多态配置的密钥生成方法,其特征在于,所述方法应用于密钥生成中心,包括:
当接收到客户端发送的密钥申请消息时,生成掩藏私钥因子,所述密钥申请消息中包括用户标识;
根据所述用户标识以及预设因子,利用哈希算法得到映射序列,并根据所述映射序列以及预设的私钥矩阵,得到所述用户标识对应的身份私钥因子;
根据预设系数算法,得到所述用户标识对应的校验系数;
根据所述校验系数、所述身份私钥因子以及所述掩藏私钥因子,得到所述用户标识对应的分发私钥因子;
向所述客户端发送包括所述分发私钥因子的密钥信息,以便所述客户端利用其本地生成的所述用户标识对应的自选私钥因子与所述分发私钥因子生成所述用户标识对应的复合私钥。
8.根据权利要求6所述基于CPK的可多态配置的密钥生成方法,其特征在于,所述密钥申请消息中还包括所述用户标识对应的自选公钥因子,所述方法还包括:
利用所述密钥生成中心公布的椭圆曲线基点与所述掩藏私钥因子,得到掩藏公钥因子;
根据所述自选公钥因子与所述掩藏公钥因子,得到所述用户标识对应的伴随公钥因子,并设置所述伴随公钥因子的截止时间。
9.一种基于CPK的可多态配置的密钥生成装置,其特征在于,所述装置应用于客户端,包括:
自选因子生成模块,用于生成用户标识对应的自选私钥因子;
通信模块,用于向密钥生成中心发送密钥申请消息,所述密钥申请消息中包括所述用户标识;
所述通信模块还用于接收所述密钥生成中心返回的密钥信息,所述密钥信息中包括所述用户标识对应的分发私钥因子;
私钥生成模块,用于利用所述自选私钥因子与所述分发私钥因子生成所述用户标识对应的复合私钥。
10.一种基于CPK的可多态配置的密钥生成装置,其特征在于,所述装置应用于密钥生成中心,包括:
通信模块,用于接收客户端发送的密钥申请消息,所述密钥申请消息中包括用户标识;
因子生成模块,用于生成掩藏私钥因子;
身份私钥因子生成模块,用于根据所述用户标识以及预设因子,利用哈希算法得到映射序列,并根据所述映射序列以及预设的私钥矩阵,得到所述用户标识对应的身份私钥因子;
系数生成模块,用于根据预设系数算法,得到所述用户标识对应的校验系数;
分发私钥生成模块,用于根据所述校验系数、所述身份私钥因子以及所述掩藏私钥因子,得到所述用户标识对应的分发私钥因子;
所述通信模块还用于向所述客户端发送包括所述分发私钥因子的密钥信息,以便所述客户端利用其本地生成的所述用户标识对应的自选私钥因子与所述分发私钥因子生成所述用户标识对应的复合私钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110521343.2A CN113259097B (zh) | 2021-05-13 | 2021-05-13 | 基于cpk的可多态配置的密钥生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110521343.2A CN113259097B (zh) | 2021-05-13 | 2021-05-13 | 基于cpk的可多态配置的密钥生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113259097A true CN113259097A (zh) | 2021-08-13 |
CN113259097B CN113259097B (zh) | 2022-11-22 |
Family
ID=77183422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110521343.2A Active CN113259097B (zh) | 2021-05-13 | 2021-05-13 | 基于cpk的可多态配置的密钥生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113259097B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987515A (zh) * | 2023-03-21 | 2023-04-18 | 深圳市永达电子信息股份有限公司 | 一种cpk认证系统构建方法和电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110173452A1 (en) * | 2008-05-28 | 2011-07-14 | Nan Xiang-Hao | Method of generating compound type combined public key |
CN102170356A (zh) * | 2011-05-10 | 2011-08-31 | 北京联合智华微电子科技有限公司 | 一种支持数字签名密钥专属控制的认证系统实现方法 |
CN102694818A (zh) * | 2012-06-08 | 2012-09-26 | 南相浩 | 网上私钥的在线分发方法及系统 |
WO2013116928A1 (en) * | 2012-02-10 | 2013-08-15 | Connect In Private Corp. | Method and system for a certificate-less authentication encryption (clae) |
CN108989053A (zh) * | 2018-08-29 | 2018-12-11 | 武汉珈港科技有限公司 | 一种基于椭圆曲线的无证书公钥密码体制实现方法 |
CN110391900A (zh) * | 2019-07-04 | 2019-10-29 | 晋商博创(北京)科技有限公司 | 基于sm2算法的私钥处理方法、终端及密钥中心 |
CN110830236A (zh) * | 2019-11-14 | 2020-02-21 | 湖南盾神科技有限公司 | 基于全域哈希的身份基加密方法 |
CN112367175A (zh) * | 2020-11-12 | 2021-02-12 | 西安电子科技大学 | 基于sm2数字签名的隐式证书密钥生成方法 |
-
2021
- 2021-05-13 CN CN202110521343.2A patent/CN113259097B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110173452A1 (en) * | 2008-05-28 | 2011-07-14 | Nan Xiang-Hao | Method of generating compound type combined public key |
CN102170356A (zh) * | 2011-05-10 | 2011-08-31 | 北京联合智华微电子科技有限公司 | 一种支持数字签名密钥专属控制的认证系统实现方法 |
WO2013116928A1 (en) * | 2012-02-10 | 2013-08-15 | Connect In Private Corp. | Method and system for a certificate-less authentication encryption (clae) |
CN102694818A (zh) * | 2012-06-08 | 2012-09-26 | 南相浩 | 网上私钥的在线分发方法及系统 |
CN108989053A (zh) * | 2018-08-29 | 2018-12-11 | 武汉珈港科技有限公司 | 一种基于椭圆曲线的无证书公钥密码体制实现方法 |
CN110391900A (zh) * | 2019-07-04 | 2019-10-29 | 晋商博创(北京)科技有限公司 | 基于sm2算法的私钥处理方法、终端及密钥中心 |
CN110830236A (zh) * | 2019-11-14 | 2020-02-21 | 湖南盾神科技有限公司 | 基于全域哈希的身份基加密方法 |
CN112367175A (zh) * | 2020-11-12 | 2021-02-12 | 西安电子科技大学 | 基于sm2数字签名的隐式证书密钥生成方法 |
Non-Patent Citations (1)
Title |
---|
南相浩等: "组合公钥(CPK)体制标准", 《信息安全与通信保密》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987515A (zh) * | 2023-03-21 | 2023-04-18 | 深圳市永达电子信息股份有限公司 | 一种cpk认证系统构建方法和电子设备 |
CN115987515B (zh) * | 2023-03-21 | 2023-08-08 | 深圳市永达电子信息股份有限公司 | 一种cpk认证系统构建方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113259097B (zh) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10903991B1 (en) | Systems and methods for generating signatures | |
US11108565B2 (en) | Secure communications providing forward secrecy | |
US10708072B2 (en) | Mutual authentication of confidential communication | |
CN110391900B (zh) | 基于sm2算法的私钥处理方法、终端及密钥中心 | |
US10880100B2 (en) | Apparatus and method for certificate enrollment | |
GB2401012A (en) | Identifier-based encryption | |
CN108777619B (zh) | 基于标识的cpk体制和密钥管理方法、装置、服务器及终端 | |
CN108337092B (zh) | 用于在通信网络中执行集体认证的方法和系统 | |
CN109361519B (zh) | 一种改进的包含秘密的数的生成方法及系统 | |
WO2023184858A1 (zh) | 一种时间戳生成方法、装置、电子设备及存储介质 | |
CN117155615A (zh) | 数据加密传输方法、系统、电子设备及存储介质 | |
CN113259097B (zh) | 基于cpk的可多态配置的密钥生成方法及装置 | |
CN116318739B (zh) | 一种电子数据交换方法及系统 | |
CN111224783B (zh) | 一种支持密钥刷新的两方椭圆曲线数字签名方法 | |
CN114697001B (zh) | 一种基于区块链的信息加密传输方法、设备及介质 | |
CN113206739B (zh) | 组合公钥cpk的密钥生成方法、装置及存储介质 | |
Yoon et al. | Security enhancement scheme for mobile device using H/W cryptographic module | |
CN115001673A (zh) | 基于统一多域标识的密钥处理方法、装置及系统 | |
CN116318738B (zh) | 签名方法、系统、电子设备及存储介质 | |
CN117714074B (zh) | 基于tlcp的身份认证系统、方法、存储介质及电子设备 | |
CN117811730B (zh) | 国密密钥协商方法、装置、计算设备及可读存储介质 | |
CN116112183A (zh) | 基于外包的具有固定长度的属性基签名系统及方法 | |
WO2023139192A1 (en) | Emergency recovery transaction of funds of crypto currency wallet | |
CN117254907A (zh) | 基于椭圆曲线公钥密码算法的通信方法、装置及电子设备 | |
CN114268434A (zh) | 非对称口令认证方法、装置及存储介质 |
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 |