加解密方法、装置、设备及存储介质制造方法及图纸

技术编号:38947745 阅读:18 留言:0更新日期:2023-09-25 09:44
本申请公开了加解密方法、装置、设备及存储介质,包括:将待加密的第一数据块进行矩阵变换,得到第一矩阵;以对第一矩阵执行N轮加密处理;在N轮加密处理中,前一轮的输出作为后一轮的输入;对于第一轮中的每个元素分别执行:行移位操作、第一表的转换操作;对于每个中间轮的输入矩阵中的每个元素分别执行:第二表的转换操作、行移位操作、第三表的转换操作、第四表的转换操作、第一表的转换操作;针对最后一轮的输入矩阵中的每个元素分别执行:第二表的转换操作、行移位操作、第一表的转换操作,得到第二矩阵;以基于第二矩阵得到第一数据块对应的加密数据。采用该方案降低了加解密过程中被破解的概率,提高了数据的安全性。提高了数据的安全性。提高了数据的安全性。

【技术实现步骤摘要】
加解密方法、装置、设备及存储介质


[0001]本申请涉及数据处理
,涉及但不限于加解密方法、装置、设备及存储介质。

技术介绍

[0002]随着计算机技术的飞速发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性和实时性要求,也对技术提出了更高的要求。
[0003]为了满足用户需求,需要查看大数据平台生产数据报表。为了保证生产数据的安全性,需要对数据做加密处理。实际中可以使用国际标准的加密算法高级加密标准(Advanced Encryption Standard,AES)或者中国商密算法(SM4)对数据进行加密,来保证数据的安全。实际中,对于黑盒加密算法,一般是通过轮函数的方式对数据块进行多轮的加密运算,其中一轮的加密可以包括字节替换、行移位、列混淆以及轮密钥加等。可以看出,在白盒环境下(例如在移动端查看相当于白盒环境)黑盒算法没有安全性,黑盒算法需要保证系统、执行环境是绝对安全的,否则,攻击者通过观察算法运行状态提取密钥。
[0004]为了尽可能的保证数据的安全性,白盒AES加密算法得到了广泛应用。
[0005]对于白盒AES加密,为了加强密钥算法的安全性,将字节替换、行移位、列混淆以及轮密钥加等转换为查表实现方式,对应的,在加解密过程中通过查表操作实现字节替换、行移位、列混淆以及轮密钥加等,算法运行过程中不会出现原有密钥。
[0006]这样可以在一定程度上提高加密算法的安全性。但是,实际中,由于AES加密算法的规律性较强、逻辑简单且易逆向推理。所以,攻击者可以通过逆向工程结合侧信道攻击例如,差分计算分析(Differential count Analysis,DCA)、差分错误分析(Differential false Analysis,DFA)等手段很容易攻破密码算法,从而提取密钥,得到密钥后可以进一步获取系统机密数据,所以数据的安全性较低。

技术实现思路

