專利名稱:生成無(wú)密鑰數(shù)字多重簽名的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及數(shù)字簽名的創(chuàng)建。更具體地,本發(fā)明涉及生成用于數(shù)字?jǐn)?shù)據(jù)的無(wú)密鑰數(shù)字多重簽名(keyless digital mult1-signatures)的系統(tǒng)和方法。
背景技術(shù):
數(shù)字簽名常用來(lái)認(rèn)證數(shù)字?jǐn)?shù)據(jù),比如文件、報(bào)文、財(cái)務(wù)信息以及其它數(shù)據(jù)。當(dāng)一塊數(shù)據(jù)被數(shù)字簽名,該數(shù)據(jù)的接收者可以驗(yàn)證該數(shù)據(jù)來(lái)自于特定的發(fā)送者,通稱為簽名者,以及該數(shù)據(jù)從其被簽名后沒(méi)有被修改。數(shù)字簽名也可以在數(shù)據(jù)被創(chuàng)建時(shí)或數(shù)據(jù)被發(fā)送時(shí)進(jìn)行驗(yàn)證。現(xiàn)有的數(shù)字簽名方案使用公鑰密碼,其中簽名者使用私人密鑰創(chuàng)建數(shù)字簽名,與該私人密鑰配對(duì)的公鑰被用來(lái)驗(yàn)證該數(shù)字簽名。公鑰與使用公鑰證書(shū)的簽名者的身份綁定,而該公鑰證書(shū)由在這種公鑰基礎(chǔ)設(shè)施(public-key infrastructure)方案中的受信任的認(rèn)證機(jī)構(gòu)(Certificate Authority)發(fā)布。接收者使用該公鑰證書(shū)來(lái)驗(yàn)證該數(shù)字簽名。但是,這些現(xiàn)有的數(shù)字簽名方案有一些缺點(diǎn)。只要私人密鑰被發(fā)布,簽名者可以使用該私人密鑰產(chǎn)生無(wú)限數(shù)量的數(shù)字簽名。更重要地,如果該私人密鑰失竊,則未被授權(quán)的實(shí)體也可以作為簽名者生成并分發(fā)合法的數(shù)字簽名。在這種情況下,合法的簽名者可以嘗試作廢該私人密鑰,但是很難確定在該私人密鑰丟失和該私人密鑰被作廢之時(shí)之間的時(shí)間段內(nèi)是否已經(jīng)有偽造的簽名被創(chuàng)建。驗(yàn)證先前創(chuàng)建的簽名是否是有效的也變得更加復(fù)雜,因?yàn)榕c那些簽名關(guān)聯(lián)的私人密鑰已經(jīng)被作廢。而且,由于私人密鑰的創(chuàng)建不受簽名者的控制,因此現(xiàn)有的數(shù)字簽名方案依賴于認(rèn)證機(jī)構(gòu)的可信度。如果認(rèn)證機(jī)構(gòu)泄密,則基于該認(rèn)證機(jī)構(gòu)發(fā)布的私人密鑰創(chuàng)建的數(shù)字簽名將是可疑的。因此,簽名者必須給予認(rèn)證機(jī)構(gòu)無(wú)條件的 目任。其它的數(shù)字簽名方案試圖通過(guò)在合法簽名者和服務(wù)器之間共享私人密鑰來(lái)減少如果私人密鑰失竊時(shí)未被授權(quán)的實(shí)體創(chuàng)建數(shù)字簽名的風(fēng)險(xiǎn)。但是公鑰密碼仍然包含在這種服務(wù)器支持的數(shù)字簽名方案 中,私人密鑰仍然可以被未被授權(quán)的實(shí)體泄露。還有其它的數(shù)字簽名方案使用試圖減少在私人密鑰丟失和該私人密鑰被作廢之時(shí)之間的時(shí)間段內(nèi)的風(fēng)險(xiǎn)的時(shí)間戳服務(wù)。但是,這種類(lèi)型的方案只支持公鑰基礎(chǔ)設(shè)施和前文詳述的與它相關(guān)聯(lián)的風(fēng)險(xiǎn)。并且,由于可能不知道私人密鑰何時(shí)丟失或被盜,因此在該私人密鑰被作廢之前仍然可能有偽造的簽名被創(chuàng)建。此外,一些現(xiàn)有的數(shù)字簽名方案不依賴公鑰和/或私人密鑰,而是使用能夠一次支持來(lái)自于客戶端計(jì)算機(jī)的單個(gè)簽名請(qǐng)求的簽名生成服務(wù)器。在一個(gè)方案中,無(wú)密鑰數(shù)字簽名服務(wù)提供商運(yùn)行頂層的簽名生成服務(wù)器,該頂層的簽名生成服務(wù)器與較低層的服務(wù)器通信,該較低層的服務(wù)器可以被其它實(shí)體運(yùn)行,比如該服務(wù)提供商的客戶。該服務(wù)提供商可能希望針對(duì)在該頂層簽名生成服務(wù)器中生成的簽名向該較低層服務(wù)器的運(yùn)行者收費(fèi)。在這種方案中,一次產(chǎn)生的無(wú)密鑰簽名的數(shù)量可能不容易被追蹤或限制。當(dāng)驗(yàn)證生成的簽名時(shí)可以執(zhí)行檢查哈希鏈的總長(zhǎng)度來(lái)追蹤生成的簽名的數(shù)量,但是這將要求所有的客戶在生成的簽名的數(shù)量上有相同的最大限額。在這種方案中不同客戶的需求無(wú)法被滿足。
另一種限制頂層簽名生成服務(wù)器生成的簽名的數(shù)量的方法是當(dāng)驗(yàn)證生成的簽名時(shí)在哈希鏈中的每個(gè)步驟包括一個(gè)數(shù)字標(biāo)記。對(duì)生成的簽名的數(shù)量的限制可以為每個(gè)客戶不同地設(shè)置,因此不會(huì)所有的客戶必須具有相同的最大限額。在這種方案中,當(dāng)簽名被驗(yàn)證時(shí),為了成功地驗(yàn)證該簽名,將檢查數(shù)字標(biāo)記以確保它們是嚴(yán)格地按升序排列的,也就是說(shuō),每個(gè)數(shù)字標(biāo)記必須比哈希鏈中前一個(gè)步驟的數(shù)字標(biāo)記大。但是,客戶服務(wù)器可能在這種方法中回避檢查該數(shù)字標(biāo)記以避開(kāi)對(duì)生成的簽名的數(shù)量的限制,而剩余的簽名將仍然能夠成功地驗(yàn)證。
發(fā)明內(nèi)容
本發(fā)明提供來(lái)基于從一個(gè)或多個(gè)客戶端計(jì)算機(jī)接收多個(gè)簽名生成請(qǐng)求而生成無(wú)密鑰數(shù)字多重簽名。通過(guò)同時(shí)處理多個(gè)簽名請(qǐng)求,本發(fā)明實(shí)現(xiàn)了更有效率和更快地生成無(wú)密鑰數(shù)字簽名。而且,本發(fā)明可以限制一次能夠被生成的簽名的數(shù)量從而追蹤和/或限額客戶端計(jì)算機(jī)為記賬或其它目的而請(qǐng)求的簽名。本發(fā)明一個(gè)實(shí)施例中,揭露了一種生成無(wú)密鑰數(shù)字多重簽名的系統(tǒng)和方法,其中服務(wù)提供商的計(jì)算機(jī)接收來(lái)自于客戶端計(jì)算機(jī)的多個(gè)簽名生成請(qǐng)求。構(gòu)建包括每個(gè)客戶端計(jì)算機(jī)的子樹(shù)的搜索樹(shù)。該搜索樹(shù)的葉節(jié)點(diǎn)與每個(gè)簽名生成請(qǐng)求對(duì)應(yīng)。該搜索樹(shù)通過(guò)給該搜索樹(shù)的葉節(jié)點(diǎn)根據(jù)需要指定顯式長(zhǎng)度標(biāo)記而保持平衡。通過(guò)對(duì)節(jié)點(diǎn)應(yīng)用哈希函數(shù),該搜索樹(shù)中的每個(gè)節(jié)點(diǎn)的哈希值被計(jì)算出來(lái)。搜索樹(shù)的根節(jié)點(diǎn)的哈希值和搜索樹(shù)高度標(biāo)記組成總簽名請(qǐng)求。該總簽名請(qǐng)求產(chǎn)生將在服務(wù)提供商計(jì)算機(jī)中被創(chuàng)建和接收的總簽名。只有當(dāng)搜索樹(shù)高度標(biāo)記沒(méi)有超過(guò)高度限制時(shí),該總簽名才被創(chuàng)建。針對(duì)簽名生成請(qǐng)求的無(wú)密鑰數(shù)字多重簽名基于該總簽名生成。當(dāng)該無(wú)密鑰數(shù)字多重簽名被生成并驗(yàn)證時(shí),在該總簽名中的為空的隱含長(zhǎng)度標(biāo)記被填充,以使得簽名生成請(qǐng)求的數(shù)量受到限制。其它的特征和優(yōu)點(diǎn)將通過(guò)下文中的描述和附圖進(jìn)行說(shuō)明。
圖1為生成無(wú)密鑰數(shù)字多重簽名的方法的整體流程圖;圖2為顯示在圖1中的生成操作中對(duì)搜索樹(shù)的節(jié)點(diǎn)應(yīng)用哈希函數(shù)的流程圖;圖3為顯示在圖1中的生成操作中生成總簽名的流程圖;圖4為顯示在圖1中的生成操作中接收總簽名后生成無(wú)密鑰數(shù)字多重簽名的流程圖;圖5A- 顯示了根據(jù)本發(fā)明實(shí)施例的簽名生成請(qǐng)求和構(gòu)建的結(jié)果的哈希樹(shù);圖6A-6B顯示了根據(jù)本發(fā)明實(shí)施例的對(duì)哈希樹(shù)的節(jié)點(diǎn)應(yīng)用哈希函數(shù);圖7A-7B顯示了根據(jù)本發(fā)明實(shí)施例的與無(wú)密鑰數(shù)字多重簽名的生成關(guān)聯(lián)的哈希樹(shù);圖8顯示了根據(jù)本發(fā)明實(shí)施例的與無(wú)密鑰數(shù)字多重簽名的生成相關(guān)的哈希鏈和無(wú)密鑰數(shù)字多重簽名。
具體實(shí)施例方式本發(fā)明容許很多不同形式的實(shí)施例,附圖中所示的和將在此進(jìn)行詳細(xì)描述的是本發(fā)明的優(yōu)選的實(shí)施例,應(yīng)當(dāng)理解,當(dāng)前揭露的內(nèi) 容將被認(rèn)為是本發(fā)明的原理的實(shí)例,而不是想要將本發(fā)明的主要方面限制到這些描述的實(shí)施例上。圖1顯示了生成無(wú)密鑰數(shù)字多重簽名的流程100的優(yōu)選的實(shí)施例。該流程100的結(jié)果是響應(yīng)從一個(gè)或多個(gè)客戶端計(jì)算機(jī)接收的多重簽名生成請(qǐng)求創(chuàng)建無(wú)密鑰數(shù)字多重簽名。該流程100可以在單個(gè)的服務(wù)器上或者在相互之間電氣通信的多個(gè)服務(wù)器上實(shí)現(xiàn)。在一個(gè)實(shí)施例中,該服務(wù)器可以由為一個(gè)或多個(gè)客戶端計(jì)算機(jī)創(chuàng)建數(shù)字無(wú)密鑰多重簽名的單個(gè)服務(wù)提供商和/或其它服務(wù)提供商運(yùn)行。另一個(gè)實(shí)施例中,父服務(wù)器可以由服務(wù)提供商運(yùn)行而與該父服務(wù)器通信的子服務(wù)器可以由其它的實(shí)體運(yùn)行。本實(shí)施例中,該子服務(wù)器可以將簽名生成請(qǐng)求發(fā)送到父服務(wù)器。該父服務(wù)器然后可以生成無(wú)密鑰數(shù)字多重簽名并將該無(wú)密鑰數(shù)字多重簽名發(fā)送回子服務(wù)器。該服務(wù)器可以包括適宜的處理器,如本領(lǐng)域內(nèi)技術(shù)人員所熟知的一樣。該處理器可操作地連接到至少一個(gè)存儲(chǔ)設(shè)備,比如硬盤(pán)或閃存或其它適宜的存儲(chǔ)設(shè)備,這些存儲(chǔ)設(shè)備可以包括易失性存儲(chǔ)器元件(例如,隨機(jī)存取存儲(chǔ)器(RAM,比如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)等等))和非易失性存儲(chǔ)器元件(例如,只讀存儲(chǔ)器(ROM)、硬盤(pán)、磁帶、光盤(pán)只讀存儲(chǔ)器(CDROM)等等)中的任意一個(gè)或其結(jié)合。而且,該存儲(chǔ)設(shè)備可以結(jié)合電子的、磁的、光的和/或其它類(lèi)型的存儲(chǔ)介質(zhì)。該存儲(chǔ)設(shè)備可以具有分布式結(jié)構(gòu),其中不同的元件彼此遠(yuǎn)離設(shè)置,但是仍然可以被處理器存取。本發(fā)明的步驟和/元件,和/或它們的部分可以使用源程序、可執(zhí)行程序(目標(biāo)代碼)、腳本或任何其它包括一系列將被執(zhí)行的指令的實(shí)體實(shí)現(xiàn)。當(dāng)為源程序時(shí),該程序需要通過(guò)可以包括在或未包括在存儲(chǔ)器中的編譯器、匯編器、解釋器或類(lèi)似程序進(jìn)行翻譯,以便連同操作系統(tǒng)(Ο/s)正確地運(yùn)行。此外,實(shí)現(xiàn)本發(fā)明的軟件可以用下述語(yǔ)言編寫(xiě):(a)面向?qū)ο蟮木幊陶Z(yǔ)言,其具有數(shù)據(jù)類(lèi)和方法類(lèi);或(b)面向過(guò)程的編程語(yǔ)言,其具有例行程序、子例行程序和/或函數(shù),例如但不限于C、C++、Pascal、Basic、Fortran、Cobol、Perl、Java和 Ada。當(dāng)服務(wù)器在運(yùn)行中時(shí),處理器用于執(zhí)行存儲(chǔ)在存儲(chǔ)設(shè)備中的軟件、對(duì)存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)存取、以及通 常按照該軟件控制服務(wù)器的運(yùn)行。本發(fā)明的軟件方面和操作系統(tǒng)整體地或部分地,但是典型地為后者,被處理器讀出,或許在處理器中被緩沖,然后被執(zhí)行。當(dāng)本發(fā)明或其一些方面在軟件中實(shí)現(xiàn)時(shí),應(yīng)該注意到該軟件可以被存儲(chǔ)在任何計(jì)算機(jī)可讀介質(zhì)上以被或連同任何計(jì)算機(jī)相關(guān)的系統(tǒng)或方法使用。在本文的上下文中,計(jì)算機(jī)可讀介質(zhì)是能夠容納或存儲(chǔ)用于被或連同計(jì)算機(jī)相關(guān)的系統(tǒng)或方法使用的計(jì)算機(jī)程序的電子的、磁的、光的或其它物理的設(shè)備或裝置。本發(fā)明可以在任何計(jì)算機(jī)可讀介質(zhì)中實(shí)現(xiàn)以用于被或連同指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用,比如基于計(jì)算機(jī)的系統(tǒng)、包含處理器的系統(tǒng)或能夠從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取得指令并執(zhí)行指令的其它的系統(tǒng)。在本文的上下文中,“計(jì)算機(jī)可讀介質(zhì)”可以是任何能夠存儲(chǔ)、通信、傳播或傳送用于被或連同指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用的程序的裝置。該計(jì)算機(jī)可讀介質(zhì)可以是,例如但不限于:電子的、磁的、光的、電磁的、紅外的或半導(dǎo)體的系統(tǒng)、裝置、設(shè)備或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的更詳細(xì)的例子(非無(wú)遺漏的清單)將包括:具有一條或多條導(dǎo)線的電氣連接(電子的)、便攜式計(jì)算機(jī)磁盤(pán)(磁的)、隨機(jī)存取存儲(chǔ)器(RAM)(電子的)、只讀存儲(chǔ)器(ROM)(電子的)、可擦除可編程只讀存儲(chǔ)器(EPR0M、EEPR0M(電可擦除可編程只讀存儲(chǔ)器)或閃存存儲(chǔ)器)(電子的)、光纖(光的)和便攜式光盤(pán)只讀存儲(chǔ)器(CDROM)(光的)。注意到該計(jì)算機(jī)可讀介質(zhì)甚至可以是程序打印于其上的紙或其它的適宜的介質(zhì),該程序可以通過(guò)例如光學(xué)掃描該紙或其它介質(zhì)而被電子地捕獲,然后被編譯、解釋或如果需要以適宜的方式不同地處理,然后被存儲(chǔ)到計(jì)算機(jī)存儲(chǔ)器中。為了在服務(wù)器之間和/或在服務(wù)器和客戶端計(jì)算機(jī)之間通訊,服務(wù)器中設(shè)有網(wǎng)絡(luò)通信設(shè)備和電路。在一個(gè)優(yōu)選的實(shí)施例中,該網(wǎng)絡(luò)通信設(shè)備包括網(wǎng)卡,比如以太網(wǎng)卡。在一個(gè)優(yōu)選的網(wǎng)絡(luò)環(huán)境中,每個(gè)服務(wù)器設(shè)置為使用傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP協(xié)議)通過(guò)網(wǎng)絡(luò)301進(jìn)行通信。但是,可以理解,還可以使用多種網(wǎng)絡(luò)協(xié)議,比如互聯(lián)網(wǎng)分組交換/順序分組交換(IPX/SPX)協(xié)議、網(wǎng)件(Netware)、點(diǎn)對(duì)點(diǎn)協(xié)議(PPP)和其它的網(wǎng)絡(luò)協(xié)議。無(wú)線網(wǎng)絡(luò)連接也是可以考慮的,比如無(wú)線以太網(wǎng)(wireless Ethernet)、衛(wèi)星網(wǎng)(satellite)、紅外(infrared)和射頻(radio frequency)網(wǎng)絡(luò)。參見(jiàn)圖1,在流程100的步驟102,服務(wù)提供商計(jì)算機(jī)可以從一個(gè)或多個(gè)客戶端計(jì)算機(jī)接收多個(gè)簽名生成請(qǐng)求502。每個(gè)該簽名生成請(qǐng)求502可以包括數(shù)據(jù)504、樹(shù)高度標(biāo)記506和客戶端計(jì)算機(jī)標(biāo)識(shí)符508,如圖5A所示。例如,在圖5A中,第一簽名生成請(qǐng)求502具有數(shù)據(jù)504:x(l)、樹(shù)高度標(biāo)記506:4和客戶端計(jì)算機(jī)標(biāo)識(shí)符508:“AA”。數(shù)據(jù)504可以表示任何類(lèi)型的能夠用無(wú)密鑰數(shù)字多重簽名簽署的數(shù)字信息。數(shù)據(jù)504可以包括文件、電子郵件或任何其它類(lèi)型的數(shù)字化表現(xiàn)的信息。樹(shù)高度標(biāo)記506表示包含在簽名生成請(qǐng)求502中的樹(shù)的高度。當(dāng)在流程100中的后續(xù)步驟中創(chuàng)建搜索樹(shù)524時(shí),該簽名生成請(qǐng)求502中的樹(shù)的高度將被考慮進(jìn)去,以使得該搜索樹(shù)524保持恰當(dāng)?shù)钠胶獾钠胶?。該?shù)的根哈希值可以包含在簽名生成請(qǐng)求502中以表示與該數(shù)據(jù)504相關(guān)的多重簽名生成請(qǐng)求。客戶端計(jì)算機(jī)標(biāo)識(shí)符508是發(fā)出簽名生成請(qǐng)求502的客戶端計(jì)算機(jī)的唯一標(biāo)識(shí)。該客戶端計(jì)算機(jī)標(biāo)識(shí)符508可以是文本、數(shù)字、字母數(shù)字混合或其它的識(shí)別客戶端計(jì)算機(jī)的表征。在步驟104,簽名生成請(qǐng)求502可以根據(jù)它們各自的客戶端計(jì)算機(jī)標(biāo)識(shí)符508進(jìn)行分組。在一個(gè)優(yōu)選的實(shí)施例中,該簽名生成請(qǐng)求502可以存儲(chǔ)在分類(lèi)數(shù)據(jù)庫(kù)中。在圖5A的例子中顯示了三個(gè)客戶端計(jì)算機(jī)標(biāo)識(shí)符508:AA、AB和BB。簽名生成請(qǐng)求502被客戶端計(jì)算機(jī)標(biāo)識(shí)符508按字母 順序分組。如果客戶端計(jì)算機(jī)標(biāo)識(shí)符508使用了其它的表征,可以使用標(biāo)識(shí)符508的任何順序關(guān)系將簽名生成請(qǐng)求502分組進(jìn)分類(lèi)數(shù)據(jù)庫(kù)中。每個(gè)客戶端計(jì)算機(jī)的子樹(shù)可以在步驟106建立。該子樹(shù)可以基于在步驟104執(zhí)行的該簽名生成請(qǐng)求502的分組而建立。特別地,每個(gè)子樹(shù)的葉節(jié)點(diǎn)每個(gè)被分配一個(gè)簽名生成請(qǐng)求502。如從圖5B中的例子可見(jiàn)的一樣,具有為每個(gè)客戶端計(jì)算機(jī)標(biāo)識(shí)符AA、AB和BB分別建立的三個(gè)子樹(shù)510、512和514。在子樹(shù)510、512和514中的葉節(jié)點(diǎn)516具有分配給它們的簽名生成請(qǐng)求502。對(duì)于客戶端計(jì)算機(jī)標(biāo)識(shí)符AA和AB的子樹(shù)510和512,還具有另外的節(jié)點(diǎn)518,該節(jié)點(diǎn)518將是將在流程100的后續(xù)步驟中構(gòu)建的搜索樹(shù)524的中間節(jié)點(diǎn)。在步驟108中,可以構(gòu)建搜索樹(shù)骨架522并將子樹(shù)分配到該搜索樹(shù)骨架522以構(gòu)建搜索樹(shù)524,如圖5C和中的例子所示。圖5C中的搜索樹(shù)骨架522包括來(lái)自于子樹(shù)510、512和514的中間節(jié)點(diǎn)518以及葉節(jié)點(diǎn)“ =BB” 516。該葉節(jié)點(diǎn)“=BB”516被包含在搜索樹(shù)骨架522中,因?yàn)樗窃诓襟E106中構(gòu)建的客戶端計(jì)算機(jī)標(biāo)識(shí)符BB的子樹(shù)514。搜索樹(shù)骨架522被用來(lái)主要基于搜索樹(shù)524的葉節(jié)點(diǎn)516中的客戶端計(jì)算機(jī)標(biāo)識(shí)符508的詞典特征(lexicographical characteristics)而連接子樹(shù) 510、512 和 514。圖中的例子所不的搜索樹(shù)524基于子樹(shù)510、512和514以及搜索樹(shù)骨架522構(gòu)建。該搜索樹(shù)524包括葉節(jié)點(diǎn)516、中間節(jié)點(diǎn)518和根節(jié)點(diǎn)520。通過(guò)對(duì)該搜索樹(shù)524的每個(gè)節(jié)點(diǎn)應(yīng)用哈希函數(shù),可以生成總簽名請(qǐng)求528,下文將進(jìn)一步詳細(xì)描述。在圖的搜索樹(shù)524中與中間節(jié)點(diǎn)518相關(guān)的標(biāo)記“=AA”、“= AB”和“=BB”是分配給該中間節(jié)點(diǎn)518的搜索關(guān)鍵字。每個(gè)中間節(jié)點(diǎn)518的子節(jié)點(diǎn)和孫節(jié)點(diǎn)具有與各自的中間節(jié)點(diǎn)相同的客戶端計(jì)算機(jī)標(biāo)識(shí)符(例如,AA、AB或BB)。例如,具有搜索關(guān)鍵字“=AA”的中間節(jié)點(diǎn)518具有兩個(gè)子節(jié)點(diǎn),每個(gè)子節(jié)點(diǎn)具有客戶端計(jì)算機(jī)標(biāo)識(shí)符AA。在步驟110,顯式長(zhǎng)度標(biāo)記526被分配到每個(gè)葉節(jié)點(diǎn)516以平衡該構(gòu)建的搜索樹(shù)524。流程100重復(fù)步驟110和112直到所有的葉節(jié)點(diǎn)都被分配了顯式長(zhǎng)度標(biāo)記526。該顯式長(zhǎng)度標(biāo)記526可以為O或不為O。搜索樹(shù)524可能會(huì)由于簽名生成請(qǐng)求502中的樹(shù)高度標(biāo)記506和/或由于包含在搜索樹(shù)524中的單個(gè)的哈希鏈的長(zhǎng)度而不平衡。由于包含在每個(gè)簽名生成請(qǐng)求502中的樹(shù),樹(shù)高度標(biāo)記506增加了搜索樹(shù)524的高度。如從圖中的例子可見(jiàn)的一樣,最高的高度來(lái)自于簽名生成請(qǐng)求502:x(3)和X (4)。特別地,簽名生成請(qǐng)求502:x(3)具有為4的樹(shù)高度標(biāo)記506而簽名生成請(qǐng)求502:X(4)具有為3的樹(shù)高度標(biāo)記506,但是該簽名生成請(qǐng)求502:x(4)在搜索樹(shù)524中是比簽名生成請(qǐng)求502:x(3)低的層級(jí)。由于這些樹(shù)高度標(biāo)記506,在分配任何顯式長(zhǎng)度標(biāo)記526之前,搜索樹(shù)524的高度 為7。但是,為了恰當(dāng)?shù)仄胶庠撍阉鳂?shù)524,在需要時(shí)顯式長(zhǎng)度標(biāo)記526被分配到葉節(jié)點(diǎn)516。在圖所示的例子中,不為O的顯式長(zhǎng)度標(biāo)記526需要被分配給簽名生成請(qǐng)求502:x (I)、X (5)和X (6)以使得從這些各自的葉節(jié)點(diǎn)516到根節(jié)點(diǎn)520的高度為7。也就是說(shuō),在步驟110和112,顯式長(zhǎng)度標(biāo)記526的分配考慮了葉節(jié)點(diǎn)516在搜索樹(shù)524中所處的層級(jí)以及在簽名生成請(qǐng)求502中的樹(shù)高度標(biāo)記506。搜索樹(shù)524的所有節(jié)點(diǎn)的哈希值可以在步驟114計(jì)算,這將參考圖2進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。在步驟202,檢查搜索樹(shù)524的一個(gè)確定的節(jié)點(diǎn)。在步驟204,取決于該節(jié)點(diǎn)是葉節(jié)點(diǎn)516還是非葉節(jié)點(diǎn)(中間節(jié)點(diǎn)518或根節(jié)點(diǎn)520),步驟114中的該流程分別走向步驟206或步驟210。如果該節(jié)點(diǎn)是葉節(jié)點(diǎn)516,在步驟206,哈希函數(shù)602可以被應(yīng)用到基于數(shù)據(jù)504、樹(shù)高度標(biāo)記506、客戶端計(jì)算機(jī)標(biāo)識(shí)符508和顯式長(zhǎng)度標(biāo)記526的葉節(jié)點(diǎn)516。圖6A顯示了簽名生成請(qǐng)求502:x(5)的例子。結(jié)果的哈希值604y可以在步驟208被分配給該確定的葉節(jié)點(diǎn)516。但是,如果在步驟204中被檢查的節(jié)點(diǎn)是非葉節(jié)點(diǎn)518、520,則哈希函數(shù)602可以被應(yīng)用到客戶端計(jì)算機(jī)標(biāo)識(shí)符508以及連接到該非葉節(jié)點(diǎn)518、520的左側(cè)子節(jié)點(diǎn)和右側(cè)子節(jié)點(diǎn)606的哈希值。一個(gè)例子顯示于圖6B。該非葉節(jié)點(diǎn)可以包括中間節(jié)點(diǎn)518或根節(jié)點(diǎn)520。結(jié)果的哈希值608y可以在步驟208被分配給非葉節(jié)點(diǎn)518、520。該哈希函數(shù)602可以包括安全哈希算法-1 (SHA-1)、安全哈希算法2-224 (SHA2-224)、安全哈希算法 2-256 (SHA2-256)、安全哈希算法 2-384 (SHA2-384)、安全哈希算法 2-512 (SHA2-512)、成熟信息-摘要算法-160 (RIPEMD-160)和其它密碼哈希函數(shù)。最后,只要搜索樹(shù)中所有其它的節(jié)點(diǎn)的哈希值已經(jīng)計(jì)算出來(lái),就可以計(jì)算出搜索樹(shù)524的根節(jié)點(diǎn)520的根哈希值530r。該根哈希值530r表示并包括搜索樹(shù)524中所有其它節(jié)點(diǎn)的哈希值。在步驟116,總簽名請(qǐng)求528可以被計(jì)算出并包括根哈希值530r和搜索樹(shù)高度標(biāo)記532。在圖所示的例子中,搜索樹(shù)高度標(biāo)記532為7,該“7”是搜索樹(shù)524的高度,包括簽名生成請(qǐng)求502中的樹(shù)高度標(biāo)記506和顯式長(zhǎng)度標(biāo)記526。
總簽名請(qǐng)求528可以在服務(wù)提供商計(jì)算機(jī)被處理或可以被傳送到與該服務(wù)提供商計(jì)算機(jī)通信的父服務(wù)器。在流程100的步驟118,總簽名700可以基于該總簽名請(qǐng)求528被生成并接收,如將參考圖3進(jìn)行進(jìn)一步詳細(xì)描述的一樣。在步驟118的流程的步驟302中,總簽名請(qǐng)求528可以如前文所述的一樣在本地相同的計(jì)算機(jī)或在父服務(wù)器被接收。在步驟304檢查搜索樹(shù)高度標(biāo)記532以確定它是否超出了預(yù)先確定的高度限制。該高度限制可以被設(shè)置用以給客戶端計(jì)算機(jī)可以要求產(chǎn)生的簽名的數(shù)量設(shè)置上限或因?yàn)樾省⒁延泄ぷ髫?fù)荷或其它的原因限制可以被處理的簽名的數(shù)量。該高度限制也可以由父服務(wù)器分配到服務(wù)提供商計(jì)算機(jī)以控制能夠被服務(wù)提供商計(jì)算機(jī)賣(mài)出的服務(wù)的數(shù)量,例如,可以被服務(wù)提供商計(jì)算機(jī)生成的簽名的數(shù)量。當(dāng)服務(wù)提供商計(jì)算機(jī)是由父服務(wù)器提供的簽名生成服務(wù)的經(jīng)銷(xiāo)商時(shí)這種情況可能發(fā)生。在步驟304中如果搜索樹(shù)高度標(biāo)記532超出了預(yù)定的高度限制,則在步驟310,該總簽名請(qǐng)求528可以被忽略并不再處理。在這種情況下,總簽名700和無(wú)密鑰數(shù)字多重簽名800將不會(huì)生成。但是,在步驟304中如果搜索樹(shù)高度標(biāo)記532小于或等于預(yù)先確定的高度限制,則在步驟306中生成總簽名700。在步驟306中,該搜索樹(shù)高度標(biāo)記532也可以被包括在搜索樹(shù)524中。在步驟308中,取決于哪個(gè)計(jì)算機(jī)處理該總簽名請(qǐng)求528,該總簽名700被在服務(wù)提供商計(jì) 算機(jī)內(nèi)傳送或被從父服務(wù)器傳送到服務(wù)提供商計(jì)算機(jī)。在一些實(shí)施例中,總簽名700可以具有與搜索樹(shù)524相同的哈希樹(shù)結(jié)構(gòu)。但是,哈希函數(shù)被應(yīng)用到搜索樹(shù)524的節(jié)點(diǎn)的哈希值,包括根哈希值530r和搜索樹(shù)高度標(biāo)記532,以生成總簽名700。該總簽名700還可以包括比將在無(wú)密鑰數(shù)字多重簽名800中出現(xiàn)的哈希鏈更短的哈希鏈。用于生成總簽名700的哈希函數(shù)可以是與用于在搜索樹(shù)524中產(chǎn)生哈希值的哈希函數(shù)相同或不同的確定的函數(shù)。在該總簽名700中還可以混入時(shí)間戳以標(biāo)明該總簽名700生成的日期和時(shí)間。該總簽名700可以響應(yīng)總簽名請(qǐng)求528的接收而被數(shù)字化地簽署。應(yīng)用到該總簽名請(qǐng)求528的數(shù)字簽名可以基于公鑰加密方案、公鑰/私人密鑰加密方案或能證明簽名的發(fā)布者的身份的任何其它方案。在總簽名700中可以包括唯一的序列號(hào)。在該總簽名700中還可以包括隱含長(zhǎng)度標(biāo)記732并且當(dāng)該總簽名700生成時(shí)該隱含長(zhǎng)度標(biāo)記732可以初始地被設(shè)為空白。當(dāng)在該無(wú)密鑰數(shù)字多重簽名800生成和/或驗(yàn)證時(shí)計(jì)數(shù)哈希計(jì)算步驟的數(shù)量時(shí),該隱含長(zhǎng)度標(biāo)記732可以被填充。該隱含長(zhǎng)度標(biāo)記732中填充的值可以與搜索樹(shù)高度標(biāo)記532比較以確??蛻舳擞?jì)算機(jī)發(fā)送的簽名生成請(qǐng)求的數(shù)量在限度之內(nèi)。在其它的實(shí)施例中,總簽名700可以包括具有時(shí)間戳和關(guān)于該哈希值何時(shí)和何地被公開(kāi)的位置信息的公開(kāi)哈希值。例如,該時(shí)間戳和位置信息可以被混入該公開(kāi)哈希值中。該公開(kāi)哈希值可以作為附加的數(shù)據(jù)結(jié)構(gòu)被加入無(wú)密鑰數(shù)字多重簽名800中以實(shí)現(xiàn)該無(wú)密鑰數(shù)字多重簽名800的更好的可提取性。如果客戶端計(jì)算機(jī)試圖發(fā)送具有比在簽名生成請(qǐng)求502中的樹(shù)的實(shí)際高度小的樹(shù)高度標(biāo)記506的簽名生成請(qǐng)求502,必須被填充以幫助保證對(duì)客戶端計(jì)算機(jī)的簽名生成的限制的隱含長(zhǎng)度標(biāo)記732將起作用。例如,如果客戶端計(jì)算機(jī)試圖在該樹(shù)中增加具有虛假高度的外部數(shù)據(jù)結(jié)構(gòu),這將是存在故意濫用簽名生成服務(wù)的證據(jù)。無(wú)密鑰數(shù)字多重簽名800的生成在步驟120執(zhí)行,將參考圖4進(jìn)行進(jìn)一步詳細(xì)描述。在圖4中所示的步驟120的流程的步驟402,簽名生成請(qǐng)求502的最小子樹(shù)752可以被從總簽名700中提取出。該最小子樹(shù)752可以基于總簽名700中的樹(shù)以及該樹(shù)的對(duì)應(yīng)特定簽名生成請(qǐng)求502的特定的葉節(jié)點(diǎn)被提取。在圖7A和7B中所示的總簽名700包括葉節(jié)點(diǎn)716、中間節(jié)點(diǎn)718和根節(jié)點(diǎn)720。簽名生成請(qǐng)求702和顯式長(zhǎng)度標(biāo)記726被分配給并混入葉節(jié)點(diǎn)716。如前文所述的一樣,雖然該總簽名700可以具有與搜索樹(shù)524相同的哈希樹(shù)結(jié)構(gòu),但是由于哈希函數(shù)的應(yīng)用、時(shí)間戳的加入和總簽名700的數(shù)字簽署,該總簽名700的節(jié)點(diǎn)的哈希值與搜索樹(shù)524的節(jié)點(diǎn)的哈希值不同。在圖7B所示的例子中,顯示了客戶端計(jì)算機(jī)標(biāo)識(shí)符AB的簽名生成請(qǐng)求702:x(5)的最小子樹(shù)752。該最小子樹(shù)752包括位于從根節(jié)點(diǎn)720到對(duì)應(yīng)于該簽名生成請(qǐng)求702:X (5)的葉節(jié)點(diǎn)716的直接路徑上的節(jié)點(diǎn)。特別地,圖7B中所示的最小子樹(shù)752包括中間節(jié)點(diǎn)718 “AB”、“BB”、“ = AB”和“ =AB”。這些節(jié)點(diǎn)也是該最小子樹(shù)752的上下文中的搜索關(guān)鍵節(jié)點(diǎn)。該最小子樹(shù)752還包括連接到搜索關(guān)鍵節(jié)點(diǎn)718的兄弟節(jié)點(diǎn)754的哈希值756。該兄弟哈希鏈值756包括沒(méi)有位于從根節(jié)點(diǎn)720到葉節(jié)點(diǎn)716的直接路徑上但是是總簽名700的一部分的兄弟節(jié)點(diǎn)754的哈希值。該兄弟哈希鏈值756是計(jì)算根哈希值730y所需要的。在步驟404,該最小子樹(shù)752可以被表示為哈希鏈850,比如像圖8所示的無(wú)密鑰數(shù)字多重簽名800中的一樣。該無(wú)密鑰數(shù)字多重簽名800包括根哈希值730y、隱含長(zhǎng)度標(biāo)記732和哈希鏈850。搜索樹(shù)524的根哈希值530r等于根哈希值730y。在步驟406,檢查哈希鏈850的節(jié)點(diǎn),在步驟408,可以確定該被檢查的節(jié)點(diǎn)是否對(duì)應(yīng)葉節(jié)點(diǎn)716。如果該節(jié)點(diǎn)對(duì)應(yīng)一個(gè)葉節(jié)點(diǎn)716,則在步驟410,哈希函數(shù)802被應(yīng)用到簽名生成請(qǐng)求702中的數(shù)據(jù)704、樹(shù)高度標(biāo)記706、客戶端計(jì)算機(jī)標(biāo)識(shí)符708和顯式長(zhǎng)度標(biāo)記726。在步驟412,結(jié)果的哈希值被分配到該節(jié)點(diǎn)。在步驟408如果該節(jié)點(diǎn)沒(méi)有對(duì)應(yīng)一個(gè)葉節(jié)點(diǎn),則在步驟418,該哈希函數(shù)802被應(yīng)用到搜索關(guān)鍵節(jié)點(diǎn)718的搜索關(guān)鍵標(biāo)識(shí)符804 ( “ =AB ”、“BB ”和“AB ”)和連接到該非葉節(jié)點(diǎn)的左側(cè)子節(jié)點(diǎn)和右側(cè)子節(jié)點(diǎn)的哈希值,隨后在步驟412,將結(jié)果的哈希值分配給該非葉節(jié)點(diǎn)。在步驟414,如果在哈希鏈850中還留有另外的節(jié)點(diǎn),貝1J步驟120的該流程返回到步驟406以計(jì)算剩余的節(jié)點(diǎn)的哈希值。該哈希函數(shù)802可以是與用來(lái)計(jì)算在搜索樹(shù)524和/或總簽名700中的哈希值的哈希函數(shù)相同或不同的確定的函數(shù)。在步驟414如果在哈希鏈850中沒(méi)有剩余的節(jié)點(diǎn),則在步驟416中計(jì)算無(wú)密鑰數(shù)字多重簽名800。最后處理的節(jié)點(diǎn)是根節(jié)點(diǎn)720,結(jié)果的根節(jié)點(diǎn)哈希值730y、隱含長(zhǎng)度標(biāo)記732和哈希鏈850構(gòu)成了該無(wú) 密鑰數(shù)字多重簽名800。該隱含長(zhǎng)度標(biāo)記732可以通過(guò)計(jì)數(shù)該哈希鏈850中的步驟的數(shù)量而計(jì)算出來(lái)。在圖8所示的例子中,完整的哈希鏈850從在圖8底部的簽名生成請(qǐng)求702:x(5)開(kāi)始描述直到在圖8頂部的根哈希值730。在哈希鏈850中的每個(gè)計(jì)算步驟,從簽名生成請(qǐng)求702:X(5)中的信息開(kāi)始,哈希函數(shù)802被應(yīng)用。在每個(gè)連續(xù)的計(jì)算步驟,兄弟哈希值756、搜索關(guān)鍵標(biāo)識(shí)符804和來(lái)自先前的哈希函數(shù)步驟的結(jié)果哈希值806被哈希函數(shù)802混合,直到根哈希值730被計(jì)算出來(lái)。關(guān)于該哈希鏈850的隱含長(zhǎng)度標(biāo)記732,在每個(gè)計(jì)算步驟,樹(shù)的高度從簽名生成請(qǐng)求702中為I的顯式長(zhǎng)度標(biāo)記726開(kāi)始計(jì)算。在第一個(gè)計(jì)算步驟中,加上簽名生成請(qǐng)求702中的為2的樹(shù)高度標(biāo)記706產(chǎn)生為3的中間高度856。在圖8所示的例子中,對(duì)于每個(gè)連續(xù)的計(jì)算步驟,加上另外的為I的高度以產(chǎn)生連續(xù)的中間高度856。該被加上的另外的高度可以是另外的值,取決于涉及的特定的節(jié)點(diǎn)是否具有非O的顯式長(zhǎng)度標(biāo)記726。當(dāng)?shù)竭_(dá)根節(jié)點(diǎn)時(shí),在該哈希鏈850中步驟的總數(shù)被置入隱含長(zhǎng)度標(biāo)記732中。在圖8的例子中,該隱含長(zhǎng)度標(biāo)記被計(jì)算出為7。這樣,無(wú)密鑰數(shù)字多重簽名800為簽名生成請(qǐng)求702中的一個(gè)簽名生成請(qǐng)求生成,并包含了根哈希值730、被填充了的隱含長(zhǎng)度標(biāo)記732和哈希鏈850。在一些實(shí)施例中,哈希鏈的計(jì)算在無(wú)密鑰數(shù)字簽名800的驗(yàn)證過(guò)程中進(jìn)行。在圖8中所示的哈希鏈850中的每個(gè)計(jì)算步驟中,當(dāng)哈希函數(shù)被應(yīng)用時(shí),客戶端計(jì)算機(jī)標(biāo)識(shí)符708可以與搜索關(guān)鍵標(biāo)識(shí)符804比較,以保證簽名生成請(qǐng)求702處在總簽名700的哈希樹(shù)中最小子樹(shù)752被從該處提取出的正確的位置。換句話說(shuō),哈希鏈850中的計(jì)算步驟的順序被檢查以保證它與在分類(lèi)數(shù)據(jù)庫(kù)中的簽名生成請(qǐng)求702的順序一致。如前文所述,簽名生成請(qǐng)求702可以按客戶端計(jì)算機(jī)標(biāo)識(shí)符708的字母順序或按其它的順序關(guān)系分組。在圖8的例子中,搜索關(guān)鍵標(biāo)識(shí)符804 “= AB”和“AB”與客戶端計(jì)算機(jī)標(biāo)識(shí)符708 “AB”比較以確定它們是相同的。搜索關(guān)鍵標(biāo)識(shí)符804 “BB”被比較以檢查它是否“大于”客戶端計(jì)算機(jī)標(biāo)識(shí)符708 “AB”。在這個(gè)例子中,基于它們的字母順序,“BB”是“大于” “AB”的。這也可以見(jiàn)于總簽名700的哈希樹(shù)中,在其中具有客戶端計(jì)算機(jī)標(biāo)識(shí)符“BB”的簽名生成請(qǐng)求702位于具有客戶端計(jì)算機(jī)標(biāo)識(shí)符“AB”的簽名生成請(qǐng)求702的右邊。在圖中的任何流程描述或流程框應(yīng)該被理解為表示包括一個(gè)或多個(gè)用于實(shí)現(xiàn)流程中特定的邏輯功能或步驟的可執(zhí)行指令的模塊、程序段或代碼部分,替代的實(shí)現(xiàn)方式被包括在本發(fā)明的實(shí)施例的范圍中,其中的各功能可以按照與前文所示或討論的順序不同的順序執(zhí)行,包括大體上并行的或相反的順序,取決于涉及的功能,如將被本領(lǐng)域普通技術(shù)人員理解的那樣。應(yīng)該強(qiáng)調(diào),前文描述的本發(fā)明的實(shí)施例,特別是任何“優(yōu)選的”實(shí)施例,是可能的實(shí)現(xiàn)的實(shí)例,僅僅是在為了清楚地理解本發(fā)明的原理而描述。在不實(shí)質(zhì)性地背離本發(fā)明的精神和原理的情況下,還可以對(duì)本發(fā)明的前文所描述的實(shí)施例做很多變更和修改。所有這些修改在這里都將被包括在本文和本發(fā)明中,并受 后續(xù)的權(quán)利要求保護(hù)。
權(quán)利要求
1.一種生成無(wú)密鑰數(shù)字多重簽名的方法,包括: 在第一計(jì)算機(jī)接收多個(gè)簽名生成請(qǐng)求,其中每個(gè)所述多個(gè)簽名生成請(qǐng)求包括數(shù)據(jù)、客戶端計(jì)算機(jī)標(biāo)識(shí)符和樹(shù)高度標(biāo)記; 構(gòu)建搜索樹(shù),所述搜索樹(shù)包括根節(jié)點(diǎn)和多個(gè)葉節(jié)點(diǎn),其中所述多個(gè)葉節(jié)點(diǎn)包括所述多個(gè)簽名生成請(qǐng)求; 對(duì)每個(gè)所述多個(gè)葉節(jié)點(diǎn)和所述根節(jié)點(diǎn)應(yīng)用第一哈希函數(shù)以為每個(gè)所述多個(gè)葉節(jié)點(diǎn)和所述根節(jié)點(diǎn)計(jì)算哈希值; 生成包括所述根節(jié)點(diǎn)的所述哈希值和搜索樹(shù)高度標(biāo)記的總簽名請(qǐng)求; 為了生成總簽名和所述無(wú)密鑰數(shù)字多重簽名發(fā)送所述總簽名請(qǐng)求; 如果所述搜索樹(shù)高度標(biāo)記沒(méi)有超出高度限制,接收所述總簽名,所述總簽名包括隱含長(zhǎng)度標(biāo)記;以及 基于所述總簽名以及所述多個(gè)簽名生成請(qǐng)求中的所述數(shù)據(jù)和所述客戶端計(jì)算機(jī)標(biāo)識(shí)符,生成對(duì)應(yīng)于所述多個(gè)簽名生成請(qǐng)求的無(wú)密鑰數(shù)字多重簽名。
2.如權(quán)利要求1所述的方法,其特征在于:所述發(fā)送所述總簽名請(qǐng)求包括:將所述總簽名請(qǐng)求發(fā)送到與所述第一計(jì)算機(jī)通信的第二計(jì)算機(jī);所述方法還包括: 如果所述搜索樹(shù)高度 標(biāo)記沒(méi)有超過(guò)所述高度限制,則基于所述總簽名請(qǐng)求在所述第二計(jì)算機(jī)中生成所述總簽名; 發(fā)送所述總簽名到所述第一計(jì)算機(jī)。
3.如權(quán)利要求2所述的方法,其特征在于:所述在所述第二計(jì)算機(jī)中生成所述總簽名包括:對(duì)所述根節(jié)點(diǎn)的所述哈希值和在所述總簽名請(qǐng)求中的所述搜索樹(shù)高度標(biāo)記以及時(shí)間戳和數(shù)字簽名應(yīng)用第二哈希函數(shù)。
4.如權(quán)利要求1所述的方法,其特征在于,還包括: 如果所述搜索樹(shù)高度標(biāo)記沒(méi)有超過(guò)所述高度限制,則基于所述總簽名請(qǐng)求在所述第一計(jì)算機(jī)中生成所述總簽名。
5.如權(quán)利要求4所述的方法,其特征在于:在所述第一計(jì)算機(jī)中生成所述總簽名包括:對(duì)所述根節(jié)點(diǎn)的所述哈希值和在所述總簽名請(qǐng)求中的所述搜索樹(shù)高度標(biāo)記以及時(shí)間戳和數(shù)字簽名應(yīng)用第二哈希函數(shù)。
6.如權(quán)利要求1所述的方法,其特征在于:所述總簽名還包括第一哈希鏈。
7.如權(quán)利要求1所述的方法,其特征在于:所述總簽名包括公開(kāi)哈希值,所述公開(kāi)哈希值包括時(shí)間戳和位置信息。
8.如權(quán)利要求1所述的方法,其特征在于:所述構(gòu)建搜索樹(shù)包括: 基于所述多個(gè)簽名生成請(qǐng)求建立子樹(shù),其中所述子樹(shù)對(duì)應(yīng)所述多個(gè)簽名生成請(qǐng)求中的客戶端計(jì)算機(jī)標(biāo)識(shí)符; 構(gòu)建包括所述子樹(shù)的搜索樹(shù)。
9.如權(quán)利要求8所述的方法,其特征在于:還包括:基于在每個(gè)所述多個(gè)簽名生成請(qǐng)求中的客戶端計(jì)算機(jī)標(biāo)識(shí)符將所述多個(gè)簽名生成請(qǐng)求分組成在分類(lèi)數(shù)據(jù)庫(kù)中的分組請(qǐng)求,其中所述分組請(qǐng)求具有共同的客戶端計(jì)算機(jī)標(biāo)識(shí)符。
10.如權(quán)利要求9所述的方法,其特征在于:所述建立子樹(shù)包括:為在所述分類(lèi)數(shù)據(jù)庫(kù)中的具有共同的客戶端計(jì)算機(jī)標(biāo)識(shí)符的所述分組請(qǐng)求建立所述子樹(shù)。
11.如權(quán)利要求1所述的方法,其特征在于:還包括:為每個(gè)所述多個(gè)葉節(jié)點(diǎn)分配顯式長(zhǎng)度標(biāo)記,每個(gè)所述顯式長(zhǎng)度標(biāo)記基于在每個(gè)所述多個(gè)簽名生成請(qǐng)求中的所述樹(shù)高度標(biāo)記。
12.如權(quán)利要求11所述的方法,其特征在于:所述分配顯式長(zhǎng)度標(biāo)記包括:分配所述顯式長(zhǎng)度標(biāo)記給每個(gè)所述多個(gè)葉節(jié)點(diǎn)使得所述搜索樹(shù)保持平衡。
13.如權(quán)利要求11所述的方法,其特征在于:所述搜索樹(shù)高度標(biāo)記基于所述多個(gè)簽名生成請(qǐng)求中的所述樹(shù)高度標(biāo)記和被分配給所述多個(gè)葉節(jié)點(diǎn)的所述顯式長(zhǎng)度標(biāo)記。
14.如權(quán)利要求1所述的方法,其特征在于:所述搜索樹(shù)還包括在所述根節(jié)點(diǎn)和所述多個(gè)葉節(jié)點(diǎn)之間的多個(gè)中間節(jié)點(diǎn)。
15.如權(quán)利要求14所述的方法,其特征在于:所述應(yīng)用第一哈希函數(shù)還包括:對(duì)每個(gè)所述多個(gè)中間節(jié)點(diǎn)應(yīng)用所述第一哈希函數(shù)。
16.如權(quán)利要求1所述的方法,其特征在于:所述應(yīng)用第一哈希函數(shù)包括: 確定所述搜索樹(shù)的第一節(jié)點(diǎn)是否是所述多個(gè)葉節(jié)點(diǎn)中的一個(gè); 如果所述第一節(jié)點(diǎn)是所述多個(gè)葉節(jié)點(diǎn)中的一個(gè),則應(yīng)用所述第一哈希函數(shù)到所述第一節(jié)點(diǎn)的數(shù)據(jù)、客戶端計(jì)算機(jī)標(biāo)識(shí)符、樹(shù)高度標(biāo)記和顯式長(zhǎng)度標(biāo)記以產(chǎn)生所述哈希值;以及如果所述第一節(jié)點(diǎn)不是所述多個(gè)葉節(jié)點(diǎn)中的一個(gè),則應(yīng)用所述第一哈希函數(shù)到左側(cè)子節(jié)點(diǎn)哈希值、右側(cè)子節(jié)點(diǎn)哈希值和所述第一節(jié)點(diǎn)的客戶端計(jì)算機(jī)標(biāo)識(shí)符以產(chǎn)生所述哈希值,其中: 所述左側(cè)子節(jié)點(diǎn)哈希值包括連接到所述第一節(jié)點(diǎn)的第二節(jié)點(diǎn)的哈希值; 所述右側(cè)子節(jié)點(diǎn)哈希值包 括連接到所述第一節(jié)點(diǎn)的第三節(jié)點(diǎn)的哈希值。
17.如權(quán)利要求1所述的方法,其特征在于:生成所述無(wú)密鑰數(shù)字多重簽名包括: 從所述搜索樹(shù)中提取最小子樹(shù),所述最小子樹(shù)對(duì)應(yīng)所述多個(gè)簽名生成請(qǐng)求中的一個(gè)簽名生成請(qǐng)求,所述最小子樹(shù)包括: 所述搜索樹(shù)的根節(jié)點(diǎn);以及 所述搜索樹(shù)的所述多個(gè)葉節(jié)點(diǎn)中對(duì)應(yīng)所述多個(gè)簽名生成請(qǐng)求中的所述一個(gè)簽名生成請(qǐng)求的第二節(jié)點(diǎn); 從第二哈希鏈計(jì)算根節(jié)點(diǎn)哈希值,所述第二哈希鏈包括所述第二節(jié)點(diǎn)和所述根節(jié)點(diǎn); 用所述第二哈希鏈的步驟的數(shù)量填充所述總簽名的所述隱含長(zhǎng)度標(biāo)記;以及 生成包括所述根節(jié)點(diǎn)哈希值、被填充的所述隱含長(zhǎng)度標(biāo)記和所述第二哈希鏈的無(wú)密鑰數(shù)字多重簽名。
18.如權(quán)利要求17所述的方法,其特征在于:所述計(jì)算根節(jié)點(diǎn)哈希值包括: 應(yīng)用所述第一哈希函數(shù)到所述第二節(jié)點(diǎn)的數(shù)據(jù)、客戶端計(jì)算機(jī)標(biāo)識(shí)符和樹(shù)高度標(biāo)記以產(chǎn)生葉節(jié)點(diǎn)哈希值;以及 應(yīng)用所述第一哈希函數(shù)到所述葉節(jié)點(diǎn)哈希值以產(chǎn)生所述根節(jié)點(diǎn)哈希值。
19.如權(quán)利要求17所述的方法,其特征在于:所述搜索樹(shù)還包括在所述根節(jié)點(diǎn)和所述多個(gè)葉節(jié)點(diǎn)之間的多個(gè)中間節(jié)點(diǎn),其中所述最小子樹(shù)還包括: 所述搜索樹(shù)的搜索關(guān)鍵節(jié)點(diǎn),所述搜索關(guān)鍵節(jié)點(diǎn)包括所述搜索樹(shù)的所述多個(gè)中間節(jié)點(diǎn)中的位于從所述根節(jié)點(diǎn)到所述多個(gè)葉節(jié)點(diǎn)中對(duì)應(yīng)所述多個(gè)簽名生成請(qǐng)求中的所述一個(gè)簽名生成請(qǐng)求的所述第二節(jié)點(diǎn)的直接路徑上的一個(gè)或多個(gè)節(jié)點(diǎn);以及所述搜索關(guān)鍵節(jié)點(diǎn)的兄弟節(jié)點(diǎn)的多個(gè)第一哈希鏈值的兄弟哈希鏈值,所述兄弟節(jié)點(diǎn)連接到所述搜索關(guān)鍵節(jié)點(diǎn)。
20.如權(quán)利要求19所述的方法,其特征在于:所述計(jì)算根節(jié)點(diǎn)哈希值包括: 應(yīng)用所述第一哈希函數(shù)到所述第二節(jié)點(diǎn)的數(shù)據(jù)、客戶端計(jì)算機(jī)標(biāo)識(shí)符和樹(shù)高度標(biāo)記以產(chǎn)生葉節(jié)點(diǎn)哈希值;以及 應(yīng)用所述第一哈希函數(shù)到所述葉節(jié)點(diǎn)哈希值和所述兄弟哈希鏈值以產(chǎn)生所述根節(jié)點(diǎn)哈 希值。
全文摘要
提供了一種生成無(wú)密鑰數(shù)字多重簽名的方法。該方法包括從一個(gè)或多個(gè)客戶端計(jì)算機(jī)接收多重簽名生成請(qǐng)求,基于該簽名生成請(qǐng)求構(gòu)建子樹(shù),并構(gòu)建包括該子樹(shù)的搜索樹(shù)。該方法還包括分配顯式長(zhǎng)度標(biāo)記到該搜索樹(shù)的葉節(jié)點(diǎn)以平衡該搜索樹(shù)并應(yīng)用哈希函數(shù)到該搜索樹(shù)的每個(gè)節(jié)點(diǎn)。根哈希值和該搜索樹(shù)的高度構(gòu)成生成的總簽名請(qǐng)求,然后接收基于該總簽名請(qǐng)求的總簽名。無(wú)密鑰數(shù)字多重簽名基于該總簽名生成并包含隱含長(zhǎng)度標(biāo)記以驗(yàn)證簽名生成請(qǐng)求的數(shù)量受到了限制。如果該搜索樹(shù)的高度沒(méi)有超過(guò)預(yù)定的高度限制,則該總簽名被生成。
文檔編號(hào)H04L9/32GK103227719SQ20121021858
公開(kāi)日2013年7月31日 申請(qǐng)日期2012年6月15日 優(yōu)先權(quán)日2011年6月20日
發(fā)明者阿赫托·布爾達(dá)斯, 安德烈斯·柯羅恩瑪, 馬特·薩熱帕熱 申請(qǐng)人:保護(hù)時(shí)知識(shí)產(chǎn)權(quán)控股有限公司