数据处理方法、密钥扩展方法、装置、设备及存储介质制造方法及图纸

技术编号:38558800 阅读:11 留言:0更新日期:2023-08-22 21:01
本申请实施例提供一种数据处理方法、密钥扩展方法、装置、设备及存储介质,其中数据处理方法包括:获取待处理数据,待处理数据使用密码算法进行处理,密码算法包括迭代的多轮运算;在当前轮运算,确定掩码后Sbox输入,并将掩码后Sbox输入映射到有限复合域;其中,掩码后Sbox输入为Sbox输入添加第一掩码后的结果;将映射到有限复合域的掩码后Sbox输入,输入到预先构造的掩码函数进行运算,以得到掩码后Sbox输出,掩码后Sbox输出为Sbox输出添加第二掩码后的结果;根据掩码后Sbox输出,确定当前轮运算的运算结果;根据最后一轮运算的运算结果,确定待处理数据的处理结果。本申请实施例可以在降低硬件实现面积的基础上,提供安全、可靠的功耗分析防御手段。的功耗分析防御手段。的功耗分析防御手段。

【技术实现步骤摘要】
数据处理方法、密钥扩展方法、装置、设备及存储介质


[0001]本申请实施例涉及数据加解密
,具体涉及一种数据处理方法、密钥扩展方法、装置、设备及存储介质。

技术介绍

[0002]在对数据进行加密处理或者解密处理时,需要使用到密码算法的密钥;密码算法可以是用于加密和解密数据的算法函数,例如SM4算法、AES(Advanced Encryption Standard,高级加密标准)算法等。
[0003]密码算法的密钥可能被功耗分析手段破解,功耗分析手段是指分析密码算法运行过程中释放的功耗数据,从而破解密码算法的密钥的手段。为降低密码算法的密钥被功耗分析手段破解的概率,需要在数据的加密处理或者解密处理的过程中防御功耗分析。在此背景下,如何提供防御功耗分析的数据处理方案,成为了本领域技术人员亟需解决的技术问题。

技术实现思路

