一种基于XTS-SM4的存储加解密方法及装置与流程

文档序号:12133483阅读:来源:国知局

技术特征:

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,将经 过加解密处理后的数据报文写入首地址为SystemAddr的数据缓存区中;

当经过加解密处理后的数据报文的长度大于所述RSVByteCnt,在首地址为SystemAddr的数据缓存区中写入所述RSVByteCnt长度的数据,将经过加解密处理后的数据报文中的其余数据存到当前BD的下一个BD首地址对应的数据缓存区中。

7.如权利要求5所述的方法,其特征在于,所述将经过加解密处理后的数据报文写入对应数据缓存区中之后,所述方法还包括:

回写当前BD的完成标志位和当前BD对应数据缓存区的数据信息。

8.一种基于XTS-SM4的存储加解密装置,应用于一可编程逻辑器件,其特征在于,所述装置包括:

第一接收模块,用于接收包含发送缓冲区描述符BD环的读指针和写指针的配置信息,其中所述读指针是软件初始配置的,所述写指针是有数据需要处理时,软件写BD信息后更新为指向当前BD的下一个BD首地址,所述BD信息包括待处理数据报文的相关信息、XTS-SM4加解密信息以及下一个BD的首地址信息;

读取处理模块,用于在发送BD环的读指针与写指针不一致时,读取以所述读指针指向的当前BD的BD信息,根据所述BD信息读取待处理数据报文以及XTS-SM4加解密信息,并进行基于XTS-SM4的加解密处理;

更新模块,用于在所述待处理数据报文读取完成后,将所述读指针更新为指向当前BD的下一个BD首地址。

9.如权利要求8所述的装置,其特征在于,所述装置还包括:

第一回写模块,用于在所述待处理数据报文读取完成后,回写当前BD的完成标志位和错误标志位。

10.如权利要求8所述的装置,其特征在于,所述读取处理模块包括:

第一子模块,用于根据所述待处理数据报文的相关信息读取待处理数据报文;

第二子模块,用于获取所述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异或后的结果根据多个所述第一扩展密钥进行解密处理根据所述加解密模式获取加解密指示信号mode_sel;

第八子模块,用于将所述Tj和对应数据在多个所述第一扩展密钥作用下的加解密的结果进行异或,得到加解密结果。

11.如权利要求10所述的装置,其特征在于,所述第六子模块进一步用于:

从当前数据的高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。

12.一种基于XTS-SM4的存储加解密装置,应用于一可编程逻辑器件,其特征在于,所述装置包括:

第二接收模块,用于接收包含接收缓冲区描述符BD环的读指针和写指针的配置信息;

读取解析模块,用于在接收BD环的读指针与写指针不一致时,读取以所 述读指针指向的当前BD的BD信息,对所述BD信息进行解析,获取对应数据缓存区的地址信息以及下一个BD的首地址信息;

写入接收模块,用于将经过加解密处理后的数据报文写入对应数据缓存区中,并将接收BD环的读指针更新为指向当前BD的下一个BD首地址。

13.如权利要求12所述的装置,其特征在于,所述写入接收模块包括:

获取子模块,用于获取对应数据缓存区的地址信息中的首地址信息SystemAddr和数据缓存区大小信息RSVByteCnt;

比较子模块,用于将经过加解密处理后的数据报文的长度与所述RSVByteCnt进行比较;

第一写入子模块,用于当经过加解密处理后的数据报文的长度小于等于所述RSVByteCnt,将经过加解密处理后的数据报文写入首地址为SystemAddr的数据缓存区中;

第二写入子模块,用于当经过加解密处理后的数据报文的长度大于所述RSVByteCnt,在首地址为SystemAddr的数据缓存区中写入所述RSVByteCnt长度的数据,将经过加解密处理后的数据报文中的其余数据存到当前BD的下一个BD首地址对应的数据缓存区中。

14.如权利要求12所述的装置,其特征在于,所述装置还包括:

第二回写模块,用于所述写入接收模块将经过加解密处理后的数据报文写入对应数据缓存区中之后,回写当前BD的完成标志位和当前BD对应数据缓存区的数据信息。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1