專利名稱:交互式零知識(shí)證明協(xié)議的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及安全通信,具體地說(shuō),涉及在設(shè)備匿名的情況下不使用受信第三方的認(rèn)證系統(tǒng)。
背景技術(shù):
在很多現(xiàn)代通信系統(tǒng)中,包括計(jì)算機(jī)網(wǎng)絡(luò)在內(nèi),被交換信息的可靠性和安全性是一件很重要的事情。例如,在受信計(jì)算平臺(tái)聯(lián)盟(TCPA)模型中,每臺(tái)計(jì)算機(jī)(PC)都具有被稱為受信平臺(tái)模塊(TPM)的受信硬件設(shè)備。TPM可以記錄有關(guān)計(jì)算機(jī)的軟件和硬件環(huán)境的信息,其中每個(gè)TPM都具有唯一的背書密鑰(EK)。一個(gè)證書可以被發(fā)給EK,它包含了有關(guān)TPM和平臺(tái)的信息。當(dāng)一個(gè)外部方(挑戰(zhàn)者)想要了解計(jì)算機(jī)的軟件和/或硬件環(huán)境時(shí),該挑戰(zhàn)者可以讓TPM提供報(bào)告。挑戰(zhàn)者想要確信所述報(bào)告真的來(lái)自合法的TPM,而計(jì)算機(jī)的所有者想要保持盡可能多的隱私(privacy)。例如,計(jì)算機(jī)的所有者想要能夠向兩個(gè)不同的挑戰(zhàn)者給出報(bào)告,而這些挑戰(zhàn)者又不能確定這些報(bào)告來(lái)自同一個(gè)TPM。
原先由TCPA提出的一種解決方案就是建立受信第三方(TTP)。TPM將會(huì)創(chuàng)建一個(gè)證實(shí)身份密鑰(AIK),并將會(huì)把由EK簽名的證書請(qǐng)求中的密鑰的公共部分發(fā)送到TTP。TTP將會(huì)檢查EK是合法的,即簽名是完好的,并且將會(huì)為AIK發(fā)出證書。TPM然后將會(huì)在從挑戰(zhàn)者接收到請(qǐng)求后使用AIK和TTP的證書。由于這些都和EK無(wú)關(guān),因此挑戰(zhàn)者不會(huì)獲得任何有關(guān)AIK的信息。然而,這種方法的問題在于它需要建立TTP。實(shí)際中,識(shí)別可用作TTP的各方以及用于這種方法的可行商業(yè)模型已經(jīng)證明是相當(dāng)困難的事情。
此外,挑戰(zhàn)者可以發(fā)現(xiàn)能夠拒絕挑戰(zhàn)者懷疑遭受損害的來(lái)自TPM的事務(wù)是很有用的。為了查明某一具體的TPM事務(wù)是否受到了損害,挑戰(zhàn)者可能想要確定哪些事務(wù)與某一具體的TPM相關(guān)聯(lián)。此外,因?yàn)橐恍┟艽a協(xié)議需要大量的計(jì)算,因此以離線完成大部分計(jì)算的方式來(lái)構(gòu)造協(xié)議可能是很有用的。如今可以獲得的方法、裝置或系統(tǒng)中沒有一個(gè)可以提供這樣一種密碼協(xié)議,該協(xié)議在具有識(shí)別并拒絕受到懷疑的TPM的能力的同時(shí),實(shí)現(xiàn)了匿名和安全要求,并且該協(xié)議被構(gòu)造為離線完成大部分計(jì)算的方式。
所附權(quán)利要求書具體闡述了本發(fā)明的特征。結(jié)合附圖,參考以下詳細(xì)的描述,可以最佳地理解本發(fā)明的實(shí)施方案及其優(yōu)點(diǎn),在附圖中
圖1是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了可以實(shí)現(xiàn)直接證明方案的系統(tǒng)的框圖。
圖2是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了包括受信平臺(tái)模塊的平臺(tái)的框圖。
圖3是概念性地圖示了可以實(shí)現(xiàn)本發(fā)明的實(shí)施方案的計(jì)算機(jī)系統(tǒng)的框圖;圖4是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了在制造過程中建立受信平臺(tái)模塊(TPM)的過程的流程圖;圖5是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了為制造的每個(gè)平臺(tái)所執(zhí)行的建立過程的流程圖;圖6是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了預(yù)計(jì)算過程的流程圖;圖7是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了第一交互式證明的預(yù)計(jì)算的流程圖;圖8是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了第二交互式證明的預(yù)計(jì)算的流程圖;圖9是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了在線計(jì)算過程的流程圖;圖10是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了第一交互式證明的輪次開啟的流程圖;圖11是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了第二交互式證明的輪次開啟的流程圖;圖12是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了證明兩個(gè)離散對(duì)數(shù)相同的創(chuàng)建過程的流程圖;圖13是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了證明兩個(gè)離散對(duì)數(shù)相同的驗(yàn)證過程的流程圖;以及圖14是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了用于生成t值的一種替換方法的流程圖。
具體實(shí)施例方式
描述了用于安全通信的方法和裝置。廣義地講,本發(fā)明的實(shí)施方案提供了在不使用受信第三方(TTP)的情況下對(duì)設(shè)備使用匿名的認(rèn)證系統(tǒng)。
提供了一種系統(tǒng)、裝置和方法使用直接證明協(xié)議,不必泄露身份而在第一設(shè)備和第二設(shè)備之間關(guān)于合法簽名來(lái)建立信任。根據(jù)一個(gè)實(shí)施方案,直接證明協(xié)議是指提供一種方法向挑戰(zhàn)者證明密碼密鑰是從受信硬件設(shè)備(設(shè)備)而來(lái),而不必泄露有關(guān)該設(shè)備的身份的信息。直接證明協(xié)議可能需要由在受信計(jì)算平臺(tái)聯(lián)盟(TCPA)內(nèi)通常被稱為受信平臺(tái)模塊(TPM)的設(shè)備來(lái)完成計(jì)算。
根據(jù)一個(gè)實(shí)施方案,直接證明協(xié)議可以具有兩個(gè)選項(xiàng)隨機(jī)h選項(xiàng)和指定h選項(xiàng)。隨機(jī)h選項(xiàng)可以指其中TPM可以隨機(jī)或偽隨機(jī)地選擇h的值,并且可以完成在TPM可以知道對(duì)應(yīng)的挑戰(zhàn)者之前構(gòu)造證明所必需的大部分計(jì)算的方法,其中h可被用作構(gòu)造證明的基(base)。指定h選項(xiàng)可以指其中TPM可以使用挑戰(zhàn)者的名稱來(lái)生成h的值的方法。一般地,指定的h生成可以使得構(gòu)造證明所需的計(jì)算直到TPM知曉對(duì)應(yīng)的挑戰(zhàn)者之后才發(fā)生。根據(jù)一個(gè)實(shí)施方案,使用指定h選項(xiàng),構(gòu)造證明所需的大部分計(jì)算都可以離線或者在預(yù)計(jì)算階段中完成。
根據(jù)一個(gè)實(shí)施方案,對(duì)應(yīng)于第一陳述(statement)的證明中的值可以由證明者設(shè)備(證明者(prover))預(yù)先計(jì)算。一旦從挑戰(zhàn)者設(shè)備(挑戰(zhàn)者)接收到對(duì)第二證明的請(qǐng)求,證明者就可以完成第一證明和第二證明,并將第二證明發(fā)送給挑戰(zhàn)者。根據(jù)一個(gè)實(shí)施方案,第二證明可以包括如果第一陳述為真,則第二陳述為真的證明。此外,第二證明中的值可以包括由挑戰(zhàn)者提供的值。根據(jù)一個(gè)實(shí)施方案,第一和/或第二陳述可以包括在受信硬件設(shè)備上持有密碼密鑰。
一般地,在制造過程中,每個(gè)TPM被給予一個(gè)唯一的私密對(duì)(m,c),它滿足m=cemod n。為了向挑戰(zhàn)者證明TPM包含一個(gè)私密對(duì),TPM可以為用作基的h獲得一個(gè)值。例如,TPM可以計(jì)算k=hmmod P,并將h、k交給挑戰(zhàn)者。然后TPM可以構(gòu)造TPM擁有m、c,以至于m=cemod n和k=hmmod P的證明,而不必泄露有關(guān)m和c的任何額外信息。TPM可以和不同的挑戰(zhàn)者之間使用不同的h值,使得挑戰(zhàn)者無(wú)法獲知它們接收到的證明是來(lái)自同一個(gè)TPM。
根據(jù)一個(gè)實(shí)施方案,使用指定h選項(xiàng),構(gòu)造證明所需的大部分計(jì)算都可以離線完成或者在預(yù)計(jì)算階段完成。例如,根據(jù)一個(gè)實(shí)施方案,TPM可以開始于隨機(jī)h方法,以便TPM選擇一個(gè)隨機(jī)數(shù)h,計(jì)算k=hmmod P,并且構(gòu)造具有正確形式的k的證明。當(dāng)TPM被給予一個(gè)指定h,即來(lái)自挑戰(zhàn)者的hNAME時(shí),TPM可以計(jì)算k=hmmod P。接下來(lái),TPM可以將h、k的值hNAME和kNAME提供給挑戰(zhàn)者。根據(jù)一個(gè)實(shí)施方案,TPM可以使用已被構(gòu)造來(lái)顯示h、k具有正確形式的證明,并且構(gòu)造一個(gè)h、k具有與hNAME、kNAME相同形式的證明。換言之,TPM可以向挑戰(zhàn)者提供以下證明,即,存在用于m的值,使得對(duì)于相同的m,k=hmmod P并且kNAME=hNAMEmmod P,而不必實(shí)際泄露m的值。
根據(jù)一個(gè)實(shí)施方案,提供了一種方法、系統(tǒng)和裝置,用于向挑戰(zhàn)者提供由證明者設(shè)備(例如,正在請(qǐng)求的設(shè)備)持有的秘密的單向函數(shù)的結(jié)果,并且向挑戰(zhàn)者證明在所述單向函數(shù)中所使用的秘密已簽署有一個(gè)設(shè)備簽名,而不必向挑戰(zhàn)者泄露所述秘密或簽名。
根據(jù)一個(gè)實(shí)施方案,術(shù)語(yǔ)“證明者”(例如證明者設(shè)備)是指已被請(qǐng)求對(duì)其權(quán)限、合法性和/或身份提供某種證明的任何個(gè)人、平臺(tái)、系統(tǒng)、軟件和/或設(shè)備。根據(jù)一個(gè)實(shí)施方案,“證明”或者“使挑戰(zhàn)者相信”證明者具有或者知道簽名或秘密意味著基于透露給挑戰(zhàn)者的信息和/或證明,證明者很有可能具有所述簽名或秘密。為了向挑戰(zhàn)者證明這一情況,而不用向挑戰(zhàn)者“泄露”或“透露”簽名或秘密意味著基于透露給挑戰(zhàn)者的信息,要確定所述簽名或秘密在計(jì)算上是不可行的。這樣的證明可以被稱為直接證明。術(shù)語(yǔ)“直接證明”可以指公知的交互式證明和/或零知識(shí)證明。
在以下描述中,使用某些術(shù)語(yǔ)來(lái)描述一種或多種實(shí)施方案的某些特征。例如,“平臺(tái)”可以包括任何類型的設(shè)備、計(jì)算機(jī)、處理單元等。術(shù)語(yǔ)“挑戰(zhàn)者”可以指在向請(qǐng)求者透露或者提供所請(qǐng)求的信息之前,向所述請(qǐng)求者請(qǐng)求對(duì)可靠性或權(quán)限進(jìn)行某種驗(yàn)證的任何個(gè)人、平臺(tái)、系統(tǒng)、軟件和/或設(shè)備。術(shù)語(yǔ)“設(shè)備制造者”(例如設(shè)備制造者C)可以指制造或者配置一個(gè)設(shè)備或平臺(tái)(例如受信平臺(tái)模塊)的任何個(gè)人、平臺(tái)、系統(tǒng)、實(shí)體、軟件和/或設(shè)備。術(shù)語(yǔ)“設(shè)備制造者”也可以與術(shù)語(yǔ)“正在證實(shí)的制造者”互換使用。術(shù)語(yǔ)“HASH”可以指任何哈希函數(shù)或算法或其等同物。此外,在對(duì)各種實(shí)施方案的通篇描述和圖示說(shuō)明中,系數(shù)、變量以及其他符號(hào)用相同的標(biāo)號(hào)或名稱來(lái)表示。例如,在本申請(qǐng)中對(duì)各種實(shí)施方案的通篇描述和圖示說(shuō)明中,符號(hào)h可以都被稱為h。
在以下描述中,闡述了很多具體的細(xì)節(jié),以提供對(duì)本發(fā)明的完整理解。然而將會(huì)清楚,基于這里提供的公開內(nèi)容,在沒有部分這些具體細(xì)節(jié)的情況下也可以實(shí)現(xiàn)本發(fā)明的實(shí)施方案。在其他實(shí)例中,以框圖的形式示出了公知的結(jié)構(gòu)和設(shè)備。
本發(fā)明的實(shí)施方案包括各種步驟,下面將會(huì)進(jìn)行描述。這些步驟可以由硬件組件來(lái)完成,或者可以具體實(shí)現(xiàn)為機(jī)器可執(zhí)行指令,其可被用來(lái)使得用這些指令編程的通用或?qū)S锰幚砥骰蜻壿嬰娐吠瓿伤霾襟E??商鎿Q地,這些步驟可以通過硬件和軟件的組合來(lái)完成。
本發(fā)明的實(shí)施方案可以被提供為包括機(jī)器可讀介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,所述介質(zhì)上存儲(chǔ)有指令,這些指令可被用來(lái)編程一個(gè)計(jì)算機(jī)(或其他電子設(shè)備)以完成根據(jù)本發(fā)明的過程。機(jī)器可讀介質(zhì)可以包括但不限于軟盤、光盤、壓縮盤只讀存儲(chǔ)器(CD-ROM)和磁光盤、ROM、隨機(jī)訪問存儲(chǔ)器(RAM)、可擦除可編程只讀存儲(chǔ)器(EPROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、磁卡或光卡、閃存、或適于存儲(chǔ)電指令的其他類型的媒介/機(jī)器可讀介質(zhì)。此外,本發(fā)明還可以作為計(jì)算機(jī)程序產(chǎn)品來(lái)下載,其中所述程序可以經(jīng)由通信鏈路(例如,調(diào)制解調(diào)器或網(wǎng)絡(luò)連接),利用包含在載波或其他傳播媒介中的數(shù)據(jù)信號(hào)從遠(yuǎn)程計(jì)算機(jī)(例如,服務(wù)器)傳輸?shù)桨l(fā)出請(qǐng)求的計(jì)算機(jī)(例如,客戶(client))。因此,載波或其他傳播媒介應(yīng)當(dāng)被視為包括用于本發(fā)明目的的機(jī)器可讀介質(zhì)。
圖1是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了可以實(shí)現(xiàn)直接證明方案的系統(tǒng)的框圖。如圖所示,諸如平臺(tái)A 102的平臺(tái)(挑戰(zhàn)者)請(qǐng)求另一個(gè)平臺(tái)(例如平臺(tái)B 104)(證明者)提供有關(guān)其自身的信息。作為響應(yīng),平臺(tái)B 104可以提供所請(qǐng)求的信息。然而,平臺(tái)A 102可能想要驗(yàn)證所請(qǐng)求的信息是來(lái)自某一具體的設(shè)備制造者(例如設(shè)備制造者C)所制造的設(shè)備。為了驗(yàn)證所述信息是從設(shè)備制造者C而來(lái),平臺(tái)A 102可以挑戰(zhàn)平臺(tái)B 104,讓平臺(tái)B 104提供由設(shè)備制造者C生成的簽名的證明。平臺(tái)B 104可以通過提供使平臺(tái)A 102相信平臺(tái)B 104持有設(shè)備制造者C所生成的簽名,而不用實(shí)際泄露所述簽名的信息,對(duì)這樣的請(qǐng)求做出應(yīng)答。
根據(jù)一個(gè)實(shí)施方案,平臺(tái)B 104可以包括受信平臺(tái)模塊(TPM)106。TPM 106可以由設(shè)備制造者來(lái)制造,使得該TPM可以執(zhí)行為完成各種實(shí)施方案所必需的功能,并且遵守這里所描述的協(xié)議的操作。此外,TPM 106可以被制造為保持這里所描述的安全特征。例如,TPM可以使用與某一協(xié)議(例如協(xié)議IP1)相關(guān)的指定值來(lái)完成指定的功能。此外,根據(jù)一個(gè)實(shí)施方案,TPM可以被制造或配置為使用某些值在協(xié)議中不產(chǎn)生安全缺陷,例如使得設(shè)備的身份很有可能被確定。
圖2是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了包括受信平臺(tái)模塊(TPM)的平臺(tái)的框圖。如圖所示,設(shè)備或平臺(tái)200(例如平臺(tái)B 104)根據(jù)一個(gè)實(shí)施方案可以包括受信平臺(tái)模塊(TPM)204。此外,設(shè)備200可以包括與TPM 204耦合的處理單元202,還有存儲(chǔ)設(shè)備或機(jī)構(gòu)206。存儲(chǔ)設(shè)備可以允許存儲(chǔ)有關(guān)設(shè)備200的信息,例如硬件信息和軟件信息。根據(jù)一個(gè)實(shí)施方案,平臺(tái)或設(shè)備200可以是諸如計(jì)算機(jī)或移動(dòng)設(shè)備的電子設(shè)備。
圖3是概念性地圖示了可以實(shí)現(xiàn)本發(fā)明的實(shí)施方案的計(jì)算機(jī)系統(tǒng)的框圖。計(jì)算機(jī)系統(tǒng)300包括總線或者用于傳送信息的其他通信裝置302,還包括與總線302耦合的用于處理信息的處理裝置,例如處理器310。計(jì)算機(jī)系統(tǒng)300還包括耦合到總線302的隨機(jī)訪問存儲(chǔ)器(RAM)或其他動(dòng)態(tài)存儲(chǔ)設(shè)備304(被稱為主存儲(chǔ)器),用于存儲(chǔ)由處理器310執(zhí)行的信息和指令。主存儲(chǔ)器304也可以被用來(lái)在處理器310執(zhí)行指令期間存儲(chǔ)臨時(shí)變量或中間信息。計(jì)算機(jī)系統(tǒng)300還包括耦合到總線302的只讀存儲(chǔ)器(ROM)和/或其他靜態(tài)存儲(chǔ)設(shè)備306,用于存儲(chǔ)處理器310的靜態(tài)信息和指令。
數(shù)據(jù)存儲(chǔ)設(shè)備308例如磁盤或光盤及其對(duì)應(yīng)的驅(qū)動(dòng)器也可以被耦合到計(jì)算機(jī)系統(tǒng)300,用來(lái)存儲(chǔ)信息和指令。計(jì)算機(jī)系統(tǒng)300也可以經(jīng)由總線302耦合到顯示設(shè)備314,例如陰極射線管(CRT)或液晶顯示器(LCD),用于向終端用戶顯示信息。典型地,包括字母鍵和數(shù)字鍵的字母數(shù)字輸入設(shè)備316可以被耦合到總線302,用于向處理器310傳送信息和/或命令選擇。另一種類型的用戶輸入設(shè)備是光標(biāo)控制器318,例如鼠標(biāo)、跟蹤球或指針方向鍵,用于向處理器310傳送方向信息和命令選擇,并且用于控制顯示器314上的指針移動(dòng)。
通信設(shè)備320也被耦合到總線302。通信設(shè)備320可以包括調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡、或其他公知的接口設(shè)備,例如用于耦合到以太網(wǎng)、令牌環(huán)或者為了提供通信鏈路來(lái)支持例如局域網(wǎng)或廣域網(wǎng)的其他類型物理附件的接口設(shè)備。利用這種方式,計(jì)算機(jī)系統(tǒng)300可以經(jīng)由傳統(tǒng)的網(wǎng)絡(luò)基礎(chǔ)設(shè)施,例如公司的內(nèi)部網(wǎng)和/或因特網(wǎng)被耦合到大量客戶和/或服務(wù)器。
可以理解的是,對(duì)于某些實(shí)現(xiàn)方式而言,可能會(huì)需要比上面所描述的實(shí)施例配置更多或更少的計(jì)算機(jī)系統(tǒng)。因此,計(jì)算機(jī)系統(tǒng)300的配置將根據(jù)多種因素,隨著實(shí)現(xiàn)方式的不同而不同,所述因素例如是價(jià)格約束、性能需求、技術(shù)進(jìn)步和/或其他外部條件。
應(yīng)當(dāng)注意,雖然這里所描述的步驟可以在已編程的處理器,例如處理器310的控制下來(lái)完成,但是在替換性的實(shí)施方案中,這些步驟可以全部或部分地由可編程邏輯或硬編碼邏輯來(lái)實(shí)現(xiàn),所述邏輯例如是現(xiàn)場(chǎng)可編程門陣列(FPGA)、晶體管-晶體管邏輯(TTL)邏輯、或者專用集成電路(ASIC)。此外,本發(fā)明的方法可以由已編程的通用計(jì)算機(jī)組件和/或定制硬件組件的任意組合來(lái)完成。因此,這里公開的任何內(nèi)容都不應(yīng)被理解為將本發(fā)明限制到具體的實(shí)施方案,在這樣的具體實(shí)施方案中,所記載的步驟是由硬件組件的特定組合來(lái)完成的。
圖4是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了在制造過程中建立受信平臺(tái)模塊(TPM)的過程的流程圖。一個(gè)平臺(tái)類可由設(shè)備制造者定義為包括一種或多種類型的平臺(tái)或設(shè)備。例如,一個(gè)平臺(tái)類可以是指具有相同的安全相關(guān)信息的所有平臺(tái)的集合。每個(gè)平臺(tái)都可以具有一組有關(guān)該平臺(tái)的安全相關(guān)信息。該安全相關(guān)信息可能包含了被包括在受信計(jì)算平臺(tái)聯(lián)盟(TCPA)模型中的TPM的唯一背書密鑰(EK)和/或證實(shí)身份密鑰(AIK)證書中的信息。安全相關(guān)信息還可以包括具體平臺(tái)或設(shè)備的制造者號(hào)和型號(hào)。對(duì)于每個(gè)平臺(tái)類,設(shè)備制造者都可以創(chuàng)建該制造者可用于這一平臺(tái)類的一組密碼參數(shù)。此外,設(shè)備制造者可以創(chuàng)建一個(gè)簽名密鑰,它使用該簽名密鑰為它所制造的設(shè)備(例如設(shè)備200)來(lái)簽署秘密。
根據(jù)一個(gè)實(shí)施方案,設(shè)備制造者可以采用(Rivest,Shamir,Adelman)RSA算法(由Ronald Rivest、Adi Shamir和Leonard Adelman定義的公鑰密碼系統(tǒng))來(lái)創(chuàng)建具有公共模數(shù)n、公共指數(shù)e和私有指數(shù)d的RSA公鑰私鑰對(duì)(在處理框402處)??梢允褂霉姆椒▉?lái)創(chuàng)建具有公共模數(shù)n、公共指數(shù)e和私有指數(shù)d的RSA公鑰私鑰對(duì),所述公知的方法例如是在由Bruce Schneier,John Wiley & Sons出版的《應(yīng)用密碼學(xué)(AppliedCryptography)》第2版(1995年10月18日,ISBN0471117099)中所描述的方法。
根據(jù)一個(gè)實(shí)施方案,模數(shù)n可以被選定得足夠大,使得因數(shù)n可能在計(jì)算上是不可行的。在處理框404處,設(shè)備制造者可以指定一個(gè)參數(shù)Z,這是一個(gè)位于0和n之間的整數(shù)。在處理框406處,設(shè)備制造者還可以指定一個(gè)安全參數(shù)W,它可以是0和n之間的整數(shù)。然而,將W挑選得過小或過大都會(huì)導(dǎo)致安全性問題。根據(jù)一個(gè)實(shí)施方案,可以將W選定在2160和n/2160之間。因此,將W選定為約等于2160可以認(rèn)為是一個(gè)合理的選擇。
根據(jù)一個(gè)實(shí)施方案,設(shè)備制造者可以計(jì)算一個(gè)質(zhì)數(shù)P,使得P=u*n+1(在處理框408處)。除了u*n+1是一個(gè)質(zhì)數(shù)外,u的值可能沒有什么特殊的。例如,可以使用最小的這種u值。根據(jù)一個(gè)實(shí)施方案,P可以足夠大,使得計(jì)算離散對(duì)數(shù)mod P在計(jì)算上是不可行的。
根據(jù)一個(gè)實(shí)施方案,設(shè)備制造者可以生成平臺(tái)類證書(PCC),該證書可以包括密碼參數(shù)e、n、u、P、Z、W,該平臺(tái)類的安全相關(guān)信息,以及所述設(shè)備制造者的名稱(在處理框410處)。根據(jù)一個(gè)實(shí)施方案,參數(shù)u和P兩者不會(huì)全都包括進(jìn)來(lái),這是因?yàn)槭褂胣的給定值和上述參數(shù)之一,就可以通過P=u*n+1計(jì)算出另一個(gè)參數(shù)(即,P或u)。
根據(jù)一個(gè)實(shí)施方案,設(shè)備制造者可以對(duì)不同的平臺(tái)類使用參數(shù)e、n、u、P、W的相同值,并且可以針對(duì)不同的平臺(tái)改變Z的值。根據(jù)一個(gè)實(shí)施方案,Z的值可以被選定為相差至少4W。一旦生成了PCC,根據(jù)一個(gè)實(shí)施方案,設(shè)備制造者就可以將該P(yáng)CC提供或分配給它所制造的、屬于某一具體平臺(tái)類的設(shè)備(在處理框412處)。
根據(jù)一個(gè)實(shí)施方案,在不偏離一個(gè)或多個(gè)實(shí)施方案的情況下,可以用多種方式完成平臺(tái)類證書從證明者設(shè)備或平臺(tái)(例如圖1中的平臺(tái)A)到挑戰(zhàn)者的分發(fā)。例如,根據(jù)一種或多種公認(rèn)的標(biāo)準(zhǔn)方法,PCC可以以下列方式被分發(fā)給挑戰(zhàn)者,所述方式要使得挑戰(zhàn)者相信所述PCC是由某一具體的設(shè)備制造者生成的。一些公認(rèn)的標(biāo)準(zhǔn)方法可以通過直接向挑戰(zhàn)者分發(fā)參數(shù),或者通過讓證實(shí)機(jī)構(gòu)來(lái)簽名PCC而完成這項(xiàng)任務(wù)。使用后一種情形,根據(jù)一個(gè)實(shí)施方案,證實(shí)機(jī)構(gòu)的公鑰可以被分發(fā)給挑戰(zhàn)者,并且已簽名的平臺(tái)類證書可被提供給平臺(tái)類中的每個(gè)設(shè)備或平臺(tái)(例如證明者設(shè)備)。然后所述設(shè)備可以將已簽名的平臺(tái)類證書交給挑戰(zhàn)者。
圖5是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了為制造的每個(gè)平臺(tái)所執(zhí)行的建立過程的流程圖。根據(jù)一個(gè)實(shí)施方案,證明者設(shè)備(設(shè)備)可以選定一個(gè)隨機(jī)數(shù)m,使得0<m-Z<W(在處理框502處)。在判決框504處,判斷設(shè)備在將隨機(jī)數(shù)m發(fā)送給正在證實(shí)的制造者以獲得簽名前,是否將它隱蔽起來(lái)。根據(jù)一個(gè)實(shí)施方案,如果設(shè)備在將隨機(jī)數(shù)m發(fā)送給正在證實(shí)的制造者以獲得簽名前隱蔽了隨機(jī)數(shù)m,那么設(shè)備可以在處理框506處在1和n-1之間選定一個(gè)隨機(jī)數(shù)B,并且計(jì)算A=Bemod n(在處理框508處)。設(shè)備可以在處理框510處計(jì)算m′=m* A mod n。如果設(shè)備沒有隱蔽m,則設(shè)備可以在處理框512處使用m′=m和A=1。
根據(jù)一個(gè)實(shí)施方案,設(shè)備可以在處理框514處將m′發(fā)送給正在證實(shí)的制造者。正在證實(shí)的制造者可以在處理框516處計(jì)算c′=m′dmod n,并且可以在處理框518處將c′交給設(shè)備。設(shè)備可以在處理框520處計(jì)算c=c′*B-1mod n,意味著c=mdmod n。然后用于c和m的數(shù)字可以在處理框522處被存儲(chǔ)在受信平臺(tái)模塊(TPM)中。c和m構(gòu)成的對(duì)可以被稱為設(shè)備制造者的簽名。
圖6是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了預(yù)計(jì)算過程的流程圖。根據(jù)一個(gè)實(shí)施方案,從圖6中所示的預(yù)計(jì)算過程中得出的預(yù)計(jì)算結(jié)果可以在后面由受信平臺(tái)模塊(TPM)用來(lái)向挑戰(zhàn)者證明證實(shí)身份密鑰(AIK)是由該TPM生成的。首先,證明者平臺(tái)(平臺(tái))可以在處理框602處發(fā)起對(duì)AIK的預(yù)計(jì)算。根據(jù)一個(gè)實(shí)施方案,AIK可以足RSA(Rivest,Shamir,Adelman)公鑰/私鑰對(duì)。一個(gè)受信硬件設(shè)備,例如在圖1中的證明者設(shè)備(設(shè)備)(例如設(shè)備B 104)中的TPM可以在處理框604處創(chuàng)建AIK私鑰-公鑰對(duì)。私鑰-公鑰對(duì)可以包括一個(gè)公鑰和一個(gè)私鑰。根據(jù)一個(gè)實(shí)施方案,AIK可能在先前某個(gè)時(shí)候已被創(chuàng)建。設(shè)備可以在處理框606處創(chuàng)建或生成一個(gè)值h。根據(jù)一個(gè)實(shí)施方案,值h可以是隨機(jī)或偽隨機(jī)生成的值,具有hn=1mod P的性質(zhì)。例如,設(shè)備可以在1和n-1之間選擇一個(gè)隨機(jī)數(shù)j,并且計(jì)算h=j(luò)umod P。此外,值h可以是AIK獨(dú)有的。設(shè)備然后可以計(jì)算值k=hmmod P。
根據(jù)一個(gè)實(shí)施方案,設(shè)備可以為特定于h和k的交互式證明執(zhí)行預(yù)計(jì)算。交互式證明可以指示出它知道一對(duì)值c和m,使得m=cemod n和k=hmmod P,并且指示出m位于Z和Z=W之間。根據(jù)一個(gè)實(shí)施方案,可以分兩段來(lái)計(jì)算這個(gè)交互式證明。設(shè)備可以在處理框608處為第一交互式證明(IP1)執(zhí)行預(yù)計(jì)算,指示它知道一對(duì)值c和m,以至于m=cemod n和k=hmmod P。設(shè)備還可以在處理框610處為第二交互式證明(IP2)執(zhí)行預(yù)計(jì)算,指示以h為底k的離散對(duì)數(shù)位于Z和Z+W之間。根據(jù)一個(gè)實(shí)施方案,兩個(gè)交互式證明IP1和IP2可以一起形成一個(gè)交互式證明,其內(nèi)容是TPM知道一對(duì)值c和m,使得m=cemod n,k=hmmod P,并且m位于Z和Z+W之間。
圖7是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了第一交互式證明的預(yù)計(jì)算的流程圖。參考圖6,第一交互式證明(IP1)可被用來(lái)證明受信平臺(tái)模塊(TPM)知道c和m值,以至于m=cemod n和k=hmmod P,而不用證明者設(shè)備(設(shè)備)的TPM泄露c或m。首先,如圖所示,證明者平臺(tái)(平臺(tái))可以在處理框702處選擇保證參數(shù)(AP)。根據(jù)一個(gè)實(shí)施方案,AP的值可以是一個(gè)固定的數(shù)字,例如60。根據(jù)另一個(gè)實(shí)施方案,平臺(tái)可以選擇AP的值。根據(jù)一個(gè)實(shí)施方案,平臺(tái)可以選擇AP的一個(gè)固定值,同時(shí)挑戰(zhàn)者可以選擇AP的一個(gè)不同值。
如果挑戰(zhàn)者挑選的AP的值小于平臺(tái)挑選的值,那么根據(jù)一個(gè)實(shí)施方案,TPM可以只是使用多個(gè)輪次中的最初AP個(gè),并且丟棄其他的。相反,如果挑戰(zhàn)者挑選的AP的值大于平臺(tái)挑選的值,那么TPM可以使用兩個(gè)不同的預(yù)計(jì)算,使用來(lái)自其中一個(gè)的所有輪次以及來(lái)自另一個(gè)的部分輪次。然后,TPM可以使用兩次例如圖12中示出的證明,以顯示離散對(duì)數(shù)對(duì)于兩個(gè)預(yù)計(jì)算和指定h而言都是相同的。
根據(jù)一個(gè)實(shí)施方案,TPM可以在處理框704處隨機(jī)地選擇值x mod n。TPM可以在處理框706處計(jì)算y值,使得x=c*y mod n。TPM還可以在處理框708處計(jì)算v值,使得v=h(xemodn)modP.]]>TPM可以在處理框710處加密并簽名以下值v、y、x、ye、xe,并且將加密并簽名后的值存儲(chǔ)在平臺(tái)上。根據(jù)另一個(gè)實(shí)施方案,TPM可以只存儲(chǔ)值v、y、x、ye、xe的一部分,并且稍后重新計(jì)算其他值。根據(jù)一個(gè)實(shí)施方案,簽名的過程可以是一個(gè)數(shù)字簽名。根據(jù)另一個(gè)實(shí)施方案,簽名的過程可以是用密碼哈希函數(shù),例如安全哈希算法(SHA-1)來(lái)求所述值的哈希值,然后加密所述值和哈希值。根據(jù)一個(gè)實(shí)施方案,可以在處理框712處執(zhí)行驗(yàn)證方案或操作AP次。在判決框714,判斷驗(yàn)證方案是否已被執(zhí)行AP次。如果操作已被執(zhí)行AP次,則操作在處理框716處結(jié)束,如果不是,則操作在處理框704處繼續(xù)。
圖8是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了第二交互式證明的預(yù)計(jì)算的流程圖。第二交互式證明(IP2)可被用來(lái)證明受信平臺(tái)模塊(TPM)知道m(xù)值,滿足Z-W<m<Z+2*W以及k=hmmod P,而無(wú)需TPM泄露m。
首先,證明者平臺(tái)(平臺(tái))可以在處理框802處選擇保證參數(shù)(AP)。如圖7中所示的預(yù)計(jì)算IP1一樣,根據(jù)一個(gè)實(shí)施方案,AP的值可以是一個(gè)固定數(shù),例如60。根據(jù)另一個(gè)實(shí)施方案,平臺(tái)可以選擇AP的值。根據(jù)一個(gè)實(shí)施方案,平臺(tái)可以選擇AP的一個(gè)固定值,同時(shí)挑戰(zhàn)者可以選擇AP的一個(gè)不同值。
如果挑戰(zhàn)者挑選的AP的值小于平臺(tái)挑選的值,那么根據(jù)一個(gè)實(shí)施方案,TPM可以只是使用多個(gè)輪次中的最初AP個(gè),并且丟棄其他的。相反,如果挑戰(zhàn)者挑選的AP的值大于平臺(tái)挑選的值,那么TPM可以使用兩個(gè)不同的預(yù)計(jì)算,使用來(lái)自其中一個(gè)的所有輪次以及來(lái)自另一個(gè)的部分輪次。然后,TPM可以使用兩次例如圖12中的證明,以顯示離散對(duì)數(shù)對(duì)于兩個(gè)預(yù)計(jì)算和指定h而言都是相同的。
根據(jù)一個(gè)實(shí)施方案,在處理框804處,證明者設(shè)備(設(shè)備)的TPM可以隨機(jī)地選擇一個(gè)數(shù)t,滿足0<t<W 702。在處理框806處,TPM可以計(jì)算g0=htmod P。TPM還可以在處理框808處計(jì)算g1=g0* h(-W)mod P。在處理框810處,TPM可以生成兩個(gè)隨機(jī)的160位的值R0和R1。然后TPM可以計(jì)算H0=HASH(AIK公鑰,g0,R0)以及H1=HASH(AIK公鑰,g1,R1)(在處理框812處)。在處理框814處,TPM加密并簽名以下值g0、g1、R0、R1、H0和H1,并將這些值存儲(chǔ)在平臺(tái)上。根據(jù)另一個(gè)實(shí)施方案,值g0、g1、R0、R1、H0和H1中只有一些可以被存儲(chǔ)。
根據(jù)一個(gè)實(shí)施方案,可以在處理框816處重復(fù)以上過程AP次。在判決框818,如果以上過程已執(zhí)行了AP次,則在處理框820處退出操作。如果所述過程還未被執(zhí)行AP次,則操作可以在處理框804處繼續(xù)。根據(jù)一個(gè)實(shí)施方案,如圖7所示的IP1過程的重復(fù)和/或如圖8所示的獲得IP2的過程可以降低例如未經(jīng)授權(quán)的或者正在進(jìn)行欺騙的證明者成功地向挑戰(zhàn)者提供充足證明的可能性。重復(fù)證明(例如IP1或IP2)AP次可以迫使證明者在每一輪都要成功,這只有2AP分之一的機(jī)會(huì)。
根據(jù)一個(gè)實(shí)施方案,平臺(tái)可以選擇具有多組AIK,并且具有多個(gè)IP1和IP2的預(yù)計(jì)算。平臺(tái)可以存儲(chǔ)這些組,直到挑戰(zhàn)者請(qǐng)求對(duì)AIK的證明,并且作為響應(yīng),平臺(tái)可以使用預(yù)計(jì)算出的多組中的一組。
圖9是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了在線計(jì)算過程的流程圖。根據(jù)一個(gè)實(shí)施方案,證明者平臺(tái)(平臺(tái))可以在處理框902處使用多組證實(shí)身份密鑰(AIK)中的一組、以及平臺(tái)可能先前已存儲(chǔ)的預(yù)計(jì)算出的第一和第二交互式證明(IP1和IP2),并且受信平臺(tái)模塊(TPM)可以將AIK公鑰(或者只是AIK公鑰的HASH)發(fā)送給挑戰(zhàn)者。在處理框904處,挑戰(zhàn)者可以選擇保證參數(shù),這也被稱為挑戰(zhàn)者保證參數(shù)(CAP)。在處理框906處,挑戰(zhàn)者可以選擇一組隨機(jī)位(RAND)。挑戰(zhàn)者可以通過選擇例如320個(gè)隨機(jī)位來(lái)選擇RAND。挑戰(zhàn)者可以計(jì)算Commitment=(HASH(AIK公鑰‖RAND),并且可以將Commitment的HASH發(fā)送給TPM,TPM可以將該值存儲(chǔ)起來(lái)(在處理框908處)。根據(jù)一個(gè)實(shí)施方案,HASH可以是一個(gè)密碼哈希函數(shù),例如SHA-1(安全哈希算法)。
在處理框910處,挑戰(zhàn)者的名稱可以被發(fā)送到TPM,TPM可以用它來(lái)形成hNAME。值hNAME可以具有以下性質(zhì)hNAMEn=1 mod P。例如,證明者設(shè)備(設(shè)備)可以對(duì)挑戰(zhàn)者的名稱求哈希值,以形成1和n-1之間的數(shù)字j,并且計(jì)算hNAME=j(luò)umod P。根據(jù)一個(gè)實(shí)施方案,為了計(jì)算hNAME值,可以計(jì)算Hi,使得對(duì)于幾個(gè)值,例如10個(gè)值i=1,2,3...,10,Hi=HASH(i,挑戰(zhàn)者的名稱),然后令j=H1‖H2‖H3...‖H10的級(jí)聯(lián)。設(shè)備然后可以計(jì)算hNAME=j(luò)umod P,其中如前面定義的u=(P-1)/n。設(shè)備還可以計(jì)算kNAME值,使得kNAME=hNAMEmmod P。TPM然后可以在處理框912處計(jì)算kNAME=hNAMEmmod P。
在處理框914處,TPM可以生成一個(gè)證明,即,以h為底k mod P的離散對(duì)數(shù)與以hNAME為底kNAMEmod P的離散對(duì)數(shù)相同,如圖12所示。TPM可以在處理框916處將IP1的最初CAP輪次的哈希值和IP2的最初CAP輪次的哈希值發(fā)送給挑戰(zhàn)者。TPM還可以在處理框918處將以下證明發(fā)送給挑戰(zhàn)者,所述證明就是以h為底k mod P的離散對(duì)數(shù)與以hNAME為底kNAMEmod P的離散對(duì)數(shù)相同。在處理框920處,挑戰(zhàn)者可以將RAND的值發(fā)送給TPM。TPM可以通過計(jì)算HASH(AIK公鑰‖RAND)的值,并且驗(yàn)證這給出的值與在框908中從挑戰(zhàn)者接收到的值相同,從而來(lái)驗(yàn)證RAND的值。TPM可以計(jì)算CHOICES=HASH(RAND‖IP1的最初CAP輪次的HASH‖IP2的最初CAP輪次的HASH)的值。TPM可以將CHOICES的最初2*CAP位用作挑戰(zhàn)者在開啟IP1和IP2的輪次時(shí)確定要泄露哪些信息的選擇(在處理框922處)。根據(jù)一個(gè)實(shí)施方案,挑戰(zhàn)者可能不需要使用hNAME,并且可以接受僅僅基于針對(duì)預(yù)計(jì)算出的h、k值的第一交互式證明(IP1)和第二交互式證明(IP2)的證明。
根據(jù)一個(gè)實(shí)施方案,可以要求平臺(tái)選擇的保證參數(shù)(AP)和挑戰(zhàn)者選擇的CAP是相同的固定值,例如60。根據(jù)另一個(gè)實(shí)施方案,平臺(tái)可以選擇AP的一個(gè)固定值,而挑戰(zhàn)者可以為CAP選擇一個(gè)不同的值。根據(jù)一個(gè)實(shí)施方案,如果挑戰(zhàn)者挑選的CAP的值小于平臺(tái)挑選的AP的值,則TPM可以只是使用多個(gè)輪次中的最初CAP個(gè),并且丟棄其他的。相反,如果挑戰(zhàn)者挑選的CAP的值大于平臺(tái)挑選的AP的值,則TPM可以使用兩個(gè)不同的預(yù)計(jì)算,使用來(lái)自其中一個(gè)的所有輪次以及來(lái)自另一個(gè)的部分輪次。然后,TPM可以使用如圖12所示的證明兩次,以顯示離散對(duì)數(shù)對(duì)于兩個(gè)預(yù)計(jì)算和hNAME、kNAME而言都是相同的。
圖10是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了第一交互式證明的輪次開啟的流程圖。第一交互式證明(IP1)可被用來(lái)證明受信平臺(tái)模塊(TPM)知道c和m值,滿足m=cemod n和k=hmmod P,而不用證明者設(shè)備(設(shè)備)的TPM泄露c或m。首先,根據(jù)一個(gè)實(shí)施方案,挑戰(zhàn)者在處理框1002處向證明者平臺(tái)(平臺(tái))提供挑戰(zhàn)者保證參數(shù)(CAP)。在處理框1004處,挑戰(zhàn)者可以做出選擇是接收x還是y。如果挑戰(zhàn)者選定了x選擇,則TPM可以在處理框1006處將x發(fā)送給挑戰(zhàn)者。在接收到x的值后,挑戰(zhàn)者可以在處理框1008處驗(yàn)證v=h(xemodn)modP.]]>如果挑戰(zhàn)者選擇接收y選擇,那么根據(jù)一個(gè)實(shí)施方案,TPM可以在處理框1010處將y發(fā)送給挑戰(zhàn)者。挑戰(zhàn)者可以在處理框1012處驗(yàn)證v=k(yemodn)modP.]]>根據(jù)一個(gè)實(shí)施方案,這一驗(yàn)證方案或操作可以在處理框1014處執(zhí)行CAP次。如果所述操作被執(zhí)行了CAP次,那么可以在處理框1018處退出操作。如果操作未被執(zhí)行CAP次,則該操作可以在處理框1004處繼續(xù)。
根據(jù)一個(gè)實(shí)施方案,TPM可以將在處理框1006和1010中描述的響應(yīng)發(fā)送給平臺(tái),并且平臺(tái)可以保存所有的響應(yīng),直到TPM已提供了這些響應(yīng)的CAP。然后平臺(tái)可以將所有的響應(yīng)發(fā)送給挑戰(zhàn)者。挑戰(zhàn)者隨后可以完成在框1008和1012中描述的驗(yàn)證操作。
圖11是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了第二交互式證明的輪次開啟的流程圖。第二交互式證明(IP2)可被用來(lái)證明受信平臺(tái)模塊(TPM)知道m(xù)值,滿足Z-W<m<Z+2*W以及k=hmmod P,而無(wú)需TPM泄露m。挑戰(zhàn)者可以在處理框1102處提供保證參數(shù),即挑戰(zhàn)者保證參數(shù)(CAP)。挑戰(zhàn)者可以在處理框1104處從兩個(gè)選擇中進(jìn)行挑選,例如選擇0或1。
如果挑戰(zhàn)者挑選了選擇0,那么根據(jù)一個(gè)實(shí)施方案,TPM可以在處理框1106處將t、R0、R1值以及H0和H1的排序發(fā)送給挑戰(zhàn)者。挑戰(zhàn)者可以在處理框1108處計(jì)算g0=htmod P和g1=h(t-W)mod P。然后,挑戰(zhàn)者可以在處理框1110處檢查0<t<W。挑戰(zhàn)者可以在處理框1112處檢查H0=HASH(AIK公鑰,g0,R0)和H1=HASH(AIK公鑰,g1,R1)。根據(jù)一個(gè)實(shí)施方案,所述操作或過程在處理框1114處執(zhí)行CAP次。在判決框1116處,如果操作已被執(zhí)行CAP次,則可以在處理框1118處退出操作。如果操作還未被執(zhí)行CAP次,則操作可以在處理框1104處繼續(xù)。
如果挑戰(zhàn)者挑選了選擇1,那么在判決框1120處,判斷是否m+t>Z+W。如果m+t不大于Z+W,即m+t位于Z和Z+W之間,則TPM可以在處理框1122處將m′=m+t、g0和R0發(fā)送給挑戰(zhàn)者,并且可以告知挑戰(zhàn)者使用H0。挑戰(zhàn)者可以在處理框1124處檢查H0=HASH(AIK公鑰,g0,R0),以及Z<m′<Z+W,以及g0*k=hmmod P。根據(jù)一個(gè)實(shí)施方案,所述操作或過程在處理框1114處執(zhí)行CAP次。在判決框1116處,如果操作已被執(zhí)行CAP次,則可以在處理框1118處退出操作。如果操作還未被執(zhí)行CAP次,則操作可以在處理框1104處繼續(xù)。
如果m+t>Z+W,則TPM可以在處理框1126處將m′=m-W+t、g1和R1發(fā)送給挑戰(zhàn)者,并且可以告知挑戰(zhàn)者使用H1。挑戰(zhàn)者可以在處理框1128處檢查H1=HASH(AIK公鑰,g1,R1),以及Z<m′<Z+W,以及g1*k=hmmod P。根據(jù)一個(gè)實(shí)施方案,所述操作或過程在處理框1114處執(zhí)行CAP次。在判決框1116處,如果操作已被執(zhí)行CAP次,則可以在處理框1118處退出操作。如果操作還未被執(zhí)行CAP次,則操作可以在處理框1104處繼續(xù)。
根據(jù)一個(gè)實(shí)施方案,重復(fù)用于第一交互式證明(IP1)和/或用于第二交互式證明(IP2)的過程可以降低例如未經(jīng)授權(quán)的或者正在進(jìn)行欺騙的證明者成功地向挑戰(zhàn)者提供充足證明的可能性。也就是說(shuō),重復(fù)一個(gè)過程(例如IP1或IP2)的多個(gè)輪次達(dá)CAP次,這可以迫使證明者在每一輪都要成功,這只有2CAP分之一的機(jī)會(huì)。根據(jù)一個(gè)實(shí)施方案,協(xié)議的輪次可以從證明者設(shè)備的TPM和挑戰(zhàn)者之間的數(shù)輪通信到少數(shù)幾輪通信之間改變。
根據(jù)一個(gè)實(shí)施方案,TPM可以將在框1106、1122和1126中描述的響應(yīng)發(fā)送給平臺(tái),并且平臺(tái)可以保存所有的響應(yīng),直到TPM已提供了這些響應(yīng)的CAP。接著,平臺(tái)可以立即將所有響應(yīng)發(fā)送給挑戰(zhàn)者。挑戰(zhàn)者隨后可以執(zhí)行在框1108、1124和1128中描述的驗(yàn)證操作。
根據(jù)一個(gè)實(shí)施方案,平臺(tái)可以保存來(lái)自IP1和IP2的所有TPM響應(yīng),直到TPM已提供了用于IP1和IP2的所有響應(yīng),然后可以將來(lái)自兩個(gè)協(xié)議的所有響應(yīng)同時(shí)發(fā)送給挑戰(zhàn)者。
對(duì)于挑戰(zhàn)者可以用來(lái)做出選擇的方法而言,有幾種可能的選項(xiàng)。根據(jù)一個(gè)實(shí)施方案,讓TPM在預(yù)計(jì)算過程中形成在IP1和IP2中生成的一些值的Hash,并且使用從該Hash中得到的輸出來(lái)確定挑戰(zhàn)者的選擇,從而可以確定所述選擇。
圖12是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了證明兩個(gè)離散對(duì)數(shù)相同的創(chuàng)建過程的流程圖。在處理框1202處,受信平臺(tái)模塊(TPM)隨機(jī)地選擇在區(qū)間
中的值t。然后,TPM可以在處理框1204處隨機(jī)地計(jì)算j=htmod P和jNAME=hNAMEtmod P。TPM然后可以在處理框1206處隨機(jī)地計(jì)算r=HASH(h,k,hNAME,kNAME,j,jNAME)。在處理框1208處,TPM可以計(jì)算s=Z+t-m*r。最后,在處理框1210處,TPM可以將s、h、k、hNAME、kNAME、j、jNAME發(fā)送到挑戰(zhàn)者。根據(jù)一個(gè)實(shí)施方案,挑戰(zhàn)者隨后可以驗(yàn)證該證明。
圖13是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了證明兩個(gè)離散對(duì)數(shù)相同的驗(yàn)證過程的流程圖。在處理框1302處,挑戰(zhàn)者可以計(jì)算r=HASH(h,k,hNAME,kNAME,j,jNAME)。然后,挑戰(zhàn)者可以在處理框1304檢查j*hZ=kr* hsmod P和jNAME* hNAMEZ=kNAMEr* hNAMEsmod P。如果處理框1304的檢查通過,則挑戰(zhàn)者可以在處理框1306處接受證明。
圖14是根據(jù)一個(gè)實(shí)施方案,概念性地圖示了用于生成t的一種替換方法的流程圖。根據(jù)一個(gè)實(shí)施方案,可以使協(xié)議實(shí)現(xiàn)額外的效率提高。例如,如果t的值是從區(qū)間
上的均勻分布來(lái)確定的,那么安全參數(shù)(SP)例如SP1=60位可以被選擇得足夠大,使得有關(guān)m的信息不被泄露。然而,選擇t的一種替換方法,例如從非均勻分布中選擇,可以允許SP(例如SP2=10位)小得多,導(dǎo)致更高的效率。
在處理框1402,根據(jù)一個(gè)實(shí)施方案,受信平臺(tái)模塊(TPM)可以從區(qū)間
隨機(jī)地選擇安全參數(shù)(SP2)值t1,t2,...tSP2。然后,TPM可以在處理框1404處計(jì)算t=t1+t2+...+tSP2。
雖然在附圖中已經(jīng)示出并且描述了本發(fā)明的某些示例性的實(shí)施方案,但是可以理解的是,這些實(shí)施方案對(duì)于本發(fā)明各種實(shí)施方案的寬廣方面而言僅僅是示例性的而非限制性的,這些實(shí)施方案不被限制在所示出并描述的具體構(gòu)造和布置中,因?yàn)楦鞣N其他修改都是可能的。可以用硬件、可編程器件、固件、軟件或它們的組合來(lái)實(shí)現(xiàn)本發(fā)明的多種實(shí)施方案或者它們的某些特征。
權(quán)利要求
1.一種方法,包括預(yù)計(jì)算在對(duì)應(yīng)于第一陳述的第一證明中的多個(gè)值;接收來(lái)自挑戰(zhàn)者的對(duì)第二證明的請(qǐng)求;完成所述第一證明;以及完成所述第二證明。
2.如權(quán)利要求1所述的方法,還包括將所述第二證明發(fā)送給所述挑戰(zhàn)者。
3.如權(quán)利要求1所述的方法,其中所述第二證明包括如果所述第一陳述為真,則第二陳述也為真的證明。
4.如權(quán)利要求1所述的方法,其中所述第二證明包括由所述挑戰(zhàn)者提供的值。
5.如權(quán)利要求3所述的方法,其中所述第二陳述包括在受信硬件設(shè)備上持有密碼密鑰。
6.一種方法,包括由一個(gè)平臺(tái)發(fā)起對(duì)證實(shí)身份密鑰(AIK)的預(yù)計(jì)算;生成AIK私鑰-公鑰對(duì);以及生成私有AIK位于受信硬件設(shè)備上的交互式證明(IP)。
7.如權(quán)利要求6所述的方法,還包括生成一個(gè)值h,其中值h對(duì)所述AIK是唯一的。
8.如權(quán)利要求7所述的方法,還包括計(jì)算如k=hmmod P所定義的k值。
9.如權(quán)利要求8所述的方法,其中m是隨機(jī)生成的數(shù),P是大的質(zhì)數(shù)。
10.一種方法,包括從非均勻分布中選擇一個(gè)隨機(jī)值r;將所述r值與一個(gè)秘密值m相加,以生成r+m值;保存所述r值和所述r+m值;以及泄露所述r值或所述r+m值。
11.如權(quán)利要求10所述的方法,其中選擇步驟包括從均勻分布中選擇多個(gè)t值。
12.如權(quán)利要求10所述的方法,還包括通過求和所述多個(gè)t值來(lái)計(jì)算所述r值。
13.如權(quán)利要求10所述的方法,還包括重復(fù)選擇、相加、保存和泄露步驟多次。
14.如權(quán)利要求10所述的方法,其中所述泄露步驟包括基于由證明者形成的值的哈希運(yùn)算的輸出,泄露所述r值或所述r+m值。
15.一種方法,包括提交第一值;提交交互式證明的多個(gè)輪次的輸出;泄露所述第一值;以及使用所述第一值和所述交互式證明的多個(gè)輪次的輸出來(lái)計(jì)算選擇。
16.如權(quán)利要求15所述的方法,其中提交第一值的步驟包括計(jì)算所述第一值的密碼哈希值,并將該密碼哈希值發(fā)送給證明者。
17.如權(quán)利要求15所述的方法,其中提交所述輸出的步驟包括計(jì)算所述第一值的密碼哈希值,并將該密碼哈希值發(fā)送給挑戰(zhàn)者。
18.一種裝置,包括挑戰(zhàn)者設(shè)備;以及與所述挑戰(zhàn)者設(shè)備通信式耦合的證明者設(shè)備,其中所述證明者設(shè)備預(yù)計(jì)算在對(duì)應(yīng)于第一陳述的第一證明中的多個(gè)值;接收來(lái)自所述挑戰(zhàn)者設(shè)備的對(duì)第二證明的請(qǐng)求;完成所述第一證明;以及完成所述第二證明。
19.如權(quán)利要求18所述的裝置,其中所述證明者設(shè)備還將所述第二證明發(fā)送給挑戰(zhàn)者。
20.如權(quán)利要求18所述的裝置,其中所述第二證明包括如果所述第一陳述為真,則第二陳述也為真的證明。
21.如權(quán)利要求20所述的裝置,其中所述第二陳述包括在受信硬件設(shè)備上持有密碼密鑰。
22.一種系統(tǒng),包括存儲(chǔ)設(shè)備;與所述存儲(chǔ)設(shè)備耦合的處理單元;與所述處理單元耦合的通信端口;經(jīng)由所述通信端口與挑戰(zhàn)者設(shè)備耦合的證明者設(shè)備,其中所述證明者設(shè)備預(yù)計(jì)算在對(duì)應(yīng)于第一陳述的第一證明中的多個(gè)值;接收來(lái)自所述挑戰(zhàn)者設(shè)備的對(duì)第二證明的請(qǐng)求;完成所述第一證明;以及完成所述第二證明。
23.如權(quán)利要求22所述的系統(tǒng),其中所述證明者設(shè)備還將所述第二證明發(fā)送給所述挑戰(zhàn)者設(shè)備。
24.如權(quán)利要求22所述的系統(tǒng),其中所述第二證明包括如果所述第一陳述為真,則第二陳述也為真的證明。
25.一種其上存儲(chǔ)有代表指令序列的數(shù)據(jù)的機(jī)器可讀介質(zhì),所述指令序列在被機(jī)器執(zhí)行時(shí)使得所述機(jī)器預(yù)計(jì)算在對(duì)應(yīng)于第一陳述的第一證明中的多個(gè)值;接收來(lái)自挑戰(zhàn)者的對(duì)第二證明的請(qǐng)求;完成所述第一證明;以及完成所述第二證明。
26.如權(quán)利要求25所述的機(jī)器可讀介質(zhì),其中所述指令序列在被所述機(jī)器執(zhí)行時(shí)還導(dǎo)致所述機(jī)器將所述第二證明發(fā)送給所述挑戰(zhàn)者。
27.如權(quán)利要求25所述的機(jī)器可讀介質(zhì),其中所述第二證明包括如果所述第一陳述為真,則第二陳述也為真的證明。
28.一種其上存儲(chǔ)有代表指令序列的數(shù)據(jù)的機(jī)器可讀介質(zhì),所述指令序列在被機(jī)器執(zhí)行時(shí)使得所述機(jī)器由一個(gè)平臺(tái)發(fā)起對(duì)證實(shí)身份密鑰(AIK)的預(yù)計(jì)算;生成AIK私鑰-公鑰對(duì);以及生成私有AIK位于受信硬件設(shè)備上的交互式證明(IP)。
29.如權(quán)利要求28所述的機(jī)器可讀介質(zhì),其中所述指令序列在被所述機(jī)器執(zhí)行時(shí)還導(dǎo)致所述機(jī)器生成一個(gè)值h,其中值h對(duì)所述AIK是唯一的。
30.如權(quán)利要求28所述的機(jī)器可讀介質(zhì),其中所述指令序列在被所述機(jī)器執(zhí)行時(shí)還導(dǎo)致所述機(jī)器計(jì)算如k=hmmod P所定義的k值。
全文摘要
一種不泄露身份而建立信任的方法、系統(tǒng)和裝置。根據(jù)一個(gè)實(shí)施方案,預(yù)計(jì)算對(duì)應(yīng)于第一陳述的第一證明中的值,從挑戰(zhàn)者接收到對(duì)第二證明的請(qǐng)求,并且完成第一和第二證明。
文檔編號(hào)H04L9/32GK1806411SQ200480016181
公開日2006年7月19日 申請(qǐng)日期2004年3月5日 優(yōu)先權(quán)日2003年4月11日
發(fā)明者厄尼·布里克爾 申請(qǐng)人:英特爾公司