一种密钥存储方法技术

技术编号:18403502 阅读:23 留言:0更新日期:2018-07-08 21:58
本发明专利技术涉及一种密钥存储方法,该方法包括:使用硬件随机数发生器产生真随机数,该真随机数作为本次存储的一个加密因子;使用该真随机数生成种子,将该种子带入线性反馈移位寄存器得到伪随机数;使用主密钥和所述伪随机数异或得到随机主密钥,再使用纠错码算法编码该随机主密钥得到编码数据;将该真随机数进行私有算法变换后得到中间数据,所述中间数据作为待存储数据的错误位置去篡改该编码数据得到误码数据;将该误码数据加密存储。本发明专利技术将生成的随机数隐藏在要保护的数据中,加大了数据随机化的强度。在存储资源有限的情况下,为防止密文泄漏后的暴力攻击,数据中混入误码,并使用私有算法加密数据,使密钥存储更加安全。

A key storage method

The invention relates to a key storage method. The method includes: using a hardware random number generator to generate a true random number, the true random number as an encryption factor in this storage; the seed is generated using the true random number, and the seed is brought into the linear feedback shift register to get the pseudo random number; the main key and the pseudo random number are used. The random number or the random master key is obtained, and the random master key is encoded using the error correcting code algorithm. The real random number is transformed to the middle data after the private algorithm is transformed. The intermediate data is used as the wrong location of the stored data to tamper the coded data to the error code data; the error code data is encrypted. Storage. The invention conceales the generated random number in the data to be protected, and increases the intensity of data randomization. In the case of limited storage resources, in order to prevent the violent attack after the ciphertext leakage, the data is mixed with the error code, and the private algorithm is used to encrypt the data, so that the key storage is more secure.

