本技术实施例涉及数据加解密,具体涉及一种数据处理方法、密钥扩展方法、装置、设备及存储介质。
背景技术:
1、在对数据进行加密处理或者解密处理时,需要使用到密码算法的密钥;密码算法可以是用于加密和解密数据的算法函数,例如sm4算法、aes(advanced encryptionstandard,高级加密标准)算法等。
2、密码算法的密钥可能被功耗分析手段破解,功耗分析手段是指分析密码算法运行过程中释放的功耗数据,从而破解密码算法的密钥的手段。为降低密码算法的密钥被功耗分析手段破解的概率,需要在数据的加密处理或者解密处理的过程中防御功耗分析。在此背景下,如何提供防御功耗分析的数据处理方案,成为了本领域技术人员亟需解决的技术问题。
技术实现思路
1、有鉴于此,本技术实施例提供一种数据处理方法、密钥扩展方法、装置、设备及存储介质,以提供防御功耗分析的数据处理方案,并且提高功耗分析的防御性能。
2、为实现上述目的,本技术实施例提供如下技术方案。
3、第一方面,本技术实施例提供一种数据处理方法,包括:
4、获取待处理数据,所述待处理数据使用密码算法进行处理,所述密码算法包括迭代的多轮运算;
5、在当前轮运算,确定掩码后sbox输入,并将掩码后sbox输入映射到有限复合域;其中,所述掩码后sbox输入为sbox输入添加第一掩码后的结果,掩码后sbox输入根据当前轮运算的输入状态字以及轮密钥确定,当前轮运算的输入状态字添加有第一掩码;
6、将映射到有限复合域的掩码后sbox输入,输入到预先构造的掩码函数进行运算,以得到掩码后sbox输出,所述掩码后sbox输出为sbox输出添加第二掩码后的结果;其中,所述掩码函数用于计算sbox运算对应的sbox输出,并将掩码后sbox输入中的第一掩码,转换为掩码后sbox输出中的第二掩码;
7、根据掩码后sbox输出,确定当前轮运算的运算结果;
8、根据最后一轮运算的运算结果,确定待处理数据的处理结果。
9、第二方面,本技术实施例提供一种密钥扩展方法,所述密钥扩展方法用于为上述第一方面所述的数据处理方法,提供各轮运算对应的掩码后轮密钥,其中,一轮运算对应的掩码后轮密钥为一轮运算的轮密钥添加掩码随机数的结果;所述密钥扩展方法包括:
10、获取主密钥,所述主密钥使用密钥扩展算法进行轮密钥扩展,所述密钥扩展算法包括迭代的多轮密钥扩展运算;
11、在当前轮密钥扩展运算,确定掩码后sbox输入,并将掩码后sbox输入映射到有限复合域;其中,所述掩码后sbox输入为sbox输入添加第三掩码后的结果,掩码后sbox输入根据当前轮密钥扩展运算的输入密钥字以及轮常数确定,当前轮密钥扩展运算的输入密钥字添加有第三掩码;
12、将映射到有限复合域的掩码后sbox输入,输入到预先构造的掩码函数进行运算,以得到掩码后sbox输出,所述掩码后sbox输出为sbox输出添加第二掩码后的结果;其中,所述掩码函数用于计算sbox运算对应的sbox输出,并将掩码后sbox输入中的第三掩码,转换为掩码后sbox输出中的第二掩码;
13、根据掩码后sbox输出,确定当前轮密钥扩展运算输出的掩码后轮密钥。
14、第三方面,本技术实施例提供一种数据处理装置,包括:
15、数据获取模块,用于获取待处理数据,所述待处理数据使用密码算法进行处理,所述密码算法包括迭代的多轮运算;
16、第一输入确定模块,用于在当前轮运算,确定掩码后sbox输入,并将掩码后sbox输入映射到有限复合域;其中,所述掩码后sbox输入为sbox输入添加第一掩码后的结果,掩码后sbox输入根据当前轮运算的输入状态字以及轮密钥确定,当前轮运算的输入状态字添加有第一掩码;
17、第一输出确定模块,用于将映射到有限复合域的掩码后sbox输入,输入到预先构造的掩码函数进行运算,以得到掩码后sbox输出,所述掩码后sbox输出为sbox输出添加第二掩码后的结果;其中,所述掩码函数用于计算sbox运算对应的sbox输出,并将掩码后sbox输入中的第一掩码,转换为掩码后sbox输出中的第二掩码;
18、运算结果确定模块,用于根据掩码后sbox输出,确定当前轮运算的运算结果;
19、处理结果确定模块,用于根据最后一轮运算的运算结果,确定待处理数据的处理结果。
20、第四方面,本技术实施例提供一种密钥扩展装置,所述密钥扩展装置用于为上述第三方面所述的数据处理装置,提供各轮运算对应的掩码后轮密钥,其中,一轮运算对应的掩码后轮密钥为一轮运算的轮密钥添加掩码随机数的结果;所述密钥扩展装置包括:
21、主密钥获取模块,用于获取主密钥,所述主密钥使用密钥扩展算法进行轮密钥扩展,所述密钥扩展算法包括迭代的多轮密钥扩展运算;
22、第二输入确定模块,用于在当前轮密钥扩展运算,确定掩码后sbox输入,并将掩码后sbox输入映射到有限复合域;其中,所述掩码后sbox输入为sbox输入添加第三掩码后的结果,掩码后sbox输入根据当前轮密钥扩展运算的输入密钥字以及轮常数确定,当前轮密钥扩展运算的输入密钥字添加有第三掩码;
23、第二输出确定模块,用于将映射到有限复合域的掩码后sbox输入,输入到预先构造的掩码函数进行运算,以得到掩码后sbox输出,所述掩码后sbox输出为sbox输出添加第二掩码后的结果;其中,所述掩码函数用于计算sbox运算对应的sbox输出,并将掩码后sbox输入中的第三掩码,转换为掩码后sbox输出中的第二掩码;
24、掩码后轮密钥确定模块,用于根据掩码后sbox输出,确定当前轮密钥扩展运算输出的掩码后轮密钥。
25、第五方面,本技术实施例提供一种计算机设备,包括至少一个处理器和至少一个存储器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令,以执行如上述第一方面所述的数据处理方法,和/或,如上述第二方面所述的密钥扩展方法。
26、第六方面,本技术实施例一种存储介质,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时,实现如上述第一方面所述的数据处理方法,和/或,如上述第二方面所述的密钥扩展方法。
27、本技术实施例提供的数据处理方法可以利用密码算法对待处理数据进行处理,密码算法包括迭代的多轮运算。为在数据处理过程中防御功耗分析,并且提升功耗分析的防御性能,本技术实施例可以在密码算法的每一轮运算中,确定掩码后sbox输入,掩码后sbox输入可以是sbox输入添加第一掩码后的结果,掩码后sbox输入可以根据每一轮运算的输入状态字以及轮密钥确定,每一轮运算的输入状态字添加有第一掩码;并且本技术实施例可以通过构造掩码函数,在每一轮运算实现sbox运算以及掩码转换。从而,在密码算法的当前轮运算,本技术实施例可以将掩码后sbox输入,输入到掩码函数进行运算,利用掩码函数的sbox运算以及掩码转换,得到掩码后sbox输出,进而根据掩码后sbox输出,确定当前轮运算的运算结果;掩码后sbox输出可以是sbox输出添加第二掩码后的结果;也就是说,掩码函数可以计算sbox运算对应的sbox输出,并将掩码后sbox输入中的第一掩码,转换为掩码后sbox输出中的第二掩码,从而在实现sbox运算的基础上,为sbox运算对应的sbox输出添加第二掩码,以得到使用第二掩码进行保护的sbox输出。进而,在进行到密码算法的最后一轮运算时,本技术实施例可以根据最后一轮运算的运算结果,确定待处理数据的处理结果,从而实现利用密码算法对待处理数据进行处理。
28、可以看出,本技术实施例可以将sbox运算包含在密码算法每一轮运算的掩码函数中,避免通过sbox查找表的方式来实现sbox运算,降低硬件实现面积;同时,掩码函数的输入(掩码后sbox输入)、输出(掩码后sbox输出)均存在掩码保护,并且掩码函数的运算过程也存在掩码保护,因此能够有效防御功耗分析,降低密码算法的密钥被功耗分析手段破解的概率。因此,本技术实施例提供的数据处理方法可以将密码算法的sbox运算映射到有限复合域进行计算,并且包含在每一轮运算的掩码函数中,而且掩码函数的输入、输出和运算过程均存在掩码保护,能够有效防御功耗分析;从而,本技术实施例可以在降低硬件实现面积的基础上,提供安全、可靠的功耗分析防御手段,提升数据处理方案的功耗分析的防御性能。