用于通过公共网络提供安全数据分发的方法和系统的制作方法

文档序号:7872894阅读:246来源:国知局
专利名称:用于通过公共网络提供安全数据分发的方法和系统的制作方法
技术领域
本发明涉及一种具有用于将数字数据从一个或多个服务器或者内容提供者通过网络分发给多个用户的公钥基础结构的系统。具体地说,本发明描述通过诸如因特网的公共网络的数字数据的安全分发和提供。
背景技术
在常见的公钥基础结构中,以及在使用用于通过潜在不安全的分发介质进行的安全数据分发的公钥加密方案的系统中,特别地为每个接收者将数字数据加密。为了提供被加密和分发的数据的可验证的完整性和真实性,人们必须依靠由诸如证书管理机构(CA)的可信任的第三方签发或证明的密钥,特别是依靠公钥对。对第三方的这种依赖给数据分发系统的安全性带来了不利。安全性通过对应私钥的保密来建立,其中,该私钥通常由可信任的第三方或证书管理机构知晓。这代表安全数据分发系统的单一失效点。此外,可信任第三方或证书管理机构提供的服务通常具有必须由客户或服务提供者支付的未决费用和特许费。因此,理想的是具有这样的系统,其能够在具有通过公共网络通信的大量参与方的系统中建立安全的数据分发,该系统在一方面在安全性要求和计算成本方面是有效的,并且在另一方面不依赖于第三方。此外,提供关于数据完整性的高等级安全性的常见数据分发系统通常在计算上较为昂贵,尤其在处理大量接收者时更是如此。

发明内容
因此,本发明第一方面的目的是提供一种向参与的服务器和用户终端提供安全的数据分发的方法和系统,其有效减小了计算成本和要提供给每个接收者的数据量,同时独立于可信任的第三方。然而,该系统将支持使用采用可信任的第三方的传统公钥加密方案。此外,存在提供这样的系统和方法的需要,该系统和方法对于以不同方式处理系统中不同种类的数据或不同参与方是可适应的且是灵活的,尤其在处理大量用户和要分发的数字数据时更是如此。因此,根据本发明的一个方面,公开了这样的方法和系统,其用于通过服务器使用所分发的数字数据的指纹列表来将数字数据安全地提供给多个客户端终端,以及以类似的方式使用另外的指纹来有效地且以低传送和计算成本将这些指纹列表或其一部分提供给客户端终端,其中该指纹列表提供数据的可验证的完整性和真实性。
本发明的另一方面致力于数字数据的分发,同时提出了在所分发的数字数据已被存储在接收者一侧之后控制对其的访问的有效且易于实施的概念。通常,通过公共网络提供并且/或者可由系统中的大量参与方访问的数字数据不仅必须通过将该数据不对称加密而被安全和保密地分发给该系统中的若干用户,还必须在接收者一侧接收到数据之后的至少一定时间段内保证秘密性。在常见的数据分发系统中,这必须通过在该一定时间段之后根据需要删除先前安全分发的全部数据来实现;例如,由所述数字数据的提供者控制或施行(enforce)。到目前为止,从安全且保密的数据分发过程独立地解决了这个问题。具体地说,这通过物理地删除所接收到的所有数据及其所有可能的副本来实现。因此,理想的是设计这样的系统和方法,其能够将安全的数据分发与有效且易于实施的、有选择地针对不同时间段和/或有选择地针对不同用户控制对加密数据的访问的方式相结合。因而,公开了这样的方法,其自动废除或删除在用于安全数据分发过程的公钥加密方案和/或公钥签名方案中使用的公钥或私钥。
本发明的另一方面致力于公钥系统中的安全数据分发,其允许若干参与方联合或连续地加密和解密所分发的数据、或者签署(sign)和验证所分发的数字数据。在不对称加密方案中,只将对称密钥不对称加密,而使用该对称密钥将数据本身对称加密。当向此数据施加对应于例如系统中的不同参与方的不同加密层时,必须将整个数据再次加密以及相应地解密。这意味着伴随着数据分发过程的高计算成本。由于相似的加密方案的底层过程也被施加到数字签名,因此同样的缺点也适用于不同实体或参与方必须签署和验证数字数据的数字签名方案。因此,理想的是提供这样的方法和系统,其提供在计算成本方面容易且有效的分层加密和/或分层数字签名功能性。因此,本发明描述在数据分发系统中提供有效且低复杂性的分层加密以及分层数据签名的方法。
根据本发明的数字数据分发系统的另一方面涉及通过公共网络分发的数字数据的路径的指定。理想的是,安全数字数据分发系统和方法提供指定和控制关于数字数据在其去往最终接收者的途中必须经过的网络节点的数据分发路径的可能性。现有技术没有充分解决这一问题,尤其在复杂性、最小传送开销和计算成本方面更是如此。因此,本发明描述这样的方法,其包括分别使用不对称加密和/或数字签名方案来解决该问题的方法步骤。
通常,使用公钥基础结构的不对称加密采用对称加密的数字数据,同时将对称密钥信息不对称加密。该对称密钥信息是对所分发的数字数据的发送者和接收者共享的秘密。通常,创建或提供该共享秘密,由此需要可信任的第三方,其被直接卷入共享秘密的创建过程,或者必须证明该过程中的信息。如已经指出的那样,对可信任第三方的这种依赖是那些系统的缺点。因此,理想的是在数据分发系统中包括创建共享秘密的低复杂性和有效的可能性,该共享秘密可充当系统的两个参与方之间的对称密钥信息。此外,在具有大量用户的常见系统中,服务器必须存储和保存所有参与用户及其各自共享秘密的记录。具体地说,这在存储复杂性、计算成本和计算时间方面给服务器带来了不利之处。因此,理想的是具有这样的安全数据分发系统和方法,其提供利用服务器创建与多个用户终端的共享秘密的能力,而无需由服务器为每个参与用户存储、更新或重新获取这些共享秘密。因此,本发明描述这样的方法和系统,其使用对随机生成的令牌计算的散列(hash)值,来创建可充当对称密钥信息的服务器和客户端终端之间的共享秘密,而无需由服务器为每个用户存储该共享秘密。
本发明的目的是提供这样的系统和方法、以及计算机程序,该计算机程序相应地控制这种系统的多个用户终端和服务器,从而实现和允许前述有利方面和特征。该目的由独立权利要求的主题内容解决。优选实施例由从属权利要求的主题内容限定。


