專利名稱:用于通信網(wǎng)絡的用戶驗證系統(tǒng)和方法
技術領域:
本發(fā)明涉及通信網(wǎng)絡,更具體地,涉及用于在通信網(wǎng)絡中驗證用戶同時保護用戶隱私的裝置和方法。
背景技術:
現(xiàn)今,許多在線服務(例如電子商務網(wǎng)站提供的競拍服務、因特網(wǎng)電子郵件服務器提供的電子郵件服務、即時消息服務器提供的P2P聊天服務等等)要求它們的用戶為了訪問這些服務而進行注冊或者定購。通常,存在憑證授權機構(gòu)(credential authority,CA)來幫助服務提供者處理用戶驗證。
假設一組用戶已經(jīng)被授權訪問特定服務。這些用戶的集合被稱為“白名單(Whitelist)”。當用戶A試圖訪問該服務(例如,P2P文件共享服務)時,某個驗證者(例如,用戶A希望從其檢索文件的對端)必須確信用戶A是處于白名單中的。要是驗證者每次都需要聯(lián)絡憑證授權機構(gòu),對于驗證者和憑證授權機構(gòu)兩者來說,計算和通信方面的開銷都會相當高。并且,服務提供者更容易受到以憑證授權機構(gòu)為目標的拒絕服務攻擊(Denial of Service)的破壞。
驗證者可以具有本地拷貝的白名單,并確信用戶A在其上。但是,如果驗證者不能使其本地拷貝與憑證授權機構(gòu)的最新的白名單同步,真正的用戶將會被驗證者拒絕。需要同步的原因是在驗證者已經(jīng)建立其白名單的本地拷貝之后,可能有新的用戶被憑證授權機構(gòu)添加到被授權用戶的集合中。直接的解決方案是要求驗證者始終與憑證授權機構(gòu)同步。但是,由于難以預測同步的間隔時間,所以這意味著整體性能變低。此外,在有大量驗證者的情況中,他們將對憑證授權機構(gòu)造成巨大負擔。
更嚴重的是,有許多這樣的情況,其中用戶希望對驗證者是匿名的。用戶更希望向驗證者隱藏已經(jīng)在白名單中公布的用戶的名字、標識符或者任何別的內(nèi)容,即使他/她已經(jīng)成功通過了向驗證者的驗證。很清楚,在希望保護用戶隱私的情形中,供驗證者查詢的簡單的白名單并非有效的解決方案。
另一個難題是由如下事實引起的某些現(xiàn)存用戶的對服務的訪問權可能被憑證授權機構(gòu)吊銷。在任何實際應用系統(tǒng)中,許可被禁止的用戶是明確不能接受的。乍看上去,解決方案可以只不過是一個由憑證授權機構(gòu)維護的黑名單(Blacklist),其中列出了所有被禁止的用戶。當用戶A試圖訪問服務時,某個驗證者必須確信該用戶不在黑名單中。問題是,隨著時間的流逝,黑名單將隨著被禁止的用戶的數(shù)量而線性增大。驗證者必須投入越來越多的計算資源來將用戶A與黑名單中公布的那些用戶逐一比較。這樣,效率會低得驚人。再者,驗證者需要保持黑名單的本地拷貝,從而存白名單在驗證者與憑證授權機構(gòu)之間有效同步的問題。為了對付不斷增加的黑名單,憑證授權機構(gòu)可以在某個時刻更新其對于全部真正用戶的設置,從而去除所有被禁止的用戶,并重新得到空白的黑名單。這在某些程度上可能減輕了大白名單對驗證者造成的性能問題。但是,如果憑證授權機構(gòu)還剩余了大量的注冊的真實用戶,則對于憑證授權機構(gòu)來說,更新其全部的真正用戶是非常費力的。不只這些。當用戶希望向驗證者匿名驗證時,無法使用簡單的黑名單。因為在這種情況中,被禁止的用戶沒有可以被放入黑名單的唯一標識符,否則的話,將與匿名驗證的要求相抵觸。很明顯用戶的唯一標識符總是會暴露他/她的隱私。
學術上,用于隱私被保護的驗證的白名單以及黑名單的問題已經(jīng)被研究為對值的聚合(accumulate)。簡單地說,一組值被聚合在一個聚合器(accumulator)中。這里,聚合一個值意思是計入該值的固有特性或者將該值放入一個池中。聚合器是指一個值,其將一組值考慮在內(nèi)或者結(jié)合了一組值的固有特性。證明者可以向驗證者證明一個特定的值被聚合在聚合器中,而根本不暴露被證明的這個值??梢韵氲?,這類研究可以轉(zhuǎn)換為白名單的實現(xiàn)。類似地,證明者可以向驗證者證明他/她所持有的特定值沒有被聚合在聚合器中,而根本不暴露被證明的這個值。可以想到,這類研究可以轉(zhuǎn)換為黑名單的實現(xiàn)。數(shù)學上,雖然可以證明一個值不在聚合器中,但是這不如證明一個值被聚合在聚合器中的效率高。
J.Benaloh和M.de Mare在“One-way accumulatorsA decentralizedalternative to digital signatures”,Advances in Cryptology-EUROCRYPT′93,volume 765 of LNCS,pages 274-285,Springer-Verlag,1994中首先引入了聚合器,作為這樣一種方法,其將一組值組合為一個短的聚合器,使得有證據(jù)證明給定值被結(jié)合到了聚合器中。該思想被Benaloh和de Mare,N.Baric及B.Pfitzmann在″Collision-free accumulators and fail-stop signatureschemes without trees”,Advances in Cryptology-EUROCRYPT′97,volume1233 of LNCS,pages 480-494.Springer Verlag,1997中延伸,其提供了基于強RSA假設的所謂的抗沖突聚合器(collision-resistant accumulator)。所引用的文獻中定義的聚合器的一個便利特性是值可以以單位成本被逐個添加。但是,值從聚合器中的刪除無法與所聚合的值的數(shù)量無關。J.Camenisch和A.Lysyanskaya作出了進一步的貢獻。在他們的論文“Dynamic accumulators and application to efficient revocation of anonymouscredentials”,Advances in Cryptology-CRYPTO′2002,volume 2442 of LNCS,pages 61-76,2002中,提出了動態(tài)聚合器,這種聚合器允許動態(tài)地添加和刪除輸入,使得添加或者刪除的開銷與所聚合的值的數(shù)量無關。J.Camenisch和A.Lysyanskaya還為他們的動態(tài)聚合器遞交了題為“Revocation of anonymous certificates,credentials,and access rights”的美國專利No.US200310177352。上述文獻為了全部目的而通過引用結(jié)合于此。
現(xiàn)有技術的動態(tài)聚合器的優(yōu)點在于添加或者刪除的開銷與所聚合的值的數(shù)量無關,換句話說,與被授權的用戶的數(shù)量無關。但是,這種結(jié)論完全是從憑證授權機構(gòu)的角度得出的。當一個用戶被添加在聚合器中或者從聚合器中刪除時,所有現(xiàn)存用戶以及驗證者必須更新他們已經(jīng)持有的聚合器以及其他某些數(shù)據(jù)。值得注意的是,用戶以及驗證者更新這樣的數(shù)據(jù)所不可避免的計算是由他們自己完成的(因此,從憑證授權機構(gòu)的角度來看,是與所聚合的值的數(shù)量無關的)。但是對于每個用戶以及驗證者,時常向憑證授權機構(gòu)查詢最新的聚合的值和更新的聚合器帶來了額外的開銷??紤]到被刪除的用戶,驗證者仍然必須不時地向憑證授權機構(gòu)查詢最近的聚合器,以便保護他/她不被新近刪除的用戶欺騙,而用戶不必也這么做,以便降低用戶在計算資源和網(wǎng)絡資源消耗上的成本。此外,在某些情況中,真正用戶的聚合的值可能被認為是秘密,應當永不公開。動態(tài)聚合器方案不能處理這種情況。
發(fā)明內(nèi)容
本發(fā)明提供了一種能夠在通信網(wǎng)絡中保護用戶隱私的高效用戶驗證系統(tǒng)和方法。
根據(jù)本發(fā)明的一個方面,提供了一種用于在通信網(wǎng)絡中生成和更新用戶驗證數(shù)據(jù)的裝置,包括聚合器計算單元,適合于生成和更新用于聚合被授權用戶的令牌的聚合器;與所述聚合器計算單元耦合的授權單元;和通信單元。授權單元包括令牌選擇模塊,適合于為要被授權的用戶選擇令牌;和與所述令牌選擇模塊耦合的憑證生成模塊,適合于從所述令牌和所述聚合器生成憑證,其中所述憑證被用于用戶證明所述令牌被聚合在所述聚合器中。通信單元與所述聚合器計算單元、所述授權單元和所述網(wǎng)絡耦合,適合于在所述網(wǎng)絡上公布所述聚合器以及將所述令牌和所述憑證傳送給所述用戶。
根據(jù)本發(fā)明的另一個方面,提供了一種用于在通信網(wǎng)絡中生成和更新用戶驗證數(shù)據(jù)的方法,包括以下步驟生成并公布用于聚合被授權用戶的令牌的聚合器;為要被授權的用戶選擇令牌;從所述令牌和所述聚合器生成憑證,其中所述憑證被用于用戶證明所述令牌被聚合在所述聚合器中;以及將所述憑證和所述令牌傳送給所述被授權的用戶。
根據(jù)本發(fā)明的另一個方面,提供了一種用于用戶在通信網(wǎng)絡中向驗證者進行驗證的終端。所述網(wǎng)絡包括至少一個憑證授權機構(gòu)。所述終端包括耦合到所述網(wǎng)絡的通信單元;與所述通信單元耦合的聚合器存儲單元,適合于存儲由所述憑證授權機構(gòu)生成的聚合器;與所述通信單元耦合的令牌存儲單元,適合于存儲從所述憑證授權機構(gòu)發(fā)出的令牌;與所述通信單元耦合的憑證存儲單元,適合于存儲由所述憑證授權機構(gòu)從所述聚合器和所述令牌生成的憑證;與所述憑證存儲單元耦合的導出憑證生成單元,適合于從存儲在所述憑證存儲單元中的憑證生成導出憑證;和與所述聚合器存儲單元、所述令牌存儲單元和所述導出憑證生成單元耦合的證明單元,適合于使用所述導出憑證與所述驗證者執(zhí)行知識證明,以證明所述令牌被聚合在所述聚合器中,而不暴露所述令牌。
根據(jù)本發(fā)明的另一個方面,提供了一種用于用戶在通信網(wǎng)絡中向驗證者進行驗證的方法。所述網(wǎng)絡包括至少一個憑證授權機構(gòu)。所述方法包括以下步驟接收由所述憑證授權機構(gòu)生成的聚合器;接收由所述憑證授權機構(gòu)發(fā)出的令牌;接收由所述憑證授權機構(gòu)從所述聚合器和所述令牌生成的憑證;從所述憑證計算導出憑證;以及使用所述導出憑證與所述驗證者執(zhí)行知識證明,以證明所述令牌被聚合在所述聚合器中,而不暴露所述令牌。
根據(jù)本發(fā)明的另一個方面,提供了一種通信系統(tǒng),包括通過網(wǎng)絡可操作地耦合的至少一個憑證授權機構(gòu)裝置、至少一個用戶終端和至少一個驗證者終端。憑證授權機構(gòu)裝置包括聚合器計算單元和與所述聚合器計算單元耦合的授權單元,其中,所述聚合器計算單元適合于生成和更新用于聚合被授權用戶的令牌的聚合器,并且所述授權單元包括令牌選擇模塊和與所述令牌選擇模塊耦合的憑證生成模塊。用戶終端包括導出憑證生成單元和證明單元。驗證者終端包括驗證單元。當用戶被授權時,所述令牌選擇模塊一個令牌,并且所述憑證生成模塊從所述令牌和所述聚合器生成憑證,所述令牌和所述憑證被從所述憑證授權裝置傳送到所述用戶終端;所述導出憑證生成單元適合于從所述憑證生成導出憑證;并且所述用戶終端的證明單元與所述驗證者終端的所述驗證單元適合于使用所述導出憑證執(zhí)行知識證明,以證明所述令牌被聚合在所述聚合器中,而不暴露所述令牌。
根據(jù)本發(fā)明的另一個方面,提供了一種用于在通信網(wǎng)絡中驗證用戶的方法。所述網(wǎng)絡包括至少一個憑證授權機構(gòu)和至少一個驗證者。所述方法包括以下步驟由所述憑證授權機構(gòu)生成并公布用于聚合被授權用戶的令牌的聚合器;將由所述憑證授權機構(gòu)發(fā)出的令牌和憑證傳送給要被授權的用戶,所述憑證是由所述憑證授權機構(gòu)從所述令牌和所述聚合器生成的;由用戶從所述憑證計算導出憑證;將所述導出憑證從所述用戶傳送到所述驗證者;以及在所述用戶與所述驗證者之間使用所述導出憑證執(zhí)行知識證明,以證明所述令牌被聚合在所述聚合器中,而不暴露所述令牌。
根據(jù)本發(fā)明的另一個方面,提供了一種具有機器可讀介質(zhì)的制品,所述機器可讀介質(zhì)上存儲有指令,所述指令當被一個或多個處理器執(zhí)行時,使得所述處理器生成并公布用于聚合被授權用戶的令牌的聚合器;為要被授權的用戶選擇令牌;從所述令牌和所述聚合器生成憑證,其中所述憑證被用于用戶證明所述令牌被聚合在所述聚合器中;以及將所述憑證和所述令牌傳送給所述被授權的用戶。
根據(jù)本發(fā)明的另一個方面,提供了一種具有機器可讀介質(zhì)的制品,所述機器可讀介質(zhì)上存儲有指令,所述指令當被一個或多個處理器執(zhí)行時,使得所述處理器接收由憑證授權機構(gòu)生成的聚合器;接收由所述憑證授權機構(gòu)發(fā)出的令牌;接收由所述憑證授權機構(gòu)從所述聚合器和所述令牌生成的憑證;從所述憑證計算導出憑證;以及使用所述導出憑證與驗證者執(zhí)行知識證明,以證明所述令牌被聚合在所述聚合器中,而不暴露所述令牌。
根據(jù)本發(fā)明,所聚合的被授權用戶的令牌可以是從不公開的秘密。當新的用戶被CA授權的時候,用戶和驗證者不需要更新聚合器。這在低計算開銷以及網(wǎng)絡帶寬消耗方面,對于CA、用戶和驗證者是有意義的。
此外,可以以壓縮格式獲取吊銷更新信息,這在低計算開銷以及網(wǎng)絡帶寬消耗方面是有利的。并且,可以以壓縮格式公布吊銷更新信息,這在低計算開銷以及網(wǎng)絡帶寬消耗方面也是有利的。
此外,驗證者可以從用戶處代替從CA處接收最新的聚合器,并且用戶可以從驗證者處代替從CA處接收吊銷更新信息,并從而同步到最新的聚合器。結(jié)果,CA的負擔大大降低,而新近的用戶驗證數(shù)據(jù)可以迅速地傳播。
當結(jié)合附圖一同閱讀時,從下面的描述,可以更充分地理解本發(fā)明的上述以及其他目的、其各種特征以及本發(fā)明自身,附圖中類似的參考標號指示類似的部分,附圖中圖1是示出了一個通信系統(tǒng)的示例的框圖;圖2是示出了根據(jù)本發(fā)明的一個實施例,用戶如何被憑證授權機構(gòu)授權并且被驗證者驗證的過程的示圖;圖3是示出了根據(jù)本發(fā)明的一個實施例,當曾經(jīng)被授權的用戶被禁止時的示例性過程的示圖;圖4是示出了在兩個吊銷數(shù)據(jù)包(revocation packing)之間有兩個吊銷增量(revocation increment)的示例性情況的示圖;圖5是示出了根據(jù)本發(fā)明的一個實施例,用戶向憑證授權機構(gòu)更新憑證和聚合器的示例性過程的流程圖;圖6是示出了根據(jù)本發(fā)明的一個實施例,憑證授權機構(gòu)、用戶和驗證者之間的示例性動作的示圖;圖7是示出了根據(jù)本發(fā)明的一個實施例,憑證授權機構(gòu)、用戶和驗證者之間的另一示例性動作的示圖;圖8是示出了根據(jù)本發(fā)明的一個實施例,驗證者向憑證授權機構(gòu)進行更新的示例性過程的流程圖;圖9是示出了根據(jù)本發(fā)明的一個實施例,當用戶持有的聚合器過時的時候,用戶向驗證者進行驗證的示例性過程的流程圖;圖10是示出了根據(jù)本發(fā)明的一個實施例,當用戶持有的聚合器過時的時候,驗證者驗證用戶的示例性過程的流程圖;圖11是示出了根據(jù)本發(fā)明的一個實施例的憑證授權機構(gòu)的示例性裝置的框圖;圖12是示出了根據(jù)本發(fā)明的一個實施例的用戶的示例性終端的框圖;以及圖13是示出了根據(jù)本發(fā)明的一個實施例的驗證者的示例性終端的框圖。
具體實施例方式
鑒于現(xiàn)有技術中的上述缺點作出了本發(fā)明。
參考附圖,下面僅通過示例的方式詳細描述本發(fā)明的優(yōu)選實施例。
圖1是示出了一個通信系統(tǒng)的示例的框圖,其中有三種參與方,即憑證授權機構(gòu)(CA)110、用戶120和驗證者130,他們通過網(wǎng)絡100進行通信。
這里,網(wǎng)絡100可以是任何類型的網(wǎng)絡,包括但不限于任何計算機通信網(wǎng)絡或者電信網(wǎng)絡。用戶可以是任何適合于連接到網(wǎng)絡的客戶端設備,例如計算機、手持設備、移動電話等。憑證授權機構(gòu)CA可以是適合于連接到網(wǎng)絡的設備,其管理服務的憑證。驗證者可以是主機或者終端,其在正確驗證了用戶之后接受用戶的請求。
具體地說,憑證授權機構(gòu)CA是這樣實體,其接受用戶定購并向用戶授予令牌和憑證以使得他們能夠享受網(wǎng)絡上的某種服務。驗證者是服務中涉及的一方,當用戶試圖訪問或者享受該服務時,驗證者驗證用戶的授權數(shù)據(jù),并接受或者拒絕用戶的請求。
雖然沒有示出,但是還可能有用于提供服務的服務提供者。邏輯上應當注意,CA可以是服務提供者外部的服務器或者主機,也可以是嵌入在服務提供者中的維護訂戶信息的模塊。另外,驗證者可以是服務的參與方的終端,也可以是服務提供者中的模塊?,F(xiàn)實中,驗證者可以是提供諸如拍賣的在線服務的服務提供者,或者可以是P2P網(wǎng)絡中的一個對端。例如,服務提供者是即時消息服務器,驗證者是用戶希望與之聊天的對端。當用戶請求與該驗證者聊天時,驗證者判斷用戶是否被CA授權。在另一個示例中,驗證者是在線數(shù)據(jù)庫服務器。如果用戶請求訪問位于驗證者終端上的數(shù)據(jù)庫時,驗證者在檢查了用戶的由CA授予的授權數(shù)據(jù)之后,接受用戶的請求。在該示例中,驗證者自身就是服務提供者。在某些情況中,CA和驗證者可以在服務提供者內(nèi)作為模塊共存。也就是說,這里所說的CA、驗證者和服務提供者可以被任意組合為一個或多個設備,或者被分為不同的設備。本領域的技術人員將指導本發(fā)明的這種概念以及實際的工程變化。
注意,為了簡明,附圖中只示出了一個憑證授權機構(gòu)CA、一個用戶和一個驗證者。但是,每種參與方都可以有多個。
下面參考圖2描述根據(jù)本發(fā)明的一個實施例,用戶如何被憑證授權機構(gòu)授權以及被驗證者驗證的方法。
首先,在初始化階段(階段1),CA使用模數(shù)n以及聚合器w對其自身進行初始化,其中模數(shù)n適合于作為強RSA假設的基礎,聚合器w是Zn*中的隨機數(shù)。優(yōu)選地,n是兩個安全素數(shù)的積,w屬于QR(n),QR(n)是Zn*的二次剩余子群。另外,CA選擇邊界b<fi(n),其中fi(…)輸出n的歐拉Φ值。CA隨機的選擇約定(commitment)z。并且,CA初始化空白的吊銷數(shù)據(jù),以供該服務的用戶和可能的驗證者查詢。然后,CA通過安全方式公布n,w,b,z和吊銷數(shù)據(jù)。例如,CA可以對n,w,z數(shù)字簽名,其可以通過公知的公鑰被驗證。
然后,在授權階段(階段2),如果用戶希望被CA授權,用戶可以通過憑證授權機構(gòu)的某種檢驗,例如,通過以面對面的方式出示他/她的社會保障卡,或者經(jīng)由網(wǎng)絡向憑證授權機構(gòu)傳送數(shù)字信息。此后,CA選擇與fi(n)互質(zhì)的適合的素數(shù)e,并計算c=w1/e(mod n)。二元組(c,e)將被交給用戶,分別作為憑證和令牌。在強RSA假設下,給出w和在串通攻擊情況中可能的這樣的二元組的多項式有界集合,其他用戶也難以找到二元組(c,e)。另外,CA將在其數(shù)據(jù)庫中存儲e。
在驗證者希望驗證任何用戶之前,驗證者應聯(lián)系CA獲取n,w,b和z。在驗證階段(階段3),當用戶要被驗證者驗證時,用戶選擇隨機數(shù)t<b并計算c1=c*zt(mod n),c1被稱為導出憑證。用戶將導出憑證c1發(fā)送給驗證者,并向驗證者證明他/她知道表達式w=c1x1*zx2。這里很明顯,x1=e并且x2=-t*e,因此c1e*z-t*e=(c*zt)e*z-t*e=ce=w(mod n)??梢酝ㄟ^傳統(tǒng)手段有效地進行x1和x2的知識證明,而不暴露x1和x2,例如通過“D.Chaum,J.H.Evertse,J.van de Graaf,An Improved Protocol forDemonstrating Possession of Discrete Logarithms and SomeGeneralizations”,Advances in Cryptology-EUROCRYPTO’87,pp.127~141,1987中的方法,其通過引用結(jié)合于此。知識證明技術對于本領域的技術人員來說是公知的。
根據(jù)上述方法,可以發(fā)現(xiàn),授權新的用戶對于現(xiàn)存的真正用戶沒有任何影響。換句話說,其不僅與已經(jīng)被聚合的值的數(shù)量無關,而且與要被聚合的值的數(shù)量無關。
下面將參考圖3描述根據(jù)本發(fā)明的一個實施例,曾經(jīng)被授權的用戶如何被禁止(即,該用戶的令牌被吊銷)的方法。
假設擁有CA授予的(ca,ea)的用戶A要被禁止,CA在其吊銷數(shù)據(jù)中公布ea并將聚合器w更新為wa=w1/ea(mod n)。二元組(ea,wa)形成了吊銷增量。看到吊銷增量(ea,wa)后,除了用戶A之外的現(xiàn)存用戶(稱為用戶B,其擁有(cb,eb))將根據(jù)擴展歐幾里得算法(Extended Euclidean Algorithm)計算u*eb+v*ea=1。只要CA為不同用戶選擇了不同素數(shù)e,就有唯一的u和v滿足u*eb+v*ea=1。最終,用戶B將其cb更新為cb1=wau*cbv(mod n),用戶B所持有的新的二元組是(cb1,eb),其中cb1是憑證,eb是令牌。很容易驗證cb1eb=wau*eb*cbv*eb=wau*eb*wv=wau*eb*(waea)v=wa(u*eb+ v*ea)=wa(modn),這意味著用戶B自己計算了與更新的聚合器相對應的新的憑證。另一方面,如果RSA難題是困難的,則給出吊銷增量(ea,wa),計算滿足ca1ea=wa(mod n)的ca1是不可能的。
很明顯,在聚合器w已經(jīng)被更新為wa之后,當新的用戶要被憑證授權機構(gòu)授權時,應使用wa來計算用于新用戶的憑證和令牌。先前的w將不再使用。
概念上,本發(fā)明所使用的聚合器已經(jīng)預先聚合了全部可能的令牌。但是,在現(xiàn)有技術中,任何時刻要授權一個新的用戶,都明確需要更新聚合器。需要強調(diào)的是,雖然在本發(fā)明中已經(jīng)預先聚合了所有可能的令牌,但是沒有CA的幫助,是得不到憑證的。這一點通過強RSA假設而被保證。
除了上述基本的吊銷方法之外,假設在用戶B最后一次更新其憑證和聚合器(從而用戶B擁有cbeb=w(mod n))之后,有k個用戶已經(jīng)被禁止,即CA公布了k個吊銷增量(e1,w1),(e2,w2),…,(ek,wk)?,F(xiàn)在,當用戶B為了更新其憑證而聯(lián)系CA時,用戶B可以1)從CA獲取e1,e2,…,e(k-1)和(ek,wk);2)計算E=(e1*e2*…*ek);并且3)找到滿足u*eb+v*E=1的u和v。只要CA為不同用戶選擇了不同的素數(shù)e,eb和E的最大公約數(shù)是1。因此,根據(jù)擴展歐幾里得算法,有唯一的u和v滿足u*eb+v*E=1。用戶B將其cb更新為cb1=wku*cbv(mod n)。注意,wk=(w(k- 1))1/e(k-1)=((w(k-2))1/e(k-2))1/e(k-1)=…=w1/E(mod n),很容易驗證cb1eb=wku*eb*cbv*eb=wku*eb*wv=wku*eb*(wkE)v=wk(u*eb+v*E)=wk(mod n),這意味著用戶B已經(jīng)得到了與最新的聚合器相對應的憑證。
在網(wǎng)絡帶寬利用以及計算消耗方面,這種壓縮的吊銷增量方法的優(yōu)點是顯著的。代替根據(jù)傳統(tǒng)技術從CA獲取(e1,w1),(e2,w2),…,(ek,wk),用戶B現(xiàn)在只需要獲取e1,e2,…,ek和wk。顯然,省略了(k-1)/2k%的數(shù)據(jù)傳輸。例如,k=10,則網(wǎng)絡的使用節(jié)省了45%??紤]計算消耗,根據(jù)傳統(tǒng)技術,由于每個吊銷增量需要2個模指數(shù)運算,所以不可避免地有2k個模指數(shù)運算。而壓縮的吊銷增量方法恒定地需要2個模指數(shù)運算。顯然,除去了(2k-2)/2k%,即(k-1)/k%的最為昂貴的模指數(shù)運算。例如,k=10,則計算消耗節(jié)省了90%。
根據(jù)CA的策略,CA可以公布如上面的(e,w)形式的吊銷增量,其中e是被吊銷的令牌,w是e被吊銷后的更新的聚合器?;蛘逤A可以公布(e1,e2,…,ek,w)的壓縮形式的吊銷增量,其中ei,i=1,2,…,k,是屬于被禁止的k個用戶的令牌,w是這些用戶被禁止之后的更新的聚合器。
根據(jù)CA的策略,CA可以公布吊銷數(shù)據(jù)包,其中在后的吊銷數(shù)據(jù)包實際上是在在前的吊銷數(shù)據(jù)包之后出現(xiàn)的吊銷增量的壓縮形式。具體地說,在后的吊銷數(shù)據(jù)包包括更新的聚合器和在在前的吊銷數(shù)據(jù)包之后出現(xiàn)的每個被吊銷的令牌的乘積。假設在在后的吊銷數(shù)據(jù)包Pi公布之后,k個用戶被禁止,他們的令牌分別是ei,i=1,2,…,k。在后的吊銷數(shù)據(jù)包P(i+1)是(E(i+1),w(i+1)),其中E(i+1)=e1*e2*…*ek,w(i+1)是在這些用戶被禁止之后的更新的聚合器。與上述壓縮的吊銷增量方法相比,用戶獲取E(i+1)而不是e1,e2,…,ek,并且用于計算e1*e2*…*ek,w(i+1)的步驟被省略。
CA的策略可以例如是每周公布吊銷數(shù)據(jù)包,或者每10個用戶被禁止銷時公布吊銷數(shù)據(jù)包。
圖4圖示了在兩個吊銷數(shù)據(jù)包之間有兩個吊銷增量的情況。
由于在后的吊銷數(shù)據(jù)包吸收了在在前的吊銷數(shù)據(jù)包之后出現(xiàn)的全部吊銷增量,所以可以推斷出在圖4中,E(i+1)=ej*e(j+1)并且w(i+1)=w(j+1)。這大大有益于網(wǎng)絡利用。假設并不涉及關鍵服務的驗證者選擇了只利用吊銷數(shù)據(jù)包進行更新的策略。如果驗證者已經(jīng)更新到吊銷數(shù)據(jù)包Pi,當在時刻T他希望再次與CA更新時,他將更新到數(shù)據(jù)包P(i+1),這意味著他只需要從CA獲取(E(i+1),w(i+1))。作為比較,利用壓縮的吊銷增量方法,用戶需要獲取ej,e(j+1)和w(j+1)。節(jié)省并非是直接的。因為E(i+1)=ej*e(j+1),所以用于E(i+1)的發(fā)送字節(jié)和用于ej加e(j+1)的發(fā)送字節(jié)是相同的。但是,由于CA必須以安全方式公布這些吊銷信息,傳輸中確實省略了一些東西。例如,如果CA對吊銷信息數(shù)字簽名,則ej和e(j+1)將分別附帶有數(shù)據(jù)簽名?,F(xiàn)在,很清楚,當引入吊銷數(shù)據(jù)包時,傳送E(i+1)而不是ej和e(j+1),節(jié)省了一個數(shù)字簽名。在該示例中,就數(shù)字簽名減少來說,節(jié)約了大約33%。通常,如果在兩個吊銷數(shù)據(jù)包之間出現(xiàn)k個吊銷增量,與壓縮的吊銷增量的方法相比,節(jié)省了(k-1)/(k+1)%。例如,如果k=10,則要被傳送的數(shù)字簽名節(jié)省了約82%。
圖5圖示了為了向CA更新憑證和聚合器,用戶將執(zhí)行的流程。如圖5所示,在框501,用戶確定是否需要更新。如果是,則在框502,用戶確定用于更新的策略。在框502,如果確定出策略是僅僅用吊銷數(shù)據(jù)包進行更新,則在框503,用戶獲取在上一次更新之后CA公布的吊銷數(shù)據(jù)包,然后在框505,根據(jù)所獲取的吊銷數(shù)據(jù)包,更新所持有的憑證和聚合器。否則,在框504,用戶獲取在上一次更新之后CA公布的吊銷數(shù)據(jù)包和壓縮的吊銷增量,然后在框505,根據(jù)所獲取的吊銷數(shù)據(jù)包和壓縮的吊銷增量更新所持有的憑證和聚合器。
圖6從系統(tǒng)體系結(jié)構(gòu)的角度圖示了根據(jù)本發(fā)明的一個實施例,CA、用戶和驗證者之間的動作和配合。
如圖6所示,CA向用戶授予憑證和令牌(601)。驗證者只需要聯(lián)系CA以獲得最新的聚合器(603),而用戶所需要的是吊銷增量或者吊銷數(shù)據(jù)包(602)。需要注意,只有當新近有用戶被禁止時,才有被CA公布并且要被用戶接收的吊銷增量。類似地,只有當新近有用戶被禁止時,才有被CA公布并且要被驗證者接收的最新的聚合器。因為只有當有用戶被禁止時才需要聯(lián)系CA進行更新,所以較大的更新間隔是可能的,這自然得到高效的結(jié)論。在例如每天有10個用戶被授權并且有一個用戶被禁止的增長的系統(tǒng)中,優(yōu)點是明顯的。此外,可以僅僅依賴于吊銷的歷史來設計更新間隔。例如,驗證者可以基于先前的令牌被吊銷時的時間序列的歷史,來預測下一次更新的時間。其中當新的用戶被授權時必須聯(lián)系CA進行更新的現(xiàn)有技術不能受益于簡化的設計。
利用更新的數(shù)據(jù),用戶可以向驗證者進行驗證(604)。
如圖6所示,除了從CA接收最近的聚合器之外,驗證者可以從用戶接收更新的聚合器(605)。例如當用戶過去擔當過驗證者并且從CA獲得了最近的聚合器時,可能發(fā)生該情況。當用戶后來試圖向不具有最新聚合器的驗證者進行驗證時,用戶可以將這些信息發(fā)送給驗證者。由于更新的聚合器被CA安全地公布,例如,被CA數(shù)字簽名,因此對于驗證者來說,接受不是來自CA而是來自要被驗證的用戶的更新的聚合器是安全的。
在其中驗證者愿意緩存一定量的吊銷數(shù)據(jù)的另一實施例中,用戶可以更新他/她的憑證,其中,必要的吊銷信息是從驗證者處接收的,如圖7所示。
例如當用戶只更新到了CA在2005年1月1日公布的聚合器,而驗證者更新到了CA在2005年1月10日公布的聚合器的時候,將發(fā)生這種情形。在1月1日與1月10日之間,有兩個用戶被CA禁止,即用戶P和用戶Q。因此,在1月1日之后有兩個令牌ep和eq被吊銷。假設驗證者緩存了吊銷增量(ep,wp)和(eq,wq)(703),當用戶試圖向驗證者驗證時,由于用戶持有的聚合器過時了10天,如果驗證者接受過時不超過15天的聚合器,則用戶可以基于10天之前公布的聚合器,直接向驗證者進行驗證。另一方面,如果驗證者接受過時不超過7天的聚合器,則驗證者可以根據(jù)壓縮的吊銷增量方法,將ep、eq和wq發(fā)送給用戶(705)。由于吊銷增量是由CA安全地公布的,例如,由CA數(shù)字簽名,所以用戶可以接受它們,并相應地計算其憑證,并更新到最新的聚合器。此后,用戶可以再次聯(lián)系驗證者,并基于最新的聚合器重新驗證。此時,真正的用戶無疑將通過驗證。可以構(gòu)建類似的示例,其中用戶從驗證者接收吊銷數(shù)據(jù)包。
由于只有某個時間閾值之內(nèi)的吊銷信息會被驗證者緩存,所以對于沒有大量惡意用戶的系統(tǒng),驗證者的存儲成本相對較小并且能夠負擔。如果某些活躍的驗證者向CA同步了最新的聚合器,并存儲了適量的吊銷信息(703),可以想象,這些信息將迅速傳播給到用戶和其他驗證者,而不再需要這些用戶和驗證者聯(lián)系CA。在降低CA負擔方面,尤其是在P2P環(huán)境中,這相當高效。
圖8示出了為了向CA更新,驗證者將執(zhí)行的示例流程。如圖8所示,在框801,驗證者確定是否需要更新。如果是,則在框802,驗證者確定是否只需要更新聚合器。如果是,則在框803,驗證者獲取CA公布的更新的聚合器。否則,在框804,驗證者獲取在上一次更新之后CA公布的吊銷數(shù)據(jù)包和壓縮吊銷增量。
圖9示出了當用戶由于所持有的聚合器過時而向驗證者驗證失敗時,用戶將執(zhí)行的示例流程。當用戶持有的聚合器過時,即比驗證者持有的聚合器陳舊時,用戶向驗證者的驗證將失敗(框901)。如圖9所示,在框902,用戶檢查是否他/她的聚合器過時了。如果是,則在框903,用戶嘗試從驗證者獲取適當?shù)牡蹁N更新信息,并在框904,更新所持有的憑證和聚合器。然后,用戶將通過更新的數(shù)據(jù)向驗證者進行驗證(框905)。如果在框902,確定出用戶所持有的聚合器并沒有過時,則過程進行到后處理(框905),其中例如用戶可以嘗試從CA獲取新的令牌和憑證,或者如果驗證者所持有的數(shù)據(jù)過時,則等待驗證者更新他的數(shù)據(jù)。
圖10示出了當用戶由于所持有的聚合器過時而向驗證者驗證失敗時(框1001),驗證者將執(zhí)行的示例流程。對應于圖9所示的過程,在框1002,如果確定出用戶所持有的聚合器過時了,則在框1003,驗證者檢查其緩存的吊銷更新信息。如果緩存的吊銷更新信息適合用戶進行更新,則在框1004,驗證者將其發(fā)送給用戶。在用戶更新其數(shù)據(jù)之后,用戶可以重新向驗證者進行驗證(框1005)。如果在框1002確定出用戶所持有的聚合器沒有過時,則處理進行到后處理(框905),其中例如驗證可以拒絕用戶,或者嘗試更新其所持有的數(shù)據(jù)。
用戶向驗證者驗證失敗也可能是因為驗證者所持有的聚合器過期,即比用戶持有的聚合器陳舊。類似地,如果確定出驗證者持有的聚合器過時了,則驗證者可以將其所持有的聚合器更新為與用戶持有的一樣新,并且重新執(zhí)行驗證。在該情況中,如上所述,驗證者可以從用戶或者CA處接收更新的數(shù)據(jù)。
在本發(fā)明的另一個實施例中,除了最新更新的數(shù)據(jù)之外,用戶還可以保存一定數(shù)量的舊數(shù)據(jù)(例如,過去的聚合器以及它們對應的憑證)。如果在驗證期間確定出驗證者持有的聚合器過時了,則用戶可以使用與該驗證者所持有的聚合器相對應的舊數(shù)據(jù)來重新執(zhí)行驗證。類似地,驗證者也可以保存一定數(shù)量的過去的聚合器。如果在驗證期間確定出用戶持有的聚合器過時了,則驗證者可以使用與該用戶所持有的數(shù)據(jù)相對應的舊的聚合器來重新執(zhí)行驗證。例如,當驗證者能夠承擔一定的風險,或者確信在所述舊的數(shù)據(jù)公布時刻之后的CA動作將不會影響對該用戶的信任的時候,可以出現(xiàn)上述情況。
如上所述,如果用戶向驗證者驗證失敗,用戶可以從驗證者處獲得更新的信息,或者驗證者可以從用戶處獲得更新的信息。但是,當驗證失敗時,驗證者和用戶中的任一個都可以向CA進行更新。根據(jù)具體的環(huán)境,更新策略是靈活的。
根據(jù)本發(fā)明,被聚合的值可以是從不公開的秘密。當新的用戶被CA授權的時候,用戶和驗證者不需要更新聚合器。這在低計算開銷以及網(wǎng)絡帶寬消耗方面,對于CA、用戶和驗證者是有意義的。
此外,可以以壓縮格式獲取吊銷更新信息,這在低計算開銷以及網(wǎng)絡帶寬消耗方面是有利的。并且,可以以壓縮格式公布吊銷更新信息,這在低計算開銷以及網(wǎng)絡帶寬消耗方面也是有利的。
此外,驗證者可以從用戶處代替從CA處接收最新的聚合器,并且用戶可以從驗證者處代替從CA處接收吊銷更新信息,并從而同步到最新的聚合器。結(jié)果,CA的負擔大大降低,而新近的用戶驗證數(shù)據(jù)可以迅速地傳播。
圖11示出了根據(jù)本發(fā)明一個實施例的示例性CA裝置110。
裝置110主要包括用于生成和更新聚合器的聚合器計算單元111、用于授權用戶訪問服務的授權單元112,以及通信單元114,通信單元114耦合到聚合器計算單元111和授權單元112,用于在網(wǎng)絡上公布數(shù)據(jù)并與用戶通信。
授權單元可以包括彼此耦合的令牌選擇模塊117和憑證生成模塊118。當新的用戶要被授權訪問服務時,令牌選擇模塊117為該用戶選擇一個令牌,并且憑證生成模塊118使用聚合器和令牌選擇模塊117所選擇的令牌,計算用于該用戶的憑證。然后,通信單元114將所選擇的令牌和所計算的憑證傳送給用戶。
聚合器計算單元111可以包括用于生成初始聚合器的初始聚合器生成模塊115,以及用于當一個或多個令牌被吊銷時更新聚合器的聚合器更新模塊116。
裝置110還包括耦合到聚合器計算單元111的吊銷增量單元113。當一個或多個令牌被吊銷時,吊銷增量單元113根據(jù)本發(fā)明的方法,生成吊銷增量數(shù)據(jù),并經(jīng)由通信單元114公布該數(shù)據(jù)。例如,吊銷增量單元113可以將吊銷增量數(shù)據(jù)組裝為如上所述的一組吊銷增量、壓縮的吊銷增量或者吊銷數(shù)據(jù)包。
如果用戶在被授權訪問服務之前必須經(jīng)過某種檢驗,則CA裝置110還可以包括用于執(zhí)行這種檢驗的檢驗單元。
此外,裝置110還可以包括存儲單元119,用于存儲CA所使用的數(shù)據(jù),例如授予用戶的令牌、系統(tǒng)參數(shù)、各個單元所使用的數(shù)據(jù)等等。
裝置110還可以包括控制單元101,用于控制CA的策略以及每個單元或部件的整體操作。例如,控制單元101確定更新的時間和吊銷增量數(shù)據(jù)的格式。根據(jù)具體應用,裝置110還可以包括其他單元,例如用于接收和分析來自用戶的授權請求的單元、用于選擇了計算RSA參數(shù)或者其他系統(tǒng)參數(shù)的單元等等。由于本領域的技術人員可以容易地添加這樣的單元或者部件,因此省略對其的詳細描述。
裝置110可以是連接到網(wǎng)絡的獨立裝置,或者是服務器的一部分。它可以被實現(xiàn)為專用硬件,或者基于通用硬件功能的編程的功能模塊。
圖12示出了根據(jù)本發(fā)明一個實施例的示例性用戶終端120。
用戶終端120主要包括聚合器存儲單元121、令牌存儲單元123、憑證存儲單元122、導出憑證生成單元125、證明單元126和通信單元127,其中聚合器存儲單元121用于存儲聚合器;令牌存儲單元123用于存儲CA授予的令牌;憑證存儲單元122用于存儲CA授予的憑證;導出憑證生成單元125耦合到憑證存儲單元123;證明單元126耦合到聚合器存儲單元121、令牌存儲單元123和導出憑證生成單元125;通信單元127耦合到上述各單元,用于與CA和驗證者通信。注意,根據(jù)本發(fā)明的一個實施例,聚合器存儲單元121和憑證存儲單元122分別只存儲最新的聚合器和憑證。然而,在本發(fā)明的另一個實施例中,除了最新的聚合器和憑證之外,聚合器存儲單元121和憑證存儲單元122還存儲一定數(shù)量的過去的聚合器和憑證。
在用戶被CA授權訪問服務之后,導出憑證生成單元125從存儲在憑證存儲單元122中的憑證生成導出憑證。通過導出憑證,證明單元126可以如上所述地與驗證者執(zhí)行知識證明。
用戶終端120還包括與聚合器存儲單元121和憑證存儲單元122耦合的更新單元124。在經(jīng)由通信單元127從CA或者驗證者接收吊銷增量數(shù)據(jù)之后,更新單元124基于吊銷增量數(shù)據(jù),計算更新的憑證,并更新存儲在聚合器存儲單元121中的聚合器以及存儲在憑證存儲單元122中的憑證。此后,導出憑證生成單元125將從更新的憑證計算出導出憑證。在與驗證者的知識證明中,將使用新的導出憑證。
另外,用戶終端120還可以包括用于控制各單元操作的控制單元128。例如,控制單元128確定是否到了該更新數(shù)據(jù)的時刻,并且確定是從CA還是從驗證者接收更新的信息。除了上述存儲單元之外,用戶終端120可以包括其他存儲單元,用于存儲在終端操作期間所需的其他數(shù)據(jù)和信息。這些存儲單元可以彼此獨立,或者作為不同的存儲區(qū)合并在單個存儲器中。
圖13示出了根據(jù)本發(fā)明一個實施例的示例性驗證者終端130。
如圖13所示,驗證者終端130主要包括更新單元131、驗證單元132、服務單元133、通信單元134、存儲單元135和控制單元136。驗證單元132耦合到通信單元134,并適合于通過知識證明對用戶進行驗證。如果驗證單元132確定出用戶是被CA授權的,即證明出用戶的令牌被聚合在聚合器中,則它通知服務單元133。然后,服務單元133可以開始向用戶提供服務,例如,允許用戶訪問驗證者終端130的特定內(nèi)容或者開始與用戶的即時會話。更新單元131耦合到驗證單元132。在控制單元136的控制下,更新單元131從CA或者用戶處獲取更新的聚合器或者吊銷增量數(shù)據(jù)。更新的聚合器被驗證單元132用于驗證用戶。存儲單元135用于存儲驗證者終端130的操作所需的數(shù)據(jù)。根據(jù)本發(fā)明的一個實施例,存儲單元135還存儲由CA公布的吊銷數(shù)據(jù)(例如吊銷數(shù)據(jù)包或壓縮的吊銷增量)。此外,根據(jù)本發(fā)明的另一個實施例,除了最新的數(shù)據(jù)之外,存儲單元135還存儲一定數(shù)量的歷史數(shù)據(jù),例如,一系列過去的聚合器??刂茊卧?36控制各個單元的操作。例如,控制單元136確定更新的時刻和方式。在本發(fā)明的一個實施例中,控制單元136確定是從用戶還是從CA接收更新的聚合器,或者確定是否向用戶提供緩存的吊銷數(shù)據(jù)。
上面已經(jīng)描述了CA裝置以及用戶和驗證者的終端的示例。但是,它們的結(jié)構(gòu)并不限于任何特定的實施例??梢杂性S多替換的結(jié)構(gòu)或者對它們有許多修改。例如,所描述的兩個或者更多個單元可以被組合為單個硬件(例如,圖12所示的聚合器存儲單元121、憑證存儲單元122和令牌存儲單元123可以是單個存儲器)。一個單元也可以被分為不同的單元(例如,圖13所示的存儲單元135可以被分為分別建立在更新單元131、驗證單元132、服務單元133、控制單元136等中的若干存儲器件)。此外,用戶終端120和驗證者終端130可以被組合在一個終端中。這種情況發(fā)生在用戶在網(wǎng)絡中有時也擔當驗證者的時候。
CA裝置、用戶終端和驗證者終端可以基于專用硬件實現(xiàn),或者基于通用硬件實現(xiàn)。例如,如果終端被實現(xiàn)為通用計算機,終端還可以包括在通用計算機中出現(xiàn)的通用單元,例如鍵盤、顯示器、數(shù)據(jù)總線等等。在這樣的實現(xiàn)方式中,上述控制單元可以是計算機的中央處理單元(CPU),并且每個單元可以是軟件模塊,當被執(zhí)行時,使得CPU執(zhí)行預定的過程。
本發(fā)明可以實現(xiàn)為硬件、軟件、固件或者它們的組合,并且可以用在它們的系統(tǒng)、子系統(tǒng)、部件或者子部件中。當以軟件方式實現(xiàn)時,本發(fā)明的元素實質(zhì)上是被用于執(zhí)行所需任務的程序或者代碼段。程序或者代碼段可以存儲在機器可讀介質(zhì)中,或者通過載波中攜帶的數(shù)據(jù)信號在傳輸介質(zhì)或者通信鏈路上傳送?!皺C器可讀介質(zhì)”可以包括能夠存儲或傳輸信息的任何介質(zhì)。機器可讀介質(zhì)的例子包括電子電路、半導體存儲器設備、ROM、閃存、可擦除ROM(EROM)、軟盤、CD-ROM、光盤、硬盤、光纖介質(zhì)、射頻(RF)鏈路,等等。代碼段可以經(jīng)由諸如因特網(wǎng)、內(nèi)聯(lián)網(wǎng)等的計算機網(wǎng)絡被下載。
本發(fā)明可以以其他的具體形式實現(xiàn),而不脫離其精神和本質(zhì)特征。例如,特定實施例中所描述的算法可以被修改,而系統(tǒng)體系結(jié)構(gòu)并不脫離本發(fā)明的基本精神。因此,當前的實施例在所有方面都被看作是示例性的而非限定性的,本發(fā)明的范圍由所附權利要求而非上述描述定義,并且,落入權利要求的含義和等同物的范圍內(nèi)的全部改變從而都被包括在本發(fā)明的范圍之中。
權利要求
1.一種用于在通信網(wǎng)絡中生成和更新用戶驗證數(shù)據(jù)的裝置,包括聚合器計算單元,適合于生成和更新用于聚合被授權用戶的令牌的聚合器;與所述聚合器計算單元耦合的授權單元,所述令牌選擇單元包括令牌選擇模塊和與所述令牌選擇模塊耦合的憑證生成模塊,所述令牌選擇模塊適合于為要被授權的用戶選擇令牌,并且所述憑證生成模塊適合于從所述令牌和所述聚合器生成憑證,其中所述憑證被用于用戶證明所述令牌被聚合在所述聚合器中;和與所述聚合器計算單元、所述授權單元和所述網(wǎng)絡耦合的通信單元,適合于在所述網(wǎng)絡上公布所述聚合器以及將所述令牌和所述憑證傳送給所述用戶。
2.根據(jù)權利要求1所述的裝置,其中所述聚合器計算單元包括初始聚合器生成模塊和聚合器更新模塊,所述初始聚合器生成模塊適合于生成初始聚合器,所述聚合器更新模塊適合于基于一個或多個被吊銷的令牌,更新所述聚合器,并且所述裝置還包括與所述聚合器計算單元耦合的吊銷增量單元,適合于生成和公布吊銷增量數(shù)據(jù),所述吊銷增量數(shù)據(jù)包括更新的聚合器以及關于所述被吊銷的令牌的增量數(shù)據(jù)。
3.根據(jù)權利要求2所述的裝置,其中,所述吊銷增量單元將所述吊銷增量數(shù)據(jù)生成為下列至少一種一組吊銷增量,其中每個所述吊銷增量包括所述被吊銷的令牌中的一個,以及在該令牌被吊銷之后計算的相應的聚合器;壓縮的吊銷增量,包括所述更新的聚合器,以及每個所述被吊銷的令牌;以及吊銷數(shù)據(jù)包,包括所述更新的聚合器,以及每個所述被吊銷的令牌的乘積。
4.一種用于在通信網(wǎng)絡中生成和更新用戶驗證數(shù)據(jù)的方法,包括以下步驟生成并公布用于聚合被授權用戶的令牌的聚合器;為要被授權的用戶選擇令牌;從所述令牌和所述聚合器生成憑證,其中所述憑證被用于用戶證明所述令牌被聚合在所述聚合器中;以及將所述憑證和所述令牌傳送給所述被授權的用戶。
5.根據(jù)權利要求4所述的方法,還包括當一個或多個令牌被吊銷時,基于所述被吊銷的令牌,更新所述聚合器;以及生成并公布從上一次更新的時刻開始計算的吊銷增量數(shù)據(jù),其中,所述吊銷增量數(shù)據(jù)包括更新的聚合器以及關于從上一次更新的時刻開始的所述被吊銷的令牌的增量數(shù)據(jù)。
6.根據(jù)權利要求5所述的方法,其中,所述吊銷增量數(shù)據(jù)被公布為下列形式中的至少一種一組吊銷增量,其中每個所述吊銷增量包括所述被吊銷的令牌中的一個,以及在所述令牌被吊銷之后計算的相應的聚合器;壓縮的吊銷增量,包括所述更新的聚合器,以及每個所述被吊銷的令牌;以及吊銷數(shù)據(jù)包,包括所述更新的聚合器,以及每個所述被吊銷的令牌的乘積。
7.一種用于用戶在通信網(wǎng)絡中向驗證者進行驗證的終端,所述網(wǎng)絡包括至少一個憑證授權機構(gòu),所述終端包括耦合到所述網(wǎng)絡的通信單元;與所述通信單元耦合的聚合器存儲單元,適合于存儲由所述憑證授權機構(gòu)生成的聚合器;與所述通信單元耦合的令牌存儲單元,適合于存儲從所述憑證授權機構(gòu)發(fā)出的令牌;與所述通信單元耦合的憑證存儲單元,適合于存儲由所述憑證授權機構(gòu)從所述聚合器和所述令牌生成的憑證;與所述憑證存儲單元耦合的導出憑證生成單元,適合于從存儲在所述憑證存儲單元中的憑證生成導出憑證;和與所述聚合器存儲單元、所述令牌存儲單元和所述導出憑證生成單元耦合的證明單元,適合于使用所述導出憑證與所述驗證者執(zhí)行知識證明,以證明所述令牌被聚合在所述聚合器中,而不暴露所述令牌。
8.根據(jù)權利要求7所述的終端,還包括與所述聚合器存儲單元和所述憑證存儲單元耦合的更新單元,適合于基于從所述憑證授權機構(gòu)和所述驗證者中的一個接收的吊銷增量數(shù)據(jù),更新存儲在所述聚合器存儲單元中的聚合器和存儲在所述憑證存儲單元中的憑證。
9.根據(jù)權利要求8所述的終端,其中,所述聚合器存儲單元除了最新更新的聚合器之外還存儲預定量的過去的聚合器,并且所述憑證存儲單元除了最新更新的憑證之外還存儲預定量的過去的憑證。
10.一種用于用戶在通信網(wǎng)絡中向驗證者進行驗證的方法,所述網(wǎng)絡包括至少一個憑證授權機構(gòu),所述方法包括以下步驟接收由所述憑證授權機構(gòu)生成的聚合器;接收由所述憑證授權機構(gòu)發(fā)出的令牌;接收由所述憑證授權機構(gòu)從所述聚合器和所述令牌生成的憑證;從所述憑證計算導出憑證;以及使用所述導出憑證與所述驗證者執(zhí)行知識證明,以證明所述令牌被聚合在所述聚合器中,而不暴露所述令牌。
11.根據(jù)權利要求10所述的方法,還包括從所述憑證授權機構(gòu)和所述驗證者中的一個接收吊銷增量數(shù)據(jù);以及基于所述吊銷增量數(shù)據(jù),更新所述聚合器和所述憑證。
12.根據(jù)權利要求11所述的方法,還包括存儲除了最新更新的聚合器和憑證之外的預定量的過去的聚合器和憑證,并且其中所述執(zhí)行知識證明的步驟包括使用從與所述驗證者保持的聚合器相對應的憑證計算出的導出憑證,與所述驗證者執(zhí)行知識證明。
13.一種通信系統(tǒng),包括通過網(wǎng)絡可操作地耦合的至少一個憑證授權機構(gòu)裝置、至少一個用戶終端和至少一個驗證者終端,其中所述憑證授權機構(gòu)裝置包括聚合器計算單元和與所述聚合器計算單元耦合的授權單元,其中,所述聚合器計算單元適合于生成和更新用于聚合被授權用戶的令牌的聚合器,并且所述授權單元包括令牌選擇模塊和與所述令牌選擇模塊耦合的憑證生成模塊;所述用戶終端包括導出憑證生成單元和證明單元;并且所述驗證者終端包括驗證單元,并且其中當所述用戶被授權時,所述令牌選擇模塊一個令牌,并且所述憑證生成模塊從所述令牌和所述聚合器生成憑證,所述令牌和所述憑證被從所述憑證授權裝置傳送到所述用戶終端;所述導出憑證生成單元適合于從所述憑證生成導出憑證;并且所述用戶終端的證明單元與所述驗證者終端的所述驗證單元適合于使用所述導出憑證執(zhí)行知識證明,以證明所述令牌被聚合在所述聚合器中,而不暴露所述令牌。
14.根據(jù)權利要求13所述的系統(tǒng),其中所述憑證授權機構(gòu)裝置還包括吊銷增量單元,并且當一個或多個令牌被吊銷時,所述聚合器計算單元基于所述被吊銷的令牌,更新所述聚合器;并且所述吊銷增量單元生成并公布吊銷增量數(shù)據(jù),所述吊銷增量數(shù)據(jù)包括更新的聚合器以及關于所述被吊銷的令牌的增量數(shù)據(jù)。
15.根據(jù)權利要求14所述的系統(tǒng),其中,所述吊銷增量數(shù)據(jù)被公布為下列形式中的至少一種一組吊銷增量,其中每個所述吊銷增量包括所述被吊銷的令牌中的一個,以及在所述令牌被吊銷之后計算的相應的聚合器;壓縮的吊銷增量,包括所述更新的聚合器,以及每個所述被吊銷的令牌;以及吊銷數(shù)據(jù)包,包括所述更新的聚合器,以及每個所述被吊銷的令牌的乘積。
16.根據(jù)權利要求14所述的系統(tǒng),其中,所述用戶終端還包括更新單元,用于基于從所述憑證授權機構(gòu)裝置和所述驗證者終端中的一個接收的所述吊銷增量數(shù)據(jù),更新所述用戶終端保持的聚合器和所述憑證。
17.根據(jù)權利要求14所述的系統(tǒng),其中,所述驗證者終端還包括更新單元,用于通過從所述憑證授權機構(gòu)裝置和所述用戶終端中的一個接收的更新的聚合器,更新所述驗證者終端保持的聚合器。
18.一種用于在通信網(wǎng)絡中驗證用戶的方法,所述網(wǎng)絡包括至少一個憑證授權機構(gòu)和至少一個驗證者,所述方法包括以下步驟由所述憑證授權機構(gòu)生成并公布用于聚合被授權用戶的令牌的聚合器;將由所述憑證授權機構(gòu)發(fā)出的令牌和憑證傳送給要被授權的用戶,所述憑證是由所述憑證授權機構(gòu)從所述令牌和所述聚合器生成的;由用戶從所述憑證計算導出憑證;將所述導出憑證從所述用戶傳送到所述驗證者;以及在所述用戶與所述驗證者之間使用所述導出憑證執(zhí)行知識證明,以證明所述令牌被聚合在所述聚合器中,而不暴露所述令牌。
19.根據(jù)權利要求18所述的方法,還包括當一個或多個令牌被所述憑證授權機構(gòu)吊銷時,由所述憑證授權機構(gòu)基于所述被吊銷的令牌,更新所述聚合器;以及由所述憑證授權機構(gòu)公布從上一次更新的時刻開始計算的吊銷增量數(shù)據(jù),其中,所述吊銷增量數(shù)據(jù)包括更新的聚合器以及關于從上一次更新的時刻開始的所述被吊銷的令牌的增量數(shù)據(jù)。
20.根據(jù)權利要求19所述的方法,其中,所述吊銷增量數(shù)據(jù)被公布為下列形式中的至少一種一組吊銷增量,其中每個所述吊銷增量包括所述被吊銷的令牌中的一個,以及在所述令牌被吊銷之后計算的相應的聚合器;壓縮的吊銷增量,包括所述更新的聚合器,以及每個所述被吊銷的令牌;以及吊銷數(shù)據(jù)包,包括所述更新的聚合器,以及每個所述被吊銷的令牌的乘積。
21.根據(jù)權利要求19所述的方法,還包括用戶基于從所述憑證授權機構(gòu)和所述驗證者中的一個接收的所述吊銷增量數(shù)據(jù),更新所保持的聚合器和憑證。
22.根據(jù)權利要求19所述的方法,還包括驗證者通過從所述憑證授權機構(gòu)和所述用戶中的一個接收的更新的聚合器,更新所保持的聚合器。
23.一種具有機器可讀介質(zhì)的制品,所述機器可讀介質(zhì)上存儲有指令,所述指令當被一個或多個處理器執(zhí)行時,使得所述處理器生成并公布用于聚合被授權用戶的令牌的聚合器;為要被授權的用戶選擇令牌;從所述令牌和所述聚合器生成憑證,其中所述憑證被用于用戶證明所述令牌被聚合在所述聚合器中;以及將所述憑證和所述令牌傳送給所述被授權的用戶。
24.根據(jù)權利要求23所述的制品,其中,所述指令還使得所述處理器當一個或多個令牌被吊銷時,基于所述被吊銷的令牌更新所述聚合器;以及生成并公布從上一次更新的時刻開始計算的吊銷增量數(shù)據(jù),其中,所述吊銷增量數(shù)據(jù)包括更新的聚合器以及關于從上一次更新的時刻開始的所述被吊銷的令牌的增量數(shù)據(jù)。
25.一種具有機器可讀介質(zhì)的制品,所述機器可讀介質(zhì)上存儲有指令,所述指令當被一個或多個處理器執(zhí)行時,使得所述處理器接收由憑證授權機構(gòu)生成的聚合器;接收由所述憑證授權機構(gòu)發(fā)出的令牌;接收由所述憑證授權機構(gòu)從所述聚合器和所述令牌生成的憑證;從所述憑證計算導出憑證;以及使用所述導出憑證與驗證者執(zhí)行知識證明,以證明所述令牌被聚合在所述聚合器中,而不暴露所述令牌。
26.根據(jù)權利要求25所述的制品,其中,所述指令還使得所述處理器從所述憑證授權機構(gòu)和所述驗證者中的一個接收吊銷增量數(shù)據(jù);以及基于所述吊銷增量數(shù)據(jù),更新所述聚合器和所述憑證。
全文摘要
提供了一種用于通信網(wǎng)絡的用戶驗證系統(tǒng)和方法。憑證授權機構(gòu)公布聚合器,并向被授權訪問服務的用戶授予令牌和憑證。用戶基于憑證授權機構(gòu)授予的憑證,自己計算導出憑證,并使用導出憑證向驗證者進行證明。如果新的用戶被授權,其他用戶和驗證者無需更新任何數(shù)據(jù)。如果曾經(jīng)被授權的用戶被禁止,即他/她的令牌被吊銷,則憑證授權機構(gòu)基于被禁止的用戶的令牌,計算更新的聚合器,并公布吊銷增量數(shù)據(jù),其包括更新的聚合器和關于被吊銷的令牌的增量數(shù)據(jù)。其他用戶基于接收的更新的吊銷增量數(shù)據(jù),自己計算他們的更新的憑證。吊銷增量數(shù)據(jù)可以多種形式公布,并在憑證授權機構(gòu)、用戶和驗證者之間快速傳播。
文檔編號H04L9/16GK1968086SQ20051012354
公開日2007年5月23日 申請日期2005年11月17日 優(yōu)先權日2005年11月17日
發(fā)明者曾珂, 藤田友之, 薛敏宇 申請人:日電(中國)有限公司