專(zhuān)利名稱(chēng):增速密碼法與裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及一種能夠有效地計(jì)算量的冪和倍數(shù)的方法和裝置,其可用于諸如密鑰生成、加密、解密、辨識(shí)、識(shí)別和數(shù)字簽名等密碼目的。
背景技術(shù):
現(xiàn)代密碼方法要求大量的基本算術(shù)運(yùn)算,如加、減、乘、除、余、移位以及邏輯“與”、“或”和“異或”。這些方法中有許多需要計(jì)算冪Ak(或倍數(shù)k*A),其中值k從一個(gè)可能值集合中隨機(jī)選取。
迄今為止,人們業(yè)已就k取一指定值時(shí)冪Ak(或倍數(shù)k*A)的計(jì)算提出并使用了各種各樣的方法(H.Cohen所著“計(jì)算數(shù)論教程”(A Course in Computational Number Theory),GTM 138,Springer-Verlag,1993(Section 1.2)),(D.Gordon所著“快速取冪法評(píng)述”(A survey of fast exponentiation methods),Journal of Algorithms17(1998),129-146),(D.Knuth所著“計(jì)算機(jī)編程技藝”(The Art ofComputer Programming),Volume 2,Semi-numerical Algorithms,3rded.,Addison-Vesley,1998(Section 6.4.3)),(A.J.Menezws等人所著“應(yīng)用密碼學(xué)手冊(cè)”(Handbook of Applied Cryptography),CRC Press,1997(Section 14.6))。
一種已用的快速計(jì)算方法是將k表示為2的冪之和,將計(jì)算化為乘法與平方(或加法與加倍)。
第二種已用的快速計(jì)算方法是將k表示為2的正冪與負(fù)冪之和,將計(jì)算化為乘法、逆與平方(或加法、減法與加倍)。
第三種已用的快速計(jì)算方法是將k表示為2的冪的小倍數(shù)之和,將計(jì)算化為乘法、小冪與平方(或加法、減法、小倍數(shù)與加倍)。
第四種已用的快速計(jì)算方法是將k表示為一特殊乘子t的冪之和,其中t具有滿(mǎn)足性質(zhì)與乘法(或者加法或減法)相比,增高到t冪(或者乘以t)將占用非常少的時(shí)間。這種方法的一個(gè)特別情況是將k表示為群E(GF(pm))上的p-冪Frobenius映射的冪的和,其中E(GF(pm))是定義在有限域GF(p)上的一橢圓曲線(xiàn)E上的點(diǎn)所形成的群。
第五種已用的快速計(jì)算方法(稱(chēng)作因子法(Knuth所著“計(jì)算機(jī)編程技藝”,(The Art of Computer Programming),Volume 2,Semi-numerical Algorithms,3rded.,Addison-Vesley,1998(Section4.6.3,page 463 and exercise 3)))是將一給定的整數(shù)k表示為數(shù)個(gè)因子的乘積,而各個(gè)因子則用前面所述方法進(jìn)行表示。
對(duì)于k的所有或大多數(shù)值,所有這些方法都能夠?qū)鏏k(或倍數(shù)k*A)進(jìn)行合理的快速計(jì)算,但許多使用者期望有一種方法,能夠在k從一充分大的允許值集合中取值的情況下實(shí)現(xiàn)冪Ak(或倍數(shù)k*A)更加快速的計(jì)算。
發(fā)明內(nèi)容
在許多密碼運(yùn)算中,要使用一個(gè)群或一個(gè)環(huán)中的一個(gè)元素的一個(gè)隨機(jī)冪或倍數(shù)。本發(fā)明提供了一種方法、體制和裝置來(lái)變換在某些重要情形下使用一種快速方法計(jì)算冪或倍數(shù)的數(shù)字信息,這些情形包括Galois域 中的冪,Koblitz橢圓曲線(xiàn)上的倍數(shù),NTRU卷積多項(xiàng)式環(huán)中的倍數(shù)等。例如,根據(jù)本發(fā)明,一個(gè)指數(shù)或倍數(shù)將被表示為數(shù)個(gè)因子的乘積,其中的每個(gè)因子在被展開(kāi)成某快速運(yùn)算的冪的和時(shí)具有低Hamming權(quán)。這在許多密碼運(yùn)算中,如密鑰生成、加密、解密、數(shù)字簽名的創(chuàng)建、數(shù)字簽名的驗(yàn)證、數(shù)字證書(shū)的創(chuàng)建、數(shù)字證書(shū)的辨識(shí)、識(shí)別等之中將是非常有用的,特別是在使用隨機(jī)指數(shù)或乘子的情況下。
因此,本發(fā)明提供了一種進(jìn)行密碼運(yùn)算的方法、體制和裝置,包括通過(guò)使用含有取自大元素集合的一個(gè)分量的數(shù)字運(yùn)算符進(jìn)行運(yùn)算來(lái)變換數(shù)字信息,其中該分量具有一低Hamming權(quán)。通常選擇該分量使其Hamming權(quán)約小于30,較佳約小于20,更佳約小于15,最佳則是約小于10。該數(shù)字運(yùn)算符包含一個(gè)具有許多因子、每個(gè)因子具有一低Hamming權(quán)的分量較佳。與使用現(xiàn)有技術(shù)元素相比,按照本發(fā)明利用一個(gè)具有一個(gè)或多個(gè)分量的數(shù)字運(yùn)算符,變換階段將能以更快的速度完成。按照本發(fā)明,一個(gè)分量表示為數(shù)個(gè)因子的乘積,每個(gè)因子在展開(kāi)成某快速運(yùn)算的冪之和時(shí)具有低Hamming權(quán)(通過(guò)適當(dāng)?shù)挠?jì)算設(shè)備如cpu、微處理器或計(jì)算機(jī)等來(lái)進(jìn)行)。
按照本發(fā)明,能夠在k從一個(gè)大的可能元素集合中取值的情況下非常快速地計(jì)算冪Ak(或倍數(shù)k*A)。按照本發(fā)明的方法進(jìn)行的計(jì)算通常比采用目前廣泛使用的方法顯著地快。
在本發(fā)明的一實(shí)施例中,關(guān)于指數(shù)分量(或者多個(gè)元素相乘的分量)的計(jì)算技術(shù)使用特別選取的元素的乘積,以提高指數(shù)計(jì)算(或乘法計(jì)算)的速度。盡管可能的冪(或倍數(shù))的個(gè)數(shù)約等于k(1),k(2),…,k(r)的容許值個(gè)數(shù)的乘積,但計(jì)算一個(gè)冪Ak(1)k(2)…k(r)(或一個(gè)倍數(shù)k(1)k(2)…k(r)*A)的計(jì)算復(fù)雜性與計(jì)算冪A1k(1),A2k(2),…,Ark(r)(或倍數(shù)k(1)*A1,k(2)*A2,…,k(r)*Ar)的復(fù)雜性成正比。雖然Ak(或k*A)的可能值的集合的大小隨k(1)k(2),…,k(r)的容許值個(gè)數(shù)的乘積正比例增加、但計(jì)算復(fù)雜性隨各個(gè)計(jì)算復(fù)雜性的和正比例增加這樣一個(gè)事實(shí)有助于解釋為什么本發(fā)明提供了一種改進(jìn)的計(jì)算方法。本發(fā)明之方法特別適用于含有一個(gè)使冪At能夠快速計(jì)算的元素t的情況。k(1),k(2),…,k(r)取作元素t的低Hamming權(quán)多項(xiàng)式較佳。
本發(fā)明還提供一套計(jì)算機(jī)可讀介質(zhì),其包含使用本發(fā)明的上述方法的說(shuō)明資料。
定義以下定義用于對(duì)本發(fā)明進(jìn)行說(shuō)明。計(jì)算機(jī)可讀介質(zhì)應(yīng)理解為含有可被計(jì)算機(jī)讀取的數(shù)據(jù)的制品或載有可被計(jì)算機(jī)讀取的數(shù)據(jù)的載波信號(hào)。這類(lèi)計(jì)算機(jī)可讀介質(zhì)包括但不限于,磁介質(zhì),如軟盤(pán)、硬盤(pán)、卷帶式磁帶、盒式磁帶或磁卡;光介質(zhì),如CD-ROM、可寫(xiě)光盤(pán);盤(pán)、帶或卡形式的磁光介質(zhì);紙介質(zhì),如穿孔卡和紙帶;或者通過(guò)網(wǎng)絡(luò)、無(wú)線(xiàn)網(wǎng)絡(luò)或調(diào)制解調(diào)器中接收的載波信號(hào),包括射頻信號(hào)和紅外信號(hào)。
本文使用的術(shù)語(yǔ)“大集合”應(yīng)理解為這樣的一個(gè)元素集合,即它足夠大,能夠防止有人在預(yù)定時(shí)間內(nèi)或在預(yù)定最小運(yùn)算次數(shù)以下通過(guò)檢查該集合的元素來(lái)找到密碼運(yùn)算中使用的一個(gè)隨機(jī)選取的元素。找到選用的元素需要的時(shí)間越長(zhǎng)或最小運(yùn)算次數(shù)越大,密碼運(yùn)算就越安全。
具體實(shí)施例方式
有許多密碼方法都需要一個(gè)隨機(jī)冪Ak或隨機(jī)倍數(shù)k*A,其中k是一個(gè)環(huán)R的一個(gè)元素,A是一個(gè)R-模M的一個(gè)元素。需要這種隨機(jī)冪或隨機(jī)倍數(shù)的典型方法有Diffie-Hellman密鑰交換(美國(guó)專(zhuān)利號(hào)4,200,770),(Menezes,同前文,第12.6.1節(jié)),ElGamal公鑰密碼技術(shù)(Menezes,同前文,第8.4節(jié)),數(shù)字簽名標(biāo)準(zhǔn)(DSS)[美國(guó)專(zhuān)利號(hào)5,231,668],(Menezes,同前文,第11.5.1節(jié)),NTRU公鑰密碼體制(美國(guó)專(zhuān)利號(hào)6,081,597),(J.Hoffstein等人所著“NTRU一種新的高速公鑰密碼體制”(NTRUA new high speed public keycryptosystem),in Algorithmic Number Theory(ANTS III),Portland,OR,June 1998,Lecture Notes in Computer Science 1423(J.P.Buhler,ed.),Springer-Verlag,Berlin,1998,267-288),以及NTRU簽名方案(NSS)(J.Hoffstein等人所著“NSSNTRU簽名方案”(NSSTheNTRU Signature Scheme),Proc.EUROCRYPT 2001,Lecture Notes inComputer Science,Springer-Verlag,2001)。
Diffie-Hellman、ElGamal與DSS的一種變形是使用整數(shù)環(huán)R=Z以及一個(gè)有限域的非零元素的R-模M=GF(pm)*。Diffie-Hellman、ElGamal與DSS的第二種變形是使用阿貝爾簇A的自同態(tài)環(huán)R=End(A)和定義在一個(gè)有限域上的A上的點(diǎn)的R-模M=A(GF(pm))。這種變形的一個(gè)實(shí)例是定義在有限域GF(p)上的橢圓曲線(xiàn)A=E以及包含Z與E(GF(pm))上的p-冪Frobenius映射的自同態(tài)環(huán)R。NTRU公鑰密碼體制和NTRU簽名方案使用系數(shù)取值于環(huán)B的多項(xiàng)式模理想I的環(huán)R=B[X]/I和R-模M=R。NTRU的一個(gè)實(shí)例是使用卷積環(huán)R=(Z/qZ)[x]/(XN-1)。
本發(fā)明的方法包括按如下形式自環(huán)R的一個(gè)元素集合中選取量kk=k(1)*k(2)*…*k(r),其中,對(duì)R-模M中的每個(gè)元素A,冪Ak(i)(或倍數(shù)K(i)*A)的計(jì)算都是快速的,并且按如下步序計(jì)算冪AkA1=Ak(1),A2=Ak(2),…,Ak=Ar=Ar-1K(r)(或按如下步序計(jì)算倍數(shù)k*AA1=k(1)*A,A2=k(2)*A1,…,Ar=k(r)*Ar-1)在本發(fā)明的一實(shí)施例中,環(huán)R含有這樣的一個(gè)元素t,它可以滿(mǎn)足對(duì)R-模M的每個(gè)元素A,冪At(或倍數(shù)t*A)的快速計(jì)算。這方面的實(shí)例包括(1)一個(gè)有限域的乘法群M=GF(pm)*,以及元素t=p-對(duì)應(yīng)于提高到p次冪t(x)=xp;(2)定義在有限域GF(p)上的橢圓曲線(xiàn)E,E中具有擴(kuò)域GF(pm)坐標(biāo)的點(diǎn)群M=E(GF(pm)),以及由t(x,y)=(xp,yp)定義的p次冪Frobenius元素t。
(3)卷積多項(xiàng)式環(huán)R=M=(Z/qZ)[X]/(XN-1),以及元素t=X-對(duì)應(yīng)于在環(huán)R中與X相乘,即t(f(X))=X*f(X)。
在環(huán)R中含有這樣一個(gè)元素t的情況下,各元素k(i)較佳取為t的多項(xiàng)式a0+a1*t+a2*t2+…+an*tn,其中,系數(shù)a0,…,an取值于一個(gè)限制集合。a0,…,an的典型取值是集合{0,1}和{-1,0,1}。后一個(gè)集合主要用于在M中逆運(yùn)算(或負(fù)運(yùn)算)為快速運(yùn)算的情況。
本發(fā)明的能行性可利用一個(gè)多項(xiàng)式的Hamming權(quán)來(lái)度量HW(a0+a1*t+…+an*tn)=非零ai的個(gè)數(shù)由于At(或t*A)的計(jì)算時(shí)間可忽略,因此對(duì)k(i)=a0+a1*t+…+an*tn,計(jì)算Ak(i)(或k(i)*A)的時(shí)間約為T(mén)imeToCompute(Ak(i))≈HW(k(i))次乘法或TimeToCompute(k(i)*A)≈HW(k(i))次加法因此,這種以形式k=k(1)*k(2)*…*k(r)選擇k的方法使Ak(或k*A)的計(jì)算約為T(mén)imeToCompute(Ak)≈HW(k(1))+…+HW(k(r))+r-1次乘法或TimeToCompute(k*A)≈HW(k(1))+…+HW(k(r))+r-1次加法。
因此,計(jì)算Ak(或k*A)的計(jì)算量約正比于各個(gè)量k(1),…,k(r)的Hamming權(quán)的和。
如果多項(xiàng)式系數(shù)a0,…,an自典型集{0,1}中取值并且選取各個(gè)量k(1),…,k(r)使它們的Hamming權(quán)分別是d1,…,dr,那么r-元組(k(1),…,k(r))的個(gè)數(shù)是C(n+1,d1)*C(n+1,dz)*…*C(n+1,dr),其中C(n,d)=n!/d!*(n-d)!是組合符號(hào)。r-元組(k(1),…,k(r))的個(gè)數(shù)是每個(gè)k(i)的取值個(gè)數(shù)的乘積。而且實(shí)驗(yàn)表明在許多典型情形下,如果乘積C(n+1,d1)*…*C(n+1,dr)取得比環(huán)R的元素個(gè)數(shù)小,那么大多數(shù)乘積k(1)*…*k(r)將不同。因此,對(duì)環(huán)R的一個(gè)大子集中的所有k,都可以有效地計(jì)算隨機(jī)冪Ak(或倍數(shù)k*A)。該子集的大小可由參數(shù),如參數(shù)r和d1,…,dr來(lái)加以調(diào)整。
上述實(shí)施例的一個(gè)推廣是這樣的一個(gè)環(huán)R,它含有數(shù)個(gè)元素t1,…,tz,使得對(duì)每個(gè)t=t1,…,tz及R-模M中的元素A,冪At(或倍數(shù)t*A)的計(jì)算都是快速的,并且其中k(i)被取作t1,…,tz的多項(xiàng)式。上述實(shí)施例的另一個(gè)推廣是元素k=k1(1)*…*k1(r1)+k2(1)*…*k2(r2)+…+kw(1)*…*kw(rw)的選擇,它是前述分類(lèi)k(i)的元素kj(i)的乘積的和。其它推廣對(duì)所屬技術(shù)領(lǐng)域的專(zhuān)業(yè)人員來(lái)說(shuō)是顯而易見(jiàn)的。
本發(fā)明的增速密碼技術(shù)的其它詳細(xì)說(shuō)明通過(guò)下面的實(shí)例給出。
在許多密碼結(jié)構(gòu)中,人們使用一個(gè)群或環(huán)的一個(gè)元素的隨機(jī)冪或倍數(shù)。一個(gè)簡(jiǎn)要的單遠(yuǎn)未涵蓋所有密碼結(jié)構(gòu)的列表包括1、Diffie-Hellman密鑰交換在一有限域F中取一元素g并在F中計(jì)算一個(gè)隨機(jī)冪。這里k是一個(gè)整數(shù)。
2、橢圓曲線(xiàn)DH密鑰交換在一條定義在一個(gè)有限域上的橢圓曲線(xiàn)上的點(diǎn)構(gòu)成的群E(F)中取一個(gè)點(diǎn)P并且計(jì)算隨機(jī)倍數(shù)kP。這里k可以是一個(gè)整數(shù),也可以是一個(gè)更一般的群E(F)的自同態(tài)。
3、DSS與ECDSS數(shù)字簽名標(biāo)準(zhǔn)(DSS)(使用一個(gè)有限域或一條橢圓曲線(xiàn))在算法簽名部分中要求一個(gè)隨機(jī)冪gk或倍數(shù)kP。驗(yàn)證過(guò)程也要求一個(gè)冪或倍數(shù),但k是指定值,而不是隨機(jī)值。
4、經(jīng)典ElGamal公鑰密碼體制ElGamal密鑰生成要求計(jì)算一個(gè)冪β=αj來(lái)形成秘密鑰,其中α是一個(gè)固定底,j是一個(gè)隨機(jī)選取的指數(shù)。加密需要計(jì)算兩個(gè)冪αk和βk,其中k是一個(gè)隨機(jī)選取的指數(shù)。解密需要計(jì)算一個(gè)冪γj。
5、橢圓曲線(xiàn)ElGamal及其各種變形密鑰生成需要計(jì)算一個(gè)倍數(shù)Q=j(luò)P來(lái)形成秘密鑰,其中P是E(F)中的一個(gè)固定點(diǎn),j是一個(gè)隨機(jī)選取的乘子。加密要求計(jì)算兩個(gè)倍數(shù)kP和kQ,其中k是一個(gè)隨機(jī)選取的乘子。解密需要計(jì)算一個(gè)倍數(shù)jR。同樣,k可以是一個(gè)整數(shù),也可以是一個(gè)更一般的群E(F)的自同態(tài)。
6、NTRU公鑰密碼體制私鑰包括模q截尾多項(xiàng)式環(huán)Rq=(Z/qZ)[X]/(XN-1)中的一個(gè)隨機(jī)多項(xiàng)式f(X)。
加密需要在環(huán)R中計(jì)算一個(gè)乘積r(X)h(X),其中h(X)(公鑰)是固定的,r(X)是隨機(jī)的。解密需要在環(huán)R中計(jì)算一個(gè)乘積f(X)e(X),其中e(X)是密文。
本發(fā)明的一實(shí)施例對(duì)一種一般方法進(jìn)行了說(shuō)明,該方法在許多情形下可使隨機(jī)倍數(shù)的計(jì)算比用前述方法更快。盡管它不是廣泛適用的,但它可用于上述列表中的許多算法,包括Galois域 上的Diffie-Hellman,Koblitz曲線(xiàn)上的橢圓曲線(xiàn)密碼技術(shù),以及NTRU密碼體制。按照本發(fā)明,隨機(jī)指數(shù)或乘子被表示為數(shù)個(gè)因子的乘積,每個(gè)因子在展開(kāi)成某快速運(yùn)算的冪的和時(shí)具有低Hamming權(quán)。
簡(jiǎn)言之,按照本發(fā)明,隨機(jī)乘子被表示為數(shù)項(xiàng)的乘積,每一項(xiàng)是相對(duì)容易計(jì)算的幾個(gè)項(xiàng)的和。這些乘子被稱(chēng)作小Hamming權(quán)乘積(SHWP),因?yàn)槌朔e中的每一項(xiàng)都有低Hamming權(quán)對(duì)應(yīng)易于計(jì)算的運(yùn)算。
低Hamming權(quán)指數(shù)低Hamming權(quán)指數(shù)的應(yīng)用在RSA取冪(C.H.Lim等人所著“稀疏RSA鑰及其生成”(Sparse RSA keys and their generation),preprint,2000)和在離散對(duì)數(shù)算法(D.Coppersmith等人所著“論某些二次剩余碼的最小距離”(On the Minimum Distance of some QuadraticResidue Codes),IEEE Transactions on Information Theory,vol.IT 30,No.2,March 1984,407-411;D.R.Stinson所著“某些用于低Hamming權(quán)離散對(duì)數(shù)問(wèn)題的小步、大步算法”(Some baby-step giant-stepalgorithms for the low Hamming weight discrete logarithm problem),Mathematics of Computation,to be published)中都進(jìn)行了研究,但總是局限于取單一的一個(gè)具有低Hamming權(quán)的指數(shù)k。本發(fā)明使用數(shù)個(gè)Hamming權(quán)非常低的指數(shù)的乘積k=k1k2…kr,并且利用了這樣一個(gè)事實(shí),即乘積k的樣本空間大體是各k1,k2,…,kf的樣本空間的乘積空間,同時(shí)計(jì)算αk的計(jì)算復(fù)雜性(在某些情況下)等于計(jì)算 的計(jì)算復(fù)雜性之和。
計(jì)算xk的常規(guī)二進(jìn)制法需要進(jìn)行約log2k次平方和HW(k)次乘法,其中HW(k)=的Hamming權(quán)是k的二進(jìn)制展開(kāi)中1的個(gè)數(shù)。盡管對(duì)非常大的k值難以找到優(yōu)化鏈,但加法鏈的使用通常能實(shí)現(xiàn)一定的改進(jìn)。
C.P.Schnorr在其論文中提出了一種通過(guò)預(yù)計(jì)算一列冪、取一隨機(jī)子集的乘積并且利用中間計(jì)算逐步補(bǔ)充該列冪來(lái)計(jì)算隨機(jī)冪的思想(C.P.Schnorr所著“智能卡的有效識(shí)別和簽名”(Efficientidentification and signatures for smart cards),in Advances inCryptology(Crypto 89),Santa Barbara,CA,August 1989,LectureNotes in Computer Science 435,(G.Brassard,ed.),Springer-Verlag,Berlin,1989,239-252)。Schnorr方法被de Rooij在Schnorr建議的參數(shù)水平上所否定(P.de Rooij所著“論采用預(yù)處理的Schnorr方案的安全性”(On the security of the Schnorr scheme using preprocessing),in Advances in Cryptology(Eurocrypt 90),Aarhus,Denmark,May1990,Lecture Notes in Computer Science 473(I.B.Damgard,ed.),Springer-Verlag,Berlin,1990,71-80)。
在前述Knuth的論文第4.6.3節(jié)第463頁(yè)與練習(xí)3中,Knuth簡(jiǎn)要討論了另一種方法——因子法。
就許多應(yīng)用而言,本發(fā)明改進(jìn)了那些現(xiàn)有技術(shù)方法。例如,在一實(shí)施例中,k是一個(gè)乘積k=uv,并且按本發(fā)明,z=xk按y=xu和z=y(tǒng)v來(lái)計(jì)算。這一過(guò)程可以重復(fù)進(jìn)行并且可以間插二進(jìn)制法或其它加法鏈的應(yīng)用。
為說(shuō)明本發(fā)明的另一實(shí)施例,令G是一個(gè)要在其中計(jì)算量xk的群。假設(shè)指數(shù)k被表示為乘積的和k=Σi=1dki=Σi=1dΠn=1NiKi,n----(1)]]>按乘積 計(jì)算xk,對(duì)ki=ΠnKi,n]]>利用因子法計(jì)算每個(gè)冪xk(i),并且利用(所述)二進(jìn)制法計(jì)算每個(gè)冪yk(i,n)(K(i,n)=Ki,n)。這需要大約log2(k)次平方以及大約 k取小值時(shí),可以要求分解方程(1)使方程(2)最小。k取較大的值時(shí),可以要求一個(gè)算法使方程(2)的值適當(dāng)小。然而,這不是本發(fā)明的重點(diǎn)所在。
本發(fā)明之方法的目標(biāo)和分析都與前述Knuth論文所述的取冪有顯著的區(qū)別。Knuth的目標(biāo)是要說(shuō)明對(duì)給定指數(shù)k,計(jì)算xk的有效方法。隨后的分析給出了最有效方法的理論上、下界以及取一給定k值并找出估計(jì)xk的合理有效方法的算法?,F(xiàn)在的目標(biāo)是要找出使xk易于計(jì)算的指數(shù)k的一個(gè)集合并且該集合要充分“隨機(jī)”且充分大。從具體的指數(shù)到隨機(jī)指數(shù)這一看起來(lái)似乎微小的改變,實(shí)際上體現(xiàn)了所隱藏的問(wèn)題及研究這些問(wèn)題所使用的方法上的重大轉(zhuǎn)變。
本發(fā)明與Knuth論文中所述的因子法的區(qū)別還有另外一個(gè)重要方面。本發(fā)明著眼于存在“自由”運(yùn)算的情況。舉例來(lái)說(shuō),若G是一個(gè)群并希望利用因子法來(lái)計(jì)算xk,其中k=uv。計(jì)算xk的計(jì)算量約為(log2(k)次平方)+(HW(u)+HW(v)次乘法)。為簡(jiǎn)便計(jì),在此假定利用二進(jìn)制法計(jì)算兩個(gè)冪y=xu和z=y(tǒng)v。假設(shè)(有限)群G的階數(shù)為N,并且假設(shè)k表示為一個(gè)乘積模N,即k=uv(modN)。那么由y=xu和z=y(tǒng)v將計(jì)算出正確值z(mì)=xk,但現(xiàn)在的計(jì)算量約為(log2(uv)次平方)+(HW(u)+HW(v)次乘法)。
如果平方和乘法占用大約相同的時(shí)間,那么由于乘積uv將非常大,這一方法將可能非常差。
另一方面,如果平方運(yùn)算非???,例如在Galois域 中,那么只要u和v具有小(二進(jìn)制)Hamming權(quán),u和v的大值可能是有益的。例如,這可從密碼專(zhuān)業(yè)的三種情況來(lái)加以說(shuō)明,即Galois域 中的取冪、Koblittz橢圓曲線(xiàn)上的乘法和NTRU卷積環(huán)Fq[X]/(XN-1)中的乘法。這些具體情況將在下文中進(jìn)行詳細(xì)說(shuō)明。下文還將討論關(guān)于小Hamming權(quán)乘積的一些觀點(diǎn)。所屬技術(shù)領(lǐng)域的專(zhuān)業(yè)人員將了解本發(fā)明并能夠?qū)⑵溆糜谄渌S多應(yīng)用中。
Galois域 中的隨機(jī)冪在任何群中,計(jì)算一個(gè)冪αk的標(biāo)準(zhǔn)方法是使用k的二進(jìn)制展開(kāi)。它將αk的計(jì)算化簡(jiǎn)至約log2(k)次平方和HW(k)次乘法,其中HW(k)平均約等于log2(k)。(在增加逆運(yùn)算的前提下,利用k的帶符號(hào)二進(jìn)制展開(kāi)將進(jìn)一步減少乘法的次數(shù)。)二進(jìn)制冪算法適用于任何群,但本發(fā)明在 中所利用的特征在于相對(duì)于乘法,平方是本質(zhì)自由的。因此,如果k在1至2n-1之間隨機(jī)取值,那么αk的計(jì)算由需要的約n/2次乘法所決定。
如上所述,存在許多密碼情形,其中人們需要對(duì)一固定底α和某個(gè)隨機(jī)選取的指數(shù)k來(lái)計(jì)算αk。通常有這樣的一項(xiàng)要求,即k取值的集合要充分大,大到即使利用窮舉搜索(或更一般地,利用平方根搜索,如Pollard窮盡法)也不能確定k。因此,假定選取k具有如下形式k=Σi=0n-1ki·2i,ki∈{0,1},]]>并且具有一個(gè)固定的二進(jìn)制Hamming權(quán)d=∑ki。那么k的搜索空間的大小是C(n,d)。由于執(zhí)行時(shí)間通常與搜索空間大小的平方根成比例,因此人們一般要求該空間有至少2160個(gè)元素。關(guān)于在正比于 的時(shí)間內(nèi)有效搜索該空間的Coppersmith小步大步算法的說(shuō)明,請(qǐng)參見(jiàn)前面引用的Stinson的論文。
在密碼應(yīng)用中,n的典型值是n≈1000,它是由在 上求解離散對(duì)數(shù)問(wèn)題的篩法和指數(shù)算法的執(zhí)行時(shí)間限定的。因此,取d=25,對(duì)應(yīng)的搜索空間大小為C(1000,25)≈2165,并且αk的計(jì)算需要24次乘法。
本發(fā)明的方法是要選取k,使其成為數(shù)個(gè)具有非常低二進(jìn)制Hamming權(quán)的項(xiàng)的乘積。(更一般地,將k表示為這種乘積的和。)以上述值n≈1000為例進(jìn)行說(shuō)明,設(shè)k具有形式k=k(1)k(2)k(3),其中k(1)的二進(jìn)制Hamming權(quán)為6,k(2)與k(3)的二進(jìn)制Hamming權(quán)都是7。那么,k的搜索空間(三個(gè)因子的搜索空間的乘積)階數(shù)為(C(1000,6)C(1000,7)C(1000,7))≈2165,同時(shí)αk=((αk(1))k(2))k(3)的計(jì)算需要僅5+6+6=17次乘法。這意味著節(jié)省約29%。
由于標(biāo)準(zhǔn)平方根搜索攻擊將時(shí)間減少至O(280)(參見(jiàn)前面引用的Stinson論文),因此,要求搜索空間的階數(shù)較佳約為2160。然而,如果k是數(shù)個(gè)低Hamming權(quán)多項(xiàng)式的乘積,那么人們并不明確如何在全空間上建立一個(gè)平方根攻擊。因此,如果k=k(1)k(2)k(3),則可以搜索(猜測(cè))前兩項(xiàng),然后對(duì)第三項(xiàng)利用平方根攻擊。由αk=β求k的另一方法是將k(3)移到另一側(cè)。這樣,讓i遍取值于所有乘積k(1)k(2)的空間,j遍取值于所有k(3)值的空間,并且制作αi值表和 值表,其中j-1是j模2n-1的逆。那么,執(zhí)行時(shí)間正比于兩表大小之和。在上面給出的實(shí)例中,可得到執(zhí)行時(shí)間正比于(C(1000,6)C(1000,7))+C(1000,7)≈2107.7的結(jié)果。但從這一搜索方法的特點(diǎn)可以看出,它更適合k(3)比k(1)和k(2)顯著大的情況。因此,如果選取k(1)、k(2)、k(3)分別具有Hamming權(quán)2、2、11,那么,第一次平方根攻擊用時(shí)O(280.0),第二次平方根攻擊用時(shí)O(284.3),同時(shí)αk的計(jì)算需要僅12次乘法。利用形如±pe(1)±…±pe(r)的乘子,上述討論可以類(lèi)似地用于有pn個(gè)元素的域。
Koblitz橢圓曲線(xiàn)上的隨機(jī)倍數(shù)設(shè) 是定義在有2m個(gè)元素的域上的橢圓曲線(xiàn),P∈E(F2m)]]>是該曲線(xiàn)上的一個(gè)點(diǎn)。許多密碼結(jié)構(gòu)都要求倍數(shù)NP的計(jì)算,其中N與2m可比較。將N表示為二進(jìn)制形式N=N0+2N1+4N2+…+2iNi+…+2mNm,N0,…,Nm∈{0,1},則NP的計(jì)算被化簡(jiǎn)為約N/2次加倍運(yùn)算和N/2次點(diǎn)加法。如前所述,如果N0,…,Nm∈{-1,0,1},則可進(jìn)一步將加法次數(shù)減少至約N/3。但遺憾的是,在橢圓曲線(xiàn)上,一個(gè)點(diǎn)加倍比兩個(gè)不同點(diǎn)相加更難計(jì)算。
對(duì)于某些橢圓曲線(xiàn),利用本質(zhì)自由的Frobenius映射代替加倍來(lái)顯著減少必要的計(jì)算是可能的。設(shè)E/F2是一條“Koblitz曲線(xiàn)”,即定義在有2個(gè)元素的域上的普通橢圓曲線(xiàn)。-因此,E是兩曲線(xiàn)之一的Ey2+xy=x3+ax2+1,a∈F2。設(shè)τ:E(F2m)→E(F2m);]]>τ(x,y)=(x2,y2)是E上的Frobenius映射。與E上的點(diǎn)加法或加倍相比,τ(Q)的計(jì)算占用非常少的時(shí)間。任何一個(gè)整數(shù)N都可以表示一個(gè)線(xiàn)性組合N=N0+τN1+τ2N2+…+τiNi+…+τmNm,N0,…,Nm∈{-1,0,1},因此,NP的計(jì)算本質(zhì)上可以減少至 中的m/3次加法。(諸Ni中大約m/3個(gè)不為0。)而且對(duì)許多密碼應(yīng)用來(lái)說(shuō),沒(méi)有什么真正的理由必須使用P的整數(shù)倍數(shù);人們可以簡(jiǎn)單地使用倍數(shù)NP,其中N是τ的冪的隨機(jī)線(xiàn)性組合,如上式。例如,Diffie-Hellman密鑰交換就非常成功。關(guān)于Koblitz曲線(xiàn)上的基本實(shí)質(zhì)和計(jì)算方法,請(qǐng)參考D.Hankerson等人所著“二進(jìn)制域橢圓曲線(xiàn)密碼術(shù)的軟件實(shí)現(xiàn)”(Software implementation of elliptic curve cryptography overbinary fields,in Cryptographic Hardware and Embedded Systems(CHES 2000),C.Koc and C.Paar(eds.),Lecture Notes in ComputerScience,Springer-Verlag(to be published))及J.Bolinas所著“Koblitz曲線(xiàn)上的有效算術(shù)”(Efficient arithmetic on Koblitz curves,Designs,Codes,and Cryptography 19(2000),195-249)。
總之, 上的橢圓曲線(xiàn)上的點(diǎn)的隨機(jī)帶符號(hào)τ積的計(jì)算需要約m/3次橢圓曲線(xiàn)加法。本發(fā)明提供了一種顯著減少橢圓曲線(xiàn)加法次數(shù)的方法。如上面所討論的,根據(jù)本發(fā)明,將乘子N取作數(shù)個(gè)τ的低Hamming權(quán)線(xiàn)性組合的乘積。
具體來(lái)說(shuō),我們將以密碼專(zhuān)業(yè)一個(gè)具體的域?yàn)槔M(jìn)行說(shuō)明。設(shè)m=163,則問(wèn)題將在域 下進(jìn)行討論。取N具有如下形式N=N(1)N(2)N(3)=(1+Σu=16±τiu)(1+Σu=16±τju)(1+Σu=16±τku)----(4)]]>(由于總是能從每個(gè)因子摘出一個(gè)τ的冪,因此我們?cè)诒磉_(dá)式(4)中取每個(gè)因子。利用這一表達(dá)式可以防止計(jì)數(shù)過(guò)高。)首先,給定Q=NP,檢查對(duì)N或其它滿(mǎn)足N’P=Q的其它整數(shù)N’進(jìn)行一次搜索的困難程度。一次N’的平方根搜索(如Pollard窮盡搜索)大致需要 步。利用N的特殊表示形式的另一種搜索會(huì)將方程Q=NP化成(N(3))-1Q=N(1)N(2)P,并比較兩側(cè)的值表。這種搜索的時(shí)間和空間要求兩表較長(zhǎng)者的長(zhǎng)度。對(duì)于本例,每個(gè)N(i)取值的空間的大小為26C(162,6)≈240.4,因此N(1))N(2)P的值表有O(280)個(gè)元素。最后,需要猜測(cè)N(1)與N(2)的值,并且要對(duì)N(3)進(jìn)行一次平方根搜索,但這會(huì)產(chǎn)生一個(gè)較大的搜索空間。
以上述形式取N的好處是顯而易見(jiàn)的。乘積
NP=N(1)N(2)N(3)P的計(jì)算需要僅6+6+6=18次橢圓曲線(xiàn)加法。(減法本質(zhì)上與加法相同。)它還需要多次使用Frobenius映射τ的冪,但這些與點(diǎn)加法相比占用非常少的時(shí)間,因此可以在粗分析中加以忽略。由此看出,利用本發(fā)明之方法,常用的密碼倍數(shù)NP可以利用18次加法計(jì)算出來(lái),遠(yuǎn)小于利用以前的方法所需要的約163/3≈54次。因此,本發(fā)明提高速度3倍。
對(duì)所有N進(jìn)行會(huì)合攻擊是不可能的,但即使存在這樣的攻擊,也足以通過(guò)以Hamming權(quán)(8,9,9)代替上述的權(quán)(6,6,6)得到一個(gè)階數(shù)為2163.9的三元組N(1),N(2),N(3)的集合來(lái)對(duì)抗。此時(shí),NP的計(jì)算需要26次加法,相應(yīng)的速度增加因數(shù)約為2.1。實(shí)際上,在此情況下使用四項(xiàng)的乘積將會(huì)更快N=N(1)N(2)N(3)N(4),權(quán)為(4,5,7,8)。這樣一來(lái),總搜索空間的大小為24C(162,4)·25C(162,5)·27C(162,7)·28C(162,8)≈2160.48并且NP的計(jì)算需要僅24次加法,速度增加因數(shù)約為2.26。
另外,可選擇將N取為小Hamming權(quán)項(xiàng)乘積的和。例如,N=N(1)N(2)+N(3)N(4),四項(xiàng)都有小Hamming權(quán)。當(dāng)然,通過(guò)aP的值與Q-bP的值的匹配,可用平方根攻擊算法攻擊N的兩個(gè)部分。
另外,還可選擇N是一個(gè)實(shí)際的整數(shù)而不是τ的多項(xiàng)式。因此,可能包括共軛項(xiàng)。例如,形如τi+τm-i的表示代表一個(gè)整數(shù),并且計(jì)算并存儲(chǔ)τi+τm-i(1≤i<m/2)的值表是一項(xiàng)簡(jiǎn)單的事情。
NTRU公鑰密碼體制NTRU公鑰密碼體制采用環(huán)R=(Z/qZ)[X]/(XN-1)中的截尾多項(xiàng)式。加密過(guò)程包括一個(gè)乘積r(X)h(X)的計(jì)算,其中h(X)是一個(gè)固定的公鑰多項(xiàng)式,r(X)是一個(gè)隨機(jī)選取的小系數(shù)多項(xiàng)式。類(lèi)似地,解密過(guò)程包括一個(gè)乘積f(X)e(X)的計(jì)算,其中e(X)是密文,私鑰f(X)是一個(gè)小系數(shù)多項(xiàng)式。有關(guān)的詳細(xì)說(shuō)明,請(qǐng)參考前面引用的Hoffstein(1998)文。
通常,在環(huán)R中a(X)b(X)的計(jì)算是a和b的系數(shù)向量的卷積。計(jì)算該卷積的樸素算法有N2步,每一步由一次加法和一次乘法構(gòu)成。(如果a(X)的系數(shù)隨機(jī)分布于{-1,0,1},那么該計(jì)算將需要約2N/3步,此時(shí)每一步僅是一次加法或一次減法。)其它方法,如Karatsuba倍數(shù)或FFT技術(shù)(若適用),可以將其減少至O(N logN)步,盡管在一定程度上大O常數(shù)可能稍大。
于是,根據(jù)本發(fā)明,h(x)的小隨機(jī)倍數(shù)可按乘積r(1)(X)r(2)(X)…r(t)(X)h(X);來(lái)計(jì)算,其中每個(gè)r(i)(X)僅有幾個(gè)非零項(xiàng)。因此,需要的計(jì)算量正比于非零項(xiàng)個(gè)數(shù)之和,同時(shí)樣本空間的大小約等于r(i)的樣本空間的乘積。
例如,設(shè)N=251并取r(X)=r(1)(X)r(2)(X)其中r(1)和r(2)是恰有8個(gè)非零系數(shù)(四個(gè)1和四個(gè)-1)的多項(xiàng)式。為避免太多的重復(fù),可取r(i)(0)=1,這樣就只有三個(gè)1是隨機(jī)置放的。那么,這種r(X)多項(xiàng)式的個(gè)數(shù)約為C(250,3)C(247,4)·C(250,3)C(247,4)·≈295.94。如果要推測(cè)r(1)(X),然后利用平方根搜索法來(lái)搜索r(2)(X),那么搜索算法的長(zhǎng)度將大約為C(250,3)C(247,4)·C(250,3)C(247,4)·1/2≈271.1.]]>乘積r(X)h(X)的計(jì)算將簡(jiǎn)化至16N次加法和減法。注意到r(x)本身有大約64個(gè)非零系數(shù),因此r(X)h(X)的直接計(jì)算需要幾乎4倍的初等運(yùn)算次數(shù)。
類(lèi)似的結(jié)構(gòu)也適用于NTRU私鑰f(X),并導(dǎo)出類(lèi)似的解密計(jì)算速度提高情況。小Hamming權(quán)乘積的隨機(jī)性許多測(cè)量隨機(jī)性的方法為所屬技術(shù)領(lǐng)域的專(zhuān)業(yè)人員所熟知。具體來(lái)說(shuō),設(shè)BN(D)={有D個(gè)1的N-1次二進(jìn)制多項(xiàng)式}。也就是說(shuō),BN(D)的元素是多項(xiàng)式a0+a1X+a2X2+…+aN-1XN-1其中ai∈{0,1},∑ai=D。如上所述,多項(xiàng)式相乘使用卷積規(guī)則XN=1。
多項(xiàng)式的乘積遵守系數(shù)自然旋轉(zhuǎn)(通過(guò)乘以X的冪)。換句話(huà),
任何乘積都可以表示為a(X)*b(X)=(Xk*a(X))*(XN-k*b(X))這種旋轉(zhuǎn)遠(yuǎn)不是隨機(jī)的,因此通常不希望在樣本空間中有這種旋轉(zhuǎn)。所以,令B*N(D)={a(X)=a0+a1X+…+aN-1XN-1∈BN(D);a0=1}是BN(D)的子集,其由常數(shù)項(xiàng)不為0的多項(xiàng)式構(gòu)成。
將隨機(jī)二進(jìn)制多項(xiàng)式空間B*N(D)與乘積的空間P*N(d1,d2)={c(X)=a(X)*b(X)a(X)∈B*N(d1),b(X)∈B*N(d2),c(X)∈B*N(d1)相比較。請(qǐng)注意,我們現(xiàn)在僅考慮其乘積a(X)*b(X)是二進(jìn)制多項(xiàng)式的a(X)和b(X)。實(shí)踐中,這可能需要隨機(jī)產(chǎn)生許多個(gè)對(duì)(a,b)、將它們相乘并且在乘積不是合適的形式時(shí)將之丟棄。
如何對(duì)乘積的集合P*N(d1,d2)與隨機(jī)集合B*N(d1,d2)進(jìn)行比較?通常,前一個(gè)集合將遠(yuǎn)小于后一個(gè)集合,使得B*N(d1,d2)的每個(gè)元素不會(huì)同等可能地被P*N(d1,d2)的一個(gè)元素?fù)糁小?shí)驗(yàn)上,P*N(d1,d2)的元素一般可唯一表示為一個(gè)乘積。Hamming權(quán)差較佳用于確定P*N(d1,d2)的元素隨機(jī)分布于空間B*N(d1,d2)中的廣延度。對(duì)任意兩個(gè)二進(jìn)制多項(xiàng)式a(X)和b(X),它們的Hamming權(quán)差可定義為HWD(a,b)=#{iai≠bi}容易計(jì)算在B*N(D)中隨機(jī)選取具有給定Hamming權(quán)差的對(duì)的概率。更準(zhǔn)確地有,對(duì)任意固定的a∈B*N(D),如果不計(jì)已知的常數(shù)項(xiàng),則有D-1個(gè)1和N-D個(gè)0。假設(shè)b∈B*N(D)有k個(gè)1與a的1對(duì)應(yīng)位置相同,那么在a中為1而b中為0的有D-1-k個(gè),在b中為1而a中為0的也有D-1-k個(gè),因此,HWD(a,b)=2(D-1-k)。所以Hamming權(quán)差總是一個(gè)偶數(shù),并且在a與b的1相對(duì)應(yīng)的個(gè)數(shù)為D-1-h時(shí),它等于2*h。對(duì)一固定的a∈B*N(D),隨機(jī)取b∈B*N(D)使其與a的Hamming權(quán)差為2*h的概率由下式給出Probb∈B*N(D)(HWD(a,b)=2*h)=D-1D-1-hN-DhN-1D-1,----(5)]]>亦即,可能發(fā)生的次數(shù)除以全部多項(xiàng)式的個(gè)數(shù)。由于精確計(jì)算隨機(jī)取b∈P*N(d1,d2)的類(lèi)似概率更困難,故過(guò)去使用了計(jì)算機(jī)模擬。從集合B=B*251(64)和P=P*251(8,8)中隨機(jī)取10,000個(gè)多項(xiàng)式,計(jì)算取自各個(gè)集合B×B、B×P與P×P的全部108個(gè)對(duì)(a,b)的Hamming權(quán)差的分布。計(jì)算結(jié)果列于表1中,表中包括由公式(5)給出的理論期望值。從該表明顯可以看出,在所研究的各種情況的HWD(a,b)中不存在明顯的差別。表1.Hamming權(quán)差概率Hamming 實(shí)驗(yàn)值理論值權(quán)差 B vs B B vs P P vs P B vs B68 0.002%0.002%0.002%0.002%70 0.006%0.006%0.006%0.006%72 0.019%0.019%0.020%0.019%74 0.057%0.057%0.058%0.057%76 0.155%0.155%0.158%0.155%78 0.380%0.380%0.381%0.379%80 0.841%0.843%0.841%0.841%82 1.692%1.691%1.688%1.691%84 3.079%3.082%3.074%3.080%86 5.072%5.071%5.063%5.072%88 7.542%7.539%7.537%7.545%90 10.121% 10.118% 10.123% 10.124%92 12.234% 12.228% 12.236% 12.229%94 13.265% 13.271% 13.287% 13.270%96 12.904% 12.901% 12.917% 12.901%98 11.209% 11.208% 11.200% 11.203%1008.660%8.657%8.653%8.658%1025.928%5.929%5.923%5.928%1043.578%3.58 1% 3.572%3.578%1061.889%1.891%1.888%1.892%1080.867%0.869%0.868%0.869%1100.343%0.343%0.345%0.344%1120.115%0.115%0.117%0.116%1140.032%0.033%0.033%0.033%1160.007%0.008%0.008%0.008%1180.001%0.001%0.001%0.001%
小Hamming權(quán)乘積的一個(gè)一般公式上述的所有結(jié)構(gòu)都可以用一個(gè)環(huán)R、一個(gè)R-模M和一個(gè)滿(mǎn)足下述兩性質(zhì)的子集SR進(jìn)行非常一般性的公式化(i)集S充分大,(ii)對(duì)r∈S和m∈M,乘積r·m的計(jì)算是“計(jì)算容易的”。在某種程度上,這兩個(gè)性質(zhì)是相互對(duì)立的,這大概是由于集合S越大,對(duì)r∈S平均計(jì)算乘積r·m就越艱難。
構(gòu)造集合S的一個(gè)方法是選擇一族小子集S1,…,StR并且令S={r1…rt∶r1∈S1,…,rt∈St}在適當(dāng)?shù)募僭O(shè)下,集合S的大小約是集合S1,…,St的大小的乘積。每個(gè)Si都滿(mǎn)足性質(zhì)(ii)。
假設(shè)有一個(gè)元素τ∈R滿(mǎn)足對(duì)每個(gè)m∈M,乘積r·m都容易計(jì)算。那么,Si較佳地從τ的低Hamming權(quán)多項(xiàng)式中選擇;亦即,Si較佳地由R的形如τj1+τj2+…+τjd的元素組成,其中d=di固定(或?qū)潭ǖ腄i,隨機(jī)d≤Di)。當(dāng)然,如果容易計(jì)算逆-m,那么可以利用±τj1±τj2±τj3±…±τjd來(lái)增加Si的大小。類(lèi)似地,如果存在幾個(gè)‘易乘’的元素τ1,…,τu∈R,那么可以取u個(gè)“變量”τ1,…,τu的低Hamming權(quán)多項(xiàng)式,以進(jìn)一步增加特殊集合Si的大小。關(guān)于本一般公式與前面討論的實(shí)例之間的關(guān)系,作如下說(shuō)明1、 中的冪環(huán)R=Z,R-模為乘法群M=(F2n)*,]]>特殊映射τ是加倍(即平方)映射τ(α)=α2。
2、Koblitz曲線(xiàn)上的倍數(shù)環(huán)R=End(E(F2m))]]>(即 到自身的同態(tài)環(huán)),R-模為M=E(F2m),]]>特殊映射τ是Frobenius映射τ(x,y)=(x2,y2)。
3、NTRU密碼體制環(huán)R=Z[X]/(XN-1),R-模為M=R(即R通過(guò)乘法作用到自身),特殊映射τ是‘X乘’映射τ(f(X))=Xf(X)。
這說(shuō)明了小Hamming權(quán)乘積如何應(yīng)用到這些特別情況,也說(shuō)明了本發(fā)明的廣泛適用性。
集合S的大小傾向于按如下方法進(jìn)行量化,這里集合S是映射S1×S2×…×St→R,(r1,r2,…,rt)→r1r2…rt的像。實(shí)踐中,描述具有下述性質(zhì)的一個(gè)自然集合TR通常并不困難ST,以及S1×…×St的一個(gè)隨機(jī)t-元組(r1,…,rt)擊中T的每個(gè)元素的機(jī)會(huì)相同。(注嚴(yán)格證明T具有后一性質(zhì)可能是困難的,但通常我們至少可以獲得實(shí)驗(yàn)性證據(jù)。)設(shè)Ni=|Si|是集合Si的大小,M=|T|是集合T的大小,那么利用初等概率論,專(zhuān)業(yè)技術(shù)人員可以在隨機(jī)替換選擇T的N1N2…Nt個(gè)元素的情況下估計(jì)出不同元素的個(gè)數(shù)。
至此,已對(duì)本發(fā)明及其較佳實(shí)施例進(jìn)行了詳細(xì)說(shuō)明。然而,人們應(yīng)了解,根據(jù)本說(shuō)明書(shū),所屬技術(shù)領(lǐng)域的專(zhuān)業(yè)人員可以在本發(fā)明的精神和范圍內(nèi)做各種修改及/或改良。與現(xiàn)有技術(shù)方法相比,本發(fā)明的方法顯著提高了計(jì)算效率。需要強(qiáng)調(diào)的是,上面說(shuō)明的方法僅是實(shí)例性的,不應(yīng)被理解為本發(fā)明僅局限于一組具體的說(shuō)明性實(shí)施例。
本文中列出的所有參考文獻(xiàn)的整體揭示內(nèi)容以引用的方式并入本文中。此外,公告中D.Gordon所著“快速取冪方法評(píng)述”(A surveyof fast exponentiation methods,Journal of Algorithms 27(1998),129-146)與D.Stinson所著“密碼學(xué)理論與實(shí)踐”(CryptographyTheory and Practice,CRC Press,1997)中揭示的內(nèi)容也以引用的方式并入本文中。
權(quán)利要求
1.一種方法,該方法用于執(zhí)行一種包括變換數(shù)字信息在內(nèi)的密碼運(yùn)算,該方法包括提供數(shù)字信息;提供一個(gè)數(shù)字運(yùn)算符,其含有一個(gè)取自大元素集的分量;將該分量分解成多個(gè)因子,每個(gè)因子具有一個(gè)低Hamming權(quán);以及利用數(shù)字運(yùn)算符變換數(shù)字信息。
2.根據(jù)權(quán)利要求1所述的方法,其中所述密碼運(yùn)算從密鑰生成、加密、解密、數(shù)字簽名的創(chuàng)建、數(shù)字簽名的驗(yàn)證、數(shù)字證書(shū)的創(chuàng)建、數(shù)字證書(shū)的證明、識(shí)別、偽隨機(jī)數(shù)生成及散列函數(shù)的計(jì)算所構(gòu)成的組中選擇。
3.根據(jù)權(quán)利要求1所述的方法,其中所述Hamming權(quán)約小于30。
4.根據(jù)權(quán)利要求1所述的方法,其中所述Hamming權(quán)約小于20。
5.根據(jù)權(quán)利要求1所述的方法,其中所述Hamming權(quán)約小于15。
6.根據(jù)權(quán)利要求1所述的方法,其中所述變換步驟包括計(jì)算倍數(shù),所述方法進(jìn)一步包括選擇一個(gè)環(huán)R;選擇一個(gè)R-模M;選擇兩個(gè)或多個(gè)R的子集R1,R2,…,Rk,其具有下述滿(mǎn)足性質(zhì)r1是R1中的一個(gè)元素,r2是R2中的一個(gè)元素,…,rk是Rk中的一個(gè)元素;計(jì)算r*m,其中r屬于R,m屬于M,其方法是將r分解為r1*r2*…*rk并計(jì)算r1*(r2*(…(rk*m),其中k是一個(gè)整數(shù)。
7.根據(jù)權(quán)利要求6所述的方法,其中所述密碼運(yùn)算從密鑰生成、加密、解密、數(shù)字簽名的創(chuàng)建、數(shù)字簽名的驗(yàn)證、數(shù)字證書(shū)的創(chuàng)建、數(shù)字證書(shū)的證明、識(shí)別、偽隨機(jī)數(shù)生成及散列函數(shù)的計(jì)算所構(gòu)成的組中選擇。
8.根據(jù)權(quán)利要求6所述的方法,其中每個(gè)rk具有一個(gè)約小于15的Hamming權(quán)。
9.根據(jù)權(quán)利要求6所述的方法,其中每個(gè)rk具有一個(gè)約小于10的Hamming權(quán)。
10.根據(jù)權(quán)利要求6所述的方法,其中所述子集Ri是R中形如a1te(1)+a2te(2)+…+ante(n)的元素所構(gòu)成的子集,其中n是一個(gè)整數(shù)。
11.根據(jù)權(quán)利要求10所述的方法,其中所述元素a1,…,an每一個(gè)都取值于集合{0,1}。
12.根據(jù)權(quán)利要求10所述的方法,其中所述元素a1,…,an每一個(gè)都取值于集合{-1,0,1}。
13.根據(jù)權(quán)利要求6所述的方法,其中所述子集Ri是R中元素t1,…,tk的多項(xiàng)式構(gòu)成的R的子集,其中多項(xiàng)式系數(shù)a1,…,ak取值于R的子集A,其中k是一個(gè)整數(shù)。
14.根據(jù)權(quán)利要求13所述的方法,其中所述元素a1,…,ak每一個(gè)都取值于集合{0,1}。
15.根據(jù)權(quán)利要求13所述的方法,其中所述元素a1,…,ak每一個(gè)都取值于集合{-1,0,1}
16.根據(jù)權(quán)利要求6所述的方法,其中所述環(huán)R是整數(shù)環(huán),所述R-模M是pm個(gè)元素的域GF(pm)中非零元素構(gòu)成的一個(gè)群,并且其中所述子集R1,…,Rk由形如a1pe(1)+a2pe(2)+…+anpe(n)的整數(shù)組成,其中n是一個(gè)小于m的整數(shù),a1,…,an是集合{0,1}中的元素。
17.根據(jù)權(quán)利要求6所述的方法,其中所述環(huán)R是整數(shù)環(huán),所述R-模M是pm個(gè)元素的域GF(pm)中非零元素構(gòu)成的一個(gè)群,并且其中所述子集R1,…,Rk由形如a1pe(1)+a2pe(2)+…+anpe(n)的整數(shù)組成,其中n是一個(gè)小于m的整數(shù),a1,…,an是一個(gè)整數(shù)小集合A中的元素。
18.根據(jù)權(quán)利要求6所述的方法,其中所述環(huán)R是一有限域GF(q)上的橢圓曲線(xiàn)E的一個(gè)點(diǎn)群E(GF(q))的一個(gè)自同態(tài)環(huán)。
19.根據(jù)權(quán)利要求6所述的方法,其中所述模M是一有限域GF(q)上的橢圓曲線(xiàn)E的一個(gè)點(diǎn)群E(GF(q))。
20.根據(jù)權(quán)利要求10所述的方法,其中所述環(huán)R是一特征p有限域GF(q)上的橢圓曲線(xiàn)E的一個(gè)點(diǎn)群E(GF(q))的一個(gè)自同態(tài)環(huán),其中模M是一點(diǎn)群E(GF(q)),并且其中所述元素t是一個(gè)p-冪Frobenious映射。
21.根據(jù)權(quán)利要求10所述的方法,其中所述環(huán)R是一特征p有限域GF(q)上的橢圓曲線(xiàn)E的一個(gè)點(diǎn)群E(GF(q))的一個(gè)自同態(tài)環(huán),所述模M是一點(diǎn)群E(GF(q)),并且其中所述元素t是一個(gè)點(diǎn)對(duì)分映射。
22.根據(jù)權(quán)利要求6所述的方法,其中所述環(huán)R是多項(xiàng)式模一理想的環(huán)A[X]/I,其中A是一個(gè)環(huán),I是A[X]的一個(gè)理想,并且其中所述子集R1,…,Rk是有很少幾個(gè)非零項(xiàng)的多項(xiàng)式集。
23.根據(jù)權(quán)利要求22所述的方法,其中所述理想I是由多項(xiàng)式XN-1生成的理想。
24.根據(jù)權(quán)利要求22所述的方法,其中所述環(huán)A是整數(shù)模q的一個(gè)有限環(huán),其中q是一個(gè)正整數(shù)。
25.根據(jù)權(quán)利要求10所述的方法,其中所述環(huán)R是多項(xiàng)式模一理想的環(huán)A[X]/I,其中A是一個(gè)環(huán),I是A[X]的一個(gè)理想,并且其中所述元素t是R中的多項(xiàng)式X。
26.根據(jù)權(quán)利要求25所述的方法,其中所述理想I是由多項(xiàng)式XN-1生成的理想。
27.根據(jù)權(quán)利要求25所述的方法,其中所述環(huán)A是整數(shù)模q的一個(gè)有限環(huán),其中q是一個(gè)正整數(shù)。
28.一種含有說(shuō)明資料的計(jì)算機(jī)可讀介質(zhì),該介質(zhì)用于一種包括變換數(shù)字信息在內(nèi)的密碼運(yùn)算執(zhí)行方法,該方法包括提供數(shù)字信息;提供一個(gè)數(shù)字運(yùn)算符,其含有一個(gè)取自大元素集的分量;將該分量分解成多個(gè)因子,每個(gè)因子具有一個(gè)低Hamming權(quán);以及利用所述數(shù)字運(yùn)算符變換所述數(shù)字信息。
29.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)可讀介質(zhì),其包含一種方法的說(shuō)明資料,該方法進(jìn)一步包括選擇一個(gè)環(huán)R;選擇一個(gè)R-模M;選擇兩個(gè)或多個(gè)R的子集R1,R2,…,Rk,其具有下述滿(mǎn)足性質(zhì)r1是R1中的一個(gè)元素,r2是R2中的一個(gè)元素,…,rk是Rk中的一個(gè)元素;計(jì)算r*m,其中r屬于R,m屬于M,其方法是將r分解為r1*r2*…*rk并計(jì)算r1*(r2*(…(rk*m),其中k是一個(gè)整數(shù)。
30.根據(jù)權(quán)利要求29所述的計(jì)算機(jī)可讀介質(zhì),其包含一種方法的說(shuō)明資料,在該方法中,所述子集Ri是R中形如a1te(1)+a2te(2)+…+ante(n)的元素所構(gòu)成的子集,其中n是一個(gè)整數(shù)。
31.根據(jù)權(quán)利要求29所述的計(jì)算機(jī)可讀介質(zhì),其包含一種方法的說(shuō)明資料,在該方法中,所述子集Ri是R中元素t1,…,tk的多項(xiàng)式構(gòu)成的R的子集,其中多項(xiàng)式系數(shù)a1,…,ak取值于R的子集A,其中k是一個(gè)整數(shù)。
32.根據(jù)權(quán)利要求29所述的計(jì)算機(jī)可讀介質(zhì),其包含一種方法的說(shuō)明資料,在該方法中,所述環(huán)R是整數(shù)環(huán),所述R-模M是pm個(gè)元素的域GF(pm)中非零元素構(gòu)成的一個(gè)群,并且其中所述子集R1,…,Rk由形如a1pe(1)+a2pe(2)+…+anpe(n)的整數(shù)組成,其中n是一個(gè)小于m的整數(shù),a1,…,an是集合{0,1}中的元素。
33.根據(jù)權(quán)利要求29所述的計(jì)算機(jī)可讀介質(zhì),其包含一種方法的說(shuō)明資料,在該方法中,所述環(huán)R是整數(shù)環(huán),所述R-模M是pm個(gè)元素的域GF(pm)中非零元素構(gòu)成的一個(gè)群,并且其中所述子集R1,…,Rk由形如a1pe(1)+a2pe(2)+…+anpe(n)的整數(shù)組成,其中n是一個(gè)小于m的整數(shù),a1,…,an是一個(gè)整數(shù)小集合A中的元素。
34.根據(jù)權(quán)利要求29所述的計(jì)算機(jī)可讀介質(zhì),其包含一種方法的說(shuō)明資料,在該方法中,所述環(huán)R是一有限域GF(q)上的橢圓曲線(xiàn)E的一個(gè)點(diǎn)群E(GF(q))的一個(gè)自同態(tài)環(huán)。
35.根據(jù)權(quán)利要求29所述的計(jì)算機(jī)可讀介質(zhì),其包含一種方法的說(shuō)明資料,在該方法中,所述模M是一有限域GF(q)上的橢圓曲線(xiàn)E的一個(gè)點(diǎn)群E(GF(q))。
36.根據(jù)權(quán)利要求30所述的計(jì)算機(jī)可讀介質(zhì),其包含一種方法的說(shuō)明資料,在該方法中,所述環(huán)R是一特征p有限域GF(q)上的橢圓曲線(xiàn)E的一個(gè)點(diǎn)群E(GF(q))的一個(gè)自同態(tài)環(huán),其中所述模M是點(diǎn)群E(GF(q)),并且其中所述元素t是一個(gè)p-冪Frobenious映射。
37.根據(jù)權(quán)利要求30所述的計(jì)算機(jī)可讀介質(zhì),其包含一種方法的說(shuō)明資料,在該方法中,所述環(huán)R是一特征p有限域GF(q)上的橢圓曲線(xiàn)E的一個(gè)點(diǎn)群E(GF(q))的一個(gè)自同態(tài)環(huán),所述模M是點(diǎn)群E(GF(q)),并且其中所述元素t是一個(gè)點(diǎn)對(duì)分映射。
38.根據(jù)權(quán)利要求29所述的計(jì)算機(jī)可讀介質(zhì),其包含一種方法的說(shuō)明資料,在該方法中,所述環(huán)R是多項(xiàng)式模一理想的環(huán)A[X]/I,其中A是一個(gè)環(huán),I是A[X]的一個(gè)理想,并且其中所述子集R1,…,Rk是有很少幾個(gè)非零項(xiàng)的多項(xiàng)式集。
39.根據(jù)權(quán)利要求30所述的計(jì)算機(jī)可讀介質(zhì),其包含一種方法的說(shuō)明資料,在該方法中,所述環(huán)R是多項(xiàng)式模一理想的環(huán)A[X]/I,其中A是一個(gè)環(huán),I是A[X]的一個(gè)理想,并且其中所述元素t是R中的多項(xiàng)式X。
全文摘要
一種執(zhí)行包括變換數(shù)字信息在內(nèi)的密碼運(yùn)算的方法。該方法提供了一個(gè)數(shù)字運(yùn)算符,其一個(gè)分量從大的元素集合中取值。該分量被分解成多個(gè)因子,每個(gè)因子具有一個(gè)低Hamming權(quán)。數(shù)字信息利用該數(shù)字運(yùn)算符來(lái)變換。計(jì)算機(jī)可讀介質(zhì)載有該方法的說(shuō)明資料。
文檔編號(hào)G06F7/72GK1471665SQ01817960
公開(kāi)日2004年1月28日 申請(qǐng)日期2001年8月24日 優(yōu)先權(quán)日2000年8月29日
發(fā)明者J·霍夫斯騰, J·H·西爾弗曼, J 霍夫斯騰, 西爾弗曼 申請(qǐng)人:Ntru保密系統(tǒng)公司