CN1886929A - 数据管理和数据分布过程中提供完整性与信任的方法与系统 - Google Patents

数据管理和数据分布过程中提供完整性与信任的方法与系统 Download PDF

Info

Publication number
CN1886929A
CN1886929A CNA2003801109745A CN200380110974A CN1886929A CN 1886929 A CN1886929 A CN 1886929A CN A2003801109745 A CNA2003801109745 A CN A2003801109745A CN 200380110974 A CN200380110974 A CN 200380110974A CN 1886929 A CN1886929 A CN 1886929A
Authority
CN
China
Prior art keywords
hash value
numerical data
leaf
public keys
predefine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2003801109745A
Other languages
English (en)
Inventor
埃里科斯·皮特索斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CN1886929A publication Critical patent/CN1886929A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了一种用于管理数字数据的方法、系统以及具有用于控制客户机设备和服务器的指令的计算机可读媒体。根据一个方面,一种方法包括把数字数据与预定义数字数据集合相关联,根据与预定义集合相关联的某些或全部数字数据和/或根据某些或全部数字数据的标识,计算叶杂凑值,并且计算根杂凑值,其中基本的杂凑算法将至少所述叶杂凑值作为输入。该方法还包括通过下述操作判断给定的数字数据与所述根杂凑值的一致性:标识与给定数字数据相关联的数字数据的集合、重新获得所述根杂凑值、重新获得根据其计算过所述根杂凑值的杂凑值,根据所述重新获得的杂凑值计算杂凑值,并且把所述重新获得的根杂凑值与前一步骤中所计算的杂凑值进行比较。

Description

