基于认证的加密和公共密钥基础结构的制作方法

文档序号:7867371阅读:700来源:国知局
专利名称:基于认证的加密和公共密钥基础结构的制作方法
技术领域
本发明涉及通过计算机网络或其它类型的系统和装置的加密技术和保密通信技术,尤其涉及一种公共密钥加密技术的实施的改进方法。
背景技术
基于公共密钥加密技术的通信系统的用户利用两个不同的密钥,公共密钥和专用密钥,与另一用户通信。用户的公共密钥和专用密钥形成一个公共密钥/专用密钥对。消息的发送方通过使用接收方的公共密钥加密一条消息与消息接收方保密地通信。发送方随后将消息发送到使用该接收方的专用密钥解密该消息的接收方。
发送到基于公共密钥加密技术系统的用户的消息的保密性取决于该用户的专用密钥的保密性。虽然该用户的公共密钥对其它用户来说是可免费提供的,但是该用户将保密其专用密钥并且仅那些被特许接收发送到该用户的消息的用户才知道。
公共密钥加密技术的实施方案要求一个″基础结构″来管理例如密钥分配的要求及针对密钥有效性的确认。在加密一条送达接收方的消息之前,消息发送方必须已经存取该接收方的公共密钥。发送方还必须证实此密钥是有效并且无危害的。
在公共密钥加密系统中,信任的第三方→″认证中心(certificateauthority)″(CA)可以执行例如密钥分配和认证的功能。通常,CA针对其每一个客户用户发布一个″认证″连同CA的电子签名以确认该认证的有效性。该认证可靠地与几个量绑定在一起。通常,该认证包括例如客户的名称和客户的公共密钥的参数。还可以包括例如认证的发出日期和到期日的参数。通过发布客户的认证,该CA证明该相关公共密钥是真实的并且对应于该认证有效期的具体用户。
某些情况可能需要在认证的计划到期日之前撤销客户的认证。例如,假设另一方危害了客户的专用密钥,则可能需要撤销其认证。另外,客户可能不再被给予使用该公用密钥的权利。如果一个认证是可撤销的,则除非该CA发布认证状态信息表明认证当前有效,其它用户将不能依靠该认证。这种信息必须被刷新并且分发到所有的依赖方。发布这种大量的信息需要该CA方面的可观资源并且是普及公共密钥加密技术的实施的一个障碍。
提议解决密钥撤销问题的最熟知但低效的公共密钥基础结构(PKI)方案是一个认证撤销列表(CRL)。一个CRL是在计划的到期日之前被撤销的认证的列表。该CA周期性地发布带有其签名的列表以便确认该CRL的有效性。由于CA可能在多个认证的计划到期日之前撤销该多个认证,所以该CRL可能变得很长,尤其是在如果该CA已经具有许多客户的情况下。请求一个认证状态核查的每一方都接收此列表。对此方案的改进则要求仅发送自从前次CA的更新以来撤销的那些认证。但是,发送和基础结构的代价仍然高。
一种可选方案是在线认证状态协议(OCSP)。在此协议中,任何用户都能够查询关于该CA的任何客户的状态,包括客户的公共密钥的有效性。CA通过产生关于该认证的当前状态的一个新签名来响应每一查询。此计划降低了对每一查询单个签名的传输费用。然而,由于响应每一查询要求一个新签名,所以增加了计算成本。如果该CA被集中化,则由于保密性变得更易受拒绝服务(DoS)攻击的伤害,所以保密性也降低了。
一种更有前途的协议是Micali″Novomodo″体系。(S.Micali,1997年RSA数据保密会议报告集″Efficient Certificate Revocation″,S.Micali,Novomodo″Salable Certificate Validation and Simplified PKIManagement″,2002年PKI研讨会)Novomodo系统包括一个CA、一个或者多个发布认证信息的号码薄、和用户。但是,它在不牺牲保密性的条件下获得比CRL和OCSP更好的效率。Novomodo超过基于CRL的系统的优点在于,对认证状态查询的一个目录响应较一个CRL协议简明,而CRL的长度则随着撤销的认证的数量而增长。Novomodo具有胜过OCSP的几个优点。首先,CA的计算负载低得多。第二,不同于OCSP的分布的部件,该Novomodo中的目录无需被信任。第三,Novomodo不易受DoS攻击的影响。最后,虽然OCSP的目录-用户通信费用是低的,但是Novomodo的目录-用户通信费用一般会更低。然而,Novomodo仍然需要认证状态查询。
对包括认证状态查询的协议许多改进试图降低PKI计算和发送需求,并且提供了多种折衷方案。但是,消除或至少降低认证状态的查询有几个原因。首先,这种查询可能出自任何用户并且可能涉及任何客户。因此,系统中的每一CA服务器必须能够针对该CA的每个客户而确定该认证状态。第二,来自该客户的认证状态查询加倍了该CA的询问处理代价。如果N个客户查询的每一个每天都查询10个其它客户的状态,则该CA必须处理10N个查询。第三,从商业模式的角度看,不希望非客户的查询。从经济上看尚不清楚该CA将如何处理来自非客户的查询。最后,如上所述,如果该CA必须响应来自非客户的查询,则该CA将变得更易受DoS攻击的影响。
基于标识的加密系统删除了第三方查询。基于标识的加密系统是公共密钥加密系统,其中用户的公用密钥是从用户的标识(名字、地址、电子邮件地址、IP地址等)获得。一个信任的第三方使用该用户的标识和该信任的第三方持有的一个主秘密产生一个用户的专用密钥。在此类系统中,一个第一用户能够在不获得除了第二用户的标识信息和第二用户的CA的参数之外的明确信息的条件下加密对该第二用户的消息。只要该第二用户已经从其CA接收了一个更新的专用密钥,该第二用户就能够解密该消息。
在A.Shamir的″Identity-Based Cryptosystems and SignaturesSchemes(1984年计算机科学演讲记录196,Springer,47-53页)″中建议了一种基础标识的加密系统的构思。但是,实际的基于标识的加密方案直到最近也没有被找到。例如,基于标识的方案被建议在C.Cocks的AnIdentity-Based Encryption Scheme Based on Quadratic Residue,可在http//www.cesa.gov.uk/technology/id-pkc/media/ciren.pdf得到;D.Boneh、M.Franklin的文章Identity Based Encryption from the Weil Pairing(2001年计算机科学演讲记录2139,Springer,213-229页);及D.Boneh,M.Franklin的″Identity Based Encryption from the Weil Pairing(扩展版本),可在http//www.cs.stanford.edu~dabo/papers/ibe.pdf得到。Cocks的方案是基于″二次残余问题″的方案,虽然加密与解密(大约RSA的速度)适度地加快,但是有较大的信息扩展(即密文的比特长度是明码文本的比特长度的许多倍)。Boneh-Franklin的方案基于其关于″BilinearDiffie-Hellman问题″的保密性,并且当在超单值(supersingular)椭圆形曲线或阿尔贝尔(abelian)变形曲线上使用Weil或Tate pairings时,该方案相当快速和有效。
然而,现有的基于标识的加密系统只具有有限的的可接受性。一个主要原因在于这些系统都包括密钥附带条件。该CA知道在该加密系统中的全部秘密,因为其产生所有用户的专用密钥。结果是,现有的基于标识的加密系统已经是对消极攻击脆弱的加密系统,其中该CA或发现该主秘密的任何其它方都能够确定两个用户的共享秘密。
需要一种有效方案,使得加密系统的接收方用户仅在一个信任的第三方确认该接收方持有一个有效的专用密钥时才解密来自一个消息发送方的一个秘密消息。理想的情况是,这样的一个方案将不要求该消息发送方就接收方的专用密钥的状态而查询包括该第三方步骤的其它方面。这种方案也不具有第三方密钥附带条件的缺点。
因此,本发明的一个目的是提供一种不包括密钥状态查询或密钥附带条件的高效协议,其中只要一个接收方从第三方获得授权(例如最新认证),该消息接收方就能够从一个消息发送方解密一个消息。本发明的进一步的目的是提供这样的一种协议,其中该接收方的解密能力取决于几个方面的授权。本发明的另一目的是提供这样的一种协议,其中该第三方包括在该加密系统中的一个分级的授权实体。本发明的再一个目的是提供一种高效方法,为用户提供具有短有效期的一种专用密钥。本发明进一步的目的是提供这样一种协议,实现在包括大数目(例如数百万)用户的一个系统中的这种通信。

发明内容
本发明提供了用于实现一种保密和基于实际认证的加密方案的方法。
根据本发明的一个方面,提供用于以包括发送方、接收方和授权方的一种公共密钥加密方案编码和解码在一个发送方和一个接收方之间的一个数字消息的方法。该方法包括步骤产生一个接收方公共密钥/接收方专用密钥对和接收方加密密钥。选择属于是该授权方的秘密的一个密钥产生秘密。至少使用密钥产生秘密和接收方加密密钥产生一个接收方解密密钥,其中从接收方解密密钥形成的一个密钥和从接收方加密密钥形成的一个密钥是一对公共密钥/专用密钥。
至少使用该接收方公共密钥和该接收方加密密钥加密该数字消息,以便创建一个加密的数字消息。至少使用该接收方专用密钥和该接收方解密密钥解密该加密的数字消息。
本发明的另一方面提供一种在一个包括多个授权方的公共密钥加密系统中在一个发送方和一个接收方之间发送数字消息的方法,该多个授权方至少包括一个根授权方和在该根授权方和该接收方之间的一个分级之中的一个低级授权方。该方法包括步骤产生一个接收方公共密钥/专用密钥对和一个接收方加密密钥,其中该接收方加密密钥是使用该接收方的前代(ancestor)的至少之一的标识信息产生的加密密钥。
选择一个根密钥产生秘密并且根据该根密钥产生秘密而产生一个根密钥产生参数。随后产生一个接收方解密密钥,使得该接收方解密密钥与该接收方加密密钥、该根密钥产生秘密和该相关的根密钥产生参数相关。
使用该接收方公共密钥和一个接收方密钥加密该数字消息,以便创建一个加密的数字消息,其中从该接收方解密密钥形成的一个密钥和从该接收方加密密钥形成的一个密钥是一个公共密钥/专用密钥对。至少使用该接收方专用密钥和该接收方解密密钥解密该加密的数字消息。
本发明的另一方面提供一种在包括多个授权方的加密系统中产生用于一个实体的解密密钥的方法,该多个授权方包括至少一个根授权方和在该根授权方和该实体之间的分级结构中的低级授权方。该方法包括步骤产生一种根密钥产生秘密以及基于该根密钥产生秘密的一个根密钥产生参数。产生针对该低级授权方的一个低级密钥产生秘密。随后至少使用针对其相关的低级授权方的该低级密钥产生秘密产生针对低级授权方的一个低级密钥产生参数。
建立一个解密密钥产生时间表,限定针对用于该实体的一个解密密钥的有效期。产生用于该实体的解密密钥,使得该解密密钥至少与根密钥产生秘密和一个或多个低级密钥产生秘密相关。
本发明的另一方面提供了一种在包括发送方、接收方和多个授权方的一个公共密钥加密方案中在一个发送方和一个接收方之间发送数字消息的方法,其中该接收方只要其拥有来自该授权方授权即可解密该数字消息。该方法包括步骤产生用于该接收方的一个接收方公共密钥/专用密钥对以及用于每一个授权方的一个保密密钥。至少使用针对其相关授权方的保密密钥产生用于每一个授权方的一个公共密钥。以该保密密钥签署一个二进制数字串,以便产生一个针对每一个授权方的签名。
至少使用该接收方的公共密钥、该授权方的公用密钥、和由该授权方签署的二进制数字串加密该数字消息,以便形成一个密文。至少使用该接收方的专用密钥和由该授权方产生的签名来解密该加密的数字消息。
本发明的另一方面提供一种在一个公共密钥加密方案中在一个发送方和一个接收方之间发送数字消息的方法,该公共密钥加密方案包括发送方、接收方和多个授权方,该多个授权方至少包括一个根授权方和在该根授权方和该接收方之间分级的低级授权方,其中该接收方只要拥有来自该授权方的授权就能够解码该数字消息。该方法包括步骤产生用于该接收方的一个接收方公共密钥/专用密钥对以及用于该根授权方和每一个低级授权方的一个保密密钥。至少使用针对该相关授权方的保密密钥产生用于该根授权方和每一个低级授权方的一个公共密钥。
认证每一个都包含每个低级授权方的公用密钥的文件以便产生一个签名,其中包含每一低级授权方的公用密钥的该文件由在该分级结构中高于该低级授权方的授权方所认证。包括该接收方公共密钥和确定该接收方公共密钥的有效性的参数的一个文件由在该分级结构中高于该接收方一级的授权方所认证。
至少使用该接收方的公共密钥、该授权方的公用密钥、和该文件加密该数字消息,以便形成一个密文。至少使用该接收方的专用密钥和由该授权方产生的签名来解密该加密的数字消息。
本发明的另一方面提供了一种在包括发送方、接收方和授权方的一个公共密钥加密方案中加密和解密在一个发送方和一个接收方之间的数字消息的方法。该方法包括步骤产生一个接收方公共密钥/接收方专用密钥对,并且选择该授权方知道的一个密钥产生秘密。产生与时段i相关的一个接收方解密密钥,其中此密钥涉及该密钥产生秘密,并且其中能够从与时段i相关的该接收方解密密钥产生与早于i的时段相关的接收方解密密钥,而不是与迟于i的时段相关的接收方解密密钥。
使用该接收方公共密钥、与时段i相关的时段参数或与一个早先的时段相关的一个时段参数、以及一个接收方加密密钥加密该数字消息,来形成一个密文,以便创建一个编码的数字消息。至少使用该接收方专用密钥和与时段i相关的该接收方解密密钥来解密该加密的数字消息。
本发明的另一方面提供一种在一个公共密钥加密方案中在一个发送方和一个接收方之间发送一个数字消息的方法,该公共密钥加密方案包括发送方、包括接收方的多个客户以及授权方,其中该数字消息由该发送方加密并且当接收方被该授权方授权解密时由该接收方解密。该方法包括步骤产生一个接收方公共密钥/接收方专用密钥对和把该接收方与在一个B树中的分支节点相关的一个唯一的二进制字符串。还产生与该接收方分支节点的每个前代节点(ancestor node)相关的一个唯一的二进制字符串、和用于该接收方分支节点以及用于该接收方分支节点的每一前代节点的一个加密密钥,作为该授权方知道的一个主秘密。用于每个节点的该加密密钥至少与相关于该节点的该二进制字符串相关。
产生与该接收方分支节点的一个前代节点相关的一个接收方解密密钥,其中该前代节点不是与未被该授权方授权的一个客户相关的一个分支节点的前代节点。该接收方解密密钥至少与相关于该节点的二进制字符串和该主秘密相关。与该接收方分支节点的前代节点相关的该接收方解密密钥利用与该接收方分支节点的前代节点相关的该加密密钥来形成一个专用密钥/公共密钥对。
该发送方至少使用该接收方公共密钥以及与该接收方分支节点和该接收方分支节点的前代节点相关的加密密钥来加密该数字消息,以便产生一个加密的数字消息。该接收方至少使用该接收方专用密钥和与该接收方分支节点的前代节点相关的该接收方解密密钥来解密该加密的数字消息。


