一种基于XTS-SM4的存储加解密方法及装置制造方法及图纸

技术编号:14873375 阅读:57 留言:0更新日期:2017-03-23 21:02
本发明专利技术提供一种基于XTS-SM4的存储加解密方法及装置,其中方法包括:接收包含发送BD环的读指针和写指针的配置信息,其中读指针是软件初始配置的,写指针是有数据需要处理时,软件写BD信息后更新为指向当前BD的下一个BD首地址;在发送BD环的读指针与写指针不一致时,读取以读指针指向的当前BD的BD信息;并根据BD信息读取待处理数据报文以及XTS-SM4加解密信息,并进行基于XTS-SM4的加解密处理;在待处理数据报文读取完成后,将所述读指针更新为指向当前BD的下一个BD首地址。本发明专利技术可以解决存储加密系统延时长、带宽低问题,同时可降低CPU在存储加解密过程中资源消耗,提高系统的性能。

【技术实现步骤摘要】

本专利技术涉及信息安全技术和存储加密
,尤其涉及一种基于XTS-SM4的存储加解密方法及装置
技术介绍
互联网技术发展改变了我们和世界的交互方式,电子商务、网上银行、电子政务等信息技术给我们的生活提供极大方便的同时,也使信息安全技术显得尤为重要。密码算法在保证信息的安全性、完整性和不可抵赖性方面起着极其重要的作用。密码算法本土化是保证信息安全技术自主性的基础。SM4是国内官方公布的第一个商用密码算法。SM4是一种分组对称密码算法,分组长度和密钥长度都为128比特。目前市场上针对安全通讯、安全存储的加解密设备主要采用软件实现。软件加密方式安全度低,容易被攻破,速度慢且消耗大量中央处理器(CentralProcessingUnit,CPU)资源,无法满足大数据时代对数据存取量大、速度快、安全度高的要求,进而不能适应银行系统、军事领域等高端涉密系统的要求。而采用硬件实现的加解密设备,速度较低,且需要CPU干涉较多,不满足大数据时代对存储加解密设备的要求。现有的国密SM4算法的实现,大多是在减少资源和降低功耗上做文章,便于在集成电路上实现,性能较差。速度较快的一般采用多引擎方式实现电码本(ElectronicCodebook,ECB)模式SM4算法,需要等待密钥扩展完成后才能开始,延时较大,安全性能差,存在可能对明文主动攻击的风险。另一个缺点是需要CPU干预较多,不能主动读写数据,完全靠CPU写入待处理数据,处理后的数据再由CPU读出,很容易导致SM4算法处理模块空闲或报文积压影响性能,造成CPU资源消耗较大且性能较差。密文窃取可调加密模式SM4算法(简称XTS-SM4算法),使用两个SM4密钥。其中一个用于执行SM4分组加密;另一个用于加密“调整值”。这种加密调整借助伽罗华域乘法和异或运算得到进一步扩散,确保数据相同的分组不会产生相同的密码文本。明文文本都会使用两个独立的密钥进行双重加密,逆向执行此流程即可实现数据解密,因各个分组相互独立没有链接,因此可以采用并行运算,如果存储的密码数据受损并崩溃,则只有特定分组的数据不可恢复,不会影响其它分组数据。和ECB模式相比,安全性得到大大提高,但需要进行2次SM4加密和伽罗华域乘法操作,特别是伽罗华域乘法需要进行128阶矩阵乘法,通常是系统性能的瓶颈。
技术实现思路
本专利技术实施例的目的在于提供一种基于XTS-SM4的存储加解密方法及装置,可以解决存储加密系统延时长、带宽低问题,同时可降低CPU在存储加解密过程中资源消耗,提高系统的性能。本专利技术实施例提供一种基于XTS-SM4的存储加解密方法,应用于一可编程逻辑器件的接收端,所述方法包括:接收包含发送缓冲区描述符BD环的读指针和写指针的配置信息,其中所述读指针是软件初始配置的,所述写指针是有数据需要处理时,软件写BD信息后更新为指向当前BD的下一个BD首地址,所述BD信息包括待处理数据报文的相关信息、XTS-SM4加解密信息以及下一个BD的首地址信息;在发送BD环的读指针与写指针不一致时,读取以所述读指针指向的当前BD的BD信息,根据所述BD信息读取待处理数据报文以及XTS-SM4加解密信息,并进行基于XTS-SM4的加解密处理;在所述待处理数据报文读取完成后,将所述读指针更新为指向当前BD的下一个BD首地址。其中,在所述待处理数据报文读取完成后,所述方法还包括:回写当前BD的完成标志位和错误标志位。其中,所述根据所述BD信息读取待处理数据报文以及XTS-SM4加解密信息,并进行基于XTS-SM4的加解密处理,包括:根据所述待处理数据报文的相关信息读取待处理数据报文;获取所述XTS-SM4加解密信息中的加解密模式、密钥Key1、密钥Key2和调整值Icfg;对所述Key1和所述Key2同时进行密钥扩展,分别获取与所述Key1对应的多个第一扩展密钥和与所述Key2对应的多个第二扩展密钥;根据多个所述第二扩展密钥对所述Icfg进行加密,得到加密结果Icfg_enc;将所述待处理数据报文按照每128bit为一组进行分组,并对每组增加8bit的数据进行编号,其中8bit数据为与128bit数据合并后的合并数据中的高8位;对所述Icfg_enc和aj进行伽罗华域GF(2128)乘法计算得到计算结果Tj;根据所述加解密模式获取加解密指示信号mode_sel,当所述mode_sel代表加密指示信号时,对所述Tj和明文文本进行异或后的结果根据多个所述第一扩展密钥进行加密处理;当所述mode_sel代表解密指示信号时,对密文文本和所述Tj异或后的结果根据多个所述第一扩展密钥进行解密处理;将所述Tj和对应数据在多个所述第一扩展密钥作用下的加解密的结果进行异或,得到加解密结果。其中,所述对所述Icfg_enc和aj进行伽罗华域GF(2128)乘法计算得到计算结果Tj,具体包括:从当前数据的高8位中获取j值,其中j为128bit分组数据在当前数据报文中的位置;当j等于0时,T0=Icfg_enc;当j不等于0时,包括:当Tj-1的127比特位Tj-1[127]为0时,Tj等于Tj-1左移一位;当Tj-1的127比特位Tj-1[127]为不为0时,将Tj-1左移一位后再将其低8位与十六进制数87进行异或运算得到Tj。本专利技术实施例还提供一种基于XTS-SM4的存储加解密方法,应用于一可编程逻辑器件,所述方法包括:接收包含接收缓冲区描述符BD环的读指针和写指针的配置信息;在接收BD环的读指针与写指针不一致时,读取以所述读指针指向的当前BD的BD信息,对所述BD信息进行解析,获取对应数据缓存区的地址信息以及下一个BD的首地址信息;将经过加解密处理后的数据报文写入对应数据缓存区中,并将接收BD环的读指针更新为指向当前BD的下一个BD首地址。其中,所述将经过加解密处理后的数据报文写入对应数据缓存区中,包括:获取对应数据缓存区的地址信息中的首地址信息SystemAddr和数据缓存区大小信息RSVByteCnt;将经过加解密处理后的数据报文的长度与所述RSVByteCnt进行比较;当经过加解密处理后的数据报文的长度小于等于所述RSVByteCnt,将经过加解密处理后的数据报文写入首地址为SystemAddr的数据缓存区中;当经过加解密处理后的数据报文的长度大于所述RSVByteCnt,在首地址为SystemAddr的数据缓存区中写入所述RSVByteCnt长度的数据,将经过加解密处理后的数据报文中的其余数据存到当前BD的下一个BD首地址对应的数据缓存区中。其中,所述将经过加解密处理后的数据报文写入对应数据缓存区中之后,所述方法还包括:回写当前BD的完成标志位和当前BD对应数据缓存区的数据信息。本专利技术实施例还提供一种基于XTS-SM4的存储加解密装置,应用于一可编程逻辑器件,所述装置包括:第一接收模块,用于接收包含发送缓冲区描述符BD环的读指针和写指针的配置信息,其中所述读指针是软件初始配置的,所述写指针是有数据需要处理时,软件写BD信息后更新为指向当前BD的下一个BD首地址,所述BD信息包括待处理数据报文的相关信息、XTS-SM4加解密信息以及下一个BD的首地址信息;读取处理模块,用于在发送BD环的读指针与写本文档来自技高网
...
一种基于XTS-SM4的存储加解密方法及装置