数据管理和数据分布过程中提供完整性与信任的方法与系统
本发明涉及数据管理和分布系统,以及具体的实施例涉及用于把数字数据经由公共网络从一或多方分布于多个其他方的系统中的公共密钥基础设施。具体地讲,本发明提供了用于建立诸如因特网的公共网络上所分布的数字数据的数据完整性与信任度的处理。
在许多应用中,希望服务器能够向各种客户机证明某些数据或数据集合的存在或不存在以及完整性。
另外,在诸如PGP(Pretty Good Privacy:相当好的私有性)系统的系统中,希望的是某“签字方”可以对该系统的某其他方的公共密钥进行数字签字,由此核准“受签方”的标识。特别希望的是,提供这样一种系统,其允许信任或了解该“签字方”的第三方也建立信任“受签方”的标识或公共密钥,而无需必须知道“受签方”的标识。该公知系统具有下述缺点:多数方(客户机)仅知道一小组的其他方,而且对另一公共密钥进行签字并不是对该密钥建立信任的有效方式,因为该密钥的接收方必须了解和信任签字者的标识,然而在接收先前不了解的密钥的大多数情况下,情况并非如此。
而且,希望提供一种在诸如因特网的分布式系统中建立局部使用的数据的完整性信息的系统与方法。通常,许多用户使用全局(globally)使用的数据集合的部分,其中,全局意味着系统中的许多用户使用该数据集合。希望提供这样一种方法,其可以确保某数据对于所有使用该数据的用户是相同的(且未被改变的)。公知地,使用某可信(trusted)密钥或通过所有用户以其为中心,并且对其信任的可信第三方对数据进行签字。然而,这建立了一种基于所述集中化的第三方的信任。显然,这是一个缺点,因为所有用户必须信任这一方,他们依赖于该方的完整性,而且该系统需要由该第三方所支持的集中化的基础设施。
本发明的一个目的是提供这样的一些系统与方法,以及含有相应地控制这样的系统与方法中的多个用户终端和服务器的指令的计算机可读媒体,它们实现了并考虑到以上所提到的优点和所希望的方面与特征。通过以下的描述以及对权利要求的阅读,本发明的进一步的优点与方面将会变得十分明显。
独立权利要求的主题实现了这一目标,从属权利要求的主题定义了优选的实施例,这些权利要求形成了本发明所公开内容的一部分。
根据本发明的一个方面,提供了一种用于管理数字数据的系统与方法。数字数据与第一预定义数字数据集合相关联,其中至少存在两个预定义数字数据集合,而且可以把所述第一预定义数字数据集合与所述至少两个预定义集合的其他预定义集合相区别。
根据与所述第一预定义集合相关联的某些或全部数字数据(和/或根据某些或全部数字数据的标识,计算第一叶杂凑值。另外,根据与所述至少两个预定义集合的第二预定义集合相关联的某些或全部数字数据(和/或根据某些或全部数字数据的标识,计算至少第二叶杂凑值。如果存在两个以上的预定义集合,则针对所述至少两个预定义集合中的每一其余集合,根据与一其余预定义集合相关的某些或全部数字数据和/或根据某些或全部数字数据的标识,相应地计算叶杂凑值。
另外,计算根杂凑值,其中基本的杂凑算法将至少所述叶杂凑值作为输入,该至少所述叶杂凑值是分别针对所述至少两个预定义数字数据集合中的每一集合计算得到的。根杂凑值的计算至少包括根据所述第一和所述第二叶杂凑值的第一非叶杂凑值的计算。
另外,通过下述操作判断此后给定的数字数据与所述根杂凑值的一致性:标识与给定数字数据相关联的数字数据集合、重新获得所述根杂凑值、重新获得根据其计算过所述根杂凑值的杂凑值,其中采用与用于计算第一和第二叶杂凑值相同的计算方案,重新计算根据与所述所标识的数字数据集合相关联的某些或全部数字数据(和/或根据某些或全部数字数据的标识)的至少叶杂凑值。
然后,使用与用于计算根杂凑值相同的计算方案,计算至少根据所述重新获得的杂凑值的杂凑值。然后,把重新获得的根杂凑值与相应的之前计算的杂凑值进行比较,并且根据比较结果,判断给数字数据与根杂凑值的一致性,其中,如果所述比较得到相等的杂凑值,则断定一致性。
根据本发明的另一方面,提供了一种用于在包含经由公共网络连接的多方的系统中提供签字的信任度的方法与系统,其中,该系统提供了用于所述多方的公共密钥签字方案。该方法包括由第二方使用私有密钥SK2对第一方的公共密钥PK1进行签字,所述第一方使用相应于所述受签公共密钥PK1的私有密钥SK1对数字数据D进行签字,由第三方获得所述受签数字数据D和所述受签公共密钥PK1,其中所述第三方不了解和/或不信任所述第一方,确定所述第二方为所述受签公共密钥PK1的签字方,判断作为签字方的所述第二方是否为所述第三方所了解和/或所信任。如果所述第二方(作为所述签字方)为所述第三方了解和/或信任,则该方法还获得相应于所述私有密钥SK2的所述第二方的公共密钥PK2,使用所述了解的和/或可信的签字方的公共密钥PK2对所述受签公共密钥PK1进行验证,而且如果对所述受签公共密钥PK1的验证成功,则使用所述受签公共密钥PK1对受签数字数据D进行验证。
根据本发明的又一个方面,提供了用于为包含经由公共网络连接的多方的系统的至少两方提供数字数据的完整性和一致性信息的方法。该方法包括由所述系统的第一方创建数字数据的标识列表,根据该列表的某些或全部标识计算杂凑值,并且把该杂凑值与该列表相关联。
另外,把该列表和所述杂凑值提供于所述系统的第二方,并且把所述第二方拥有的相应列表中的一或多个标识与所述所获得的列表中的相应的一或多个标识进行比较。然后,通过下述操作验证两个列表的一致性:根据所述所获得的列表的某些或全部标识计算杂凑值,根据所述相应列表的某些或全部标识计算或获得杂凑值,并且比较该两杂凑值。如果该比较步骤得到相等的杂凑值,则建立该两个列表是一致的。
以下,将参照附图说明描述本发明。
图1是根据本发明的实施例的提供杂凑(hash)值的树结构的处理的高级概要图;
图2是一提供公共密钥基础设施的示范性系统;
图3是一高级流程图,说明了根据本发明实施例的杂凑值的计算;
图4是一高级流程图,说明了根据本发明实施例的数字数据的验证处理;
图5a是根据本发明第一实施例的提供杂凑值的树结构的处理的高级概要图;
图5b是根据本发明第二实施例的提供杂凑值的树结构的处理的高级概要图;
图5c是根据本发明第三实施例的提供杂凑值的树结构的处理的高级概要图;
图6是根据本发明的第一实施例的在公共密钥基础设施中提供对签名和/或数字数据的信任建立处理的处理的高级概要图;
图7是根据本发明的第二实施例的在公共密钥基础设施中提供对签名和/或数字数据的信任建立处理的处理的高级概要图;以及
图8是根据本发明的第三实施例的在公共密钥基础设施中提供对签名和/或数字数据的信任建立处理的处理的高级概要图。
以下,关于使用杂凑值的数字数据的管理与分布,描述本发明的第一方面。接下来所描述的各实施例提供了一种用于管理、存储以及分布数字数据的方法与系统,由此可以验证数字数据的完整性。
特别地,在其中把数字数据分布到或提供到几个参与方的系统中,下面的实施例允许每一方可以使用某些独立获得的信息来验证数字数据的完整性或一致性,该独立获得的信息原则上是单个杂凑值,如将在具体实施例中对定义的那样。另外,该方法与系统允许该系统的几方还可以证明该系统中数字数据的存在或不存在。特别地,可以在服务器-客户机系统中执行所描述的方法,其中,服务器可以向多个客户机证明数字数据的存在以及完整性,由此客户机可以验证服务器的正确操作或完整性,并且能够把相同的信息给予所有客户机。
在整个申请中,术语“数字数据”用于表示可以数字地加以存储或分布的任何种类的数据,例如,程序文件、数据文件、配置文件、软件代码、以上所提到的任何数据文件的新版本或更新、电子邮件消息、数字证书、公共密钥、或者它们的组合。
将通过以下的具体实施例描述本发明,这些实施例说明了某些示范性的情况,我们认为这些示范性的情况为本领域技术人员提供了理解本发明的足够知识。因此,这些实施例仅为示范性的而不是穷尽式的。此处,将不详细描述本领域技术人员公知常识的特征。
图1示出了说明了本发明的第一方面的示例图。根据这一方面,可以通过使用基于杂凑函数(hash function)的分类与验证规程,判断数字数据的存在与完整性。根据本发明的优选实施例,把每一数字数据诸如数据文件或公共密钥与多个不同的数字数据集合(110、120、130、140)之一相关联。换句话说,把使用该规程管理或分布的每一数字数据赋予给一数字数据集合。这一赋予或关联可能涉及物理地把数字数据项存储在代表这些不同数据集合的相应的存储位置中或相应的存储媒体中。作为选择,赋予或定义数字数据的相应标识可以实现所述赋予或关联。相类似,允许区别不同数据集合的固有的和已经存在的信息或标识符可以被用于实现该多个集合(110、120、130、140)。可以想像本领域技术人员所熟悉的几种其他标识,这里不再进一步加以讨论。然而,一个特别有利的实施例可以使用数字数据本身的、数字数据的标识的、或者以上所提到的两者之一或两者的杂凑值的二进制表示,以获得与一预定义集合的关联。作为示例,预定义的比特串例如每一数据的标识符中的n个最低有效位可以提供与特定集合的关联。每一数据的标识符可以为文件名、电子邮件地址、文件属性或所述数据的唯一标识编号,而且该比特串所代表的编号可以相应于数字数据集合。
根据一个特定实施例,存在着针对每一数字数据的标识,其无歧义地把预定义集合赋予给每一数字数据。根据另一特定实施例,数字数据可以为一个以上预定义集合的一部分。根据另一特定实施例,可以在被输入该系统时把该标识赋予给每一数字数据。
所预定义集合的总数和/或每一集合中数据项的总数可以以下述方式预先确定和固定,该方式导致针对每一集合的数字数据的统计上的均匀分布。
以下,将使用图2中所说明的客户机-服务器系统200作为示例描述本发明的主要方面。
图2描述了系统200,其包括多个客户机203~205,经由诸如因特网的网络209把客户机203~205连接到至少一个服务器。例如,图2示出了杂凑值服务器202和数据存储服务器201。数据存储服务器图示了存储待分布给多个客户机的数字数据的服务器装置,杂凑值服务器202图示了用于计算、维护、分布以下将描述的杂凑值的服务器装置。然而,可以将这两种服务器装置包括在单个服务器实体中,或者甚至还可以将这两种服务器装置分布在三个或更多个服务器实体之间。该示范性的客户机-服务器系统200代表了用于客户机与/服务器可得的公共密钥签名方案的公共密钥网络。因此,图示了私有/公共密钥服务器206,其可以在系统内发行、分布或维护公共密钥。作为示例,还图示了两个认证(certificate)授权机制(authority)208,209,用于创建和发行每一客户机的公共密钥的认证,如通常在公共密钥网络中使用的那样。
尽管将针对这一示范性的网络200描述其余的实施例,但应该加以注意的是,除非明确地加以说明,否则这些实施例并不局限于这样的客户机-服务器系统。而总体上讲,本发明涉及数字数据的存在与完整性的管理与验证。
根据一个实施例,使用与每一预定义集合(110、120、130、140)相关联的数字数据来计算单一的杂凑值(115、125、135、145)。根据另一个实施例,使用每一集合中的每一数字数据项的标识(111~113、121~123、131~133、141~143)来计算针对每一集合110、120、130、140的单一的杂凑值。如以上所示,该标识可以是针对每一数据项所计算的杂凑值本身。在任一种情况下,都可以根据与每一预定义集合相关联的数字数据项或其标识而计算一个杂凑值。以下,将这些杂凑值表示为叶杂凑值115、125、135、145。
然后,可以以一或多个步骤使用这些叶杂凑值计算单一的杂凑值,以下将把该单一的杂凑值表示为根杂凑值160,该根杂凑值可用于验证整个杂凑数据的完整性,并由此验证系统中数字数据集的完整性和/或数字数据的存在或不存在,如下文详述。
为了验证数字数据的存在或不存在,可以首先确定将与数字数据相关的预定义集合110。为此,可以如上所述获得或赋予标识111,以及由客户机请求相应的数字数据集合。
在以下的描述中,系统200用于分布系统200中的客户机的公共密钥,客户机203接收另一客户机204的公共密钥,并且希望判断所接收的公共密钥的完整性。换句话说,就数据完整性而言,将加以分布和验证的数字数据为公共密钥。使用本示例,仅仅是为了以说明的方式描述本实施例,应该认识到,总体上讲,本发明涉及任何种类的数字数据,如以上所示。
客户机203可以首先确定该公共密钥将与之相关联的预定义集合110。然后,客户机可以向服务器(201、202)请求该所标识的预定义集合110中所包含的数据项,或这些数据项111~113的标识,随后,按上述已知的和预定的方式计算该集合110的叶杂凑值115。
根据一个简单的实施例,客户机205可以检查公共密钥是否为与该所标识的数字数据集合110相关联的数字数据项或其标识的一部分。然而,本实施例仅提供了对所讨论的公共密钥的完整性的有限的确定性,这是因为客户机仅可以建立该公共密钥与所述预定义集合的所请求的数据的一致性。不存在用于对所请求的(以及最终所接收的)数字数据或其标识的完整性的明显和容易的验证方式。因此,以下的实施例提供了对所请求的预定义集合的完整性的验证,从而提供了对作为该集合的一部分必须加以验证的公共密钥的完整性的验证。
因此,把根杂凑值160在系统200中的客户机203~205之间加以分布。返回到先前示例,客户机已标识了待验证的公共密钥(111)的相关预定义集合110、请求和获得了与该所标识的集合相关联的其余的数字数据(112、113),以及已针对该集合110计算了叶杂凑值115。现在,客户机使用该计算得到的叶杂凑值115来重新计算根杂凑值160。
因为如下述安全地分布了根杂凑值,和/或所有客户机可以在无服务器干预或另一第三方卷入的情况下,相互比较该根杂凑值,而且因为基本的(underlying)杂凑算法是加密安全的,所以客户机可以建立该安全分布的根杂凑值160与包含正在讨论的公共密钥(111)的预定义集合110的叶杂凑值115的一致性。
已知杂凑算法提供了加密安全的一路函数(one-way function),其可用于验证杂凑算法的输入的完整性。为了验证数字数据集合例如公共密钥,必须计算待验证的所有可能的数字数据项上的杂凑值。然而,这将要求当必须验证某特定数字数据项时必须要获得所有数字数据项。对于大数字数据集合来说,这将是不可行的。因此,本发明在进一步的实施例中提供了这样一种方法:一方面提供杂凑值即根杂凑值160,该根杂凑值160是由一规程以所有数字数据项作为输入根据杂凑算法计算得到的;另一方面,当验证特定数据项(111)的完整性时,为了重新计算该根杂凑值160,并不要求所有的数字数据项。
因而,把针对数字数据的每一预定义集合的计算得到的叶杂凑值115、125、135、145划分成几组(116、136)。然后,根据每一组116的叶杂凑值115、125计算进一步的杂凑值150。以下,把这些计算得到的杂凑值称为非叶(non-leaf)杂凑值150、151。
然后,可以把这些非叶杂凑值进一步划分成杂凑值组(152),并相应地计算每一组(150、151)的杂凑值的进一步的非叶杂凑值。可以重复该过程,直至计算得到单一的杂凑值,即根杂凑值160。杂凑值服务器202可以执行该规程。
然后,把根杂凑值160安全地分布到每一客户机。这可以通过由服务器向每一客户机发送优选地被加密的该根杂凑值来实现。根据另一实施例,也可以由一个客户机向另一个客户机分布根杂凑值,由此也优选地由发送客户机对根杂凑值加密和/或签字。另外,也可以把某种信任度(如后面在本发明的另一方面中所解释的)附着于所分布的根杂凑值。因而,从一或多个客户机接收根杂凑值的客户机可以仅当根杂凑值可以建立其完整性或者仅当其具有特别要求的信任度时才接受该根杂凑值。
当客户机希望验证特定数字数据例如上面示例中公共密钥时,该客户机计算与待验证的公共密钥(111)相关联的数字数据集合的叶杂凑值115。为了重新计算根杂凑值160,该客户机要求其余数字数据集合(120、130、140)的叶杂凑值(125、135、145)和非叶杂凑值(150、151)。因而,该客户机可以向服务器202请求其余的叶杂凑值。然后,该客户机可以根据所获得的叶杂凑值和针对包括正在讨论的公共密钥的、所识别的集合计算得到的叶杂凑值,重新计算根杂凑值。如果计算得到的根杂凑值等于安全分布的根杂凑值,则建立了公共密钥与安全分布的根杂凑值的一致性,从而建立了完整性。另外,由于数字数据例如公共密钥,与预定义集合的关联是已知的,所以任何客户机都可以请求该相应的集合,并且可以验证该公共密钥是否存在。由于该根杂凑值对所有客户机是已知的,并且是被安全分布的,所以对手方(adversary)甚至该杂凑服务器本身操纵或伪造预定义集合的数字数据或所请求的杂凑值都是不可能的。
在另一实施例中,仅计算这些非叶根杂凑值(150),这要求包括公共密钥111的所标识的数字数据集合110的叶杂凑值115作为输入。该实施例由图5A变得很清楚。图5A图示了所计算的杂凑值的示范性的树结构。对此,叶杂凑值115、125、135、145、501~506与该树结构的第一层相关联。在图5A中所示的特定实施例中,把这些叶杂凑值划分成每组有两个杂凑值的组(116、136、530~532)。对于每一个组,分别计算与该树结构的第二层相关联的非叶杂凑值150、151、510~512。类似地,计算非叶杂凑值520、521,并且非叶杂凑值520、521与该树结构的进一步的层相关联,并且根杂凑值160形成树结构的顶层。假设所述示例中的公共密钥被标识为属于叶杂凑值115的组的一部分,则根据第二实施例,客户机计算仅非叶杂凑值150和120以及根杂凑值160。据此,为了计算根杂凑值160,客户机必须获得仅叶杂凑值125和非叶值151、510以及521,而不必要求其余的叶和非叶杂凑值。
根据本发明的一个实施例,预定义集合的总数为2的幂。然后,可以对这些集合进行编号,并且从数字数据或从数字数据的标识获得的预定义比特流可以用作该数字数据到这些预定义的和编号的数字数据集合之一的关联和赋予。然后,可以把叶杂凑值划分成具有两个杂凑值的互斥的组。然后,对于每个组计算非叶杂凑值,并且在该树结构的任一进一步的层中,再次把非叶杂凑值划分成具有两个杂凑值的组,直至已计算出根杂凑值。作为选择,集合的总数也可以不为2的幂,而为另一个整数的幂。
根据另一个实施例,预定义集合的总数和/或用于计算树结构中下一层的非叶杂凑值的杂凑值的总数可以互相独立地选择并且每层可以不相同。图5A说明了这一情况,其中,具有两个叶杂凑值的组用于计算第一层的非叶杂凑值,并且第一层的各3个非叶杂凑值用于计算该树结构中第二层的非叶杂凑值。图5B说明了本发明的另一实施例的一个示例,其中,在该树结构的第一层中,非叶杂凑值520涉及相应地3个杂凑值150、151、510,而对于非叶杂凑值521仅使用了两个非叶杂凑值511、512。当杂凑值的总数不是计算最近上一层的非叶杂凑值必须使用的杂凑值的数目的整数倍时,可以使用这样的情形。关于预定义集合的数目也适用同样的情形。图5C示出了关于此的另一实施例,但在第二层中假设必须使用3个杂凑值以计算第三层的一杂凑值。作为示例,图5C示出了类似于图5B的第二层的5个非叶杂凑值150、151、510~512。计算非叶杂凑值的该方法可以因而规定:对于最后一个非叶杂凑值521,必须使用最近下一层的其余两个非叶杂凑值511、512,另外还使用第二下一层的所定义的和/或所指定的杂凑值,例如叶杂凑值506。然而,本领域技术人员将会了解:可以按类似于上述的方式,对图5A~5C中所描述的实施例加以组合和进行扩展。例如,如图5所示每层中的组重叠至少一个杂凑值(杂凑13)可以作为标准规程被应用于树结构的某些或全部的层,以提供更高程度的信任与验证。
图3和4分别示出了根据本发明上述实施例的方法步骤的概要图。然而,这些说明性的流程图仅提供了一示范性的概要图,以及对本发明的各个实施例的一般性的理解,本发明并不局限于这些方法步骤,而也可以偏离这些规程。
图3涉及本发明的一个实施例,其中,在步骤302中获得数字数据的标识,并且在步骤303把数字数据301赋予给预定义集合之一。然而,在另一实施例中,可以把数字数据赋予给一个以上的预定义集合。针对每一预定义集合计算叶杂凑值。在步骤305和306中,如上述那样计算非叶杂凑值。步骤307和308涉及树结构的不同的层和非叶杂凑值的计算,以及如步骤309中所示的根杂凑值的相应计算。
图4图示了验证数字数据的完整性和/或存在性的一个例子,如其可以由系统200中的一客户机执行的那样。假设一客户机想要验证数字数据402的存在性和/或完整性,数字数据402可以为另一客户机的公共密钥。该客户机可以因而在步骤403中获得该数字数据的验证,以在步骤404中标识与该数字数据相关联的预定义集合。在待验证的数字数据例如公共密钥或公共密钥证书已经暗示地指定数字数据的集合时,如上所述,也可以把步骤403和404包括在单一的步骤中。在步骤405和406中,对树结构重新计算,如已结合先前的图所描述的那样。然后,在比较步骤407中,把最终计算得到的根杂凑值与所接收的根杂凑值401进行比较。如果两个杂凑值相匹配,并且客户机相信所接收的根杂凑值的完整性,则该客户机已验证数字数据存在,并且能够建立完整性。如果客户机所接收的根杂凑值是以安全的方式被分布,则可以在不要求可信第三方的情况下验证数字数据的完整性和/或存在性。
因此,可以提供这样的一种应用,其允许服务器向几个客户机证明某数据的存在或不存在以及完整性。因而,即使在数据集合的总数过大而难以向每一客户机传送的情况下,也可以确保所有客户机具有关于某数据的存在性及内容的相同信息。服务器可以把根杂凑值分布到每一客户机,而且客户机可以互相之间进一步地交换根杂凑值,例如,通过把根杂凑值附着在消息上,这甚至可定期执行。因为在后一种情况下服务器将对根杂凑值的分布没有影响,所以客户机将必须判断它们是否具有将施加于正在讨论的数字数据的根杂凑值的最新版本。这可以通过使用附着于杂凑值、数字数据和/或在该验证规程期间客户机向服务器请求的杂凑值的时间戳来实现。然而,相关联的时间戳信息仅为一个示例,如本领域公知的,也可以替代地使用许多其他的标识。树结构,例如预定义集合的数目、每一集合中数字数据或标识项的数目,和/或不同树结构层处每组中的杂凑值的总数也可以变化,可以是可调整的,或者可以由例如服务器指定,以便有效地控制计算有效载荷(payload)和/或经由网络待分布的数据。另外,某些客户机或某些运行在客户机终端上并执行验证数字数据的规程的应用,可以指定根据所要求的信任度必须执行的验证的次数。这可能涉及验证树结构的一个以上的数字数据集合,或者当用户必须对数字数据进行验证时,涉及比重新计算所述树结构的根杂凑值所必需的非叶杂凑值更多的非叶杂凑值的重新计算。
本发明的另一些方面与实施例涉及在公共密钥系统例如系统200中,创建公共密钥和/或由公共密钥签字的数字数据的信任度。在公共密钥系统中,例如在PGP(相当好的私有性)系统中,通常由该系统的另一方,例如由另一客户机对公共密钥进行签字。通过这样做,受签公共密钥的接收方可以核准公共密钥持有者的标识。然而,这要求受签公共密钥的接收方了解和/或信任所接收的公共密钥的签字方。由于一客户机通常了解和信任系统中仅有限数目的其他方,所以这样的系统提供了仅有限的可应用性,因为如果所接收的公共密钥是由受签密钥的接收方不了解或不信任的第三方签字的,则接收方不能建立是否信任密钥持有者的标识或密钥本身。
因此,根据签字方关于针对其发布签字的那一方的声明,建构信任,如接下来更详细加以描述的。
因此,可以按下述方式对这样的公共密钥系统进行扩展,该方式可以对受签公共密钥建立信任,而无需实际了解该密钥的签字方。然而,这同样适用于那些利用密钥持有者的私有密钥被签字的数字数据,因为为了验证该受签数字数据的签字,验证方必须信任该签字验证所要求的密钥持有者的相应公共密钥。因此,在以下的描述中,主要涉及对公共密钥的签字,但本发明总体上适用于任何种类的数字数据。
根据本发明的一个实施例,系统中的某一签字方对密钥进行签字,由此把一定程度的信任赋予了针对该受签密钥的第三接收方的受签公共密钥,而不要求所述第三接收方了解签字方或其公共密钥。
图6说明了解释本发明的一个实施例的一个示例,该例子涉及在没有明确要求认证公共密钥(如例如认证授权当局所做的)的可信第三方基础设施的情况下建立公共密钥的信任度的这些方面。图6中所给出的例子假定,第一客户机203在公共密钥签字方案中使用其私有密钥发布了对某数字数据D的签字(610)。为了验证该签字610,需要与用于发布签字610的私有密钥相应的第一客户机的相应的公共密钥601。还假设:例如经由公共网络209把数字数据D例如另一公共密钥提供给另一客户机205。然后,客户机205判断对所述数据D的签字是第一客户机发布的,并且可以获得相应的公共密钥601,例如从系统200中的公共密钥服务器或另一客户机获得。假设客户机205不了解公共密钥601或相应的客户机203。因此,客户机205要求对所述公共密钥的某种信任,以便建立是否可以信任签字610。图6所给出的示例示出了,又一个客户机204已对第一客户机203的公共密钥601签字了。可以使用所述客户机204的相应的公共密钥602对公共密钥601的签字612进行验证。客户机205获得签字612,标识签字方204,并且获得相应的公共密钥602。假设如图6中所示的客户机205信任和/或了解公共密钥602或相应地客户机204。因此,客户机205可以使用可信的公共密钥602验证签字612。根据本发明的另一实施例,该签字612把信任信息赋予给客户机205的受签公共密钥601。从而,客户机205建立了该信任度,例如通过验证过程613,而且此后信任公共密钥601。接下来,客户机205可以验证签字610,如果该验证成功,则其建立了数字数据D的完整性。
根据又一个实施例,与另一公共密钥上的签字相关联的信任信息可以通过将明确的信任信息值和/或签字方信任标识值附着或关联到签字或相应的公共密钥本身而实现。
也可以将图6中所示的简单示例扩展到对某特定签字赋予的信任值的链或甚至树。图7中图示了该信任度链或信任度树的主要原理。类似于图6,图7示出了客户机203、204、205与公共密钥601、602,以及赋予数字数据610和在步骤615中使用公共密钥601对数字数据验证的步骤。这些步骤与图6中相应的步骤相同。然而,根据图7中的示例,第四客户机701已发布了对公共密钥601的签字。数字数据D的验证方客户机205既不了解或不信任第四客户机701,也没有对公共密钥601的签字710的访问。而第二方204已发布了对所述受签公共密钥710的签字。然后,由客户机205获得签字711,并且使用了解的和可信的公共密钥602对其进行验证。如果该验证712是成功的。则客户机205建立了对公共密钥601和702两者的信任值。接下来,客户机205可以使用可信的公共密钥601验证受签数字数据D。图8中给出的例子描述了另一实施例,图8中给出的例子相应于图7的例子但具有以下的不同之处。第二客户机204发布对第四客户机701的公共密钥702的签字810。因此,在步骤811,客户机205可以验证签字810,由此建立了对公共密钥702的信任。使用这新近可信的公共密钥702,客户机205现在可以获得并验证签字710,并且如果该验证是成功的,则客户机205还建立了对用于对数字数据D进行签字的公共密钥601的信任。
从图6~8中给出的上述示例可以看出,可以把所描述的本发明的实施例互相结合,以及与关于其余附图所描述的实施例相结合。特别应该加以注意的是,可以由一个以上方对一公共密钥或一签名进行签字,从而可以把赋予公共密钥的信任信息链扩展为信任值树,由此可以针对对最初不可信的公共密钥的签字,追溯几个了解的公共密钥或了解的签字方。另外,某运行在客户机设备或使用这方法的某一方上的应用要求一定的给定信任度,该给定的信任度可以基于通向所描述的可信标识的链或树中的了解的公共密钥的步数(the number of steps)。在图7中所示的示例中,验证方205已建立了一个不了解方702通向了解方客户机204。因此,这一链具有两步,由此仅涉及一个不了解方。可以存在某规则,即仅当存在通向最终了解和可信的标识204的最大数目的不了解标识时,才接受公共密钥为可信的。如果存在一个以上的链通向一了解和可信签字方,则可以把这些独立建立的信任度值组合成单一的最终信任值,并且可以基于该最终信任值决定是否接受公共密钥为可信的。然而,在另一实施例中,客户机205或者在客户机205的控制下运行在客户机设备上的相应应用可以要求仅一个信任度值,以便接受公共密钥为可信的。
其上包括签字的公共密钥可以被存储在某些公共服务器上,并且也可以被分布在客户机之间,如以上结合本发明的其余实施例和方面所描述的。
根据本发明的又一些实施例,局部使用的数据的完整性信息可以由例如客户机203公布,以确保和提供整个系统中的所述数据的全局一致性。通常,系统中的用户共享全局数据集合的至少某些部分,并且存在如下需要,即确保使用该数据的每一用户可以保证所述数据的完整性和/或所述数据的存在。在普通系统中,必须通过某集中化的第三方的可信密钥对这样的数字数据签字,而且所有客户机必须了解和信任该集中化的第三方例如认证授权当局。然而,这是大多数用户所不希望的,因为可能不希望要求一可由所有参与方信任的第三方。
因此,本发明的一个方面是,用户可以创建针对他希望与其他方共享的数据或数据的一部分的标识的列表或集合。这些标识唯一地标识了数字数据或数字数据的一部分,并且将它们与数字数据的列表或集合相关联。上面已结合图1~6描述了这一点。按与结合本发明的第一方面所描述的相同的方式,把根据数据或数据的一部分计算得到的一个杂凑值附着到每一标识列表或集合。该数据的标识的列表可以为数字数据的集合,如结合图1到6所描述的。可以由客户机把该列表分布到系统中的另一客户机。根据一个实施例,可以把包括所附着的根据其某些或全部项上的杂凑值的标识列表随在客户机之间正常传递消息期间由客户机所发送的消息一起发送。接收到该列表的另一客户机现在可以把包括在该列表中的标识与包括在其自己的列表中的标识相比较,由此判断第一客户机是否使用了相同的数据。如果两个列表包括相同的标识,则客户机可以判断杂凑值是否匹配,并由此可证明两个客户机对相同的数据取得一致。在不匹配的情况下,可以相应地警告用户。
根据又一个实施例,当把其列表发送到某第三方时,客户机可以包括其已接收的另一列表,并且可以将该列表发送到第三方。这允许:即使很少被使用的数据也将迟早会发现某其它客户机上的匹配,该其它客户机位于所分布的列表的链中的或多或少的几步远(steps away)。可以把这一实施例与结合图6~8所描述的实施例相组合,建立对每一列表或相应地其杂凑值的信任度,由此还可针对该列表或杂凑值发布签字。作为选择,列表项上的杂凑值也可以用作签名,其通过重新计算和比较列表项上的杂凑值而被验证。
具体地讲,在使用客户机的名字或标识作为上述标识,并且使用公共密钥作为被杂凑的数据的情况下,对于公共密钥可以使用该规程。因而,可以对于客户机保证所有公共密钥的全局一致性。甚至例如从另一客户机接收到关于其自己的公共密钥的信息的客户机也可以证明:对于其自己的公共密钥正确地签上了其自己的名字或标识。如果针对每一客户机的公共密钥是可得的,则可以使用这些公共密钥对所分布和所交换的标识的列表或集合进行签字。如以上所提到的,某些应用或客户机还可以依据所接收的列表的发送者或依据在接收到这一列表之前,该列表被其他客户机转发多少次而赋予信任度。如以上所提到的,可以采用与结合图6~8所考虑的同样的考虑,而且这一规程甚至可以为结合图6~8所描述的方法的一部分。
如果客户机之间存在着大量的交互,而且使用了巨大的数据集,则客户机可以选择仅根据某随机或某所选择的数据或其正在使用的部分数据创建列表。根据本发明的再一个实施例,如果如由列表中的标识所指定的给定数据或该数据的一部分可以被改变(可能在某时间段之后),则还可以把某种有效性或时间指定与列表或相应的杂凑值相附着或者相关联。这可以为数字数据的创建时间或时间戳信息。根据本发明的另一个实施例,也可以把这些数据标识的列表或集合分布和传送到一可信的第三方,例如如图2所示的服务器或认证授权当局,然后,如果一列表中的项与从另一客户机所接收的一相应列表中的项不匹配,则该第三方可以通知客户机。类似地,在不是可信的第三方的情况下另一个客户机可以按相同的方式运作,由此可以建立如上面所讨论的某种信任度。如果存在一个以上的这样的第三方或客户机,则每一这样的第三方或客户机可以把信息发送给所有其余方,或所有方可以互相交互,由此把所有列表同步化到一全局可接受的列表。
根据本发明的另一个实施例,在系统中,一客户机可以使用其自己的标识将其本身赋予某客户机组。在一客户机创建其自己的列表之前,该客户机可以从该客户机组中的至少一个其他客户机请求一列表。然后,该客户机可以把其自己的数据或相应地其标识添加于该列表中,并且可以将其公布给系统中或组中的其他客户机。通过这样做,组中的所有客户机可以建立有关由其组所一致认同的、并且持有的所有数据项的最新信息。因此,该实施例实现了每一客户机判断给定的数字数据存在或不存在,如以上结合图1~5所描述的。如果数字数据或其标识直接与所选择的客户机组有关,如其可以为公共密钥的情况,则甚至全局系统200中数据例如公共密钥的存在也可以被建立和证明。因此,不处于该组中的某些其他客户机可以请求组的列表,并且可以判断给定数据是否存在于该全局系统中。如果在这样的一个系统中存在聚集数字数据的第三方或特殊的客户机,则它们可能互斥地限制它们的动作,以持有和同步化其为成员的客户机组的列表。
本发明的以上所描述的方面和实施例的任何组合,均被视为本发明范围内的进一步的实施例。以下的权利要求中描述了以上所描述的方面和实施例的进一步的细节,以下的权利要求形成了本发明所公开的内容的一个明确的部分。

Claims (62)

1.一种用于管理数字数据的方法,该方法包括下列步骤:
把数字数据与第一预定义数字数据集合相关联,其中至少存在两个预定义数字数据集合,而且可以把所述第一预定义数字数据集合与所述至少两个预定义集合的其他预定义集合相区别;
根据与所述第一预定义集合相关联的某些或全部数字数据和/或根据某些或全部数字数据的标识,计算第一叶杂凑值;
根据与所述至少两个预定义集合的第二预定义集合相关联的某些或全部数字数据和/或根据某些或全部数字数据的标识,计算第二叶杂凑值;
如果存在两个以上的预定义集合,则针对所述至少两个预定义集合中的每一其余集合:
根据与一其余预定义集合相关联的某些或全部数字数据和/或根
据某些或全部数字数据的标识,相应地计算叶杂凑值;
计算根杂凑值,其中基本的杂凑算法将至少所述叶杂凑值作为输入,该至少所述叶杂凑值是分别针对所述至少两个预定义数字数据集合中的每一集合计算得到的,其中所述计算根杂凑值的步骤包括下列步骤:
根据至少所述第一叶杂凑值和所述第二叶杂凑值计算第一非叶杂凑值;
所述方法还包括用于判断给定数字数据与所述根杂凑值的一致性的步骤,这些步骤包括:
标识与给定数字数据相关联的数字数据集合;
重新获得所述根杂凑值;
重新获得根据其计算过所述根杂凑值的杂凑值,包括以下步骤:
使用与在所述计算第一和第二叶杂凑值的步骤中所使用的计算方案相同的计算方案,根据与所述所标识的数字数据集合相关联的某些或全部数字数据和/或根据某些或全部数字数据的标识重新计算叶杂凑值;
使用与在所述计算根杂凑值的步骤中所使用的计算方案相同的计算方案,根据所述重新获得的杂凑值计算杂凑值;
把所述重新获得的根杂凑值与所述前一个步骤中计算得到的杂凑值进行比较;
基于所述比较步骤,判断所述给定数字数据与所述根杂凑值的一致性,其中如果所述比较得到相等的杂凑值,则断定一致性。
2.根据权利要求1所述的方法,其中,把下列标识至少之一赋予每一所述数字数据,或者从每一所述数字数据获得下列标识至少之一:
与数字数据相关联的数字,
数字数据的唯一标识,
数字数据的唯一标识的预定义部分,
从与数字数据相关联的数字标识的预定比特位置抽取的预定数目的比特,
与数字数据相关联的或者包括在数字数据中的预定义搜索串,数字数据的时间戳;
整个数字数据的杂凑值;
为此目的专门创建的、并且添加于所述数字数据的标识符;以及以上标识至少之一的杂凑值。
3.根据权利要求2所述的方法,其中,所述把数字数据与第一预定义数字数据集合相关联的步骤是使用所述至少一个标识实现的。
4.根据权利要求2或3所述的方法,其中,
所述至少两个预定义集合是通过所述标识来标识和/或区别的;以及所述标识与给定数字数据相关联的数字数据集合的步骤包括:
确定所述给定数字数据的至少一个标识,由此使用所述至少一个所确定的标识实现所述标识操作。
5.根据权利要求2~4中任一权利要求所述的方法,其中,所述计算第一叶杂凑值的步骤,所述计算第二叶杂凑值的步骤,和/或所述如果存在两个以上预定义集合则针对每一其余预定义集合分别计算叶杂凑值的步骤包括:
获得针对与所述预定义集合相关联的某些或全部数字数据的至少一个标识,以及
根据所述在前一个步骤中获得的标识计算叶杂凑值;以及其中
所述重新计算所述所标识的数字数据集合的叶杂凑值的步骤包括:
重新获得与所述所标识的集合相关联的某些或全部数字数据的至少
一个标识,以及
根据所述重新获得的标识计算叶杂凑值。
6.根据权利要求2~4中任一权利要求所述的方法,其中,所述计算第一叶杂凑值的步骤,所述计算第二叶杂凑值的步骤,和/或所述如果存在两个以上预定义集合则针对每一其余预定义集合分别计算叶杂凑值的步骤包括:
针对与所述预定义集合相关联的某些或每一数字数据,分别计算该至少一个标识的杂凑值,以及
根据至少所述在前一个步骤中计算得到的杂凑值计算杂凑值;以及
其中
所述重新计算所述所标识的数字数据集合的叶杂凑值的步骤包括:
获得与所述所标识的集合相关联的某些或每一数字数据的至少一个标识,
针对每一在前一个步骤中获得的标识,分别计算杂凑值,以及根据至少所述在前一个步骤中计算得到的杂凑值计算杂凑值。
7.根据权利要求1~4中任一权利要求所述的方法,其中,所述方法还包括:
针对所述至少两个数字数据集合中的每一集合分别计算杂凑值,包括分别计算与所述集合相关联的每一数字数据的杂凑值,而且其中,
所述计算第一叶杂凑值的步骤,所述计算第二叶杂凑值的步骤,和/或所述如果存在两个以上预定义集合则针对每一其余预定义集合分别计算叶杂凑值的步骤包括:
根据至少所述在前一个步骤中计算得到的相应数字数据集合的杂凑值计算杂凑值;以及其中,
所述重新计算所述所标识的数字数据集合的叶杂凑值的步骤包括:
分别重新计算与所述所标识的集合相关联的每一数字数据的杂凑值,以及
计算所述分别重新计算得到的杂凑值的杂凑值。
8.根据权利要求7所述的方法,其中,所述针对所述至少两个数字数据集合中的每一集合分别计算杂凑值的步骤被包括在所述计算第一叶杂凑值的步骤、和/或所述计算第二叶杂凑值的步骤、和/或所述如果存在两个以上预定义集合则针对每一其余预定义集合分别计算叶杂凑值的步骤中。
9.根据权利要求1~8中任一权利要求所述的方法,其中,存在可以互相区别的至少四个预定义数字数据集合,所述方法还包括:
根据与所述至少四个预定义集合中的第三预定义集合相关联的某些或全部数字数据和/或根据某些或全部数字数据的标识,计算第三叶杂凑值;
根据与所述至少四个预定义集合中的第四预定义集合相关联的某些或全部数字数据和/或根据某些或全部数字数据的标识,计算第四叶杂凑值;以及其中,
所述计算根杂凑值的步骤还包括:
根据至少所述第三和所述第四计算得到的叶杂凑值,计算第二非叶杂凑值,以及
根据至少所述第一和所述第二计算得到的非叶杂凑值,计算第三非叶杂凑值。
10.根据权利要求9所述的方法,其中,所述计算得到的杂凑值、非叶杂凑值以及根杂凑值代表了树结构,其中:
所述第一、所述第二、所述第三、所述第四叶杂凑值与所述树结构的底层相关联;
所述第一和所述第二非叶杂凑值与所述树结构的第二层相关联;
所述第三非叶杂凑值与所述树结构的第三层相关联;
所述根杂凑值与所述树结构的顶层相关联;
其中,所述顶层是仅包括作为所述根杂凑值的单个非叶杂凑值的所述树结构的最高层。
11.根据权利要求10所述的方法,其中,存在另外的预定义数字数据集合,每一集合与按照与所述第一到第四叶杂凑值相同的方式计算得到的另外的叶杂凑值相关联;
存在所述树结构的另外的层,每一层与根据所述树结构中的相应较低层的某些或全部非叶杂凑值计算得到的另外的非叶杂凑值相关联。
12.根据权利要求10或11所述的方法,其中,所述重新获得根据其计算过所述根杂凑值的杂凑值的步骤还包括:
重新计算所述树结构的第二层中的每一非叶杂凑值,该每一非叶杂凑值是根据包括所述所标识的数字数据集合的重新计算得到的叶杂凑值的杂凑值计算过了的;以及
针对所述树结构的第三到顶层中的每一层,重新计算每一非叶杂凑值,该每一非叶杂凑值是根据包括于本步骤或所述前一步骤中重新计算得到的非叶杂凑值的杂凑值计算过了的。
13.根据权利要求12所述的方法,其中,所述重新获得根据其计算过所述根杂凑值的杂凑值的所述步骤还包括:
提供在重新计算所述树结构的第二层中的每一非叶杂凑值的所述步骤中所需要的所有其余叶杂凑值,该每一非叶杂凑值是根据包括所述所标识的数字数据集合的重新计算得到的叶杂凑值的杂凑值计算过了的;以及
提供在重新计算所述树结构的第三到顶层中的每一层的每一非叶杂凑值的所述步骤中所需要的所有其余非叶杂凑值。
14.根据权利要求10到13中任一权利要求所述的方法,其中,所述计算根杂凑值的步骤还包括:
把所述预定义集合划分成预定义集合的多个组;
针对预定义集合的所述多组中的每一个组,根据所述组中的预定义集合的所计算的叶杂凑值,计算非叶杂凑值;
针对所述树结构的第三到顶层中的每一层,把最近较低层的非叶杂凑值划分成至少两个组,并且根据每一组的非叶杂凑值计算非叶杂凑值。
15.根据权利要求14所述的方法,其中,针对所述数结构的每一层L,把最近较低层L-1的所述预定义集合和/或所述非叶杂凑值划分成具有预定义数目BL个预定义集合或非叶杂凑值的组。
16.根据权利要求15所述的方法,还包括:
判断预定义集合的总数是否为所述预定义数目B1的整数倍;
如果所述总数不是B1的整数倍,则创建至少一个包括相应小于B1个预定义集合的组,或者创建至少两个包括至少一个相同的预定义集合的组;
针对所述树结构的所述第二到所述顶层中的每一层L,判断最近较低层L-1的非叶杂凑值的总数是否为所述预定义数目BL的整数倍;以及
如果所述总数不是BL的整数倍,则执行下列操作之一:
创建至少一个包括相应小于BL个最近较低层L-1的非叶杂凑值的组,
创建至少两个均包括最近较低层L-1的至少一个相同非叶杂凑值的组,或
创建至少一个包括较低层L-N的至少一个杂凑值的组,其中N>1和L<2。
17.根据权利要求1~16中任一权利要求所述的方法,其中,每一数字数据与所述多个预定义集合之一相关联。
18.根据权利要求17所述的方法,其中,不同种类的数字数据与不同的预定义集合相关联,其中所述不同种类的数字数据。
19.根据权利要求1~16中任一权利要求所述的方法,其中,数字数据可以与一个以上的所述预定义集合相关联。
20.根据权利要求19所述的方法,其中,如果所述给定数字数据与一个以上的预定义集合相关联,则所述判断所述给定数字数据与所述根杂凑值的一致性的步骤包括:
分别地标识一个以上的预定义集合;以及
针对所述一个以上的预定义集合中每一集合重新计算叶杂凑值。
21.根据权利要求1~20中任一权利要求所述的方法,其中,根据叶杂凑值和/或非叶杂凑值的互斥组计算所述非叶杂凑值。
22.根据权利要求1~13中任一权利要求所述的方法,其中,预定义集合的总数为S,S是整数B的整数幂E。
23.根据权利要求22所述的方法,其中,针对所述S个预定义集合中的每一个,计算叶杂凑值,以及
所述计算根杂凑值的步骤包括:
(a)把所述S个预定义集合划分成具有B个预定义集合的E+1个互斥的组;
(b)针对所述E+1个组中的每一个,根据所述组的B个预定义集合的计算得到的叶杂凑值,计算非叶杂凑值;
(c)把所述在前一个步骤中计算得到的非叶杂凑值划分成具有B个非叶杂凑值的互斥的组;
(d)针对前一个步骤中所述互斥的组中的每一个,根据所述组的B个非叶杂凑值,计算非叶杂凑值;
重复步骤(c)和(d),直至计算得到作为根杂凑值的单个非叶杂凑值。
24.根据权利要求22或23所述的方法,其中,所述整数B是2的整数幂。
25.根据权利要求1~24中任一权利要求所述的方法,其中,所述给定数字数据被分布到在包括至少一个服务器和多个客户机的服务器-客户机系统中的客户机,
所述针对每一预定义数字数据集合计算叶杂凑值的步骤、计算非叶杂凑值的步骤、所述计算根杂凑值的步骤是由所述服务器执行的;
所述确定所述给定数字数据与所述根杂凑值的一致性的步骤是由所述客户机执行的;
所述方法还包括:
把所述根杂凑值分布到所述服务器-客户机系统的多个客户机。
26.根据权利要求25所述的方法,其中,所述把所述根杂凑值分布到多个客户机的步骤由所述服务器执行的。
27.根据权利要求25或26所述的方法,其中,通过由第一客户机把所述根杂凑值发送到第二客户机而在所述多个客户机之间进行分布所述根杂凑值,其中所述第一客户机先前已从所述服务器和/或从一或多个所述多个客户机接收到所述根杂凑值。
28.根据权利要求25~27中任一权利要求所述的方法,其中,所述所分布的根杂凑值与时间戳或有效性信息相关联。
29.根据权利要求28所述的方法,其中,由客户机根据所述时间戳或有效性信息替换、更新和/或向所述服务器请求所述根杂凑值。
30.一种计算机可读媒体,包括用于控制服务器-客户机系统中的客户机设备的指令,所述指令使得所述客户机设备执行下列步骤:
接收根杂凑值,所述根杂凑值是根据权利要求1~29中任一所述的方法计算得到的;
判断给定数字数据与所述根杂凑值的一致性,包括:
标识与给定数字数据相关联的数字数据集合;
获得根据其计算过所述根杂凑值的杂凑值,包括:
向所述服务器-客户机系统的服务器请求与所述所标识的数字数据集合相关联的某些或全部数字数据和/或某些或全部数字数据的标识,
根据所述所请求的与所述所标识的数字数据集合相关联的某些或全部数字数据和/或某些或全部数字数据的标识,计算叶杂凑值,
确定计算所述根杂凑值所需的其余叶杂凑值和非叶杂凑值,
向所述服务器请求所述其余叶杂凑值和非叶杂凑值;
使用与在所述计算根杂凑值的步骤中所使用的计算方案相同的计算方案,根据所述所获得的杂凑值计算杂凑值;
把所述所接收的根杂凑值与所述前一个步骤中计算得到的杂凑值进行比较;
基于所述比较步骤,判断所述给定数字数据与所述所接收的根杂凑值的一致性,其中如果所述比较步骤得到相等的杂凑值,则断定一致性。
31.一种计算机可读媒体,其包括用于控制服务器-客户机系统中的服务器的指令,所述指令使得所述服务器执行根据权利要求1~29中任一所述方法的下列步骤:
把数字数据与第一预定义数字数据集合相关联,其中至少存在两个预定义数字数据集合,而且可以把所述第一预定义数字数据集合与所述至少两个预定义集合的其他预定义集合相区别;
根据与所述第一预定义集合相关联的某些或全部数字数据和/或根据某些或全部数字数据的标识,计算第一叶杂凑值;
根据与所述至少两个预定义集合的第二预定义集合相关联的某些或全部数字数据和/或根据某些或全部数字数据的标识,计算第二叶杂凑值;
如果存在两个以上的预定义集合,则针对所述至少两个预定义集合中的每一其余集合:
根据与一其余预定义集合相关联的某些或全部数字数据和/或根据某些或全部数字数据的标识,相应地计算叶杂凑值;
计算根杂凑值,其中基本的杂凑算法将至少所述叶杂凑值作为输入,该至少所述叶杂凑值是分别针对所述至少两个预定义数字数据集合中的每一集合计算得到的,其中所述计算根杂凑值的步骤包括下列步骤:
根据所述第一叶杂凑值和所述第二叶杂凑值计算第一非叶杂凑值;
把所述根杂凑值分布到所述客户机-服务器系统中的多个客户机。
32.一种用于在包含经由公共网络连接的多方的系统中提供签字的信任度的方法,所述系统提供了用于所述多方的公共密钥签字方案,该方法包括:
由第二方使用私有密钥SK2对第一方的公共密钥PK1进行签字,
所述第一方使用相应于所述受签公共密钥PK1的私有密钥SK1对数字数据D进行签字,
由第三方获得所述受签数字数据D和所述受签公共密钥PK1,其中对于所述第三方,所述第一方是未知和/或不可信任的,
确定所述第二方为所述受签公共密钥PK1的签字方,
判断作为签字方的所述第二方是否为所述第三方所了解和/或所信任。
如果作为所述签字方的所述第二方为所述第三方了解和/或信任,则执行下列步骤:
(a)获得相应于所述私有密钥SK2的所述第二方的公共密钥PK2,
(b)使用所述了解的和/或可信的签字方的所述公共密钥PK2对所述受签公共密钥PK1进行验证,
(c)如果对所述受签公共密钥PK1的验证成功,则使用所述受签公共密钥PK1对受签数字数据D进行验证。
33.根据权利要求32所述的方法,其中,仅在下述条件下验证方才接受某公共密钥来验证数字数据和/或另一公共密钥上的签字,即所述验证方了解和/或信任所述公共密钥的持有相应私钥的相应签字方。
34.根据权利要求32或33所述的方法,还包括:如果所述第三方了解和/或信任作为所述签字方的所述第二方,而且如果对所述受签公共密钥PK1的验证是成功的,
则所述第三方把所述第一方和/或所述公共密钥PK1登记为可信的,用于由所述第一方使用所述私有密钥SK1发布的另外的后继的签字。
35.根据权利要求32或33所述的方法,其中,所述数字数据D包括所述系统的另一方的公共密钥。
36.根据权利要求32或35所述的方法,还包括:
如果所述第三方不了解和/或不信任所述第二签字方,则执行下列步骤:
(i)判断另一签字方是否已发布了所述受签公共密钥PK1的签字,
(ii)如果所述受签公共密钥PK1的另一签字方签字被确定,并且所述另一签字方为所述第三方了解和/或信任,则使用所述另一签字方的公共密钥执行步骤(a)、(b)以及(c),
(iii)如果确定没有所述受签公共密钥PK1的另一签字方,和/或
没有确定可信的另一签字方,则执行下列步骤:
1.获得相应于所述私有密钥SK2的所述第二方的公共密钥PK2,
2.判断第四签字方是否已发布了所述第二公共密钥PK2的签字,
3.如果第四签字方已发布了关于所述第二公共密钥PK2的签字,则判断所述第四签字方是否为所述第三方了解和/或信任,而且如果所述第四签字方为所述第三方了解和/或信任,则使用所述第四签字方的公共密钥PK4执行步骤(a)、(b)以及(c)。
37.根据权利要求36所述的方法,其中,由第五签字方对所述第四签字方的公共密钥PK4进行签字,所述方法还包括:
4.如果所述第四签字方不为所述第三方了解和/或信任,则执行施用于所述公共密钥PK2的步骤(i)和(ii),并且执行分别施用于公共密钥PK4、第五方以及公共密钥PK5的步骤(iii)。
38.根据权利要求32~37中任一权利要求所述的方法,其中,仅在下述条件下验证方才接受某公共密钥来验证数字数据和/或另一公共密钥上的签字,即所述验证方了解和/或信任所述公共密钥的持有相应私钥的相应签字方,以及其中
如果某未知公共密钥被签字并且可以利用另一可信的和/或理解的公共密钥验证该签字,则信任该未知公共密钥。
39.根据权利要求38所述的方法,还包括:
建立一公共密钥的信任度,其中,所述信任度是基于为接受所述公共密钥用于验证签字所要求的到达所了解的公共密钥的公共密钥链中的未知公共密钥的数目的。
40.根据权利要求38或39所述的方法,其中,把所述系统中一或多个公共密钥和/或相应于所述公共密钥的签字标识为对验证方来说不可信,而且其中,在用于建立是否信任未知公共密钥的所述公共密钥链中不使用所述一或多个公共密钥和/或所述签字。
41.根据权利要求39~40中任一权利要求所述的方法,其中,把信任信息赋予给公共密钥的签字或者用于验证所述签字的公共密钥,以及被赋予给所述公共密钥链中一或多个公共密钥的所述信任信息用于建立所述信任度。
42.根据权利要求38~40中任一权利要求所述的方法,其中,一个以上的公共密钥链用于建立公共密钥的信任度,其中把所有链的信任度组合为单个信任度,或者使用最高信任度。
43.根据权利要求32~42中任一权利要求所述的方法,其中,所述公共密钥和/或所述公共密钥的签字被存储在所述系统的服务器上,其中经由所述公共网络把所述服务器连接到所述各方,并且由所述服务器和/或所述系统的另一方将所述公共密钥和/或所述公共密钥的所述签字分布到所述系统的一方。
44.根据权利要求42~43中任何一个权利要求所述的方法,其中,所述服务器聚集与用于建立信任度的所述一个以上的链相关联的所有签字,并且所述服务器把所聚集的或所组合的信任度赋予给所述服务器发布的另一签字。
45.一种用于为包含经由公共网络连接的多方的系统的至少两方提供数字数据的完整性和一致性信息的方法,该方法包括:
由所述系统的第一方创建数字数据的标识列表,
根据所述列表的某些或全部标识计算杂凑值,
把所述杂凑值与所述列表相关联,
将所述列表和所述杂凑值提供给所述系统的第二方,
将所述第二方拥有的相应列表中的一或多个标识与所述所获得的列表中的相应的一或多个标识进行比较,
验证两个列表的一致性,包括下列步骤:
根据所述所获得的列表的某些或全部标识计算杂凑值,
根据所述相应列表的某些或全部标识计算或获得杂凑值,比较该两杂凑值,
如果所述比较步骤得到相等的杂凑值,则建立该两个列表是一致的。
46.根据权利要求45所述的方法,其中,所述把所述杂凑值与所述列表相关联的步骤包括把所述杂凑值附着于所述列表。
47.根据权利要求45或46所述的方法,其中,所述验证两个列表的一致性的步骤还包括步骤:
如果所述比较步骤得到不同的杂凑值,则通知所述第一方和/或所述第二方。
48.根据权利要求45~47中任一权利要求所述的方法,其中,所述验证两个列表的一致性的步骤还包括下述步骤:
如果所述比较步骤得到不同的杂凑值,创建可由所述系统的其他方访问的警报。
49.根据权利要求45~48中任一权利要求所述的方法,其中,所述数字数据为所述系统中各方的公共密钥。
50.根据权利要求45~49中任一权利要求所述的方法,其中,所述列表和/或所述列表中的标识被所述第一方数字地签字。
51.根据权利要求45~50中任一权利要求所述的方法,其中,所述数字数据的标识为所述数字数据。
52.根据权利要求45~50中任一权利要求所述的方法,其中,一组客户机通过在所述组的所有客户机之间交换所述列表和所述列表的任何更新而维持互相一致的列表,其中所述列表包括数字数据集合和/或数字数据的标识。
53.根据权利要求52所述的方法,其中,把下列标识至少之一赋予每一所述数字数据,或者从每一所述数字数据获得下列标识至少之一:
与数字数据相关联的数字,
数字数据的唯一标识,
数字数据的唯一标识的预定义部分,
从与数字数据相关联的数字标识的预定比特位置抽取的预定数目的比特,
与数字数据相关联的或者包括在数字数据中的预定义搜索串,
数字数据的时间戳;
整个数字数据的杂凑值;
为此目的专门创建的、并且添加于所述数字数据的标识符;以及以上标识至少之一的杂凑值。
54.根据权利要求53所述的方法,其中,通过使用针对每一数字数据的所述至少一个标识把数字数据关联到所述集合而由所述标识确定所述数字数据集合,或者由客户标识确定所述数字数据集合。
55.根据权利要求53或54所述的方法,其中,所述至少两个预定义集合是通过所述标识来标识和/或区别的;以及所述方法还包括:
标识与给定数字数据相关联的数字数据集合,包括:确定所述给定数字数据的至少一个标识,由此使用所述至少一个所确定的标识实现所述标识操作。
56.根据权利要求53~55中任一权利要求所述的方法,其中,预先确定的客户机组维持的互相一致的数字数据预定列表。
57.根据权利要求56所述的方法,其中,根据权利要求25~29中任一权利要求所述的方法,维持和互换所述数字数据预定列表。
58.根据权利要求57所述的方法,其中,所述组中的所述客户机和/或所述系统中的另外方与一或多个其他客户机组互换叶杂凑值,由此计算非叶杂凑值和所述根杂凑值。
59.根据权利要求58所述的方法,其中,每一客户机组的一或多个客户机实现根据权利要求25~29中任一权利要求所述的所述服务器的功能。
60.根据权利要求58或59所述的方法,其中,所述服务器为每一客户机组中的客户机。
61.一种计算机可读媒体,其包括用于控制服务器-客户机系统中客户机设备的指令,所述指令使得所述客户机设备参与根据权利要求32~60中任一权利要求所述的方法。
62.一种计算机可读媒体,其包括用于控制服务器-客户机系统中服务器的指令,所述指令导致所述服务器参与根据权利要求32~60中任一权利要求所述的方法。
CNA2003801109745A 2003-11-21 2003-11-21 数据管理和数据分布过程中提供完整性与信任的方法与系统 Pending CN1886929A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2003/013109 WO2005055515A1 (en) 2003-11-21 2003-11-21 Methods and systems for providing integrity and trust in data management and data distribution processes

Publications (1)

Publication Number Publication Date
CN1886929A true CN1886929A (zh) 2006-12-27

Family

ID=34639219

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2003801109745A Pending CN1886929A (zh) 2003-11-21 2003-11-21 数据管理和数据分布过程中提供完整性与信任的方法与系统

Country Status (8)

Country Link
US (1) US20080028224A1 (zh)
EP (1) EP1690366A1 (zh)
JP (1) JP2007515837A (zh)
CN (1) CN1886929A (zh)
AU (1) AU2003292078A1 (zh)
CA (1) CA2546818A1 (zh)
IL (1) IL175769A0 (zh)
WO (1) WO2005055515A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102481956A (zh) * 2009-08-31 2012-05-30 安纳斯塔锡斯株式会社 实时车辆数据完整性保障装置和方法及车辆用黑匣子系统
CN103455765A (zh) * 2012-05-31 2013-12-18 韩国科亚电子股份有限公司 车辆行驶信息管理、验证方法、装置及行驶信息管理系统
CN114499891A (zh) * 2022-03-21 2022-05-13 宁夏凯信特信息科技有限公司 一种签名服务器系统以及签名验证方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8224952B2 (en) * 2005-12-22 2012-07-17 At&T Intellectual Property I, L.P. Methods, communication networks, and computer program products for monitoring, examining, and/or blocking traffic associated with a network element based on whether the network element can be trusted
US7624276B2 (en) * 2006-10-16 2009-11-24 Broadon Communications Corp. Secure device authentication system and method
EP2534809B1 (en) * 2010-02-12 2019-04-10 Telefonaktiebolaget LM Ericsson (publ) Trust discovery in a communications network
US9059840B2 (en) * 2012-05-31 2015-06-16 Apple Inc. Recipient blind cryptographic access control for publicly hosted message and data streams
WO2015024603A1 (en) * 2013-08-23 2015-02-26 Nec Europe Ltd. Method and system for authenticating a data stream
US10303887B2 (en) * 2015-09-14 2019-05-28 T0.Com, Inc. Data verification methods and systems using a hash tree, such as a time-centric merkle hash tree
KR101772554B1 (ko) 2016-02-02 2017-08-30 주식회사 코인플러그 파일에 대한 노터리 서비스를 제공하고 상기 노터리 서비스를 사용하여 기록된 파일에 대한 검증을 수행하는 방법 및 서버
WO2019010228A1 (en) 2017-07-03 2019-01-10 Medici Ventures, Inc. DECENTRALIZED NEGOTIATION SYSTEM FOR FAIR ORDERING AND MATCHING OF TRANSACTIONS RECEIVED AT MULTIPLE NETWORK NODE AND CORRELATED BY MULTIPLE NETWORK NODES IN A DECENTRALIZED NEGOTIATION SYSTEM
EP3442160A1 (en) 2017-08-07 2019-02-13 Siemens Aktiengesellschaft Pruning of authentication trees
US11126755B2 (en) 2018-01-30 2021-09-21 Hewlett Packard Enterprise Development Lp Object signatures in object stores
US11387981B2 (en) * 2018-02-13 2022-07-12 Accenture Global Solutions Limited Platform for multi-party digital records using distributed ledger system
US11409724B2 (en) * 2020-03-10 2022-08-09 International Business Machines Corporation Hashed balanced tree data structure

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4309569A (en) * 1979-09-05 1982-01-05 The Board Of Trustees Of The Leland Stanford Junior University Method of providing digital signatures
US4881264A (en) * 1987-07-30 1989-11-14 Merkle Ralph C Digital signature system and method based on a conventional encryption function
JPH0817380B2 (ja) * 1993-02-22 1996-02-21 日本電気株式会社 秘密情報通信方法及び秘密情報通信装置
AU691366B2 (en) * 1994-10-28 1998-05-14 Surety.Com, Inc. Digital document authentication system for providing a certificate which authenticates and uniquely identifies a document
EP1164746B1 (en) * 1995-11-02 2007-02-07 CoreStreet, Ltd. Tree-based certificate revocation system
US5903651A (en) * 1996-05-14 1999-05-11 Valicert, Inc. Apparatus and method for demonstrating and confirming the status of a digital certificates and other data
US6065008A (en) * 1997-10-01 2000-05-16 Microsoft Corporation System and method for secure font subset distribution
US6226743B1 (en) * 1998-01-22 2001-05-01 Yeda Research And Development Co., Ltd. Method for authentication item

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102481956A (zh) * 2009-08-31 2012-05-30 安纳斯塔锡斯株式会社 实时车辆数据完整性保障装置和方法及车辆用黑匣子系统
CN102481956B (zh) * 2009-08-31 2014-07-30 安纳斯塔锡斯株式会社 实时车辆数据完整性保障装置和方法及车辆用黑匣子系统
CN103455765A (zh) * 2012-05-31 2013-12-18 韩国科亚电子股份有限公司 车辆行驶信息管理、验证方法、装置及行驶信息管理系统
CN114499891A (zh) * 2022-03-21 2022-05-13 宁夏凯信特信息科技有限公司 一种签名服务器系统以及签名验证方法
CN114499891B (zh) * 2022-03-21 2024-05-31 宁夏凯信特信息科技有限公司 一种签名服务器系统以及签名验证方法

Also Published As

Publication number Publication date
JP2007515837A (ja) 2007-06-14
AU2003292078A1 (en) 2005-06-24
WO2005055515A1 (en) 2005-06-16
IL175769A0 (en) 2006-09-05
US20080028224A1 (en) 2008-01-31
EP1690366A1 (en) 2006-08-16
CA2546818A1 (en) 2005-06-16

Similar Documents

Publication Publication Date Title
CN1886929A (zh) 数据管理和数据分布过程中提供完整性与信任的方法与系统
EP1401143B1 (en) Methods and system for providing a public key fingerprint list in a PK system
US8086842B2 (en) Peer-to-peer contact exchange
JP2020521252A5 (zh)
CN108769230B (zh) 交易数据存储方法、装置、服务器及存储介质
CN100347986C (zh) 一种身份认证的方法和系统
CN112184442B (zh) 基于区块链的刑事案件证据流转记录的管理方法及系统
JP2021515271A (ja) コンピュータにより実施される投票処理およびシステム
CN112801664B (zh) 基于区块链的智能合约供应链可信服务方法
US20150026474A1 (en) Managed authentication on a distributed network
TWI678910B (zh) 網路安全系統及網路安全方法
WO2000062503A2 (en) Apparatus and method for authenticating messages in a multicast
CN110611570A (zh) 一种加密、密钥信息提供以及数据获取方法、装置
CN114862397B (zh) 一种基于双链结构的双解耦区块链分布式方法
CN110493323B (zh) 基于区块链的公平性文件分发方法、系统及存储介质
CN113901528A (zh) 基于区块链的云端数据完整性审计方法
US20200153615A1 (en) Method for information verification in distributed systems
CN111447057B (zh) 一种基于门限秘密共享技术的安全存储方法及设备
CN115514500B (zh) 一种ca证书撤销列表快速验证方法
JP7073240B2 (ja) ブロックチェーン管理システム、ブロックチェーン管理方法及びブロックチェーン管理プログラム
US8745106B2 (en) Numeric identifier assignment in a networked computer environment
CN115237909A (zh) 一种多系统的批量数据差异发现方法和系统
CN112508571B (zh) 基于区块链的数据处理方法、装置、计算机设备及存储介质
CN114980082A (zh) 一种基于物联网的数据安全传输系统及方法
US20120144190A1 (en) Devices and methods for establishing and validating a digital certificate

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20061227