数据处理方法、装置、处理器、芯片及电子设备与流程

文档序号:31947043发布日期:2022-10-26 04:59阅读:61来源:国知局
数据处理方法、装置、处理器、芯片及电子设备与流程

1.本技术实施例涉及数据处理技术领域,具体涉及一种数据处理方法、装置、处理器、芯片及电子设备。


背景技术:

2.数据可以使用密码算法进行加密和解密,即密码算法可以是用于加密和解密数据的算法函数,密码算法以密码协议为基础,例如sm4算法、aes(advanced encryption standard,高级加密标准)算法等。处理器在利用密码算法处理数据时,密码算法一般需要经过多轮迭代的运算,在每轮运算中涉及到sbox(substitution box,置换盒)运算。在此基础上,当处理器利用密码算法处理数据时,如何提升数据处理性能,成为了本领域技术人员亟需解决的技术问题。


技术实现要素:

3.有鉴于此,本技术实施例提供一种数据处理方法、装置、处理器、芯片及电子设备,以对处理器执行置换盒运算的方案进行改进,提升处理器执行密码算法的性能,从而提升数据处理性能。
4.为实现上述目的,本技术实施例提供如下技术方案。
5.第一方面,本技术实施例提供一种数据处理方法,包括:
6.确定待处理的数据,所述数据使用密码算法进行处理,其中,所述密码算法包括多轮迭代的运算;
7.在密码算法的当前轮运算中,确定当前轮运算的置换盒的输入;所述置换盒的输入为有限域的元素;
8.使用冗余基表示所述有限域的元素;
9.对使用冗余基所表示的所述有限域的元素,进行求逆运算;根据求逆运算结果,确定所述置换盒的输出;
10.根据所述置换盒的输出,确定当前轮运算的运算结果;
11.根据所述运算结果,确定所述数据的处理结果。
12.第二方面,本技术实施例提供一种数据处理装置,包括:
13.轮计算单元,用于确定待处理的数据,所述数据使用密码算法进行处理,其中,所述密码算法包括多轮迭代的运算;在密码算法的当前轮运算中,确定当前轮运算的置换盒的输入;所述置换盒的输入为有限域的元素;使用冗余基表示所述有限域的元素;对使用冗余基所表示的所述有限域的元素,进行求逆运算;根据求逆运算结果,确定所述置换盒的输出;根据所述置换盒的输出,确定当前轮运算的运算结果;根据所述运算结果,确定所述数据的处理结果;
14.密钥扩展单元,用于在密码算法的每轮运算中提供轮密钥。
15.第三方面,本技术实施例提供一种处理器,所述处理器被配置为执行如上述第一
方面所述的数据处理方法。
16.第四方面,本技术实施例提供一种芯片,包括如上述第三方面所述的处理器。
17.第五方面,本技术实施例提供一种电子设备,包括如上述第四方面所述的芯片。
18.本技术实施例提供的数据处理方法,可在使用密码算法处理数据时,确定待处理的数据;从而在密码算法的当前轮运算中,确定置换盒的输入,其中置换盒的输入为有限域的元素。在此基础上,本技术实施例可对置换盒的运算方式进行改进,在置换盒的输入为有限域的元素的情况下,使用冗余基表示有限域的元素;进而本技术实施例可对使用冗余基所表示的有限域的元素,进行置换盒运算中的求逆运算;从而根据求逆运算的结果,确定置换盒的输出。在得到置换盒的输出后,本技术实施例可根据置换的输出,确定当前轮运算的运算结果,以实现处理器执行密码算法时的每轮运算。在实现密码算法的每轮运算的基础上,本技术实施例可根据当前轮运算的运算结果,确定数据的处理结果,以实现数据的处理。
19.可以看出,在置换盒的输入为有限域的元素的情况下,本技术实施例可使用冗余基表示有限域的元素,从而基于冗余基进行置换盒的运算,以实现密码算法的每轮运算中置换盒运算的改进。由于冗余基能够平衡正规基的平方运算快,但乘法运算慢的特点,以及多项式基的平方运算慢,但乘法运算快的特点,因此本技术实施例基于冗余基进行置换盒运算中的求逆运算,能够优化置换盒运算的性能,从而提升密码算法的运算性能,进而提升利用密码算法处理数据的性能;并且,由于基于冗余基进行置换盒的运算,能够减少通过置换盒查找表来进行置换盒运算所占用的硬件实现面积,因此本技术实施例可以使得密码算法的硬件实现面积得以降低。可见,本技术实施例提供的数据处理方法能够提升密码算法的运算性能,并且降低硬件实现面积,从而在处理器利用密码算法处理数据时,本技术实施例可提升处理器执行密码算法的性能,进而由密码算法所处理的数据的处理性能,同时本技术实施例还可提升处理器的性能。
附图说明
20.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
21.图1为sm4算法的执行过程示例图。
22.图2为置换盒查找表的示例图。
23.图3为本技术实施例提供的数据处理方法的流程图。
24.图4为本技术实施例提供的进行置换盒运算的方法流程图。
25.图5为第一矩阵a1的示例图。
26.图6a为第一同构映射矩阵t1的示例图。
27.图6b为第二同构映射矩阵t2的示例图。
28.图7为置换盒的运算过程的示例图。
29.图8a为第一合并矩阵b1的示例图。
30.图8b为第三合并矩阵b3的示例图。
31.图9为本技术实施例提供的数据处理装置的框图。
具体实施方式
32.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
33.在利用密码算法处理数据时,以密码算法为sm4算法为例,sm4算法是一种分组密码算法,分组大小为128bit(比特)。sm4算法涉及加密算法、解密算法和密钥扩展算法;其中,加密算法涉及多轮加密,解密算法涉及多轮解密,密钥扩展算法用于生成每轮加密和解密使用的轮密钥。在sm4算法中,加密算法与密钥扩展算法均可采用32轮非线性迭代结构,且加密算法和解密算法采用相同的轮密钥结构和算法结构(均为32轮运算),只是加密算法和解密算法使用的轮密钥的顺序相互颠倒。也就是说,加密算法与解密算法的结构相同,但是加密算法与解密算法的轮密钥的使用顺序相反(即解密算法的轮密钥是加密算法的轮密钥的逆序)。
34.以加密运算为例,图1示例性的示出了sm4算法的执行过程示例图。如图1所示,sm4算法的输入为明文x,在经过32轮迭代的加密运算以及1次反序变换后,输出密文y;基于sm4算法的分组大小为128比特,明文x和密文y可以均是128比特。
35.每轮的加密运算需要使用密钥扩展算法生成的轮密钥,轮密钥可以是密钥扩展算法基于输入的主密钥扩展得到,主密钥长度也可以是128比特。结合图1所示,在第1轮加密运算中,输入的明文x可以为(x0,x1,x2,x3),使用轮密钥rk0进行加密运算后,输出(x1,x2,x3,x4);在第2轮加密运算中,输入(x1,x2,x3,x4),使用轮密钥rk1进行加密运算后,输出(x2,x3,x4,x5);以此类推,直至在第32轮的加密运算中,输入(x
31
,x
32
,x
33
,x
34
),使用轮密钥rk
31
进行加密运算后,输出(x
32
,x
33
,x
34
,x
35
);进而,第32轮加密运算的输出(x
32
,x
33
,x
34
,x
35
)经过反序变换r,得到输出的密文y,y可以表示为(y0,y1,y2,y3)。在一个实现示例中,反序变换可以表示为:(y0,y1,y2,y3)=r(x
32
,x
33
,x
34
,x
35
)=(x
35
,x
34
,x
33
,x
32
)。
36.结合图1所示,在32轮的加密运算中,针对每轮的加密运算而言,上一轮加密运算的输出,使用本轮的轮密钥进行加密运算后,可得到本轮加密运算的输出。例如,在第i+1轮的加密运算中,加密运算的输入可以为(xi,x
i+1
,x
i+2
,x
i+3
),输出可以为(x
i+1
,x
i+2
,x
i+3
,x
i+4
),并且加密运算使用的轮密钥为rki;其中,i属于0至31的整数,i+1属于1至32的整数。
37.也就是说,一轮的加密运算可以用于计算下一个的新状态字x
i+4
,计算过程可以如下:x
i+4
=f(xi,x
i+1
,x
i+2
,x
i+3
,rki);其中,f表示轮函数。例如,在第i+1轮的加密运算中,轮函数f的输入可以为(xi,x
i+1
,x
i+2
,x
i+3
),结合轮密钥rki,可以计算出新的下一个状态x
i+4
。进一步的,f(xi,x
i+1
,x
i+2
,x
i+3
,rki)可以表示为:即一轮的加密运算的运算过程可以进一步表达为:轮的加密运算的运算过程可以进一步表达为:其中,t是一种复合运算,是一个的可逆变换,复合运算t可由非线性变换τ和线性变换l复合而成,例如,t可以表示为:t(.)=l(τ(.))。
38.对于线性变换l而言,在一个实现示例中,线性变换l可以表示为:
39.其中,<<<表示32比特循环左移位运算;

