專利名稱:用于求解有限域上方程系統(tǒng)的設(shè)備和用于逆運算外延域元素的設(shè)備的制作方法
本申請基于在日本提出的11-203055和2000-140886號申請,在這里一并參考了其內(nèi)容。
本發(fā)明涉及用于信息安全的加密和糾錯技術(shù),特別涉及用于外延域和方程系統(tǒng)的計算技術(shù)。
最近幾年在數(shù)據(jù)通訊中加密通訊或數(shù)字簽名技術(shù)已經(jīng)越來越多的得到使用。
加密通訊技術(shù)允許執(zhí)行通訊并不暴露通訊內(nèi)容給第三方。其間,數(shù)字簽名技術(shù)能讓接受者鑒別通信內(nèi)容是否有效或信息是否來自一定的發(fā)送者。這樣的加密通訊或數(shù)字簽名技術(shù)使用一種稱做公共鑰匙加密的加密系統(tǒng)。公共鑰匙密碼法提供了一個方便的方法來管理多個用戶各自的密匙,這因而成為執(zhí)行大量用戶通訊的基本技術(shù)。
在公共鑰匙加密法中,使用不同的鑰匙來加密和解密,其中解密鑰匙是秘密的,加密鑰匙是公開的。這里,對于公共鑰匙加密法的基本原理之一是所謂的離散對數(shù)問題。離散對數(shù)問題的代表性例子是基于有限域的問題和基于橢圓曲線的問題。這樣的問題在Neal Koblitz(1987)“數(shù)論和密碼學(xué)課程(A Course in Numberr Theory andCryptography),Springer-Verlag”中進行了詳細(xì)的描述。
(橢圓曲線離散對數(shù)問題)橢圓曲線離散對數(shù)問題如下。
令E是一個在有限域GF(q)(q=pn,p是素數(shù),n是正整數(shù))中定義的橢圓曲線,假定E的階數(shù)能被一個大素數(shù)整除時,在橢圓曲線E上的點G被作為基點。這就是說,問題是發(fā)現(xiàn)整數(shù)x使得Y=x*G其中Y是在E上的給定點,如果這樣的整數(shù)x存在的話。
在這個定義中,操作符*代表對橢圓曲線求冪,使得x*G意思是在E上把G自己加了x倍。GF(q)是一個有限域GF(P)的外延域。對于外延域的細(xì)節(jié),看T.Okamoto & H.Yamaoto(1997)所著“現(xiàn)代加密,信息科學(xué)系列的數(shù)學(xué)(Modern Encryption,Mathematics ofInformation Sciences Series),Sangyo,Tosho”26~28頁。
(先前技術(shù)1使用橢圓曲線離散對數(shù)問題的ElGamal簽名方案)使用橢圓曲線離散對數(shù)問題的ElGamal簽名方案在下面參考圖9描述。
在圖中,一個由用戶A使用的器件310(后面稱為“用戶A310”),一個管理中心320,和一個由用戶B使用的器件330(后面稱為“用戶B330”)通過網(wǎng)絡(luò)進行連接。
令p是一個素數(shù),q=pn,n是一個正整數(shù),E是一個在有限域GF(q)上的橢圓曲線,其中G是E的一個基點,r是G的階數(shù)。象上面說的,r是最小正整數(shù)并滿足r*G=0其中0是在橢圓曲線E上在附加組中的零元素。
(1)由管理中心320進行的公共鑰匙的產(chǎn)生第一,管理中心320產(chǎn)生一個使用了預(yù)先知到的密匙XA的用戶A310的公共鑰匙YA,根據(jù)方程YA=xA*G(S1,S2)。
管理中心320作為系統(tǒng)參數(shù)通知了有限域GF(q)、橢圓曲線E和基點G,并公開用戶A310的公共鑰匙YA給用戶B330(S3,S4)。
(2)由用戶A310進行的簽名發(fā)生用戶A310產(chǎn)生一個隨機數(shù)k(S5),計算R1=(rx,ry)=k*G(S6),并發(fā)現(xiàn)s滿足s×k=m+rx×xAmodr (S7)其中m是從用戶A310到用戶B330傳送的信息。
用戶A310傳送信息m和信號(R1,s)到用戶B330(S8)。
(3)由用戶B330進行的簽名校驗用戶B330校驗用戶A310的真實性,通過判斷是否s*R1=m*G+rx*YA為真(S9)來進行。
該方程從下面推出s*R1=[((m+rx×xA)/k)×k]*G=(m+rx×xA)*G=m*G+(rx×rA)*G=m*G+rx×YA
在這個使用了橢圓曲線離散對數(shù)問題的ElGamal數(shù)字簽名方案中,橢圓曲線的求冪被重復(fù)執(zhí)行以產(chǎn)生公共鑰匙和簽名并鑒別簽名。
對于在橢圓曲線求冪上的細(xì)節(jié),看在Miyaji,Ono & Cohen(1997),Advances in Cryptology-Proceedings of ICICS’97,LectureNotes in Comptuer Science,Springer-Verlag中82~290頁上的文章“Emcient Elliptic Curve Exponentiation”(后面稱為“文件1”)。
令一個橢圓曲線由方程形式定義y2=x3+a×x+b在橢圓曲線上的某些點P由稱做仿射坐標(biāo)的的2元坐標(biāo)表示。
在2元坐標(biāo)上的橢圓曲線的求冪已知包括在有限域GF(q)上的逆運算操作。
文件1作了所謂投射坐標(biāo)的3元坐標(biāo)的簡要提示。2元坐標(biāo)能被轉(zhuǎn)變成對應(yīng)的3元坐標(biāo)如下所示(x1,y1)→(x1,y1,1)在3元坐標(biāo)中的橢圓曲線的求冪包括在有限域GF(q)上的非逆運算操作。因為逆運算有限域元素通?;ㄙM大量的計算時間,3元坐標(biāo)經(jīng)常用在橢圓曲線求冪中。
然而,當(dāng)轉(zhuǎn)變3-元坐標(biāo)成相應(yīng)的2-元坐標(biāo)時,如下所示(X,Y,Z)→(X/Z,Y/Z)在有限域(q)上逆運算是必要的。
例如,在圖9中步驟S6中,在2-元坐標(biāo)被轉(zhuǎn)變成3-元坐標(biāo)后,橢圓曲線求冪在3-元坐標(biāo)上執(zhí)行,結(jié)果3-元坐標(biāo)被轉(zhuǎn)變成2-元坐標(biāo)。
(先前技術(shù)2在外延域中的轉(zhuǎn)變)在外延域GF(q)(q=pn,p是素數(shù),n是正整數(shù))上常規(guī)的逆運算操作按照下面的方式進行。
出于簡單的目的,外延域GF(q)的生成程序多項式被設(shè)成f(g)=gn-β,它的根是α,在生成程序多項式中輸入的GF(q)元素被設(shè)成x=x0+x1×α+…+xn+1×αn-1(1) 步驟1基于GF(q)的元素x,一個對于Yi(i=0,1,…,n-1)的方程系統(tǒng)被形成。
x0Y0+βxn-1Y1+βxn-2Y2+…+βx1Yn-1=1x1Y0+βx0Y1+βxn-1Y2+…+βx2Yn-1=0x2Y0+βx1Y1+βx0Y2+…+βx3Yn-1=0xn-2Y0+βxn-3Y1+βxn-4Y2+…+βxn-1Yn-1=0xn-1Y0+βxn-2Y1+βxn-3Y2+…+βx0Yn-1=0(2) 步驟2尋找方程系統(tǒng)的解Yk(k=(0,1,…,n-1))。
(3) 步驟3從結(jié)果Yk(k=(0,1,…,n-1)),逆運算I=Y0+Y1α+…+Yn-1αn-1因而獲得在外延域GF(q)中的元素x的逆。
逆運算操作的有效性在下面示出。如果逆運算I和元素x滿足關(guān)系xI=1modf(g)然后xI=x0(y0+y1α+…+yn-1αn-1)+x1α(y0+y1α+…+yn-1αn-1)+x1α2(y0+y1α+…+yn-1αn-1)_+xn-1αn-1(y0+y1α+…+yn-1αn-1)然后αn=βmodf(g)對應(yīng)地,xI=x0(y0+y1α+…+yn-1αn-1)+x1(y0α+y1α2+…+yn-1β)+x2(y0α2+y1α3+…+yn-1αβ)
+xn-1(y0(αn-1+y1β+…+yn-1αn-2β)其也可以α的升冪排列如下從這個方程和關(guān)系式xI=1,在步驟1中推出了方程系統(tǒng)。
因此,在外延域GF(q)中計算逆運算等價于在基本域GF(p)上求解方程系統(tǒng)。
雖然前面的例子出于簡化的目的使用形式為gn-β的生成程序多項式,方程系統(tǒng)能由同樣的過程形成普通形式的生成程序多項式。
(先前技術(shù)3在基本域GF(p)上的方程系統(tǒng)的解)用于求解在基本域GF(q)上的方程系統(tǒng)的常規(guī)方法在下面描述。這種方法稱做高斯消去法。對于高斯消去法中的細(xì)節(jié),看K.Mizugmi(1985),Mathematical Calculations by Computers,Intro-duction to Programming Series,Asakura Shoten,76~82頁(后面稱為“文件2”)。
一個對于xk(k=0,1,2,…,n-1)的方程系統(tǒng)a11x0+a12x1+…+ainxn-1=b1a21x0+a22x1+…+a2nxn-1=b2_an1x0+an2x1+…+annxn-1=bn通過高斯消去法按照下面的模式求解。(步驟1)分別給出矩陣M和向量v
然后,把上面的方程系統(tǒng)能化簡寫做MX=v矩陣M和向量v是三角變換,以便把陣M變成上三角形式,結(jié)果產(chǎn)生了矩陣M'和向量v'。這里,三角變換是這樣的一種轉(zhuǎn)變,將在矩陣的對角線元素下的所有元素改變?yōu)?,并把這樣轉(zhuǎn)變的矩陣稱做上三角矩陣。
這種常規(guī)三角變換的過程在下面參考
圖10進行解釋。
首先,令計數(shù)器j為1(S21)。接著,計算ajj的逆Ij(S22),分配1給ajj(S23),令j+1≤k≤n(S24),計算ajj=ajk×Ij和bj=bj×Ij。令計數(shù)器I等于i+1(S25)。
接著,分配0給ajj(S26),令j+1≤k≤n(S27),計算aik=aik-ajj×ajk,計算bi=bi-aij×bj(S28)。然后判斷是否i=n(S29)。如果i≠n,計數(shù)器i增加1(S31)并過程返回到步驟S26。如果i=n,則判斷是否j=n(S30)。如果j≠n,計數(shù)器j增加1并過程返回到步驟S22。如果j=n,過程結(jié)束。
結(jié)果,得到了矩陣M'和向量v'。矩陣M'的對角線元素都是1,其下的元素都是0。
方程系統(tǒng)M'X=v'和方程系統(tǒng)MX=v有同等關(guān)系。
令矩陣M′和向量v′分別寫做
(步驟2)通過使用產(chǎn)生的矩陣M′和向量v′以下面的方式求解方程系統(tǒng)M'X=v′。
依次把值n-1,…,1,0放到計數(shù)器c中。對于計數(shù)器c,當(dāng)c=n-1時計算Yc=dc+1和當(dāng)c=n-1時,計算Yc=dc+1-Σi=c+1n-1(cc+1i+1×Yi-1)]]>(具體例子)一個應(yīng)用現(xiàn)有技術(shù)3的具體例子在下面示出。
注意這個例子在這里提供的目的僅僅是為了容易理解三角變換,并不是一個在密碼通訊或數(shù)字簽名系統(tǒng)中實際使用的例子。
當(dāng)素數(shù)p=31,生成程序多項式f(g)=g5-2和一個GF(q)的元素x=5α4+29α3+6α2+19α+17被給出時,計算x×α=5α5+29α4+6α3+19α2+17α=29α4+6α3+19α2+17α+5×2x×α2=29α5+6α4+19α3+17α2+10α=6α4+19α3+17α2+10α+29×2x×α3=6α5+19α4+17α3+10α2+27α=19α4+17α3+10α2+27α+6×2x×α4=19α5+17α4+10α3+27α2+12α=17α4+10α3+27α2+12α+19×2導(dǎo)致了在圖11(a)中示出的方程系統(tǒng),其中系數(shù)矩陣301由5行和5列組成,常向量302由5個元素組成。
在圖11(a)的方程系統(tǒng)中,把線性方程
17x0+10x1+27x2+12x3+7x4=1稱做用于轉(zhuǎn)變的中心(pivot of transformation)的關(guān)鍵方程,把其它的線性方程稱做被轉(zhuǎn)變的目標(biāo)方程。
首先,執(zhí)行逆運算操作1/17mod31=11然后計算10×11mod31=1727×11mod31=1812×11mod31=87×11mod31=151×11mod31=11結(jié)果,把方程系統(tǒng)如圖11(b)中示出的進行轉(zhuǎn)變,其中在系數(shù)矩陣311中第一列和第一行的元素變成1。在圖11(b)中在系數(shù)矩陣311中方框圍繞的元素和常向量312是已經(jīng)從圖11(a)系數(shù)矩陣301和常向量302轉(zhuǎn)變過來的。同樣的過程在圖11的其余部分進行。
這里,以上的逆運算操作1/17mod31=11通過第一搜尋來執(zhí)行,其中第一搜尋依靠外延的GCD(最大公約數(shù))滿足a×17+b×31=1并設(shè)定為逆運算結(jié)果。
通常,外延GCD具有相當(dāng)大的計算復(fù)雜性,它包括重復(fù)的乘法和加法。對于在外延GCD中的細(xì)節(jié),看H.Cohen(1996)”A Course inComputational Algebraic Number Theory”in Graduate Texts inMathematics 138,Springer-Verlag,16~19頁。
下面,17-17×19=4mod3110-18×19=9mod3127-8×19=30mod3112-15×19=6mod310-11×19=8mod31被計算用于將在系數(shù)矩陣311的第一列和第二行的元素轉(zhuǎn)變?yōu)?,并以相似的方式把在系數(shù)矩陣311的第一列和三到五行的元素轉(zhuǎn)變成0,因而把在圖11(b)中的系數(shù)矩陣311轉(zhuǎn)變成圖11(c)中示出的系數(shù)矩陣321,結(jié)果獲得在圖11(c)中示出的方程系統(tǒng)。
接著,把系數(shù)矩陣321轉(zhuǎn)變成系數(shù)矩陣331,使得在第二列和第二行的元素變成1,把常矢量322轉(zhuǎn)變?yōu)槌J噶?32。由此獲得圖11(d)的方程系統(tǒng)。此外,把系數(shù)矩陣331轉(zhuǎn)變成系數(shù)矩陣341,使得在第二列和第三到五行的元素變成0,且把常矢量332轉(zhuǎn)變?yōu)槌J噶?42。由此獲得圖11(e)的方程系統(tǒng)。
同樣,把圖11(f)中系數(shù)矩陣351中第三行和第三列的元素轉(zhuǎn)變?yōu)?,把圖11(g)中系數(shù)矩陣361中第三到五行和第三列的元素轉(zhuǎn)變?yōu)?。之后,把圖11(h)中系數(shù)矩陣371中第四行和第四列的元素轉(zhuǎn)變?yōu)?,把圖11(i)中系數(shù)矩陣381中第五行和第四列的元素轉(zhuǎn)變?yōu)?。最后,圖11(j)中系數(shù)矩陣391的第五列和第五行的元素轉(zhuǎn)變成1。
因而,把系數(shù)矩陣301轉(zhuǎn)變成上三角矩陣391。
下面,計算Y4=29Y3=15-21×29=26mod31Y2=11-4×26-28×29=25mod31Y1=2-10×25-23×26-17×29=25mod31Y0=11-17×25-18×25-8×26-15×29=12mod31(計算的復(fù)雜性)下面評價現(xiàn)有技術(shù)3的整個計算復(fù)雜性。這里,在基本域上的一個乘法的計算復(fù)雜性被度量為1Mul,在基本域上一個逆運算的計算復(fù)雜性被度量為1Inv。
在現(xiàn)有技術(shù)3的步驟1中,對于計數(shù)器j的值的計算復(fù)雜性能被分解成如下。
(a)步驟S22包括一個逆運算,因此計算復(fù)雜性是1Inv。
(b)步驟S24包括((n-(j+1)+1)+1)=(n-j+1)次乘法,因此計算復(fù)雜性是(n-j+1)Mul。
(c)對于計數(shù)器i的一個值,步驟S27包括(n-(j+1)+1)次乘法,使得計算復(fù)雜性是(n-j)Mul(c1),步驟S28包括一個乘法,因此計算復(fù)雜性是1Mul(c2)。因為計數(shù)器i從j+1到n變化,(c1)和(c2)被重復(fù)了(n-(j+1)+1)=(n-j)次,使得對于計數(shù)器c的所有值的計算復(fù)雜性為((n-j)(n-j+1))Mul。
把(a)、(b)和(c)加在一起得到計算復(fù)雜性為((n-j+1)(n-j+1))Mul+1Inv。
因為計數(shù)器j從1到n變化,步驟1的整個計算復(fù)雜性是 在另一方面,在現(xiàn)有技術(shù)3中步驟2的計算復(fù)雜性如下。
對于計數(shù)器c的值,(n-(c+1)+1)=(n-c)次乘法是必要的,因此計算復(fù)雜性是(n-c)Mul。
因為計數(shù)器c從1到n變化,步驟2的整個計算復(fù)雜性是 因而,先前技術(shù)3的全部計算復(fù)雜性是(1/6×n(n+1)(2n+1)+1/2×n(n-1))Mul+nInv=1/3×n×(n2+3n-1)Mul+nInv眾所周知在通常用途的計算機中當(dāng)n=5和|q|=160(|q|是q的位數(shù))時,1Inv=40Mul。對應(yīng)地,先前技術(shù)3的全部技術(shù)復(fù)雜性是265Mul。
如上面描述的,在外延域中元素的逆運算可以通過求解在有限域上的方程系統(tǒng)來計算。然而,假定在求解方程系統(tǒng)中所需的逆運算的計算復(fù)雜性很大的,所以依舊存在進一步減少在有限域上求解方程系統(tǒng)的計算復(fù)雜性的需要,因而減少了逆運算外延域元素的計算復(fù)雜性。
由于上述的需要,本發(fā)明的目的是提供用于以簡化的計算復(fù)雜性來求解在有限域上的方程系統(tǒng)的一種裝置、方法和存儲程序的存儲介質(zhì),用于以簡化的計算復(fù)雜性來逆運算在外延域中的元素的一種裝置、方法和存儲程序的存儲介質(zhì),和一種用于復(fù)制使用這些裝置和方法的裝置的通信系統(tǒng)和記錄介質(zhì)。
上面的目標(biāo)能通過一種用于加密或解密的裝置來獲得,用來求解在有限域GF(p)上有n個未知數(shù)的線性方程系統(tǒng)Ax=b,其中p是素數(shù),n是正整數(shù),A是包括n行和n列元素的系數(shù)矩陣,x是包括n個元素的未知向量,b是包括n個元素的常向量,裝置包括一個用于存儲系數(shù)矩陣A和常向量b的參數(shù)存儲單元;一個用于從參數(shù)存儲單元讀取系數(shù)矩陣A和常向量b的三角變換單元,和轉(zhuǎn)變讀出的系數(shù)矩陣A和常向量b以產(chǎn)生用于有n個未知數(shù)的線性方程系統(tǒng)Cx=d的系數(shù)矩陣C和常向量d,該方程系統(tǒng)等價于線性方程系統(tǒng)Ax=b,系數(shù)矩陣C包括n行和n列元素,常向量d包括n個元素,其中系數(shù)矩陣A被三角變換成上三角形式的系數(shù)矩陣C同時沒有把系數(shù)矩陣A的對角線元素轉(zhuǎn)變成1;一個對角線元素逆運算單元,用于計算在有限域GF(p)上產(chǎn)生的系數(shù)矩陣C的對角線元素的逆;和一個方程計算單元,用于使用系數(shù)矩陣C、常向量d和系數(shù)矩陣C的對角線元素的逆求解線性方程系統(tǒng)Cx=d,從而求解線性方程系統(tǒng)Ax=b。
出于這種構(gòu)想,能在具有簡化計算復(fù)雜性的同時對線性方程系統(tǒng)進行求解。
這里,三角變換單元可以執(zhí)行一個或多個連續(xù)的轉(zhuǎn)變過程,以從線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b產(chǎn)生線性方程系統(tǒng)Cx=d的系數(shù)矩陣C和常向量d,其中在每一個轉(zhuǎn)變過程中三角變換單元轉(zhuǎn)變有n個未知數(shù)的線性方程系統(tǒng)的系數(shù)矩陣和常向量成為等價于轉(zhuǎn)變前的線性方程系統(tǒng)的有n個未知數(shù)的線性方程系統(tǒng)的系數(shù)矩陣和常向量,其中線性方程系統(tǒng)Ax=b從屬于第一次轉(zhuǎn)變過程,產(chǎn)生線性方程系統(tǒng)Cx=d作為上一次轉(zhuǎn)變過程的結(jié)果,其中在每次轉(zhuǎn)變過程中被轉(zhuǎn)變的具有n個未知數(shù)的線性方程系統(tǒng)包括一個是線性方程的用作轉(zhuǎn)變的軸(pivot)的關(guān)鍵方程(pivot function),和一個或多個是線性方程的將被轉(zhuǎn)變的目標(biāo)方程,且三角變換單元通過定義包括至少一個與關(guān)鍵方程相關(guān)的值的第一系數(shù)組和包括與關(guān)鍵方程相關(guān)的n+1個值的第二系數(shù)組、將在目標(biāo)方程中的非零系數(shù)改變?yōu)?、將在目標(biāo)方程中的每一個常數(shù)和n個系數(shù)與第一系數(shù)組中的值相乘、并分別從n+1個相乘結(jié)果中減去在第二系數(shù)組中的n+1個值,來將每個目標(biāo)方程轉(zhuǎn)變成為等價于目標(biāo)方程的方程。
出于這種構(gòu)想,不用把線性方程的系數(shù)矩陣的對角線元素轉(zhuǎn)變成1就同時可以執(zhí)行三角變換。
這里,對于轉(zhuǎn)變單個的目標(biāo)方程,每一個轉(zhuǎn)變過程可以有子過程,其中在每一個轉(zhuǎn)變子過程中三角變換單元(a)從關(guān)鍵方程中選擇一個非零系數(shù)并設(shè)置被選的非零系數(shù)到第一系數(shù)組,(b)從目標(biāo)方程中選擇非零系數(shù),相乘在關(guān)鍵方程中的每一個常數(shù)和n個系數(shù)與從目標(biāo)方程中選擇的非零系數(shù),把通過乘法獲得的n+1個值設(shè)置進入第二系數(shù)組,(c)轉(zhuǎn)變在目標(biāo)方程中的所選非零系數(shù)為0,和(d)相乘在目標(biāo)方程中的每一個常數(shù)和n個系數(shù)與在第一系數(shù)組中的非零系數(shù),并從n+1個相乘結(jié)果中分別減去在第二系數(shù)組中的n+1個值。
這里,每個轉(zhuǎn)變過程可以有系數(shù)組計算過程和轉(zhuǎn)變子過程,該子過程執(zhí)行下面的系數(shù)組計算過程,每一個都轉(zhuǎn)變各自的目標(biāo)方程,其中在系數(shù)組計算過程中三角變換單元(a)通過從每個關(guān)鍵方程和目標(biāo)方程中提取一個非零系數(shù)選擇m個非零系數(shù),將所選的非零系數(shù)的(m-1)個組合相乘,令m個相乘結(jié)果為第一系數(shù)組,m是不小于2的正整數(shù),并(b)相乘在關(guān)鍵方程中的每個常量、n個系數(shù)和在第一系數(shù)組中的相乘結(jié)果,用于一個不包括從關(guān)鍵方程所選的非零系數(shù)的非零系數(shù)組合,并從n+1個相乘結(jié)果中分別減去在第二系數(shù)組中的n+1個值,且其中在系數(shù)組計算過程之后的每個變換子過程中三角變換單元(a)將從系數(shù)組計算過程的目標(biāo)方程中選擇的非零系數(shù)轉(zhuǎn)變?yōu)槟繕?biāo)方程中的0,(b)相乘在目標(biāo)方程中的每個常量、n個系數(shù)與在第一系數(shù)組中的相乘結(jié)果,獲得一個不包括從目標(biāo)方程所選的非零系數(shù)的非零系數(shù)組合,并從n+1個相乘結(jié)果中分別減去在第二系數(shù)組中的n+1個值。
出于這種構(gòu)想,等價的線性方程系統(tǒng)能通過三角變換變獲得。
這里,當(dāng)系數(shù)矩陣C的對角線元素被標(biāo)記為mi(i=1,2,3,…,n)和在有限域GF(p)中對角線元素mi(i=1,2,3…n)的逆被標(biāo)記為Ii(i=1,2,3,…,n)時,對角線元素逆運算單元包括(a)一個乘法單元,用于計算 和ti=Πk=1nmkmodp]]>(b)一個第一逆運算單元,用于運算u=1/t mod p和(c)一個第二逆運算單元,用于運算Ii=u×timod p(i=1,2,…,n)以發(fā)現(xiàn)逆Ii(i=1,2,3,…,n)。這里,乘法單元可以在所述的次序下計算s1=m1×m2模ps2=s1×m3模p_sn-3=sn-4×mn-2模p,在所述的次序下計算值j是從一組正整數(shù){1,2,…,n}中選擇的。
出于這種構(gòu)想,計算對角線元素的逆運算所需的逆運算操作數(shù)量可以減少。
結(jié)果,減少了用于在有限域上求解方程系統(tǒng)的裝置的總體計算復(fù)雜性。這樣的裝置有高的實用價值,能進行高速加密或數(shù)字簽名過程。
以上的目的也可以通過一種用于加密或解密的裝置來獲得,該裝置用于計算在GF(q)上的元素y的逆I,該域是有限域GF(p)的外延域,其中p是素數(shù),q=pn,n是正整數(shù),裝置包括一個方程產(chǎn)生單元,用于使用元素y和根是α的GF(q)的生成程序多項式的所有系數(shù)來產(chǎn)生用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;一個方程其解單元,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解單元包括上面的用于求解線性方程系統(tǒng)Ax=b的裝置;和一個逆運算單元,用于使用根α和由方程求解單元發(fā)現(xiàn)的解計算逆I。
出于這種構(gòu)想,外延域元素的逆能在簡化的計算復(fù)雜性下進行計算。
上面的目的能通過用于計算的記錄介質(zhì)復(fù)制裝置來獲得,在基于安全考慮使用離散對數(shù)問題在GF(q)的橢圓曲線E上加密有版權(quán)的數(shù)字內(nèi)容并記錄在記錄介質(zhì)上時,在GF(q)上用來解密所加密數(shù)字內(nèi)容的元素y的逆I記錄在記錄介質(zhì)上,其中GF(q)是有限域GF(p)的外延域,p是素數(shù),q=pn,n是正整數(shù),G是橢圓曲線E的基點,記錄介質(zhì)復(fù)制裝置包括一個方程產(chǎn)生單元,用于使用根是α的GF(q)的生成程序多項式的和所有系數(shù)元素y產(chǎn)生用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;一個方程求解單元,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解單元包括上面用于求解線性方程系統(tǒng)Ax=b的裝置;和一個逆運算單元,用于根據(jù)根α和由方程求解單元發(fā)現(xiàn)的解計算逆I。
出于這種構(gòu)想,記錄介質(zhì)復(fù)制裝置能在簡化計算復(fù)雜性下計算外延域元素的逆。
本發(fā)明的這些和其它的目的、優(yōu)點和特性伴隨著后面的描述聯(lián)系圖解發(fā)明的特定方案的附圖將變得明顯。在圖中圖1是一個框圖示出了一個依照發(fā)明方案的逆運算裝置100的結(jié)構(gòu);圖2是流程圖示出了逆運算裝置100的通常操作;
圖3是一個流程圖,示出了方程系統(tǒng)的系數(shù)矩陣通過在逆運算裝置100中的方程轉(zhuǎn)變單元102進行的三角變換操作。
圖4是一個流程圖,示出了在逆運算裝置100中系數(shù)矩陣的對角線元素的逆運算操作。
圖5是一個流程圖,示出了在逆運算裝置100中求解方程系統(tǒng)的操作;圖6表示了一個通過方程轉(zhuǎn)變單元102進行的三角變換的例子;圖7是一個流程圖,示出了作為發(fā)明的一個變化通過方程轉(zhuǎn)變單元102a進行的三角變換系數(shù)矩陣的操作。
圖8表示了一個通過方程轉(zhuǎn)變單元102a進行的三角變換的例子;圖9是一個連續(xù)的視圖,示出了常規(guī)ElGamal數(shù)字簽名方案的過程;圖10是一個流程圖,示出了系數(shù)矩陣的常規(guī)三角變換;和圖11表示了一個常規(guī)三角變換的例子。
1.實施方案下面是依照本發(fā)明方案的逆運算裝置100的描述。
1.1逆運算裝置100的結(jié)構(gòu)逆運算裝置100計算在GF(q)上的元素x的逆I(q=pn,p是素數(shù),n是正整數(shù)),其中GF(q)是預(yù)定有限域GF(p)的外延域。在這個方案中,一個外延域GF(q)的生成程序多項式是gn-β,它的根是α,元素x是這樣的,x=x0+x1a+…+xn-1an-1,其中α是GF(q)的元素,β,x0,x1,…,xn-1是GF(p)的元素。
如圖1所示,逆運算裝置100是大致由一個參數(shù)存儲單元200、一個方程產(chǎn)生單元201、一個方程求解單元202、一個逆運算單元203和一個逆運算存儲單元204構(gòu)成。
特別地,逆運算裝置100通過裝備了微處理器、ROM、RAM、硬盤和類似物的計算機系統(tǒng)來實現(xiàn)。通過由微處理器執(zhí)行的存儲在硬盤上的計算機程序,實現(xiàn)了方程產(chǎn)生單元201、方程求解單元202、和逆運算單元203。
(1)參數(shù)存儲單元200參數(shù)存儲單元200由硬盤來實現(xiàn)。把生成程序多項式的參數(shù)β、根α和元素x0,x1,…,xn-1預(yù)先存儲在參數(shù)存儲單元200中。
(2)方程生成單元201方程生成單元201從參數(shù)存儲單元200中讀出β,α,x0,x1,…,xn-1,并使用讀出的值產(chǎn)生下面的方程系統(tǒng)yi(i=0,1,2,…,n-1)的參數(shù)x0y0+βxn-1y1+βxn-2y2+…+βx1yn-1=1x1y0+x0y1+βxn-1y2+…+βx2yn-1=0x2y0+x1y1+x0y2+…+βx3yn-1=0_xn-1y0+xn-2y1+xn-3y2+…+x0yn-1=0這個方程系統(tǒng)能簡單寫成AY=B其中A是矩陣、Y和B是向量,使得 由方程產(chǎn)生單元201產(chǎn)生的方程系統(tǒng)的參數(shù)是矩陣A和向量B。方程產(chǎn)生單元201輸出所產(chǎn)生的矩陣A和向量B到方程求解系統(tǒng)201。
方程產(chǎn)生單元201也輸出從參數(shù)存儲單元200讀出的α到逆運算單元203。
(3)方程求解單元202
當(dāng)給定有n個未知參數(shù)的下述線性方程系統(tǒng)對于在預(yù)定的有限域GF(p)上的xi(i=1,2,…,n)的參數(shù)aij(i,j=1,2,…,n)和bk(k=1,2,…,n)時,方程求解單元202求解在GF(p)上有n個未知數(shù)的線性方程系統(tǒng)。
a11x1+a12x2+…+a1nxn=b1a21x1+a22x2+…+a2nxn=b2_an1x1+an2x2+…+annxn=bn方程求解單元202包括一個常數(shù)存儲單元101、一個方程轉(zhuǎn)變單元102、一個逆運算單元103和一個方程計算單元104,示出在圖1中。
(常數(shù)存儲單元101)常數(shù)存儲單元101由RAM來實現(xiàn)。常數(shù)存儲單元101從方程產(chǎn)生單元201接收矩陣M和向量v并存儲他們。這里,矩陣M和向量v分別是 例如,矩陣M是矩陣A,向量v是向量B。
(方程轉(zhuǎn)變單元102)方程轉(zhuǎn)變單元102從常數(shù)存儲單元101中讀出矩陣M和向量v并三角變換讀出的矩陣M和向量v,以產(chǎn)生用于有n個未知數(shù)的線性方程系統(tǒng)M′x=v′的矩陣M′(一個包括n行和n列的系數(shù)矩陣)和向量ν′(一個包括n個元素的常向量),該方程系統(tǒng)等價于有n個未知數(shù)的線性方程系統(tǒng)Mx=v。
在三角變換中,方程轉(zhuǎn)變單元102轉(zhuǎn)變矩陣M為上三角矩陣同時不需改變矩陣M的每個對角線元素為1。
這樣產(chǎn)生的矩陣M′和向量v′是
三角變換以下面的方式執(zhí)行。
在三角變換中,執(zhí)行一個或多個連續(xù)轉(zhuǎn)變過程以從線性方程系統(tǒng)Mx=v產(chǎn)生線性方程系統(tǒng)M′x=v1的矩陣M′和向量v′。
在每個轉(zhuǎn)變過程中,方程轉(zhuǎn)變單元102從有n個未知數(shù)的線性方程系統(tǒng)產(chǎn)生用于有n個未知數(shù)的線性方程系統(tǒng)的系數(shù)矩陣和常向量,該線性方程系統(tǒng)等價于轉(zhuǎn)變前的線性方程系統(tǒng)。在這個方案中,被初始轉(zhuǎn)變過程處理的有n個未知數(shù)的線性方程系統(tǒng)是線性方程系統(tǒng)Mx=μ,因而獲得的作為最后轉(zhuǎn)變過程結(jié)果的有n個未知數(shù)的線性方程系統(tǒng)是線性方程系統(tǒng)M′x=v′。
在每個轉(zhuǎn)變過程中,有n個未知數(shù)的線性方程系統(tǒng)在轉(zhuǎn)變前包括一個作為關(guān)鍵方程的線性方程,該關(guān)鍵方程用做轉(zhuǎn)變的軸,和一個或多個作為轉(zhuǎn)變的目標(biāo)方程的線性方程。
每個轉(zhuǎn)變過程都有轉(zhuǎn)變子過程,數(shù)目和在線性方程系統(tǒng)中的目標(biāo)方程一樣多,每個子過程用于轉(zhuǎn)變各自的目標(biāo)方程成為等價于目標(biāo)方程的方程。在轉(zhuǎn)變目標(biāo)方程為等價方程之前,在每個轉(zhuǎn)變子過程中定義一個第一系數(shù)組和第二系數(shù)組。
第一和第二系數(shù)組是這樣的組,各自容納至少一個涉及關(guān)鍵方程的值。為了更明確,方程轉(zhuǎn)變單元102令關(guān)鍵方程的非零系數(shù)為第一系數(shù)組。同樣,方程轉(zhuǎn)變單元102將關(guān)鍵方程的每個常數(shù)、n個系數(shù)和目標(biāo)方程的非零系數(shù)相乘,并令作為結(jié)果獲得的n+1個值為第二系數(shù)組。
下面,方程轉(zhuǎn)變單元102轉(zhuǎn)變目標(biāo)方程的非零系數(shù)為0。方程轉(zhuǎn)變單元102然后相乘目標(biāo)方程的每個常數(shù)、n個系數(shù)和在第一系數(shù)組中的值,并從n+1個相乘結(jié)果中分別減去在第二系數(shù)組中的n+1個值。這樣做,使目標(biāo)方程轉(zhuǎn)變成等價的方程,其中它的非零系數(shù)變成0。
這種三角變換在后面將詳細(xì)解釋。
方程轉(zhuǎn)變單元102輸出產(chǎn)生的矩陣M′和向量v到方程計算單元104,并輸出矩陣M′的對角線元素Cii(i=1,2,…n)到逆運算單元103。
如同上面的描述,當(dāng)矩陣M轉(zhuǎn)變?yōu)樯先切问綍r,方程轉(zhuǎn)變單元102也轉(zhuǎn)變向量v但沒有改變線性方程系統(tǒng)Mx=v的解。其與常規(guī)三角變換的不同在于不轉(zhuǎn)變矩陣M的對角線元素為1。
(逆運算單元103)逆運算單元103從方程轉(zhuǎn)變單元102接收矩陣M′的對角線元素Cii(i=1,2,…n)。
出于簡化的目的,這里把矩陣M′的對角線元素Cii(i=1,2,…n)表示成Mi(i=1,2,…n)。
逆運算單元103求解 首先按以下的次序進行計算逆運算單元103然后使用預(yù)定值k(從一組正整數(shù){1,2,…,n}中選擇)計算t=tk×mk模p,因此求解了 逆運算單元103接下來計算
u=1/t模p最后獲得逆Ii(i=1,2,…,n),為Ii=u×ti模p(i=1,2,…,n)逆運算單元103輸出逆Ii(i=1,2,…,n)到方程計算單元104。
因而,逆運算單元103在GF(p)上計算出矩陣M′的對角線元素cii(i=1,2,3,…,n)的逆Ii(i=1,2,3,…,n),該矩陣從方程轉(zhuǎn)變單元102中給出。
(方程計算單元104)方程計算單元104從方程轉(zhuǎn)變單元102接收矩陣M′和向量v′,也從逆運算單元103接收逆Ii(i=1,2,3,…,n)。
方程計算單元104每次在計數(shù)器j中從值n-1,n-2,…,2,1,0中設(shè)定一個。對于計數(shù)器j,方程計算單元104使用矩陣M′、向量v′和逆Ii(i=1,2,3,…,n)當(dāng)j=n-1時計算Yj=Ij+1×dj+1模p當(dāng)j≠-1,計算 然后方程計算單元104輸出解Yj(j=0,1,2,…,n-1)到逆運算單元203。
有n個未知數(shù)的線性方程系統(tǒng)的解能被方程計算單元104發(fā)現(xiàn)的理由在下面示出。
因為從方程轉(zhuǎn)變單元102接收到的矩陣M′是一個上三角矩陣,能把線性方程M′x=v′寫做C11x0+C12x1+C13x2+…+C1nxn-1=d1c22x1+c23x2+…+C2nxn-1=d2_cnnxn-1=dn具有矩陣M′的對角線元素cii(i=1,2,…,n)的逆是Ii(i=1,2,…,n)。相應(yīng)地,xn-1的解Yn-1是Yn-1=Indn-1模pxn-2的解Yn-2是Yn-2=In-1(dn-1-Cn-1Yn-1) 模pxj的解Yj(j=n-3,n-4,…,0) 是
(4)逆計算單元203逆計算單元203在方程求解單元202中從方程計算單元104接收解Yj(j=0,1,2,…,n-1),并從方程產(chǎn)生單元201接收根α。逆計算單元203計算逆I,依照方程I=Y0+Y1α+…+Yn-1αn-1I=Y0+Y1α+…+Yn-1αn-1使用接收到的解Yj(j=0,1,2,…,n-1)和根α。逆計算單元203把算出的逆I寫入逆運算存儲單元203。
因此獲得了在外延域GF(q)中元素x的逆I。
(5)逆運算存儲單元204逆運算存儲單元204通過硬盤來實現(xiàn),并存儲外延域GF(q)的元素x的逆I。
1.2逆運算裝置100的操作下面是關(guān)于上面建立的逆運算裝置100的操作的描述。
(1)逆運算裝置100的通常操作逆運算裝置100的通常操作在下面參考圖2解釋。
方程產(chǎn)生單元201從參數(shù)存儲單元200讀出參數(shù)β、根α和x0,x1,…,xn-1,并用它們產(chǎn)生作為有n個未知參數(shù)的對于Yj(j=0,1,2,…,n-1)的線性方程系統(tǒng)AY=B參數(shù)的矩陣A和向量B。方程產(chǎn)生單元201輸出矩陣A和向量B到方程求解單元202中的常量存儲單元101,并輸出根α到逆計算單元203(S101)。
在方程求解系統(tǒng)202中的方程轉(zhuǎn)變單元102從常量存儲單元101讀出矩陣M和向量v并三角變換讀出的矩陣M和向量v,結(jié)果產(chǎn)生了用于有n個未知數(shù)的線性方程系統(tǒng)M′x=v′的矩陣M′和向量v′(S102),該方程系統(tǒng)等價于線性方程系統(tǒng)M。
在方程求解單元202中的逆運算單元103計算矩陣M′的對角線元素Cii(i=1,2,…,n)的逆Ii(i=1,2,…,n)(S103)。
方程求解單元202中的方程計算單元104通過使用矩陣M′、向量v′和逆Ii(i=1,2,…,n),尋找線性方程系統(tǒng)M′x=v′的解Yj(j=0,1,2,…,n-1),并輸出解Yj(j=0,1,2,…,n-1)到逆計算單元203(S104)。
逆計算單元203從方程計算單元104接收解Yj(j=0,1,2,…,n-1),和從方程產(chǎn)生單元201接收根α,使用接收到的解和根在外延域GF(q)中發(fā)現(xiàn)元素x的逆I,并把逆I寫入逆運算存儲單元204(S105)。
(2)方程轉(zhuǎn)變單元102進行的三角變換操作方程轉(zhuǎn)變單元102進行的三角變換操作參考圖3進行解釋。
方程轉(zhuǎn)變單元102從常量存儲單元101中讀出矩陣M和向量v(S111),并令計數(shù)器j為1(S112)。
方程轉(zhuǎn)變單元102從GF(p)上第j行到第n行搜索矩陣M的第j列元素中不為零的元素,并令第一次發(fā)現(xiàn)的非零元素的行號為k(S113)。這里,如果k≠j(S114),方程轉(zhuǎn)變單元102改變在矩陣M中在第k行和第j行之間的位置(S115),并改變在向量v中在第k行和第j行之間的位置(S116)。
方程轉(zhuǎn)變單元102令計數(shù)器i為j+1(S117),并進行如下的使用aij(在矩陣M的第j行和第j列的元素)和aij的設(shè)定aij=0aik=ajjaik-aijajkj+1≤k≤n(k=j+1,j+2,…,n)bi=ajjbi-aijbj(S118)。
方程轉(zhuǎn)變單元102然后判斷是否i=n(S119)。如果i≠n,方程轉(zhuǎn)變單元102把計數(shù)器i加1(S122)并返回到步驟S118。如果i=n,方程轉(zhuǎn)變單元102判斷是否j=n-1(S120)。如果j≠n-1,方程轉(zhuǎn)變單元102把計數(shù)器j加1(S123)并返回到步驟S113。如果j=n-1,方程轉(zhuǎn)變單元102令矩陣M作為矩陣M′、向量v作為向量v′,并完成操作。
如上所述,這種三角變換包括對應(yīng)于計數(shù)器j的不同值的轉(zhuǎn)變過程,每個轉(zhuǎn)變過程包括對應(yīng)于計數(shù)器i的不同值的轉(zhuǎn)變子過程。
(Mx=v和M′x=v′之間等價的理由)作為通過方程轉(zhuǎn)變單元102進行的三角變換的結(jié)果產(chǎn)生的線性方程系統(tǒng)M′x=v′等價于線性方程系統(tǒng)Mx=v的理由在下面給出。
在三角變換的每個轉(zhuǎn)變過程中,令Min和vin是轉(zhuǎn)變前的矩陣和向量,Mout和vout是轉(zhuǎn)變后的矩陣和向量,Li和Lj是矩陣Min的第i和第j行向量。
方程轉(zhuǎn)變單元102計算aji×Li-aij×Lj
并把得到的行向量作為矩陣Mout的第i行,計算把它的輸出作為向量vout的第i行。Mout的其它元素和vout的其它元素分別等于Min的其它元素和vin的其它元素。在這種情況下,線性方程系統(tǒng)Min·x=vin和線性方程Mout·x=vout有同樣的解,如同在文件2中示例的。
同樣,方程轉(zhuǎn)變單元102定義aij=0對于每個i都滿足j+1≤i≤n。從j=1到j(luò)=n重復(fù)這個過程使在矩陣的下三角中的元素變成0。因此,矩陣能進行三角變換同時不改變線性方程系統(tǒng)的解。
(3)逆運算單元103的操作逆運算單元103的操作在下面參考圖4進行詳細(xì)描述。
逆運算單元103從方程轉(zhuǎn)變單元102接收對角形元素mi(i=1,2,…,n)(S141),并計算 (S142)。逆運算單元103然后使用了預(yù)定值k計算t=tk×mk模p(S143),并同樣計算u=1/t 模p(S144)。逆運算單元103最后發(fā)現(xiàn)逆Ii=u×ti模p(i=1,2,…,n)(S145),并輸出逆Ii(i=1,2,…,n)到方程計算單元104(S146)。
(4)方程計算單元104的操作方程計算單元104的操作在下面參考圖5進行詳細(xì)的解釋。
方程計算單元104從方程轉(zhuǎn)變單元102接收矩陣M′和向量v′,并從逆運算單元103接收逆Ii(i=1,2,…,n)(S161)。在令計數(shù)器j為n-1時(S162),方程計算單元104當(dāng)j=n-1時計算Yj=Ij+1×dj+1模p并當(dāng)j≠n-1計算
(S163)。
方程計算單元104判斷是否j=0(S164)。如果j=0,方程計算單元104輸出解Yj(j=0,1,2,…,n-1)到逆計算單元203(S166)。否則,方程計算單元104把計數(shù)器j減1(S165)并返回到步驟S163。
1.3計算復(fù)雜性方程求解單元202的計算復(fù)雜性在下面進行評價。
(1)方程求解單元102的計算復(fù)雜性在方程求解單元102中,對于計數(shù)器j的一個值的計算復(fù)雜性(在圖3)中步驟S113-S119如下。
首先,把計數(shù)器i的一個值的計算復(fù)雜性(步驟S118)按照下面示出的進行分解。
(a)在步驟S118,對于j+1≤k≤n(k=j+1,j+2,…,n),執(zhí)行計算aik=ajj×aik-aij×ajk。這意味著兩個乘法被重復(fù)了(n-(j+1)+1)=(n-j)次,使得計算復(fù)雜性是2×(n-j)Mul。
(b)在步驟S118,計算bi=ajj×bi-aij×bj包括兩個乘法,使得計算復(fù)雜性是2Mul。
因為計數(shù)器i從j+1到n變化,對于計數(shù)器j的一個值,步驟S113~S119的計算復(fù)雜性是(2×(n-j))Mul×(n-(j+1)+1)=(2×(n-j)×(n-j+1))Mul在步驟S112~S120,計數(shù)器從1到n-1變化,使得方程轉(zhuǎn)變單元102的全部計算復(fù)雜性是 =2Mul×(1/6×n(n-1)(2n-1)+1/2×n(n-1))=2Mul×1/6×n(n-1)(2n-1+3)=1/3Mul×n(n-1)(2n+2)=(2/3×n(n-1)(n+1))Mul
(2)逆運算單元103的計算復(fù)雜性逆運算單元103的計算復(fù)雜性能分解如下。
(a) 發(fā)現(xiàn)s1~sn-3和tn需要n-2次乘法,使得計算復(fù)雜性是(n-2)Mul。
(b) 發(fā)現(xiàn)tn-1需要一次乘法,使得計算復(fù)雜性是1Mul。
(c) 發(fā)現(xiàn)sn和tn-2、sn-1和tn-3、…,和s4和t2需要2×(n-3)次乘法,使得計算復(fù)雜性為(2×(n-3))Mul。
(d) 發(fā)現(xiàn)t1需要一次乘法,使得計算復(fù)雜性是1Mul(e) 發(fā)現(xiàn)t需要一次乘法,使得計算復(fù)雜性是1Mul。
(f)發(fā)現(xiàn)u=1/t模p需要一次逆運算,使得計算復(fù)雜性是1Inv。
(g)發(fā)現(xiàn)Ii=u×ti模p(i=1,2,…,n)需要n次乘法,使得計算復(fù)雜性是nMul。
這些計算復(fù)雜性和給出了逆運算單元103的整個復(fù)雜性如下((n-2)+1+2(n-3)+1+1+n)Mul+1Inv=(4n-5)Mul+1Inv(3)方程計算單元104的計算復(fù)雜性在方程計算單元104中,對于計數(shù)器j的一個值的計算復(fù)雜性(在圖5中步驟S163~S165)如下。
當(dāng)j=n-1時,計算和當(dāng)j≠n-1時 需要一次乘法和(n-(j+1)+1)次乘法,使計算復(fù)雜性為(n-j+1)Mul。
因為計數(shù)器j從1到n變化,方程計算單元104的計算復(fù)雜性是 (4)方程求解單元202的整個計算復(fù)雜性從前面的描述中,可以給出方程求解單元202的整個計算復(fù)雜性是(2/3×n(n-1)(n+1))Mul+(4n-5)Mul+1次Inv+(1/2×n(n+1))Mul=(1/6(4n3+3n2+23n-30))Mul+1Inv假設(shè)在不同用途的計算機中1Inv=40Mul,當(dāng)n=5和|q|=160時(|q|是q的位數(shù)),可以估計方程求解單元202的整個計算復(fù)雜性為150Mul。
因而,發(fā)明的方程求解單元202的計算復(fù)雜性比先前技術(shù)要小得多。這樣的方程求解單元有巨大的使用價值,同時使一種裝置在具有簡化的計算復(fù)雜性的同時能求解在有限域上的方程系統(tǒng)。
同樣,這樣的求解單元使裝置能計算在預(yù)定的有限域GF(p)的外延域GF(q)中元素x的逆I,同時具有簡化的計算復(fù)雜性。
1.4具體例子下面是一個方程求解單元202的操作的具體例子。
如先前技術(shù)3所述,給出一個素數(shù)p=31、一個程序生成多項式f(g)=g5-2,GF(q)的元素x=5α4+29α3+6α2+19α+17。要解決的方程系統(tǒng)與先前技術(shù)3中的是相同的,如圖6(a)所示。
執(zhí)行下面的計算a21=0a22=17×17-19×10=6 mod 31a23=17×10-19×27=29 mod 31a24=17×27-19×12=14 mod 31a25=17×12-19×7=9 mod 31b2=17×0-19×1=12 mod 31當(dāng)i=1(i=2)時,轉(zhuǎn)變方程系統(tǒng)如圖6(b)所示。這里,在系數(shù)矩陣411中第一列和第二行的元素變成0。
對于j=1時轉(zhuǎn)變過程的結(jié)果,方程系統(tǒng)變成圖6(c)中所示,其中在系數(shù)矩陣421中的第一列和第三到第五行的元素是0。
對于j=2時轉(zhuǎn)變過程的結(jié)果,方程系統(tǒng)變成圖6(d)所示,其中在系數(shù)矩陣431中的第二列和第三到第五行的元素是0。
對于i=3時轉(zhuǎn)變過程的結(jié)果,方程系統(tǒng)變成圖6(e)所示,其中在系數(shù)矩陣441中的第三列和第四到第五行的元素是0。
對于j=4時轉(zhuǎn)變過程的結(jié)果,方程系統(tǒng)變成圖6(f)所示,其中在系數(shù)矩陣451中的第四列和第五行的元素是0。
接著,把在系數(shù)矩陣451中的對角線元素通過如下計算做逆運算s1=m1×m2=17×6=9 模31s2=s1×m3=9×17=29模31t5=s2×m4=29×6=19模31t4=s2×m5=29×30=2模31s5=m4×m5=6×30=25模31t3=s1×s5=9×25=8 模31s4=m3×s5=17×25=22模31t2=m1×s4=17×22=2模31t1=m2×s4=6×22=8 模31t=m1×t1=17×8=12模31u=1/t=1/12=13模31I1=u×t1=13×8=11模31I2=u×t2=13×2=26模31I3=u×t3=13×8=11模31I4=u×t4=13×2=26模31I5=u×t5=13×19=30模31注意u=1/t=1/12=13模31是這里唯一的逆運算操作。最后,按下面的方式求解方程系統(tǒng)Y4=I5×d5=30×2 模31Y3=I4×(d4-c45×Y4)=26×(28-2×29)=26 模31Y2=I3×(d3-c34×Y3-c35×Y4)=11×(1-6×26-11×29)=25 模31Y1=I2×(d2-c23×Y2-c24×Y3-c25×Y4)=26×(12-29×25-14×26-9×29)=25 模31Y0=I1×(d1-c12×Y1-c13×Y2-c14×Y3-c15×Y4)=11×(1-10×25-27×25-12×26-7×29)=12 模311.5應(yīng)用在本發(fā)明對實際通訊系統(tǒng)應(yīng)用中,例如加密通訊系統(tǒng)、數(shù)字簽名通訊系統(tǒng)或糾錯通訊系統(tǒng),使用了例如下面的參數(shù)。對于素數(shù)p=231-1、q=pn、n=5、生成程序多項式f(g)=g5-g-8和GF(q)的元素x=x0+x1×α+x2×α2+x3×α3+x4×α4,把系統(tǒng)方程定義為 其中p,x0,…,x4和y0,…,y4每個都是31位長,q和x每個都是155位長。
2.改進2.1變體作為在方程求解單元202中方程轉(zhuǎn)變單元102的變體,方程轉(zhuǎn)變單元102a在下面進行解釋。
方程轉(zhuǎn)變單元102a中,每個轉(zhuǎn)變過程有一個系數(shù)組計算過程和后續(xù)的與目標(biāo)方程一樣多的轉(zhuǎn)變子過程,每個子過程用于轉(zhuǎn)變一個不同的目標(biāo)方程。
在系數(shù)組計算過程中,方程轉(zhuǎn)變單元102a通過在由n行和n列組成的系數(shù)矩陣中從每個關(guān)鍵方程和目標(biāo)方程中提取一個非零系數(shù)選擇了m個非零系數(shù),相乘所選的非零系數(shù)的(m-1)個組合的每一個,并令m個相乘結(jié)果進入第一系數(shù)組。方程轉(zhuǎn)變單元102a然后將關(guān)鍵方程的每個常量和n個系數(shù)與在第一系數(shù)組中的相乘結(jié)果相乘,用于一個非零系數(shù)的組合,該組合不包括關(guān)鍵方程的非零系數(shù),并令獲得的n+1個值作為結(jié)果進入第二系數(shù)組。
下面,在每個轉(zhuǎn)變子過程中,方程轉(zhuǎn)變單元102a改變一個從目標(biāo)方程選擇的非零系數(shù)為0,相乘目標(biāo)方程的每個常量和n個系數(shù)與在第一系數(shù)組中的相乘結(jié)果,用于一個非零系數(shù)的組合,該組合不包括目標(biāo)方程的非零系數(shù),并分別從n+1個相乘結(jié)果中減去在第二系數(shù)組中的n+1個值。
方程轉(zhuǎn)變單元102a的操作在下面參考圖7進行解釋。在圖7中的流程圖包括步驟S118a~S118c,取代了在圖3中的步驟S118。
因為在圖3中其它步驟是相同的,下面的解釋將集中在步驟S118a~S118c上。
在步驟s118a中,方程轉(zhuǎn)變單元102a計算 每個k滿足條件j≤k≤n(k=j,j+1,…,n)。在步驟S118b中,方程轉(zhuǎn)變單元102a計算wk=hj×ajke=hj×bj每個k滿足條件j+1≤k≤n(k=j+1,j+2,…,n)。在步驟S118c中,令aij=0,方程轉(zhuǎn)變單元102a計算aik=hi×aik-wkbi=hi×bi-e每個k滿足j+1≤k≤n(k=j+1,j+2,…,n)(具體例子)一個方程轉(zhuǎn)變單元102a操作的例子在下面示出。
如同先前技術(shù)3所述,給定素數(shù)p=31、生成程序多項式f(g)=g5-2和GF(q)的元素x=5α4+29α3+6α2+19α+17。所求解的方程系統(tǒng)與在先前技術(shù)3中的是相同的,如圖8(a)所示。
當(dāng)j=1時,方程轉(zhuǎn)變單元102a計算s1=a11×a21=17×19=13 模31s2=s1×a31=13×6=16 模31h5=s2×a41=16×29=30模31h4=s2×a51=16×5=18 模31s5=a41×a51=29×5=21 模31h3=s1×s5=13×21=25 模31s4=a31×s5=6×21=2 模31h2=a11×s4=17×2=3 模31h1=a21×s4=19×2=7 模31然后計算w2=h1×a12=1×10=8 模31w3=h1×a13=7×27=3 模31w4=h1×a14=7×12=22 模31w5=h1×a15=7×7=18 模31e=h1×b1=7×1=7 模31
當(dāng)i=2(j=1)時,方程轉(zhuǎn)變單元102a計算a21=0a22=h2×a22-w2=3×17-8=12 模31a23=h2×a23-w3=3×10-3=27 模31a24=h2×a24-w4=3×27-22=28 模31a25=h2×a25-w5=3×12-18=18 模31b2=h2×b2-e=3×0-7=24 模31依照這種方法,僅僅需要一個乘法來發(fā)現(xiàn)aik而不象第一方案一樣需要兩次乘法,使得計算復(fù)雜性進一步減小。
通過上面的計算,轉(zhuǎn)變方程系統(tǒng)如圖8(b)所示,其中在系數(shù)矩陣511中的第一列和第二行中的元素變成0。
作為j=1時轉(zhuǎn)變過程的結(jié)果,方程系統(tǒng)變成圖8(c)所示,其中在系數(shù)矩陣521中的第一列和第三到第五行中的元素變成0。
接著,當(dāng)j=2時,方程轉(zhuǎn)變單元102a計算s1=a22×a32=12×2=24 模31h5=s1×a42=24×7=13 模31h4=s1×a52=24×25=11 模31s4=a42×a52=7×25=20 模31h3=a22×s4=12×20=23 模31h2=a32×s4=2×20=9 模31然后計算w3=h2×a23=9×27=26 模31w4=h2×a24=9×28=4 模31w5=h2×a25=9×18=7 模31e=h2×b2=9×24=30 模31作為j=2時轉(zhuǎn)變過程的結(jié)果,方程系統(tǒng)變成圖8(d)所示,其中在系數(shù)矩陣531中的第二列和第三到第五行中的元素變成0。
接著,當(dāng)j=3時,方程轉(zhuǎn)變單元102a計算h5=a33×a43=8×14=19 模31h4=a33×a53=8×12=3 模31h3=a43×a53=14×12=13 模31然后計算
w4=h3×a34=13×1=13 模31w5=h3×a35=13×7=29 模31e=h3×b3=13×26=28 模31作為j=3時轉(zhuǎn)變過程的結(jié)果,方程系統(tǒng)變成圖8(e)所示,其中在系數(shù)矩陣541中的第三列和第四到第五行中的元素變成0。
接著,當(dāng)j=4時,方程轉(zhuǎn)變單元102a計算h5=a44=16 模31h4=a54=14 模31然后計算w5=h4×a45=14×26=23 模31e=h4×b4=14×23=12 模31作為j=4時轉(zhuǎn)變過程的結(jié)果,方程系統(tǒng)變成圖8(f)所示,其中在系數(shù)矩陣551中的第四列和第五行中的元素變成0。
這里,令C=A和D=B,對對角線元素通過如下計算進行逆運算s1=m1×m2=17×12=18 模31s2=s1×m3=18×8=20 模31t5=s2×m4=20×16=10 模31t4=s2×m5=20×22=6 模31s5=m4×m5=16×22=11 模31t3=s1×s5=18×11=12 模31t3=s1×s5=18×11=12 模31s4=m3×s5=8×11=26 模31t2=m1×s4=7×16=8 模31t1=m2×s4=12×26=2 模31t=m1×t1=17×2=3 模31u=1/t=1/3=21 模31I1=u×t1=21×2=11 模31I2=u×t2=21×8=13 模31I3=u×t3=21×12=4 模31I4=u×t4=21×6=2 模31I5=u×t5=21×10=24 模31注意,在這里y=1/t=1/3=21模31是唯一的逆運算操作。最后,求解方程系統(tǒng)如下
Y4=I5×d5=24×18=29 模31Y3=I4×(d4-c45×Y4)=2×(23-26×29)=26 模31Y2=I3×(d3-c34×Y3-c35×Y4)=4×(26-1×26-7×29)=25 模31Y1=I2×(d2-c23×Y2-c24×Y3-c25×Y4)=13×(24-27×25-28×26-18×29)=25 模31Y0=I1×(d1-c12×Y1-c13×Y2-c14×Y3-c15×Y4)=11×(1-10×25-27×25-12×26-7×29)=12 模31(方程轉(zhuǎn)變單元102a的計算復(fù)雜性)對于計數(shù)器j的一個值方程轉(zhuǎn)變單元102a的計算復(fù)雜性計算在下面計算。
在步驟S118a,需要(3×(n-j+1)-6)次乘法以發(fā)現(xiàn)hk(k=j,j+1,…,n),使得計算復(fù)雜性是(3×(n-j+1)-6)Mul。
在步驟S118b中,需要(n-(j+1)+1)次乘法以發(fā)現(xiàn)wk(k=j+1,…,n)和e,使得計算復(fù)雜性是(n-j+1)Mul。
在步驟S118c中,對于計數(shù)器i的一個值,計算復(fù)雜性如下。
(a)為了計算aik=hi×aik-wk,j+1≤k≤n(k=j+1,j+2,…,n),重復(fù)了(n-(j+1)+1)=(n-j)次乘法,使得計算復(fù)雜性是(n-j)Mul。
(b)為了計算bi=hi×bi-e,執(zhí)行一次乘法,使得計算復(fù)雜性是1Mul。
因為計數(shù)器i從j+1到n變化,對于計數(shù)器i的所有值,步驟S118c的計算復(fù)雜性是(n-j+1)Mul×(n-(j+1)+1)=((n-j)×(n-j+1))Mul相應(yīng)地對于計數(shù)器j的一個值,步驟S118a~S118c的計算復(fù)雜性是((3×(n-j+1)-6)+(n-j+1)+(n-j))n-j+1)Mul=(4×(n-j+1)-6+(n-j)(n-j+1)Mul=((n-j+4)(n-j+1)-6)Mul因為計數(shù)器j從1到n-1變化,方程轉(zhuǎn)變單元102a的整個計算復(fù)雜性是
=1Mul×(1/6×n(n-1)(2n-1)+5/2×n(n-1)-2(n-1))=1Mul×(1/6×n(n-1)(2n-1+15)-2(n-1))=1Mul×(1/6×n(n-1)(2n+14)-2(n-1))=1Mul×(1/3×n(n-1)(n+7)-2(n-1))=1Mul×(1/3×(n-1)(n2+7n-6))=(1/3×n3+2n2-13/3×n+2)Mul因此,具有方程轉(zhuǎn)變單元102a的方程求解單元202的全部計算復(fù)雜性是((1/3×n3+2n2-13/3×n+2)+(4n-5)+1/2×n(n-1)Mul+1Inv=(1/3×n3+5/2n2+1/6×n-3)Mul+1Inv假定1Inv=40Mul,當(dāng)n=5時,估計出全部的計算復(fù)雜性為143Mul。
2.2其它修正(1)在一個通訊系統(tǒng)中,例如加密通訊系統(tǒng)、數(shù)字簽名通訊系統(tǒng)或糾錯通訊系統(tǒng),它們的安全基于在有限域GF(p)的外延域GF(q)上的橢圓曲線上的離散對數(shù)問題,其中p是素數(shù),q=pn,n是正整數(shù),G是E的基點,發(fā)明的方程求解單元和逆運算裝置可以被用于計算在外延域GF(q)上的元素的逆運算。加密通訊系統(tǒng)的一個例子是在互連網(wǎng)上的e-mail系統(tǒng),其中信息在傳送前是加密的。數(shù)字簽名通訊系統(tǒng)的一個例子是電子銀行系統(tǒng)。糾錯通訊系統(tǒng)的一個例子是e-mail系統(tǒng),其中當(dāng)部分傳送信息由于通訊線路質(zhì)量變壞而丟掉了,錯誤可以被檢測和糾正。
同樣,發(fā)明的方程求解單元和逆運算裝置可用于在記錄裝置中加密,該裝置使用橢圓曲線離散對數(shù)問題作為安全的基礎(chǔ)加密版權(quán)數(shù)字內(nèi)容,并記錄加密的數(shù)字內(nèi)容進入記錄介質(zhì),例如DVD或半導(dǎo)體存儲器,或在復(fù)制裝置中加密,該裝置在記錄介質(zhì)中解密所加密的數(shù)字內(nèi)容以復(fù)制數(shù)字內(nèi)容。
通過應(yīng)用發(fā)明到這些系統(tǒng),能進行外延域元素的逆運算的計算同時有小的計算復(fù)雜性。
在這樣的應(yīng)用中,能使用發(fā)明的方程求解單元和逆運算裝置,例如,作為硬件存儲在移動電話中或個人計算機裝備的電路板中。
(2)雖然形式為gn-β的生成程序多項式已經(jīng)使用在上面的方案中,對于有n階的普通生成程序多項式例如f(g)=βngn+βn-1gn-1+…+β2g2+β1g+β在預(yù)定的有限域GF(p)的外延域GF(q)(q=pn,n是正整數(shù))中的元素x的逆I能在相似的模式下計算。
令普通n階的普通多項式f(g)是生成程序多項式,α是f(g)的根。
對于在外延域GF(q)中的一個元素x=x0+x1α+…+xn-1αn-1,當(dāng)在(x×αi-1模 f(α)中的系數(shù)αi-1被表示成aij時,能把有n個未知數(shù)的線性方程系統(tǒng)寫做a11Y0+a12Y1+a13Y2+…a1nYn-1=1a21Y0+a22Y1+a23Y2+…a2nYn-1=0_an1Y0+an2Y1+an3Y2+…annYn-1=0有n個未知數(shù)的線性方程系統(tǒng)能寫做這種形式的原因在下面給出。
方程x×I=x×Y0+x×Y1α+…+x×Yn-1αn-1=1 模 f(α)和x×Y0+x×Y1α+…+x×Yn-1αn-1=x×Y0+(x×α模 f(α))×Y1+…+(x×αn-1模 f(α))×Yn-1是有效的。系數(shù)αi-1由ai1×Y0+ai2×Y1+…+ain×Yn-1給出。
系數(shù)αi-1(i>2)都是0,系數(shù)α0(i=1)是1。因此推導(dǎo)出上面的有n個未知數(shù)的線性方程系統(tǒng)。
(3)本發(fā)明可以是用在上面描述的方程求解單元和逆運算裝置中的方程求解方法和逆運算方法。發(fā)明也可以是用于完成這些方法的計算機程序,或用于執(zhí)行計算機程序的數(shù)字信號。
同樣,本發(fā)明可以是計算機可讀的存儲介質(zhì),例如軟盤、硬盤、CD-R0M、MO、DVD、DVD-ROM、DVD-RAM或半導(dǎo)體存儲器,該介質(zhì)存儲計算機程序或數(shù)字信號。同樣地,發(fā)明可以是在這樣的存儲介質(zhì)中存儲的計算機程序或數(shù)字信號。
同樣,本發(fā)明可以依靠在網(wǎng)絡(luò)上載波傳遞計算機程序或數(shù)字信號來實現(xiàn),例如電訊網(wǎng)絡(luò)、無線電或有線通訊網(wǎng)絡(luò)、或互連網(wǎng)。
進一步,本發(fā)明可以依靠分配存儲在存儲介質(zhì)中的計算機程序或數(shù)字信號、或通過網(wǎng)絡(luò)在載波上傳遞計算機程序或數(shù)字信號,使得它們能在其它的計算機系統(tǒng)中使用。
(4) 方案中不同組合和以上表述的修正是可能的。
雖然本發(fā)明已經(jīng)作為例子參考附圖進行了全面的描述,應(yīng)當(dāng)注意的是不同的變化和修正對在技術(shù)上熟練的人員來所是明顯的。因而,除非這樣的變化和修正偏離了本發(fā)明的范圍,否則它們將被包括在這里的解釋中。
權(quán)利要求
1.一種用于加密或解密的裝置,用于求解在有限域GF(p)上有n個未知數(shù)的線性方程系統(tǒng)Ax=b,其中p是素數(shù),n是正整數(shù),A是包括n行和n列的系數(shù)矩陣,x是包括n個元素的未知向量,和b是包括n個元素的常向量,該裝置包括用于存儲系數(shù)矩陣A和常向量b的參數(shù)存儲裝置;三角變換裝置,用于從參數(shù)存儲裝置中讀取系數(shù)矩陣A和常向量b的,和轉(zhuǎn)變讀出的系數(shù)矩陣A和常向量b以產(chǎn)生用于有n個未知數(shù)的線性方程系統(tǒng)Cx=d的系數(shù)矩陣C和常向量d,該方程系統(tǒng)Cx=d等價于線性方程系統(tǒng)Ax=b,系數(shù)矩陣C包括n行和n列,常向量d包括n個元素,其中系數(shù)矩陣A在被三角變換成上三角形式的系數(shù)矩陣C的同時不需改變系數(shù)矩陣A的對角形元素為1;對角線元素逆運算裝置,用于計算在有限域GF(p)上產(chǎn)生的系數(shù)矩陣C的對角線元素的逆;和方程計算裝置,用于使用系數(shù)矩陣C、常向量d和系數(shù)矩陣C的對角線元素的逆求解線性方程系統(tǒng)Cx=d,從而求解線性方程Ax=b。
2.權(quán)利要求1的裝置,其中三角變換裝置執(zhí)行一個或多個連續(xù)的轉(zhuǎn)變過程以從線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b產(chǎn)生線性方程系統(tǒng)Cx=d的系數(shù)矩陣C和常向量d,其中在每個轉(zhuǎn)變過程中三角變換裝置轉(zhuǎn)變有n個未知數(shù)的線性方程系統(tǒng)的系數(shù)矩陣和常向量,成為等價于轉(zhuǎn)變前的線性方程系統(tǒng)的有n個未知數(shù)的線性方程系統(tǒng)的系數(shù)矩陣和常向量,其中線性方程系統(tǒng)Ax=b經(jīng)受第一轉(zhuǎn)變過程和線性方程系統(tǒng)Cx=d被產(chǎn)生作為最后轉(zhuǎn)變過程的結(jié)果,其中在每個轉(zhuǎn)變過程中經(jīng)受轉(zhuǎn)變過程的有n個未知數(shù)的線性方程系統(tǒng)包括一個是線性方程的用于轉(zhuǎn)變的軸的關(guān)鍵方程和一個或多個作為將被轉(zhuǎn)變的線性方程的目標(biāo)方程,和三角變換裝置通過以下步驟轉(zhuǎn)變每個目標(biāo)方程為等價于目標(biāo)方程的方程,定義容納至少一個涉及關(guān)鍵方程的值的第一系數(shù)組和容納n+1個涉及關(guān)鍵方程的第二系數(shù)組,改變在目標(biāo)方程中的非零系數(shù)為0,和用在第一系數(shù)組中的值乘以目標(biāo)方程的每個常數(shù)和n個系數(shù)并從n+1個相乘結(jié)果中分別減去在第二系數(shù)組中的n+1個值。
3.權(quán)利要求2的裝置,其中每個轉(zhuǎn)變過程有用于轉(zhuǎn)變各目標(biāo)方程的轉(zhuǎn)變子過程,其中在每個轉(zhuǎn)變子過程中三角變換裝置(a) 從關(guān)鍵方程中選擇非零系數(shù)并令所選的非零系數(shù)進入第一系數(shù)組,(b) 從目標(biāo)方程中選擇非零系數(shù),將從目標(biāo)方程中選擇的非零系數(shù)乘以在關(guān)鍵方程中的常量和n個系數(shù),并令相乘獲得的n+1個值進入第二系數(shù)組,(c) 改變在目標(biāo)方程中的所選非零系數(shù)為0,和(d) 將在第一系數(shù)組中的非零系數(shù)乘以在目標(biāo)方程中的常量和n個系數(shù)和,并從n+1個相乘結(jié)果中分別減去在第二系數(shù)組中的n+1個值
4.權(quán)利要求3的裝置,其中當(dāng)系數(shù)矩陣C的對角線元素被表示成mi(i=1,2,…,n)和在有限域GF(p)中的對角線元素mi(i=1,2,…,n)的逆被表示成Ii(i=1,2,…,n)時,對角線元素逆運算裝置包括(a)一個乘法單元,用于計算 和 (b)一個第一逆運算單元,用于計算u=1/t模p和(c)一個第二逆運算單元,用于計算Ii=u×ti模p(i=1,2,…,n)以發(fā)現(xiàn)逆Ii(i=1,2,…,n)。
5.權(quán)利要求4的裝置,其中乘法單元以下述的次序計算s1=m1×m2模ps2=s1×m3模psn-3=sn-4×mn-2模p然后以下述的次序計算tn=sn-3×mn-1模ptn-1=sn-3×mn模psn=mn-1×mn模ptn-2=sn-4×sn模psn-1=mn-2×sn模ptn-3=sn-5×sn-1模psn-2=mn-3×sn-1模ptn-4=sn-6×sn-2模ps5=m4×s6模pt3=s1×s5模ps4=m3×s5模pt2=m1×s4模pt1=m2×s4模p并最后計算t=tj×mj從一組正整數(shù)(1,2,…,n)中選擇值j。
6.權(quán)利要求2的裝置,其中每個轉(zhuǎn)變過程有一個系數(shù)組計算過程和轉(zhuǎn)變子過程,并執(zhí)行下面的系數(shù)組計算過程,每個轉(zhuǎn)變過程用于轉(zhuǎn)變各自的目標(biāo)方程,其中在系數(shù)組計算過程中三角轉(zhuǎn)變裝置(a) 通過從每個關(guān)鍵方程和目標(biāo)方程中提取一個非零系數(shù)選擇m個非零系數(shù),相乘所選非零系數(shù)的(m-1)個組合的每一個,并令m個相乘結(jié)果為第一系數(shù)組,m是不小于2的正整數(shù),和(b) 用第一系數(shù)組中的相乘結(jié)果乘以在關(guān)鍵方程中的每個常量、n個系數(shù),用于不包括從關(guān)鍵方程中所選的非零系數(shù)的非零系數(shù)組合,并令通過乘法獲得的n+1個值為第二系數(shù)組,和其中在跟隨每個系數(shù)組計算過程的轉(zhuǎn)變子過程中,三角變換裝置(a) 改變在系數(shù)組計算過程中從目標(biāo)方程選擇的非零系數(shù)為在目標(biāo)方程中的0,和(b) 用第一系數(shù)組中的相乘結(jié)果乘以在目標(biāo)方程中的每個常量、n個系數(shù),用于不包括從關(guān)鍵方程中所選的非零系數(shù)的非零系數(shù)的組合,并從n+1個相乘結(jié)果中分別減去第二系數(shù)組中的n+1個值。
7.權(quán)利要求6的裝置其中當(dāng)系數(shù)矩陣C的對角線元素被標(biāo)記為mi(i=1,2,…,n)和在有限域GF(p)中的對角線元素mi(i=1,2,…,n)的逆被標(biāo)記為Ii(i=1,2,…,n)時,對角線元素逆運算裝置包括(a)一個乘法單元,用于計算 和 (b)一個第一逆運算單元,用于計算u=1/t模p和(c)一個第二逆運算單元,用于計算Ii=u×ti模p(i=1,2,…,n)以發(fā)現(xiàn)逆Ii(i=1,2,…,n)。
8.權(quán)利要求7的裝置,其中乘法單元以如下次序計算s1=m1×m2模ps2=s1×m3模psn-3=sn-4×mn-2模p然后以如下次序計算tn=sn-3×mn-1模ptn-1=sn-3×mn模psn=mn-1×mn模ptn-2=sn-4×sn模psn-1=mn-2×sn模ptn-3=sn-5×sn-1模psn-2=mn-3×sn-1模ptn-4=sn-6×sn-2模p_s5=m4×s6模pt3=s1×s5模ps4=m3×s5模pt2=m1×s4模pt1=m2×s4模p最后計算t=tj×mjj值從一組正整數(shù)(1,2,…,n)中選擇。
9.一種用于加密和解密的裝置,用于計算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素數(shù),q=pn,和n是正整數(shù),該裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求1的裝置;和逆計算裝置,用于使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
10.一個用于加密和解密的裝置,用于計算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素數(shù),q=pn,和n是正整數(shù),該裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求2的裝置;和逆計算裝置,使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
11.一種用于加密和解密的裝置,用于計算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素數(shù),q=pn,和n是正整數(shù),該裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求3的裝置;和逆計算裝置,用于使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
12.一種用于加密和解密的裝置,用于計算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素數(shù),q=pn,和n是正整數(shù),該裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求4的裝置;和逆計算裝置,用于使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
13.一種用于加密和解密的裝置,用于計算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素數(shù),q=pn,和n是正整數(shù),該裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求5的裝置;和逆計算裝置,用于使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
14.一種用于加密和解密的裝置,用于計算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素數(shù),q=pn,和n是正整數(shù),該裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求6的裝置;和逆計算裝置,用于使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
15.一種用于加密和解密的裝置,用于計算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素數(shù),q=pn,和n是正整數(shù),該裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求7的裝置;和逆計算裝置,用于使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
16.一種用于加密和解密的裝置,用于計算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素數(shù),q=pn,和n是正整數(shù),該裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求8的裝置;和逆計算裝置,用于使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
17.一個記錄介質(zhì)復(fù)制裝置,用于當(dāng)有版權(quán)的數(shù)字內(nèi)容基于安全在GF(p)上的橢圓曲線E上使用離散對數(shù)問題進行加密并記錄在介質(zhì)上時,計算在GF(q)中的元素y的逆以解密記錄在記錄介質(zhì)上的加密數(shù)字內(nèi)容,其中GF(q)是有限域GF(p)的外延域,p是素數(shù),q=pn,n是正整數(shù),G是橢圓E的基點,該記錄介質(zhì)復(fù)制裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求1的裝置;和逆計算裝置,用于使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
18.一個記錄介質(zhì)復(fù)制裝置,用于當(dāng)有版權(quán)的數(shù)字內(nèi)容基于安全在GF(p)上的橢圓曲線E上使用離散對數(shù)問題進行加密并記錄在介質(zhì)上時,計算在GF(q)中的元素y的逆以用于解密記錄在記錄介質(zhì)上的加密數(shù)字內(nèi)容,其中GF(q)是有限域GF(p)的外延域,p是素數(shù),q=pn,n是正整數(shù),G是橢圓E的基點,該記錄介質(zhì)復(fù)制裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求2的裝置;和逆計算裝置,用于使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
19.一個記錄介質(zhì)復(fù)制裝置,用于當(dāng)版權(quán)數(shù)字內(nèi)容基于安全在GF(p)上的橢圓曲線E上使用離散對數(shù)問題進行加密并記錄在介質(zhì)上時,計算在GF(q)中的元素y的逆以用于解密記錄在記錄介質(zhì)上的加密數(shù)字內(nèi)容,其中GF(q)是有限域GF(p)的外延域,p是素數(shù),q=pn,n是正整數(shù),G是橢圓E的基點,該記錄介質(zhì)復(fù)制裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求3的裝置;和逆計算裝置,用于使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
20.一個記錄介質(zhì)復(fù)制裝置,用于當(dāng)版權(quán)數(shù)字內(nèi)容基于安全在GF(p)上的橢圓曲線E上使用離散對數(shù)問題進行加密并記錄在介質(zhì)上時,計算在GF(q)中的元素y的逆以用于解密記錄在記錄介質(zhì)上的加密數(shù)字內(nèi)容,其中GF(q)是有限域GF(p)的外延域,p是素數(shù),q=pn,n是正整數(shù),G是橢圓E的基點,該記錄介質(zhì)復(fù)制裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求4的裝置;和逆計算裝置,用于使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
21.一個記錄介質(zhì)復(fù)制裝置,用于當(dāng)版權(quán)數(shù)字內(nèi)容基于安全在GF(p)上的橢圓曲線E上使用離散對數(shù)問題進行加密并記錄在介質(zhì)上時,計算在GF(q)中的元素y的逆以用于解密記錄在記錄介質(zhì)上的加密數(shù)字內(nèi)容,其中GF(q)是有限域GF(p)的外延域,p是素數(shù),q=pn,n是正整數(shù),G是橢圓E的基點,記錄介質(zhì)復(fù)制裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求5的裝置;和逆計算裝置,用于使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
22.一個記錄介質(zhì)復(fù)制裝置,用于當(dāng)版權(quán)數(shù)字內(nèi)容基于安全在GF(p)上的橢圓曲線E上使用離散對數(shù)問題進行加密并記錄在介質(zhì)上時,計算在GF(q)中的元素y的逆以用于解密記錄在記錄介質(zhì)上的加密數(shù)字內(nèi)容,其中GF(q)是有限域GF(p)的外延域,p是素數(shù),q=pn,n是正整數(shù),G是橢圓E的基點,該記錄介質(zhì)復(fù)制裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求6的裝置;和逆計算裝置,用于使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
23.一個記錄介質(zhì)復(fù)制裝置,用于當(dāng)版權(quán)數(shù)字內(nèi)容基于安全在GF(p)上的橢圓曲線E上使用離散對數(shù)問題進行加密并記錄在介質(zhì)上時,計算在GF(q)中的元素y的逆以用于解密記錄在記錄介質(zhì)上的加密數(shù)字內(nèi)容,其中GF(q)是有限域GF(p)的外延域,p是素數(shù),q=pn,n是正整數(shù),G是橢圓E的基點,該記錄介質(zhì)復(fù)制裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求7的裝置;和逆計算裝置,用于使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
24.一個記錄介質(zhì)復(fù)制裝置,用于當(dāng)版權(quán)數(shù)字內(nèi)容基于安全在GF(p)上的橢圓曲線E上使用離散對數(shù)問題進行加密并記錄在介質(zhì)上時,計算在GF(q)中的元素y的逆以用于解密記錄在記錄介質(zhì)上的加密數(shù)字內(nèi)容,其中GF(q)是有限域GF(p)的外延域,p是素數(shù),q=pn,n是正整數(shù),G是橢圓E的基點,該記錄介質(zhì)復(fù)制裝置包括方程生成裝置,用于使用根是α的生成程序多項式GF(q)的所有的系數(shù)和元素y,生成用于有n個未知數(shù)的線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b;方程求解裝置,用于發(fā)現(xiàn)線性方程系統(tǒng)Ax=b的解,方程求解裝置包括權(quán)利要求8的裝置;和逆計算裝置,用于使用根α和由方程求解裝置發(fā)現(xiàn)的解計算逆I。
25.一種用于求解在有限域GF(p)上有n個未知數(shù)的線性方程系統(tǒng)Ax=b的方法,其中p是素數(shù),n是正整數(shù),A是包括n行和n列元素的系數(shù)矩陣,x是包括n個元素的未知向量,b是包括n個元素的常向量,用于在裝備了參數(shù)存儲裝置的裝置中加密或解密,所述參數(shù)存儲裝置用于存儲系數(shù)矩陣A和常向量b,該方法包括一個三角變換步驟,用于從參數(shù)存儲裝置中讀取系數(shù)矩陣A,并轉(zhuǎn)變讀出的系數(shù)矩陣A和常向量b以產(chǎn)生用于有n個未知數(shù)的線性方程系統(tǒng)Cx=d的系數(shù)矩陣C和常向量d,其中該線性方程系統(tǒng)Cx=d等價于Ax=b,其中系數(shù)矩陣A在被三角變換成上三角形式的系數(shù)矩陣C的同時不把系數(shù)矩陣A的對角線元素變成1,一個對角線元素逆運算步驟,用于計算在有限域GF(p)上生成的系數(shù)矩陣C的對角形元素的逆;和一個方程計算步驟,用于使用系數(shù)矩陣C、矢量d和系數(shù)矩陣C的對角線元素的逆求解線性方程系統(tǒng)Cx=d,由此求解線性方程系統(tǒng)Ax=b。
26.權(quán)利要求25的方法,其中三角變換步驟包括一個或多個連續(xù)的轉(zhuǎn)變過程以從線性方程系統(tǒng)Ax=b的系數(shù)矩陣A和常向量b產(chǎn)生線性方程系統(tǒng)Cx=d的系數(shù)矩陣C和常向量d。其中在每個轉(zhuǎn)變過程中把有n個未知數(shù)的線性方程系統(tǒng)的系數(shù)矩陣和常向量轉(zhuǎn)變成等價于轉(zhuǎn)變前的線性方程系統(tǒng)的有n個未知數(shù)的線性方程系統(tǒng)的系數(shù)矩陣和常向量,其中線性方程系統(tǒng)Ax=b從屬于第一轉(zhuǎn)變過程和線性方程系統(tǒng)Cx=d作為最后轉(zhuǎn)變過程的結(jié)果而產(chǎn)生,其中在每個轉(zhuǎn)變過程中經(jīng)受轉(zhuǎn)變過程的有n個未知數(shù)的線性方程系統(tǒng)包括一個是線性方程的用作轉(zhuǎn)變的軸的關(guān)鍵方程和一個或多個作為將被轉(zhuǎn)變的線性方程的目標(biāo)方程,和每個目標(biāo)方程通過以下步驟被轉(zhuǎn)變?yōu)榈葍r的目標(biāo)方程,定義容納至少一個涉及關(guān)鍵方程的值的第一系數(shù)組和容納n+1個涉及關(guān)鍵方程的值的第二系數(shù)組,改變在目標(biāo)方程中的非零系數(shù)為0,和將在第一系組中的值乘以在目標(biāo)方程中每個常數(shù)和n個系數(shù),并從n+1個相乘結(jié)果中分別減去在第二系數(shù)組中的n+1個值。
27.權(quán)利要求26的方法,其中每個轉(zhuǎn)變過程有用于轉(zhuǎn)變各目標(biāo)方程的轉(zhuǎn)變子過程,其中在每個轉(zhuǎn)變子過程中(a) 從關(guān)鍵方程中選擇非零系數(shù)并令所選的非零系數(shù)為第一系數(shù)組,(b) 從目標(biāo)方程中選擇非零系數(shù),在關(guān)鍵方程中的每個常量、n個系數(shù)乘以從目標(biāo)方程中選擇的非零系數(shù),并令相乘獲得的n+1個值為第二系數(shù)組,(c) 改變在目標(biāo)方程中的所選非零系數(shù)為0,和(d) 在目標(biāo)方程中的每個常量、n個系數(shù)乘以在第一系數(shù)組中的非零系數(shù),并從n+1個相乘結(jié)果中分別減去在第二系數(shù)組中的n+1個值。
28.權(quán)利要求27的裝置,其中當(dāng)系數(shù)矩陣C的對角線元素被表示成mi(i=1,2,…,n)和在有限域GF(p)中對角線元素mi(i=1,2,…,n)的逆被表示成Ii(i=1,2,…,n)時,對角線元素逆運算步驟包括(a) 一個乘法子步驟,用于計算 和 (b) 一個第一逆運算子步聚,用于計算u=1/t 模p和(e)一個第二運算步驟,用于計算Ii=u×ti模p(i=1,2,…,n)以發(fā)現(xiàn)逆Ii(i=1,2,…,n)。
29.權(quán)利要求28的裝置,s1=m1×m2模ps2=s1×m3模p_sn-3=sn-4×mn-2模ptn=sn-3×mn-1模ptn-1=sn-3×mn模psn=mn-1×mn模ptn-2=sn-4×sn模psn-1=mn-2×sn模ptn-3=sn-5×sn-1模psn-2=mn-3×sn-1模ptn-4=sn-6×sn-2模p_s5=m4×s6模pt3=s1×s5模ps4=m3×s5模pt2=m1×s4模pt1=m2×s4模p并最后計算t=tj×mj從一組正整數(shù)(1,2,…,n)中選擇值j。
30.權(quán)利要求26的裝置,其中每個轉(zhuǎn)變過程有一個系數(shù)組計算過程和轉(zhuǎn)變子過程,在系數(shù)組計算過程之后執(zhí)行,用于轉(zhuǎn)變各自的目標(biāo)方程,其中在系數(shù)組計算過程中(a)通過從每個關(guān)鍵方程和目標(biāo)方程中提取一個非零系數(shù)選擇m個非零系數(shù),相乘所選非零系數(shù)的(m-1)個組合的每一個,并令m個相乘結(jié)果為第一系數(shù)組,m是不小于2的正整數(shù),和(b)將在關(guān)鍵方程中的每個常量和n個系數(shù)乘以在第一系數(shù)組中的相乘結(jié)果,用于獲得不包括從關(guān)鍵方程中所選的非零系數(shù)的非零系數(shù)組合,并令通過乘法獲得的n+1個值為第二系數(shù)組,其中在每個系數(shù)組計算過程之后的轉(zhuǎn)變子過程中(a) 將在系數(shù)組計算過程中從目標(biāo)方程選擇的非零系數(shù)改變?yōu)槟繕?biāo)方程中的0,和(b) 將在目標(biāo)方程中的每個常量和n個系數(shù)乘以在第一系數(shù)組中的相乘結(jié)果,用于獲得不包括從關(guān)鍵方程中所選的非零系數(shù)的非零系數(shù)組合,并從n+1個相乘結(jié)果中分別減去第二系數(shù)組中的n+1個值。
31.權(quán)利要求30的裝置其中當(dāng)系數(shù)矩陣C的對角線元素被標(biāo)記為mi(i=1,2,…,n)和在有限域GF(p)中的對角線元素mi(i=1,2,…,n)的逆被標(biāo)記為Ii(i=1,2,…,n)時,對角線元素逆運算步驟包括(a)一個乘法子步驟,用于計算 和 (b)一個第一逆運算子步驟,用于計算u=1/t模p和(c)一個第二逆運算子步驟,用于計算Ii=u×ti模p (i=1,2,…,n)以發(fā)現(xiàn)逆Ii(i=1,2,…,n)。
32.權(quán)利要求31的裝置,其中乘法子步驟以如下次序計算s1=m1×m2模ps2=s1×m3模p_sn-3=sn-4×mn-2模p然后以一定次序計算最后計算t=tj×mjj值從一組正整數(shù)(1,2,…,n)中選擇。
全文摘要
一個方程轉(zhuǎn)變單元三角變換矩陣M和向量v以產(chǎn)生用于有n個未知數(shù)的線性方程系統(tǒng)M′x=v′的矩陣M′和向量v′,該線性方程系統(tǒng)等價于有n個未知數(shù)的線性方程系統(tǒng)Mx=v,三角變換在轉(zhuǎn)變矩陣M為上三角矩陣的同時不改變矩陣M的對角線元素為1。逆運算單元計算矩陣M′的對角線元素的逆運算。方程計算單元發(fā)現(xiàn)使用矩陣M′、向量v′的線性方程系統(tǒng)M′x=v′的解,并算出對角線元素的逆。逆計算單元計算在有限域GF(p)的外延域GF(q)中元素的逆Ⅰ。
文檔編號G06F17/10GK1281203SQ0012011
公開日2001年1月24日 申請日期2000年7月17日 優(yōu)先權(quán)日1999年7月16日
發(fā)明者布田裕一 申請人:松下電器產(chǎn)業(yè)株式會社