本发明涉及加解密,尤其涉及白盒加密方法和装置以及白盒解密方法和装置。
背景技术:
1、在计算机或嵌入式设备中会运行各种各样的密码算法来保证信息安全。如果恶意攻击者可以完全控制密码算法的运行环境,不仅二进制完全可见,也可以完全控制可执行程序,例如可以对可执行程序进行修改、调试或者动态分析等,这种运行环境下恶意攻击者很容易通过观察密码算法的运算中间过程分析出密钥。这种攻击场景也叫做“白盒环境”。而能够抵御白盒环境分析的密码算法实现叫做白盒密码。
2、相关技术已经提出了使用查找表的方式来实现aes(高级加密标准)等对称密码算法的白盒密码实现。通过将一般的密码操作变成查表而导致攻击者无法分析出关于密钥的信息,这种密码算法具有抵御白盒环境分析的能力。但是现有通过查找表实现的白盒加密方法,其所需要的查找表占用存储空间较大,进而在很多情况下将受限于存储条件而无法使用。
技术实现思路
1、本发明旨在至少解决相关技术中存在的技术问题之一。为此,本发明提出一种白盒加密方法,其可以减小查找表的大小,进而降低对存储空间的要求,且该种白盒加密方法尤其适合于嵌入式设备。
2、本发明还提出一种白盒加密装置。
3、本发明还提出一种白盒解密方法。
4、本发明还提出一种白盒解密装置。
5、本发明还提出一种电子设备。
6、本发明还提出一种存储介质。
7、根据本发明第一方面实施例的白盒加密方法,包括:
8、第一编码保护步骤,对原始数据进行编码保护得到输入数据;
9、加密运算步骤,包括轮运算操作,所述轮运算操作包括首轮轮运算操作、若干轮中间轮轮运算操作和末轮轮运算操作,所述首轮轮运算操作包括所述编码保护的逆操作、轮密钥加、字节替换、列混合和矩阵混淆,所述中间轮轮运算操作包括逆矩阵混淆、轮密钥加、字节替换、列混合和矩阵混淆,所述末轮轮运算操作包括逆矩阵混淆、轮密钥加、字节替换、列混合和逆列混合;
10、所述首轮轮运算操作基于所述输入数据进行处理得到轮运算结果,所述中间轮轮运操作和所述末轮轮运算操作基于上一轮所述轮运算操作的轮运算结果进行处理得到加密数据。
11、根据本发明实施例的白盒加密方法,其加密运算步骤变更了混淆操作,且末轮轮运算操作除了最后逆列混合之外都和之前的轮运算操作(包括首轮轮运算操作和中间轮轮运算操作)统一了起来,因此可以简化查找表,进而可以节省存储空间。此外,第一编码保护步骤较之于相关技术采用的线性保护可以节省存储空间。综上,本发明实施例的白盒加密方法所需要查找表占用空间较小,更能适应嵌入式平台等资源有限的场景应用。
12、根据本发明的一个实施例,所述第一编码保护步骤中,对所述原始数据进行随机数掩码保护得到所述输入数据。
13、根据本发明的一个实施例,所述第一编码保护步骤中,使用随机数生成16个ps查找表,且将128位的所述原始数据拆分成16个8位数据,通过所述ps查找表分别对16个8位数据进行随机数掩码保护得到所述输入数据;
14、所述首轮轮运算操作中,所述逆操作为逆ps混淆。
15、根据本发明的一个实施例,所述轮运算操作中:
16、执行查找表tybox查表操作得到对应轮所述轮运算操作的轮运算结果;
17、所述首轮轮运算操作的所述查找表tybox由编码保护的逆操作、轮密钥加、字节替换、列混合和矩阵混淆得到;
18、所述中间轮轮运算操作的所述查找表tybox和所述末轮轮运算操作的所述查找表tybox均由逆矩阵混淆、轮密钥加、字节替换、列混合和矩阵混淆得到。根据本发明的一个实施例,所述加密运算步骤还包括相邻所述轮运算操作之间的转换操作,所述转换操作中:
19、执行查找表mixing查表操作,所述查找表mixing用于将所述轮运算结果的128位数据拆分为16个8位数据;
20、所述首轮轮运算操作的所述查找表mixing和所述中间轮轮运算操作的所述查找表mixing均由逆矩阵混淆和矩阵混淆得到;
21、所述末轮轮运算操作的所述查找表mixing由逆矩阵混淆和逆列混合得到。
22、根据本发明的一个实施例,所述加密运算步骤中:
23、对所述轮运算结果进行异或操作,得到所述查找表mixing的输入;
24、对所述查找表mixing的输出进行异或操作,得到下一轮所述轮运算操作对应查找表tybox的输入。
25、根据本发明的一个实施例,所述中间轮轮运算操作为八轮。
26、根据本发明第二方面实施例的白盒加密装置,包括:
27、第一编码保护模块,用于对原始数据进行编码保护得到输入数据;
28、加密运算模块,用于进行轮运算操作,所述轮运算操作包括首轮轮运算操作、若干轮中间轮轮运算操作和末轮轮运算操作,所述首轮轮运算操作包括所述编码保护的逆操作、轮密钥加、字节替换、列混合和矩阵混淆,所述中间轮轮运算操作包括逆矩阵混淆、轮密钥加、字节替换、列混合和矩阵混淆,所述末轮轮运算操作包括逆矩阵混淆、轮密钥加、字节替换、列混合和逆列混合;
29、所述首轮轮运算操作基于所述输入数据进行处理得到轮运算结果,所述中间轮轮运操作和所述末轮轮运算操作基于上一轮所述轮运算操作的轮运算结果进行处理得到加密数据。
30、根据本发明实施例的白盒加密装置,其技术效果和第一方面实施例的白盒加密方法对应,因此此处不再赘述。
31、根据本发明第三方面实施例的白盒解密方法,包括:
32、第二编码保护步骤,对加密数据进行编码保护得到输入数据;
33、解密运算步骤,包括轮运算操作,所述轮运算操作包括首轮轮运算操作、若干轮中间轮轮运算操作和末轮轮运算操作,所述首轮轮运算操作包括所述编码保护的逆操作、轮密钥加、逆字节替换、逆列混合和矩阵混淆,所述中间轮轮运算操作包括逆矩阵混淆、轮密钥加、逆字节替换、逆列混合和矩阵混淆,所述末轮轮运算操作包括逆矩阵混淆、轮密钥加、逆字节替换和逆列混合;
34、所述首轮轮运算操作基于所述输入数据进行处理得到轮运算结果,所述中间轮轮运操作和所述末轮轮运算操作基于上一轮所述轮运算操作的轮运算结果进行处理得到原文。
35、根据本发明实施例的白盒解密方法,其技术效果和第一方面实施例的白盒加密方法对应,因此此处不再赘述。
36、根据本发明第四方面实施例的白盒解密装置,包括:
37、第二编码保护模块,用于对加密数据进行编码保护得到输入数据;
38、解密运算模块,用于对输入数据进行轮运算操作,所述轮运算操作包括首轮轮运算操作、若干轮中间轮轮运算操作和末轮轮运算操作,所述首轮轮运算操作包括所述编码保护的逆操作、轮密钥加、逆字节替换、逆列混合和矩阵混淆,所述中间轮轮运算操作包括逆矩阵混淆、轮密钥加、逆字节替换、逆列混合和矩阵混淆,所述末轮轮运算操作包括逆矩阵混淆、轮密钥加、逆字节替换和逆列混合;
39、所述首轮轮运算操作基于所述输入数据进行处理得到轮运算结果,所述中间轮轮运操作和所述末轮轮运算操作基于上一轮所述轮运算操作的轮运算结果进行处理得到原文。
40、根据本发明实施例的白盒解密装置,其技术效果和第三方面实施例的白盒解密方法对应,因此此处不再赘述。
41、根据本发明第五方面实施例的电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述白盒加密方法的步骤,或者,实现上述白盒解密方法的步骤。
42、根据本发明实施例的电子设备,其技术效果和第一方面实施例的白盒加密方法对应,或者,其技术效果和第三方面实施例的白盒解密方法对应,因此此处不再赘述。
43、根据本发明第六方面实施例的非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述白盒加密方法的步骤,或者,实现上述白盒解密方法的步骤。
44、根据本发明实施例的非暂态计算机可读存储介质,其技术效果和第一方面实施例的白盒加密方法对应,或者,其技术效果和第三方面实施例的白盒解密方法对应,因此此处不再赘述。
45、本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。