表示32比特异或运算。
40.对于非线性变换τ而言,非线性变换τ可以包括多个(例如4个)并列的sbox(置换盒)进行运算;在一个实现示例中,假设非线性变换τ的输入为e,且e=(e0,e1,e2,e3),则τ(e)可以表示为:
41.τ(e)=(sbox(e0),sbox(e1),sbox(e2),sbox(e3))。
42.上述描述了sm4算法的加密算法过程,由于sm4算法中的解密算法是加密算法的逆操作,使用与加密算法顺序相颠倒的轮密钥,例如解密算法使用的轮密钥顺序为(rk
31
,rk
32


,rk0),因此关于解密算法的内容可参照上述加密算法的内容得出,此处不再展开说明。
43.通过上文描述可以看出,sm4算法等密码算法需要经过多轮迭代的运算,例如,sm4算法的加密算法需要经过多轮迭代的加密运算,sm4算法的解密算法需要经过多轮迭代的解密运算。而且在每一轮运算中,需要通过非线性变换τ,来计算每一轮运算的运算结果;例如,在进行加密运算时,第i+1轮加密运算需要通过非线性变换τ,计算出下一个的新状态字x
i+4

44.在sm4算法等密码算法的每一轮运算中,作为一个实现示例,可以通过查找置换盒查找表的查表方式,来实现非线性变换τ。例如,对于非线性变换的每个置换盒(sbox)而言,置换盒的8位输入中前4位作为行,后4位作为列,从而通过置换盒查找表来查找相应行列的值,以得到置换盒的输出。图2示例性的示出了置换盒查找表的示例图,可进行参照。
45.虽然利用查找置换盒查找表的查表方式,能够在sm4算法的每一轮运算中得到置换盒的输出,以实现非线性变换;进而利用每一轮运算的非线性变换结果,来确定每一轮运算的运算结果。但是,置换盒查找表占用的存储空间较大(例如图2所示的置换盒查找表占用的存储空间为2048比特),这将增大sm4算法等密码算法的硬件实现面积,特别是在为了防御功耗分析而使用随机掩码的情况下,新构造的置换盒查找表将占用更大的硬件实现面积。在一个实现示例中,sm4算法等密码算法可由硬件实现,例如由处理器、密码协处理器等硬件利用sm4算法等密码算法的硬件指令,来实现sm4算法等密码算法。
46.为降低置换盒查找表对于硬件实现面积的占用,作为一个实现示例,在sm4算法等密码算法的每一轮运算中,可以通过有限复合域的方式来实现非线性变换。例如使用正规基表示有限域的元素,并且利用正规基来计算置换盒(sbox)的输出,从而避免存储整体的置换盒查找表,进而达到降低硬件实现面积的效果。
47.然而,基于使用正规基表示有限域的元素,来实现置换盒(sbox)运算,仍然存在密码算法的性能提升需求。本技术的发明人发现在使用正规基表示有限域的元素时,正规基的特点是平方运算快,但乘法运算慢;而有限域还可以使用多项式基、冗余基等进行表示。其中,多项式基的特点是平方运算慢,但乘法运算快;而冗余基则平衡了正规基和多项式基的优缺点。
48.基于此,本技术实施例考虑在sm4算法等密码算法的每一轮运算中,对置换盒的运算方式进行改进,使用冗余基表示有限域gf(28)的元素,从而计算置换盒(sbox)的输出;进而利用置换盒的输出,确定每一轮运算的运算结果。
49.基于上述思路,图3示例性的示出了本技术实施例提供的数据处理方法的可选流程图,如图3所示,该方法流程可以包括如下步骤。
50.在步骤s310中,确定待处理的数据,所述数据使用密码算法进行处理,其中,所述密码算法包括多轮迭代的运算。
51.本技术实施例可利用密码算法对数据进行处理,例如利用密码算法对明文数据进行加密,又例如利用密码算法对密文数据进行解密;相应的,待处理的数据可以是待加密的明文数据或者待解密的密文数据。
52.在步骤s311中,在密码算法的当前轮运算中,确定当前轮运算的置换盒的输入。
53.sm4算法、aes算法等密码算法包括多轮迭代的运算,当前轮进行的运算可称为当前轮运算。以sm4算法为例,在当前轮运算中,非线性变换τ和线性变换l的复合运算可以用于确定当前轮运算的运算结果(例如当前轮运算的新状态字)。在一个实现示例中,以sm4算法的加密算法为例,在第i+1轮运算中,线性变换l和非线性变化τ的复合运算t,可用于确定第i+1轮运算的新状态字x
i+4