【技术保护点】
一种基于XTS‑SM4的存储加解密方法,应用于一可编程逻辑器件,其特征在于,所述方法包括:接收包含发送缓冲区描述符BD环的读指针和写指针的配置信息,其中所述读指针是软件初始配置的,所述写指针是有数据需要处理时,软件写BD信息后更新为指向当前BD的下一个BD首地址,所述BD信息包括待处理数据报文的相关信息、XTS‑SM4加解密信息以及下一个BD的首地址信息;在发送BD环的读指针与写指针不一致时,读取以所述读指针指向的当前BD的BD信息,根据所述BD信息读取待处理数据报文以及XTS‑SM4加解密信息,并进行基于XTS‑SM4的加解密处理;在所述待处理数据报文读取完成后,将所述读指针更新为指向当前BD的下一个BD首地址。

【技术特征摘要】
1.一种基于XTS-SM4的存储加解密方法,应用于一可编程逻辑器件,其特征在于,所述方法包括:接收包含发送缓冲区描述符BD环的读指针和写指针的配置信息,其中所述读指针是软件初始配置的,所述写指针是有数据需要处理时,软件写BD信息后更新为指向当前BD的下一个BD首地址,所述BD信息包括待处理数据报文的相关信息、XTS-SM4加解密信息以及下一个BD的首地址信息;在发送BD环的读指针与写指针不一致时,读取以所述读指针指向的当前BD的BD信息,根据所述BD信息读取待处理数据报文以及XTS-SM4加解密信息,并进行基于XTS-SM4的加解密处理;在所述待处理数据报文读取完成后,将所述读指针更新为指向当前BD的下一个BD首地址。2.如权利要求1所述的方法,其特征在于,在所述待处理数据报文读取完成后,所述方法还包括:回写当前BD的完成标志位和错误标志位。3.如权利要求1所述的方法,其特征在于,所述根据所述BD信息读取待处理数据报文以及XTS-SM4加解密信息,并进行基于XTS-SM4的加解密处理,包括:根据所述待处理数据报文的相关信息读取待处理数据报文;获取所述XTS-SM4加解密信息中的加解密模式、密钥Key1、密钥Key2和调整值Icfg;对所述Key1和所述Key2同时进行密钥扩展,分别获取与所述Key1对应的多个第一扩展密钥和与所述Key2对应的多个第二扩展密钥;根据多个所述第二扩展密钥对所述Icfg进行加密,得到加密结果Icfg_enc;将所述待处理数据报文按照每128bit为一组进行分组,并对每组增加8bit的数据进行编号,其中8bit数据为与128bit数据合并后的合并数据中的高8位;对所述Icfg_enc和aj进行伽罗华域GF(2128)乘法计算得到计算结果Tj;根据所述加解密模式获取加解密指示信号mode_sel,当所述mode_sel代表加密指示信号时,对所述Tj和明文文本进行异或后的结果根据多个所述第一扩展密钥进行加密处理;当所述mode_sel代表解密指示信号时,对密文文本和所述Tj异或后的结果根据多个所述第一扩展密钥进行解密处理;将所述Tj和对应数据在多个所述第一扩展密钥作用下的加解密的结果进行异或,得到加解密结果。4.如权利要求3所述的方法,其特征在于,所述对所述Icfg_enc和aj进行伽罗华域GF(2128)乘法计算得到计算结果Tj,具体包括:从当前数据的高8位中获取j值,其中j为128bit分组数据在当前数据报文中的位置;当j等于0时,T0=Icfg_enc;当j不等于0时,包括:当Tj-1的127比特位Tj-1[127]为0时,Tj等于Tj-1左移一位;当Tj-1的127比特位Tj-1[127]为不为0时,将Tj-1左移一位后再将其低8位与十六进制数87进行异或运算得到Tj。5.一种基于XTS-SM4的存储加解密方法,应用于一可编程逻辑器件,其特征在于,所述方法包括:接收包含接收缓冲区描述符BD环的读指针和写指针的配置信息;在接收BD环的读指针与写指针不一致时,读取以所述读指针指向的当前BD的BD信息,对所述BD信息进行解析,获取对应数据缓存区的地址信息以及下一个BD的首地址信息;将经过加解密处理后的数据报文写入对应数据缓存区中,并将接收BD环的读指针更新为指向当前BD的下一个BD首地址。6.如权利要求5所述的方法,其特征在于,所述将经过加解密处理后的数据报文写入对应数据缓存区中,包括:获取对应数据缓存区的地址信息中的首地址信息SystemAddr和数据缓存区大小信息RSVByteCnt;将经过加解密处理后的数据报文的长度与所述RSVByteCnt进行比较;当经过加解密处理后的数据报文的长度小于等于所述RSVByteCnt,将经
\t过加解密处理后的数据报文写入首地址为SystemAddr的数据缓存区中;当经过加解密处理后的数据报文的长度大于所述RSVByteCnt,在首地址为SystemAddr的数据缓存区中写入所述RSVByteCnt长度的数据,将经过加解密处理后的数据报文中的其余数据存到当前BD的下一个BD首地址对应的数据缓存区中。7.如权利要求5所述的方法,其特征在于,所述将经过加解密处理后的数据报文写入对应数据缓存区中之后,所述方法还包括:回写当前BD的完成标志位和当前BD对应数据缓存区的数据信息。8.一种基于XTS-SM4的存储加解密装置,应用于一可编程逻辑器件,其特征在于,所述装置包括:第一接收模块,用于接收...

【专利技术属性】
技术研发人员:姚晓
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东;44

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

1