本技术涉及数据处理,涉及但不限于加解密方法、装置、设备及存储介质。
背景技术:
1、随着计算机技术的飞速发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,但由于金融行业的安全性和实时性要求,也对技术提出了更高的要求。
2、为了满足用户需求,需要查看大数据平台生产数据报表。为了保证生产数据的安全性,需要对数据做加密处理。实际中可以使用国际标准的加密算法高级加密标准(advanced encryption standard,aes)或者中国商密算法(sm4)对数据进行加密,来保证数据的安全。实际中,对于黑盒加密算法,一般是通过轮函数的方式对数据块进行多轮的加密运算,其中一轮的加密可以包括字节替换、行移位、列混淆以及轮密钥加等。可以看出,在白盒环境下(例如在移动端查看相当于白盒环境)黑盒算法没有安全性,黑盒算法需要保证系统、执行环境是绝对安全的,否则,攻击者通过观察算法运行状态提取密钥。
3、为了尽可能的保证数据的安全性,白盒aes加密算法得到了广泛应用。
4、对于白盒aes加密,为了加强密钥算法的安全性,将字节替换、行移位、列混淆以及轮密钥加等转换为查表实现方式,对应的,在加解密过程中通过查表操作实现字节替换、行移位、列混淆以及轮密钥加等,算法运行过程中不会出现原有密钥。
5、这样可以在一定程度上提高加密算法的安全性。但是,实际中,由于aes加密算法的规律性较强、逻辑简单且易逆向推理。所以,攻击者可以通过逆向工程结合侧信道攻击例如,差分计算分析(differential count analysis,dca)、差分错误分析(differentialfalse analysis,dfa)等手段很容易攻破密码算法,从而提取密钥,得到密钥后可以进一步获取系统机密数据,所以数据的安全性较低。
技术实现思路
1、本技术提供一种加解密方法、装置、设备及存储介质,该方案降低了加解密过程中被破解的概率,提高了数据的安全性。
2、本技术的技术方案是这样实现的:
3、第一方面,本技术提供了第一种加解密方法,所述方法包括:
4、将待加密的第一数据块进行矩阵变换,得到第一矩阵;以对所述第一矩阵执行n轮加密处理;在所述n轮加密处理中,前一轮的输出作为后一轮的输入;
5、其中,在所述n轮加密处理中:
6、对于所述n轮中的第一轮,针对所述第一矩阵中的每个元素分别执行:行移位操作、第一表的转换操作;其中,所述第一表是基于真实密钥和伪密钥得到的,所述第一表用于实现轮密钥加操作与第一字节代换操作;
7、对于多个中间轮中的每个所述中间轮,针对所述中间轮的输入矩阵中的每个元素分别执行:第二表的转换操作、行移位操作、第三表的转换操作、第四表的转换操作、所述第一表的转换操作;其中,所述中间轮为所述n轮中除所述第一轮和最后一轮之外的任一轮;所述第二表为所述第一表对应的逆转换表;所述第三表用于实现列混淆功能,所述第四表用于实现异或功能;
8、对于所述n轮中的最后一轮,针对所述最后一轮的输入矩阵中的每个元素分别执行:所述第二表的转换操作、行移位操作、所述第一表的转换操作,得到第二矩阵;以基于所述第二矩阵得到所述第一数据块对应的加密数据。
9、第二方面,本技术提供了第二种加解密方法,所述方法包括:
10、将待解密的第一加密数据块进行矩阵变换,得到第五矩阵;以对所述第五矩阵执行n轮解密处理;在所述n轮解密处理中,前一轮的输出作为后一轮的输入;
11、其中,在所述n轮解密处理中:
12、对于所述n轮中的第一轮,针对所述第五矩阵中的每个元素分别执行:所述第二表的转换操作、逆行移位操作、所述第一表的转换操作;
13、对于多个中间轮中的每个所述中间轮,针对所述中间轮的输入矩阵中的每个元素分别执行:第二表的转换操作、逆行移位操作、第八表的转换操作、第九表的转换操作、所述第一表的转换操作;其中,所述中间轮为所述n轮中除所述第一轮和最后一轮之外的任一轮;所述第八表为所述第四表对应的逆转换表;所述第九表为所述第三表对应的逆转换表;
14、对于所述n轮中的最后一轮,针对所述最后一轮的输入矩阵中的每个元素分别执行:所述第二表的转换操作、逆行移位操作,得到第六矩阵,以基于所述第六矩阵得到所述第一加密数据块对应的解密数据。
15、第三方面,本技术提供了第一种加解密装置,所述装置包括:
16、第一变换单元,用于将待加密的第一数据块进行矩阵变换,得到第一矩阵;以对所述第一矩阵执行n轮加密处理;在所述n轮加密处理中,前一轮的输出作为后一轮的输入;
17、其中,在所述n轮加密处理中:
18、第一处理单元,用于对于所述n轮中的第一轮,针对所述第一矩阵中的每个元素分别执行:行移位操作、第一表的转换操作;其中,所述第一表是基于真实密钥和伪密钥得到的,所述第一表用于实现轮密钥加操作与第一字节代换操作;
19、第二处理单元,用于对于多个中间轮中的每个所述中间轮,针对所述中间轮的输入矩阵中的每个元素分别执行:第二表的转换操作、行移位操作、第三表的转换操作、第四表的转换操作、所述第一表的转换操作;其中,所述中间轮为所述n轮中除所述第一轮和最后一轮之外的任一轮;所述第二表为所述第一表对应的逆转换表;所述第三表用于实现列混淆功能,所述第四表用于实现异或功能;
20、第三处理单元,用于对于所述n轮中的最后一轮,针对所述最后一轮的输入矩阵中的每个元素分别执行:所述第二表的转换操作、行移位操作、所述第一表的转换操作,得到第二矩阵;以基于所述第二矩阵得到所述第一数据块对应的加密数据。
21、第四方面,本技术提供了第二种加解密装置,所述装置包括:
22、第二变换单元,用于将待解密的第一加密数据块进行矩阵变换,得到第五矩阵;以对所述第五矩阵执行n轮解密处理;在所述n轮解密处理中,前一轮的输出作为后一轮的输入;
23、其中,在所述n轮解密处理中:
24、第四处理单元,用于对于所述n轮中的第一轮,针对所述第五矩阵中的每个元素分别执行:所述第二表的转换操作、逆行移位操作、所述第一表的转换操作;
25、第五处理单元,用于对于多个中间轮中的每个所述中间轮,针对所述中间轮的输入矩阵中的每个元素分别执行:第二表的转换操作、逆行移位操作、第八表的转换操作、第九表的转换操作、所述第一表的转换操作;其中,所述中间轮为所述n轮中除所述第一轮和最后一轮之外的任一轮;所述第八表为所述第四表对应的逆转换表;所述第九表为所述第三表对应的逆转换表;
26、第六处理单元,用于对于所述n轮中的最后一轮,针对所述最后一轮的输入矩阵中的每个元素分别执行:所述第二表的转换操作、逆行移位操作,得到第六矩阵,以基于所述第六矩阵得到所述第一加密数据块对应的解密数据。
27、第五方面,本技术还提供了一种电子设备,包括:存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述加解密方法。
28、第六方面,本技术还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述加解密方法。
29、本技术所提供的加解密方法、装置、设备及存储介质,包括:将待加密的第一数据块进行矩阵变换,得到第一矩阵;以对所述第一矩阵执行n轮加密处理;在所述n轮加密处理中,前一轮的输出作为后一轮的输入;其中,在所述n轮加密处理中:对于所述n轮中的第一轮,针对所述第一矩阵中的每个元素分别执行:行移位操作、第一表的转换操作;其中,所述第一表是基于真实密钥和伪密钥得到的,所述第一表用于实现轮密钥加操作与第一字节代换操作;对于多个中间轮中的每个所述中间轮,针对所述中间轮的输入矩阵中的每个元素分别执行:第二表的转换操作、行移位操作、第三表的转换操作、第四表的转换操作、所述第一表的转换操作;其中,所述中间轮为所述n轮中除所述第一轮和最后一轮之外的任一轮;所述第二表为所述第一表对应的逆转换表;所述第三表用于实现列混淆功能,所述第四表用于实现异或功能;对于所述n轮中的最后一轮,针对所述最后一轮的输入矩阵中的每个元素分别执行:所述第二表的转换操作、行移位操作、所述第一表的转换操作,得到第二矩阵;以基于所述第二矩阵得到所述第一数据块对应的加密数据。
30、对于本技术的方案,将n轮加密处理进行了调整,可以看出每轮处理中都包括第一表的转换操作,而第一表是基于真实密钥和伪密钥得到的,所以该加密过程相当于将伪密钥贯穿到了每一轮的加密处理中,这样,即使通过逆向工程进行破解,可以得到每轮的操作的规律,但是无法对真实密钥和伪密钥进行区分,所以,该方案降低了加解密过程中被破解的概率,提高了数据的安全性。