CN105162583A - 一种单个、单级和多级密钥对分散方法及其系统 - Google Patents
一种单个、单级和多级密钥对分散方法及其系统 Download PDFInfo
- Publication number
- CN105162583A CN105162583A CN201510416240.4A CN201510416240A CN105162583A CN 105162583 A CN105162583 A CN 105162583A CN 201510416240 A CN201510416240 A CN 201510416240A CN 105162583 A CN105162583 A CN 105162583A
- Authority
- CN
- China
- Prior art keywords
- key
- secret key
- double secret
- dispersion
- 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
Landscapes
- Complex Calculations (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种单个、单级和多级非对称密钥对分散方法及其系统;具备与对称密钥相同的灵活性和上下级关系,任何一级密钥对均可以根据需要通过计算得到所有下级(包括下级的下级及直到最下级)的密钥对。同时由于分散算法和各级关系均事先确定,所以仅需保留自己独有私钥和杂凑因子即可。本发明提出一种用于ECC公钥密码体系中使用的非对称密钥的分散方法,其主要特点为:仅主密钥对MK(d,P)及分散因子即可计算出分散密钥对SK(d,P);可用于椭圆公钥密码算法(ECC)的密钥分散,分散后可得到密钥对SK(d,P);可用于国产密码算法SM2;也支持多级密钥分散;用于非对称密钥数据量很大的场合,可大大减少密钥对的存储数量,密钥对存储、管理的难度可大大降低。
Description
技术领域
本发明涉及一种单个、单级和多级密钥对分散方法及其系统,属于信息安全领域。
背景技术
密钥是密码算法中的关键数据,在对称密钥系统中,为使用方便、存储方便和管理方便,通常要使用分散算法产生实际使用的密钥。密钥分散算法主要方法包括主密钥(MK)和分散因子(SF),使用主密钥对分散因子做特定的密码运算S()的结果,并根据需要拼装得到分散密钥SK,即:SK=S(MK,SF)。
在需要众多密钥使用的场合,通常采用分散的方式产生很多分散密钥SK1,SK2,…,SKn,其中分散因子可以是预知的,如一串数字(工号、卡号、设备号等),也可以是字符(如姓名、名称、应用等),只要分散因子不同,通过分散后产生的密钥就不同,满足不同情况下使用不同密钥的需求。
其主要优点是:
密钥存储容易:鉴于密钥的重要性,密钥存储就非常重要,保留大量密钥的负担将很大(如每张银行卡的交易密钥,需数十亿个密钥),只需要主密钥和分散因子即可得到分散密钥,因此不需要保存每个不同的密钥,只需保存好主密钥,使用时根据分散因子现场生成密钥即可,大大降低密钥保存的代价;
支持多级分散机制:可通过主密钥分散n个一级密钥SK(1,i),再由下一级管理或使用部门使用SK(1,i)作为“主密钥”继续生成下一级密钥SK(2,j),并可以继续分散下去。其特点是上级可以分散下级密钥及再下级密钥,而下级不能得到上级或同级密钥。在分级密钥体系中尤为重要。
密钥使用安全:由于密钥分散的不可逆性,即下级不能得到上级或同级密钥,因此即便某个密钥被泄露,其上级及同级密钥仍然是安全的。
主要缺点是:
传统的密钥分散体系只支持对称密钥体系,即只能分散出对称密钥,对于公钥密码体系中使用的非对称密钥无法分散。
发明内容
传统公钥体系使用时无直接上级下级关系,即没用明确的父子关系。所以不能像对称密钥体系中建立分散体系,而只能预先产生所需要的密钥对并保存所有的密钥对,同时通过各种链表和存储方式建立之间的关系。使用签名/验证密码算法时,需首先找到双方所对应的密钥对进行运算,给密钥使用和保存带来很大的麻烦。
本发明提出一种用于ECC公钥密码体系中使用的非对称密钥的分散方法,其主要特点为:
仅主密钥对MK(d,P)及分散因子即可计算出分散密钥对SK(d,P);
可用于椭圆公钥密码算法(ECC)的密钥分散,分散后可得到密钥对SK(d,P);
可用于国产密码算法SM2;
也支持多级密钥分散;
用于非对称密钥数据量很大,可大大减少密钥对的安全存储。
相关的术语解释:
椭圆密码算法:ECC(Ellipticcurvecryptography),基于椭圆曲线的密码算法,公钥密码算法的一种密码算法,中国商用密码SM2算法也属于ECC算法的一种。
分组密码算法:对称密码算法,密文长度与密文长度相同,也称对称密码算法,常见的分组密码算法,如DES,3DES,AES,SM1,SM4等。
非对称密钥对:密钥对是(d,P),其中d为私钥,P为公钥。
杂凑算法:一种不可逆的计算固定长度结果的密码算法,也称散列算法或哈希(Hash)算法,如SHA-1,SHA-256,SM3等。
主密钥(MK):也称根密钥,是密钥分散算法中的基础密钥。
分散密钥:通过分散算法得到的密钥。
分散因子(SF):密钥分散算法中的数据内容(scatterfactor)。
杂凑因子(ZF):小于T的整数,及ZF取值范围为初值j至上界T,T=2L-1。
本发明所要解决的技术问题是提供一种有限数量的密钥对分散方法,即在预知最大需求的前提下通过分散方法产生各分散的密钥对的单个密钥对分散方法。
本发明解决上述技术问题的技术方案如下:一种单个密钥对分散方法,具体包括以下步骤:
步骤a1:以父密钥对的私钥为密钥,杂凑因子ZF=0,对已知的分散因子进行分散函数运算,得到子密钥;
步骤a2:根据子密钥附加已知的杂凑因子ZF,并进行杂凑运算得到中间密钥;
步骤a3:根据中间密钥和基点的阶计算得到私钥d;
步骤a4:根据基点和私钥计算得到公钥P;
步骤a5:对得到的公钥P进行验证,如验证成功,则返回分散成功,并返回私钥d和公钥P作为分散密钥对,结束;否则,返回验证失败。
进一步,当步骤a5返回错误,即验证失败时,可以通过如下操作继续进行密钥对分散:
步骤a6:改变杂凑因子,重新从步骤a2开始执行;
本发明的有益效果是:本发明提出的密钥对分散方法,具备与对称密钥分散算法相同的灵活性和上下级关系。任何主密钥对均可以根据需要通过计算得到分散后的子密钥对。同时由于分散算法和分散因子均事先确定,所以仅需保留自己独有主密钥私钥和杂凑因子即可。
本发明解决上述技术问题的技术方案如下:一种单个密钥对分散系统,包括子密钥运算模块、中间密钥运算模块、私钥运算模块、公钥运算模块和验证模块;
所述子密钥运算模块用于以父密钥为主密钥,对已知的分散因子进行分散函数运算,得到子密钥;
所述中间密钥运算模块用于根据子密钥附加已知的杂凑因子,并进行杂凑运算得到中间密钥;
所述私钥运算模块用于根据中间密钥和基点的阶计算得到私钥;
所述公钥运算模块用于根据基点和私钥计算得到公钥;
所述验证模块用于进行公钥验证,如验证成功,则返回分散成功,并返回私钥和公钥作为分散密钥对,结束;否则,杂凑因子加一,重新进行分散运算,至密钥对分散成功;或杂凑因子达到设定的最大值,返回错误,结束。
本发明解决同一级多个密钥对分散技术问题的技术方案如下:一种单级密钥对分散方法,具体包括以下步骤:
步骤b1:接收主密钥对的私钥为父密钥,杂凑因子取初始ZF=j。
接收N个待分散密钥对及相应的分散因子SFi,i=1,2,…,N;N为大于2的自然数;接收杂凑因子初值j及上界T,j及T均为自然数且j小于等于T。
步骤b2:取首个待分散密钥对为当前密钥对;
步骤b3:对当前密钥对执行单个密钥对分散方法,判断是否分散成功;如果是,执行步骤b5;否则,执行步骤b4;
步骤b4:判断当前杂凑因子是否为T,如果是,执行步骤b7;否则,对杂凑因子执行ZF=ZF+1,返回执行步骤b2;
步骤b5:判断是否还有未进行分散的待分散密钥对,如果是,取下一个待分散密钥对为当前密钥对,执行步骤b3;否则,执行步骤b6;
步骤b6:单级密钥对分散成功,记录父密钥和杂凑因子,返回成功,结束;
步骤b7:单级密钥对分散结束,返回分散失败,结束。
进一步,当步骤b7返回分散失败,可以通过增加杂凑因子上界的值,或重新选取一个主密钥对的私钥作为父密钥并执行步骤b1。
本发明的有益效果是:本发明提出的密钥对分散方法,具备与对称密钥相同密钥扩展性,任何一个密钥对均可以根据需要通过计算得到所有下级的密钥对。同时由于分散算法事先确定,所以仅需保留自己独有私钥和杂凑因子即可。
本发明解决上述技术问题的技术方案如下:一种单级密钥对分散系统,包括接收模块、选取模块、单个密钥分散模块和单级密钥分散模块;
所述接收模块用于接收N个待分散密钥对及相应的分散因子SFi,i=1,2,…,N;N为大于2的自然数;杂凑因子初值、上界分别为j和T;j为不大于T的正整数。
所述选取模块用于取首个待分散密钥对为当前密钥对;
所述单个密钥分散模块对一个待分散密钥进行单个密钥对分散,并在分散失败时,按照杂凑因子逐次增加方式重新执行单个密钥对分散方法;
所述单级密钥分散模块用于在杂凑因子只增不减的前提下,依次对N个待分散密钥对执行单个密钥对分散的方法。
本发明解决多级密钥对分散技术问题的技术方案如下:一种多级密钥对分散方法,具体包括以下步骤:
步骤c1:对多个非对称密钥对进行密钥规划,建立多级树图;每个非对称密钥对对应各自分散因子,不同级别的分散因子可以不同,也可以相同。
步骤c2:产生或设置一个有效的密钥对作为树图中的根密钥对,杂凑因子取初值0;
步骤c3:对根密钥对执行单级密钥对分散,来得到多个第一级密钥对。如返回成功,返回的杂凑因子为杂凑因子的初始并执行步骤c4;否则,重新产生或设置一个有效的密钥对作为树图中的根密钥对,执行步骤c2;
步骤c4:对上一级密钥对执行单级密钥对分散方法,得到多个下一级密钥对,每个上一级密钥对对应多个下一级密钥对;如全部返回成功,执行步骤c5;否则,执行步骤c2;
步骤c5:判断是否还存在未进行分散的本级或下级密钥对,如果是,执行步骤c4;否则,执行步骤c6;
步骤c6:分散成功,记录根密钥和杂凑因子。
本发明的有益效果是:本发明提出的多级密钥对分散方法,具备与对称密钥相同的灵活性和上下级关系,任何一级密钥对均可以根据需要通过计算得到所有下级(包括下级的下级及直到最下级)的密钥对。同时由于分散算法和各级关系均事先确定,所以仅需保留自己独有私钥和杂凑因子即可。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述步骤c1中建立多级树图的过程包括,设定需要分散的级数和各级需要的密钥对数量和分散因子;根据设定的级数和各级数量确定各密钥对的上下级关系,建立多级树图。
进一步,所述杂凑因子为一个长度为设定值L的二进制数值,取值范围为0~T,T=2L-1;杂凑因子从0开始,重新选择杂凑因子时每次加一,所述L为正整数。
本发明解决上述技术问题的技术方案如下:一种多级密钥对分散系统,包括规划模块、根设定模块、第一级分散模块、下级分散模块和多级判断模块;
所述规划模块用于对多个非对称密钥对进行密钥规划,建立多级树图;每个非对称密钥对对应多个杂凑因子;
所述根设定模块用于选择一个密钥对作为树图中的根密钥对;
所述第一级分散模块对根密钥对执行单级密钥对分散方法,来得到多个第一级密钥对;如返回成功,触发下级分散模块;否则,判断杂凑因子是否为最大,如果是,返回根设定模块重新选择一个密钥对作为根密钥对,同时杂凑因子清零;否则,将杂凑因子加一,重新从第一级开始执行单级密钥对分散方法;
所述下级分散模块用于对上一级密钥对执行单级密钥对分散方法,得到多个下一级密钥对,每个上一级密钥对对应多个下一级密钥对;通过单级密钥对分散方式得到的多个下一级密钥对并同时进行验证,如果分散失败,杂凑因子加1,并重新从第一级开始进行单级密钥对分散,若杂凑因子达到上界则重新生产根密钥对;直到全部通过验证,触发多级判断模块;直到全部通过验证,触发多级判断模块;
所述多级判断模块用于判断是否还存在未进行分散的密钥对,如果是,触发下级分散模块;否则,分散成功,记录根密钥和杂凑因子。
所述一种多级密钥对分散系统,除已知的各级的分散因子外,只需保存根密钥和杂凑因子,即可根据多级树图和相应的分散因子通过本系统的计算方法得到各个节点的子密钥对。
整个密钥对分散流程是一个整体,该流程通过传统密钥分散算法来实现密钥对的分散算法,私钥分散后增加杂凑因子并进行杂凑运算、私钥计算及计算公钥、公钥验证。并根据验证结果通过改变杂凑因子完成全系统的具有分散机制的密钥对。在事先确定分散函数的情况下,其最终结果,确定主密钥对和杂凑因子。并保证其后续使用时通过本发明的运算过程计算出所有下级的密钥对,包括公钥和私钥,并不需要再做验证。
通过对密钥对私钥进行传统密钥分散算法来实现密钥对的分散算法;
私钥分散后增加杂凑因子并进行杂凑运算,以提高密钥分散的成功概率;
密钥计算步骤:通过密钥计算,去掉不合法的可能私钥,提高密钥分散的成功概率;
通过预先规划并按照规划预先产生所需的所有密钥对并验证,通过改变杂凑因子提高主密钥对不变的情况下成功完成所有密钥对生成的成功概率。
附图说明
图1为本发明具体实施例所述的一种单个密钥对分散方法流程图;
图2为本发明具体实施例所述的一种单级密钥对分散方法流程图;
图3为本发明具体实施例所述的一种多级密钥对分散方法流程图;
图4为本发明所述的一种多级密钥对分散方法中密钥对关系树图;
图5为本发明所述的一种单级分散密钥对的应用流程图;
图6为本发明所述的一种单个密钥对分散系统结构框图;
图7为本发明所述的一种单级密钥对分散系统结构框图;
图8为本发明所述的一种多级密钥对分散系统结构框图。
附图中,各标号所代表的部件列表如下:
1、子密钥运算模块,2、中间密钥运算模块,3、私钥运算模块,4、公钥运算模块,5、验证模块,6、接收模块,7、选取模块,8、单个密钥分散模块,9、单级密钥分散模块,10、规划模块,11、根设定模块,12、第一级分散模块,13、下级分散模块,14、多级判断模块。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,为本发明具体实施例所述的一种单个密钥对分散方法,具体包括以下步骤:
步骤a1:以父密钥FK为密钥,杂凑因子ZF=0,对已知的分散因子SF进行分散函数S()运算,得到子密钥SK,计算过程如下:
SK=S(FK,SF)公式(1)
密钥分散算法包括但不限于如下函数:
a1.1对分散因子进行加密运算;
a1.2对分散因子进行解密运算;
a1.3对分散因子进行杂凑类运算;
a1.4以上运算内容的复合运算;
a1.5以上运算结果的剪切或拼装;
步骤a2:根据子密钥SK附加杂凑因子ZF进行杂凑运算Hash()得到中间密钥,计算过程如下:
ZK=Hash(SK||ZF)公式(2)
杂凑运算可选用与ECC运算长度匹配的杂凑算法,如SHA-192,SHA-256或SM3等,也可采用多次计算再截短的方式。
步骤a3:根据中间密钥ZK和G的基点阶n的模余运算mod()计算得到私钥d,计算过程如下:
d=ZK(modn)公式(3.1)
或d=ZK((modn-1))公式(3.2)
步骤a4:根据基点G和私钥d计算得到公钥P,计算过程如下:
P=(xP,yP)=[d]G公式(4)
步骤a5:验证公钥P是否是有效公钥;
公钥P=(xP,yP)为有效公钥的验证方法是:
步骤a5.1:验证公钥是否是无穷远点,如果是,则分散失败,结束;否则,执行步骤a5.2;
步骤a5.2:判断公钥在X轴的所有坐标xP和Y轴的所有坐标yP是否全是椭圆密码算法所设定椭圆域Fp中的元素;如果是,执行步骤a5.3;否则,分散失败,结束;
步骤a5.3:验证X轴的坐标xP和Y轴的坐标yP是否满足椭圆曲线方程:
y2 P≡x3 P+axP+b(modp);
如果满足,执行步骤a5.4;否则,则分散失败,结束;
其中a、b、p为椭圆曲线参数,s≡r(modp)表示s与r模p同余;
步骤a5.4:验证[n]P是否为无穷远点O;如果是,分散成功,返回成功,并返回私钥和公钥作为分散密钥对;否则,则分散失败,结束;
其中n为椭圆曲线的阶,[n]P为公钥P的n倍点。
如果a5.1至a5.4全部满足,则公钥P为有效公钥。任何一项不满足则公钥P不是有效公钥。
如果P不是有效公钥,执行步骤a6;否则,分散成功,则返回成功,并返回私钥和公钥作为分散密钥对及杂凑因子ZK。
步骤a6:杂凑因子ZF加1,如果杂凑因子不大于上界T=2L-1,则重新执行步骤a2;否则返回分散失败。
如图6所示,为本发明所述的一种单个密钥对分散系统,包括子密钥运算模块1、中间密钥运算模块2、私钥运算模块3、公钥运算模块4和验证模块5;
所述子密钥运算模块1用于以父密钥FK为密钥,对已知的分散因子SF进行分散函数S()运算,得到子密钥SK;
所述中间密钥运算模块2用于根据子密钥SK附加已知的杂凑因子ZF进行杂凑运算Hash()得到中间密钥ZK;
所述私钥运算模块3用于根据中间密钥ZK和基点G的阶n计算得到私钥d;
所述公钥运算模块4用于根据基点G和私钥d计算得到公钥P;
所述验证模块5用于对公钥P进行有效性验证,如验证成功,则返回分散成功,并返回私钥d和公钥P作为分散密钥对,结束;否则,杂凑因子ZF加1,返回中间密钥模块,至成功或失败。
如图2所示,为本发明具体实施例所述的一种单级密钥对分散方法,具体包括以下步骤:
步骤b1:接收父密钥FK及接收N个待分散密钥对及相应的分散因子SFi,i=1,2,…,N;N为大于2的自然数;接收杂凑因子初值j及上界T值。
步骤b2:取首个待分散密钥对为当前密钥对;
步骤b3:对当前密钥对执行单个密钥对分散方法,判断是否分散成功;如果是,执行步骤b5;否则,执行步骤b4;
步骤b4:判断当前杂凑因子是否为最大值T,如果是,执行步骤b7;否则,对杂凑因子执行i=i+1,执行步骤b2;
步骤b5:判断是否还有未进行分散的待分散密钥对,如果是,取下一个待分散密钥对为当前密钥对,返回执行步骤b3;否则,执行步骤b6;
步骤b6:单级密钥对分散成功,记录父密钥和杂凑因子,结束;
步骤b7:单级密钥对分散结束,返回分散失败。
如图7所示,为本发明所述的一种单级密钥对分散系统结构框图,包括接收模块6、选取模块7、单个密钥分散模块8和单级密钥分散模块9;
所述接收模块6用于接收密钥FK及N个待分散密钥对及相应的分散因子SFi,i=1,2,…,N;N为大于2的自然数;
所述选取模块7用于取首个待分散密钥对为当前密钥对;
所述单个密钥分散模块8对一个待分散密钥对按照杂凑因子从小到大的顺序依次执行N次单个密钥对分散方法;
所述单级密钥分散模块9用于依次对N个待分散密钥对执行单个密钥对分散方法。
如图3所示,为本发明具体实施例所述的一种多级密钥对分散方法,具体包括以下步骤:
步骤c1:对多个非对称密钥对进行密钥规划,建立多级树图;
步骤c2:选择一个密钥对作为树图中的根密钥对,杂凑因子取初值0;
步骤c3:以根密钥对为主密钥,以根密钥对下一级的所有子密钥对为当前密钥对,执行单级密钥对分散;如分散成功,以返回的杂凑因子为杂凑因子的初始并执行步骤c4;否则,重新产生或设置一个有效的密钥对作为树图中的根密钥对,执行步骤c2;
步骤c4:对多个本级密钥对依次执行单级密钥对分散方法,计算多个下一级密钥对,每个本级密钥对对应多个下一级密钥对;如全部返回成功,执行步骤c5;否则,执行步骤c2;
步骤c5:判断是否还存在未进行分散的下级密钥对,如果是,执行步骤c4;否则,执行步骤c6;
步骤c6:分散成功,记录根密钥和杂凑因子。
所述步骤c1中建立多级树图的过程包括,设定需要分散的级数和各级需要的密钥对数量和分散因子;根据设定的级数和各级数量确定各密钥对的上下级关系,建立多级树图。
所述杂凑因子为一个长度为设定值L的二进制数值,取值范围为0~T,T=2L-1;杂凑因子从0开始,重新选择时每次加一,所述L为正整数。
如图8所示,为本发明所述的一种多级密钥对分散系统结构框图,包括规划模块10、根设定模块11、第一级分散模块12、下级分散模块13和多级判断模块14;
所述规划模块10用于对多个非对称密钥对进行密钥规划,建立多级树图;
所述根设定模块11用于选择一个密钥对作为树图中的根密钥对,并设定杂凑因子ZF初值为0;
所述第一级分散模块12对根密钥对执行单级密钥对分散方法,计算多个第一级密钥对;如分散成功,触发下级分散模块13;否则,判断杂凑因子是否为最大,如果是,返回根设定模块11重新选择一个密钥对作为根密钥对;否则,将杂凑因子加一,继续执行单级密钥对分散方法;
所述下级分散模块13用于对上一级密钥对执行单级密钥对分散方法,计算多个下一级密钥对,每个上一级密钥对对应多个下一级密钥对,如分散成功;触发多级判断模块14;否则,判断杂凑因子是否为最大,如果是,返回根设定模块11重新选择一个密钥对作为根密钥对;否则,将杂凑因子加一,返回模块12对根密钥对执行单级密钥对分散。
所述多级判断模块14用于判断是否还存在未进行分散的密钥对,如果是,触发下级分散模块13;否则,分散成功,记录根密钥和杂凑因子。
如图1所示,为本发明具体实施例1所述的单个密钥对分散步骤:
本发明提出的ECC公钥密码体系中使用的非对称密钥的分散方法是一种有限数量的密钥对分散方法,即在预知最大需求的前提下通过分散方法产生各分散的密钥对。主要包括以下步骤:
已知:ECC曲线参数为SM2算法,分散私钥为父密钥对的私钥;分散函数S()、分散因子SF及杂凑因子ZF,计算分散密钥对。
过程如下:
1)分散私钥:
根据分散因子SF进行私钥分散,主要包括父密钥FK,分散函数S(),及分散因子SF,及杂凑因子HF,通过以父密钥FK为密钥,对分散因子SF进行分散函数运算,得到子密钥SK:
SK=S(FK,SF);
其中分散函数选取为S(x,y)=SM4(x1,y1)||SM1(x2,y2),SM4为128位分组的对称密码算法,x1及x2分别为256位父密钥的前128位和后128位二进制数值,y1及y2为256位分散因子的前128位和后128位二进制数值。||为并运算,即两个128位的数据,经过简单并运算拼接为一个256位的二进制数据。
2)私钥杂凑运算:
子密钥SK附加杂凑因子ZF并进行杂凑运算得到中间密钥ZK;
ZF为0~2L-1的正整数,其中L为ECC运算长度;
ZK=Hash(SK||ZF);
本例中杂凑运算选用256位的SM3算法。
3)私钥计算:
n为基点G的阶,则私钥d=ZK(modn);
4)公钥计算:
G为基点,d为私钥,计算点P=(xP;yP)=[d]G,计算结果P=(xP;yP)为公钥;
5)公钥验证:
a)验证P不是无穷远点O;
b)验证公钥P的坐标xP和yP是域Fp中的元素;
c)验证yP 2≡xP 3+axP+b(modp);
d)验证[n]P=O;
如成功,则返回成功及产生分散密钥对:(d,P),如不成功,则返回错误。
如图2所示,为本发明具体实施例所述的单级密钥对分散步骤:
已知:
1.椭圆曲线ECC-256曲线参数,父密钥对(d,P),其中私钥为d,分散函数S()及杂凑因子ZF上界为T=2256-1;
2.待分散密钥的个数N及相应的分散因子SFi,i=1,2,…,N
计算下一级分散密钥对(di,Pi),i=1,…,N
分散过程如下:
1)杂凑因子ZF=0;
2)i=1;
3)按照图1步骤分散第i个非对称密钥对(di,Pi);
若成功,进行步骤5),若失败,进行步骤4)。
4)判断ZF是否等于T,如果是,执行步骤7);否则ZF=ZF+1,执行步骤2)。
5)判断i是否等于N,如果是,执行步骤6);否则i=i+1,执行步骤3)。
6)单级密钥对分散成功,返回主密钥及杂凑因子ZF值;
7)本次密钥对分散失败。需要重新生成分散主密钥对,重复1)。至所有N个密钥对分散成功。
如图3所示,为本发明具体实施例所述的多级密钥对分散步骤:
对于全系统,整体密钥对分散步骤如下:
1)密钥规划:
非对称密钥的分散前首先需进行密钥规划,其主要内容为:
分级的确定:确定最终系统所需要分散的级数
各级分散密钥的数量:各级需要的密钥对数量级分散因子确定;
各密钥对的上下级关系,建立如图4所示的树图:
分散函数的确定:确定密钥分散的具体函数运算内容,密钥分散算法包括但不限于如下函数:
对分散因子进行加密运算;
对分散因子进行解密运算;
对分散因子进行杂凑类运算;
以上运算内容的复合运算;
以上运算结果的剪切或拼装;
2)主密钥对确定;
首先产生或输入第0级根密钥对(d0,P0),其中d0为根密钥对的私钥,P0为根密钥对的公钥。并设定杂凑因子ZF初始为0;
3)第一级分散密钥对的产生:
安照本发明具体实施例所述的单级密钥对分散步骤的步骤生产第一级密钥对(d1[i],P1[i]),i∈[1,N1],N1为第一级分散密钥对的数量。
若成功,设k=1,以返回的ZF为ZF初值,至步骤4);
若不成功,至步骤2);
4)下一级密钥对的产生:
以第k级产生的密钥对(dk[i,j],Pk[i,j])中的私钥dk[i,j]为分散私钥,安照单级密钥对分散步骤生产下一级,第k+1级密钥对(dk+1[i,j],Pk+1[i,j]),i∈[1,Nk+1],Nk+1为第k+1级分散密钥对的数量。
若成功,k=k+1,至步骤5;
若不成功,退至步骤2);
5)判断第K+1是否是最后一级:
如果是,步骤6;否则继续步骤4;
6)分散完成:
所有系统所需要分散的级数及各级需要密钥对的数量分散完成,则全系统密钥分散完成,并记录根密钥和杂凑因子ZF。
密钥对分散使用过程:
如图5所示,为分散密钥对的使用流程图。
对于已经成功完成了密钥对,仅保存了父密钥FK和杂凑因子ZF。使用下级子密钥对时,就需要临时产生下级密钥对,分散帮步骤如下:
a)根据父密钥FK及分散因子,通过分散函数计算分散密钥:
SK=S(FK,SF);
b)通过杂凑运算计算中间密钥ZK:
ZK=Hash(SK||ZF);
c)计算子密钥私钥d:
d=ZK(modn);
d)计算子密钥公钥:
P=[d]G;
密钥对(d;P)即为通过本发明提出算法得到的密钥对,由于事先已经做过合法性验证,所以计算后,不再需要密钥对的检验,可直接使用。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种单个密钥对分散方法,其特征在于,具体包括以下步骤:
步骤a1:以父密钥对的私钥为密钥,对已知的分散因子进行分散函数运算,得到子密钥;
步骤a2:根据子密钥和已知的杂凑因子进行杂凑运算得到中间密钥;
步骤a3:根据中间密钥和基点的阶计算得到私钥d;
步骤a4:根据基点和私钥计算得到公钥P;
步骤a5:进行公钥验证,如验证成功,则返回分散成功,并返回及杂凑因子,同时返回私钥和公钥作为分散后的密钥对,结束;否则,返回验证失败。
2.根据权利要求1所述的一种单个密钥对分散方法,其特征在于,所述步骤a5具体包括以下步骤:
步骤a5.1:验证公钥P是否是无穷远点,如果是,则分散失败,结束;否则,执行步骤a5.2;
步骤a5.2:判断公钥P在X轴的坐标xP和Y轴的坐标yP是否是椭圆密码算法所设定椭圆域Fp中的元素;如果是,执行步骤a5.3;否则,分散失败,结束;
步骤a5.3:验证X轴的坐标xP和Y轴的坐标yP是否满足椭圆曲线方程:
y2 P≡x3 P+axP+b(modp);
如果满足,执行步骤a5.4;否则,则分散失败,结束;
其中a、b、p为椭圆曲线参数,s≡r(modp)表示s与r模p同余;
步骤a5.4:验证[n]P是否为无穷远点O;如果是,分散成功,返回成功,并返回私钥和公钥作为分散密钥对;否则,则分散失败,结束;
其中n为椭圆曲线的阶,[n]P为公钥P的n倍点。
3.根据权利要求1所述的一种单个密钥对分散方法,其特征在于,当步骤a5返回错误,即验证失败时,可以通过如下操作继续进行密钥对分散:
步骤a6:改变杂凑因子,重新从步骤a2开始执行。
4.一种单个密钥对分散系统,其特征在于,包括子密钥运算模块、中间密钥运算模块、私钥运算模块、公钥运算模块和验证模块;
所述子密钥运算模块用于以父密钥为密钥,对已知的分散因子进行分散函数运算,得到子密钥;
所述中间密钥运算模块用于根据子密钥和已知的杂凑因子进行杂凑运算得到中间密钥;
所述私钥运算模块用于根据中间密钥和基点的阶计算得到私钥d;
所述公钥运算模块用于根据基点和私钥计算得到公钥P;
所述验证模块用于进行公钥验证,如验证成功,则返回分散成功,并返回私钥d和公钥P作为分散密钥对,结束;否则,则分散失败,返回错误,结束。
5.一种单级密钥对分散方法,其特征在于,具体包括以下步骤:
步骤b1:接收N个待分散密钥对及相应的分散因子SFi(i=1,2,…,N),接收一个主密钥对为父密钥,杂凑因子取初值j,杂凑因子上界为T;
N为大于2的自然数,j为不大于T的正整数;
步骤b2:取首个待分散密钥对为当前密钥对;
步骤b3:对当前密钥对执行如权利要求1所述的单个密钥对分散方法,判断是否验证成功;如果是,执行步骤b5;否则,执行步骤b4;
步骤b4:判断当前杂凑因子是否为上界T,如果是,执行步骤b7;否则,对杂凑因子加1,返回执行步骤b2;
步骤b5:判断是否还有未进行分散的待分散密钥对,如果是,取下一个待分散密钥对为当前密钥对,执行步骤b3;否则,则完成单级密钥对的分散,执行步骤b6;
步骤b6:单级密钥对分散结束,记录父密钥和杂凑因子,返回成功,结束;
步骤b7:单级密钥对分散结束,返回分散失败,结束。
6.一种单级密钥对分散系统,其特征在于,包括接收模块、选取模块、单个密钥分散模块和单级密钥分散模块;
所述接收模块用于接收N个待分散密钥对及相应的分散因子SFi,i=1,2,…,N;N为大于2的自然数;杂凑因子初值、上界分别为j和T;j为不大于T的正整数;
所述选取模块用于取首个待分散密钥对为当前密钥对;
所述单个密钥分散模块对一个待分散密钥进行单个密钥对分散,并在分散失败时,按照杂凑因子逐次增加方式重新执行单个密钥对分散方法;
所述单级密钥分散模块用于在杂凑因子只增不减的前提下,依次对N个待分散密钥对执行单个密钥对分散的方法。
7.一种多级密钥对分散方法,其特征在于,具体包括以下步骤:
步骤c1:对多个非对称密钥对进行密钥规划,建立多级树图;每个非对称密钥对对应各自的分散因子;
步骤c2:产生或设置一个有效的密钥对作为树图中的根密钥对,设定杂凑因子初值和上界;
步骤c3:对根密钥对执行如权利要求4所述的单级密钥对分散方法,以得到多个第一级密钥对,如返回成功,以返回杂凑因子为初始杂凑因子执行步骤c4;否则,执行步骤c2,即重新产生或设置根密钥对,或减小初始杂凑因子或加大杂凑因子上界;
步骤c4:对上一级密钥对执行如权利要求4所述的单级密钥对分散方法,得到多个下一级密钥对,每个上一级密钥对对应多个下一级密钥对;如全部返回成功,执行步骤c5;否则,执行步骤c2;
步骤c5:判断是否还存在未进行分散的下一级密钥对,如果是,执行步骤c4;否则,执行步骤c6;
步骤c6:分散成功,记录根密钥和杂凑因子。
8.根据权利要求6所述的一种多级密钥对分散方法,其特征在于,所述步骤c1中建立多级树图的过程包括,事先设定需要分散的级数和各级需要的密钥对数量和分散因子,并根据设定的级数和各级数量确定各密钥对的上下级关系,建立多级树图。
9.根据权利要求6所述的一种多级密钥对分散方法,其特征在于,所述杂凑因子为一个长度为设定值L的二进制数值,取值范围为0~2L-1;杂凑因子从0开始,重新选择杂凑因子时每次加一,所述L为正整数。
10.一种多级密钥对分散系统,其特征在于,包括规划模块、根设定模块、第一级分散模块、下级分散模块和多级判断模块;
所述规划模块用于对多个非对称密钥对进行密钥规划,建立多级树图;所述根设定模块用于选择一个密钥对作为树图中的根密钥对;
所述第一级分散模块对根密钥对执行单级密钥对分散方法,如成功则得到多个第一级密钥对,触发下级分散模块;否则,返回根设定模块重新选择一个密钥对作为根密钥对或重新定义杂凑因子更小的初始值或更大上界;
所述下级分散模块用于对上一级密钥对执行单级密钥对分散方法,得到多个下一级密钥对,每个上一级密钥对对应多个下一级密钥对;直到全部通过验证,触发多级判断模块;
所述多级判断模块用于判断是否还存在未进行分散的密钥对,如果是,触发下级分散模块;否则,分散成功,记录根密钥和杂凑因子。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510416240.4A CN105162583B (zh) | 2015-07-15 | 2015-07-15 | 一种单个、单级和多级密钥对分散方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510416240.4A CN105162583B (zh) | 2015-07-15 | 2015-07-15 | 一种单个、单级和多级密钥对分散方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105162583A true CN105162583A (zh) | 2015-12-16 |
CN105162583B CN105162583B (zh) | 2018-10-26 |
Family
ID=54803348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510416240.4A Active CN105162583B (zh) | 2015-07-15 | 2015-07-15 | 一种单个、单级和多级密钥对分散方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105162583B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105763333A (zh) * | 2016-01-28 | 2016-07-13 | 北京江南天安科技有限公司 | 一种非对称密钥的协商方法及系统 |
CN106790191A (zh) * | 2016-12-30 | 2017-05-31 | 桂林电子科技大学 | 一种需要大量密钥的密钥管理的方法 |
CN107070649A (zh) * | 2017-03-02 | 2017-08-18 | 桂林电子科技大学 | 一种减少写入的大文件选择性加密方法 |
CN107135062A (zh) * | 2017-05-08 | 2017-09-05 | 桂林电子科技大学 | 一种改进的大文件的加密方法 |
CN108599935A (zh) * | 2018-04-16 | 2018-09-28 | 北京知道创宇信息技术有限公司 | 密钥生成方法、装置及离线密钥生成设备 |
CN108667595A (zh) * | 2017-03-28 | 2018-10-16 | 吉林化工学院 | 一种大数据文件的压缩加密方法 |
CN109600224A (zh) * | 2018-11-06 | 2019-04-09 | 卓望数码技术(深圳)有限公司 | 一种sm2密钥生成、签名方法、终端、服务器和存储介质 |
CN110098924A (zh) * | 2019-04-19 | 2019-08-06 | 深圳华中科技大学研究院 | 支持可搜索透明加密的层级密钥技术 |
CN110365482A (zh) * | 2019-08-01 | 2019-10-22 | 江苏恒宝智能系统技术有限公司 | 一种数据通信方法和装置 |
CN114258018A (zh) * | 2021-11-12 | 2022-03-29 | 中国南方电网有限责任公司 | 密钥管理方法、装置、计算机设备及存储介质 |
CN114257373A (zh) * | 2021-11-12 | 2022-03-29 | 中国南方电网有限责任公司 | 混合加密体制密钥存储管理方法、系统、计算机设备和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101447867A (zh) * | 2008-12-31 | 2009-06-03 | 中国建设银行股份有限公司 | 一种管理数字证书的方法和系统 |
CN101938354A (zh) * | 2010-09-02 | 2011-01-05 | 武汉天喻信息产业股份有限公司 | 一种基于模幂运算的密钥分发方法及其应用 |
WO2011141040A1 (en) * | 2010-05-14 | 2011-11-17 | Siemens Aktiengesellschaft | Method of group key generation and management for generic object oriented substantiation events model |
CN102946311A (zh) * | 2012-11-28 | 2013-02-27 | 成都卫士通信息产业股份有限公司 | 一种增强对称密钥体系安全性的密钥分散方法 |
CN103647644A (zh) * | 2013-12-26 | 2014-03-19 | 北京航空航天大学 | 一种实现分层认证机构的属性基加密方法 |
CN104618325A (zh) * | 2014-12-19 | 2015-05-13 | 中国印钞造币总公司 | 一种用于电子签封的安全传输方法及装置 |
-
2015
- 2015-07-15 CN CN201510416240.4A patent/CN105162583B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101447867A (zh) * | 2008-12-31 | 2009-06-03 | 中国建设银行股份有限公司 | 一种管理数字证书的方法和系统 |
WO2011141040A1 (en) * | 2010-05-14 | 2011-11-17 | Siemens Aktiengesellschaft | Method of group key generation and management for generic object oriented substantiation events model |
CN101938354A (zh) * | 2010-09-02 | 2011-01-05 | 武汉天喻信息产业股份有限公司 | 一种基于模幂运算的密钥分发方法及其应用 |
CN102946311A (zh) * | 2012-11-28 | 2013-02-27 | 成都卫士通信息产业股份有限公司 | 一种增强对称密钥体系安全性的密钥分散方法 |
CN103647644A (zh) * | 2013-12-26 | 2014-03-19 | 北京航空航天大学 | 一种实现分层认证机构的属性基加密方法 |
CN104618325A (zh) * | 2014-12-19 | 2015-05-13 | 中国印钞造币总公司 | 一种用于电子签封的安全传输方法及装置 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105763333B (zh) * | 2016-01-28 | 2019-05-24 | 北京江南天安科技有限公司 | 一种非对称密钥的协商方法 |
CN105763333A (zh) * | 2016-01-28 | 2016-07-13 | 北京江南天安科技有限公司 | 一种非对称密钥的协商方法及系统 |
CN106790191A (zh) * | 2016-12-30 | 2017-05-31 | 桂林电子科技大学 | 一种需要大量密钥的密钥管理的方法 |
CN107070649A (zh) * | 2017-03-02 | 2017-08-18 | 桂林电子科技大学 | 一种减少写入的大文件选择性加密方法 |
CN108667595B (zh) * | 2017-03-28 | 2021-05-14 | 吉林化工学院 | 一种大数据文件的压缩加密方法 |
CN108667595A (zh) * | 2017-03-28 | 2018-10-16 | 吉林化工学院 | 一种大数据文件的压缩加密方法 |
CN107135062A (zh) * | 2017-05-08 | 2017-09-05 | 桂林电子科技大学 | 一种改进的大文件的加密方法 |
CN108599935A (zh) * | 2018-04-16 | 2018-09-28 | 北京知道创宇信息技术有限公司 | 密钥生成方法、装置及离线密钥生成设备 |
CN108599935B (zh) * | 2018-04-16 | 2021-07-09 | 北京知道创宇信息技术股份有限公司 | 密钥生成方法、装置及离线密钥生成设备 |
CN109600224A (zh) * | 2018-11-06 | 2019-04-09 | 卓望数码技术(深圳)有限公司 | 一种sm2密钥生成、签名方法、终端、服务器和存储介质 |
CN110098924A (zh) * | 2019-04-19 | 2019-08-06 | 深圳华中科技大学研究院 | 支持可搜索透明加密的层级密钥技术 |
CN110098924B (zh) * | 2019-04-19 | 2021-07-27 | 深圳华中科技大学研究院 | 一种支持可搜索透明加密的层级密钥生成方法及系统 |
CN110365482A (zh) * | 2019-08-01 | 2019-10-22 | 江苏恒宝智能系统技术有限公司 | 一种数据通信方法和装置 |
CN110365482B (zh) * | 2019-08-01 | 2023-05-16 | 恒宝股份有限公司 | 一种数据通信方法和装置 |
CN114258018A (zh) * | 2021-11-12 | 2022-03-29 | 中国南方电网有限责任公司 | 密钥管理方法、装置、计算机设备及存储介质 |
CN114257373A (zh) * | 2021-11-12 | 2022-03-29 | 中国南方电网有限责任公司 | 混合加密体制密钥存储管理方法、系统、计算机设备和介质 |
CN114258018B (zh) * | 2021-11-12 | 2024-04-09 | 中国南方电网有限责任公司 | 密钥管理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105162583B (zh) | 2018-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105162583A (zh) | 一种单个、单级和多级密钥对分散方法及其系统 | |
EP3069249B1 (en) | Authenticatable device | |
CA2698000C (en) | Signatures with confidential message recovery | |
CN112019591A (zh) | 一种基于区块链的云数据共享方法 | |
CN101562524B (zh) | 一种基于身份的数字签名方法 | |
EP3738271A1 (en) | Computer-implemented method for managing user-submitted reviews using anonymous reputation system | |
US9385872B2 (en) | Reissue of cryptographic credentials | |
CN111131171B (zh) | 一种基于区块链网络的节点认证方法及装置 | |
US20180183592A1 (en) | Public key rollup for merkle tree signature scheme | |
CN111130795A (zh) | 一种基于区块链技术的多级签名方法 | |
CN110351297B (zh) | 一种应用于区块链的验证方法及装置 | |
EP2678969A1 (en) | Digital signatures | |
CN105721153A (zh) | 基于认证信息的密钥交换系统及方法 | |
CN108259506B (zh) | Sm2白盒密码实现方法 | |
US20230224147A1 (en) | Generating shared private keys | |
CN111080296B (zh) | 一种基于区块链系统的验证方法及装置 | |
CN112686672A (zh) | 区块链上背书签名压缩方法、电子设备及存储介质 | |
De La Piedra et al. | Towards a full-featured implementation of attribute based credentials on smart cards | |
CN109302286B (zh) | 一种Fido设备密钥索引的生成方法 | |
CN113242219A (zh) | 数据传输方法、区块链网络及存储介质 | |
CN109861822B (zh) | 一种区块链系统中可控消息交易加密的方法 | |
US9577828B2 (en) | Batch verification method and apparatus thereof | |
Li et al. | A forward-secure certificate-based signature scheme | |
CN117795901A (zh) | 生成数字签名份额 | |
CN104917616A (zh) | 一种基于智能卡的软件定义网络中网络设备认证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Yan Mingsheng Inventor after: Li Guo Inventor after: Zhang Zhao Inventor before: Yan Mingsheng Inventor before: Chen Hu Inventor before: Li Guo Inventor before: Zhang Zhao |
|
GR01 | Patent grant | ||
GR01 | Patent grant |