[0007]本申请提供一种加解密方法、装置、设备及存储介质,该方案降低了加解密过程中被破解的概率,提高了数据的安全性。
[0008]本申请的技术方案是这样实现的:
[0009]第一方面,本申请提供了第一种加解密方法,所述方法包括:
[0010]将待加密的第一数据块进行矩阵变换,得到第一矩阵;以对所述第一矩阵执行N轮加密处理;在所述N轮加密处理中,前一轮的输出作为后一轮的输入;
[0011]其中,在所述N轮加密处理中:
[0012]对于所述N轮中的第一轮,针对所述第一矩阵中的每个元素分别执行:行移位操作、第一表的转换操作;其中,所述第一表是基于真实密钥和伪密钥得到的,所述第一表用于实现轮密钥加操作与第一字节代换操作;
[0013]对于多个中间轮中的每个所述中间轮,针对所述中间轮的输入矩阵中的每个元素分别执行:第二表的转换操作、行移位操作、第三表的转换操作、第四表的转换操作、所述第一表的转换操作;其中,所述中间轮为所述N轮中除所述第一轮和最后一轮之外的任一轮;所述第二表为所述第一表对应的逆转换表;所述第三表用于实现列混淆功能,所述第四表用于实现异或功能;
[0014]对于所述N轮中的最后一轮,针对所述最后一轮的输入矩阵中的每个元素分别执行:所述第二表的转换操作、行移位操作、所述第一表的转换操作,得到第二矩阵;以基于所述第二矩阵得到所述第一数据块对应的加密数据。
[0015]第二方面,本申请提供了第二种加解密方法,所述方法包括:
[0016]将待解密的第一加密数据块进行矩阵变换,得到第五矩阵;以对所述第五矩阵执行N轮解密处理;在所述N轮解密处理中,前一轮的输出作为后一轮的输入;
[0017]其中,在所述N轮解密处理中:
[0018]对于所述N轮中的第一轮,针对所述第五矩阵中的每个元素分别执行:所述第二表的转换操作、逆行移位操作、所述第一表的转换操作;
[0019]对于多个中间轮中的每个所述中间轮,针对所述中间轮的输入矩阵中的每个元素分别执行:第二表的转换操作、逆行移位操作、第八表的转换操作、第九表的转换操作、所述第一表的转换操作;其中,所述中间轮为所述N轮中除所述第一轮和最后一轮之外的任一轮;所述第八表为所述第四表对应的逆转换表;所述第九表为所述第三表对应的逆转换表;
[0020]对于所述N轮中的最后一轮,针对所述最后一轮的输入矩阵中的每个元素分别执行:所述第二表的转换操作、逆行移位操作,得到第六矩阵,以基于所述第六矩阵得到所述第一加密数据块对应的解密数据。
[0021]第三方面,本申请提供了第一种加解密装置,所述装置包括:
[0022]第一变换单元,用于将待加密的第一数据块进行矩阵变换,得到第一矩阵;以对所述第一矩阵执行N轮加密处理;在所述N轮加密处理中,前一轮的输出作为后一轮的输入;
[0023]其中,在所述N轮加密处理中:
[0024]第一处理单元,用于对于所述N轮中的第一轮,针对所述第一矩阵中的每个元素分别执行:行移位操作、第一表的转换操作;其中,所述第一表是基于真实密钥和伪密钥得到的,所述第一表用于实现轮密钥加操作与第一字节代换操作;
[0025]第二处理单元,用于对于多个中间轮中的每个所述中间轮,针对所述中间轮的输入矩阵中的每个元素分别执行:第二表的转换操作、行移位操作、第三表的转换操作、第四表的转换操作、所述第一表的转换操作;其中,所述中间轮为所述N轮中除所述第一轮和最后一轮之外的任一轮;所述第二表为所述第一表对应的逆转换表;所述第三表用于实现列混淆功能,所述第四表用于实现异或功能;
[0026]第三处理单元,用于对于所述N轮中的最后一轮,针对所述最后一轮的输入矩阵中的每个元素分别执行:所述第二表的转换操作、行移位操作、所述第一表的转换操作,得到第二矩阵;以基于所述第二矩阵得到所述第一数据块对应的加密数据。
[0027]第四方面,本申请提供了第二种加解密装置,所述装置包括:
[0028]第二变换单元,用于将待解密的第一加密数据块进行矩阵变换,得到第五矩阵;以对所述第五矩阵执行N轮解密处理;在所述N轮解密处理中,前一轮的输出作为后一轮的输
入;
[0029]其中,在所述N轮解密处理中:
[0030]第四处理单元,用于对于所述N轮中的第一轮,针对所述第五矩阵中的每个元素分别执行:所述第二表的转换操作、逆行移位操作、所述第一表的转换操作;
[0031]第五处理单元,用于对于多个中间轮中的每个所述中间轮,针对所述中间轮的输入矩阵中的每个元素分别执行:第二表的转换操作、逆行移位操作、第八表的转换操作、第九表的转换操作、所述第一表的转换操作;其中,所述中间轮为所述N轮中除所述第一轮和最后一轮之外的任一轮;所述第八表为所述第四表对应的逆转换表;所述第九表为所述第三表对应的逆转换表;
[0032]第六处理单元,用于对于所述N轮中的最后一轮,针对所述最后一轮的输入矩阵中的每个元素分别执行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种加解密方法,其特征在于,所述方法包括:将待加密的第一数据块进行矩阵变换,得到第一矩阵;以对所述第一矩阵执行N轮加密处理;在所述N轮加密处理中,前一轮的输出作为后一轮的输入;其中,在所述N轮加密处理中:对于所述N轮中的第一轮,针对所述第一矩阵中的每个元素分别执行:行移位操作、第一表的转换操作;其中,所述第一表是基于真实密钥和伪密钥得到的,所述第一表用于实现轮密钥加操作与第一字节代换操作;对于多个中间轮中的每个所述中间轮,针对所述中间轮的输入矩阵中的每个元素分别执行:第二表的转换操作、行移位操作、第三表的转换操作、第四表的转换操作、所述第一表的转换操作;其中,所述中间轮为所述N轮中除所述第一轮和最后一轮之外的任一轮;所述第二表为所述第一表对应的逆转换表;所述第三表用于实现列混淆功能,所述第四表用于实现异或功能;对于所述N轮中的最后一轮,针对所述最后一轮的输入矩阵中的每个元素分别执行:所述第二表的转换操作、行移位操作、所述第一表的转换操作,得到第二矩阵;以基于所述第二矩阵得到所述第一数据块对应的加密数据。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述N轮加密处理中增加M轮混淆轮操作和M轮逆混淆轮操作;所述M为大于或等于1的整数;所述M轮混淆轮操作中的每轮所述混淆轮操作包括:行移位操作、第五表的转换操作;所述第五表是基于真实密钥和伪密钥得到的,所述第五表用于实现轮密钥加操作与第二字节代换操作;所述第二字节代换操作与所述第一字节代换操作不同;所述M轮逆混淆轮操作中的每轮所述逆混淆轮的操作包括:逆行移位操作、第六表的转换操作;所述第六表为所述第五表的逆转换表。3.根据权利要求2所述的方法,其特征在于,所述在所述N轮加密处理中增加M轮混淆轮操作和M轮逆混淆轮操作,包括:在实际轮n满足第一条件的情况下,增加一轮混淆轮,对应执行所述混淆轮操作;所述实际轮n属于所述M+N轮中的任一轮;在实际轮n满足第二条件的情况下,增加一轮逆混淆轮,对应执行所述逆混淆轮操作;其中,所述第一条件包括:n减1对4取余的结果为0;所述第二条件包括:n减1对4取余的结果为1。4.根据权利要求1所述的方法,其特征在于,所述基于所述第二矩阵得到所述第一数据块对应的加密数据,包括:将所述第二矩阵左乘第一参考矩阵后得到第一结果;将所述第一结果右乘第二参考矩阵后得到第二结果;将所述第二结果进行矩阵逆变换,得到所述第一数据块对应的加密数据。5.根据权利要求1所述的方法,其特征在于,在所述将待加密的第一数据块进行矩阵变换,得到第一矩阵之前,所述方法还包括:基于参考数据、所述真实密钥以及所述伪密钥,生成所述第一表;基于所述参考数据、所述真实密钥以及所述伪密钥,生成所述第二表;将所述第一表对应的状态矩阵左乘特定矩阵,以得到所述第三表;
将所述第三表对应的状态矩阵进行轮密钥加操作,以得到所述第四表。6.根据权利要求5所述的方法,其特征在于,所述基于参考数据、所述真实密钥以及所述伪密钥,生成所述第一表,包括:将所述真实密钥和所述伪密钥,分别进行矩阵转换与扩展,得到N轮的真实密钥矩阵和N轮的伪密钥矩阵;其中,所述N轮中的最后一轮包括两个真实密钥矩阵和两个伪密钥矩阵;针对所述N轮中除所述最后一轮之外的每轮,将所述参考数据依次与所述每轮的真实密钥矩阵、所述每轮的伪密钥矩阵分别进行对应位置的异或操作,得到第三矩阵;对所述第三矩阵进行第一盒表的映射转换,得到所述每轮的第一表;所述第一盒表用于实现所述第一字节代换操作;针对所述最后一轮,将所述参考数据依次与所述最后一轮的第一真实密钥矩阵、所述最后一轮的第一伪密钥矩阵分别进行对应位置的异或操作,得到第四矩阵;对所述第四矩阵进行所述第一盒表映的射转换后,再依次与所述最后一轮的第二真实密钥矩阵、所述最后一轮的第二伪密钥矩阵分别进行对应位置的异或操作,得到所述最后一轮的第一表。7.根据权利要求5所述的方法,其特征在于,所述方法还包括:对所述第一表,所述第二表以及所述第四表,分别左乘第一参考矩阵,右乘第二参考矩阵,得到新第一表、新第二表以及新第四表;对所述第三表,左乘第三参考矩阵后右乘第四参考...

【专利技术属性】
技术研发人员:郝金福尹强王和平夏晨杨永坤笪尚白乐郝谋洪邸帅卢道和
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:

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

1