一种基于国密芯片的安全存储方法技术

技术编号:21273869 阅读:38 留言:0更新日期:2019-06-06 08:10
本发明专利技术公开一种基于国密芯片的安全存储方法,本方法将LBA数据分成分成多个区块,针对不同的区块配置不同的密钥进行加解密;将密钥和国密芯片ID进行异或运算,产生新的密钥,再将新的密钥与本区块的LBA进行异或操作,产生针对不同区块的加解密密钥,然后使用SM3算法将新的密钥计算哈希结果,产生固定长度的数据,该数据为该区块的最终加解密密钥;密钥扩展与数据传输并行。存储区块密钥每次使用时产生,并不存入芯片内部,即使破解某个密钥,也无法解析出整盘数据,大大增强破解整盘数据的难度,增强密钥和数据的安全性。

【技术实现步骤摘要】
一种基于国密芯片的安全存储方法
本专利技术涉及一种存储方法,具体的说,是一种基于国密芯片的安全存储方法,属于数据存储

技术介绍
随着国家自主可控的需求和发展,数据安全作为一个重点为各个行业所重视,尤其是数据防泄漏和防破解,是数据安全的重点环节,本方案提供一种基于国密安全存储芯片,针对不同存储区域采用密钥随机和算法随机的加密方法,针对不同的区域通过不同的密钥和加密算法对数据进行加密,密钥的随机性和加密算法的不确定性,相比于特定密钥和指定加密算法,大大增强了数据破解的难度,本方案可用在存储安全领域推广,拥有广泛的应用前景。
技术实现思路
本专利技术要解决的技术问题是提供一种基于国密芯片的安全存储方法,针对不同存储区块采用不同的密钥,存储区块密钥每次使用时产生,并不存入芯片内部,即使破解某个密钥,也无法解析出整盘数据,大大增强破解整盘数据的难度,增强密钥和数据的安全性。为了解决所述技术问题,本专利技术采用的技术方案是:一种基于国密芯片的安全存储方法,包括以下步骤:S01)、将LBA数据分成分成多个区块,针对不同的区块配置不同的密钥进行加解密;S02)、将密钥和国密芯片ID进行异或运算,产生新的密钥,再将新的密钥与本区块的LBA进行异或操作,产生针对不同区块的加解密密钥,然后使用SM3算法将新的密钥计算哈希结果,产生固定长度的数据,该数据为该区块的最终加解密密钥;S03)、密钥扩展与数据传输并行,在数据发送阶段,获取LBA和数据长度,计算并配置LBA区块的密钥,国密芯片硬件进行密钥扩展,同时存储器读取或接收数据,数据全部读取或者接收后,进行数据拆包。进一步的,进行加密计算时,根据区块最终加解密密钥最低位的奇偶性,选择不同的对称加密算法。进一步的,进行加密计算时,随机选择SM4、SM1算法进行加密计算。进一步的,步骤S01中,每256个LBA即每128KB数据为一组,将LBA分成3个区块,数据拆分后数据头和数据尾落入同一个区块或者连续的两个区块内。进一步的,当数据横跨两个区块时,第二个区块需要先配置密钥进行密钥扩展,然后才能传送数据。本专利技术的有益效果:本专利技术通过一种针对不同存储区块采用不同的密钥和随机选择加密算法的方案,提高整个设备的数据安全性,存储区块密钥每次使用时产生,并不存入芯片内部,即使破解某个密钥,也无法解析出整盘数据,大大增强的破解整盘数据的难度和密钥的安全性。存储区块的划分和加密充分考虑操作系统的行为和协议的特点,不对性能造成损耗。该方案适用于对数据密级要求较高的领域和产业,大大提高数据的安全性。附图说明图1为Windows下连续读写手抓包的示意图;图2为Linux下连续读写手抓包的示意图;图3为数据拆分情况的示意图;图4为密钥合成的流程图;图5为BOT传输的流程图;图6为实施例1中数据加密的流程图。具体实施方式下面结合附图和具体实施例对本专利技术作进一步的说明。实施例1本实施例公开一种基于国密芯片的安全存储方法,所述国密芯片型号为HX6802,该芯片支持USB3.0接口,内部硬件实现国密SM1、SM2、SM3、SM4等算法,并已获得国家商密。存储在NandFlash中的数据通过主控芯片的硬件对称加密模块进行加密,数据均采用密文方式,加解密的密钥根据LBA(存储设备最小数据操作单位)、芯片ID和密钥为因子进行复合运算,形成针对不同区块的密钥,并指定不同的加密算法,增强数据的安全性。即使破解某部分密钥,也无法获取整盘信息。本专利技术包括以下步骤:S01)、LBA数据分块;存储设备写入计量单位是LBA,每个LBA512字节,每次传输数据一定是是LBA的整数倍。存储设备的性能指标的一个重要参考是连续读写,也就是常说的seqr/w。如果分块过小,会导致固件连续打断对NandFlash读写操作而进行密钥配置、扩展,会严重降低性能;而分块过大,会降低数据的加密安全性、。们通过数据抓包发现,主流的Windows和Linux系统一般读写大文件会被拆分为固定大小的包长度,参见图1(Windows下连续读写抓包)每128KB一组进行分块,图2(Linux连续读写抓包)每120KB一组进行分块,按照兼容原则,采取每256个LBA,也就是128KB数据为一组,划分加解密块,针对不同的加解密块配置不同的密钥进行加解密。本实施例中,将LBA数据分成3个区块,根据数据拆分的情况,存在3种情况,如图3所示,1、数据头落在第一个128KB区块内,数据尾落在第二个128KB区块内;2、数据头落在第二个128KB区块内,数据尾落在第三个128KB区块内;3、数据头和数据尾都落在第二个128KB区块内。数据头和数据尾落在两个区块内时需要拆分两次,配置两次密钥分两次将数据写入NandFlash中。实测使用过程中不会对连续读写性能造成影响。S02)、区块密钥生成每个芯片有唯一的ID值,为了加大随机性,第一步将密钥和国密芯片ID进行异或运算,产生新的密钥,再将新产生的密钥和区块的LBA进行异或操作,产生针对不同加密区块的加解密密钥,然后使用SM3算法将新的密钥计算哈希结果,产生固定长度的数据,该数据为该区块的最终加解密密钥,详见图4。每次区块密钥均计算生成,每个芯片的ID不同,即使不同设备配置相同的密钥,实际密钥也是不同的,即使获取到密钥,不了解区块密钥的生成方法,也无法获取真正的密钥。同时加密算法选择根据区块密钥最低位的奇偶性,选择不同的对称加密算法。本实施例在加密时,采用的SM4和SM1两种算法随机选择,更加增大了破解难度。S03)、密钥扩展与数据传输并行大容量存储设备USB3.0设备一般是基于BOT协议,采用SCSI指令进行传输的流程图详见图5。密钥扩展一般会需要一定的时间,所以采用一种优化措施,在数据发送CBW阶段,获取LBA和数据长度,计算出区块的密钥,然后先配置第一组区块的密钥,芯片硬件进行密钥扩展,同时USB3.0硬件这边从上位机接收数据(DataOut),或者NandFlash控制器这边从NandFlash读取数据(DataIn),数据全部进行硬件的FIFO后,进行数据拆包,所以在大容量数据传输过程中,密钥和数据串行的情况最多只有一次,即当数据横跨两个区块,第二次需要先配置密钥进行密钥扩展,然后才能传送数据,这种方法降低了延时,提高性能。实施例2本实施例以加密流程、PC机向USB存储设备写入数据过程距离,解密过程为加密过程的反过程,如图6所示,包括以下步骤:S01)、PC机向HX6802发送LBA和数据传输量,HX6802获取LBA偏移和数据量LBA范围;S02)、HX6802计算密钥和LBA的合成密钥,合成密钥调用SM3运算生成区块密钥;S03)、HX6802根据合成密钥最低位奇偶性选择加密方法;S04)、PC机配置密钥进行密钥扩展,向HX6802发送数据;S05)、HX6802选择加密算法,进行密钥扩展;S06)、HX6802拆分数据包,选定LBA区块,硬件加密,数据密文写入,传输完成;S07)、至数据全部写入,指令相应,向PC机反馈指令完成。本专利技术数据分块加解密,加解密密方法和密钥根据不同设备随机计算生成,每个加密块数据密钥均产生变化,并且数据块密钥不存储到设备中,使用过程中计算生成,提高密钥保护的安全等级。密钥结合芯片本文档来自技高网...