【技术实现步骤摘要】
一种密钥存储方法
本专利技术涉及信息安全领域,尤其涉及一种密钥存储方法。
技术介绍
密钥管理是密码设备保障安全的关键环节,一般密码设备至少支持三层密钥结构:主密钥、用户密钥和会话密钥。主密钥:用户保护密码设备中其他密钥和敏感信息的安全,包括其他密钥的管理、备份、恢复以及密码设备的管理员身份验证,不同的密码设备的主密钥互不相同。主密钥必须安全存储。用户密钥:包括签名加密密钥对和密钥加密密钥。签名加密密钥对,用于实现用户签名、验证、身份认证及会话密钥的保护协商等,代表用户或应用者的身份。密钥加密密钥是定期更换的对称密钥,用于在预分配密钥情况下,对会话密钥的保护。会话密钥:用户数据加解密。在密文化密钥管理方式中,会话密钥是临时生成的,使用完丢弃,无需存储保护。用户密钥用主密钥进行加密变换后再进行存储。主密钥本身则需要妥善管理保存,主密钥一旦被破解则整个密码设备将不安全。另外,密钥数据完全以密文方式存储,其安全性不直接依赖于存储介质,而是使用主密钥对密钥数据实施加密变换后进行存储,主密钥再以某种方式存储,主密钥的安全性至关重要。数据安全和密钥保护的现有专利对保护关键数据这部分方法要么使用设备ID或密钥作为加密因子进行加密,要么将关键数据分散存储。使用加密因子加密,加密因子无法随时更换,如果在加密因子没有更换期间加密因子泄露,则整个密钥数据可能存在安全隐患。使用分散存储的方法,在密钥数据存储和提取过程中,可能一次从存储介质中存储或提取大量数据,或是通过多次和存储介质交互才能完成存储和提取操作,大量的修改存储介质,会减少存储介质的寿命,增加读取数据的错误几率和读取数据的时间。
技术实现思路
鉴于上述问题,提出了本专利技术,以便提供一种克服上述问题或至少部分地解决上述问题的密钥存储方法。根据本专利技术的一个方面,提供一种密钥存储方法,该方法包括:使用硬件随机数发生器产生真随机数(R1),该真随机数(R1)作为本次存储的一个加密因子;使用该真随机数(R1)生成种子,将该种子带入线性反馈移位寄存器(LSFR)得到伪随机数;使用主密钥和所述伪随机数异或得到随机主密钥,再使用纠错码算法编码该随机主密钥得到编码数据;将该真随机数(R1)进行私有算法变换后得到中间数据(R2),所述中间数据(R2)作为待存储数据的错误位置去篡改该编码数据得到误码数据;将该误码数据加密存储。进一步的,定义所述纠错码为(C,K,F)码,其中,C为码长度,K为信息位长度,F为纠错能力,定义所述主密钥的长度为L,所述真随机数(R1)的长度为L1,则L1=x×i,其中,x=log2(C+1),i=L÷K,L为K的倍数,如果不是K的倍数则增大L,使L能被K整除。进一步的,所述使用该真随机数(R1)生成种子的具体过程包括:选取线性反馈移位寄存器(LSFR)对应的多项式,定义线性反馈移位寄存器(LSFR)的阶数为N,根据多项式的阶数N,将生成的真随机数(R1)数据按Nbit进行分组,用分组数据两两异或,得到一个Nbit的种子,如果子随机数的数据长度不是N的倍数,则丢弃最后一组不足Nbit的数据。进一步的,所述得到伪随机数的具体过程包括:将生成线性反馈移位寄存器(LSFR)的种子带入线性反馈移位寄存器(LSFR),作为寄存器D1,D2,...,Dn的初始值,然后循环线性反馈移位寄存器(LSFR)生成序列,将生成的序列组合成Lbit数据就得到了Lbit伪随机数。进一步的,所述得到编码数据的具体过程包括:将随机主密钥按Kbit进行分组,得到i组数据D0、D1到Di,如果随机主密钥的长度L和K不成倍数关系,还需补齐随机主密钥使其可以组成一个完整的分组,然后对每组数据进行纠错码编码,编码后每组数据由原来的Kbit变为编码后的Cbit,得到i组编码后的数据DT0、DT1到DTi。进一步的,所述得到中间数据(R2)的具体过程包括:使用私有算法和短期密钥(K1)对生成的真随机数(R1)进行加密得到中间数据(R2),所述中间数据(R2)的长度和真随机数(R1)相同,将中间数据R2按长度为x进行分组,其中,x=log2(C+1),C为所述纠错码的码长度。进一步的,所述得到误码数据的具体过程包括:所述随机主密钥经过所述纠错码编码后得到分组编码数据,主动将子随机数的数值作为错误位置篡改所述分组编码数据,然后将篡改后的分组数据合成完整的误码数据,其中,无论所述纠错码有几bit的纠错能力,都只篡改每个分组编码中的1bit数据。进一步的,所述将该误码数据加密存储的具体过程包括:以保护密钥(K1)和设备出厂时的设备ID作为因子得到加密密钥,使用该加密密钥加密所述误码数据,将所述误码数据的密文存储到设备的存储介质中。根据本专利技术的另一方面,还提供一种密钥的解密方法,该方法包括:解密密文数据得到误码数据,再从误码数据中解码出随机主密钥和错误位置的值(R2);将错误位置的值(R2)进行私有算法逆变换得到真随机数(R1);将真随机数(R1)作为种子带入线性反馈移位寄存器(LSFR)得到伪随机数,使用该伪随机数和随机主密钥异或得到主密钥。本专利技术提出和实现了生成随机数隐藏在要保护的数据中的方法,加大了数据随机化的强度。在存储资源有限的情况下,为防止密文泄漏后的暴力攻击,数据中混入误码,并使用私有算法加密数据,使密钥存储更加安全。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术一种实施例的密钥存储方法的流程示意图。图2为本专利技术另一种实施例的密钥存储方法的流程示意图。图3为本专利技术实施例中采用的线性反馈移位寄存器LSFR的结构示意图。图4为本专利技术实施例中子密钥生成过程的流程示意图。图5为本专利技术实施例中篡改编码过程的流程示意图。图6为本专利技术另一实施例的解密过程流程示意图。具体实施方式为便于对本专利技术实施例的理解,下面将结合附图以几个具体实施例为例作进一步的解释说明,且各个实施例并不构成对本专利技术实施例的限定。如图1所示,一种密钥存储方法,该方法包括:步骤S110,使用硬件随机数发生器产生真随机数R1,该真随机数R1作为本次存储的一个加密因子。每次存储时都需更换此加密因子,真随机数R1作为一个加密因子只在一次存储中有效,比如,下次再存储主密钥时则需要重新生成一个真随机数R1′。步骤S120,使用该真随机数R1生成种子,将种子带入线性反馈移位寄存器LSFR得到伪随机数。步骤S130,使用主密钥和伪随机数异或得到随机主密钥,再使用纠错码算法编码该随机主密钥得到编码数据。步骤S140,将该真随机数R1(加密因子)进行私有算法变换后得到中间数据R2,中间数据R2作为待存储数据的错误位置去篡改该编码数据得到误码数据。步骤S150,将误码数据加密存储。至此,加密过程完成。本专利技术并不限制生成LSFR多项式的阶数,但为了保证随机性最好选多项式阶数所对应的本原多项式,这里定义LSFR的阶数为N。本专利技术也不限制纠错码算法的选取,可以选取汉明码、格雷码、BCH码、瑞德-所罗门码等纠错码算法,这里定义纠错码为(C,K,F)码,C为码长度,K本文档来自技高网
...

