專利名稱:密碼通信方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種非對稱密碼通信方法,用于在對話者之間處理消息和保護(hù)通信。該方法用于非對稱地加密或標(biāo)識消息,也可用于非對稱的鑒別。
眾所周知的第一個解決方案是在1977年提出來的。這個解決方案是由發(fā)明者Rivest、Shamir和Adleman于1977年12月14日提出申請的美國專利4405829的主題。該方法通常稱為RSA,這是根據(jù)其發(fā)明者的名字而取名的,該方法使用了兩種密鑰。第一個密鑰(Kp)用于消息加密,而第二個密鑰(Ks)則用于解密。該為全世界所熟知的方法是非對稱加密的基礎(chǔ),之所以這樣叫是因?yàn)橛糜诩用芎徒饷艿拿荑€不同。在同一網(wǎng)絡(luò)中,每個成員(i)具有一對密鑰。第一個(Kpi)是公開的,因此可以被任何人所知道;而第二個(Ksi)是保密(secret)決不能用于通信。
在同一網(wǎng)絡(luò)中的兩個對話者(1)和(2)之間的加密通信按以下的方式進(jìn)行首先,(1)和(2)互相交換其公開密鑰(Kp1)和(Kp2);然后,當(dāng)(1)希望把消息加密,并且一旦該消息被(2)接收到,只能借助(2)所持有的保密密鑰(Ks2)解密加密M’=RSA(M,Kp2)解密M=RSA(M’,Ks2)當(dāng)(2)希望送消息給(1)時,用屬于(1)的公開密鑰(KP1)對其加密,而用自己的保密密鑰(Ks1)解密。
RSA方法也可用于簽名用某人的保密密鑰對消息加密,然后把稱為簽名的被加密消息和采用不加密形式的消息一塊發(fā)送;消息的接收者要求確認(rèn)該人的公開密鑰,并用其對簽名解密;如果被解密的文本對應(yīng)不加密的消息,則該簽名被確認(rèn)。
這種密碼通信方法存在若干缺陷。所需處理的數(shù)字很大(目前一般為512位),這需要進(jìn)行大量的計算,而導(dǎo)致簽名很長。而且,如果在因子分解方面取得新的突破,RSA的安全性將受到損害。
已經(jīng)提出的用于執(zhí)行非對稱加密或消息簽名功能的還有其它非對稱密碼通信方法,例如使用基于“背包”的算法或MATSUMOTO-IMAI算法。然而,這兩種算法都已經(jīng)被表明其安全性程度并不完全令人滿意。
本發(fā)明提出的方法不存在這兩種算法的缺陷,而且還保留了它們的某些優(yōu)點(diǎn)。本發(fā)明使用了一種新穎的算法,稱為“隱域算法”或HFE(隱域方程),象RSA一樣,可用于鑒別、加密和簽名等功能。然而,RSA主要基于對大的數(shù)字分解因子的問題,而HFE算法則基于一個完全不同的問題解多變量低次方程(通常為2次或3次)。必須注意的是,MATSUMOTO-IMAI算法也具有這種特性,但正如已經(jīng)指出的是,這種算法已經(jīng)被表明其安全性程度是不能完全令人滿意的,這使之不適于用在密碼通信方法中。本發(fā)明的作者也是發(fā)現(xiàn)MATSUMOTO-IMAI算法在加密上不可靠的人。
對HFE算法的這種可靠性有貢獻(xiàn)的新穎因素包括該算法不需要求一一對應(yīng)(bijective),以及可以使用很一般的多項(xiàng)式方程。
本發(fā)明的另一個優(yōu)點(diǎn)是,HFE算法具有計算超短簽名(小于200位)的能力,而且目前已知的最短非對稱簽名為220或320位的數(shù)量級(借助SCHNORR算法或DSS算法得到的,這些算法只能用于簽名或鑒別,不能用于加密/解密)。當(dāng)使用RSA方法時,最好至少用512位。
定義1.環(huán)A的N階“擴(kuò)展(extension)”為任一同構(gòu)(isomorphic)代數(shù)結(jié)構(gòu)A〔X〕/g(X),其中,A〔X〕為具有A上的一個未知數(shù)的多項(xiàng)式的環(huán),g(X)為n次多項(xiàng)式。
一種特別有利的情況是,A為有限域Fq,g為Fq上的一個n次不可約多項(xiàng)式。在這種情況下,A〔X〕/g(X)為Fqn的有限同構(gòu)域。
2.n階A的擴(kuò)展Ln的“基”為Ln,(e1,e2,…,en)的n個元素族,這樣,Ln的每個元素e所用下面的式子唯一表示e=Σi-1nαieia∈A.]]>為此,本發(fā)明涉及一種密碼通信方法,將有限環(huán)(K)的多個元素(n)表示的值(X)轉(zhuǎn)換為該環(huán)(K)的多個元素(n’)表示的映射值(Y),其特征在于a)映象值(Y)的每個元素(n’)采用次(D)公開多項(xiàng)式方程的形式,這是一個由值(X)的n個元素組成的大于或等于2次(通常D=2或3)的多項(xiàng)式;b)映象值(Y)也可通過對值(X)進(jìn)行變換而得到,該變換包括下面步驟,至少其中的某些步驟需要加密的知識b1)對值(X)進(jìn)行由值(X)的(n)元素組成的次數(shù)為1的第一加密多項(xiàng)式變換(s),以便得到有(n)個元素的第一映射(I1);b2)形成一個或多個分支,每個分支由第一映射(I1)的元素組成(例如,第一分支包括I1的前n1個元素,第二分支包括隨后的n2個元素等等,或者,同一元素可以出現(xiàn)在幾個分支中),并且·在至少一個分支(e)(或可能全部分支)中,分支的(ne)個元素被認(rèn)為是表示屬于環(huán)(K)的W次擴(kuò)展(Lw)的一個變量或少數(shù)(k)變量(x,x’,x”,…,xk), 滿足W*k=ne’,并至少對該分支(e)進(jìn)行一個如下定義的變換feLwk→Lwk(x,x’,x”,…,xk)→(y,y’,y”,…,yk)注意,(y,y’,y”,…,yk)為經(jīng)變換fe’得到的(x,x’,x”,…,xk)的映射,fe證實(shí)了下面的兩個性質(zhì)-b2.1)在環(huán)擴(kuò)展(Lw)的基中,映射(y,y’,y”,…,yk)的每個分量用曲該基中(x,x’,x”,…,xk)的分量組成的多項(xiàng)式表示,該多項(xiàng)式的全部次數(shù)≤公開多項(xiàng)式方程的次數(shù)(D)。
-b2.2)用環(huán)擴(kuò)展(Lw)表示變換(fe),使之能夠(也許除了某些項(xiàng)這些項(xiàng)的數(shù)目對于項(xiàng)的總數(shù)是微不足道的)計算出(fe)的前幾項(xiàng)(antecedents)(如果存在的話),(這種計算在ne很小時可采用窮搜索法,或使用解有限環(huán)中這類多項(xiàng)式方程的數(shù)學(xué)算法);·對其它可能的分支,進(jìn)行次數(shù)小于等于其值在環(huán)(K)中的分量形成的次數(shù)(D)的多項(xiàng)式變換;b3)將次數(shù)≤(D)的(保密或公開的)多項(xiàng)式加到剛被變換的分支的或其它分支的輸出上,該多項(xiàng)式只依賴直接位于該分支前面的分支的變量(這一步不是必須執(zhí)行的;所加的可以是空多項(xiàng)式)。
b4)對剛被變換的分支,或剛被變換的多個分支并置(即分組),構(gòu)成第二映射(I2);b5)對第二映射(I2)進(jìn)行第二加密多項(xiàng)式變換(t),該變換由第二映射(I2)的元素組成且次數(shù)為1,以便得到具有預(yù)定元素數(shù)目的第三映射(I3);以及b6)從第三映射(I3)的元素集合中選擇(n’)個元素,形成映射值(Y)(例如第一個;或者在某些變式中,選擇I3的所有元素,在這種情況下Y=I3)。
本發(fā)明還涉及使用上述通信方法非對稱名確認(rèn)方法和非對稱鑒別方法。
本發(fā)明的其它細(xì)節(jié)和優(yōu)點(diǎn)將在下面的幾個優(yōu)選但又非限定的實(shí)施例中結(jié)合附圖加以描述,在附圖中
圖1表示用于處理消息的多個變換的并置;圖2表示用于執(zhí)行消息加密/解密過程的通信設(shè)備;以及圖3表示同一設(shè)備,用于執(zhí)行消息的簽名及其確認(rèn)。
在提出本發(fā)明之前,首先簡單回顧和有限域的性質(zhì)有關(guān)的數(shù)學(xué)概念。
有限域的描述和性質(zhì)1)函數(shù)f設(shè)K為基q和特征p的有限域(通常,但不必要,q=p=2),LN為K的N次擴(kuò)展,βi,j,αi和μo為Ln的元素,θi,j,ψi,j和ξi為整數(shù),并且識f為下面的應(yīng)用fLN→LNX>→Σi,jβi,j*XQ+P+Σidi*Xs+μo]]>其中,Q=qθi,j,P=qψi,j以及S=qξi其中,f為X的多項(xiàng)式,(*)為乘號。注意,Q,P和S可能表示密碼中的n個值,因?yàn)榭赡艽嬖趎個θi,j,ψi,j和ξi。
此外,對于任何整數(shù)λ,x>→xqλ為LN→LN的線性應(yīng)用。所以,f是一個二次函數(shù)。
如果B為LN的基,則在基B中,f的表達(dá)式為f(x1,…,xN)=(P1(x1,…,xN),…,PN(x1,…,xN))其中,P1,…,PN為由N個變量x1,…,xN組成的總次數(shù)為2的多項(xiàng)式。
利用LN的表達(dá)式(representation)計算多項(xiàng)式P1,…,PN。LN的表達(dá)式通常為K上不可約多項(xiàng)式的iN(X)的諸元(datum),次數(shù)為N,這將使之能識別具有K〔X〕/(iN(X))的LN。這樣計算多項(xiàng)式P1,…,PN就很方便。
2)f的逆變換(inversion)設(shè)μ為多項(xiàng)式f中x的次數(shù)。f不一是LN→LN的一個雙射(一一對應(yīng));然而17)“a”為LN的一個元素,存在已知的算法,能相當(dāng)方便地找出LN中x的所有值(如果存在的話),使得f(x)=a,當(dāng)μ不太大時(例如μ≥1000)〕。
2)此外,對于LN的每個“a”,在f(x)=a中,關(guān)于x至多存在“μ”個解。
3)在某些情況中,f可能為一一對應(yīng)的。
加密/解密系統(tǒng)的基本HFE算法現(xiàn)在介紹新穎HFE算法的第一個版本,該版本不受限制,更通用的版本在隨后的段落中介紹。
域K,包括q=pm個元素,是公開的。每個消息由K的幾個元素構(gòu)成。例如,如果p=2,每個消息具有n*m位。n也是公開的,被分成d個整數(shù)n=n1+…+nd。
這些整數(shù)中的每一個ne(1≤e≤d)與域K的ne次擴(kuò)展Lne相應(yīng)(符號≤指“少于或等于”)。
設(shè)“字”為由K的分量表示的一個值。例如,Lne(1≤e≤d)的一個元素可以被表示為長度為ne的一個字。在這里將描述的加密機(jī)制中,將用到二次函數(shù)f1,…,fd,這些函數(shù)類似于上述的函數(shù)f,其中,對f1,N=n1,對f2,N=n2,等等。這些函數(shù)將產(chǎn)生d個字。然后,這d個字將被組合成長度為n的一個字。
·保密對象是1) Kn→Kh的兩個仿射雙射變換s和t。這些仿射雙射可以由次數(shù)為1和其系數(shù)在K中的多項(xiàng)式在一個基中表示。
2)n被分為d個整數(shù)n=n1+…+nd。
3)域Ln1,…,Lnd的表達(dá)式。這些“表達(dá)式”是選擇d個不可約多項(xiàng)式的結(jié)果。ψ ne表示Kne到Lne的同構(gòu),這里1≤e≤d。
4)二次函數(shù)f1,…,fd和標(biāo)題為“函數(shù)f”(使用N=ne和1≤e≤d)的段落中所描述的函數(shù)f具有相同的類型。
首先注意所有這些目的是加密一個既定值,但實(shí)際上,上述2)、3)和4)點(diǎn)中的目的也可以是公開一個既定值。實(shí)際上,該算法的安全性主要體現(xiàn)在加密變換s和t中。
其次注意s和t是一一對應(yīng)的應(yīng)用,但也可以是“準(zhǔn)雙射”,即,它們可以是只有幾個前項(xiàng)的應(yīng)用。
圖1介紹加密機(jī)制。操作順序從頂?shù)降住J紫葟腒n→Kn的仿射雙射變換s開始。
函數(shù)μ1,…,μd是Kn→Kne的映射函數(shù)(其中1≤e≤d),μ為逆并置函數(shù)。在某種意義上,函數(shù)μ1,…,μd將幾個元素分為d個“分支”。
同構(gòu)ψne從各種域Kne中被作用到各種域表達(dá)式Ln1,…,Lnd上,然后,二次函數(shù)f1,…,fd分別從Ln1,…,Lnd被作用到Ln1,…,Lnd上。接著,逆同構(gòu)(ψne)-1從各種域表達(dá)式Ln1,…,Lnd被作用到各種域Kne上。
接著,逆并置函數(shù)μ從Kne被作用到Kn。最后,執(zhí)行Kn→Kn的仿射雙射變換t,該變換的一般形式類似于變換s。
F2為階數(shù)≤(D)的函數(shù),取決于最左邊塊的變量。更一般地,F(xiàn)i(2≤i≤d)為階數(shù)≤(D)的函數(shù),這取決于塊1,2,…,i-I的變量。
注意這些函數(shù)F2,…,F(xiàn)d在塊中產(chǎn)生了Feistel圖。通常,它們不用在HFE算法中,在這種情況下,F(xiàn)2=…=Fd=0。
必須注意,而且這是很重要的一點(diǎn),所有這些操作的組合產(chǎn)生一個二次函數(shù),當(dāng)該函數(shù)借助其在某個基中的分量被表達(dá)時。所以,該函數(shù)可由其系數(shù)在K中的n個多項(xiàng)式(P1,…,Pn)給出,這些多項(xiàng)式使得能夠按照非加密文本x的函數(shù)計算被加密文本(y)。
·公開的對象是1)1=pm個元素的域K,比及消息的長度n。
2)由K的幾個變量組成的幾個多項(xiàng)式(P1,…,Pn)。因此,任何人都能夠加密某個消息(根據(jù)本發(fā)明的特征,加密算法是完全公開的)。而且,如果保密對象是已知的,就能夠解密。實(shí)際上,圖1所述的所有操作可以倒過來。因此,函數(shù)fe的逆變換包括解在域Lnc’中具有一個未知數(shù)的多項(xiàng)式方程,如上述標(biāo)題為“f的逆變換”段落中所指出的那樣。然而,必須注意到,fe不一定是雙射的。然后可能得到n個前提。在這種情況下,決定非加密文本的選擇將借助于被插入非加密文本中的一個冗余碼,而且被加密的文本也應(yīng)該包括該冗余碼。如果該函數(shù)不是雙射的,就需要考慮將該冗余碼有計劃地插入到非加密的消息中。
在簽名中利用該算法的例子必須考慮到兩種情況·函數(shù)為雙射的如果H是應(yīng)用將被簽名的報文的“雜湊”函數(shù)的結(jié)果(例如,H具有128位的格式),則簽名S為S=HFE1(H)。
因此,由于HFE加密函數(shù)是公開的,任何人都可以通過執(zhí)行H1=HFE(S)并確認(rèn)H’=H,就能夠確認(rèn)該簽名。簽名的發(fā)送者顯然必須知道密碼,以便計算出S。
·函數(shù)為非雙射的在這種情況下,可以在HFE的輸入上選擇若干位,輸入的位數(shù)大于輸出的位數(shù),以便利用HFE算法就幾乎一定能計算出前幾項(xiàng)。
例如,H可以用128位表示,而S為128+20=148位。
具體實(shí)施例執(zhí)行HFE算法有幾種方式,所有這些方式都對其特定的執(zhí)行和實(shí)現(xiàn)情況提供了極大的便利。
·只有一個分支的算法示例(即d=1)。
這個版本只有一個(大的)分支,因此,在每個方程中,所有的變量-即,消息的所有位都被包含在內(nèi)??紤]到這個分支的大規(guī)模,這種執(zhí)行的形式?jīng)]有小規(guī)模分支的潛在弱點(diǎn)。
·具有相同函數(shù)f的小分支的情況這種特殊的情況包含若干小的分支,例如12位的值,以及相同的函數(shù)f。這一版本特別便利,因?yàn)樗梢栽谛〉闹醒胩幚砥?例如在單片卡中)中很方便地實(shí)現(xiàn),而且可以借助程序或數(shù)學(xué)協(xié)處理器來實(shí)現(xiàn)。
HFE算法的第一種變化用在每個分支中的函數(shù)f,正如在本文中所介紹的那樣,是一個有限域中單變量x的多項(xiàng)式方程。采用基表示,函數(shù)f被表示為總次數(shù)為2的一個方程式。
實(shí)際上,也可以使用其它類型的函數(shù)f,它稍微不同于上面所定義的一般模式。這種新穎的類型包括依據(jù)幾個有限域變量,例如兩個變量x1和x2,選擇f函數(shù),這樣,在一種基中,做為座標(biāo)函數(shù)的表示保留了等于2的總次數(shù),并且,總能夠重新計算f的某個給定值的前幾項(xiàng),當(dāng)這些前項(xiàng)存在時。
最好通過下面的數(shù)值例子來理解這種變化形式??紤]64位的值和p=2的算法分支,在這種變化形式中,讓f取決于每個32位的兩個變量x和x’,f(x,x’)=(y,y’),這樣y=x4=x*x’=x’ (1)y’=x17+x4*x’+x’3(2)(注這種精確函數(shù)的使用不是必須這樣做的,僅僅是做為一個例子給出)。
為了由(y,y’)確定(x,x’)可以采用下面的方法從等式(1)中,提取x’=(y-x4)/(x+1)(3)因此,從等式(2)中,提取y’(x+1)3=x17(x+1)3+x4(y-x4)(x+1)2+(y-x4)3(4)請注意(4)為具有單個變量x的多項(xiàng)式方程。如上所述,數(shù)學(xué)工作者已經(jīng)知道解這類方程的某些一般的方法,因此能夠解出等式(4),也能夠定義滿足該方程的x值;然后,通地替換等式(3)中X的這些值,就可以推出x’的值。
注目前已知的在有限域中解幾個變量的方程的技術(shù)使得能夠正確地解出其它類型的方程,而不僅僅是本例中所介紹的這一種。特別是對于這樣的方程不需要把某個變量表示為其它變量的函數(shù)并替換之。
HFE算法的第二種變化形式當(dāng)然,對HFE算法及其變化形式的描述并不限制本發(fā)明只使用次數(shù)為2的一類多項(xiàng)式方程完全可以使用3次的;在這種情況下,存在3次的一種公開形式。
同樣,4次或甚至5次都是可能的。然而,需要使次數(shù)足夠低,以便由此導(dǎo)出的公開等式使計算機(jī)便于存儲和計算。
參數(shù)的選擇也是很重要的,以便保證最大的安全性,并盡可能躲開密碼分析的攻擊。在此,為安全起見,最好能做到1)在每個分支中,最少有一個32位的變量,而最好至少為64位的,
2)不存在這種形式的等式∑γijxixj+∑αixi∑βiyj+δo=0,其中,系數(shù)γij、αi,βj或δo中至少一個非空,并且,總是要驗(yàn)證yj的系數(shù)是否為被加密文本的部分以及xi的系數(shù)是否為非加密文本的部分。注在其它方面,正是由于沒有驗(yàn)證這樣的條件,上述的Matsumoto-Imai算法被認(rèn)為并不是十分完全。
3)不存在這種形式的等式∑γijkxiyjyk+∑αijxiyj+∑βijyiyk∑μixi+∑viyi+δo=0,即,總次數(shù)為3且X的次數(shù)為1,4)更一般地,為完全起見,最好不存在“低”次等式,該等式總在非加密和加密消息的座標(biāo)之間被確認(rèn),除了在小多項(xiàng)式中公開等式乘積的線性組合。
HFE算法的第三種變化形式前面已經(jīng)指出,為了使用HFE算法,當(dāng)函數(shù)非雙射時,可以把冗余碼引入非加密文本中。
存在另一種可能性如果K的新元素被插入加密值中,加密值Y的長度大于非加密值X的長度是可能的。這些新元素也來自由X的分量所形成的2次等式。更一般地,使用圖1的表示法,s(x)的同一元素可以被送到幾個分支中。還可以把由任意2次方程組成的一個或多個分支加入某個基中,在這種情況下,這些附加的分支被用來區(qū)分其它分支的正確前項(xiàng)。
HFE算法的第四種變化形式不用使導(dǎo)出圖1中最終函數(shù)的所有方程都成為公開的,而是讓其中的一個或多個保持保密。這意味著,不用使(P1,…,Pn)全公開,而可以僅使這些方程中的部分公開,在這種情況中,只需通過計算公開的(P1,…,Pn)多項(xiàng)式來執(zhí)行加密。
在解密過程中,非公開多項(xiàng)式Pi的所有可能的值都被試驗(yàn),這就為幾種可能的解密消息提供了一個先驗(yàn)值,而正確的消息如前一樣被標(biāo)識或者把冗余碼引入非加密消息,或者借助第三種變化形式中所介紹的方法。
注這種刪除一個或多個公開的方程式的事實(shí)在某些情況下將會使況得發(fā)現(xiàn)由HFE算法隱藏的域結(jié)構(gòu)變得更加困難。
圖2的說明圖2簡單地說明了使用上述密碼算法的加密/解密系統(tǒng)的例子。
假定有兩個人A和B都屬于相同的通信網(wǎng)絡(luò),他們中的每個人都有各自的消息發(fā)送/接收設(shè)備1和2。這種設(shè)備包括計算裝置,例如計算機(jī),用于執(zhí)行消息的加密/解密過程;以及存儲裝置。這些計算或存儲裝置至少部分可以被定位在便攜式的裝置中,結(jié)合微處理器或微布線的邏輯線路,定義控制存取的區(qū)域,因此可以包括如加密密鑰這樣的加密信息(例如,參看法國專利No.2,401,459中所述的便攜式裝置)。
每個設(shè)備都裝入了如上所述的HFE算法及其逆算法HFE-1,尤其采用程序的形式裝入。
借助通信線路程3將兩個設(shè)備互相連接起來。
A和B都分別擁有一對密鑰公開密鑰CpA和CpB以及和對應(yīng)的公開密鑰CpA或CpB互相關(guān)聯(lián)的保密密鑰CsA和CsB。如果A和B不具備計算這對密鑰的裝置,這種計算工作可由網(wǎng)絡(luò)來做,只要給它某些相應(yīng)于網(wǎng)絡(luò)每個成員的權(quán)限。如果這兩個人想在保護(hù)模式下互相對話,即,沒人能理解所交換的數(shù)據(jù),則他們可執(zhí)行下面的操作過程A將其公開密鑰CpA送給B,而B則將其公開密鑰發(fā)送給A。在一種變化形式中,網(wǎng)絡(luò)可以將所有成員的公開密鑰都保存在主存儲器中,并且在根據(jù)請求將其傳送給網(wǎng)絡(luò)的成員。一旦A接收到公開密鑰CpB,A將借助密碼算法HFE對希望送給B的消息M和消息M’進(jìn)行加密。而B一旦接收到該消息,將借助密碼算法HFE-1和保密密鑰CsB對該消息解密。只有B能對該消息解密,因?yàn)樗蔷W(wǎng)絡(luò)成員中唯一具有該密鑰的人。對于從B到A的消息傳輸,其操作過程完全類似。
圖3的說明圖3簡單地說明了利用圖2的系統(tǒng)執(zhí)行計算和簽名確認(rèn)的過程,該過程使用了上述的加密算法。
在這種情況下,消息的傳輸必須和鑒別一塊執(zhí)行,即,消息M的接收者能確定消息來自某個特定的人。例如假定A想要給B發(fā)送一個被鑒別過的消息。這兩個對話者將執(zhí)行下面的操作過程首先,A將其公開密鑰CpA發(fā)送給B,或者在一種變化形式中,B也可以從網(wǎng)絡(luò)中請求得到該密鑰。然后,A用其保密密鑰CsA和加密算法HFE1對消息加密。所得到的結(jié)果稱為該消息的簽名s。接著,消息(在這種情況下傳送的是非加密的)及其簽名被送到B。B借助密碼算法HFE和前面收到的公開密鑰CpA對簽名解密。所得到的結(jié)果,用M”表示,必須和接收到的消息M相同。如果確實(shí)這樣,那么就證明簽名是借助保密密鑰CsA計算的,因此也證明該消息確實(shí)來自A,因?yàn)锳是網(wǎng)絡(luò)中具有這一密鑰的唯一成員。
對本系統(tǒng)的已知改進(jìn)包括不但計算消息的簽名,而且計算消息壓縮的簽名。這樣,利用“雜湊”函數(shù),就可以把一個相當(dāng)大的消息壓縮為諸元H,這是消息的特征。這種“雜湊”函數(shù)可用標(biāo)準(zhǔn)的雜湊函數(shù)(例如MD5或SHA)來實(shí)現(xiàn)。
總之, 本發(fā)明導(dǎo)致了下面的發(fā)現(xiàn)1.發(fā)明人已經(jīng)表明(參看文獻(xiàn)Crypto’95,248頁到261頁)Matsumoto和Imai的原始算法的加密方式不可靠。該算法包括用公式f(b)=a1+Q隱藏雙射f,其中,Q=qθ,借助兩個仿射變換s和t。
2.發(fā)明的人已經(jīng)表明,可以對f使用更一般化的函數(shù)。實(shí)際上,發(fā)明人已經(jīng)表明,一方面,可以使用非雙射函數(shù)f,另一方面,可以使用這樣一個已知如何為多項(xiàng)式的各種變化相當(dāng)大的形式計算前幾項(xiàng)的事實(shí),例如使用多項(xiàng)式或多項(xiàng)式合成的PGCD計算,或者利用GROBNER基。
3.需要至少一個不能太小的分支。實(shí)際上,發(fā)明人發(fā)現(xiàn)小分支導(dǎo)致HFE算法性能的降低。
4.而且,發(fā)明人注意到,有時,可能只選擇構(gòu)成第三映射(I3)的某些元素,第三映射(I3)是借助第二保密多項(xiàng)式變換從第二映射(I2)中得到的。
權(quán)利要求
1.一種密碼通信的方法,將由有限環(huán)(K)的(n)個元素表示的一值(X)變換為由該環(huán)(K)的(n’)個元素表示的一個映象值(Y),其特征在于a)映象值(Y)的每個元素(n’)采用由值(X)的元素(n)組成的,具有≥2的低次數(shù)(D)的一種公開多項(xiàng)式方程的形式;b)映象值(Y)也可以借助包括下面步驟的變換從值(X)中得到,至少其中的一些要求加密的知識b1)將由值(X)的元素(n)組成的次數(shù)為1的第一個保密多項(xiàng)式變換(S)應(yīng)用到值(x)上,以便得到具有(n)個元素的第一映象(I1);b2)第一映象(I1)的(n)個元素被認(rèn)為是代表屬于環(huán)(k)的W次擴(kuò)展(Lw)的變量(x,x’,x”,…, xk)中的一個變量或一小部分(k)變量,滿足W*k=n,將如下定義的變化作用到第一映象(I1)上fLwk→ Lwk(x,x’,x”,…,xk)→(y,y’,y”,…,yk)應(yīng)注意(y,y’,y”,…,yk)是(x,x’,x”,…,xk)經(jīng)變換f得到的映象,已知f證實(shí)了下面的兩個特性-b2.1)在環(huán)的擴(kuò)展(Lw)的基(B)中,映象(y,y’,y”,…,yk)的每個分量采用由在該基中(x,x’,x”,…,xk)的元素組成的多項(xiàng)式的形式表達(dá),該多項(xiàng)式的總次數(shù)≤所述公開多項(xiàng)式方程的次數(shù)(D);-b2.2)用環(huán)的擴(kuò)展(Lw)表達(dá)變換(f),使之能夠計算存在的(f)的前提,除了對某些項(xiàng),其數(shù)目相對于項(xiàng)的總數(shù)來說是微不足道的;b3)經(jīng)這樣變換的第一映象(I1)構(gòu)成了第二映象(I2);b4)將由第二映象(I2)的元素組成的、次數(shù)為1的第二保密多項(xiàng)式變換(t)作用到第二映象(I2)上,以便得到具有預(yù)定數(shù)目元素的第三映象(I3);并且b5)從第三映象(I3)的元素集合中選擇(n’)個元素,以便形成所述的映象值(Y)。
2.如權(quán)利要求1所述的方法,其中,公開多項(xiàng)式等式的所述低次數(shù)(D)等于2。
3.如權(quán)利要求1所述的方法,其中,變量的數(shù)目k等于1。
4.如權(quán)利要求3所述的方法,其中,公開多項(xiàng)多等式的所述低次數(shù)(D)=2,(k)為有限域,并且所述交換(F)具有下面的形式fLw→LwX→Σi,jβi,j*xQ+P+Σiαi*xs+μo]]>其中,q為域(K)的基;Q=qOi,j,P=qφi,j,且S=qεi,βi,j,αi和μo為Lw的元素,θi,j,φi,j和ξi為整數(shù),其中,多項(xiàng)式f中x的次數(shù)≤1000。
5.如權(quán)利要求1所述的方法,不存在這樣的多項(xiàng)式等式由(x,x’,x”,…,xk)和(y,y’,y”,…,yk)的分量而不是在小多項(xiàng)式中公開等式的乘積的線性組合組成的低總次數(shù)的多項(xiàng)式。
6.如權(quán)利要求1所述的方法,使之不存在這種形式的多項(xiàng)式∑γijxixi+∑αixi∑βjyj+δo=0,并且系數(shù)γij,αi,βj或δo中至少一個非空,并且總是驗(yàn)證系數(shù)Yj是否加密消息的分量,或者系數(shù)Xi是否為非加密消息的分量。
7.如權(quán)利要求1所述的方法,其中,環(huán)(K)為有限域,且環(huán)的擴(kuò)展(Lw)為該環(huán)(K)的W次擴(kuò)展,這意味著(Lw)和K〔X〕/g(X)是同構(gòu)的,其中g(shù)為K上W次的不可約多項(xiàng)式。
8.一種非對稱鑒別方法,第一個人稱為核實(shí)者,另一個人稱為試驗(yàn)者,其特征在于-核實(shí)者將第一值(Y)發(fā)送給試驗(yàn)者;-試驗(yàn)者將第二值(X)返回給核實(shí)者,第二值(X)是通過對第一值(Y)進(jìn)行變換而到,該變換對應(yīng)權(quán)利要求1主題的逆變換;-核實(shí)者將權(quán)利要求1的變換作用于第二值(X),證明該結(jié)果符合和第一值(Y)連接的預(yù)定關(guān)系。
9.一種密碼通信方法,將由有限環(huán)(K)的(n)個元素表示的值(X)轉(zhuǎn)換為由環(huán)(K)的(n’)個元素表示的映象值(Y),其特征在于a)映象值(Y)的每個元素(n1)采用由值(X)的元素(n)組成的具有≥2的低次數(shù)(D)的公開多項(xiàng)式方程的形式;b)映象值(Y)也可以借助包括下列步驟的變換從值(X)中得到,其中的一些步驟要求加密的知識b1)將由值(X)的(n)個元素組成的次數(shù)為1的第一保密多項(xiàng)式變換(s)作用到值(X)上,以便得到具有(n)個元素的第一映象(I1);b2)形成一個或多個分支,其中的每個分支都由第一映象(I1)的元素組成,并且,·至少在其中的一個分支(e)中,該分支的(ne)個元素被認(rèn)為代表了屬于環(huán)(k)的W次擴(kuò)展(Lw)的變量(x,x’,x”,…,xk)中的一個或少數(shù)(k)變量,滿足W*k=ne’,并且至少將如下定義的變換作用到該分支(e)上feLwk→Lwk(x,x’,x”,…,xk)→(y,y’,y”,…,yk)應(yīng)注意(y,y’,y”,…,yk)是(x,x’,x”,…,xk)經(jīng)變換fe’得到的映象,fe證實(shí)了下面的兩個特性-b2.1)在環(huán)的擴(kuò)展(Lw)的基(B)中,映象(y,y’,y”,…,yk)的每個分量用該基中(x,x’,x”,…,xk)的分量組成的多項(xiàng)式表示,該多項(xiàng)式的總次數(shù)≤公開多項(xiàng)式等式的所述次數(shù)(D);-b2.2)變換(fe)用環(huán)的擴(kuò)展(Lw)表示,使之能夠計算存在的前幾項(xiàng)(antecedents)(fe),除了對某些項(xiàng),這些項(xiàng)的數(shù)目對于項(xiàng)的總數(shù)來說是微不足道的?!⒂删哂协h(huán)(K)中值的分量組成的次數(shù)≤所述次數(shù)(D)的多項(xiàng)式變換作用于其它的潛在分支上;b3)將由此變換得到的分支或多個分支并置,構(gòu)成第二映象(I2);b4)將由第二映象(I2)的元素組成的次數(shù)為1的第二保密多項(xiàng)式變換(t)應(yīng)用到第二映象(I2)上,以便得到具有預(yù)定的元素個數(shù)的第三映象(I3);并且b5)從第三映象(I3)的元素集合中選擇(n’)個元素,形成所述的映象值(Y)。
10.如權(quán)利要求9所述的方法,其中,將次數(shù)≤(D)的多項(xiàng)式加到剛被變換的分支或其它的分支的輸出中,該多項(xiàng)式只取決于直接位于該分支前面的分支的變量。
11.如權(quán)利要求9所述的方法,第一映象(I1)有若干個分支,其中的一個處理至少32位的值。
12.一種對消息(X)進(jìn)行非對稱簽名并確認(rèn)該簽名的方法,其特征在于,將一個變換作用到該消息或消息的公開變換上而得到該簽名,該變換對應(yīng)作為權(quán)利要求1或權(quán)利要求9中方法的主題的變換的逆變換,并且其中,該簽名包括檢查所得到的結(jié)果(Y)符合和被簽名消息相關(guān)的預(yù)定關(guān)系。
全文摘要
一種新穎的非對稱密碼模式,可用于加密簽名和鑒別。該模式基于具有有限域K中的值的低階公開多項(xiàng)式方程。該機(jī)制不需要必須為雙射的。保密密鑰使之能用環(huán)K的擴(kuò)充中的值隱藏多項(xiàng)式方程。如果有了私有密鑰,解這些方程式就能執(zhí)行只用公開密鑰不可能執(zhí)行的操作。
文檔編號G09C1/00GK1146676SQ96110860
公開日1997年4月2日 申請日期1996年7月26日 優(yōu)先權(quán)日1995年7月27日
發(fā)明者加庫斯·帕塔林 申請人:Cp8川薩克公司