【技术保护点】
1.一种基于国密芯片的安全存储方法,其特征在于:包括以下步骤:S01)、将LBA数据分成分成多个区块,针对不同的区块配置不同的密钥进行加解密;S02)、将密钥和国密芯片ID进行异或运算,产生新的密钥,再将新的密钥与本区块的LBA进行异或操作,产生针对不同区块的加解密密钥,然后使用SM3算法将新的密钥计算哈希结果,产生固定长度的数据,该数据为该区块的最终加解密密钥;S03)、密钥扩展与数据传输并行,在数据发送阶段,获取LBA和数据长度,计算并配置LBA区块的密钥,国密芯片硬件进行密钥扩展,同时存储器读取或接收数据,数据全部读取或者接收后,进行数据拆包。

【技术特征摘要】
1.一种基于国密芯片的安全存储方法,其特征在于:包括以下步骤:S01)、将LBA数据分成分成多个区块,针对不同的区块配置不同的密钥进行加解密;S02)、将密钥和国密芯片ID进行异或运算,产生新的密钥,再将新的密钥与本区块的LBA进行异或操作,产生针对不同区块的加解密密钥,然后使用SM3算法将新的密钥计算哈希结果,产生固定长度的数据,该数据为该区块的最终加解密密钥;S03)、密钥扩展与数据传输并行,在数据发送阶段,获取LBA和数据长度,计算并配置LBA区块的密钥,国密芯片硬件进行密钥扩展,同时存储器读取或接收数据,数据全部读取或者接收后,进行数据拆包。2.根据权利要求1所述的...

【专利技术属性】
技术研发人员:孙玉玺秦法林杨兴康王晓玉尹相彦
申请(专利权)人:山东华芯半导体有限公司
类型:发明
国别省市:山东,37

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

1