基于身份的分级加密与签名方案的制作方法

文档序号:7922657阅读:150来源:国知局
专利名称:基于身份的分级加密与签名方案的制作方法
技术领域
本发明主要涉及密码技术以及通过计算机网络或通过其他类型 的系统与设备进行的保密通信,并尤其涉及用来对通信进行加密和解 密的基于身份的分级方案。
背景技术
大致说来,基于身份的密码系统是公共密钥密码系统,在这类系 统中, 一个实体的公共密钥是由与该实体的身份相关的信息得来的。 例如,所述的身份信息可以是个人信息(即姓名、地址、电子邮箱地 址等)或是计算机信息(即IP地址等)。但是,身份信息不仅可以 包括与实体身份严格相关的信息,还包括广泛的可用信息,比如时间
或日期。也就是说,身份信息概念的重要性不在于它与实体身份的严 格关系,而在于任何希望向实体发送加密消息的人都能轻易获得该信 息。
一个实体的私有密钥由一个受委托方或逻辑进程产生并分配,所 述的受委托方或逻辑进程通常被称为私有密钥生成器("PKG")。PKG利用一个主密文信息来产生私有密钥。由于一个实体的公共密钥可根
据其身份推知,因此当Alice想要向Bob发送一条消息时,她就不必 从数据库中取回Bob的公共密钥。而是Alice只需根据Bob的识别信 息直接推知密钥。公共密钥数据库就成为多余,认证授权("CAs") 也是不必要的了。无需将Bob的身份"绑定,,到他的公共密钥上,因为 他的身份即是他的公共密钥。
基于身份的系统的概念并不新鲜。它在A. Shamir所著的 "Identity-Based Cryptosystems and Signatures Schemes (基于身份的 加密系统与签名方案)"中就已被提出,该文发表于ADVANCES IN CRYPTOGRAPHY - CRYPTO 484 , Lecture Notes in Computer Science 196 ( 1984) , Springer, 47-53。然而,可实际应用的基于身 份的加密方案至今仍未被找到。例如,基于身份的方案在下列文献中 就已^皮提出,C. Cocks所著的"An Identity-Based Encryption Scheme Based on Quadratic Residues (以平方残差为基础的基于身份的力口密 方案)",该文可在http:〃www .cesg.gov.uk /technology/ id-pkc/media /ciren.pdf 4寻到;D. Boneh, M. Franklin所著的"Identity Based Encryption from the Weil Pairing (由Weil配对得到的基于身份的加 密)",该文发表于ADVANCES IN CRYPTOGRAPHY - CRYPTO 2001, Lecture Notes in Computer Science2139 ( 2001 ) , Springer, 213-229; 以及D. Boneh, M. Franklin所著的"Identity Based Encryption from the Weil Pairing (extended version)(由Weil酉己对^寻 到的基于身份的加密(扩展版本)),,,该文可在 http:〃www,cs.stanford.edu/ dabo/papers/ibe.pdf得至'J 。 Cocks的方案 是基于"平方残差问题"的,尽管加密和解密都相当地快(大约是RSA 的速度),但是会有显著的消息扩展(即密文比特长度是明文比特长 度的许多倍)。Boneh-Franklin方案将其安全性的基础建立在"双线 性Diffie-Hellman问题"上,在使用超奇异椭圆曲线或阿贝尔鎂曲线上 的Weil或Tate配对时,该方案相当快速与高效。
然而,已知的基于身份的加密方案都有一个显著的缺陷——它们都不是分级结构的。在非基于身份的公共密钥加密技术中,已经可以
设置CA的分级结构,在该结构中,根CA可以为其他CA发放证书, 而后者又可以为特定域内的用户发放证书。这样做是很值得的,因为 它减轻了根CA的工作量。可供基于身份的加密技术使用的实用分级 方案还未被开发出来。
理想情况下,基于身份的分级加密方案将包括一个逻辑或实际 PKG的分级结构。例如, 一个根PKG可以向其他PKG发放私有密 钥,而后者又可以向特定域内的用户发放私有密钥。同时,只要发送 方获得了根PKG的公共参数,即使发送方根本不在系统中,也可以 在不上线查找接收方的公共密钥或低级公共参数的情况下发送一条 加密信息。基于身份的分级加密方案的另一个优点在于损坏控制。例 如, 一个域PKG的密文的泄漏并不会危及更高层次PKG的密文,也 不会危及任何其他不是这个被损害的域PKG的直接下级的PKG的密 文。而Cocks和Boneh-Franklin所提倡的方案并不具有这些特性。
安全而实用的基于身份的分级加密方案还未被开发出来。一种具 有部分共谋抵抗性的基于身份的分级密钥共享方案已经在下列文献 中被提出G. Ha謂ka, T. Nishioka, Y. Zheng, H. Imai所著的"An Efficient Hierarchical Identity-Based Key-Sharing Method Resistant Against Collusion Attacks ( —种能够抵抗共谋攻击的高效的基于身份 的分级密钥共享方法),,,该文发表于 ADVANCES IN CRYPTOGRAPHY - ASIACRYPT 1999, Lecture Notes in Computer Science 1716( 1999 ), Springer, 348-362;以及G. Hanaoka, T. Nishioka: Y. Zheng, H. Imai 所著的"A Hierarchical Non-Interactive Key-Sharing Scheme With Low Memory Size and High Resistance Against Collusion Attacks ( —种具有低内存容量、高共谋攻击抵抗性 的分级非互动密钥共享方案),,,该文将发表于THE COMPUTER JOURNAL 。 另夕卜,在 J. Horwitz, B. Lynn所著的"Toward Hierarchical Identity-Based Encryption(走向基于身份的分级加密),, 一文中还提供了对基于身份的分级加密的介绍,该文即将发表于ADVANCES IN CRYPTOGRAPHY - EUROCRYPT 2002, Lecture Notes in Computer Science, Springer。 Horwitz和Lynn提出了 一种
两级的分级方案,该方案在第一级具有完全的共谋抵抗性,并在第二 级具有部分的共谋抵抗性(即,用户可以共谋以获得他们的域PKG 的密文,并据此假扮成域PKG)。但是,Horwitz-Lynn系统的复杂 性会随着第二级上的共谋抵抗性提高,因此该方案不可能做到既实用 又安全。
因此需要一种安全实用的基于身份的分级加密方案。本发明的一 个目标就是要提供一种安全而又实用的基于身份的分级加密方案。本 发明的另一个目标是要提供一种安全而又实用的基于身份的分级签 名方案。本发明的另一个目标是所述的加密与签名方案都是完全可调 整的。本发明的另一个目标是所述的加密与签名方案在任意数量的级 别上都具有完全的共谋抵抗性,并且它们具有随机预言模型中的选定 密文安全性。

