專利名稱:呼號的制作方法
相關(guān)申請的交叉引用本申請與待批美國專利申請“Methods and Systems for AuthenticatingMessages”有關(guān),后者于2003年3月27日提交,序列號為10/401,241。
背景技術(shù):
密鑰和密碼標(biāo)識(“ID”)在要求用戶驗證的許多應(yīng)用中起到至關(guān)重要的作用,所述應(yīng)用比如計算機系統(tǒng)等等。在一示例性的點對點計算機系統(tǒng)中,用戶標(biāo)識(“ID”)可能被用作對系統(tǒng)管理員的驗證程序,當(dāng)用戶電子地提出ID時(比如電子郵件)授權(quán)其訪問一網(wǎng)絡(luò)?;蛘?,ID可由語音或通過寫操作來發(fā)送。
過去,ID使用名片手動地提出或者口頭提出。ID一般是不容易記住的二進制數(shù)的一個長流。ID可以用加密過程來保密。然而,受保護的ID一般較長,而且也很難容易地分發(fā)。因此,用戶在用加密來保護ID時還放棄了使用的方便性。
發(fā)明內(nèi)容
以下示出本發(fā)明的簡化概述,以便使讀者能基本理解本發(fā)明。該概述不是本發(fā)明的廣泛綜述,它未標(biāo)識出本發(fā)明的關(guān)鍵元件、或者描繪出本發(fā)明的范圍。它僅有的目的是以簡化形式給出這里所公開的一些概念,以便作為下面給出的更詳細描述的先導(dǎo)。
本發(fā)明向計算機網(wǎng)絡(luò)提供了一種相對較短的“呼號”來標(biāo)識用戶。網(wǎng)絡(luò)可以是點對點網(wǎng)絡(luò),其中網(wǎng)絡(luò)中的單獨計算機相比在其它網(wǎng)絡(luò)中對于安全性有更多的責(zé)任。呼號包括與給出呼號以便準(zhǔn)入網(wǎng)絡(luò)的人的信息。所述呼號很短并且容易記住,而常規(guī)的ID一般較長且難以記住。呼號也包括一“經(jīng)驗”值,該值被預(yù)先計算以便對自身進行散列法,并且包括個人信息以便輸出容易被轉(zhuǎn)換成包括字母和數(shù)字的呼號的固定長度結(jié)果??梢园ǔ齻€人信息以外的其它信息來根據(jù)應(yīng)用程序進行散列法。
本領(lǐng)域的技術(shù)人員會理解希望擁有一個用密碼保密的較短的容易記住的ID。這類呼號會需要足夠短,以便在提供充分安全性的同時能記住,從而能夠改進點對點或其它網(wǎng)絡(luò)的可用性。
通過結(jié)合附圖參照以下詳細描述,能夠更好地理解本發(fā)明的許多伴隨特征。
以下討論可以參照各個附圖最好地理解,下面綜述了各附圖,形成本說明書的一部分。
圖1是為允許訪問點對點計算機網(wǎng)絡(luò)而使用的典型安全用戶標(biāo)識的說明;圖2是由一種生成呼號的方法的第一實施例所產(chǎn)生的縮短的呼號標(biāo)識符的表示;I.具有明確數(shù)目的零值的呼號以及一種生成呼號的方法的第一實施例圖3說明了呼號的變換;圖4是說明確定呼號的過程的流程圖;圖5是表示呼號對于從L比特形成的各個呼號以及對于為T秒計算的突出經(jīng)驗值的脆弱性的表格;圖6是說明比特長度L為45比特的沖突頻率相對于群體大小的表格;II.具有驗證程序所要求數(shù)目的零值的呼號以及一種生成呼號的方法的第二實施例圖7說明了按照第二實施例的呼號的形成;III.呼號到ASCII變化的字母數(shù)字編碼圖8和圖9說明了呼號的字母數(shù)字編碼;以及IV.應(yīng)用于點對點名稱解析協(xié)議的呼號的第三實施例圖10是用于生成在呼號第三實施例中所使用的呼號的過程的流程圖。
具體實施例方式
下面結(jié)合附圖提供的詳細描述是本發(fā)明當(dāng)前實施例的描述,而不表示其中能構(gòu)造或使用本發(fā)明的僅有形式。以下描述提出了本發(fā)明的功能以及用于結(jié)合所述實施例構(gòu)成和運作本發(fā)明的步驟序列。然而,相同或等效的功能和序列可由不同實施例實現(xiàn),所述不同實施例也包含在本發(fā)明的精神和范圍內(nèi)。
盡管這里把本發(fā)明描述和示出為在點對點計算機網(wǎng)絡(luò)系統(tǒng)中實現(xiàn),然而所述的系統(tǒng)僅僅是一個例子而非限制。本領(lǐng)域的技術(shù)人員會理解,本發(fā)明適合應(yīng)用于多種不同類型的計算機系統(tǒng)中。
圖1是為允許訪問示例性的點對點或等效網(wǎng)絡(luò)而使用的典型安全用戶標(biāo)識的說明。點對點計算機網(wǎng)絡(luò)是可以無需服務(wù)器計算機而運作的計算機網(wǎng)絡(luò),其中安全性即是對網(wǎng)絡(luò)中每個對等計算機的責(zé)任。如圖所示,用于標(biāo)識和驗證用戶訪問的標(biāo)識101一般很長。這一二進制數(shù)一般有160個二進制數(shù)位長102,該長度等于40位十六進制數(shù)。標(biāo)識101的另一例是一PNRP名稱,該PNRP名稱包括兩個分量由40個十六進制數(shù)位表示的數(shù)字、以及任意長度的字符串。這一標(biāo)識不容易被傳送,除了由機器傳送。
許多計算機網(wǎng)絡(luò)可能要求生成一般用在“點對點”名稱解析過程中的對等名稱。如目前所實現(xiàn)的,點對點名稱解析協(xié)議(PNRP)一般被約束為或使用能由用戶容易地處理的短對等名稱(不會提供足夠的安全性);或使用包括不能由用戶容易處理的長二進制串的長對等名稱(一般提供了較高級別的安全性)。本領(lǐng)域的技術(shù)人員會認識到,縮短的標(biāo)識符可應(yīng)用于任一類型的計算機網(wǎng)絡(luò)、或者期望安全且縮短的標(biāo)識工具的系統(tǒng)。
長對等名稱一般通過應(yīng)用加密過程來保密。然而,這種長名稱一般不能由用戶容易地處理。長名稱一般難以記住和輸入以便訪問計算機網(wǎng)絡(luò)。簡言之,本領(lǐng)域的目前狀態(tài)一般迫使用戶在容易使用和安全性之間作出選擇。因此期望提供一種方式,能夠以安全的方式、用短的容易記住的標(biāo)識符來標(biāo)識點對點網(wǎng)絡(luò)中的計算機。
I.具有明確數(shù)目的零值的呼號以及一種生成呼號的方法的第一實施例圖2是由一種生成呼號的方法的第一實施例所產(chǎn)生的縮短的呼號標(biāo)識符202的表示。特別是,該實施例在呼號中使用了一“零值數(shù)目字段”。為這里所述的點對點標(biāo)識(“呼號”)使用生成安全呼號的系統(tǒng)和方法產(chǎn)生了容易記住的安全碼或呼號202,所述安全碼或呼號202可用于在點對點網(wǎng)絡(luò)(“P2P”)以及本領(lǐng)域技術(shù)人員已知的其它等效網(wǎng)絡(luò)應(yīng)用中進行標(biāo)識。特別是,在構(gòu)造呼號時使用的特定信息以及所應(yīng)用的密碼功能能在不同的應(yīng)用中使用呼號。例如,呼號以及生成呼號的方法的一個實施例可以應(yīng)用于點對點名稱解析協(xié)議(PNRP)。
產(chǎn)生一般用于點對點標(biāo)識的呼號的方法解決了在安全傳送用戶標(biāo)識時的困難。安全性通過使用安全過程來構(gòu)造可被容易記住并由用戶輸入的短呼號來實現(xiàn)。這種呼號一般得到加密過程的強有力的保護。例如,用于點對點標(biāo)識的呼號,比如“ZA4-3Y-4W-ZF4”202是短的且安全的。與記住社會保障號碼相比,這一呼號可以略微難記。
所示的示例性呼號202包括十個字母數(shù)字字符。本領(lǐng)域的技術(shù)人員會認識到,可以產(chǎn)生具有較多或較少字符的呼號。十個呼號字符的每一個都表示5個二進制比特203。各個分段是已被打斷成5比特分段的較長二進制數(shù)的各部份。本領(lǐng)域的技術(shù)人員會認識到,字母數(shù)字字符可以用在等效的實施例中來表示或多于或少于5比特長度的二進制數(shù)。
從該例中可見,呼號數(shù)位中的第一位是字母“Z”。該例中,第一位已被定義為表示用于對呼號進行解碼的零值數(shù)目。這里字母Z已被定義為表示十進制數(shù)31,即5比特二進制數(shù)11111。本領(lǐng)域的技術(shù)人員會認識到,在本發(fā)明的等效實施例中,標(biāo)識零值數(shù)目的數(shù)位位置、以及呼號中的零值數(shù)目可能發(fā)生變化。類似地,在該例中可以代替“Z”而選擇任一比特模式或字符。
該呼號的其余九個字母數(shù)字字符表示了其余的二進制數(shù)。這些數(shù)位被指定為(“L”)。該例中,L的長度為45比特。二進制數(shù)L是從用于對用戶標(biāo)識加密的加密過程的結(jié)果推斷出來的。在2到10位置上的其余L個比特被打斷成5比特分段,所述5比特分段被映射到九個其余的字母數(shù)字字符。本領(lǐng)域的技術(shù)人員會認識到,二進制數(shù)到字母數(shù)字字符的映射可以通過表格查找、公式或本領(lǐng)域技術(shù)人員已知的等效方法來完成。本領(lǐng)域的技術(shù)人員還會認識到,在等效的實施例中,十個字符的排序可以不同。
在對來自呼號的零值數(shù)目以及數(shù)L解碼之后,對二進制數(shù)位執(zhí)行加密過程以便重新創(chuàng)建用戶的標(biāo)識。一旦已經(jīng)建立了用戶標(biāo)識,就向持有呼號的人許可訪問網(wǎng)絡(luò)以及其它特權(quán)。
從突出的限定符生成第一實施例的呼號假定要命名的實體擁有常規(guī)生成的公鑰/私鑰對K/P、以及個性化信息串或數(shù)字標(biāo)識X。個性化信息串可由要被命名的實體的自然屬性組成。例如,個性化信息串可以包括常用名、公司名、城市和電子郵件地址的組合等等。常規(guī)構(gòu)造的公鑰K可由一二進制串表示,個性化信息串可由一文本串表示。
圖3說明了呼號的形成。呼號生成過程的第一步是查找一“突出的”“經(jīng)驗(salt)”值S,使得當(dāng)S通過一加密單向函數(shù)(“H(x)”)與K 310和X 309一起被散列307時,結(jié)果是一“突出的”散列值(“H”)301,該值以大量的零值開始。在生成呼號的后續(xù)步驟中需要一定數(shù)量的零值。在查找突出的經(jīng)驗值時,可能在一特定的時間間隔上嘗試許多值,并且保留產(chǎn)生期望數(shù)量的零值的突出經(jīng)驗值。當(dāng)用戶給出呼號用于驗證時,突出經(jīng)驗值使呼號能通過一驗證過程。
本領(lǐng)域的技術(shù)人員會理解,可以代替先導(dǎo)的零值而使用任一特定的比特模式。例如,進一步的替代實施例可以使用先導(dǎo)的1、或最小數(shù)目的“0110”組等等。在生成呼號時尋找的是呼號中與預(yù)定模式相匹配的部分,而組成呼號的其余比特不具有能組成呼號的其余數(shù)位的模式?;蛘撸梢詮亩魏瘮?shù)而非用于產(chǎn)生突出散列值的散列函數(shù)獲得預(yù)定的模式。
散列是通常用在加密過程中的過程,該過程通過向任意數(shù)量的數(shù)據(jù)應(yīng)用稱為散列算法的數(shù)學(xué)函數(shù),從而產(chǎn)生固定大小的結(jié)果。在所述實施例中使用的散列函數(shù)是本領(lǐng)域技術(shù)人員公知的類型。典型的散列算法包括MD2、MD4、MD5和SHA-1。
所述實施例中使用的散列函數(shù)可以表征為單向加密散列函數(shù)。本領(lǐng)域的技術(shù)人員會理解,單向散列函數(shù)一般有幾種獨特屬性它便于從任意長度的消息輸入中計算固定長度的散列值或結(jié)果;給定固定長度的散列值,就難以計算任意長度的消息;以及給定任意長度的消息輸入,就難以查找會產(chǎn)生相同固定長度散列值的另一消息。
從突出經(jīng)驗值以及其它串產(chǎn)生的突出散列H 301、在散列所產(chǎn)生的數(shù)的MSB側(cè)以大量的零值(或者其它等效的預(yù)定義比特模式)開始。本領(lǐng)域的技術(shù)人員會理解,在替代的等效實施例中,零值(或其它等效的預(yù)定義比特模式)可以位于LSB數(shù)位或其它位置上,或者所述散列或另一函數(shù)的其它特征會被用作一指示符。突出的經(jīng)驗值和最終的突出散列通過用不同經(jīng)驗值估計的單向散列函數(shù)的迭代而得到。導(dǎo)致具有最大數(shù)量先導(dǎo)零值的散列的經(jīng)驗值被保留作為突出的散列。重復(fù)試驗直到逝去了一定時間量T為止。本領(lǐng)域的技術(shù)人員會理解,本發(fā)明的實施例試圖在攻擊者會花T的倍數(shù)來查找相同數(shù)量的零值并匹配40或45個比特的假設(shè)下,找到某一固定時間“T”的零值。用于查找突出經(jīng)驗值的搜索過程的一個實施例可以如下寫出初始化找到的零值數(shù)目Z=0對于時間T,做選擇一個新的經(jīng)驗值V計算HV=單向散列(K,X,V)計算Y、HV中先導(dǎo)零值的數(shù)目如果(Y>Z)
則S=V,H=HV,Z=Y(jié)在指定時間T的結(jié)尾處,找到突出的經(jīng)驗值S和突出的H。
突出的散列H通過一加密的強有力的單向函數(shù)被定義為K、X和S的散列。
突出散列=H=H(K,X,S)從二進制數(shù)的突出散列H創(chuàng)建一邏輯的呼號。突出散列301具有預(yù)定數(shù)目的比特(“M”)。M包括突出散列的先導(dǎo)零值(“Z”)302、以及突出散列值H中緊跟著最后一個先導(dǎo)零值(即先導(dǎo)零值的LSB)的預(yù)先選擇的比特數(shù)(“L”)303。
一旦確定了零值數(shù)目,下一步就是確定在呼號的內(nèi)容中要包括從突出散列H剩余的多少個比特L。參數(shù)T(用來查找突出經(jīng)驗值)和L是考慮到安全性和比例縮放問題而選擇。上述過程有兩個參數(shù)試驗在此期間運行的時間T以及所選比特的數(shù)目L。這些參數(shù)通過考慮到到預(yù)定條目數(shù)目的比例縮放、使攻擊者的欺騙攻擊變得困難、以及對呼號的將來防御而確定,使得它在將來保持安全。將來防御一般使考慮到摩爾定律的試驗,使得當(dāng)計算機的速度提高時,呼號的不可鍛性保持有效。選擇這些參數(shù)時的一個額外考慮因素是抵抗來自攻擊者的“編目”攻擊。
第一實施例中零值數(shù)目的編碼一旦找到零值數(shù)目,也必須找到一種將它們的數(shù)字編碼為呼號的方式。為了生成具有足夠安全性的短呼號,把總比特數(shù)保持足夠小,使得它們可以在短的數(shù)字或字母數(shù)字串內(nèi)被編碼。要被編碼的比特總數(shù)是數(shù)目L和對零值數(shù)目進行編碼所必要的比特數(shù)Z之和。一般來說,數(shù)字Z會低于128,并且可以用7比特來編碼。
在替代的實施例中,可能用4比特對空八位組的數(shù)目編碼,或者用5比特對空“4比特半位元組”的數(shù)目進行編碼,而不是對空比特的實際數(shù)目編碼。用于查找足夠數(shù)量的半位元組的經(jīng)修改過程是初始化找到的零值數(shù)目Z=0對于時間T,做選擇一個新的經(jīng)驗值V計算HV=單向散列(K,X,V)計算Y、HV中先導(dǎo)半位元組的數(shù)目如果(Y>Z)則S=V,H=HV,Z=Y(jié)
例如,24個先導(dǎo)零值通常在具有1GHz CPU的常規(guī)PC上在一分鐘之內(nèi)這樣獲得。
如下所示,數(shù)L很少會低于40比特,數(shù)L是在先導(dǎo)零值后面會組成呼號的比特組。先導(dǎo)零值數(shù)目Z的實際范圍會在24和88之間。24和87之間的值可以用一公式來編碼Z=24+R該公式中,R是在0和63之間變化的數(shù)??梢缘刃У厥褂靡韵鹿絑=24+2*RP是在0和31之間的數(shù),P對零值對的數(shù)目進行編碼。0和31之間的數(shù)是非常實際的,因為它可以作為單個字母數(shù)字字符被編碼。用于查找可以在單個字母數(shù)字字符內(nèi)被編碼的足夠數(shù)量的零值的已修改過程是初始化找到的零值對數(shù)目Z=0重復(fù)選擇一個新的經(jīng)驗值V計算HV=單向散列(K,X,V)計算Y、HV中先導(dǎo)零值對的數(shù)目如果(Y>Z)則S=V,H=HV,P=Z直到Z大于24且逝去了時間T為止設(shè)Z=Z-12接下來的折衷是值L和時間T的選擇。下面討論它們的選擇。
通過使用邏輯呼號的數(shù)字或字母數(shù)字編碼來得到適用于偶然交換的呼號,所述編碼包括零值數(shù)目Z的編碼以及L個所選比特的編碼。組成呼號的Z加L個比特304可以被打斷成5比特的分段。每個5比特分段都由一字母數(shù)字字符表示。然后把字母數(shù)字字符匯編成呼號305。最終,可以加入一個或多個分隔符來形成最終的呼號306。也可以采納像刪除先導(dǎo)的“Q”這樣的呼號縮短慣例。
圖4是說明確定呼號的過程的流程圖。在步驟401,配置一突出限定符。在步驟402,找到突出的經(jīng)驗值。在步驟403,對突出經(jīng)驗值(S)、個性化信息串(X)和公鑰(K)進行散列法,以形成M個比特。在步驟404,從散列中找到先導(dǎo)零值的數(shù)目。在步驟405,從散列中取得先導(dǎo)零值的數(shù)目(Z)。在步驟406,從散列中取得比特數(shù)目(L)并包括在呼號中。最后在步驟407,通過找到Z和L比特的字母數(shù)字表示來形成呼號。
呼號驗證過程當(dāng)?shù)谌浇邮盏揭缓籼枙r,他們通過要求呼號的聲明持有者來給出公鑰K、個性化信息串X和突出經(jīng)驗值S的值,從而驗證呼號、公鑰和個性化信息串之間的關(guān)聯(lián)。第三方會使用一驗證程序從K、X和S中計算出突出散列。他們接著會驗證先導(dǎo)零值的數(shù)目與呼號中表示的值Z相匹配、驗證值Z不小于預(yù)定的最小值、并且驗證呼號中編碼的L比特與散列值中的相應(yīng)比特相匹配。作為附加的預(yù)防措施,驗證程序會“在視覺上”檢驗個性化信息串X對應(yīng)于所預(yù)期的自然值。
如上所述,以安全和比例縮放的考慮因素而選擇參數(shù)T和L。上述過程有兩個參數(shù)試驗在此期間運行的時間T、以及所選比特的數(shù)目L。這些參數(shù)根據(jù)以下需求來確定比例縮放到預(yù)定條目數(shù)目的需求、不容易欺騙的需求、以及將來防御的需求,即抵抗摩爾定律。另外的考慮因素是抵抗“編目”攻擊。
考慮可能的欺騙攻擊時選擇L和T任何把公鑰和短簽名鏈接的過程都需要考慮到欺騙攻擊,在所述欺騙攻擊中攻擊者找到得到相同簽名的另一公鑰。
通常的防御措施是依靠生成公鑰的困難性。如果簽名是公鑰和某一固定文本的散列,且如果簽名的長度為L比特,攻擊者就會需要在找到匹配前生成2^L個公鑰。本領(lǐng)域的技術(shù)人員會理解,生成公鑰包括找到兩個長的質(zhì)數(shù),這是一個非常昂貴的操作。然而,只有沒有能力的攻擊者才會嘗試使用標(biāo)準(zhǔn)的密鑰生成軟件來找到匹配的密鑰。相反,攻擊者可能使用以下過程,比如得到第一質(zhì)數(shù)。
把質(zhì)數(shù)加入list(列表)。
Repeat(重復(fù))得到新的質(zhì)數(shù)PFor(對于)list(列表)中的每個質(zhì)數(shù)Q計算N=P*Q(簡單乘)計算關(guān)聯(lián)到N的公鑰K計算散列(K,個性化信息)If(散列與目標(biāo)匹配)//我們已成功
Return(P,Q)(返回(P,Q))End ifEnd forIf列表尺寸<最大尺寸把P加入list(列表)End listEnd Repeat在這一過程中,根據(jù)尺寸為M的最大列表,質(zhì)數(shù)計算僅僅是平均每隔M個循環(huán)出現(xiàn)一次。通過選擇一個大的M,攻擊者有效地使質(zhì)數(shù)生成對于核心循環(huán)運行時間的影響最小,核心循環(huán)由散列函數(shù)的成本支配而結(jié)束。依賴于公鑰生成的復(fù)雜性不是一種有效的防御措施。
為了找到包括Z的先導(dǎo)零值的散列,生成程序會需要執(zhí)行大約2^(Z)次操作;為了找到相應(yīng)的散列,攻擊者會需要執(zhí)行大約2^(Z+L)次操作。通過選擇Z和L的足夠大的值,確保了呼號難以被欺騙,而無需對質(zhì)數(shù)生成作出假設(shè)。
另一種常用的防御措施是提高散列函數(shù)的成本,例如通過請求多次運行一標(biāo)準(zhǔn)散列以便得到所謂的“N次冪散列”。不考慮加密因素,缺陷是散列函數(shù)成本的提高是對稱的它施加于呼號及其驗證的生成。這不是期望的屬性??赡芟M胁粚ΨQ的設(shè)置,其中生成可能要求大量計算以便阻礙欺騙攻擊,但是驗證非??煲员悴粚ψx者強加過期的負載。
呼號過程要求生成程序執(zhí)行大量試驗以便找到足夠數(shù)量的先導(dǎo)零值。這可能要求長的生成時間,但不影響驗證時間,驗證時間僅僅比簡單散列比較慢一些。
考慮將來防御和摩爾定律時選擇L和T一般在評估散列算法的加密強度時考慮到計算能力隨時間的發(fā)展。根據(jù)摩爾定律,對于一給定成本可用的計算能力大約每隔一年半翻一倍、每隔三年翻四倍。這意味著在其它量等值的情況下,對于攻擊者可用的計算能力數(shù)量每隔一年半翻一倍。換句話說,今天需要一百萬年的攻擊,在從現(xiàn)在起三十年后,只需要少于一年。現(xiàn)在看上去牢不可破的代碼在將來可能很容易攻擊,除非它已被充分地加強,或“將來防御”。
為了保護呼號不受將來的攻擊,選擇零值的初始數(shù)目以符合摩爾定律。通過這樣做,摩爾定律有益于呼號的安全性。根據(jù)摩爾定律選擇初始零值數(shù)目,而不是增加代碼的尺寸以便產(chǎn)生長的呼號?,F(xiàn)今使用的代碼可能有相對少量的零值,但是將來幾年使用的代碼可能有增加的先導(dǎo)零值數(shù)目。
如果在新機器上生成新代碼,則從今天起三年后,在生成過程上花同樣的時間量會找到有兩個額外零值的散列。本領(lǐng)域的技術(shù)人員會認識到,生成的成本與2^(Z)成正比,攻擊的成本與2^(Z+L)成正比。通過在生成中花固定時間量,攻擊者會需要花開始準(zhǔn)備攻擊的2^L倍時間。簡而言之,在30年內(nèi)攻擊者的難度和現(xiàn)在一樣。例如,如果生成周期T被設(shè)為1分鐘,長度L被設(shè)為40比特,則生成一欺騙值在當(dāng)前的機器上會要求大約2百萬年的計算,從現(xiàn)在起30年后類似生成的呼號在類似的機器上仍然需要2百萬年的計算來進行防御。
然而,這一論據(jù)僅在呼號僅用于短持續(xù)期時才有用。破解2003年時一分鐘內(nèi)生成的40比特呼號用2003年可用的計算機需要2百萬年的計算,或者用并行使用的2百萬臺這樣的計算機計算一年。破解在2033年時一分鐘內(nèi)生成的40比特呼號用該年可用的計算機也需要2百萬年的計算。但是2033年的計算機將能夠僅在2年內(nèi)破解2003年的呼號。
因此,呼號會有一定形式的過時。在某一年生成的呼號應(yīng)該不可能用于超過一些年。呼號的總彈性取決于生成時花費的時間以及比特數(shù)L。通過使生成過程運行得更長而得到較好的彈性生成時間T的每次翻倍都會防止摩爾定律的迭代。在進一步的替代實施例中,通過長時間運行生成過程可以形成真正強的呼號。
在進一步的替代實施例中,通過把到期日與呼號相關(guān)聯(lián)可以提供合理的保護。這在使用呼號作為引導(dǎo)機制來找到通信者的實際公鑰時尤其有吸引力。在找到公鑰后,可以使用完整的信息,而不是在呼號中所表示的壓縮信息。完整信息更不容易受過時的損壞。
考慮自然沖突可能性時選擇L和T即使沒有攻擊,短代碼的一個問題在于兩個用戶正好選取了導(dǎo)致同一呼號的密鑰、個性化信息串和經(jīng)驗值的組合時出現(xiàn)“自然”沖突的可能性。
呼號中使用的比特長度L受限制以便保持呼號為短,而計算機用戶的數(shù)量(“P”)可以很大。例如,在P=10^10的群體中每個計算機用戶分配至少一個呼號,以便使用本領(lǐng)域技術(shù)人員公知的方法使沖突機會小于50%,這樣需要使長度L大于67比特。如果沖突機會要小于1%,則L應(yīng)該大于73比特。
這樣大小的比特串會在15個字母數(shù)字字符的呼號內(nèi)被編碼。該長度超過呼號的實際長度。簡言之,只有在個性化信息串嵌入了諸如電子郵件地址這樣的獨特標(biāo)記、并且該獨特標(biāo)記沿著呼號被安全地傳輸時,完全消除沖突概率才是實際的。
由于呼號長度受限制并且會出現(xiàn)沖突,因此可以采用一種檢測沖突的方法。沖突會用呼號的解析來解決。如果存在沖突,讀者會得到與呼號相關(guān)聯(lián)的公鑰、個性化信息串和經(jīng)驗值的幾個版本,所有這些都經(jīng)過第一級驗證過程。讀者基于個性化信息串來選擇“正確的”或“預(yù)期的”版本。沖突解決過程可以通過執(zhí)行以下步驟或其等效步驟來迭代1)開始對呼號的搜索;2)檢取與呼號相關(guān)聯(lián)的公鑰、個性化信息串和經(jīng)驗值;3)如果沒有這種條目可用,搜索以失敗終止;4)使用單向函數(shù)執(zhí)行驗證。如果它失敗,則重復(fù)步驟2;5)如果個性化信息串與預(yù)期值匹配,則搜索成功地結(jié)束;以及6)如果個性化信息串不匹配,則重復(fù)步驟2。
如果解決過程是有效的,則密鑰僅需要足夠長以便保持與沖突解決機制相兼容的沖突頻率。例如,通過個性化信息串的長列表分類是無效的。本領(lǐng)域的技術(shù)人員會認識到,沖突會很少見,并且如果2^L充分地大于PL>log2P,則僅包括幾個匹配條目。
選擇L和T時的定量呼號的第一實施例由一組字母數(shù)字字符組成。每個字符對信息的5個比特編碼。從長度考慮,呼號的第一實施例不應(yīng)該長于10個字母數(shù)字字符。10個字符之一對零值數(shù)目Z編碼。其余9個字符用于對L比特編碼,在使用每字符5比特時,使L為45比特。L=35、40或45的呼號的替代實施例也是可行的。在對于第一實施例達到L為45比特時,上述標(biāo)準(zhǔn)可以用本領(lǐng)域技術(shù)人員公知的方法來定量。值L可以被分配可計量的指標(biāo),以便獲悉這些值中的哪一些是可接受的;類似地,應(yīng)該用來搜索零值的時間T已被定量。
用以下一組標(biāo)準(zhǔn)總結(jié)前面的章節(jié),前面的章節(jié)討論了欺騙攻擊、編目攻擊、自然沖突以及隨時間增加的計算能力,所述標(biāo)準(zhǔn)是總的Z+L應(yīng)該足夠大以防止欺騙。零值數(shù)目Z對應(yīng)于計算時間T。乘積T*2^L應(yīng)該足夠大以防止欺騙,即使考慮到摩爾定律的迭代。個性化信息串應(yīng)該足夠獨特以便阻礙編目攻擊。給定可能的群體大小時,長度L應(yīng)該足夠長以便使名稱沖突很少見。
考慮欺騙攻擊時選擇L和T的定量圖5是表示基于擊敗欺騙攻擊而選擇的比特長度L和時間T的表格。該表格示出根據(jù)比特數(shù)(35、40或45)和所花費的計算時間T(15、60、240、960或3840秒)的函數(shù),將需要多少年來破解呼號。在該表中,雙下劃線且粗體的值低于100000年。破解密鑰所需的計算可以容易地分布到計算機網(wǎng)絡(luò)。本領(lǐng)域的技術(shù)人員會理解,在過去可能已經(jīng)使用了100000臺計算機的網(wǎng)絡(luò)來破解加密詢問。為了使呼號至少一年阻止這種網(wǎng)絡(luò)的攻擊,35比特的L不是最佳的選擇,除非對零值的搜索持續(xù)至少4分鐘。
大于10000000年的值是單下劃線的且斜體的,這些值在100000臺當(dāng)今計算機組成的網(wǎng)絡(luò)上會需要100年的計算。從表中可見,45比特的L一般是安全的。結(jié)合16分鐘或更多的對零值搜索時間(T)使用45比特的L會得到可能在10年保持有效的呼號。
考慮編目攻擊時選擇L和T的定量圖6是表示呼號對于從L比特形成的各個呼號以及對于為T秒計算的突出經(jīng)驗值的易受攻擊性的表格。像呼號這樣的短代碼會受到“編目”攻擊,編目攻擊是欺騙攻擊的變體。在該攻擊中,一個攻擊者或一組攻擊者生成大量的呼號“解決方案”,并且將它們保存在數(shù)據(jù)庫中,即編目。每個解決方案把攻擊者已知的公鑰和呼號的特殊值相鏈接。本領(lǐng)域的技術(shù)人員會理解,該表格還表明可能由100000臺計算機的網(wǎng)絡(luò)在一年內(nèi)構(gòu)造的編目大小?!耙资芄粜浴绷斜硎緸槭咕幠堪ㄖ辽僖粋€有效呼號而應(yīng)該在網(wǎng)絡(luò)中出現(xiàn)多少次編目的名稱。
本領(lǐng)域的技術(shù)人員會認識到,編目攻擊僅用于通用的個性化信息串。如果個性化信息串僅包括用戶的名和姓,則編目攻擊會非常低效。
在替代的實施例中,可能通過在個性化信息串內(nèi)包括附加的標(biāo)記來減少通用名稱的頻率,從而加強呼號的安全性。例如,可以向個性化信息串加入城市和國家名稱。于是,編目攻擊僅針對在其個性化信息內(nèi)具有相同的附加標(biāo)記的用戶。例如,那些具有相同的名和姓、并且住在同一城市內(nèi)的用戶。本領(lǐng)域的技術(shù)人員會認識到,這些用戶形成了一個相對小的群體。本領(lǐng)域的技術(shù)人員會理解,在一個城市內(nèi)很少會有多于幾百個這樣的用戶。從表中可見,組合45比特的比特長度L以及4分鐘(240秒)的持續(xù)期T在本申請中提供了足夠的安全性。
在進一步的替代實施例中,個性化信息串包括像電子郵件地址這樣的獨特標(biāo)記,然后該標(biāo)記作為呼號的一部分被安全地通過,于是阻止了編目攻擊。這一編目攻擊就像欺騙攻擊一樣難以成功實現(xiàn)。
避免討厭的標(biāo)識符生成呼號時繪制的巧合可能導(dǎo)致不是非常期望的呼號,比如“IAM-SO-DUMB”。隨機機會甚至?xí)?dǎo)致呼號包括那些公然無禮的詞匯,比如一些公知的四字母單詞。
最有把握消除這些可能性的方式是把所提出的呼號提交給用戶,使用戶或者接受所提出的值或者要求另一個值。把計算設(shè)計為16個順序步驟能幫助快速地重新生成另一呼號。如果呼號被拒絕,則在一替代實施例中,使用完整的新計算所必要的時間的十六分之一來重復(fù)過程的最后一個步驟是足夠的。如果保持由最后散列步驟導(dǎo)出呼號這樣的設(shè)計,則在進一步的替代實施例中也可能在該階段引入一個最終經(jīng)驗值,因此可以通過簡單地選取一隨機數(shù)而導(dǎo)出新的呼號。
進一步的實施例插入一保護,通過加入在生成過程中包括一“不期望關(guān)鍵詞”列表的步驟來阻止不期望的呼號。這種包括關(guān)鍵詞的保護使代碼自身變得有些討厭。然而,在替代的實施例中,二進制值的字母數(shù)字編碼具有意義。我們可以在程序中包括被編碼的二進制值而非實際的關(guān)鍵詞。它們存在但卻是以不可讀的形式存在。
II.具有由驗證程序設(shè)置的所請求數(shù)目的零值的第二實施例呼號以及生成所述呼號的方法在第一實施例中有一些可能改進的方面??赡懿槐匾獙籼栔械南葘?dǎo)零值數(shù)目編碼,從而允許或者較短的呼號、或者同樣長但卻包含較大數(shù)量L個有效位的呼號。同樣,可能以字母數(shù)字編碼出現(xiàn)不期望的結(jié)果。它們會不注意地導(dǎo)致“可讀的”字符串,所述可讀字符串包含無禮的詞匯。呼號生成過程應(yīng)該確保避免了這些詞匯。
對第二實施例中的零值數(shù)目編碼第一實施例中零值數(shù)目的編碼是有害的。假定零值數(shù)目總是大于24且小于98,而且是零值對的數(shù)目而非零值的數(shù)目提供了足夠的保證。
更為根本的是,呼號中零值數(shù)目的編碼假定呼號的持有者應(yīng)該決定多少零值是必要的。在第一實施例中,查找一突出經(jīng)驗值所花費的時間是固定的,假設(shè)在該時間內(nèi)找到的零值數(shù)目會“符合摩爾定律”,并且表示那一年計算機的平均容量。然而,固定時間限制在用于生成呼號的計算機能力以及該呼號的強度之間產(chǎn)生了相關(guān)性。在第二實施例中,假定必要的零值數(shù)目會由呼號的接收者確定。
該實施例在驗證代碼中編碼了一個校驗。呼號的接收者會獲得公鑰K、標(biāo)識符X和突出經(jīng)驗值S,接著會驗證散列中零值數(shù)目Z大于一最小值,該最小值是年數(shù)Y和有效位數(shù)目L的函數(shù)Z>Z0-L+(Y-2003)/X該公式中,設(shè)置數(shù)Z0來表示一密鑰長度,該長度被視為在2003年內(nèi)足夠強。系數(shù)X描述了為使平均計算機的容量翻倍所需的年數(shù)。對于實際實現(xiàn)而言,根據(jù)摩爾定律把X值設(shè)為1.5,把值Z0設(shè)為62,得出以下公式Z>62-L+(Y-2003)/1.5該公式中,假設(shè)100000的計算年數(shù)是充分的困難,從而計算數(shù)62。實際上,“障礙”會取決于使用呼號的環(huán)境。金融上的應(yīng)用會需要較大的值,例如66(1000000年)。軍事服務(wù)需要更大的值。
圖7說明了按照第二實施例的呼號的形成。由于呼號不對零值數(shù)目編碼,因此不能使用和第一實施例中相同的散列函數(shù)。組成呼號的L比特會位于突出散列中的固定位置,而在另一固定位置后計算零值。
III.呼號到ASCII變化的字母數(shù)字編碼圖8和圖9說明了呼號的字母數(shù)字編碼。在創(chuàng)建呼號時,期望為呼號選取容易彼此區(qū)分并且不會有打字錯誤的字母和/或數(shù)字。對等方標(biāo)識符被分配到一字母數(shù)字表示。在該實施例中所選用的示例性編碼在所產(chǎn)生的呼號中不使用數(shù)0和1以及字母O和I。本領(lǐng)域的技術(shù)人員會理解,不使用這些字母的原因是它們?nèi)菀妆舜嘶煜?,但替代的實施例可以使用這些字符。本領(lǐng)域的技術(shù)人員還會理解,進一步的替代實施例可以刪除或添加其它字符。本領(lǐng)域的技術(shù)人員會認識到,在本發(fā)明的實際替代實施例中,并不限于羅馬字符和阿拉伯?dāng)?shù)字。本領(lǐng)域的技術(shù)人員還認識到,只要可以生成期望數(shù)量的字符,就可以使用全部數(shù)字或全部字符。在示例性的實施例中,刪除不期望的字符留出了8位和24個字母,提供了圖示的32的符號。
如上所示,在產(chǎn)生呼號時,該過程為已經(jīng)在呼號中被選用的每個字符分配一個從0到31的數(shù)值,得到32個可用字符。當(dāng)計算機讀取呼號時,呼號的每個字符都在計算機內(nèi)存中被分配到一數(shù)值。當(dāng)呼號從計算機輸出時,計算機中組成呼號的每個數(shù)都被分配一個數(shù)或字母來組成被輸出給用戶的呼號。組成呼號的字符選擇由呼號生成過程來選擇。接著通過一呼號驗證過程來檢驗它們的有效性。
IV.應(yīng)用于點對點名稱解析協(xié)議(PNRP)的呼號圖10是使用點對點呼號的一個實施例的點對點網(wǎng)絡(luò)的框圖。點對點網(wǎng)絡(luò)技術(shù)提供了一個或多個分布式網(wǎng)絡(luò)間的實時通信。點對點聯(lián)網(wǎng)是無服務(wù)器的技術(shù)。在點對點網(wǎng)絡(luò)中,單獨的PC能無需互聯(lián)網(wǎng)服務(wù)器而實時地交換數(shù)據(jù)、共享資源、定位其它用戶、通信以及協(xié)作。PC一般包括在PC耦合到點對點網(wǎng)絡(luò)允許點對點通信的應(yīng)用軟件。在這一類網(wǎng)絡(luò)中,對等計算機的每一臺都負責(zé)它自身的安全。因此,經(jīng)授權(quán)用戶的驗證和沖突地址的解析是和在基于服務(wù)器的網(wǎng)絡(luò)上的任務(wù)有所不同的任務(wù)。
連到對等方群組、隨后加入對等方群組是對等方網(wǎng)絡(luò)中的常見任務(wù),這些任務(wù)在標(biāo)識用戶時使用了安全性預(yù)防措施。為了加入一個群組,對等方計算機從對等方群組的持有人接收邀請。為了從群組持有人接收邀請,試驗性的群組成員必須首先把標(biāo)識材料傳送到群組持有人,這些材料是其對等方名稱和公鑰。該信息使用電子郵件、文件共享、XML等等來傳送。群組持有人接著會向試驗性的群組成員發(fā)出邀請。
當(dāng)試驗性的群組成員接收到該信息時,試驗性群組成員使用邀請信息來連到該群組。為了連到該群組,試驗性群組成員使用PNRP和群組ID來解析群組成員的地址,并且通過該群組成員連到對等方網(wǎng)絡(luò)。
試驗性群組成員和當(dāng)前群組成員間的相互驗證出現(xiàn),一般通過受信的網(wǎng)絡(luò)進行。在相互驗證后,試驗性群組成員現(xiàn)在成為具有單個鄰居的新群組成員。鄰居是來自對等方網(wǎng)絡(luò)的計算機,該計算機已經(jīng)接受了該連接,并且與之進行驗證。
特別是關(guān)于連到點對點計算機網(wǎng)絡(luò),點對點網(wǎng)絡(luò)包括為聯(lián)網(wǎng)提供了一組聯(lián)網(wǎng)應(yīng)用程序接口(“API”)的基礎(chǔ)設(shè)施聯(lián)網(wǎng)軟件。這些點對點應(yīng)用可以關(guān)于協(xié)作性通信、內(nèi)容分布等等。點對點基礎(chǔ)設(shè)施API軟件可以包括以下組件對等方名稱解析協(xié)議、多點通信、分布式數(shù)據(jù)管理、安全對等方標(biāo)識以及安全點對點群組。
點對點名稱解析協(xié)議(PNRP)使點對點網(wǎng)絡(luò)中的對等方能不牽涉到服務(wù)器而解析“對等方名稱”,服務(wù)器一般是在基于服務(wù)器的網(wǎng)絡(luò)中所需的。PNRP使對等方計算機能標(biāo)識網(wǎng)絡(luò)中的其它計算機或?qū)Φ确?。對等方名稱解析協(xié)議提供了一應(yīng)用程序接口(API),該接口能夠?qū)γQ到端點、或網(wǎng)絡(luò)中可能沖突的其它節(jié)點進行點對點解析。
對等方名稱解析協(xié)議(PNRP)API是一名稱到IP解析協(xié)議,該協(xié)議使一組參與的對等方能夠通過允許計算機節(jié)點在點對點網(wǎng)絡(luò)中查找彼此從而彼此交互。點對點網(wǎng)絡(luò)中一般提供的任務(wù)包括注冊和注銷對等方名稱、解析對等方名稱以及列舉對等方群組。本領(lǐng)域的技術(shù)人員會理解,解析對等方名稱包括查找彼此不沖突的對等方名稱。除了查找彼此不沖突的對等方名稱以外,期望找到的名稱提供足夠的安全性,并且期望用戶能記住他們的對等方名稱。
對等方名稱是可以標(biāo)識計算機、用戶、群組或服務(wù)的穩(wěn)定名稱。對等方名稱一般包括說明對等方是否安全的權(quán)限、以及僅僅是一字符串的分類符。本領(lǐng)域的技術(shù)人員會理解,安全對等方名稱一般可以使用安全散列算法(SHA-1)或MD5算法來導(dǎo)出一個128位的PNRP標(biāo)識符,該標(biāo)識符把公鑰K散列為分類符C以便提供對等方名稱的安全傳輸。在第三實施例中,C包括標(biāo)識符X、經(jīng)驗值S以及散列算法的標(biāo)識。
加密密鑰是本領(lǐng)域技術(shù)人員公知的設(shè)備,用于在網(wǎng)絡(luò)通信中提供安全。加密密鑰通常在點對點環(huán)境中用來授權(quán)訪問、以及驗證信源的標(biāo)識。加密密鑰使擁有密鑰的人能夠訪問密鑰所關(guān)聯(lián)的數(shù)據(jù),或者偽造密鑰持有人的數(shù)字簽名。公鑰算法一般提供了包括一個公鑰和一個私鑰在內(nèi)的密鑰對,標(biāo)記為K/P。由于私鑰可以被用作對消息接收者的標(biāo)識符,因此必須保持私鑰的私密性和安全性。公鑰可以自由分布,使其它人可以對消息進行解碼。密鑰對的公鑰通常用數(shù)字證書來分發(fā)。當(dāng)密鑰對的一個密鑰用來對消息加密時,該密鑰對的另一個密鑰就用來對消息解密。
這些密鑰會很長,一般至少為256個十六進制位。因此傳送密鑰、尤其是傳送公鑰會是麻煩的??梢允褂眉磿r消息傳遞或電子郵件,但會干預(yù)密鑰,從而期望驗證密鑰。還期望在驗證密鑰的過程中包括這樣的驗證即接收密鑰的人是應(yīng)該發(fā)送者期望發(fā)送密鑰給他的人。
IV.應(yīng)用于點對點名稱解析協(xié)議的呼號的第三實施例點對點名稱解析協(xié)議(“PNRP”)使對等方能在不牽涉服務(wù)器的情況下解析“對等方名稱”。PNRP對等方名稱由兩個字段組成第一個字段是“權(quán)限”,它是公鑰的SHA-1散列;第二個字段是“限定符”,它是一統(tǒng)一代碼(Unicode)文本串。PNRP使用以下加密散列函數(shù)從這兩個字段導(dǎo)出一個128位的PNRP-IDPNRP-ID=hash(權(quán)限,hash(限定符))
該第三實施例用“呼號”擴充了PNRP。為了為PNRP生成一呼號,用戶會生成一“突出的限定符”。權(quán)限、突出經(jīng)驗值和突出限定符的組合導(dǎo)致一PNRP-ID,該ID以大量的零值開始。呼號從該PNRP-ID導(dǎo)出。一個新的PNRPAPI使用戶能列舉與一呼號相匹配的PNRP條目、然后獲得相關(guān)的權(quán)限和限定符。
突出的PNRP限定符突出的限定符從個性化信息串、次級散列函數(shù)的標(biāo)識符以及突出經(jīng)驗值形成,由分隔符“//”和“/”分隔。本領(lǐng)域的技術(shù)人員會理解,個性化信息串的內(nèi)容會根據(jù)其中使用呼號的應(yīng)用而改變。例如,PNRP呼號的示例性實施例使用一獨特的個性化信息串,而其它應(yīng)用可能要求不同的個性化串。
本領(lǐng)域的技術(shù)人員會理解,信息串由分隔符或本領(lǐng)域公知的其它等效方法來分隔。本領(lǐng)域的技術(shù)人員還會認識到,信息串的順序以及所使用的分隔符可能發(fā)生變化。
所使用的散列函數(shù)也包括在突出限定符中,并且由分隔符分開。本領(lǐng)域的技術(shù)人員會理解,散列函數(shù)的類型可以是會得到足夠安全性的本領(lǐng)域技術(shù)人員公知的類型。例如,SHA-1散列函數(shù)或其等效函數(shù)。
經(jīng)驗值在呼號生成過程中選擇。經(jīng)驗值通過執(zhí)行對等方名稱的次級散列、使經(jīng)散列的結(jié)果以足夠數(shù)量的零值開頭而選擇。經(jīng)驗值自身由ASCII字母和數(shù)字組成。正式句法是突出限定符=<個性化>“//”<散列函數(shù)>“/”<經(jīng)驗值>
突出限定符的一個例子為限定符JonSmith<jsmith@yuhoo.com>//SHA1/A5E5F3Z4YWZTRF0TW9RTQ經(jīng)驗值的選取使得權(quán)限和限定符的次級散列以大量的零值開頭。
呼號第三實施例的生成呼號生成過程的目的在于找到一個突出限定符,該限定符使對等方名稱和相關(guān)的呼號能通過驗證過程。這包括查找一充分的“突出經(jīng)驗值”,使對等方名稱的次級散列以足夠數(shù)量的零值開頭。
在驗證部分中可見,足夠數(shù)量的零值隨時間而變化。為這些目的而使用公式Z>17+(Y-2003)/1.5為生成目的,不應(yīng)把值Y設(shè)為當(dāng)前這一年,而是設(shè)為預(yù)期呼號將一直保持有效的那一年。缺省情況下,這會被設(shè)為當(dāng)前這一年加上10年。
生成過程如下1)使用在驗證過程中預(yù)期的PNRP名稱權(quán)限的規(guī)范形式,根據(jù)每個PNRP來初始化這一權(quán)限的值。
2)按照用戶名稱初始化個性化信息X的值。
3)選擇一有效的次級散列函數(shù),缺省為SHA-1,并且標(biāo)記相應(yīng)的標(biāo)識符I。
4)選擇足夠數(shù)量的零值Z。
5)重復(fù)a.選取一經(jīng)驗值S。
b.基于權(quán)限和試驗性的突出限定符,基于X、I和S來組成對等方名稱。
c.根據(jù)函數(shù)I計算對等方名稱的散列。
d.測量該散列中的零值數(shù)目(N)。
直至數(shù)N大于或等于數(shù)Z。
6)計算與對等方名稱相關(guān)聯(lián)的PNRP標(biāo)識符。
7)基于PNRP標(biāo)識符的最有效的45比特組成一呼號。
8)驗證呼號是否包括無禮的詞匯;如果是,則重復(fù)步驟5。
步驟5在現(xiàn)代計算機上預(yù)期持續(xù)15秒。
生成函數(shù)的最后一步是為了檢驗呼號中隨機字符集不會產(chǎn)生一些無禮的語言。它可以通過詢問用戶他們是否接受使用所提議的呼號來實現(xiàn)。
在第三實施例中生成的呼號的驗證呼號驗證過程把對等方標(biāo)識符與呼號相比較、驗證次級散列包括足夠數(shù)量的先導(dǎo)零值,Z。先導(dǎo)零值數(shù)量的驗證使呼號難以被第三方欺騙。在第一近似中,呼號的加密強度等效于一對稱密鑰的強度,對稱密鑰的長度為Z+45。值Z會隨時間變化。由于摩爾定律預(yù)測到計算機會變得越來越強大,因此Z的長度要求也會增加。如果假定摩爾定律在可預(yù)知的將來仍然成立,則先導(dǎo)零值的數(shù)值Z可能被認為是當(dāng)前這一年Y的函數(shù)Z>17+(Y-2003)/1.5本領(lǐng)域的技術(shù)人員會認識到,上述不等式中使用的值17對應(yīng)于用于計算折衷的所選安全性,在需求較大的環(huán)境中可以使用較大的值。
用于驗證呼號的次級散列函數(shù)可以隨時間變化。在當(dāng)前實現(xiàn)中,使用本領(lǐng)域技術(shù)人員已知的散列函數(shù)SHA1。在替代的實施例中,計算機內(nèi)存可以維持一可接受的散列函數(shù)列表供使用。特別是,預(yù)期散列函數(shù)會繼續(xù)被開發(fā)以便提供改進的安全性。本發(fā)明的實施例通過在新散列函數(shù)出現(xiàn)時為它們提供將來用途,從而包含新散列函數(shù)的發(fā)展。
驗證應(yīng)如下進行1)計算與對等方名稱相關(guān)聯(lián)的PNRP標(biāo)識符。
2)把PNRP標(biāo)識符的最有效45比特與呼號中編碼的45比特相比較。
3)如果45比特不匹配,則驗證失敗。
4)從突出經(jīng)驗值中提取次級散列函數(shù)的標(biāo)識符。
5)如果散列函數(shù)標(biāo)識符不存在、對于驗證程序不可接受、或者不被辨認為有效值,則驗證失敗。
6)用指定的次級散列函數(shù)計算整個對等方名稱的規(guī)范形式的散列。
7)測量所產(chǎn)生的散列中的先導(dǎo)零值數(shù)目。如果零值數(shù)目少于目標(biāo)值Z,則驗證失敗。
8)驗證標(biāo)識串是人的可能描述或是呼號所指定的實體;如果不是如此,則驗證失敗。
9)如果通過了步驟1到8,則驗證成功。
對等方名稱的“規(guī)范形式”通過以下得到確保對等方名稱的權(quán)限部分(通常由十六進制位組成)僅用數(shù)字以及大寫字母A、B、C、D、E和F來編碼。注意到步驟8一般包括與人的交互。
從呼號中檢取PNRP記錄在一些情況下,檢取與呼號相關(guān)聯(lián)的PNRP記錄、因而檢取相關(guān)的對等方名稱是有幫助的。這可以如下實現(xiàn)檢取全部PNRP記錄,所述PNRP記錄的PNRP標(biāo)識符以和呼號相同的45比特開始;檢取相應(yīng)的對等方名稱;刪除未通過驗證過程的步驟1到7的對等方名稱;以及使用驗證過程的步驟8來僅保留與預(yù)期標(biāo)識相匹配的名稱。
權(quán)利要求
1.一種生成呼號的方法,包括確定突出限定符;找到突出經(jīng)驗值;以及用突出限定符對突出經(jīng)驗值進行散列法。
2.如權(quán)利要求1所述的生成呼號的方法,其特征在于還包括找到使散列結(jié)果包含預(yù)定輸出模式的突出經(jīng)驗值。
3.如權(quán)利要求2所述的生成呼號的方法,其特征在于還包括從散列中找到先導(dǎo)零值的數(shù)目。
4.如權(quán)利要求3所述的生成呼號的方法,其特征在于還包括保留先導(dǎo)零值后的多個比特。
5.如權(quán)利要求4所述的生成呼號的方法,其特征在于還包括把先導(dǎo)零值數(shù)目編碼為一個字母數(shù)字呼號零值數(shù)位。
6.如權(quán)利要求5所述的生成呼號的方法,其特征在于還包括把先導(dǎo)零值后的比特數(shù)編碼為多個字母數(shù)字呼號數(shù)位。
7.如權(quán)利要求6所述的生成呼號的方法,其特征在于還包括從所述呼號零值數(shù)位和多個字母數(shù)字呼號數(shù)位形成一呼號。
8.一種對呼號編碼的方法,包括從加密安全散列函數(shù)所產(chǎn)生的先導(dǎo)零值后的多個數(shù)位創(chuàng)建一二進制數(shù);把二進制數(shù)分成多個5比特分段;以及把每一個5比特分段編碼為相應(yīng)的字母數(shù)字字符。
9.如權(quán)利要求8所述的對呼號編碼的方法,其中二進制數(shù)的長度為45比特。
10.如權(quán)利要求8所述的對呼號編碼的方法,其中字母數(shù)字零字符為MSB。
11.一種產(chǎn)生加密散列的方法,包括形成一個性化信息串;以及找到一經(jīng)驗值,該經(jīng)驗值在用個性化串散列時在經(jīng)散列的結(jié)果中產(chǎn)生預(yù)定數(shù)量的先導(dǎo)零值。
12.如權(quán)利要求11所述的產(chǎn)生加密散列的方法,還包括用經(jīng)驗值對個性化信息串進行散列以產(chǎn)生突出散列。
13.如權(quán)利要求12所述的產(chǎn)生加密散列的方法,其中經(jīng)驗值是一突出經(jīng)驗值。
14.如權(quán)利要求11所述的產(chǎn)生加密散列的方法,其中個性化信息串包括人的姓名。
15.如權(quán)利要求11所述的產(chǎn)生加密散列的方法,其中個性化信息串包括人的電子郵件地址。
16.如權(quán)利要求11所述的產(chǎn)生加密散列的方法,其中個性化信息串包括人的公司名稱。
17.一種產(chǎn)生加密散列的方法,包括形成個性化信息串;找到一經(jīng)驗值,該經(jīng)驗值在用個性化串和公鑰散列時在經(jīng)散列的結(jié)果中產(chǎn)生預(yù)定的輸出模式。
18.如權(quán)利要求17所述的產(chǎn)生加密散列的方法,還包括用經(jīng)驗值對個性化信息串散列以產(chǎn)生一突出散列。
19.如權(quán)利要求18所述的產(chǎn)生加密散列的方法,其中經(jīng)驗值是一突出經(jīng)驗值。
20.如權(quán)利要求17所述的產(chǎn)生加密散列的方法,其中個性化信息串包括人的姓名。
21.如權(quán)利要求17所述的產(chǎn)生加密散列的方法,其中個性化信息串包括人的電子郵件地址。
22.如權(quán)利要求17所述的產(chǎn)生加密散列的方法,其中個性化信息串包括人的公司名稱。
23.一種產(chǎn)生呼號的方法,包括為用戶配置一突出限定符;找到一突出經(jīng)驗值;把突出限定符、突出經(jīng)驗值和公鑰散列成M比特的散列;確定散列中先導(dǎo)零值的數(shù)目;從散列中刪除預(yù)定數(shù)量的比特;通過使用表格查找把零值數(shù)目編碼為一字母數(shù)字呼號的一位。
全文摘要
一種生成呼號的方法。一種生成呼號的方法包括確定一突出限定符;查找一突出經(jīng)驗值;以及用突出限定符對突出經(jīng)驗值進行散列。
文檔編號H04L9/18GK1716855SQ200510082279
公開日2006年1月4日 申請日期2005年6月29日 優(yōu)先權(quán)日2004年6月30日
發(fā)明者C·F·惠特瑪, J·D·本納龍, K·卡梅隆 申請人:微軟公司