CN102236540A - 循序运算的伽罗瓦乘法架构与方法 - Google Patents

循序运算的伽罗瓦乘法架构与方法 Download PDF

Info

Publication number
CN102236540A
CN102236540A CN2010101673829A CN201010167382A CN102236540A CN 102236540 A CN102236540 A CN 102236540A CN 2010101673829 A CN2010101673829 A CN 2010101673829A CN 201010167382 A CN201010167382 A CN 201010167382A CN 102236540 A CN102236540 A CN 102236540A
Authority
CN
China
Prior art keywords
framework
multiplication
register
operand
group
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.)
Pending
Application number
CN2010101673829A
Other languages
English (en)
Inventor
颜志旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial Technology Research Institute ITRI
Original Assignee
Industrial Technology Research Institute ITRI
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial Technology Research Institute ITRI filed Critical Industrial Technology Research Institute ITRI
Priority to CN2010101673829A priority Critical patent/CN102236540A/zh
Publication of CN102236540A publication Critical patent/CN102236540A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

一种循序运算的伽罗瓦乘法架构与方法,基于Mastrovito乘法运算和复合场的两层式循序输入,第一层架构将A运算元的相关数据一次备齐,将B运算元的数据以m个n位的方式循序输入来处理,k=mn,m、n为正整数;而第二层架构循序接收输入的B运算元的数据,并直接以m个单一n位的乘法器来实现GF((2n)m)的乘法运算;其中,在第一层乘法架构处理之前,A与B两运算元先从GF(2k)场被映射到GF((2n)m)场,而第二层乘法架构的乘法运算结果则被映射回到GF(2k)场,以完成GF(2k)的乘法。

Description

