本发明专利技术公开了密钥生成方法,包括:获取根密钥;获取待加密数据或待解密数据对应的扇区号;取根密钥和扇区号,利用杂凑算法,计算获得杂凑值;将杂凑值按照字节数等分为两段,每段N字节,将第一段依次与第二段的各字节进行异或运算,将第二段依次与第一段的各字节进行异或运算,生成2N个对称加密密钥。本发明专利技术还提供了加密方法、解密方法、装置,能够在对TF卡等存储介质中的数据加密时,生成一次一密的密钥,并且在加密、解密时无需考虑数据的写入、读取顺序。
Key generation method, encryption method, decryption method and device
【技术实现步骤摘要】
密钥生成方法、加密方法、解密方法及装置
本专利技术涉及信息安全
更具体地说,本专利技术涉及密钥生成方法、加密方法、解密方法及装置。
技术介绍
分组密码的加密模式,除了ECB模式外,目前使用较多的有CBC、CFB、OFB三种模式来产生伪随机流。但CBC、CFB、OFB进行加、解密数据时,要求待加、解密的数据流要按照逻辑上的先后顺序,进入加密机。USBkey设备可以外接TF卡等存储介质,在写入、读取数据的同时进行加密、解密。TF卡等存储介质中读写数据时,是以扇区为单位,连续读写的两个扇区的数据,在逻辑上不一定为先后关系,甚至在逻辑上可能毫无关系,因此CBC、CFB、OFB等模式并不适用USBkey设备。因此,亟需设计一种能够克服上述缺陷的技术方案。
技术实现思路
本专利技术的一个目的是提供密钥生成方法、加密方法、解密方法及装置,能够在对TF卡等存储介质中的数据加密时,生成一次一密的密钥,并且在加密、解密时无需考虑数据的写入、读取顺序。为了实现根据本专利技术的这些目的和其它优点,提供了密钥生成方法,包括:获取根密钥;获取待加密数据或待解密数据对应的扇区号;取根密钥和扇区号,利用杂凑算法,计算获得杂凑值;将杂凑值按照字节数等分为两段,每段N字节,将第一段依次与第二段的各字节进行异或运算,将第二段依次与第一段的各字节进行异或运算,生成2N个对称加密密钥。优选的是,所述的密钥生成方法,使用SM3算法计算生成杂凑值。优选的是,所述的密钥生成方法,生成的对称加密密钥为SM4密钥。本专利技术还提供了加密方法,包括:获取根密钥;获取待加密数据对应的扇区号;取根密钥和扇区号,利用杂凑算法,计算获得杂凑值;将杂凑值按照字节数等分为两段,每段N字节,将第一段依次与第二段的各字节进行异或运算,将第二段依次与第一段的各字节进行异或运算,生成2N个对称加密密钥;取得到的2N个密钥,依次使用对称加密算法对待加密数据进行加密。本专利技术还提供了解密方法,包括:获取根密钥;获取待解密数据对应的扇区号;取根密钥和扇区号,利用杂凑算法,计算获得杂凑值;将杂凑值按照字节数等分为两段,每段N字节,将第一段依次与第二段的各字节进行异或运算,将第二段依次与第一段的各字节进行异或运算,生成2N个对称加密密钥;取得到的2N个密钥,依次使用对称加密算法对待解密数据进行解密。本专利技术还提供了密钥生成装置,包括:处理器;存储器,其存储有可执行指令;其中,所述处理器被配置为执行所述可执行指令,以执行所述的密钥生成方法。本专利技术还提供了加密装置,包括:处理器;存储器,其存储有可执行指令;其中,所述处理器被配置为执行所述可执行指令,以执行所述的加密方法。本专利技术还提供了解密装置,包括:处理器;存储器,其存储有可执行指令;其中,所述处理器被配置为执行所述可执行指令,以执行所述的解密方法。本专利技术还提供了USBkey,所述USBkey具有存储介质,USBkey在对写入或读取存储介质的数据进行加密或解密时,执行所述的密钥生成方法。优选的是,所述的USBkey,存储介质为TF卡。本专利技术至少包括以下有益效果:本专利技术在对TF卡等存储介质中的数据加密、解密时,可以生成一次一密的密钥。本专利技术在对TF卡等存储介质中的数据加密、解密时无需考虑数据的写入、读取顺序,能够适应于USBkey等计算资源不足的设备。本专利技术在不同设备对同一扇区中相同数据加密时,所用的密钥不同。本专利技术的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本专利技术的研究和实践而为本领域的技术人员所理解。附图说明图1为本专利技术的流程图。具体实施方式下面结合附图对本专利技术做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。应当理解,本文所使用的诸如“具有”、“包含”以及“包括”术语并不排除一个或多个其它元件或其组合的存在或添加。在一种技术方案中,如图1所示,密钥生成方法,包括:获取根密钥;获取待加密数据或待解密数据对应的扇区号;取根密钥和扇区号,利用杂凑算法,计算获得杂凑值;将杂凑值按照字节数等分为两段,每段N字节,将第一段依次与第二段的各字节进行异或运算,将第二段依次与第一段的各字节进行异或运算,生成2N个对称加密密钥。上述技术方案中,根密钥在系统第一次上电时产生,设备不同,根密钥不同。在写入、读取的同时,获取数据将要写入的扇区号或获取数据存储的扇区号。利用杂凑算法,将根密钥和扇区号转化为杂凑值,杂凑算法可以是MD5、SM3等。杂凑值为一串哈希值,例如SM3算法得到的是32个字节的哈希值,如B324A69329EFD9B58ED50612788F1A219BDFAE56B0F3182692E9AD4ABF464B49。将杂凑值按照32个字节等分为两段,每段16字节,如上例分为H16和L16两段,H16(H16[0]到H16[15])为B324A69329EFD9B58ED50612788F1A21,L16(L16[0]到L16[15])为9BDFAE56B0F3182692E9AD4ABF464B49。第一组密钥,H16[0]~H16[15]分别与L16[0]进行异或获得。第二组密钥,H16[0]~H16[15]分别与L16[1]进行异或获得。第三组密钥,H16[0]~H16[15]分别与L16[2]进行异或获得。第十六组密钥,H16[0]~H16[15]分别与L16[15]进行异或获得。第十七组密钥,L16[0]~L16[15],分别与H16[0]进行异或。第三十二组密钥,L16[0]~L16[15]分别与H16[15]进行异或获得。用上述方法即可获得32组对称加密密钥,每个密钥可以加密16个字节,共512字节,可以完全满足对一个扇区的数据进行加密。本技术方案给出的实例是获得32组SM4加密密钥,对DES、AES等的加密密钥也可以根据相同的构思,简单地改变密钥长度获得。可以看出,本技术方案可以生成一次一密的密钥,并且无需考虑数据的写入、读取顺序,能够适应于USBkey等计算资源不足的设备。并且由于各设备的根密钥不同,本技术方案在不同设备对同一扇区中相同数据加密时,所用的密钥不同。在另一种技术方案中,所述的密钥生成方法,使用SM3算法计算生成杂凑值。这里提供了优选的杂凑算法。在另一种技术方案中,所述的密钥生成方法,生成的对称加密密钥为SM4密钥。这里提供了优选的对称加密算法,能够较好地与SM3算法配合。本专利技术还提供了加密方法,包括:获取根密钥;获取待加密数据对应的扇区号;取根密钥和扇区号,利用杂凑算法,计算获得杂凑值;将杂凑值按照字节数等分为两段,每段N字节,将第一段依次与第二段的各字节进行异或运算,将第二段依次与本文档来自技高网...
【技术保护点】
1.密钥生成方法,其特征在于,包括:/n获取根密钥;/n获取待加密数据或待解密数据对应的扇区号;/n取根密钥和扇区号,利用杂凑算法,计算获得杂凑值;/n将杂凑值按照字节数等分为两段,每段N字节,将第一段依次与第二段的各字节进行异或运算,将第二段依次与第一段的各字节进行异或运算,生成2N个对称加密密钥。/n
【技术特征摘要】
1.密钥生成方法,其特征在于,包括:
获取根密钥;
获取待加密数据或待解密数据对应的扇区号;
取根密钥和扇区号,利用杂凑算法,计算获得杂凑值;
将杂凑值按照字节数等分为两段,每段N字节,将第一段依次与第二段的各字节进行异或运算,将第二段依次与第一段的各字节进行异或运算,生成2N个对称加密密钥。
2.如权利要求1所述的密钥生成方法,其特征在于,使用SM3算法计算生成杂凑值。
3.如权利要求1所述的密钥生成方法,其特征在于,生成的对称加密密钥为SM4密钥。
4.加密方法,其特征在于,包括:
获取根密钥;
获取待加密数据对应的扇区号;
取根密钥和扇区号,利用杂凑算法,计算获得杂凑值;
将杂凑值按照字节数等分为两段,每段N字节,将第一段依次与第二段的各字节进行异或运算,将第二段依次与第一段的各字节进行异或运算,生成2N个对称加密密钥;
取得到的2N个密钥,依次使用对称加密算法对待加密数据进行加密。
5.解密方法,其特征在于,包括:
获取根密钥;
获取待解密数据对应的扇区号;
取根密钥和扇区号,利用杂凑算法,计算获得杂凑值;
【专利技术属性】
技术研发人员:郭清成,刘浩,郭金贵,庞潼川,杨成功,
申请(专利权)人:河南芯盾网安科技发展有限公司,
类型:发明
国别省市:河南;41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。