本申请涉及量子密钥分发领域,特别涉及一种对纠错后密钥保密增强的实现方法及装置。
背景技术:
在量子密钥分发(quantumkeydistribution,qkd)系统生成最终密钥的过程中,qkd系统中alice端和bob端生成的纠错后密钥(correctedkey)中多光子成分的存在以及经典网络或者量子链路上的信息泄露,可能引发不安全。因此,需要对纠错后密钥进行保密增强,使得对纠错后密钥进行保密增强后所得到的最终密钥由单光子成分贡献,并且,去除了纠错过程中的信息泄露。
现有技术中,对纠错后密钥进行保密增强时,将纠错后密钥进行分段,针对每个密钥段进行哈希运算得到每个密钥段对应的哈希值,并从每个密钥段对应的哈希值中选取一定长度的数值,将选取出的数值拼接为该纠错后密钥对应的最终密钥。
但是,现有技术中得到的最终密钥的安全性较低,因此,需要提高最终密钥的安全性。
技术实现要素:
基于此,本申请提供了一种对纠错后密钥保密增强的实现方法,用以提高对纠错后密钥保密增强后得到的最终密钥的安全性。
本申请还提供了一种对纠错后密钥保密增强的实现装置,用以保证上述方法在实际中的实现及应用。
本申请的技术方案为:
本申请公开了一种对纠错后密钥保密增强的实现方法,包括:将纠错后密钥分成连续的多个密钥段;
依次将所述连续的多个密钥段中的每个密钥段作为目标密钥段,确定包含所述目标密钥段以及位于所述目标密钥段之前的所有密钥段的第一密钥段集合,并依据所述第一密钥段集合中的密钥段,计算得到所述目标密钥段对应的第一哈希值;
依次将所述连续的多个密钥段中的每个密钥段作为目标密钥段,确定包含所述目标密钥段以及位于所述目标密钥段之后的所有密钥段的第二密钥段集合,并依据所述第二密钥段集合中的密钥段,计算得到所述目标密钥段对应的第二哈希值;
依次将所述连续的多个密钥段中的每个密钥段作为当前目标密钥段,将所述当前目标密钥段对应的第一哈希值与第二哈希值按照第一预设方式进行计算,得到所述当前目标密钥段对应的最终密钥段;或者,将所述当前目标密钥段与目标哈希值按照第二预设方式进行计算,得到所述当前目标密钥段对应的最终密钥段;所述目标哈希值为所述连续的多个密钥段中之后没有密钥段的目标密钥段所对应的第一哈希值,或者,所述连续的多个密钥段中之前没有密钥段的目标密钥段所对应的第二哈希值;
基于所述每个目标密钥段对应的最终密钥段,确定所述纠错后密钥对应的最终密钥。
其中,在所述目标密钥段为所述连续的多个密钥段中从左到右方向上的第一个密钥段时,所述依据所述第一密钥段集合中的密钥段,计算得到所述目标密钥段对应的第一哈希值,包括:
将所述目标密钥段与第一参数进行拼接,得到所述目标密钥段对应的第一拼接密钥段;所述第一参数为真随机数或对称密钥;
对所述目标密钥段对应的第一拼接密钥段采用哈希算法进行计算,得到所述目标密钥段对应的第一哈希值。
其中,在所述目标密钥段依次为按照从第二个密钥段到最后一个密钥段的顺序中的一个密钥段时,所述依据所述第一密钥段集合中的密钥段,计算得到所述目标密钥段对应的第一哈希值,包括:
获取位于所述目标密钥段之前且与所述目标密钥段相邻的密钥段对应的第一哈希值;
将所述第一哈希值与所述第一参数进行异或,得到所述目标密钥段对应的异或结果;
将所述目标密钥段与所述异或结果进行拼接,得到所述目标密钥段对应的第一拼接密钥段;
对所述目标密钥段对应的第一拼接密钥段进行哈希计算,得到所述目标密钥段对应的第一哈希值。
其中,在所述目标密钥段为所述连续的多个密钥段中从左到右方向上的最后一个密钥段时,所述依据所述第二密钥段集合中的密钥段,计算得到所述目标密钥段对应的第二哈希值,包括:
将所述目标密钥段与第一参数进行拼接,得到所述目标密钥段对应的第二拼接密钥段;所述第一参数为真随机数或对称密钥;
对所述目标密钥段对应的第二拼接密钥段采用哈希算法进行计算,得到所述目标密钥段对应的第二哈希值。
其中,在所述目标密钥段依次为按照从倒数第二个密钥段到第一个密钥段的顺序中的一个密钥段时,所述依据所述第二密钥段集合中的密钥段,计算得到所述目标密钥段对应的第二哈希值,包括:
获取位于所述目标密钥段之后且与所述目标密钥段相邻的密钥段对应的第二哈希值;
将所述第二哈希值与所述第一参数进行异或,得到所述目标密钥段对应的异或结果;
将所述目标密钥段与所述异或结果进行拼接,得到所述目标密钥段对应的第二拼接密钥段;
对所述目标密钥段对应的第二拼接密钥段进行哈希计算,得到所述目标密钥段对应的第二哈希值。
其中,所述将所述当前目标密钥段对应的第一哈希值与第二哈希值按照第一预设方式进行计算,得到所述当前目标密钥段对应的最终密钥段,包括:
针对所述当前目标密钥段在所述第一参数为真随机数时所得到的第一哈希值与第二哈希值,分别按比例取低位得到所述第一哈希值的第一低位值与所述第二哈希值的第一低位值;对所述第一哈希值的第一低位值与所述第二哈希值的第一低位值进行异或操作,得到所述当前目标密钥段对应的最终密钥段;
或者,
针对所述当前目标密钥段在所述第一参数为对称密钥时所得到的第一哈希值与第二哈希值,分别按比例取低位得到所述第一哈希值的第二低位值与所述第二哈希值的第二低位值;对所述第一哈希值的第二低位值与所述第二哈希值的第二低位值进行异或操作,得到所述当前目标密钥段对应的最终密钥段。
其中,所述将所述当前目标密钥段与目标哈希值按照第二预设方式进行计算,得到所述当前目标密钥段对应的最终密钥段,包括:
将所述当前目标密钥段与所述目标哈希值进行拼接,得到拼接后的当前目标密钥段;
对所述拼接后的当前目标密钥段进行哈希计算,得到所述拼接后的当前目标密钥段对应的计算结果;
对所述拼接后的当前目标密钥段对应的计算结果按比例取低位,得到所述当前目标密钥段对应的最终密钥段。
其中,所述基于所述每个目标密钥段对应的最终密钥段,确定所述纠错后密钥对应的最终密钥,包括:
将所述每个目标密钥段所对应的最终密钥段,按照所述每个目标密钥段在所述纠错后密钥中的顺序进行拼接,得到拼接后的最终密钥段;
将所述拼接后的最终密钥段,确定为所述纠错后密钥所对应的最终密钥。
本申请还公开了一种对纠错后密钥保密增强的实现装置,包括:
划分单元,用于将纠错后密钥分成连续的多个密钥段;
第一计算单元,用于依次将所述连续的多个密钥段中的每个密钥段作为目标密钥段,确定包含所述目标密钥段以及位于所述目标密钥段之前的所有密钥段的第一密钥段集合,并依据所述第一密钥段集合中的密钥段,计算得到所述目标密钥段对应的第一哈希值;
第二计算单元,用于依次将所述连续的多个密钥段中的每个密钥段作为目标密钥段,确定包含所述目标密钥段以及位于所述目标密钥段之后的所有密钥段的第二密钥段集合,并依据所述第二密钥段集合中的密钥段,计算得到所述目标密钥段对应的第二哈希值;
第三计算单元,用于依次将所述连续的多个密钥段中的每个密钥段作为当前目标密钥段,将所述当前目标密钥段对应的第一哈希值与第二哈希值按照第一预设方式进行计算,得到所述当前目标密钥段对应的最终密钥段;或者,将所述当前目标密钥段与目标哈希值按照第二预设方式进行计算,得到所述当前目标密钥段对应的最终密钥段;所述目标哈希值为所述连续的多个密钥段中之后没有密钥段的目标密钥段所对应的第一哈希值,或者,所述连续的多个密钥段中之前没有密钥段的目标密钥段所对应的第二哈希值;
确定单元,用于基于所述每个目标密钥段对应的最终密钥段,确定所述纠错后密钥对应的最终密钥。
其中,所述第一计算单元具体用于:
在所述目标密钥段为所述连续的多个密钥段中从左到右方向上的第一个密钥段时,将所述目标密钥段与第一参数进行拼接,得到所述目标密钥段对应的第一拼接密钥段;所述第一参数为真随机数或对称密钥;对所述目标密钥段对应的第一拼接密钥段采用哈希算法进行计算,得到所述目标密钥段对应的第一哈希值;
在所述目标密钥段依次为按照从第二个密钥段到最后一个密钥段的顺序中的一个密钥段时,获取位于所述目标密钥段之前且与所述目标密钥段相邻的密钥段对应的第一哈希值;将所述第一哈希值与所述第一参数进行异或,得到所述目标密钥段对应的异或结果;将所述目标密钥段与所述异或结果进行拼接,得到所述目标密钥段对应的第一拼接密钥段;对所述目标密钥段对应的第一拼接密钥段进行哈希计算,得到所述目标密钥段对应的第一哈希值。
其中,所述第二计算单元具体用于:
在所述目标密钥段为所述连续的多个密钥段中从左到右方向上的最后一个密钥段时,将所述目标密钥段与第一参数进行拼接,得到所述目标密钥段对应的第二拼接密钥段;所述第一参数为真随机数或对称密钥;对所述目标密钥段对应的第二拼接密钥段采用哈希算法进行计算,得到所述目标密钥段对应的第二哈希值;
在所述目标密钥段依次为按照从倒数第二个密钥段到第一个密钥段的顺序中的一个密钥段时,获取位于所述目标密钥段之后且与所述目标密钥段相邻的密钥段对应的第二哈希值;将所述第二哈希值与所述第一参数进行异或,得到所述目标密钥段对应的异或结果;将所述目标密钥段与所述异或结果进行拼接,得到所述目标密钥段对应的第二拼接密钥段;对所述目标密钥段对应的第二拼接密钥段进行哈希计算,得到所述目标密钥段对应的第二哈希值。
其中,所述第三计算单元包括:第一计算子单元或第二计算子单元;
所述第一计算子单元,用于针对所述当前目标密钥段在所述第一参数为真随机数时所得到的第一哈希值与第二哈希值,分别按比例取低位得到所述第一哈希值的第一低位值与所述第二哈希值的第一低位值;对所述第一哈希值的第一低位值与所述第二哈希值的第一低位值进行异或操作,得到所述当前目标密钥段对应的最终密钥段;
或者,
针对所述当前目标密钥段在所述第一参数为对称密钥时所得到的第一哈希值与第二哈希值,分别按比例取低位得到所述第一哈希值的第二低位值与所述第二哈希值的第二低位值;对所述第一哈希值的第二低位值与所述第二哈希值的第二低位值进行异或操作,得到所述当前目标密钥段对应的最终密钥段;
所述第二计算子单元,用于将所述当前目标密钥段与所述目标哈希值进行拼接,得到拼接后的当前目标密钥段;所述目标哈希值为所述连续的多个密钥段中之后没有密钥段的目标密钥段所对应的第一哈希值,或者,所述连续的多个密钥段中之前没有密钥段的目标密钥段所对应的第二哈希值;
对所述拼接后的当前目标密钥段进行哈希计算,得到所述拼接后的当前目标密钥段对应的计算结果;
对所述拼接后的当前目标密钥段对应的计算结果按比例取低位,得到所述当前目标密钥段对应的最终密钥段。
其中,所述确定单元具体用于:
将所述每个目标密钥段所对应的最终密钥段,按照所述每个目标密钥段在所述纠错后密钥中的顺序进行拼接,得到拼接后的最终密钥段;
将所述拼接后的最终密钥段,确定为所述纠错后密钥所对应的最终密钥。
与现有技术相比,本申请的有益效果为:
在本申请实施例中,将纠错后密钥进行分段,得到连续的多个密钥段,依次将连续的多个密钥段中的每个密钥段确定为目标密钥段,确定每个目标密钥段对应的第一哈希值与第二哈希值,其中,任意目标密钥段对应的第一哈希值是基于该密钥段以及该密钥段之前的所有密钥段的第一密钥段集合计算的哈希值,任意目标密钥段对应的第二哈希值为基于该密钥段以及该密钥段之后的所有密钥段的第二密钥段集合计算的哈希值,因此,任意目标密钥段对应的第一哈希值与该目标密钥段以及与该目标密钥段之前的所有密钥段相关;同理,任意目标密钥段对应的第二哈希值与该目标密钥段以及与该目标密钥段之后的所有密钥段相关。因此,针对每个目标密钥段将该目标密钥段对应的第一哈希值与第二哈希值进行计算,或者,将每个目标密钥段与目标哈希值进行计算,该目标哈希值为与纠错后密钥中的所有密钥段相关的值,进而纠错后密钥中每个目标密钥段对应的计算结果与纠错后密钥中所有的密钥段有关;而现有技术中,纠错后密钥中的每个密钥段对应的运算结果只与该密钥段相关,因此,本申请实施例得到的最终密钥的安全性更高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请中qkd系统中alice端和bob端生成纠错后密钥的过程示意图;
图2为本申请中一种对纠错后密钥保密增强的实现方法实施例的流程图;
图3为本申请中一种对纠错后密钥保密增强的具体实现方法示意图;
图4为本申请中又一种对纠错后密钥保密增强的具体实现方法示意图;
图5为本申请中又一种对纠错后密钥保密增强的具体实现方法示意图;
图6为本申请中又一种对纠错后密钥保密增强的具体实现方法示意图;
图7为本申请中又一种对纠错后密钥保密增强的具体实现方法示意图;
图8为本申请中又一种对纠错后密钥保密增强的具体实现方法示意图;
图9为本申请中一种对纠错后密钥保密增强的实现装置实施例的结构示意图。
具体实施方式
本申请实施例中对纠错后密钥的保密增强的实现方法应用于量子密钥分发(quantumkeydistribution,qkd)设备中alice端和bob端,目的在于对alice端和bob端生成的纠错后密钥(correctedkey)进行保密增强。
本申请实施例所述的纠错后密钥进行保密增强的实现方法可以由保密增强的实现装置执行,所述装置可以集成在qkd系统中的alice端和bob端,也可以独立设置,都从alice端和bob端获取纠错后密钥。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
qkd系统与经典密钥体系存在的根本区别在于采用光子的不同量子态作为密钥的载体,基于量子力学的基本原理保证了qkd系统产生的密钥具有不可窃听和不可破译性,因此,qkd系统为一种更为安全的密钥体系。对于qkd系统产生密钥的流程如图1所示,从图1中可以看出,该密钥的产生流程包括:
alice端和bob端通过经典信道建立经典网络连接,接着,alice端按照bb84协议制备量子态光子,并将制备得到的量子态光子通过光纤传输到bob端,bob端完成对量子态光子的探测;接着,alice端和bob端按照bb84协议完成对基过程,提取基失一致的siftedkey,接着,使用纠错算法将两端存在一定错误的siftedkey进行纠错并协商达到一致,此时,两端得到correctedkey,接着,两端对correctedkey进行保密增强以消除之前步骤中引入的信息泄露,两端得到最终密钥(finalkey),并输出最终密钥。
在qkd系统的alice端和bob端一致生成的correctedkey中包含多光子成分的贡献,以及经典网络或量子链路上的信息泄露,使得correctedkey作为最终密钥来使用存在不安全性,因此,correctedkey不能作为最终密钥进行使用。为了去除correctedkey中的多光子成分贡献,以及去除纠错过程中的信息泄露,需要对correctedkey进行保密增强操作,得到最终密钥,增加攻击者破解最终密钥得到correctedkey的难度,从而保证correctedkey的安全。
本申请中的发明人在研究中发现,现有技术中对correctedkey进行保密增强的实现过程中,将correctedkey按固定长度进行分段得到多个长度相同的密钥段,接着,将每个密钥段输入到经典哈希算法进行哈希计算,得到每个密钥段对应的哈希值,并按照保密增强因子取相应比例长度的哈希值,得到每个密钥段对应的最终密钥段,接着,将每个密钥段按照在纠错后密钥中的顺序,对每个密钥段对应的最终密钥段进行拼接,得到纠错后密钥对应的最终密钥。由于最终密钥由多个最终密钥段组成,其中,每个最终密钥段只与纠错后密钥中的一个密钥段相关,因此,现有技术中生成的最终密钥的安全性差。为了提高最终密钥的安全性,本申请实施例针对纠错后密钥中任意一个密钥段生成的最终密钥段与纠错后密钥中所有的密钥段相关,进而由多个最终密钥段拼接而成的最终密钥中每个最终密钥段都与纠错后密钥中的所有密钥段相关。
参考图2,示出了本申请一种对纠错后密钥保密增强的实现方法实施例的流程图,该实施例可以包括:
步骤201:获取纠错后密钥。
本申请实施例中对纠错后密钥保密增强的实现过程需要同时应用于qkd系统中的alice端和bob端,针对每一端的纠错后密钥进行保密增强的实现方式相同,为了描述方便,本实施例在不特别示意的情况下,每个步骤都适用于alice端和bob端。qkd系统中alice端与bob端的纠错后密钥相同,在本步骤中,获取纠错后密钥。
步骤202:将获取的纠错后密钥分成连续的多个密钥段。
获取纠错后密钥后,在本步骤中按照从纠错后密钥从左到右或者从右到左的任何一种顺序,并且,按照预设长度对纠错后密钥进行分段,得到多个顺序相连的且长度相同的多个密钥段,为了描述方便,本实施例中将得到的多个密钥段按照顺序称为第一个密钥段、第二个密钥段、第三个密钥段直到最后一个密钥段,此处的最后一个密钥段为连续的多个密钥段中之后没有密钥段的密钥段,例如,连续的多个密钥段一共有10个,则本实施例中的最后一个密钥段为第10个密钥段。
具体的,本实施例可以采用经典哈希算法核,例如国密sm3算法,将纠错后密钥按照256bit进行分段,得到第一个密钥段c1,第二个密钥段c2,第三个密钥段c3直到最后一个密钥段c_n。
步骤203:依次将连续的多个密钥段中的每个密钥段作为目标密钥段,确定包含目标密钥段以及位于所述目标密钥段之前的所有密钥段的第一密钥段集合,并依据所述第一密钥段集合中的密钥段,计算得到所述目标密钥段对应的第一哈希值。
在得到顺序相连的第一个密钥段、第二个密钥段直到最后一个密钥段后,接着,在本步骤中,针对每个密钥段,将包括从第一个密钥段到该目标密钥段的所有的密钥段称为第一密钥段集合,此时,得到了每个目标密钥段对应的第一密钥段集合,接着,本步骤中依据该目标密钥段对应的第一密钥段集合,计算该目标密钥段对应的第一哈希值,得到每个目标密钥段对应的第一哈希值。
具体的,确定每个目标密钥段对应的第一哈希值的过程可以包括:
将第一个密钥段c1与一个真随机数r1拼接,其中,在qkd系统中alice端和bob端所使用的真随机数r1相同,对拼接结果采用sm3算法计算出哈希值h1,并将h1确定为第一个密钥段c1对应的第一哈希值h1;将第一个密钥段c1对应的h1与真随机数r2进行异或操作,并将异或结果与第二个密钥段c2拼接得到第二个密钥段c2对应的第一拼接密钥段,对c2对应的第一拼接密钥段采用sm3算法计算,并将得到的哈希值作为c2对应的第一哈希值h2;将c2对应的第一哈希值h2与真随机数r3进行异或操作,并将异或操作结果与第三个密钥段c3拼接,得到c3对应的第一拼接密钥段,对c3对应的第一拼接密钥段采用sm3算法计算,并将得到的哈希值作为c3对应的第一哈希值h3;按照计算c2、c3对应第一哈希值的方法,直至计算最后一个密钥段c_n对应的第一哈希值h_n。本步骤中真随机数的作用为:增加每次哈希计算的随机性。
在本实施例中,确定每个目标密钥段对应的第一哈希值的过程中,可以将真随机数替换为对称密钥key,即将真随机数r1、r2、r3……r_n都对应替换为对称密钥key,该对称密钥key在qkd系统中alice端和bob端保密不对外公开,并且,在一次对纠错后密钥实现保密增强的过程中保持不变,不同次的实现保密增强的过程中对称密钥的取值不同。当计算每个目标密钥段对应的第一哈希值的过程中,若采用对称密钥key进行计算时,将第一个密钥段c1对应的第一哈希值称为h1,第二个密钥段c2对应的第一哈希值称为h2,第三个密钥段c3对应的第一哈希值称为h3,直至最后一个密钥段c_n对应的第一哈希值称为h_n。
从确定每个目标密钥段对应的第一哈希值的过程中可以得出:无论在计算每个目标密钥段对应的第一哈希值的过程中采用真随机数还是对称密钥,本步骤采用确定每个目标密钥段对应的第一哈希值的方法使得每个目标密钥段对应的第一哈希值,都与从第一个密钥段到该目标密钥段的所有密钥段相关,并且,最后一个密钥段对应的第一哈希值与纠错后密钥中的所有密钥段相关。
需要说明的是,本步骤中提供了两种确定纠错后密钥中每个目标密钥段对应的与从第一个密钥段到该目标密钥段相关的第一哈希值,在实际应用中,还可以采用其他的方法确定每个目标密钥段对应的第一哈希值,本实施例不对具体确定每个目标密钥段对应的第一哈希值的实施方式作限定。
步骤204:依次将连续的多个密钥段中的每个密钥段作为目标密钥段,确定包含目标密钥段以及位于目标密钥段之后的所有密钥段的第二密钥段集合,并依据第二密钥段集合中的密钥段,计算得到目标密钥段对应的第二哈希值。
在本步骤中,按照最后一个密钥段到第一个密钥段的顺序,针对每个目标密钥段,将包括该目标密钥段以及位于该目标密钥段之后的所有密钥段,确定为该目标密钥段对应的第二密钥段集合,并将与第二密钥段集合相关的第二哈希值确定为该目标密钥段对应的第二哈希值。本步骤中的每个目标密钥段对应的第二密钥段集合为:从最后一个密钥段到当前密钥段的所有密钥段。
具体的,在本步骤中确定每个目标密钥段对应的第二哈希值的过程可以包括:
对最后一个密钥段c_n与真随机数r1拼接,对拼接结果采用sm3算法计算哈希值,并将计算得到的哈希值作为最后一个密钥段c_n对应的第二哈希值h_n';c_n对应的第二哈希值h_n'与真随机数r2进行异或操作,将异或结果与倒数第二个密钥段c_n-1进行拼接,并对拼接结果采用sm3算法计算哈希值,并将计算得到的哈希值作为c_n-1对应的第二哈希值h_n-1';c_n-1对应的第二哈希值h_n-1'与真随机数r3进行异或操作,将异或结果与倒数第三个密钥段c_n-2进行拼接,并对拼接结果采用sm3算法计算哈希值,并将计算得到的哈希值作为c_n-2对应的第二哈希值h_n-2';依次类推,计算第一个密钥段c1对应的第二哈希值h1'。本步骤中计算每个密钥段对应的第二哈希值的过程中所用的第一个密钥段、第二个密钥段、第三个密钥段直到最后一个密钥段,以及真随机数都与步骤203中相同,只是本步骤是从最后一个密钥段向第一个密钥段的顺序来计算每个目标密钥段对应的第二哈希值。
与步骤203中类似,本步骤中计算每个目标密钥段对应的第二哈希值的过程中,可以将真随机数替换为对称密钥key,即,将本步骤中的真随机数r1、r2、r3……r_n都替换为对称密钥key;并且,计算过程中的第一个密钥段、第二个密钥段、第三个密钥段直到最后一个密钥段都与步骤203中采用对称密钥确定第一哈希值中的密钥段相同,只是计算顺序不同,本步骤是从最后一个密钥段向第一个密钥段进行计算。
具体的,将最后一个密钥段c_n与对称密钥key拼接,对拼接结果采用sm3算法进行计算,将计算得到的哈希值作为c_n的第二哈希值h_n';将h_n'与对称密钥key进行异或操作,并将异或操作的结果与倒数第二个密钥段c_n-1拼接,得到c_n-1对应的第二拼接密钥段,接着,对c_n-1对应的第二拼接密钥段采用sm3算法进行计算,将计算得到的哈希值作为c_n-1对应的第二哈希值h_n-1';将h_n-1'与对称密钥key进行异或操作,并将异或结果与倒数第三个密钥段c_n-2拼接,得到c_n-2对应的第二拼接密钥段,接着,对c_n-2对应的第二拼接密钥段采用sm3算法进行计算,将计算得到的哈希值作为c_n-2对应的第二哈希值h_n-2';直至将第二密钥段对应的第二哈希值h2'与对称密钥key进行异或操作,并将异或结果与第一密钥段c1拼接,并对拼接结果采用sm3算法计算,将计算得到的哈希值作为c1对应的第二哈希值h1'。
通过本步骤得到的每个目标密钥段对应的第二哈希值包括:从最后一个密钥段到该目标密钥段的密钥段的信息,因此,每个密钥段对应的第二哈希值与最后一个密钥段到该目标密钥段的所有密钥段相关;并且,第一个密钥段对应的第二哈希值与纠错后密钥中的所有密钥段都相关。
需要说明的是本步骤提供了按照最后一个密钥段到第一个密钥段的顺序,确定每个目标密钥段对应的第二哈希值的两种具体实现方式,在实际应用中,还可以采用其他的方式来确定纠错后密钥中每个目标密钥段对应的第二哈希值,只要每个目标密钥段对应的第二哈希值中包括从最后一个密钥段到该目标密钥段的所有密钥段的信息即可,本实施例不对具体的实现方式作限定。还需要说明的是,在实际应用中,步骤203与步骤204的执行顺序可以互换。
步骤205:依次将所述连续的多个密钥段中的每个密钥段作为当前目标密钥段,将所述当前目标密钥段对应的第一哈希值与第二哈希值按照第一预设方式进行计算,或者,将所述当前目标密钥段与目标哈希值按照第二预设方式进行计算,得到所述当前目标密钥段对应的计算结果。
在本步骤中针对每个当前目标密钥段对应的第一哈希值与第二哈希值按照第一预设方式,或者将当前目标密钥段与目标哈希值按照第二预设方式进行计算的过程可以包括多种实现方式,最终目的为使得每个当前目标密钥段对应的最终密钥段中既包含第一哈希值的信息也包含第二哈希值的信息。为了描述方便,可以将计算得到的计算结果称为当前目标密钥段对应的最终密钥段。
本实施例的第一预设方式为将每个当前目标密钥段对应的第一哈希值与第二哈希值进行异或操作,包括第一方案和第二方案两种方案:
第一方案:
在步骤203中按照从第一个密钥段到最后一个密钥段的顺序,根据真随机数得到每个当前目标密钥段对应的第一哈希值;在步骤204中按照从最后一个密钥段到第一个密钥段的顺序,根据真随机数得到每个当前目标密钥段对应的第二哈希值;接着,在本步骤中,针对每个当前目标密钥段,按照保密增强因子对每个当前目标密钥段对应的第一哈希值与第二哈希值进行取相应比例的bit位,例如,保密增强因子为0.2,则分别取第一哈希值与第二哈希值的20%的bit位。
具体的,第一个密钥段c1对应的第一哈希值h1按比例取低位,得到c1对应的fk_mid_1;同理,第二个密钥段c2对应的第一哈希值h2按比例取低位,得到c2对应的fk_mid_2;第三个密钥段c3对应的第一哈希值h3按比例取低位,得到c3对应的fk_mid_3;最后一个密钥段c_n对应的第一哈希值h_n按比例取低位,得到c_n对应的fk_mid_n。以及,第一个密钥段c1对应的第二哈希值h1'按比例取低位,得到c1对应的fk_mid_1';第二个密钥段c2对应的第二哈希值h2'按比例取低位,得到c2对应的fk_mid_2';第三个密钥段c3对应的第二哈希值h3'按比例取低位,得到c3对应的fk_mid_3';最后一个密钥段c_n对应的第二哈希值h_n'按比例取低位,得到c_n对应的fk_mid_n'。
接着,将fk_mid_1与fk_mid_1'进行异或操作得到finalkey_1,并将finalkey_1作为第一个密钥段c1对应的最终密钥段;同理,将fk_mid_2与fk_mid_2'进行异或操作得到finalkey_2,并将finalkey_2作为第二个密钥段c2对应的最终密钥段;将fk_mid_3与fk_mid_3'进行异或操作得到finalkey_3,并将finalkey_3作为第三个密钥段c3对应的最终密钥段;直至将fk_mid_n与fk_mid_n'进行异或操作得到finalkey_n,并将finalkey_n作为最后一个密钥段c_n对应的最终密钥段。
针对纠错后密钥中的每个密钥段,依据随机数计算每个密钥段的第一哈希值与第二哈希值,并对第一哈希值与第二哈希值按比例取低位,以及,将第一哈希值与第二哈希值进行异或操作得到每个密钥段对应的最终密钥段的过程如图3所示。
第二方案:
在步骤203中按照从第一个密钥段到最后一个密钥段的顺序,根据对称密钥得到每个当前目标密钥段对应的第一哈希值;在步骤204中按照从最后一个密钥段到第一个密钥段的顺序,根据对称密钥得到每个当前目标密钥段对应的第二哈希值;接着,在本步骤中,针对每个当前目标密钥段,按照保密增强因子对每个当前目标密钥段对应的第一哈希值与第二哈希值进行取相应比例的bit位,例如,保密增强因子为0.2,则分别取第一哈希值与第二哈希值的20%的bit位。
第二方案中得到每个当前目标密钥段对应的按比例取低位的具体过程与第一方案的具体过程思路完全相同,只是将第一方案中的每个密钥段对应的第一哈希值改为对称密钥下每个密钥段对应的第一哈希值,并将第一方案中的每个当前目标密钥段对应的第二哈希值改为对称密钥下每个当前目标密钥段对应的第二哈希值,其余部分不变即得到第二方案中每个当前目标密钥段对应的最终密钥段。
针对纠错后密钥中的每个当前目标密钥段,依据对称密钥计算每个当前目标密钥段的第一哈希值与第二哈希值,并对第一哈希值与第二哈希值按比例取低位,以及,将第一哈希值与第二哈希值进行异或操作得到每个当前目标密钥段对应的最终密钥段的过程如图4所示。
本实施例的第二预设方式为将最后一个密钥段对应的第一哈希值或者第一个密钥段对应的第二哈希值,分别与每个密钥段进行拼接,并对拼接的结果采用sm3算法计算,将计算结果按比例取低位,得到每个密钥段对应的最终密钥段,第二预设方式对应第三方案、第四方案、第五方案和第六方案四种方案:
第三方案:
步骤203中,按照从第一个密钥段到最后一个密钥段的顺序,依据真随机数得到最后一个密钥段对应的第一哈希值,为了描述方便,本实施例将该第一哈希值称为r_mid;针对任意一个密钥段,都将该密钥段与r_mid拼接,并将拼接结果采用sm3算法进行计算,并对计算结果按比例取低位,得到该密钥段对应的最终密钥段,在该方案中得到最终密钥段的过程如图5所示。
第四方案:
步骤203中,按照从第一个密钥段到最后一个密钥段的顺序,依据对称密钥得到最后一个密钥段对应的第一哈希值,为了描述方便,本实施例将该第一哈希值称为r_mid;针对任意一个密钥段,都将该密钥段与r_mid拼接,并将拼接结果采用sm3算法进行计算,并对计算结果按比例取低位,得到该密钥段对应的最终密钥段,在该方案中得到最终密钥段的过程如图6所示。
第五方案:
步骤204中,按照从最后一个密钥段到第一个密钥段的顺序,依据真随机数得到第一个密钥段对应的第二哈希值,为了描述方便,本实施例将该第二哈希值称为r_mid';针对任意一个密钥段,都将该密钥段与r_mid'拼接,并将拼接结果采用sm3算法进行计算,并对计算结果按比例取低位,得到该密钥段对应的最终密钥段,在该方案中得到最终密钥段的过程如图7所示。与图3相比,图7中的真随机数r1、r2、r3……r_n对应拼接的顺序不同,由于真随机数的作用为增加每次哈希计算的随机性,所以本发明对真随机数对应拼接的顺序不做任何限制。
第六方案:
步骤204中,按照从最后一个密钥段到第一个密钥段的顺序,依据对称密钥得到第一个密钥段对应的第二哈希值,为了描述方便,本实施例将该第二哈希值称为r_mid';针对任意一个密钥段,都将该密钥段与r_mid'拼接,并将拼接结果采用sm3算法进行计算,并对计算结果按比例取低位,得到该密钥段对应的最终密钥段,在该方案中得到最终密钥段的过程如图8所示。
步骤206:基于所述每个目标密钥段所对应的计算结果,确定所述纠错后密钥对应的最终密钥。
在步骤205中得到了纠错后密钥中每个当前目标密钥段对应的最终密钥段后,将每个当前目标密钥段所对应的最终密钥段按照每个当前目标密钥段在所述纠错后密钥中的顺序进行拼接;将拼接后的最终密钥段,确定为纠错后密钥所对应的最终密钥。
在本申请实施例中,将纠错后密钥进行分段,得到连续的多个密钥段,依次将连续的多个密钥段中的每个密钥段确定为目标密钥段,确定每个目标密钥段对应的第一哈希值与第二哈希值,其中,任意目标密钥段对应的第一哈希值是基于包含该密钥段以及该密钥段之前的所有密钥段的第一密钥段集合的哈希值,任意目标密钥段对应的第二哈希值为基于包含该密钥段以及该密钥段之后的所有密钥段的第二密钥段集合的哈希值,因此,任意目标密钥段对应的第一哈希值与该目标密钥段以及与该目标密钥段之前的所有密钥段相关;同理,任意目标密钥段对应的第二哈希值与该目标密钥段以及与该目标密钥段之后的所有密钥段相关。因此,针对每个目标密钥段将该目标密钥段对应的第一哈希值与第二哈希值进行计算,或者,将每个目标密钥段与目标哈希值进行计算,该目标哈希值为与纠错后密钥中的所有密钥段相关的值,进而纠错后密钥中每个目标密钥段对应的计算结果与纠错后密钥中所有的密钥段相关;而现有技术中,纠错后密钥中的每个密钥段对应的运算结果只与该密钥段相关,因此,本申请实施例得到的最终密钥的安全性更高。
此外,本申请实施例中,采用真随机数来计算每个当前目标密钥段对应的第一哈希值与第二哈希值,使得不同密钥段对应的第一哈希值与第二哈希值的随机性更强,进而,基于第一哈希值和/或第二哈希值得到的最终密钥的随机性更强,使得攻击者破解该最终密钥得到纠错后密钥的难度增加。
需要说明的是,在本申请实施例中给出了六种具体的实现方案,在实际应用中,可以在本实施例给出的任何一种方案的基础上,进行进一步的迭代计算,例如,针对任何一种方案,按照该方案的思路进行两次计算,得到两种计算结果,接着对该两种计算结果进行叠加,将叠加后的结果作为最终的密钥段,当然,在实际应用中,还可以在本实施例给出的任何一种方案基础上采用其他方式进行进一步计算,对于具体的进一步计算方法本申请不做具体限定。
参考图9示出了本申请中一种对纠错后密钥进行保密增强的实现装置实施例的结构示意图,该装置实施例可以包括:
划分单元901,用于将纠错后密钥分成连续的多个密钥段;
第一计算单元902,用于依次将所述连续的多个密钥段中的每个密钥段作为目标密钥段,确定包含所述目标密钥段以及位于所述目标密钥段之前的所有密钥段的第一密钥段集合,并依据所述第一密钥段集合中的密钥段,计算得到所述目标密钥段对应的第一哈希值;
其中,第一计算单元902具体可以用于:在所述目标密钥段为所述连续的多个密钥段中从左到右方向上的第一个密钥段时,将所述目标密钥段与第一参数进行拼接,得到所述目标密钥段对应的第一拼接密钥段;所述第一参数为真随机数或对称密钥;对所述目标密钥段对应的第一拼接密钥段采用哈希算法进行计算,得到所述目标密钥段对应的第一哈希值;
在所述目标密钥段依次为按照从第二个密钥段到最后一个密钥段的顺序中的一个密钥段时,获取位于所述目标密钥段之前且与所述目标密钥段相邻的密钥段对应的第一哈希值;将所述第一哈希值与所述第一参数进行异或,得到所述目标密钥段对应的异或结果;将所述目标密钥段与所述异或结果进行拼接,得到所述目标密钥段对应的第一拼接密钥段;对所述目标密钥段对应的第一拼接密钥段进行哈希计算,得到所述目标密钥段对应的第一哈希值。
第二计算单元903,用于依次将所述连续的多个密钥段中的每个密钥段作为目标密钥段,确定包含所述目标密钥段以及位于所述目标密钥段之后的所有密钥段的第二密钥段集合,并依据所述第二密钥段集合中的密钥段,计算得到所述目标密钥段对应的第二哈希值;
其中,第二计算单元903具体可以用于:
在所述目标密钥段为所述连续的多个密钥段中从左到右方向上的最后一个密钥段时,将所述目标密钥段与所述第一参数进行拼接,得到所述目标密钥段对应的第二拼接密钥段;对所述目标密钥段对应的第二拼接密钥段采用哈希算法进行计算,得到所述目标密钥段对应的第二哈希值;
在所述目标密钥段依次为按照从倒数第二个密钥段到第一个密钥段的顺序中的一个密钥段时,获取位于所述目标密钥段之后且与所述目标密钥段相邻的密钥段对应的第二哈希值;将所述第二哈希值与所述第一参数进行异或,得到所述目标密钥段对应的异或结果;将所述目标密钥段与所述异或结果进行拼接,得到所述目标密钥段对应的第二拼接密钥段;对所述目标密钥段对应的第二拼接密钥段进行哈希计算,得到所述目标密钥段对应的第二哈希值。
第三计算单元904,用于依次将所述连续的多个密钥段中的每个密钥段作为当前目标密钥段,将所述当前目标密钥段对应的第一哈希值与第二哈希值按照第一预设方式进行计算,得到所述当前目标密钥段对应的最终密钥段;或者,将所述当前目标密钥段与目标哈希值按照第二预设方式进行计算,得到所述当前目标密钥段对应的最终密钥段;所述目标哈希值为所述连续的多个密钥段中之后没有密钥段的目标密钥段所对应的第一哈希值,或者,所述连续的多个密钥段中之前没有密钥段的目标密钥段所对应的第二哈希值;
其中,第三计算单元904可以包括:第一计算子单元或第二计算子单元;
所述第一计算子单元,用于针对所述当前目标密钥段在所述第一参数为真随机数时所得到的第一哈希值与第二哈希值,分别按比例取低位得到所述第一哈希值的第一低位值与所述第二哈希值的第一低位值;对所述第一哈希值的第一低位值与所述第二哈希值的第一低位值进行异或操作,得到所述当前目标密钥段对应的最终密钥段;
或者,
针对所述当前目标密钥段在所述第一参数为对称密钥时所得到的第一哈希值与第二哈希值,分别按比例取低位得到所述第一哈希值的第二低位值与所述第二哈希值的第二低位值;对所述第一哈希值的第二低位值与所述第二哈希值的第二低位值进行异或操作,得到所述当前目标密钥段对应的最终密钥段。
所述第二计算子单元,用于将所述当前目标密钥段与所述目标哈希值进行拼接,得到拼接后的当前目标密钥段;所述目标哈希值为所述连续的多个密钥段中之后没有密钥段的目标密钥段所对应的第一哈希值,或者,所述连续的多个密钥段中之前没有密钥段的目标密钥段所对应的第二哈希值;
对所述拼接后的当前目标密钥段进行哈希计算,得到所述拼接后的当前目标密钥段对应的计算结果;
对所述拼接后的当前目标密钥段对应的计算结果按比例取低位,得到所述当前目标密钥段对应的最终密钥段。
确定单元905,用于基于所述每个目标密钥段对应的最终密钥段,确定所述纠错后密钥对应的最终密钥。
其中,确定单元905具体用于:
将所述每个目标密钥段所对应的最终密钥段,按照所述每个目标密钥段在所述纠错后密钥中的顺序进行拼接,得到拼接后的最终密钥段;
将所述拼接后的最终密钥段,确定为所述纠错后密钥所对应的最终密钥。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似部分互相参见即可。在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。在文中的“包括”、“包含”等词语解释为包含的含义而不是排他或穷举的含义;也就是说,是“包含但不限于”的含义。在不脱离本发明构思的前提下,还可以做出变形、同等替换、改进等,这些都属于本发明的保护范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
1.一种对纠错后密钥保密增强的实现方法,其特征在于,所述方法包括:
将纠错后密钥分成连续的多个密钥段;
依次将所述连续的多个密钥段中的每个密钥段作为目标密钥段,确定包含所述目标密钥段以及位于所述目标密钥段之前的所有密钥段的第一密钥段集合,并依据所述第一密钥段集合中的密钥段,计算得到所述目标密钥段对应的第一哈希值;
依次将所述连续的多个密钥段中的每个密钥段作为目标密钥段,确定包含所述目标密钥段以及位于所述目标密钥段之后的所有密钥段的第二密钥段集合,并依据所述第二密钥段集合中的密钥段,计算得到所述目标密钥段对应的第二哈希值;
依次将所述连续的多个密钥段中的每个密钥段作为当前目标密钥段,将所述当前目标密钥段对应的第一哈希值与第二哈希值按照第一预设方式进行计算,得到所述当前目标密钥段对应的最终密钥段;或者,将所述当前目标密钥段与目标哈希值按照第二预设方式进行计算,得到所述当前目标密钥段对应的最终密钥段;所述目标哈希值为所述连续的多个密钥段中之后没有密钥段的目标密钥段所对应的第一哈希值,或者,所述连续的多个密钥段中之前没有密钥段的目标密钥段所对应的第二哈希值;
基于所述每个目标密钥段对应的最终密钥段,确定所述纠错后密钥对应的最终密钥。
2.根据权利要求1所述的方法,其特征在于,在所述目标密钥段为所述连续的多个密钥段中从左到右方向上的第一个密钥段时,所述依据所述第一密钥段集合中的密钥段,计算得到所述目标密钥段对应的第一哈希值,包括:
将所述目标密钥段与第一参数进行拼接,得到所述目标密钥段对应的第一拼接密钥段;所述第一参数为真随机数或对称密钥;
对所述目标密钥段对应的第一拼接密钥段采用哈希算法进行计算,得到所述目标密钥段对应的第一哈希值。
3.根据权利要求2所述的方法,其特征在于,在所述目标密钥段依次为按照从第二个密钥段到最后一个密钥段的顺序中的一个密钥段时,所述依据所述第一密钥段集合中的密钥段,计算得到所述目标密钥段对应的第一哈希值,包括:
获取位于所述目标密钥段之前且与所述目标密钥段相邻的密钥段对应的第一哈希值;
将所述第一哈希值与所述第一参数进行异或,得到所述目标密钥段对应的异或结果;
将所述目标密钥段与所述异或结果进行拼接,得到所述目标密钥段对应的第一拼接密钥段;
对所述目标密钥段对应的第一拼接密钥段进行哈希计算,得到所述目标密钥段对应的第一哈希值。
4.根据权利要求1~3任意一项所述的方法,其特征在于,在所述目标密钥段为所述连续的多个密钥段中从左到右方向上的最后一个密钥段时,所述依据所述第二密钥段集合中的密钥段,计算得到所述目标密钥段对应的第二哈希值,包括:
将所述目标密钥段与第一参数进行拼接,得到所述目标密钥段对应的第二拼接密钥段;所述第一参数为真随机数或对称密钥;
对所述目标密钥段对应的第二拼接密钥段采用哈希算法进行计算,得到所述目标密钥段对应的第二哈希值。
5.根据权利要求4所述的方法,其特征在于,在所述目标密钥段依次为按照从倒数第二个密钥段到第一个密钥段的顺序中的一个密钥段时,所述依据所述第二密钥段集合中的密钥段,计算得到所述目标密钥段对应的第二哈希值,包括:
获取位于所述目标密钥段之后且与所述目标密钥段相邻的密钥段对应的第二哈希值;
将所述第二哈希值与所述第一参数进行异或,得到所述目标密钥段对应的异或结果;
将所述目标密钥段与所述异或结果进行拼接,得到所述目标密钥段对应的第二拼接密钥段;
对所述目标密钥段对应的第二拼接密钥段进行哈希计算,得到所述目标密钥段对应的第二哈希值。
6.根据权利要求5所述的方法,其特征在于,所述将所述当前目标密钥段对应的第一哈希值与第二哈希值按照第一预设方式进行计算,得到所述当前目标密钥段对应的最终密钥段,包括:
针对所述当前目标密钥段在所述第一参数为真随机数时所得到的第一哈希值与第二哈希值,分别按比例取低位得到所述第一哈希值的第一低位值与所述第二哈希值的第一低位值;对所述第一哈希值的第一低位值与所述第二哈希值的第一低位值进行异或操作,得到所述当前目标密钥段对应的最终密钥段;
或者,
针对所述当前目标密钥段在所述第一参数为对称密钥时所得到的第一哈希值与第二哈希值,分别按比例取低位得到所述第一哈希值的第二低位值与所述第二哈希值的第二低位值;对所述第一哈希值的第二低位值与所述第二哈希值的第二低位值进行异或操作,得到所述当前目标密钥段对应的最终密钥段。
7.根据权利要求5所述的方法,其特征在于,所述将所述当前目标密钥段与目标哈希值按照第二预设方式进行计算,得到所述当前目标密钥段对应的最终密钥段,包括:
将所述当前目标密钥段与所述目标哈希值进行拼接,得到拼接后的当前目标密钥段;
对所述拼接后的当前目标密钥段进行哈希计算,得到所述拼接后的当前目标密钥段对应的计算结果;
对所述拼接后的当前目标密钥段对应的计算结果按比例取低位,得到所述当前目标密钥段对应的最终密钥段。
8.根据权利要求1所述的方法,其特征在于,所述基于所述每个目标密钥段对应的最终密钥段,确定所述纠错后密钥对应的最终密钥,包括:
将所述每个目标密钥段所对应的最终密钥段,按照所述每个目标密钥段在所述纠错后密钥中的顺序进行拼接,得到拼接后的最终密钥段;
将所述拼接后的最终密钥段,确定为所述纠错后密钥所对应的最终密钥。
9.一种对纠错后密钥保密增强的实现装置,其特征在于,所述装置包括:
划分单元,用于将纠错后密钥分成连续的多个密钥段;
第一计算单元,用于依次将所述连续的多个密钥段中的每个密钥段作为目标密钥段,确定包含所述目标密钥段以及位于所述目标密钥段之前的所有密钥段的第一密钥段集合,并依据所述第一密钥段集合中的密钥段,计算得到所述目标密钥段对应的第一哈希值;
第二计算单元,用于依次将所述连续的多个密钥段中的每个密钥段作为目标密钥段,确定包含所述目标密钥段以及位于所述目标密钥段之后的所有密钥段的第二密钥段集合,并依据所述第二密钥段集合中的密钥段,计算得到所述目标密钥段对应的第二哈希值;
第三计算单元,用于依次将所述连续的多个密钥段中的每个密钥段作为当前目标密钥段,将所述当前目标密钥段对应的第一哈希值与第二哈希值按照第一预设方式进行计算,得到所述当前目标密钥段对应的最终密钥段;或者,将所述当前目标密钥段与目标哈希值按照第二预设方式进行计算,得到所述当前目标密钥段对应的最终密钥段;所述目标哈希值为所述连续的多个密钥段中之后没有密钥段的目标密钥段所对应的第一哈希值,或者,所述连续的多个密钥段中之前没有密钥段的目标密钥段所对应的第二哈希值;
确定单元,用于基于所述每个目标密钥段对应的最终密钥段,确定所述纠错后密钥对应的最终密钥。
10.根据权利要求9所述的装置,其特征在于,所述第一计算单元具体用于:
在所述目标密钥段为所述连续的多个密钥段中从左到右方向上的第一个密钥段时,将所述目标密钥段与第一参数进行拼接,得到所述目标密钥段对应的第一拼接密钥段;所述第一参数为真随机数或对称密钥;对所述目标密钥段对应的第一拼接密钥段采用哈希算法进行计算,得到所述目标密钥段对应的第一哈希值;
在所述目标密钥段依次为按照从第二个密钥段到最后一个密钥段的顺序中的一个密钥段时,获取位于所述目标密钥段之前且与所述目标密钥段相邻的密钥段对应的第一哈希值;将所述第一哈希值与所述第一参数进行异或,得到所述目标密钥段对应的异或结果;将所述目标密钥段与所述异或结果进行拼接,得到所述目标密钥段对应的第一拼接密钥段;对所述目标密钥段对应的第一拼接密钥段进行哈希计算,得到所述目标密钥段对应的第一哈希值。
11.根据权利要求9或10所述的装置,其特征在于,所述第二计算单元具体用于:
在所述目标密钥段为所述连续的多个密钥段中从左到右方向上的最后一个密钥段时,将所述目标密钥段与第一参数进行拼接,得到所述目标密钥段对应的第二拼接密钥段;所述第一参数为真随机数或对称密钥;对所述目标密钥段对应的第二拼接密钥段采用哈希算法进行计算,得到所述目标密钥段对应的第二哈希值;
在所述目标密钥段依次为按照从倒数第二个密钥段到第一个密钥段的顺序中的一个密钥段时,获取位于所述目标密钥段之后且与所述目标密钥段相邻的密钥段对应的第二哈希值;将所述第二哈希值与所述第一参数进行异或,得到所述目标密钥段对应的异或结果;将所述目标密钥段与所述异或结果进行拼接,得到所述目标密钥段对应的第二拼接密钥段;对所述目标密钥段对应的第二拼接密钥段进行哈希计算,得到所述目标密钥段对应的第二哈希值。
12.根据权利要求11所述的装置,其特征在于,所述第三计算单元包括:第一计算子单元或第二计算子单元;
所述第一计算子单元,用于针对所述当前目标密钥段在所述第一参数为真随机数时所得到的第一哈希值与第二哈希值,分别按比例取低位得到所述第一哈希值的第一低位值与所述第二哈希值的第一低位值;对所述第一哈希值的第一低位值与所述第二哈希值的第一低位值进行异或操作,得到所述当前目标密钥段对应的最终密钥段;
或者,
针对所述当前目标密钥段在所述第一参数为对称密钥时所得到的第一哈希值与第二哈希值,分别按比例取低位得到所述第一哈希值的第二低位值与所述第二哈希值的第二低位值;对所述第一哈希值的第二低位值与所述第二哈希值的第二低位值进行异或操作,得到所述当前目标密钥段对应的最终密钥段;
所述第二计算子单元,用于将所述当前目标密钥段与所述目标哈希值进行拼接,得到拼接后的当前目标密钥段;所述目标哈希值为所述连续的多个密钥段中之后没有密钥段的目标密钥段所对应的第一哈希值,或者,所述连续的多个密钥段中之前没有密钥段的目标密钥段所对应的第二哈希值;
对所述拼接后的当前目标密钥段进行哈希计算,得到所述拼接后的当前目标密钥段对应的计算结果;
对所述拼接后的当前目标密钥段对应的计算结果按比例取低位,得到所述当前目标密钥段对应的最终密钥段。
13.根据权利要求9所述的装置,其特征在于,所述确定单元具体用于:
将所述每个目标密钥段所对应的最终密钥段,按照所述每个目标密钥段在所述纠错后密钥中的顺序进行拼接,得到拼接后的最终密钥段;
将所述拼接后的最终密钥段,确定为所述纠错后密钥所对应的最终密钥。
技术总结