发明内容
根据本发明,它提供了用来实现安全可靠且实用的基于身份的分 级加密与签名方案的方法。
根据本发明的一方面内容,它提供了一种用来在一个系统中的发 送方与接收方之间编码和解码数字消息的方法,所述的系统中包括多 个私有密钥生成器("PKG")。这些PKG中至少包括一个根PKG以 及根PKG与接收方之间的分级结构中的"个低级PKG,其中^1。 一 个根密钥生成密文被选取,并且仅为根PKG所知。根据所述的根密 钥生成密文产生一个根密钥生成参数。为n个低级PKG各选取一个低 级密钥生成密文,其中每个低级密钥生成密文仅对其相关的低级PKG 已知。还要为w个低级PKG各产生一个低级密钥生成参数,其中至少 要用到对应于相关低级私有密钥生成器的低级密钥生成密文。至少利 用根密钥生成参数和接收方身份信息来对所述的消息进行编码,以形 成一个密文。产生一个接收方私有密钥,使得该接收方私有密钥至少与根密钥生成密文、根PKG和接收方之间的分级结构中的"个低级 PKG相关的"个低级密钥生成密文中的一个或多个、以及接收方身份 信息有关。至少利用接收方私有密钥来解密所述的密文以恢复所述的 消息。
根据本发明的另一方面内容,它提供了一种用来在一个系统中的 发送方与接收方之间编码和解码数字消息的方法,所述的系统中包括 多个私有密钥生成器("PKG,,)。这些PKG中至少包括一个根PKG、 根PKG与发送方之间的分级结构中的m个低级PKG,其中wa,根 PKG与接收方之间的分级结构中的"个低级PKG,其中"i,以及 PKG,,它是发送方与接收方共同的前辈PKG。在该分级结构中,w个 私有密钥生成器中的/个是发送方与接收方共同的前辈PKG,其中 /》1 。
根据本发明这一方面的内容,要为根PKG与发送方之间的分级 结构中的w个低级PKG各选取一个低级密钥生成密文。生成一个发 送方私有密钥,使得该发送方私有密钥至少与根密钥生成密文、根 PKG和发送方之间的分级结构中的w个低级PKG相关的w个低级密 钥生成密文中的一个或多个、以及发送方身份信息有关。生成一个接 收方私有密钥,使得该接收方私有密钥至少与根密钥生成密文、根 PKG和接收方之间的分级结构中的n个低级PKG相关的《个低级密 钥生成密文中的一个或多个、以及接收方身份信息有关。至少利用接 收方身份信息、发送方私有密钥、以及和位于或低于公共前辈PKG, 级别的(m-/ + 1)个私有密钥生成器相关的低级密钥生成参数中的0个 或多个,来对所述的消息进行编码,但是不能使用和高于公共前辈 PKG,的(/-)个PKG相关的低级密钥生成参数中的任何一个。至少利 用发送方身份信息、接收方私有密钥、以及和位于或低于公共前辈 PKG/级别的("-/ + 1)个私有密钥生成器相关的低级密钥生成参数中的 0个或多个,来对所述的消息进行解码,但是不能使用和高于公共前 辈PKG/的(/-l)个PKG相关的低级密钥生成参数中的任何一个。
根据本发明的另一方面内容,它提供了一种用来在一个系统中的发送方与接收方之间产生及验证一条消息的数字签名的方法,所述的
系统中包括多个PKG。这些PKG中至少包括一个根PKG以及根PKG 与发送方之间的分级结构中的"个低级PKG,其中"a。 一个根密钥 生成密文被选取,并且仅为根PKG所知。根据所述的根密钥生成密 文产生一个根密钥生成参数。为"个低级PKG各选取一个低级密钥生 成密文,其中每个低级密钥生成密文仅对其相关的低级PKG已知。 还要为"个低级PKG各产生一个低级密钥生成参数,其中至少要用到 对应于相关低级私有密钥生成器的低级密钥生成密文。为发送方生成 一个私有密钥,使得该私有密钥至少与根密钥生成密文以及发送方身 份信息有关。至少利用发送方私有密钥来签署所述的消息以生成一个 数字签名。至少利用根密钥生成参数以及发送方身份信息来验证所述 的数字消息。


以下对本发明优选实施例的说明参照了附图,其中
图1示出了一张流程图,该图根据本发明的当前优选实施例展示 了 一种编码和解码数字消息的方法;
图2示出了 一张流程图,该图根据本发明的另 一个当前优选实施 例展示了 一种在发送方y和接收方z之间编码及解码数字消息的方法;
图3示出了一张框图,该图展示了一种典型的分级结构,在这种 结构中可以实现图2所示的方法;
图4示出了 一张流程图,该图根据本发明的另 一个当前优选实施 例展示了 一种编码和解码一条数字消息m的方法,所述的数字消息在 发送方^和接收方z之间传递;
图5示出了一张流程图,该闺根据本发明的另一个当前优选实施 例展示了 一种编码和解码一条数字消息m的方法,所述的数字消息在 发送方^和接收方z之间传递;
图6示出了 一张流程图,该图根据本发明的另 一个当前优选实施 例展示了 一种编码和解码一条数字消息m的方法,所述的数字消息在发送方y和接收方z之间传递;
图7示出了一张流程图,该图根据本发明的另一个当前优选实施 例展示了 一种生成及验证一个数字签名的方法;
图8示出了一张流程图,该图根据本发明的另一个当前优选实施 例展示了 一种生成及验证一条数字消息m的数字签名的方法,所述 的数字消息在发送方^和接收方z之间传递;以及
图9示出了 一张流程图,该图根据本发明的另 一个当前优选实施 例展示了 一种生成及验证一条数字消息m的数字签名脚的方法,所述 的数字消息在发送方少和接收方z之间传递。
具体实施例方式
本发明的当前优选方法提供了安全可靠而实用的基于身份的分 级加密("HIDE")与签名("HIDS")方案。所述的分级方案是完全 可调整的,在任意数量的级别上都具有完全的共谋抵抗性,并且具有 随机预言模型中的选定密文安全性。这些目标部分是通过在各个低级 PKG中引入附加随机信息而实现的。这些方案在直观上令人惊讶的一 个方面在于,即使低级PKG产生了附加随机信息,也不会迫使在分 级结构的根级别以下添加公共参数。另外,低级PKG所产生的随机
密S息的能力造成负面影响。、、 '、、"、
本发明的每一个HIDE和HIDS方案都需要PKG的分级结构, 该结构中至少包括一个根PKG和多个低级PKG。分级结构和低级 PKG可以是逻辑的,也可以是实际的。例如, 一个单个实体就可以产 生根密钥生成密文和低级密钥生成密文,低级用户的加密或签名密钥 都是由后者生成的。在这种情况下,低级PKG都不是独立的实体, 而只是以逻辑分级结构组织的进程或信息,并被用来为分级结构中的 后代PKG及用户生成密钥。或者,每个低级PKG也可以是独立的实 体。另一种备选方案涉及实际与逻辑低级PKG的混合形式。为了本 文公开说明的目的,短语"低级PKG,,一般被用来指代这些备选方案中
18的任意一种。
在本文所公开的基于身份的分级密码系统环境下,基于身份的公 共密钥可以是基于时间周期的。例如, 一个特定接收方的身份会随各 个随后的时间周期而变化。或者,接收方也可以将时间周期安排为它 自己在分级结构中的后代或下级,并且发送方会在编码消息时使用正 确时间周期上的身份。不论采用何种方式,每个密钥都只在相关的时
间周期内才能有效的用来签署要送给Bob的消息。
本发明的HIDE方案通常包括5个随机化的算法根设置、低级 设置、抽取、加蜜以及解密。这些算法中的三个依赖于分级结构中相
关实体的身份。每名用户最好都在分级结构中拥有一个位置,该分级 结构可由它的ID元组(ID,,...,ID,)定义。所述用户在分级结构中的前辈 是根PKG以及ID元组为{(ID,,...,ID,):l《"(,-1)}的用户或PKG。为了计 算的目的,ID元组最好用二进制字串表示。
在根设置算法中,根PKG使用一个保密参数/fc来产生公共系统
参数 以及一个根密钥生成密文。所述的系统参数包括对消息空
间M和密文空间X的描述。所述的系统参数是公开使用的,但只有 根PKG知道根密钥生成密文。
在低级设置算法中,为了抽取的目的,每个低级PKG最好产生 它自己的低级密钥生成密文。或者,低级PKG也可以为每次抽取产 生一次性密文。
在抽取算法中, 一个PKG (根PKG或低级PKG)为它的任意 一个后代产生一个私有密钥。该私有密钥是利用系统参数、生出方 PKG的私有密钥以及任何其他的优选密文信息产生的。
在加密算法中,发送方从根PKG接收系统参数,最好是通过本 系统以外的某些安全途径接收。发送方不必接收任何低级密钥生成参 数。所述的发送方利用 和期望接收方的ID元组来编码一条消息
MeM,以产生一个加密文本CeX。相反地,在解码算法中,接收方 利用 和接收方的私有密钥d来解码力口密文本C , 以恢复消息M 。
加密和解密最好都满足标准的一致性约束va/gM: Decryption (戸ra柳乂c):m 其中c = Encryption (pmw w, /z)元组,m)。
象HIDE方案一样,本发明的HIDS方案一般也包括5个随机化 的算法根设置、低级设置、抽取、签署以及验证。在根设置中,系 统参数会被补充以包括进对签名空间i:的说明。低级设置和抽取最好 与上述HIDE中的算法一样。
在签署算法中,数字消息的发送方利用戸m柳和发送方的私有密 钥d签署消息MeM,以生成一个签名"s。在验证算法中,被签署消 息的接收方利用 以及发送方的ID元组来验证签名S。验证算法
最好输出"有效,,或"无效,,。签署与验证最好也满足一致性约束 VMeM: Verification (paraffM,/D元组,S)^'有效" 其中5" = Signing (p麵柳,d, M)。
HIDE与HIDS方案的安全性
下面将分别针对HIDE和HIDS来说明实现了本发明的方案的安 全性。在基于身份的非分级加密技术环境下人们已经注意到,必须为 基于身份的系统加强选定密文安全性的标准定义。这是因为,为了进 行安全性分析,应该假定一个敌对方能够获得与其选择的任意身份相 关的私有密钥(除了受到攻击的特定身份以外)。这一点同样适用于 基于身份的分级加密技术。因此,为了确保本发明的HIDE方案是具 有选定密文安全的,就可以让一个模拟攻击者进行密钥抽取查询。同 时,还要允许该模拟敌对方选择其所希望挑战的身份。
还应该注意的是, 一个敌对方可以自适应性或非自适应性地选取
其对象的身份。自适应地选取其对象的敌对方将首先进行乱序查询和 抽取查询,并接着根据这些查询的结果选取它的目标。这样的敌对方 在开始攻击时不会有特定的目标。而是,只要它能破解某人,该敌对 方就是成功的。另一方面, 一个非自适应的敌对方不会根据乱序查询 和抽取查询的结果来选取它的目标。例如,这样的敌对方会以一个私敌为目标。该敌对方仍会进行乱序查询和抽取查询,但是它的目标选 择是严格根据目标身份的,而非根据查询结果。显而易见,针对自适 应目标选取的敌对方的安全性是更强的,因此也是更加优越可取的安
全性概念。但是,对本发明中HIDE方案的安全性分析提到了两种类 型的安全性。
如果在以下的竟赛中不存在对挑战者具有不可忽略优势的受多 项式限制的敌对方A,那么就称HIDE方案对自适应选取密文以及自 适应选取目标的攻击具有语义上的安全性。
设置挑战者取得一个保密参数/t并运行根设置算法。它将得到 的系统参数戸m肌提供给敌对方。它将根密钥生成密文留给自己。
阶段l:敌对方提出查询《,...,^,其中《是下列查询中的一种
1. 公共密钥查询(ID元组,)挑战者对ID元组,运行一个乱序算法,
以获得对应于ID元组,的公共密钥//(ID元组,)。
2. 抽取查询(ID元组,)挑战者运行抽取算法以生成对应于ID元组,的 私有密钥《,并将《发送给敌对方。
3. 解密查询(iD元组,,c,): 44战者运行抽取算法以生成对应于ID元组, 的私有密钥",,利用",运行解密算法以解密c,,并将结果得到的明文 发送给敌对方。
这些查询可以自适应地提出。另外,帔查询的ID元组,可以对应于 分级结构任何一个级别上的位置。
挑战 一旦敌对方判定阶段l已经结束,它就会输出两个长度相
等的明文M。,M^M,以及一个它希望挑战的ID元組。唯一的限制在
于,该ID元组以及它的前辈都不能出现在阶段1中的任何私有密钥 抽取查询中。挑战者随意选取一个随机比特&{0,1},并设
ID元组,M丄它将C作为一次挑战发送给敌对方。
阶段2:敌对方提出更多的查询^+1,...,&,其中《,是下列查询中的
一种
1. 公共密钥查询(ID元组,)挑战者像在阶段1中那样进行回应。
2. 抽取查询(ID元组,)挑战者像在阶段1中那样进行回应。3.解密查询(C,ID元组,)挑战者像在阶段1中那样进行回应。 阶段2中的查询受到如下限制,即挑战者不能对与挑战密文c相 关的ID元组进行抽取查询,或是利用那个ID元组以及密文C进行解 密查询。这一限制同样适用于该ID元组的所有前辈。
猜测敌对方输出一个猜测值6'"0,1}。如果"6',则敌对方赢得 比赛。敌对方在攻击本方案中所拥有的优势被定义为—[6 = 6']-^|。
在以下所述的竟赛中,如果不存在拥有不可忽略优势的多项式时
间敌对方,那么HIDE方案就被称为单向加密方案。在该竟赛中,敌 对方A被给予一个随积乂^共密钥尺—和一个加密文本C,并输出一个
对明文的猜测值,所述的加密文本C是利用对随机消息M进行加密
得到的。如果^是A输出M的概率,那么就称所述的敌对方对本方案
具有优势"所述的竟赛如下进行
设置挑战者取得一个保密参数yt并运行根设置算法。它将得到 的系统参数戸m慰提供给敌对方。它将根密钥生成密文留给自己。
阶段l:敌对方就如在上述选定密文安全性分析的阶段l中那样 进行/>共密钥和/或抽取查询。
挑战 一旦敌对方判定阶段l已经结束,它就会输出一个它希望
4兆战的新ID元组/D。才兆战者随意选取一个随机的MeM ,并设 C =五"co^rio"(para柳,ID元组,M)。它将C作为 一次才兆战发送给敌对方。
阶段2:敌对方对除了 /D及其前辈以外的其他身份提出更多的公 共密钥查询以及更多的抽取查询,挑战者则会如阶段l中那样作出回 应。
猜测敌对方输出一个猜测值M'eM。如果M:M',则敌对方贏 得比赛。敌对方在攻击本方案中所拥有的优势被定义为Pr[M-M']。
本发明的方案对于上述挑战是安全可靠的。另外,本发明的HIDS 方案针对现有的针对自适应选取消息的伪造也是安全可靠的。即使在 (自适应地)获取了目标在敌对方所选取的消息上的签名之后,敌对 方也不能伪造出它的目标在其以前并未签署过的其他消息上的签名。
一个HIDS敌对方还将拥有对除了它的目标及其前辈以外的其他实体进行公共密钥查询和私有密钥抽取查询的能力,以及选取其目标的能
力。对于HIDE而言,敌对方的目标选择可以是自适应的也可以是非 自适应的。 配对
本发明的当前优选HIDE和HIDS方案都是基于配对的,例如与 椭圆曲线或阿贝尔簇曲线相关的Weil或Tate配对。所述的方法也可 以是基于双线性Diffie-Hellman问题的。它们使用两个循环群r,和r2 , 这两个循环群最好具有同样大小的素数阶《。第一群r,最好是椭圆曲 线或阿贝尔簇曲线上的一群点,并且r,上的群规则可以被写成加性的。 第二群r2最好是一个有限域的乘性子群,并且r2上的群规则可以被写 成乘性的。但是,也可以使用其他类型的群作为符合本发明的r,和G。
所述的方法还利用了第一群r,的生成器^。另外,还提供了一个 配对或函数s:nxr, — r2 ,用来将第一群r,的两个元素映射成第二群r2的 一个元素。函数s最好满足三个条件。首先,函数s最好是双线性的,
如果2和/ 都在g中,且"和6都是整数,那么s("e,MXe,w广。第二,
函数s最好是非退化的,从而使得该映射不会将r, xrt中的所有配对转 变为r,中的身份。第三,函数s最好是可以高效计算的。满足这三个 条件的函数"皮认为是可行的。
函数s最好还是对称的,从而对所有的e,/ er,都有" = s(凡e)。 然而,对称性直接来自于双线性以及r,是循环群这样一个事实。可根 据现有技术中已知的方法来修改与超奇异椭圆曲线以及阿贝尔簇曲 线相关的Weil和Tate配对,以创建这样的双线性映射。但是,即使 将第一循环群r,的元素称为"点"会暗示函数S是一种经过修改的Weil 或Tate配对,但应该注意的是,任何可行的配对e'都能够发挥作用。
本发明中HIDE和HIDS方案的安全性主要是基于双线性 Diffie-Hellman问题的。双线性Diffie-Hellman问题是在给定一个随 机选取的Per。以及"尸、6P和c尸(对于未知的随机选取的"》,ceZ/《Z ) 的情况下,求出e,,P广的问题。在r,中解决Diffie-Hellman问题就解 决了双线性Diffie-Hellman问题,这是因为e,,_P)* = ^"WV尸)。类似地,在r;中解决Diffie-Hellman问题也就解决了双线性Diffie-Hellman问
题,因为如果g"(尸,尸),那么g。6、fe1,其中^^("尸,6尸)且gC"(/V尸)。
为了使双线性Diffie-Hellman问题变得困难,就应该对r,和r,进行选 取,使得在r,或r^中不存在能够有效地解决Diffie-Helhnan问题的已 知算法。
如果一个随机化算法ir采用了一个保密参数hO、在^:的多项式
时间内运行、并输出两个群r,和r2的描述以及一个可4亍配对&r, xr; — r2 的描述,其中所述的两个群最好具有相同的素数阶"那么该算法ir就 是 一 个双线性Diffie-Hellman生成器。如果ir是 一 个双线性 Diffie-Hellman参数生成器,那么一个算法B在解决双线性 Diffie-Hellman问题中所拥有的优势A/v『(B)就被定义为,当送入算法 的输入项为r,、 r2、 S、 p、"尸、6尸和w时,算法B输出e'(P,尸广的概率, 其中(r,,r^)是ir针对足够大的保密系数/t的输出,p是r,的随机生成 器,"、6和c则是Z/《Z的随机元素。双线性Diffie-Hellman问题下的 假设是,A^「(B)对于所有的有效算法B都是可忽略的。 HIDE方案
现在参见附图,图1所示的流程图根据本发明的一种当前优选实 施例展示了 一种编码和解码数字消息的方法。该方法在包括多个PKG 的HIDE系统中执行。所述的PKG中至少包括一个根PKG以及根 PKG和接收方之间的分级结构中的"个低级PKG,其中l 。
在模块102中,根PKG选取一个只有根PKG知道的根密钥生 成密文。该根密钥生成密文可被用来为分级结构中根PKG以下的 PKG和/或用户生成私有密钥。然后,在模块104中,根PKG根据根 密钥生成密文产生一个根密钥生成参数。该根密钥生成参数被用来掩 饰根密钥生成密文。该根密钥生成参数可被透露给低级PKG,而又不 会危及根密钥生成密文。在模块106中,低级PKG选取低级密钥生 成密文。与一个给定的低级PKG相关的低级密钥生成密文可被用来 为分级结构中在该相关低级PKG之下的PKG和/或用户生成私有密 钥。与根密钥生成密文类似,每个低级密钥生成密文仅对其相关的低级PKG已知。
在模块108中,为"个低级PKG各自产生低级密钥生成参数。 每个低级密钥生成参数的产生至少要利用其相关低级PKG的低级密 钥生成密文。与根密钥生成参数类似,每个低级密钥生成参数掩饰了 与其相关的低级密钥生成密文。
在模块110中,发送方至少利用根密钥生成参数以及与接收方相 关的身份信息来编码消息以形成一个密文。例如,可以只利用根密钥 生成参数以及接收方的身份来编码所述的消息。或者,也可以利用低 级密钥生成参数中的一个,就像在下文中将根据双HIDE方案进行更 详细说明的一样。在模块112中, 一个低级PKG为接收方生成一个 私有密钥,使得该私有密钥至少与根密钥生成密文、与分级结构中根 PKG和接收方之间的w个低级PKG相关的"个低级密钥生成密文中 的一个或多个、以及接收方的身份信息相关。例如,除了根密钥生成 密文和接收方的身份信息之外,接收方的私有密钥最好还至少与向接 收方发放私有密钥的PKG的低级密钥生成密文相关。或者,接收方 的私有密钥也可以与所有"个前辈PKG的低级密钥生成密文以及根 密钥生成密文相关。在模块114中,接收方至少利用其私有密钥来解 码密文并恢复消息。除了利用其私有密钥来解码以外,接收方最好还 利用与分级结构中根PKG和接收方之间的"个低级PKG相关的n个 低级密钥生成参数。
每个低级PKG都有一个密钥生成密文,就像根PKG—样。如 上所述,低级PKG最好利用这个密文来为它的各个后代生成私有密 钥,就像根PKG那样做。这样,后代的私有密钥就与低级PKG的密 钥生成密文相关。即使低级PKG为了限制密钥托管(escrow)的目 的而使用其密钥生成密文的修改版本来隐藏那个密文,这一点也是成 立的,正如下文中将要更完整地说明的那样。同时,低级PKG不必 总是使用相同的密文来进行每次私有密钥提取,而是可以为PKG的 每个后代随机产生一个新的密钥生成密文,从而为每个后代得到不同 的密钥生成参数。由于一个低级PKG能够为接收方生成一个私有密钥(模块112 ), 因此根PKG不必自己生成所有的私有密钥。另外,由于低级PKG使 用它们自己的密钥生成密文来为它们的后代产生私有密钥,因此暴露 一个低级密钥生成密文只会对分级结构造成有限的安全性损害。与其 暴露分级结构中所有的私有密钥,不如让一个低级PKG的一次违规 行为只暴露该PKG的私有密钥以及利用那个PKG的密钥生成密文产 生的那些私有密钥(即,作为被暴露PKG在分级结构中的直系后代 的那些用户的私有密钥)。
本实施例的另 一个优点在于,发送方不必处在分级结构中即可向 接收方发送一个编码消息。该发送方只需知道与接收方相关的身份信 息以及由根PKG生成的系统参数。但是,当发送方处于分级结构中 时,本发明的HIDE方案还有某些额外的优点会体现出来。例如,当 发送方与接收方都处在分级结构中时,就可以通过利用双方的身份来 改善消息加密的效率。这类HIDE方案可以;陂称为双HIDE,因为发 送方与接收方的身份都被用作加密及解密算法的输入。现在将参照图 2和图3来说明使用了双HIDE方案的编码与解码方法。
双HIDE
图2所示的流程图根据本发明的另一个当前优选实施例展示了 一种在发送方y和接收方z之间编码及解码数字消息的方法。图3所示 的框图展示了一种典型的分级结构,在这种结构中可以实现这种方 法。与先前的实施例相似,该方法可在一个HIDE系统中实现,所述 的HIDE系统中至少包括一个才艮PKG 302,以及才艮PKG 302与接收 方z 308之间的分级结构中的"个低级PKG 304a,b,d,其中"a。该 实施例中的发送方y 306必须也在分级结构中,并且该分级结构中还 包括才艮PKG 302与发送方y 306之间的m个低级PKG 304a,b,c,其中 wa。在根PKG302与发送方y 306之间的m个PKG304a,b,c,以及 根PKG 302与接收方z 308之间的"个PKG 304a,b,d中,有/个PKG 304a,b是发送方y 306与接收方z 308的公共前辈,其中1《"w,"。例 如,在图3中示出了这/个7〉共前辈PKG中的两个(PKG乂PKGJ04a和PKGy,/PKGz/304b )。
该实施例的方法在模块202中开始,在该模块中,根PKG 302
选取一个只有根PKG302知道的根密钥生成密文。然后,在模块204
中,根PKG 302根据根密钥生成密文产生一个根密钥生成参数。在模
块206中,低级PKG 304a-d选取4氐级密钥生成密文。与才艮密钥生成
密文类似,每个低级密钥生成密文只对与其相关的低级PKG 304a-d
已知。在模块208中,为"个低级PKG 304a-d各自产生低级密钥生
成参数。每个低级密钥生成参数的产生至少要用到对应于其相关低级
PKG 304a-d的^f氐级密钥生成密文。
在才莫块210中,发送方的上代PKG, 304c为发送方^ 306生成
一个私有密钥,使得该私有密钥至少与根密钥生成密文、与根PKG
302和发送方y 306之间的w个低级PKG 304a,b,c相关的w个低级密
钥生成密文中的一个或多个、以及发送方的身份信息相关。例如,除
了根密钥生成密文和发送方的身份信息以外,发送方的私有密钥最好 至少还与发送方的上代pkg, 304c的低级密钥生成密文相关。或者,
发送方的私有密钥也可以与它所有附个直系前辈PKG的低级密钥生 成密文以及根密钥生成密文相关。在模块212中,接收方的上代pkg^ 304d为接收方z生成一个私有密钥,生成的方式与发送方的上代pkg,
304c用来生成发送方私有密钥的方式类似。
在模块214中,发送方少编码消息以形成一个密文,该过程至少 要用到发送方的私有密钥以及与根PKG 302和发送方少306之间的 (m —/ + 1)个PKG (即,pkg^ 304b和pkg戸304c)相关的低级密钥生
成参数中的一个或多个,且所述的PKG位于发送方;;306和接收方z 308的最低级公共前辈PKG( pkg,pkgz/ 304b)的级别或低于该级别。
在对消息进行编码时,发送方y 306最好不要用到与高于最低级公共 前辈PKG ( PKGy〃PKGz/ 304b)的(/-l)个PKG (即PKG- 304a)有关
的任何低级密钥生成参数。
然后,在模块216中,接收方z 308解码密文以恢复出所述的消 息,该过程至少要用到接收方的私有密钥以及与根PKG 302和接收方z 308之间的("-/ + 1)个PKG (即,PKGZ/ 304b和PKG罚304c)相关的
低级密钥生成参数中的一个或多个,且所述的PKG位于发送方少306 和接收方z 308的最低级公共前辈PKG (PKG乂PKG:, 304b)的级别
或低于该级别。在对消息进行解码时,接收方z 308最好不要用到与 高于最低级公共前辈PKG( PKG/PKGrf 304b)的(Z-l)个PKG(即PKG:,
304a)有关的任何低级密钥生成参数。
本发明的这种双HIDE实施例提供了对消息进行编码和解码的
更为高效的方案,因为只需使用较少的密钥生成参数。例如,普通
HIDE方案中的解码大约需要所有的/7个密钥生成参数,但是在双
HIDE方案中的解码只需要("-/ + 1)个密钥生成参数。双HIDE方案要
求发送方少306在向接收方z 308发送一条编码消息之前先获得它的
私有密钥,这与只需获得根PKG的公共系统参数相反。双HIDE方
案还使得发送方少306和接收方z 308能够限制密钥托管的范围,就
如下文中将要更完整说明的那样。这个共享的密文是除了它们最低级 公共前辈PKG/PKGz, 304b以外的第三方所不知道的。
基本HIDE
图4所示的流程图根据本发明的另一个当前优选实施例展示了 一种编码和解码一条数字消息M的方法,所述的数字消息在发送方y
和接收方z之间传递。如图3中所示,接收方z 308在分级结构中比 根PKG低"+ l个级别,并且与ID元组(n^,…,lD—,))相关联。接收方的 ID元组中包括与接收方有关的身份信息ID如D,以及与其在分级结构 中的"个前辈低级PKG相关的身份信息lDa。该方法在模块402中开 始,在该模块中生成元素的第一与第二循环群r,和r,。在模块404中, 选取一个函数"使得该函数e'能够由第一循环群r;的两个元素生成第 二循环群r,的一个元素。函数s最好是一种可行的配对,如上所述。 在模块406中选取第一循环群r;的一个根生成器户。。在模块408中, 选取一个随机根密钥生成密文 ,该密文与根PKG 302相关且只有根 PKG 302知道。s。最好是循环群z/^的一个元素。在模块410中产生 一个根密钥生成参数e。-vP。。 e。最好是第一循环群r,的一个元素。在模块412中,选取一个第一函数//,,使得z/,能够由第一串二进制数生 成第一循环群r,的一个元素。在模块414中选取一个第二函数//2,使 得A能够由第二循环群r,的一个元素生成第二串二进制数。模块402 至414的功能都是上述HIDE根设置算法的组成部分,并且最好都在 大致相同的时刻完成。作为示例,比如那些在Boneh-Franklin中公开 的函数就可以被用作,和2 。
接下来的一系列模块(模块416至424)示出了作为低级设置算 法的组成部分而执行的功能。在模块416中,为接收方的"个前辈低 级PKG各生成一个7>共元素pz,。每个z^共元素Pz, = //,(IDp…,IDJ最好都
是第一循环群r;的一个元素,其中ia《"。尽管是以单个模块表示的, 但是所有公共元素《,的产生需要进行一段时间,而非一次全部完成。
为接收方的"个前辈低级PKG 304a,b,d各选取一个低级密钥生 成密文&,(模块418)。该低级密钥生成密文^最好是循环群z/^的 元素,其中i&^,并且每个低级密钥生成密文&最好只有它相关的
低级PKG知道。同样,尽管是以单个模块表示,但是所有低级密钥 生成密文&的选取需要进行一段时间,而非一次全部完成。
为发送方的n个前辈低级PKG各生成一个低级机密元素&,(模 块420)。每个低级机密元素&,^^) + ^^最好是第一循环群r;的一
个元素,其中i"'^。尽管与公共元素《,以及密文&一样都是以单个 模块表示的,但是所有机密元素&,的产生也需要进行一段时间,而非 一次全部完成。为了这些重复的密钥生成过程的缘故,可将s。定为r,的
身份元素。
还要为接收方的n个前辈低级PKG各产生一个低级密钥生成参 数a,(模块422 )。每个密钥生成参数a,-^^最好都是第一循环群r,的
元素,其中B/^。同样,尽管以单个模块表示,但是所有密钥生成 参数込,的产生也需要进行一段时间,而非一次全部完成。
随后两个模块(模块424和426 )的功能是作为上述抽取算法的 一部分而执行的。在才莫块424中生成与接收方z相关的接收方公共元 素《(一。该接收方公共元素,pz( +1) = //1(idz1,...idz( +1)),最好是第一循环群r,的一个元素。然后在模块426中生成与接收方z有关的接收方机 密元素&( +,)。该接收方机密元素,
也是第 一循环群r,的 一个元素。
为方便起见,第一函数/z,可被选为一种迭代函数,从而可以按照
例如//,(/V,),IDJ而非i/,(ID,,…IDJ来计算公共点《。
图4中所示的最后两个模块(模块428和430)代表了上述的加密 与解密算法。在才莫块428中,消息M被编码以生成一个加密文本C。该 编码过程最好至少用到根密钥生成参数a以及ID元组(n^,…iD—D)。然 后在模块430中解码加密文本c以恢复消息M。该解码过程最好至少用 到低级密钥生成参数^以及接收方机密元素,其中ls,《n 。
图4中所示的模块不必完全顺次出现。例如, 一个知道接收方身 份的发送方可以在接收方获得私有密钥之前对通信进行加密。
现在将参照图5和图6,来详细说明在对消息M及密文c进行编 码和解码中所提到的参数及元素的具体运用。图5所示的流程图根据
本发明的另 一个当前优选实施例展示了 一种编码和解码一条数字消
息M的方法,所述的数字消息在发送方y和接收方z之间传递。在这个 被称为基本HIDE的方案中,根设置、低级设置以及抽取算法都与图 4中模块402至426所示的实施例相同。图5所示的流程图展示了加 密与解密算法,它在模块528a中从选取一个随机加密参数r开始。r最 好是循环群Z/W中的一个整数。然后在模块528b中利用公式 C = ["。,"2,...,f/ +1,r]生成加密文本c 。该加密文本c中包括元素C/,=《, 其中/ = 0和2^、" + 1,这些元素与接收方在分级结构中的位置有关。加
密文本C的其他组成部分是加密形式的实际消息,r = M@//2^),其中
g"(a,A)。元素g最好是第二循环群r,的成员。在消息被编码之后, 可以根据基本HIDE解密算法对其进行解密,在该解密算法中利用公
式M = K //
,从加密文本c中恢复出消息M (模块530 )
n》',",)
全HIDE
利用已知的方法来使得单向加密方案具有针对选定加密文本攻击的安全性,可以将基本HIDE方案转换为全HIDE方案,后者在随 机预言模型中具有选定加密文本安全性。现在将参照图6来说明一种 具有选定密文安全性的全HIDE方案。
图6所示的流程图根据本发明的另一个当前优选实施例展示了 一种编码和解码一条数字消息M的方法,所述的数字消息在发送方^ 和接收方z之间传递。在本发明的该实施例中,根设置、低级设置以 及抽取算法都与参照图4所述的实施例相同,只是该实施例的根设置 算法需要两个额外的函数。因此,图6所示的流程图从额外函数(模 块615a和615b )的选择开始,并继续进行加密与解密算法(模块628a 至630d )。
通过选择一个第三函数仏(模块615a)和一个第四函数仏(模 块615b)来完成根设置算法。第三函数//3最好能够由两串二进制数产 生循环群z/《z的一个整数。第四函数仏最好能够由另一个二进制串产 生一个二进制串。
加密算法从模块628a开始,该模块示出了随机二进制串cr的选 取。然后,该随机二进制串tr被用来生成一个随机整数^A(cT,M,),
如模块628b所示。其中『是实际消息M的对称加密。该加密最好是 利用对称加密算法£生成的,并用//4^)作为加密密钥。相应的, 『五仏w(M)。在模块628c中,生成力口密文本C^t/。,"2,…,(7"+"F,『]。该
密文C中包括元素f/,《,其中,=0和2《""+ 1,其与接收方在分级结
构中的位置有关。加密文本c的第二个组成部分是加密形式的随机二 进制串cj, r = CT@//2(g0,其中g"(込,ig。元素g最好是第二循环群r,的 成员。加密文本c的第三个组成部分是『,如上所迷,它是对称加密
形式的实际消息。
解密算法从模块630a开始,该模块示出了随机二进制串a的恢
复。随机二进制串(T是利用/^式"F6仏
恢复的。然后利
、nx
用公式M:《("(r)从密文c中恢复出消息M (才莫块630b)。可对加密 文本进行检查,以检验内部一致性。例如,可以生成一个实验性的随机整数r'-^(cT,M,『),如模块630c中所示。然后,就可以在模块630d 中利用该实验性的随机整数,来检验"。=,尸。及",=,&,其中2&^" + l。
如果成立,则可认为加密文本c是真实的。 双基本HIDE与双全HIDE
参照图2和图3所述的双HIDE概念可被应用于基本HIDE和全
HIDE方案。当发送方与接收方都处在分级结构中时,如图3所示,
双HIDE就能令它们提高它们的加密通信的效率与安全性。对基本
HIDE和全HIDE方案应用双HIDE需要决定附加信息,这些信息大
多是通过上述的低级设置算法决定的。例如,必须为发送方的w个前 辈低级PKG决定公共元素&、低级密钥生成密文 ,、低级机密元素
以及低级密钥生成参数&,。但是要注意,对于作为发送方y和接收方z
的公共前辈的低级PKG来说,这些参数最好相同,以便对发送方^和 接收方z进行分析(也就是说,对于所有的"/最好有 &, = &,以及&, = ^ )。双HIDE还需要为发送方决定一个发送方公共 元素^(—和一个发送方机密元素&,,使用的方法与上述为接收方决 定这些参数时所用的方法相同。
有了这些附加参数,就可以才艮据双HIDE原理对消息M进行编码 以生成一个加密文本C,编码的过程要利用低级密钥生成参数&,(其 中,'H)以及发送方机密元素&(—,但是不会用到/</的低级密钥生成 参数&,。类似地,对加密文本C解码以恢复消息M时要利用低级密钥 生成参数&,(其中/W)以及接收方机密元素&( +1),但是不会用到"/
的低级密钥生成参数a,。
例如,在基本HIDE方案中(图4与图5),双HIDE的应用改 变了消息崖的编码以生成一个密文0 = ["。",+1,...," +1,",其中对于/ = 0和
/+^""+1,有",=《,其中^^M④z/2(g;,),并且其中~= ff。:,(—)
〃,因子的计算与以前相同,但是只需计算其中的少部分。然而,双基 本HIDE要求发送方y使用多于上述生成g所必需的密钥生成参数" 来生成&,。这是因为发送方的身份被包含到加密算法中了。 解密算法的效率提高更为惊人。消息M是利用m=w" y。,"""恢复的。同样,还是只需要较少的f/,参
教。类似地,接收方需要用于双HIDE的密钥生成参数込,比其他情况 下所必需的要少。
全HIDE也可以被修改以创建一种双全HIDE方案。加密算法中
加密文本c的生成被修改为C = [f/。,"/+1,...,t/ +1,n],其中对于,'=o和 / + 1^、" + 1,有(7,参数『和r仍然以同才羊的方法生成,『=&
并且|/ = (7@//2(^)中的参数&/=.
n::u。
在双全HIDE方案中,解密算法也被修改。随机二进制串cr是利
用(j = f④//,
+1),
恢复的。另外,消息m的恢复不变,
尽管已经用PKG, 304b作为发送方少与接收方z的最低公共前辈 PKG说明了这些双HIDE方案,但是PKG, 304b可以是任意的公共 前辈PKG。加密与解密算法是相同的。但是为了获得最高的效率, PKG, 304b最好是最低公共前辈PKG。
除了效率的提高以外,本发明的双HIDE方案还通过限制密钥托 管提供了更高的安全性。在上述的基本HIDE和全HIDE方案中,接 收方的所有直系前辈PKG都能解密发给接收方的消息。但是,由于 双HIDE方案加入了 PKG,。 (PKG,的直接上代)的密钥生成密文, 该密文对于PKGn以上的公共前辈PKG是未知的,因此那些公共前 辈PKG就不能解密发送方少与接收方z之间的消息。
密钥托管可被进一步限制,从而即使是PKG,的直接上代也不能 解密发送方少与接收方z之间的消息。这一点可以通过在为发送方少和 接收方z生成私有密钥(或是为PKG,的后代同时又是发送方^与接收 方z的前辈的PKG生成私有密钥)的过程中隐藏PKG,的私有密钥来 实现。例如,对于某些随才几的"Z"z, PKG, 304b可以通过设置 S',:^,+Z^和e',^2M + M而轻易地改变其私有密钥。新的私有密钥S', 同样有效,但是却不为PKG,的直接上代所知。因此,PKG,以上的 PKG都不能对加密发送给接收方z的消息进行解码。更具体地说,
八有接收方z在PKG,的域内的前辈才能够解密发送给接收方z的消息。 当PKG, 304b通过设置:= & + 6《和g,—, := g,—, + M来改变其私有密 钥时,新的私有密钥仍然与PKG"的密钥生成密文^相关,因为新 的私有密钥是从一个由PKG,」利用^生成的私有密钥推得的。 一般 而言,在本文所讨论的所有方案中, 一个用户或PKG可以通过选取^ 的值(其中""")并设置S'—1):=S—" + Z二6,C和仏一ft,+6,尸。(其中 l&^),来改变它自己的机密元素&("+,)和密钥生成参数込,(其中
B/《n)。然而,为了本发明的目的,这种新的私有密钥仍然被认为 与原始的私有密钥有关,从而也和密钥生成密文&的初始值有关。
具有更高效的加密解密技术的双HIDE方案
在上述的双HIDE方案中,可以将加密器必须计算的配对值的数 量减少一个,而又不会提高解密器必须计算的配对值的数量。例如, 上述的双基本HIDE加密算法可以被修改,从而密文
(/+,)]>《(/+2),
g一n,:〖 ))p、"",+"如果密文被表示为
咖。A一》乾必)
C = [[/。,",+1,K," +1,",那么就可以利用m = r@//2
来对其进行解密。
同样地,也可以将解密器必须计算的配对值的数量减少一个,而
又不会提高加密器必须计算的值的数量。例如,双基本HIDE加密算
法可以被修改,从而密文。=[尸。,^^,+2),《,^^),^@//2(^(,+1))],其中
gz(,+l)=命。A口M,,(尸祠-,")=u。如果密文被表示为
c = ["。,"/+2,k," ,k〗,那么#尤可以利用m = re//2
来对
其进行解密。
经过JU正的j氐级才艮PKG
可以通过创建一个经过认证的低级才艮PKG将上述双HIDE方案 的高效性扩展到位于分级结构之外的消息发送方。要"认证"低级PKG,根PKG可以提出一个附加参数,比如一个随机消息M'。然后, 低级PKG"签署,,M',生成签名5^ = &/+^^.,其中S,是低级PKG的 私有密钥,s,则是其低级密钥生成密文。低级PKG还会公布对应于
利用经过认证的低级根PKG,位于分级结构之外的发送方无需 计算接收方所有"个前辈PKG的公共元素^即可向接收方z发送加密
消息。发送方可以利用对应于低级认证根PKG的参数更高效地加密 消息。具体地说,发送方计算CA(iD,,...,iDjer,,其中
然后发送方选取一个随机的reZ Z , 并生成加密文本 <formula>formula see original document page 35</formula>)],其中
^""A,)。假设接收到的密文C^t/。,C/,+,,..则
&( +1)是接收方的私有密钥。 分布式PKG
为了进一步保护上述HIDE方案的密钥生成密文,并使得这些方 案对于不诚实的PKG具有鲁棒性,可以利用已知的阈加密技术将密 钥生成密文和私有密钥分布开。
更高效的加密技术
通过将分级结构中的最高两级合并成单个根PKG,就可以提高 用于上述HIDE方案的加密技术的效率。在那种情况下,g"(e。,《)被 包含在系统参数中。这样就省去了加密器计算该配对值的任务。然而, 解密器必须计算一个额外的配对(这是它在树的下一级的结果)。
HIDS方案
现在考虑本发明的签名方案或HIDS方案,图7所示的流程图根 据本发明的另 一个当前优选实施例展示了 一种生成及验证一个数字 签名的方法。该方法在一个包含多个PKG的HIDS系统中实现。所 述的PKG中至少包括一个根PKG以及根PKG与发送方或签署人之 间的分级结构中的M个低级PKG,其中"^。在模块702中,根PKG
接收方可以解密该密文以恢复消息M = F @ //:
rd,",)
其中选取一个只有根PKG知道的根密钥生成密文。该根密钥生成密文可 被用来为分级结构中低于根PKG的PKG或用户产生私有密钥。然后 在模块704中,根PKG根据根密钥生成密文产生一个根密钥生成参 数。在模块706中,低级PKG选取低级密钥生成密文。与一个给定 的低级PKG相关的低级密钥生成密文可被用来为分级结构中低于该 相关低级PKG的PKG或用户生成私有密钥。与根密钥生成密文类似, 每个低级密钥生成密文只对其相关的低级PKG已知。在模块708中, 为 个低级PKG各自产生低级密钥生成参数。每个低级密钥生成参数 的产生都至少要用到其相关低级PKG的低级密钥生成密文。
在模块710中, 一个低级PKG为接收方生成一个私有密钥,使 得该私有密钥至少与"个低级密钥生成密文中的一个相关。例如,发 送方的私有密钥至少可以与向接收方发放私有密钥的PKG的低级密 钥生成密文相关。但是,接收方的私有密钥最好与它所有n个前辈 PKG的低级密钥生成密文以及根密钥生成密文相关。在模块712中, 发送方至少利用其私有密钥来签署消息并生成数字签名。然后在模块 714中,接收方或校验器至少利用低级密钥生成参数之一来验证该数 字签名。例如,可以只利用根密钥生成参数来验证该签名。或者,也 可以利用低级密钥生成参数中的一个或多个。
图8所示的流程图根据本发明的另一个当前优选实施例展示了 一种生成及验证一条数字消息M的数字签名的方法,所述的数字消
息在发送方少和接收方z之间传递。如图3所示,发送方y 306在分级 结构中比根PKG低m + l个级别,并且与ID元组(ID卢…,ID—J相关联。 发送方的ID元组中包括与发送方相关的身份信息ID—d,以及与它在 分级结构中的m个前辈低级PKG的每一个相关的身份信息ID力。该方 法从;f莫块802开始,生成元素的第一与第二循环群r;和r2。在模块804 中,选取一个函数"使得该函数S能够由第一循环群r^的两个元素生 成第二循环群G的一个元素。函数s最好是一种可行的配对,如上所 述。在模块806中选取第一循环群r,的一个根生成器户。。在模块808 中,选取一个随机根密钥生成密文 ,该密文与根PKG302相关且只有根PKG302知道。s。最好是循环群Z/《z的一个元素。在模块810中
产生一个根密钥生成参数a^。p。。 2。最好是第一循环群r,的一个元素。
在模块812中,选取一个第一函数//,,使得7/,能够由第一串二进制数 生成第一循环群r,的一个元素。在模块814中选取一个第二函数//3, 使得//3能够由第二循环群「2的一个元素生成第二串二进制数。模块 802至814的功能都是上述HIDS根设置算法的组成部分,并且最好 都在大致相同的时刻完成。作为示例,比如那些在Boneh-Franklin 中公开的函数就可以被用作//,和//3。实际上,函数A和A可以是完全
相同的函数。但是会有一个潜在的隐患。 一名攻击者可能尝试让签署 人签署肘=叫,其中/D,代表了一个实际身份。在这种情况下,签署人
的签名实际上会是一个私有密钥,此后该密钥可被用来解密消息及伪 造签名。但是,通过采用某些能够区分签名与私有密钥提取的手段 ——比如一个比特前缀或为//3釆用不同的函数,该隐患是可以避免的。
接下来的一系列模块(模块816至824)示出了作为低级设置算
法的组成部分而执行的功能。在模块816中,为发送方的w个前辈低 级PKG各生成一个公共元素A,。每个公共元素;=//1(101,...,10;/,)最好
都是第一循环群r,的一个元素,其中i&、w。尽管是以单个模块表示 的,但是所有公共元素;的产生需要进行一段时间,而非一次全部完
成o
为发送方的w个前辈低级PKG 304a,b,d各选取一个低级密钥生 成密文 (模块818)。该低级密钥生成密文 最好是循环群Z/《Z的 元素,其中l"《m,并且每个低级密钥生成密文、最好只有与它相关
的低级PKG知道。同样,尽管是以单个模块表示,但是所有低级密 钥生成密文 ,的选取需要进行一段时间,而非一次全部完成。
为发送方的w个前辈低级PKG各生成一个低级机密元素 (模 块820)。每个低级机密元素&,&M + ^,v^最好是第一循环群r^的一 个元素,其中i^^附。尽管与公共元素/;以及密文 ,一样都是以单个 模块表示的,但是所有机密元素、的产生也需要进行一段时间,而非一次全部完成。为了这些重复的密钥生成过程的缘故,可将s。定为r,的 身份元素。
还要为发送方的附个前辈低级PKG各产生一个低级密钥生成参 数g,(模块822)。每个密钥生成参数&,-vP。最好都是第一循环群r,
的元素,其中i《"w。同样,尽管以单个模块表示,但是所有密钥生 成参数"的产生也需要进行一段时间,而非一次全部完成。
随后两个模块(模块824和826)的功能是作为上述抽取算法的 一部分而执行的。在模块824中生成与发送方少相关的发送方公共元
素尸—+1)。该发送方公共元素,i^+,广仏(ID卢…ID咖+,)),最好是第一循环
群r,的一个元素。然后在模块826中生成与发送方少有关的发送方机
密元素&—。该发送方机密元素,sy( +1)=、+ Jpy(jn+1)=z;:;、(,-1)&,最
好也是第 一循环群r,的 一个元素。
为方便起见,第一函数/z,可被选为一种迭代函数,从而可以按照
例如^(A(,—D,ID,,.)而非//1(101,...1 )来计算公共点S 。
图8中所示的最后两个模块(模块828和830 )代表了上述的签 署与验证算法。在模块828中,消息M被签署以生成一个数字签名浙。 该签署过程最好至少用到发送方机密元素^(—。然后在模块830中验
证数字签名& 。该验证过程最好至少用到根密钥生成参数a以及低级 密钥生成参数&,。现在将参照图9来说明这些参数和元素在签署消息 M以及验证数字签名时的具体用法。
图9所示的流程图根据本发明的另一个当前优选实施例展示了 一种生成及验证一条数字消息M的数字签名s'g的方法,所述的数字消 息在发送方^和接收方z之间传递。在该方案中,根设置、低级设置以 及抽取算法都与图8中模块802至826所示的实施例相同。因此,图 9所示的流程图在模块927a中从选取一个发送方密钥生成密文 m+1)开
始,该密文只有发送方^知道。在模块927b中,利用公式2—+1) = ^1+1)/}。 产生一个与发送方相关联的发送方密钥生成参数2,+1)。然后,签署算 法从发送方在模块928a中生成一个消息元素^=//3(10卢...,10一|),似)。
该消息元素^最好是第一循环群r,的一个成员。在模块928b中利用 方程^ = ^+,)+^+1)^生成数字签名s/g本身。接收方通过检验方程
38<formula>formula see original document page 39</formula>是否满足来验证数字签名&。
本文参照本发明的优选实施例以及图示实例对本发明进行了详 细的说明,但是应该明白,在本发明的思想与范围内可以实现各种变 化与改进。
权利要求
1.一种计算机实施的加密方法,用于在分级加密方案中对用于解密期望接收方实体E的密文信息的消息M进行加密,该方法包括(1)获得变量值r;(2)获得所述消息M的第一加密,使用值gr可解密所述第一加密,其中g是一个预定义函数在值ê(p0,p1)处的值;êG1×G1→G2是非退化双线性映射,其中G1和G2是群,并且ê,G1和G2将用于解密;p0,p1是G1的元素,其中至少一个依赖于分级加密系统中E的上代的ID;(3)获得第一密文部分,包括多个值,每个值是群G1的元素并且是rF形式的值的线性表达,其中每个F是E和/或至少E的一个上代的ID的预定义函数,其中至少一个值F依赖于E的至少一个上代的ID;以及(4)产生使用所述第一密文部分和所述消息M的第一加密而形成的密文。
2. 根据权利要求l的方法,其中所述第一密文部分不依赖于M。
3. 根据权利要求1或2的方法,其中所述分级加密方案为使得 根实体E。生成其密文整数so;在分级等级iX)的E的上代的每个实体Ei生成各自的密文整数si;对每个整数ie[l,t],其中P1是E的分级等级且其中E产E,每个实 体Ei获得等于Sw+SwPj的值,并且设置Ej的密文Si为所述等于Sw+SwPi 的值或通过修改所述等于Sw+SwPi的值而获得的值,其中每个Pj是包括 Ei的ID的一个或多个ID的函数,并且S。是Gi的身份元素,Pj可用于 所述解密;每个实体Ej(iG [1,t-l
)生成元素Qi,且Q产SjP。,每个实体Ei(ie [2,t-l) 为所有ke [1,i-l获得一组元素Qk,并且修改一个或多个Qk或者保持其 不被修改以相应于Si,并且实体Et接收元素Ch,…,Qw。
4. 根据权利要求3的方法,其中对至少一个值iE[2,t-lj, Ei设置 Si等于Sw+s"Pi,并且元素Qk不被Ej修改。
5. 根据权利要求3的方法,其中对至少一个值iE[2,t-l
Ej为一个或多个整数值cE[l,i-l生成一个或多个变量整数值bc,并且使用所述等于Sw+s"Pj的值生成Si作为值bcPe+1的和;以及Ej通过对每个所述c使用Qe+ bePo替换元素Qe,从而修改元素Qk。
6. 根据权利要求3的方法,其中每个F是一个或多个元素P。,…,Pt 的线性表达,使得值F —起定义了除Pj外的所有P。,…,Pt的值;对某些je[l,t-l,g=g(QQ,Pj),且 g""可如下计算g =rW^(Q卜l,Ui)其中UfrP。,每个U尸rPi。
7. 根据权利要求6的方法,其中所述值F是对所有iE
, U产rPi,以及 值F—起定义了 P。,PyG+1)-Pl+1 ,和所有的Pl+2,..,Pt。
14. 根据权利要求3的方法,其中对每个i〉l,Pi是(IDv.,,IDi)的函数。
15. —种计算机实施的解密方法,用于从密文C恢复消息M,代表 拥有使用从分级加密方案中的一个或多个E的上代获取的一个或多个值 而获得的E的密文信息的实体E, E的密文信息包括群Gi的元素S(E), 其中S(E)是群Gi的第一成员的线性组合,在所述线性组合中每个第一成员与一个相应整数系数相关联,所述第一成员包括群&的一个或多个第一元素,其各自依赖于E的ID,所述第一成员包括群Gi的一个或多个 第二元素,其各自独立于E的ID,该方法包括(1) 根据下面计算值gr: 密文C;元素S(E);和群Gi的 一组一个或多个元素Q;其中每个元素Q独立于密文C,但是依赖于一个或多个第一和第二 元素的系数,其中值gr不依赖于E的ID但是依赖于一个或多个第二元 素的系数,值gr作为比例A/B的函数而计算,其中(i) A是群G2的 一个或多个元素的第 一乘积,所述第 一乘积的一 个或多个元素包括一个元素,该元素是两个元素上的双线性非退化映射 S : Gi X G! — G2,所述两个元素中至少一个元素依赖于S(E)且至少一个元素依赖于密文C;以及(ii) B是群G2的 一个或多个元素的第二乘积,所述第二乘积的一 个或多个元素包括各自等于在两个元素上的映射g的值的一个或多个元素,所述两个元素中至少一个依赖于一个或多个元素Q并且至少一个依 赖于密文C;(2) 使用值gr来从C恢复消息M。
16. 根据权利要求15的方法,其中除了 A和/或B和/或密文C中存 在的信息以外,操作(2)不使用所述第一元素的系数的任何信息
17. 根据权利要求15的方法,其中除了 A和/或B和/或密文C中存 在的信息以外,操作(2)不使用任何E的ID上的信息。
18. 根据权利要求17的方法,其中值gr依赖于E的一个或多个上 代的ID。
19. 根据权利要求15的方法,其中所述第一元素的系数各自是E的 上代的密文并且不能用于解密E。
20. 根据权利要求19的方法,其中所述第二元素的系数各自是E的 上代的密文并且不能用于解密E。
21. 根据权利要求15的方法,其中一个或多个所述第二元素依赖于 一个或多个E的上代的ID。
22. 根据权利要求15的方法,其中其中t〉l是E的分级等级; {&}是所述第一成员并且(SiJ是所述系数;对每个ie[l,t-l], E产E且Ej是E的分级等级i的上代,并且其中对 每个i<t, Pi是IDi的函数,所述IDi是相应实体Ei的ID,但是对任意k>i, Pi独立于任何IDk;以及对一个或多个整数ie[l,t,所述一个或多个元素Q是一个或多个元 素QiU。,其中Po是群Gi的预定义元素。
23. 根据权利要求22的方法,其中 =g(U。,S(E))其中j是在[l,t-ll中选定的整数;从所述密文C获得所述元素Ufl,Ud^t}#j)。
24. 根据权利要求23的方法,其中每个U尸rPi,其中r是E不可用 的整数。
25. 根据权利要求22的方法,其中下面的条件(a)或(b)之一成立 (、=,,卿其中l是在[2,t-l中选定的整数;从所述密文C获得所述元素U。, Ui(i=l+l,...,t);A、 ff — e(Uo,St)g(Um,Q!) W gr — U(Q卜i局)其中l是在[2,t-2中选定的整数;从所述密文C获得所述元素U0, Ui(i-l+2,…,t)
26. 根据权利要求22的方法,其中所述分级加密方案是使得 每个实体Ei(05i〈t)生成各自的密文整数si;对每个整数ie[l,t,每个实体Ei从等于S"+SwPj的值获得Ej的密 文Si,其中S(E"St并且其中S。是Gi的身份元素;每个实体Ei(ie[l,t-l)生成Qi且Q产SiP。,对所有kE[l,i-l,每个实 体Ei(iE [2,t-l)获得一组元素Qk并且修改一个或多个Qk或保持其未经修 改以相应于Si。
27. —种计算机实现的密钥提取方法,用于包括多个实体的分级加 密方案,每个实体与加密密文值S("S值")相关联,加密密文值S是群 Gt的一个元素,该方法包括,代表所述实体之一的实体E",其具有分级 等级t-l,其中t>l并且其中根实体E。具有分级等级0:(1) 从Ew的直系上代接收的数据中获得相应于EN1的第一密文值;(2) 从相应于En的第一密文值获得E"的S值St-1;(3) 对Ew的一个或多个直系后代Et的每一个 获得值Pt,其为Et的ID的函数并且是群Gi的元素;生成包括值SM+SwPt的数据作为相应于Et的第一密文值,其中Sm是Ew生成的密文值;以及提供包括所述第一密文值Sw+SMPt的所述数据给Et,使得Et产生 Et的密文S值。
28. 根据权利要求27的方法,其中t〉2,其中操作(2)包^i殳置S"等 于所述相应于Ew的第一密文值,并且该方法还包括,代表Ew,对l£St-2的每个等级i,获得群G,的元素Qi,每个元素Qi与等级 i的上代Ew相关联;对每个EM的直系后代Et,提供元素Qi(l:^Kt-2)和Q"给Et,其中 Qm由E"生成为Qt-产St.iPn,其中P。是群^的预定义公共元素,其中 Po独立于后代Et和实体EM。
29. 根据权利要求27的方法,其中t〉2,其中操作(2)包括对一个或多 个选中的值ce[l,t-2生成一个或多个变量整数值bc,并且设置Sw等于值bePe+1以及相应于Ew的所述第一密文值之和; 其中所述方法还包括,代表Ew:对的每个等级i,获得群Gi的元素Qi,每个元素Qi与等级 i的上代E"相关联;对每个所述值c,使用Qc+bcP。替代Qc;以及然后 对Ew的每个直系后代Et:对Em的每个直系后代Et,提供元素Qi(lS^t-2)和Qw给Et,其中QM 由E"生成为Qw= St.iP。,其中P。是群Gi的预定义^^共元素,其中P0 独立于后代Et和实体Ew。
30. 根据权利要求27的方法,其中Ew具有多于一个的直系后代Et, 并且对所有后代Et产生作为单一值的sM。
31. 根据权利要求27的方法,其中Ew具有多于一个的直系后代Et, 并且对每个后代Et产生单独的值sw。
32. —种计算机实施的在消息M上为签署人Et生成数字签名的方法, 所述签署人Et是包括至少实体Eo,Ei,…,Et,它2的分级系统中比实体E0 低等级t的实体,其中在该分级系统中每个实体Ei(i二l,...,t)是实体Ew 的后代,该方法包括(1) 获得签署人的密钥St,其是群&的成员;(2) 获得签署人的整数密文st;(3) 在消息M上生成签名成分Sig,作为值Sig=St+stPM 其中"+,,是群Gi的群操作;以及Pm是依箱于消息M的值并且是群^的成员。
33. —种计算机实施的验证消息M上的数字签名以验证该数字签名 是签署人Et的正确签名的方法,所述签署人Et是包括至少实体 Eo,Ev..,Et, t$2的分级系统中比实体E。低等级t的实体,其中在该分级 系统中每个实体Ej(i-l,…,t)是实体EM的后代,该方法包括(1) 获得签名成分Sig,其为预定义的群Gi的元素;(2) 获得与各自的一个或多个实体Ei相关联的一个或多个值Qi,所述一个或多个值Qi包括值Qt; (3)确认g(P0,Sig) : y其中Po是群G,的预定义元素;所述积riig(Qi-i,Pi)对包含1至t的整数的适当子集中所有整数i进行;每个Qi-产s"P。,其中s"是实体E"的整数密文;Q产soPo,其中Si是实体Et的整数密文;e是Gj X Gi到预定义的群G2的双线性非退化映射;Pm是依箱于消息M的值并且是群^的成员; 每个Pi依赖于实体Ej的身份; V是群G2的元素。
34. 根据权利要求32或33的方法,其中 每个实体Ej(iX))从实体E w接收其密钥Si;每个实体Ej(i々)生成其密文Si并且还生成密钥Si+1如下 Si+产Sj+SiPi+i并且提供密钥Si+1给所述实体E每个实体Ei(05i5t)生成值Q尸SiP。,其中P。是群Gi的预定义的元素。
35. 权利要求34的方法,其中所述签名成分Sig将被提供给验证器, 其中对于在包括从O到t的整数的子集中的值i,所述验证器访问值(Qi〉。
36. 根据权利要求35的方法,其中所述包括从O到t的整数的子集 是包括从1到t-l的所有整数的集合。
37. —种设备,用于执行根据任一前述权利要求的方法。
38. —种设备,用于根据权利要求32来生成数字签名。
39. 根据权利要求32的方法或权利要求38的设备,其中St = / s卜iPi其中每个Pi是实体Ei的身份的公共函数,并且每个s"是实体E" 的整数密文。
40. 根据权利要求39的方法或设备,其中在操作(l)中,所述签署人 从所述实体E"获得St,并且在操作(2)中,所述签署人生成st。
41. 根据权利要求39的方法或设备,其中每个Pj依赖于每个实体 Ej的身份,使得l5j5i。
42. 根据权利要求39的方法或设备,其中 每个实体Ei(iX))从所述实体Ew接收其密钥Si; 每个实体Ei(i々)生成其密钥Sj并且还生成密钥Sw如下 Si+产Si+SjPj+i并且提供所述密钥Si+1至所述实体Ei+1;每个实体Ei((^St)生成值Q尸s;Pq,其中P。是群Gi的预定义的元素。
43. 根据权利要求42的方法或设备,其中所述签名成分Sig将被提 供给验证器,其中对于在包括从O到t的整数的子集中的值i,所述验证 器访问值(QJ。
44. 根据权利要求43的方法或设备,其中所述包括从0到t的整数 子集是包括从1到M的所有整数的集合。
45. —种可操作以验证消息M上的数字签名从而确定所述数字签名 是签署人Et的正确签名的设备,所述签署人Et是包括至少实体 Eo,Ev..,Et, t^2的分级系统中比实体E。低等级t的实体,其中在该分级 系统中每个实体Ei(i-l,…,t)是实体E"的后代,该设备操作可用于(1) 获得签名成分Sig,其为预定义的群^的元素;(2) 获得与各自的一个或多个实体Ei相关联的 一个或多个值Qi,所述 一个或多个值Qi包括值Qt;(3) 确认<formula>formula see original document page 10</formula>其中P。是群Gt的预定义公共元素;S是Gi X Gt到预定义的群G2的双线性非退化映射;PM是依赖于消息M的值并且是群^的成员; 每个Pi依赖于实体Ej的身份; V是群G2的元素。
46. 根据权利要求43的方法或权利要求45的设备,其中所述积 Ilig(Qi-i,Pi)在除了整数i()以外的包括从l到t的所有整数i上进行,以 及V=g(Q0,Pi0)。
47. 根据权利要求46的方法或设备,其中所述积n^(Qi-i,Pi)在包括从2到t的所有整数i上进行,并且V-g(Q。,P,)。
48. 根据权利要求33的方法或权利要求45的设备,其中 每个实体Ei(iX))从实体E "接收其密钥Si; 每个实体Ej(kt)生成其密文Si并且还生成密钥Sw如下并且提供密钥Si+1给所述实体E每个实体Ei(05Kt)生成值Q尸SiP。,其中Po是群Gi的预定义的元素。
全文摘要
本发明提供了一种基于身份的分级加密与签名方案。用来在一个包含多个私有密钥生成器(“PKG”)的系统中的发送方与接收方之间编码与解码一条数字消息的方法。所述的PKG中至少包括一个根PKG以及根PKG与接收方之间的分级结构中的n个低级PKG。一个根密钥生成密文被选取且只为根PKG所知(102)。根据所述的根密钥生成密文产生一个根密钥生成参数(104)。为所述的n个低级PKG各选取一个低级密钥生成密文,其中每个低级密钥生成密文只对其相关的低级PKG已知(106)。还要为n个低级PKG各产生一个低级密钥生成参数,产生的过程中至少要利用对应于其相关低级私有密钥生成器的低级密钥生成密文(108)。
文档编号H04L9/30GK101527629SQ20081018375
公开日2009年9月9日 申请日期2003年3月18日 优先权日2002年3月21日
发明者克雷格·B·金特里, 艾丽斯·西尔弗伯格 申请人:株式会社Ntt都科摩
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1