專利名稱:數(shù)據(jù)管理和數(shù)據(jù)分布過程中提供完整性與信任的方法與系統(tǒng)的制作方法
技術(shù)領域:
本發(fā)明涉及數(shù)據(jù)管理和分布系統(tǒng),以及具體的實施例涉及用于把數(shù)字數(shù)據(jù)經(jīng)由公共網(wǎng)絡從一或多方分布于多個其他方的系統(tǒng)中的公共密鑰基礎設施。具體地講,本發(fā)明提供了用于建立諸如因特網(wǎng)的公共網(wǎng)絡上所分布的數(shù)字數(shù)據(jù)的數(shù)據(jù)完整性與信任度的處理。
在許多應用中,希望服務器能夠向各種客戶機證明某些數(shù)據(jù)或數(shù)據(jù)集合的存在或不存在以及完整性。
另外,在諸如PGP(Pretty Good Privacy相當好的私有性)系統(tǒng)的系統(tǒng)中,希望的是某“簽字方”可以對該系統(tǒng)的某其他方的公共密鑰進行數(shù)字簽字,由此核準“受簽方”的標識。特別希望的是,提供這樣一種系統(tǒng),其允許信任或了解該“簽字方”的第三方也建立信任“受簽方”的標識或公共密鑰,而無需必須知道“受簽方”的標識。該公知系統(tǒng)具有下述缺點多數(shù)方(客戶機)僅知道一小組的其他方,而且對另一公共密鑰進行簽字并不是對該密鑰建立信任的有效方式,因為該密鑰的接收方必須了解和信任簽字者的標識,然而在接收先前不了解的密鑰的大多數(shù)情況下,情況并非如此。
而且,希望提供一種在諸如因特網(wǎng)的分布式系統(tǒng)中建立局部使用的數(shù)據(jù)的完整性信息的系統(tǒng)與方法。通常,許多用戶使用全局(globally)使用的數(shù)據(jù)集合的部分,其中,全局意味著系統(tǒng)中的許多用戶使用該數(shù)據(jù)集合。希望提供這樣一種方法,其可以確保某數(shù)據(jù)對于所有使用該數(shù)據(jù)的用戶是相同的(且未被改變的)。公知地,使用某可信(trusted)密鑰或通過所有用戶以其為中心,并且對其信任的可信第三方對數(shù)據(jù)進行簽字。然而,這建立了一種基于所述集中化的第三方的信任。顯然,這是一個缺點,因為所有用戶必須信任這一方,他們依賴于該方的完整性,而且該系統(tǒng)需要由該第三方所支持的集中化的基礎設施。
本發(fā)明的一個目的是提供這樣的一些系統(tǒng)與方法,以及含有相應地控制這樣的系統(tǒng)與方法中的多個用戶終端和服務器的指令的計算機可讀媒體,它們實現(xiàn)了并考慮到以上所提到的優(yōu)點和所希望的方面與特征。通過以下的描述以及對權(quán)利要求的閱讀,本發(fā)明的進一步的優(yōu)點與方面將會變得十分明顯。
獨立權(quán)利要求的主題實現(xiàn)了這一目標,從屬權(quán)利要求的主題定義了優(yōu)選的實施例,這些權(quán)利要求形成了本發(fā)明所公開內(nèi)容的一部分。
根據(jù)本發(fā)明的一個方面,提供了一種用于管理數(shù)字數(shù)據(jù)的系統(tǒng)與方法。數(shù)字數(shù)據(jù)與第一預定義數(shù)字數(shù)據(jù)集合相關(guān)聯(lián),其中至少存在兩個預定義數(shù)字數(shù)據(jù)集合,而且可以把所述第一預定義數(shù)字數(shù)據(jù)集合與所述至少兩個預定義集合的其他預定義集合相區(qū)別。
根據(jù)與所述第一預定義集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)(和/或根據(jù)某些或全部數(shù)字數(shù)據(jù)的標識,計算第一葉雜湊值。另外,根據(jù)與所述至少兩個預定義集合的第二預定義集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)(和/或根據(jù)某些或全部數(shù)字數(shù)據(jù)的標識,計算至少第二葉雜湊值。如果存在兩個以上的預定義集合,則針對所述至少兩個預定義集合中的每一其余集合,根據(jù)與一其余預定義集合相關(guān)的某些或全部數(shù)字數(shù)據(jù)和/或根據(jù)某些或全部數(shù)字數(shù)據(jù)的標識,相應地計算葉雜湊值。
另外,計算根雜湊值,其中基本的雜湊算法將至少所述葉雜湊值作為輸入,該至少所述葉雜湊值是分別針對所述至少兩個預定義數(shù)字數(shù)據(jù)集合中的每一集合計算得到的。根雜湊值的計算至少包括根據(jù)所述第一和所述第二葉雜湊值的第一非葉雜湊值的計算。
另外,通過下述操作判斷此后給定的數(shù)字數(shù)據(jù)與所述根雜湊值的一致性標識與給定數(shù)字數(shù)據(jù)相關(guān)聯(lián)的數(shù)字數(shù)據(jù)集合、重新獲得所述根雜湊值、重新獲得根據(jù)其計算過所述根雜湊值的雜湊值,其中采用與用于計算第一和第二葉雜湊值相同的計算方案,重新計算根據(jù)與所述所標識的數(shù)字數(shù)據(jù)集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)(和/或根據(jù)某些或全部數(shù)字數(shù)據(jù)的標識)的至少葉雜湊值。
然后,使用與用于計算根雜湊值相同的計算方案,計算至少根據(jù)所述重新獲得的雜湊值的雜湊值。然后,把重新獲得的根雜湊值與相應的之前計算的雜湊值進行比較,并且根據(jù)比較結(jié)果,判斷給數(shù)字數(shù)據(jù)與根雜湊值的一致性,其中,如果所述比較得到相等的雜湊值,則斷定一致性。
根據(jù)本發(fā)明的另一方面,提供了一種用于在包含經(jīng)由公共網(wǎng)絡連接的多方的系統(tǒng)中提供簽字的信任度的方法與系統(tǒng),其中,該系統(tǒng)提供了用于所述多方的公共密鑰簽字方案。該方法包括由第二方使用私有密鑰SK2對第一方的公共密鑰PK1進行簽字,所述第一方使用相應于所述受簽公共密鑰PK1的私有密鑰SK1對數(shù)字數(shù)據(jù)D進行簽字,由第三方獲得所述受簽數(shù)字數(shù)據(jù)D和所述受簽公共密鑰PK1,其中所述第三方不了解和/或不信任所述第一方,確定所述第二方為所述受簽公共密鑰PK1的簽字方,判斷作為簽字方的所述第二方是否為所述第三方所了解和/或所信任。如果所述第二方(作為所述簽字方)為所述第三方了解和/或信任,則該方法還獲得相應于所述私有密鑰SK2的所述第二方的公共密鑰PK2,使用所述了解的和/或可信的簽字方的公共密鑰PK2對所述受簽公共密鑰PK1進行驗證,而且如果對所述受簽公共密鑰PK1的驗證成功,則使用所述受簽公共密鑰PK1對受簽數(shù)字數(shù)據(jù)D進行驗證。
根據(jù)本發(fā)明的又一個方面,提供了用于為包含經(jīng)由公共網(wǎng)絡連接的多方的系統(tǒng)的至少兩方提供數(shù)字數(shù)據(jù)的完整性和一致性信息的方法。該方法包括由所述系統(tǒng)的第一方創(chuàng)建數(shù)字數(shù)據(jù)的標識列表,根據(jù)該列表的某些或全部標識計算雜湊值,并且把該雜湊值與該列表相關(guān)聯(lián)。
另外,把該列表和所述雜湊值提供于所述系統(tǒng)的第二方,并且把所述第二方擁有的相應列表中的一或多個標識與所述所獲得的列表中的相應的一或多個標識進行比較。然后,通過下述操作驗證兩個列表的一致性根據(jù)所述所獲得的列表的某些或全部標識計算雜湊值,根據(jù)所述相應列表的某些或全部標識計算或獲得雜湊值,并且比較該兩雜湊值。如果該比較步驟得到相等的雜湊值,則建立該兩個列表是一致的。
以下,將參照
描述本發(fā)明。
圖1是根據(jù)本發(fā)明的實施例的提供雜湊(hash)值的樹結(jié)構(gòu)的處理的高級概要圖;圖2是一提供公共密鑰基礎設施的示范性系統(tǒng);圖3是一高級流程圖,說明了根據(jù)本發(fā)明實施例的雜湊值的計算;圖4是一高級流程圖,說明了根據(jù)本發(fā)明實施例的數(shù)字數(shù)據(jù)的驗證處理;圖5a是根據(jù)本發(fā)明第一實施例的提供雜湊值的樹結(jié)構(gòu)的處理的高級概要圖;圖5b是根據(jù)本發(fā)明第二實施例的提供雜湊值的樹結(jié)構(gòu)的處理的高級概要圖;圖5c是根據(jù)本發(fā)明第三實施例的提供雜湊值的樹結(jié)構(gòu)的處理的高級概要圖;圖6是根據(jù)本發(fā)明的第一實施例的在公共密鑰基礎設施中提供對簽名和/或數(shù)字數(shù)據(jù)的信任建立處理的處理的高級概要圖;圖7是根據(jù)本發(fā)明的第二實施例的在公共密鑰基礎設施中提供對簽名和/或數(shù)字數(shù)據(jù)的信任建立處理的處理的高級概要圖;以及圖8是根據(jù)本發(fā)明的第三實施例的在公共密鑰基礎設施中提供對簽名和/或數(shù)字數(shù)據(jù)的信任建立處理的處理的高級概要圖。
以下,關(guān)于使用雜湊值的數(shù)字數(shù)據(jù)的管理與分布,描述本發(fā)明的第一方面。接下來所描述的各實施例提供了一種用于管理、存儲以及分布數(shù)字數(shù)據(jù)的方法與系統(tǒng),由此可以驗證數(shù)字數(shù)據(jù)的完整性。
特別地,在其中把數(shù)字數(shù)據(jù)分布到或提供到幾個參與方的系統(tǒng)中,下面的實施例允許每一方可以使用某些獨立獲得的信息來驗證數(shù)字數(shù)據(jù)的完整性或一致性,該獨立獲得的信息原則上是單個雜湊值,如將在具體實施例中對定義的那樣。另外,該方法與系統(tǒng)允許該系統(tǒng)的幾方還可以證明該系統(tǒng)中數(shù)字數(shù)據(jù)的存在或不存在。特別地,可以在服務器-客戶機系統(tǒng)中執(zhí)行所描述的方法,其中,服務器可以向多個客戶機證明數(shù)字數(shù)據(jù)的存在以及完整性,由此客戶機可以驗證服務器的正確操作或完整性,并且能夠把相同的信息給予所有客戶機。
在整個申請中,術(shù)語“數(shù)字數(shù)據(jù)”用于表示可以數(shù)字地加以存儲或分布的任何種類的數(shù)據(jù),例如,程序文件、數(shù)據(jù)文件、配置文件、軟件代碼、以上所提到的任何數(shù)據(jù)文件的新版本或更新、電子郵件消息、數(shù)字證書、公共密鑰、或者它們的組合。
將通過以下的具體實施例描述本發(fā)明,這些實施例說明了某些示范性的情況,我們認為這些示范性的情況為本領域技術(shù)人員提供了理解本發(fā)明的足夠知識。因此,這些實施例僅為示范性的而不是窮盡式的。此處,將不詳細描述本領域技術(shù)人員公知常識的特征。
圖1示出了說明了本發(fā)明的第一方面的示例圖。根據(jù)這一方面,可以通過使用基于雜湊函數(shù)(hash function)的分類與驗證規(guī)程,判斷數(shù)字數(shù)據(jù)的存在與完整性。根據(jù)本發(fā)明的優(yōu)選實施例,把每一數(shù)字數(shù)據(jù)諸如數(shù)據(jù)文件或公共密鑰與多個不同的數(shù)字數(shù)據(jù)集合(110、120、130、140)之一相關(guān)聯(lián)。換句話說,把使用該規(guī)程管理或分布的每一數(shù)字數(shù)據(jù)賦予給一數(shù)字數(shù)據(jù)集合。這一賦予或關(guān)聯(lián)可能涉及物理地把數(shù)字數(shù)據(jù)項存儲在代表這些不同數(shù)據(jù)集合的相應的存儲位置中或相應的存儲媒體中。作為選擇,賦予或定義數(shù)字數(shù)據(jù)的相應標識可以實現(xiàn)所述賦予或關(guān)聯(lián)。相類似,允許區(qū)別不同數(shù)據(jù)集合的固有的和已經(jīng)存在的信息或標識符可以被用于實現(xiàn)該多個集合(110、120、130、140)。可以想像本領域技術(shù)人員所熟悉的幾種其他標識,這里不再進一步加以討論。然而,一個特別有利的實施例可以使用數(shù)字數(shù)據(jù)本身的、數(shù)字數(shù)據(jù)的標識的、或者以上所提到的兩者之一或兩者的雜湊值的二進制表示,以獲得與一預定義集合的關(guān)聯(lián)。作為示例,預定義的比特串例如每一數(shù)據(jù)的標識符中的n個最低有效位可以提供與特定集合的關(guān)聯(lián)。每一數(shù)據(jù)的標識符可以為文件名、電子郵件地址、文件屬性或所述數(shù)據(jù)的唯一標識編號,而且該比特串所代表的編號可以相應于數(shù)字數(shù)據(jù)集合。
根據(jù)一個特定實施例,存在著針對每一數(shù)字數(shù)據(jù)的標識,其無歧義地把預定義集合賦予給每一數(shù)字數(shù)據(jù)。根據(jù)另一特定實施例,數(shù)字數(shù)據(jù)可以為一個以上預定義集合的一部分。根據(jù)另一特定實施例,可以在被輸入該系統(tǒng)時把該標識賦予給每一數(shù)字數(shù)據(jù)。
所預定義集合的總數(shù)和/或每一集合中數(shù)據(jù)項的總數(shù)可以以下述方式預先確定和固定,該方式導致針對每一集合的數(shù)字數(shù)據(jù)的統(tǒng)計上的均勻分布。
以下,將使用圖2中所說明的客戶機-服務器系統(tǒng)200作為示例描述本發(fā)明的主要方面。
圖2描述了系統(tǒng)200,其包括多個客戶機203~205,經(jīng)由諸如因特網(wǎng)的網(wǎng)絡209把客戶機203~205連接到至少一個服務器。例如,圖2示出了雜湊值服務器202和數(shù)據(jù)存儲服務器201。數(shù)據(jù)存儲服務器圖示了存儲待分布給多個客戶機的數(shù)字數(shù)據(jù)的服務器裝置,雜湊值服務器202圖示了用于計算、維護、分布以下將描述的雜湊值的服務器裝置。然而,可以將這兩種服務器裝置包括在單個服務器實體中,或者甚至還可以將這兩種服務器裝置分布在三個或更多個服務器實體之間。該示范性的客戶機-服務器系統(tǒng)200代表了用于客戶機與/服務器可得的公共密鑰簽名方案的公共密鑰網(wǎng)絡。因此,圖示了私有/公共密鑰服務器206,其可以在系統(tǒng)內(nèi)發(fā)行、分布或維護公共密鑰。作為示例,還圖示了兩個認證(certificate)授權(quán)機制(authority)208,209,用于創(chuàng)建和發(fā)行每一客戶機的公共密鑰的認證,如通常在公共密鑰網(wǎng)絡中使用的那樣。
盡管將針對這一示范性的網(wǎng)絡200描述其余的實施例,但應該加以注意的是,除非明確地加以說明,否則這些實施例并不局限于這樣的客戶機-服務器系統(tǒng)。而總體上講,本發(fā)明涉及數(shù)字數(shù)據(jù)的存在與完整性的管理與驗證。
根據(jù)一個實施例,使用與每一預定義集合(110、120、130、140)相關(guān)聯(lián)的數(shù)字數(shù)據(jù)來計算單一的雜湊值(115、125、135、145)。根據(jù)另一個實施例,使用每一集合中的每一數(shù)字數(shù)據(jù)項的標識(111~113、121~123、131~133、141~143)來計算針對每一集合110、120、130、140的單一的雜湊值。如以上所示,該標識可以是針對每一數(shù)據(jù)項所計算的雜湊值本身。在任一種情況下,都可以根據(jù)與每一預定義集合相關(guān)聯(lián)的數(shù)字數(shù)據(jù)項或其標識而計算一個雜湊值。以下,將這些雜湊值表示為葉雜湊值115、125、135、145。
然后,可以以一或多個步驟使用這些葉雜湊值計算單一的雜湊值,以下將把該單一的雜湊值表示為根雜湊值160,該根雜湊值可用于驗證整個雜湊數(shù)據(jù)的完整性,并由此驗證系統(tǒng)中數(shù)字數(shù)據(jù)集的完整性和/或數(shù)字數(shù)據(jù)的存在或不存在,如下文詳述。
為了驗證數(shù)字數(shù)據(jù)的存在或不存在,可以首先確定將與數(shù)字數(shù)據(jù)相關(guān)的預定義集合110。為此,可以如上所述獲得或賦予標識111,以及由客戶機請求相應的數(shù)字數(shù)據(jù)集合。
在以下的描述中,系統(tǒng)200用于分布系統(tǒng)200中的客戶機的公共密鑰,客戶機203接收另一客戶機204的公共密鑰,并且希望判斷所接收的公共密鑰的完整性。換句話說,就數(shù)據(jù)完整性而言,將加以分布和驗證的數(shù)字數(shù)據(jù)為公共密鑰。使用本示例,僅僅是為了以說明的方式描述本實施例,應該認識到,總體上講,本發(fā)明涉及任何種類的數(shù)字數(shù)據(jù),如以上所示。
客戶機203可以首先確定該公共密鑰將與之相關(guān)聯(lián)的預定義集合110。然后,客戶機可以向服務器(201、202)請求該所標識的預定義集合110中所包含的數(shù)據(jù)項,或這些數(shù)據(jù)項111~113的標識,隨后,按上述已知的和預定的方式計算該集合110的葉雜湊值115。
根據(jù)一個簡單的實施例,客戶機205可以檢查公共密鑰是否為與該所標識的數(shù)字數(shù)據(jù)集合110相關(guān)聯(lián)的數(shù)字數(shù)據(jù)項或其標識的一部分。然而,本實施例僅提供了對所討論的公共密鑰的完整性的有限的確定性,這是因為客戶機僅可以建立該公共密鑰與所述預定義集合的所請求的數(shù)據(jù)的一致性。不存在用于對所請求的(以及最終所接收的)數(shù)字數(shù)據(jù)或其標識的完整性的明顯和容易的驗證方式。因此,以下的實施例提供了對所請求的預定義集合的完整性的驗證,從而提供了對作為該集合的一部分必須加以驗證的公共密鑰的完整性的驗證。
因此,把根雜湊值160在系統(tǒng)200中的客戶機203~205之間加以分布。返回到先前示例,客戶機已標識了待驗證的公共密鑰(111)的相關(guān)預定義集合110、請求和獲得了與該所標識的集合相關(guān)聯(lián)的其余的數(shù)字數(shù)據(jù)(112、113),以及已針對該集合110計算了葉雜湊值115。現(xiàn)在,客戶機使用該計算得到的葉雜湊值115來重新計算根雜湊值160。
因為如下述安全地分布了根雜湊值,和/或所有客戶機可以在無服務器干預或另一第三方卷入的情況下,相互比較該根雜湊值,而且因為基本的(underlying)雜湊算法是加密安全的,所以客戶機可以建立該安全分布的根雜湊值160與包含正在討論的公共密鑰(111)的預定義集合110的葉雜湊值115的一致性。
已知雜湊算法提供了加密安全的一路函數(shù)(one-way function),其可用于驗證雜湊算法的輸入的完整性。為了驗證數(shù)字數(shù)據(jù)集合例如公共密鑰,必須計算待驗證的所有可能的數(shù)字數(shù)據(jù)項上的雜湊值。然而,這將要求當必須驗證某特定數(shù)字數(shù)據(jù)項時必須要獲得所有數(shù)字數(shù)據(jù)項。對于大數(shù)字數(shù)據(jù)集合來說,這將是不可行的。因此,本發(fā)明在進一步的實施例中提供了這樣一種方法一方面提供雜湊值即根雜湊值160,該根雜湊值160是由一規(guī)程以所有數(shù)字數(shù)據(jù)項作為輸入根據(jù)雜湊算法計算得到的;另一方面,當驗證特定數(shù)據(jù)項(111)的完整性時,為了重新計算該根雜湊值160,并不要求所有的數(shù)字數(shù)據(jù)項。
因而,把針對數(shù)字數(shù)據(jù)的每一預定義集合的計算得到的葉雜湊值115、125、135、145劃分成幾組(116、136)。然后,根據(jù)每一組116的葉雜湊值115、125計算進一步的雜湊值150。以下,把這些計算得到的雜湊值稱為非葉(non-leaf)雜湊值150、151。
然后,可以把這些非葉雜湊值進一步劃分成雜湊值組(152),并相應地計算每一組(150、151)的雜湊值的進一步的非葉雜湊值??梢灾貜驮撨^程,直至計算得到單一的雜湊值,即根雜湊值160。雜湊值服務器202可以執(zhí)行該規(guī)程。
然后,把根雜湊值160安全地分布到每一客戶機。這可以通過由服務器向每一客戶機發(fā)送優(yōu)選地被加密的該根雜湊值來實現(xiàn)。根據(jù)另一實施例,也可以由一個客戶機向另一個客戶機分布根雜湊值,由此也優(yōu)選地由發(fā)送客戶機對根雜湊值加密和/或簽字。另外,也可以把某種信任度(如后面在本發(fā)明的另一方面中所解釋的)附著于所分布的根雜湊值。因而,從一或多個客戶機接收根雜湊值的客戶機可以僅當根雜湊值可以建立其完整性或者僅當其具有特別要求的信任度時才接受該根雜湊值。
當客戶機希望驗證特定數(shù)字數(shù)據(jù)例如上面示例中公共密鑰時,該客戶機計算與待驗證的公共密鑰(111)相關(guān)聯(lián)的數(shù)字數(shù)據(jù)集合的葉雜湊值115。為了重新計算根雜湊值160,該客戶機要求其余數(shù)字數(shù)據(jù)集合(120、130、140)的葉雜湊值(125、135、145)和非葉雜湊值(150、151)。因而,該客戶機可以向服務器202請求其余的葉雜湊值。然后,該客戶機可以根據(jù)所獲得的葉雜湊值和針對包括正在討論的公共密鑰的、所識別的集合計算得到的葉雜湊值,重新計算根雜湊值。如果計算得到的根雜湊值等于安全分布的根雜湊值,則建立了公共密鑰與安全分布的根雜湊值的一致性,從而建立了完整性。另外,由于數(shù)字數(shù)據(jù)例如公共密鑰,與預定義集合的關(guān)聯(lián)是已知的,所以任何客戶機都可以請求該相應的集合,并且可以驗證該公共密鑰是否存在。由于該根雜湊值對所有客戶機是已知的,并且是被安全分布的,所以對手方(adversary)甚至該雜湊服務器本身操縱或偽造預定義集合的數(shù)字數(shù)據(jù)或所請求的雜湊值都是不可能的。
在另一實施例中,僅計算這些非葉根雜湊值(150),這要求包括公共密鑰111的所標識的數(shù)字數(shù)據(jù)集合110的葉雜湊值115作為輸入。該實施例由圖5A變得很清楚。圖5A圖示了所計算的雜湊值的示范性的樹結(jié)構(gòu)。對此,葉雜湊值115、125、135、145、501~506與該樹結(jié)構(gòu)的第一層相關(guān)聯(lián)。在圖5A中所示的特定實施例中,把這些葉雜湊值劃分成每組有兩個雜湊值的組(116、136、530~532)。對于每一個組,分別計算與該樹結(jié)構(gòu)的第二層相關(guān)聯(lián)的非葉雜湊值150、151、510~512。類似地,計算非葉雜湊值520、521,并且非葉雜湊值520、521與該樹結(jié)構(gòu)的進一步的層相關(guān)聯(lián),并且根雜湊值160形成樹結(jié)構(gòu)的頂層。假設所述示例中的公共密鑰被標識為屬于葉雜湊值115的組的一部分,則根據(jù)第二實施例,客戶機計算僅非葉雜湊值150和120以及根雜湊值160。據(jù)此,為了計算根雜湊值160,客戶機必須獲得僅葉雜湊值125和非葉值151、510以及521,而不必要求其余的葉和非葉雜湊值。
根據(jù)本發(fā)明的一個實施例,預定義集合的總數(shù)為2的冪。然后,可以對這些集合進行編號,并且從數(shù)字數(shù)據(jù)或從數(shù)字數(shù)據(jù)的標識獲得的預定義比特流可以用作該數(shù)字數(shù)據(jù)到這些預定義的和編號的數(shù)字數(shù)據(jù)集合之一的關(guān)聯(lián)和賦予。然后,可以把葉雜湊值劃分成具有兩個雜湊值的互斥的組。然后,對于每個組計算非葉雜湊值,并且在該樹結(jié)構(gòu)的任一進一步的層中,再次把非葉雜湊值劃分成具有兩個雜湊值的組,直至已計算出根雜湊值。作為選擇,集合的總數(shù)也可以不為2的冪,而為另一個整數(shù)的冪。
根據(jù)另一個實施例,預定義集合的總數(shù)和/或用于計算樹結(jié)構(gòu)中下一層的非葉雜湊值的雜湊值的總數(shù)可以互相獨立地選擇并且每層可以不相同。圖5A說明了這一情況,其中,具有兩個葉雜湊值的組用于計算第一層的非葉雜湊值,并且第一層的各3個非葉雜湊值用于計算該樹結(jié)構(gòu)中第二層的非葉雜湊值。圖5B說明了本發(fā)明的另一實施例的一個示例,其中,在該樹結(jié)構(gòu)的第一層中,非葉雜湊值520涉及相應地3個雜湊值150、151、510,而對于非葉雜湊值521僅使用了兩個非葉雜湊值511、512。當雜湊值的總數(shù)不是計算最近上一層的非葉雜湊值必須使用的雜湊值的數(shù)目的整數(shù)倍時,可以使用這樣的情形。關(guān)于預定義集合的數(shù)目也適用同樣的情形。圖5C示出了關(guān)于此的另一實施例,但在第二層中假設必須使用3個雜湊值以計算第三層的一雜湊值。作為示例,圖5C示出了類似于圖5B的第二層的5個非葉雜湊值150、151、510~512。計算非葉雜湊值的該方法可以因而規(guī)定對于最后一個非葉雜湊值521,必須使用最近下一層的其余兩個非葉雜湊值511、512,另外還使用第二下一層的所定義的和/或所指定的雜湊值,例如葉雜湊值506。然而,本領域技術(shù)人員將會了解可以按類似于上述的方式,對圖5A~5C中所描述的實施例加以組合和進行擴展。例如,如圖5所示每層中的組重疊至少一個雜湊值(雜湊13)可以作為標準規(guī)程被應用于樹結(jié)構(gòu)的某些或全部的層,以提供更高程度的信任與驗證。
圖3和4分別示出了根據(jù)本發(fā)明上述實施例的方法步驟的概要圖。然而,這些說明性的流程圖僅提供了一示范性的概要圖,以及對本發(fā)明的各個實施例的一般性的理解,本發(fā)明并不局限于這些方法步驟,而也可以偏離這些規(guī)程。
圖3涉及本發(fā)明的一個實施例,其中,在步驟302中獲得數(shù)字數(shù)據(jù)的標識,并且在步驟303把數(shù)字數(shù)據(jù)301賦予給預定義集合之一。然而,在另一實施例中,可以把數(shù)字數(shù)據(jù)賦予給一個以上的預定義集合。針對每一預定義集合計算葉雜湊值。在步驟305和306中,如上述那樣計算非葉雜湊值。步驟307和308涉及樹結(jié)構(gòu)的不同的層和非葉雜湊值的計算,以及如步驟309中所示的根雜湊值的相應計算。
圖4圖示了驗證數(shù)字數(shù)據(jù)的完整性和/或存在性的一個例子,如其可以由系統(tǒng)200中的一客戶機執(zhí)行的那樣。假設一客戶機想要驗證數(shù)字數(shù)據(jù)402的存在性和/或完整性,數(shù)字數(shù)據(jù)402可以為另一客戶機的公共密鑰。該客戶機可以因而在步驟403中獲得該數(shù)字數(shù)據(jù)的驗證,以在步驟404中標識與該數(shù)字數(shù)據(jù)相關(guān)聯(lián)的預定義集合。在待驗證的數(shù)字數(shù)據(jù)例如公共密鑰或公共密鑰證書已經(jīng)暗示地指定數(shù)字數(shù)據(jù)的集合時,如上所述,也可以把步驟403和404包括在單一的步驟中。在步驟405和406中,對樹結(jié)構(gòu)重新計算,如已結(jié)合先前的圖所描述的那樣。然后,在比較步驟407中,把最終計算得到的根雜湊值與所接收的根雜湊值401進行比較。如果兩個雜湊值相匹配,并且客戶機相信所接收的根雜湊值的完整性,則該客戶機已驗證數(shù)字數(shù)據(jù)存在,并且能夠建立完整性。如果客戶機所接收的根雜湊值是以安全的方式被分布,則可以在不要求可信第三方的情況下驗證數(shù)字數(shù)據(jù)的完整性和/或存在性。
因此,可以提供這樣的一種應用,其允許服務器向幾個客戶機證明某數(shù)據(jù)的存在或不存在以及完整性。因而,即使在數(shù)據(jù)集合的總數(shù)過大而難以向每一客戶機傳送的情況下,也可以確保所有客戶機具有關(guān)于某數(shù)據(jù)的存在性及內(nèi)容的相同信息。服務器可以把根雜湊值分布到每一客戶機,而且客戶機可以互相之間進一步地交換根雜湊值,例如,通過把根雜湊值附著在消息上,這甚至可定期執(zhí)行。因為在后一種情況下服務器將對根雜湊值的分布沒有影響,所以客戶機將必須判斷它們是否具有將施加于正在討論的數(shù)字數(shù)據(jù)的根雜湊值的最新版本。這可以通過使用附著于雜湊值、數(shù)字數(shù)據(jù)和/或在該驗證規(guī)程期間客戶機向服務器請求的雜湊值的時間戳來實現(xiàn)。然而,相關(guān)聯(lián)的時間戳信息僅為一個示例,如本領域公知的,也可以替代地使用許多其他的標識。樹結(jié)構(gòu),例如預定義集合的數(shù)目、每一集合中數(shù)字數(shù)據(jù)或標識項的數(shù)目,和/或不同樹結(jié)構(gòu)層處每組中的雜湊值的總數(shù)也可以變化,可以是可調(diào)整的,或者可以由例如服務器指定,以便有效地控制計算有效載荷(payload)和/或經(jīng)由網(wǎng)絡待分布的數(shù)據(jù)。另外,某些客戶機或某些運行在客戶機終端上并執(zhí)行驗證數(shù)字數(shù)據(jù)的規(guī)程的應用,可以指定根據(jù)所要求的信任度必須執(zhí)行的驗證的次數(shù)。這可能涉及驗證樹結(jié)構(gòu)的一個以上的數(shù)字數(shù)據(jù)集合,或者當用戶必須對數(shù)字數(shù)據(jù)進行驗證時,涉及比重新計算所述樹結(jié)構(gòu)的根雜湊值所必需的非葉雜湊值更多的非葉雜湊值的重新計算。
本發(fā)明的另一些方面與實施例涉及在公共密鑰系統(tǒng)例如系統(tǒng)200中,創(chuàng)建公共密鑰和/或由公共密鑰簽字的數(shù)字數(shù)據(jù)的信任度。在公共密鑰系統(tǒng)中,例如在PGP(相當好的私有性)系統(tǒng)中,通常由該系統(tǒng)的另一方,例如由另一客戶機對公共密鑰進行簽字。通過這樣做,受簽公共密鑰的接收方可以核準公共密鑰持有者的標識。然而,這要求受簽公共密鑰的接收方了解和/或信任所接收的公共密鑰的簽字方。由于一客戶機通常了解和信任系統(tǒng)中僅有限數(shù)目的其他方,所以這樣的系統(tǒng)提供了僅有限的可應用性,因為如果所接收的公共密鑰是由受簽密鑰的接收方不了解或不信任的第三方簽字的,則接收方不能建立是否信任密鑰持有者的標識或密鑰本身。
因此,根據(jù)簽字方關(guān)于針對其發(fā)布簽字的那一方的聲明,建構(gòu)信任,如接下來更詳細加以描述的。
因此,可以按下述方式對這樣的公共密鑰系統(tǒng)進行擴展,該方式可以對受簽公共密鑰建立信任,而無需實際了解該密鑰的簽字方。然而,這同樣適用于那些利用密鑰持有者的私有密鑰被簽字的數(shù)字數(shù)據(jù),因為為了驗證該受簽數(shù)字數(shù)據(jù)的簽字,驗證方必須信任該簽字驗證所要求的密鑰持有者的相應公共密鑰。因此,在以下的描述中,主要涉及對公共密鑰的簽字,但本發(fā)明總體上適用于任何種類的數(shù)字數(shù)據(jù)。
根據(jù)本發(fā)明的一個實施例,系統(tǒng)中的某一簽字方對密鑰進行簽字,由此把一定程度的信任賦予了針對該受簽密鑰的第三接收方的受簽公共密鑰,而不要求所述第三接收方了解簽字方或其公共密鑰。
圖6說明了解釋本發(fā)明的一個實施例的一個示例,該例子涉及在沒有明確要求認證公共密鑰(如例如認證授權(quán)當局所做的)的可信第三方基礎設施的情況下建立公共密鑰的信任度的這些方面。圖6中所給出的例子假定,第一客戶機203在公共密鑰簽字方案中使用其私有密鑰發(fā)布了對某數(shù)字數(shù)據(jù)D的簽字(610)。為了驗證該簽字610,需要與用于發(fā)布簽字610的私有密鑰相應的第一客戶機的相應的公共密鑰601。還假設例如經(jīng)由公共網(wǎng)絡209把數(shù)字數(shù)據(jù)D例如另一公共密鑰提供給另一客戶機205。然后,客戶機205判斷對所述數(shù)據(jù)D的簽字是第一客戶機發(fā)布的,并且可以獲得相應的公共密鑰601,例如從系統(tǒng)200中的公共密鑰服務器或另一客戶機獲得。假設客戶機205不了解公共密鑰601或相應的客戶機203。因此,客戶機205要求對所述公共密鑰的某種信任,以便建立是否可以信任簽字610。圖6所給出的示例示出了,又一個客戶機204已對第一客戶機203的公共密鑰601簽字了??梢允褂盟隹蛻魴C204的相應的公共密鑰602對公共密鑰601的簽字612進行驗證??蛻魴C205獲得簽字612,標識簽字方204,并且獲得相應的公共密鑰602。假設如圖6中所示的客戶機205信任和/或了解公共密鑰602或相應地客戶機204。因此,客戶機205可以使用可信的公共密鑰602驗證簽字612。根據(jù)本發(fā)明的另一實施例,該簽字612把信任信息賦予給客戶機205的受簽公共密鑰601。從而,客戶機205建立了該信任度,例如通過驗證過程613,而且此后信任公共密鑰601。接下來,客戶機205可以驗證簽字610,如果該驗證成功,則其建立了數(shù)字數(shù)據(jù)D的完整性。
根據(jù)又一個實施例,與另一公共密鑰上的簽字相關(guān)聯(lián)的信任信息可以通過將明確的信任信息值和/或簽字方信任標識值附著或關(guān)聯(lián)到簽字或相應的公共密鑰本身而實現(xiàn)。
也可以將圖6中所示的簡單示例擴展到對某特定簽字賦予的信任值的鏈或甚至樹。圖7中圖示了該信任度鏈或信任度樹的主要原理。類似于圖6,圖7示出了客戶機203、204、205與公共密鑰601、602,以及賦予數(shù)字數(shù)據(jù)610和在步驟615中使用公共密鑰601對數(shù)字數(shù)據(jù)驗證的步驟。這些步驟與圖6中相應的步驟相同。然而,根據(jù)圖7中的示例,第四客戶機701已發(fā)布了對公共密鑰601的簽字。數(shù)字數(shù)據(jù)D的驗證方客戶機205既不了解或不信任第四客戶機701,也沒有對公共密鑰601的簽字710的訪問。而第二方204已發(fā)布了對所述受簽公共密鑰710的簽字。然后,由客戶機205獲得簽字711,并且使用了解的和可信的公共密鑰602對其進行驗證。如果該驗證712是成功的。則客戶機205建立了對公共密鑰601和702兩者的信任值。接下來,客戶機205可以使用可信的公共密鑰601驗證受簽數(shù)字數(shù)據(jù)D。圖8中給出的例子描述了另一實施例,圖8中給出的例子相應于圖7的例子但具有以下的不同之處。第二客戶機204發(fā)布對第四客戶機701的公共密鑰702的簽字810。因此,在步驟811,客戶機205可以驗證簽字810,由此建立了對公共密鑰702的信任。使用這新近可信的公共密鑰702,客戶機205現(xiàn)在可以獲得并驗證簽字710,并且如果該驗證是成功的,則客戶機205還建立了對用于對數(shù)字數(shù)據(jù)D進行簽字的公共密鑰601的信任。
從圖6~8中給出的上述示例可以看出,可以把所描述的本發(fā)明的實施例互相結(jié)合,以及與關(guān)于其余附圖所描述的實施例相結(jié)合。特別應該加以注意的是,可以由一個以上方對一公共密鑰或一簽名進行簽字,從而可以把賦予公共密鑰的信任信息鏈擴展為信任值樹,由此可以針對對最初不可信的公共密鑰的簽字,追溯幾個了解的公共密鑰或了解的簽字方。另外,某運行在客戶機設備或使用這方法的某一方上的應用要求一定的給定信任度,該給定的信任度可以基于通向所描述的可信標識的鏈或樹中的了解的公共密鑰的步數(shù)(the number of steps)。在圖7中所示的示例中,驗證方205已建立了一個不了解方702通向了解方客戶機204。因此,這一鏈具有兩步,由此僅涉及一個不了解方??梢源嬖谀骋?guī)則,即僅當存在通向最終了解和可信的標識204的最大數(shù)目的不了解標識時,才接受公共密鑰為可信的。如果存在一個以上的鏈通向一了解和可信簽字方,則可以把這些獨立建立的信任度值組合成單一的最終信任值,并且可以基于該最終信任值決定是否接受公共密鑰為可信的。然而,在另一實施例中,客戶機205或者在客戶機205的控制下運行在客戶機設備上的相應應用可以要求僅一個信任度值,以便接受公共密鑰為可信的。
其上包括簽字的公共密鑰可以被存儲在某些公共服務器上,并且也可以被分布在客戶機之間,如以上結(jié)合本發(fā)明的其余實施例和方面所描述的。
根據(jù)本發(fā)明的又一些實施例,局部使用的數(shù)據(jù)的完整性信息可以由例如客戶機203公布,以確保和提供整個系統(tǒng)中的所述數(shù)據(jù)的全局一致性。通常,系統(tǒng)中的用戶共享全局數(shù)據(jù)集合的至少某些部分,并且存在如下需要,即確保使用該數(shù)據(jù)的每一用戶可以保證所述數(shù)據(jù)的完整性和/或所述數(shù)據(jù)的存在。在普通系統(tǒng)中,必須通過某集中化的第三方的可信密鑰對這樣的數(shù)字數(shù)據(jù)簽字,而且所有客戶機必須了解和信任該集中化的第三方例如認證授權(quán)當局。然而,這是大多數(shù)用戶所不希望的,因為可能不希望要求一可由所有參與方信任的第三方。
因此,本發(fā)明的一個方面是,用戶可以創(chuàng)建針對他希望與其他方共享的數(shù)據(jù)或數(shù)據(jù)的一部分的標識的列表或集合。這些標識唯一地標識了數(shù)字數(shù)據(jù)或數(shù)字數(shù)據(jù)的一部分,并且將它們與數(shù)字數(shù)據(jù)的列表或集合相關(guān)聯(lián)。上面已結(jié)合圖1~6描述了這一點。按與結(jié)合本發(fā)明的第一方面所描述的相同的方式,把根據(jù)數(shù)據(jù)或數(shù)據(jù)的一部分計算得到的一個雜湊值附著到每一標識列表或集合。該數(shù)據(jù)的標識的列表可以為數(shù)字數(shù)據(jù)的集合,如結(jié)合圖1到6所描述的??梢杂煽蛻魴C把該列表分布到系統(tǒng)中的另一客戶機。根據(jù)一個實施例,可以把包括所附著的根據(jù)其某些或全部項上的雜湊值的標識列表隨在客戶機之間正常傳遞消息期間由客戶機所發(fā)送的消息一起發(fā)送。接收到該列表的另一客戶機現(xiàn)在可以把包括在該列表中的標識與包括在其自己的列表中的標識相比較,由此判斷第一客戶機是否使用了相同的數(shù)據(jù)。如果兩個列表包括相同的標識,則客戶機可以判斷雜湊值是否匹配,并由此可證明兩個客戶機對相同的數(shù)據(jù)取得一致。在不匹配的情況下,可以相應地警告用戶。
根據(jù)又一個實施例,當把其列表發(fā)送到某第三方時,客戶機可以包括其已接收的另一列表,并且可以將該列表發(fā)送到第三方。這允許即使很少被使用的數(shù)據(jù)也將遲早會發(fā)現(xiàn)某其它客戶機上的匹配,該其它客戶機位于所分布的列表的鏈中的或多或少的幾步遠(steps away)??梢园堰@一實施例與結(jié)合圖6~8所描述的實施例相組合,建立對每一列表或相應地其雜湊值的信任度,由此還可針對該列表或雜湊值發(fā)布簽字。作為選擇,列表項上的雜湊值也可以用作簽名,其通過重新計算和比較列表項上的雜湊值而被驗證。
具體地講,在使用客戶機的名字或標識作為上述標識,并且使用公共密鑰作為被雜湊的數(shù)據(jù)的情況下,對于公共密鑰可以使用該規(guī)程。因而,可以對于客戶機保證所有公共密鑰的全局一致性。甚至例如從另一客戶機接收到關(guān)于其自己的公共密鑰的信息的客戶機也可以證明對于其自己的公共密鑰正確地簽上了其自己的名字或標識。如果針對每一客戶機的公共密鑰是可得的,則可以使用這些公共密鑰對所分布和所交換的標識的列表或集合進行簽字。如以上所提到的,某些應用或客戶機還可以依據(jù)所接收的列表的發(fā)送者或依據(jù)在接收到這一列表之前,該列表被其他客戶機轉(zhuǎn)發(fā)多少次而賦予信任度。如以上所提到的,可以采用與結(jié)合圖6~8所考慮的同樣的考慮,而且這一規(guī)程甚至可以為結(jié)合圖6~8所描述的方法的一部分。
如果客戶機之間存在著大量的交互,而且使用了巨大的數(shù)據(jù)集,則客戶機可以選擇僅根據(jù)某隨機或某所選擇的數(shù)據(jù)或其正在使用的部分數(shù)據(jù)創(chuàng)建列表。根據(jù)本發(fā)明的再一個實施例,如果如由列表中的標識所指定的給定數(shù)據(jù)或該數(shù)據(jù)的一部分可以被改變(可能在某時間段之后),則還可以把某種有效性或時間指定與列表或相應的雜湊值相附著或者相關(guān)聯(lián)。這可以為數(shù)字數(shù)據(jù)的創(chuàng)建時間或時間戳信息。根據(jù)本發(fā)明的另一個實施例,也可以把這些數(shù)據(jù)標識的列表或集合分布和傳送到一可信的第三方,例如如圖2所示的服務器或認證授權(quán)當局,然后,如果一列表中的項與從另一客戶機所接收的一相應列表中的項不匹配,則該第三方可以通知客戶機。類似地,在不是可信的第三方的情況下另一個客戶機可以按相同的方式運作,由此可以建立如上面所討論的某種信任度。如果存在一個以上的這樣的第三方或客戶機,則每一這樣的第三方或客戶機可以把信息發(fā)送給所有其余方,或所有方可以互相交互,由此把所有列表同步化到一全局可接受的列表。
根據(jù)本發(fā)明的另一個實施例,在系統(tǒng)中,一客戶機可以使用其自己的標識將其本身賦予某客戶機組。在一客戶機創(chuàng)建其自己的列表之前,該客戶機可以從該客戶機組中的至少一個其他客戶機請求一列表。然后,該客戶機可以把其自己的數(shù)據(jù)或相應地其標識添加于該列表中,并且可以將其公布給系統(tǒng)中或組中的其他客戶機。通過這樣做,組中的所有客戶機可以建立有關(guān)由其組所一致認同的、并且持有的所有數(shù)據(jù)項的最新信息。因此,該實施例實現(xiàn)了每一客戶機判斷給定的數(shù)字數(shù)據(jù)存在或不存在,如以上結(jié)合圖1~5所描述的。如果數(shù)字數(shù)據(jù)或其標識直接與所選擇的客戶機組有關(guān),如其可以為公共密鑰的情況,則甚至全局系統(tǒng)200中數(shù)據(jù)例如公共密鑰的存在也可以被建立和證明。因此,不處于該組中的某些其他客戶機可以請求組的列表,并且可以判斷給定數(shù)據(jù)是否存在于該全局系統(tǒng)中。如果在這樣的一個系統(tǒng)中存在聚集數(shù)字數(shù)據(jù)的第三方或特殊的客戶機,則它們可能互斥地限制它們的動作,以持有和同步化其為成員的客戶機組的列表。
本發(fā)明的以上所描述的方面和實施例的任何組合,均被視為本發(fā)明范圍內(nèi)的進一步的實施例。以下的權(quán)利要求中描述了以上所描述的方面和實施例的進一步的細節(jié),以下的權(quán)利要求形成了本發(fā)明所公開的內(nèi)容的一個明確的部分。
權(quán)利要求
1.一種用于管理數(shù)字數(shù)據(jù)的方法,該方法包括下列步驟把數(shù)字數(shù)據(jù)與第一預定義數(shù)字數(shù)據(jù)集合相關(guān)聯(lián),其中至少存在兩個預定義數(shù)字數(shù)據(jù)集合,而且可以把所述第一預定義數(shù)字數(shù)據(jù)集合與所述至少兩個預定義集合的其他預定義集合相區(qū)別;根據(jù)與所述第一預定義集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)和/或根據(jù)某些或全部數(shù)字數(shù)據(jù)的標識,計算第一葉雜湊值;根據(jù)與所述至少兩個預定義集合的第二預定義集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)和/或根據(jù)某些或全部數(shù)字數(shù)據(jù)的標識,計算第二葉雜湊值;如果存在兩個以上的預定義集合,則針對所述至少兩個預定義集合中的每一其余集合根據(jù)與一其余預定義集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)和/或根據(jù)某些或全部數(shù)字數(shù)據(jù)的標識,相應地計算葉雜湊值;計算根雜湊值,其中基本的雜湊算法將至少所述葉雜湊值作為輸入,該至少所述葉雜湊值是分別針對所述至少兩個預定義數(shù)字數(shù)據(jù)集合中的每一集合計算得到的,其中所述計算根雜湊值的步驟包括下列步驟根據(jù)至少所述第一葉雜湊值和所述第二葉雜湊值計算第一非葉雜湊值;所述方法還包括用于判斷給定數(shù)字數(shù)據(jù)與所述根雜湊值的一致性的步驟,這些步驟包括標識與給定數(shù)字數(shù)據(jù)相關(guān)聯(lián)的數(shù)字數(shù)據(jù)集合;重新獲得所述根雜湊值;重新獲得根據(jù)其計算過所述根雜湊值的雜湊值,包括以下步驟使用與在所述計算第一和第二葉雜湊值的步驟中所使用的計算方案相同的計算方案,根據(jù)與所述所標識的數(shù)字數(shù)據(jù)集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)和/或根據(jù)某些或全部數(shù)字數(shù)據(jù)的標識重新計算葉雜湊值;使用與在所述計算根雜湊值的步驟中所使用的計算方案相同的計算方案,根據(jù)所述重新獲得的雜湊值計算雜湊值;把所述重新獲得的根雜湊值與所述前一個步驟中計算得到的雜湊值進行比較;基于所述比較步驟,判斷所述給定數(shù)字數(shù)據(jù)與所述根雜湊值的一致性,其中如果所述比較得到相等的雜湊值,則斷定一致性。
2.根據(jù)權(quán)利要求1所述的方法,其中,把下列標識至少之一賦予每一所述數(shù)字數(shù)據(jù),或者從每一所述數(shù)字數(shù)據(jù)獲得下列標識至少之一與數(shù)字數(shù)據(jù)相關(guān)聯(lián)的數(shù)字,數(shù)字數(shù)據(jù)的唯一標識,數(shù)字數(shù)據(jù)的唯一標識的預定義部分,從與數(shù)字數(shù)據(jù)相關(guān)聯(lián)的數(shù)字標識的預定比特位置抽取的預定數(shù)目的比特,與數(shù)字數(shù)據(jù)相關(guān)聯(lián)的或者包括在數(shù)字數(shù)據(jù)中的預定義搜索串,數(shù)字數(shù)據(jù)的時間戳;整個數(shù)字數(shù)據(jù)的雜湊值;為此目的專門創(chuàng)建的、并且添加于所述數(shù)字數(shù)據(jù)的標識符;以及以上標識至少之一的雜湊值。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述把數(shù)字數(shù)據(jù)與第一預定義數(shù)字數(shù)據(jù)集合相關(guān)聯(lián)的步驟是使用所述至少一個標識實現(xiàn)的。
4.根據(jù)權(quán)利要求2或3所述的方法,其中,所述至少兩個預定義集合是通過所述標識來標識和/或區(qū)別的;以及所述標識與給定數(shù)字數(shù)據(jù)相關(guān)聯(lián)的數(shù)字數(shù)據(jù)集合的步驟包括確定所述給定數(shù)字數(shù)據(jù)的至少一個標識,由此使用所述至少一個所確定的標識實現(xiàn)所述標識操作。
5.根據(jù)權(quán)利要求2~4中任一權(quán)利要求所述的方法,其中,所述計算第一葉雜湊值的步驟,所述計算第二葉雜湊值的步驟,和/或所述如果存在兩個以上預定義集合則針對每一其余預定義集合分別計算葉雜湊值的步驟包括獲得針對與所述預定義集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)的至少一個標識,以及根據(jù)所述在前一個步驟中獲得的標識計算葉雜湊值;以及其中所述重新計算所述所標識的數(shù)字數(shù)據(jù)集合的葉雜湊值的步驟包括重新獲得與所述所標識的集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)的至少一個標識,以及根據(jù)所述重新獲得的標識計算葉雜湊值。
6.根據(jù)權(quán)利要求2~4中任一權(quán)利要求所述的方法,其中,所述計算第一葉雜湊值的步驟,所述計算第二葉雜湊值的步驟,和/或所述如果存在兩個以上預定義集合則針對每一其余預定義集合分別計算葉雜湊值的步驟包括針對與所述預定義集合相關(guān)聯(lián)的某些或每一數(shù)字數(shù)據(jù),分別計算該至少一個標識的雜湊值,以及根據(jù)至少所述在前一個步驟中計算得到的雜湊值計算雜湊值;以及其中所述重新計算所述所標識的數(shù)字數(shù)據(jù)集合的葉雜湊值的步驟包括獲得與所述所標識的集合相關(guān)聯(lián)的某些或每一數(shù)字數(shù)據(jù)的至少一個標識,針對每一在前一個步驟中獲得的標識,分別計算雜湊值,以及根據(jù)至少所述在前一個步驟中計算得到的雜湊值計算雜湊值。
7.根據(jù)權(quán)利要求1~4中任一權(quán)利要求所述的方法,其中,所述方法還包括針對所述至少兩個數(shù)字數(shù)據(jù)集合中的每一集合分別計算雜湊值,包括分別計算與所述集合相關(guān)聯(lián)的每一數(shù)字數(shù)據(jù)的雜湊值,而且其中,所述計算第一葉雜湊值的步驟,所述計算第二葉雜湊值的步驟,和/或所述如果存在兩個以上預定義集合則針對每一其余預定義集合分別計算葉雜湊值的步驟包括根據(jù)至少所述在前一個步驟中計算得到的相應數(shù)字數(shù)據(jù)集合的雜湊值計算雜湊值;以及其中,所述重新計算所述所標識的數(shù)字數(shù)據(jù)集合的葉雜湊值的步驟包括分別重新計算與所述所標識的集合相關(guān)聯(lián)的每一數(shù)字數(shù)據(jù)的雜湊值,以及計算所述分別重新計算得到的雜湊值的雜湊值。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述針對所述至少兩個數(shù)字數(shù)據(jù)集合中的每一集合分別計算雜湊值的步驟被包括在所述計算第一葉雜湊值的步驟、和/或所述計算第二葉雜湊值的步驟、和/或所述如果存在兩個以上預定義集合則針對每一其余預定義集合分別計算葉雜湊值的步驟中。
9.根據(jù)權(quán)利要求1~8中任一權(quán)利要求所述的方法,其中,存在可以互相區(qū)別的至少四個預定義數(shù)字數(shù)據(jù)集合,所述方法還包括根據(jù)與所述至少四個預定義集合中的第三預定義集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)和/或根據(jù)某些或全部數(shù)字數(shù)據(jù)的標識,計算第三葉雜湊值;根據(jù)與所述至少四個預定義集合中的第四預定義集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)和/或根據(jù)某些或全部數(shù)字數(shù)據(jù)的標識,計算第四葉雜湊值;以及其中,所述計算根雜湊值的步驟還包括根據(jù)至少所述第三和所述第四計算得到的葉雜湊值,計算第二非葉雜湊值,以及根據(jù)至少所述第一和所述第二計算得到的非葉雜湊值,計算第三非葉雜湊值。
10.根據(jù)權(quán)利要求9所述的方法,其中,所述計算得到的雜湊值、非葉雜湊值以及根雜湊值代表了樹結(jié)構(gòu),其中所述第一、所述第二、所述第三、所述第四葉雜湊值與所述樹結(jié)構(gòu)的底層相關(guān)聯(lián);所述第一和所述第二非葉雜湊值與所述樹結(jié)構(gòu)的第二層相關(guān)聯(lián);所述第三非葉雜湊值與所述樹結(jié)構(gòu)的第三層相關(guān)聯(lián);所述根雜湊值與所述樹結(jié)構(gòu)的頂層相關(guān)聯(lián);其中,所述頂層是僅包括作為所述根雜湊值的單個非葉雜湊值的所述樹結(jié)構(gòu)的最高層。
11.根據(jù)權(quán)利要求10所述的方法,其中,存在另外的預定義數(shù)字數(shù)據(jù)集合,每一集合與按照與所述第一到第四葉雜湊值相同的方式計算得到的另外的葉雜湊值相關(guān)聯(lián);存在所述樹結(jié)構(gòu)的另外的層,每一層與根據(jù)所述樹結(jié)構(gòu)中的相應較低層的某些或全部非葉雜湊值計算得到的另外的非葉雜湊值相關(guān)聯(lián)。
12.根據(jù)權(quán)利要求10或11所述的方法,其中,所述重新獲得根據(jù)其計算過所述根雜湊值的雜湊值的步驟還包括重新計算所述樹結(jié)構(gòu)的第二層中的每一非葉雜湊值,該每一非葉雜湊值是根據(jù)包括所述所標識的數(shù)字數(shù)據(jù)集合的重新計算得到的葉雜湊值的雜湊值計算過了的;以及針對所述樹結(jié)構(gòu)的第三到頂層中的每一層,重新計算每一非葉雜湊值,該每一非葉雜湊值是根據(jù)包括于本步驟或所述前一步驟中重新計算得到的非葉雜湊值的雜湊值計算過了的。
13.根據(jù)權(quán)利要求12所述的方法,其中,所述重新獲得根據(jù)其計算過所述根雜湊值的雜湊值的所述步驟還包括提供在重新計算所述樹結(jié)構(gòu)的第二層中的每一非葉雜湊值的所述步驟中所需要的所有其余葉雜湊值,該每一非葉雜湊值是根據(jù)包括所述所標識的數(shù)字數(shù)據(jù)集合的重新計算得到的葉雜湊值的雜湊值計算過了的;以及提供在重新計算所述樹結(jié)構(gòu)的第三到頂層中的每一層的每一非葉雜湊值的所述步驟中所需要的所有其余非葉雜湊值。
14.根據(jù)權(quán)利要求10到13中任一權(quán)利要求所述的方法,其中,所述計算根雜湊值的步驟還包括把所述預定義集合劃分成預定義集合的多個組;針對預定義集合的所述多組中的每一個組,根據(jù)所述組中的預定義集合的所計算的葉雜湊值,計算非葉雜湊值;針對所述樹結(jié)構(gòu)的第三到頂層中的每一層,把最近較低層的非葉雜湊值劃分成至少兩個組,并且根據(jù)每一組的非葉雜湊值計算非葉雜湊值。
15.根據(jù)權(quán)利要求14所述的方法,其中,針對所述數(shù)結(jié)構(gòu)的每一層L,把最近較低層L-1的所述預定義集合和/或所述非葉雜湊值劃分成具有預定義數(shù)目BL個預定義集合或非葉雜湊值的組。
16.根據(jù)權(quán)利要求15所述的方法,還包括判斷預定義集合的總數(shù)是否為所述預定義數(shù)目B1的整數(shù)倍;如果所述總數(shù)不是B1的整數(shù)倍,則創(chuàng)建至少一個包括相應小于B1個預定義集合的組,或者創(chuàng)建至少兩個包括至少一個相同的預定義集合的組;針對所述樹結(jié)構(gòu)的所述第二到所述頂層中的每一層L,判斷最近較低層L-1的非葉雜湊值的總數(shù)是否為所述預定義數(shù)目BL的整數(shù)倍;以及如果所述總數(shù)不是BL的整數(shù)倍,則執(zhí)行下列操作之一創(chuàng)建至少一個包括相應小于BL個最近較低層L-1的非葉雜湊值的組,創(chuàng)建至少兩個均包括最近較低層L-1的至少一個相同非葉雜湊值的組,或創(chuàng)建至少一個包括較低層L-N的至少一個雜湊值的組,其中N>1和L<2。
17.根據(jù)權(quán)利要求1~16中任一權(quán)利要求所述的方法,其中,每一數(shù)字數(shù)據(jù)與所述多個預定義集合之一相關(guān)聯(lián)。
18.根據(jù)權(quán)利要求17所述的方法,其中,不同種類的數(shù)字數(shù)據(jù)與不同的預定義集合相關(guān)聯(lián),其中所述不同種類的數(shù)字數(shù)據(jù)。
19.根據(jù)權(quán)利要求1~16中任一權(quán)利要求所述的方法,其中,數(shù)字數(shù)據(jù)可以與一個以上的所述預定義集合相關(guān)聯(lián)。
20.根據(jù)權(quán)利要求19所述的方法,其中,如果所述給定數(shù)字數(shù)據(jù)與一個以上的預定義集合相關(guān)聯(lián),則所述判斷所述給定數(shù)字數(shù)據(jù)與所述根雜湊值的一致性的步驟包括分別地標識一個以上的預定義集合;以及針對所述一個以上的預定義集合中每一集合重新計算葉雜湊值。
21.根據(jù)權(quán)利要求1~20中任一權(quán)利要求所述的方法,其中,根據(jù)葉雜湊值和/或非葉雜湊值的互斥組計算所述非葉雜湊值。
22.根據(jù)權(quán)利要求1~13中任一權(quán)利要求所述的方法,其中,預定義集合的總數(shù)為S,S是整數(shù)B的整數(shù)冪E。
23.根據(jù)權(quán)利要求22所述的方法,其中,針對所述S個預定義集合中的每一個,計算葉雜湊值,以及所述計算根雜湊值的步驟包括(a)把所述S個預定義集合劃分成具有B個預定義集合的E+1個互斥的組;(b)針對所述E+1個組中的每一個,根據(jù)所述組的B個預定義集合的計算得到的葉雜湊值,計算非葉雜湊值;(c)把所述在前一個步驟中計算得到的非葉雜湊值劃分成具有B個非葉雜湊值的互斥的組;(d)針對前一個步驟中所述互斥的組中的每一個,根據(jù)所述組的B個非葉雜湊值,計算非葉雜湊值;重復步驟(c)和(d),直至計算得到作為根雜湊值的單個非葉雜湊值。
24.根據(jù)權(quán)利要求22或23所述的方法,其中,所述整數(shù)B是2的整數(shù)冪。
25.根據(jù)權(quán)利要求1~24中任一權(quán)利要求所述的方法,其中,所述給定數(shù)字數(shù)據(jù)被分布到在包括至少一個服務器和多個客戶機的服務器-客戶機系統(tǒng)中的客戶機,所述針對每一預定義數(shù)字數(shù)據(jù)集合計算葉雜湊值的步驟、計算非葉雜湊值的步驟、所述計算根雜湊值的步驟是由所述服務器執(zhí)行的;所述確定所述給定數(shù)字數(shù)據(jù)與所述根雜湊值的一致性的步驟是由所述客戶機執(zhí)行的;所述方法還包括把所述根雜湊值分布到所述服務器-客戶機系統(tǒng)的多個客戶機。
26.根據(jù)權(quán)利要求25所述的方法,其中,所述把所述根雜湊值分布到多個客戶機的步驟由所述服務器執(zhí)行的。
27.根據(jù)權(quán)利要求25或26所述的方法,其中,通過由第一客戶機把所述根雜湊值發(fā)送到第二客戶機而在所述多個客戶機之間進行分布所述根雜湊值,其中所述第一客戶機先前已從所述服務器和/或從一或多個所述多個客戶機接收到所述根雜湊值。
28.根據(jù)權(quán)利要求25~27中任一權(quán)利要求所述的方法,其中,所述所分布的根雜湊值與時間戳或有效性信息相關(guān)聯(lián)。
29.根據(jù)權(quán)利要求28所述的方法,其中,由客戶機根據(jù)所述時間戳或有效性信息替換、更新和/或向所述服務器請求所述根雜湊值。
30.一種計算機可讀媒體,包括用于控制服務器-客戶機系統(tǒng)中的客戶機設備的指令,所述指令使得所述客戶機設備執(zhí)行下列步驟接收根雜湊值,所述根雜湊值是根據(jù)權(quán)利要求1~29中任一所述的方法計算得到的;判斷給定數(shù)字數(shù)據(jù)與所述根雜湊值的一致性,包括標識與給定數(shù)字數(shù)據(jù)相關(guān)聯(lián)的數(shù)字數(shù)據(jù)集合;獲得根據(jù)其計算過所述根雜湊值的雜湊值,包括向所述服務器-客戶機系統(tǒng)的服務器請求與所述所標識的數(shù)字數(shù)據(jù)集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)和/或某些或全部數(shù)字數(shù)據(jù)的標識,根據(jù)所述所請求的與所述所標識的數(shù)字數(shù)據(jù)集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)和/或某些或全部數(shù)字數(shù)據(jù)的標識,計算葉雜湊值,確定計算所述根雜湊值所需的其余葉雜湊值和非葉雜湊值,向所述服務器請求所述其余葉雜湊值和非葉雜湊值;使用與在所述計算根雜湊值的步驟中所使用的計算方案相同的計算方案,根據(jù)所述所獲得的雜湊值計算雜湊值;把所述所接收的根雜湊值與所述前一個步驟中計算得到的雜湊值進行比較;基于所述比較步驟,判斷所述給定數(shù)字數(shù)據(jù)與所述所接收的根雜湊值的一致性,其中如果所述比較步驟得到相等的雜湊值,則斷定一致性。
31.一種計算機可讀媒體,其包括用于控制服務器-客戶機系統(tǒng)中的服務器的指令,所述指令使得所述服務器執(zhí)行根據(jù)權(quán)利要求1~29中任一所述方法的下列步驟把數(shù)字數(shù)據(jù)與第一預定義數(shù)字數(shù)據(jù)集合相關(guān)聯(lián),其中至少存在兩個預定義數(shù)字數(shù)據(jù)集合,而且可以把所述第一預定義數(shù)字數(shù)據(jù)集合與所述至少兩個預定義集合的其他預定義集合相區(qū)別;根據(jù)與所述第一預定義集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)和/或根據(jù)某些或全部數(shù)字數(shù)據(jù)的標識,計算第一葉雜湊值;根據(jù)與所述至少兩個預定義集合的第二預定義集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)和/或根據(jù)某些或全部數(shù)字數(shù)據(jù)的標識,計算第二葉雜湊值;如果存在兩個以上的預定義集合,則針對所述至少兩個預定義集合中的每一其余集合根據(jù)與一其余預定義集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)和/或根據(jù)某些或全部數(shù)字數(shù)據(jù)的標識,相應地計算葉雜湊值;計算根雜湊值,其中基本的雜湊算法將至少所述葉雜湊值作為輸入,該至少所述葉雜湊值是分別針對所述至少兩個預定義數(shù)字數(shù)據(jù)集合中的每一集合計算得到的,其中所述計算根雜湊值的步驟包括下列步驟根據(jù)所述第一葉雜湊值和所述第二葉雜湊值計算第一非葉雜湊值;把所述根雜湊值分布到所述客戶機-服務器系統(tǒng)中的多個客戶機。
32.一種用于在包含經(jīng)由公共網(wǎng)絡連接的多方的系統(tǒng)中提供簽字的信任度的方法,所述系統(tǒng)提供了用于所述多方的公共密鑰簽字方案,該方法包括由第二方使用私有密鑰SK2對第一方的公共密鑰PK1進行簽字,所述第一方使用相應于所述受簽公共密鑰PK1的私有密鑰SK1對數(shù)字數(shù)據(jù)D進行簽字,由第三方獲得所述受簽數(shù)字數(shù)據(jù)D和所述受簽公共密鑰PK1,其中對于所述第三方,所述第一方是未知和/或不可信任的,確定所述第二方為所述受簽公共密鑰PK1的簽字方,判斷作為簽字方的所述第二方是否為所述第三方所了解和/或所信任。如果作為所述簽字方的所述第二方為所述第三方了解和/或信任,則執(zhí)行下列步驟(a)獲得相應于所述私有密鑰SK2的所述第二方的公共密鑰PK2,(b)使用所述了解的和/或可信的簽字方的所述公共密鑰PK2對所述受簽公共密鑰PK1進行驗證,(c)如果對所述受簽公共密鑰PK1的驗證成功,則使用所述受簽公共密鑰PK1對受簽數(shù)字數(shù)據(jù)D進行驗證。
33.根據(jù)權(quán)利要求32所述的方法,其中,僅在下述條件下驗證方才接受某公共密鑰來驗證數(shù)字數(shù)據(jù)和/或另一公共密鑰上的簽字,即所述驗證方了解和/或信任所述公共密鑰的持有相應私鑰的相應簽字方。
34.根據(jù)權(quán)利要求32或33所述的方法,還包括如果所述第三方了解和/或信任作為所述簽字方的所述第二方,而且如果對所述受簽公共密鑰PK1的驗證是成功的,則所述第三方把所述第一方和/或所述公共密鑰PK1登記為可信的,用于由所述第一方使用所述私有密鑰SK1發(fā)布的另外的后繼的簽字。
35.根據(jù)權(quán)利要求32或33所述的方法,其中,所述數(shù)字數(shù)據(jù)D包括所述系統(tǒng)的另一方的公共密鑰。
36.根據(jù)權(quán)利要求32或35所述的方法,還包括如果所述第三方不了解和/或不信任所述第二簽字方,則執(zhí)行下列步驟(i)判斷另一簽字方是否已發(fā)布了所述受簽公共密鑰PK1的簽字,(ii)如果所述受簽公共密鑰PK1的另一簽字方簽字被確定,并且所述另一簽字方為所述第三方了解和/或信任,則使用所述另一簽字方的公共密鑰執(zhí)行步驟(a)、(b)以及(c),(iii)如果確定沒有所述受簽公共密鑰PK1的另一簽字方,和/或沒有確定可信的另一簽字方,則執(zhí)行下列步驟1.獲得相應于所述私有密鑰SK2的所述第二方的公共密鑰PK2,2.判斷第四簽字方是否已發(fā)布了所述第二公共密鑰PK2的簽字,3.如果第四簽字方已發(fā)布了關(guān)于所述第二公共密鑰PK2的簽字,則判斷所述第四簽字方是否為所述第三方了解和/或信任,而且如果所述第四簽字方為所述第三方了解和/或信任,則使用所述第四簽字方的公共密鑰PK4執(zhí)行步驟(a)、(b)以及(c)。
37.根據(jù)權(quán)利要求36所述的方法,其中,由第五簽字方對所述第四簽字方的公共密鑰PK4進行簽字,所述方法還包括4.如果所述第四簽字方不為所述第三方了解和/或信任,則執(zhí)行施用于所述公共密鑰PK2的步驟(i)和(ii),并且執(zhí)行分別施用于公共密鑰PK4、第五方以及公共密鑰PK5的步驟(iii)。
38.根據(jù)權(quán)利要求32~37中任一權(quán)利要求所述的方法,其中,僅在下述條件下驗證方才接受某公共密鑰來驗證數(shù)字數(shù)據(jù)和/或另一公共密鑰上的簽字,即所述驗證方了解和/或信任所述公共密鑰的持有相應私鑰的相應簽字方,以及其中如果某未知公共密鑰被簽字并且可以利用另一可信的和/或理解的公共密鑰驗證該簽字,則信任該未知公共密鑰。
39.根據(jù)權(quán)利要求38所述的方法,還包括建立一公共密鑰的信任度,其中,所述信任度是基于為接受所述公共密鑰用于驗證簽字所要求的到達所了解的公共密鑰的公共密鑰鏈中的未知公共密鑰的數(shù)目的。
40.根據(jù)權(quán)利要求38或39所述的方法,其中,把所述系統(tǒng)中一或多個公共密鑰和/或相應于所述公共密鑰的簽字標識為對驗證方來說不可信,而且其中,在用于建立是否信任未知公共密鑰的所述公共密鑰鏈中不使用所述一或多個公共密鑰和/或所述簽字。
41.根據(jù)權(quán)利要求39~40中任一權(quán)利要求所述的方法,其中,把信任信息賦予給公共密鑰的簽字或者用于驗證所述簽字的公共密鑰,以及被賦予給所述公共密鑰鏈中一或多個公共密鑰的所述信任信息用于建立所述信任度。
42.根據(jù)權(quán)利要求38~40中任一權(quán)利要求所述的方法,其中,一個以上的公共密鑰鏈用于建立公共密鑰的信任度,其中把所有鏈的信任度組合為單個信任度,或者使用最高信任度。
43.根據(jù)權(quán)利要求32~42中任一權(quán)利要求所述的方法,其中,所述公共密鑰和/或所述公共密鑰的簽字被存儲在所述系統(tǒng)的服務器上,其中經(jīng)由所述公共網(wǎng)絡把所述服務器連接到所述各方,并且由所述服務器和/或所述系統(tǒng)的另一方將所述公共密鑰和/或所述公共密鑰的所述簽字分布到所述系統(tǒng)的一方。
44.根據(jù)權(quán)利要求42~43中任何一個權(quán)利要求所述的方法,其中,所述服務器聚集與用于建立信任度的所述一個以上的鏈相關(guān)聯(lián)的所有簽字,并且所述服務器把所聚集的或所組合的信任度賦予給所述服務器發(fā)布的另一簽字。
45.一種用于為包含經(jīng)由公共網(wǎng)絡連接的多方的系統(tǒng)的至少兩方提供數(shù)字數(shù)據(jù)的完整性和一致性信息的方法,該方法包括由所述系統(tǒng)的第一方創(chuàng)建數(shù)字數(shù)據(jù)的標識列表,根據(jù)所述列表的某些或全部標識計算雜湊值,把所述雜湊值與所述列表相關(guān)聯(lián),將所述列表和所述雜湊值提供給所述系統(tǒng)的第二方,將所述第二方擁有的相應列表中的一或多個標識與所述所獲得的列表中的相應的一或多個標識進行比較,驗證兩個列表的一致性,包括下列步驟根據(jù)所述所獲得的列表的某些或全部標識計算雜湊值,根據(jù)所述相應列表的某些或全部標識計算或獲得雜湊值,比較該兩雜湊值,如果所述比較步驟得到相等的雜湊值,則建立該兩個列表是一致的。
46.根據(jù)權(quán)利要求45所述的方法,其中,所述把所述雜湊值與所述列表相關(guān)聯(lián)的步驟包括把所述雜湊值附著于所述列表。
47.根據(jù)權(quán)利要求45或46所述的方法,其中,所述驗證兩個列表的一致性的步驟還包括步驟如果所述比較步驟得到不同的雜湊值,則通知所述第一方和/或所述第二方。
48.根據(jù)權(quán)利要求45~47中任一權(quán)利要求所述的方法,其中,所述驗證兩個列表的一致性的步驟還包括下述步驟如果所述比較步驟得到不同的雜湊值,創(chuàng)建可由所述系統(tǒng)的其他方訪問的警報。
49.根據(jù)權(quán)利要求45~48中任一權(quán)利要求所述的方法,其中,所述數(shù)字數(shù)據(jù)為所述系統(tǒng)中各方的公共密鑰。
50.根據(jù)權(quán)利要求45~49中任一權(quán)利要求所述的方法,其中,所述列表和/或所述列表中的標識被所述第一方數(shù)字地簽字。
51.根據(jù)權(quán)利要求45~50中任一權(quán)利要求所述的方法,其中,所述數(shù)字數(shù)據(jù)的標識為所述數(shù)字數(shù)據(jù)。
52.根據(jù)權(quán)利要求45~50中任一權(quán)利要求所述的方法,其中,一組客戶機通過在所述組的所有客戶機之間交換所述列表和所述列表的任何更新而維持互相一致的列表,其中所述列表包括數(shù)字數(shù)據(jù)集合和/或數(shù)字數(shù)據(jù)的標識。
53.根據(jù)權(quán)利要求52所述的方法,其中,把下列標識至少之一賦予每一所述數(shù)字數(shù)據(jù),或者從每一所述數(shù)字數(shù)據(jù)獲得下列標識至少之一與數(shù)字數(shù)據(jù)相關(guān)聯(lián)的數(shù)字,數(shù)字數(shù)據(jù)的唯一標識,數(shù)字數(shù)據(jù)的唯一標識的預定義部分,從與數(shù)字數(shù)據(jù)相關(guān)聯(lián)的數(shù)字標識的預定比特位置抽取的預定數(shù)目的比特,與數(shù)字數(shù)據(jù)相關(guān)聯(lián)的或者包括在數(shù)字數(shù)據(jù)中的預定義搜索串,數(shù)字數(shù)據(jù)的時間戳;整個數(shù)字數(shù)據(jù)的雜湊值;為此目的專門創(chuàng)建的、并且添加于所述數(shù)字數(shù)據(jù)的標識符;以及以上標識至少之一的雜湊值。
54.根據(jù)權(quán)利要求53所述的方法,其中,通過使用針對每一數(shù)字數(shù)據(jù)的所述至少一個標識把數(shù)字數(shù)據(jù)關(guān)聯(lián)到所述集合而由所述標識確定所述數(shù)字數(shù)據(jù)集合,或者由客戶標識確定所述數(shù)字數(shù)據(jù)集合。
55.根據(jù)權(quán)利要求53或54所述的方法,其中,所述至少兩個預定義集合是通過所述標識來標識和/或區(qū)別的;以及所述方法還包括標識與給定數(shù)字數(shù)據(jù)相關(guān)聯(lián)的數(shù)字數(shù)據(jù)集合,包括確定所述給定數(shù)字數(shù)據(jù)的至少一個標識,由此使用所述至少一個所確定的標識實現(xiàn)所述標識操作。
56.根據(jù)權(quán)利要求53~55中任一權(quán)利要求所述的方法,其中,預先確定的客戶機組維持的互相一致的數(shù)字數(shù)據(jù)預定列表。
57.根據(jù)權(quán)利要求56所述的方法,其中,根據(jù)權(quán)利要求25~29中任一權(quán)利要求所述的方法,維持和互換所述數(shù)字數(shù)據(jù)預定列表。
58.根據(jù)權(quán)利要求57所述的方法,其中,所述組中的所述客戶機和/或所述系統(tǒng)中的另外方與一或多個其他客戶機組互換葉雜湊值,由此計算非葉雜湊值和所述根雜湊值。
59.根據(jù)權(quán)利要求58所述的方法,其中,每一客戶機組的一或多個客戶機實現(xiàn)根據(jù)權(quán)利要求25~29中任一權(quán)利要求所述的所述服務器的功能。
60.根據(jù)權(quán)利要求58或59所述的方法,其中,所述服務器為每一客戶機組中的客戶機。
61.一種計算機可讀媒體,其包括用于控制服務器-客戶機系統(tǒng)中客戶機設備的指令,所述指令使得所述客戶機設備參與根據(jù)權(quán)利要求32~60中任一權(quán)利要求所述的方法。
62.一種計算機可讀媒體,其包括用于控制服務器-客戶機系統(tǒng)中服務器的指令,所述指令導致所述服務器參與根據(jù)權(quán)利要求32~60中任一權(quán)利要求所述的方法。
全文摘要
提供了一種用于管理數(shù)字數(shù)據(jù)的方法、系統(tǒng)以及具有用于控制客戶機設備和服務器的指令的計算機可讀媒體。根據(jù)一個方面,一種方法包括把數(shù)字數(shù)據(jù)與預定義數(shù)字數(shù)據(jù)集合相關(guān)聯(lián),根據(jù)與預定義集合相關(guān)聯(lián)的某些或全部數(shù)字數(shù)據(jù)和/或根據(jù)某些或全部數(shù)字數(shù)據(jù)的標識,計算葉雜湊值,并且計算根雜湊值,其中基本的雜湊算法將至少所述葉雜湊值作為輸入。該方法還包括通過下述操作判斷給定的數(shù)字數(shù)據(jù)與所述根雜湊值的一致性標識與給定數(shù)字數(shù)據(jù)相關(guān)聯(lián)的數(shù)字數(shù)據(jù)的集合、重新獲得所述根雜湊值、重新獲得根據(jù)其計算過所述根雜湊值的雜湊值,根據(jù)所述重新獲得的雜湊值計算雜湊值,并且把所述重新獲得的根雜湊值與前一步驟中所計算的雜湊值進行比較。
文檔編號G06F21/64GK1886929SQ200380110974
公開日2006年12月27日 申請日期2003年11月21日 優(yōu)先權(quán)日2003年11月21日
發(fā)明者埃里科斯·皮特索斯 申請人:埃里科斯·皮特索斯