專利名稱:伽羅瓦域乘法器系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種伽羅瓦(Galois)域乘法器系統(tǒng)。
相關(guān)申請本申請涉及Stein等人于2002年1月18日提交的名稱為“伽羅瓦域線性變換器”的美國申請,該美國申請要求Stein等人于2001年11月30日提交的名為“GF2-ALU”的臨時申請60/334,662的優(yōu)先權(quán)。本申請要求Stein等人于2001年11月30日提交的名為“并行伽羅瓦域乘法器”的臨時申請的優(yōu)先權(quán)。
背景技術(shù):
伽羅瓦域(GF)中具有系數(shù)的多項式的乘法被廣泛使用在通信系統(tǒng)中用于Reed Solomon(RS)編碼,并被廣泛用于高級加密標準(AES)中。對于傳統(tǒng)數(shù)字信號處理器(DSP),執(zhí)行伽羅瓦域乘法是困難且耗時的。對有限沖激響應(yīng)(FIR)濾波和其它乘法累加(MAC)強化運算,DSP被優(yōu)化,但DSP不能有效地處理伽羅瓦域類型的運算。一種方法是利用一次處理一位的線性反饋移位寄存器(LFSR)在伽羅瓦域上使用直接多項式乘法和除法。這是非常慢的處理過程。例如,在用于位速率達到每秒40兆位的AES類型應(yīng)用的寬帶通信中,會有高達每秒5百萬次(MPS)GF乘法,且每一次乘法可能要求許多(諸如60-100)次的運算。另一種方法是使用查表來執(zhí)行伽羅瓦域乘法。典型地,這種方法要求10-20或更多次循環(huán),這對于5mps導(dǎo)致稍微少一些但仍然是非常大量的運算,如20×5=100mps或更多。Reed-Solomon(里德-索羅門)碼作為對寬帶網(wǎng)絡(luò)的優(yōu)選的錯誤控制編碼方案而被廣泛接受。因為給系統(tǒng)設(shè)計者提供了基于信道條件對數(shù)據(jù)帶寬和想要的糾錯能力進行權(quán)衡的獨特靈活性,Reed-Solomon編碼器和譯碼器的可編程實現(xiàn)是有吸引力的解決方案。Reed-Solomon譯碼的第一個步驟是并發(fā)位的計算。并發(fā)位在形式上能夠被定義為Si=R modG,其中i=(0,1...15)。接收到的碼字可以以多項式形式表示為Ri=r0XN-1+r1XN-2+...rN-1,其中接收到的字的長度為N??梢钥闯?,計算并發(fā)位等于在伽羅瓦域上以如由生成多項式的i次方根的j次方定義的根進行多項式賦值。對于在Reed-Solomon算法中的每一個接收到的字,要計算16個并發(fā)位,這就使得運算次數(shù)增至16倍而達到每秒1.6千兆次運算——在目前的微處理器上不能實現(xiàn)。使用直接乘法代替查表使運算速率提高到每秒6.4千兆次運算。隨著通信領(lǐng)域的擴張和對通信數(shù)據(jù)的加密要求,對伽羅瓦域乘法的需要正顯著地增加。這就使問題進一步變復(fù)雜,因為每一個領(lǐng)域——錯誤檢查、加密——需要在基于不同查表組要求而不同的伽羅瓦域上的伽羅瓦域乘法。
發(fā)明內(nèi)容
因此,本發(fā)明的一個目的在于提供一種新的改進的伽羅瓦域乘法器系統(tǒng)。
本發(fā)明的另一個目的是提供一種比當前的查表和線性反饋移位寄存器(LFSR)實現(xiàn)方式快得多的新的改進的伽羅瓦域乘法器系統(tǒng)。
本發(fā)明的又一個目的是提供一種減少所需的存儲量的新的改進的伽羅瓦域乘法器系統(tǒng)。
本發(fā)明的再一個目的是提供一種顯著地減少每秒所需的運算次數(shù)的新的改進的伽羅瓦域乘法器系統(tǒng)。
本發(fā)明還有一個目的是提供一種能夠減少所需的操作到一個循環(huán)的一小部分的新的改進的伽羅瓦域乘法器系統(tǒng)。
本發(fā)明起因于實現(xiàn)了通過在一個循環(huán)中的兩個步驟進行超過一次的伽羅瓦域乘法來實現(xiàn)伽羅瓦域乘法,第一步,在伽羅瓦域上兩個具有系數(shù)的多項式相乘得到乘積,第二,所得到的乘積除以預(yù)定的不可約的多項式得到模余數(shù);還實現(xiàn)了一種能實現(xiàn)伽羅瓦域乘法的系統(tǒng),其中包括響應(yīng)相乘的乘積來預(yù)測模余數(shù)的伽羅瓦域線性變換器電路,以及向伽羅瓦域線性變換器電路提供一組系數(shù)用于預(yù)測對預(yù)定的不可約多項式的模余數(shù)的存儲電路。
本發(fā)明的伽羅瓦域乘法器系統(tǒng)的特征在于包括用于將在伽羅瓦域上兩個具有系數(shù)的多項式相乘以得到其乘積的乘法器電路;和響應(yīng)乘法器電路用于預(yù)測多項式乘積對不可約多項式的模余數(shù)的伽羅瓦域線性變換器電路。一個存儲電路向伽羅瓦域線性變換器電路提供一組系數(shù),以預(yù)測對預(yù)定的不可約多項式的模余數(shù)。
在一種優(yōu)選的實施方式中,伽羅瓦域線性變換器電路用不可約多項式除多項式乘積以得到模余數(shù)。乘法器電路可包括用于多項式乘積的每一項以實現(xiàn)伽羅瓦乘法的與邏輯電路。乘法器電路可包括用于多項式乘積的項的每一對以實現(xiàn)伽羅瓦加法的異或邏輯電路。伽羅瓦域線性變換器電路可包括伽羅瓦域線性變換器,該伽羅瓦域線性變換器包括響應(yīng)在一個或多個位流中的多個輸入位并具有提供那些位的伽羅瓦域線性變換的多個輸出的矩陣。該矩陣可包括多個元件,每一個元件包括異或邏輯電路和與邏輯電路,該與邏輯電路有連接到異或邏輯電路的輸出和連接到輸入位之一的輸入。伽羅瓦域線性變換器電路可包括多個伽羅瓦域變換器單元,且存儲電路可向這些伽羅瓦域變換器單元并行提供系數(shù)。伽羅瓦域線性變換器電路可包括與伽羅瓦域線性變換器單元一一關(guān)聯(lián)的多個存儲單元。其中,存儲電路向與邏輯電路提供輸入,用于設(shè)置矩陣,以便在單次循環(huán)中得到各輸入的多循環(huán)伽羅瓦域線性變換。
從下面的對優(yōu)選實施方式和附圖的描述中,其它的目的、特征和優(yōu)點對那些本領(lǐng)域技術(shù)人員來說是顯而易見的,其中圖1是根據(jù)本發(fā)明的伽羅瓦域乘法器系統(tǒng)的示意框圖;圖1A是圖1的伽羅瓦域線性變換器單元的示意圖,示出了為得到預(yù)測結(jié)果對其元件和那些相關(guān)聯(lián)的存儲元件的設(shè)計。
圖2是用于圖1的乘法器電路的使具有GF(2n)中系數(shù)的多項式相乘的多項式乘法器元件的示意圖;圖3是用于圖1的存儲電路的存儲器件的示意圖;圖4是圖1的伽羅瓦域線性變換器電路的元件的示意圖;圖4A是不使用特定的“與”門實現(xiàn)邏輯“與”功能的一種伽羅瓦域線性變換器單元元件的可選結(jié)構(gòu)的示意圖;圖5是根據(jù)本發(fā)明的與數(shù)字信號處理器(DSP)關(guān)聯(lián)的伽羅瓦域乘法器系統(tǒng)的示意圖;以及圖6是根據(jù)本發(fā)明的與GF算術(shù)邏輯單元整體形成的伽羅瓦域乘法器系統(tǒng)的示意框圖。
優(yōu)選實施方式伽羅瓦域GF(n)是能夠執(zhí)行兩個二元運算的元素的集合。加法和乘法必須滿足交換律、結(jié)合律和分配律。具有有限個數(shù)元素的域是有限域。一個二元域的例子是在模2加法和模2乘法下的集合{0,1},表示為GF(2).在下圖示出的表中定義模2加法和乘法運算。第一行和第一列表示給伽羅瓦域加法器和乘法器的輸入。例如,1+1=0和1*1=1。
模2加法(異或)
模2乘法(與)
一般來說,如果p是任意的素數(shù),則可以證明GF(p)是具有p個元素的有限域,GF(pm)是具有pm個元素的擴張域。另外,域的不同元素能夠通過將一個域元素α提升到不同的冪而被生成為元素α的不同冪。例如GF(256)有256個元素,能夠通過提升本原元素α到256個不同的冪來生成所有元素。
另外,其系數(shù)是二進制數(shù)的多項式屬于GF(2)。對于一個次數(shù)為m的在GF(2)上的多項式,如果它不能被次數(shù)小于m但大于0的在GF(2)上的任何多項式除盡,則稱它是不可約的。多項式F(X)=X2+X+1是一個不可約多項式,因為它不能被X或X+1中的任一個除盡。能除盡X2m-1+1的次數(shù)為m的不可約多項式被認為是本原多項式。對給定的m,可能有超過一個的本原多項式。在大多數(shù)的通信標準中經(jīng)常使用的對m=8的本原多項式的一個例子是F(X)=X8+X4+X3+X2+X+1。
伽羅瓦域加法以軟件容易實現(xiàn),因為它與模加法相同。例如,如果29和16是在GF(28)中的兩個元素,那么它們的加法可作為一次異或運算簡單完成,即29(11101)16(10000)=13(01101)。
另一方面,伽羅瓦域乘法更復(fù)雜一點,如下面例子所示,通過重復(fù)本原元素α的乘法,計算GF(24)的所有元素。為生成GF(24)的域元素,選擇一個次數(shù)m=4的本原多項式G(x),如G(x)=X4+X+1。為了使乘法為求模運算,以便乘法的結(jié)果仍然是該域的元素,使用下面的恒等式F(α)=α4+α+1=0,使任一具有第5位組的元素變?yōu)?位結(jié)果。通過設(shè)置α4=1+α,重復(fù)使用該恒等式來形成域中的不同的元素。由此域中的元素能夠如下列舉{0,1,α,α2,α3,1+α,α+α2,α2+α3,1+α+α3,...,1+α3}因為α是GF(24)的本原元素,能夠被設(shè)置為2來生成GF(24)的域元素為{0,1,2,3,4,8,3,6,7,12,11...9}。
可以看到,伽羅瓦域多項式乘法能夠在兩個基本步驟中實現(xiàn)。第一步是多項式乘積c(x)=a(x)*b(x)的計算,該乘積被代數(shù)展開,相同的冪被匯集(加法對應(yīng)于相應(yīng)的項之間的異或運算)以給出c(x)。
例如c(x)=(a3x3+a2x2+a1x1+a0)*(b3x3+b2x3+b1x1+b0)c(x)=c6x6+c5x5+c4x4+c3x3+c2x2+c1x1+c0,其中
表Ic0=a0*b0c1=a1*b0a0*b1c2=a2*b0a1*b1a0*b2c3=a3*b0a2*b1a1*b2a0*b3c4=a3*b1a2*b2a1*b3c5=a3*b2a2*b3c6=a3*b3第二步是計算d(x)=c(x)模p(x)。
為了說明,執(zhí)行多項式相乘對不可約多項式求模的乘法。例如(如果m(x)=x8+x4+x3+x+1){57}*{83}={c1}因為,第一步(x6+x4+x2x+1)+(x7+x+1)=x13x11x9x8x7x7x5x3x2xx6x4x2xx=x13x11x9x8x6x5x4x31第二步x13+x11+x9+x8+x6+x5+x4+x3+1模(x8+x4+x3+x+1)=x7+x6+1圖1所示關(guān)于本方法的一種改進的伽羅瓦域乘法器系統(tǒng)10包括乘法器電路12,該乘法器電路12用于將兩個具有在伽羅瓦域上的系數(shù)的多項式即在R1寄存器14中的多項式x0-x7和在R0寄存器16中的多項式y(tǒng)0-y7相乘以得到其乘積。乘法器電路12實際包括多個乘法器元件12a,12b,12c...12n。
每一項包括一個以*表示的與功能,每一對項由以表示的邏輯異或結(jié)合。如表I中表示的該乘積被提交給伽羅瓦域線性變換器電路18,該伽羅瓦域線性變換器電路18可包括多個伽羅瓦域線性變換器單元18a,18b,18c,...18n,每個伽羅瓦域線性變換器單元由15×8個元件35組成,元件35響應(yīng)由乘法器電路12產(chǎn)生的乘積以預(yù)測該多項式乘積對預(yù)定的不可約的多項式的模余數(shù)。x0,y0在單元18a中,x1,y1在單元18b中,x2,y2在單元18c中以及xn,yn在單元18n中執(zhí)行相乘。這種獨特的伽羅瓦域線性變換器電路和其每一個變換器單元的操作在Stein等人的名為“伽羅瓦域線性變換器”的美國專利申請中解釋,其全部內(nèi)容在此引作參考。每一個伽羅瓦域線性變換器單元通過將多項式乘積除以一個不可約多項式來預(yù)測模余數(shù)。該不可約多項式可以是例如表II中示出的任一個。
表IIGF(21)0x3(x+1)GF(22)0x7(x2+x+1)GF(23)0xB(x3+x+1)0xD(x3+x2+1)GF(24)0x13(x4+x+1)0x19(x4+x3+1)GF(25)0x25(x5+x2+1)0x29(x5+x3+1)0x2F(x5+x3+x2+x+1)0x37(x5+x4+x2+x+1)
0x3B(x5+x4+x3+x+1)0x3D(x5+x4+x3+x2+1)GF(26)0x43(x6+x+1)0x5B(x6+x4+x3+x+1)0x61(x6+x5+1)0x67(x6+x5+x2+x+1)0x6D(x6+x5+x3+x2+1)0x73(x6+x5+x4+x+1)GF(27)0x83(x7+x+1)0x89(x7+x3+1)0x8F(x7+x3+x2+x+1)0x91(x7+x4+1)0x9D(x7+x4+x3+x2+1)0xA7(x7+x5+x2+x+1)0xAB(x7+x5+x3+x+1)0xB9(x7+x5+x4+x3+1)0xBF(x7+x5+x4+x3+x2+x+1)0xC1(x7+x6+1)0xCB(x7+x6+x3+x+1)0xD3(x7+x6+x4+x+1)0xE5(x7+x6+x5+x2+1)0xF1(x7+x6+x5+x4+1)0xF7(x7+x6+x5+x4+x2+x+1)0xFD(x7+x6+x5+x4+x3+x2+1)GF(28)0x11D(x8+x4+x3+x2+1)0x12B(x8+x5+x3+x+1)0x12D(x8+x5+x3+x2+1)0x14D(x8+x6+x3+x2+1)0x15F(x8+x6+x4+x3+x2+x+1)0x163(x8+x6+x5+x+1)0x165(x8+x6+x5+x2+1)0x169(x8+x6+x5+x3+1)0x171(x8+x6+x5+x4+1)0x187(x8+x7+x2+x+1)0x18D(x8+x7+x3+x2+1)0x1A9(x8+x7+x5+x3+1)0x1C3(x8+x7+x6+x+1)0x1CF(x8+x7+x5+x3+x2+x+1)0x1E7(x8+x7+x6+x5+x2+x+1)0x1F5(x8+x7+x5+x4+x2+1)該伽羅瓦域乘法器表示了GF(28)能夠用所有的冪28和較小的冪執(zhí)行的場合,如表II中所示。對更低階的多項式而言,高于所選冪的系數(shù)會是0,例如,如果執(zhí)行GF(25),在GF(25)和GF(28)之間的系數(shù)將等于0。那么,不會在該級之上進行預(yù)測。
對這一特定的實例,選擇在組GF MUL 8中的0x11D作為不可約或本原多項式。存儲電路20向伽羅瓦域線性變換器電路提供一組系數(shù)用于預(yù)測對該特定的本原或不可約多項式的模余數(shù)。對具有本原多項式0x11D的伽羅瓦域GF(28),存儲電路20生成如圖1A所示的矩陣設(shè)置值,其中每一線交叉例如22表示線性變換器單元18a,18b,...18n的一個元件35。每一個放大的圓點24表示因在存儲電路20中的關(guān)聯(lián)存儲元件26中存在1而被啟用的一個元件。在縱列28中示出的是為產(chǎn)生在不可約多項式的求模運算的一個循環(huán)中的預(yù)測而提供適當?shù)?的模式的電路20的存儲元件26的設(shè)計。圖1A中所示的矩陣是一個15個輸入和8個輸出的陣列。8個輸出表示一個字節(jié),15個輸入c0-c14比模少1個以保持結(jié)果在8位域中。
根據(jù)本發(fā)明的GF乘法的一個實例如下顯示在GF()乘法之前;在GF()乘法之后;多項式0x11d 多項式0x11d45 23 00 01h45 23 00 01hGF() GF()57 34 00 01h57 34 00 01hxx xx xx xxh 72 92 00 01h如圖2所示,多項式乘法器電路12的每一個元件29包括多個同多項式乘積的每一項一一對應(yīng)的與門30,和同多項式乘積中的項的每一對一一對應(yīng)的異或門32。與門30執(zhí)行乘法,而異或門32實現(xiàn)加法。每一個元件35接收來自前一個元件的輸入I,并向下一個元件提供輸出。第一個元件的輸入接地。如圖3所示,存儲電路20的每一個元件33包括一個觸發(fā)器34,該觸發(fā)器34有一個數(shù)據(jù)輸入D、一個Wr時鐘輸入Clk、和一個使能輸出Q。伽羅瓦域線性變換器電路和伽羅瓦域線性變換器電路的每一個單元的每一個元件包括圖4所示元件35,該元件35有一個與門36和一個異或門38。如也在Stein等人于2002年1月18日提交的名為“伽羅瓦域線性變換器”的美國申請(其全部內(nèi)容在此引作參考)中說明的一樣,在每一個元件29、33和35中所示具體的實現(xiàn)方式并不是對本發(fā)明的限制。例如存儲器件33不需要通過觸發(fā)器,也能使用任意其它的存儲器件實現(xiàn)。在圖2和4中元件29和35分別需要與功能和異或功能,但它們可以有許多不需要特定的異或門或與門的其它途徑來實現(xiàn),只要它們是在布爾判斷中有同異或門和與門一樣的功能的邏輯電路即可。例如,與功能可以不用特定的與門,而使用圖4A的執(zhí)行與功能的2:1輸入復(fù)用器37來實現(xiàn)。
伽羅瓦域線性變換器電路18被實施為在諸如圖5的數(shù)字信號處理器DSP40的可編程邏輯器件或?qū)崿F(xiàn)為集成電路的通用微處理器內(nèi)的功能單元。該功能單元通過在總線42和44上向該單元提供適當?shù)牟僮鲾?shù)的處理器指令進行操作。以伽羅瓦域線性變換器電路18用作算術(shù)邏輯單元48本身的一部分的方式,使用片上數(shù)據(jù)寄存器46來實現(xiàn)提供給該單元和來自該單元的數(shù)據(jù)流。伽羅瓦域線性變換器電路18和乘法器電路12與算術(shù)邏輯單元48的結(jié)合允許更通用的功能,使伽羅瓦域乘法系統(tǒng)可以在甚至除檢錯和加密之外的允許多種不同的算法實現(xiàn)的其它傳統(tǒng)運算中執(zhí)行。有兩個原因使得使用單個存儲電路20來設(shè)置在伽羅瓦域線性變換器單元18a,18b,...18n中每一個中的值是有利的節(jié)省硬件和允許在一次操作中在一個循環(huán)中同時設(shè)置所有的值。這對在輸入信號上有限制的場合特定有用。例如,當輸入被限制在每循環(huán)32字節(jié)的情況下,要使用多次循環(huán)來依次加載每一個單元18a-18n,然而,通過本發(fā)明可以預(yù)期,只要需要,分離的存儲器件20a,20b,20c,...20n能夠與各個伽羅瓦域線性變換器單元18a,18b,18c,...18n關(guān)聯(lián)。
除了僅僅關(guān)聯(lián)算術(shù)邏輯單元以外,如圖6所示,伽羅瓦域線性變換器電路18實際上可使用算術(shù)邏輯單元的一部分。即,部分18′a,18′b,18′c,...18′n可以由算術(shù)邏輯電路48′的部分48′a,48′b,48′c,...48′n形成。
盡管本發(fā)明的具體的特征在一些附圖中有示出,而在其它附圖中沒有示出,但這只是為了方便,根據(jù)本發(fā)明,每一個特征可以與其它任意或所有的特征相結(jié)合。其中使用的單詞“包括”、“包含”、“具有”和“帶有”應(yīng)做寬廣和全面的理解,并不限于任何物理互連。此外,在本發(fā)明中公開的任何實施方式不應(yīng)認為是僅有的可能方式。
其它實施方式對那些本領(lǐng)域技術(shù)人員來說是顯而易見的,并包含在隨后的權(quán)利要求書中。
權(quán)利要求
1.一種伽羅瓦域乘法器系統(tǒng),包括乘法器電路,用于將在伽羅瓦域上兩個具有系數(shù)的多項式相乘以得到其乘積;伽羅瓦域線性變換器電路,響應(yīng)所述乘法器電路,用于預(yù)測該多項式乘積對一個不可約多項式的模余數(shù);以及存儲電路,用于向所述伽羅瓦域線性變換器電路提供一組系數(shù),以預(yù)測對預(yù)定的不可約多項式的模余數(shù)。
2.根據(jù)權(quán)利要求1所述的伽羅瓦域乘法器系統(tǒng),其中所述伽羅瓦域線性變換器電路用所述不可約多項式除所述多項式乘積,以得到所述模余數(shù)。
3.根據(jù)權(quán)利要求1所述的伽羅瓦域乘法器系統(tǒng),其中所述乘法器電路包括用于所述多項式乘積的每一項以實現(xiàn)伽羅瓦乘法的與邏輯電路。
4.根據(jù)權(quán)利要求1所述的伽羅瓦域乘法器系統(tǒng),其中所述乘法器電路包括用于所述多項式乘積的項的每一對以實現(xiàn)伽羅瓦加法的異或邏輯電路。
5.根據(jù)權(quán)利要求1所述的伽羅瓦域乘法器系統(tǒng),其中所述伽羅瓦域線性變換器電路包括響應(yīng)在一個或多個位流中的多個輸入位并具有用于提供那些位的伽羅瓦域線性變換的多個輸出的矩陣;所述矩陣包括多個元件,每一個元件包括異或邏輯電路和與邏輯電路,該與邏輯電路具有連接到該異或邏輯電路的輸出和連接到所述輸入位之一的輸入,所述存儲電路提供所述一組系數(shù)用于設(shè)置該矩陣,以在單次循環(huán)中獲得各輸入的多循環(huán)伽羅瓦域線性變換。
6.根據(jù)權(quán)利要求1所述的伽羅瓦域乘法器系統(tǒng),其中所述伽羅瓦域線性變換器包括多個伽羅瓦域變換器單元,且所述存儲電路向所述各伽羅瓦域變換器單元并行提供所述系數(shù)。
7.根據(jù)權(quán)利要求1所述的伽羅瓦域乘法器系統(tǒng),其中所述伽羅瓦域線性變換器包括多個伽羅瓦域變換器單元,且所述存儲電路包括與所述伽羅瓦域線性變換器單元一一關(guān)聯(lián)的多個存儲單元。
全文摘要
一種伽羅瓦域乘法器系統(tǒng)(10)包括用于將在伽羅瓦域上兩個具有系數(shù)的多項式相乘以得到其乘積的乘法器電路(12);響應(yīng)該乘法器電路,用于預(yù)測多項式乘積對不可約的多項式的模余數(shù)的伽羅瓦域線性變換器電路(18);以及用于向該伽羅瓦域線性變換器電路提供一組系數(shù)以預(yù)測對預(yù)定不可約多項式的模余數(shù)的存儲電路(20)。
文檔編號G06F11/10GK1589429SQ02822858
公開日2005年3月2日 申請日期2002年11月18日 優(yōu)先權(quán)日2001年11月30日
發(fā)明者約瑟夫·斯坦, 海姆·普利莫, 喬舒亞·A·卡布羅特斯基 申請人:阿納洛格裝置公司