【技术保护点】
1.一种密钥存储方法,该方法包括:使用硬件随机数发生器产生真随机数(R1),该真随机数(R1)作为本次存储的一个加密因子;使用该真随机数(R1)生成种子,将该种子带入线性反馈移位寄存器(LSFR)得到伪随机数;使用主密钥和所述伪随机数异或得到随机主密钥,再使用纠错码算法编码该随机主密钥得到编码数据;将该真随机数(R1)进行私有算法变换后得到中间数据(R2),所述中间数据(R2)作为待存储数据的错误位置去篡改该编码数据得到误码数据;将该误码数据加密存储。

【技术特征摘要】
1.一种密钥存储方法,该方法包括:使用硬件随机数发生器产生真随机数(R1),该真随机数(R1)作为本次存储的一个加密因子;使用该真随机数(R1)生成种子,将该种子带入线性反馈移位寄存器(LSFR)得到伪随机数;使用主密钥和所述伪随机数异或得到随机主密钥,再使用纠错码算法编码该随机主密钥得到编码数据;将该真随机数(R1)进行私有算法变换后得到中间数据(R2),所述中间数据(R2)作为待存储数据的错误位置去篡改该编码数据得到误码数据;将该误码数据加密存储。2.如权利要求1所述的一种密钥存储方法,其特征在于:定义所述纠错码为(C,K,F)码,其中,C为码长度,K为信息位长度,F为纠错能力,定义所述主密钥的长度为L,所述真随机数(R1)的长度为L1,则L1=x×i,其中,x=log2(C+1),i=L÷K,L为K的倍数,如果不是K的倍数则增大L,使L能被K整除。3.如权利要求1所述的一种密钥存储方法,其特征在于,所述使用该真随机数(R1)生成种子的具体过程包括:选取线性反馈移位寄存器(LSFR)对应的多项式,定义线性反馈移位寄存器(LSFR)的阶数为N,根据多项式的阶数N,将生成的真随机数(R1)数据按Nbit进行分组,用分组数据两两异或,得到一个Nbit的种子,如果子随机数的数据长度不是N的倍数,则丢弃最后一组不足Nbit的数据。4.如权利要求1所述的一种密钥存储方法,其特征在于,所述得到伪随机数的具体过程包括:将生成线性反馈移位寄存器(LSFR)的种子带入线性反馈移位寄存器(LSFR),作为寄存器D1,D2,...,Dn的初始值,然后循环线性反馈移位寄存器(LSFR)生成序列,将生成的序列组合成Lbit数据就得到了Lbit伪随机数。5.如权利要求1所述的一种密...

【专利技术属性】
技术研发人员:史龙真邵波王璞杨硕
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:北京,11

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

1