下面参考附图描述本发明,其中,附图示出图1公钥基础结构系统;图2散列值服务器或证书管理机构服务器的功能单元;图3与唯一标识符一起存储散列值的列表的表;
图4存储公钥列表、相关用户ID和证书的列表的表;图5散列值列表的管理过程的流程图;图6公钥认证过程的流程图的第一部分;图7图6的过程的第二部分;图8辅助散列值及其列表的示例图;图9包括具有若干网络节点的网络的系统;图10至12示出涉及网络的若干网络节点的所分发数据的分层加密的基本功能性和流程的高级流程图;以及图13a和13b示出创建用于数字数据的安全分发的安全且加密的通信的基本功能性和流程的高级流程图。
具体实施例方式
针对安全数据分发系统的若干方面,参考附图和/或每个主题中的若干实施例来描述本发明。概括了不同的最清楚方面及其实施例,以提供此主题中的更高可理解性,但不意欲限制本发明的范围。实际上,可以在不背离本发明的教导的情况下组合所述方面和实施例。本领域技术人员将认识到,可以合并所有实施例的有技术意义的任意组合,而不限于本发明的特定方面。
在下面,针对用作指纹的散列值来描述本发明的第一方面,该指纹用于数字数据的分发,并具体用于在公钥系统中使用的各个公钥的分发。
以下场景和装置旨在是示例性的,而不是毫无遗漏的。具体地说,应当注意,本发明的以下方面不限于公钥,而是适用于任意种类的数字数据,例如程序文件、数据文件、配置文件、软件代码、前述任一项的新版本或更新或者其组合。因为当前优选的实施例主要使用该系统来分发公钥,并通过选择一种特定种类的数据来提供最大可理解性,以下描述的大部分将公钥唯一地作为要安全分发的数字数据。
根据本发明第一方面的示例公钥系统在图1中示出。该系统包括第一和第二证书管理机构服务器11和13、散列值服务器12以及客户端终端14至17。服务器11至13和客户端14至17连接到诸如因特网的公共网络。证书管理机构服务器11和13采取(account for)在具有公钥基础结构的公钥系统中一个或多个这种证书管理机构的常见使用。根据本发明,如随后将描述的那样,在系统内使用证书管理机构得到支持,但是它对于建立数字数据例如公钥的安全提供不是必需的。此外,散列值服务器或证书管理机构也可以由例如由客户端终端14至17或其子集形成的分布式对等系统来模拟。对于每个客户端终端14至17或对应的客户端终端14至17的用户,存在相关公钥PK1至PK4。
通常,代表各个用户的客户端终端14至17、以及服务器11至13通过公共网络互相通信。如果需要的话,图1未示出的优选地在每个服务器11至13之间的直接连接可以提供比因特网更安全的通信路径。
进行提供特定等级的可验证数据完整性和用户认证的公钥系统内的两个终端之间的安全通信的常用场景可概述如下。当公钥PK1的所有者(即,客户端)进行请求时,证书管理机构例如CA1 11首先签发客户端终端14的公钥PK1的证书,从而证明PK1是真实的、并与客户端终端14或其各自的用户相关联。该证书cert CA1(PK1)可公开获得、或被提供给系统中的剩余客户端终端15至17。然后,客户端终端14可接收被这些终端用PK1加密的数据。然而,公钥PK1的这种认证假设CA1是可信任的第三方,其必须被进行这种通信的所有终端信任。还需要通过到根CA的证书链来认证CA1的PK。通常,证书管理机构的概念基于不可伪造的证书,该证书可使用公知信息来验证,但必须使用仅由证书管理机构自己所知的私有信息来签发。这显示出一个或多个后果。不仅必须信任该证书管理机构,还必须保护证明过程不被替换,换句话说,必须确保用于验证证书的信息即CA1的公钥不能被对手替换。
散列值服务器12存储公钥的散列值列表。根据当前优选的实施例,这些公钥由证书管理机构11或13的至少一个另外签名。公钥PK1的散列值存储在散列值服务器12的散列值列表中。如下面参考图5更详细地描述的那样,散列值服务器12计算所存储的散列值列表的散列值,并提供所计算的散列值和散列值列表,使得它们对于所有终端可公开获得。在下面,散列值列表的散列值也被称为元散列值。
可以提供存储在散列值服务器12中的信息,以便公开访问或至少对于系统的专用客户端终端来说是可访问的。具体地说,提供该信息还包括在请求时或者自动地将其转发给预定客户端终端列表。如何将散列值列表和元散列值提供和分发给客户端终端的不同实施例在随后的对一般概念的描述之后进行讨论。
在本发明的一个实施例中,客户端终端15从散列值服务器12接收散列值列表及其元散列值。基于所接收的元散列值,客户端终端15在使用客户端终端14的公钥PK1验证、认证或加密数据之前执行公钥PK1的认证或验证过程。此外,客户端终端15还可以检查在散列值列表中包括的其自己的公钥PK2的真实性。下面参考图6和7更详细地描述客户端终端中的对应过程。
图1的散列值服务器12还可作为证书管理机构服务器11和13的一部分、作为存储或管理要安全分发的数字数据的网络中的另一服务器的一部分、或通过客户端终端的对等系统来实施。例如,所使用的散列算法可以是SHA1或MD5。
图2图示图1的散列值服务器的功能单元。
典型的散列值服务器包括CPU 21、连接到因特网的网络接口单元22、用于与操纵器交互的操纵器I/O单元23、存储装置23以及另外的存储装置25、26。
操纵器I/O单元23具体地包括监视器、鼠标和键盘。此外,网络接口单元22允许服务器从客户端终端接收对信息的请求、传送所存储的信息、或接收输入信息。输入信息可以从例如证书管理机构服务器接收,以便将另外的数据例如公钥添加到散列值列表中。具体地说,关于这一点,未示出的直接接口单元可提供与至少一个CA服务器的安全的直接连接。
存储装置24可由RAM、EEPROM、ROM、硬盘、磁盘驱动器和/或光盘驱动器形成。执行所需操作的服务器的操作系统以及应用软件存储在存储装置24中。
在此示例中,另外的存储装置25、26由用于存储散列值的第一存储单元25和用于存储公钥及其证书的第二存储单元26形成。通常,存储装置26可保存例如在要安全分发的一个或多个数据列表中划分的任意数据。存储单元25保存存储在存储单元26中的公钥或数据的散列值列表,以及该散列值列表的元散列值。该存储单元25还可存储与当前提供给公众的散列值列表分开存储的所接收的散列值的临时列表。
图3图示存储在散列值服务器中的公钥(PK1至PK4)的散列值32的示例列表。关联到公钥从而也关联到其散列值的唯一标识符对应地存储在列31中。唯一标识符优选地由公钥PK1至PK4的各自所有者的电子邮件地址形成。散列值32的列表还存储证书管理机构CA2的散列值列表的元散列值。该列表还可包括证书管理机构CA2的公钥的散列值。
最后,为散列值32的列表或优选地为散列值32的列表和相关电子邮件地址31计算元散列值。
图4图示可被存储在图2的存储单元26中的数据,在此示例情况下为公钥/证书对。
列41包括作为用户的唯一标识符的用户ID。用户ID可例如代替或对应于图3的电子邮件地址,或者甚至可在另外的引用表中与其进行映射。该唯一标识符41也可以是社会保险或任意其它识别号码。优选的是,散列值服务器或证书管理机构确保对于每个唯一的标识符,始终只存在一个合法的公钥。该唯一信息还可以使得使用所述公钥加密过的消息的发送者能够识别该公钥的所有者。列42包括在列41中识别的用户的公钥列表。列43包括相关公钥的证书列表,该证书由证书管理机构CA1或CA2之一签发。列表41-43中的每个条目对应于图3的散列值列表中的一个条目。
除了用户1至4的公钥PK1至PK4以外,图4中的表的最后项目包括证书管理机构CA2的公钥PK_CA2。对应的证书CA1_cert(PK_CA2)由证书管理机构CA1签发。
此外,图3和4示出的表还可包括未示出的数据字段,例如指示散列值或对应的证书是否已被废除的废除信息、或指示更新散列值的日期或时间的更新信息。
现在参考根据本发明第一方面的一个实施例的图5来描述在散列值服务器中管理散列值列表的过程。所述过程将公钥列表作为要传输到该系统的客户端终端并由其认证的数据。该场景以及以下所有场景旨在是示例性的,而不是毫无遗漏的。具体地说,应当注意,本发明不限于公钥,而是适用于任何种类的数据,例如程序文件、数据文件、配置文件或它们的组合。
首先,在步骤52,接收可由证书管理机构CA签名的公钥PK。例如,PK可以是CA签发的证书的一部分。
在步骤53,计算公钥的散列值。
随后,可以在可选步骤54检查证书管理机构CA的签名,以便验证公钥实际上由证书管理机构签名和/或从证书管理机构接收。这种验证步骤通过根据所采用的公钥签名或认证过程将CA的公钥施加到现有的所接收的CA的签名上来完成。如果不能验证该签名,则过程终止。
在步骤55,将所计算的散列值添加到存储在散列值服务器中的散列值列表中。在步骤56,对散列值的补充列表计算元散列值。在步骤57,可由散列值服务器给该散列值列表签名。最后,在步骤58,提供散列值列表、其元散列值,并可选地提供该散列值列表的签名。
提供步骤58可例如通过将该信息存储在散列值服务器中并在请求时传送它、将该信息转发到预定目的地的列表或将其转发到一个或多个预定的公布装置来实施。
优选地,在添加步骤55,首先将所计算的散列值添加到与当前提供给公众的散列值列表分开存储的散列值的临时列表中。此外,可以定义时间间隔,以便例如仅每天、每星期或每月执行步骤56至58。因此,在给定时间间隔内接收到的新散列值将被立即存储在临时列表中,以便在该时间间隔终止之后被添加到被公布的列表中。此外,为了通知元散列值的相关性(relevance),可以与元散列值一起存储和提供计算元散列值的时间或日期。
此外,还可以根据公钥系统的需要,从CA接收在散列服务器中分配的、或由这些服务器的至少一个认可的唯一标识符,例如公钥所有者的电子邮件地址。
图6和7图示根据本发明第一方面的一个实施例的在客户端终端中执行的认证过程。与图5一样,图6和7的底层认证过程是针对公钥而图示的,但一般地适用于数字数据。
在图6的过程60至68中,首先,在步骤61,从第一散列值服务器接收散列值列表及其元散列值。随后,在步骤62,从第二散列值服务器接收该散列值服务器的散列值列表的第二元值。最后,在比较所接收的元散列值的步骤63,确定两个元散列值是否互相对应。
此外,步骤61和62的每一个还可包括验证由对应散列值服务器为元散列值签发的签名的步骤、和/或如果通过例如从互相认证过程获得的密钥将所接收的信息加密则将所接收的信息解密的步骤。如将在下面变得更清楚的那样,各种子过程如步骤64和65或步骤66和67可被任选地合并到一般性的步骤61至63,以便在公钥认证过程中修改所需要的安全等级。
如果比较、验证或认证步骤的任一个表示相应地不应当用于后续通信的可能被伪造的密钥,则可以终止过程60到74。例如,如果步骤63的比较结果表示偏离了散列值,则该散列值列表不能被认为是可信任的列表。然而,在这样的单一否定认证结果之后,不一定终止该过程,而是也可以以用于认证正被讨论的公钥的替换或另外的子过程继续进行。具体地说,例如可以使用另一个源来重复接收和比较的步骤61和63或62和63,以获得该数据。再次注意的是,散列值服务器也可以由证书管理机构服务器或模拟证书管理机构服务器的客户端的对等系统来形成。
此外,被互相比较的为一个散列值列表所获得的元散列值的数目不限于如图6示出的这一示例过程所示的最初的两个。实际上,如果是成功的比较,则从在理想上独立的源获得越多元散列值,散列值列表真实的可信度越高,从而给出所覆盖的数据的完整性。因此,在另一实施例中,建立一定的安全性或可信度可能需要来自用于一个散列值列表的不同源的一定数目的元散列值。所需要的这一等级可针对不同种类的数据而变化,例如,对于公钥,它可能比对于包含较不敏感的信息的文件如音乐文件更高。它还可以根据用户指令或者内容提供者或分发者设置的要求而变化。
在比较步骤63之后,客户端终端基于从散列值服务器接收的散列值列表计算元散列值64。在步骤65,将所计算的元散列值与所接收的元散列值之一相比较。
此外,在步骤66,为散列值列表覆盖的特定公钥PK计算散列值。优选的是,为要由客户端终端认证的至少期望公钥执行此步骤66和随后的步骤76。基于所计算的散列值H(PK),可以通过比较67验证存储在所接收的散列值列表中的对应散列值。如果可以验证这种匹配,则确定公钥和散列值列表的一致性。因而,通过使用元散列值验证散列值列表的完整性和真实性,可以如随后进一步描述的那样认证覆盖在其中的公钥的完整性。
以图7的步骤71至74继续图6所示的过程,包括认证过程的3个另外子过程。
对于不能自动处理的情况如用户通过电子邮件接收到的散列值,提供了接收用户输入以便验证散列值的可选步骤71。接收步骤71可包括请求用户输入、接收用户输入、并评估与所计算的公钥的散列值的对应。对于散列值列表的元散列值,可执行类似的过程。
此外,可以在可选步骤72中验证正被讨论的公钥的证书。最后,为了检查第三方或所声称的公钥所有者是否实际上保存了对应于该公钥的私钥,在另一可选步骤73中验证通常施加到由客户端终端提供的作为随机口令(challenge)的随机数据上的私钥的签名。通常,步骤73可实现任意可用的零知识-知识证明(Zero-Knowledge-Proof-of-Knowledge)方法,以验证对应于所声称的密钥对所有者的公钥的私钥的拥有。
根据当前优选的实施例,如下执行散列值列表及其各个元散列值的编制、计算和分发。
如前述过程所述的那样,为物理的或虚拟的数据列表中的每个条目计算散列值。例如,为每个公钥,或在可适用的情况下为每个公钥及其各自的证书计算散列值。每一个都与至少一个唯一标识符相关的这些散列值形成散列值列表。从这一完整的散列值列表计算元散列值。因而,每当新的合法元散列值对于随时间累积的连续的数据列表有效时,就还必须由用于上述认证过程的终端获得完整的散列值列表。例如,可以基于每天、每星期或每月需要它。
因为该散列值列表可能相当大,而客户端终端(或相关用户)可能只想认证此列表的单个或几个条目例如特定的公钥,所以理想的是每当必须认证特定数据条目时,不必分发完整的散列值列表。
因此,关于此问题的优选实施例提供辅助(auxiliary)散列值及其各自列表的使用,如同随后参考图8中的示例图而更详细地描述的那样。
参考图8,列表800包括要在客户端终端之间安全分发的数字数据801。该数字数据800可以例如对应于或代表如图4所示的公钥42或者公钥42及其各自的证书43。列表800中的每个数据条目具有唯一的标识符802、相似的图3和4中的列31和列41。该列表800还包括为每个数据条目803计算的散列值804,其对应于图3中的散列值32。
此外,第二标识符801与列表800中的每个条目相关,其优选地指定当列表延伸时以升序列出数据的时间。在下面,将列801称为相关数据的输入时间。应当注意,如果这一时间与数据本身的输入时间不同,那么它也可能对应于各个散列值804的计算时间。此外,对于每个数据条目,只有一个唯一的标识符可以代替列801中的相关时间和唯一数据标识符802。另一场景是使用图3和4所示的列表之一,并在另一列表中提供定时指定,其各个条目优选地通过指针彼此链接。然而,还有可能不使用这种标识符801,而是使用其它方法或装置来实现随后描述的概念,其中,该其它方法或装置提供将不同的辅助散列值812链接到它们在表800中的对应段的相同功能性。
列表800中的条目被划分为连续的段。优选的是,这些段是严格连续且不重叠的。然而,它们也可以被重叠或者甚至被交错。当前优选的实施例根据定时时间表(timed schedule)来划分这些段。自然,新数据条目,例如为参加该网络的可能的新客户端和/或用户或者新发布的软件产品签发的新公钥随着时间的过去而被添加到列表800中。这些条目被累积,并且随后在必要时计算散列值804。在一定时间段之后,在预定的时间,例如每小时、每天或每星期,尚未被另一段覆盖的所有最新条目形成下一段。如图8所示,在时间T150和T200,完成一段。因此,在时间T150之后直到预定时间T200列入的所有条目即所有数据条目D101至D150形成一段。另一场景是根据数据条目数目对列表800进行分段,从而形成条目数目相等而不是输入该列表的数据的时间间隔相等的段。另一场景是对不同种类的数据或诸如用户电子邮件地址的不同种类的数据标识符使用不同的段。后面的场景代表不仅仅通过输入该列表的时间排定的一个分段过程。
使用列表800的每个段来计算辅助散列值。当把每个段当作单独的列表时,这类似于图3和4中示出的列表的元散列值的生成。与元散列值相似,所确定的用于辅助散列值的散列算法可唯一地施加到所考虑的数据、或施加到该数据和每个列表行中的剩余列表条目。在辅助散列值的当前情况下,可以将散列算法施加到各个段中的所有散列值804、或优选地施加到段中的所有散列值804和各个数据803、数据ID 802以及时间801、或者它们的任何子集或预定组合。列表800的每个段的辅助散列值812是另一列表810中的条目,另一列表810还包括每个辅助散列值的散列标识符811。该列表810可作为单独的列表存储,或者如果例如与附加的指示符例如识别辅助散列值条目的标志一起被包括在列表800中则作为“虚拟列表”存储。
标识符811优选地代表时间,具体地说是列表800的每个相关段中的最后的时间。例如,图8示出的第3段包括在时间间隔T151至T200中的所有条目。由于这些段互不包含但是邻接,因此,在使用诸如每小时完成一次包括列表800中的最新条目的各个段的定期分段方法时,每个段中最后的时间无歧义地识别每个段。这样,当前优选的实施例使用该最后的时间作为散列ID 811。然而,在另一实施例中,从辅助散列值812到各个段的这一映射可通过任意其它可用的无歧义的链接方法、手段或概念来建立。注意,一旦已经计算并存储了辅助散列值,就不一定要求该映射在两个方向都无歧义,这是因为随后它将变得清楚。
现在,使用列表810中的条目来计算单独列表820中示出的元散列821。同样,该列表可包括在任意其它列表例如列表800或810中。人们甚至可以分发或公布最新的元散列值,并删除旧散列值,从而不存储如图8中的列表822所示的元散列值。如已经在上面参考图3至5描述的那样计算该元散列值。显然,可以将列表810作为图3示出的列表,其中,每个辅助散列值812对应于列32中的散列值,而散列ID 811对应于列31。与已经在上面描述的认证过程一样,根据需要分发元散列值,并将其与定时或合法性信息例如指定其计算时间的散列ID 822相关联,以便表示所接收的元散列值和对应的散列值列表是否仍然合法或者例如是否已经存在较新的版本。原则上,仅对于元散列值或对应的散列值列表HVL之一需要该信息,只要它们可识别为互相对应即可。
根据当前优选的实施例,与元散列值821所覆盖的最新辅助散列值812一起计算元散列值821。参考图8示出的示例,如其各自的散列ID 822所示,在时间T150计算元散列值mh1。该时间标识符与各自最新覆盖的辅助散列值ah2的散列ID 811相同。另一实施例可应用独立的时间表,其用于计算关于完全覆盖的段不匹配的散列值812和821。如图8所示,在时间T222计算元散列值mh2,而最后覆盖的辅助散列值ah3覆盖列表800中直到时间T200的数据条目。与当前优选的实施例相比,该场景说明这样的可能情况,其中,根据该情况,元散列值(即mh2)不覆盖在计算元散列值时(即T222)列入的所有数据803(即,D201至D222)。
根据该当前优选的实施例的认证过程与上述认证过程在以下方面不同。可以如参考图6所述的那样施加步骤61至65。这些步骤包括比较当前考虑的同一散列值列表的至少两个元散列值的步骤63,其中,在步骤61和62从不同的源获得每个元散列值。此外,在步骤65,将这些元散列值与在本实施例中为列表810的由客户端终端从相应散列值列表计算的本地元散列值相比较。通过验证此散列值列表的所有考虑的元散列值相同,可以基于所获得的元散列值的不同且相当独立的源的差异来确定此散列值列表的真实性和完整性。然后,从辅助散列值812计算元散列值821。这样,要由客户端终端认证的数据803例如公钥PK不会直接对应于在步骤61接收的辅助散列值列表810中的任何散列值。因此,在继续执行步骤66和后续步骤之前,必须执行以下步骤。
只是为了提供最大的可理解性,下文仅仅引用公钥。作为一种特定使用情况,这些公钥代表数字数据803。此外,示出此过程的更一般的实施例的图6和7也引用该特定使用情况,其中公钥代表要认证的数字数据。
根据关于认证过程的第一实施例,客户端终端确定哪个辅助散列值812对应于当前考虑的必须被认证的公钥803、以及列表800的哪个段对应于该辅助散列值812。这样,客户端终端确定哪个段包括所述公钥。然后,客户端终端向至少一个预定服务器、优选地向还提供散列值列表的同一散列值服务器请求所识别的列表800的段。为了完成这些确定和请求步骤,可以为本发明应用和考虑不同的方法。一种可能的方法是将每个公钥与诸如客户端终端的验证者可确定的时间信息相关联。这一时间信息无歧义地指定当前优选的实施例所采用的列表800中的对应段。然而,不同的方法可以不(仅仅)使用时间排定的段,或者可以不使用时间标识符800、811和/或822。另一方法可以例如是提供与直接指定或指向相应段的每个密钥相关联的标识符。在另一方法中,散列ID 811可包括提供所有覆盖的公钥803的识别的信息。因而,客户端可识别所述公钥的各自辅助散列值812,该各自辅助散列值812又指定了所期望的列表800的段。
关于获得对应于当前考虑的公钥的列表800的段这一问题的第二实施例如下。客户端终端通过发送、指向或指定优选地位于所述第一散列值服务器处的公钥来请求所需要的位于服务器处的段。然后,该服务器创建对应的段,并随后可将此段直接提供给进行请求的客户端终端,或者至少提供使该客户端终端能够获得所请求的段的信息。与第一实施例的组合,例如确定公钥803的各自辅助散列值812的客户端和确定该辅助散列值812的各自段的服务器,是有可能的。
根据关于对所需要的段的这一请求的第三实施例,根据先前描述的两个实施例的任一个获得的段还可被例如散列值服务器加密和/或证明。这意味着客户端终端在接收到该段之后执行的解密和/或验证过程。
根据关于对所需要的段的这一请求的第四实施例,所有段均可公开获得,并且可被每个客户端终端访问,并且例如在可通过因特网访问的服务器上公布。每个终端例如如上所示确定需要哪个段,并从该服务器获得这个段,而不与专门的散列值服务器或证明服务器交互。
在获得了对应于所考虑的公钥803的列表800的段之后,客户端终端可以继续执行如图6所示的认证过程的步骤66以及后续步骤。
使用辅助散列值的这一当前优选实施例的优点是减少了要分发的散列值。当计算了新的元散列值并将其提供给客户端终端时,同样出于两个明显的原因而必须分发从其计算元散列值的扩充后的新散列值列表。第一,出于最大安全性的原因,散列值列表必须覆盖要安全分发或提供的数据803的完整列表。第二,根据所述认证过程的步骤64和65,元散列值也由客户端终端计算,其需要完整的散列值列表。根据其计算元散列值821的辅助散列值列表810仍然覆盖所有数据803,但是具有比原始列表800少的条目。因而,必须首先将具有较少条目的列表提供给客户端终端。从原始列表800到辅助散列值列表810的大小减小直接取决于段的大小。然而,增大段的大小意味着对每个段具有例如更大的时间范围(time frame),这可能是不理想的。它还意味着在认证过程中必须将更大的段以及因此导致的更多数据传输给客户端终端,这看起来也是不理想的。对此,另一实施例根据以元散列值为根的树结构提供分级的段,该段依次将辅助散列值列表的概念再次应用到辅助散列值列表810。具体地说,根据上述实施例的任一个而将所获得的散列值列表810分段。使用这些段来计算类似于列表810的第二组辅助散列值而不是最终期望的元散列值822。可以针对任意数目的级(stage)重复该过程,其中,级深度可以是预定的或变化的。具体地说,当使用上述第二实施例时,辅助散列值的连续分级和生成将完全在需要不影响客户端终端的列表管理和链接功能性的服务器的内部,其中,根据第二实施例,专用服务器在认证过程中确定所请求的段,并将其提供给客户端终端。这样,服务器或若干服务器可创建适于其内部功能性的分级的段。此外,不同级上以及一级内的段的大小可以变化。甚至可以在新段中合并不同段和级的不同辅助散列值。具体地说,只有一级的辅助散列值列表中的散列值的子集才能被进一步分段,并被下一级的辅助散列值“替换”。
关于提供计算元散列值所需的散列值列表的另一实施例示例性地概述如下。需要该完整的散列值列表,即列表800、32或者如果可适用的话则列表810来计算元散列值。同样应当注意,此意义上的完整列表是指至少所述列表的所有散列值804、812或32,但是可包含相应列表的任意但预定数目的其它条目。然而,可以利用这样的事实,即通过将新条目添加到此连续列表中而随时间累积该列表。一旦被列入在列表中,条目就保持不变。这样,对应于新的元散列值的新散列值列表包括先前有效的散列值列表的所有条目。这允许在接收到新的元散列值时更新散列值列表,而不是替换客户端终端中的整个列表。假设客户端终端在接收到散列值列表的新元散列值时已经拥有该列表。代替获得相应的新散列值列表,客户端终端可以仅获得该散列值列表的新条目,然后适当地修改已经本地存储的列表。可以将此实施例与具有可能进一步分级的段的分段列表方法相结合。
在结合散列值列表和元散列值描述的所有实施例中,可以将不同的散列值交叉布置(post)在不同列表和/或段之间。可以将一个原始列表800的当前有效的或旧的过时的元散列值添加到同一列表800、任意相关的辅助列表810、或不与所述原始列表800相关的任意其它列表800或810。散列值,优选地为元散列值的这一交叉布置提高了当认证元散列值及其相关列表的完整性时元散列值的分布多样性以及因此导致的可信度和安全等级。通常为一个或几个散列值的这一交叉布置不会显著增大系统要处理的数据量,从而有效地提高了系统的安全等级而不影响其性能。这一方法对少量的不同可用源尤其有利,其中,客户端终端可以从该源获得在认证过程中使用的元散列值。
除了在不同列表之间交叉布置单个散列值以外,例如源自不同散列值服务器12或证书管理机构11、13的散列值列表也可以被合并在单个列表中。此外,第三方可提供这种合并后的列表。
本发明的另一方面涉及分发和提供认证过程所需的元散列值。用于元散列值的这一分发的当前优选实施例如下。
可能多次并且不仅仅结合实际认证过程而将元散列值发送到每个客户端终端,而不是如上所示地一经请求就例如与其各自的散列值列表一起接收元散列值。当前优选的实施例将当前使用的有效元散列值附加到发送到客户端终端和/或在客户端终端之间发送的消息。因为这是单个散列值,所以通过将其附加到发送给终端的消息而不会过度影响终端之间的通信。对于每个新的元散列值,这都可以进行一次,从而遵循用于生成新的元散列值的例如每天或每星期的时间表。然而,优选的替换方案是例如定期和/或强制性地作为底层通信协议的一部分将元散列值附加到若干消息上。到客户端终端接收的定期消息的这一附加可由至少一个服务器如散列值服务器安排或引起。此外,客户端终端自己可以将先前接收的元散列值附加到该终端发送的消息上。对于后面的情况,可能要求根据某些给定的安全规范,只有元散列值已经被终端认证,例如具有在成功地比较最小数目的先前从不同源接收的各个元散列值之后实现的一定可信度,才附加该元散列值。
此外,所附加的这一元散列值可由将其附加到消息上的实体即服务器或终端签名。这保证了——在底层数字签名方案的安全限制内——确实是该消息的发送者而不是已经拦截了该消息的对手附加了该元散列值。因此,在接收到消息并分离了元散列值之后,终端在进一步继续之前必须验证相关签名。
不具有在使用元散列值时接收终端对其的显式请求的分发场景要求该终端可以确定元散列值的合法性。换句话说,客户端终端必须能够确定所接收的元散列值是否确实是认证过程中所需的最近公布的元散列值。一种可能方式是将时间信息关联到所分发的元散列值。这允许终端确定例如元散列值是否意欲对应于最近接收的散列值列表。优选的是,该信息包括元散列值和/或对应的散列值列表的过期和/或创建时间。因而,有可能通过进一步考虑用于产生元值的已知时间表来确定其合法性。用于确定元散列值合法性的另一场景是将唯一的标识符分配给必须对应于在请求时接收从而知道其为最新的散列值列表的每个值,由此所述散列值列表也优选地具有标识符。
此实施例允许客户端终端比较从不同的源例如终端接收的多个元散列值。因而,通过比较步骤63以及在步骤65将它们与本地计算的值相比较而确定的真实性的可信度增大。具体地说,只要先前认证的元散列值被进一步分发给其它终端,这就成立。元散列值的这一分发多样性有效地进一步减小了系统中例如由怀有敌意的对手引起的未被发现的单一失效点的可能性。
本发明的另一方面致力于在将数字编码数据实际提供给指定接收者之前或之后存储和/或可访问该数据时该数据的安全分发。
为了在由根据本发明的分发模型支持的使用模型方面提供最大的灵活性,数字数据的安全分发还提供简单的解决方案,用来当该数字数据在实际数据提供和传送过程之后或期间被存储以及——可能公开地——可访问时保证数据安全。此外,在常见的数据分发场景中,常常通过公共网络传输数字数据,并且很多第三方和客户端可具有对所分发的数据的访问权。因此,安全分发不仅必须考虑实际的数据传送事务,还必须考虑对所分发的数据的在先和/或在后访问。因而,理想的是提供一种简单的方法,用于结合分发过程控制对所分发的数据的访问。一种明显的解决方案是例如一种受控的数据访问机制,其基于定时时间表,例如由实际数据传送事务定义的、可在其中访问数据的给定时间间隔,这确保在该时间间隔终止并且数据访问能力消逝之后,可以保证该数据的安全性和保密性。当然,如果必须在给定时间或在预定时间段之后删除某个数据,则该场景也会出现,并可应用。应用此分发模型,可以确保删除,而不必控制该数据的物理删除。此外,可以通过以下的本发明这一方面的当前优选实施例来最小化例如存储在服务器上的所存储的数据或自动生成的日志信息以及所分发的数据的备份被暴露给公众的潜在风险。
根据本发明的这一方面,在适当的公钥加密方案中施加公开/私有密钥对将通过此分发系统分发的所有数字数据不对称加密。为此,利用公钥将所有数据——完全或部分——加密。所有预期的接收者和被授权访问明文数据的参与方都拥有相应的解密过程所需的对应私钥。因此,只有那些参与方能够将加密数据解密,并获得对所分发的数据的访问。现在,系统根据预定方案控制不同密钥对的使用。废除和/或删除单独的密钥建立了如通过关于此问题的以下实施例所述的安全分发系统的不同功能性和特征。
根据一个实施例,分发模型向所有接收者和被授权访问数据的客户端提供将所分发且被加密的数据解密所需的相应私钥。在这个和随后描述的所有实施例中,通过安全密钥分发事务来实现私钥的提供。因为很多密钥分发和密钥管理系统被广泛使用和广为人知,其中一些涉及安全的和可信任的通信介质,以及因为在此特定情况下这一密钥分发可被视为一般性的且独立的预备(preliminary)事务,所以此时将不会更详细地考虑这一密钥分发。假设可获得用来分发所述私钥的适当装置。优选的是,使用所述散列值列表和元散列值来安全地分发这些密钥。
该系统还使得根据本发明的这一实施例删除或废除该私钥。这意味着在有效私钥的这一受控废除或删除之后,先前拥有该私钥的所有被授权的客户端不再能够获得对作为明文的加密数据的访问权。因此,有效地防止了先前通过使用此密钥对而加密的所有数据被访问,而不必删除实际的数据。由于只须删除或废除相当少的密钥信息,因此这对已经使用一个特定密钥对分发和加密的大量数据特别有利。此外,通常,与删除先前分发给客户端或客户端终端的所有数据,包括其可能的备份和副本相比,可以更容易和更有效地控制或完成在该客户端处的一个或几个私钥的废除或删除。
一旦私钥已被系统删除或废除,就按照与先前所述相同的方式采用新密钥对。这一基本概念可被容易地应用于如下所述的不同使用模型,其中提供了本发明的不同示例实施例。这些实施例不旨在是毫无遗漏的,并且本发明不限于那些情况,具体地说,这些实施例及其技术教导的任意组合也描述本发明。
可以同时或在重叠的时间段内采用若干密钥对,而不是一次只使用一个密钥对。此外,可以使用用于不同种类的数据、不同组的接收者或不同的数字数据提供者的不同密钥对来有区别地控制数字数据的分发。密钥的生成和/或废除可遵循定时时间表。系统可生成新的密钥对,并要求发送者或分发者在第一时间间隔内,例如在每月或每星期的基础上使用相应的私钥以进行加密,但在加密发生之后,或者加密数据已被传送给接收者之后,直到第二时间段例如生成其之后的6个月终止时才废除或删除客户端或接收者处的私钥。这意味着所有被授权的客户端具有6个月的时间来访问在使用了相应公钥的第一时间段例如一个月期间加密的数据。特别地,该基于时间的访问控制可与使用用于不同种类的数据或用户的不同密钥的方案进行组合。
根据另一实施例,生成并施加密钥对,以便按照与对先前实施例所讨论的相同的方式来在数据分发之前将该数据加密。然而,与先前的实施例相反,使公钥而不是私钥受到系统的废除或删除。因此,加密从而分发数字数据的能力由系统控制。这意味着在删除或废除公钥之后,拥有对应私钥的所有客户端仍然能够访问所有先前加密的数据。但是确保了对于该私钥,不能加密和分发另外的数据。与先前描述的实施例相似,可以将多个密钥对用于不同种类的数据、指定的接收者和提供者,并且根据一个或多个定时时间表来生成和废除公钥。然而,此外,该实施例也可以废除或删除私钥,从而获得与对先前实施例概述的相同的益处。
根据本发明的另一实施例,对于生成所分发的数据上的数字签名,可以采用相同的概念。对此,数据提供者采用私钥,而接收者采用根据底层公钥签名方案的密钥对的对应公钥。废除或删除私钥具有这样的影响不能使用该密钥对给另外的数据签名。如果数字数据的接收者必须验证该数据上的签名以便证实其真实性或完整性,则可以通过删除或废除网络的分发者或提供者一侧的私钥来有效防止另外数据的合法分发。
根据本发明,关于删除和/或废除密钥的前述实施例的任意组合被认为是本发明的另一实施例,此外,在所有这些实施例中,假设可以以适当方式控制、施行或确保密钥的这一删除和/或废除,其中,该方式对于所需的系统安全性是足够的,并可取决于所需的系统安全性。这可包括可信任的设备和/或该系统的部件的物理安全性。此外,可以只对系统的一方执行关于删除和/或废除密钥的所有实施例。具体地说,这是指在相应的加密或签名方案中使用的公钥对。该单个参与方或客户端可在存储数字数据之前使用其自己的公钥来加密所述数据。由于只有该客户端可以将数据解密,因此这一概念提供了安全存储功能性。
本发明的另一方面涉及当使用若干加密方案和/或若干加密步骤时数字数据的安全分发。通常,在用于分发和传送数字数据的网络中,采用特定公钥加密系统中的不对称加密方案。通常,为了将数据加密,使用对称密钥将对称加密方案施加到数据上,在本描述的剩余部分中,该对称密钥被表示为S。该对称密钥S或其生成常常包括一定的随机性,以提高加密方案的加密安全性。在此情况下,通过在对称密钥分发之前将其不对称加密来实现不对称加密。
在下面,参考本身形成本描述一部分的附图来更详细地描述根据本发明的分层加密方案,其基于使用对称密钥将实际数据加密的这一不对称加密概念。在分层加密中,使用优选地与网络的不同参与方或实体相关的若干密钥来连续加密数字数据,其中每个加密过程以及由此的每个所采用的密钥实现所述加密层之一。换句话说,首先根据第一加密方案使用第一加密密钥将明文数据加密。然后,在每一级根据各自的加密方案分别施加另一密钥的若干级中将该加密结果进一步加密。
这一连续或分层加密通常必须在每个加密层将可能包括了前一层的加密开销的全部数据量再次加密。然而,根据本发明,在该分层加密过程期间必须加密的这一数据量可以如下被显著减少。在每一层,仅将密钥信息加密,而不是将全部(在已经加密的初始加密层之后)数据再次加密。
当应用使用对称密钥将数据加密这一概念,其中该对称密钥可能是专门为此安全数据传送生成的一次性密钥时,加密的数据和对称密钥均被传送或者至少提供给指定的接收者。如前所述,通过使用公钥加密方案将此对称密钥S不对称加密。为此,执行或发起数据加密的发送者或分发者首先施加对称密钥S,以便分别将数据加密。然后,发送者或分发者使用该数据的指定接收者的公钥,以便将所采用的对称密钥S加密。为了将所接收、被加密的数据解密,接收者必须可访问该对称密钥S。因此,接收者在能够获得对加密数据的访问之前必须首先能够将此对称密钥解密。在能够将实际的加密数据解密之前能够将对称密钥解密的这一先决条件提供了根据本发明这一方面的高效分层加密过程。
在每个加密层,只将已被加密的对称密钥加密,而不是将全部数据加密。性能提高主要起因于这样的事实对于除第一加密层以外的所有加密层,只有少量密钥信息必须被加密和相应地被解密。根据本发明当前优选的实施例,为了在每一加密层将对称密钥加密,采用公钥加密方案。因此,旨在能够将加密的数据解密并且因此还旨在解密用于将数据加密的对称密钥的指定接收者必须拥有与用于每个加密层的每次对称密钥加密的公钥对应的所有私钥。
还应当注意,将包括加密的密钥信息的加密数据加密然后将其发送给接收者的发送者可代表网络中的多个不同参与方或实体,每个参与方或实体各自考虑至少一个加密层。这意味着网络的一个实体或参与方将数据和/或对称密钥信息加密,并将其发送给另一个,以便执行与下一加密层相关的所有操作。同样,上面提到的接收者可代表多个接收者,每个接收者通过执行相应的解密步骤而对应于一个或多个加密层。由于只有在关于加密的对称密钥的最后的解密步骤之后才能将实际的加密数据解密,因此这一场景将提供该多个接收者之间的特定依赖性。因此,根据一个或多个加密层将对称密钥信息解密的接收者可以控制对用于预期的最后接收者的加密数据的访问。在必须准确地按照对应加密过程的相反顺序将对应每个加密层的单独解密过程施加到所传送的加密的对称密钥信息的情况下,可以建立参与方或实体的分级结构,以便控制将所传送的加密数据解密并获得对其的访问的能力。
根据本发明的关于此问题的另一实施例,可以在不同加密的层施加不同的加密方案。这意味着可以在不同的加密层施加不同的不对称加密方案,例如RSA和基于Diffie-Hellman的方案。然而,它也被认为是支持与所描述的将对称密钥不对称加密的概念的背离。具体地说,在某些加密层,已被对称加密的数据也可被发送者再次部分或完全加密,并在接收者一侧被对应地解密。为此,考虑了不同的方法。除了将对称密钥信息不对称加密以外,还可以使用相同的公钥来将对称加密的数据重新不对称加密。此外,可以仅将加密的数据而不是对称密钥信息加密。后面的情况意味着该特定加密层对接收者是否能够将对称密钥解密没有影响。因此,更确切地说,它引入了独立于剩余加密层的加密层。此外,一个或多个加密层可以不应用不对称公钥加密方案,而是应用使用对称密钥并类似于所描述的在原始明文数据上执行的初始对称加密层而将此密钥加密的对称加密方案。
根据关于此问题的本发明的当前优选实施例,将上述分层加密方法应用于通过具有若干网络节点的网络对数字数据的分发。到目前为止,已经在数字数据的分发者或发送者和接收者方面描述了根据本发明的通过网络对数字数据的安全分发。然而,可以将相同的概念应用于用作分发数字数据的底层通信介质的网络。因此,图9示出了具有若干网络节点906-909的网络900的示例图。这些网络节点典型地互相连接,并能够在彼此之间交换数据。不同的终端和服务器901-905通过所述网络900互相通信,并且自身可被视作网络节点。根据当前优选实施例,网络900是因特网。该多个网络节点之间的连接典型地通过这些节点之间的各种链接来建立,其中,一个或多个直接链接或通过其它节点的链接是有可能的。参考图9,发送者901旨在通过网络900将数字数据发送给接收者902。通过在传送此情况下的加密数据之前至少施加使用接收者的公钥的公钥加密,把要传送给用户终端902的数字数据加密。为此,想要将数据加密的发送者901首先获得接收者902的公钥。根据本发明的优选实施例,使用如对于此公钥系统所描述的散列值列表来安全地向发送者901提供接收者902的公钥。关于散列值列表的所有考虑都适用,因此此时不作进一步讨论。
在获得接收者902的公钥之后,发送者901根据上面讨论的分层加密概念将数字数据加密,其中,该分层加密概念不仅对于发送者和接收者而且对于网络节点都适用。根据一个实施例,一个或多个网络节点相应地执行对应于如先前指定的不同加密层的一个或多个加密和解密过程。例如,网络节点906可将发送者901发送的消息(加密的数据和对称密钥)进一步加密,而在另一侧,网络节点909可根据一个或多个加密层将加密的数据和/或加密的密钥解密,然后将其传递给接收者902。
根据本发明的另一实施例,使用这一分层加密概念来由例如发送者901或网络900的其它节点控制通过网络的数据流。参考图10至12,示出了高级流程图,其展示了该过程的基本功能性。参考图10,其图示了发送者901执行的示例动作,其中,假设发送者已经拥有了与预期接收者902相关的公钥。按照分层加密的概念,发送者通过使用对称密钥S将数字数据加密。因为该对称密钥S和相应的加密方案可被视作与本发明的概念无关的一般性加密方案,所以用于获得对称密钥的方法或系统不作更详细的讨论。一般而言,任意加密方案可用于此目的。
对于所示的示例,假设想要通过节点A(906)和节点D(909)将加密的数据发送给接收者902。为了由所指定的那些网络节点完成的与数据分发有关的会话跟踪和信息记录,例如可以出于安全的目的而需要这种通过已知和预定网络节点的路径规定。再次注意,一般而言,连接到网络900的任意终端或服务器本身可被视作网络节点,从而可能需要在将所传送的数据发送到最终的接收者902之前将其发送到特定的授权或确认服务器。如图10中的步骤111所示,发送者首先通过加密密钥S将数字数据加密。然后,如步骤112所示,使用对应于接收者902的公钥将该对称密钥S自身加密。然后,作为连续的加密步骤113和114,首先在相应的加密过程中应用网络节点D的公钥PKd和网络节点A的公钥PKa,将所得到的加密的对称密钥S再次加密。然后,将该加密的加密密钥S和加密的数据一起发送到网络,具体地说,发送到网络节点A(步骤115)。
发送者首先使用网络节点D的公钥然后使用网络节点A的公钥的这一分层加密确保了将加密的消息通过节点A和节点D发送给接收者902,这一点通过随后对图11和12的描述将会变得清楚。
参考图10和11,如图10所示的所示流程图相应地如图11所示继续。
网络节点A接收由发送者901发送的消息,其中该消息包括加密的数据数据和不对称加密的密钥S。现在,如步骤121所示,网络节点A使用其私钥SKa将加密的密钥S解密。因为只有网络节点A拥有对应于发送者在步骤114使用的公钥的私钥,因此只有节点A可以执行此解密步骤121。显然,该解密步骤121与由发送者901执行的加密步骤113相反。为了最终获得将加密的数据解密所需的加密密钥S,必须通过对应的解密步骤将所有加密步骤反转。因此,当接收到由发送者901发送的消息时,如果节点A确实已经相应地将加密的密钥S解密,则接收者902可以仅将加密密钥S解密。这确保了只有数据经过了网络节点A才能将该数据解密。还应当注意,当执行加密步骤114时,发送者901一定已经应用了与网络节点A相关的真实公钥PKa对于系统安全来说是必需的。公钥Pka和网络节点A的这一需要认证的对应性优选地通过利用所述散列值列表来分发公钥以及有可能通过数字证书来实现。相同的过程适用于在此分发过程期间采用的所有公钥。
参考图9和11,假设节点A根据发送者901的指定将消息传送到节点D。这一路径指定可包括在消息中,并被每个网络节点分析。然而,根据此示例图通过网络节点B将消息发送给节点D。如图11的流程图所示,网络节点A因此指定并确保通过节点B发送该消息。因此,应用网络节点B的公钥将解密步骤121的结果,即关于公钥PKd被加密的密钥S加密。如对于网络节点A所讨论的那样,这确保了必须通过节点B发送该消息,以便能够最终获得加密密钥S的明文。然后,网络节点A将加密的数据与加密的密钥S一起发送到网络节点B。
现在,网络节点B可以将接收到的消息发送给除了预期节点D之外的其它网络节点(未示出)。所需步骤将与图11的步骤120至123类似。然而,应当提到的是,步骤122是可选步骤,并且节点A可以在不专门针对网络节点B将密钥S加密的情况下将消息发送给节点B。
如图11所示的示例流程图如图12所示继续,其中网络节点B在步骤130接收该消息。下面的步骤131对应于步骤121,但是其关于节点B及其私钥。网络节点B最终将所得到的消息发送给执行关于加密的密钥S及其私钥的解密过程(步骤134)的节点D。最后,如步骤135所示,该消息被发送给接收者902。在接收到两个消息部分之后(步骤136),在步骤137,接收者现在能够应用其私钥PKR将密钥S解密。通过对作为明文的密钥S的这一访问,接收者然后可以将所接收的数据解密,如步骤138所示。
所述分发过程仅考虑了向本领域技术人员提供对本发明的理解所需的必要步骤。一般而言,所述过程可包括更多步骤,其考虑在本技术领域内公知的与通过这种网络的数据分发有关、以及在应用公钥加密方案时的其它常见操作。在这个意义上,显式提到的是可选的确定步骤,网络节点在该步骤中确定它是否必须将所接收的消息的密钥信息部分和/或数据信息部分解密。另外的步骤可确定为该消息指定要发送到哪些另外的节点(包括接收者)、以及对于该消息要经过的任意另外的节点,是否必须将密钥信息或消息进一步加密。可能的另外步骤包括将信息添加或关联到该消息或指定上述路由选择和加密指定的其部分。
根据本发明的另一实施例,先前描述的关于分层加密方面的考虑也应用公钥签名方案。与所述加密方案相比,基于公钥的数字签名方案仅将所有对应加密和解密过程的角色进行交换。由此,先前的加密过程对应于由接收者执行的验证步骤,而由数字数据的签名者或发送者执行的相应解密步骤包括解密步骤的操作。对应地,数据的发送者或签名者使用其自己的私钥,并且,接收者或签名验证者必须获得签名者的公钥。此外,所使用的大多数签名方案需要所计算和所预期的结果的比较步骤,作为签名验证过程的一部分。由于相同的底层公钥系统,可以将分层加密和所指定和控制的通过预定网络节点的分发应用于数字签名。通常,当给数字数据签名时,在该数据上施加散列函数,并在所计算的散列值上执行涉及签名者的私钥的签名操作。根据分层签名方案,这将转换为利用不同的私钥在不同的签名层上连续地给数字数据签名,从而由接收者在对应的验证过程中验证它。
通常,由于数据和前一层产生的签名一起形成要签名的消息,因此将通过对二者执行散列操作(hash)来生成一个特定层的签名。与分层加密类似,没有必要在每一层对此完整消息执行散列操作。只有先前计算的散列值必须相应地利用这一层的相关私钥来重新签名,根据所采用的数字签名方案,这可能进一步涉及一些常见的数据格式化或散列化。这将形成每一层的数字签名,其中,除了它们是在(正在讨论的同一数字数据的)同一散列值上执行的以外,它们互相独立。因此,可替换地,可以在每一层给相应前一层的实际签名(签名的散列值)而不是散列值签名。因为所有层(除了第一层之外)的签名都是在散列数据和前一层的签名上签发的,所以这一替换方案具有这样的优点可以更容易地确定和控制哪个签名被首先签发从而必须被最后验证,即,哪个签名对应于哪个签名层。这样,尽管不是在所有情况下都需要,但它也是有可能的,而不是对前一层的签名进行签名,以便对先前的签名执行散列操作并对该新散列值进行签名,现在其不仅考虑了数字数据,而且考虑了先前的签名,从而导致与上面相同的结论。可以将这些分层签名与关于所分发的数字数据的分层加密过程的那些实施例组合。
可以将此分层签名方法按照与对分层加密过程所描述的相同的方式应用于不同的网络节点。同样可以是如图9所示的发送者和/或接收者的每个节点签发签名并且/或者必须验证签名,其中,该每个节点传送或接收包括(可能加密的)数据以及其上的一个或多个签名的消息。可以指定用于通过网络的预定路径的类似方案。接收者可以通过确定所指定的所有节点是否相应地利用合法的签名而给所接收的消息签了名,确定该消息是否确实经过了那些节点。此外,与所传送的数据的预期接收者不同的网络节点也可能必须在将消息传送到另一节点或接收者之前验证先前由该消息经过或发源的其它节点所签发的一个或多个签名的合法性。
本发明的另一方面涉及服务器客户端环境中的安全数据分发,其中,服务器必须处理大量客户端或用户。用于通过数据加密建立的到大量客户端的安全数据分发的当前方法和系统在计算上较为庞大,并且在服务器一侧需要大存储能力。此外,客户端必须在加密数据传送之前在系统或服务器处注册,这通常涉及公开关于客户端的私人信息,从而在服务器一侧记录它,以便将来识别和授权该客户端。暴露其身份的这一必然性导致了通常对于对称和不对称加密方案发生的那些加密分发系统的缺点。即使在不对称加密方法中客户端可以保持匿名,即利用相应获得的公钥将每个数据消息不对称地加密,对服务器的存储和处理要求也可能相当高。当使用对称加密方案时,服务器必须存储和保持至少用于所有参与客户端的所有对称密钥的列表。此外,双方都必须同意或确定以及/或者交换这些密钥,其需要安全且保密地公开的数据交换以及由此的不对称或对称加密。该匿名性和效率问题不仅仅是性能和用户方便性的事情,而且由于必须将预期的安全数据分发过程所需的和在该过程期间的私人的保密客户端信息传送到服务器一侧并存储在其中,因此直接影响系统的安全性。因此,根据本发明一个实施例的安全数据分发还考虑了建立和处理所需的加密相关信息、具体地说是作为在作为所分发数据的发送者的服务器和作为其接收者的客户端之间的共享秘密的对称密钥。
因此,优选实施例包括用来建立服务器和客户端终端之间的安全且高效的通信的方法。图13a和13b示例性地图示了这样的高级流程图,其包含被认为是适于描述本发明的这一方面以及向本领域技术人员披露基本功能性的步骤。该流程分别按照所示在图13a中开始,并在图13b中继续。客户端首先通过将随机生成的令牌T发送给网络的服务器而在服务器一侧注册。可以使用服务器公钥将该令牌不对称加密,其中服务器公钥应用前述安全分发方法以及散列值列表以便分发各个公钥。这些步骤作为图13a中的步骤140和141示出。
服务器生成或者获得安全且保密的随机值R。图13a的这一步骤142可以执行一次,并随后对此服务器固定,或者可随着时间的过去而重新生成或更新。在接收到令牌T并在需要时将其解密之后,如步骤144所示,服务器对至少包括令牌T及其随机选择但固定的值R的消息计算散列值。所计算的散列值将被表示为S,并且充当用于服务器和客户端之间的安全通信的对称密钥信息,并实现二者之间的共享秘密。服务器将此共享秘密S提供给客户端,其中,可能使用先前获得的客户端的公钥而将该共享秘密S不对称加密,如步骤145所示。服务器不必存储这个值S或令牌S以及对应客户端的身份。
作为返回,如步骤146和147所示,客户端可以把要安全且保密地发送给服务器的消息即数字数据对称加密。与正被讨论的该消息一起,令牌T也被传送给服务器。对于这一以及随后的消息和数据传送,可以应用关于上述分发方法的全部若干可替换实施例。如果例如使用服务器的公钥将令牌加密,则服务器相应地将令牌T解密,如可选步骤148所示。然后,服务器能够容易地重新计算用来将正被讨论的消息对称加密的共享秘密S。与步骤144相同,在步骤149,服务器对令牌T及其私有随机值R执行散列操作。在步骤150,使用所计算的这一值S,服务器将所接收的消息解密。可以使用相同的值S和对应的对称加密方案来将可能期望的对客户端的答复消息加密,如步骤151和152所示,这是因为双方都拥有在它们之间秘密地共享的值S。可替换地,可以使用新的共享秘密S来执行类似的过程。
因此,所概述的这一方法提供了对称加密功能性,而不必存储密钥列表,并独立于与服务器通信的所有客户端,并且,该方法还提供了客户端能够匿名参与该系统的可能性。由于私有的随机服务器值R唯一地提供共享秘密S的计算,因此该系统的安全性依赖于这个值的保密性和秘密性。在服务器可能根据该系统的安全规范、按照定时或使用时间表而使用新随机值R的情况下,每个客户端都必须在服务器一侧再次注册,即在执行步骤140或142至145时获得共享秘密和密钥信息S。
根据另一实施例,服务器生成和/或提供令牌T,并将其与值S一起分发给客户端。根据另一实施例,服务器生成令牌T的预定部分。这样,服务器可计算并区分若干随机R值,由此,服务器通过所生成的令牌T的这一部分确定哪个值R应用于共享秘密S的计算。服务器可以将客户端划分在不同的组中,并且/或者可以根据客户端在服务器处的注册时间来进行区分。按照后面的概念,服务器可以通过有选择地替换或更新令牌T的相应已知部分来控制哪组用户必须向系统重新注册。
根据另一实施例,随着服务器和客户端之间的每次通信、或者在服务器和客户端之间的指定数目的通信之后,用新令牌T替换令牌T。为此,由客户端发送给服务器的消息的一部分可充当新令牌T。可替换地,可以使用它来产生新令牌,例如应用可能涉及对该消息的这一部分执行散列操作的指定函数。这意味着服务器例如通过将新值S和答复消息一起发送给客户端来将新值S提供给客户端。具体地说,在此通信期间,服务器从客户端接收消息。这些消息的一部分是新令牌的基础,根据所考虑的本实施例的若干过程,这一部分可以是加密消息的一部分、该消息的解密数据的一部分、前述部分之一或两者的散列值或者仅其一部分、或者这些数据部分的任意组合。然后,如步骤144和149所述和所示的那样,服务器从新令牌和随机值R计算新密钥信息S。然而,如对图13a和13b所描述的那样,使用先前的旧密钥值S将对客户端的答复消息或其数据加密。该加密的答复消息还包括新密钥值S,其也被使用旧S值加密,并与答复消息一起被发送给客户端。答复消息也有可能只包括该新密钥S。
然后,客户端能够根据相应的底层加密方案,使用旧的秘密共享值S来将答复消息解密。客户端也知道服务器在计算新值S之前施加的用于获得新令牌T的方案或算法。这可以是相互协定的数据传送协议的一部分。因此并且因为新令牌基于由该客户端发送的先前的消息,所以客户端可以按照与服务器相同的方式计算新令牌T。
利用这一方法,可以将新令牌用于服务器和客户端之间的每个通信,而无需相应或全部客户端的重新注册步骤,并且不会显著增加计算成本。此外,如果新令牌T和由此的新密钥信息S基于从客户端接收的消息的解密数据的至少一部分,则可确保除了客户端和服务器以外没有任何参与方能够确定或追踪哪个客户端过去与旧令牌T相关而现在与新令牌T相关。
因此,对于这一实施例,由于从新令牌T和新随机值R获得新S值,因此可以在没有客户端在服务器一侧重新注册的显式需要的情况下废除或替换服务器一侧的随机值R。因此,正如所述,服务器不是从所接收的消息获得新令牌的一部分,而是与其无关地生成这一部分,并将这一部分和新值S一起且同样地发送给客户端。因为服务器识别旧的或新的随机值R是否已被使用从而必须在执行步骤149时被再次应用,所以这是重要的。然而,可替换的是,还有可能将一些其它合适的标识符例如时间指定附加到该消息,以便确定对应的合法值R。另一替换方案是使用服务器一侧的所有可能值R的反复试验方法,这是因为这意味着必须进行低复杂性操作。可替换地,完整的令牌T可由服务器生成,然后如上所述被提供给客户端。
权利要求
1.一种由公钥系统的服务器执行的方法,所述公钥系统还包括多个客户端终端,所述方法包括以下步骤存储数字编码数据的第一指纹列表;计算所述指纹列表的至少一部分的第一指纹;以及提供所述计算的第一指纹。
2.根据权利要求1所述的方法,其中,计算所述第一指纹的所述步骤包括以下步骤获得所述第一指纹列表的一个或多个条目,其中所述一个或多个条目将被所述第一指纹覆盖;以及对至少所述获得的一个或多个条目计算散列值。
3.根据权利要求1或2所述的方法,其中,所述第一指纹列表还包括以下的至少一项与每个指纹相关的唯一标识符;与每个指纹相关的时间指定信息,其中所述时间指定信息指定与所述指纹或所述数字数据相关的输入所述第一列表的时间、生成所述指纹或所述数字数据的时间、或者将所述指纹或所述数字数据提供给所述服务器的时间的至少一项;或者与数字数据的链接或与每个指纹的数字数据的关联。
4.根据权利要求2和3所述的方法,其中,获得所述计算的第一指纹的所述步骤中的所述一个或多个条目还包括与指纹相关的唯一标识符或时间指定信息的至少一项。
5.根据权利要求3或4所述的方法,其中,作为所述存储步骤的一部分,所述唯一标识符、所述时间指定信息、所述链接或所述关联由所述服务器确定和分配。
6.根据权利要求1至5中的任一项所述的方法,其中,提供所述计算的第一指纹的所述步骤包括将所述第一指纹附加到被发送给所述多个用户终端的至少一个的消息上。
7.根据权利要求1至6中的任一项所述的方法,其中,提供所述计算的第一指纹的所述步骤或计算所述第一指纹的所述步骤还包括由所述服务器给所述第一指纹签名。
8.根据权利要求1至7中的任一项所述的方法,其中,存储第一指纹列表的所述步骤包括以下步骤接收数字数据;确定所述数字数据的完整性、所述数字数据的发送者的身份和所述发送者的真实性的至少一项;其中所述确定包括验证所述数字数据的数字签名、验证与所述数字数据或发送者相关的指纹、使用用于与所述发送者通信的安全且可信任的连接、以及施加用于所述接收的数字数据的加密方案的至少一项;对至少所述数字数据计算散列值;以及将所述散列值添加到所述第一指纹列表中。
9.根据权利要求1至8中的任一项所述的方法,其中根据定时时间表重复执行至少计算第一指纹和提供所述计算的第一指纹的所述步骤,并且其中可使用另外的条目扩充或延伸所述第一指纹列表。
10.根据权利要求9所述的方法,其中,提供所述计算的第一指纹的所述步骤包括在每小时、每天、每星期、每月或其它定期时间段的基础上提供或更新所述第一指纹。
11.根据权利要求1至10中的任一项所述的方法,其中,提供所述计算的第一指纹的所述步骤还包括关联和提供时间指定信息、合法性周期信息、或为确定所述提供的第一指纹的合法性而提供的另一标识符中的至少一项。
12.一种由公钥系统的客户端终端执行的方法,所述公钥系统包括多个客户端终端和至少一个服务器,所述方法包括以下步骤从第一源获得数字编码数据的第一指纹列表;从第一源获得所述指纹列表的第一指纹;从第二源获得所述指纹列表的第二指纹;以及比较所述第一和所述第二指纹。
13.根据权利要求12所述的方法,还包括以下步骤计算所述获得的第一指纹列表的指纹;比较所述计算的指纹与所述获得的第一和第二指纹;如果所述比较步骤的至少一个产生不同的指纹,则确定所述接收的指纹或所述第一指纹列表的数据完整性已经受损。
14.根据权利要求12或13所述的方法,还包括以下步骤获得所述指纹列表的所述数字编码数据的至少一个;计算所述获得的数字数据的指纹;将所述计算的指纹与所述接收的指纹列表中的所述获得的数字数据的指纹相比较;以及如果所述比较步骤产生不同的指纹,则确定所述接收的数字数据或所述指纹列表的数据完整性已经受损。
15.根据权利要求12至14中的任一项所述的方法,还包括以下至少一项验证所述接收的第一和第二指纹的数字签名;验证接收到的指纹列表的数字签名;验证与所述接收的第一和第二指纹或所述第一和第二源相关的指纹;以及接收用户输入,以执行验证数字签名和验证指纹的所述步骤的至少一项。
16.根据权利要求12至15中的任一项所述的方法,其中,获得所述第一和第二指纹的所述步骤包括以下步骤与通过公共网络的通信介质发送到所述客户端终端的消息一起接收所述第一和第二指纹,其中所述公共网络连接所述客户端终端和所述服务器;并且所述方法还包括以下步骤将所述指纹列表的指纹附加到通过公共网络的所述通信介质发送给另一客户端终端的消息上,其中所述公共网络连接所述客户端终端。
17.根据权利要求16所述的方法,其中,获得所述第一和第二指纹以及附加指纹的所述步骤被自动完成,而没有所述消息的接收客户端终端的显式请求,而是作为并非出于交换所述第一或第二指纹的目的而建立的客户端终端之间的定期通信的一部分。
18.根据权利要求12至19和16中的任一项所述的方法,其中,附加指纹的所述步骤还包括关联和附加时间指定信息、合法性周期信息、或者为确定所述提供的指纹的合法性而提供的另一标识符的至少一项。
19.根据权利要求16至18中的任一项所述的方法,其中,将指纹附加到消息上的所述步骤只对由所述客户端终端验证为合法且真实的指纹执行;其中所述验证可依赖于成功的比较步骤的数目,所述比较步骤是对所述附加的指纹和所接收的彼此不同的和/或独立的源的对应指纹执行的;以及其中,所述附加指纹的步骤还包括由所述客户端终端使用所述客户端终端的私钥给所述指纹签名。
20.根据权利要求12至19中的任一项所述的方法,其中,获得所述第一和第二指纹的所述步骤包括以下步骤通过关联到或附加到所述接收的指纹和/或接收的指纹列表的信息,或者通过所述客户端终端所知的预定定时时间表,确定所接收的指纹和/或所接收的指纹列表是否合法和代表最新公布的版本;以及如果所述接收的指纹和/或所接收的指纹列表不合法,则忽略所述接收的指纹和/或接收的指纹列表,或者向另一源请求指纹和/或指纹列表,以替换不合法的版本。
21.根据权利要求12至20中的任一项所述的方法,其中,所述客户端终端还保持和更新所接收的来自不同源的第一和第二指纹的记录,其中所述记录可包括每个指纹的源的标识符,以及其中所述更新可包括在确定指纹不合法或者所述指纹或所述指纹的各自的源不能被信任或被成功认证之后,从所述记录中去除所述指纹。
22.根据权利要求13至21中的任一项所述的方法,其中,在所述客户端终端确定所述接收的指纹或所述指纹列表的数据完整性已经受损的情况下,所述客户端终端向所述系统、所述服务器、所述系统的证书管理机构和所述客户端终端的用户的至少一个报告,其中所述报告可包括识别和报告所述受损的指纹或列表的源。
23.根据权利要求2至11中的任一项所述的方法,其中,获得所述第一指纹列表的一个或多个条目的所述步骤包括获得所述第一指纹列表的条目的特定段,以及其中,计算所述第一指纹的所述步骤还包括以下步骤将所述计算的散列值存储在第二指纹列表中;按照与获得所述第一列表的一个或多个条目的所述步骤相同的方式获得所述第二指纹列表的一个或多个条目,其中所述一个或多个条目将被所述第一指纹覆盖;以及按照与计算散列值的所述第一步骤相同的方式对至少所述获得的所述第二指纹列表的一个或多个条目计算散列值。
24.根据权利要求23和3所述的方法,其中,通过时间间隔来定义所述特定段,其中所述第一指纹列表中所述获得的条目的所述时间指定信息与所述时间间隔相关,或被其覆盖。
25.根据权利要求23或24所述的方法,其中,获得所述第二指纹列表的一个或多个条目的所述步骤包括获得所述第二指纹列表的特定段,以及其中计算所述第二指纹的所述步骤还包括以下步骤将所述计算的散列值存储在第三指纹列表中;以及按照与获得所述第一列表的一个或多个条目的所述步骤相同的方式获得所述第三指纹列表的一个或多个条目,其中所述一个或多个条目将被所述第一指纹覆盖;以及按照与计算散列值的所述第一步骤相同的方式对至少所述获得的所述第三指纹列表的一个或多个条目计算散列值,包括将所述散列值存储在另一指纹列表中并随后计算覆盖所述另一列表的条目的另一散列值的可选步骤。
26.根据权利要求23至25中的任一项所述的方法,其中,所述服务器将所述第二列表、所述第三列表、所述特定段、所述第一、所述第二或所述第三列表的特定条目和/或段的特定条目提供给另一客户端终端或所述系统的另一方,其中,所述另一客户端终端或另一方已经请求了所述提供。
27.根据权利要求26所述的方法,其中,所述服务器接收指定至少以下一项的请求时间间隔、所述指纹列表之一的特定指纹、以及所述特定指纹的相应数字数据。
28.根据权利要求23至27中的任一项所述的方法,其中,计算和/或提供若干第二和若干第三指纹列表、以及所述指纹列表的各自的若干第二和第三指纹,其中可针对不同种类的数字数据、根据不同时间表和时间间隔、并且/或者根据每个列表中的不同的最大条目数使用每个列表。
29.根据权利要求23至28中的任一项所述的方法,其中,所述第二指纹列表是所述第一指纹列表或所述第一指纹列表的特定段。
30.根据权利要求28所述的方法,其中,根据用于所述系统、所述服务器和所述客户端终端的至少一个的有效载荷和性能规定,由所述服务器或所述系统的专用装置适配或指定所述不同时间表、不同时间间隔或所述不同的最大条目数。
31.根据权利要求23至30中的任一项所述的方法,其中,所述第一指纹列表、所述第二指纹列表或所述第一指纹的至少一项的所述计算的指纹可被进一步添加到所述第一列表的所述特定段、所述第一列表的另一段、另一第一列表、所述第二列表、另一第二列表、所述第三列表、另一第三列表或从所述列表的条目编制的另一指纹列表的至少一个上。
32.根据权利要求23至31中的任一项所述的方法,其中所述段、所述第一列表、所述第二列表、和/或所述第三列表的一个或多个条目被添加到所述第一列表的所述特定段、所述第一列表的另一段、另一第一列表、所述第二列表、另一第二列表、所述第三列表、另一第三列表或从所述列表的条目编制的另一指纹列表的至少一个上。
33.根据权利要求12至22中的任一项所述的方法,还包括以下步骤获得数字数据;请求第二指纹列表,其中所述第二指纹列表包括将用于计算所述第一指纹列表中的至少一个指纹的指纹条目,以及其中所述至少一个指纹覆盖所述获得的数字数据;获得所述请求的第二指纹列表;对将用于计算所述第一指纹列表中的特定指纹的所述第二列表的指纹条目计算第一散列值,其中所述指纹条目的至少一个覆盖所述获得的数字数据,以及其中所述特定指纹因此覆盖所述获得的数字数据;比较所述计算的第一散列值和所述特定指纹;如果所述比较步骤产生不同的指纹,则确定所述获得的数字数据或至少一个所述指纹列表的数据完整性已经受损;对所述获得的数字数据计算第二散列值;比较所述计算的第二散列值和覆盖所述获得的数字数据的所述第二指纹列表中的指纹;以及如果所述比较步骤产生不同的指纹,则确定所述获得的数字数据或至少一个所述指纹列表的数据完整性已经受损;
34.根据权利要求33所述的方法,其中,对所述获得的数字数据计算第二散列值的所述步骤包括以下步骤请求第三指纹列表,其中所述第三指纹列表包括将用于计算所述第二指纹列表中的至少一个指纹的指纹条目,以及其中至少一个所述指纹条目覆盖所述获得的数字数据;获得所述请求的第三指纹列表;对将用于计算所述第二指纹列表中的特定指纹的所述第三列表的指纹条目计算第三散列值,其中所述第三指纹列表中的至少一个所述指纹条目覆盖所述获得的数字数据;比较所述计算的第三散列值和所述第二指纹列表中的所述特定指纹;如果所述比较步骤产生不同的指纹,则确定所述获得的数字数据或至少一个所述指纹列表的数据完整性已经受损。
35.根据权利要求33或34所述的方法,其中所述第一、所述第二或所述第三指纹列表的至少一个是另一指纹列表的段。
36.根据权利要求33至35中的任一项所述的方法,其中,请求指纹列表的所述步骤包括通过指定以下之一来指定所述请求的指纹列表的步骤与所述请求的列表的条目相关的时间间隔,用于所述请求的列表的至少一个条目的时间指定信息,所述请求的列表的至少一个指纹;由至少所述请求的列表的指纹覆盖的至少一个数字数据,所述请求的列表的标识符,以及所述请求的列表的至少一个条目的标识符。
37.根据权利要求1至36中的任一项所述的方法,其中,所述数字数据包括以下至少一项公钥对的公钥、证书、计算机程序、软件文件、数据库、可执行文件、数字画面、视频或音频信息以及数据文件。
38.一种系统,包括至少一个根据权利要求1至11或权利要求23至32中的任一项所述的服务器、以及至少一个根据权利要求12至22或权利要求33至36中的任一项所述的客户端终端。
39.一种具有计算机程序的计算机可读存储介质,所述计算机程序用于控制多个客户端终端参与并执行根据如权利要求12至22或权利要求33至36中的任一项所述的方法的操作。
40.一种具有计算机程序的计算机可读存储介质,所述计算机程序用于控制服务器参与并执行根据如权利要求1至11或权利要求23至32中的任一项所述的方法的操作。
41.一种用于在公钥系统中提供数字数据的安全分发的方法,该方法包括使用第一密钥对的公钥将数字数据加密;通过防止使用所述第一密钥对的对应私钥来防止将所述加密的数字数据解密;以及用第二密钥对替换所述第一密钥对,以便将另外的数字数据加密和解密。
42.根据权利要求41所述的方法,其中,所述防止步骤包括废除或删除所述私钥。
43.根据权利要求41或42所述的方法,其中,所述加密步骤由所述系统的第一方执行,对应的解密由所述系统的第二方执行,通过所述系统对所述防止和所述替换步骤执行控制、发起和施行的至少一项,其中所述方法还包括将所述加密的数字数据通过网络提供给所述第二方的步骤、以及由所述第二方存储所述加密的数字数据或其各自副本的步骤。
44.根据权利要求43所述的方法,其中,所述网络是因特网。
45.根据权利要求41至44中的任一项所述的方法,其中,根据第一时间表自动执行所述防止步骤,并且根据第二时间表自动执行所述替换步骤。
46.根据权利要求43和45所述的方法,其中,所述第一和所述第二时间表互相独立,并由所述系统或所述第一方指定。
47.根据权利要求45或46所述的方法,其中,所述第一和所述第二时间表的至少一个分别包括第一和第二时间间隔,其中,在所述第一和所述第二时间间隔终止之后,分别执行所述防止步骤和所述替换步骤,以及其中,所述第一和/或所述第二时间间隔分别以以下之一开始所述加密步骤;将所述加密的数据提供给所述第二方的所述提供;所述第一或第二密钥对的生成或分发;或在其它第一或第二时间间隔分别开始之后的预定时间。
48.根据权利要求41至47中的任一项所述的方法,其中,由所述系统的专用装置生成、分发或提供所述第一和所述第二密钥对的至少一个。
49.根据权利要求41至48中的任一项所述的方法,其中,多个第一密钥对在同时或重叠的时间段内使用,并且/或者被多个第二密钥对替换。
50.根据权利要求49和43所述的方法,其中,所述多个第一密钥对的每一个分别用于不同种类的数字数据、不同组的所述第一方和不同组的所述第二方的至少一个,其中,所述防止步骤和所述替换步骤被有选择且独立地施加到所述多个第一密钥对的每一个,以便有选择地控制对所述加密的数字数据的访问。
51.根据权利要求41至50中的任一项所述的方法,还包括通过受控删除或废除所述公钥来防止使用所述第一密钥对的公钥的步骤。
52.根据权利要求43和51所述的方法,其中,由所述系统的装置或所述第一方对防止使用所述公钥的所述步骤进行发起、控制和施行的至少一项,其中,使用所述方法为所述第二用户提供了在防止使用所述公钥的所述步骤之后仍然使用所述私钥通过所述解密过程访问所述数字数据。
53.根据权利要求41至51中的任一项所述的方法,其中,所述方法用于以下至少一项破坏对所述先前加密的数据的伪造;将在指定或预定时间范围之后删除的所述数字数据,其中,所述加密的数字数据的其它可能的备份副本和/或日志信息也将被删除。
54.一种用于在公钥系统中控制数字数据分发的方法,该方法包括通过使用第一密钥对的公钥将所述数字数据加密,计算加密的数字数据;使用所述第一密钥对的对应私钥将所述加密的数字数据解密;通过防止使用所述公钥,防止用于另外的数字数据的所述加密步骤;以及用第二密钥对替换所述第一密钥对,以便将另外的数字数据加密和解密。
55.根据权利要求54所述的方法,其中,所述加密步骤由所述系统的第一方执行,对应的解密步骤由所述系统的第二方执行,所述防止和替换步骤由所述系统的专用装置进行控制、发起和施行的至少一项,其中所述方法还包括将所述加密的数字数据通过网络提供给所述第二方的步骤。
56.根据权利要求54或55所述的方法,其中,所述防止步骤包括废除或删除所述公钥。
57.根据权利要求54至56中的任一项所述的方法,还包括通过所述系统受控删除或废除所述第一密钥对的所述私钥的步骤。
58.一种用于在公钥系统中控制数字数据分发的方法,该方法包括根据第一数字签名方案使用第一密钥对的私钥来计算所述数字数据上的数字签名;根据所述第一数字签名方案使用所述第一密钥对的对应公钥来验证所述数字签名;通过防止使用所述私钥来防止用于另外的数字数据的所述计算步骤;以及用第二密钥对替换所述第一密钥对,以便计算和验证另外的数字数据上的数字签名。
59.根据权利要求58所述的方法,其中,所述计算步骤由所述系统的第一方执行,对应的验证步骤由所述系统的第二方执行,所述防止和替换步骤由所述系统的专用装置进行控制、发起和施行的至少一项,其中所述方法还包括将所述数字签名和所述数字数据通过网络提供给所述第二方的步骤。
60.根据权利要求58或59所述的方法,其中,如果验证所述数字签名的所述步骤失败,则所述第二方拒绝所述提供的数字数据,或者其中,如果所述验证步骤成功,则所述第二方只能够或被允许使用和访问所述提供的数字数据。
61.根据权利要求58至60中的任一项所述的方法,其中,所述方法还包括结合所述计算步骤将所述数字数据加密的步骤、以及在成功的验证步骤之后将所述数字数据解密的步骤。
62.根据权利要求58至61中的任一项所述的方法,其中,所述防止步骤包括废除或删除所述私钥。
63.根据权利要求55、56或权利要求59至62中的任一项所述的方法,其中,所述网络是因特网。
64.根据权利要求54至63中的任一项所述的方法,其中,根据第一时间表自动执行所述防止步骤,并且根据第二时间表自动执行所述替换步骤。
65.根据权利要求64和55或根据权利要求64和59所述的方法,其中,所述第一和所述第二时间表彼此独立,并由所述系统或所述第一方指定。
66.根据权利要求64或65所述的方法,其中,所述第一和所述第二时间表的至少一个分别包括第一和第二时间间隔,其中,在所述第一和所述第二时间间隔终止之后分别执行所述防止步骤和所述替换步骤,以及其中,所述第一和所述第二时间间隔分别以以下之一开始所述计算步骤;提供给所述第二方的所述步骤;所述第一或第二密钥对的生成或分发;或在其它第一或第二时间间隔分别开始之后的预定时间。
67.根据权利要求54至66中的任一项所述的方法,其中,由所述系统生成、分发或提供所述第一和所述第二密钥对的至少一个。
68.根据权利要求54至67中的任一项所述的方法,其中,在同时或重叠的时间段内使用多个第一密钥对。
69.根据权利要求68和55或根据权利要求68和59所述的方法,其中,所述多个第一密钥对的每一个分别用于不同种类的数字数据、不同组的所述第一方和不同组的所述第二方的至少一个,其中,所述防止步骤和所述替换步骤被有选择且独立地施加到所述多个第一密钥对的每一个,以便有选择地控制所述数字数据的安全分发。
70.根据权利要求54至69中的任一项所述的方法,其中,使用所述方法来控制没有其它数据可被添加到数字数据池中,其中仍然可以分发、使用或访问与所述池相关的先前数字数据,其中通过不同的密钥对来建立不同的数字数据池。
71.一种具有计算机程序的计算机可读存储介质,所述计算机程序用于控制公钥系统的多个客户端终端参与和执行根据如权利要求54至70中的任一项所述的方法的操作。
72.一种具有计算机程序的计算机可读存储介质,所述计算机程序用于控制公钥系统的服务器参与和执行根据如权利要求54至70中的任一项所述的方法的操作。
73.一种用于在数据分发系统中提供数字数据的分层非对称加密的方法,所述方法包括以下步骤在第一加密层中使用第一密钥将所述数字数据加密;在所述第一加密层中使用第二密钥将所述第一密钥加密;在第二加密层中使用第三密钥将所述加密的第一密钥加密;提供所述加密的数据和所述加密的第一密钥;根据所述第二加密层,将所述加密的第一密钥解密;以及根据所述第一加密层,将所述加密的第一密钥解密;以及根据所述第一加密层,将所述加密的数字数据解密。
74.根据权利要求73所述的方法,其中,所述数字数据的所述加密步骤由所述系统的第一方执行,其中所述第一密钥是对称密钥,所述第一加密层中对所述第一密钥的所述加密步骤由所述第一方执行,其中所述第二密钥是第一公钥对的公钥,所述第二加密层中对所述加密的第一密钥的所述加密步骤由所述第一方或所述系统的第二方执行,其中所述第三密钥是第二公钥对的公钥,所述提供步骤将所述加密的数据和所述加密的第一密钥通过网络提供给所述系统的第三方,根据所述第二加密层对所述加密的第一密钥的所述解密步骤由所述第三方使用所述第二公钥对的私钥来执行,根据所述第一加密层对所述加密的第一密钥的所述解密步骤由所述系统的所述第三方或第四方使用所述第一公钥对的私钥来执行,对所述加密的数字数据的所述解密步骤由所述第三或第四方使用所述解密的第一密钥来执行。
75.根据权利要求73或74所述的方法,还包括在所述第二加密层中的所述加密之后,在第三加密层中使用第四密钥将所述加密的第一密钥加密的步骤,以及在根据所述第二加密层的所述解密步骤之前,根据所述第三加密层将所述加密的第一密钥解密的步骤。
76.根据权利要求75所述的方法,其中,使用所述第四密钥将所述第一密钥加密的所述步骤由所述第一方、所述第二方或第五方之一执行,其中,所述第四密钥是第三公钥对的公钥,并且,根据所述第三加密层解密的所述步骤由所述系统的所述第三方、所述第四方或第六方之一使用所述第三公钥对的私钥执行。
77.根据权利要求73至76中的任一项所述的方法,其中,对所述第一密钥的所述加密步骤的一个或多个还包括使用相应加密层的加密密钥将所述数字数据加密。
78.根据权利要求74至77中的任一项所述的方法,其中,对所述加密的第一密钥的所述加密步骤的一个或多个包括使用另一对称密钥将所述第一密钥加密,使用所述一个或多个加密步骤的加密层的相应公钥对的公钥将所述另一对称密钥加密,以及将所述加密的另一对称密钥与所述加密的第一密钥相关联,其中由任意下一加密层按照与所述第一密钥相同的方式来处置所述加密的另一对称密钥,其中所述下一加密层将两个加密的密钥视为一个密钥信息部分或两个单独的加密的密钥;以及其中,所述加密步骤的对应解密步骤包括使用所述相应加密层的公钥对的私钥将所述加密的另一对称密钥解密,使用所述解密的另一对称密钥将所述加密的第一密钥解密。
79.一种用于控制通过网络从发送者到接收者的数字数据分发路径的方法,其中,所述网络包括多个相连接的网络节点,所述方法包括以下步骤a)在第一加密层中使用第一密钥将所述数字数据加密;b)在所述第一加密层中使用第二密钥将所述第一密钥加密,其中,所述第二密钥是与所述数字数据的所述接收者相关的公钥;c)在第二加密层中使用第三密钥将所述加密的第一密钥加密,其中,所述第三密钥是与第一网络节点相关的公钥,所述数字数据被定义为通过所述网络沿着分发路径传递到所述接收者;d)将所述加密的数据和所述加密的第一密钥提供给所述第一网络节点;e)根据所述第二加密层,使用对应于所述第一网络节点的所述公钥的私钥,在所述第一网络节点处将所述加密的第一密钥解密;f)将所述加密的数据和所述加密的第一密钥提供给所述接收者;g)根据所述第一加密层,使用所述接收者的所述公钥的对应私钥将所述加密的第一密钥解密;以及h)根据所述第一加密层,使用所述解密的第一密钥将所述加密的数字数据解密。
80.根据权利要求79所述的方法,其中,所述加密步骤c)由所述发送者或包括所述加密的数据和所述加密的第一密钥的消息先前经过的第三网络节点执行。
81.根据权利要求79或80所述的方法,还包括以下步骤在第三加密层中使用第四密钥将所述加密的第一密钥加密,其中所述第四密钥是与第二网络节点相关的公钥,所述数字数据被定义为通过所述网络沿着分发路径传递到所述接收者;将所述加密的数据和所述加密的第一密钥提供给所述第二网络节点;以及根据所述第三加密层,使用所述第二网络节点的所述公钥的对应私钥,在所述第二网络节点处将所述加密的第一密钥解密。
82.根据权利要求81所述的方法,其中,所述加密步骤由所述发送者、所述第一网络节点、或包括所述加密的数据和所述加密的第一密钥的所述消息先前经过的第三网络节点之一执行。
83.根据权利要求79至82中的任一项所述的方法,还包括由每个网络节点在接收到所述加密的数字数据和所述加密的第一密钥之后执行的以下步骤确定所述接收的加密的第一密钥是否将由所述网络节点根据特定加密层解密;如果所述网络节点必须将所述加密的第一密钥解密,则根据所述特定加密层,使用相应的私钥来将所述加密的第一密钥解密;确定包括所述接收者的所述网络的下一网络节点,所述加密的数字数据和所述加密的第一密钥必须被提供给所述网络节点;确定是否必须使用与所述下一网络节点相关的公钥和/或另一网络节点的公钥在至少一个另外的加密层中将所述加密的第一密钥加密;如果所述加密的第一密钥必须被加密,则获得所述公钥,并根据所述另一加密层,使用根据所述另一加密层的所述公钥来将所述加密的第一密钥加密。
84.根据权利要求79至83中的任一项所述的方法,其中,传送所述加密的数据和所述加密的第一密钥的所述发送者和/或网络节点指定包括所述接收者的所述网络的至少一个网络节点,其中所述加密的数据和所述加密的第一密钥在被传送到所述接收者时必须经过所述至少一个网络节点。
85.根据权利要求84所述的方法,其中,所述指定至少包括根据加密层、使用所述指定的网络节点的公钥来将所述加密的第一密钥加密。
86.一种计算机可读存储介质,具有用于控制网络的多个网络节点的计算机程序,所述计算机程序使网络节点在接收到包括加密的数字数据部分和加密的第一密钥部分的消息之后执行权利要求83的步骤。
87.根据权利要求86的计算机程序,还使所述网络节点执行指定包括所述接收者的所述网络的至少一个网络节点的步骤,所述加密的数据和所述加密的第一密钥在被传送给所述接收者时必须经过所述至少一个网络节点,其中,所述指定步骤至少包括根据加密层、使用所述指定的网络节点的公钥将所述加密的第一密钥加密。
88.根据权利要求86所述的计算机程序,还控制所述网络节点参与并执行根据如权利要求74至85中的任一项所述的方法的操作。
89.一种具有计算机程序的计算机可读存储介质,所述计算机程序用于控制公钥系统的多个客户端终端参与和执行根据如权利要求73至85中的任一项所述的方法的操作。
90.一种用于在公钥系统中使用数字数据上的签名控制所述数字数据的分发的方法,所述方法包括以下步骤由发送者计算所述数字数据的散列值;通过根据第一数字签名方案、使用第一公钥对的第一私钥将所述散列值加密,由所述发送者计算第一数字签名;通过根据第二数字签名方案、使用第二公钥对的第二私钥将所述第一数字签名加密,计算第二数字签名;将所述第二数字签名和所述数字数据提供给所述数字数据的接收者;根据所述第二数字签名方案、使用所述第二公钥对的公钥来计算所述第二数字签名的第一验证值;根据所述第一数字签名方案、使用所述第一公钥对的公钥来计算所述第一验证值的第二验证值;获得所述数字数据的散列值;比较所述获得的散列值和所述第二验证值;以及如果所述比较步骤表示不同的值,则确定向所述接收者的数据分发过程偏离了预期的处理流程。
91.根据权利要求90所述的方法,还包括以下步骤在所述提供步骤中与所述提供的数字数据和所述提供的第二数字签名一起、或者在另一提供步骤中获得所述第一数字签名;比较所述获得的第一数字签名和所述计算的第一验证值;如果所述比较步骤表示不同的值,则确定向所述接收者的数据分发过程偏离了预期的处理流程。
92.根据权利要求90或91所述的方法,其中,所述散列值的所述获得步骤包括以下至少一项按照与由所述发送者执行的所述散列值的所述第一计算步骤相同的方式,从所述提供的数字数据计算所述散列值,或者在所述提供步骤中与所述提供的数字数据和所述提供的第二数字签名一起获得所述散列值。
93.根据权利要求90至92中的任一项所述的方法,其中,计算第二数字签名的所述步骤还包括以下步骤通过根据第三数字签名方案、使用第三公钥对的第三私钥将所述第一数字签名加密来计算第三数字签名,以便在所述第二数字签名的所述计算之前替换所述第一数字签名;以及其中,计算第二验证值的所述步骤还包括以下步骤根据所述第三数字签名方案、使用所述第三公钥对的公钥来计算所述第一验证值的第三验证值,以便在所述第二验证值的所述计算之前替换所述第一验证值。
94.根据权利要求93所述的方法,还包括以下步骤在所述提供步骤中与所述提供的数字数据和所述提供的第二数字签一起、或者在另一提供步骤中的之一,获得所述第三数字签名;在计算第二验证值的所述步骤之前,比较所述获得的第三数字签名和所述计算的第一验证值;如果所述比较步骤表示不同的值,则确定向所述接收者的数据分发过程偏离了预期的处理流程。
95.根据权利要求90至94中的任一项所述的方法,其中,按照如权利要求73至78的至少一项所述的方式,为所述分发过程将所述数字数据加密,其中所述数字签名的所述计算步骤和所述验证值的相应计算步骤、相应的比较和确定步骤的每一个被关联到所述加密层之一,并结合所述加密层之一来执行。
96.一种用于控制通过网络从发送者到接收者的数字数据分发路径的方法,其中,所述网络包括多个相连接的网络节点,所述方法包括权利要求90至94之一的步骤,其中,所述网络节点的至少一个执行计算数字签名的所述步骤之一。
97.根据权利要求96和90所述的方法,其中,所述网络节点的至少一个执行计算验证值、获得散列值、比较和确定的所述步骤。
98.根据权利要求91至94中的任一项和权利要求96至97中的任一项所述的方法,其中,所述网络节点的至少一个执行至少一组以下步骤,其中每个步骤与所述公钥对的一个特定公钥对相关计算验证值的所述步骤;获得数字签名的所述步骤;比较所述获得的数字签名和所述计算的验证值的所述步骤,以及所述确定步骤。
99.根据权利要求79或80所述的方法,还包括以下步骤在第三加密层中使用第四密钥将所述加密的第一密钥加密,其中,所述第四密钥是与第二网络节点相关的公钥,所述数字数据被定义为通过所述网络沿着分发路径传递到所述接收者;将所述加密的数据和所述加密的第一密钥提供给所述第二网络节点;以及根据所述第三加密层、使用所述第二网络节点的所述公钥的对应私钥,在所述第二网络节点处将所述加密的第一密钥解密。
100.根据权利要求90至99中的任一项所述的方法,其中,每一个都与所述公钥对之一相关的签名方案可以彼此不同,并由所述系统、所述数字数据的所述发送者、或将所述数字数据提供给所述系统中的另一方的所述系统中的另一方预定或指定。
101.根据权利要求96至100中的任一项所述的方法,还包括由每个网络节点在接收到所述数字数据和所述数字签名之后执行的以下步骤确定所述接收的数字签名是否必须由所述网络数字签名;如果所述网络节点必须给所述接收的数字签名进行数字签名,则通过根据另一数字签名方案、使用另一公钥对的另一私钥将所述接收的数字签名加密来计算另一数字签名,以便在将所述数字数据和所述计算的数字签名提供给另一网络节点或所述接收者之前替换所述接收的数字签名;确定包括所述接收者的所述网络的下一网络节点,所述数字数据和所述计算的数字签名必须被提供给所述网络节点。
102.一种计算机可读存储介质,具有用于控制网络的多个网络节点的计算机程序,所述计算机程序使网络节点在接收到包括所述数字数据和所述数字签名的消息之后执行权利要求101的步骤。
103.根据权利要求102的计算机程序,还控制所述网络节点参与和执行根据如权利要求90至100中的任一项所述的方法的操作。
104.一种具有计算机程序的计算机可读介质,所述计算机程序用于控制公钥系统的多个客户端终端参与和执行根据如权利要求90至101中的任一项所述的方法的操作。
105.一种用于在客户端-服务器系统中提供用于交换数字数据的安全通信的方法,所述系统包括通过网络连接的至少一个服务器和多个客户端终端,所述方法包括以下步骤由所述系统的客户端终端使用先前获得的第一散列值作为对称加密方案中的密钥信息来将数字数据加密;由所述客户端终端将所述加密数字数据和先前获得的随机令牌提供给所述系统的服务器;其中,所述第一散列值与所述随机令牌相关,并充当所述服务器和所述客户端终端之间的共享秘密;所述服务器计算所述提供的随机令牌和固定随机值的第二散列值,其中所述固定随机值是所述服务器所拥有、并且不向所述多个客户端终端公开的的秘密、私有的值;以及由所述服务器根据所述对称加密方案、使用所述第二散列值作为密钥信息来将所述加密的数字数据解密。
106.根据权利要求105所述的方法,还包括以下步骤在所述加密步骤之前获得所述随机令牌;在所述加密步骤之前将所述随机令牌提供给所述服务器;在所述加密步骤之前由所述服务器计算所述随机令牌和所述固定随机值的第一散列值;在所述加密步骤之前将所述第一散列值提供给所述客户端终端。
107.根据权利要求106所述的方法,其中,获得所述随机令牌、提供所述随机令牌、计算所述第一散列值、和提供所述第一散列值的所述步骤作为所述客户端终端向所述服务器初始注册的过程的一部分来执行,以及其中,剩余的全部步骤作为所述数字数据的安全数据交换事务的一部分来执行。
108.根据权利要求106或107所述的方法,其中,提供所述随机令牌的所述步骤还包括根据不对称加密方案将所述随机令牌加密的在先步骤;以及计算所述第一散列值的所述步骤还包括根据所述不对称加密方案将所述随机令牌解密的在先步骤。
109.根据权利要求106至108中的任一项所述的方法,其中,将所述第一散列值提供给所述客户端终端的所述步骤还包括根据不对称加密方案将第一散列值加密的在先步骤;以及所述客户端终端还在接收到所述加密的第一散列值之后执行根据所述相应的不对称加密方案将加密的第一散列值解密的步骤。
110.根据权利要求106至109中的任一项所述的方法,其中,获得所述随机令牌的所述步骤包括在所述客户端终端处生成所述随机令牌。
111.根据权利要求106至109中的任一项所述的方法,其中,获得所述随机令牌和将所述随机令牌提供给所述服务器的所述步骤通过在所述服务器处生成所述随机令牌的步骤来完成;以及提供所述第一散列值的所述步骤还包括将所述生成的随机令牌提供给所述客户端终端;其中如果结合所述提供步骤将所述第一散列值加密或解密,则按照与所述第一散列值相同的方式将所述随机令牌加密和解密。
112.根据权利要求105至109中的任一项所述的方法,其中,所述服务器使用多个不同的固定随机值,其中,可以在连续、同时或重叠的时间段内使用所述多个不同固定随机值的全部或部分,以及其中,所述多个不同固定随机至的每一个可用于以下至少一项不同组的客户端终端;客户端终端向所述服务器注册的不同时间;或用于执行所述方法的至少一个所述步骤的不同时间段或时间点。
113.根据权利要求106至109和权利要求112中的任一项所述的方法,其中,获得所述随机令牌以及将所述随机令牌提供给所述服务器的所述步骤包括在所述服务器处生成所述随机令牌的一部分的步骤;以及提供所述第一散列值的所述步骤还包括将所述生成的随机令牌提供给所述客户端终端;其中如果结合所述提供步骤将所述第一散列值加密和解密,则按照与所述第一散列值相同的方式将所述随机令牌加密和解密;以及其中所述服务器还执行以下步骤在计算所述第一散列值的所述步骤之前选择所述多个不同固定随机值的特定一个;将所述多个不同固定随机值的所述特定一个与所述随机令牌的所述生成部分相关联;在计算所述第二散列值的所述步骤之前,通过从所述提供的随机令牌确定所述生成部分、并随后识别其相关的特定固定随机值,确定所述多个不同固定随机值的所述特定一个。
114.根据权利要求106至111和权利要求112中的任一项所述的方法,还包括以下步骤在计算所述新的第一散列值的所述步骤之前选择所述多个不同固定随机值的特定一个;在计算所述第二散列值的所述步骤之前,通过连续测试所述不同固定随机值的每一个以查看其在由所述服务器将所述加密的数字数据解密的所述后续步骤中是否产生合法结果,确定所述多个不同固定随机值的所述特定一个。
115.根据权利要求105至114中的任一项所述的方法,还包括以下步骤由所述服务器根据所述对称加密方案、使用所述第二散列值作为密钥信息来将对所述客户端终端的答复消息的数字数据加密;将所述答复消息的所述加密的数字数据提供给所述客户端终端;以及由所述客户端终端根据所述对称加密方案、使用所述第一散列值作为密钥信息来将所述答复消息的所述加密的数字数据解密。
116.根据权利要求106至115中的任一项所述的方法,其中,如果用新的固定随机值替换了所述服务器所拥有并用于所述计算步骤的所述固定随机值,则作为客户端终端向所述服务器的新注册过程执行以下的所述步骤获得所述随机令牌、提供所述随机令牌、计算所述第一散列值、和提供所述第一散列值。
117.根据权利要求116和权利要求112至114中的任一项所述的方法,其中,所述多个不同固定随机值被彼此独立地替换,以及其中所述方法提供了有选择地要求与所述多个固定随机值的特定一个相关的特定组的用户再次向所述服务器注册。
118.根据权利要求105至117中的任一项所述的方法,其中,所述客户端终端对所述服务器保持匿名,以及其中,不要求所述服务器存储关于所述客户端终端的记录信息以便建立所述相关令牌、所述相关散列值或所述共享秘密之一,其中所述记录信息包含所述客户端终端的相关令牌、在相应对称加密方案中用作密钥信息的相关散列值、先前在所述服务器和所述客户端终端之间建立的其它共享秘密、或所述客户端终端的标识符。
119.一种用于提供用于交换数字数据的安全通信的系统,所述系统包括通过网络连接的至少一个服务器和多个客户端终端,所述客户端终端包括用于使用先前获得的第一散列值作为对称加密方案中的密钥信息来将数字数据加密的装置;用于将所述加密的数字数据和先前获得的随机令牌提供给所述系统的服务器的装置;其中所述第一散列值与所述随机令牌相关,并充当所述服务器和所述客户端终端之间的共享秘密;所述至少一个服务器包括用于计算所述提供的随机令牌和固定随机值的第二散列值的装置,其中所述固定随机值是所述服务器所拥有并且不向所述多个客户端终端公开的秘密、私有的值;以及用于根据所述对称加密方案、使用所述第二散列值作为密钥信息将所述加密的数字数据解密的装置。
120.根据权利要求119所述的系统,其中,所述客户端终端还包括用于在所述数字数据的加密之前获得所述随机令牌的装置;用于在所述数字数据的所述加密之前将所述随机令牌提供给所述服务器的装置;以及其中所述至少一个服务器还包括用于在所述数字数据的所述加密之前计算所述随机令牌和所述固定随机值的所述第一散列值的装置;以及用于在所述数字数据的所述加密之前将所述第一散列值提供给所述客户端终端的装置。
121.根据权利要求119或120所述的系统,其中,用于提供所述第一散列值的所述服务器装置还包括用于将所述部分生成的随机令牌提供给所述客户端终端的装置;其中,如果结合所述提供将所述第一散列值加密和解密,则所述装置还提供了按照与所述第一散列值相同的方式加密所述随机令牌;以及其中所述服务器还包括用于部分生成所述随机令牌的装置;用于在所述第一散列值的所述计算之前选择多个不同固定随机值的特定一个的装置;用于将所述多个不同固定随机值的所述特定一个与所述部分生成的随机令牌相关联的装置;用于在计算所述第二散列值的所述步骤之前,通过从所述提供的随机令牌确定所述部分生成的随机令牌、并随后识别其相关的固定随机值来确定所述多个不同固定随机值的所述特定一个的装置。
122.根据权利要求119至121中的任一项所述的系统,其中,所述服务器还包括用于根据所述对称加密方案、使用所述第二散列值作为密钥信息将对所述客户端终端的答复消息的数字数据加密的装置;以及用于将所述答复消息的所述加密的数字数据提供给所述客户端终端的装置;以及其中所述客户端终端还包括用于根据所述对称加密方案、使用所述第一散列值作为密钥信息将所述答复消息的所述加密的数字数据解密的装置。
123.根据权利要求119至122中的任一项所述的系统,还包括用于实现如权利要求106至118中的任一项所述的方法的装置。
124.一种具有计算机程序的计算机可读存储介质,所述计算机程序用于控制多个客户端终端参与并执行根据如权利要求105至118中的任一项所述的方法的操作。
125.一种具有计算机程序的计算机可读存储介质,所述计算机程序用于控制服务器参与并执行根据如权利要求105至118中的任一项所述的方法的操作。
126.根据权利要求105至118中的任一项所述的方法,还包括用新随机令牌替换所述随机令牌的步骤,其中将按照与原始随机令牌相同的方式使用所述新随机令牌。
127.根据权利要求126所述的方法,还包括由所述服务器生成所述新随机令牌的步骤;由服务器计算所述新随机令牌和所述固定随机值的新第一散列值的步骤;由所述服务器根据所述对称加密方案、使用所述第二散列值作为密钥信息将所述新第一散列值加密的步骤;将所述加密的新第一散列值随同或结合所述服务器对所述客户端终端的答复消息提供给所述客户端终端的步骤;由所述客户端终端使用所述原始第一散列值将所述加密的新第一散列值解密的步骤;由所述客户端终端获得所述新随机令牌的步骤;以及用所述新随机令牌替换所述客户端终端处的所述原始随机令牌、并用所述客户端终端处的所述新第一散列值替换所述原始第一散列值的步骤;其中所述新随机令牌和所述新第一散列值可按照相同的方式使用,并如针对相应的原始随机令牌和第一散列值所描述的那样被施加到所述方法的步骤。
128.根据权利要求127所述的方法,其中,由所述服务器生成所述新随机令牌的所述步骤包括使用由提供所述加密数字数据和所述先前获得的随机令牌的所述步骤提供的消息的预定部分,生成所述新随机令牌,其中,所述预定部分是以下的一个或多个所述解密的数字数据的预定部分,所述加密的数字数据的预定部分,对至少所述预定部分或所述完整的解密的数字数据执行的散列值,或对至少所述预定部分或所述完整的加密的数字数据执行的散列值。
129.根据权利要求128所述的方法,其中,由所述客户端终端获得所述新随机令牌的所述步骤包括以下步骤由所述客户端终端按照与所述服务器在生成所述新随机令牌的所述第一步骤中执行的相同的方式、使用同一消息的所述预定部分来生成所述新随机令牌。
130.根据权利要求127所述的方法,其中,由所述服务器生成所述新随机令牌的所述步骤独立于由所述客户端终端提供给所述服务器的任意消息或数据。
131.根据权利要求127、128或130所述的方法,其中,获得所述新随机令牌的所述步骤包括将所述新随机令牌提供给所述客户端终端的步骤,其中,在所述提供步骤之前和之后,按照与所述新第一散列值相同的方式或与所述新第一散列值一起将所述新随机令牌加密和解密。
132.根据权利要求128或129和权利要求112所述的方法,其中,由所述服务器生成所述新随机令牌的所述步骤还包括在所述服务器处生成与所述提供的消息无关的所述新随机令牌的一部分,所述方法还包括以下步骤在计算所述新第一散列值的所述步骤之前,选择所述多个不同固定随机值的特定一个;将所述多个不同固定随机值的所述特定一个与所述新随机令牌的所述生成部分相关联;以及在计算所述第二散列值的所述步骤之前,通过确定所述提供的随机令牌的所述生成部分并随后识别其相关的特定固定随机值,确定所述多个不同固定随机值的所述特定一个。
133.根据权利要求128或129和权利要求112所述的方法,还包括以下步骤由所述服务器在计算所述新第一散列值的所述步骤之前选择所述多个不同固定随机值的特定一个;由所述服务器在计算所述第二散列值的所述步骤之前,通过连续测试所述不同固定随机值的每一个以查看它在由所述服务器将所述加密的数字数据解密的所述后续步骤中是否产生合法结果,确定所述多个不同固定随机值的所述特定一个。
134.根据权利要求133所述的方法,其中,所述确定步骤取决于用于所述连续测试的定时时间表,其中,连续测试考虑所述多个不同固定随机值的至少一个。
135.根据权利要求126至134中的任一项所述的方法,其中,对于以下的至少一项生成、加密、提供、解密和替换新随机令牌对于所述客户端终端和所述服务器之间的每个通信和数据交换事务过程;对于预定数目的所述通信和数据交换事务;当发生与所述客户端终端相关的用户的请求时;以及当发生所述服务器的请求时。
136.根据权利要求119至123中的任一项所述的系统,其中,所述服务器还包括用于生成新随机令牌的装置;用于计算所述新随机令牌和固定随机值的新第一散列值的装置;以及用于根据所述对称加密方案、使用所述第二散列值作为密钥信息来将所述新第一散列值加密的装置;以及其中所述系统还包括用于将所述加密的新第一散列值连同或结合所述服务器对所述客户端的答复消息提供给所述客户端终端的装置;以及其中所述客户端终端还包括用于使用所述原始第一散列值将所述加密的新第一散列值解密的装置;用于获得所述新随机令牌的装置;以及用于用所述新随机令牌替换所述客户端终端处的所述原始随机令牌、并用所述客户端终端处的所述新第一散列值替换所述原始第一散列值的装置;其中,所述新随机令牌和所述新第一散列值可以按照相同方式使用,并且如关于相应的原始随机令牌和第一散列值所述的那样被施加到所述系统的装置。
137.根据权利要求136所述的系统,还包括用于实现如权利要求128至135中的任一项所述的方法的装置。
138.一种具有计算机程序的计算机可读介质,所述计算机程序用于控制多个客户端终端参与和执行根据如权利要求126至135中的任一项所述的方法的操作。
139.一种具有计算机程序的计算机可读介质,所述计算机程序用于控制服务器参与和执行根据如权利要求126至135中的任一项所述的方法的操作。
全文摘要
一种公钥系统中的服务器存储数字数据的指纹列表。为此指纹列表计算另一指纹,并将其提供给客户端终端。公钥系统中的客户端终端从该系统中的第一源获得数字数据的指纹列表。客户端终端还从第一源以及从第二源获得该指纹列表的指纹,以便比较所获得的两个指纹。
文档编号H04L9/32GK1695343SQ03825028
公开日2005年11月9日 申请日期2003年7月18日 优先权日2002年9月17日
发明者埃里科斯·皮特索斯 申请人:埃里科斯·皮特索斯
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1