本實(shí)用新型涉及一種求解線性方程組的裝置,特別涉及一種基于有限域的線性方程組求解裝置。
背景技術(shù):
線性方程組是各個(gè)方程關(guān)于未知變量均為一次的方程組,由多個(gè)線性方程組成。線性方程也稱一次方程,指未知變量都是一次的方程。它的一般的形式是ax+by+...+cz=d,其中x,y,z是未知變量,a,b,c,d是已知常量。線性方程的等式兩邊乘以任何相同的非零數(shù),方程的本質(zhì)都不受影響。
求解線性方程組在很多數(shù)學(xué)問題和工程問題有廣泛的應(yīng)用。假定線性方程組是關(guān)于m個(gè)未知變量的方程組,則它包含m個(gè)線性方程。可以采用高斯消元法或高斯-約當(dāng)消元法求解線性方程組,從而獲得m個(gè)未知變量的值。高斯消元法通過(guò)多次迭代,將線性方程組化成上三角或下三角的形式,其中每次迭代的操作包括找主元、歸一和消元;若方程組有解,再利用代入法求解出方程組的最終解。高斯-約當(dāng)法是高斯消元法的一個(gè)變種,只需要通過(guò)多次迭代即可求解線性方程組。
有限域上的線性方程組是指方程組中的每個(gè)系數(shù)都是有限域上的元素。有限域又稱伽羅瓦域(Galois Field,GF),是含有有限個(gè)元素的域,常用的有限域形式有GF(2)和GF(2n),其中n是正整數(shù)。復(fù)合域是有限域的一種特殊形式,常用的形式有GF((2n)2),被廣泛應(yīng)用于通信和密碼等領(lǐng)域。
求解有限域的線性方程組是一個(gè)非常消耗資源的任務(wù),目前對(duì)于求解有限域線性方程組的方法一般使用的是軟件方法,而利用硬件裝置來(lái)優(yōu)化有限域的線性方程組的求解較少見。
技術(shù)實(shí)現(xiàn)要素:
因此,為了克服現(xiàn)有技術(shù)的不足,本實(shí)用新型的目的在于提供一種基于有限域的線性方程組求解裝置。
具體地,本實(shí)用新型實(shí)施例提出的一種基于有限域的線性方程組求解裝置包括:主處理器,電連接線性方程組解輸出端口和多個(gè)輸入端口;存儲(chǔ)器,電連接所述主處理器而作為存儲(chǔ)器件;GF(2)處理器,電連接所述主處理器而作為基于有限域GF(2)的線性方程組的求解器件;GF((2n)2)處理器,電連接所述主處理器而作為基于復(fù)合域GF((2n)2)的線性方程組的求解器件;找主元運(yùn)算器;歸一運(yùn)算器;消元運(yùn)算器;以及調(diào)度器,電連接所述存儲(chǔ)器、所述GF(2)處理器、所述GF((2n)2)處理器、所述找主元運(yùn)算器、所述歸一運(yùn)算器和所述消元運(yùn)算器。
在本實(shí)用新型的一個(gè)實(shí)施例中,所述主處理器包括總控制器、接口控制器和時(shí)序控制器,所述總控制器電連接所述接口控制器和所述時(shí)序控制器,所述線性方程組解輸出端口電連接所述接口控制器。
在本實(shí)用新型的一個(gè)實(shí)施例中,所述多個(gè)輸入端口包括電連接所述接口控制器的系數(shù)增廣矩陣輸入端口、GF(2n)不可約多項(xiàng)式輸入端口、GF((2n)2)不可約多項(xiàng)式輸入端口、時(shí)鐘輸入端口和復(fù)位輸入端口。
在本實(shí)用新型的一個(gè)實(shí)施例中,所述存儲(chǔ)器包括多項(xiàng)式存儲(chǔ)器和矩陣存儲(chǔ)器。
在本實(shí)用新型的一個(gè)實(shí)施例中,所述GF(2)處理器包括第一計(jì)數(shù)器和GF(2)運(yùn)算器,所述第一計(jì)數(shù)器采用一個(gè)自增加法電路。
在本實(shí)用新型的一個(gè)實(shí)施例中,所述GF((2n)2)處理器包括第二計(jì)數(shù)器和GF((2n)2)運(yùn)算器,所述第二計(jì)數(shù)器采用一個(gè)自增加法電路。
在本實(shí)用新型的一個(gè)實(shí)施例中,所述找主元運(yùn)算器包括第一控制器和電連接所述第一控制器的第一寄存器組,所述第一控制器包括非零判斷電路和有限域元素交換電路。
在本實(shí)用新型的一個(gè)實(shí)施例中,所述歸一運(yùn)算器包括:第二控制器、電連接所述第二控制器的第二寄存器組、有限域乘法器和有限域求逆器,所述有限域乘法器和所述有限域求逆器均電連接所述第二控制器以供調(diào)用,所述有限域乘法器包含與邏輯和異或邏輯門電路,所述有限域求逆器包括與邏輯和異或邏輯門電路。
在本實(shí)用新型的一個(gè)實(shí)施例中,所述消元運(yùn)算器包括第三控制器、電連接所述第三控制器的第三寄存器組、有限域乘法器和有限域加法器,所述有限域乘法器和所述有限域加法器均電連接所述第三控制器以供調(diào)用,所述有限域乘法器包含與邏輯和異或邏輯門電路,所述有限域加法器包含異或邏輯門電路。
在本實(shí)用新型的一個(gè)實(shí)施例中,所述基于有限域的線性方程組求解裝置為專用集成電路器件或可編程邏輯器件。
本實(shí)用新型實(shí)施例提供的基于有限域的線性方程組求解裝置,能夠求解復(fù)合域的線性方程組,輸入需要求解的線性方程組的系數(shù)增廣矩陣以及有限域的不可約多項(xiàng)式,經(jīng)過(guò)計(jì)算后輸出相應(yīng)的線性方程組的解,具有消耗資源少等特點(diǎn),可以廣泛運(yùn)用于各種工程領(lǐng)域,特別是密碼算法的硬件實(shí)現(xiàn)和各種數(shù)學(xué)問題的求解中。
通過(guò)以下參考附圖的詳細(xì)說(shuō)明,本實(shí)用新型的其它方面和特征變得明顯。但是應(yīng)當(dāng)知道,該附圖僅僅為解釋的目的設(shè)計(jì),而不是作為本實(shí)用新型的范圍的限定。還應(yīng)當(dāng)知道,除非另外指出,不必要依比例繪制附圖,它們僅僅力圖概念地說(shuō)明此處描述的結(jié)構(gòu)和流程。
附圖說(shuō)明
下面將結(jié)合附圖,對(duì)本實(shí)用新型的具體實(shí)施方式進(jìn)行詳細(xì)的說(shuō)明。
圖1是根據(jù)一個(gè)示例性實(shí)施例示出的一種基于有限域的線性方程組求解裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本實(shí)用新型的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本實(shí)用新型的具體實(shí)施方式做詳細(xì)的說(shuō)明。
如圖1所示,本實(shí)用新型實(shí)施例提出的一種基于有限域的線性方程組求解裝置10包括:主處理器11、存儲(chǔ)器12、GF(2)處理器13、GF((2n)2)處理器14、調(diào)度器15、找主元運(yùn)算器16、歸一運(yùn)算器17和消元運(yùn)算器18。
其中,主處理器11為本裝置10的核心器件,其例如包含總控制器111、接口控制器113和時(shí)序控制器115。
存儲(chǔ)器12是本裝置10的存儲(chǔ)器件,其例如包含多項(xiàng)式存儲(chǔ)器121和矩陣存儲(chǔ)器123。
GF(2)處理器13是基于有限域GF(2)的線性方程組的求解器件,其例如包含第一計(jì)數(shù)器131和GF(2)運(yùn)算器133。
GF((2n)2)處理器14是基于復(fù)合域(有限域)GF((2n)2)的線性方程組的求解器件,其例如包含第二計(jì)數(shù)器141和GF((2n)2)運(yùn)算器143。
調(diào)度器15用于本裝置10中各器件之間的調(diào)度和協(xié)調(diào),其具體例如用于協(xié)調(diào)存儲(chǔ)器12、GF(2)處理器13和GF((2n)2)處理器14以及調(diào)度找主元運(yùn)算器16、歸一運(yùn)算器17和消元運(yùn)算器18;本實(shí)施例中,調(diào)度器15電連接存儲(chǔ)器12、GF(2)處理器13、GF((2n)2)處理器14、找主元運(yùn)算器16、歸一運(yùn)算器17和消元運(yùn)算器18。
找主元運(yùn)算器16用于執(zhí)行求解基于有限域GF(2)和基于有限域GF((2n)2)的線性方程組的找主元運(yùn)算,其例如包含第一控制器161和第一寄存器組163。
歸一運(yùn)算器17用于執(zhí)行求解基于有限域GF(2)和基于有限域GF((2n)2)的線性方程組的歸一運(yùn)算,其例如包含第二控制器171、第二寄存器組173、有限域乘法器175和有限域求逆器177。
消元運(yùn)算器18用于執(zhí)行求解基于有限域GF(2)和基于有限域GF((2n)2)的線性方程組的消元運(yùn)算,其例如包含第三控制器181、第三寄存器組183、有限域乘法器185和有限域加法器187。
更具體地,主處理器11的總控制器111控制本裝置10的存儲(chǔ)器12、GF(2)處理器13和GF((2n)2)處理器14,實(shí)現(xiàn)對(duì)存儲(chǔ)器12的讀寫、輸入基于有限域的線性方程組的系數(shù)增廣矩陣和不可約多項(xiàng)式、輸出基于有限域的線性方程組的解和控制GF(2)處理器13和GF((2n)2)處理器14;本實(shí)施例中,總控制器111電連接存儲(chǔ)器12、GF(2)處理器13和GF((2n)2)處理器14。
主處理器11的接口控制器113控制本裝置10的輸入和輸出接口,本實(shí)施例的輸入和輸出接口包含:輸入端口A、輸入端口p(x)、輸入端口p(x)、輸入端口clk、輸入端口res和輸出端口V。其中,輸入端口A用于輸入需要求解的基于有限域的線性方程組的系數(shù)增廣矩陣而作為系數(shù)增廣矩陣輸入端口,例如系數(shù)增廣矩陣的大小是m×(m+1)、系數(shù)增廣矩陣的元素是aij且均是有限域的元素,其中0≤i≤m-1,0≤j≤m,2≤m≤20;輸入端口p(x)用于輸入有限域GF(2n)的不可約多項(xiàng)式而作為GF(2n)不可約多項(xiàng)式輸入端口,此處的不可約多項(xiàng)式的形式例如是p(x)=xn+pn-1xn-1+pn-2xn-2+...+p1x+1,其中n是正整數(shù),1≤n≤10,pn-1,pn-2,...,p1是GF(2)的元素;輸入端口q(x)用于輸入有限域GF((2n)2)的不可約多項(xiàng)式而作為GF((2n)2)不可約多項(xiàng)式輸入端口,且該不可約多項(xiàng)式的形式例如是q(x)=x2+q1x+q0,其中q1,q0是GF(2n)的元素;輸入端口clk用于輸入時(shí)鐘信號(hào)而作為時(shí)鐘輸入端口,且該時(shí)鐘信號(hào)的頻率例如為50MHz,用單比特表示;輸入端口res用于輸入復(fù)位信號(hào)而作為復(fù)位輸入端口,且該復(fù)用信號(hào)用單比特表示,當(dāng)復(fù)位信號(hào)由0轉(zhuǎn)變成1時(shí)執(zhí)行復(fù)位,主處理器11的總控制器111通知裝置10內(nèi)各組成部件進(jìn)行初始化,初始化完成后復(fù)位信號(hào)由1轉(zhuǎn)變成0;輸出端口V用于輸出基于有限域的線性方程組的解而作為線性方程組解輸出端口,例如基于有限域的線性方程組解的寬度為m的向量,解的元素是vi,均是有限域的元素,其中0≤i≤m-1。
主處理器11的時(shí)序控制器115以輸入端口clk的時(shí)鐘信號(hào)為基準(zhǔn),控制本裝置10的各組成部件的時(shí)序。
存儲(chǔ)器12的多項(xiàng)式存儲(chǔ)器121用于存儲(chǔ)有限域GF(2n)的不可約多項(xiàng)式p(x)和有限域GF((2n)2)的不可約多項(xiàng)式q(x),例如其采用的存儲(chǔ)介質(zhì)是SSD(Solid-State Drive,固態(tài)硬盤),大小為1000比特(bits),有兩個(gè)輸入端口和兩個(gè)輸出端口,寬度是2n,可以同時(shí)讀取和寫入兩個(gè)GF((2n)2)的元素。
存儲(chǔ)器12的矩陣存儲(chǔ)器123用于存儲(chǔ)有限域GF((2n)2)的線性方程組的系數(shù)增廣矩陣A,例如其采用的存儲(chǔ)介質(zhì)是SSD,大小為10000比特(bits),有兩個(gè)輸入端口和兩個(gè)輸出端口,寬度是2n,可以同時(shí)讀取和寫入兩個(gè)GF((2n)2)的元素。
GF(2)處理器13的第一計(jì)數(shù)器131采用一個(gè)自增加法電路,用于對(duì)求解線性方程組的每一次迭代進(jìn)行計(jì)數(shù),例如初始值為0、最大值為m,每一輪迭代對(duì)第一計(jì)數(shù)器131的數(shù)值加一。
GF(2)處理器13的GF(2)運(yùn)算器133,用于執(zhí)行求解基于GF(2)的線性方程組中的運(yùn)算,從總控制器111獲得GF(2)的線性方程組的m×(m+1)大小的系數(shù)增廣矩陣A,調(diào)用找主元運(yùn)算器16對(duì)系數(shù)增廣矩陣A執(zhí)行找主元的操作,調(diào)用歸一運(yùn)算器17對(duì)系數(shù)增廣矩陣A執(zhí)行歸一的操作,調(diào)用消元運(yùn)算器18對(duì)系數(shù)增廣矩陣A執(zhí)行消元的操作,重復(fù)以上操作直至迭代完成,并輸出計(jì)算結(jié)果至主處理器11以便從線性方程組解輸出端口V輸出。
GF((2n)2)處理器14的第二計(jì)數(shù)器141采用一個(gè)自增加法電路,用于對(duì)求解線性方程組的每一次迭代進(jìn)行計(jì)數(shù),例如初始值為0、最大值為m,每一輪迭代對(duì)第二計(jì)數(shù)器141的數(shù)值加一。
GF((2n)2)處理器14的GF((2n)2)運(yùn)算器143,用于執(zhí)行求解基于GF((2n)2)的線性方程組中的運(yùn)算,從總控制器111獲得基于GF((2n)2)的線性方程組的m×(m+1)大小的系數(shù)增廣矩陣A、GF(2n)的不可約多項(xiàng)式p(x)和GF((2n)2)的不可約多項(xiàng)式q(x),調(diào)用找主元運(yùn)算器16對(duì)系數(shù)增廣矩陣A執(zhí)行找主元的操作,調(diào)用歸一運(yùn)算器17對(duì)系數(shù)增廣矩陣A執(zhí)行歸一的操作,調(diào)用消元運(yùn)算器18對(duì)系數(shù)增廣矩陣A執(zhí)行消元的操作,重復(fù)以上操作直至迭代完成,并輸出計(jì)算結(jié)果至主處理器11以便從線性方程組解輸出端口V輸出。
找主元運(yùn)算器16的第一控制器161,包括非零判斷電路和有限域元素交換電路,用于求解線性方程組中每一輪迭代。假定當(dāng)前是第k輪迭代,第一控制器161使用非零判斷電路判斷系數(shù)增廣矩陣A的元素ak-1,k-1是否為零,若ak-1,k-1不為零,則結(jié)束運(yùn)算;若ak-1,k-1為零,則繼續(xù)尋找不為零的元素,若ak-1+i,k-1不為零,則第一控制器161使用有限域元素交換電路依次將ak-1+i,j和ak-1,j進(jìn)行交換,其中i=1,2,...,1-k+m-1,j=0,1,...,m;此處第一控制器161更新線性方程組的系數(shù)增廣矩陣。
找主元運(yùn)算器16的第一寄存器組163,用于暫存運(yùn)算結(jié)果,其大小例如為6n比特;本實(shí)施例的第一寄存器組163電連接第一控制器161。
歸一運(yùn)算器17的第二控制器171,用于求解線性方程組中每一輪迭代。假定當(dāng)前是第k輪迭代,第二控制器171調(diào)用歸一運(yùn)算器17的有限域求逆器177計(jì)算ak-1,k-1-1;接著調(diào)用歸一運(yùn)算器17的有限域乘法器175計(jì)算ak-1,i=ak-1,i×ak-1,k-1-1,其中i=0,1,...,m;此處第二控制器171更新線性方程組的系數(shù)增廣矩陣。
歸一運(yùn)算器17的第二寄存器組173,用于暫存運(yùn)算結(jié)果,其大小例如為6n比特;本實(shí)施例的第二寄存器組173電連接第二控制器171。
歸一運(yùn)算器17的有限域乘法器175,電連接第二控制器171且用于執(zhí)行GF(2)的乘法和執(zhí)行GF((2n)2)的乘法。有限域乘法器175在執(zhí)行GF(2)的乘法時(shí),使用與邏輯門電路計(jì)算c(x)=a(x)×b(x),a(x)、b(x)和c(x)是GF(2)的元素;有限域乘法器175在執(zhí)行GF((2n)2)的乘法時(shí),使用與邏輯和異或邏輯門電路計(jì)算c(x)=a(x)×b(x),a(x)、b(x)和c(x)是GF((2n)2)的元素,可以表示為a(x)=a1x+a0,b(x)=b1x+b0,c(x)=c1x+c0,其中a1,a0,b1,b0,c1,c0是GF(2n)的元素;使用GF((2n)2)的不可約多項(xiàng)式q(x)=x2+q1x+q0計(jì)算GF((2n)2)的乘法c(x)=(a(x)×b(x))mod q(x)的找主元步驟如下:
(x1)利用GF(2n)乘法器計(jì)算a1b0,結(jié)果暫存歸一運(yùn)算器17的第二寄存器組173;
(x2)利用GF(2n)乘法器計(jì)算a0b1,結(jié)果暫存歸一運(yùn)算器17的第二寄存器組173;
(x3)利用GF(2n)加法器計(jì)算a1b0+a0b1,結(jié)果暫存歸一運(yùn)算器171的第二寄存器組173;
(x4)利用GF(2n)乘法器計(jì)算a1b1,結(jié)果暫存歸一運(yùn)算器17的第二寄存器組173;
(x5)利用GF(2n)乘法器計(jì)算a0b0,結(jié)果暫存歸一運(yùn)算器17的第二寄存器組173;
(x6)將a1b1x2+(a1b0+a0b1)x+a0b0與q(x)=x2+q1x+q0進(jìn)行模運(yùn)算,結(jié)果存儲(chǔ)至c(x);
在GF((2n)2)的乘法中使用的GF(2n)乘法器由與邏輯和異或邏輯門組成,使用GF(2n)的不可約多項(xiàng)式p(x)=xn+pn-1xn-1+pn-2xn-2+...+p1x+1計(jì)算GF(2n)的乘法c(x)=(a(x)×b(x))modp(x);在GF((2n)2)的乘法中使用的GF(2n)加法器由異或邏輯門組成。
歸一運(yùn)算器17的有限域求逆器177,電連接第二控制器171且用于執(zhí)行GF((2n)2)的求逆,使用與邏輯和異或邏輯門電路計(jì)算c(x)=a(x)-1,a(x)和c(x)是GF((2n)2)的元素,可以表示為a(x)=a1x+a0,c(x)=c1x+c0,其中a1,a0,c1,c0是GF(2n)的元素;使用GF((2n)2)的不可約多項(xiàng)式q(x)=x2+q1x+q0計(jì)算GF((2n)2)的求逆c(x)=a(x)-1的步驟如下:
(y1)利用GF(2n)乘法器計(jì)算a0a1,結(jié)果暫存歸一運(yùn)算器17的第二寄存器組173;
(y2)利用GF(2n)乘法器計(jì)算a0a1q1,結(jié)果暫存歸一運(yùn)算器17的第二寄存器組173;
(y3)利用GF(2n)加法器計(jì)算a0+q0,結(jié)果暫存歸一運(yùn)算器17的第二寄存器組173;
(y4)利用GF(2n)加法器計(jì)算a0a1q1+a0+q0,結(jié)果暫存歸一運(yùn)算器17的第二寄存器組173;
(y5)利用有限域求逆器177中的GF(2n)求逆器計(jì)算(a0a1q1+a0+q0)-1,結(jié)果暫存歸一運(yùn)算器17的第二寄存器組173;
(y6)利用GF(2n)乘法器計(jì)算a1(a0a1q1+a0+q0)-1,結(jié)果暫存c1;
(y7)利用GF(2n)求逆器計(jì)算a1-1,結(jié)果暫存歸一運(yùn)算器17的第二寄存器組173;
(y8)利用GF(2n)乘法器計(jì)算a1-1a0,結(jié)果暫存歸一運(yùn)算器17的第二寄存器組173;
(y9)利用GF(2n)加法器計(jì)算q1+a1-1a0,結(jié)果暫存歸一運(yùn)算器17的第二寄存器組173;
(y10)利用GF(2n)乘法器計(jì)算a1(a0a1q1+a0+q0)-1(q1+a1-1a0),結(jié)果暫存c0;
在GF((2n)2)的乘法中使用的GF(2n)乘法器由與邏輯和異或邏輯門組成,使用GF(2n)的不可約多項(xiàng)式p(x)=xn+pn-1xn-1+pn-2xn-2+...+p1x+1計(jì)算GF(2n)的乘法c(x)=(a(x)×b(x))modp(x);在GF((2n)2)的乘法中使用的GF(2n)加法器由異或邏輯門組成;在GF((2n)2)的乘法中使用的GF(2n)求逆器由與邏輯和異或邏輯門組成,使用GF(2n)的不可約多項(xiàng)式p(x)=xn+pn-1xn-1+pn-2xn-2+...+p1x+1計(jì)算GF(2n)的求逆c(x)=a(x)-1。
消元運(yùn)算器18的第三控制器181用于求解線性方程組中每一輪迭代。假定當(dāng)前是第k輪迭代,第三控制器181調(diào)用消元運(yùn)算器18的有限域乘法器185和有限域加法器187計(jì)算ai,k-1+j=ai,k-1+j+ai,k-1×ak-1,k-1+j,其中j=1,...,1-k+m;接著計(jì)算ai,k-1=0;此處第三控制器181更新線性方程組的系數(shù)增廣矩陣。本實(shí)施例中,有限域乘法器185和有限域加法器187均電連接第三控制器181以供調(diào)用。
消元運(yùn)算器18的第三寄存器組183用于暫存運(yùn)算結(jié)果,其大小例如為6n比特;本實(shí)施例中,第三寄存器組183電連接第三控制器181。
消元運(yùn)算器18的有限域加法器187用于GF(2)的加法和執(zhí)行GF((2n)2)的加法。有限域加法器187在執(zhí)行GF(2)的加法時(shí),使用異或邏輯門電路計(jì)算c(x)=a(x)+b(x),a(x)、b(x)和c(x)是GF(2)的元素;有限域加法器187在執(zhí)行GF((2n)2)的加法時(shí),使用異或邏輯門電路計(jì)算c(x)=a(x)+b(x),a(x)、b(x)和c(x)是GF((2n)2)的元素,可以表示為a(x)=a1x+a0,b(x)=b1x+b0,c(x)=c1x+c0,其中a1,a0,b1,b0,c1,c0是GF(2n)的元素。
消元運(yùn)算器18的有限域乘法器185用于執(zhí)行GF(2)的乘法和執(zhí)行GF((2n)2)的乘法。有限域乘法器185在執(zhí)行GF(2)的乘法時(shí),使用與邏輯門電路計(jì)算c(x)=a(x)×b(x),a(x)、b(x)和c(x)是GF(2)的元素;有限域乘法器185在執(zhí)行GF((2n)2)的乘法時(shí),使用與邏輯和異或邏輯門電路計(jì)算c(x)=a(x)×b(x),a(x)、b(x)和c(x)是GF((2n)2)的元素,可以表示為a(x)=a1x+a0,b(x)=b1x+b0,c(x)=c1x+c0,其中a1,a0,b1,b0,c1,c0是GF(2n)的元素;使用GF((2n)2)的不可約多項(xiàng)式q(x)=x2+q1x+q0計(jì)算GF((2n)2)的乘法c(x)=(a(x)×b(x))modq(x)的消元步驟如下:
(z1)利用GF(2n)乘法器計(jì)算a1b0,結(jié)果暫存消元運(yùn)算器18的第三寄存器組183;
(z2)利用GF(2n)乘法器計(jì)算a0b1,結(jié)果暫存消元運(yùn)算器18的第三寄存器組183;
(z3)利用GF(2n)加法器計(jì)算a1b0+a0b1,結(jié)果暫存消元運(yùn)算器18的第三寄存器組183;
(z4)利用GF(2n)乘法器計(jì)算a1b1,結(jié)果暫存消元運(yùn)算器18的第三寄存器組183;
(z5)利用GF(2n)乘法器計(jì)算a0b0,結(jié)果暫存消元運(yùn)算器18的第三寄存器組183;
(z6)將a1b1x2+(a1b0+a0b1)x+a0b0與q(x)=x2+q1x+q0進(jìn)行模運(yùn)算,結(jié)果存儲(chǔ)至c(x);
在GF((2n)2)的乘法中使用的GF(2n)乘法器由與邏輯和異或邏輯門組成,使用GF(2n)的不可約多項(xiàng)式p(x)=xn+pn-1xn-1+pn-2xn-2+...+p1x+1計(jì)算GF(2n)的乘法c(x)=(a(x)×b(x))modp(x);在GF((2n)2)的乘法中使用的GF(2n)加法器由異或邏輯門組成。
為便于進(jìn)一步理解本實(shí)用新型的實(shí)施例,下面以求解基于GF((24)2)的線性方程組(系數(shù)增廣矩陣A的大小為10×11)作為求解基于GF((2n)2)的線性方程組(系數(shù)增廣矩陣A的大小為m×(m+1))的舉例,對(duì)其工作過(guò)程描述如下:
(S1)用戶輸入GF((24)2)的線性方程組的系數(shù)增廣矩陣、GF(24)的不可約多項(xiàng)式和GF((24)2)的不可約多項(xiàng)式、頻率50MHz的時(shí)鐘信號(hào)和復(fù)位信號(hào)至本裝置10;
(S2)本裝置10的主處理器11的接口控制器113控制的輸入端口A輸入GF((24)2)的線性方程組的系數(shù)增廣矩陣,大小為10×11,矩陣元素均是GF((24)2)的元素,且該矩陣存儲(chǔ)在存儲(chǔ)器12的矩陣存儲(chǔ)器123中;接口控制器113控制的輸入端口p(x)輸入GF(24)的不可約多項(xiàng)式x4+x+1,且該多項(xiàng)式存儲(chǔ)在存儲(chǔ)器12的多項(xiàng)式存儲(chǔ)器121中;接口控制器113控制的輸入端口q(x)輸入GF((24)2)的不可約多項(xiàng)式x2+x+9,且該多項(xiàng)式存儲(chǔ)在存儲(chǔ)器12的多項(xiàng)式存儲(chǔ)器121中;接口控制器113控制的輸入端口clk輸入頻率50MHz的時(shí)鐘信號(hào),總控制器111通知主處理器11的時(shí)序控制器115對(duì)本裝置10的所有部件以頻率50MHz的時(shí)鐘信號(hào)進(jìn)行統(tǒng)一的時(shí)序控制;接口控制器113控制的輸入端口res輸入復(fù)位信號(hào),復(fù)位信號(hào)由0轉(zhuǎn)變成1,總控制器111通知裝置10內(nèi)各組成部件進(jìn)行初始化,初始化完成后復(fù)位信號(hào)由1轉(zhuǎn)變成0;本實(shí)施例中,接口控制器113電連接各個(gè)輸入端口A、p(x)、q(x)、clk及res以及輸出端口V,總控制器111電連接接口控制器113和時(shí)序控制器115;
(S3)主處理器11的總控制器111通知GF((2n)2)處理器14求解系數(shù)增廣矩陣大小為10×11的線性方程組;
(S4)GF((2n)2)處理器14開啟第二計(jì)數(shù)器141,初始值k=1,開始第一輪迭代求解;
(S5)GF((2n)2)處理器14的GF((2n)2)運(yùn)算器143通過(guò)調(diào)度器15調(diào)用找主元運(yùn)算器16對(duì)系數(shù)增廣矩陣執(zhí)行找主元的操作;
(S6)找主元運(yùn)算器16的第一控制器161判斷系數(shù)增廣矩陣的元素ak-1,k-1是否為零;若ak-1,k-1不為零,則找主元運(yùn)算器16的第一控制器161繼續(xù)尋找不為零的元素ak-1+i,j,依次將ak-1+i,j和ak-1,j進(jìn)行交換,其中j=0,1,...,10;此處找主元運(yùn)算器16的第一控制器161更新線性方程組的系數(shù)增廣矩陣;
(S7)GF((2n)2)處理器14的GF((2n)2)運(yùn)算器143通過(guò)調(diào)度器15調(diào)用歸一運(yùn)算器17對(duì)系數(shù)增廣矩陣執(zhí)行歸一的操作;
(S8)歸一運(yùn)算器17調(diào)用有限域求逆器177對(duì)系數(shù)增廣矩陣的元素ak-1,k-1進(jìn)行求逆,求逆結(jié)果為ak-1,k-1-1;歸一運(yùn)算器17調(diào)用有限域乘法器175,依次計(jì)算ak-1,i=ak-1,i×ak-1,k-1-1,其中i=0,1,...,10;此處歸一運(yùn)算器17更新線性方程組的系數(shù)增廣矩陣;
(S9)GF((2n)2)處理器14的GF((2n)2)運(yùn)算器143通過(guò)調(diào)度器15調(diào)用消元運(yùn)算器18對(duì)系數(shù)增廣矩陣執(zhí)行消元的操作;
(S10)消元運(yùn)算器18假定i=0,調(diào)用有限域加法器187和有限域乘法器185依次計(jì)算ai,k-1+j=ai,k-1+j+ai,k-1×ak-1,k-1+j,其中j=1,2,...,11-k;消元運(yùn)算器18計(jì)算ai,k-1=0,i=i+1;此處消元運(yùn)算器18更新線性方程組的系數(shù)增廣矩陣;
(S11)GF((2n)2)處理器14的第二計(jì)數(shù)器141的數(shù)值k=k+1,若第二計(jì)數(shù)器141的數(shù)值小于k<10,則繼續(xù)迭代求解,直到第二計(jì)數(shù)器141的數(shù)值k=10;
(S12)GF((2n)2)處理器14依次輸出計(jì)算結(jié)果ai,10至主處理器11的總控制器111,其中i=0,1,...,9;
(S13)主處理器11的接口控制器113將ai,10輸出至輸出端口V,其中i=0,1,...,9。
另外,值得一提的是,由于本裝置10整合了GF(2)處理器13和GF((2n)2)處理器14,因而不但可以求解基于GF((2n)2)(例如前述的GF((24)2))的線性方程組,而且可以求解基于GF(2)的線性方程組。
最后值得一提的是,本實(shí)用新型前述實(shí)施例的一種基于有限域的線性方程組求解裝置10可以是專用集成電路(Application Specific Integrated Circuits,ASIC)器件或者是可編程邏輯器件例如FPGA(Field Programmable Gate Array,現(xiàn)場(chǎng)可編程門陣列)器件。
以上所述,僅是本實(shí)用新型的較佳實(shí)施例而已,并非對(duì)本實(shí)用新型作任何形式上的限制,雖然本實(shí)用新型已以較佳實(shí)施例揭露如上,然而并非用以限定本實(shí)用新型,任何熟悉本專業(yè)的技術(shù)人員,在不脫離本實(shí)用新型技術(shù)方案范圍內(nèi),當(dāng)可利用上述揭示的技術(shù)內(nèi)容做出些許更動(dòng)或修飾為等同變化的等效實(shí)施例,但凡是未脫離本實(shí)用新型技術(shù)方案內(nèi)容,依據(jù)本實(shí)用新型的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡(jiǎn)單修改、等同變化與修飾,均仍屬于本實(shí)用新型技術(shù)方案的范圍內(nèi)。