54.以sm4算法为例,在对非线性变换的置换盒运算方式进行改进时,非线性变换包括多个置换盒的并列运算(例如4个并列的置换盒进行运算,形成非线性变换)。基于此,作为可选实现,在当前轮运算中,本技术实施例可确定当前轮运算的非线性变换的输入,其中,非线性变换包括多个置换盒(sbox)的并列运算;进而,通过非线性变换的输入,确定当前轮运算中各个置换盒的输入。
55.在一些实施例中,本技术实施例可在当前轮运算中,获取上一轮运算的输出以及当前轮使用的轮密钥;从上一轮运算的输出以及当前轮使用的轮密钥中,确定当前轮运算的非线性变换的输入。作为一个示例,以sm4算法的加密算法为例,在第j轮运算中,上一轮运算的输出为(xi,x
i+1
,x
i+2
,x
i+3
),当前轮运算使用的轮密钥为rki,则第j轮运算的非线性变换的输入可以为(x
i+1
,x
i+2
,x
i+3
,rki);即在加密算法中,上一轮运算输出的后三个状态字以及当前轮使用的轮密钥,作为当前轮运算的非线性变换的输入。
56.进一步的,以sm4算法为例,在确定当前轮运算的非线性变换的输入后,基于非线性变换包括多个置换盒的并列运算,本技术实施例可从非线性变换的输入中确定各个置换盒的输入。作为一个示例,以sm4算法的加密算法为例,在第i+1轮运算中,非线性变换τ的输入可以为(x
i+1
,x
i+2
,x
i+3
,rki),则后的长度为32比特,每8比特的数据可依次作为非线性变换中的4个置换盒的输入;例如,第1个8比特的数据作为非线性变换中第一个置换盒的输入,第2个8比特的数据作为非线性变换中第二个置换盒的输入,第3个8比特的数据作为非线性变换中第三个置换盒的输入,第4个8比特的数据作为非线性变换中第四个置换盒的输入。也就是说,在加密算法中,上一轮运算输出的后三个状态字以及当前轮使用的轮密钥,可以依次作为各个置换盒的输入。
57.在本技术实施例中,置换盒的输入可以是有限域的元素。例如,一个置换盒的输入可设为e(比如,e可以是后的32比特数据中任一项的8比特数据),则在加密算法的第j轮运算中,e为有限域gf(28)的元素。
58.在步骤s312中,使用冗余基表示所述有限域的元素。
59.本技术实施例可使用冗余基表示有限域的元素,而一个置换盒的输入可以视为是
有限域的元素,因此本技术实施例可使用冗余基表示置换盒的输入。例如,针对任一个置换盒的输入e,e为有限域gf(28)的元素,本技术实施例可使用冗余基表示e对应的有限域gf(28)的元素。
60.在一些实施例中,本技术实施例可设置冗余基对应的目标集合(定义为目标集合为f),且目标集合f同构于有限域gf(28),则针对任一个置换盒的输入,在使用冗余基表示有限域的元素时,本技术实施例可使用冗余基对应的目标集合中的元素,来表示有限域的元素,且一个有限域的元素使用存在冗余的多个比特位进行表示。
61.为便于理解,设目标集合f的表达式为{《(x+1)mod(x9+1)》∪{0},+,
·
},其中,上述表达式中+表示相加,点表示相乘,上述表达式可以理解为是代数数论中的表达方式;在目标集合f中一共有28个元素,而且每个元素均是由(x+1)mod(x9+1)生成,其中,此处小写的x表示元素中的未知量,其不同于上文以大写x表示的加密算法输入的明文;在上述定义下,集合f同构于有限域gf(28),因此有限域gf(28)中的元素均可以通过冗余基对应的目标集合f中的元素来表示。在一个实现示例中,9个比特位可表示有限域gf(28)的一个元素;例如,设a(x)和b(x)为有限域gf(28)中的两个元素,则a(x)可以表示为a(x)=a0+a1x+...+a8x,b(x)可以表示为b(x)=b0+b1x+...+b8x;需要说明的是,在上述示例中,a(x)、b(x)可以表示为多项式。在本实现示例中,在使用冗余基表示有限域的元素时,可以使用9个比特位来表示有限域gf(28)的一个元素,这相比于正规基或多项式基使用8个比特位来表示有限域gf(28)的一个元素,是一种冗余表示法。
62.在步骤s313中,对使用冗余基所表示的有限域的元素,进行求逆运算;根据求逆运算的结果,确定置换盒的输出。
63.针对任一个置换盒,在置换盒的输入为有限域的元素,且本技术实施例使用冗余基表示有限域的元素的情况下,本技术实施例可基于冗余基实现置换盒运算中的求逆运算,进而根据求逆运算的结果,确定出置换盒的输出。
64.在一些实施例中,基于冗余基对应设置的目标集合f(目标集合f同构于有限域gf(28)),在对任一个置换盒进行运算时,本技术实施例可通过基于第一矩阵a1的第一仿射变换,和基于第一同构映射矩阵t1的第一同构映射,将使用冗余基表示的有限域的元素,变换到目标集合f;进而在目标集合f中进行求逆运算。在得到求逆运算结果后,本技术实施例可再将求逆运算结果,通过基于第二同构映射矩阵t2的第二同构映射,和基于第二矩阵a2的第二仿射变换,变换回有限域gf(28),从而得到置换盒的输出。在一个实现示例中,设一个置换盒的输入为e,e为有限域gf(28)的元素并且使用冗余基表示,则置换盒的输出sbox(e)可以表示为:
65.sbox(e)=i(e
·
a1·
t1+c
·
t1)
·
t2·
a2+c。
66.作为可选实现,第一仿射变换的第一矩阵a1和第二仿射变换的第二矩阵a2的矩阵形式,可参照前文描述所述;第一同构映射t1可以为目标集合f同构于有限域gf(28)下的映射,第二同构映射t2可以为t1的逆映射(即第二同构映射为第一同构映射的逆映射)。
67.在步骤s314中,根据置换盒的输出,确定当前轮运算的运算结果。
68.以sm4运算为例,在sm4运算的当前轮运算中,本技术实施例在得到各个置换盒的输出后,可根据非线性变换中多个置换盒并列运算的输出,得到非线性变换的非线性变换结果;从而根据非线性变换结果进行线性变换,得到复合运算的运算结果;进而根据复合运
算的运算结果,确定出当前轮运算的运算结果(例如当前轮运算所运算的新状态字)。
69.在一个示例中,以sm4算法的加密算法为例,在第j轮的运算中,本技术实施例可根据4个置换盒并列运算的输出,得到非线性变换τ的非线性变换结果;进而,利用t(.)=l(τ(.)),对非线性变换结果进行线性变换,以得到复合运算t的运算结果;例如,复合运算t的运算结果为t(x
i+1
+x
i+2
+x
i+3
+rki);从而将复合运算的运算结果与上一轮运算输出的第一个状态字(例如xi)相结合,以得到当前轮运算所计算的新状态字x
i+4
,例如:
[0070][0071]
在步骤s315中,根据所述运算结果,确定所述数据的处理结果。
[0072]
在一些实施例中,本技术实施例在得到当前轮运算的运算结果后,如果当前轮运算为密码算法的最后一轮运算,则本技术实施例可直接基于当前轮运算的运算结果,得到数据的处理结果;例如在以sm4算法为例的数据加密处理过程中,本技术实施例可在当前轮运算为密码算法的最后一轮运算时,将当前轮运算的运算结果经过反序变换,得到数据加密后的密文数据,从而确定出数据的处理结果。在另一些实施例中,本技术实施例在得到当前轮运算的运算结果后,如果当前轮运算不为密码算法的最后一轮运算,则本技术实施例可基于当前轮运算的运算结果,进行密码算法剩余轮的迭代运算,直至得到密码算法最后一轮运算的运算结果,从而直接基于最后一轮运算的运算结果,得到数据的处理结果。
[0073]
本技术实施例提供的数据处理方法,可在使用密码算法处理数据时,确定待处理的数据;从而在密码算法的当前轮运算中,确定置换盒的输入,其中置换盒的输入为有限域的元素。在此基础上,本技术实施例可对置换盒的运算方式进行改进,在置换盒的输入为有限域的元素的情况下,使用冗余基表示有限域的元素;进而本技术实施例可对使用冗余基所表示的有限域的元素,进行置换盒运算中的求逆运算;从而根据求逆运算的结果,确定置换盒的输出。在得到置换盒的输出后,本技术实施例可根据置换的输出,确定当前轮运算的运算结果,以实现处理器执行密码算法时的每轮运算。在实现密码算法的每轮运算的基础上,本技术实施例可根据当前轮运算的运算结果,确定数据的处理结果,以实现数据的处理。
[0074]
可以看出,在使用密码算法处理数据时,基于密码算法执行过程中置换盒的输入为有限域的元素的情况下,本技术实施例可使用冗余基表示有限域的元素,从而基于冗余基进行置换盒的运算,以实现密码算法的每轮运算中置换盒运算的改进。由于冗余基能够平衡正规基的平方运算快,但乘法运算慢的特点,以及多项式基的平方运算慢,但乘法运算快的特点,因此本技术实施例基于冗余基进行置换盒运算中的求逆运算,能够优化置换盒运算的性能(例如优化通过有限复合域来实现的非线性变换的性能),从而提升密码算法的运算性能,进而提升利用密码算法处理数据的性能;并且,由于基于冗余基进行置换盒的运算,能够减少通过置换盒查找表来进行置换盒运算所占用的硬件实现面积,因此本技术实施例可以使得密码算法的硬件实现面积得以降低。可见,本技术实施例提供的数据处理方法,能够提升密码算法的运算性能,并且降低硬件实现面积,从而在处理器利用密码算法处理数据时,本技术实施例可提升处理器执行密码算法的性能,进而提升由密码算法所处理的数据的处理性能,同时本技术实施例还可提升处理器的性能。
[0075]
在一些实施例中,使用冗余基表示有限域的元素可以是一种冗余表示法,即相比于使用正规基或多项式基表示有限域的元素,使用冗余基表示有限域的元素需要使用更多
的比特位;例如,冗余基使用9个比特位来表示有限域的一个元素,而正规基或多项式基使用8个比特位来表示有限域的一个元素。在这种冗余表示法下,使用冗余基表示有限域的元素时,元素的平方运算可选为通过比特置换来实现,例如,设a(x)为有限域gf(28)中的一个元素,则a(x)的平方运算可以表示为:其中,k表示多项式a的第k个系数,在冗余基使用9个比特位来表示有限域的一个元素的情况下,k是从0到8的整数,2
·
k mod 9表示2*k除9后的余数。
[0076]
可见,使用冗余基表示有限域的元素时,元素的平方运算可以通过比特置换来实现,在硬件实现上可选表现为金属线的调整(例如,每根金属线传输一个1比特的数据)。因此,在使用冗余基表示有限域的元素时,元素的平方运算的耗时相对于乘法来说极为微小,可以忽略不记,其具有与正规基一样的优势。
[0077]
在用冗余基表示有限域的元素时,元素的乘法运算与使用多项式基表示有限域的元素时所进行的乘法运算类似,具备类似多项式基的优势。例如,设a(x)和b(x)为有限域gf(28)中的两个元素,则a(x)和b(x)的乘法运算可以表示为:
[0078]
需要说明的是,j是一个从0到8的变量,多项式b的下标为(j-k)mod 8。
[0079]
作为可选实现,使用冗余基表示有限域gf(28)的元素时,元素a(x)
·
b(x)的乘法结果在计算机里可以存储9个系数其中,j为从0到8的变量,也就是说,j的一个取值对应一个系数。由于硬件实现具有并行的特点,这9个系数可以同时计算。第一步,基于k为0至8和j为0至8的取值,可以使用9
×
9的and(与运算)门矩阵计算出k和j的所有取值下的ak·b(j-k)mod8
;第二步,并行计算上述的9个系数。以其中一个系数为例,当j=8时,对应的系数为其中k从0至8的ak·b(8-k)mod8
在第一步中都已经计算出结果,这里可以把这9个ak·b(8-k)mod8
的结果进行相加。进而,本技术实施例再利用4次xor的处理,得到最终的计算值;例如,第一次xor处理后剩余5个计算值,第二次xor处理后剩余3个计算值,第三次xor处理后剩余2个计算值,第四次xor处理后就得到的最终计算值。综上所述,在使用冗余基表示有限域gf(28)的元素时,元素的乘法运算的延迟为1次and和4次xor。
[0080]
在使用冗余基表示有限域的元素时,基于元素的平方运算和元素的乘法运算,则对于有限域的gf(28)中的任意元素,例如元素a(x),满足(a(x))
28
=a(x),并且存在如下关系:
[0081][0082]
基于此,在使用冗余基表示有限域gf(28)的元素时,作为一种可选实现,有限域gf(28)上的求逆运算可以转换成平方和乘法运算,并且求逆运算需要4次乘法和7次平方。在此基础上,置换盒运算可选通过基于第一矩阵a1和第二矩阵a2的线性变换,以及非线性的有限域上的求逆运算实现。作为可选实现,在使用冗余基表示有限域的元素的情况下,图4示例性的示出了本技术实施例提供的进行置换盒运算的可选方法流程图。参照图4所示,该方
法流程可以包括如下步骤。
[0083]
在步骤s410中,将有限域的元素通过第一仿射变换和第一同构映射,变换到冗余基对应的目标集合。
[0084]
在使用冗余基表示有限域的元素的情况下,本技术实施例可将有限域的元素经过第一仿射变换的处理,处理结果再经过第一同构映射的处理,从而变换到冗余基对应的目标集合f。在一个示例中,第一仿射变换可以是基于预设的第一矩阵a1的线性变换,第一同构映射可以是基于预设的第一同构映射矩阵t1的非线性变换;也就是说,作为可选实现,本技术实施例可将有限域的元素,通过基于预设的第一矩阵a1的线性变换,和基于预设的第一同构映射矩阵t1的非线性变换,变换到冗余基对应的目标集合f。即,本技术实施例可将有限域的元素,基于预设的第一矩阵进行线性变换;再将线性变换结果基于预设的第一同构映射矩阵进行非线性变换,以变换到冗余基对应的目标集合。
[0085]
作为可选实现,预设的第一矩阵a1的示例可以参照图5示例所示。第一同构映射矩阵t1可以为目标集合f同构于有限域gf(28)下的映射矩阵。作为可选实现,本技术实施例可利用多项式基和冗余基的同构映射,推导出了第一同构映射对应的第一同构映射矩阵t1,从而实现利用冗余基进行置换盒运算中的求逆运算。
[0086]
作为可选实现,以sm4算法的置换盒输入的数据为8比特为例,则8比特数据可以是有限域gf(28)中的一个元素,又因为有限域gf(28)同构于gf(2)[x]/(p(x)),其中,p(x)=x8+x7+x6+x5+x4+x3+x2+x+1,因此gf(2)[x]/(p(x))同构于冗余基对应的目标集合f,f={《(x+1)mod(x9+1)》∪{0},+,
·
}。
[0087]
进一步的,由于gf(2)[x]/(p(x))中的非零元素的生成元为x mod p(x),而目标集合f中的非零元素的生成元为(x+1)mod(x9+1),因此目标集合f同构于有限域gf(28)所对应的第一同构映射可以表示为:其中,表示映射。
[0088]
进一步的,本技术实施例可利用多项式基和冗余基的同构映射,推导第一同构映射对应的第一映射矩阵t1。作为可选实现,多项式基和冗余基的对应关系可以如下表1所示。
[0089]
多项式基冗余基α0=0000 0010β0=0 0000 0011α1=0000 0100β1=0 0000 0101α2=0000 1000β2=0 0000 1111α3=0001 0000β3=0 0001 0001α4=0010 0000β4=0 0011 0011α5=0100 0000β5=0 0101 0101α6=1000 0000β6=0 1111 1111α7=0000 0001β7=1 0000 0001
[0090]
表1
[0091]
基于表1的对应关系,本技术实施例可推导出用于进行第一同构映射所对应的第一同构映射矩阵t1的矩阵形式,进而实现预设第一同构映射矩阵t1。在一个实现示例中,第一同构映射矩阵t1的矩阵形式可以例如图6a所示。
[0092]
在进一步的可选实现中,本技术实施例可将有限域的元素乘以第一矩阵a1和第一同构映射矩阵t1,从而将有限域的元素变换到冗余基对应的目标集合f。例如,设置换盒的输入为e,且e为使用冗余基表示的有限域gf(28)的元素,则通过e
·
a1·
t1,可将e变换到冗余基对应的目标集合f。
[0093]
在步骤s411中,在目标集合中进行求逆运算。
[0094]
作为可选实现,本技术实施例可根据有限域的元素变换到目标集合f的结果,以及预设的常数矩阵和第一同构映射矩阵t1进行求逆运算,从而实现在目标集合f中进行求逆运算,得到求逆运算结果。作为一个实现示例,在目标集合f中进行求逆运算的示例公式可以例如:i(e
·
a1·
t1+c
·
t1)。也就是说,在实现示例中,本技术实施例可将有限域的元素变换到目标集合f的结果e
·
a1·
t1,与常数矩阵c和第一同构映射矩阵t1的相乘结果进行相加;进而对相加结果进行求逆,得到求逆运算结果。作为可选实现,常数矩阵c可以预先设置,其矩阵形式可以例如(11001011)。
[0095]
在步骤s412中,将求逆运算结果通过第二同构映射和第二仿射变换,变换回有限域,以得到置换盒的输出。
[0096]
在得到求逆运算结果后,本技术实施例可将求逆运算结果经过第二同构映射的处理,处理结果再经过第二仿射变换的处理,从而变换回有限域gf(28),得到置换盒的输出。在一个实现示例中,第二同构映射可以是基于预设的第二同构映射矩阵t2的非线性变换,第二同构映射矩阵t2可通过第一同构映射矩阵t1确定;第二仿射变换可以是基于预设的第二矩阵a2的线性变换,第一矩阵a1与第二矩阵a2可以相同。也就是说,作为可选实现,本技术实施例可将求逆运算结果,通过基于预设的第二同构映射矩阵t2的非线性变换,和基于预设的第二矩阵a2的线性变换,变换回有限域gf(28),从而得到置换盒的输出。例如,本技术实施例可将求逆运算结果,基于第二同构映射矩阵t2进行非线性变换;再将非线性变换结果基于第二矩阵a2进行线性变换,以变换回有限域gf(28),得到置换盒的输出。
[0097]
作为可选实现,本技术实施例可基于图6a所示的第一同构映射矩阵t1确定出第二同构映射矩阵t2的矩阵形式,第二同构映射矩阵t2的矩阵形式的示例可以例如图6b所示。
[0098]
在进一步的可选实现中,本技术实施例可根据求逆运算结果、第二同构映射矩阵t2、第二矩阵a2和常数矩阵,将求逆运算结果变换回有限域,以得到置换盒的输出。作为一个实现示例,设置换盒的输入为e,e为有限域gf(28)的元素并且使用冗余基表示,则置换盒的输出sbox(e)可以表示为:
[0099]
sbox(e)=i(e
·
a1·
t1+c
·
t1)
·
t2·
a2+c。
[0100]
其中,i表示求逆运算,c为常数矩阵,c可以表示为(11001011)。第一矩阵a1可以与第二矩阵a2相等,第一矩阵a1和第二矩阵a2的示例可以如图5示例所示。
[0101]
在本实现示例中,本技术实施例可将求逆运算结果i(e
·
a1·
t1+c
·
t1)与第二同构映射矩阵t2和第二矩阵a2进行相乘;进而相乘结果与常数矩阵c进行矩阵相加,从而得到置换盒的输出。
[0102]
为便于理解,图7示例性的示出了置换盒的运算过程的示例图,在置换盒的输入为有限域gf(28)的元素,且使用冗余基表示有限域gf(28)的元素的情况下,本技术实施例可将置换盒的输入(即有限域gf(28)的元素),基于预设的第一矩阵a1进行仿射变换(例如e
·
a1);仿射变换结果基于第一同构映射矩阵t1进行同构映射(例如e
·
a1·
t1),以将有限域的
元素变换到目标集合f;从而本技术实施例可在目标集合f中进行求逆运算(例如i(e
·
a1·
t1+c
·
t1)),以得到求逆运算结果;进而,本技术实施例可将求逆运算结果,基于第二同构映射矩阵t2进行同构映射(例如i(e
·
a1·
t1+c
·
t1)
·
t2);同构映射结果基于第二矩阵a2进行仿射变换(例如i(e
·
a1·
t1+c
·
t1)
·
t2·
a2+c),以变换回有限域gf(28),从而得到置换盒的输出。
[0103]
在进一步的可选实现中,基于上述置换盒输出的表达,本技术实施例可将第一矩阵a1和第一同构映射矩阵t1进行合并,从而得到第一合并矩阵b1。例如,将第一矩阵a1与第一同构映射矩阵t1进行相乘,以得到第一合并矩阵b1,即b1=a1·
t1。从而,在将有限域的元素通过第一仿射变换和第一同构映射,变换到目标集合时,本技术实施例可将有限域的元素,基于第一合并矩阵b1进行线性变换(例如e
·
b1),以变换到冗余基对应的目标集合。在一个实现示例中,第一合并矩阵b1的矩阵形式可以如图8a示例所示。
[0104]
进一步的,本技术实施例可将常数矩阵c和第一同构映射矩阵t1进行合并,从而得到第二合并矩阵b2。例如,将常数矩阵c与第一同构映射矩阵t1进行相乘,以得到第二合并矩阵b2,即b2=c
·
t1。从而,在目标集合中进行求逆运算时,本技术实施例可根据有限域的元素变换到目标集合的结果(例如e
·
b1),以及第二合并矩阵b2进行求逆运算,以得到求逆运算结果(例如i(e
·
b1+b2))。在一个实现示例中,第二合并矩阵b2的矩阵形式可以例如b2=(110100111)。
[0105]
进一步的,本技术实施例可将第二同构映射矩阵t2和第二矩阵a2进行合并,从而得到第三合并矩阵b3;例如,将第二同构映射矩阵t2与第二矩阵a2进行相乘,以得到第三合并矩阵b3,即b3=t2·
a2。从而,在将求逆运算结果通过第二同构映射和第二仿射变换,变换回有限域,以得到所述置换盒的输出时,本技术实施例可将求逆运算结果(例如i(e
·
b1+b2)),基于第三合并矩阵b3进行线性变换(例如i(e
·
b1+b2)
·
b3);进而基于该线性变换结果和常数矩阵c,得到置换盒的输出(例如i(e
·
b1+b2)
·
b3+c)。在一个实现示例中,第三合并矩阵b3的矩阵形式可以如图8b示例所示。
[0106]
基于本技术实施例合并得到的第一合并矩阵b1、第二合并矩阵b2和第三合并矩阵b3,本技术实施例可将置换盒的输出sbox(e)的表达转化为:
[0107]
sbox(e)=i(e
·
b1+b2)
·
b3+c。
[0108]
也就是说,置换盒运算可以简化为基于第一合并矩阵b1和第三合并矩阵b3的两次线性变换,而且求逆运算是在目标集合f中进行,只需4次乘法和7次平方。进而利用冗余基的特性,由于平方运算的延迟可以忽略不计,而乘法运算的延迟为1次and(与运算)加上3次xor(异或运算),因此求逆运算的延迟为4次and和12次xor,进而提升置换盒运算的运算速度和性能。也就是说,本技术实施例基于冗余基进行置换盒运算的方式,相比于通过置换盒查找表来进行置换盒运算,能够减少硬件实现面积,相比于使用正规基和多项式基进行置换盒运算,具有更快的运算速度。
[0109]
进一步的,本技术实施例在基于冗余基进行置换盒运算的过程中,利用多项式基和冗余基的同构映射,推导出了同构映射对应的同构映射矩阵(例如第一同构映射矩阵t1和第二同构映射矩阵t2),使得sm4算法中的置换盒运算的求逆运算可以使用冗余基进行,并且本技术实施例进一步利用冗余基的平方运算和乘法运算的特性,能够优化求逆运算,提升运算速度,从而提升sm4算法的运算性能。
[0110]
进一步的,本技术实施例提供的数据处理方案除适用于sm4算法外,还可适用于aes等具有置换盒运算的密码算法。也就是说,在任意的具有置换盒运算的密码算法中,本技术实施例可在密码算法的每轮运算中(例如每轮加密运算或者每轮解密运算中),将置换盒运算涉及的求逆运算映射到冗余基,利用冗余基的平方运算和乘法运算的特性,优化置换盒运算的性能,达到减少硬件实现面积和提升运算速度的效果;从而在处理器执行密码算法时,本技术实施例可提升处理器执行密码算法的性能,提升处理器的性能。
[0111]
本技术实施例提供的数据处理方案,可以应用于数据加密或者数据解密场景。例如基于本技术实施例提供的数据处理方案,在利用密码算法加密或者解密数据时,可以在密码算法的每一轮运算中,将置换盒的输入可以视为是有限域的元素,并且使用冗余基表示有限域的元素,从而在密码算法的每一轮运算中,确定出置换盒的输出,以确定出密码算法每一轮运算的运算结果;进而,基于密码算法最后一轮的运算结果,本技术实施例可确定出对数据进行加密后的密文数据,或者对数据进行解密后的明文数据;以在数据加密或者数据解密场景,应用本技术实施例提供的数据处理方案,提升数据处理性能。
[0112]
下面对本技术实施例提供的数据处理装置进行介绍,该数据处理装置可以是cpu、密码协处理器等处理器,为实现本技术实施例提供的数据处理方法所需设置的功能装置。在一些实施例中,该数据处理装置可以是cpu、密码协处理器等处理器中的硬件电路装置。
[0113]
作为可选实现,图9示例性的示出了本技术实施例提供的数据处理装置的可选框图,如图9所示,该数据处理装置可以包括:密钥扩展单元910和轮计算单元920。其中,密钥扩展单元910用于在sm4算法等密码算法的每轮运算中,提供轮密钥。
[0114]
轮计算单元920用于实现sm4算法等密码算法的每轮运算。在本技术实施例中,轮计算单元920可用于:确定待处理的数据,所述数据使用密码算法进行处理,其中,所述密码算法包括多轮迭代的运算;在密码算法的当前轮运算中,确定当前轮运算的置换盒的输入;所述置换盒的输入为有限域的元素;使用冗余基表示所述有限域的元素;对使用冗余基所表示的所述有限域的元素,进行求逆运算;根据求逆运算结果,确定所述置换盒的输出;根据所述置换盒的输出,确定当前轮运算的运算结果;根据所述运算结果,确定所述数据的处理结果。
[0115]
在一些实施例中,轮计算单元920,用于使用冗余基表示所述有限域的元素包括:
[0116]
使用冗余基对应的目标集合中的元素,表示所述有限域的元素;其中,一个有限域的元素使用存在冗余的多个比特位进行表示,且所述目标集合同构于所述有限域。
[0117]
在一些实施例中,轮计算单元920,用于对使用冗余基所表示的所述有限域的元素,进行求逆运算包括:
[0118]
在使用冗余基表示所述有限域的元素的情况下,将所述有限域的元素通过第一仿射变换和第一同构映射,变换到所述目标集合;
[0119]
在所述目标集合中进行求逆运算。
[0120]
在一些实施例中,轮计算单元920,用于根据求逆运算结果,确定所述置换盒的输出包括:
[0121]
将所述求逆运算结果通过第二同构映射和第二仿射变换,变换回有限域,以得到所述置换盒的输出。
[0122]
在一些实施例中,所述第一仿射变换为基于预设的第一矩阵的线性变换;所述第
一同构映射为基于预设的第一同构映射矩阵的非线性变换,所述第一同构映射矩阵为所述目标集合同构于所述有限域下的映射矩阵;所述第二同构映射为基于预设的第二同构映射矩阵的非线性变换,所述第二同构映射矩阵通过所述第一同构映射矩阵确定;所述第二仿射变换为基于预设的第二矩阵的线性变换,所述第一矩阵与所述第二矩阵相同。
[0123]
在一些实施例中,所述第一同构映射矩阵利用多项式基和冗余基的同构映射推导得出。
[0124]
一方面,作为可选实现,轮计算单元920,用于将所述有限域的元素通过第一仿射变换和第一同构映射,变换到所述目标集合包括:
[0125]
将所述有限域的元素,基于所述第一矩阵进行线性变换;将线性变换结果基于所述第一同构映射矩阵进行非线性变换,以变换到冗余基对应的目标集合。
[0126]
作为可选实现,轮计算单元920,用于将所述求逆运算结果通过第二同构映射和第二仿射变换,变换回有限域,以得到所述置换盒的输出包括:
[0127]
将所述求逆运算结果,基于所述第二同构映射矩阵进行非线性变换;将非线性变换结果基于所述第二矩阵进行线性变换,以变换回所述有限域,得到所述置换盒的输出。
[0128]
作为可选实现,轮计算单元920,用于在所述目标集合中进行求逆运算包括:
[0129]
根据所述有限域的元素变换到所述目标集合的结果,以及预设的常数矩阵和第一同构映射矩阵进行求逆运算,以得到求逆运算结果。
[0130]
作为可选实现,轮计算单元920,用于将非线性变换结果基于所述第二矩阵进行线性变换,以变换回所述有限域,得到所述置换盒的输出包括:
[0131]
根据非线性变换结果、所述第二矩阵和常数矩阵,将求逆运算结果变换回有限域,得到置换盒的输出。
[0132]
作为可选实现,置换盒的输出表示为sbox(e),sbox(e)表达为:sbox(e)=i(e
·
a1·
t1+c
·
t1)
·
t2·
a2+c;
[0133]
其中,i表示求逆运算,e表示所述置换盒的输入,a1表示所述第一矩阵,t1表示所述第一同构映射矩阵,c为所述常数矩阵,t2表示所述第二同构映射矩阵,a2表示所述第二矩阵。
[0134]
另一方面,作为可选实现,本技术实施例还可将所述第一矩阵和所述第一同构映射矩阵进行合并,得到第一合并矩阵;将预设的常数矩阵和所述第一同构映射矩阵进行合并,得到第二合并矩阵;将所述第二同构映射矩阵和所述第二矩阵进行合并,得到第三合并矩阵。
[0135]
作为可选实现,轮计算单元920,用于将所述有限域的元素通过第一仿射变换和第一同构映射,变换到所述目标集合包括:
[0136]
将所述有限域的元素,基于所述第一合并矩阵进行线性变换,以变换到冗余基对应的目标集合。
[0137]
作为可选实现,轮计算单元920,用于在所述目标集合中进行求逆运算包括:
[0138]
根据所述有限域的元素变换到所述目标集合的结果,以及所述第二合并矩阵进行求逆运算,以得到求逆运算结果。
[0139]
作为可选实现,轮计算单元920,用于将所述求逆运算结果通过第二同构映射和第二仿射变换,变换回有限域,以得到所述置换盒的输出包括:
[0140]
将所述求逆运算结果,基于所述第三合并矩阵进行线性变换;基于该线性变换结果和所述常数矩阵,得到所述置换盒的输出。
[0141]
作为可选实现,置换盒的输出表示为sbox(e),sbox(e)表达为:sbox(e)=i(e
·
b1+b2)
·
b3+c;
[0142]
其中,i表示求逆运算,e表示所述置换盒的输入,b1表示所述第一合并矩阵,b2表示所述第二合并矩阵,b3表示所述第三合并矩阵,c为所述常数矩阵。
[0143]
在一些实施例中,以sm4算法为例,轮计算单元920,用于确定当前轮运算的置换盒的输入包括:确定当前轮运算的非线性变换的输入,所述非线性变换包括多个置换盒的并列运算;从非线性变换的输入中确定各个置换盒的输入。
[0144]
本技术实施例提供的数据处理装置可以适用于sm4算法、aes算法等具有置换盒运算的密码算法中,可应用于数据加密或者数据解密的场景。
[0145]
本技术实施例还提供一种处理器,例如cpu、密码协处理器等处理器,该处理器可以设置本技术实施例提供的数据处理装置。作为可选实现,本技术实施例提供的处理器可以被配置为执行本技术实施例提供的数据处理方法。
[0146]
本技术实施例还提供一种芯片,该芯片可以包括本技术实施例提供的处理器。
[0147]
本技术实施例还提供一种电子设备,例如终端设备或者服务器设备等,该电子设备可以包括本技术实施例提供的芯片。
[0148]
上文描述了本技术实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本技术实施例披露、公开的实施例方案。
[0149]
虽然本技术实施例披露如上,但本技术并非限定于此。任何本领域技术人员,在不脱离本技术的精神和范围内,均可作各种更动与修改,因此本技术的保护范围应当以权利要求所限定的范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1