CN102043606B - 处理有限域运算的方法与运算电路 - Google Patents
处理有限域运算的方法与运算电路 Download PDFInfo
- Publication number
- CN102043606B CN102043606B CN 200910174051 CN200910174051A CN102043606B CN 102043606 B CN102043606 B CN 102043606B CN 200910174051 CN200910174051 CN 200910174051 CN 200910174051 A CN200910174051 A CN 200910174051A CN 102043606 B CN102043606 B CN 102043606B
- Authority
- CN
- China
- Prior art keywords
- conversion
- isomorphism
- computing
- inverse
- multiplication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Error Detection And Correction (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供一种可用以处理有限域运算的方法,包含有:提供一运算电路,该运算电路至少包含有一乘法反运算单元;以及使用该乘法反运算单元来通过至少执行多次同构转换以求得一输入数据于一特定有限域中的一乘法反元素,其中该多次同构转换包含有基底转换。
Description
技术领域
本发明是与有限域(Galios Field)的运算有关,尤指先进加密标准(AES,Advanced encryption Standard)中字节取代运算(SubByte)电路与反字节取代运算(InvSubByte)电路的架构以及其相关方法。
背景技术
先进加密标准(Advanced Encryption Standards,AES)是美国联邦信息处理标准(Federal Information Processing Standards,FIPS)所认可,并由美国国家标准和技术局(National Institute of Standards andTechnology,NIST)于公元2000年采用Rijndael密码算法来加以实现,主要是用来保护电子数据,而先进加密标准所采用的Rijndael密码算法是一种对称的加解密标准,其可对信息进行加密而成为密文(ciphertext),亦可将密文解密而还原成原本的明文(plaintext)以保障该文件的安全。在先进加密标准中,算法可使用128位长度、192位长度、以及256位长度的密钥(cryptographic key)对128位长度的数据块(data block)进行加密/解密。
先进加密标准的加密/解密架构是由几个主要的运算以及其反运算构成,亦即:回合金钥加法运算(AddRoundKey)、字节取代运算(SubByte)与反字节取代运算(InvSubByte)、位移列运算(ShiftRow)与反位移列运算(InvShiftRow)以及混合行运算(MixColumn)与反混合行运算(InvMixColumn)。由于先进加密标准是通过反复进行多回合的前述运算以进行加密/解密,因此,如何有效率地设计先进加密标准的运算电路以及其相对应地反运算电路,来控制先进加密标准电路进行加密及/或解密运算所需的时间以及整体电路面积是相当重要的。
在先进加密标准中,字节取代运算是非线性(nonlinear)的字节替换运算,每一个输入的字节皆是使用一个代换盒(S-Box)独立执行运算。代换盒与反代换盒(inverse S-box,InvS-box)两者的运算皆包含有一乘法反运算(Multiplicative Inverse)以及一仿射运算(affine transformation),只是在代换盒与反代换盒两者进行乘法反元素与仿射转换的先后顺序不同而已。由于直接在有限域(在先进加密标准的规定中为Galois Field GF(28))中实际进行代换盒与反代换盒的运算相当庞杂,一些先进加密标准的实际设计方式中,就通过分别使用查表的方式来取代代换盒与反代换盒的实际运算,然而,这种查表法需要使用大量的存储器来加以实现,因而导致了先进加密标准在实际硬件电路上面临了大量电路面积与数据吞吐量(throughput)的限制。
因此,亟需提出一种创新的代换盒以及/或反代换盒处理机制,不仅可达到高速的运算效能,更同时能减少所需的电路面积,进以解决已知先进加密标准架构所面临的问题。
发明内容
因此,本发明的目的之一即在于提出一种处理有限域运算的方法与运算电路,其通过基底转换(change of basis)来降低运算复杂度,因而降低电路面积与提升数据吞吐量。
根据本发明的一实施例,其揭露一种处理有限域运算的方法。此方法包含有:提供一运算电路,此运算电路至少包含有一乘法反元素运算(multiplicative inverse)单元;以及,使用该乘法反运算单元来通过至少执行多次同构转换(Isomorphic transform,Isomorphic map)以求得一输入数据于一特定有限域中的一乘法反元素,其中该多次同构转换包含有基底转换(change of basis)。
根据本发明的另一实施例,其揭露一种处理有限域运算的运算电路,此运算电路至少包含有一乘法反运算单元。该乘法反运算单元用以求得一输入数据于一特定有限域中的一乘法反元素,其中该乘法反运算单元至少执行多次同构转换,且该多次同构转换包含有基底转换。
较佳地,其是利用基底转换来求得乘法反元素,以有效降低有限域运算中的复杂度。
较佳地,其是使用基底转换与合成域(composite field)运算来求取乘法反元素。
较佳地,其是通过适当地选择运算中的正交基底(normal basis)以简化所需的电路架构。
较佳地,其是经由考虑不可约多项式(irreducible polynomial)的系数,有效地节省运算所需的电路面积。
较佳地,其是同时考虑仿射转换以及乘法反运算中的变换矩阵(transform matrix)来选取不可约多项式的系数,以有效地节省运算所需的电路面积。
较佳地,其是提供一种可供代换盒(S-box)与反代换盒(Inverse S-box,Inv S-box)运算共享的架构(乘法反运算单元),其是同时考虑代换盒运算与反代换盒运算中的仿射转换以及反仿射转换(inverse affine transform)来选取适当的不可约多项式,以有效地节省运算所需的电路面积。
较佳地,其是提供一种可供代换盒运算与反代换盒运算共享的架构,其是依据同时考虑代换盒以及反代换盒中仿射转换的线性部分/反仿射转换的线性部分以及乘法反运算中的多个变换矩阵,以提供适当地不可约多项式,以提升其效能。
附图说明
图1所示为本发明的先进加密标准运算中计算输入字节在有限域GF(28)中基于多项式基底的乘法反元素的一实施例的流程示意图。
图2所示为本发明的先进加密标准运算中计算输入字节在有限域GF(28)中基于多项式基底的乘法反元素的另一实施例的流程示意图。
图3为本发明运算电路的第一实施例的示意图。
图4为本发明运算电路的第二实施例的示意图。
图5为本发明运算电路的第三实施例的示意图。
图6为本发明运算电路的第四实施例的示意图。
图7为图1至图6中依据汉明权重计算的不可约多项式的较佳实施例。
[主要元件标号说明]
300、400、500、600 运算电路
310、420、520、620 乘法反运算单元
320、510、610 仿射转换单元
410、530、630 反仿射转换单元
540、550、640、650 选择器
具体实施方式
在本专利说明书及上述的申请专利范围当中使用了某些词汇来指称特定的元件。所属领域中具有通常知识者应可理解,硬件制造商可能会用不同的名词来称呼同一个元件。本说明书及上述的申请专利范围并不以名称的差异来作为区分元件的方式,而是以元件在功能上的差异来作为区分的准则。在通篇说明书及上述的请求项当中所提及的「包含」为一开放式的用语,故应解释成「包含但不限定于」。以外,「耦接」一词在此是包含任何直接及间接的电气连接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表该第一装置可直接电气连接于该第二装置,或通过其它装置或连接手段间接地电气连接至该第二装置。
请参阅图1,图1所示为根据本发明的先进加密标准(AES)运算中计算输入数据(例如输入字节A)在有限域GF(28)中基于多项式基底的乘法反元素的一实施例的流程示意图。在接下来的说明中,本发明采用Itoh-Tsujii的算法来简化于有限域GF(28)上的乘法反元素运算。Itoh-Tsujii的算法可简单说明如下:
1.求取 其中q为一本原元素,且有限域GF(q)为有限域GF(qm)的一子场(subfield)。
2.计算A在有限域GF(qm)的r-1次方,表示为B←Ar-1。
3.在有限域GF(q)上求取Ar,亦即a←A.B=A.Ar-1=Ar。
4.在有限域GF(q)上求取(Ar)-1,亦即b←a-1=(Ar)-1。
5.通过(Ar)-1以及Ar-1来求取A的乘法反元素A-1,亦即A-1←b·B=(Ar)-1·Ar-1。
既然在先进加密标准的实际电路设计中,代换盒与反代换盒皆由:1.对输入字节A进行仿射转换(affine transformation)或反仿射转换(inverseaffine transformation),以及2.计算输入字节A在有限域GF(28)中基于多项式基底(或称之为标准基底(standard basis))的乘法反元素,此二运算所组成,只是在代换盒与反代换盒的运算中进行的顺序不同。另外,更因为在代换盒与反代换盒的设计中,皆以计算有限域GF(28)中基于多项式基底的乘法反元素具有最关键的复杂度,本发明通过Itoh-Tsujii的算法,再加上了多次的基底转换(change of basis),进而将有限域GF(28)转换至相对应的合成域(composite field),并利用基底转换,并且在运算中选择适当的正交基底(normal basis)来简化所需的计算以降低电路的复杂度。如此一来,便能以最少的电路体积以及更快的运算速度实现先进加密标准中字节取代运算与反字节取代运算的硬件架构。
请注意到,为简明起见,在后续的说明中,以求取输入字节A于特定有限域GF(28)的乘法反元素为例来说明本发明的架构,且相对应的合成域为GF(24)2来说明可将本发明的方法应用于先进加密标准中加密运算以及解密运算。然而,随着设计需求与应用领域的不同,亦可计算其它有限域中的乘法反元素,换言之,本发明并不限定于将有限域GF(28)转换至合成域GF(24)2)以进行运算。且合成域的选用方式亦不为本发明的限制条件之一,本领域技术人员于阅读本说明书后可轻易明了之,而这些相关设计变化亦属于本发明的保护范畴之中。
如图1所示,本发明的计算输入字节A在有限域GF(28)中基于多项式基底(polynomial basis)的乘法反元素的流程包含有以下步骤:
步骤S110:执行一同构转换(isomorphic transformation)以将一输入字节A由基本域(ground field)GF(2)的多项式基底的表示法转换至基本域GF(24)的多项式基底的表示法。换言之,原本在有限域GF(28)中基于多项式基底的输入字节A被同构转换至合成域GF((24)2)的多项式基底上。其中GF((24)2)的基本域GF(24)采一正交基底(τ,τ2,τ4,τ8)来表示之。
步骤S120:将输入字节A由基本域GF(24)中基于多项式基底的表示法同构转换至基本域GF(2)中基于一正交基底(normal basis)的表示法,也就是说,输入字节A由原本的合成域GF((24)2)的多项式基底同构转换至有限域GF(28)的正交基底(β,β2,β4,β8,β16,β32,β64,β128)。
步骤S130:在基本域GF(2)的正交基底上,进行一幂次运算(poweroperation)来求取输入字节A的16次方,亦即求出A16。
步骤S140:对输入字节A的预定幂次(亦即A16)进行同构转换,以将A16由基本域GF(2)上基于正交基底的表示法转换至基本域GF(24)上基于多项式基底的表示法。换言之,A16由原本的有限域GF(28)上的正交基底表示法转换为合成域GF((24)2)上的多项式基底表示法。其中GF((24)2)的基本域GF(24)采一正交基底(τ,τ2,τ4,τ8)来表示。
步骤S150:在合成域GF((24)2)上的多项式基底上计算A16与A的乘积。亦即,使用步骤S110以及步骤S140所得到的结果A16与A,以求取A17。
步骤S160:在基本域GF(24)的正交基底(τ,τ2,τ4,τ8)上求出A17的乘法反元素以得到A-17。
步骤S170:在合成域GF((24)2)上的多项式基底上,计算A-17与A16的乘积以求取A-1。
步骤S180:进行同构转换以将A-1由合成域GF((24)2)上的多项式基底表示法变换至基本域GF(2)上的多项式表示法。亦即,得到了输入字节A在有限域GF(28)上基于多项式基底乘法反元素A-1。
在前述实施例中,是选择了将Itoh-Tsujii算法中的(q)m设为(24)2,因此,在上述的流程中,便将输入字节A的十七次方(亦即A17)的处理转换至合成域GF((24)2),以避免直接在有限域GF(28)上运算。通过将有限域GF(28)视作为合成域GF((24)2),若在合成域GF((24)2)的多项式基底上,则输入字节A可以通过一阶多项式(first order polynomial)表示如下:
A=ax+b (1)
同样地,A的十六次方(亦即A16)在合成域GF(24)2的多项式基底上的表示式如下所示:
A16=cx+d (2)
其中一阶多项式中的系数:a、b、c、d皆为有限域GF(24)中的元素。因为相关于有限域、多项式基底、正交基底以及不可约多项式(irreduciblepolynomial)的说明可见于线性代数以及错误更正码,且被本领域技术人员所熟知,故在此便省略而不再赘述。另外,由于有限域GF(24)为合成域GF((24)2)的一子集合(或子场),经由数学推导可知输入字节A的17次方(亦即A17)在有限域GF(24)2上,实为一常数多项式(constant polynomial)。关于A17的运算以及详细说明将于后续说明。
为了有效地降低电路复杂度,在上述的运算中采用了许多基底转换的技巧。举例来说,在本发明的一实施例中,于步骤S130求取输入字节A的十六次方时,是经由同构转换将输入字节A由多项式表示式转换到正交基底的表示式: 其中α为GF(2)中的本原元素。另外,在步骤S150中,在计算输入字节A的十七次方(亦即A17),则通过将输入字节A与A16先转换成基本域为GF(24)的合成域(亦即GF(24)2),且以多项式基底的方式表示。此外,更将运算过程中的元素(位于有限域GF(24)用正交基底 其中γ为GF(24)中的本原元素,的方式表示,通过合并了上述的基底转换,在计算合成域GF((24)2)中的归一(monic)不可约多项式的系数,令其为m(x)=x2+λx+ρ,则可通过不同方式选取的最佳不可约多项式以因应不同的设计需求,故可得到不同的不可约多项式,在提供代换盒与反代换盒极佳性能的同时,亦精简其所需的电路成本。
请继续参阅图1,在前述的运算流程中,利用了输入字节A与A16来求取A17(步骤S150),则A17的计算即可表示如下:由于A与A16可用合成域GF((24)2)的多项式基底表示,且将在此合成域运算所需的不可约多项式表示为m(x)=x2+λx+ρ,其中λ,ρ∈GF(24)。又将A与A16分别表示为A=ax+b及A16=cx+d,则A17的计算如下所示:
A17=(ax+b)(cx+d)mod(x2+λx+ρ)
=acx2+(ad+bc)x+bd mod(x2+λx+ρ)
=(ad+bc+acλ)x+(bd+acρ). (3)
由于前述已推知A17为常数多项式,计算A17的运算因此可化简为:
A17=bd+acρ (4)
在本发明的一实施例中,将前述的运算(亦即在有限域GF(2)4上的两个乘法运算,一个常数乘法运算,以及一个加法运算)在有限域GF(2)4的正交基底上执行,由于在正交基底上的数学运算可进一步提升运算的效率与降低所需使用的运算电路的复杂度。由于如何有限域中找到适当的正交基底可由熟悉场论(field theory)的人士所知,在此便不赘述。本发明的运算并不限定于一特定的正交基底上中执行,随着适当的设计变化,亦可依据不同的设计需求来选择适当的正交基底进行运算,亦即符合本发明精神的相关设计变化均隶属于本发明的保护范畴。
由于在步骤S160中,计算A17的乘法反元素亦是在合成域GF((24)2),且A-17亦为合成域GF((24)2)中的常数多项式,在步骤S170中求取输入字节A的乘法反元素A-1将可于合成域GF((24)2)中的乘法运算来加以实现:
A-1=(A17)-1·A16
=A-17·(cx+d)
=cA-17x+dA-17. (5)
由于在前述运算中,计算A16(表示为A16=cx+d)的步骤是利用将输入字节A转换至有限域GF(28)的正交基底上,如前述所揭露,以此将可有效率地执行正交基底上的乘法运算。
请继续参阅图1,在前述的实施例中,计算乘法反元素的流程中包含了许多的线性转换,比方说:步骤S110所进行的同构转换(如:第一同构转换)中使用的变换矩阵(transform matrix),是用以将输入字节由有限域GF(28)的多项式基底同构转换至合成域GF((24)2)的多项式基底,为方便说明起见,在接下来的说明中,步骤S110中的8*8(同构)变换矩阵标示为Tpoly comp;相似地,步骤S120(如:第二同构转换)中的8*8(同构)变换矩阵用Tcomp norm表示;步骤S140(如第三同构转换)中使用到的8*8(同构)变换矩阵为Tnorm comp;至于步骤S180(如第四同构转换)中使用到的8*8(同构)变换矩阵则用Tcomp poly加以表示;经由考虑变换矩阵的汉明权重(hamming weight),或者,通过其它与变换矩阵的电路复杂度相关的评定准则,可依据不同的设计需求选择出适当的不可约多项式,也就是说,本发明的电路架构并不限定为特定的不可约多项式,故依据本发明的揭露可选用不同的不可约多项式来实现代换盒与反代换盒的电路架构,而前述这些设计变化皆属于本发明的范畴之中。
由于要能直接求出步骤S120(第二同构转换)中使用到的变换矩阵Tcomp norm与步骤S140(第三同构转换)中使用到的变换矩阵Tnorm comp具有相当的困难度,因此在本发明的一实施例中,用多次的转换来实现变换矩阵Tcomp norm与变换矩阵Tnorm comp,如下所示:
以及
参考算式(6)可知,将输入数据由合成域转换至正交基底(Tcomp poly),可以通过先将输入数据由合成域(如:有限域GF(2L)M)映射到有限域域(如:有限域GF(2K)上的多项式基底(以Tcomp poly标示此过程),再接着由多项式基底上映射至正交基底(以Tpoly norm标示此过程)。由于变换矩阵Tnorm comp的映像过程可参考算式(7)与前述揭露内容轻易推得,故在此便省略而不赘述。
由于在电路的实现中,运算中所选用的不可约多项式以及运算中所使用的变换矩阵将决定代换盒与反代换盒的电路面积,在本发明的一实施例中,在有限域GF(28)中使用了正交基底 而在考虑变换矩阵的汉明权重后,可将变换矩阵Tpoly norm(算式(6))与变换矩阵Tnorm poly(算式(7))的一实施例分别表示如下:
如前所揭露,在步骤S140中,在正交基底上的幂次运算(A16)为一种对其中元素做循环旋转(cyclically shifting)的线性运算。在本发明的一些实施例中,由于步骤S110、S120、S130、S140以及S180的同构转换以及幂次运算皆为线性运算,因此,可通过将步骤S120、S130以及步骤S140的线性运算合并成一个新的变换矩阵来实现,以提升运算的效能,其中幂次运算的对应矩阵可表示为S,如下所示:
换言之,在本发明的又一实施例中,于设计运算电路时,可将步骤中的部分线性转换加以合并来提供一个相对应的变换矩阵。举例来说,步骤S120~S140的运算可实现如下:
请参阅图2,图2所示为本发明的先进加密标准运算中计算输入字节A在有限域GF(28)中基于多项式基底的乘法反元素的另一实施例的流程示意图。如图2所示,由于步骤S120~S140的运算皆为线性运算,因此,在本实施例中,是将图1中的步骤S120~S140的运算合并成一变换矩阵来将以考虑,也就是说,在本实施例中,乘法反元素的运算与电路架构可依据算式(9)来选择恰当的不可约多项式以进行运算。
请同时参照图2以及算式(9),在本实施例中,经由计算相关参数的汉明权重,同时将步骤S120~S140的运算合并为一变换矩阵(TST)并同时考虑执行乘法反运算中的其它步骤,可将对应于此实施例且符合上述条件的不可约多项式m(x)=x2+λx+ρ的系数λ设为λ=γ7,且ρ=γ8,其中γ为有限域GF(24)的元素,且γ为本原元素(primitive element)。若在有限域GF(24)的正交基底上,则可将两系数分别用矩阵表示如下:λ=[0 1 1 1],且ρ=[1 1 0 0]。
同样地,此时乘法反元素的运算中相对应的变换矩阵可分别表示如下:
请同时参照图1来看图2,在前述揭露中,步骤S150中计算A17是在合成域中计算A=ax+b以及A16=cx+d的乘积。经由数学推导可得系数c=a,因此,算式(4)将可进一步化简如下:
A17=bd+a2ρ (10)
也就是说,如图2所示,推得算式(10)之后,步骤S150的运算在本实施例中将化简为在基本域GF(24)的乘法运算、加法运算以及平方运算(因为A17=bd+acρ=bd+a2ρ=bd+c2ρ)。由于在本发明的实施例中是在于一选定的正交基底上进行运算,因此所需耗费的电路面积亦随之减少。由于前述提及的多项式数学推导,以及在不同有限域中正交基底的样态为本领域技术人员所熟知,在此并不加以赘述。由前可知,亦可随着设计需求的变化依据不同的正交基底上的运算而使用不同的不可约多项式来设计代换盒以及反代换盒,而这些相关的设计变化亦属于本发明的保护范畴之中。
代换盒的运算顺序为进行乘法反元素的计算,再对乘法反元素执行仿射转换;另一方面,反代换盒的运算顺序则为先执行反仿射转换(inverseaffine transform),再对反仿射转换的结果计算其乘法反元素;在本发明的又另一实施例中,除了将步骤S120~S140中的运算合并成一变换矩阵来实现,更考虑代换盒(亦即加密流程)中仿射转换的线性部分,来设计步骤S110中的变换矩阵,以求取适当的不可约多项式的系数。通过前述的考虑可进一步减少代换盒的整体电路面积,而考虑不可约多项式的系数可由以下数学式表示:
算式(11)是说明依据乘法反运算中的多个变换矩阵以及仿射转换中的线性部分(表示为F)来选取适当的不可约多项式的系数λ和ρ。简言之,当运算电路用以执行代换盒运算时,其先执行乘法反元素运算,再执行一仿射运算;若运算电路用以执行一反代换盒运算时,运算电路将先执行反仿射运算后,再执行乘法反元素运算。当然,亦可设计可供执行代换盒运算以及反代换盒运算的运算电路。这些运算的详细揭露将说明如下。
请同时参照图2以及算式(11)来看图3,图3为本发明运算电路的第一实施例的示意图。于本实施例中,运算电路300用来执行符合先进加密标准的一代换盒运算,且运算电路300包含一乘法反运算单元310与一仿射转换单元320。若将仿射运算表示为:y=Fx+b,且将反仿射运算表示为:x=F-1(y+b)=F-1y+F-1b=F-1y+a),则在执行步骤S180之后,输入至仿射转换单元320的数值即为完成前述仿射运算的线性部分Fx,运算单元320则将仿射运算的非线性部分b加入以完成仿射转换y=Fx+b。乘法反运算单元310(在这里包含有乘法反元素运算及仿射运算的线性部分F)至少执行多次同构转换以求得一输入数据(例如前述的输入字节A)于一特定有限域(例如GF(28)中的一乘法反元素(例如A-1)),其中该多次同构转换包含有基底转换,此外,运算单元320完成对乘法反元素A-1执行一仿射转换的运算;仿射转换为一具有线性部分(linear part)的非线性运算,换言之,在本发明的一些实施例中,更通过考虑了仿射转换中的线性部分(F),将其与第四同构转换Tcomp poly一并考虑以提供对应的变换矩阵FTpoly comp。由于本实施例中乘法反运算单元310与运算单元320的运作可由前述说明中明了,在此便不重复赘述。也就是说,当同时考虑乘法反运算中的各个变换矩阵(如:合并第一同构转换、幂次运算以及第二同构转换)以及将仿射转换中的线性部分合并至步骤S180的运算中(如图3中虚线框所示)来计算其所对应的汉明权重(算式(11)),可求取符合此需求时最佳的不可约多项式的系数:如若将系数λ和ρ设为λ=γ7,且ρ=γ8,γ为有限域GF(24)的元素,且γ为本原元素,便可得到仅需提供加密功能时,最小的电路面积。
同样地,若电路架构只需提供解密的运算能力时,则可考虑反代换盒运算中的反仿射转换以及乘法反运算来求出适当的不可约多项式的系数,以进一步降低所需的电路成本。算式(12)即为同时考虑反仿射转换的线性部分以及乘法反运算中的各个变换矩阵来选取所需的不可约多项式,可以下列数学式表示:
其中F-1表示在解密运算中反代换盒进行反仿射转换的线性部分,由于参照前述说明以及算式(11)可推知算式(12)的详细内容,在此便不重复赘述。
请同时参照图4以及算式(12),图4为本发明运算电路的第二实施例的示意图。于本实施例中,运算电路400用来执行符合先进加密标准的一反代换盒运算,且运算电路400包含一反仿射转换单元410与一乘法反运算单元420。如前所述,反仿射运算可表示为:x=F-1(y+b)=F-1y+F-1b=F-1y+a)。在图4中,反仿射转换单元410为反仿射运算的非线性部分(a),而乘法反运算单元420在步骤S110中执行了反仿射运算的线性部分F-1的运算)。反仿射转换单元410执行一反仿射转换来产生一输入数据至乘法反运算单元420,而乘法反运算单元420执行了反仿射运算中线性部分的运算及乘法反元素运算,通过至少执行多次同构转换以求得该输入数据(例如前述的输入字节A)于一特定有限域(例如GF(28))中的一乘法反元素(例如A-1),其中该多次同构转换包含有基底转换。当只需建立解密中的反代换盒的电路架构时,可依据反仿射转换中线性部分与乘法反运算中所使用到的变换矩阵一并考虑,来选择需要使用最少电路面积的不可约多项式。举例来说,倘若将解密运算中反仿射转换的线性部分F-1与变换矩阵Tpoly comp合并(Tpoly compF-1)(如图4的虚线框所示),更同时考虑乘法反运算中其它变换矩阵,此时将不可约多项式的系数设为λ=γ5且ρ=γ8,如此一来,便可用最少的电路面积来只需提供解密功能时,反代换盒的运算电路。
请参阅图5,图5为本发明运算电路的第三实施例的示意图。本实施例中,运算电路500用来执行符合先进加密标准的一代换盒运算与一反代换盒运算,且运算电路500包含有一仿射转换单元510、一乘法反运算单元520、一反仿射转换单元530以及多个选择器540、550。如图所示,为了更进一步降低电路的面积及其成本,运算电路500采用一共享电路元件的架构,换言之,当需同时提供代换盒以及反代换盒运算时,可设法共享代换盒(加密运算)以及反代换盒(解密运算)中的乘法反运算电路(亦即乘法反运算单元520),通过选择器540、550的运作,只需使用一个乘法反运算电路即可完成加密流程以及解密流程,因此增进了电路的使用效率。举例来说,当运算电路500执行反代换盒运算时,选择器540选择输入数据S_IN经由反仿射转换单元530处理后的运算结果来作为乘法反运算单元520的输入,以及选择器550选择乘法反运算单元520的输出来作为输出数据S_OUT,亦即,输入数据S_IN依序经由反仿射转换单元530与乘法反运算单元520的处理便成为反代换盒运算的输出数据S_OUT;另一方面,当运算电路500执行代换盒运算时,选择器540选择输入数据S_IN来作为乘法反运算单元520的输入,以及选择器550选择乘法反运算单元520的输出经由仿射转换单元510处理之后的运算结果来作为输出数据S_OUT,亦即,输入数据S_IN依序经由乘法反运算单元520与仿射转换单元510的处理便成为代换盒运算的输出数据S_OUT。
若电路架构需一并提供加密与解密的运算能力时,则可考虑代换盒运算中的仿射转换、反代换盒运算中的反仿射转换以及乘法反运算来求出适当的不可约多项式的系数,以进一步降低所需的电路成本。算式(13)即为同时考虑仿射转换的线性部分、反仿射转换的线性部分以及乘法反运算中的各个变换矩阵来选取所需的不可约多项式,表示如下:
在算式(13)中,同样地使用汉明权重来考虑各个因素,亦即一并考虑乘法反运算中的多个变换矩阵、加密运算中仿射转换的线性部分(标示为F)以及解密运算中反仿射转换的线性部分(标示为F-1)来选取具有较低电路复杂度的不可约多项式。由于参照前述说明可清楚明了算式(13)的意义,在此便不加以赘述。
请同时参照图5以及算式(13)来看图6。图6为本发明运算电路的第四实施例的示意图。本实施例中,运算电路600用来执行符合先进加密标准的一代换盒运算与一反代换盒运算,且运算电路600包含有一仿射转换单元610、一乘法反运算单元602、一反仿射转换单元630以及多个选择器640、650。在同时考虑加密运算中的代换盒架构以及解密运算中的反代换盒架构时,亦即将解密运算中反仿射转换的线性部分F-1与第一同构转换Tpoly comp合并考虑设计相对应的变换矩阵,以及将第四同构转换Tcomp poly与仿射转换的线性部分F合并考虑来设计相对应的变换矩阵(如图6的虚线框所示),若依据算式(13)的汉明权重来计算,则可将不可约多项式的系数设为λ=γ10且ρ=γ8,如此一来,便可用最少的电路面积来实现可供加密以及解密共享的电路架构。
由于本发明计算有限域GF(28)中基于多项式基底的乘法反元素,在经过基底转换以及合成域的运算之后,以往庞杂的运算,只需在基本域为GF(24)的正交基底上求取一次乘法反元素,在双重的化简下,可随着选用的正交基底求取相对应的乘法反元素的表示法。比方说,可选用一正交基底 来加以表示,此时每个元素所对应的乘法反元素可表列于一个小型的对照表(look-up table),并经由简易的查表方式来得到所需的乘法反元素。由于此对照表的内容在阅读完前述的揭露后可轻易得知,故于此不另赘述,此外,于实作上,可随不同的正交基底来制作相对应的对照表,而这些设计变化亦隶属于本发明的范畴之中。然而上述使用对照表以求取相对应的乘法反元素仅为说明之用而不为本发明的限制条件之一,在其它的实施变化中,亦可重复前述的流程以更加简化有限域GF(24)的乘法反元素。另外,请注意到前述的数学式(11)、(12)、(13)皆为举例说明之用而不为本发明的限制条件之一,亦可使用不同的数学式来考虑本发明运算中所使用的同构转换矩阵对应的不可约多项式。前述设计变化亦遵照本发明的发明精神而落于本发明的范畴之中。
请参照图7,图7为图1至图6中依据汉明权重计算的不可约多项式的较佳实施例。由图7中可知于不同的汉明权重中可选取的不同的不可约多项式的系数。然而请注意到,使用汉明权重来考虑本发明中各个变换矩阵及(或)仿射转换以及反仿射转换的线性部分以选取不可约多项式的系数并不为本发明的限制条件之一,亦可采用其它的评定准则来考虑前述的乘法反运算的架构以及(或)仿射转换以及反仿射转换来选取适当的不可约多项式的系数,而这些相关设计变化亦隶属于本发明的范畴。
上述实施例提供一种处理有限域运算的方法,包含有:提供一运算电路,其包含有至少一乘法反运算单元;以及使用该乘法反运算单元来至少执行多次同构转换以求得一输入数据于一特定有限域中的一乘法反元素,其中该多次同构转换包含有基底转换;再者,上述实施例亦提供一种用来处理有限域运算的运算电路。简而言之,本发明实施例所揭露的处理有限域运算的方法与运算电路是通过基底转换来降低运算复杂度,因而得以降低电路面积与提升加密/解密处理的数据吞吐量。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (20)
1.一种处理先进加密标准运算中有限域运算的方法,包含有:
提供一运算电路,其至少包含有一乘法反运算单元;以及
使用该乘法反运算单元来至少执行多次同构转换以求得一输入数据于一特定有限域中的一乘法反元素,其中该多次同构转换包含有基底转换。
2.根据权利要求1所述的方法,其中该基底转换包含有于一多项式基底与一正交基底之间进行转换。
3.根据权利要求1所述的方法,其中该多次同构转换包含有一第一同构转换、一第二同构转换、一第三同构转换以及一第四同构转换;该第一同构转换是由该特定有限域GF(2K)的一多项式基底转换至一合成域GF(2L)M的一多项式基底,K=L*M;该第二同构转换是由该合成域GF(2L)M的该多项式基底转换至该特定有限域GF(2K)的一正交基底;该第三同构转换是由该特定有限域GF(2K)的一正交基底转换为一合成域GF(2L)M的一多项式基底;以及该第四同构转换是由该合成域GF(2L)M的该多项式基底转换为该特定有限域GF(2K)的一多项式基底。
4.根据权利要求3所述的方法,其中该合成域GF(2L)M是由一有限域GF(2L)与一M次方的不可约多项式所构成,以及提供该运算电路的步骤包含有:
选取该不可约多项式的系数来设计该乘法反运算单元。
5.根据权利要求4所述的方法,其中选取该不可约多项式的系数的步骤包含有:依据至少该多次同构转换的运算来选取。
6.根据权利要求5所述的方法,其中求得该输入数据于该特定有限域中的该乘法反元素的步骤还包含有:于一有限域GF(2L)M的该正交基底上执行一幂次运算来计算该乘法反元素;以及选取该不可约多项式的系数的步骤包含有:依据至少该多次同构转换的运算以及该幂次运算来选取。
7.根据权利要求6所述的方法,其中该多次同构转换的运算以及该幂次运算为多个线性运算,以及设计该乘法反运算单元的步骤包含有:
合并该多个线性运算中至少二线性运算来提供一相对应的变换矩阵。
8.根据权利要求7所述的方法,其中该特定有限域GF(2K)为一有限域GF(28),以及该合成域GF(2L)M为一合成域GF(24)2。
10.根据权利要求8所述的方法,其中该运算电路用来执行符合一先进加密标准的一代换盒运算,该运算电路还包含一仿射转换单元;该方法还包含有:使用该仿射转换单元来对该乘法反运算单元的输出执行一仿射转换;以及设计该乘法反运算单元的步骤包含有合并该第二同构转换、该幂次运算与该第三同构转换来提供相对应的一第一变换矩阵以及合并该第四同构转换与该仿射转换中的线性部分来提供相对应的一第二变换矩阵。
12.根据权利要求8所述的方法,其中该运算电路用来执行符合一先进加密标准的一反代换盒运算;该运算电路还包含一反仿射转换单元,该方法还包含有:使用该反仿射转换单元来执行一反仿射转换来产生该输入数据至该乘法反运算单元;以及设计该乘法反运算单元的步骤包含有合并该反仿射转换的线性部分与该第一同构转换来提供相对应的一第一变换矩阵,以及合并该第二同构转换、该幂次运算与该第三同构转换来提供相对应的一第二变换矩阵。
14.根据权利要求8所述的方法,其中该运算电路用来共享该乘法反运算单元来执行符合一先进加密标准的一代换盒运算以及一反代换盒运算;该运算电路还包含一仿射转换单元以及一反仿射转换单元;该方法还包含有:当该运算电路执行该代换盒运算时,使用该仿射转换单元来对该乘法反运算单元的输出执行一仿射转换,以及当该运算电路执行该反代换盒运算时,使用该反仿射转换单元来执行一反仿射转换来产生该输入数据至该乘法反运算单元;以及设计该乘法反运算单元的步骤包含有合并该反仿射转换的线性部分与该第一同构转换来提供相对应的一第一变换矩阵、合并该第二同构转换、该幂次运算与该第三同构转换来提供相对应的一第二变换矩阵以及合并该第四同构转换与该仿射转换中的线性部分来提供相对应的一第三变换矩阵。
16.根据权利要求3所述的方法,其中该第二同构转换包含有:
由该合成域GF(2L)M的该多项式基底转换至该特定有限域GF(2K)的该多项式基底:以及
将该特定有限域GF(2K)的该多项式基底转换至该特定有限域GF(2K)的该正交基底。
17.根据权利要求3所述的方法,其中该第三同构转换包含有:
将该特定有限域GF(2K)的该正交基底转换至该特定有限域GF(2K)的该多项式基底;以及
该特定有限域GF(2K)的该多项式基底转换至该合成域GF(2L)M的该多项式基底。
18.根据权利要求1所述的方法,其中求得该输入数据于该特定有限域中的该乘法反元素的步骤包含有:
执行一第一同构转换以将该输入数据由该特定有限域GF(2K)的一多项式基底转换至一合成域GF(2L)M的一多项式基底,其中K=L*M;
执行一第二同构转换以由该合成域GF(2L)M的该多项式基底转换至该特定有限域GF(2K)的一正交基底;
于该特定有限域GF(2K)的该正交基底上执行一幂次运算以得到该输入数据的一预定幂次;
执行一第三同构转换以将该输入数据的该预定幂次由该特定有限域GF(2K)的该正交基底转换至该合成域GF(2L)M的该多项式基底;
计算该第一同构转换所产生的该输入数据与该第三同构转换所产生的该输入数据的该预定幂次的一乘积;
求出该乘积于一基本域GF(2L)上的一乘法反元素;
计算该第三同构转换所产生的该输入数据以及该乘积的该乘法反元素的乘积以求得该输入数据于该基本域GF(2L)上的一乘法反元素;以及
执行一第四同构运算以将该基本域GF(2L)上的该乘法反元素由该合成域GF(2L)M的该多项式基底转换至该特定有限域GF(2K)的该多项式基底。
19.一种处理先进加密标准运算中有限域运算的运算电路,包含有一乘法反运算单元,用以求得一输入数据于一特定有限域中的一乘法反元素,其中该乘法反运算单元至少执行多次同构转换,且该多次同构转换包含有基底转换。
20.根据权利要求19所述的运算电路,其中该乘法反运算单元所执行的该基底转换包含有于一多项式基底与一正交基底之间进行转换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910174051 CN102043606B (zh) | 2009-10-20 | 2009-10-20 | 处理有限域运算的方法与运算电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910174051 CN102043606B (zh) | 2009-10-20 | 2009-10-20 | 处理有限域运算的方法与运算电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102043606A CN102043606A (zh) | 2011-05-04 |
CN102043606B true CN102043606B (zh) | 2013-07-03 |
Family
ID=43909767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910174051 Active CN102043606B (zh) | 2009-10-20 | 2009-10-20 | 处理有限域运算的方法与运算电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102043606B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3024808B1 (fr) * | 2014-08-05 | 2016-07-29 | Inside Secure | Procede de cryptographie sur courbe elliptique comprenant une detection d’erreur |
CN107728993B (zh) * | 2017-11-03 | 2021-07-13 | 深圳职业技术学院 | 一种基于全一不可约多项式的有限域乘法器 |
CN111384971B (zh) * | 2018-12-29 | 2023-09-01 | 泰斗微电子科技有限公司 | 有限域中的数据处理方法、装置和解码器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1251715A (zh) * | 1997-02-14 | 2000-04-26 | 国有花旗银行 | 有限域离散对数密码系统的割圆多项式结构 |
CN1955919A (zh) * | 2005-10-24 | 2007-05-02 | 宁波安泰集成电路设计有限公司 | 一种有限域算术运算器的实现方法和装置 |
-
2009
- 2009-10-20 CN CN 200910174051 patent/CN102043606B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1251715A (zh) * | 1997-02-14 | 2000-04-26 | 国有花旗银行 | 有限域离散对数密码系统的割圆多项式结构 |
CN1955919A (zh) * | 2005-10-24 | 2007-05-02 | 宁波安泰集成电路设计有限公司 | 一种有限域算术运算器的实现方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102043606A (zh) | 2011-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI416347B (zh) | 處理有限域運算之方法與運算電路 | |
EP1673690B1 (en) | Data converter | |
US7158638B2 (en) | Encryption circuit | |
US7508937B2 (en) | Programmable data encryption engine for advanced encryption standard algorithm | |
US20060093136A1 (en) | Implementation of a switch-box using a subfield method | |
US8401180B2 (en) | Non-linear data converter, encoder and decoder | |
US8345864B1 (en) | Elliptic curve cryptography scalar multiplication with on demand acceleration table generation | |
JP2001324924A (ja) | 暗号化装置及び暗号化方法、復号装置及び復号方法並びに演算装置 | |
KR100800468B1 (ko) | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 | |
CN102006161B (zh) | 一种对称密钥加密的非线性变换方法及其实现装置 | |
Fiskiran | Workload characterization of elliptic curve cryptography and other network security algorithms for constrained environments | |
CN100428140C (zh) | 椭圆曲线密码体制协处理器的实现方法 | |
US20100074440A1 (en) | High-speed pipelined aria encryption apparatus | |
Rajasekar et al. | Design and implementation of power and area optimized AES architecture on FPGA for IoT application | |
US20020126838A1 (en) | Modular exponentiation calculation apparatus and modular exponentiation calculation method | |
GB2574261A (en) | Efficient unified hardware implementation of multiple ciphers | |
CN102043606B (zh) | 处理有限域运算的方法与运算电路 | |
JPH0675525A (ja) | 暗号通信装置 | |
JP4098719B2 (ja) | Aesアルゴリズム用のプログラマブルデータ暗号化エンジン | |
CN112134691B (zh) | 一种部件可重复的nlcs分组密码实现方法、装置及介质 | |
CN109274482A (zh) | 一种基于s盒优化的aes算法硬件电路实现方法 | |
JP2005513541A6 (ja) | Aesアルゴリズム用のプログラマブルデータ暗号化エンジン | |
CN100561911C (zh) | 一种AES加解密电路中Sbox模块优化方法及优化电路 | |
Gueron et al. | Hardware implementation of AES using area-optimal polynomials for composite-field representation GF (2^ 4)^ 2 of GF (2^ 8) | |
Abdulwahed | Chaos-Based Advanced Encryption Standard |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |