利用双线性映射的签名方案的制作方法

文档序号:2411382阅读:241来源:国知局
专利名称:利用双线性映射的签名方案的制作方法
技术领域
本发明主要涉及密码技术以及通过计算机网络或通过其他类型 的系统与设备进行的保密通信,并尤其涉及在使用公共密钥加密技术 的系统中用来产生及验证通信签名的方案。
背景技术
一般而言,在使用公共密钥加密术的系统中,每一方都与一个私 有密钥以及一个公共密钥相关联。公共密钥是公开已知的,或是可以 通过认证授权而获取的。要签署一条消息,签署人就会使用它的私有 密钥。由于签署人的私有密钥与公共密钥是相关的,校验器就可以利 用签署人的公共密钥来验证签名。由于签署人的私有密钥仅为签署人 所知(也可能为私有密钥生成器或PKG所知),因此第三方就不能 伪造签署人的签名。
本发明的各种实施方式都与基于身份的签名方案相兼容。粗略地 说来,基于身份的签名方案是公共密钥方案,在这类方案中, 一个实 体的公共密钥是从与该实体的身份有关的信息中得到的。例如,身份 信息可以是个人信息(即姓名、地址、电子邮件地址等等)或是计算 机信息(即IP地址等)。另外,身份信息不仅包括与实体身份严格相关的信息,还包括广泛的可用信息,如时间或日期。也就是说,身份 信息概念的重要性不在于它与实体身份的严格关系,而在于任何希望 向实体发送加密消息的人都能轻易获得该信息。
在使用公共密钥加密术的基于身份的系统中, 一个实体的私有密 钥由 一个受委托方或逻辑进程产生并分配,所述的受委托方或逻辑进
程通常被称为私有密钥生成器("PKG") 。 PKG利用一个主密文信息 来产生私有密钥。由于一个实体的公共密钥可根据其身份推知,当Bob 想要验证来自Alice的签名时,他就不必从数据库中取回Alice的公共 密钥。Bob只需根据Alice的识别信息直接推知密钥。公共密钥数据 库就成为多余,认证授权("CAs,,)也是不必要的了。无需将Alice 的身份绑定到他的公共密钥上,因为他的身份即是他的公共密钥。
基于身份的系统的概念并不新鲜。它在A. Shamir的 "Identity-Based Cryptosystems and Signatures Schemes (基于身份的 加密系统与签名方案),,中就已被提出,该文发表于ADVANCES IN CRYPTOGRAPHY - CRYPTO "84 , Lecture Notes in Computer Science 196 ( 1984 ) , Springer, 47-53。然而,可实际应用的基于身 份的签名方案至今仍未被找到。
公共密钥与基于身份的系统通过引入分级结构而得到了进一步 的扩展。例如,基于身份的方案中包括一个逻辑或实际的PKGs层次。 一个根PKG可以向其他PKGs发放私有密钥,而后者又可以向特定 域内的用户发放私有密钥。这样就使得校验器能够验证来自 一名签署 人的签名,而无需在线查找该签署人的公共密钥或较低级别的公共参 数,即使校验器根本不在系统中,只要该校验器获得了根PKG的公 共参数即可。分级的基于身份的签名方案的另 一个优点是损坏控制。 例如, 一个域PKG的密文的泄漏并不会危及更高层次PKGs的密文, 也不会危及任何其他不是该被损害的域PKG的直接下级的PKGs的 密文。
尽管已知的公共密钥与基于身份的系统已经提供了用来产生及 验证数字签名的方案,但是这些已知的签名方案都有着显著的缺点。例如,多签名方案并不能让多个签署人签署多个文档。能够让多个签 署人签署多个文档的多签名方案能进一步提高签名的效率。例如,这 样一种多签名可被用来压缩证书链。因此,需要一种允许多个签署人 一起签署多个文档的签名方案。
对于使用公共密钥加密术的基于身份的系统来说,还需要一种团
体签名(ring signature )方案。团体签名于最近在R. Rivest, A. Shamir, Y. Tauman撰写的"How to Leak a Secret (如何泄漏机密),,一文中,皮 提出,该文发表于ADVANCES IN CRYPTOLOGY - ASIACRYPT 2001, Lecture Notes in Compter Science 2248 ( 2001 ) , Spring, 552。 团体签名允许一个组(不必先行建立)的一个成员签署一条消息,且 使得第三方能够证实该组的某位成员创建了签名,但却不能确定是哪 一名成员。然而,还没有可供基于身份的加密方案使用的有效的团体 签名方案。因此就需要一种基于身份的团体签名方案。
在使用公共密钥加密术的基于身份的分级系统中,还需要代理签 名、代理解密、代理授权,以及电子投票。这些特性在P.Horster,H. Peterson的"Self-Certified Keys—Concepts and Applications (自保证 密钥-概念与应用),,一文中被提出用于非分级系统,该文发表于Proc. 3 OF CONF. ON COMMUNICATIONS AND MULTIMEDIA SECURITY 1997。然而,这些特性尚不能用于分级系统。因此就需要 允许进行代理签名、代理解密、代理授权以及电子投票的基于身份的 分级签名方案。
还需要能够离线产生一部分签名的更为高效的基于身份的分级 签名方案。对于许多应用来说,在线签署时间比总签署时间更为重要。 在这类情况下,通过允许离线完成更多的签名及验证算法,就能提高 签名方案的效率。在线/离线签名方案在A. Shamir, Y. Tauman的 "Improved Online/Offliiie Signature Schemes (改进的在线/离线签名 方案)"一文中被提出,该文发表于ADVANCES IN CRYPTOLOGY - CRYPTO 2001, Lecture Notes in Compter Science 2139 ( 2001 ), Springer, 355-367。然而,在线/离线签名方案还不能用于基于身份
9的分级系统。因此就需要高效率的基于身份的在线/离线分级签名方 案。
因此,本发明的一个目的就是要提供一种多签名方案,该方案允 许多个签署人签署多个文档。本发明的另 一个目的是提供一种基于身 份的团体签名方案。本发明的再一个目的是提供一种基于身份的分级 签名方案,该方案允许进行代理签名、代理检测、代理授权以及电子 投票。本发明还有一个目的,就是提供一种高效率的基于身份的在线/ 离线分级签名方案。

发明内容
根据本发明,它提供了用来实现安全可靠、实用且高效的签名方 案的方法。
根据本发明的一方面内容,它提供了用来产生及验证数字消息的 数字签名的方法与系统,所述的数字消息在签署人与校验器之间传递。 根据这些方法与方案,每一名签署人签署所述消息的一个子集,而且 由至少 一名签署人签署的子集与由至少 一名其他签署人签署的子集不 同。为每一名签署人选取一个私有密钥,并利用一个预定的函数为每 条消息产生 一 个消息函数值。为每名签署人产生 一 个或多个签名要素, 产生的过程至少要用到与每名签署人相关的私有密钥以及与要被签署 的消息有关的消息函数值。利用各个签名要素产生一个数字签名。然 后至少利用消息函数值来验证数字签名。
根据本发明的另 一方面内容,它提供了用来产生及验证数字消息 的数字签名的方法与系统,所述的数字消息在签署人与校验器之间传 递,其中所述的签署人是一组多个成员中的一名。签署人与一个身份 信息相关联,并且该組其他成员也都与身份信息相关联。生成第一与 第二元素循环群,并选出一个双线性非退化的配对,使得能够由第一 循环群的两个元素产生第二循环群的一个元素。选出第一循环群的第 一与第二生成器,即能够由一串二进制数产生第一循环群的一个元素 的函数。为组内的每名成员产生公共要点,并为签署人产生一个私有
10要点。通过产生数字签名来签署数字消息,数字签名的产生中至少要 用到签署人的私有要点以及组内每名成员的公共要点。至少使用组内 每名成员的公共要点,该签名就会被证实为组内 一名成员创建的。
根据本发明的另 一方面内容,它提供了用来产生及验证数字消息 的代理签名的方法与系统,所述的数字消息在代理签署人与校验器之 间传递,其中所述的消息由代理签署人代表原始签署人签署。与原始 签署人相关联的 一个原始签署人私有密钥和一个原始签署人公共密钥 都被选用。与代理签署人相关联的一个代理签署人私有密钥和一个代 理签署人公共密钥也都被选用。然后就利用原始签署人私有密钥和代 理签署人公共密钥来产生一个代理私有密钥。利用一个预定的函数产 生一个消息函数值,并至少利用消息函数值、代理私有密钥以及代理 签署人公共密钥来产生代理签名。代理签名至少要使用原始签署人公 共密钥、代理签署人公共密钥以及消息函数值来验证。
根据本发明的另 一 方面内容,它提供了用来产生及验证数字消息 的签名的方法与系统,所述的数字消息在签署人与校验器之间传递。
在一个分级系统中,签署人比根PKG低t个级别。签署人与一个包含 身份信息的ID元组相关联,所述的身份信息与签署人相关,还与根 PKG和签署人之间的层级中的t-l个较低级别PKGs的每一个相关联。 为较低级别的PKGs的每一个产生一个较低级别的公共密钥。产生一 个与签署人相关的签署人私有密钥。在一种离线模式中,选用一个随 机签署人暗门密码、 一条随机消息以及一个随机数。然后利用所述的 随机消息、随机数、暗门密码、签署人私有密钥以及与t-l个较低级 别的PKGs相关的低级公共密钥来产生一个离线签名。在线模式中, 要确定一个匹配随机数,该匹配随机数将要被签署的消息与离线签名 相匹配。然后就可以利用该匹配随机数来验证离线签名。


下文中对本发明优选实施方式的说明参考了附图,其中
图l示出了一张流程图,该图根据本发明的一种实施方式展示了一种产生及验证一条数字消息m的一个多签名的方法;
图2示出了一张流程图,该图根据本发明的另一种实施方式展示 了 一种产生及验证一条数字消息m的一个团体签名&g的方法,所述的 数字消息m在签署人与校验器之间传递;
图3示出了一张流程图,该图根据本发明的另一种实施方式展示 了 一种产生及验证一条数字消息m的一个团体签名的方法,所述的 数字消息m在一个分级结构中的签署人与校验器之间传递;
图4示出了一张流程图,该图根据本发明的另一种实施方式展示 了 一种产生及验证一条数字消息m的 一个代理签名s/g的方法;
图5示出了一张流程图,该图根据本发明的另一种实施方式展示 了 一种产生及验证一条数字消息m的签名&的方法,其中所述的签名 及校验算法可以部分离线完成;以及
图6示出了一张框图,该图根据本发明的另一种实施方式描述了 一种用来实现签名方案的系统。
具体实施例方式
本发明当前的优选方法提供了安全可靠、实用且高效的公共密 钥、基于身份且分级的签名方案。
本发明提供了公共密钥签名方案。这些方案中包括基于身份的方 案与非基于身份的方案。它们还包括分级的和非分级的方案。
本发明每一种基于身份的分级签名方案都需要一种PKGs的分 级结构,该结构中至少包括一个根PKG和多个低级PKGs。分级结构 与低级PKGs可以是逻辑的或实际的。例如,单个实体就能产生一个 根密钥生成密文和低级密钥生成密文,低级用户的加密或签名密钥都 是由所述的低级密钥生成密文产生的。在该例中,低级PKGs都不是 独立的实体,它们只是被安排在逻辑分级结构中的进程或信息,并被 用来为分级结构中的下级PKGs与用户生成密钥。或者,每个低级PKG 也可以是独立的实体。另一种备选方案包括实际和逻辑低级PKGs的 混合模式。为了公开说明本发明的目的,将用"低级PKG"—词来一般性地指代这些备选方案中的任何一种。
在本文所公开的基于身份的分级系统的范围内,基于身份的公共 密钥可以是基于时间周期的。例如, 一名特定用户的身份会随各个接 连的时间周期而变化。或者,签署人也可以将时间周期安排为它自己 在分级结构中的后代或下级,并且校验器会在验证签名时使用正确时 间周期的身份。不论采用何种方式,每个密钥都仅在相关的时间周期 内可以有效的用来签署消息。
本发明中基于身份的分级方案通常包括5个算法根设置(Root Setup)、低级设置(Lower陽level Setup)、提取(Extraction)、签署(Signing) 以及验证(Verification)。这些算法中的三个依赖于分级结构中相关实 体的身份。每名用户最好都在分级结构中拥有一个位置,该分级结构 可由它的ID元组(/A,…,/Z),)定义。用户在分级结构中的前辈是才艮PKG 以及ID元组为K叫,…,/Z),):l《/^(卜i"的用户或PKGs。为了计算的目的, ID元组最好用二进制字串表示。
在根设置算法中,根PKG使用一个保密参数6来产生公共系统 参数/m/wiw以及一个根密钥生成密文。系统参数包括对消息空间M 和签名空间S的描述。系统参数是公开使用的,但只有根PKG知道 根密钥生成密文。
在低级设置算法中,为了提取的目的,每个低级PKG最好产生 它自己的低级密钥生成密文。或者,低级PKG可以为每次提取产生 随机的一次性密文。
在提取算法中, 一个PKG (根PKG或一个低级PKG)为它的 任意一个后代产生一个私有密钥。该私有密钥是利用系统参数、生成 方PKG的私有密钥以及任何其他的优选密文信息产生的。
在签署算法中,数字消息的签署人利用/;"m附s和签署人的私有 密钥^签署消息MeM以产生一个签名S/geS。在验证算法中,被签署 消息的校验器利用/mm/iw以及签署人的ID元组来验证签名& 。验证 算法最好输出"有效"或"无效"。签署与验证最好还能满足一致性限制 条件
VM eM: Vertification (p歸附s, ID元组,S/g)="有效,,
13其中Signing (/;am脂,d, M) 配对
本发明当前的优选签名方案是基于配对的,比如与椭圆曲线或阿 贝尔蔟(abelian varieties )相关的Weil或Tate配对。所述的签名方 案还可以是基于Diffie-Hellman问题或双线性Diffie-Hellman问题的。 在上述两种情况下,所述的方案都要使用两个循环群Gi和G2,两个 群最好具有同样大的素数阶g ( prime order q )。第一个群"最好是 一组位于椭圆曲线或阿贝尔簇上的点,并且的Gi上的群律(group law )可以被写为加性的。第二个群G2最好是一个有限域的乘性子群, 并且G2上的群律可以被写为乘性的。但是,其他类型的群也可被当作 符合本发明的Gi和Gj吏用。
本方法还使用第一个群Gi的一个生成器P。。另外, 一种配对或
函数S: G1X Gi — G2也被提供用来将第一群Gi的两个元素映射成第二 个群G2的一个元素。函数e最好满足三个条件。首先,函数e最好是 双线性的,从而当g和i 在Gi中且fl和6为整数时,有<"2,^ ) = <2^)。*。 第二,函数e最好是非退化的,从而映射不会将GpGi中的所有配对 变为G2中的身份。第三,函数e最好是能够高效计算的。满足这三个 条件的函数e可以被考虑采用。
函数e最好还是对称的,从而使得e(2^)^(i ,0对所有的2,及e^ 都成立。但是,对称可直接由双线性以及Gi是一个循环群这个事实得 出的。可以根据现有技术中已知的方法修改与超奇异椭圆曲线或阿贝
尔簇相关的Wdl和Tate配对,以便产生这类双线性映射。但是,即 使将第一循环群Gi中的元素称为"点"可能暗示函数e是一个经过改进 的Wdl或Tate配对,但是应该注意,任何合理的函数e都能行得通。 本发明签名方案的安全性主要基于Diffie-Hellman问题或双线性 Diffie-Hellman问题的难度。Diffie-Hellman问题是在给定一个随机选 取的Pe 且给定"P和M (对于未知的随机选取的 a,6,c e Z Z )的条 件下,求出w尸。双线性Diffie-Hellman问题是在给定一个随机选取的尸eGp且给定a户,6P及c户(对于未知的随机选取的 a,6,c e Z/《Z )的条 件下,求出S(P,户产。在G!中解决Diffie-Hellman问题也就解决了双线 性Diffie-Hellman问题,因为e(P,P)abc=e(abP,cP)。相似地,解决G2 中的Diffie-Hellman问题也就解决了双线性Diffie-Hellman问题,这
是因为ft口果g-e(尸,P),另卩么gaAc=(ga6)c ,其中纩* 二e(oP,6尸)且gC-"Z5,^)。 为了使双线性Diffie-Hellman问题变得困难,就应对G!和G2进行选 择,从而使得不存在能够有效地解决Gt或Gz中的Diffie-Hellman问 题的已知的算法。如果双线性Diffie-Hellman问题对于一种配对S是困 难的,那么可以推知S是非退化的。
如果一个随机化算法IG采用 一个保密参数h o 、运行时间为A的 多项式、且输出两个群Gi和G2的描述以及一个可行配对"G^Gi —G2 的描述,其中所述的两个群最好具有相同的素数阶《,那么随机化的 算法IG就是一个双线性Diffie-Hellman生成器。如果IG是一个双线 性Diffie-Hellman参数生成器,那么一个算法B在解决双线性 Diffie-Hellman问题中的优势JrfvzG(B)就被定义为当算法的输入为 Gp G2、 e、 P、"尸、M和c尸时,算法B输出e(尸,iT"的概率,其中(Gh G2, O是IG对于足够大的保密参数A的输出,P是Gi的一个随机生成 器,"、6、 c则是Z Z的随机元素。双线性Diffie-Hellman问题下潜 在的假设是/^/vui(B)对于所有的有效算法B都是可以忽略的。类似的 假设也存在于Diffie-Hellman问题中。 多签名
如上所述,多签名方案是任意一种允许若干个签署人以某种方式 签署一个文件(或多个文件)的方案,所述的签署方式比他们(签署 人)中的每一个分别签署文档的情况效率更高。通常,这种提高的效 率体现在签名长度中——即n个签署人的组合多签名比n个单独的签 名短。这对于各交易方的一方需要获得多个来源的预先批准且必须在 交易前提交该多个预批准的交易来说是很方便的。如上所述,至今仍 然没有一种能够允许多个签署人有效签署多个文档的多签名方案。例 如,在现有的多签名方案中,多签名的长度至少取决于签署人的数量
15或被签署的文档数量。本发明提供了更高效的多签名签名方案,该方 案允许多个签署人签署多个文档以产生 一个多签名,该多签名的长度 与签署人数量以及文档数量都无关。
现在参见附图,图1所示的流程图根据本发明的一种当前优选实 施例展示了一种产生及验证一个多签名的方法。利用双线性映射,如
Weil或Tate配对,该实施例允许多个签署人签署多个文档。无论不 同签署人的数量或是被签署的不同文档的数量是多少,结果得到的签 名都可以被表示为一个群中的单个元素,比如一条椭圆曲线上的单点。 参照图1说明的多签名方案允许n个签署人签署m个数字消息 并产生单个的多签名。每个签署人签署m条消息的一个子集。与原有 的签名方案不同,本方案允许不同签署人签署不同的消息集合而又不 需牺牲效率。该方法从模块102开始,产生元素的第一与第二循环群 Gi和G2。在模块104中,选取一个函数"使得该函数e能够由第一 循环群G!的两个元素产生第二循环群G2的一个元素。函数e最好是 一种可行的配对,如上所述。在模块106中选取第一循环群Gt的一个 生成器P。在模块108中,选取一个函数//,使得该函数f/能够由第一 串二进制数产生第一循环群Gi的一个元素。例如,函数/z可以是一种 散列函数。
在模块110中,为n个签署人中的每一位选取一个私有密钥s,。 在模块112中利用函数/z为m条消息中的每一条产生消息函数值 。
在模块114中对所有的(/,/)eC—也就是第i个签署人签署第j条消 息的所有(/J)配对——使用方程&^4,来产生签名要素&。这些签 名要素&被组合在一起以产生数字签名他=》 & ,如模块116中所
示。该签名方案的高效率源于数字签名&g包括第一循环群&的单个 元素这样一个事实。在模块118中通过确认e(/^'g)-n(,^e(^P,^)来验
证该签名。
在上述的方案中,每名签署人签署每条消息,尽管该方案是一种 有用的多签名(方案),但还存在其他的变型。例如,并非所有的消 息都需要被所有的签署人签署。另外,交易方所获得的各种签名及授权可以在今后的交易中以不同的组合形式匹配。如果几名签署人签署 同 一条消息或是一名签署人签署多条消息,那么多签名的验证效率就 能得到改善,因为只需进行较少的配对计算。根据现有技术中已知的
方法,如果只发送签名&g的x坐标,校验器可以根据x坐标恢复y坐 标,就能进一步提高该方案的带宽效率。
额外的保密措施可被用来防止对参照图1所述的多签名方案的特 定类型攻击。在这种攻击中,攻击者根据某些其他方的公共密钥修改 它自己的公共密钥/私有密钥对,从而该攻击者无需它方参与即可伪造 出以它自己及其他方为假造签署人的单消息多签名。这类攻击可以通 过多种方式预防。例如, 一个单独的团体可以收集来自每个签署人的 签名要素,以组成多签名。在这样做的过程中,该团体可以通过确认 e(尸A)-^,户,^)来独立地验证每位签署人的签名要素^。但是,多签
名的最终校验器可能并不放心该方法,因为该校验器仍然必须确信收 集了签名要素的团体正确地验证了那些签名要素。
或者,也可以通过要求每名签署人个别签署某些对于该签署人来 说独特的消息来阻止攻击,比如含有签署人身份信息或公共密钥的消
息,或是为每名签署人随机选取的消息。例如,、可被设为H(^P,M,)。
或者,CA也可以要求签署人在它(CA)向签署人发放证书之前签署 某些由CA选择的"质询"消息。(实际上,CA通常已经要求这一点 了。)在两种情况下,校验器都能够独立地验证多签名,而无需来自 收集了签名要素的团体的保证。那些精通本技术的人应该明白,还可 以使用其他方法来阻止攻击。 基于身份的团体签名
团体签名允许一个组(不必先行建立)的一个成员签署一条消息, 且使得第三方能够证实该组的某位成员创建了签名,但却不能确定是 哪一名成员。例如,设想有一名想要向新闻界泄漏机密但又想保留有 限匿名性的内阁成员——即他想让新闻界知道他是一名内阁成员,但 却不清楚是哪一名成员。团体签名允许签署人选择任意包含该签署人 的集合并证明该签署人是那个集合的一名成员,而又不会暴露是哪一名成员。这样, 一名内阁成员就可以利用他的私有密钥,结合其他内 阁成员的公共密钥来为内阁创建一个团体签名。由于内阁专用的团体 签名只能由内阁成员创建,因此新闻界就能利用该签名来证实其匿名 来源的真实性。
团体签名也可用在合同谈判中。当A方向B方发送一个合同草 案时,A方可能希望提供证明而非认可——即它(A方)可能想要向 B方证明该合同草案来自A方,但又不希望给予B方向第三方(即法 庭)证明A方签署了该草案的能力。在这种情况下,A方可以为集合 {A, B)创建一个团体签名。B方会知道A方创建了该签名,因为B方 自己没有创建该签名。另一方面,B方又不能使第三方确信A方创建 了该签名,因为从第三方的观点看来,B方同样可能创建了该签名。
现在将参照图2来说明一种基于身份的团体签名方案,图2所示 的流程图根据本发明的另一种当前优选实施例展示了一种产生及验证 消息M的数字签名&的方法,所述的消息在签署人与校验器之间传 递。该例中的签署人是一个集合的f名成员之一。为了进行下面的说明, 将该签署人与身份叫联系起来,并将集合中的其他成员与身份 /A(2&^)联系起来。但是需要注意,如果匿名签署人总是与第一个列 出的身份相关联,那么签名实际上就不会是匿名的。
该方法从模块202开始,产生多个元素的第一与第二循环群& 和Gz。在模块204中,选取一个函数e,使得该函数e能够由第一循环 群Gi的两个元素产生第二循环群Gz的一个元素。函数e最好是一种 可行的配对,如上所述。在模块206中选取第一群Gi的第一与笫二生 成器P和P'。在模块208中,选取第一与第二保密数字s和y。也可以 为每个新的签名选择一个新的人在模块210中选取一个函数/f,使 得该函数/z能够由第一串二进制数产生笫一循环群Gi的一个元素。在 模块212中,为集合中f名成员的每一个生成一个公共要点S-巧(/Z)》。
在模块214中为签署人产生一个私有要点^W^。
在模块216中通过产生数字签名&g来签署数字消息M,产生数 字签名时至少要用到签署人的私有要点(Ww'S)以及集合中^名成员各自的公共要点《。例如,可以通过下列方式产生数字签名。选取随机 数 和^,其中"""并产生一个消息函数值^-A(M)。然后利用 ^4[^,…K,^]来产生数字签名本身,其中
= +^+6尸2+ w+仏,f^'p + ^,km=~p, 并且
在模块218中,至少利用集合中^名成员各自的公共要点《来验证
数字签名脚是由集合中的一名成员创建的。例如,可以通过确认
e(t/,尸)=e(p',, )n:=1 eW, K)来验证签名。
以下是一种用于两个实体的基于身份的团体签名实例,所述的两
个实体拥有身份H^和ID2,该实例符合上述的方法。由PKG为第一 实体提供的私有密钥可被表示为(W+。iV",而由PKG为第二实体提
供的私有密钥则可被表示为(W+^P2,r2JP)。每个私有密钥中第 一个要点
的第一部分都是w,它将各个实体与PKG联系起来。每个私有密钥
中的这一部分必须保持不变。但是每个私有密钥的其余部分可以被改
变。例如,可供第一实体使用的同样有效的私有要点是(W+r^,Vi5),。'
是任取的。这种灵活性可被充分利用以便能够创建一个团体签名。用 于这两个实体的团体签名对某些v和具有
Op'+V^ + va+^Pa^'p,^'p,^p)的形式。这两个实体的身份通过使用他们
的公共要点《和a而被嵌入在这个团体签名中。此外,每个客户端都 能产生这样的团体签名。
例如,第一实体可以如下为两个实体产生一个团体签名。为方便 起见,将第一个实体的私有密钥表示为(&,a)。第一实体选取随机数6 和Y,并计算出团体签名(51+6尸1+^尸2+/^^,《+6/^2'尸,^ ),其中对某个 随机数6有v^+6。这是对第一和第二实体有效的团体签名。注意,
如果第一实体总是选取"o,那么就很明显是第一实体创建了每个签
名。而使用一个随机的6就使得不可能确定两个实体中的哪一个创建
了团体签名。类似地,第二实体会选取随机数6和v,并计算出团体签
名(S2 + v《+ 6尸2 + ~4^'尸^2 。
然而,拥有身份ID3的第三实体不能为前两个实体创建有效的团体签名。由PKG向笫三实体提供的私有密钥可被表示为(Ww^^P)。 由于第三实体不能从它的私有密钥中删除它的公共要点P3 ,因此第三 实体的私有密钥就会被它的身份"污染"。这种污染是不能被去除的, 因此第三方就不能伪造出用于前两个实体的有效团体签名。只有前两 个实体可以创建这样的团体签名,主要是通过向签署实体的私有密钥 中加入另一方实体的身份来实现的。
上述的团体签名方案还可以被改进来创建一种分级的团体签名 方案。现在将参照图3来说明一种基于身份的分级团体签名方案,图 3所示的流程图根据本发明的另 一种实施例展示了 一种产生及验证消 息M的团体签名化的方法,所述的消息M在一个分级结构中的 一个签 署人与一个校验器之间传递。该方法允许一个来自分级结构中具有,名
团体成员的团体的签署人为所述的,名团体成员产生一个团体签名。f 个实体各与一个ID元组相关联,比如(/1),1,...,/1),/),其中/,代表各个实
体在分级结构中的级别。该方法从模块302开始,产生诸元素的第一 与第二循环群Gi和G2。在模块304中,选取一个函数e,使得该函数 e能够由第一循环群Gi的两个元素产生第二循环群G2的一个元素。 函数e最好是一种可行的配对,如上所述。在模块306中选取第一循 环群Gi的一个根生成器P。。在模块308中选取一个随机根密钥生成密 文 ,该密文 只和根PKG有关且只为根PKG所知。 最好是循环 群Z/《Z的一个元素。在模块310中产生一个根密钥生成参数2C。。 e。 最好是第一循环群Gi的一个元素。在模块312中,选取一个第一函数 使得/^能够由第一串二进制数产生第一循环群Gi的一个元素。在 模块314中选取一个第二函数//2,使得//2也能够由第一串二进制数产 生第一循环群Gi的一个元素。模块302至314的功能是上述根设置算 法的一部分,并且最好在大致相同的时间完成。作为示例,在 Boneh-Franklin中被公开的那些函数可被当作巧和//2使用。
接下来的一系列模块(模块316至324)示出了作为低级设置算 法的一部分而执行的功能。在模块316中,为与^个团体成员中的每一 个成员有关的/; -l个前辈低级PKGs各生成一个公共元素& 。每个公共元素A = //(/A,.../",,)最好都是第一循环群Gi的一个元素,其中b",且 ^"(/,-l)。尽管是以单个模块表示,但是所有公共元素^的产生可能
需要额外的时间,而非一次完成。
为与f个团体成员中的每一个成员有关的A-i个前辈低级PKGs 各选取一个低级密钥生成密文A,(模块318),其中l&^且 1)。所述的低级密钥生成密文&最好是循环群Z Z的元素,并 且每个低级密钥生成密文&最好只对它相关的低级PKG已知。同样, 尽管是以单个模块表示,但是低级密钥生成密文&的选取可能需要额
外的时间来进行,而非一次完成。
为与,个团体成员中的每一个成员有关的/,一个前辈低级PKGs
各产生一个低级机密要点S,,(模块320 )。每个低级机密元素, ^^,(M)+^^,最好都是笫一循环群Gi的一个元素,其中l^",且 ^/s(/, -1)。尽管与公共元素&以及密文 一样都是以单个模块表示, 但是机密元素《,的产生可能需要额外的时间来进行,而非一次完成。 为了这些迭代密钥生成过程,可将S。定义为Gi的身份元素。
还要为与/个团体成员中的每一个成员有关的/,-l个前辈低级 PKGs各产生一个低级密钥生成参数e,,(模块322)。每个密钥生成参 数,a=vPQ,最好都是第一循环群Gi的一个元素,其中iag且 ^"(/,-1)。同样,尽管是以单个模块表示,但是低级密钥生成参数a, 的产生可能需要额外的时间来进行,而非一次完成。
随后两个模块(模块324和326)的功能是作为上述提取算法的 一部分而执行的。在模块324中生成与,个团体成员中的每一个成员有 关的团体成员公共要点^。每个团体成员公共要点,& =//1(叫,...//),/,),
最好都是第一循环群Gi的一个元素,其中l《/a。然后在模块326中 生成与r个团体成员中的每一个成员有关的团体成员机密要点S,。每个
团体成员机密要点,=^-d =ZL%-1)《,也最好都是第一 循环群&的一个元素,其中l《",。
为方便起见,第一函数^可被选为一种迭代函数,从而可以按照
例如A(iVD,W,)而非巧(/i),p…/A,)来计算公共要点A 。
21图3中所示的最后两个模块(模块328和330)代表了上述的签 名与验证算法。在模块328中,由一名拥有ID元组(/zv…,/Z^)的签署
人签署消息m,以产生一个团体签名&。签名算法最好至少用到签署 人的私有要点&,以及,个团体成员各自的ID元组(/z),1,...,/",.,,)。然后在
模块330中验证团体签名S/g,以确认它是由^个团体成员之一签署的。 验证过程最好至少用到f个团体成员各自的ID元组(/Dn,...,/",,,)。这些 ID元组对应于7>共要点元组&
例如,签名算法可以从消除r个团体成员的公共要点元组^之间 的冗余而开始。如果任何团体成员共享公共的前辈PKGs,那么这些 点元组之间就会存在冗余。来自f个公共要点元组的公共要点的非冗余 集合可被表示为一个点集/ = {^,—&}。然后签署人就以[t/,K,…,1/,,^]
的形式产生团体签名,其中":^尸'+^ ,+…+ ^^+Q4 , ^=^尸,其中 1w",并且^=^ 。为了保持它在团体成员中的匿名性,签署人会
为不在其ID元组中的要点A随机选择^,并且它还会利用上述的方法 "掩盖"位于它ID元组中的要点&的标量。通过确认
<", )=6(,,^)£(/^,^)17:=1<^),该签名将被校验来确认该签署人是,
个团体成员之一。
基于身份的分级代理签名
代理签名允许一个被指定的人或一组人代表原始签署人签名,这
些人被称为代理签署人。 一个代理签名方案应该具有下列性质
强有力的不可伪造性:代理签署人能够替原始签署人创建有效的 代理签名。任何其他第三方,包括原始签署人,都不能伪造出一个代 理签名。
强有力的可识别性:任何人都可以根据一个代理签名识别出代理 签署人。
强有力的不可否认性:代理签署人不能否认创建了有效的签名。 本发明提供了基于身份的分级代理签名方案。图4所示的流程图 根据本发明的另 一种实施例展示了 一种产生及验证一条数字消息m的 数字代理签名雄的方法。签名s/g由代理签署人代表原始签署人签署。
22该方法从模块402开始,产生诸元素的第一与第二循环群&和G2。 在模块404中,选取一个函数"使得该函数e能够由第一循环群G
的两个元素产生第二循环群G2的一个元素。函数e最好是一种可行的
配对,如上所述。在模块406中选取第一循环群Gi的一个生成器P。 在模块408中,选取一个函数//,使得该函数7/能够由一串二进制数 产生第一循环群Gi的一个元素。在模块410中,为原始签署人选取一 个私有密钥^。在模块412中为原始签署人生成一个公共密钥^P。类 似地,在模块414中为代理签署人选取一个私有密钥v ,并在模块416 中为代理签署人生成一个公共密钥VP。在模块418中,原始签署人 给予代理签署人一个代理私有密钥^/V,其中^为了代表原
始签署人签署一条消息,在模块420中代理签署人首先生成一个消息 函数值4=//(7^)。或者,除了消息M以外的其他信息也可以被用来产 生消息函数值P^。正如在现有技术中可以被理解的那样,函数i/的输 入以及函数本身都可以按不同的方式调整。例如,原始签署人可以通 过在函数中加入一个"条约,,c来限制代理签署人的权力,比如
;=h(v ,c)。接着,在模块422中,代理签署人通过生成数字签名 &g = + 4来签署数字消息M 。为了验证代理签名代表了原始签署 人的签名,在步骤424中,校验器确认e(S/g,PX^,^P)e(i^,vP)。
基于身份的分级在线/离线签名
对于许多应用来说,签署一条消息所需的总时间不如在线签署时 间重要。在线签署时间 一般被认为是签署人在获得消息之后产生 一个 签名所需的时间。在线/离线签名方案被提出,是为了减少在线签名所 需的时间。例如, 一种这样的方案使用了"暗门散列函数"a和"散列签 名开关"的范例。但是,在线/离线签名方案还不能用于基于身份的分 级签名系统。
本发明提供了基于身份的在线/离线分级签名方案。图5所示的 流程图^L据本发明的另 一种实施例展示了 一种产生及验证一条数字消 息M的数字签名S/g的方法。在基于身份的分级系统环境中,该方法包 括一个两阶段的签名过程。签名过程的第一阶段可以离线完成。这样就只剩下签名过程的第二阶段要在线完成,从而缩短了在线签名时间。
该分级方案中的签署人少比分级结构中的根PKG低,个级别,并 且与ID元组(/z^,…,/z^)相关联。该签署人的ID元组中包括与签署人 有关的身份信息/1^,,以及与它在分级结构中的,-l个前辈低级PKG 各自相关的身份信息/^,。该方法从模块502开始,产生元素的第一与 第二循环群Gt和G2。在模块504中,选取一个函数e,使得该函数e能 够由第一循环群Gi的两个元素产生第二循环群G2的一个元素。函数e 最好是一种可行的配对,如上所述。在模块506中选取第一循环群Gi 的一个根生成器P。。在模块508中,选取一个随机根密钥生成密文 , 该密文&只和根PKG相关且只为根PKG所知。 最好是循环群Z Z的
一个元素。在模块510中产生一个根密钥生成参数a^。户。。O)最好是 第一循环群Gi的一个元素。在模块512中,选取第一函数巧,使得巧 能够由第一串二进制数产生第一循环群G,的一个元素。在模块514 中选取第二函数//2,使得//2也能够由第一串二进制数产生第一循环群 G丄的一个元素。作为示例,在Boneh-Franklin中被公开的那些函数 可被当作//,和//2使用。实际上,函数^和i/2可以是完全相同的函数。 但是有潜在的隐患。 一名攻击者可能尝试让签署人签署M = /A ,其中叫 代表了一个实际身份。在这种情况下,签署人的签名实际上会是一个 私有密钥,此后该密钥可被用来解密消息及伪造签名。但是,通过采 用某些能够区分签名与私有密钥提取的手段一比如一个比特前缀或 为仏采用不同的函数,该隐患是可以避免的。模块502至514的功能 是上述根设置算法的一部分,这些功能最好在大致相同的时间执行。 接下来的一系列模块(模块516至524)示出了作为低级设置算
法的一部分而执行的功能。在模块516中,为签署人的,-l个前辈低级 PKGs各生成一个^^共元素Py,。每个〃>共元素,=/^(//^,...,//^)最好都
是第一循环群Gi的一个元素,其中iya-l。尽管是以单个模块表示, 但是所有公共元素;的产生可能需要额外的时间,而非一次完成。
为签署人的,-l个前辈低级PKGs各选取一个低级密钥生成密文 (模块518 )。所述的低级密钥生成密文 最好是循环群Z^Z的元素,其中b/^-l,并且每个低级密钥生成密文 ,最好只对它相关的低级
PKG已知。同样,尽管是以单个模块表示,但是低级密钥生成密文
的选取可能需要额外的时间来进行,而非一次完成。
为签署人的m个前辈低级PKG各产生一个低级机密元素^ (模
块520)。每个低级机密元素, =sy(m),最好都是第一循环 群Gi的一个元素,1。尽管与公共元素;以及密文 一样 都是以单个模块表示,但是机密元素的产生可能需要额外的时间来 进行,而非一次完成。为了这些迭代的密钥生成过程,最好将s。定义 为G^的身份元素。
还要为签署人的,-l个前辈低级PKGs各产生一个低级密钥生成 参数",(模块522 )。每个密钥生成参数,&,= A,最好都是第一循
环群Gi的一个元素,其中l&、,-i。同样,尽管是以单个模块表示, 但是低级密钥生成参数&,的产生可能需要额外的时间来进行,而非一
次完成。
随后两个模块(模块524和526 )的功能是作为上述提取算法的 一部分而执行的。在模块524中生成与签署人^有关的签署人公共元 素/>该签署人公共元素,p,^/^(/iV..最好是第一循环群Gi
的一个元素。然后在模块526中生成与签署人y有关的签署人机密元
素&。该签署人机密元素,&=&M)+ M);=z:=i^M)i;.,最好也是第
一循环群Gi的一个元素。
为方便起见,第一函数/^可被选为一种迭代函数,从而可以按照
例如a(/^d,/^,)而非a(/a,…/z^,)来计算公共要点s 。
图5中所示的最后两个模块(模块528和530)代表了上述的签
名与验证算法。两阶段签名算法涉及暗门散列函数a的运用,根据现
有技术中已知的方法,该函数最好是一个离散的基于对数的暗门散列
函数,并且经过修改以便用于椭圆曲线。因此,在模块528中,要选 取一个随机暗门密文、ez"z。在签名过程中,签署人可以向校验器提
供C^尸。作为其公共散列密钥。例如,签署人可以选择令^等于 , 后者是签署人的低级机密元素。在任何情况下,都最好为每个签名重新产生厶,。
签名算法在模块530中继续进行,其中签署人选取了一个随机消 息M'和一个随机数,。然后在模块532中,签署人签署随机消息M'以
产生签名[t/,&,…,&,ev],其中c^(51a(,—A,)+v^,",= 尸。,其中
laa,并且4,-仏((M'付Vy,)/>。)。签名算法的这部分可以离线完成。
当签署人识别出要被签署的消息M之后,就可以完成签名算法的 在线部分了。在模块534中,签署人确定一个数r,要使得
M + "、 = M'+, ^ ^ r = )-1 M) + ,,其中要将s、的倒数对g取才莫。 然后签署人将r连通消息M以及签名& 一起发送给校验器。
在步骤536中,校验器接着完成验证算法,并通过确认
e(",尸。)"fo,,/0rLefe(,-",尸r,)来验证签名,其中
4=//2(71^+^、,)=7^。验证算法也可以被分解成在线与离线阶段,这 取决于校验器掌握了哪些信息。例如,签署人可以在得知消息m之前 向校验器提供各种信息。这样,校验器就能得知下列信息中的任意一
种或全部(1)签署人的仏值;(2) 4,,签署人的暗门散列函数//2最 近的输出;(3)",签署人在散列函数输出上的部分签名;(4) m,要 被签署的消息;以及/或(5)签署人的完整签名,包括r值。利用这些 信息,即使在消息M被得知或签署之前,校验器也能开始验证部分签 名。例如,如果校验器已经接收到了来自签署人的上一个签名,校验 器就会得知签署人的&值。这使得校验器能够预先计算出验证签署人 的签名所必须的除了两个配对以外的所有配对,而无需考虑签署人在 分级结构中处在多深的位置。校验器可以在它接收到i^,和c/之后完成 最后两个配对的计算,其中[/是签署人iv上的签名。签署人的完整签
名可以利用点加来验证——校验器计算i>M =仏(MP。 +)并检验该值
是否等于&,。这是唯一必须在线完成的验证步骤,因为它是唯一依赖
于消息M的步骤。不必计算配对。因此,验证的在线部分是相当高效 的。
使用签名方案的系统
本文已经说明了符合本发明的各种涉及双线性映射的签名方案。现在将参照图6来说明一种能够根据本发明的另 一个实施例实现这些 方案的系统。该系统包括多个终端602、 604、 606、 608,它们中的每 一个都与一个实体相关联,所述的实体能够根据上述的签名方案产生
或验证签名。该系统还包括一个或多个私有密钥生成器(PKG) 630, 它产生并向各个终端602、 604、 606和608分发私有密钥。
每个终端都包含一个可与存储器612双向通信的处理器610。处 理器610执行适当的程序代码来完成上述的步骤以产生或验证一个数 字签名。处理器610还执行适当的程序代码来产生要发送给其他终端 的信息。适当的程序代码可根据现有技术中已知的方法创建。存储器 612储存该程序代码,以及在数字签名的生成及验证过程中用到的中 间结果和其他信息。
提供了一个通信网络620,实体602、 604、 606和608以及PKG 630可在该网络上进行通信。通信网络620可以是各种普通形式的网 络,包括例如LAN计算机网络、WAN计算机网络,以及/或提供合适 的通信网络的移动电话网络。
工业应用性
具体参照优选实施例以及图示实例详细说明了本发明,但是应该 理解,在本发明的思想与范围内可以实现各种变化与修改。
上述的方法与系统主要可以应用于密码技术以及通过计算机网 络或通过其他类型的系统与设备进行的保密通信。所述的方法与系统 特别适合于在使用公共密钥加密术的系统中作为产生及验证通信签名 的方案。
因此,根据本发明公开了能够充分提供上述优点的方法与系统。 尽管本发明是参照特定的范例实施例进行说明和展示的,但是并非要 让本发明局限于那些范例实施例。本领域技术人员会意识到,可以作 出各种变化与修改,而不会偏离本发明的思想。因此希望将那些落入 附加权利要求以及等同范围内的所有这类变化与修改都纳入到本发明 当中。
2权利要求
1. 一种产生及校验一条数字消息的一个签名的方法,所述的数字消息在一个签署人与一个校验器之间传递,其中所述签署人在一个分级结构中比一个根PKG低t个级别,并且其中所述签署人与一个签署人ID元组(IDy1,...,IDyt)相关联,该ID元组包括与所述签署人有关的身份信息IDyt,以及与所述分级结构中所述根PKG和所述签署人之间的(t-1)个低级PKGs中的每一个相关的身份信息IDyi,该方法包括为所述(t-1)个低级PKGs中的每一个产生一个低级公共密钥;产生一个与所述签署人相关的签署人私有密钥;选取一个随机签署人暗门密文;利用所述的随机签署人暗门密文产生一个公共散列密钥;选取一条随机消息和一个随机数;利用所述的随机消息、随机数、签署人私有密钥以及暗门密文产生一个离线签名;识别出一个将所述离线签名与所述数字消息相匹配的匹配随机数;以及至少利用所述的匹配随机数和公共散列密钥来确认所述签名与所述数字消息相匹配,从而验证所述的离线签名。
2. —种产生及校验一条数字消息m的一个签名s/g的方法,所述的数字消息m在一个签署人与 一个校验器之间传递,其中所述签署人在一个分级结构中比一个根PKGs低,个级别,并且其中所述签署人与一 个签署人ID元组..,》相关联,该ID元组包括与所述签署人有关的身份信息,以及与所述分级结构中所述根PKG和所述签署人之间的(卜l)个低级PKGs中的每一个相关的身份信息/ ,该方法包括产生诸元素的第一循环群Gi和诸元素的第二循环群G2; 选取一个双线性、非退化的配对e,它能够由所述第一循环群" 的两个元素生成所述第二循环群G2的一个元素;选取所述第一循环群&的一个根生成器i>Q;选取一个随机根密钥生成密文&,该密文 ■y。只和所述才艮PICG相关 且只为所述才艮PKG所知;产生一个根密钥生成参数a=VP。;选取一个第一函数//,,它能够由第一串二进制数产生第一循环群 Gi的一个元素;为所述,个低级PKGs中的每一个生成一个公共元素;,其中尸少,-A(/i^,.…为所述"个低级PKGs中的每一个选取一个低级密钥生成密文 、,,其中每个低级密钥生成密文 只为它相关的低级PKG所知;为所述m个低级PKGs中的每一个产生一个低级机密元素&,,其为所述m个低级PKGs中的每一个产生一个低级密钥生成参数e 其中2,, = ~尸。,生成一个与所述签署人有关的签署人公共元素 尸,w"卢…, );生成一个与所述签署人有关的签署人机密元素选取一个随机签署人暗门密文、,e z"z;生成一个公共散列密钥2、,=、尸。; 选取一个随机消息m'和一个随机数,;签署所述随机消息m'以产生一个数字签名w = ,其中iv-"((M'+厶v)户。);通过确认)=, pM )nL efc(M,"来验证所述数字签名&g,其中PM =A(MP。
3. 根据权利要求2所述的产生及验证一个签名s/g的方法,其中 所述第一群^与所述第二群G2具有相同的素数阶《。
4. 根据权利要求2所述的产生及验证一个签名的方法,其中所述第一循环群Gi是一个超奇异椭圆曲线或阿贝尔簇上的点的加性群,所述第二循环群G2则是一个有限域的乘性子群。
5. 根据权利要求2所述的产生及验证一个签名s/g的方法,其中所述函数e是一种可行的配对。
6. —种用来生成一条数字消息的一个签名的系统,所述的数字消 息在一个签署人与 一个校验器之间传递,其中所述签署人在一个分级 结构中比一个根PKG低,个级别,并且其中所述签署人与 一个签署人 ID元组(/i^,..., /"j相关联,该ID元组包括与所述签署人有关的身份信息/Z),,,以及与所述分级结构中所述根PKG和所述签署人之间的 i)个低级PKGs中的每一个自相关的身份信息/ ,该系统包括 一个存储器,该存储器至少能够储存与(卜l)个低级PKGs中的每一个相关的 一个低级公共密钥,以及与所述签署人相关的 一个签署人 私有密钥;以及一个与所述存储器通信的处理器,其中所述的处理器在离线状态 下能够选取一个随机暗门密文、选取一条随机消息和一个随机数、并 利用所述的随机消息、随机数、签署人私有密钥和暗门密文来生成一 个离线签名,并且其中所述的处理器在在线状态下能够识别出一个将 所述离线签名与所述数字消息相匹配的匹配随机数。
7. —种为数字消息产生一个签名的方法,该方法包括 产生一个与基于身份的分级系统中的一个签署人相关的签署人私有密钥,其中所述的签署人私有密钥与和所述签署人相关联的身份信息有关;选取一个随机签署人暗门密文; 选取一条随机消息和一个随机数;利用所述的随机消息、随机数、签署人私有密钥以及暗门密文产 生一个离线签名;识别出 一个与数字消息的离线签名相匹配的匹配随机数, 其中只有所述的识别步骤需要在线完成。
8. —种计算机实现的方法,用于在基于身份的分级系统中由签署人在消息M上产生数字签名,所述方法包括签署人执行以下操作(1) 在第一群A中,获取所述签署人的机密密钥,所述机密密 钥等于以下二者之和(a)与所述签署人的直系父辈相关的值,和(b) 机密整数乘以与所述签署人的身份相关的值;(2) 产生机密整数st, s,t;(3) 对群G!的预定元素Pe,产生值StP。和S,tP。,其中所述值 Po, StP。和s,tP。可被所述数字签名的校验器获得;(4) 产生消息M,和第一整数参数r,;(5) 产生值PM,作为整数系数与所述元素P。的乘积的函数h, 所述整数系数为至少所述消息M,和所述第一整数参数r,的线性组合, 其中从所述值st,获取所述线性组合中的至少 一个系数;(6) 在所述消息M,上产生签名要素Sig,作为所述签署人的机 密密钥和值StPM,的线性组合;(7) 接收所述消息M;(8 )从所述消息M确定第二参数值r,使得在所述消息M和所 述第二参数值r上的函数h的值Pm等于Pm,,其中所述第二参数值r 是所述消息M上数字签名的一部分。
9. 根据权利要求8所述的方法,其中Gi是循环群。
10. 根据权利要求9所述的方法,其中P。是所述第一群Gi的生成器。
11. 根据权利要求10所述的方法,其中所述第一群具有素数阶。
12. 根据权利要求8所述的方法,其中所述签署人的机密密钥等 于签署人和所述分级系统中除了根级以外的所述签署人之上全部级别 i的值SwPi之和,其中每个Sw是来自所述校验器的保密整数并且每个 Pi与所述签署人或所述签署人在级别i的父辈的身份相关联。
13. 根据权利要求8所述的方法,其中所述(5)的整数系数等 于M,+r,s,t。
14. 根据权利要求8所述的方法,其中Sig是所述签署人的机密密钥和所述值StPM,之和。
15. 根据权利要求8所述的方法,其中在(6)之后执行所述操 作(7)和(8)。
16. —种计算机实现的方法,用于在分级的基于身份的系统中校 验签署人的消息M上的数字签名,所述方法包括校验器执行以下操 作(1) 为所述分级的基于身份的系统中位于或高于所述签署人级 别的每个级别i,获取(a)群Gi的元素Qi,每个元素Qi是具有未 提供给所述校验器的机密整数系数的群Gi的预定元素P。的整数倍, 和(b)与所述签署人或所述签署人的级别i的父辈的身份相关联的值Pi;(2) 获取签名要素U、 PM,,其为第一群Gi的元素;(3) 对于GiXGi到第二群G2的预定的双线性非退化映射卜确 定e,,。等于值鄉,,iV)与除了根级以外的全部级别i的值S(e,—,,户,)的 乘积,其中级别i-l是相对于级别i的紧邻在前的更高级;(4) 接收所述消息M和整数参数r,并且确认PM,等于预定函 数h在具有从消息M获得的整数系数的所述第一群Gi的预定元素和 和参数r的线性组合上的值。
17. 根据权利要求16所述的方法,其中(4)中所述线性组合等 于MPd+rQ,t,其中Q,t独立于所述消息M。
18. 根据权利要求16所述的方法,其中(3)后执行所述操作(4)。
19. 根据权利要求16所述的方法,其中所述Gi为循环群。
20. 根据权利要求16所述的方法,其中P。为所述第一群Gi的生成器。
21. 根据权利要求16所述的方法,其中所述第一群Gi具有素数阶。
22. 根据权利要求16所述的方法,其中所述第二群G2为循环群。
23. —种系统,包括一个或多个计算机处理器和存储器,所述存 储器存储由所述一个或多个计算机处理器来执行的程序代码,所述程 序代码用于执行权利要求1-22之一所述的方法。
全文摘要
提供了用于产生并验证数字消息的签名的方法和系统,所述数字消息在签署者和验证器之间通信。使用双线性映射,诸如Weil或Tate配对(104),这些方法和系统能够产生并验证高效的多签名、基于身份的团体签名、分级代理签名以及分级在线/离线签名。
文档编号G09C1/00GK101453332SQ20081018473
公开日2009年6月10日 申请日期2003年4月15日 优先权日2002年4月15日
发明者克雷格·B·金特里 申请人:株式会社Ntt都科摩
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1