循序运算的伽罗瓦乘法架构与方法
技术领域
本申请涉及一种循序(sequential)运算的伽罗瓦乘法架构(Galois FieldMultiplier)与方法,基于Mastrovito乘法运算和复合场(Composite Field)的两层式循序输入的伽罗瓦乘法架构与方法。
背景技术
伽罗瓦计数模式-先进加密标准(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控制器整合到以太(Ethernet)网络MAC控制器时,GCM-AES所影响的成本比例会更高。
GF(2k)是一个有限场(Finite Field),由一个k阶的原始多项式(primitivepolynomial)所定义的空间,共有2k个元素,每一元素有k个位,此k个位是该元素多项式b0+b1x+…+bk-1xk-1的系数,其中bi是GF(2)中的元素,也就是0或1。假设构成GF(2k)空间的原始多项式为g(x),则GF(2k)的元素乘法可视为两个步骤:首先,两个元素进行一般多项式乘法;然后将得到的多项式除以g(x)取其余数,即可获得乘积结果。而GF(2k)的元素加法运算,在逻辑上等同于k位的XOR运算。
伽罗瓦乘法器的相关技术有很多。例如,美国专利4,251,875公开一种泛用的伽罗瓦乘法器架构。采用单一GF(2m)乘法器架构,循序地输入两个运算元,完成GF(2n)的乘法运算,其中m是n的倍数。美国专利7,113,968公开的伽罗瓦乘法器是以多项式乘法和余式运算为设计原理。
而美国专利7,133,889公开的伽罗瓦乘法器架构,如图1所示,是采用单一基底场GF(2m)乘法器架构,以及使用Karatsuba-Ofman运算法来进行乘法运算。美国专利6,957,243公开的伽罗瓦乘法器架构利用拆解多项式的方法,将其中一个运算元A(x)循序地输入,即序列A0(x),A1(x),...,AT-1(x)循序地输入;而另一个运算元b(x)平行地输入,来进行乘法运算,如图2所示。
直接设计GF(2k)乘法器的方法为全平行化的运算,也就是两个k位进,一个k位出的方式。以Mastrovito的方式来实现乘法器为例,假设A、B∈GF(2k),A=[a0 a1...ak-1],B=[b0 b1...bk-1],则Mastrovito的乘法器运算C=AB可表示为一个矩阵向量乘法器,其中一个运算元(operand)维持原貌,也就是式子(1)中的B向量,另一个运算原则会经过一个转换获得另外一个矩阵也就是ZA
其中ZA矩阵的所有系数为A系数的线性组合,也就是zi,j=fi,j(a0,a1,...,ak-1)。
f i , j = a i j = 0 i = 0 , . . . , k - 1 u ( i - j ) a i - j + Σ t = 0 j - 1 q j - 1 - t , i a k - 1 - t j = 1 , . . . , k - 1 i = 0 , . . . , k - 1 - - - ( 2 )
Figure GSA00000096412300023
取余数后的系数,如下所示
Figure GSA00000096412300024
其中,g(x)是GF(2k)的产生元多项式(generator polynomial)。
因此,要利用Mastrovito的架构来实现GF(2k)乘法,需要利用式子(2)和式子(3)预先求得矩阵ZA。图3是平行化的Mastrovito乘法器的硬件架构的一个范例示意图。从图3中的范例可以看到ZA矩阵的电路和一个矩阵向量乘法器,ZA矩阵是一堆类似式子(4)的线性组合,而矩阵向量乘法器就是AND和XOR的组合。以g(x)=1+x+x4为例,经过(2)和(3)后可得到ZA矩阵为
Z A = a 0 a 3 a 2 a 1 a 1 a 0 + a 3 a 2 + a 3 a 1 + a 2 a 2 a 1 a 0 + a 3 a 2 + a 3 a 3 a 2 a 1 a 0 + a 3 - - - ( 4 )
所以,其实现过程只需实现ZA矩阵和式子(1)的矩阵向量乘法运算即可。然而,以这种方式来实现GF(2k)乘法器的硬件成本高,以GCM模式中的GHASH运算为例,其GF(2128)的原始多项式为1+x+x2+x7+x128,需要24,448个XOR运算(矩阵转换运算),214个寄存器、214个AND运算以及127×128个XOR,这样的硬件成本将近于1~2个的128位AES引擎。
发明内容
本申请的实施范例可提供一种循序运算的伽罗瓦乘法架构与方法。
在一实施范例中,所公开者涉及一种循序运算的伽罗瓦乘法架构,用来执行伽罗瓦场GF(2k)的A与B两运算元的乘法,k为正整数,此乘法架构包含:一第一层架构,将A运算元的相关数据一次备齐,将B运算元的数据以m个n位的方式循序输入来处理,k=mn,m、n为正整数;以及一第二层架构,循序接收输入的B运算元的数据,并直接以多个单一n位的乘法器来实现GF((2n)m)的乘法运算;其中,在第一层架构处理之前,A与B两运算元先从GF(2k)场被映射到GF((2n)m)场,而第二层架构的乘法运算结果再被映射回到GF(2k)场,以完成GF(2k)的乘法。
在另一实施范例中,所公开者涉及一种循序运算的伽罗瓦乘法方法,用来执行伽罗瓦场的乘法运算,此方法包含:将两运算元A、B从一GF(2k)场被映射到一GF((2n)m)场,k=mn,k、m、n为正整数;利用一第一层架构,将A运算元的相关数据一次备齐,将B运算元的数据以m个n位的方式循序输入来处理;利用一第二层架构,循序接收输入的B运算元的数据,并直接以多个单一n位的乘法器来实现GF((2n)m)的乘法运算;以及将此第二层架构的乘法运算结果再被映射回到GF(2k)场,以完成GF(2k)的乘法。
现在配合下列附图、实施例的详细说明及权利要求书,将上述及本发明的其他特征与优点详述于后。
附图说明
图1是一种伽罗瓦乘法器的一个范例示意图。
图2是另一种伽罗瓦乘法器的一个范例示意图。
图3是平行化的Mastrovito乘法器的硬件架构的一个范例示意图。
图4是Aω乘法架构的一个范例示意图,并且与所公开的某些实施范例一致。
图5是图4的架构精简后的一个范例示意图,并且与所公开的某些实施范例一致。
图6是一个范例示意图,说明循序运算的伽罗瓦乘法架构,并且与所公开的某些实施范例一致。
图7是GF((2n)m)循序乘法器的一个工作范例示意图,并且与所公开的某些实施范例一致。
图8是一个范例示意图,说明使用GF((2n)m)循序乘法器来执行GF(2k)乘法运算的方法,并且与所公开的某些实施范例一致。
图9是一个范例流程图,说明如何使用寄存器移位寄存器来执行GF(2k)乘法运算,并且与所公开的某些实施范例一致。
图10是实现GF(2k)乘法器一个范例示意图,其中对于两个乘法运算元有时间先后顺序,并且与所公开的某些实施范例一致。
图11A图是以一范例表格,其中以GF(2128)和本申请的乘法器为例,来分析其所使用的硬件成本。
图11B图是以一范例表格来进行实务上的比较,其中比较基准为所使用的现场可编程门阵列的使用量。
【主要元件符号说明】
400Aω乘法架构          411-41m第一组寄存器
421-42m m个常数乘法器   432-43m m-1个异或逻辑门
610第一层架构           620第二层架构
621-62m m个单一n位的乘法器
A、B两运算元C乘法运算结果
700GF((2n)m)循序乘法器  701-70m第二组寄存器
710第一层架构的范例     720第二层架构的范例
910将第一组寄存器的各对应的初始值从a0至am-1分别填入;而第二组寄存器的各对应的初始值从c0至cm-1全部填入0
920先输入b0,并与第一组寄存器的值进行GF(2n)乘法后,与第二组寄存器的值进行XOR运算,再存入第二组寄存器
930将第一组寄存器向右位移一次,获得Aω,同时输入b1并与第一组寄存器的值进行GF(2n)乘法后,算出b1Aω,再与第二组寄存器内的b0A值进行XOR运算后,存入第二组寄存器
940依此,对于循序输入的b2、b3、...、bm-1,重复第一组寄存器向右位移一次至存入第二组寄存器的步骤,最后从第二组寄存器中获得b0A+b1Aω+...+bm-1m-1
1005控制信号    1012多工器
1014解多工器    1020循序器
具体实施方式
当k很大时,例如128,则GF(2k)的乘法需要付出很高的运算代价。使用复合场可降低运算复杂度。本申请的实施范例是将一个GF(2k)乘法器,以复合场GF((2n)m)乘法器来实现,并且采用循序(sequential)方式来输入其中一个运算元。
复合场的数学符号表示法是GF((2n)m),其中nm=k,n、m皆为正整数。以元素的位数来解释,则是将原本在GF(2k)的一个k位元素,转换成m个在GF(2n)中的n位元素,因为nm=k,所以整体来看还是一个k位值。在复合场中,GF(2n)就是一个基底场(Ground Field)。要将一个元素从GF(2k)场映射到GF((2n)m)场,需要有建构GF(2k)场所需的多项式g(x),还需要一个n阶的原始多项式p(x)和一个m阶的原始多项式r(x),其中p(x)多项式的系数属于GF(2),而r(x)的系数属于GF(2n)。
然后,利用Christof Paar提出的理论,来找到一个k×k的矩阵M,将元素从GF(2k)空间映射到GF((2n)m)空间,而其反矩阵M-1则会再将元素从GF((2n)m)映射回GF(2k)。以m=2为例,令g(x)为产生GF(2k)空间的原始多项式,且g(α)=0。则A元素在GF(2k)空间的多项式表示法为:
A=a0+a1α+…+ak-1αk-1,ai属于GF(2)。
而映射到GF((2n)2)复合场后,A可以表示成:
A=a0+a1ω,其中ai属于GF(2n),而ω为GF((2n)2)的原始元素,也就是用来产生GF((2n)2)空间的多项式r(x)的根。
本申请的实施范例中,首先建立基底场GF(2n)场。然后,利用一个阶数为m,且其系数属于GF(2n)的原始多项式来建立GF((2n)m),例如将GF(2128)以GF((28)16)复合场来设计。其数学原理如下,假设用来产生GF((2n)m)的多项式为
r(x)=r0+r1x+…+rm-1xm-1+xm,ri∈GF(2n)(5)
且A,B∈GF((2n)m),其多项式表示法为
A = Σ i = 0 m - 1 a i ω i , a i ∈ GF ( 2 n )
B = Σ i = 0 m - 1 b i ω i , b i ∈ GF ( 2 n ) (6)
其中r(ω)=0,则A×B为
A × B = Σ i = 0 m - 1 a i ω i Σ j = 0 m - 1 b j ω j = Σ i = 0 m - 1 c i ω i - - - ( 7 )
而从式子(4)中可以发现Mastrovito矩阵存在一种规律性,经过分析后,发现Mastrovito乘法运算中的ZA有一个别于式子(2)和(3)且更简单的表示方法,即
ZA=[Z0 Z1…Zk-1],Zi=A×ωi    (8)
其中Zi为一行向量,且r(ω)=0,这个方法让Mastrovito的ZA矩阵可以即时地获得,且硬件容易实现。因此,以式子(1)和式子(8)所描述的Mastrovito架构来实现式子(7),可以获得下面的式子
c 0 c 1 . . . c m - 1 = [ A Aω . . . Aω m - 1 ] b 0 b 1 . . . b m - 1 - - - ( 9 )
= b 0 A + b 1 Aω + . . . + b m - 1 A ω m - 1
其中,ω是r(x)的原始元素(primitive element),也就是r(ω)=0。在式子(9)中的Aωi为m×1的行向量,因此每一个bii的乘法都是由m个GF(2n)的乘法器组成。此处是以一递回方式来求得所有的Aωi。令A=a0+a1ω+a2ω2+…+am-1ωm-1,则Aω可表示如下。
Aω=a0ω+a1ω2+a2ω3+…+am-1ωm
=a0ω+a1ω2+a2ω3+…+am-2ωm-1+
am-1(r0+r1ω+r2ω2+…+rm-1ωm-1)
=r0am-1+(a0+r1am-1)ω+(a1+r2am-12+…+(am-2+rm-1am-1m-1
=a′0+a′1ω+a′2ω2+…+a′m-1ωm-1
有了上面Aω的数学式子后,就可以设计出一个递回架构,依序获得Aω、Aω2=(Aω)ω、Aω3=(Aω2)ω等值。
因为r(ω)=0,所以Aω的乘法架构可以使用寄存器移位寄存器(shiftregister)来完成。根据式子(5),图4是Aω乘法架构的一个范例示意图,并且与所公开的某些实施范例一致。图4的Aω乘法架构400包含m个寄存器411-41m,m个常数乘法器421-42m,以及m-1个n位的异或(XOR)逻辑门432-43m。寄存器41i暂存ai-1的值,1≤i≤m,此暂存值ai-1与常数乘法器42j的输出,j=i+1,经XOR运算后的值被输出至下一个寄存器41j。而常数乘法器421的输出系直接连接至寄存器411。在常数乘法器42j的常数参数ri的选择上,一般除了r0之外,其余的ri参数都会选择加法单位素或乘法单位素,例如GF(2)中的0和1。在上述Aω的数学式子中,乘上ω后,则最高阶的系数am-1会和每个常数ri相乘后再和其他的低阶项次ai-1相加,所以图4中最右方的寄存器41m的输出线会再与常数乘法器421-42m的每一常数乘法器连接。
假设多项式为r(x)=r0+x3+x4+x5+x16,r0∈GF(28),则图4的范例架构可精简如图5的范例架构。图5的范例架构以16个8位寄存器,一个常数乘法器421,以及三个8位的XOR来实现,此范例架构中,m=16,n=8=23。因此Aω运算所需的成本可取决于原始多项式的系数。图4或图5的范例架构,其特色之一是当寄存器的内容每往右边位移一次,就等于将寄存器的值乘上原始多项式的根ω。因此,当寄存器的初始值为A时,就可以通过m-1次的位移,分别获得Aω,Aω2,...Aωm-1
因此,本申请的实施范例的设计可以用两层式的乘法架构来实现单一循序输入的GF(2k)乘法器,此乘法器的架构原理是将GF(2k)的乘法运算以GF((2n)m)的方式来实现。图6是一个范例示意图,说明循序运算的伽罗瓦乘法架构,并且与所公开的某些实施范例一致。图6中,循序运算的伽罗瓦乘法架构包含一第一层架构610以及一第二层架构620。第一层架构610将其中一个k位的运算元,例如运算元B,以m个n位的方式循序处理,所以总共需m个时钟。而第二层架构620则直接以n位的乘法器,例如具有Mastrovito乘法器架构,来实现GF(2n)的乘法运算。
在第一层架构610处理之前,A与B两运算元先从GF(2k)场被映射到GF((2n)m)场。然后,第一层架构610采用循序的架构,依序获得A,Aω,...,Aωm-1,从这可发现,因为要进行位移,所以A运算元的相关数据需要一次备齐,然后可放在上述图4或图5的范例架构,例如图4的Aω乘法架构400,的寄存器中。而B运算元的数据则采用m次循序的输入方式,循序输入b0、b1到bm-1。第二层架构620于每一次输入bi时,都需要计算bi×Aωi,此bi×Aωi部分的运算另外需要GF(2n)的乘法,本申请的实施范例是使用平行化的架构来实现GF(2n)乘法器,也就是循序接收输入的B运算元的数据,并使用m个单一n位的乘法器62j,1 j m,来实现GF(2n)的乘法运算。第二层架构620的乘法运算结果C再被映射回到GF(2k)场,以完成GF(2k)的乘法。
以k=128=8×16为例,第一层架构会将其中一个128位的运算元以16个8位的方式循序处理,所以总共需16个时钟。而第二层架构则直接以8位的Mastrovito架构实现GF(28)的乘法运算。
图7的GF((2n)m)循序乘法器的工作范例可以来实施GF((2n)m)的乘法运算,并且与所公开的某些实施范例一致。图7的GF((2n)m)循序乘法器700的工作范例包含第一层架构的范例710以及第二层架构的范例720,其中第一层架构的范例710可用图4的范例架构来实现,而第二层架构的范例720可用m个GF(2n)乘法器、m个XOR以及m个寄存器701-70m来实现。假设要进行乘法的运算元分别是A和B,其中A={a0,a1,...am-1}而B={b0,b1,...bm-1},如果以图7的架构为例来实现GF(2k)的乘法架构时,寄存器701-70m暂存C={c0,c1,c2,...,cm-1}=A×B的结果,即b0A+b1Aω+...+bm-1m-1,整个执行方法可参考图8的范例流程,并且与所公开的某些实施范例一致。
图8的范例流程中,首先,需要一个转换矩阵,例如同形(isomorphic)转换矩阵T,来将两个运算元A′与B′从GF(2k)转换到GF((2n)m)的运算元A与B,即第一步骤。再利用一个两层式循序输入的伽罗瓦乘法架构,例如图7的GF((2n)m)循序乘法器700的范例架构,来求得乘法结果C;若以图7的范例架构来求得乘法结果,其执行方法可包含如下:利用第一层架构,将A运算元的数据一次备齐,将B运算元的数据以m个n位的方式循序输入来处理,即第二步骤;以及利用第二层架构,循序接收输入的B运算元的数据,例如通过一循序器(sequencer),并直接以多个单一n位的乘法器,例如Mastrovito乘法器,来实现GF(2n)的乘法运算,即第三步骤。最后再通过反转换矩阵,例如T-1,将乘法结果C从GF((2n)m)转回GF(2k)里的C′,即完成整个GF(2k)运算,即第四步骤。也就是说,循序伽罗瓦乘法方法的范例流程可用第一步骤、第二步骤、第三步骤、以及第四步骤来完成。
如前所述,Aω的乘法架构可以使用寄存器移位寄存器来完成。依此,图9以一工作范例,来说明如何使用寄存器移位寄存器来完成图7的范例架构的运作,并且与所公开的某些实施范例一致。
请一并参考图7与图9的范例,首先,如步骤910所示,将第一组(即m个)寄存器411-41m的各对应的初始值从a0至am-1分别填入;而第二组(即m个)寄存器701-70m的各对应的初始值从c0至cm-1全部填入0。在步骤920中,先输入b0,并与第一组寄存器411-41m的值进行GF(2n)乘法后,与第二组寄存器701-70m的值进行XOR运算,再存入第二组寄存器701-70m,此时第二组寄存器701-70m中的所有值就是b0A。
在步骤930中,将第一组寄存器411-41m向右位移一次,获得Aω,同时输入b1并与第一组寄存器的值进行GF(2n)乘法后,算出b1Aω,再与第二组寄存器701-70m内的b0A值进行XOR运算后,存入第二组寄存器701-70m,此时第二组寄存器701-70m中的所有值就是b0A+b1Aω。依此,对于循序输入的b2、b3、...、bm-1,重复步骤930,即第一组寄存器向右位移一次至存入第二组寄存器的步骤,最后从第二组寄存器701-70m中获得式子(9)的结果,即b0A+b1Aω+…+bm-1m-1,如步骤940所示。
从图8的范例可以发现,将两个运算元转换到GF((2n)m)场时,需要两个T转换矩阵。然而,在某些应用中,例如MACsec的GCM-AES,其参与乘法运算的第一个参数是H=E{K,0128},其中E为AES-128演算法,K为加密金钥,0128是128位全零的数据。因为K是预先知道的值,且0128又是一个常数值,所以H值也是一个预先知道的常数值。而另外一个参与乘法运算的是分组数据及分组长度信息L,这需等到数据开始传输时才会得知,在时间获得数据上有其先后顺序,且H为单一128位数据,只需转换一次即可。因此,可以先进行H的同形转换,再进行分组数据和分组长度的同形转换。所以,在这类两个乘法运算元有时间先后顺序的类似应用中,整个电路的设计只需要一个同形转换电路。
所以,对于两个乘法运算元有时间先后顺序的类似应用中,可采用图10的范例架构来实现GF(2k)乘法器,并且与所公开的某些实施范例一致。参考图10,当A′数据先进入到乘法器时,此时控制信号1005通过一多工器1012选择A′的路径,让A′经过同形转换矩阵得到A值,经过解多工器1014时,控制信号1005将同形转换矩阵T的输出送到一循序器1020的平行输入处。运算结束后,控制信号1005再将多工器1012以及解多工器1014的路径切换到B′和B,以运算之后所有来自B′的数据。
图11A图的表格中,是以GF(2128)乘法器和本申请的GF((28)16)循序乘法器为范例,分析其所使用的硬件成本。可以发现,本申请的实施范例可以大幅减少XOR闸和AND闸的使用量。图11B图的表格中,进一步进行实务上的比较,比较基准为所使用的现场可编程门阵列(Field-ProgrammableGate Array,FPGA)的使用量。其中一前案技术使用的是Xilinx XC4VLX40,其需要3,800个逻辑基本结构(slices),而本申请的实施范例只需要2,478个逻辑基本结构。另一前案技术使用的是Xilinx XC4VFX100,此技术的范例最快的架构需要11,178个查询表(Lookup Table,LUT),最精简的架构需要5,778个查询表,本申请的实施范例与其最精简的架构相较,也节省了约五分之一的硬件成本。
综上所述,本申请的实施范例基于Mastrovito乘法运算和复合场原理,使用一种两层式的乘法架构来实现单一循序输入的GF(2k)乘法器。第一层架构将其中一个k位的运算元以m个n位的方式循序处理。而第二层架构系直接以n位的架构实现GF(2n)的乘法运算。本申请的实施范例如应用在以GCM演算法作为预设的加解密运算之类的加解密系统中时,如MACsec和IPsec等,可以有效降低GCM的硬件成本;此外,也可以用于一般的GF乘法运算应用,如错误更正码或是椭圆曲线密码学之中。
以上所述者仅为本申请的实施范例,当不能依此限定本发明实施的范围。即大凡本发明申请专利范围所作的均等变化与修饰,皆应仍属本发明专利涵盖的范围。

Claims (13)

1.一种循序运算的伽罗瓦乘法架构,用来执行伽罗瓦场GF(2k)的A与B两运算元的乘法,k为正整数,该乘法架构包含:
一第一层架构,将A运算元的数据一次备齐,将B运算元的数据以m个n位的方式循序输入来处理,k=mn,m、n为正整数;以及
一第二层架构,循序接收输入的B运算元的数据,并以m个单一n位的乘法器来实现GF(2n)的乘法运算;
其中,在该第一层架构处理之前,该A与B两运算元先从GF(2k)场被映射到GF((2n)m)场,而该第二层架构的乘法运算结果再被映射回到GF(2k)场,以完成该GF(2k)的乘法。
2.如权利要求1所述的乘法架构,其中该A与B两运算元通过一种空间转换矩阵,从GF(2k)场被映射到GF((2n)m)场,而该第二层架构的乘法运算结果通过一种反空间转换矩阵再被映射回到GF(2k)场。
3.如权利要求1所述的乘法架构,其中该第一层架构以m个寄存器,m个常数乘法器,以及m-1个n位的异或逻辑门来实现。
4.如权利要求1所述的乘法架构,其中该第二层架构以m个GF(2n)乘法器、m个异或逻辑门以及m个寄存器来实现。
5.如权利要求1所述的乘法架构,其中该第一层架构以m个寄存器,一个常数乘法器,以及j个n位的异或逻辑门来实现,1≤j≤m-1。
6.如权利要求1所述的乘法架构,其中该B运算元的数据通过一循序器来输入至该乘法架构。
7.如权利要求1所述的乘法架构,该乘法架构还包括一控制信号,来控制有时间先后顺序的该两运算元的输入。
8.如权利要求1所述的乘法架构,其中该m个单一n位的乘法器具有Mastrovito乘法器的架构。
9.一种循序伽罗瓦乘法方法,用来执行伽罗瓦场GF的乘法运算,该方法包含:
将两运算元A、B从一GF(2k)场被映射到一GF((2n)m)场,k=mn,k、m、n为正整数;
利用一第一层架构,将A运算元的数据一次备齐,将B运算元的数据以m个n位的方式循序输入来处理;
利用一第二层架构,循序接收输入的B运算元的数据,并直接以多个单一n位的乘法器来实现GF(2n)的乘法运算;以及
将该第二层架构的乘法运算结果再被映射回到GF(2k)场,以完成GF(2k)的乘法。
10.如权利要求9所述的方法,其中在该第一层架构中,该运算元A的数据a0至am-1分别填入一第一组寄存器,而另一运算元B的数据以m个n位b0至bm-1来表示。
11.如权利要求10所述的方法,其中在该第二层架构中,该方法还包括:
输入b0并与该第一组寄存器的值进行GF(2n)乘法运算后,该乘法运算结果与该第二组寄存器的值进行异或逻辑(XOR)运算后存入该第二组寄存器;以及
将该第一组寄存器的值向右位移一次,获得Aω,输入b1并与该第一组寄存器的值进行GF(2n)乘法后,获得b1Aω,再与该第二组寄存器内的值进行XOR运算后存入该第二组寄存器,依此,对于循序输入的b2、b3、...、bm-1,重复该第一组寄存器向右位移一次直到存入该第二组寄存器的步骤。
12.如权利要求11所述的方法,其中该第二层架构的乘法运算结果是从该第二组寄存器最终的值来获得。
13.如权利要求9所述的方法,其中该两运算元A、B是通过一个同形转换电路,从该GF(2k)场被映射到该GF((2n)m)场。
CN2010101673829A 2010-04-20 2010-04-20 循序运算的伽罗瓦乘法架构与方法 Pending CN102236540A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101673829A CN102236540A (zh) 2010-04-20 2010-04-20 循序运算的伽罗瓦乘法架构与方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101673829A CN102236540A (zh) 2010-04-20 2010-04-20 循序运算的伽罗瓦乘法架构与方法

Publications (1)

Publication Number Publication Date
CN102236540A true CN102236540A (zh) 2011-11-09

Family

ID=44887219

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101673829A Pending CN102236540A (zh) 2010-04-20 2010-04-20 循序运算的伽罗瓦乘法架构与方法

Country Status (1)

Country Link
CN (1) CN102236540A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106470105A (zh) * 2015-08-19 2017-03-01 阿尔特拉公司 用于多端口到多端口密码术的系统和方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4251875A (en) * 1979-02-12 1981-02-17 Sperry Corporation Sequential Galois multiplication in GF(2n) with GF(2m) Galois multiplication gates
US6701336B1 (en) * 1999-11-12 2004-03-02 Maxtor Corporation Shared galois field multiplier
TW588280B (en) * 2000-12-18 2004-05-21 Ind Tech Res Inst General finite-field multiplier
US6957243B2 (en) * 2001-10-09 2005-10-18 International Business Machines Corporation Block-serial finite field multipliers
TW200622865A (en) * 2004-12-29 2006-07-01 Ind Tech Res Inst Booth array multiplier with bypass circuits
US7113968B1 (en) * 2002-02-21 2006-09-26 Ciena Corporation Method and apparatus for efficiently performing Galois field multiplication
US7133889B2 (en) * 2001-09-20 2006-11-07 Stmicroelectronics, Inc. Flexible galois field multiplier
TW200919302A (en) * 2007-10-17 2009-05-01 Ind Tech Res Inst Speed-level calculator and calculating method for dynamic voltage scaling

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4251875A (en) * 1979-02-12 1981-02-17 Sperry Corporation Sequential Galois multiplication in GF(2n) with GF(2m) Galois multiplication gates
US6701336B1 (en) * 1999-11-12 2004-03-02 Maxtor Corporation Shared galois field multiplier
TW588280B (en) * 2000-12-18 2004-05-21 Ind Tech Res Inst General finite-field multiplier
US7133889B2 (en) * 2001-09-20 2006-11-07 Stmicroelectronics, Inc. Flexible galois field multiplier
US6957243B2 (en) * 2001-10-09 2005-10-18 International Business Machines Corporation Block-serial finite field multipliers
US7113968B1 (en) * 2002-02-21 2006-09-26 Ciena Corporation Method and apparatus for efficiently performing Galois field multiplication
TW200622865A (en) * 2004-12-29 2006-07-01 Ind Tech Res Inst Booth array multiplier with bypass circuits
TW200919302A (en) * 2007-10-17 2009-05-01 Ind Tech Res Inst Speed-level calculator and calculating method for dynamic voltage scaling

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106470105A (zh) * 2015-08-19 2017-03-01 阿尔特拉公司 用于多端口到多端口密码术的系统和方法
US10489610B2 (en) 2015-08-19 2019-11-26 Altera Corporation Systems and methods for multiport to multiport cryptography
CN106470105B (zh) * 2015-08-19 2019-12-10 阿尔特拉公司 用于多端口到多端口密码术的系统和方法

Similar Documents

Publication Publication Date Title
Pan et al. Novel systolization of subquadratic space complexity multipliers based on toeplitz matrix–vector product approach
TWI406138B (zh) 循序運算的伽羅瓦乘法架構與方法
Okada et al. Implementation of Elliptic Curve Cryptographic Coprocessor over GF (2 m) on an FPGA
JP3784156B2 (ja) モジュラ掛け算方法
US7421076B2 (en) Advanced encryption standard (AES) engine with real time S-box generation
Imran et al. ACryp-Proc: Flexible asymmetric crypto processor for point multiplication
Chen et al. Period distribution of generalized discrete Arnold cat map for $ N= p^{e} $
Kim et al. FPGA implementation of high performance elliptic curve cryptographic processor over GF (2163)
CN103634101A (zh) 加密处理方法及设备
US8280938B2 (en) Semi-sequential Galois Field multiplier and the method for performing the same
CN103067165B (zh) 公钥密码体制中的外包计算方法、设备和服务器
Rachh et al. Efficient implementations for AES encryption and decryption
CN107992283B (zh) 一种基于降维实现有限域乘法的方法和装置
CN104184578A (zh) 一种基于fpga的椭圆曲线标量乘法加速电路及其算法
CN102184088B (zh) 一种基于串并结合实现有限域乘法的方法及装置
Chen et al. FPGA realization of low register systolic all-one-polynomial multipliers over $ GF (2^{m}) $ and their applications in trinomial multipliers
Rashidi Efficient hardware implementations of point multiplication for binary Edwards curves
He et al. Compact coprocessor for KEM saber: Novel scalable matrix originated processing
CN113467754A (zh) 一种基于分解约简的格加密模乘运算方法及架构
CN103023659A (zh) 一种参数位宽可扩展的ecc加密硬件装置
CN102236540A (zh) 循序运算的伽罗瓦乘法架构与方法
CN105530091A (zh) 一种tts签名的解密方法
Kadu et al. Hardware implementation of efficient elliptic curve scalar multiplication using vedic multiplier
KR102241252B1 (ko) 모듈러 연산 방법, 장치 및 시스템
Rashmi et al. Optimized reversible montgomery multiplier

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20111109