專利名稱:定制的靜態(tài)Diffie-Helman群的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼系統(tǒng)領(lǐng)域的靜態(tài)群(static group)。
背景技術(shù):
在1975年由Diffie和Helman引入的公鑰密碼系統(tǒng)使不需要預(yù)先共享密碼 (pre-shared secret)以及具有不可否認(rèn)性(non_r印udiation property)的數(shù)字簽名的力口密通信成為可能。公鑰加密系統(tǒng)的DifTie-Helman(DH)協(xié)議最具獨創(chuàng)性的方面是使用了一種稱為群的數(shù)學(xué)結(jié)構(gòu),在該結(jié)構(gòu)中,一個特定問題,離散對數(shù)問題(discrete logarithm problem) 是很難處理的。一個群只是一組元素和作用于任意兩個元素的單個運算。常見的群的實例包括 在加法運算下的整數(shù)(包含零和負(fù)整數(shù))、在加法運算下的有理數(shù)、以及在乘法運算下的非零有理數(shù)。這些常見的實例是無限群,但是還存在有限(或離散)群。部分地由于群的元素可以用固定位數(shù)傳送,所以密碼系統(tǒng)通常對有限群更感興趣。有限群的實例通常為本領(lǐng)域公知。最常見的實例是基于模運算(modular arithmetic)的群。如果ρ是素數(shù),t是任意整數(shù),則t mod ρ是t被ρ除的余數(shù)。從而如果對于某一整數(shù)q,t = pq+r,并且r包含在0和P-I之間,則r = t mod ρ。在模加的運算下,從0至p_l的整數(shù)集合形成一個群,其中s和t組合變?yōu)閟+t mod ρ。這個群用&表示。更一般地,ρ可以是任意整數(shù)。從1至p-1的整數(shù)集合在模乘運算下形成另一個群,其中s和t組合變?yōu)閟t mod P。這個群用Z/表示,通常稱為mod P群。更一般地,P可以是具有略微不同運算的素數(shù)的任意次冪。當(dāng)書寫這些群的運算時,如果在上下文中很清楚,符號mod ρ經(jīng)常省略。群G的子群是G中的元素子集的群并且具有與G相同的運算。例如,群Z/具有階數(shù)為2的子群,所述子群的元素是1和p-1。更通常地,對于群中的任意元素g,存在包含 <g>個元素的最小子群,表示為<g>??芍?lt;g>由關(guān)于整數(shù)χ的元素集合gx精確給定,其中 gx表示χ個g的乘積。在具有加號的群中,例如&,冪gx被替換記作xg。元素g是<g>的生成元。假如一個群具有生成元,則它是循環(huán)的,從而<g>是天然循環(huán)的。群&和2/也是循環(huán)的,但通常來說,群不是必須循環(huán)的。群的階數(shù)是元素的數(shù)量,群4具有階數(shù)P并且群τ;具有階數(shù)P-I。元素g的階數(shù)是子群<g>的階數(shù)。假設(shè)g具有階數(shù)η。在運算記作乘法的群中,離散對數(shù)問題可以陳述為給定g和W,查找整數(shù)X,使w =#,其中#表示1個8的乘積。這個問題通常在存在這樣的整數(shù)X的情況下提出。也就是說,w是<g>中的元素。通常的對數(shù)問題不要求χ是整數(shù),并且只能夠在群具有可以定義非整數(shù)冪的加法屬性時定義。在某些離散群中,離散對數(shù)問題(DLP)難以解決。Diffie和Hellman利用了 DLP"難 (hard) ”這一事實,以提供針對公鑰加密的第一可行解法。在這種情況下,Alice選擇隨機(jī)整數(shù)X,發(fā)送給Bob群元素gx,Bob選擇隨機(jī)數(shù)y,并且發(fā)送給Alice群元素gy。隨后,Alice 計算ζ = (gx)y,Bob計算z,= (gy)x。顯然ζ = ζ,=『=g”,所以Alice和Bob可以計算同一個值。假如沒有其他人能夠計算z,則Alice和Bob已經(jīng)對共享秘密(secret)達(dá)成一致。則該共享秘密可以用于加密Al ice和Bob之間傳遞的消息。這個協(xié)議是Dif f ie-HeIman 密鑰協(xié)議。在這個協(xié)議之前,Alice和Bob不得不預(yù)先會面以秘密地對ζ達(dá)成一致。這個協(xié)議使Alice和Bob免于預(yù)先會面。因為數(shù)值gx和gy是公開的,所以這是所謂的公鑰加密。它們被稱為公鑰,而X和 y被稱為私鑰。數(shù)據(jù)對(X,gx)稱為密鑰對。對手Eve看到公鑰。假如Eve能夠解決DLP, 則她能夠從g和gx找到X。利用X,Eve能夠以與Alice相同的方式計算z,即利用Bob的公鑰gy和Alice的私鑰χ。因此,共享的秘密不再是秘密的,Eve能夠利用它解密Alice和 Bob互相發(fā)送的加密消息。因此,Diffie-Helman密鑰協(xié)議的安全性的先決條件是DLP是 “難”題。Eve不能解決DLP。幸運地,存在譯碼者認(rèn)為DLP難的群。DLP難的群主要是兩類公知的群,即有限域的乘法子群,以及橢圓曲線群的子群。橢圓曲線群具有超過其他DLP群的優(yōu)點利用更少的帶寬傳輸和存儲公鑰,并且能更快的運算。靜態(tài)Diffie-Helman密鑰協(xié)議是Diffie-Helman密鑰協(xié)議的重要的變體,其中一方或兩方具有不隨時間改變的密鑰對。如果Alice具有靜態(tài)密鑰對,則她的私鑰χ和公鑰gx對于所有事務(wù)都保持相同。這樣的一個優(yōu)點是Alice可以讓授權(quán)機(jī)構(gòu)(certificate authority)標(biāo)記她的公鑰,則Bob可以從數(shù)據(jù)庫中查找最終的授權(quán)而不用從Alice請求。 這樣的一種應(yīng)用是當(dāng)Bob發(fā)送加密郵件給Alice時。Alice不必在Bob能加密郵件之前向 Bob發(fā)送gx。相反,Bob從數(shù)據(jù)庫中查找gx,所述數(shù)據(jù)庫可以是他的地址簿或其他某種公用字典。對于gx的授權(quán)將進(jìn)一步向Bob保證,Alice (且只有Alice)能夠解密該電子郵件。在某些群中,Diffi e-Helman密鑰協(xié)議目前普遍使用在IPSec協(xié)議中,用于保護(hù)虛擬專用網(wǎng)絡(luò)(VPN)。包含靜態(tài)變體的Diffie-Helman密鑰協(xié)議也是普遍使用的hternet Engineering Task Force (IETF)安全協(xié)議,例如 Transport Layer Security (TLS)(用于 #才戶網(wǎng)立占)、Secure Multipurpose Internet Message Extensions (S/MIME) (^^1 ^ 子郵件)或義⑶!^ Siell (SSH)(用于保護(hù)遠(yuǎn)程登錄計算機(jī))的可選擇特征。因此,需要使 Diffie-Helman密鑰協(xié)議盡可能安全。靜態(tài)Diffie-Helman密鑰協(xié)議的安全性不僅取決于離散對數(shù)是難的。特別地,對手確定Alice的靜態(tài)私鑰的方法是通過向Alice發(fā)送特別選擇的公鑰gy并從Alice獲得最終共享秘密ζ = gxy。在多數(shù)群中,利用這種主動攻擊查找χ比直接求解離散對數(shù)問題容易得多。對于本領(lǐng)域技術(shù)人員,上述攻擊在兩個方面不完全是實際的。然而,確定的是,這種屬性的攻擊是很值得考慮的。第一,受害者Alice不會向?qū)κ直┞豆蚕砻孛堞?。然而,ζ的目的是?yīng)用,而且量化應(yīng)用Z的準(zhǔn)確方式是很難限定的。Z的任何使用將導(dǎo)致多少有些暴露。因此,譯碼者(cryptographer)已經(jīng)發(fā)現(xiàn)考慮精選的暗文攻擊是明智的,在所述暗文攻擊中,受害者暴露了她的私鑰運算結(jié)果。而且,對精選的暗文攻擊表現(xiàn)出抵抗力意味著更弱的攻擊也被阻止了。為了謹(jǐn)慎,譯碼者尋求阻止可能的最強(qiáng)攻擊,而不僅是最弱的攻擊。因此假設(shè)ζ會暴露既是謹(jǐn)慎的也并非完全不合實際的。第二,在Diffie-Helman密鑰協(xié)議的多數(shù)標(biāo)準(zhǔn)化版本中,共享的秘密ζ只用于一個目的,即得到密鑰。為此,采用密鑰推導(dǎo)函數(shù)(KDF)。Alice將計算k = KDF(Z)。密鑰推導(dǎo)函數(shù)通常選擇為一種單向函數(shù),意思是沒有僅從k重建ζ的已知途徑。因此,在上述攻擊中 Alice更有可能將k暴露給對手而不是ζ。然而,為了執(zhí)行,攻擊需要ζ。如果Alice僅暴露 k,攻擊不能用來查找χ。因為KDF是單向的,攻擊者不能從暴露的k值中恢復(fù)ζ。在考慮上述攻擊之前,已經(jīng)知道采用KDF具有一些比較不重要的安全利益。其中之一是共享的秘密ζ經(jīng)常是與隨機(jī)數(shù)有區(qū)別的。因為ζ是與隨機(jī)數(shù)有區(qū)別的,所以作為密鑰是不理想的。然而,直到考慮上述攻擊,才知道Z實際上會泄露關(guān)于X的某些信息。許多協(xié)議和Diffie-Helman密鑰協(xié)議的實施對于KDF的使用來說并不嚴(yán)格,在一些智能卡實施中,智能卡將ζ暴露給智能卡閱讀器,并且智能卡閱讀器應(yīng)用KDF。在這樣的系統(tǒng)中,惡意的智能卡閱讀器可能使用攻擊和來自智能卡的ζ值以推斷智能卡中的私鑰X。 在某些協(xié)議中,例如基本ElGamal加密協(xié)議,設(shè)計有Chaum和vanAntwerpen的不可否認(rèn)的簽名,從而實體Alice暴露ζ作為協(xié)議的一部分。因此這些協(xié)議易于受到攻擊。然而,這兩個協(xié)議是在知道KDF的任何好處之前設(shè)計的。這些協(xié)議可以很容易地通過使用KDF修正。 實際上,Diffie-Helman擴(kuò)展加密方案(DHAES)是由Bellare和Rogaway設(shè)計的,設(shè)計為 ElGamal的改進(jìn),其中,在采用ζ作密鑰之前將KDF施加到共享秘密ζ。其他的協(xié)議存在,然而,它們不容易通過增加KDF進(jìn)行修正。一種這樣的協(xié)議是 Ford-Kaliski密鑰恢復(fù)協(xié)議。在該協(xié)議中,基點g是客戶端密碼的函數(shù),并且Alice是服務(wù)器端。客戶端選擇隨機(jī)數(shù)y并且發(fā)送€到Alice。為了該協(xié)議執(zhí)行,Alice必須向任何與她一起執(zhí)行Diffie-Helman密鑰協(xié)議的客戶端暴露共享的秘密ζ。從ζ中,客戶端得到靜態(tài)值gx,該值是客戶端密鑰和服務(wù)器端私鑰Χ兩者的函數(shù)。因為比普通密碼更難猜,靜態(tài)值gx稱為恢復(fù)密鑰(retrieved key)或硬化密碼(password hardening)。密鑰恢復(fù)或密碼硬化是i^ord-Kaliski協(xié)議的主要目的。客戶端通過計算zu = gxyu來實現(xiàn)該目的,其中u 使yu在指數(shù)空間等于1。如果Alice將KDF施加到z,該協(xié)議不執(zhí)行,因為這樣客戶端將不能恢復(fù)靜態(tài)值。對手可能建立惡意的客戶端以利用ζ值得到Alice的私鑰χ。因為對手現(xiàn)在知道了 X,猜gx就象猜密碼g—樣容易。特別地,對手可能能夠啟動字典搜索以非常迅速地確定硬化密碼。因此,這次攻擊擊敗了 i^ord-Kaliski協(xié)議的主要目的。一個完全不同的方面是靜態(tài)Diffie-Helman問題是難的。更準(zhǔn)確地,在不知道私鑰X的時候難以計算Wx。取W = gy表示破解靜態(tài)Diffie-Helman協(xié)議與查找χ —樣困難。 按照上述攻擊這似乎是自相矛盾的,但事實上不是。在上述攻擊中,對手是主動的。對手使用受害者解決關(guān)于gy的Diffie-Helman問題。這給了對手解決Diffie-Helman問題的能力,這相當(dāng)于查找χ的問題。更準(zhǔn)確地,在某種因素上說,靜態(tài)DH問題幾乎和查找χ —樣難。假如Alice設(shè)法防止攻擊,比方說利用KDF,則這仍然是正確的解決靜態(tài)DH問題幾乎和查找X —樣難。這為Alice提供了沒有人能解決靜態(tài)Diffie-Helman問題的保證, 這意味著除了她和Bob沒有其他人知道私鑰y,也沒有其他人能計算公共秘密ζ。這個屬性的結(jié)果是公知的可證實安全(provable security)。先前DH問題的可證實安全結(jié)果沒有涉及靜態(tài)變體。因此,先前的結(jié)果沒有就利用 Alice的私鑰為她提供同樣多的保證。而且,沒有與先前安全結(jié)果相應(yīng)的已知攻擊。關(guān)于 DH的可證實安全結(jié)果的有效性,取決于DH群的選擇。因此采用這樣的群是理想的在該群中包括靜態(tài)DH問題的DH問題是難的。因此,本發(fā)明的目的是避免或減輕上面提到的缺點。
發(fā)明內(nèi)容
在一方面,本發(fā)明提供一種選擇用于靜態(tài)Diffie-Helma密鑰協(xié)議的mod ρ群以防止對手主動攻擊的方法,包括步驟選擇偶數(shù)h值,搜索r和η值以滿足關(guān)系式η = hr+1, 其中,r和η是素數(shù),并且搜索一個值t以計算ρ = tn+Ι,其中ρ是素數(shù)。在另一方面,本發(fā)明提供了一種選擇用于靜態(tài)DifTie-Helma密鑰協(xié)議的定義在二元域上的橢圓曲線群以防止對手主動攻擊的方法,包括步驟選擇隨機(jī)曲線,計算曲線上的點數(shù),并且檢驗曲線上的點數(shù)是2η,其中η是素數(shù)且η-1滿足優(yōu)選的標(biāo)準(zhǔn)。仍然在另一方面,本發(fā)明提供了一種選擇用于靜態(tài)Diffie-Helma密鑰協(xié)議的定義在階數(shù)為q的素數(shù)域上的橢圓曲線群以防止對手主動攻擊的方法,包括步驟計算η = hr+1,其中,η是素數(shù)且η-1滿足優(yōu)選的標(biāo)準(zhǔn),并且執(zhí)行關(guān)于η的復(fù)數(shù)乘法方法,由此產(chǎn)生q 值和具有階數(shù)η的定義在q值上的橢圓曲線E。
在下列結(jié)合附圖的詳細(xì)說明中,本發(fā)明的特征將會變得更清楚,其中圖1是密碼系統(tǒng)的示意圖;圖2表示在一個mod ρ實施例中的步驟的流程圖;圖3表示在第一簡化橢圓曲線實施例中的步驟的流程圖;圖4表示在第二簡化橢圓曲線實施例中的步驟的流程圖。
具體實施例方式參考圖1,一對通信方A和B通過數(shù)據(jù)通信鏈路12連接。通信方A和B中的每一方具有密碼單元14,該密碼單元根據(jù)已建立的協(xié)議執(zhí)行公鑰密碼運算以確保鏈路1上通信的安全。密碼單元14在密碼域(cryptographic domain)內(nèi)運算,密碼域的參數(shù)由其他實體共享。由通信方A、B共享的域參數(shù)包括群G、群G的階數(shù)ρ和具有階數(shù)η的群的生成元 (generator) go本發(fā)明既應(yīng)用于橢圓曲線群也應(yīng)用于有限域(finite field)的乘法子群,通常公知的mod ρ群。因為mod ρ群更容易理解,首先解釋mod ρ實施例20并在圖2中通常地表示。因此,適用于兩種情況的本發(fā)明的幾個方面更容易理解。然而,因為在執(zhí)行性能上的多種優(yōu)勢,本發(fā)明的優(yōu)選實施例利用了橢圓曲線群。Mod ρ 實施例為了簡化表達(dá),我們假設(shè)在τ;中的Diffie-Helman基礎(chǔ)(base)或生成元g具有階數(shù)η,η為素數(shù)。對于本領(lǐng)域技術(shù)人員來說,延伸到g具有非素數(shù)階數(shù)的情況是顯然的。域名參數(shù)的安全性取決于n-1的整數(shù)因子u的大小。如果已知的因子u接近η1、 則上述攻擊10具有大約3nV3的成本。這與通常的DLP攻擊相比相當(dāng)小,DLP攻擊具有大約η"2的成本。隨機(jī)數(shù)η通常具有接近η"3的因子u是公知的,因此隨機(jī)地選擇η將不會避免攻擊10。在現(xiàn)有技術(shù)中,η通常選擇為哈希函數(shù)(hash function)的輸出,哈希函數(shù)使η 的隨機(jī)性更加有效,但不會避免攻擊。通過適當(dāng)?shù)剡x擇η,有可能避免具有接近η1/3的因子。 應(yīng)該理解,參數(shù)的選擇和測試?yán)糜嬎阊b置執(zhí)行,該計算裝置被編程以進(jìn)行必要的計算。該計算的結(jié)果是一組域參數(shù),所屬域參數(shù)可以用于在單元14上實現(xiàn)密碼函數(shù)。在第一實施例中,通過選擇η = hr+1避免該因子,其中r是素數(shù),h是與r相比相對小并且足夠小以至小于n1/3的整數(shù)。然后n-1的因子是具有f或fr形式(form),其中 f是h的因子。如果h遠(yuǎn)小于η1、則因子f也遠(yuǎn)小于ηιΛ,因為f至多為h。如果h遠(yuǎn)小于 n1/3,則r遠(yuǎn)大于n2/3,從而因子fr遠(yuǎn)大于η"3。因此n-1的所有因子將遠(yuǎn)小于或大于η"3。 因而避免了在靜態(tài)Diffie-Helman上的攻擊。已經(jīng)選擇了具有形式hr+Ι的n,還必需選擇P。群理論的標(biāo)準(zhǔn)定理是元素的階數(shù)除它的群的階數(shù)。因為g是Z/的元素,它的階數(shù)η必須除^;的階數(shù),^;的階數(shù)是p-1。因此,對于某個整數(shù)t,ρ = tn+1。因為群τ;具有用于求解DLP的指數(shù)微積分(index calculus)算法,通常的實踐是選擇比η大很多的P。該思想是使階數(shù)η的群<g>的一般DLP求解算法具有與Z/中的指數(shù)微積分算法近似的成本。例如,如果η是大約216°并且ρ是大約21°24,則這兩種DLP求解算法具有約等于28°次群運算的成本。另一種η的通常選擇是大約2 2 56,ρ的選擇是大約 23°72,其中兩種DLP求解算法花費大約21”次運算。選擇這樣一個小η的主要優(yōu)點是因為指數(shù)較小,在群<g>中求冪更快。為了獲得上述相關(guān)大小的ρ和n,只要選擇適當(dāng)大小的t。關(guān)于第一個實例,選擇t 大約是21°24-16° = 2864,而在第二個實例中t是大約22·。因為ρ和η是奇數(shù),需要選擇t為偶數(shù)。關(guān)于t mod 3、t mod 5的類似決策(observations)也可以這樣做出。一般的過程是首先選擇期望形式的n,然后嘗試多個t值,直到找到使ρ為素數(shù)的值。用于在小概率范圍內(nèi)確定P是素數(shù)的快速檢驗是存在的。這些檢驗迅速地排除不是素數(shù)的t的候選值。從而查找合適的t很快。實際上,從η開始是查找P的最佳公知方式。為了構(gòu)造具有形式hr+Ι的n,最初選擇一個h的近似大小或h的精確值,然后,通過期望的η的近似大小,確定r的近似大小。事實上,剛剛確定的范圍內(nèi)的各種h和r可以被選擇并一一檢查其適合性。一個所選擇的r值被檢驗是否是素數(shù),計算數(shù)值η = hr+1, 然后檢驗η是否為素數(shù)??梢允褂煤Y選(sieving)技術(shù)以選擇不具有小素因子例如2、3、5 的r和η。這減少了進(jìn)行素數(shù)檢驗的數(shù)值r和η的數(shù)量。利用h,對η和r可以一起進(jìn)行篩選,以便更高效。應(yīng)該注意,因為r和η都是素數(shù)并且因此是奇數(shù),所以h必須是偶數(shù)。在選擇數(shù)值h的近似大小或數(shù)值時,需要一定的注意。最小的選擇是h = 2。然而,盡管h = 2防止了上述攻擊,但這樣的選擇也可能太小了,而且還妨礙了應(yīng)用本技術(shù)時的可證明安全結(jié)果。存在可證明安全結(jié)果有效的同時防止上述攻擊的h的范圍。這個范圍取決于執(zhí)行標(biāo)量乘法所需的群運算的數(shù)量。h的最優(yōu)值似乎是(9/16) (log2n)2,但是在這個值的0. 5到2倍范圍內(nèi)的h值都可以采用。對于近似于該大小的h,對可接受的因子來說,靜態(tài) Diffie-Helman問題將會與查找靜態(tài)Diffie-Helman私鑰一樣困難。這個因子可以在h的全部選擇范圍內(nèi)優(yōu)化。而且,通過h的這一選擇,上述攻擊具有等效于n1/2群運算的成本。 這意味著該攻擊不比查找χ的一般DLP求解算法更好。因此在這種情況下,該攻擊是不相關(guān)的??偟膩碚f,首先選擇近似(9/16) (Iog2Ii)2的階數(shù)的偶數(shù)h,然后假如所選擇的η是素數(shù),則利用對r和η篩選和素數(shù)檢驗來搜索r和η。最后搜索t以得到ρ = tn+1為素數(shù)。這個方法的更進(jìn)一步的效率提高也是有可能的。在這個方法中,搜索η和t, 從而P具有使規(guī)約模(reduction m0dul0)p更有效的形式。例如,假如ρ具有低的漢明權(quán)重(Hamming weight),則規(guī)約模ρ更有效。這使得Z/的群運算模乘(modular multiplication)更有效。這個方法的更進(jìn)一步的安全性提高也是有可能的。r值能夠選擇為可檢驗的隨機(jī)數(shù)。r值能夠選擇為哈希函數(shù)的輸出。這兩種進(jìn)一步的提高可以合并,即通過選擇!·為可檢驗的隨機(jī)數(shù),然后搜索t值使 P具有更有效的模規(guī)約。如果不關(guān)注上述攻擊,因為這樣的對手對于特定協(xié)議的特定實施是不實際的,則可以不同地選擇Diffie-Helman群??赡軟]有必要避免大小接近n1/3的因子u,然而仍然希望靜態(tài)Di f f i e-He Iman問題和一般Di f f i e_He Iman問題是難的。為了使靜態(tài)Di f f i e_He Iman 問題難,只需要大小近似(9/16) (Iog2Ii)2的n-1的因子。在現(xiàn)有數(shù)論知識中,隨機(jī)數(shù)η是否會具有這種大小的因子是不清楚的。因此,可以選擇隨機(jī)數(shù)η并查找這樣的因子,或者構(gòu)造具有這樣大小的因子h的η。后者可以通過選擇h、選擇任意r (不必是素數(shù)),并檢測η = hr+1是否是素數(shù)來完成。為了確保臨時的、或兩面的(two-sided)Diffie-Helman問題是難的,可以利用現(xiàn)有的可證明安全結(jié)果。Maurer和Wolf的結(jié)果需要查找輔助群,通常是定義在大小為η的有限域上的橢圓曲線。輔助群要具有平滑的階數(shù)(沒有大的素因子)。搜索這樣的輔助群需要花費相當(dāng)大的努力,并且對于較大的η值可能無法達(dá)到。實際上,查找這樣的群幾乎和查找與η同樣大小的整數(shù)因子一樣困難。den Boer的以前的結(jié)果提到n_l是平滑的,(臨時)Diffie_Helman問題幾乎和 DLP 一樣難。因此,現(xiàn)有技術(shù)的進(jìn)一步加強(qiáng)包括一種選擇η = 1+s的方法,其中s是平滑整數(shù) (smooth integer)。這個s可以作為小素數(shù)的乘積找到,從而獲得正確的大小。然后檢驗η 是否為素數(shù)??梢栽囼灦鄠€s值。在這種方式下選擇η的好處在于,通常意味著n-1具有大小足夠接近(9/16) (Iog2Ii)2的因子,確保靜態(tài)Diffie-Helman問題是難的,而不僅是臨時 Diffie-Helman 問題。利用這樣的n,素數(shù)ρ = tn+Ι可以如上那樣找到。而且,也可能利用這種方法尋找特定結(jié)構(gòu)(例如低漢明權(quán)重)的η和ρ。橢圓曲線實施例原則上,上面描述的技術(shù)也用于橢圓曲線群的情況。更準(zhǔn)確地,η的理想標(biāo)準(zhǔn)是同一的。然而,在這種情況下,階數(shù)為η的生成元g不是Z/的元素,而是橢圓曲線群E的元素。在mod ρ的情況下,一旦確定了 n,就相對直接地找到群Ζ/。對于橢圓曲線不能這么說。對于一個確定的η,查找一個橢圓曲線群E仍然非常困難。因為橢圓曲線使用戶運算比群Z/更有效,橢圓曲線的情況是本發(fā)明的優(yōu)選實施例。這個實施例的方法比Z/情況略微復(fù)雜,但是值得的。為了使表達(dá)更清楚,介紹并在圖3和圖4中示出了橢圓曲線實施例中該方法的某些簡化形式。在第一簡化形式30中,橢圓曲線定義在二元域(binary field)上。對于這些曲線,確定橢圓曲線群的階數(shù)非常容易。簡化方法是選擇隨機(jī)曲線,計算點數(shù),檢驗點數(shù)是2η, 其中η是素數(shù),并且η-1滿足理想的標(biāo)準(zhǔn)。優(yōu)選的標(biāo)準(zhǔn)是n-1 = hr,其中r是素數(shù)并且h近似為(9/16)(log2n)2。替代的標(biāo)準(zhǔn)是n-1是平滑的,假設(shè)不關(guān)心上述攻擊。在第二簡化形式中,橢圓曲線定義在階數(shù)為q的素數(shù)域上。q值在確定η值之后確定。η值的選擇與上所述mod ρ群的情況一樣。η值可以滿足優(yōu)選的標(biāo)準(zhǔn)或替代的標(biāo)準(zhǔn)。 然后,使用如ANSIx9. 62或IEEE 13. 63中闡述的復(fù)數(shù)乘法方法來查找q的值和定義在q上的、具有階數(shù)η的橢圓曲線E。通常,復(fù)數(shù)乘法方法包括首先選擇q,因為特定的q值為用戶提供更好的效率。然而,如果首先選擇n,復(fù)數(shù)乘法方法也能實施。一旦在復(fù)數(shù)乘法方法的第一階段發(fā)現(xiàn)q和η 具有正確的數(shù)論關(guān)系,第二階段確定定義橢圓曲線E的系數(shù)。第二簡化方法的缺點是作為結(jié)果的q在η的哈斯區(qū)間(Hasse interval)中具有或多或少的隨機(jī)數(shù)的形式,所述哈斯區(qū)間是距離η大約η"2范圍之內(nèi)的所有整數(shù)。出于更好的用戶效率的原因,q的特定形式是更理想的,例如在二元展開中的低漢明權(quán)重。換句話說,對于q和η都具有特定的形式是理想的。q的形式是為了效率,而η的形式是為了安全性。為此,對復(fù)數(shù)乘法方法的第一階段略微修改。嘗試期望的特定形式的 q和η,然后檢驗這對值以便看它們是否滿足復(fù)數(shù)乘法(CM)方法要求的條件。這個條件相對容易直接檢驗。一旦給定q,則求解滿足該條件的η不容易,反之亦然。復(fù)數(shù)乘法的第一階段的修改是嘗試多個具有期望的形式的q和η的不同對,檢驗 q和η的CM方法條件,重復(fù)直至CM條件滿足,然后利用CM方法的通常過程查找橢圓曲線E 的定義系數(shù)a和b。CM方法是公知的方法,但是它的修改形式不是公知的。利用如本發(fā)明優(yōu)選實施例描述的CM方法的修改形式,能夠找到非常有效并非常安全的Diffie-Helman橢圓曲線群。以一個實例解釋這個方法的生命力。利用替代的標(biāo)準(zhǔn),即n-1是平滑的,發(fā)明人已經(jīng)發(fā)現(xiàn)數(shù)值對η = 1+55 ( 2286)和q = 9+55 (2288)都是素數(shù)。CM方法的領(lǐng)域內(nèi)的技術(shù)人員應(yīng)該理解,這個數(shù)值對的判別式是55。這個判別式在kronecker類數(shù)(kronecker class number)大于一的意義上是非平凡的,所以橢圓曲線的自同態(tài)環(huán)(endomorphism ring)不是唯一的因數(shù)分解域。特別地,這意味著不能從預(yù)定表中找到橢圓曲線E的系數(shù)a和b并且必須通過求解階數(shù)為q的有限域上的適度大階數(shù)的多項式方程來計算。如上所述,該技術(shù)可以用于產(chǎn)生具有理想特征的域參數(shù)。產(chǎn)生這些特征的方式還有助于檢驗由第三方提供的域參數(shù)的效力以確保它們不易受到攻擊??梢詸z驗參數(shù)以確保 P和η的值滿足要求的形式。假如它們不滿足標(biāo)準(zhǔn),則可以拒絕域參數(shù)。盡管本發(fā)明結(jié)合特定實施例描述,不背離由所附權(quán)利要求書界定的本發(fā)明精神和范圍的各種修改對于本領(lǐng)域技術(shù)人員是顯而易見的。上面所有引用的參考文件的整個內(nèi)容作為引用結(jié)合于此。
權(quán)利要求
1.一種建立有限域4的階數(shù)Ρ以及所述有限域4的乘法子群τ;的階數(shù)η的方法,所述方法由公鑰密碼系統(tǒng)中的通信方設(shè)備執(zhí)行,所述通信方設(shè)備具有用于執(zhí)行密碼操作的密碼單元,所述方法包括步驟i)密碼單元獲得η和h的期望值,其中η是素數(shù),h是整數(shù),并且n-1的所有因子都遠(yuǎn)小于或遠(yuǎn)大于n1/3;ii)密碼單元檢查η是否為素數(shù);iii)密碼單元計算滿足η= hr+1的r,其中r是素數(shù)并且r遠(yuǎn)大于η2Λ ;iv)密碼單元獲得偶數(shù)t并且計算tn+Ι,以產(chǎn)生計算值; ν)密碼單元檢驗計算值是否為素數(shù);以及vi)如果所述計算值為素數(shù),密碼單元使用計算值作為有限域的素階數(shù)P,并且密碼單元使用值η作為乘法子群的階數(shù)η。
2.一種建立有限域的階數(shù)ρ以及所述有限域&的乘法子群τ;的階數(shù)η的方法,所述方法由公鑰密碼系統(tǒng)中的通信方設(shè)備執(zhí)行,所述通信方設(shè)備具有用于執(zhí)行密碼操作的密碼單元,所述方法包括步驟i)密碼單元獲得具有形式η = hr+1的η的值,其中h是整數(shù)并且h小于2(9/16) (Iog2Ii)2,r是素數(shù)并且r遠(yuǎn)大于η2Λ,并且η_1的所有因子都遠(yuǎn)小于或遠(yuǎn)大于η"3 ; )密碼單元獲得偶數(shù)t并且計算tn+Ι,以產(chǎn)生計算值;iii)密碼單元檢驗計算值是否為素數(shù);以及iv)如果所述計算值為素數(shù),密碼單元使用計算值作為有限域的素階數(shù)p,并且密碼單元使用值η作為乘法子群的階數(shù)η。
3.根據(jù)權(quán)利要求2所述的方法,其中,h大于0.5(9/16) (log2n)20
4.一種公鑰密碼系統(tǒng)中的通信方設(shè)備,所述通信方設(shè)備用于確定有限域&的階數(shù)ρ以及所述有限域的乘法子群τ;的階數(shù)η,所述通信方設(shè)備具有密碼單元,所述密碼單元包括用于獲得η和h的期望值的裝置,其中η是素數(shù),h是整數(shù),并且n-1的所有因子都遠(yuǎn)小于或遠(yuǎn)大于n1/3 ;用于檢查η是否為素數(shù)的裝置;用于計算滿足η = hr+1的r的裝置,其中r是素數(shù)并且r遠(yuǎn)大于η2Λ ; 用于獲得偶數(shù)t并且計算tn+Ι以產(chǎn)生計算值的裝置; 用于檢驗所述計算值是否為素數(shù)的裝置;以及用于如果所述計算值為素數(shù)則使用所述計算值作為有限域的素階數(shù)P、并且使用值η 作為乘法子群的階數(shù)η的裝置。
5.一種公鑰密碼系統(tǒng)中的通信方設(shè)備,所述通信方設(shè)備用于確定有限域&的階數(shù)ρ以及所述有限域的乘法子群τ;的階數(shù)η,所述通信方設(shè)備具有密碼單元,所述密碼單元包括用于獲得具有形式η = hr+1的η的值的裝置,其中h是整數(shù)并且h小于2(9/16) (Iog2Ii)2,r是素數(shù)并且r遠(yuǎn)大于η2Λ,并且η_1的所有因子都遠(yuǎn)小于或遠(yuǎn)大于η"3 ; 用于獲得偶數(shù)t并且計算tn+Ι以產(chǎn)生計算值的裝置; 用于檢驗所述計算值是否為素數(shù)的裝置;以及用于如果所述計算值為素數(shù)則使用所述計算值作為有限域的素階數(shù)P、并且使用值η 作為乘法子群的階數(shù)η的裝置。
6.根據(jù)權(quán)利要求5所述的通信方設(shè)備,其中,h大于0.5(9/16)(Iog2Ii)2。
7.一種建立橢圓曲線群的子群的階數(shù)的方法,所述方法由公鑰密碼系統(tǒng)中的通信方設(shè)備執(zhí)行,所述通信方設(shè)備具有用于執(zhí)行密碼運算的密碼單元,所述方法包括步驟a)密碼單元獲得具有形式η= hr+1的η的值,其中η是素數(shù),h是整數(shù),r是素數(shù),r遠(yuǎn)大于η2Λ,并且η-1的所有因子都遠(yuǎn)小于或遠(yuǎn)大于η1/3 ;以及b)密碼單元使用值η作為橢圓曲線群的子群的階數(shù)。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述步驟(a)包括 i)密碼單元產(chǎn)生隨機(jī)橢圓曲線群; )密碼單元檢測所述橢圓曲線群的階數(shù)的素因子能否表示為η = hr+1 ;以及 iii)如果素因子η能夠表示為η = hr+1,則使用所述隨機(jī)橢圓曲線群作為所述橢圓曲線群。
9.根據(jù)權(quán)利要求7所述的方法,還包括如下步驟密碼單元在復(fù)數(shù)乘法算法中使用值 η,建立用于定義所述橢圓曲線群的等式的系數(shù)。
10.根據(jù)權(quán)利要求9所述的方法,還包括如下步驟密碼單元產(chǎn)生在其上定義所述橢圓曲線群的素數(shù)域的次數(shù)q,并且在復(fù)數(shù)乘法算法中使用階數(shù)q和值η來建立用于定義所述橢圓曲線群的等式的系數(shù)。
11.根據(jù)權(quán)利要求10所述的方法,其中,密碼單元指定階數(shù)q的形式。
12.根據(jù)權(quán)利要求7所述的方法,其中,使用篩選技術(shù)來選擇r和n,以排除具有從至少包括2、3和5的組中選擇的一個或更多個素因子的r和η的值。
13.根據(jù)權(quán)利要求7所述的方法,其中,步驟a)包括密碼單元首先獲得η和h的期望值,然后計算滿足n = hr+Ι的r。
14.一種建立橢圓曲線群的子群的階數(shù)的方法,所述方法由公鑰密碼系統(tǒng)中的通信方設(shè)備執(zhí)行,所述通信方設(shè)備具有用于執(zhí)行密碼操作的密碼單元,所述方法包括步驟a)密碼單元獲得具有形式η= hr+1的η的值,其中h是整數(shù),h小于2 (9/16) (log2n)2, r是素數(shù),r遠(yuǎn)大于η2、并且η-1的所有因子都遠(yuǎn)小于或遠(yuǎn)大于ηιΛ ;以及b)密碼單元使用值η作為橢圓曲線群的子群的階數(shù)。
15.根據(jù)權(quán)利要求14所述的方法,其中,h大于0.5(9/16) (log2n)20
16.一種公鑰密碼系統(tǒng)中的通信方設(shè)備,所述通信方設(shè)備用于建立橢圓曲線群的子群的階數(shù),所述通信方設(shè)備具有密碼單元,所述密碼單元包括用于獲得具有形式η = hr+1的η的值的裝置,其中η是素數(shù),h是整數(shù),r是素數(shù),r遠(yuǎn)大于η2Λ,并且η-1的所有因子都遠(yuǎn)小于或遠(yuǎn)大于η1/3 ;以及用于使用值η作為橢圓曲線群的子群的階數(shù)的裝置。
17.根據(jù)權(quán)利要求16所述的通信方設(shè)備,其中,密碼單元還被配置用于 產(chǎn)生隨機(jī)橢圓曲線群;檢測所述橢圓曲線群的階數(shù)的素因子能否表示為η = hr+1 ;以及如果素因子η能夠表示為η = hr+1,則使用所述隨機(jī)橢圓曲線群作為所述橢圓曲線群。
18.根據(jù)權(quán)利要求16所述的通信方設(shè)備,其中,密碼單元還被配置用于在復(fù)數(shù)乘法算法中使用值η來建立用于定義所述橢圓曲線群的等式的系數(shù)。
19.根據(jù)權(quán)利要求18所述的通信方設(shè)備,其中,密碼單元被配置用于產(chǎn)生在其上定義所述橢圓曲線群的素數(shù)域的階數(shù)q,并且在復(fù)數(shù)乘法算法中使用階數(shù)q和值η來建立用于定義所述橢圓曲線群的等式的系數(shù)。
20.根據(jù)權(quán)利要求19所述的通信方設(shè)備,其中,密碼單元指定階數(shù)q的形式。
21.根據(jù)權(quán)利要求16所述的通信方設(shè)備,其中,密碼單元使用篩選技術(shù)來選擇r和n, 以排除具有從至少包括2、3和5的組中選擇的一個或更多個素因子的r和η的值。
22.根據(jù)權(quán)利要求16所述的通信方設(shè)備,其中,密碼單元被配置用于首先獲得η和h的期望值,然后計算滿足η = hr+1的r。
23.—種公鑰密碼系統(tǒng)中的通信方設(shè)備,所述通信方設(shè)備用于建立橢圓曲線群的子群的階數(shù),所述通信方設(shè)備具有密碼單元,所述密碼單元包括用于獲得具有形式η = hr+1的η值的裝置,其中h是整數(shù),h小于2 (9/16) (log2n)2, r 是素數(shù),r遠(yuǎn)大于η2Λ,并且η-1的所有因子都遠(yuǎn)小于或遠(yuǎn)大于r^3 ;以及用于使用值η作為橢圓曲線群的子群的階數(shù)的裝置。
24.根據(jù)權(quán)利要求23所述的通信方設(shè)備,其中,h大于0.5(9/16) (log2n)2。
全文摘要
本發(fā)明公開了選擇用于靜態(tài)Diffie-Helman密鑰協(xié)議的群以防止對手主動攻擊的方法,在mod p群中,選擇近似(9/16)(log2n)2的偶數(shù)h值,用篩選和素數(shù)檢驗確定r和n值,并且搜索t值以計算p=tn+1,其中p是素數(shù)。在定義在二元域上的橢圓曲線群中,選擇隨機(jī)曲線,計算曲線上的點數(shù),并且檢驗曲線上的點數(shù)是2n,其中n是素數(shù)且n-1滿足優(yōu)選的標(biāo)準(zhǔn)。在定義在q次的素數(shù)域上的橢圓曲線群中,計算n=hr+1,其中,n是素數(shù)且n-1滿足優(yōu)選的標(biāo)準(zhǔn),并且執(zhí)行關(guān)于n的復(fù)數(shù)乘法方法,由此產(chǎn)生值q和具有階數(shù)n的定義在q上的橢圓曲線E。
文檔編號G06F7/72GK102170351SQ20111007876
公開日2011年8月31日 申請日期2005年11月11日 優(yōu)先權(quán)日2004年11月11日
發(fā)明者丹尼爾·R·L·布朗, 斯科特·A·萬斯通, 羅伯特·P·加朗特 申請人:塞爾蒂卡姆公司