[0004]有鉴于此,本申请实施例提供一种数据处理方法、密钥扩展方法、装置、设备及存储介质,以提供防御功耗分析的数据处理方案,并且提高功耗分析的防御性能。
[0005]为实现上述目的,本申请实施例提供如下技术方案。
[0006]第一方面,本申请实施例提供一种数据处理方法,包括:
[0007]获取待处理数据,所述待处理数据使用密码算法进行处理,所述密码算法包括迭代的多轮运算;
[0008]在当前轮运算,确定掩码后Sbox输入,并将掩码后Sbox输入映射到有限复合域;其中,所述掩码后Sbox输入为Sbox输入添加第一掩码后的结果,掩码后Sbox输入根据当前轮运算的输入状态字以及轮密钥确定,当前轮运算的输入状态字添加有第一掩码;
[0009]将映射到有限复合域的掩码后Sbox输入,输入到预先构造的掩码函数进行运算,以得到掩码后Sbox输出,所述掩码后Sbox输出为Sbox输出添加第二掩码后的结果;其中,所述掩码函数用于计算Sbox运算对应的Sbox输出,并将掩码后Sbox输入中的第一掩码,转换为掩码后Sbox输出中的第二掩码;
[0010]根据掩码后Sbox输出,确定当前轮运算的运算结果;
[0011]根据最后一轮运算的运算结果,确定待处理数据的处理结果。
[0012]第二方面,本申请实施例提供一种密钥扩展方法,所述密钥扩展方法用于为上述第一方面所述的数据处理方法,提供各轮运算对应的掩码后轮密钥,其中,一轮运算对应的掩码后轮密钥为一轮运算的轮密钥添加掩码随机数的结果;所述密钥扩展方法包括:
[0013]获取主密钥,所述主密钥使用密钥扩展算法进行轮密钥扩展,所述密钥扩展算法包括迭代的多轮密钥扩展运算;
[0014]在当前轮密钥扩展运算,确定掩码后Sbox输入,并将掩码后Sbox输入映射到有限
复合域;其中,所述掩码后Sbox输入为Sbox输入添加第三掩码后的结果,掩码后Sbox输入根据当前轮密钥扩展运算的输入密钥字以及轮常数确定,当前轮密钥扩展运算的输入密钥字添加有第三掩码;
[0015]将映射到有限复合域的掩码后Sbox输入,输入到预先构造的掩码函数进行运算,以得到掩码后Sbox输出,所述掩码后Sbox输出为Sbox输出添加第二掩码后的结果;其中,所述掩码函数用于计算Sbox运算对应的Sbox输出,并将掩码后Sbox输入中的第三掩码,转换为掩码后Sbox输出中的第二掩码;
[0016]根据掩码后Sbox输出,确定当前轮密钥扩展运算输出的掩码后轮密钥。
[0017]第三方面,本申请实施例提供一种数据处理装置,包括:
[0018]数据获取模块,用于获取待处理数据,所述待处理数据使用密码算法进行处理,所述密码算法包括迭代的多轮运算;
[0019]第一输入确定模块,用于在当前轮运算,确定掩码后Sbox输入,并将掩码后Sbox输入映射到有限复合域;其中,所述掩码后Sbox输入为Sbox输入添加第一掩码后的结果,掩码后Sbox输入根据当前轮运算的输入状态字以及轮密钥确定,当前轮运算的输入状态字添加有第一掩码;
[0020]第一输出确定模块,用于将映射到有限复合域的掩码后Sbox输入,输入到预先构造的掩码函数进行运算,以得到掩码后Sbox输出,所述掩码后Sbox输出为Sbox输出添加第二掩码后的结果;其中,所述掩码函数用于计算Sbox运算对应的Sbox输出,并将掩码后Sbox输入中的第一掩码,转换为掩码后Sbox输出中的第二掩码;
[0021]运算结果确定模块,用于根据掩码后Sbox输出,确定当前轮运算的运算结果;
[0022]处理结果确定模块,用于根据最后一轮运算的运算结果,确定待处理数据的处理结果。
[0023]第四方面,本申请实施例提供一种密钥扩展装置,所述密钥扩展装置用于为上述第三方面所述的数据处理装置,提供各轮运算对应的掩码后轮密钥,其中,一轮运算对应的掩码后轮密钥为一轮运算的轮密钥添加掩码随机数的结果;所述密钥扩展装置包括:
[0024]主密钥获取模块,用于获取主密钥,所述主密钥使用密钥扩展算法进行轮密钥扩展,所述密钥扩展算法包括迭代的多轮密钥扩展运算;
[0025]第二输入确定模块,用于在当前轮密钥扩展运算,确定掩码后Sbox输入,并将掩码后Sbox输入映射到有限复合域;其中,所述掩码后Sbox输入为Sbox输入添加第三掩码后的结果,掩码后Sbox输入根据当前轮密钥扩展运算的输入密钥字以及轮常数确定,当前轮密钥扩展运算的输入密钥字添加有第三掩码;
[0026]第二输出确定模块,用于将映射到有限复合域的掩码后Sbox输入,输入到预先构造的掩码函数进行运算,以得到掩码后Sbox输出,所述掩码后Sbox输出为Sbox输出添加第二掩码后的结果;其中,所述掩码函数用于计算Sbox运算对应的Sbox输出,并将掩码后Sbox输入中的第三掩码,转换为掩码后Sbox输出中的第二掩码;
[0027]掩码后轮密钥确定模块,用于根据掩码后Sbox输出,确定当前轮密钥扩展运算输出的掩码后轮密钥。
[0028]第五方面,本申请实施例提供一种计算机设备,包括至少一个处理器和至少一个存储器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条
计算机可执行指令,以执行如上述第一方面所述的数据处理方法,和/或,如上述第二方面所述的密钥扩展方法。
[0029]第六方面,本申请实施例一种存储介质,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时,实现如上述第一方面所述的数据处理方法,和/或,如上述第二方面所述的密钥扩展方法。
[0030]本申请实施例提供的数据处理方法可以利用密码算法对待处理数据进行处理,密码算法包括迭代的多轮运算。为在数据处理过程中防御功耗分析,并且提升功耗分析的防御性能,本申请实施例可以在密码算法的每一轮运算中,确定掩码后Sbox输入,掩码后Sbox输入可以是Sbox输入添加第一掩码后的结果,掩码后Sbox输入可以根据每一轮运算的输入状态字以及轮密钥确定,每本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:获取待处理数据,所述待处理数据使用密码算法进行处理,所述密码算法包括迭代的多轮运算;在当前轮运算,确定掩码后Sbox输入,并将掩码后Sbox输入映射到有限复合域;其中,所述掩码后Sbox输入为Sbox输入添加第一掩码后的结果,掩码后Sbox输入根据当前轮运算的输入状态字以及轮密钥确定,当前轮运算的输入状态字添加有第一掩码;将映射到有限复合域的掩码后Sbox输入,输入到预先构造的掩码函数进行运算,以得到掩码后Sbox输出,所述掩码后Sbox输出为Sbox输出添加第二掩码后的结果;其中,所述掩码函数用于计算Sbox运算对应的Sbox输出,并将掩码后Sbox输入中的第一掩码,转换为掩码后Sbox输出中的第二掩码;根据掩码后Sbox输出,确定当前轮运算的运算结果;根据最后一轮运算的运算结果,确定待处理数据的处理结果。2.根据权利要求1所述的方法,其特征在于,在进行迭代的多轮运算之前,所述方法还包括:将待处理数据与第一随机数进行异或处理,以使得密码算法的每一轮运算的输入状态字添加有第二随机数,第二随机数为第一随机数的拆分数据;其中,所述第一掩码为第二随机数。3.根据权利要求2所述的方法,其特征在于,所述将映射到有限复合域的掩码后Sbox输入,输入到预先构造的掩码函数进行运算,以得到掩码后Sbox输出包括:根据掩码后Sbox输入、第二随机数、第三随机数、以及第四随机数,进行掩码函数的运算,以得到掩码后Sbox输出;其中,掩码后Sbox输出中的第二掩码根据第三随机数和第四随机数确定。4.根据权利要求3所述的方法,其特征在于,所述根据掩码后Sbox输入、第二随机数、第三随机数、以及第四随机数,进行掩码函数的运算,以得到掩码后Sbox输出包括:根据掩码后Sbox输入、第二随机数以及第三随机数,进行掩码函数的子函数的运算,以在子函数的运算结果中脱去第二随机数,并携带上第三随机数;根据第三随机数和第四随机数,对子函数的运算结果进行处理,以得到掩码后Sbox输出。5.根据权利要求4所述的方法,其特征在于,所述第二掩码为第三随机数与第四随机数的积;所述掩码函数的公式为:g(e+m,m,m

,n)=(f(e+m,m,n)+m

)
·
n+C=([n
·
e
·
A+n
·
C]
‑1·
A+m

)
·
n+C=Sbox(e)+m

