首页> 中国专利> 半循序输入的伽罗瓦乘法器与其执行方法

半循序输入的伽罗瓦乘法器与其执行方法

摘要

一种半循序输入的伽罗瓦GF(2

著录项

  • 公开/公告号CN101739233A

    专利类型发明专利

  • 公开/公告日2010-06-16

    原文格式PDF

  • 申请/专利权人 财团法人工业技术研究院;

    申请/专利号CN200810176062.2

  • 发明设计人 颜志旭;

    申请日2008-11-11

  • 分类号G06F7/72;

  • 代理机构中科专利商标代理有限责任公司;

  • 代理人汤保平

  • 地址 中国台湾新竹县

  • 入库时间 2023-12-18 00:27:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-08-29

    授权

    授权

  • 2010-09-01

    实质审查的生效 IPC(主分类):G06F7/72 申请日:20081111

    实质审查的生效

  • 2010-06-16

    公开

    公开

说明书

技术领域

本发明是关于一种半循序(Semi-Sequential)输入的伽罗瓦乘法器(Galois Field Multiplier)与其执行方法。

背景技术

伽罗瓦计数模式-先进加密标准(Galois Counter Mode-AdvancedEncryption Standard,GCM-AES)技术已经用于网际网络通讯协议安全性(IPsec)环境中。在乙太网络(Ethernet)第二层安全标准MACsec中也采用GCM-AES算法作为预设的加解密运算。而GCM-AES算法中使用了伽罗瓦场(Galois Field)GF(2128)的乘法运算来实现赫序函数(Hash Function),这使得在硬件实现上大幅提高GCM-AES的硬件成本。单一个GF(2128)乘法器的硬件大小就等同于一个128位的AES核心引擎。当把拥有GCM-AES的MACsec控制器整合到以太网络MAC控制器时,GCM-AES所影响的成本比例会更高。

GF(2n)是一个有限场(Finite Field),由一个n阶的原始(Primitive)多项式所定义的空间,共有2n个元素,每个元素有n个位,而这n个位就是该元素多项式的系数:

b0+b1x+…+bn-1xn-1

其中bi是GF(2)中的元素,也就是0或1。假设构成GF(2n)空间的原始多项式为g(x),则GF(2n)的元素乘法可视为两个步骤:首先,两个元素先进行一般多项式乘法;然后再将得到的多项式除以g(x)取其余数。而GF(2n)的元素加法运算,在逻辑上就等同于n位的XOR运算。

当n是一个很大的正整数时,例如128,则GF(2n)的乘法需要付出很高的运算代价。所以,通常会使用复合场(Composite Field)来降低运算复杂度。复合场的数学符号表示法是GF((2m)k),其中km=n,m、k皆为正整数。若以元素的位数来解释,则是将原本在GF(2n)的一个n位元素,转换成k个在GF(2m)中的m位元素,因为km=n,所以整体来看还是一个n位值。而在复合场中,GF(2m)就是一个基底场(Ground Field)。要将一个元素从GF(2n)场映像到GF((2m)k)场,需要有三个必备的多项式,分别是建构GF(2n)场所需的g(x),还需要一个m阶的原始多项式p(x)和一个k阶的原始多项式r(x),其中p(x)多项式的系数属于GF(2),而r(x)的系数属于GF(2m)。

然后,再利用Christof Paar所提出的理论,就可以找到一个n×n的矩阵M,将元素从GF(2n)空间映像到GF((2m)k)空间,而其反矩阵M-1则会再将元素从GF((2m)k)映像回GF(2n)。在多项式的表达上,A元素在GF(2n)空间为:

A(x)=a0+a1x+…+an-1xn-1ai∈GF(2),

而映像到GF((2m)2)复合场后,A可以表示成:

A(x)=a0+a1xai∈GF(2m)。

而复合场乘法运算也是一样的原理,先进行一般的多项式乘法,再取余数。

提出伽罗瓦乘法器的相关技术有很多。例如,美国专利4,251,875揭露一种泛用的伽罗瓦乘法器架构。采用单一GF(2m)乘法器架构,循序地输入两个操作数,完成GF(2n)的乘法运算,其中m是n的倍数。美国专利7,113,968揭露的伽罗瓦乘法器架构是以两个多项式模式运算(Modulo)另一个多项式来设计。

而美国专利7,133,889揭露的伽罗瓦乘法器架构,如图1所示,是采用单一基底场GF(2m)乘法器架构,以及使用Karatsuba-Ofman运算法来进行乘法运算。美国专利6,957,243揭露的伽罗瓦乘法器架构利用拆解多项式的方法,将其中一个操作数A(x)循序地输入,即序列A0(x),A1(x),…,AT-1(x)循序地输入;而另一个操作数b(x)平行地输入,来进行乘法运算,如图2所示。

近年来,伽罗瓦场GF(2n)在错误控制编码和密码学中等领域被大量的使用,错误编码部分有大众熟知的Reed-Solomon码、循环码(Cyclic Code)等。而密码学部份则有椭圆曲线密码系统、AES和GCM等。因此,有需要设计出降低GCM-AES、维持Gigabit级的处理能力、以及适用于网络传输环境的伽罗瓦乘法器的硬件实现架构。

发明内容

根据本发明所揭露的实施范例中,可提供一种半循序输入的伽罗瓦乘法器与执行方法。

在一实施范例中,所揭露的是有关于一种半循序输入的伽罗瓦乘法器,用来执行伽罗瓦场GF(2n)的两操作数(Operand)的乘法,n为正偶数。此伽罗瓦GF(2n)乘法器可包含两个单一基底场的GF(2m)乘法器、至少一个常数乘法器、以及多个单一GF(2m)加法器,n=2m,n、m皆为正整数。GF(2n)乘法的两操作数其中一个操作数的复合场的高阶(High-order)与低阶(Low-order)元素分别平行输入至此两个单一基底场GF(2m)乘法器,而另一操作数的复合场的高阶与低阶元素循序输入至此两个单一基底场GF(2m)乘法器,并产生出多个GF(2m)的部分乘法结果(Partial Product);以及此多个GF(2m)的部分乘法结果再经由此至少一个常数乘法器与此多个GF(2m)加法器,产生出GF((2m)2)的乘法结果中的一高阶元素与一低阶元素,此乘法结果中的高阶元素与低阶元素并通过映像回到GF(2n),而完成此GF(2n)的乘法。

在另一实施范例中,所揭露的是有关于一种伽罗瓦GF(2n)乘法的半循序输入资料方法。此方法包含:将GF(2n)乘法的两操作数从GF(2n)映像至GF((2m)2),得到复合场的元素;以及其中一个操作数的复合场的高阶与低阶元素分别平行输入至两个基底场GF(2m)乘法器,而另一个操作数的复合场的元素循序输入至此两个基底场GF(2m)乘法器。

在另一实施范例中,所揭露的是有关于一种半循序输入的伽罗瓦乘法的执行方法。此方法包含:将GF(2n)乘法的两操作数从GF(2n)映像到GF((2m)2),得到复合场的元素,其中一个操作数的复合场的高阶与低阶元素分别平行输入至两个基底场的GF(2m)乘法器,而另一个操作数的复合场的高阶与低阶元素循序输入至此两个基底场的GF(2m)乘法器;将GF(2n)乘法分成多个GF(2m)的部分乘法运算;以及以此两个基底场GF(2m)乘法器、至少一个常数乘法(Constant Multiplication)、以及多个GF(2m)加法来执行此多个GF(2m)的部分乘法运算,并产生出乘法结果中的一个高阶元素与一个低阶元素。

附图说明

兹配合下列图标、实施范例的详细说明及申请专利范围,将上述及本发明的其它特征与优点详述于后,其中:

图1是一种伽罗瓦乘法器的一个范例示意图。

图2是另一种伽罗瓦乘法器的一个范例示意图。

图3是半循序输入的伽罗瓦乘法器架构的一个范例示意图,并且与所揭露的某些实施范例一致。

图4是半循序输入的伽罗瓦乘法执行的一个范例流程图,并且与本发明的某些揭露的实施范例一致。

图5是以麦斯特维多(Mastrivito)乘法器的硬件实现的一个范例来说明如何完成一个m位的伽罗瓦场乘法运算,并且与本发明的某些揭露的实施范例一致。

图6说明伽罗瓦乘法的其中一个操作数为较低频变量的情况,并且与本发明的某些揭露的实施范例一致。

图7是图3中的基底场GF(2m)乘法器以麦斯特维多(Mastrivito)乘法器来实现的一个范例架构示意图,并且与本发明的某些揭露的实施范例一致。

图8是整合图7的复合场空间的运算与乘积矩阵为单一的矩阵转换运算后的伽罗瓦乘法器的一个范例架构示意图,并且与本发明的某些揭露的实施范例一致。

具体实施方式

本发明针对参与GF(2n)乘法运算的其中一个元素为低频变量情况,将低频变量以平行的方式输入,高频变量以循序的方式输入,并利用GF((2m)2)的复合场形式来实现一个GF(2n)乘法器,其中GF(2n)的原始多项式为g(x),GF(2m)的原始多项式为p(x)。低频变量就像是在GCM模式中的GHASH运算,其参与GF乘法运算的H值,只会跟着秘密金钥K改变,且实际应用环境秘密金钥K的更新频率是很低的;其中,H是经由认证加密的表达式中以秘密金钥K对全数为0的区块加密而得到的值,也是GHASH运算的三个输入的其中一个输入,n为正偶数。

本揭露的实施范例中,以采用r(x)=r0+x+x2这个多项式为例来形成GF((2m)2)空间,其中r0为GF(2m)中的元素,且使r(x)在GF(2m)场里满足原有特性(Primitivity)。假设A和B为GF(2n)的元素,在映像到GF((2m)2)场之后,其多项式表示法,分别为a0+a1x和b0+b1x,其中{a0,a1,b0,b1}∈GF(2m),而b1是x项次的系数,也就是GF((2m)2)中的高阶GF(2m)元素。而b0是低阶元素,a1和a0的高低阶关系也是如此。则其乘法可表示为:

A×B=(a0+a1x)(b0+b1x)modr(x)

=a0b0+(a1b0+a0b1)x+a1b1x2modr(x)

=(a0b0+a1b1r0)+(a1b0+a1b1+a0b1)x

上式a1b0+a1b1+a0b1其值就是乘法结果中的高阶元素,而a0b0+a1b1r0其值是低阶元素。

图3是半循序输入的伽罗瓦乘法器架构的一个范例示意图,并且与所揭露的某些实施范例一致。参考图3,此硬件实现的伽罗瓦乘法器架构执行GF(2n)里两个操作数,即A与B,的乘法运算以产生其乘积(Product)330。从图3可以看出,此伽罗瓦乘法器架构可用两个单一基底场的GF(2m)乘法器301-302、至少一个常数乘法器311、以及多个单一GF(2m)加法器,如321至323,来实现GF(2n)的乘法运算,其中n=2m。

GF(2n)乘法的两操作数其中一个操作数B的复合场GF((2m)2)的高阶与低阶元素分别平行输入至基底场的GF(2m)乘法器301-302,而另一个操作数A的复合场GF((2m)2)的高阶与低阶元素循序输入至基底场的GF(2m)乘法器301-302,以产生出多个GF(2m)的部分乘法结果,例如包括a0b0、a1b1、a1b0、和a0b1;以及此多个GF(2m)的部分乘法结果再经由常数乘法器311与多个GF(2m)加法器,如321至323,产生出GF((2m)2)的乘法结果中的一个高阶元素与一个低阶元素;此乘法结果中的高阶元素与低阶元素并通过映像回到GF(2n)场,而完成此GF(2n)的乘法。

此伽罗瓦乘法器架构还可包括一个输入操作数映像器(Input OperandMapper),将GF(2n)的每一操作数先映像到GF((2m)2)复合场中,而得到两个相对应的GF(2m)的元素,即该操作数的复合场的高阶与低阶两元素。

以下详细说明此伽罗瓦乘法器中的各组件如何搭配执行,以完成此GF(2n)的乘法运算。

参考图3,整个GF(2n)的乘法执行的流程说明如下。要进行GF(2n)乘法的两个输入操作数(Input Operand),即A与B,会先经过一个映像至复合场的运算333a,将操作数A与操作数B从GF(2n)映像到复合场GF((2m)2),得到复合场的元素。其中,操作数B转换后的高阶元素与低阶元素分别记为InputB_CF_H(即b1)与InputB_CF_L(即b0);而操作数A转换后,将高阶元素和低阶元素循序输入的序列记为InputA_CF序列。操作数B转换后的高阶元素InputB_CF_H与低阶元素InputB_CF_L分别平行输入至基底场的GF(2m)乘法器301与302;而InputA_CF的两个复合场元素(即a1与a0)则是循序输入至基底场的GF(2m)乘法器301与302。

假设,缓存器341与342的内容的初始值皆为0,并且InputA_CF序列经由循序器333b循序输入的方式是先输入a1再输入a0,则运算的执行流程为首先输入a1并经由基底场的GF(2m)乘法器301与302,分别算出a1b1和a1b0。然后,基底场的GF(2m)乘法器301的输出a1b1经由常数乘法器311,乘上常数r0后,得到a1b1r0。利用控制信号control-2,将之存入缓存器341,换句话说,缓存器341此时刻暂存的内容为a1b1r0;而a1b0和a1b1在经过GF(2n)的元素加法运算XOR后,利用控制信号control-1,将之存入缓存器342,即缓存器342此时刻暂存的内容为a1b0+a1b1。接着输入a0并经由复合场的GF((2m)2)乘法器301与302,分别算出a0b0和a0b1

然后利用控制信号control-2,让a0b0和缓存器341的前一个暂存值a1b1r0经过GF(2n)的元素加法运算XOR之后得到a0b0+a1b1r0。而控制信号control-1选择a0b1和缓存器342的前一个值经过GF(2n)的元素加法运算XOR后,得到a1b0+a1b1+a0b1。最后,将缓存器342的内容与缓存器341的内容映像回到GF(2n)场,如标号350所示,即完成一个GF(2n)的乘法。

承上述,图4是半循序输入的伽罗瓦乘法执行的一个范例流程图,并且与本发明的某些揭露的实施范例一致。参考图4的范例流程,首先,将GF(2n)乘法的两操作数,即A与B,从GF(2n)映像到GF((2m)2),得到复合场的元素,如步骤410所示。其中一个操作数,例如B,的复合场的高阶与低阶元素分别平行输入至两个基底场的GF(2m)乘法器;而另一个操作数的复合场的元素循序输入至此两基底场的GF(2m)乘法器,如步骤420所示。

换句话说,本揭露的执行伽罗瓦GF(2n)乘法中,输入两操作数资料的方式是以半循序输入资料方法412来执行,即包括步骤410和步骤420。在步骤420中,循序输入的顺序并无限制先输入高阶元素后输入低阶元素,或是先输入低阶元素后输入高阶元素,两者都适用于本揭露的半循序输入方法。

两操作数资料输入后,将GF(2n)乘法分成多个GF(2m)的部分乘法运算,如步骤430所示。以两个基底场的GF(2m)乘法器、至少一个常数乘法、以及多个GF(2m)加法来执行此多个GF(2m)的部分乘法运算,并产生出乘法结果中的一高阶元素与一低阶元素,如步骤440所示。

最后,将此乘法结果中的高阶元素与此低阶元素映像回到GF(2n)场,以完成一个GF(2n)的乘法,如步骤450所示。

GF(2m)乘法器可以使用麦斯特维多(Mastrivito)乘法器的架构来实现,说明如后。假设两个GF(2m)的元素的m-元组元素(m-tuple)表示法分别为A[m-1:0]=[a0a1...am-1]、B[m-1:0]=[b0b1...bm-1],则麦斯特维多(Mastrovito)的乘法器运算C=A[m-1:0]×B[m-1:0]可表示为

其中ZB称作乘积矩阵(Product Matrix),而该矩阵的值为zi,j=fi,j(b0,b1,...,bm-1)。

fi,j=bij=0i=0,...,m-1u(i-j)bi-1+Σt=0j-1qj-1-t,ibn-1-tj=1,...,m-1i=0,...,m-1---(2),

u(μ)=1μ00μ<0.

图5是以麦斯特维多(Mastrivito)乘法器的硬件实现的一个范例来说明如何完成一个m位的伽罗瓦场乘法运算,并且与本发明的某些揭露的实施范例一致。图5的麦斯特维多(Mastrivito)乘法器的硬件实现的范例中,矩阵向量乘法器(Matrix-Vector Multiplier)501就是执行式子(1)的运算,而乘积矩阵511就是执行式子(2)的运算。m位的B操作数经过f函式转换后,得到一个m×m的乘积矩阵ZB,然后此矩阵的值再与一个向量矩阵乘法器相乘,也就是式子(1)的表达式,即完成一个m位的伽罗瓦场乘法运算。

换句话说,麦斯特维多(Mastrivito)乘法器架构中,有一个特征就是将GF(2m)乘法运算分成两个步骤来完成一个m位的伽罗瓦场乘法运算。第一个步骤是先将其中一个操作数B从m位向量转变为m×m的乘积矩阵;第二个步骤是再将该矩阵与另外一个操作数A进行矩阵向量的乘法,就可以得到最终的乘法结果。

在这样两阶段的架构中,当其中一个操作数为低频变量时,如图6所示,也就是每一个Bi操作数都会和多个Ai操作数相乘。由于此种情况,因此可以采取管线(Pipeline)的设计,将低频变量B先进行矩阵转换,得到一个m×m的乘积矩阵ZB,并储存起来。由于A的变换频率较B来的高,因此在B未改变之前的所有A×B运算,都只需要进行式子(1)的运算,而不需要执行式子(2)。

图7是图3中的两基底场的GF(2m)乘法器以两麦斯特维多(Mastrivito)乘法器来实现的一个范例架构示意图,并且与本发明的某些揭露的实施范例一致。所以,基底场的GF(2m)乘法器301以矩阵向量乘法器501与乘积矩阵511来实现,基底场的GF(2m)乘法器302以矩阵向量乘法器502与乘积矩阵512来实现。从图7可以发现,在操作数B的部份,进入矩阵向量乘法器之前会经过两个转换运算,一个是映像至复合场(MapTo Composite Field)的运算,另一个是麦斯特维多(Mastrivito)架构所需的乘积矩阵转换。映像至复合场的运算与乘积矩阵可以整合为单一的矩阵转换运算,如图8中矩阵转换运算821与822所示,分别用来转换操作数B的高阶元素与低阶元素。

上述本揭露的以硬件实现的伽罗瓦乘法器与其执行方法的实施范例能够用在采用如GCM-AES算法作为预设的加解密运算的类的加解密系统中。此伽罗瓦乘法器由于配合运算单元的重复利用,因此可以有效降低GCM-AES的硬件成本。

以下以利用GF((24)2)的复合场形式来实现一个GF(28)乘法器为例子,亦即n=8与m=4,来说明上述本揭露的半循序输入的伽罗瓦乘法器与执行方法的范例架构。

假设构成GF(28)的原始多项式g(x)为1+x2+x3+x4+x8,而建构GF(24)的原始多项式p(x)为1+x+x4以及用来产生GF((24)2)的原始多项式为x2+x+α14。利用Christof Paar的理论可得到GF(28)映像到GF((24)2)的矩阵为

0010000001100100000110101001000000100110100110100010001000001011

假设操作数B属于GF(28),其系数为[b0b1b2b3b4b5b6b7b8]T,则在转换过后得到下式,也就是图3、图7和图8中映像至复合场的运算功能。

0010000001100100000110101001000000100110100110100010001000001011b0b1b2b3b4b5b6b7=b2b1+b2+b5b3+b4+b6b0+b3b2+b5+b6b0+b3+b4+b6b2+b6b4+b6+b7=bl,0bl,1bl,2bl,3bh,0bh,1bh,2bh,3

而麦斯特维多(Mastrivito)乘法器的GF(24)乘积矩阵从式子(2)和1+x+x4,低阶元素和高阶元素的乘积矩阵如下式

bl,0bl,3bl,2bl,1bl,1bl,0+bl,3bl,2+bl,3bl,1+bl,2bl,2bl,1bl,0+bl,3bl,2+bl,3bl,3bl,2bl,1bl,0+bl,3

bh,0bh,3bh,2bh,1bh,1bh,0+bh,3bh,2+bh,3bh,1+bh,2bh,2bh,1bh,0+bh,3bh,2+bh,3bh,3bh,2bh,1bh,0+bh,3.

这就是在图5和图7中乘积矩阵的运算功能。

如前图8所示,通过映像至复合场运算的转换与乘积矩阵可以整合为由单一的矩阵转换运算功能,也就是将b′l,i和b′h,i分别带入到乘积矩阵的中。因此,以操作数B的低阶元素来说,可以整合如下

b2b0+b3b3+b4+b6b1+b2+b5b1+b2+b5b0+b2+b3b0+b4+b6b1+b2+b3+b5+b6b3+b4+b6b1+b2+b5b0+b2+b3b0+b4+b6b0+b3b3+b4+b6b1+b2+b5b0+b2+b3,

而操作数B的高阶元素则可以整合如下

b2+b5+b6b4+b6+b7b2+b6b0+b3+b4+b6b0+b3+b4+b6b2+b4+b5+b7b2+b4+b7b0+b2+b3+b4b2+b6b0+b3+b4+b6b2+b4+b5+b7b2+b4+b7b4+b6+b7b2+b6b0+b3+b4+b6b2+b4+b5+b7.

此两矩阵就是图8中整合后的矩阵转换运算,用来转换操作数B的矩阵。

综上所述,本揭露的实施范例是使用伽罗瓦复合场原理,针对伽罗瓦乘法其中一个操作数为较低频变量的情况,利用GF(2m)有限场乘法器实现GF(2n)有限场乘法运算,n=2m,并配合运算单元的重复利用,提出一个以硬件实现的半循序输入的伽罗瓦乘法器与其执行方法。本揭露的实施范例若应用在以GCM-AES算法作为预设的加解密运算的类的加解密系统中时,可以有效降低GCM-AES的硬件成本。

惟,以上所述的仅为本发明的实施范例,当不能依此限定本发明实施的范围。即凡是本发明申请专利范围所作的均等变化与修饰,皆应仍属本发明权利要求涵盖的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号