專利名稱:用于具有屬性的用戶證明簽名的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于生成和驗證用戶證明簽名(attestation-signature)值并頒發(fā)用于生成用戶證明簽名值的證明值的方法。另外,本發(fā)明涉及用于使用用戶證明簽名值的系統(tǒng)。此外,本發(fā)明還涉及用于執(zhí)行該方法的計算機程序單元以及用于使計算機執(zhí)行該方法的存儲在計算機可用介質(zhì)上的計算機程序產(chǎn)品。
背景技術(shù):
計算機已發(fā)展成用于許多應(yīng)用和服務(wù)的工具。在當今世界里,越來越需要可信賴的計算環(huán)境。需要綜合的信任、安全和私密功能以在內(nèi)容提供者、應(yīng)用和服務(wù)提供者、消費者、企業(yè)和金融機構(gòu)尤其是用戶可依賴的設(shè)備之間建立多方信任。
為此,已建立可信平臺模塊(TPM)。該模塊的作用是提供受保護的存儲、平臺認證、受保護的加密過程和可證明狀態(tài)能力以為計算平臺提供一信任等級。此信任的基礎(chǔ)是公認的管理機構(gòu)作出的平臺對于預(yù)期用途可信的認證。所謂的可信計算機組(TCG)為在多個平臺包括個人計算機、服務(wù)器、PDA和數(shù)字電話之間的可信計算硬件構(gòu)件塊和軟件接口開發(fā)和促進開放工業(yè)標準規(guī)范。這將使能進行更安全的數(shù)據(jù)存儲、在線業(yè)務(wù)實踐和在線商業(yè)交易,同時保護私密和個人權(quán)利。用戶將具有更安全的本地數(shù)據(jù)存儲和更低的來自外部軟件攻擊和物理盜竊兩者的身份盜竊的風(fēng)險。
為了實現(xiàn)可證明狀態(tài)的功能,發(fā)布者向下文也被簡稱為TPM的可信平臺模塊發(fā)布證書以便允許TPM以后遠程證明其是真正的TPM,并因此驗證方可具有由TPM聲明和證明的置信度。為了允許TPM證明其是真正的而無需驗證方能夠識別TPM,可信計算機組已規(guī)定了所謂的直接匿名證明(direct anonymous attestation)(DAA)協(xié)議。該協(xié)議允許TPM使驗證方確信其已獲得發(fā)布者的證明而無需顯露其身份。
此外,TCG規(guī)定了DAA頒發(fā)協(xié)議以向平臺的TPM提供證明(具有證書),以便平臺可以后向任何當事方證明其保存有證明,而驗證方不會識別該平臺或?qū)⒋俗C明證據(jù)與該平臺提供的其他證明證據(jù)相聯(lián)系。
但是,直接匿名證明過程不允許包括平臺可在證實其得到證明時以匿名方式使用或示出給驗證者的謂詞或?qū)傩浴?br>
從上文可見,本領(lǐng)域中仍需要改進的允許具有在事務(wù)內(nèi)保持匿名的被認證/證明的屬性或?qū)傩灾档淖C明的協(xié)議和系統(tǒng)。
詞匯表下文給出一些非正式的定義以幫助理解說明書。
屬性-具有各自屬性值w、x、y、z的A、B、C、Dx,y-證明者(attester)隱藏屬性值,或用戶確定的屬性值w,z-證明者顯露屬性值、證明者確定的屬性值,或匿名屬性值w,y-驗證者隱藏屬性值x,z-驗證者顯露屬性值、顯露的屬性值或非匿名屬性值TPM-可信平臺模塊PKUC-用戶公鑰PKAC-具有值n,g,g’,h,S,Z,R0,R1,Γ,γ,ρ的證明者公鑰PK’AC-修改的證明者公鑰SKAC-證明者秘密密鑰cert-證明值cert’-用戶值DAA’-用戶證明簽名值DAA-安全模塊證明值,或用戶證明簽名值的一部分
f0,f1,v’-TPM秘密值a-證明值cert的第一部分,或第一證明值c,sf0,sf1,sv,sx,sy-證據(jù)值,其中sx,sy是擴充的證據(jù)值c-證據(jù)值的一部分c’-第二證據(jù)驗證值C’-第二簽名值,或中間用戶證明簽名值ch-中間證據(jù)值e-證明值cert的第二部分,是隨機素數(shù)G’-第一用戶證明簽名驗證值G,sf0’,sf1’,sv’-安全模塊證明值DAA的一部分sy’,sw’,se’,seu’-用戶證明簽名值DAA’的一部分T1-用戶證明簽名值DAA’的一部分T’1-第一簽名值,或第一安全模塊證明值T”1-中間用戶證明簽名值T1-中間用戶證明簽名驗證值U-安全模塊的公鑰PKTPM的一部分U’-中間證據(jù)值U”-第一證據(jù)驗證值U-中間證書值v-秘密簽名值,其中v=v’+v”v”-證明值cert的第三部分,是隨機整數(shù)W-第一中間用戶證據(jù)值W’-第二中間用戶證據(jù)值發(fā)明內(nèi)容下文提出了一種允許具有在事務(wù)內(nèi)保持匿名的被認證/證明的屬性或?qū)傩灾档淖C明的系統(tǒng)和方法。通常,證明可包括可以后匿名示出的謂詞。就是說,證明可包括平臺或其用戶的一些特性或?qū)傩?。在用戶的具有可信平臺模塊的用戶計算機、證明者或證明者計算機例如私密認證管理機構(gòu)、和通常是驗證計算機的驗證者或驗證方之間執(zhí)行事務(wù)。如所指出的,用戶設(shè)備具有在此也被稱為可信平臺模塊(TPM)的安全模塊,并且它們被共同稱為平臺,其允許平臺認證、被保護的加密過程以及可證明狀態(tài)能力。當TPM匿名證實其得到證明時,每個特性或?qū)傩钥杀皇境龌螂[藏。例如,平臺具有證明可表示它是某公司的有效平臺例如膝上型電腦、PDA、移動設(shè)備等。然后,可使用屬性來編碼該公司的特定分支或站點。當證實其具有得到的證明時,可準許該平臺訪問某些資源例如該公司的LAN(經(jīng)由無線接入點或公共因特網(wǎng))。然后,可使用特性/屬性來例如告知它是本地用戶或來自其他部門的客人。
證明內(nèi)包含的屬性或特性可由用戶、證明者或他們一起確定。
另一種選擇是將平臺的一些特性/屬性存儲在TPM內(nèi),并然后使TPM將以臨時秘密密鑰簽名的它們發(fā)送的驗證者,TPM用匿名證明協(xié)議對該秘密密鑰的公鑰簽名。這些特性/屬性可在制造期間被寫入TPM并此后不會再改變。很明顯,這允許僅處理TPM支持的特性/屬性且不允許改變它們,這相當不靈活。但是,在提出的系統(tǒng)和方法中,特性/屬性的數(shù)量和種類沒有被TPM約束,特性/屬性可被改變,并且特性/屬性可被任何人即也被與制造者不同的實體認證。
每個特性或?qū)傩跃哂刑匦曰驅(qū)傩灾?。下文為了簡單起見,僅使用屬性和屬性值。
根據(jù)本發(fā)明,提供了一種用于使用用戶證明簽名值DAA’的系統(tǒng),該用戶證明簽名值對應(yīng)于至少一個具有屬性值(w,x,y,z)的屬性(A,B,C,D),零個、一個或多個屬性值(x,y)對于事務(wù)和在事務(wù)內(nèi)保持匿名。該系統(tǒng)包括具有提供模塊公鑰PKTPM和安全模塊證明值DAA的安全模塊的用戶設(shè)備。該用戶設(shè)備提供用戶公鑰PKUC,該用戶公鑰內(nèi)在地包含用戶確定的屬性值(x,y)和表明用戶公鑰PKUC有效地得自安全模塊的模塊公鑰PKTPM的證據(jù)值。系統(tǒng)還包括提供證明者確定的屬性值(w,z)和證明值cert的證明者計算機,該證明值基于證明者秘密密鑰SKAC、用戶公鑰PKUC和通常證明者確定的屬性值(w,z)。系統(tǒng)還包括用于驗證以下各項的驗證計算機(i)用戶證明簽名值DAA’是否有效地得自安全模塊22提供的安全模塊證明值DAA和證明值cert,以及(ii)證明值cert是否與至少一個屬性的子集(B,D)相關(guān)聯(lián),該子集(B,D)內(nèi)的每個屬性具有顯露的屬性值(x,z)。
根據(jù)本發(fā)明的另一個方面,提供了一種用于生成與驗證計算機一起使用的用戶證明簽名值DAA’的方法,該用戶證明簽名值DAA’對應(yīng)于至少一個屬性(A,B,C,D),每個該屬性具有屬性值(w,x,y,z),零個、一個或多個屬性值(w,y)在可被具有安全模塊的用戶設(shè)備與驗證計算機執(zhí)行的事務(wù)內(nèi)保持匿名。該方法包括以下步驟提供用戶公鑰PKUC和表明用戶公鑰PKUC有效地得自安全模塊的模塊公鑰PKTPM的證據(jù)值;從證明者計算機接收(I)具有至少一個具有其屬性值(w,x,y,z)的屬性(A,B,C,D)的證明值cert,零個、一個或多個屬性值(x,y)對于該證明者計算機保持未知,該證明值cert得自證明者秘密密鑰SKAC、用戶公鑰PKUC和零個、一個或多個證明者確定的屬性值(w,z),用戶公鑰PKUC內(nèi)在地包括零個、一個或多個用戶確定的屬性值x,y,以及(II)至少一個證明者確定的屬性值(w,z);以及從證明值cert和該安全模塊提供的安全模塊證明值DAA得到用戶證明簽名值DAA’,其中可驗證(i)用戶證明簽名值DAA’是否有效地得自安全模塊證明值DAA和證明值cert,以及(ii)證明值cert是否與至少一個屬性的子集(B,D)相關(guān)聯(lián),該子集(B,D)內(nèi)的每個屬性具有顯露的屬性值(x,z)。
所述得到用戶證明簽名值DAA’的步驟還可包括以下步驟從安全模塊接收第一安全模塊證明值T’1;使用證明者公鑰PKAC和散列函數(shù)從第一安全模塊證明值T’1得到中間用戶證明簽名值C’;將中間用戶證明簽名值C’提供給安全模塊;從安全模塊接收用戶證明簽名值DAA’的一部分;以及由用戶設(shè)備使用零個、一個或多個屬性值(w,y),被接收到的用戶證明簽名值DAA’的部分,用戶公鑰PKUC和證明者公鑰PKAC,來計算用戶證明簽名值DAA’的另外的部分,所述屬性值(w,y)被編碼在證明值cert內(nèi)而沒有顯露給驗證者,并因此還被稱為驗證者隱藏屬性值(w,y)的。這確保了這些屬性對于驗證計算機保持是未知的。
可通過使用證明者公鑰PKAC和一個或多個屬性值(x,y)從模塊公鑰PKTPM得到用戶公鑰PKUC。通過這樣做,確認了這些證明者隱藏屬性值(x,y)保持對于證明者即證明者計算機是未知的。
用戶設(shè)備可利用可信第三方的公鑰提供對于驗證計算機保持是未知的一個或多個驗證者隱藏屬性值(w,y)即用戶確定的屬性值w,y的加密。這允許可信第三方以后恢復(fù)驗證者隱藏屬性值(w,y)。
根據(jù)本發(fā)明的另一個方面,提供了一種用于頒發(fā)證明值cert以便生成對應(yīng)于至少一個屬性(A,B,C,D)的用戶證明簽名值DAA’的方法,每個該屬性具有屬性值(w,x,y,z),零個、一個或多個屬性值(w,y)對于可被具有安全模塊的用戶設(shè)備與驗證計算機執(zhí)行的事務(wù)保持匿名。該方法包括以下步驟從用戶設(shè)備接收用戶公鑰PKUC和證據(jù)值,該用戶公鑰PKUC內(nèi)在地包括對證明者計算機不可見的零個、一個或多個用戶確定的屬性值x,y,該證據(jù)值表明用戶公鑰PKUC有效地得自安全模塊的模塊公鑰PKTPM;基于證明者秘密密鑰SKAC、接收到的用戶公鑰PKUC和零個、一個或多個證明者確定的屬性值(w,z)頒發(fā)該證明值cert;以及將該證明值cert提供給用戶設(shè)備,其中用戶證明簽名值DAA’可被用戶設(shè)備從證明值cert和安全模塊提供的安全模塊證明值DAA得到,并且可驗證(i)用戶證明簽名值DAA’是否有效地得自安全模塊證明值DAA和證明值cert,以及(ii)證明值cert是否與至少一個屬性的子集(B,D)相關(guān)聯(lián),該子集(B,D)內(nèi)的每個屬性具有顯露的屬性值(x,z)。
根據(jù)本發(fā)明的另一個方面,提供了一種用于驗證從證明值cert生成的用戶證明簽名值DAA’的方法,該用戶證明簽名值DAA’對應(yīng)于至少一個屬性(A,B,C,D),每個該屬性具有屬性值(w,x,y,z),零個、一個或多個屬性值(w,y)對于可被具有安全模塊的用戶設(shè)備與驗證計算機執(zhí)行的事務(wù)保持匿名。該方法包括以下步驟從用戶設(shè)備接收到用戶證明簽名值DAA’;并驗證(i)用戶證明簽名值DAA’是否有效地得自安全模塊提供的安全模塊證明值DAA和證明值cert,以及(ii)證明值cert是否與至少一個屬性的子集(B,D)相關(guān)聯(lián),該子集(B,D)內(nèi)的每個屬性具有顯露的屬性值(x,z),證明值cert得自證明者秘密密鑰SKAC、用戶公鑰PKUC和保持匿名的證明者確定的屬性值(w,z),該用戶公鑰PKUC內(nèi)在地包括用戶確定的屬性值(x,y)即證明者隱藏屬性值。
所述驗證步驟還可包括通過使用用戶證明簽名值DAA’、證明者公鑰PKAC和顯露的屬性值(x,z)計算第一用戶證明簽名驗證值G’;以及檢查該第一用戶證明簽名驗證值G’是否被包含在用戶證明簽名值DAA’內(nèi)。
下面參照以下附圖,并僅作為示例,詳細說明本發(fā)明的優(yōu)選實施例。
圖1示出具有證明者計算機(AC)、具有可信平臺模塊(TPM)的用戶計算機(UC)、和驗證計算機(VC)的情景的示意圖。
圖2示出在可信平臺模塊(TPM)、用戶計算機(UC)和證明者計算機(AC)之間的示意流。
圖3示出在可信平臺模塊(TPM)、用戶計算機(UC)和驗證者即驗證計算機(AC)之間的用于生成和驗證用戶證明簽名值DAA’的示意流。
附圖僅是為說明目的提供的。
具體實施例方式
在參照
本發(fā)明的實施例之前,討論證明方案的一些一般問題。
直接匿名證明協(xié)議涉及頒發(fā)者或證明者、可信平臺模塊(TPM)、具有TPM的主機平臺(主機),和一些驗證者。TPM的所有通信經(jīng)由其主機執(zhí)行。頒發(fā)者或證明者以這樣的方式向主機和TPM一起頒發(fā)證明,即-在證實已獲得證明時,主機僅能在涉及TPM時這樣做-證實對證明的占有可匿名(或用假名)進行,即從而驗證者不能將兩個不同的證據(jù)相聯(lián)系(或者不能將對不同驗證者的證據(jù)相聯(lián)系)。
因此,證明方案包括四個過程“密鑰生成”,其允許頒發(fā)者生成證明方案的公鑰和秘密密鑰;“連接協(xié)議”,其在主機/TPM和頒發(fā)者之間運行,并且允許主機/TPM得到證明;“簽名過程”,其在主機和TPM之間運行,允許它們匿名地證實他們得到了證明,同時認證一消息,此證實過程的結(jié)果是可發(fā)送給驗證者的簽名;以及“驗證過程”,其允許驗證者檢查平臺是否得到證明以及此平臺是否認證了給定的消息。
證明可包括一些屬性,由此每個屬性可被示出或被隱藏。屬性可由用戶、由證明者或由它們共同確定。當證實已得到包括屬性的證明之后,用戶可選擇可將哪些屬性顯露給用戶而哪些屬性不應(yīng)顯露。
下面的附圖和說明示出可如何應(yīng)用用戶證明簽名值。
圖1示出具有還被標記為AC的證明者計算機30、分別被標記為UC和TPM的包括安全模塊22的用戶設(shè)備20、和被標記為VC的驗證計算機40。代表主機平臺(主機)或簡稱平臺的用戶設(shè)備20連接到證明者計算機30和驗證計算機40即驗證者,該證明者計算機在此還被稱為頒發(fā)者或證明者。該系統(tǒng)允許使用用戶證明簽名值DAA’,該簽名值對應(yīng)于具有屬性值w,x,y,z的屬性A,B,C,D。系統(tǒng)被設(shè)計成使得在與驗證計算機40的事務(wù)中驗證者隱藏屬性值w,y保持匿名。
除了也被稱為匿名屬性值的驗證者隱藏屬性值w,y之外,屬性值被命名如下x,y-證明者隱藏屬性值,或用戶確定屬性值,因為它們是由用戶確定的;w,z-證明者顯露的屬性值,或證明者確定屬性值,因為它們是由證明者確定的;x,z-驗證者顯露的屬性值,顯露的屬性值,或非匿名屬性值。
TPM即安全模塊22提供了模塊公鑰PKTPM,而用戶設(shè)備20還提供用戶公鑰PKUC,該用戶公鑰內(nèi)在地包括用戶確定屬性值x,y,和顯示用戶公鑰PKUC有效地得自安全模塊22的模塊公鑰PKTPM的證據(jù)值。安全模塊22還提供安全模塊證明值DAA,該值是用戶證明簽名值DAA’的一部分。
證明者計算機30提供證明者公鑰PKAC,并具有證明者秘密密鑰SKAC。此外,證明者計算機30提供證明者確定的屬性值w,z和證明值cert,該證明值基于證明者秘密密鑰SKAC、用戶公鑰PKUC和證明者確定的屬性值w,z。
驗證計算機40可驗證(i)用戶證明簽名值DAA’是否有效地得自安全模塊22提供的安全模塊證明值DAA和證明值cert,以及(ii)證明值cert是否與具有顯露的屬性值x,z的屬性B,D的子集相關(guān)聯(lián)。
在操作中,如附圖中的箭頭1指示并被標記為“PKUC,證據(jù)”,用戶設(shè)備20將內(nèi)在地包括用戶確定屬性值x,y和證據(jù)值的用戶公鑰PKUC發(fā)送給證明者計算機30。反過來,如箭頭2指示并被標記為“cert,AC屬性(w,z)”,證明者計算機30發(fā)送回證明值cert和證明者確定屬性值w,z。然后如箭頭3指示并被標記為“DAA’,子集(x,y)”,用戶設(shè)備20可將用戶證明簽名值DAA’和這里包含顯露的或非匿名的屬性值x,z的屬性的子集發(fā)送給驗證計算機40,該驗證計算機然后可啟動驗證過程。
圖2示出可信平臺或安全模塊22、用戶計算機20和證明者計算機30之間的示意流,其分別由標記為“PKUC,證據(jù)”和“cert,AC屬性(w,z)”的箭頭1和2指示。首先,在步驟101,安全模塊22由修改的證明者公鑰PK’AC生成模塊公鑰PKTPM和TPM秘密值f0,f1,v’。在步驟102,用戶設(shè)備102將模塊公鑰PKTPM與證明者公鑰PKAC和屬性B,C的用戶確定屬性值x,y一起使用,以便生成內(nèi)在地包含用戶確定屬性值x,y的用戶公鑰PKUC和由“證據(jù)”指示的證據(jù)值,所述證據(jù)值表明用戶公鑰PKUC有效地得自安全模塊22的模塊公鑰PKTPM。如下文將詳細說明的,證據(jù)包括證據(jù)值c,sf0,sf1,sv,sx,sy。然后在步驟103,證明者計算機30利用“PKUC,證據(jù)”、證明者秘密密鑰SKAC和證明者確定屬性值w,z生成證明值cert。然后,如圖1中的箭頭2指示,將屬性值cert和證明者確定屬性值w,z一起提供給用戶計算機20,在步驟104內(nèi),用戶計算機20生成用戶值cert’。然后在步驟105內(nèi),安全模塊22使用此用戶值cert’生成秘密簽名值v。
圖3示出如圖1中的被標記為“DAA’,子集(x,y)”的箭頭3指示的用于在安全模塊22即TPM、也被稱為平臺20的用戶計算機20和證明者計算機30之間生成和驗證用戶證明簽名值DAA’的示意流。在步驟201,安全模塊22從修改的證明者公鑰PK’AC、一些TPM秘密值f0,f1和秘密簽名值v生成第一簽名值T’1,該第一簽名值也被稱為第一安全模塊證明值。當平臺20接收到該第一簽名值T’1時,從該第一簽名值T’1計算或得到中間用戶證明簽名值T”1。然后在步驟202,平臺20使用該中間用戶證明簽名值T”1以及證明值cert、證明者公鑰PKAC和驗證者隱藏屬性值w,y,以利用散列函數(shù)生成第二簽名值C’,該第二簽名值也被稱為中間用戶證明簽名值。在步驟203,安全模塊22使用此第二簽名值C’和TPM秘密值f0,f1,v’,以生成安全模塊證明值DAA。然后在步驟204,平臺20能夠從該安全模塊證明值DAA以及證明值cert、證明者公鑰PKAC、用戶公鑰PKUC和驗證者隱藏屬性值w,y得到用戶證明簽名值DAA’。
當用戶計算機20將用戶證明簽名值DAA’提供給驗證計算機40時,該驗證者然后可使用證明者公鑰PKAC和顯露的屬性值x,z,來驗證用戶證明簽名值DAA’是否有效地得自安全模塊證明值DAA和一證明值cert,以及該證明值cert是否與具有顯露的屬性值x,z的屬性的子集B,D相關(guān)聯(lián)。如驗證步驟205的輸出箭頭所示,其輸出“成功”或“不成功”,即驗證有效或無效。
更具體的,下文被稱為證明者的證明者計算機30的通常包括值(n,g,g’,h,S,Z,R0,R1,Γ,γ,ρ)的公鑰擴增基值R2,...,Rk。這些基值R2,...,Rk中的每一個對應(yīng)于一特定的屬性A,B,C,D,例如A對應(yīng)于R2,B對應(yīng)于R3,C對應(yīng)于R4,以及D對應(yīng)于R5。在下文中僅使用了R2,...,Rk,但是,將該描述一般化以使用任何數(shù)量的這樣的基值是直接了當?shù)摹?br>
為了從證明者得到證明值cert,下文被稱為平臺的用戶計算機20從下文被稱為TPM的安全模塊22接收值U,并計算U’=U·R2x·R3ymod n并將此值發(fā)送給證明者。值U也被稱為安全模塊的公鑰PKTPM的部分,而計算出的U’也被稱為和用作中間證據(jù)值。
在此假設(shè)平臺使前兩個屬性對證明者隱藏,但是應(yīng)指出,可使用屬性的任何子集。此外,平臺從TPM接收到至少第一中間用戶證據(jù)值W,平臺從該值計算出第二中間用戶證據(jù)值W’=W·R2r2·R3r3其中r2和r3是隨機選擇的整數(shù)。應(yīng)指出,W’的計算應(yīng)對應(yīng)于U’的計算,就是說,在U’的計算中出現(xiàn)的每個基值Ri應(yīng)在W’的計算中出現(xiàn)并帶有隨機指數(shù)ri。然后,平臺在中間證據(jù)值ch的計算中使用W’而不是W作為散列函數(shù)的輸入,并將ch發(fā)送給TPM。TPM將以另外的證據(jù)值c、sf0、sf1和sv作為響應(yīng)。平臺用值sx=r2+c·x以及sy=r3+c·y來擴增這些另外的證據(jù)值,并將這些擴增的證據(jù)值發(fā)送給證明者。證明者通過計算第一證據(jù)驗證值U”=U’c·Ssv·R0sf0·R1f2y·R2sx·R3symod n,使用U”作為散列函數(shù)的輸入以得到第二證據(jù)驗證值c’,并驗證c’是否等于擴增的證據(jù)值內(nèi)包含的值c,來驗證這些證據(jù)值。如果這些驗證成功,則證明者計算中間證書值U=U’·R4w·R5zmod n其中w和z是證明者確定的屬性值,選擇合適大小的隨機素數(shù)e和隨機整數(shù)v”,并計算第一證明值a=(Z/(U·Sv”))l/emod n。
類似于平臺確定的屬性值,證明者可以選擇不同的屬性值。如果證明者使用一個也被平臺使用的基值Ri,則將由平臺和證明者共同確定對應(yīng)的屬性。在此不對該問題進行進一步討論。證明者將證明值部分a,e,v”與證明者確定的屬性值w,z一起發(fā)送給平臺。
當平臺希望向知道屬性值x和z的驗證者即驗證計算機40證實證明時,它以如下方式進行它首先選擇隨機整數(shù)u,并計算T1=a·humod n并將T1作為用戶證明簽名值DAA’的一部分發(fā)送給下文被稱為驗證者的驗證計算機40。然后,它從TPM接收到第一簽名值T’1,并計算中間用戶證明簽名值T”1=T’1·are·hreu·R3t3·R4t4mod n其中,re、reu、t3和t4是隨機整數(shù),而R3和R4是對應(yīng)于保持匿名即對驗證者隱藏的屬性的基值。如果平臺希望隱藏其他屬性值,則它應(yīng)在計算T”1時使用對應(yīng)的基而不是R3和R4(以及對應(yīng)的隨機整數(shù)指數(shù)而不是t3和t4)。然后,如圖3內(nèi)的步驟202所示,平臺使用T”1和一些其他的值作為散列函數(shù)的輸入以得到第二簽名值C’。平臺將C’發(fā)送給TPM,并接收包括值G,sf0’,sf1’,sv’的安全模塊證明值DAA。平臺利用至少值sy’=t3+G·y,sw’=t4+G·w,se’=re+G·e和seu’=reu+G·e·u擴增這些安全模塊證明,并將得到的值列表作為用戶證明簽名值DAA’發(fā)送給驗證者。
驗證這樣的被接收的用戶證明簽名值DAA’包括由驗證者計算中間用戶證明簽名驗證值T1=(T’1/(R2x·R5z))G·Ssv’·R0sf0’·R1sf1’·T1se’+GL·h-seu’·R3sy’·R4sw’mod n其中L是安全參數(shù),并使用T1作為散列函數(shù)的輸入來得到第一用戶證明簽名驗證值G’,并驗證G’是否等于用戶證明簽名值DAA’內(nèi)包含的值G。由于G是安全模塊證明值DAA的一部分,而該安全模塊證明值DAA是用戶證明簽名值DAA’的一部分,所以它也是用戶證明簽名值DAA’的一部分。
任何公開的實施例可與所示和/或所述的其他實施例中的一個或幾個組合。實施例的一個或多個特征也可能組合。
本發(fā)明可在硬件、軟件或硬件和軟件的組合內(nèi)實現(xiàn)。任何類型的計算機系統(tǒng)或適于執(zhí)行文中公開的方法的其他裝置都適用。硬件和軟件的典型組合可以是具有這樣的計算機程序的通用計算機,該計算機程序在被加載和執(zhí)行時控制該計算機系統(tǒng)使得該計算機系統(tǒng)執(zhí)行文中公開的方法。本發(fā)明還可包含在這樣的計算機程序產(chǎn)品內(nèi),該計算機程序產(chǎn)品包含使能夠?qū)崿F(xiàn)文中公開的方法的所有特征,并且在加載到計算機內(nèi)時能夠執(zhí)行這些方法。
計算機程序裝置或計算機程序在本上下文內(nèi)是指這樣的一組指令的以任何語言、代碼或符號表示的任何表達,該組指令旨在使具有信息處理能力的系統(tǒng)直接地或者在a)轉(zhuǎn)換成另一種語言、代碼或符號;b)以不同的物質(zhì)形式再現(xiàn)這兩種操作中的任何一個或全部之后執(zhí)行特定功能。
權(quán)利要求
1.一種用于生成與驗證計算機(40)一起使用的用戶證明簽名值(DAA’)的方法,該用戶證明簽名值(DAA’)對應(yīng)于至少一個屬性(A,B,C,D),每個該屬性具有屬性值(w,x,y,z),零個、一個或多個屬性值(w,y)在可被具有安全模塊(22)的用戶設(shè)備(20)與該驗證計算機(40)執(zhí)行的事務(wù)中保持匿名,該方法包括以下步驟提供用戶公鑰(PKUC)和表明該用戶公鑰(PKUC)有效地得自該安全模塊的模塊公鑰(PKTPM)的證據(jù)值;從證明者計算機(30)接收到(I)具有至少一個具有其屬性值(w,x,y,z)的屬性(A,B,C,D)的證明值(cert),零個、一個或多個屬性值(x,y)對于該證明者計算機(30)保持未知,該證明值(cert)得自證明者秘密密鑰(SKAC)、用戶公鑰(PKUC)和零個、一個或多個證明者確定的屬性值(w,z),該用戶公鑰(PKUC)內(nèi)在地包括零個、一個或多個用戶確定的屬性值(x,y),以及(II)至少一個證明者確定的屬性值(w,z);以及從該證明值(cert)和安全模塊(22)提供的安全模塊證明值(DAA)得到該用戶證明簽名值(DAA’),其中可驗證(i)該用戶證明簽名值(DAA’)是否有效地得自該安全模塊證明值(DAA)和該證明值(cert),以及(ii)該證明值(cert)是否與至少一個屬性的子集(B,D)相關(guān)聯(lián),該子集(B,D)內(nèi)的每個屬性具有顯露的屬性值(x,z)。
2.根據(jù)權(quán)利要求1的方法,其中,所述得到用戶證明簽名值(DAA’)的步驟還包括以下步驟從所述安全模塊(22)接收第一安全模塊證明值(T’1);使用證明者公鑰(PKAC)和散列函數(shù)從該第一安全模塊證明值(T’1)得到中間用戶證明簽名值(C’);將該中間用戶證明簽名值(C’)提供給該安全模塊(22);從該安全模塊(22)接收用戶證明簽名值(DAA)的一部分;以及由所述用戶設(shè)備使用零個、一個或多個所述屬性值(w,y),所述被接收到的用戶證明簽名值(DAA’)的部分,用戶公鑰(PKUC)和證明者公鑰(PKAC),來計算該用戶證明簽名值(DAA’)的另外的部分。
3.根據(jù)權(quán)利要求1或2的方法,其中,通過使用所述證明者公鑰(PKAC)和所述一個或多個屬性值(x,y)從所述模塊公鑰(PKTPM)得到所述用戶公鑰(PKUC)。
4.根據(jù)權(quán)利要求1到3中的任何一個的方法,其中,所述用戶設(shè)備(20)利用可信第三方的公鑰提供對于所述驗證計算機(40)保持是未知的一個或多個屬性值(w,y)的加密。
5.一種用于頒發(fā)證明值(cert)以便生成對應(yīng)于至少一個屬性(A,B,C,D)的用戶證明簽名值(DAA’)的方法,每個該屬性具有屬性值(w,x,y,z),零個、一個或多個屬性值(w,y)對于可被具有安全模塊(22)的用戶設(shè)備(20)與驗證計算機執(zhí)行的事務(wù)保持匿名,該方法包括以下步驟從該用戶設(shè)備(20)接收到用戶公鑰(PKUC)和證據(jù)值,該用戶公鑰(PKUC)內(nèi)在地包括對證明者計算機(30)不可見的零個、一個或多個用戶確定的屬性值(x,y),該證據(jù)值表明該用戶公鑰(PKUC)有效地得自該安全模塊(22)的模塊公鑰(PKTPM);基于證明者秘密密鑰(SKAC)、該接收到的用戶公鑰(PKUC)和零個、一個或多個證明者確定的屬性值(w,z)頒發(fā)該證明值(cert);以及將該證明值(cert)提供給該用戶設(shè)備(20),其中該用戶證明簽名值(DAA’)可由該用戶設(shè)備(20)從該證明值(cert)和該安全模塊(22)提供的安全模塊證明值(D AA)得到,并且可驗證(i)該用戶證明簽名值(DAA’)是否有效地得自該安全模塊證明值(DAA)和該證明值(cert),以及(ii)該證明值(cert)是否與至少一個屬性的子集(B,D)相關(guān)聯(lián),該子集(B,D)內(nèi)的每個屬性具有顯露的屬性值(x,z)。
6.一種用于驗證從證明值(cert)生成的用戶證明簽名值(DAA’)的方法,該用戶證明簽名值(DAA’)對應(yīng)于至少一個屬性(A,B,C,D),每個該屬性具有屬性值(w,x,y,z),零個、一個或多個屬性值(w,y)對于可被具有安全模塊(22)的用戶設(shè)備(20)執(zhí)行的事務(wù)保持匿名,該方法包括以下步驟從用戶設(shè)備(20)接收到該用戶證明簽名值(DAA’);以及驗證(i)該用戶證明簽名值(DAA’)是否有效地得自該安全模塊(22)提供的安全模塊證明值(DAA)和一證明值(cert),以及(ii)該證明值(cert)是否與至少一個屬性的子集(B,D)相關(guān)聯(lián),該子集(B,D)內(nèi)的每個屬性具有顯露的屬性值(x,z),該證明值(cert)得自證明者秘密密鑰(SKAC)、用戶公鑰(PKUC)和保持匿名的至少一個屬性值(w,z),該用戶公鑰(PKUC)內(nèi)在地包括用戶確定的屬性值(x,y)。
7.根據(jù)權(quán)利要求6的方法,其中,所述驗證步驟還包括通過使用所述用戶證明簽名值(DAA’)、證明者公鑰(PKAC)和顯露的屬性值(x,z)計算第一用戶證明簽名驗證值(G’);以及檢查該第一用戶證明簽名驗證值(G’)是否包含在該用戶證明簽名值(DAA’)內(nèi)。
8.一種包含這樣的程序代碼裝置的計算機程序產(chǎn)品,該程序代碼裝置用于當所述程序在計算機上運行時執(zhí)行權(quán)利要求1-7中的任何一個的方法。
9.一種存儲在計算機可用介質(zhì)上的計算機程序產(chǎn)品,包括用于使得計算機執(zhí)行根據(jù)權(quán)利要求1到7中的任何一個的方法的計算機可讀程序裝置。
10.一種用于使用用戶證明簽名值(DAA’)的系統(tǒng),該用戶證明簽名值(DAA’)對應(yīng)于至少一個屬性(A,B,C,D),每個該屬性具有屬性值(w,x,y,z),零個、一個或多個屬性值(x,y)對于事務(wù)保持匿名,該系統(tǒng)包括具有安全模塊(22)的用戶設(shè)備(20),該安全模塊提供模塊公鑰(PKTPM)和安全模塊證明值(DAA),該用戶設(shè)備(20)提供用戶公鑰(PKUC)和證據(jù)值,該用戶公鑰(PKUC)內(nèi)在地包括零個、一個或多個用戶確定的屬性值(x,y),該證據(jù)值表明該用戶公鑰(PKUC)有效地得自該安全模塊(22)的模塊公鑰(PKTPM);證明者計算機(30),該證明者計算機提供零個、一個或多個證明者確定的屬性值(w,z)和證明值(cert),該證明值基于證明者秘密密鑰(SKAC)、該用戶公鑰(PKUC)和零個、一個或多個證明者確定的屬性值(w,z);以及驗證計算機(40),該驗證計算機用于驗證(i)該用戶證明簽名值(DAA’)是否有效地得自該安全模塊(22)提供的安全模塊證明值(DAA)和該證明值(cert),以及(ii)該證明值(cert)是否與至少一個屬性的子集(B,D)相關(guān)聯(lián),該子集(B,D)內(nèi)的每個屬性具有顯露的屬性值(x,z)。
全文摘要
本發(fā)明公開了一種用于生成和驗證用戶證明簽名值(DAA’)并頒發(fā)用于生成該用戶證明簽名值(DAA’)的證明值(cert)的方法。此外,本發(fā)明涉及一種用于使用用戶證明簽名值(DAA’)的系統(tǒng),該用戶證明簽名值(DAA’)對應(yīng)于至少一個屬性(A,B,C,D),每個該屬性具有屬性值(w,x,y,z),零個、一個或多個屬性值(x,y)對于事務(wù)保持匿名,該系統(tǒng)包括具有安全模塊(22)的用戶設(shè)備(20),該安全模塊提供模塊公鑰(PK
文檔編號G06F21/33GK1867877SQ200480029960
公開日2006年11月22日 申請日期2004年8月20日 優(yōu)先權(quán)日2003年10月17日
發(fā)明者J·卡梅尼施 申請人:國際商業(yè)機器公司