·
n;其中,g表示掩码函数,e为Sbox输入,m为第二随机数,掩码后Sbox输入为e+m,n为第三随机数,m

为第四随机数,f表示子函数,C为预设加向量,A为预设乘矩阵,Sbox(e)为Sbox输出,掩码后Sbox输出为Sbox(e)+m

·
n;并且,Sbox(e)=(e
·
A+C)
‑1·
A+C。6.根据权利要求5所述的方法,其特征在于,所述子函数的公式为:f(e+m,m,n)=[n
·
((e+m)
·
A+C)

mnA]
‑1·
A=[n
·
e
·
A+n
·
C]
‑1·
A。7.根据权利要求1

6任一项所述的方法,其特征在于,所述在当前轮运算,确定掩码后Sbox输入包括:
如果当前轮运算的轮密钥在密钥扩展算法中使用了掩码进行保护,获取当前轮运算对应的掩码后轮密钥、以及掩码后轮密钥对应的掩码随机数;根据当前轮运算的输入状态字、掩码后轮密钥、以及掩码后轮密钥对应的掩码随机数,确定当前轮运算的掩码后Sbox输入。8.根据权利要求7所述的方法,其特征在于,所述根据当前轮运算的输入状态字、掩码后轮密钥、以及掩码后轮密钥对应的掩码随机数,确定当前轮运算的掩码后Sbox输入包括:将当前轮运算的输入状态字中的后三个状态字、掩码后轮密钥、以及掩码后轮密钥对应的掩码随机数进行异或运算,以得到当前轮运算的掩码后Sbox输入。9.根据权利要求1

6任一项所述的方法,其特征在于,所述将掩码后Sbox输入映射到有限复合域包括:使用有限复合域对应的目标集合中的元素,表示掩码后Sbox输入,以将掩码后Sbox输入映射到有限复合域。10.根据权利要求1

6任一项所述的方法,其特征在于,所述根据掩码后Sbox输出,确定当前轮运算的运算结果包括:对掩码后Sbox输出进行线性变换处理,对线性变换处理的结果进行脱掩码处理,以得到复合运算结果;根据复合运算结果,确定当前轮运算所计算的下一个状态字;其中,当前轮运算所计算的下一个状态字以及当前轮运算的输入状态字中的后三个状态字,作为当前轮运算的运算结果。11.根据权利要求10所述的方法,其特征在于,所述对线性变换处理的结果进行脱掩码处理包括:将线性变换处理的结果与第五随机数进行异或处理,以将线性变换处理的结果中的部分掩码进行脱离。12.根据权利要求2

6任一项所述的方法,其特征在于,所述根据最后一轮运算的运算结果,确定待处理数据的处理结果包括:根据最后一轮运算的运算结果,得到待处理数据的候选处理结果;将待处理数据的候选处理结果与第一随机数进行异或处理,得到待处理数据的目标处理结果。13.根据权利要求12所述的方法,其特征在于,所述密码算法为加密算法,加密算法包括迭代的多轮加密运算,所述待处理数据为明文数据;所述根据最后一轮运算的运算结果,得到待处理数据的候选处理结果包括:将最后一轮加密运算的运算结果经过反序变换,得到明文数据的候选密文数据;所述将待处理数据的候选处理结果与第一随机数进行异或处理,得到待处理数据的目标处理结果包括:将候选密文数据与第一随机数进行异或处理,得到明文数据的目标密文数据。14.一种密钥扩展方法,其特征在于,所述密钥扩展方法用于为权利要求1

13任一项所述的数据处理方法,提供各轮运算对应的掩码后轮密钥,其中,一轮运算对应的掩码后...

【专利技术属性】
技术研发人员:顾海华
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

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

1