TWI406138B - 循序運算的伽羅瓦乘法架構與方法 - Google Patents
循序運算的伽羅瓦乘法架構與方法 Download PDFInfo
- Publication number
- TWI406138B TWI406138B TW099110213A TW99110213A TWI406138B TW I406138 B TWI406138 B TW I406138B TW 099110213 A TW099110213 A TW 099110213A TW 99110213 A TW99110213 A TW 99110213A TW I406138 B TWI406138 B TW I406138B
- Authority
- TW
- Taiwan
- Prior art keywords
- multiplication
- architecture
- registers
- field
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7209—Calculation via subfield, i.e. the subfield being GF(q) with q a prime power, e.g. GF ((2**m)**n) via GF(2**m)
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Error Detection And Correction (AREA)
- Complex Calculations (AREA)
Description
本揭露係關於一種循序(sequential)運算的伽羅瓦乘法架構(Galois Field Multiplier)與方法,係基於Mastrovito乘法運算和複合場(Composite Field)的兩層式循序輸入的伽羅瓦乘法架構與方法。
伽羅瓦計數模式-先進加密標準(Galois Counter Mode-Advanced Encryption 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階的原始多項式(primitive polynomial)所定義的空間,共有2k
個元素,每一元素有k個位元,此k個位元是該元素多項式b0
+b1
x+…+bk-1
xk-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揭露的伽羅瓦乘法器架構,如第一圖所示,是採用單一基底場GF(2m
)乘法器架構,以及使用Karatsuba-Ofman運算法來進行乘法運算。美國專利6,957,243揭露的伽羅瓦乘法器架構利用拆解多項式的方法,將其中一個運算元A(x)循序地輸入,即序列A0
(x),A1
(x),…,AT-1
(x)循序地輸入;而另一個運算元b(x)平行地輸入,來進行乘法運算,如第二圖所示。
直接設計GF(2k
)乘法器的方法為全平行化的運算,也就是兩個k位元進,一個k位元出的方式。以Mastrovito的方式來實現乘法器為例,假設,A=[a0
a1
... ak-1
],B=[b0
b1
... bk-1
],則Mastrovito 的乘法器運算C=AB可表示為一個矩陣向量乘法器,其中一個運算元維持原貌,也就是式子(1)中的B向量,另一個運算原則會經過一個轉換獲得另外一個矩陣也就是ZA
,
其中ZA
矩陣的所有係數為A係數的線性組合,也就是zi,j
=fi,j
(a0
,a1
,...,ak-1
)。
而。式子(2)中的qi,j
是xk
到x2k-2
對g(x)取餘數後的係數,如下所示
其中,g(x)是GF(2k
)的產生元多項式(generator polynomial)。
因此,要利用Mastrovito的架構來實現GF(2k
)乘法,需要利用式子(2)和式子(3)預先求得矩陣ZA
。第三圖是平行化的Mastrovito乘法器之硬體架構的一個範例示意圖。從第三圖中的範例可以看到ZA
矩陣的電路和一個矩陣向量乘法器,ZA
矩陣是一堆類似式子(4)的線性組合,而矩陣向量乘法器就是AND和XOR的組合。以g(x)=1+x+x4
為例,經過(2)和(3)後可得到ZA
矩陣為
所以,其實現過程只需實現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
)的乘法。
茲配合下列圖式、實施範例之詳細說明及申請專利範圍,將上述及本發明之其他特徵與優點詳述於後。
當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(ω)=0,則A×B為
而從式子(4)中可以發現Mastrovito矩陣存在一種規律性,經過分析後,發現Mastrovito乘法運算中的ZA
有一個別於式子(2)和(3)且更簡單的表示方法,即
ZA
=[Z0
Z1
… Zk-1
],Zi
=A×ωi
(8)
其中Zi
為一行向量,且r(ω)=0,這個方法讓Mastrovito的ZA
矩陣可以即時地獲得,且硬體容易實現。因此,以式子(1)和式子(8)所描述的Mastrovito架構來實現式子(7),可以獲得下面的式子
其中,ω是r(x)的原始元素(primitive element),也就是r(ω)=0。在式子(9)中的Aωi
為m×1的行向量,因此每一個bi
Aωi
的乘法都是由m個GF(2n
)的乘法器組成。此處是以一遞回方式來求得所有的Aωi
。令A=a0
+a1
ω+a2
ω2
+…+am-1
ωm-1
,則Aω可表示如下。
有了上面Aω的數學式子後,就可以設計出一個遞回架構,依序獲得Aω、Aω2
=(Aω)ω、Aω3
=(Aω2
)ω等值。
因為r(ω)=0,所以Aω的乘法架構可以使用位移暫存器(shift register)來完成。根據式子(5),第四圖是Aω乘法架構的一個範例示意圖,並且與所揭露之某些實施範例一致。第四圖的Aω乘法架構400包含m個暫存器411-41m,m個常數乘法器421-42m,以及m-1個n位元的互斥(XOR)邏輯閘432-43m。暫存器41i暫存ai-1
的值,,此暫存值ai-1
與常數乘法器42j的輸出,j=i+1,經XOR運算後的值被輸出至下一個暫存器41j。而常數乘法器421的輸出係直接連接至暫存器411。在常數乘法器42j之常數參數ri
的選擇上,一般除了r0
之外,其餘的ri
參數都會選擇加法單位元素或乘法單位元素,例如GF(2)中的0和1。在上述Aω的數學式子中,乘上ω後,則最高階的係數am-1
會和每個常數ri
相乘後再和其他的低階項次ai-1
相加,所以第四圖中最右方之暫存器41m的輸出線會再與常數乘法器421-42m的每一常數乘法器連接。
假設多項式為r(x)=r0
+x3
+x4
+x5
+x16
,,則第四圖的範例架構可精簡如第五圖的範例架構。第五圖的範例架構係以16個8位元暫存器,一個常數乘法器421,以及三個8位元的XOR來實現,此範例架構中,m=16,n=8=23
。因此Aω運算所需的成本可取決於原始多項式的係數。第四圖或第五圖的範例架構,其特色之一是當暫存器的內容每往右邊位移一次,就等於將暫存器的值乘上原始多項式的根ω。因此,當暫存器的初始值為A時,就可以透過m-1次的位移,分別獲得Aω,Aω2
,...Aωm-1
。
因此,本揭露之實施範例的設計可以用兩層式的乘法架構來實現單一循序輸入的GF(2k
)乘法器,此乘法器的架構原理是將GF(2k
)的乘法運算以GF((2n
)m
)的方式來實現。第六圖是一個範例示意圖,說明循序運算的伽羅瓦乘法架構,並且與所揭露之某些實施範例一致。第六圖中,循序運算的伽羅瓦乘法架構包含一第一層架構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運算元的相關資料需要一次備齊,然後可放在上述第四圖或第五圖之範例架構,例如第四圖之Aω乘法架構400,的暫存器中。而B運算元的資料則採用m次循序的輸入方式,循序輸入bo
、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
)的乘法運算。
第七圖之GF((2n
)m
)循序乘法器的工作範例可以來實施GF((2n
)m
)的乘法運算,並且與所揭露之某些實施範例一致。第七圖之GF((2n
)m
)循序乘法器700的工作範例包含第一層架構的範例710以及第二層架構的範例720,其中第一層架構的範例710可用第四圖的範例架構來實現,而第二層架構的範例720可用m個GF(2n
)乘法器、m個XOR以及m個暫存器701-70m來實現。假設要進行乘法的運算元分別是A和B,其中A={a0
,a1
,...am-1
}而B={b0
,b1
,...,bm-1
},若以第七圖之架構為例來實現GF(2k
)的乘法架構時,暫存器701-70m暫存C={c0
,c1
,c2
,...,cm-1
}=A×B的結果,即b0
A+b1
Aω+...+bm-1
Aωm-1
,整個執行方法可參考第八圖的範例流程,並且與所揭露之某些實施範例一致。
第八圖的範例流程中,首先,需要一個轉換矩陣,例如同形(isomorphic)轉換矩陣T
,來將兩個運算元A'與B'從GF(2k
)轉換到GF((2n
)m
)的運算元A與B,即第一步驟。再利用一個兩層式循序輸入的伽羅瓦乘法架構,例如第七圖之GF((2n
)m
)循序乘法器700的範例架構,來求得乘法結果C;若以第七圖的範例架構來求得乘法結果,其執行方法可包含如下:利用第一層架構,將A運算元的資料一次備齊,將B運算元的資料以m個n位元的方式循序輸入來處理,即第二步驟;以及利用第二層架構,循序接收輸入之B運算元的資料,例如透過一循序器(sequencer),並直接以多個單一n位元的乘法器,例如Mastrovito乘法器,來實現GF(2n
)的乘法運算,即第三步驟。最後再透過反轉換矩陣,例如T-1
,將乘法結果C從GF((2n
)m
)轉回GF(2k
)裡的C',即完成整個GF(2k
)運算,即第四步驟。也就是說,循序伽羅瓦乘法方法的範例流程可用第一步驟、第二步驟、第三步驟、以及第四步驟來完成。
如前所述,Aω的乘法架構可以使用位移暫存器來完成。依此,第九圖以一工作範例,來說明如何使用位移暫存器來完成第七圖之範例架構的運作,並且與所揭露之某些實施範例一致。
請一併參考第七圖與第九圖的範例,首先,如步驟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中的所有值就是b0
A。
在步驟930中,將第一組暫存器411-41m向右位移一次,獲得Aω,同時輸入b1
並與第一組暫存器的值進行GF(2n
)乘法後,算出b1
Aω,再與第二組暫存器701-70m內的b0
A值進行XOR運算後,存入第二組暫存器701-70m,此時第二組暫存器701-70m中的所有值就是b0
A+b1
Aω。依此,對於循序輸入的b2
、b3
、...、bm-1
,重複步驟930,即第一組暫存器向右位移一次至存入第二組暫存器的步驟,最後從第二組暫存器701-70m中獲得式子(9)的結果,即b0
A+b1
Aω+…+bm-1
Aωm-1
,如步驟940所示。
從第八圖的範例可以發現,將兩個運算元轉換到GF((2n
)m
)場時,需要兩個T轉換矩陣。然而,在某些應用中,例如MACsec的GCM-AES,其參與乘法運算的第一個參數是H=E{K,0128
},其中F為AES-128演算法,K為加密金鑰,0128
是128位元全零的資料。因為K是預先知道的值,且0128
又是一個常數值,所以H值也是一個預先知道的常數值。而另外一個參與乘法運算的是封包資料及封包長度資訊L,這需等到資料開始傳輸時才會得知,在時間獲得資料上有其先後順序,且H為單一128位元資料,只需轉換一次即可。因此,可以先進行H的同形轉換,再進行封包資料和封包長度的同形轉換。所以,在這類兩個乘法運算元有時間先後順序的類似應用中,整個電路的設計只需要一個同形轉換電路。
所以,對於兩個乘法運算元有時間先後順序的類似應用中,可採用第十圖的範例架構來實現GF(2k
)乘法器,並且與所揭露之某些實施範例一致。參考第十圖,當A'資料先進入到乘法器時,此時控制訊號1005藉由一多工器1012選擇A'的路徑,讓A'經過同形轉換矩陣得到A值,經過解多工器1014時,控制訊號1005將同形轉換矩陣T的輸出送到一循序器1020的平行輸入處。運算結束後,控制訊號1005再將多工器1012以及解多工器1014的路徑切換到B'和B,以運算之後所有來自B'的資料。
第十一A圖的表格中,是以GF(2128
)乘法器和本揭露之GF((28
)16
)循序乘法器為範例,分析其所使用的硬體成本。可以發現,本揭露之實施範例可以大幅減少XOR閘和AND閘的使用量。第十一B圖的表格中,進一步進行實務上的比較,比較基準為所使用的場-可程式閘陣列(Field-Programmable Gate 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乘法運算應用,如錯誤更正碼或是橢圓曲線密碼學之中。
以上所述者僅為本揭露之實施範例,當不能依此限定本發明實施之範圍。即大凡本發明申請專利範圍所作之均等變化與修飾,皆應仍屬本發明專利涵蓋之範圍。
400...Aω乘法架構
411-41m...第一組暫存器
421-42m...m個常數乘法器
432-43m...m-1個互斥邏輯閘
610...第一層架構
620...第二層架構
621-62m...m個單一n位元的乘法器
A、B...兩運算元
C...乘法運算結果
700...GF((2n
)m
)循序乘法器
701-70m...第二組暫存器
710...第一層架構的範例
720...第二層架構的範例
910...將第一組暫存器之各對應的初始值從a0
至am-1
分別填入;而第二組暫存器之各對應的初始值從c0
至cm-1
全部填入0
920...先輸入b0
,並與第一組暫存器的值進行GF(2n
)乘法後,與第二組暫存器的值進行XOR運算,再存入第二組暫存器
930...將第一組暫存器向右位移一次,獲得Aω,同時輸入b1
並與第一組暫存器的值進行GF(2n
)乘法後,算出b1
Aω,再與第二組暫存器內的b0
A值進行XOR運算後,存入第二組暫存器
940...依此,對於循序輸入的b2
、b3
、...、bm-1
,重複第一組暫存器向右位移一次至存入第二組暫存器的步驟,最後從第二組暫存器中獲得b0
A+b1
Aω+...+bm-1
Aωm-1
1005...控制訊號
1012...多工器
1014...解多工器
1020...循序器
第一圖是一種伽羅瓦乘法器的一個範例示意圖。
第二圖是另一種伽羅瓦乘法器的一個範例示意圖。
第三圖是平行化的Mastrovito乘法器之硬體架構的一個範例示意圖。
第四圖是Aω乘法架構的一個範例示意圖,並且與所揭露之某些實施範例一致。
第五圖是第四圖的架構精簡後的一個範例示意圖,並且與所揭露之某些實施範例一致。
第六圖是一個範例示意圖,說明循序運算的伽羅瓦乘法架構,並且與所揭露之某些實施範例一致。
第七圖是GF((2n
)m
)循序乘法器的一個工作範例示意圖,並且與所揭露之某些實施範例一致。
第八圖是一個範例示意圖,說明使用GF((2n
)m
)循序乘法器來執行GF(2k
)乘法運算的方法,並且與所揭露之某些實施範例一致。
第九圖是一個範例流程圖,說明如何使用位移暫存器來執行GF(2k
)乘法運算,並且與所揭露之某些實施範例一致。
第十圖是實現GF(2k
)乘法器一個範例示意圖,其中對於兩個乘法運算元有時間先後順序,並且與所揭露之某些實施範例一致。
第十一A圖是以一範例表格,其中以GF(2128
)和本揭露之乘法器為例,來分析其所使用的硬體成本。
第十一B圖是以一範例表格來進行實務上的比較,其中比較基準為所使用的場-可程式閘陣列的使用量。
610...第一層架構
620...第二層架構
621-62m...m個單一n位元的乘法器
A、B...兩運算元
C...乘法運算結果
400...Aω乘法架構
Claims (11)
- 一種循序運算的伽羅瓦乘法架構,用來執行伽羅瓦場GF(2k )之A與B兩運算元的乘法,k為正整數,該乘法架構包含:一第一層架構,將A運算元的資料a0 至am-1 存入第一m個暫存器,將B運算元的資料b0 至bm-1 以m個n位元的方式循序輸入來處理,每輸入一個bj ,1≦j≦m-1,該第一m個暫存器進行一次位移,k=mm,m、n為正整數;以及一第二層架構,包括第二m個暫存器與m個GF(2n )乘法器,該m個GF(2n )乘法器連接至該第一m個暫存器並且循序接收輸入之B運算元的資料b0 至bm-1 ,該m個GF(2n )乘法器的輸出與該第二m個暫存器進行運算後,運算結果存入該第二m個暫存器;其中,在該第一層架構處理之前,該A與B兩運算元先從GF(2k )場被映射到GF((2n )m )場,而該第二層架構的乘法運算結果再被映射回到GF(2k )場,以完成該GF(2k )的乘法。
- 如申請專利範圍第1項所述之乘法架構,其中該A與B兩運算元係透過一種空間轉換矩陣,從GF(2k )場被映射到GF((2n )m )場,而該第二層架構的乘法運算結果係透過一種反空間轉換矩陣再被映射回到GF(2k )場。
- 如申請專利範圍第1項所述之乘法架構,其中該第一層架構係以該第一m個暫存器,m個常數乘法器,以及m-1個n位元的互斥邏輯閘來實現。
- 如申請專利範圍第1項所述之乘法架構,其中該第二層架構係以該m個GF(2n )乘法器、m個互斥邏輯閘以及該第二m個暫存器來實現。
- 如申請專利範圍第1項所述之乘法架構,其中該第一層架構係以該第一m個暫存器,j個常數乘法器,以及j個n位元的互斥邏輯閘來實現,1≦j≦m-1。
- 如申請專利範圍第1項所述之乘法架構,其中該B運算元的資料係透過一循序器來輸入至該乘法架構。
- 如申請專利範圍第1項所述之乘法架構,該乘法架構還包括一控制訊號,來控制有時間先後順序的該兩運算元的輸入。
- 如申請專利範圍第1項所述之乘法架構,其中該m個 GF(2n )乘法器具有Mastrovito乘法器的架構。
- 一種循序伽羅瓦乘法方法,用來執行伽羅瓦場GF之乘法運算,該方法包含:將兩運算元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 )的乘法;其中在該第一層架構中,該運算元A的資料a0 至am-1 分 別填入一第一組暫存器,而另一運算元B的資料以m個n位元b0 至bm-1 來表示;在該第二層架構中,該方法還包括:輸入b0 並與該第一組暫存器的值進行GF(2n )乘法運算後,該乘法運算結果與一第二組暫存器的值進行運算後存入該第二組暫存器;以及將該第一組暫存器的值向右位移一次,獲得Aω,輸入b1 並與該第一組暫存器的值進行GF(2n )乘法後,獲得b1 Aω,再與該第二組暫存器內的值進行運算後存入該第二組暫存器,依此,對於循序輸入的b2 、b3 、...、bm-1 ,重複該第一組暫存器向右位移一次直到存入該第二組暫存器。
- 如申請專利範圍第9項所述之方法,其中該第二層架構的乘法運算結果是從該第二組暫存器最終的值來獲得。
- 如申請專利範圍第9項所述之方法,其中該兩運算元A、B是透過一個同形轉換電路,從該GF(2k )場被映射到該GF((2n )m )場。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099110213A TWI406138B (zh) | 2010-04-01 | 2010-04-01 | 循序運算的伽羅瓦乘法架構與方法 |
US12/826,691 US20110246548A1 (en) | 2010-04-01 | 2010-06-30 | Sequential galois field multiplication architecture and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099110213A TWI406138B (zh) | 2010-04-01 | 2010-04-01 | 循序運算的伽羅瓦乘法架構與方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201135477A TW201135477A (en) | 2011-10-16 |
TWI406138B true TWI406138B (zh) | 2013-08-21 |
Family
ID=44710894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099110213A TWI406138B (zh) | 2010-04-01 | 2010-04-01 | 循序運算的伽羅瓦乘法架構與方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110246548A1 (zh) |
TW (1) | TWI406138B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI776474B (zh) * | 2021-04-20 | 2022-09-01 | 啟碁科技股份有限公司 | 單回合高階加密標準電路模組 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2482243A1 (en) * | 2011-01-31 | 2012-08-01 | Alcatel Lucent | A payment transaction method and corresponding applications |
US9037564B2 (en) | 2011-04-29 | 2015-05-19 | Stephen Lesavich | Method and system for electronic content storage and retrieval with galois fields on cloud computing networks |
US9361479B2 (en) | 2011-04-29 | 2016-06-07 | Stephen Lesavich | Method and system for electronic content storage and retrieval using Galois fields and geometric shapes on cloud computing networks |
US9569771B2 (en) | 2011-04-29 | 2017-02-14 | Stephen Lesavich | Method and system for storage and retrieval of blockchain blocks using galois fields |
US9137250B2 (en) | 2011-04-29 | 2015-09-15 | Stephen Lesavich | Method and system for electronic content storage and retrieval using galois fields and information entropy on cloud computing networks |
CN102521211B (zh) * | 2011-11-17 | 2014-09-10 | 华南理工大学 | 一种求解有限域上线性方程组的并行装置 |
JP5554357B2 (ja) * | 2012-03-15 | 2014-07-23 | 株式会社東芝 | 演算装置 |
JP6035459B2 (ja) * | 2012-04-02 | 2016-11-30 | 株式会社クリプト・ベーシック | 暗号化装置、復号化装置、及びプログラム |
US9646105B2 (en) * | 2012-11-08 | 2017-05-09 | Texas Instruments Incorporated | Reduced complexity hashing |
KR101671430B1 (ko) * | 2013-11-25 | 2016-11-01 | 주식회사 엘지화학 | 플라스틱 필름 및 이의 제조방법 |
US9519757B2 (en) * | 2014-02-26 | 2016-12-13 | Unisys Corporation | AES-GCM based enhanced security setup for media encryption |
US10601578B2 (en) * | 2017-10-26 | 2020-03-24 | Nxp B.V. | Protecting ECC against fault attacks |
US11157645B2 (en) * | 2018-11-01 | 2021-10-26 | International Business Machines Corporation | Data masking with isomorphic functions |
CN114063973B (zh) * | 2022-01-14 | 2022-04-22 | 苏州浪潮智能科技有限公司 | 伽罗华域乘法器及纠删编解码*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6957243B2 (en) * | 2001-10-09 | 2005-10-18 | International Business Machines Corporation | Block-serial finite field multipliers |
TWI253011B (en) * | 2004-10-13 | 2006-04-11 | Promise Technology Inc | Galois field multiplier and multiplication method thereof |
US7133889B2 (en) * | 2001-09-20 | 2006-11-07 | Stmicroelectronics, Inc. | Flexible galois field multiplier |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3556461B2 (ja) * | 1998-03-18 | 2004-08-18 | 富士通株式会社 | M系列の位相シフト係数算出方式 |
US6701336B1 (en) * | 1999-11-12 | 2004-03-02 | Maxtor Corporation | Shared galois field multiplier |
JP3552683B2 (ja) * | 2001-03-09 | 2004-08-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 信号処理方法、信号処理システム、および信号処理のためのプログラムおよび該プログラムを記録したコンピュータ可読な記録媒体 |
US20030101406A1 (en) * | 2001-10-12 | 2003-05-29 | Leilei Song | Low complexity and low power FEC supporting high speed parallel decoding of syndrome-based FEC codes |
-
2010
- 2010-04-01 TW TW099110213A patent/TWI406138B/zh active
- 2010-06-30 US US12/826,691 patent/US20110246548A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
TWI253011B (en) * | 2004-10-13 | 2006-04-11 | Promise Technology Inc | Galois field multiplier and multiplication method thereof |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI776474B (zh) * | 2021-04-20 | 2022-09-01 | 啟碁科技股份有限公司 | 單回合高階加密標準電路模組 |
US11750369B2 (en) | 2021-04-20 | 2023-09-05 | Wistron Neweb Corporation | Circuit module of single round advanced encryption standard |
Also Published As
Publication number | Publication date |
---|---|
US20110246548A1 (en) | 2011-10-06 |
TW201135477A (en) | 2011-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI406138B (zh) | 循序運算的伽羅瓦乘法架構與方法 | |
Farashahi et al. | FPGA based fast and high-throughput 2-slow retiming 128-bit AES encryption algorithm | |
JP3784156B2 (ja) | モジュラ掛け算方法 | |
US8280938B2 (en) | Semi-sequential Galois Field multiplier and the method for performing the same | |
Rachh et al. | Efficient implementations for AES encryption and decryption | |
JP4783382B2 (ja) | モンゴメリ法用乗算剰余計算装置 | |
CN103684749B (zh) | 一种基于面积与性能平衡优化的klein加密实现方法 | |
Lemsitzer et al. | Multi-gigabit GCM-AES architecture optimized for FPGAs | |
Shahbazi et al. | Design and implementation of an ASIP-based cryptography processor for AES, IDEA, and MD5 | |
Liu et al. | High performance modular multiplication for SIDH | |
Rajasekar et al. | Design and implementation of power and area optimized AES architecture on FPGA for IoT application | |
JP4098719B2 (ja) | Aesアルゴリズム用のプログラマブルデータ暗号化エンジン | |
CN111865559B (zh) | 一种sm4算法快速实现方法及装置 | |
Singha et al. | Implementation of AES using composite field arithmetic for IoT applications | |
US6662201B1 (en) | Modular arithmetic apparatus and method having high-speed base conversion function | |
JP2005513541A6 (ja) | Aesアルゴリズム用のプログラマブルデータ暗号化エンジン | |
Sanap et al. | Design of efficient S-box for Advanced Encryption Standard | |
CN109033893B (zh) | 基于合成矩阵的aes加密单元、aes加密电路及其加密方法 | |
CN109033847B (zh) | Aes加密运算单元、aes加密电路及其加密方法 | |
Hasan et al. | Toeplitz matrix approach for binary field multiplication using quadrinomials | |
Standaert et al. | Efficient FPGA implementations of block ciphers KHAZAD and MISTY1 | |
Shastry et al. | Rolled architecture based implementation of AES using T-Box | |
CN108989018B (zh) | 一种aes加密单元、aes加密电路及加密方法 | |
Hulle et al. | Compact Reconfigurable Architecture for Sosemanuk Stream Cipher | |
CN102236540A (zh) | 循序运算的伽罗瓦乘法架构与方法 |