随后参考附图描述本发明的最佳实施例,其中图1示出根据本发明一个实施例的由一个消息接收方执行的步骤流程图;图2示出根据本发明一个实施例的由一个授权方执行的步骤流程图;图3示出根据本发明一个实施例的由一个消息发送方执行的步骤流程图;图4示出根据本发明的另一实施例的基于分级认证加密方案的流程图;图5示出根据本发明的一个实施例的另一基于分级认证加密方案的流程图;图6示出其中可以执行图5方法的一个典型分级结构的框图;图7示出说明根据本发明的另一实施例的编码和解码在一个发送方y和一个接收方z之间传递的一个数字消息M的一种方法的流程图;图8示出说明编码和解码一个数字消息M的一种方法的流程图;图9示出说明根据本发明的另一实施例的编码和解码在一个发送方y和一个接收方z之间传递的一个数字消息M的一种方法的流程图;图10示出说明一种高颗粒度(High-Granularity)加密方案的一个示意图;图11示出说明使用一个二进制树状结构的一种广播加密方案的流程图;图12示出所示使用覆盖概念的广播加密方案的一个框图。
具体实施例方式
本发明的方法提供了有效协议,使得仅当一个信任的第三方(该″授权方″)证明该接收方应该接收该消息时,在一个加密系统中的一个发送方才把一个秘密消息传递到一个接收方。
在下面描述的协议中,″发送方″和″接收方″表示一个加密系统的两个用户。这样的一个加密系统可以包括除了该发送方和接收方之外的许多用户。具体地说,该发送方表示第一用户,其希望把一个秘密消息传递到由接收方表示的一个第二用户。该消息可以包含任何类型的数字消息,包括使信息业务保密的对称加密技术算法使用的对话密钥。
术语″认证中心(CA)″表示负责管理该加密系统的公共密钥基础结构的实体。该CA的主要功能可以包括数字认证以及公共密钥的产生和分配。该CA可以是单一实体或可以包括实体的分布或分级结构。
术语″授权方″表示由使用该加密系统的消息发送方信任的第三方,保证一个消息接收方具有权限接收到达一个消息接收方的一个加密消息。该授权方可以是单一实体或可以包括实体的分布或分级结构。在许多系统中,该授权方和该CA将是同一个实体。但是将不总是如此。该消息接收方解密一个消息的能力将根据任意规定的一个或几个实体的授权而定。
术语″认证″表示由该加密系统的个人用户使用的对于其它用户标识和验证自身的一个标识符。一个认证具有某些属性,使得用户能够相信包含在该认证中的信息。通常,一个认证包括关于一个文件的数字签名,该文件包含的信息有例如认证持有者的标识、认证持有者的公共密钥、该CA的标识、发布日期、截止日期、序列号、和使得用户证实该认证是真实和有效的参数。为了证实该认证,该检验者必须知道签署的文件。此信息往往与该认证一起发送。
术语″公共密钥加密系统″表示一个加密系统,其中一个发送方把一个加密的鉴定发送到一个接收方。发送方使用该接收方的公共密钥加密该鉴定。接收方使用该接收方的专用密钥解密该加密的鉴定。这样的一个公共密钥和专用密钥形成一个″公共密钥/专用密钥对″。不可能从该接收方的公共密钥的知识而计算地确定该接收方的专用密钥。公共密钥加密系统的实例是其中专用密钥的保密性与因子分解大整数的难度相关的RSA加密系统,以及其中该专用密钥的保密性与离散对数问题相关的ElGamai加密系统。术语″形成一个公共密钥/专用密钥对″将由本领域技术人员理解为包括一种情形,其中被重新定义该公共和专用密钥的定义但是保持该密钥加密和解密信息的整体能力。
术语″树结构″和″B-树结构″表示保持一种数据的有序集合的数据结构。一个B-树结构包括″节点″、″分支″和把该节点和分支连接在一起的指针。″根节点″定义该B-树的基础的或第一级。一个指针把该根节点连接到每个第二级节点。该第二级节点是该根节点的子节点(child node)。该根节点是该第二级节点的父节点(parent node)。指针可以进一步把每一个第二级节点连接到它们自己的子节点等。″分支″节点是该B树的节点最高级节点。该分支节点是次于最高级节点的子节点并且没有它们自己的子级(children)。把一个节点连接到根节点的包括根节点本身在内的那些节点被称为这一节点的前代节点。
术语″二进制树″表示一个B树,其中除了分支节点之外的每个节点都至多具有两个子级。
术语″2-3树″表示一种B树,每一内部节点具有二或三个子级。
术语″Merkle树″表示一个B树结构,其节点储存数值,某些数值是利用一个单向函数H,例如指定方式的单向散列函数计算的。一个分支节点能够储存任意值,但是每个内部节点将储存属于是其子级中的数值的级连单向函数的一个值。例如,如果一个内部节点有两个子级,一个子级存储数值U而另一子级储存数值V,则此节点储存值H(UV)。
基于认证的加密本发明描述的是″基于认证的加密(CBE)″方案,其中一个加密系统的消息接收方的解密来自一个消息发送方的秘密消息的能力因一个或多个信任的授权方的授权而异。该消息接收方需要至少两个密钥来解密一个消息。这些密钥之一是由一个或多个授权方关于一个或多个文件的签字。本发明的CBE协议包括一个公共密钥加密方案和一个基于自适应标识加密(IBE)方案。这种协议允许包括大量用户(例如数百万用户)的CBE方案不破坏CBE需要的代数结构。在下面描述的协议中,一个发送方把一个加密的消息传递到一个接收方。
在该公共密钥加密方案中,例如接收方所必需的一个实体产生针对该接收方的一个公共密钥/专用密钥对(PKB,SKB)。该接收方的公共密钥可供包括该发送方的该加密系统的其它用户使用。其它用户能够使用此密钥加密发送到该接收方的信息。该接收方保持该接收方专用密钥秘密并且使用此密钥来解密以该接收方的公共密钥加密的信息。
一个CBE协议可以结合任意IBE方案。一个IBE方案使用称为专用密钥产生器(PKG)的一个信任的第三方。为了建立该方案,PKG产生一个主秘密s,并且公开包括屏蔽该主秘密s的公共密钥的某些系统参数params。该PKG可以具有许多客户。每个客户都具有某些ID,不过是标识客户字符串,例如客户的电子邮件地址。一个IBE方案中的主要算法是专用密钥产生、加密和解密。
在该专用密钥产生算法中,PKG使用s、params和ID来计算对应于一个给定ID字符串的一个专用密钥dID。该消息发送方随后使用该加密算法来计算针对使用params、ID和M的密码文本C。该消息接收方使用params、dID和C来恢复M。
在用于实现一个CBE方案的一个IBE方案中,该授权方使用属于是授权方秘密的一个密钥产生秘密来产生一个接收方″解密密钥″。该解密密钥利用一个接收方″加密″密钥形成一个公共的公共密钥/专用密钥对。在一个实施例中,该接收方解密密钥是利用该密钥产生秘密产生的关于该接收方加密密钥的一个签名。该消息发送方至少使用该接收方公共密钥和该接收方加密密钥加密该数字消息,以便创建一个加密的数字消息。该接收方使用该接收方专用密钥和该接收方解密密钥解密该加密的数字消息。由于该发送方既使用该接收方公共密钥又使用该接收方加密密钥加密该消息,所以该接收方既需要该接收方专用密钥又需要接收方解密密钥来解密该加密的消息。因为需要两种密钥,所以该接收方解密密钥无需被保持秘密。例如,由于该接收方解密密钥实际上是由一个或者多个授权方的签字,所以解密可以作为一个签字处置;其能被使用作为该接收方具有接收的适当授权的可检验的证明。
通常,该加密密钥能够对应于一个文件D而该解密密钥对应于该签字sD,该授权方使用该授权方的密钥产生秘密s在该文件D上的签字。如果该解密密钥,并且因此该加密密钥被使用一个该消息发送方知道的一个时间表所更新,则仅在接收方接收一个对应于用于加密该消息的加密密钥的一个解密密钥时,该消息发送方才能够加密该接收方能够解密的一个消息。
上面的方案通过避免对于发送查询来保证该接收方的专用密钥未被危害的需要而降低了在该加密系统上的基础结构的额外开销。该发送方只须知道加密密钥和该授权方把一个新的解密密钥发布到该接收方的时间表。没有一个更新的解密密钥,知道该接收方的专用密钥的攻击者将不能解密准备用于该接收者的消息。因此,如果例如该接收方的专用密钥被危害,则该CBE方案将使得该接收方解密消息的授权被撤销。在这种情形中,该授权方停止把解密密钥发布到该接收方。
该方案提供了附加优点,即不要求超过一个保密信道把解密密钥发送到该接收方。由于没有接收方的专用密钥和解密密钥就不可能解密,所以该接收方无需保持该解密密钥秘密。
由于该授权方知道该解密密钥,所以其能够解密由该加密密钥加密的消息。可是,该发送方通过既用该接收方的公共密钥又用加密密钥来双重地加密消息而避免密钥的附带条件。因为授权方不知道该接收方的专用密钥,所以该授权方不能解密该消息。
虽然该加密密钥能够对应于任意文件D,但是在许多情形中此文件包括诸如含有接收方的公共密钥(PKB)的接收方的识别信息(PKIDB)的参数,以及取决于授权方用之发布新的解密密钥的时间表的一个参数。
在一个CBE方案中,该接收方的加密密钥、接收方的公共密钥和描述由该授权方用之发布新的解密密钥的时间表的一个参数被分配到包括该发送方在内的本加密系统的用户。该接收方能够执行此功能。另外,一个信任的第三方,例如CA或授权方,可以执行该分配。
有效期和撤销如果该发送方使用当年有效的加密密钥加密对接收方的信息,则该接收方可以在当年期间使用对应的解密密钥解密。在此期间之后,接收方必须来自该授权方获得一个新密钥。同样,如果发送方使用当日有效的加密密钥加密一个消息,则该接收方必须每天获得一个新的解密密钥。使用这种方案,可以创建一个系统,其中在任何具体期望时段之后自动撤销密钥。类似地,该加密结构可以使得接收方能够仅在一个预定的未来时间解密来自发送方的消息。
在该加密密钥中也可以包括其它参数,例如接收方的保密等级。如果该发送方既使用一个时间参数又使用一个保密等级参数加密一个消息,则只有当该接收方已经更新了规定该需要的保密等级参数时该接收方才能够解密该消息。如果该接收方的保密等级改变,该接收方将不能解密该发送方的消息。
根据一个成对的CBE方案CBE方案可以结合任意IBE方案。这种方案的实例是根据与椭圆曲线或阿尔贝尔型(abelian variety)曲线相关的Weil或Tate对的那些方案。下面描述本发明的一个CBE方案的实施例。本实施例使用Boneh-Franklin IBE方案和由例如该接收方的识别信息(PKIDB)的参数组成的一个基于标识的加密密钥,包括接收方的公共密钥(PKB)以及根据该授权方用于发布新的解密密钥的时间表的一个参数。本实施例是高效的并且可证明是可靠地(以随机的预言模型)抵抗自适应选择的密文攻击。
参考附图,图1示出表示由一个消息接收方在设置阶段采用的步骤的流程图。这设置阶段出现在该接收方解密一个加密的消息之前。在步骤101中的,接收方使用一个公共密钥加密技术协议产生一个公共密钥/专用密钥对。在步骤102中,该接收方产生标识信息。在步骤103中,接收方把包括接收方的公共密钥的标识信息传递到包括该消息发送方的其它用户,以及传递到该授权方。
图2示出表示在参数设置和接收方认证过程中由该授权方采用的步骤流程图。如使用在CBE方案中那样,Boneh-Franklin IBE方案一般包括四个随机算法设置、认证、加密和解密。其中,该授权方等效于传统IBE方案中的专用密钥产生器(PKG)。
在设置过程中,授权方使用BDH参数产生器和一个保密参数k来产生某些初始排序(prime order)q的群组G1和G2和一个可采纳的成对(pairing)êG1×G1→G2。如果该成对是下列情况,则该成对被定义为是可采纳的双线性,对于所有的Q,R∈G1和所有的a,b∈Z,ê(aQ,bR)=ê(Q,R)ab;非退化,映射不把G1×G1中的全部成对都送至G2中的等同成对(identity);以及可计算,存在高效算法来针对任何Q,R∈G1而计算ê(Q,R)。
Boneh-Franklin IBE方案基于成对,例如与椭圆曲线或阿尔贝尔型曲线相关的Weil或Tate成对。这些方法的保密性是基于双线性Diffie-Hellman问题。其中,第一组G1最好是在椭圆曲线或阿尔贝尔型曲线上的一个点组,并且该组对于G1的依从关系可被写成相加的形式。
第二组G2最好是一个有限域的倍乘子组,并且该组对于G2的依从关系可被写成相乘的形式。但是,其它类型的组也可被使用作为与本发明一致的G1和G2。
如果P、aP、bP、和cP已知,但a、b和c未知,则该双线性Diffie-Hellman问题在于寻找ê(P,P)abc。由于ê(P,P)abc=ê(abP,cP),所以在G1中求解该Diffie-Hellman问题即求解该双线性Diffie-Hellman问题。类似地,如果g=ê(P,P)则gabc=(gab)c,由于其中gab=ê(aP,bP)及gc=ê(P,cP),所以在G2中求解Diffie-Hellman问题即求解该双线性Diffie-Hellman问题。例如,假定E是在有限域F上的一个超单值椭圆曲线或阿尔贝尔型曲线;假设P∈E(F)是一个l阶点(相对F特性的初始阶);并且假设ê是在E上的关于l的曲率Weil成对。设G1是通过P产生的组,G2是F的代数集合中的单元的第l个根组。如果f是E的一个自同构,使得f(P)∉G1,]]>则通过ê(Q,R)=ê(Q,f(R))限定êG1×G1→G2而给定满足上述给出的两个条件的函数ê。而且,此ê是非退化的。例如,假设ê(aP,bP)=ê(P,cP),则abP=cP。
在图2的步骤201和202中,授权方选择一个密钥产生秘密并且通过选择一个任意的产生器P∈G1、提取一个随机的sc∈Z/qZ、设置Q=scP、及针对某些n选择密码函数H1{0,1}*→G1,H1′{0,1}→G1和H2G2→{0,1}n而建立系统参数。其中,消息空间是 系统参数是params=(G1,G2,ê,P,Q,H1,H1′,H2),并且该授权方的主密钥产生秘密是sc∈Z/qZ。
在步骤203中的,授权方确认由接收方发送的包含接收方的公共密钥sBP的标识信息。在步骤204中,该授权方建立一个更新基于接收方的标识的解密密钥的一个时间表。如果验证令人满意,则授权方产生基于标识的解密密钥。该授权方计算PB=H1(InfB)∈G1,其中InfB包括该接收方的标识信息(包括该公用密钥)和例如一个有效期的辅助信息,并且计算P′B=H1(IDrec),其中IDrec包括该接收方的公用密钥。在步骤205中,授权方随后计算基于接收方标识的解密密钥scPB,并且将此消息发送到接收方。该授权方也可以在步骤206中把接收方的标识信息分配到其它用户。另外,其它实体可以执行此功能。
图3示出表示发送方在消息的加密过程中采用的步骤流程图。在步骤301和302中,该消息发送方获得接收方的公共密钥和系统参数。在步骤303中,发送方获得包括接收方的识别信息的基于该接收方的标识的加密密钥和包括基于授权方的标识的解密密钥产生时间表的辅助信息。
在步骤304中,发送方利用sBP和InfB以如下方式双重加密该消息 最初,发送方计算PB=H1(InfB)∈G1,P′B=H1′(IDrec),其中IDrec包括该接收方的公用密钥,随后选择一个随机的r∈Z/qZ。该发送方随后把密文设置为C=[rP,M_H2(gr)],其中g=ê(Q,PB)ê(sBP,P′B)∈G2在步骤305中,该发送方把该消息发送到接收方。
假设由接收者接收的密文是C=[U,V]。在解密期间,接收方使用SKB和sCPB恢复M。具体地说,该接收方首先计算SB=sCPB+sBP′B,然后计算V_H2(ê(U,SB))=M.
能够通过使用例如类似于由D.Boneh、&M.Franklin针对IBE的描述(2001)的方式的Fujisaki-Okamoto变换来实现在随机预言模式中的抵抗自适应选择密文攻击的保密的CBE。变换的方案使用两个附加密码函数H3和H4和一个语义对称的加密方案EH4(σ)。H3是能够从两个二进制数字串产生循环组Z/qZ的一个函数,H4是能够从另一二进制字符串生成一个二进制字符串的一个函数。H4(σ)是与E一起使用的密钥。
在变换的方案中,该消息发送方选择一个随机的σ∈{0,1}n并且设置r=H3(σ,M)。该发送方随后把密文设置为C=[rP,σ_H2(gr),EH4(σ)(M)]其中g=ê(Q,PB)ê(sBP,P′B)∈G2。
该消息接收方通过计算σ=V_H2(ê(U,sCPB))和M=H-1H4(σ)(W)来解密[U,V,W]。如果U≠rP,该接收方还设置r=H3(σ,M),并且拒绝密文。
分级的CBE在本发明的另一实施例中,一个CBE方案组合了基于分级标识加密(HIDE)方案和一个公共密钥加密方案。如在上述的非分级方案中讨论的那样,加密密钥能够对应于任何文件D。在下面的描述中,密钥被包括到例如接收方的识别信息(PKIDB),包括该接收方的公共密钥(PKB),以及描述该授权方用之发布新解密密钥时间表的一个参数。
共享部分抗共谋方案的基于分级标识的密钥在G.Hanaoka、T.Nishioka、Y.Zheng、H.Imai的文章″An Efficient Hierarchical Identity-BasedKey-Sharing Method Resistant Against Collusion Attacks″(1999年ADVANCES IN CRYPTOGRAPHY-ASIACRYPT,Lecture Notes inComputer Science 1716,Springer 348-362)中有所描述,以及在G.Hanaoka、T.Nishioka、Y.Zheng、H.Imai发表在COMPUTER JOURNAL上的文章″AHierarchical Non-Interactfve Key-Shaiing Scheme With Low Memory Sizeand High Resistance Against Collusion Attacks″中有所描述。另外,对基于分级表示的加密的介绍可见J.Horwitz、B.Lynn的文章″Toward HierarchicalIdentity-Based Encryption″(发表在ADVANCES IN CRYPTOGRAPHY-EUROCRYPT 2002,Lecture Notes in Computer Science.Springer)。Horwitz以及Lynn建议了一个两级分级方案,以第一级全部抗共谋并以第二级局部抗共谋(即用户能够共谋获得其领域PKG的秘密并且随后按照该域PKG伪装)。但是,该Horwitz Lynn系统的复杂性随着在该第二级的抗共谋增加,并且因此该方案不能作到既实用又保密。
保密且实用的HIDE方案在共同未决的专利申请(代理参考号10745/107)中有所描述,该专利申请的内容由本申请参考。
本分级CBE(HCBE)方案把HIDE方案适应到CBE,并且包括六个随机算法根设置、低级设置、认证、提取、加密和解密。四个算法依赖于在该分级结构中的有关实体的标识。每一用户在该分级结构中具有一位置最好可以由其ID的多元组(ID1,...,IDt)定义。在该分级结构中的该用户的前代是根授权方和低级授权方,其ID多元组是{(ID1,...,IDt)1≤i≤t-1}。最好是二进制字串表示用于计算目的的ID多元组。
该根设置算法类似于上述用于非分级方案的算法。该根授权方以与在非分级方案中的授权方同样的方式而使用一个保密参数k产生公共的系统参数params和一个根密钥产生秘密。同样,该系统参数将是可公众得到的,但是仅该根授权方才知道该根密钥产生秘密。
在该低级设置算法中,低级授权方可以从该根授权方检取该系统参数。不同于该根授权方,该低级授权方不具有使用在该加密算法中的″低级″参数。可是,此限制不一定阻止一个低级授权方产生其自己的低级秘密,该低级秘密可以使用来产生并发出基于标识的解密密钥到其用户。一个低级授权方可以产生其自己的低级密钥产生秘密用于提取的目的。另外,一个低级授权方可以产生用于每一提取的随机的一次秘密。
在该提取算法中,一个父代授权方(根授权方或低级授权方)验证由该分级结构中的紧接的子授权方发送的标识信息。该父代授权方还可以建立一个时间表用于子授权方的接收方的基于标识的解密密钥的更新。如果验证令人满意,则该父代授权方产生一个基于标识的解密密钥用于该子授权方。如在非分级的方案中那样,此基于标识的解密密钥是利用系统参数、该子授权方的标识信息和例如有效期的辅助信息产生的。该子授权方的基于标识的解密密钥还与至少一个前代授权方的密钥产生秘密相关。该父代授权方随后把此解密密钥发送到该子授权方。该子授权方的标识信息可提供到其它用户。
在该认证算法中,具有在该分级结构中的至少一个前代的一个签名授权方确认由该接收方发送的包括该接收方的公共密钥PKB的标识信息。该授权方还建立一个用于更新基于接收方的基于标识的解密密钥一个时间表。如果验证令人满意,则该授权方产生一个基于标识的解密密钥SKHIDB用于该接收方。如在非分级的方案中那样,此密钥SKHIDB是利用系统参数、该接收方的标识信息(包括该公用密钥)和例如有效期的辅助信息产生的。SKHIDB也与至少一个先代(ancestral)授权方的密钥产生秘密相关。该授权方随后把密钥SKHIDB发送到该接收方。该接收方的标识信息InfB可提供到其它用户。
在加密算法中,发送方既使用意欲的接收方的公共密钥PKB和params又使用由包括在InfB中的信息和该意欲接收方的ID多元组所组成的该接收方的基于标识的加密密钥来双重编码发送到一个意欲的接收方的消息M。
反之,在该解密算法中,该接收方解码该密文C,以便使用该接收方的专用密钥SKB和基于标识的解密密钥(SKHIDB)来恢复该消息M。
基于成对的分级CBE本发明的HCBE方案的一个实施例是基于成对,比如与椭圆曲线或阿尔贝尔型曲线相关的Weil或Tate成对,并且关于上述的双线性Diffie-Hellman问题。
图4示出说明根据本发明一个实施例的在包括多个授权方的一个HIDE系统中编码和解码数字消息的一种方法的流程图。该授权方包括至少一种根授权方和在根授权方和该接收方之间分级的n个低级授权方,其中n≥1。在步骤402中,该根授权方选择仅由该根授权方知道的一个根密钥产生秘密。该根授权方随后根据该根密钥产生秘密在步骤404中产生一个根密钥产生参数。该低级授权方在步骤406中选择低级密钥产生秘密。象该根密钥产生秘密一样,每一个低级密钥产生秘密仅由其相关的低级授权方知道。在步骤408中,针对n个低级授权方的每一个产生低级密钥产生参数。至少使用针对其相关的低级授权方的该低级密钥产生秘密产生针对低级授权方的低级密钥产生参数的每一个。象该根密钥产生参数一样,每一个低级密钥产生参数屏蔽其相关的低级密钥产生秘密。
使用该密钥产生参数和基于接收方标识的加密密钥至少之一,该发送方在步骤410中编码该消息以便形成一个密文。例如,该发送方可以仅使用该根密钥产生参数和该接收方的公共密钥来编码该消息。另外,该发送方可以使用该低级密钥产生参数之一,如下面参考双重HCBE方案更详细描述的那样。在步骤412中,一个低级授权方针对该接收方产生一个基于标识的解密密钥,使得该基于标识的解密密钥至少与n个低级密钥产生秘密至少之一相关。例如,该接收方的基于标识的解密密钥最好至少与发布该基于标识的解密密钥到接收方的该授权方的低级密钥产生秘密相关。另外,该接收方的基于标识的解密密钥可被与其全部n个先代的授权方的低级密钥产生秘密相关,以及与该根密钥产生秘密相关。在步骤414中,该接收方至少使用其基于标识的解密密钥和其专用密钥解码该密文并且恢复该消息。
就象根授权方一样,每一低级授权方都具有一个密钥产生秘密。如上所述,一个低级授权方最好使用这一秘密来产生针对每一子级的专用密钥,就象该根授权方所做的那样。但是,该低级授权方无需总是使用同一个秘密用于每一基于标识的解密密钥提取。相反,可以针对每一个授权方的客户随机产生一个新密钥产生秘密。
由于一个低级授权方能够针对该接收方产生一个基于标识的解密密钥(步骤412),所以该根授权方无需自行产生全部的基于标识的解密密钥。另外,由于该低级授权方使用它自己的密钥产生秘密来产生用于其客户的基于标识的解密密钥,所以对一个低级密钥产生秘密的危害仅引起对于该分级结构的有限的保密性破坏。不是危害在该分级结构中的全部基于标识的解密密钥,一个低级授权方的破解仅危害那些使用该授权方的密钥产生秘密产生的基于标识的解密密钥(即仅直接属于该被危害的授权方的分级下代分支的那些用户的基于标识的解密密钥)。
本实施例的另一优点是,该发送方无需是在该分级结构中把一个编码消息发送到该接收方。该发送方只须知道该接收方的标识、接收方的公共密钥和由根授权方产生的系统参数。然而当该发送方是在该分级结构之内时,有可提供的本发明的HIDE方案的某些附加优点。例如,当发送方和接收方都在该分级结构中时,使用双方的标识将提高该消息加密的效率。由于该发送方和该接收方双方的标识都被用作该加密与解密算法的输入,所以这类HCBE方案被称之为双重HCBE。现参考图5和6讨论使用双重HCBE方案的编码和解码一个消息的方法。
图5示出说明根据本发明的另一实施例的加密和解密在一个发送方y和一个接收方z之间的消息的一种方法的流程图。图6示出说明一个典型分级结构的框图。象前面的实施例一样,此方法是在一HCBE系统中的执行,该HCBE系统包括至少一个根授权方602和在该分级结构的、在该根授权方602和该接收方z608之间的n个低级授权方604a、604b、604d,其中n≥1。在该实施例中的发送方y也必须在该分级结构中,并且该分级结构还包括在该根授权方602和该发送方y606之间的m个低级授权方604a、b、c,其中m≥1。m个授权方604a、b、c在根授权方602和发送方y606之间,并且n个授权方604a、b、d在根授权方602和接收方z608之间,其中有1个授权方604a、b属于是该发送方y606和接收方z608的共同前代,其中1≤l≤m,n。例如图6示出这些l个共同先代授权方的两个(CAy1/CAz1604a和CAyl/CAzl604b)。
当该根授权方602选择仅由根授权方知道的一个根密钥产生秘密时,本实施例的方法以步骤502开始。该根授权方602随后根据该根密钥产生秘密在步骤504中产生一个根密钥产生参数。该低级授权方604a-d在步骤506中选择低级密钥产生秘密。象该根密钥产生秘密一样,每一个低级密钥产生秘密仅由其相关的低级授权方604a-d知道。在步骤508中,针对n个低级授权方604a-d的每一个产生低级密钥产生参数。至少使用针对其相关的低级授权方604a-d的该低级密钥产生秘密产生每一个低级密钥产生参数。
在步骤510中,发送方的父代CAym604c产生针对发送方y 606的基于标识的解密密钥,使得该基于标识的解密密钥与m个低级密钥产生秘密至少之一相关,该m个低级密钥产生秘密与在该根授权方602和发送方y606之间的m个低级授权方604a、b、c相关。例如,该发送方的基于标识的解密密钥最好至少与该发送方的父代CAym604c的低等级密钥产生秘密相关。另外,该基于发送方的标识的解密密钥可以与在其直接先代授权方的低级密钥产生秘密中的全部m个秘密相关,以及与该根密钥产生秘密相关。基于该发送方的标识的加密密钥能够对应于任何文件D,但是在下列描述中,该密钥由包括该发送方的公共密钥(PKA)、以及描述授权方用之发布新解密密钥的时间表的一个参数的发送方标识信息(PKIDA)组成。在步骤512中的,该接收方的父代CAzn604d以类似于发送方的父代CAym604c用于产生该发送方的基于标识的解密密钥的方式产生用于该接收方z的一个基于标识的解密密钥。如在HCBE中那样,该接收方的基于标识的加密密钥能够对应于任何文件D,但是在下列描述中,该密钥由例如包括接收方的公共密钥(PKB)的标识信息(PKIDB)的参数以及描述该授权方用之发布新解密密钥的时间表的参数组成。
在步骤514中,该发送方编码该消息以便形成一个密文。该发送方至少使用接收方的公共密钥、发送方的基于标识的解密密钥以及一个或者多个与在该根授权方602和发送方y606之间的(m-l+1)个授权方(即CAyl604b和CAym604c)相关的低级密钥产生参数,该发送方y606是在或低于属于是发送方y606和接收方z608共同的最低前代授权方(CAyl/CAzl604b)的等级。在进行该消息的编码中,该发送方y606最好不使用任何与属于是高于该最低共同前代授权方(CAy1/CAz1604b)的(l-1)个授权方(即CAy1604a)相关的该低级密钥产生参数。同样,该低级密钥产生参数与该接收方的标识信息和包括授权方的基于标识的解密密钥产生时间表的辅助信息相关。
接收方z608随后在步骤516中解码该密文以便恢复该消息。该发送方至少使用接收方的专用密钥、接收方的基于标识的解密密钥以及一个或者多个与在该根授权方602和接收方z608之间的(m-l+1)个授权方(即CAz1604b和CAzn604c)相关的低级密钥产生参数,该接收方z608是在或低于属于是发送方y606和接收方z608共同的最低前代授权方(CAy1/CAz1604b)的等级。在进行该消息的编码中,该接收方y606最好不使用任何与属于是高于该最低共同前代授权方(CAy1/CAz1604b)的(l-1)个授权方(即CAz1604a)相关的该低级密钥产生参数。
由于需要使用很少的密钥产生参数,所以本发明该双重HCBE实施例提供了用于编码和解码该消息的一种更有效的方案。例如,在一常规HCBE方案中进行的解码要求全部n密钥产生参数,而在双重HCBE方案中进行的解码仅要求(n-1)个密钥产生参数。双重HCBE方案要求发送方y606在把一个编码消息发送到该接收方z608之前获得其基于标识的解密密钥,而常规的HCBE方案仅获得根授权方的公共系统参数。
该双重HCBE方案还使得发送方y606和接收方z608能够使用密钥附带条件的受限形式,如下面更完整描述的那样。除了其最低共同前代CAy1/CAz1604b之外,第三方不知道此共享秘密。然而,本发明的CBE方案完全避免了密钥的附带条件。然而,双重HCBE继续提供了更短的密文长度和解密时间的优点。
图7示出说明根据本发明的另一实施例的编码和解码在一个发送方y和一个接收方z之间传递的一个数字消息M的一种方法的流程图。如图6所示,接收方z608低于该根授权方n+1等级,并且与该ID多元组(IDz1,...,IDz(n+1))相关。接收方的ID多元组包括与接收方关联的标识信息IDzi,标识信息IDzi又与其n个在该分级结构中的先代低级授权方的每一个相关。
本方法以步骤702开始,产生单元的第一和第二循环组G1和G2。在步骤704中,选择函数ê使得可采纳的成对ê能够从第一循环组G1的两个单元产生该第二循环组G2的一个单元。在步骤706中选择这第一循环组G1的一个根产生器P0。在步骤708中,选择与根授权方602相关并且仅由其所知的一个随机根密钥产生秘密s0。最好是s0是循环组Z/qZ的一个单元。在步骤710中产生一个根密钥产生参数Q0=s0P0。Q0最好是循环组G1的一个单元。在步骤712中,选择第一函数H1使得H1能够从第一二进制数字串中产生该第一循环组G1的一个单元。为了简化起见,只有一个函数能够从第一个需要使用的二进制数字串中产生第一循环组G1的一个单元,但是在该算法中可以在不同点使用此类型的几个不同函数。在步骤714中选择第二函数H2,使得H2能够从该第二循环组G2的一个单元中产生一个第二二进制数字串。步骤702至714的功能是上述非分级和HCBE根设置算法的一部分,并且能够被大约同时地执行。
随后的系列步骤(步骤716至724)表示作为低级设置算法一部分执行的功能。在步骤716中,针对接收方的n个先代低级授权方的每一个产生一个单元Pzi。对于1≤i≤n的每一个单元Pzi=H1(ID1,...,IDzi),最好是该第一循环组G1的一个单元。虽然以单一步骤表示,但是全部公共单元Pzi的产生可以随着时间出现而不是同时出现。
选择一个低级秘密szi(步骤720)用于接收方的n个先代低级授权方604a、b、d的每一个。该低级秘密szi最好是用于1≤i≤n的循环组Z/qZ的单元,并且每一低级密钥产生秘密szi都最好是仅由其相关低级授权方知道。同样,虽然中单个步骤表示,但是全部秘密szi的选择可以随着时间出现而不是同时出现。
针对发送方的n个先代低级授权方的每一个产生一个低级秘密单元Szi。对于1≤i≤n的每一个低级秘密单元Szi=Sz(i-1)+sz(i-1)Pzi最好是该第一循环组G1的一个单元。虽然以单个步骤表示,但是象公共单元Pzi和秘密szi一样,全部秘密单元Szi的产生可以随着时间出现,而不是同时出现。
还针对接收方的n个低级授权方的每一个产生一个低级密钥产生参数Qzi(步骤724)。针对1≤i≤n的每一个密钥产生参数Qzi=sziP0最好是该第二循环组G2的一单元。同样,虽然中单个步骤表示,但是全部密钥产生参数Qzi的产生可以随着时间出现而不是同时出现。
执行随后两个步骤(步骤726和728)的功能作为上述认证算法的一部分。在步骤726中产生与该接收方z相关的一个接收方单元Pz(n+1)。该接收方单元Pz(n+1)=H1(Infz(n+1),IDz1,...,IDz(n))最好是该第一循环组G1的一个单元。其中,lnfz(n+1)是一个二进制数字串,可以包括接收方的公共密钥和例如该接收方的基于标识的解密密钥的有效期的辅助信息。随后在步骤728中产生与该接收方z相关的一个接收方秘密单元Sz(n+1)。而且该接收方解密密钥Sz(n+1)=Szn+sznPz(n+1)=Σi=1n+1sz(i-1)Pzi]]>最好是第一循环组G1的一个单元。使用该接收方解密密钥和SKB,该接收方计算SB=Sz(n-1)+sBP′B。
为了方便起见,该第一函数H1可选地选择一个重复函数,使得例如该公共点Pi可被按照H1(Pz(i-1),IDzi)而不是H1(ID1,...,IDzi)计算。
图7示出的最后两个步骤(步骤730和732)表示上述的加密与解密算法。在步骤730中,发送方加密该消息M以产生一个密文C。最好使用至少该接收方的公共密钥和该根密钥产生参数Q0进行编码。接收方在步骤732解密该密文C以便恢复该消息M。最好使用至少该低级密钥产生参数Qzi和该接收方解密密钥以及接收方专用密钥进行解码。现参考图8和9讨论在该消息M和该密文C的编码和解码中的该参数和单元的具体使用的情况。
图8示出说明根据本发明的另一实施例的编码和解码在一个发送方y和一个接收方z之间传递的一个数字消息M的一种方法的流程图。在此方案称为基本HCBE的根设置、低级设置、提取和认证算法与图7的步骤702至728示出的实施例相同。因此,图8的流程图以步骤830a中的一个随机加密参数r的选择为起点。r最好是循环组Z/qZ的一个整数。随后在步骤830b中使用公式C=[rP0,rPz2,...,rPz(n+1),V]产生密文C,其中V=M_H2(gr),而g=ê(Q0,Pz1)ê(sBP,P′B)。这里的sBP是接收方公共密钥,P′B是H1(Infrec),其中Infrec包括接收方的公共密钥。
在该消息已经编码之后,可以根据该基本HCBE解密算法解码,其中使用下面的公式从密文C中恢复该消息(步骤832)M=V⊕H2(e^(U0,Sn+1)Πi=2n+1e^(Qi-1,Ui))]]>已知的用于实现单向的加密方案保密地抵抗选择的密文攻击的几种方法允许一个基本的HCBE方案到一个完整的HCBE方案的转换,该完整HCBE方案是以随机预言模式保证选择的密文保密的方案。图9示出基于完整HIDE的选择密文保密的方案。
图9示出根据本发明的另一优选实施例的编码和解码在一个发送方y和一个接收方z之间传递的一个数字消息M的一种方法的流程图。除了本实施例的根设置算法需要两个附加功能之外,本实施例的根设置、低级设置、提取和认证算法与参考图7描述的有关实施例相同。因此,图9的流程图以该附加功能的选择开始(步骤915a和915b),并且继续该加密与解密算法(步骤930a至932d)。
通过选择一个第三函数H3(步骤915a)和第四函数H4(步骤915b)完成根设置算法。该第三函数H3最好能够从两个二进制数字串中产生该循环组Z/qZ的一个整数。该第四函数H4最好能够从另一二进制字符串产生一个二进制字符串。
加密算法以步骤930a开始,示出一个随机二进制字符串σ的选择。然后使用该随机二进制字符串σ产生一个随机随机的r=H3(σ,M),如图中的步骤930b所示。W是使用一个对称加密算法E、并使用H4(σ)作为加密密钥产生的实际消息M的一种对称的加密。因此,W=EH4(σ)(M)。在框930c中,该密文C=[U0,U2,...,Un+1,V,W]。密文C包括针对2≤i≤n+1的单元U0=rP0和U1=rPzi,与接收方的公共密钥和接收方在该分级结构中的位置有关。该密文C的第二部分是加密形式的二进制字符串σ,V=σ_H2(gr),其中g=ê(Q0,Pz1)。该单元g最好是该第二循环组G2的一个成分。如上所述,该密文C的第三部分是加密形式的实际消息。
解密算法以步骤932a开始,示出一个随机二进制字符串的恢复。使用公式σ=V⊕H2(e^(U0,Sz(n+1))Πi=2n+1e^(Qi-1,Ui))]]>恢复该随机二进制字符串σ。随后使用公式M=EH4(σ)-1(W)]]>从密文C恢复该消息M(步骤932b)。可以有选择地检验该密文以便实现内部一致性。例如,如图中的步骤932c所示可以产生一个实验的随机整数r′=H3(σ,M)。随后可在步骤932d中使用该实验的随机的整数r′来确认针对2≤i≤n+1的U0=r′P0和Ui=r′Pzi。如果是,则认为该密文C是真实的。
参考图5和6描述的双重HCBE的构思可被应用到基本的HCBE和完整的HCBE方案。当发送方和接收方都在该分级结构中时,如图6所示,双重HCBE将使得它们提高其加密通信的效率和保密性。双重HCBE对基本HCBE和完整HCBE方案的应用需要确定附加信息,大部分附加信息是通过上述的低级设置算法确定的。例如,必须针对发送方的m个先代低级授权方而确定单元Pyi、低级密钥产生秘密syi、低电平秘密单元Syi和低级密钥产生参数Qyi。但是应该指出,对于属于是该发送方y和接收方z的共同前代的该低级授权方来说,这些参数最好是相同的以便于分析该发送方y和该接收方z的目的(即对于全部的i≤l来说Pyi=Pzi,syi=szi,Syi=Szi和Qyi=Qzi)。双重HCBE还需要使用与如上所述针对接收方确定这些参数的相同的方法来确定用于发送方的一个发送方公共单元Py(m+1)和发送方秘密单元Sy(m+1)。
给定这些附加参数,可以通过使用针对i≥l的该低级密钥产生参数Qyi和发送方秘密单元Sy(m+1)、而不使用针对i<1的该低级密钥产生参数Qyi来编码一个消息M,以便产生根据双重HCBE原理的一个密文C。类似地,可以使用针对i≥l的该低级密钥产生参数Qzi和该接收方秘密单元Sz(n+1)、而不使用针对i<1的该低级密钥产生参数Qzi来解码该密文C,以便恢复该消息M。
例如,在一基本HCBE方案(图7和8)中,双重HCBE的应用改变该消息M的编码,以便产生一个密文C=[U0,Ul+1,...,Un+1,V],其中U0=rP,并且针对2≤i≤n+1的Ui=rPzi,其中V=M_H2(gylr),并且其中gyl=e^(P0,Sy(m+1))Πi=1+1m+1e^(Qy(i-1),Pyi).]]>以前面同样的方式计算该Ui因数,但是对它们的需要很少。但是,双重-基本HCBE确实需要该发送方y使用比如上所述为产生g所需要的更多的密钥产生参数Qyi来产生gyl。这是由于该加密算法结合该发送方的标识。
该解密算法的效率的增加是更显著的。使用M=V⊕H2(e^(U0,Sz(n+1))Πi=l+1n+1e^(Qz(i-1),Uzi))]]>恢复该消息M。同样需要很少的Ui参数。类似地,该接收方针对双重HCBE所需要的密钥产生参数Qzi比针对非双重HCBE所需要的密钥产生参数Qzi要少。
还可以修改完整的HCBE来创建一个双重完整HCBE方案,在该加密算法中的该密文C的产生被修改,使得C=[U0,Ul+1,...,Un+1,V,W]其中U0=rP,并且对于l+1≤i≤n+1来说,Ui=rPzi。仍然以相同的方式,W=EH4(σ)(M)来产生W和r参数,但是在V=σ_H2(gryl)中的该gy1参数是使用gyl=e^(P0,Sy(m+1))Πi=l+1m+1e^(Qy(i-1),Pyi)]]>产生的。
还将在一个双重完整HCBE方案中修改该解密算法。使用σ=V⊕H2(e^(U0,Sz(n+1))Πi=l+1n+1e^(Qz(i-1),Uzi))]]>恢复该随机二进制字符串σ。否则,该消息M的恢复不改变。
集合签字CBE在本发明的另一个实施例中,可使用一种方案把签名压缩在到达单一点的一个授权链路中的任何类型的消息上,即假定有来自n个不同用户的n个不同消息的n个签字,则有可能把全部这些签字集合到单个短签字中。D.Boneh、C.Gentry和B.Lynn以及H.Shacham的文章″Verifiably EncryptedSignatures from Bilinear Maps″(eprint archive,2002,可在http//eprint.iacr.org/2002/175/得到)描述了一种宽带高效集合签字方案,其中由多个签字人在多个文件上的多个签字可被紧凑地表示为在一个椭圆曲线上的单一点。
在这种基于集合签字的CBE协议中,接收方如果拥有除了接收方的专用密钥SKB之外的由授权方产生的签字,则该接收方将只能解密一个加密的消息。其中,加密系统的用户可轻易地得到每一需要签名人(G1的一个单元)的公用密钥,作为在该椭圆曲线上的一点P以及把消息映射到在该椭圆曲线上的点的一个函数H。
在集合签字CBE的一个实施例中,该第i个签字人选择si作为其专用密钥,并且计算siP作为其公共密钥。该第i个签字人随后通过计算PMi=H(Mi)签署一个文件Mi,并且发送其签名Si=siPMi到接收方。包括该检验方的任何实体都能够通过其签字人检验该ê(P,Si)=ê(siP,PMi)来验证Si是一个合法签字。任何实体也可以通过取和来集合该签字。得知集合签字S、签字人的公用密钥、以及正被签署的各个文件的任何实体都能够通过检查ê(P,S)=∏ni=1ê(siP,PMi)来检验该集合签字是合法的。
该消息发送方加密其消息以使该消息接收方需要该接收方专用密钥和一个指定的集合签字以便解密。使用该消息接收方的公共密钥、该指定签字人的公用密钥和将被签字的指定文件,该消息发送方通过以下述方式设置该密文来加密一个消息MC=[rP,M_H2(gr)],其中g=ê(sBP,P′B)∏ni=1ê(siP,Pmi)并且其中P′B=H1(Infrec).
该消息接收方计算gr=ê(rP,S),实现该消息M的恢复。
文件Mi可以包括任何类型的数字消息以及一个或多个授权方可以签署不同文件。在本发明的一个实施例中,文件Mi包括针对接收方的公共密钥的有效期并且能够包括其它标识信息,包括该接收方的公共密钥。在该实施例中,只要该集合签字包括该第i签字人的关于Mi的签名、证明该接收方的公共密钥对于时段i有效时,该接收方才能够解密。
在本发明的另一个实施例中,授权方形成包括在该分级结构中的该根授权方和该实体之间的至少一个根授权方和n个低级授权方的一个集合签字,其中n≥1。例如,该接收方可以是在具有授权方的分级结构中的等级t,具有针对0≤k≤t-1的公共密钥SKP。每一个授权方确认该授权方的公用密钥在它之下,生产针对0≤k≤t-2的sKPK+1,其中PK+1=H1(CAK+1name,sK+1P)。其中,CAk+1name是用于在等级k+1的该授权方的标识信息。在等级t-1的授权方确认该接收方,生产St-1PB,其中PB=H1(接收方name,sBP,i)。其中,接收方name是接收方的标识信息,sBP是接收方的公共密钥,而i是确定该接收者的公共密钥有效期的一个参数。
为了加密M,发送方选择一个随机的r∈Z/qZ而且创建密文C=[rsBP,M_H2(gr)],其中g=∏ni=1ê(PK,sK-1P)。为了解密,接收方被假设已经拥有t个认证SB=st-1PB+Σk=1t-1sk-1Pk]]>的集合。该接收方计算sB-1SB并且随后解密M=V⊕H2(e^(rsBP,sB-1SB)).]]>其中,加密包括t对计算。但是,解密时间和密文长度与Boneh-Franklin相同。该方法提供了胜过上述分级方案的优点,其中密文的长度实际上正比于t。
如上提及的方案那样,能以在随机预言模式中使用Fujisaki-Okamoto变换的选定密文保密来实现集合签字CBE。
使用基于常规成对签字的CBE上面的描述讨论不同的基于成对的CBE实施例,其中该接收方解密密钥是一个基于成对的签字。例如,在最简单的基于成对的CBE的版本中,接收方解密密钥属于是在单个文件上的单一授权方签名的G1的单个单元。在基于成对的HCBE和双重HCBE的实施例中,该接收方解密密钥是在包括多个G1的单元的单个文件上的基于分级标识的签名。在该基于成对的集合签字CBE的实施例中,该接收方解密密钥表示由多个签字人在可被集合到G1的单个单元的多个文件上的多个签字。通常,在这些签字方案中的验证算法通过确认公共密钥点和消息点对的乘积而工作,例如用于集合签字的siP和PMi,等于签字点和虚拟点对的乘积,例如用于集合签字的siPMi和P。在本发明的另一个实施例中,任何基于成对的方案都可被用于构成一个基于成对的CBE方案,其中一个基于成对的签字方案在此被定义为其中的验证算法通过确认该公用密钥点和消息点对的乘积等于签字点和虚拟点对的产品而工作。
例如,假设该验证算法证实该∏ni=1ê(Qi,PMi)=∏ni=1(Si,Di),其中Q是公用密钥点,P是消息点,S是签字点,而D是解密点,不必是彼此不同的点。如果该签字方案固定,则可以构成一个基于固定成对的CBE方案。发送方选择一个随机r∈Z/qZ并且产生密文C=[rD0,rD1,...rDn,M_H2(gr)],其中g=ê(sBD0,P′B)∏ni=1ê(Qi,PMi)。如果该消息接收方拥有全部的签字点-即全部的必要授权,则该接收方可以计算gr=ê(rD0,sBP′B)∏ni=1(Si,rDi),并且因此计算M。如前面所述,该方案能够使用该Fujisaki-Okamoto变换以随机预言模式实现选择的密文保密。
高颗粒度CBE本发明的另一实施例把一个CBE方案与一个反向操作的正向保密加密方案组合来生产一个高颗粒度CBE方案。
在一个传统的正向保密的加密方案中,系统的使用寿命分成若干时段,每一个时段限定一个密钥有效期。此时段等效于在一个CBE系统中的该基于标识的解密密钥的有效期。在正向保密系统中,在连续的时段期间该专用密钥改变的方式是,如果该密钥被危害,则一个攻击者不能解密在前一时段送到该接收方的消息。但是,如果发送方在危害之后继续使用该密钥,则该攻击者将能够解密在随后时段中的发送的消息。J.Katz的文章″AForward-Secure Public-Key Encryption Scheme″(eprint archive,2002,可在http//eprint.iacr.org/2002/060/得到)描述了这样的一个正向保密的方案,其内容结合在此作为参考。该Katz方案的保密性是基于该随机预言模式中的双线性Diffie-Hellman假设,并且可被扩展来实现选择的密文保密性。
在本发明的一个高颗粒度CBE方案中,该授权方使用反向操作的一种正向保密系统来发布一个接收方基于标识的解密密钥,可用来解密使用在一个特定时间或该特定时间之前设置的一个时段参数加密的消息,但是不解密以一个迟后时间设置的一个时间参数加密的消息。
在一个传统的CBE方案中,授权方必须把一个基于标识的解密密钥发布到每个潜在消息接收方以供在加密期间的每次时段使用。如果该授权方能够快速响应密钥被危害的情形,则该密钥必须仅在一个短时段中有效。例如,该授权方可被要求发出一个具有一分钟有效期的密钥,要求该授权方每一分钟都发出一个新密钥到每个用户。发送如此大量的密钥对于所有用户来说都需要可观的资源。
在该高颗粒度授权的解密方案中,该正向保密方案仅在接收方希望开始阅读加密的消息的一个会话时才允许接收方请求一个密钥更新。如果该接收方每天仅有四个消息阅读会话,例如其仅每几个小时才联机到其电子邮件帐户一次,即仅需要四个密钥,则不考虑该消息接收方解密多少实际消息。每个密钥都将允许该接收方解密使用设置在比接收方请求该密钥更早或在该请求之间的一个时间参数加密的都消息,但是不允许解密以指示迟后时间的参数加密的消息。高颗粒度CBE通过降低由授权方发送的基于标识的解密密钥的数量而降低传输费用。与一个在线方案或一个传统的高颗粒度方案相比,该方案提供了各种折衷。
在一个在线方案中,该授权方与接收方在每个消息解密上合作。因此,在把一个在线方法与一个高颗粒度CBE方案进行比较中,最重要的度量是一个接收方的每一会话期望解密多少消息。至少从最小化该授权方的负担的角度来说,每一会话的大量消息的情况支持该高颗粒度CBE协议。
一个传统的结合高时间颗粒度的方法要求该消息发送方在发送消息以前执行该接收方的密钥状态的联机检查。同样,每一会话的高数目的消息将支持该高颗粒度CBE协议超过传统的方法,因为在此情况中,该发送方必须执行针对每个消息的操作。
在以高频出现密钥更新的场合,只有当接收方希望开始一个阅读消息的会话时,一个高颗粒度CBE方案才允许接收方下载基于标识的解密密钥消息。该下载的消息允许解密利用直到当前时间时段的一个时间参数加密的消息,但是不允许解密使用迟后时间段的一个时间参数加密的消息。由于授权方不需要计算和发送单独的基于标识的解密密钥来针对每个已经过逝的时间段,因此与一个传统的CBE方案相比而降低了授权方的工作负荷。通过只下载为了计算针对自从前一下载开始的时段的密钥所需的消息,能够进一步降低下载的规模。(但是,接收方从授权方″拉″认证的事实,而授权方能以传统的CBE方案″推″认证到接收者,可能对于该授权方引入某些附加工作负荷。)如果希望,有可能把一个高颗粒度CBE协议与一个分级的认证方案组合,以便避免把对整个网络的密钥发布责任加在单一授权方。
图10示出说明一个高颗粒度CBE方案的实施例的示意图。其中,该方案的使用寿命被分成若干时段t。例如,由于一天中大约有211分钟,所以可以把一个11比特的二进制字符串b1...b11指定到每一分钟。每个二进制字符串定义一个时段标识参数,表示一个特定的时分的″标识″。如果该系统的使用寿命比一天长,则每一天将形成该系统使用寿命的一部分。指定该日期(该天的″标识″)的一个时间部分标识参数可被分别地规定。另外,接收方的标识也可以规定该日期。
图10示出说明一个高颗粒度CBE协议的实施例的示意图。在图10中,由高度t的一个二进制树的分支表示连续的时间段901。其中,连续的时间段与该树结构的分支相关,以长度t的字串<i>标记,即时间段i与由<i>标记的分支相关。
包括该分支节点的该树结构的每个节点w902由该授权方指定一个保密密钥skw。为了解密在时段i期间使用PK加密的一个消息,仅需要密钥ski<i>。另外,给定密钥skew903,有可能高效地导出下代分支密钥scow904并且skw1905以及从这些密钥得到该下代分支。但是,给定PK和i,并且没有用于全部<i>的前缀w的skew,将不可能得到ski<i>,或解密在直到包括i的时段期间加密的消息。
例如,如果授权方希望让接收方在时期1-3解密消息但是不在随后时段中发送消息,则该授权方将给接收方与节点w0 904和w10 908相关的密钥。接收方能够从密钥w0 904产生与时段1-2相关的密钥,即w00 906和w01907,并且具有用于时段3,即w10 908的密钥。但是,该接收方不能解密在时段4909或随后时段的消息。
在本发明的一个实施例中,基于成对的高颗粒度CBE方案包括四个随机算法设置、密钥产生和认证、加密、和解密。
在设置过程中,如在上面的CBE方案中所述的那样,授权方使用一个BDH参数产生器IG、和一个保密参数k来产生某些初始排序q的群组G1和G2以及一个可采纳的成对êG1×G1→G2。同样,如果该成对是双线性、非退化和可计算的,则该成对也是可采纳的。
授权方选择一个密钥产生秘密并且通过选择一个任意产生器P∈G1、选择一种随机sc∈Z/qZ、设置Q=scP、并且针对某些n选择密码函数H1{0,1}*→G1和H2G2→{0,1}n来建立系统参数。其中,消息空间是 系统参数是params=(G1,G2,ê,P,Q,H1,H1′,H2),并且该授权方的主密钥产生秘密是sc∈Z/qZ。
在该密钥产生和认证算法中,该授权方随后产生接收方的基于标识的解密密钥。针对时段i的密钥SKj将包括sk<i>和用于全部1≤k≤t的{sk<i0...ik-10>},即用于直到并且包括时段i的全部时段的保密密钥。其中SKj是在j≤i时可从SKi计算。
当一个用户从授权方请求SKi时,该授权方选择随机的x∈Z/qZ。针对w=<i>并且针对具有1≤k≤t以使得ik=1的全部w=i0...ik-10,计算Sw=sCH1(i0,Infz)+xH1(w),并且设置skw={xP,Sw}。这些skw被发送到接收方。
在该加密算法中,发送方选择随机的r并且加密一条消息以便通过把该密文设置为C=[rsBP,rH1(j0j1),...,rH1(j0...jt),M_H2(gr)]来形成一个密文C,其中sBP是接收方的公共密钥,j是由发送方选择的一个时段,以及g=ê(Q,H1(i0,Infz))。
在该解密算法中的拥有针对j≤i的SKi的接收方知道针对属于是j的前缀的某些w的skw,即针对k≤t的某些w=j0...jk。使用此skw,通过计算gr=ê(U0,sB-1Sw)/ê(xP,Uk),随后计算M=V_H2(gr)来解密C=[U0,U1,...,Ut,V]。
组合认证再确认和CBE讨论的CBE方案要求授权方分别签署每个接收方的解密密钥。例如,如果系统具有2.5亿用户并且该时间颗粒度是一天而每个用户每时段接收一个解密密钥,则该授权方每天将必须产生和发送2.5亿个基站标识的签字。
一个好的PKI提议必须以实际技术的局限性来平衡密码的和算法的考虑。从效率角度考虑,两个重要的因素是每个实体类型(例如授权方)执行的计算量和在实体之间的通信费用。本发明的其它实施例提供了用于授权方的计算的高效技术来把新的解密密钥发出到系统的用户。
在多个用户上摊销公共密钥的一个CBE方案提供了效率方面的优点。在一个CBE方案中,授权方所发布的认证还必须用作在一个公共密钥加密方案中的解密密钥。这些解密密钥必须使用公共密钥操作来计算。然而,尽管具有N个客户,通过使用象B树结构的高效数据结构,授权方将无需每天执行O(N)公共密钥操作。
在本发明的一个实施例中,一个该授权方周期地(例如每天)″再证实″的长效(例如一年)认证被分配给该授权方的每一个客户。该长效认证可以按照若干方式产生。例如,能够使用类似于上述的方案产生。在任何情况下,如果该消息发送方具有该消息接收方的长效认证,则该发送方能够使用CBE来保护接收方接收方公共密钥,以免在过期日之前该接收方的公共密钥被撤销。
在加密技术中,存在一种使用二进制树的分支来表示该系统中的N个用户的广播加密技术。其中,用户的m=log N保密密钥是属于是该分支的前代(包括该分支本身)的m个节点的保密密钥。图11示出这样的一种系统。其中,如果用户4被授权到该广播,则该授权方使用其m个前代1101,1102,1103...1104之一的保密密钥来加密该会话广播。如果用户4未被给与该广播的权利,则改为使用对应于从根到这一分支的该″外悬″路径的m个保密密钥。
当R个用户未被给与该广播权利时,使用Rlog(N/R)节点密钥加密该会话广播密钥,其中这些节点形成该N-R授权用户的一种″覆盖″。图12示出了这种″覆盖″的概念。其中,与节点1201相关的密钥提供对于用户1、3、4、5、6、7、8、i、和i+1的覆盖,但是不是对于其它用户的覆盖。
CBE方案的一个实施例采用了这种技术。相关在一个B树结构中的利用一个分支节点的接收方产生一个唯一的二进制字符串。产生与该接收方分支节点的每个前代节点相关的该唯一的二进制字串。在该基于成对的实施例中,该授权方建立一些公用方式,把该二进制字串与在相关的椭圆曲线(或阿尔贝尔型曲线)上的点Pnode关联。
能以若干方法产生这些二进制字串。例如,授权方可以根据该节点是否为它父代的左侧子层或右侧子层来计算一个节点的二进制字符串作为函数(stringparent,O)或函数(stringparent,1)。另外,二进制字串能够被指定到每个接收方分支节点,并且该二进制字串能够与能够与至少使用与这些节点的子节点相关的二进制字串产生前代节点相关。随后能够使用一个函数把每个二进制字符串映射到在椭圆曲线或阿尔贝尔型曲线上的一个点。在一个实施例中,该函数可以是一个散列函数。
对应于节点的点Pnode的解密密钥是scPnode,其中sc是一个由授权方保持的主秘密。该授权方找到将被再证实的用户的一个覆盖,然后周期地公开对应于在其覆盖中该节点的解密密钥。每一再证实的用户都能够找到一些解密密钥scPnode,使得节点是其分支的前代节点。此解密密钥还可以与用于建立该解密密钥的有效期的一个参数相关。例如,Pnode可以取决于这种参数。
如果发送方知道与那解密密钥scPnode相关该点Pnode,则该发送方能够使用接收方的公共密钥PKB和与该解密密钥形成一个公共密钥/专用密钥对的加密密钥来加密发送到该接收方的消息。
但是,由于该发送方可能不知道由该授权方使用的覆盖,所以该发送方可能不已知此解密密钥对应于哪些接收方的前代节点。因此,发送方产生该消息的m个分离的加密。
发送方选择一个随机的r并且计算rP。该发送方随后加密该密文C=[rP,V1,...,Vm],其中Vi=M_H(ê(P,Pi)rsc),Pi是对应于序列号b1...bi的标识字符串。还利用该接收方的公共密钥PKB加密该密文的某些部分,例如M。这能以类似于上述方案的方式来实现,其中该接收方使用其sB的知识来计算其解密所需要的sBP′B。
一个未被撤销的接收方将从该授权方接收到某些解密密钥scPi。该接收方使用此密钥以及该接收方的专用密钥SKB来解密Vi′s之一。
如果该解密密钥与一个有效期参数相关,则得知该授权方发布该接收方的解密密钥的时间表的一个消息发送方将能够使用该接收方的公共密钥PKB和与具有限定有效期的该解密密钥形成一个公共密钥/专用密钥对的一个加密密钥来加密一个消息。该接收方随后可以只在这一时段解密该消息。
在本发明的另一个实施例中,只按照该时段有效性参数的一个函数计算该根节点Ptime。该低级节点,即在该根节点和表示一个接收方的分支之间的那些节点,被计算作为在该树结构中的其位置的函数,例如Pb1...bi=H(b1...bi),并且不随时间改变。该授权方使用上述技术来产生一个解密密钥,用于与未被撤销的一个接收方相关的每个分支的某些前代节点。用于b1...bi的解密密钥的形式为sCPtime+x(Pbi...bi),xP用于某些随机的x∈Z/qZ。其中,sC和x都是授权方的秘密。
与先前实施例相比,该授权方在计算这些密钥中的计算的负担未被增加。但是,降低了发送方的加密时间。为了加密,发送方选择一个随机的r并且计算rP。随后该发送方加密该密文CC=[rP,rPb1,....,r(Pb1+...+Pb1...bm),V],其中V=M_H2(ê(sCP,Ptime)r)),ê(P,Ptime)∈G2。同样,密文的某些部分,例如M,也是以接收方的公共密钥PKB加密。
一个未被撤销的接收方通过由ê(xP,r(Pb1+...+Pb1...bi))来除ê(rP,sPtime+x((Pb1+...+Pb1.....bi))而解密。该接收方还使用该接收方的专用密钥SKB解密该消息。其中,该接收方必须比前一实施例多执行一个成对。可是,这发送方执行的是快速的点相乘而不是缓慢成对计算。
在本发明的另一实施例中,如上述的那样,仅根节点Ptime才按照确指定时段的一个函数计算。但是在本实施例中,该授权方在一个给定时段中执行的操作量仅根据在该时段中出现的撤销的数量而不是被撤销的接收方的总数。
该低级节点被再一次按照在该树中的其位置的函数计算,例如Pb1...bi=H(b1...bi),并且不随时间改变。该授权方产生一个解密密钥,用于每个未被撤销的接收方的前代节点。
如果该授权方以给定时间间隔,例如每小时执行解密密钥更新,则每个小时都具有与其相关一个点Phour。该授权方使用该广播加密技术找到在过去的小时中尚未撤销的该接收方的一个覆盖。这一覆盖将包括O(Rlog(N/R))个点,其中R是在过去的小时中撤销的接收方的数量(不是全部接收方)。对于在该覆盖中的节点Pi来说,该授权方伴随该点xP发布来自sPhour+xPi的一个点。该授权方选择用于每一小时的x的新数值。如果一个给定接收方尚未被在该小时中撤销,则该接收方将具有该授权方已经针对其发布了一个点的某些前代Pi。此点是对于该小时的接收方的再确认认证。
通过每小时地把再确认认证加在一起,接收方获得一个集合的认证,形式为与该点{xi,P}一起的(Phour1+...Phourk)+x1P1+x2P2+...+xmPm。这将是接收方的更新的解密密钥。在一个选择时间间隔的结束,例如一天的最后,该授权方公开s(Pday-P24-...-P1)。这将使得全天被认证的全部接收方来压缩它们专用点的时间成份的表达式。从日期v小时y到日期w小时z的接收方的完整的专用点的形式为Srecipient=s(Pv,y+...+Pv,24+Pv+1,1+...+Pw,z)+x1P1+x2P2+...+xmPm。
该消息发送方能够容易地计算PBper=Pv,y+...+Pw,z,该点对应于一个接收方在其上必须被连续再证实的该时段。该发送方通过首先选择一个随机随后计算rP来加密到达该接收方的消息。该发送方随后把密文设置为C=[rP,rP1...,rPm,V],其中V=M_H(ê(sCP,PBper)rs)。
同样,密文的某些部分,例如M,也是以接收方的公共密钥PKB加密。
如果该接收方未被撤销,则该接收方将通过下列公式解密以便恢复MM=V_H(ê(rP,Srecipient)/∏mi=1ê(rPi,xiP))该接收方还使用该接收方的专用密钥SKB来执行该消息解密的某些部分。
可以通过下列实例示出后面实施例的优点,其中授权方具有N=250,000,000个客户,执行每小时更新和每小时R个用户的撤销。在250,000,000用户的一个系统中,每年撤销其中的10%,每小时大约撤销2850用户。由于R log(N/R)~46000,所以授权方每秒必须产生大约13个再确认认证。对于单个计算机这是相当合理的。可是,该CA能够具有几个计算机来实现计算的分配。签字产生仅包括在椭圆曲线上的点相乘,这是快速ECC类型的操作。
能够以几种不同方式控制这些认证的分配。一种选择是把认证″推″到它们确认的接收方。可能的情况是,多点发送能够使得这种方式很有效率,降低授权方播发(46000认证)*(320比特/认证)/小时≈4k比特/秒所需要的带宽。如果不使用多点发送,则把认证直接推到全部250,000,000用户将需要CA具有至少22M比特/秒的连接,由于该值是一个下界,所以可能是办不到的。如果客户每天从CA″拉″其认证24次则此值可能被降低,但是该带宽要求将仍然是实际带宽。如果使用多个(不被信任的)服务器,则一个(总共)22M比特/秒的连接将使得服务器把认证推至客户。
作为一种选择,该客户能够从该服务器拉它们的认证。不需要每一服务器都存储全部的该再确认认证。相反,接收方能够具有一个确定的服务器,总是从该服务器检取其认证。在此情况中,该授权方-目录通信不是(4k比特/秒)*(服务器的数目);而是保持4k比特/秒。
无论从一个接收方的最初认证到目前已经通过的时段的数目如何,该接收方的认证的验证将保持紧凑它的专用点Srecipient与其logN点{xiP}在一起。以给该发送方的一个小附加代价,该接收方能够使用大约160比特(不是320比特)表示每个点。因此,如果N是250,000,000,其集合再确认认证大约是4.5k比特。
虽然本发明的方法要求该接收方最好都有其自己的公共密钥/专用密钥对以使仅该接收方(或可能一个专用密钥发生器,如果该接收方专用密钥是基于标识的专用密钥)能够解密,但是本领域技术人员将理解到,本发明的方法将会由于不利用这样的一个要求而被削弱-即,即使在没有一个接收方专用密钥的条件下通过允许由拥有来自任何从必要授权方的必要签字的任何实体解密该发送方的消息。
利用基于认证的加密方案的系统已经所述了以一种公共密钥加密方案在一个发送方和一个接收方之间发送一个数字消息的各种方法。现将描述根据本发明另一实施例的用于实现这些方法的系统。
该系统包括若干终端,每一系统都可与随着上述方法发送或接收消息的一个实体相关。该系统还包括一个或多个授权方,确认消息接收方具有接收一个消息的权限。
每个终端都包括与一个存储器双向通信的处理器。该处理器执行对于执行上述过程的适当的程序代码。该处理器还执行适当的程序代码,以便产生将被发送到另一终端的消息。适当的程序代码可以根据本专业中已知方法产生。本存储器存储该程序代码、以及在执行上述方法过程中的中间结果和其它消息。
提供一个通信网络,该实体和该授权方可以经过该通信网络通信。该通信网络可以是各种通用形式,包括例如LAN计算机网络,WAN计算机网络、和/或提供适当通信网络的的移动电话网络。
已经参考优选实施例和示例性示例具体详细描述了本发明,但是将理解到,在本发明的精神范围中能够实现变化和改进。
权利要求
1.一种以公共密钥加密方案在发送方和接收方之间发送数字消息的方法,该公共密钥加密方案包括发送方、接收方和授权方,其中该数字消息由该发送方加密并且由该接收方解密,该方法包括步骤(a)产生一个接收方公共密钥/接收方专用密钥对;其中该接收方专用密钥是该接收方的一个秘密;(b)产生一个接收方加密密钥;(c)选择作为该授权方的一个秘密的一个密钥产生秘密;(d)使用至少该密钥产生秘密和该接收方加密密钥产生一个接收方解密密钥,其中从该接收方解密密钥形成的一个密钥和从该接收方加密密钥形成的一个密钥是一个公共密钥/专用密钥对;(e)至少使用该接收方公共密钥和该接收方加密密钥加密该数字消息,以便创建一个加密的数字消息;和(f)至少使用该接收方专用密钥和该接收方解密密钥解密该加密的数字消息。
2.如权利要求1所述的方法,其中该接收方加密密钥是从包括该接收方的标识的信息生成的。
3.如权利要求1所述的方法,其中,从包括限定针对该接收方解密密钥的有效期的一个参数的信息中产生该接收方加密密钥。
4.如权利要求1所述的方法,其中从包括该接收方公共密钥的信息生成该接收方加密密钥。
5.如权利要求1所述的方法,其中,从包括接收方标识、接收方公共密钥、和限定该接收方解密密钥的有效期的一个参数中产生该接收方加密密钥。
6.如权利要求1所述的方法,其中,由该授权方根据发送方知道的一个时间表产生该接收方解密密钥。
7.如权利要求6所述的方法,其中,至少使用包括时间表的信息产生该接收方加密密钥。
8.如权利要求1所述的方法,其中,至少使用由该授权方发布的一个系统参数产生该接收方专用密钥/公共密钥对。
9.如权利要求1所述的方法,其中由一种方法产生该接收方解密密钥,该方法包括步骤(a)产生单元的第一循环组G1和单元的第二循环组G2;(b)选择一个函数ê,该函数能够从该第一循环组G1的两个单元中产生该第二循环组G2的一个单元;(c)选择该第一循环组G1的一个产生器P;(d)选择与授权方相关并且为之所知的一个随机密钥产生秘密sC;(e)产生一个密钥产生参数Q=sCP;(f)选择一个第一函数H1,该函数能够从第一二进制数字串中产生第一循环组G1的一个单元;(g)选择一个第二函数H2,该函数能够从该第二循环组G2的一个单元产生第二二进制数字串;(h)产生一个单元PB=H1(InfB),其中InfB包括一个二进制数字串;和(i)产生与该接收方相关的一个秘密单元S=scPB;其中该秘密单元是该接收方解密密钥。
10.如权利要求9所述的方法,其中,InfB包括该接收方的标识、IDrec、接收方公共密钥、和限定接收方解密密钥的有效期的一个参数。
11.如权利要求9所述的方法,其中第一组G1和第二组G2是相同的初始排序(prime order)q。
12.如权利要求9所述的方法,其中该第一循环组G1是在一个超单值椭圆曲线或阿尔贝尔型曲线上的点的一个相加组,并且该第二循环组G2是一个有限域(finite field)的相乘子组。
13.如权利要求9所述的方法,其中该函数ê是一个双线性、非退化(non-degenerate)、和可高效计算的成对(pairing)。
14.如权利要求9所述的方法,其中sC是循环组Z/qZ的一个单元;Q是第二循环组G2的一个单元;单元PB是该第一循环组G1的一个单元;并且秘密单元S是第一循环组G1的一个单元。
15.如权利要求9所述的方法,其中该数字消息M由包括下列步骤的一个方法加密产生该单元P′B=H1′(IDrec),其中IDrec包括该接收方的标识,并且其中H1′是能够从一个二进制数字串产生第一循环组G1的一个单元的函数;选择一个随机密钥产生秘密r;以及加密该数字消息M以便形成一个密文C;其中C被设置为C=[rP,M_H2(gr)],其中g=ê(Q,PB)ê(sBP,P′B)∈G2.
16.如权利要求1所述的方法,其中从一个文件产生该接收方加密密钥,并且该接收方解密密钥是该授权方在该文件上的签字。
17.如权利要求9所述的方法,其中该数字消息M由包括下列步骤的一个方法加密产生该单元P′B=H1′(IDrec),其中H1′是一个能够从一个二进制数字串产生该第一循环组G1的一个单元的函数;选择一个随机参数σ∈{0,1}n;设置一个随机密钥产生秘密r=H3(σ,M);以及加密该数字消息M以便形成一个密文C;其中C被设置为C=[rP,M_H2(gr),EH4(σ)(M)],其中g=ê(Q,PB)ê(sBP,P′B)∈G2,其中H3是一个能够从两个二进制数字串产生该循环组Z/qZ的一个整数的函数,H4是一个能够从另一二进制字符串产生一个二进制字符串的函数,E是一个保密的对称加密方案,而H4(σ)是与E一起使用的密钥。
18.一种以包括发送方、接收方和多个授权方的公共密钥加密方案在一个发送方和一个接收方之间发送数字消息的方法,该多个授权方至少包括一个根授权方和在该根授权方和该接收方之间的一个分级结构中的n个低级授权方,其中n≥1,该方法包括步骤(a)产生用于该接收方的一个接收方公共密钥/专用密钥对;其中该接收方专用密钥是该接收方的一个秘密;(b)使用该接收方的前代至少之一的标识信息产生一个接收方加密密钥;(c)选择作为该根授权方的一个秘密的一个根密钥产生秘密;(d)根据该根密钥产生秘密产生一个根密钥产生参数;(e)产生一个接收方解密密钥,使得该接收方解密密钥与该接收方加密密钥、该根密钥产生秘密和该相关的根密钥产生参数相关;(f)使用该接收方公共密钥和一个接收方密钥加密该数字消息,以便创建一个加密的数字消息,其中从该接收方解密密钥形成的一个密钥和从该接收方加密密钥形成的一个密钥是一个公共密钥/专用密钥对;和(h)至少使用该接收方专用密钥和该接收方解密密钥解密该编码的数字消息,以便恢复该数字消息。
19.如权利要求18所述的方法,其中,该接收方加密密钥是从包括该接收方的标识的信息生成的。
20.如权利要求18所述的方法,其中,从包括限定针对该接收方解密密钥的有效期的一个参数的信息中产生该接收方加密密钥。
21.如权利要求18所述的方法,其中,从包括该接收方公共密钥的信息生成该接收方加密密钥。
22.如权利要求18所述的方法,其中,从包括接收方标识、接收方公共密钥、和限定该接收方解密密钥的有效期的一个参数中产生该接收方加密密钥。
23.如权利要求18所述的方法,其中,由根据发送方知道的一个时间表产生该接收方解密密钥。
24.如权利要求18所述的方法,其中,使用由该授权方发布的系统参数产生该接收方专用密钥/公共密钥对。
25.如权利要求18所述的方法,其中,该接收方解密密钥与该根密钥产生秘密和相关的根密钥产生参数相关。
26.如权利要求18所述的方法,其中该多个授权方进一步包括在该根授权方和该发送方之间的分级结构中的至少m个低级授权方,其中m≥1,并且其中在该分级结构中的该m个授权方的l个对于该发送方和该接收方都是共同前代,其中的授权方是在该发送方和该接收方之间的最低共同前代授权方,并且其中l≥1,该方法进一步包括步骤针对在该根授权方和该发送方之间的该分级结构中的m个低级授权方的每一个选择一个低级密钥产生秘密;和产生一个发送方解密密钥,使得该发送方解密密钥至少与该根密钥产生秘密相关,并且该m个低级密钥产生秘密的一个或者多个与在该根授权方和该发送方之间的该分级结构中的m个低级授权方相关;其中,至少使用发送方解密密钥和与在授权方和在该最低共同前代授权方l的等级或低于该最低共同前代授权方l的等级的发送方之间该(m-l+1)个授权方相关的一个或者多个该低级密钥产生参数、但不使用任何与高于该最低共同前代授权方l的(l-1)个授权方关联的低级密钥产生参数来加密该信息;并且其中,使用至少该接收方解密密钥和与在该根授权方和在该最低共同前代授权方l的等级或低于该最低共同前代授权方l的等级的发送方之间的该(n-l+1)个授权方相关的一个或多个低级密钥产生参数、但不使用任何与高于该最低共同前代授权方l的(l-1)个授权方关联的低级密钥产生参数来解密该密文。
27.一种在包括多个授权方的加密系统中产生用于一个实体的解密密钥的方法,该多个授权方包括至少一个根授权方和在该根授权方和该实体之间的分级结构中的n个低级授权方,其中n≥1,该方法包括步骤产生该根授权方知道的一个根密钥产生秘密;根据该根密钥产生秘密产生一个根密钥产生参数;产生用于该n个低级授权方的每一个的一个低级密钥产生秘密,其中每个低级密钥产生秘密为其相关低级授权方所知;产生用于该n个低级授权方的每一个的一个低级密钥产生参数,其中至少使用针对其关联的低级授权方的该低级密钥产生秘密来产生每个低级密钥产生参数;建立一个解密密钥产生时间表,限定针对用于该实体的一个解密密钥的有效期;产生用于该实体的解密密钥,使得该解密密钥至少与该根密钥产生秘密和一个或多个低级密钥产生秘密相关;和把该解密密钥提供到该实体。
28.如权利要求27所述的方法,其中用于该实体的该解密密钥与建立一个有效期的参数相关。
29.一种产生用于在一个加密系统中的一个接收方z的一个解密密钥的方法,其中该接收方z是在该分级结构中的低于一个根授权方的n+1个等级,并且其中该接收方与接收方ID多元组(IDz1,...IDz(n+1))相关,该ID多元组包括与该接收方关联的标识信息IDz(n+1)和与在该根授权方和该接收方之间的分级结构中的n个低级授权方的每一个关联的标识信息IDzi,该方法包括步骤产生单元的第一循环组G1和单元的第二循环组G2;选择一个函数ê,该函数能够从该第一循环组G1的两个单元中产生该第二循环组G2的一个单元;选择该第一循环组G1的一个根产生器P0;选择与该根授权方相关并且为之所知的一个随机根密钥产生秘密s0;产生一个根密钥产生参数Q0=s0P0;选择一个第一函数H1,该函数能够从第一二进制数字串中产生该第一循环组G1的一个单元;选择一个第二函数H2,该函数能够从该第二循环组G2的一个单元产生一个第二二进制数字串;产生用于该n个低级授权方的每一个的一个单元Pzi,其中针对1≤i≤n该Pzi=H1(ID1,...IDzi);选择用于该n个低级授权方的每一个的一个低级密钥产生秘密szi,其中每个低级密钥产生秘密szi为其相关低级授权方所知;产生用于该n个低级授权方的每一个的一个低级秘密单元Szi,其中对于1≤i≤n该Szi=Sz(i-1)+sz(i-1)Pzi,其中S0=Q0;针对该n个低级授权方的每一个产生一个低级密钥产生参数Qzi,其中对于1≤i≤n该Qzi=sziP0;产生一个与该接收方相关的接收方单元Pz(n+1)=H1(IDz1...IDz(n),Inf(n+1)),其中Pz(n+1)是该第一循环组G1的一个单元,并且其中Inf(n+1)是一个二进制数字串;并且产生一个与该接收方关联的接收方解密密钥Szn+1=Szn+sznPzn+1=Σi=1n+1szi-1Pzi.]]>
30.如权利要求29所述的方法,其中该接收方单元Pz(n+1)=H1(IDz1,...,IDz(n+1),Inf(n+1)),并且其中Inf(n+1)包括该接收方的标识和该基于标识的解密密钥的一个有效期。
31.如权利要求29所述的方法,其中Inf(n+1)还包括由接收方产生的一个接收方公共密钥。
32.如权利要求29所述的方法,其中第一循环组G1和第二组循环G2具有相同的初始排序q。
33.如权利要求29所述的方法,其中该第一循环组G1是在一个超单值椭圆曲线或阿尔贝尔型曲线上的点的一个相加组,并且该第二循环组G2是一个有限域的相乘子组。
34.如权利要求29所述的方法,其中该函数ê是一个双线性、非退化、和可高效计算的成对。
35.如权利要求29所述的方法,其中s0是循环组Z/qZ的一个单元;Q0是该第一循环组G1的一个单元;每一个单元Pzi是该第一循环组G1的一个单元;每一个低级密钥产生秘密szi是该循环组Z/qZ的一个单元;每一个秘密单元Szi是该第一循环组G1的一个单元;每一个低级密钥产生参数Qzi是该第一循环组G1的一个单元;该接收方单元Pz(n+1)是该第一循环组G1的一个单元;和该接收方解密密钥Sz(n+i)是该第一循环组G1的一个单元。
36.一种加密和解密在一个基于分级认证的加密系统中在一个发送方y和一个接收方z之间传递的一种数字消息M的方法,其中该接收方z在该分级结构中是低于一个根授权方的n+1个等级,并且其中该接收方与一个接收方ID多元组(IDz1,...,IDz(n+1))相关,该接收方ID多元组包括与该接收方关联的标识信息IDz(n+1)和与在该分级结构中的在该根授权方和该接收方之间的n个低级授权方的每一个关联的标识信息IDzi,该方法包括步骤产生用于该接收方的一个接收方公共密钥/专用密钥对;其中该接收方专用密钥为该接收方所知;产生单元的第一循环组G1和单元的第二循环组G2;选择一个函数ê,该函数能够从该第一循环组G1的两个单元中产生该第二循环组G2的一个单元;选择该第一循环组G1的一个根产生器P0;选择与该根授权方相关并且为之所知的一个随机根密钥产生秘密s0;产生一个根密钥产生参数Q0=s0P0;选择一个第一函数H1,该函数能够从第一二进制数字串中产生该第一循环组G1的一个单元;选择一个第二函数H2,该函数能够从该第二循环组G2的一个单元产生一个第二二进制数字串;产生用于该n个低级CA的每一个的一个单元Pzi,其中针对1≤i≤n该Pzi=H1(ID1,...IDzi);选择用于该n个低级授权方的每一个的一个低级密钥选择秘密szi,其中每个低级密钥选择秘密szi为其相关低级授权方所知;产生用于该n个低级授权方的每一个的一个低级秘密单元Szi,其中对于1≤i≤n该Szi=Sz(i-1)+sz(i-1)Pzi,其中Sz0=Q0;针对该n个低级授权方的每一个产生一个低级密钥产生参数Qzi,其中对于1≤i≤n该Qzi=sziP0;产生一个与该接收方相关的接收方单元Pz(n+1)=H1(IDz1,...IDz(n),Inf(n+1)),其中Pz(n+1)是该第一循环组G1一个单元,并且其中Inf(n+1)是一个二进制数字串;产生一个与该接收方相关的接收方秘密单元Sz(n+1)=Szn+sznPz(n+1)=Σi=1n+1sz(i-1)Pzi,]]>其中Inf(n+1)包括针对该接收方秘密单元的一个有效期;至少使用该接收方公共密钥、根加密参数Q0和Inf(n+1)编码该数字消息以便产生一个密文;和至少使用该接收方专用密钥、低级密钥产生参数Qzi和接收方秘密单元Sz(n+1)解码该密文C以便恢复该数字消息M。
37.如权利要求36所述的方法,其中第一循环组G1和第二组循环G2具有相同的初始排序q。
38.如权利要求36所述的方法,其中其中该第一循环组G1是在一个超单值椭圆曲线或阿尔贝尔型曲线上的点的一个相加组,并且该第二循环组G2是一个有限域的相乘子组。
39.如权利要求36所述的方法,其中该函数ê是一个双线性、非退化、和可高效计算的成对。
40.如权利要求36所述的方法,其中s0是循环组Z/qZ的一个单元;Q0是该第一循环组G1的一个单元;每一个单元Pzi是该第一循环组G1的一个单元;每一个低级密钥产生秘密szi是该循环组Z/qZ的一个单元;每一个秘密单元Szi是该第一循环组G1的一个单元;每一个低级密钥产生参数Qzi是该第一循环组G1的一个单元;该接收方单元Pz(n+1)是该第一循环组G1的一个单元;和该接收方秘密单元Sz(n+1)是该第一循环组G1的一个单元。
41.如权利要求36所述的方法,其中编码该信息M进一步包括步骤选择一个随机参数r,并且产生该密文C=[rP,V],其中V=M_H2(gr),其中g=e^(P'B,SBP)Πj=1n+1e^(Pj,SZ(j-1)P)]]>其中sBP是该接收方公共密钥,P′B是H1(Inf(n+1))并且Pj=H1(sz(j-1)P,Inf(n+1));并且解码该密文C进一步包括步骤从M=V_H2(ê(rP,Sz(n+1)))恢复该数字消息M。
42.如权利要求36所述的方法,其中第一循环组G1和第二组循环G2具有相同的初始排序q。
43.如权利要求36所述的方法,其中该第一循环组G1是在一个超单值椭圆曲线或阿尔贝尔型曲线上的点的一个相加组,并且该第二循环组G2是一个有限域的相乘子组。
44.如权利要求36所述的方法,其中该函数ê是一个双线性、非退化、和可高效计算的成对。
45.如权利要求36所述的方法,其中s0是循环组Z/qZ的一个单元;Q0是该第一循环组G1的一个单元;每一个单元Pzi是该第一循环组G1的一个单元;每一个低级密钥产生秘密szi是该循环组Z/qZ的一个单元;每一个秘密单元Szi是该第一循环组G1的一个单元;每一个低级密钥产生参数Qzi是该第一循环组G1的一个单元;该接收方单元Pz(n+1)是该第一循环组G1的一个单元;该接收方秘密单元Sz(n+1)是该第一循环组G1的一个单元;r是循环组Z/qZ的一个单元;以及g是该第二循环组G2的一个单元。
46.如权利要求36所述的方法,进一步包括步骤选择一个第三函数H3,能够从两个二进制数字串中产生选择一个循环组Z/qZ的一个整数;以及选择一个第四函数H4,能够从另一二进制字符串产生一个二进制字符串;其中编码该信息M进一步包括步骤选择一个随机参数σ∈{O,1}n;设置一个随机密钥产生秘密r=H3(σ,M);以及产生密文C=[U0,U2,...,Ut,V,W],其中U0=rsBP,并且对于2≤i≤n+1该Ui=rPzi,其中V=M_H2(gr),并且其中g =ê(Q0,Pz1)以及sBP是该接收方公共密钥,其中g=ê(Q0,Pz1),并且其中W=EH4(σ)(M),E是一种保密对称加密方案,并且H4(σ)是与E一起使用的密钥;并且其中解码该密文C进一步包括步骤使用σ=V⊕H2(e^(U0,Sz(n+1))Πi=2n+1e^(Qi-1,Ui))]]>恢复该随机二进制字符串σ;并且使用M=E-1H4(σ)(W)恢复信息M。
47.如权利要求46所述的方法,其中第一循环组G1和第二组循环G2具有相同的初始排序q。
48.如权利要求46所述的方法,其中该第一循环组G1是在一个超单值椭圆曲线或阿尔贝尔型曲线上的点的一个相加组,并且该第二循环组G2是一个有限域的相乘子组。
49.如权利要求46所述的方法,其中该函数ê是一个双线性、非退化、和可高效计算的成对。
50.如权利要求46所述的方法,进一步包括通过下列步骤验证该密文C计算一个实验随机整数r′=H3(σ,M);并且证实U0=r′P0,并且对于2≤i≤n+1该Ui=r′Pzi。
51.如权利要求46所述的方法,其中s0是循环组Z/qZ的一个单元;Q0是该第二循环组G2的一个单元;每一个单元Pzi是该第一循环组G1的一个单元;每一个低级密钥产生秘密szi是该循环组Z/qZ的一个单元;每一个秘密单元Szi是该第一循环组G1的一个单元;每一个低级密钥产生参数Qzi是该第一循环组G1的一个单元;该接收方单元Pz(n+1)是该第一循环组G1的一个单元;该接收方秘密单元Sz(n+1)是该第一循环组G1的一个单元;r是循环组Z/qZ的一个单元;和g是该第二循环组G2的一个单元。
52.如权利要求26所述的方法,其中该多个授权方进一步包括在该根授权方和该发送方y之间的分级结构中的至少m个低级授权方,其中m≥1,其中在该分级结构中的授权方的l个是该发送方y和该接收方z的共同分级的前代,其中l≥1,并且其中该接收方y与一个接收方ID多元组(IDy1,...,IDy(m+1))相关,该ID多元组包括与该发送方y关联的标识信息IDy(m+1)和与在该根授权方和该发送方y之间的分级结构中的K个低级授权方的每一个关联的标识信息IDyi,该方法进一步包括步骤针对m个低级授权方的每一个产生一个单元Pyi,其中针对1≤i≤m该Pyi=H1(IDy1,...,IDyi),其中对于全部i≤l该Pyi=Pzi;针对m个低级授权方的每一个选择一个低级密钥产生秘密syi,其中对于全部i≤l该syi=szi;产生用于该m个低等级授权方的每一个的一个低级秘密单元Syi,其中对于1≤i≤m该Syi=Sy(i-1)+sy(i-1)Pyi,并且其中对于全部i≤l该Syi=Szi;针对m个低级CA的每一个产生一个低级密钥产生参数Qyi,其中对于1≤i≤m该Qyi=syiP0,并且其中对于全部i≤l该Qyi=Qzi;产生一个与该发送方y相关的Py(m+1)=H1(IDy1,...,IDy(m+1),Infs(m+1));产生与该发送方相关的一个发送方秘密单元Sy(m+1)=Sym+symPy(m+1)=Σi=1m+1sy(i-1)Pyi]]>其中Infs(m+1)包括针对该接收方秘密单元的一个有效期;至少使用包括Inf(n+1)和对于i≥l的该低级密钥产生参数Qyi以及该发送方秘密单元Sy(m+1)、但是不使用针对i<l的该低级密钥产生参数Qyi来编码该信息M,以便产生一个密文C;以及至少使用该接收方专用密钥和针对i≥l的低级密钥产生参数Qzi以及该接收方秘密单元Sz(n+1)、但不使用针对i<l的该低级密钥产生参数Qzi来解码该密文C,以便恢复该信息M。
53.如权利要求52所述的方法,其中第一循环组G1和第二组循环G2具有相同的初始排序q。
54.如权利要求52所述的方法,其中该第一循环组G1是在一个超单值椭圆曲线或阿尔贝尔型曲线上的点的一个相加组,并且该第二循环组G2是一个有限域的相乘子组。
55.如权利要求52所述的方法,其中该函数ê是一个双线性、非退化、和可高效计算的成对。
56.如权利要求52所述的方法,其中s0是循环组Z/qZ的一个单元;Q0是该第一循环组G1的一个单元;每一个单元Pzi是该第一循环组G1的一个单元;每一个单元Pyi是该第一循环组G1的一个单元;每一个低级密钥产生秘密szi是该循环组Z/qZ的一个单元;每一个低级密钥产生秘密syi是该循环组Z/qZ的一个单元;每一个秘密单元Szi是该第一循环组G1的一个单元;每一个秘密单元Syi是该第一循环组G1的一个单元;每一个低级密钥产生参数Qzi是该第一循环组G1的一个单元;每一个低级密钥产生参数Qyi是该第一循环组G1的一个单元;该接收方单元Pz(n+1)是该第一循环组G1的一个单元;该发送方单元Py(m+1)是该第一循环组G1的一个单元;该接收方秘密单元Sz(n+1)是该第一循环组G1的一个单元;该发送方秘密单元Sy(m+1)是该第一循环组G1的一个单元;r是循环组Z/qZ的一个单元;和g是该第二循环组G2的一个单元。
57.如权利要求52所述的方法,其中编码该信息M进一步包括步骤选择一个随机参数r,和编码该信息M以便产生一个密文C=[U0,U1+1,...,Un+1,V],其中U0=rsBP,并且对于2≤i≤n+1该Ui=rPzi,其中V=M_H2(gr),其中g=ê(Q0,Pz1),其中sBP是接收方公共密钥,并且其中gyl=e^(P0,Sy(m+1))Πi=l+1m+1e^(Qy(i-1),Pyi);]]>并且解码该密文C进一步包括步骤使用M=V⊕H2(e^(U0,Sz(n+1))Πi=l+1n+1e^(Qz(i-1)Uzi))]]>恢复该信息M。
58.如权利要求57所述的方法,其中第一循环组G1和第二组循环G2具有相同的初始排序q。
59.如权利要求57所述的方法,其中该第一循环组G1是在一个超单值椭圆曲线或阿尔贝尔型曲线上的点的一个相加组,并且该第二循环组G2是一个有限域的相乘子组。
60.如权利要求57所述的方法,其中该函数ê是一个双线性、非退化、和可高效计算的成对。
61.如权利要求57所述的方法,其中s0是循环组Z/qZ的一个单元;Q0是该第一循环组G1的一个单元;每一个单元Pzi是该第一循环组G1的一个单元;每一个单元Pyi是该第一循环组G1的一个单元;每一个低级密钥产生秘密szi是该循环组Z/qZ的一个单元;每一个低级密钥产生秘密syi是该循环组Z/qZ的一个单元;每一个秘密单元Szi是该第一循环组G1的一个单元;每一个秘密单元Syi是该第一循环组G1的一个单元;每一个低级密钥产生参数Qzi是该第一循环组G1的一个单元;每一个低级密钥产生参数Qyi是该第一循环组G1的一个单元;该接收方单元Pz(n+1)是该第一循环组G1的一个单元;该发送方单元Py(m+1)是该第一循环组G1的一个单元;该接收方秘密单元Sz(n+1)是该第一循环组G1的一个单元;该发送方秘密单元Sy(m+1)是该第一循环组G1的一个单元;r是循环组Z/qZ的一个单元;以及gyl是该第二循环组G2的一个单元。
62.如权利要求52所述的方法,进一步包括步骤选择一个第三函数H3,能够从两个二进制数字串中产生选择一个循环组Z/qZ的一个整数;以及选择一个第四函数H4,能够从另一二进制字符串产生一个二进制字符串;其中编码该信息M进一步包括步骤选择一个随机的二进制字符串σ∈{O,1}n;计算一个随机整数r=H3(σ,M);以及产生密文C=[U0,Ul+1,...,Un+1,V,W],其中U0=rsBP,以及对于2≤i≤n+1该Ui=rPzi,其中V=M_H2(gr),其中g=ê(Q0,Pz1),其中sBP是是接收方公共密钥,并且其中W=EH4(σ)(M),E是一个保密对称加密方案,而H4(σ)是与E一起使用的密钥,其中gyl=e^(P0,Sy(m+1))Πi=l+1m+1e^(Qy(i-1),Pyi);]]>并且其中解码该密文C进一步包括步骤使用σ=V⊕H2(e^(U0,Sz(n+1))Πi=l+1n+1e^(Qz(i-1),Uzi))]]>恢复该随机二进制字符串σ,以及使用M=E-1H4(σ)(W)恢复信息M。
63.如权利要求62所述的方法,其中第一循环组G1和第二组循环G2具有相同的初始排序q。
64.如权利要求62所述的方法,其中该第一循环组G1是在一个超单值椭圆曲线或阿尔贝尔型曲线上的点的一个相加组,并且该第二循环组G2是一个有限域的相乘子组。
65.如权利要求62所述的方法,其中该函数ê是一个双线性、非退化、和可高效计算的成对。
66.如权利要求62所述的方法,其中s0是循环组Z/qZ的一个单元;Q0是该第一循环组G1的一个单元;每一个单元Pzi是该第一循环组G1的一个单元;每一个单元Pyi是该第一循环组G1的一个单元;每一个低级密钥产生秘密szi是该循环组Z/qZ的一个单元;每一个低级密钥产生秘密syi是该循环组Z/qZ的一个单元;每一个秘密单元Szi是该第一循环组G1的一个单元;每一个秘密单元Syi是该第一循环组G1的一个单元;每一个低级密钥产生参数Qzi是该第一循环组G1的一个单元;每一个低级密钥产生参数Qyi是该第一循环组G1的一个单元;该接收方单元Pz(n+1)是该第一循环组G1的一个单元;该发送方单元Py(m+1)是该第一循环组G1的一个单元;该接收方秘密单元Sz(n+1)是该第一循环组G1的一个单元;该发送方秘密单元Sy(m+1)是该第一循环组G1的一个单元;r是循环组Z/qZ的一个单元;以及gyl是该第二循环组G2的一个单元。
67.如权利要求62所述的方法,进一步包括步骤通过下列步骤验证该密文C计算一个实验随机整数r′=H3(σ,M);以及确认U0=r′P0,以及针对l+1≤i≤n+1该Ui=r′Pzi
68.一种在包括发送方、接收方和多个授权方的一个公共密钥加密方案中在一个发送方和n个接收方之间发送数字消息的方法,其中n≥1,以及其中该接收方只要其拥有来自该授权方授权即可解码该数字消息,该方法包括步骤产生用于该接收方的一个接收方公共密钥/专用密钥对;其中该接收方专用密钥是该接收方的一个秘密;针对每一个授权方产生一个保密密钥si(1≤i≤n),其中其相关授权方知道每一密钥保密密钥;产生对于每一个授权方的一个公共密钥,其中至少使用针对其相关授权方的该保密密钥产生每一个公共密钥;通过利用该授权方的该保密密钥签署一个二进制数字串Mi而产生针对每一个授权方的签字;至少使用该接收方的公共密钥、由该授权方签署的二进制数字串、和该授权方的该公用密钥加密该数字消息,以便形成一个密文;以及至少使用该接收方的专用密钥和由该授权方产生的签字来解密该密文。
69.如权利要求68所述的方法,其中该二进制数字串的至少之一与确定由该授权方产生的该签字的有效期的一个参数相关。
70.如权利要求69所述的方法,其中,从包括该接收方的标识的信息中产生该二进制数字串的至少之一。
71.如权利要求69所述的方法,其中,从包括该接收方公共密钥的信息中产生该二进制数字串的至少之一。
72.如权利要求67所述的方法,进一步包括步骤产生单元的第一循环组G1和单元的第二循环组G2;选择一个函数ê,该函数能够从该第一循环组G1的两个单元中产生该第二循环组G2的一个单元;选择该第一循环组G1的一个产生器P;选择一个授权方的一个密钥产生秘密作为si;指定一个授权方的公用密钥作为siP;选择一个第一函数H1,该函数能够从二进制数字串Mi中产生该第一循环组G1的一个单元;产生用于每一个授权方的一个单元PMi,其中对于1≤i≤n该PMi=H1(siP,Mi);以及签署该单元PMi以便产生用于每一个授权方的签名Si=siPMi。
73.如权利要求72所述的方法,其中第一循环组G1和第二组循环G2具有相同的初始排序q。
74.如权利要求72所述的方法,其中该第一循环组G1是在一个超单值椭圆曲线或阿尔贝尔型曲线上的点的一个相加组,并且该第二循环组G2是一个有限域的相乘子组。
75.如权利要求72所述的方法,其中该函数ê是一个双线性、非退化、和可高效计算的成对。
76.如权利要求72所述的方法,其中每一个低级密钥产生秘密si是该循环组Z/qZ的一个单元;每一个公共密钥Si是该第一循环组G1的一个单元;每一个单元PMi是该第一循环组G1的一个单元;以及该接收方专用密钥s是Z/qZ的一个单元。
77.一种在一个公共密钥加密方案中在一个发送方和一个接收方之间发送数字消息的方法,该公共密钥加密方案包括发送方、接收方和多个授权方,该多个授权方至少包括一个根授权方和在该根授权方和该接收方之间的分级结构中的n个低级授权方,其中n≥1,并且其中该接收方只要拥有来自该授权方的授权就能够解密该数字消息,该方法包括步骤产生用于该接收方的一个接收方公共密钥/专用密钥对,其中该接收方专用密钥是该接收方的一个秘密;针对该根授权方和每一个低级授权方产生一个保密密钥si,其中其相关授权方知道每一密钥保密密钥;产生对于该根授权方和每一个授权方的一个公共密钥,其中至少使用针对其相关授权方的该保密密钥产生每一个公共密钥;认证每一个都包含每个低级授权方的公用密钥的文件以便产生一个签字,其中包含每一低级授权方的公用密钥的该文件由在该分级结构中高于该低级授权方的授权方所认证;认证包含该接收方公共密钥的一个文件,其中该文件由该分级结构中的紧邻该接收方之上的该授权方所认证;至少使用该接收方的公共密钥和该授权方的公用密钥以及该文件加密该数字消息,以便形成一个密文;和至少使用该接收方的专用密钥和由该授权方产生的签字来解密该密文。
78.如权利要求77所述的方法,其中该授权方的公用密钥的至少之一与确定由该授权方产生的该签字的有效期的一个参数相关。
79.如权利要求77所述的方法,其中,从包括该接收方的标识的信息中产生该二进制数字串的至少之一。
80.如权利要求77所述的方法,其中,从包括该接收方公共密钥的信息中产生该二进制数字串的至少之一。
81.如权利要求77所述的方法,进一步包括步骤产生单元的第一循环组G1和单元的第二循环组G2;选择一个函数ê,该函数能够从该第一循环组G1的两个单元中产生该第二循环组G2的一个单元;选择该第一循环组G1的一个产生器P;指定一个授权方的保密密钥作为si;指定一个授权方的公用密钥作为siP;选择一个第一函数H1,该函数能够从二进制数字串中产生该第一循环组G1的一个单元;产生用于每一个低级授权方的一个单元PMi,其中对于1≤i≤n-1该PMi=H1(siP,Mi+1),并且其中Mi+1与在该分级结构中的紧邻该授权方之下的该授权方的标识和公共密钥相关;和签署该单元PMi以便产生该签字Si=siPMi。
82.如权利要求81所述的方法,其中第一循环组G1和第二组循环G2具有相同的初始排序q。
83.如权利要求81所述的方法,其中该第一循环组G1是在一个超单值椭圆曲线或阿尔贝尔型曲线上的点的一个相加组,并且该第二循环组G2是一个有限域的相乘子组。
84.如权利要求81所述的方法,其中该函数ê是一个双线性、非退化、和可高效计算的成对。
85.如权利要求81所述的方法,其中每一个低级密钥产生秘密si是该循环组Z/qZ的一个单元;每一个公共密钥Si是该第一循环组G1的一个单元;每一个单元PMi是该第一循环组G1的一个单元;和该接收方专用密钥s是该循环组Z/qZ的一个单元。
86.一种在一个公共密钥加密方案中的一个发送方和一个接收方之间加密和解密一个数字消息的方法,该公共密钥加密方案包括发送方、接收方和一个授权方,其中由该发送方加密该数字消息并且由该接收方解密该数字消息,该方法包括步骤(a)产生一个接收方公共密钥/接收方专用密钥对;其中该接收方专用密钥是该接收方的一个秘密;(b)选择该授权方知道的一个密钥产生秘密;(c)产生与时段i相关的一个接收方解密密钥,其中与时段i相关的该接收方解密密钥与该密钥产生秘密相关,并且其中能够从与时段i相关的该接收方解密密钥中产生与早于i的时段相关的接收方解密密钥,但是不能从与时段i相关的该接收方解密密钥中产生与迟于i的时段相关的接收方解密密钥;(d)至少使用该接收方公共密钥、与时段i相关的时段参数或与一个早先的时段相关的一个时段参数、以及一个接收方加密密钥加密该数字消息而形成一个密文,以便创建一个加密的数字消息;和(e)至少使用该接收方专用密钥和与时段i相关的该接收方解密密钥来解密该密文。
87.如权利要求86所述的方法,其中与时段i相关的该接收方解密密钥与标识该接收方的信息相关。
88.一种在一个公共密钥加密方案中在一个发送方和一个接收方之间发送一个数字消息的方法,该公共密钥加密方案包括发送方、包括该接收方的多个客户和一个授权方,其中该数字消息由该发送方加密并且由该接收方解密,该方法包括步骤(a)产生用于该接收方的一个接收方公共密钥/接收方专用密钥对;其中该接收方专用密钥是该接收方的一个秘密;(b)产生把该接收方与在一个B树结构中的一个分支节点相关的一个唯一二进制字符串;(c)产生与该接收方分支节点的每一个前代节点相关的一个唯一二进制字符串;(d)产生用于该接收方分支节点以及用于该接收方分支节点的每一个前代节点的一个加密密钥,其中用于每一个节点的加密密钥至少与该相关于该节点的该二进制字符串相关;(e)产生该授权方所知道的一个主秘密;(f)产生与该接收方分支节点的一个前代节点相关的一个接收方解密密钥,其中该前代节点不是与未由该授权方授权的一个客户相关的一个分支节点的前代节点,其中该接收方解密密钥至少与该相关于该节点和该主秘密的二进制字符串相关,并且其中与该接收方分支节点的一个前代节点相关的该接收方解密密钥与该相关于该接收方分支节点的前代节点的该加密密钥一起形成一个专用密钥/公共密钥对;(g)至少使用该接收方公共密钥以及与该接收方分支节点和该接收方分支节点的前代节点相关的加密密钥来加密该数字消息,以便产生一个加密的数字消息;以及(h)至少使用该接收方专用密钥和与该接收方分支节点的一个前代节点相关的该接收方解密密钥来解密该加密的数字消息。
89.如权利要求88所述的方法,其中用于该接收方分支节点和用于该接收方分支节点的每一个前代节点的加密密钥与限定用于与该节点相关的解密密钥的一个有效期的有效期参数相关。
90.如权利要求89所述的方法,还包括步骤产生用于该接收方的一个长寿命的认证,其中该认证包括该接收方公共密钥、接收方序列号、和有效期参数,其中该接收方序列号与把该接收方与在一个B树结构中的分支节点相关的二进制字符串相关。
91.如权利要求88所述的方法,其中在该B树结构中的节点与在一个椭圆曲线或阿尔贝尔型曲线上的点相关。
92.如权利要求88所述的方法,其中,通过一种包括下列步骤的方法产生把该接收方与在一个B树结构中的一个分支节点相关的二进制字符串选择与该B树结构的根节点相关的二进制字符串;产生与除了该根节点之外的该接收方分支节点的每一个前代节点相关的一个二进制字符串,其中至少使用与该节点的父代节点相关的二进制字符串来产生与除了该根节点之外的该接收方分支节点的每一个前代节点相关的二进制字符串;以及产生与接收方分支节点相关的一个二进制字符串,其中至少使用该节点的父代节点的二进制字符串来产生与该接收方分支节点相关的该二进制字符串。
93.如权利要求88所述的方法,其中,通过一种包括下列步骤的方法产生把该接收方与在一个B树结构中的一个分支节点相关的二进制字符串选择与每个接收方分支节点相关的二进制字符串;产生用于该接收方分支节点的该前代节点的二进制字符串,其中至少使用与该节点的子节点相关的该二进制字符串来产生用于该接收方分支节点的每一个前代节点的二进制字符串。
94.如权利要求93所述的方法,其中该B树结构是一种Merkle树结构。
95.如权利要求88所述的方法,其中通过包括下列步骤的方法来产生用于提供对于该接收方分支节点的覆盖的节点的解密密钥(a)产生单元的第一循环组G1和单元的第二循环组G2;(b)选择一个第一函数H1,该函数能够从第一二进制数字串中产生该第一循环组G1的一个单元;(c)产生用于该提供对于该接收方分支节点Pnode=H1(InfB)的覆盖的该节点的一个标识字符串,其中InfB与该相关于该节点的二进制字符串相关;以及(d)产生针对每一节点的一个秘密单元S=scPnode;其中该秘密单元S是用于该提供对于该接收方分支节点的覆盖的该节点的解密密钥。
96.如权利要求95所述的方法,其中,用于提供对于该接收方分支节点的覆盖的该节点的解密密钥的该标识字符串还与该有效期参数相关。
97.如权利要求88所述的方法,其中该数字消息由包括下列步骤的一个方法加密(a)产生单元的第一循环组G1和单元的第二循环组G2;(b)选择一个函数ê,该函数能够从该第一循环组G1的两个单元中产生该第二循环组G2的一个单元;(c)选择该第一循环组G1的一个产生器P;(d)产生一个密钥产生参数Q=scP;(e)选择一个第一函数H1,该函数能够从第一二进制数字串中产生该第一循环组G1的一个单元;(f)选择一个第二函数H2,该函数能够从该第二循环组G2的一个单元产生一个第二二进制数字串;(h)针对定义从该接收方分支节点到该B树结构的根节点的路径的m个节点的每一个而产生一个标识字符串Pnode=H1(InfB),其中InfB与相关于该节点的该二进制字符串相关;选择一个随机密钥产生秘密r;加密该数字消息以便形成一个密文C;其中C被设置为C=[rP,V1,....,Vm,],其中Vi=M_H2(ê(P,Pnode i)rsc)),ê(P,Pnode i)∈G2,并且Pnode i是与节点i相关的标识字符串,i=1,....,m;以及,利用该接收方公共密钥PKB加密该密文的一部分。
98.如权利要求97所述的方法,其中InfB还与该有效期参数相关。
99.如权利要求97所述的方法,其中第一循环组G1和第二组循环G2具有相同的初始排序q。
100.如权利要求97所述的方法,其中该第一循环组G1是在一个超单值椭圆曲线或阿尔贝尔型曲线上的点的一个相加组,并且该第二循环组G2是一个有限域的相乘子组。
101.如权利要求97所述的方法,其中该函数ê是一个双线性、非退化、和可高效计算的成对。
102.如权利要求98所述的方法,其中sc是循环组Z/qZ的一个单元;Q是该第一循环组G1的一个单元;标识字符串Pnode是该第一循环组G1的一个单元;以及秘密单元S是第一循环组G1的一个单元。
103.一种在一个公共密钥加密方案中在一个发送方和一个接收方之间发送一个数字消息的方法,该公共密钥加密方案包括发送方、包括该接收方的多个客户和一个授权方,其中该数字消息由该发送方加密并且由该接收方解密,该方法包括步骤(a)产生用于该接收方的一个接收方公共密钥/接收方专用密钥对;其中该接收方专用密钥是该接收方的一个秘密;(b)产生与该B树结构的根节点相关的一个二进制字符串,其中此二进制字符串与一个有效期参数相关,该有效期参数限定用于针对提供用于该接收方分支节点的覆盖的一个节点的解密密钥的有效期;(c)产生把该接收方与在一个B树结构中的一个分支节点相关的一个唯一二进制字符串;(c)产生与除了该根节点之外的该接收方分支节点的每一个前代节点相关的一个唯一二进制字符串,其中此二进制字符串与其相关节点在该B树结构中的位置相关;(d)产生用于该接收方分支节点以及用于该接收方分支节点的每一个前代节点的一个加密密钥,其中用于每一个节点的加密密钥至少与该相关于该节点的该二进制字符串相关;(e)产生该授权方知道的一个第一主秘密和一个第二主秘密;(f)产生针对提供对于该接收方分支节点的覆盖的该节点的一个解密密钥,其中提供对于该接收方分支节点的覆盖的该节点不是未被授权来解密一个信息的一个接收方的分支节点的一个前代节点,其中此解密密钥与该第一主秘密、该第二主秘密x相关,并且此解密密钥与相关于提供对于该接收方分支节点的覆盖的该节点和提供对于该接收方分支节点的覆盖的该节点的前代节点的二进制字符串相关,并且其中该解密密钥与相关于该提供对于该接收方分支节点的覆盖的该节点的加密密钥形成一个专用密钥/公共密钥对;(g)至少使用该接收方公共密钥以及与该接收方分支节点和该接收方分支节点的前代节点相关的加密密钥来加密该数字消息,以便产生一个加密的数字消息;和(h)至少使用该接收方专用密钥和与该提供用于该接收方分支节点的覆盖的该节点相关的该接收方解密密钥来解密该加密的数字消息。
104.如权利要求103所述的方法,还包括步骤产生用于该接收方的一个长寿命的认证,其中该认证包括该接收方公共密钥、接收方序列号、和有效期参数,其中该接收方序列号与把该接收方与在一个B树结构中的分支节点相关的二进制字符串相关。
105.如权利要求103所述的方法,其中该B树结构是一种Merkle树结构。
106.如权利要求103所述的方法,其中,通过一种包括下列步骤的方法产生把该接收方与在一个B树结构中的一个分支节点相关的二进制字符串选择与该B树结构的根节点的一个子代相关的二进制字符串;产生与除了该根节点和该根节点的子代之外的该接收方分支节点的每一个前代节点相关的一个二进制字符串,其中该二进制字符串与除了该根节点以外的该接收方分支节点的每一个前代节点相关,并且至少使用与该节点的父代相关的该二进制字符串来产生该根节点的子代;并且产生与接收方分支节点相关的一个二进制字符串,其中至少使用该节点的父代节点的二进制字符串来产生与该接收方分支节点相关的该二进制字符串。
107.如权利要求103所述的方法,其中,通过一种包括下列步骤的方法产生把该接收方与在一个B树树结构中的一个分支节点相关的二进制字符串选择与每个接收方分支节点相关的二进制字符串;产生用于除了该根节点之外的该接收方分支节点的前代节点的二进制字符串,其中至少使用与该节点的子节点相关的二进制字符串产生用于除了该根节点之外的该接收方分支节点的每一个前代节点的二进制字符串。
108.如权利要求103所述的方法,其中在该B树结构中的节点与在一个椭圆曲线或阿尔贝尔型曲线上的点相关。
109.如权利要求108所述的方法,其中通过包括下列步骤的方法来产生用于该提供对于该接收方分支节点的覆盖的节点的解密密钥(a)产生单元的第一循环组G1和单元的第二循环组G2;(b)选择一个第一函数H1,该函数能够从一个第一二进制数字串产生该第一循环组G1的一个单元;(c)产生用于在该B树结构Pmode=H1(InfR)中的该根节点的标识字串,并且其中InfR与该有效期参数相关;(d)产生用于该根节点的一个秘密单元SR=scPmode;其中该秘密单元S是基于标识的该根节点的保密密钥;(e)产生与提供用于该接收方分支节点和用于提供对于除了该根节点之外的接收方分支节点的覆盖的该节点的每一个前代节点的覆盖的节点相关的二进制字符串,Pb1...Pb1...bi,其中与提供用于该接收方分支节点和用于提供针对该接收方分支节点的覆盖的该节点的每一个前代节点的覆盖的该节点相关的二进制字符串的形式为Pnode=H1(InfB),其中InfB与该B树结构中的该节点的位置相关;(f)产生一个秘密单元S=SR+x(Pb1+...+Pb1...bi),xP用于该提供对于该接收方分支的覆盖的节点,其中该秘密单元S是针对该提供对于该接收方分支节点的覆盖的节点的解密密钥。
110.如权利要求103所述的方法,其中通过包括下列步骤的一种方法编码该数字消息,以便创建该编码的数字消息(a)产生单元的第一循环组G1和单元的第二循环组G2;(b)选择一个函数ê,该函数能够从该第一循环组G1的两个单元中产生该第二循环组G2的一个单元;(c)选择该第一循环组G1的一个产生器P;(d)产生一个密钥产生参数Q=sCP;(e)选择一个第一函数H1,该函数能够从第一二进制数字串中产生该第一循环组G1的一个单元;(f)选择一个第二函数H2,该函数能够从该第二循环组G2的一个单元产生一个第二二进制数字串;(g)产生用于在该B树结构Pmode=H1(InfR)中的该根节点的标识字串,其中InfR与该有效期参数相关;(h)产生与提供用于该接收方分支节点和用于提供对于除了该根节点之外的接收方分支节点的覆盖的该节点的每一个前代节点相关的二进制字符串,Pb1...Pb1...bi,其中用于该接收方分支节点的和用于该接收方分支节点的每一个前代节点的二进制字符串的形式为Pnode=H1(InfB),其中InfB与该B树结构中的该节点的位置相关;(i)选择一个随机密钥产生秘密r;(j)加密该数字消息以便形成一个密文C;其中C被设置为C=[rP,rPb1,…,r(Pb1+...+Pb1...bm),V],其中V=M_H2(ê(P,Pmode)rs)),ê(P,Pmode)∈G2;和(k)利用该接收方公共密钥PKB加密该密文的一部分。
111.如权利要求110所述的方法,其中第一循环组G1和第二组循环G2具有相同的初始排序q。
112.如权利要求110所述的方法,其中该第一循环组G1是在一个超单值椭圆曲线或阿尔贝尔型曲线上的点的一个相加组,并且该第二循环组G2是一个有限域的相乘子组。
113.如权利要求110所述的方法,其中该函数ê是一个双线性、非退化、和可高效计算的成对。
114.如权利要求110所述的方法,其中sc和x是循环组Z/qZ的单元;Q是该第一循环组G1的一个单元;标识字串Pnode和Pmode是该第一循环组G1的单元;和秘密单元S是第一循环组G1的一个单元。
115.如权利要求109所述的方法,其中更新用于该提供对于该接收方分支节点的覆盖的该节点的解密密钥,以便产生一个更新的解密密钥,该方法包括步骤(a)选择用于该更新的解密密钥的一个有效期;(b)选择用于该第二主秘密x的一新值;和(c)产生该更新的解密密钥,其中该更新的解密密钥与该接收方分支节点的一个前代节点相关,其中该前代节点不是由该授权方在该更新解密密钥的有效期期间授权的一个客户相关的一个分支节点的前代节点,其中该更新解密密钥与该第一主秘密sC、第二主秘密x、该第二主秘密x的新值相关,并且与该接收方分支节点的前代节点和该接收方分支节点的前代节点的前代节点相关的该二进制字串相关,并且其中的该解密密钥与该接收方分支节点的前代节点相关的加密密钥形成一个专用密钥/公共密钥对。
116.如权利要求115所述的方法,其中该更新的解密密钥的形式为sc(PT1+PT2)+x1Pb1+...+xmP(b1..bm),其中sc是该第一主秘密;PT1是在该解密密钥的有效期期间与根节点相关的二进制字符串;PT2是在更新的解密密钥的有效期期间与根节点相关的二进制字符串;xi...xm与该第二主秘密和用于该第二主秘密的新值相关;并且Pb1...P(b1...bm)是在该更新解密密钥的有效期期间与提供针对该接收方分支节点的覆盖的节点、以及除了该根节点之外的此节点的前代节点相关的二进制字符串。
全文摘要
本发明提供了在基于公共密钥的包括一个授权方(606)的加密系统中把数字消息从发送方(606)发送到接收方(608)的方法。该授权方可以是单一实体(606)或包括一个分级或分布的实体(602,604a-604b)。本发明通过有效协议允许的信息的通信,不涉及密钥状态查询或密钥密钥托管(keyescrow),其中一个消息接收方(608)只要拥有来自授权方的更新的权限就可以解密来自消息发送方(606)的消息。本发明允许这种在包括大数目(例如数百万)用户的一个系统中的通信。
文档编号H04L9/00GK1679271SQ03820528
公开日2005年10月5日 申请日期2003年8月28日 优先权日2002年8月28日
发明者克雷格·金特里 申请人:美国多科摩通讯研究所股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1