[go: up one dir, main page]

CN101527629A - Hierarchical identity-based encryption and signature schemes - Google Patents

Hierarchical identity-based encryption and signature schemes Download PDF

Info

Publication number
CN101527629A
CN101527629A CNA2008101837569A CN200810183756A CN101527629A CN 101527629 A CN101527629 A CN 101527629A CN A2008101837569 A CNA2008101837569 A CN A2008101837569A CN 200810183756 A CN200810183756 A CN 200810183756A CN 101527629 A CN101527629 A CN 101527629A
Authority
CN
China
Prior art keywords
ciphertext
entity
value
elements
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2008101837569A
Other languages
Chinese (zh)
Inventor
克雷格·B·金特里
艾丽斯·西尔弗伯格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Publication of CN101527629A publication Critical patent/CN101527629A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供了一种基于身份的分级加密与签名方案。用来在一个包含多个私有密钥生成器(“PKG”)的系统中的发送方与接收方之间编码与解码一条数字消息的方法。所述的PKG中至少包括一个根PKG以及根PKG与接收方之间的分级结构中的n个低级PKG。一个根密钥生成密文被选取且只为根PKG所知(102)。根据所述的根密钥生成密文产生一个根密钥生成参数(104)。为所述的n个低级PKG各选取一个低级密钥生成密文,其中每个低级密钥生成密文只对其相关的低级PKG已知(106)。还要为n个低级PKG各产生一个低级密钥生成参数,产生的过程中至少要利用对应于其相关低级私有密钥生成器的低级密钥生成密文(108)。

The invention provides an identity-based hierarchical encryption and signature scheme. A method for encoding and decoding a digital message between a sender and a receiver in a system involving multiple private key generators ("PKGs"). The PKG includes at least one root PKG and n lower-level PKGs in the hierarchical structure between the root PKG and the recipient. A root key generating ciphertext is selected and known only to the root PKG (102). Generate a root key generation parameter (104) according to the root key generation ciphertext. A low-level key generation ciphertext is selected for each of the n low-level PKGs, wherein each low-level key generation ciphertext is known only to its associated low-level PKG (106). Also generate a low-level key generation parameter for each of the n low-level PKGs, at least using the low-level key corresponding to its associated low-level private key generator to generate ciphertext (108).

Description

基于身份的分级加密与签名方案 Identity-based Hierarchical Encryption and Signature Scheme

本申请是申请号为03803910.9、申请日为2003年3月18日、发明名称为“基于身份的分级加密与签名方案”的发明专利申请的分案申请。This application is a divisional application of the invention patent application with the application number 03803910.9, the application date is March 18, 2003, and the invention title is "identity-based hierarchical encryption and signature scheme".

相关申请related application

申请人特此依据35 U.S.C§119(e)要求2002年3月21日提交的临时美国专利申请60/366292和2002年3月21日提交的临时美国专利申请60/366196的优先权,所述的两个临时专利申请都通过引用包括在本申请中。Applicant hereby claims priority under 35 U.S.C § 119(e) to Provisional U.S. Patent Application 60/366,292, filed March 21, 2002, and Provisional U.S. Patent Application 60/366,196, filed March 21, 2002, the Both provisional patent applications are incorporated herein by reference.

技术领域 technical field

本发明主要涉及密码技术以及通过计算机网络或通过其他类型的系统与设备进行的保密通信,并尤其涉及用来对通信进行加密和解密的基于身份的分级方案。The present invention relates generally to cryptography and secure communications with devices over computer networks or through other types of systems, and more particularly to identity-based hierarchical schemes for encrypting and decrypting communications.

背景技术 Background technique

大致说来,基于身份的密码系统是公共密钥密码系统,在这类系统中,一个实体的公共密钥是由与该实体的身份相关的信息得来的。例如,所述的身份信息可以是个人信息(即姓名、地址、电子邮箱地址等)或是计算机信息(即IP地址等)。但是,身份信息不仅可以包括与实体身份严格相关的信息,还包括广泛的可用信息,比如时间或日期。也就是说,身份信息概念的重要性不在于它与实体身份的严格关系,而在于任何希望向实体发送加密消息的人都能轻易获得该信息。Broadly speaking, identity-based cryptosystems are public-key cryptosystems in which an entity's public key is derived from information related to the entity's identity. For example, the identity information may be personal information (ie name, address, email address, etc.) or computer information (ie IP address, etc.). However, identity information can include not only information strictly related to an entity's identity, but also widely available information, such as time or date. That said, the importance of the concept of identity information lies not in its strict relationship to an entity's identity, but in the ease with which anyone wishing to send an encrypted message to an entity can obtain that information.

一个实体的私有密钥由一个受委托方或逻辑进程产生并分配,所述的受委托方或逻辑进程通常被称为私有密钥生成器(“PKG”)。PKG利用一个主密文信息来产生私有密钥。由于一个实体的公共密钥可根据其身份推知,因此当Alice想要向Bob发送一条消息时,她就不必从数据库中取回Bob的公共密钥。而是Alice只需根据Bob的识别信息直接推知密钥。公共密钥数据库就成为多余,认证授权(“CAs”,)也是不必要的了。无需将Bob的身份“绑定”到他的公共密钥上,因为他的身份即是他的公共密钥。An entity's private key is generated and distributed by a trusted party or logical process, commonly referred to as a private key generator ("PKG"). PKG uses a master ciphertext message to generate a private key. Since an entity's public key can be deduced from its identity, when Alice wants to send Bob a message, she does not have to retrieve Bob's public key from the database. Instead, Alice simply infers the key directly from Bob's identifying information. Public key databases are then redundant, and certificate authorities ("CAs") are unnecessary. There is no need to "bind" Bob's identity to his public key, because his identity is his public key.

基于身份的系统的概念并不新鲜。它在A.Shamir所著的“Identity-Based Cryptosystems and Signatures Schemes(基于身份的加密系统与签名方案)”中就已被提出,该文发表于ADVANCES INCRYPTOGRAPHY-CRYPTO‘84,Lecture Notes in ComputerScience 196(1984),Springer,47-53。然而,可实际应用的基于身份的加密方案至今仍未被找到。例如,基于身份的方案在下列文献中就已被提出,C.Cocks所著的“An Identity-Based Encryption SchemeBased on Quadratic Residues(以平方残差为基础的基于身份的加密方案)”,该文可在http://www.cesg.gov.uk/technology/id-pkc/media /ciren.pdf得到;D.Boneh,M.Franklin所著的“Identity BasedEncryption from the Weil Pairing(由Weil配对得到的基于身份的加密)”,该文发表于ADVANCES IN CRYPTOGRAPHY-CRYPTO2001,Lecture Notes in Computer Science2139(2001),Springer,213-229;以及D.Boneh,M.Franklin所著的“Identity BasedEncryption from the Weil Pairing(extended version)(由Weil配对得到的基于身份的加密(扩展版本))”,该文可在http://www.cs.stanford.edu/~dabo/papers/ibe.pdf得到。Cocks的方案是基于“平方残差问题”的,尽管加密和解密都相当地快(大约是RSA的速度),但是会有显著的消息扩展(即密文比特长度是明文比特长度的许多倍)。Boneh-Franklin方案将其安全性的基础建立在“双线性Diffie-Hellman问题”上,在使用超奇异椭圆曲线或阿贝尔簇曲线上的Weil或Tate配对时,该方案相当快速与高效。The concept of identity-based systems is not new. It has been proposed in "Identity-Based Cryptosystems and Signatures Schemes (identity-based encryption system and signature scheme)" written by A.Shamir, which was published in ADVANCES INCRYPTOGRAPHY-CRYPTO'84, Lecture Notes in ComputerScience 196( 1984), Springer, 47-53. However, practically applicable identity-based encryption schemes have not been found so far. For example, identity-based schemes have been proposed in the following documents, "An Identity-Based Encryption Scheme Based on Quadratic Residues (an Identity-Based Encryption Scheme Based on Quadratic Residues)" by C. Cocks, which can be Available at http://www.cesg.gov.uk/technology/id-pkc/media/ciren.pdf ; "Identity Based Encryption from the Weil Pairing" by D. Boneh , M. Franklin Encryption of Identity)", which was published in ADVANCES IN CRYPTOGRAPHY-CRYPTO2001, Lecture Notes in Computer Science2139 (2001), Springer, 213-229; and "Identity Based Encryption from the Weil Pairing ( extended version) (identity-based encryption obtained by Weil pairing (extended version)), this paper is available at http://www.cs.stanford.edu/~dabo/papers/ibe.pdf . Cocks' scheme is based on the "squared residual problem", although encryption and decryption are quite fast (about the speed of RSA), but there will be significant message expansion (that is, the ciphertext bit length is many times the plaintext bit length) . The Boneh-Franklin scheme bases its security on the "bilinear Diffie-Hellman problem", which is quite fast and efficient when using Weil or Tate pairings on supersingular elliptic curves or Abelian variety curves.

然而,已知的基于身份的加密方案都有一个显著的缺陷——它们都不是分级结构的。在非基于身份的公共密钥加密技术中,已经可以设置CA的分级结构,在该结构中,根CA可以为其他CA发放证书,而后者又可以为特定域内的用户发放证书。这样做是很值得的,因为它减轻了根CA的工作量。可供基于身份的加密技术使用的实用分级方案还未被开发出来。However, known identity-based encryption schemes all have a significant flaw - none of them are hierarchical. In non-identity-based public-key cryptography, it is already possible to set up a hierarchy of CAs, in which a root CA can issue certificates for other CAs, which in turn can issue certificates for users within a particular domain. Doing this is well worth it, as it lightens the root CA's workload. A practical classification scheme that can be used with identity-based encryption has not yet been developed.

理想情况下,基于身份的分级加密方案将包括一个逻辑或实际PKG的分级结构。例如,一个根PKG可以向其他PKG发放私有密钥,而后者又可以向特定域内的用户发放私有密钥。同时,只要发送方获得了根PKG的公共参数,即使发送方根本不在系统中,也可以在不上线查找接收方的公共密钥或低级公共参数的情况下发送一条加密信息。基于身份的分级加密方案的另一个优点在于损坏控制。例如,一个域PKG的密文的泄漏并不会危及更高层次PKG的密文,也不会危及任何其他不是这个被损害的域PKG的直接下级的PKG的密文。而Cocks和Boneh-Franklin所提倡的方案并不具有这些特性。Ideally, an identity-based hierarchical encryption scheme would include a logical or actual PKG hierarchy. For example, a root PKG can issue private keys to other PKGs, which in turn can issue private keys to users within a specific domain. At the same time, as long as the sender obtains the public parameters of the root PKG, even if the sender is not in the system at all, it can send an encrypted message without going online to find the receiver's public key or low-level public parameters. Another advantage of identity-based hierarchical encryption schemes is damage control. For example, the leakage of the ciphertext of a domain PKG will not compromise the ciphertext of a higher-level PKG, nor will it compromise the ciphertext of any other PKG that is not a direct subordinate of the compromised domain PKG. The scheme advocated by Cocks and Boneh-Franklin does not have these properties.

安全而实用的基于身份的分级加密方案还未被开发出来。一种具有部分共谋抵抗性的基于身份的分级密钥共享方案已经在下列文献中被提出:G.Hanaoka,T.Nishioka,Y.Zheng,H.Imai所著的“AnEfficient Hierarchical Identity-Based Key-Sharing Method ResistantAgainst Collusion Attacks(一种能够抵抗共谋攻击的高效的基于身份的分级密钥共享方法)”,该文发表于ADVANCES INCRYPTOGRAPHY-ASIACRYPT 1999,Lecture Notes in ComputerScience 1716(1999),Springer,348-362;以及G.Hanaoka,T.Nishioka,Y.Zheng,H.Imai所著的“A Hierarchical Non-InteractiveKey-Sharing Scheme With Low Memory Size and High ResistanceAgainst Collusion Attacks(一种具有低内存容量、高共谋攻击抵抗性的分级非互动密钥共享方案)”,该文将发表于THE COMPUTERJOURNAL。另外,在J.Horwitz,B.Lynn所著的“TowardHierarchical Identity-Based Encryption(走向基于身份的分级加密)”一文中还提供了对基于身份的分级加密的介绍,该文即将发表于ADVANCES IN CRYPTOGRAPHY-EUROCRYPT 2002,LectureNotes in Computer Science,Springer。Horwitz和Lynn提出了一种两级的分级方案,该方案在第一级具有完全的共谋抵抗性,并在第二级具有部分的共谋抵抗性(即,用户可以共谋以获得他们的域PKG的密文,并据此假扮成域PKG)。但是,Horwitz-Lynn系统的复杂性会随着第二级上的共谋抵抗性提高,因此该方案不可能做到既实用又安全。A secure and practical identity-based hierarchical encryption scheme has not yet been developed. An identity-based hierarchical key sharing scheme with partial collusion resistance has been proposed in the following literature: "An Efficient Hierarchical Identity-Based Key by G. Hanaoka, T. Nishioka, Y. Zheng, H. Imai -Sharing Method ResistantAgainst Collusion Attacks (an efficient identity-based hierarchical key sharing method that can resist collusion attacks)", this article was published in ADVANCES INCRYPTOGRAPHY-ASIACRYPT 1999, Lecture Notes in ComputerScience 1716(1999), Springer, 348 -362; and "A Hierarchical Non-InteractiveKey-Sharing Scheme With Low Memory Size and High Resistance Against Collusion Attacks" by G.Hanaoka, T.Nishioka, Y.Zheng, H.Imai A Hierarchical Non-Interactive Key Sharing Scheme for Attack Resistance), which will be published in THE COMPUTERJOURNAL. In addition, an introduction to identity-based hierarchical encryption is also provided in the article "Toward Hierarchical Identity-Based Encryption" by J. Horwitz, B. Lynn, which will be published in ADVANCES IN CRYPTOGRAPHY - EUROCRYPT 2002, Lecture Notes in Computer Science, Springer. Horwitz and Lynn propose a two-level hierarchical scheme that is fully collusion-resistant at the first level and partially collusion-resistant at the second level (i.e., users can collude to obtain their The ciphertext of the domain PKG, and pretend to be the domain PKG accordingly). However, the complexity of the Horwitz-Lynn system increases with the collusion resistance at the second level, so this scheme cannot be both practical and safe.

因此需要一种安全实用的基于身份的分级加密方案。本发明的一个目标就是要提供一种安全而又实用的基于身份的分级加密方案。本发明的另一个目标是要提供一种安全而又实用的基于身份的分级签名方案。本发明的另一个目标是所述的加密与签名方案都是完全可调整的。本发明的另一个目标是所述的加密与签名方案在任意数量的级别上都具有完全的共谋抵抗性,并且它们具有随机预言模型中的选定密文安全性。Therefore, a safe and practical identity-based hierarchical encryption scheme is needed. One object of the present invention is to provide a safe and practical identity-based hierarchical encryption scheme. Another object of the present invention is to provide a secure and practical identity-based hierarchical signature scheme. Another object of the invention is that both encryption and signature schemes are fully scalable. Another object of the present invention is that the described encryption and signature schemes are completely collusion resistant on any number of levels and they have chosen ciphertext security in the random oracle model.

发明内容 Contents of the invention

根据本发明,它提供了用来实现安全可靠且实用的基于身份的分级加密与签名方案的方法。According to the present invention, it provides a method for implementing a secure, reliable and practical identity-based hierarchical encryption and signature scheme.

根据本发明的一方面内容,它提供了一种用来在一个系统中的发送方与接收方之间编码和解码数字消息的方法,所述的系统中包括多个私有密钥生成器(“PKG”)。这些PKG中至少包括一个根PKG以及根PKG与接收方之间的分级结构中的n个低级PKG,其中n≥1。一个根密钥生成密文被选取,并且仅为根PKG所知。根据所述的根密钥生成密文产生一个根密钥生成参数。为n个低级PKG各选取一个低级密钥生成密文,其中每个低级密钥生成密文仅对其相关的低级PKG已知。还要为n个低级PKG各产生一个低级密钥生成参数,其中至少要用到对应于相关低级私有密钥生成器的低级密钥生成密文。至少利用根密钥生成参数和接收方身份信息来对所述的消息进行编码,以形成一个密文。产生一个接收方私有密钥,使得该接收方私有密钥至少与根密钥生成密文、根PKG和接收方之间的分级结构中的n个低级PKG相关的n个低级密钥生成密文中的一个或多个、以及接收方身份信息有关。至少利用接收方私有密钥来解密所述的密文以恢复所述的消息。According to one aspect of the present invention, there is provided a method for encoding and decoding digital messages between a sender and a receiver in a system comprising a plurality of private key generators (" PKG"). These PKGs include at least one root PKG and n lower-level PKGs in the hierarchy between the root PKG and the recipient, where n≥1. A root key generating ciphertext is chosen and known only to the root PKG. Generate a root key generation parameter according to the root key generation ciphertext. Select a low-level key to generate ciphertext for each of the n low-level PKGs, where each low-level key generates ciphertext only known to its associated low-level PKG. A low-level key generation parameter is also generated for each of the n low-level PKGs, wherein at least the low-level key generation ciphertext corresponding to the relevant low-level private key generator is used. The message is encoded using at least root key generation parameters and recipient identity information to form a ciphertext. generate a recipient private key such that the recipient private key is in at least n lower-level key-generating ciphertexts associated with n lower-level PKGs in the hierarchy between the root key-generating ciphertext, the root PKG, and the recipient One or more of , and the recipient's identity information. Decrypting said ciphertext using at least the recipient's private key to recover said message.

根据本发明的另一方面内容,它提供了一种用来在一个系统中的发送方与接收方之间编码和解码数字消息的方法,所述的系统中包括多个私有密钥生成器(“PKG”,)。这些PKG中至少包括一个根PKG、根PKG与发送方之间的分级结构中的m个低级PKG,其中m≥1,根PKG与接收方之间的分级结构中的n个低级PKG,其中n≥1,以及PKGl,它是发送方与接收方共同的前辈PKG。在该分级结构中,m个私有密钥生成器中的l个是发送方与接收方共同的前辈PKG,其中l≥1。According to another aspect of the present invention, there is provided a method for encoding and decoding digital messages between a sender and a receiver in a system comprising a plurality of private key generators ( "PKG", ). These PKGs include at least one root PKG, m lower-level PKGs in the hierarchical structure between the root PKG and the sender, where m≥1, and n lower-level PKGs in the hierarchical structure between the root PKG and the receiver, where n ≥1, and PKG l , which is the predecessor PKG common to both sender and receiver. In this hierarchical structure, l of the m private key generators is the common predecessor PKG of the sender and the receiver, where l≥1.

根据本发明这一方面的内容,要为根PKG与发送方之间的分级结构中的m个低级PKG各选取一个低级密钥生成密文。生成一个发送方私有密钥,使得该发送方私有密钥至少与根密钥生成密文、根PKG和发送方之间的分级结构中的m个低级PKG相关的m个低级密钥生成密文中的一个或多个、以及发送方身份信息有关。生成一个接收方私有密钥,使得该接收方私有密钥至少与根密钥生成密文、根PKG和接收方之间的分级结构中的n个低级PKG相关的n个低级密钥生成密文中的一个或多个、以及接收方身份信息有关。至少利用接收方身份信息、发送方私有密钥、以及和位于或低于公共前辈PKGl级别的(m-l+1)个私有密钥生成器相关的低级密钥生成参数中的0个或多个,来对所述的消息进行编码,但是不能使用和高于公共前辈PKGl的(l-1)个PKG相关的低级密钥生成参数中的任何一个。至少利用发送方身份信息、接收方私有密钥、以及和位于或低于公共前辈PKGl级别的(n-l+1)个私有密钥生成器相关的低级密钥生成参数中的0个或多个,来对所述的消息进行解码,但是不能使用和高于公共前辈PKGl的(l-1)个PKG相关的低级密钥生成参数中的任何一个。According to the content of this aspect of the present invention, a low-level key is selected for each of the m low-level PKGs in the hierarchical structure between the root PKG and the sender to generate ciphertext. Generate a sender private key such that the sender private key is in at least m lower-level key-generating ciphertexts related to m lower-level PKGs in the hierarchy between the root key-generating ciphertext, the root PKG, and the sender One or more of , and sender identity information. Generate a recipient private key such that the recipient private key is in at least n lower-level key-generating ciphertexts related to n lower-level PKGs in the hierarchy between the root key-generating ciphertext, the root PKG, and the recipient One or more of , and the recipient's identity information. Utilizes at least 0 or multiple, to encode the message in question, but cannot use any of the low-level key generation parameters associated with (1-1) PKGs higher than the common predecessor PKG 1. Utilizes at least 0 or multiple, to decode the message in question, but cannot use any of the low-level key generation parameters associated with (1-1) PKGs higher than the common predecessor PKG 1.

根据本发明的另一方面内容,它提供了一种用来在一个系统中的发送方与接收方之间产生及验证一条消息的数字签名的方法,所述的系统中包括多个PKG。这些PKG中至少包括一个根PKG以及根PKG与发送方之间的分级结构中的n个低级PKG,其中n≥1。一个根密钥生成密文被选取,并且仅为根PKG所知。根据所述的根密钥生成密文产生一个根密钥生成参数。为n个低级PKG各选取一个低级密钥生成密文,其中每个低级密钥生成密文仅对其相关的低级PKG已知。还要为n个低级PKG各产生一个低级密钥生成参数,其中至少要用到对应于相关低级私有密钥生成器的低级密钥生成密文。为发送方生成一个私有密钥,使得该私有密钥至少与根密钥生成密文以及发送方身份信息有关。至少利用发送方私有密钥来签署所述的消息以生成一个数字签名。至少利用根密钥生成参数以及发送方身份信息来验证所述的数字消息。According to another aspect of the present invention, there is provided a method for generating and verifying a digital signature of a message between a sender and a receiver in a system comprising a plurality of PKGs. These PKGs include at least one root PKG and n lower-level PKGs in the hierarchy between the root PKG and the sender, where n≧1. A root key generating ciphertext is chosen and known only to the root PKG. Generate a root key generation parameter according to the root key generation ciphertext. Select a low-level key to generate ciphertext for each of the n low-level PKGs, where each low-level key generates ciphertext only known to its associated low-level PKG. A low-level key generation parameter is also generated for each of the n low-level PKGs, wherein at least the low-level key generation ciphertext corresponding to the relevant low-level private key generator is used. A private key is generated for the sender, so that the private key is at least related to the ciphertext generated by the root key and the identity information of the sender. Said message is signed with at least the sender's private key to generate a digital signature. The digital message is authenticated using at least root key generation parameters and sender identity information.

附图说明 Description of drawings

以下对本发明优选实施例的说明参照了附图,其中:The following description of preferred embodiments of the invention refers to the accompanying drawings, in which:

图1示出了一张流程图,该图根据本发明的当前优选实施例展示了一种编码和解码数字消息的方法;Figure 1 shows a flow diagram illustrating a method of encoding and decoding a digital message in accordance with the presently preferred embodiment of the present invention;

图2示出了一张流程图,该图根据本发明的另一个当前优选实施例展示了一种在发送方y和接收方z之间编码及解码数字消息的方法;Figure 2 shows a flow chart illustrating a method of encoding and decoding digital messages between a sender y and a receiver z according to another presently preferred embodiment of the present invention;

图3示出了一张框图,该图展示了一种典型的分级结构,在这种结构中可以实现图2所示的方法;Figure 3 shows a block diagram illustrating a typical hierarchical structure in which the method shown in Figure 2 can be implemented;

图4示出了一张流程图,该图根据本发明的另一个当前优选实施例展示了一种编码和解码一条数字消息M的方法,所述的数字消息在发送方y和接收方z之间传递;Figure 4 shows a flow chart illustrating a method of encoding and decoding a digital message M between a sender y and a receiver z according to another presently preferred embodiment of the present invention transfer between

图5示出了一张流程图,该图根据本发明的另一个当前优选实施例展示了一种编码和解码一条数字消息M的方法,所述的数字消息在发送方y和接收方z之间传递;Fig. 5 shows a flow diagram illustrating a method of encoding and decoding a digital message M between a sender y and a receiver z according to another presently preferred embodiment of the present invention transfer between

图6示出了一张流程图,该图根据本发明的另一个当前优选实施例展示了一种编码和解码一条数字消息M的方法,所述的数字消息在发送方y和接收方z之间传递;Figure 6 shows a flow diagram illustrating a method of encoding and decoding a digital message M between a sender y and a receiver z according to another presently preferred embodiment of the present invention transfer between

图7示出了一张流程图,该图根据本发明的另一个当前优选实施例展示了一种生成及验证一个数字签名的方法;FIG. 7 shows a flowchart illustrating a method of generating and verifying a digital signature according to another presently preferred embodiment of the present invention;

图8示出了一张流程图,该图根据本发明的另一个当前优选实施例展示了一种生成及验证一条数字消息M的数字签名Sig的方法,所述的数字消息在发送方y和接收方z之间传递;以及Fig. 8 shows a flow chart illustrating a method of generating and verifying a digital signature Sig of a digital message M between sender y and transfer between receiver z; and

图9示出了一张流程图,该图根据本发明的另一个当前优选实施例展示了一种生成及验证一条数字消息M的数字签名Sig的方法,所述的数字消息在发送方y和接收方z之间传递。Fig. 9 shows a flow chart illustrating a method of generating and verifying a digital signature Sig of a digital message M between sender y and Transfer between receiver z.

具体实施方式 Detailed ways

本发明的当前优选方法提供了安全可靠而实用的基于身份的分级加密(“HIDE”)与签名(“HIDS”)方案。所述的分级方案是完全可调整的,在任意数量的级别上都具有完全的共谋抵抗性,并且具有随机预言模型中的选定密文安全性。这些目标部分是通过在各个低级PKG中引入附加随机信息而实现的。这些方案在直观上令人惊讶的一个方面在于,即使低级PKG产生了附加随机信息,也不会迫使在分级结构的根级别以下添加公共参数。另外,低级PKG所产生的随机信息不会对不在低级PKG以下的用户向低级PKG以下的用户发送加密信息的能力造成负面影响。The presently preferred method of the present invention provides a secure and practical Hierarchical Identity-Based Encryption ("HIDE") and Signature ("HIDS") scheme. The described hierarchical scheme is fully adjustable, fully collusion-resistant at any number of levels, and has chosen-ciphertext security in a random oracle model. These goals are achieved in part by introducing additional random information in each low-level PKG. One intuitively surprising aspect of these schemes is that even if the low-level PKG produces additional random information, it does not force the addition of common parameters below the root level of the hierarchy. In addition, the random information generated by the low-level PKG does not negatively affect the ability of users not below the low-level PKG to send encrypted messages to users below the low-level PKG.

本发明的每一个HIDE和HIDS方案都需要PKG的分级结构,该结构中至少包括一个根PKG和多个低级PKG。分级结构和低级PKG可以是逻辑的,也可以是实际的。例如,一个单个实体就可以产生根密钥生成密文和低级密钥生成密文,低级用户的加密或签名密钥都是由后者生成的。在这种情况下,低级PKG都不是独立的实体,而只是以逻辑分级结构组织的进程或信息,并被用来为分级结构中的后代PKG及用户生成密钥。或者,每个低级PKG也可以是独立的实体。另一种备选方案涉及实际与逻辑低级PKG的混合形式。为了本文公开说明的目的,短语“低级PKG”一般被用来指代这些备选方案中的任意一种。Each of the HIDE and HIDS schemes of the present invention requires a hierarchical structure of PKGs, which includes at least one root PKG and multiple lower-level PKGs. Hierarchies and low-level PKGs can be logical or physical. For example, a single entity can generate root key-generating ciphertexts and low-level key-generating ciphertexts from which the encryption or signing keys of low-level users are generated. In this case, the lower-level PKGs are not independent entities, but just processes or information organized in a logical hierarchy and used to generate keys for descendant PKGs and users in the hierarchy. Alternatively, each low-level PKG may also be a separate entity. Another alternative involves a mixed form of actual and logical low-level PKG. For the purposes of this disclosure, the phrase "lower PKG" is used generally to refer to any of these alternatives.

在本文所公开的基于身份的分级密码系统环境下,基于身份的公共密钥可以是基于时间周期的。例如,一个特定接收方的身份会随各个随后的时间周期而变化。或者,接收方也可以将时间周期安排为它自己在分级结构中的后代或下级,并且发送方会在编码消息时使用正确时间周期上的身份。不论采用何种方式,每个密钥都只在相关的时间周期内才能有效的用来签署要送给Bob的消息。In the context of the identity-based hierarchical cryptosystem disclosed herein, the identity-based public key may be time-period-based. For example, the identity of a particular recipient may change with each subsequent time period. Alternatively, the receiver can schedule the time periods as descendants or subordinates of itself in the hierarchy, and the sender will use the identity on the correct time period when encoding the message. Regardless of the method used, each key is only valid for the relevant time period to sign the message to Bob.

本发明的HIDE方案通常包括5个随机化的算法:根设置、低级设置、抽取、加密以及解密。这些算法中的三个依赖于分级结构中相关实体的身份。每名用户最好都在分级结构中拥有一个位置,该分级结构可由它的ID元组(ID1,...,IDt)定义。所述用户在分级结构中的前辈是根PKG以及ID元组为{(ID1,...,IDi):1≤i≤(t-1)}的用户或PKG。为了计算的目的,ID元组最好用二进制字串表示。The HIDE scheme of the present invention generally includes five randomized algorithms: root set, low level set, decimation, encryption, and decryption. Three of these algorithms rely on the identity of related entities in a hierarchy. Each user preferably has a place in the hierarchy, which can be defined by its ID tuple (ID 1 , . . . , ID t ). The predecessor of the user in the hierarchical structure is the root PKG and the user or PKG whose ID tuple is {(ID 1 , . . . , ID i ): 1≤i≤(t−1)}. For computational purposes, ID tuples are best represented as binary strings.

在根设置算法中,根PKG使用一个保密参数k来产生公共系统参数params以及一个根密钥生成密文。所述的系统参数包括对消息空间M和密文空间X的描述。所述的系统参数是公开使用的,但只有根PKG知道根密钥生成密文。In the root setting algorithm, the root PKG uses a secret parameter k to generate the public system parameter params and a root key to generate ciphertext. The system parameters include descriptions of the message space M and the ciphertext space X. The system parameters described are for public use, but only the root PKG knows the root key to generate the ciphertext.

在低级设置算法中,为了抽取的目的,每个低级PKG最好产生它自己的低级密钥生成密文。或者,低级PKG也可以为每次抽取产生一次性密文。In the low-level set algorithm, each low-level PKG preferably generates its own low-level key-generating ciphertext for extraction purposes. Alternatively, a low-level PKG can also generate a one-time ciphertext for each draw.

在抽取算法中,一个PKG(根PKG或低级PKG)为它的任意一个后代产生一个私有密钥。该私有密钥是利用系统参数、生出方PKG的私有密钥以及任何其他的优选密文信息产生的。In the extraction algorithm, a PKG (root PKG or lower-level PKG) generates a private key for any of its descendants. The private key is generated using system parameters, the private key of the producer PKG, and any other preferred ciphertext information.

在加密算法中,发送方从根PKG接收系统参数,最好是通过本系统以外的某些安全途径接收。发送方不必接收任何低级密钥生成参数。所述的发送方利用params和期望接收方的ID元组来编码一条消息M∈M,以产生一个加密文本C∈X。相反地,在解码算法中,接收方利用params和接收方的私有密钥d来解码加密文本C,以恢复消息M。加密和解密最好都满足标准的一致性约束:In the encryption algorithm, the sender receives system parameters from the root PKG, preferably through some secure means outside the system. The sender does not have to accept any low-level key generation parameters. The sender encodes a message M∈M using params and the ID tuple of the intended recipient to generate an encrypted text C∈X. Conversely, in the decoding algorithm, the recipient decodes the encrypted text C using params and the recipient's private key d to recover the message M. Encryption and decryption preferably both satisfy the standard consistency constraints:

∀ M ∈ M : Decryption (params,d,C)=M ∀ m ∈ m : Decryption(params, d, C) = M

其中C=Encryption (params,ID元组,M)。Where C = Encryption (params, ID tuple, M).

象HIDE方案一样,本发明的HIDS方案一般也包括5个随机化的算法:根设置、低级设置、抽取、签署以及验证。在根设置中,系统参数会被补充以包括进对签名空间∑的说明。低级设置和抽取最好与上述HIDE中的算法一样。Like the HIDE scheme, the HIDS scheme of the present invention also generally includes 5 randomized algorithms: root setting, low-level setting, extraction, signing and verification. In root settings, system parameters are supplemented to include a specification of the signature space Σ. The low-level setup and decimation is preferably the same algorithm as in HIDE above.

在签署算法中,数字消息的发送方利用params和发送方的私有密钥d签署消息M∈M,以生成一个签名S∈∑。在验证算法中,被签署消息的接收方利用params以及发送方的ID元组来验证签名S。验证算法最好输出“有效”或“无效”。签署与验证最好也满足一致性约束:In the signing algorithm, the sender of the digital message uses params and the sender's private key d to sign the message M∈M to generate a signature S∈∑. In the verification algorithm, the recipient of the signed message uses params and the ID tuple of the sender to verify the signature S. The verification algorithm preferably outputs "valid" or "invalid". Signing and verification preferably also satisfy the consistency constraints:

∀ M ∈ M : Verification (params,ID元组,S)=“有效” ∀ m ∈ m : Verification(params, ID tuple, S) = "Valid"

其中S=Signing (params,d,M)。where S = Signing (params, d, M).

HIDE与HIDS方案的安全性Security of HIDE and HIDS schemes

下面将分别针对HIDE和HIDS来说明实现了本发明的方案的安全性。在基于身份的非分级加密技术环境下人们已经注意到,必须为基于身份的系统加强选定密文安全性的标准定义。这是因为,为了进行安全性分析,应该假定一个敌对方能够获得与其选择的任意身份相关的私有密钥(除了受到攻击的特定身份以外)。这一点同样适用于基于身份的分级加密技术。因此,为了确保本发明的HIDE方案是具有选定密文安全的,就可以让一个模拟攻击者进行密钥抽取查询。同时,还要允许该模拟敌对方选择其所希望挑战的身份。The security of the solution of the present invention will be described below for HIDE and HIDS respectively. In the context of identity-based non-hierarchical cryptography, it has been noted that standard definitions for the security of selected ciphertexts must be enforced for identity-based systems. This is because, for the purposes of security analysis, it should be assumed that an adversary has access to private keys associated with any identity of its choosing (except for the specific identity under attack). The same applies to identity-based hierarchical encryption. Therefore, in order to ensure that the HIDE scheme of the present invention is safe with selected ciphertexts, a simulated attacker can be allowed to perform key extraction queries. At the same time, the simulated hostile party should be allowed to choose the identity it wishes to challenge.

还应该注意的是,一个敌对方可以自适应性或非自适应性地选取其对象的身份。自适应地选取其对象的敌对方将首先进行乱序查询和抽取查询,并接着根据这些查询的结果选取它的目标。这样的敌对方在开始攻击时不会有特定的目标。而是,只要它能破解某人,该敌对方就是成功的。另一方面,一个非自适应的敌对方不会根据乱序查询和抽取查询的结果来选取它的目标。例如,这样的敌对方会以一个私敌为目标。该敌对方仍会进行乱序查询和抽取查询,但是它的目标选择是严格根据目标身份的,而非根据查询结果。显而易见,针对自适应目标选取的敌对方的安全性是更强的,因此也是更加优越可取的安全性概念。但是,对本发明中HIDE方案的安全性分析提到了两种类型的安全性。It should also be noted that an adversary can choose its object's identity adaptively or non-adaptively. An adversary that adaptively selects its objects will first conduct out-of-order and extraction queries, and then select its targets based on the results of these queries. Such an adversary would not have a specific target in mind when initiating an attack. Rather, as long as it can crack someone, the adversary is successful. On the other hand, a non-adaptive adversary does not select its targets based on the results of out-of-order queries and extracted queries. For example, such an adversary would target a personal enemy. The adversary still performs out-of-order queries and extraction queries, but its target selection is strictly based on target identity rather than query results. Obviously, the security of the adversary selected against the adaptive target is stronger, and therefore a more superior and desirable security concept. However, the security analysis of the HIDE scheme in the present invention mentions two types of security.

如果在以下的竞赛中不存在对挑战者具有不可忽略优势的受多项式限制的敌对方A,那么就称HIDE方案对自适应选取密文以及自适应选取目标的攻击具有语义上的安全性。If there is no polynomial-limited adversary A that has a non-negligible advantage over the challenger in the following competition, then the HIDE scheme is said to be semantically secure against adaptively selected ciphertext and adaptively selected targets.

设置:挑战者取得一个保密参数k并运行根设置算法。它将得到的系统参数params提供给敌对方。它将根密钥生成密文留给自己。Setup: The challenger gets a secret parameter k and runs the root setup algorithm. It provides the obtained system parameter params to the adversary. It leaves the root key generation ciphertext to itself.

阶段1:敌对方提出查询q1,...,qm,其中qi是下列查询中的一种:Phase 1: The adversary proposes queries q 1 ,...,q m , where q i is one of the following queries:

1.公共密钥查询(ID元组i):挑战者对ID元组i运行一个乱序算法,以获得对应于ID元组i的公共密钥H(ID元组i)。1. Public key query (ID tuple i ): The challenger runs an out-of-order algorithm on ID tuple i to obtain the public key H(ID tuple i ) corresponding to ID tuple i.

2.抽取查询(ID元组i):挑战者运行抽取算法以生成对应于ID元组i的私有密钥di,并将di发送给敌对方。2. Extraction query (ID tuple i ): The challenger runs the extraction algorithm to generate a private key d i corresponding to ID tuple i , and sends d i to the adversary.

3.解密查询(ID元组i,Ci):挑战者运行抽取算法以生成对应于ID元组i的私有密钥di,利用di运行解密算法以解密Ci,并将结果得到的明文发送给敌对方。3. Decrypt query (ID tuple i , C i ): the challenger runs the extraction algorithm to generate the private key d i corresponding to ID tuple i , uses d i to run the decryption algorithm to decrypt C i , and converts the resulting The plaintext is sent to the adversary.

这些查询可以自适应地提出。另外,被查询的ID元组i可以对应于分级结构任何一个级别上的位置。These queries can be asked adaptively. In addition, the queried ID tuple i can correspond to a position on any level of the hierarchy.

挑战:一旦敌对方判定阶段1已经结束,它就会输出两个长度相等的明文M0,M1∈M,以及一个它希望挑战的ID元组。唯一的限制在于,该ID元组以及它的前辈都不能出现在阶段1中的任何私有密钥抽取查询中。挑战者随意选取一个随机比特b∈{0,1},并设C=Encryption(params,ID元组,Mb)。它将C作为一次挑战发送给敌对方。Challenge: Once the adversary decides that Phase 1 is over, it outputs two plaintexts M 0 , M 1 ∈ M of equal length, and an ID tuple it wishes to challenge. The only restriction is that neither this ID tuple nor its predecessors can appear in any private key extraction queries in phase 1. The challenger randomly selects a random bit b∈{0, 1}, and sets C=Encryption(params, ID tuple, M b ). It sends C as a challenge to the adversary.

阶段2:敌对方提出更多的查询qm+1,...,qn,其中qi是下列查询中的一种:Phase 2: The adversary proposes more queries q m+1 , ..., q n , where q i is one of the following queries:

1.公共密钥查询(ID元组i):挑战者像在阶段1中那样进行回应。1. Public key query (ID tuple i ): The challenger responds as in phase 1.

2.抽取查询(ID元组i):挑战者像在阶段1中那样进行回应。2. Extract query (ID tuple i ): the challenger responds as in phase 1.

3.解密查询(C,ID元组i):挑战者像在阶段1中那样进行回应。3. Decrypt query(C, ID tuple i ): The challenger responds as in phase 1.

阶段2中的查询受到如下限制,即挑战者不能对与挑战密文C相关的ID元组进行抽取查询,或是利用那个ID元组以及密文C进行解密查询。这一限制同样适用于该ID元组的所有前辈。The query in phase 2 is restricted in that the challenger cannot perform an extraction query on the ID tuple associated with the challenge ciphertext C, or use that ID tuple and ciphertext C to perform a decryption query. This restriction applies equally to all predecessors of this ID tuple.

猜测:敌对方输出一个猜测值b′∈{0,1}。如果b=b′,则敌对方赢得比赛。敌对方在攻击本方案中所拥有的优势被定义为|Pr[b=b′]-1/2|。Guess: The opponent outputs a guess value b′∈{0, 1}. If b=b', the opponent wins the game. The advantage possessed by the enemy in attacking this scheme is defined as |Pr[b=b′]-1/2|.

在以下所述的竞赛中,如果不存在拥有不可忽略优势的多项式时间敌对方,那么HIDE方案就被称为单向加密方案。在该竞赛中,敌对方A被给予一个随机公共密钥Kpub和一个加密文本C,并输出一个对明文的猜测值,所述的加密文本C是利用Kpub对随机消息M进行加密得到的。如果ε是A输出M的概率,那么就称所述的敌对方对本方案具有优势ε。所述的竞赛如下进行:In the race described below, a HIDE scheme is called a one-way encryption scheme if there is no polynomial-time adversary with a non-negligible advantage. In this competition, the opponent A is given a random public key K pub and an encrypted text C, and outputs a guess value of the plaintext. The encrypted text C is obtained by encrypting a random message M with K pub . If ε is the probability of A outputting M, then the hostile party is said to have an advantage ε in this scheme. Said competition is run as follows:

设置:挑战者取得一个保密参数k并运行根设置算法。它将得到的系统参数params提供给敌对方。它将根密钥生成密文留给自己。Setup: The challenger gets a secret parameter k and runs the root setup algorithm. It provides the obtained system parameter params to the adversary. It leaves the root key generation ciphertext to itself.

阶段1:敌对方就如在上述选定密文安全性分析的阶段1中那样进行公共密钥和/或抽取查询。Phase 1: The adversary performs a public key and/or extraction query just as in Phase 1 of the selected ciphertext security analysis above.

挑战:一旦敌对方判定阶段1已经结束,它就会输出一个它希望挑战的新ID元组ID。挑战者随意选取一个随机的M∈M,并设C=Encryption(params,ID元组,M)。它将C作为一次挑战发送给敌对方。Challenge: Once the adversary decides that Phase 1 is over, it outputs a new ID tuple ID that it wishes to challenge. The challenger randomly selects a random M∈M, and sets C=Encryption(params, ID tuple, M). It sends C as a challenge to the adversary.

阶段2:敌对方对除了ID及其前辈以外的其他身份提出更多的公共密钥查询以及更多的抽取查询,挑战者则会如阶段1中那样作出回应。Phase 2: The adversary makes more public key queries and more extraction queries for identities other than the ID and its predecessors, and the challenger responds as in phase 1.

猜测:敌对方输出一个猜测值M′∈M。如果M=M′,则敌对方赢得比赛。敌对方在攻击本方案中所拥有的优势被定义为Pr[M=M′]。Guess: The opponent outputs a guess value M′∈M. If M=M', the opponent wins the game. The advantage possessed by the enemy in attacking this scheme is defined as Pr[M=M'].

本发明的方案对于上述挑战是安全可靠的。另外,本发明的HIDS方案针对现有的针对自适应选取消息的伪造也是安全可靠的。即使在(自适应地)获取了目标在敌对方所选取的消息上的签名之后,敌对方也不能伪造出它的目标在其以前并未签署过的其他消息上的签名。一个HIDS敌对方还将拥有对除了它的目标及其前辈以外的其他实体进行公共密钥查询和私有密钥抽取查询的能力,以及选取其目标的能力。对于HIDE而言,敌对方的目标选择可以是自适应的也可以是非自适应的。The solution of the present invention is safe and reliable for the above-mentioned challenges. In addition, the HIDS scheme of the present invention is also safe and reliable for the existing forgery of self-adaptive selection messages. Even after (adaptively) acquiring the target's signature on a message chosen by the adversary, the adversary cannot forge its target's signature on other messages it has not previously signed. A HIDS adversary will also have the ability to conduct public key lookups and private key extraction lookups to entities other than its target and its predecessors, as well as the ability to select its targets. For HIDE, the target selection of the adversary can be adaptive or non-adaptive.

配对pair

本发明的当前优选HIDE和HIDS方案都是基于配对的,例如与椭圆曲线或阿贝尔簇曲线相关的Weil或Tate配对。所述的方法也可以是基于双线性Diffie-Hellman问题的。它们使用两个循环群Γ1和Γ2,这两个循环群最好具有同样大小的素数阶q。第一群Γ1最好是椭圆曲线或阿贝尔簇曲线上的一群点,并且Γ1上的群规则可以被写成加性的。第二群Γ2最好是一个有限域的乘性子群,并且Γ2上的群规则可以被写成乘性的。但是,也可以使用其他类型的群作为符合本发明的Γ1和Γ2The presently preferred HIDE and HIDS schemes of the present invention are both based on pairings, such as Weil or Tate pairings related to elliptic curves or Abelian cluster curves. The method described can also be based on the bilinear Diffie-Hellman problem. They use two cyclic groups Γ 1 and Γ 2 , which preferably have prime order q of the same size. The first group Γ 1 is preferably a group of points on elliptic curves or Abelian variety curves, and the group rules on Γ 1 can be written as additive. The second group Γ 2 is preferably a multiplicative subgroup of finite fields, and the group rules on Γ 2 can be written multiplicatively. However, other types of groups can also be used as Γ 1 and Γ 2 according to the invention.

所述的方法还利用了第一群Γ1的生成器P0。另外,还提供了一个配对或函数 e ^ : Γ 1 × Γ 1 → Γ 2 , 用来将第一群Γ1的两个元素映射成第二群Γ2的一个元素。函数最好满足三个条件。首先,函数

Figure A20081018375600233
最好是双线性的,如果Q和R都在Γ1中,且a和b都是整数,那么 e ^ ( aQ , bR ) = e ^ ( Q , R ) ab . 第二,函数
Figure A20081018375600235
最好是非退化的,从而使得该映射不会将Γ1×Γ1中的所有配对转变为Γ2中的身份。第三,函数
Figure A20081018375600236
最好是可以高效计算的。满足这三个条件的函数被认为是可行的。The described method also utilizes the generator P 0 of the first group Γ 1 . Additionally, a paired or function is provided e ^ : Γ 1 × Γ 1 &Right Arrow; Γ 2 , Used to map two elements of the first group Γ 1 to one element of the second group Γ 2 . function It is best to meet three conditions. First, the function
Figure A20081018375600233
Preferably bilinear, if both Q and R are in Γ 1 , and both a and b are integers, then e ^ ( Q , b ) = e ^ ( Q , R ) ab . Second, the function
Figure A20081018375600235
Preferably non-degenerate so that the mapping does not convert all pairs in Γ 1 × Γ 1 to identities in Γ 2 . Third, the function
Figure A20081018375600236
Preferably one that can be computed efficiently. A function that satisfies these three conditions considered feasible.

函数

Figure A20081018375600238
最好还是对称的,从而对所有的Q,R∈Γ1都有 e ^ ( Q , R ) = e ^ ( R , Q ) . 然而,对称性直接来自于双线性以及Γ1是循环群这样一个事实。可根据现有技术中已知的方法来修改与超奇异椭圆曲线以及阿贝尔簇曲线相关的Weil和Tate配对,以创建这样的双线性映射。但是,即使将第一循环群Γ1的元素称为“点”会暗示函数
Figure A200810183756002310
是一种经过修改的Weil或Tate配对,但应该注意的是,任何可行的配对
Figure A200810183756002311
都能够发挥作用。function
Figure A20081018375600238
Preferably symmetric, so that for all Q, R ∈ Γ 1 has e ^ ( Q , R ) = e ^ ( R , Q ) . However, the symmetry comes directly from bilinearity and the fact that Γ 1 is a cyclic group. The Weil and Tate pairings associated with supersingular elliptic curves and Abelian variety curves can be modified according to methods known in the art to create such bilinear maps. But even calling the elements of the first cyclic group Γ1 "points" would imply that the function
Figure A200810183756002310
is a modified Weil or Tate pairing, but it should be noted that any feasible pairing
Figure A200810183756002311
can work.

本发明中HIDE和HIDS方案的安全性主要是基于双线性Diffie-Hellman问题的。双线性Diffie-Hellman问题是在给定一个随机选取的P∈Γ1、以及aP、bP和cP(对于未知的随机选取的a,b,c∈Z/qZ)的情况下,求出的问题。在Γ1中解决Diffie-Hellman问题就解决了双线性Diffie-Hellman问题,这是因为 e ^ ( P , P ) abc = e ^ ( abP , cP ) . 类似地,在Γ2中解决Diffie-Hellman问题也就解决了双线性Diffie-Hellman问题,因为如果 g = e ^ ( P , P ) , 那么gabc=(gab)c,其中 g ab = e ^ ( aP , bP ) g c = e ^ ( P , cP ) . 为了使双线性Diffie-Hellman问题变得困难,就应该对Γ1和Γ2进行选取,使得在Γ1或Γ2中不存在能够有效地解决Diffie-Hellman问题的已知算法。The security of the HIDE and HIDS schemes in the present invention is mainly based on the bilinear Diffie-Hellman problem. The bilinear Diffie-Hellman problem is given a randomly selected P∈Γ 1 , and aP, bP and cP (for unknown randomly selected a, b, c∈Z/qZ), find The problem. Solving the Diffie-Hellman problem in Γ 1 solves the bilinear Diffie-Hellman problem because e ^ ( P , P ) abc = e ^ ( abP , CP ) . Similarly, solving the Diffie-Hellman problem in Γ 2 also solves the bilinear Diffie-Hellman problem, because if g = e ^ ( P , P ) , Then g abc = (g ab ) c , where g ab = e ^ ( aP , b ) and g c = e ^ ( P , CP ) . In order to make the bilinear Diffie-Hellman problem difficult, Γ 1 and Γ 2 should be chosen such that there is no known algorithm in Γ 1 or Γ 2 that can efficiently solve the Diffie-Hellman problem.

如果一个随机化算法IΓ采用了一个保密参数k>0、在k的多项式时间内运行、并输出两个群Γ1和Γ2的描述以及一个可行配对 e ^ : Γ 1 × Γ 1 → Γ 2 的描述,其中所述的两个群最好具有相同的素数阶q,那么该算法IΓ就是一个双线性Diffie-Hellman生成器。如果IΓ是一个双线性Diffie-Hellman参数生成器,那么一个算法B在解决双线性Diffie-Hellman问题中所拥有的优势Adv(B)就被定义为,当送入算法的输入项为Γ1、Γ2P、aP、bP和cP时,算法B输出

Figure A20081018375600246
的概率,其中是IΓ针对足够大的保密系数k的输出,P是Γ1的随机生成器,a、b和c则是Z/qZ的随机元素。双线性Diffie-Hellman问题下的假设是,Adv(B)对于所有的有效算法B都是可忽略的。If a randomization algorithm IΓ takes a secrecy parameter k > 0, runs in polynomial time of k, and outputs a description of the two groups Γ 1 and Γ 2 and a feasible pairing e ^ : Γ 1 × Γ 1 &Right Arrow; Γ 2 , where the two groups preferably have the same prime order q, then the algorithm IΓ is a bilinear Diffie-Hellman generator. If IΓ is a bilinear Diffie-Hellman parameter generator, then the advantage Adv (B) of an algorithm B in solving the bilinear Diffie-Hellman problem is defined as, when the input to the algorithm is Γ 1 , Γ 2 , When P, aP, bP and cP, algorithm B outputs
Figure A20081018375600246
probability, where is the output of IΓ for a sufficiently large confidentiality coefficient k, P is the random generator of Γ 1 , and a, b, and c are the random elements of Z/qZ. The assumption under the bilinear Diffie-Hellman problem is that Adv (B) is negligible for all efficient algorithms B.

HIDE方案HIDE program

现在参见附图,图1所示的流程图根据本发明的一种当前优选实施例展示了一种编码和解码数字消息的方法。该方法在包括多个PKG的HIDE系统中执行。所述的PKG中至少包括一个根PKG以及根PKG和接收方之间的分级结构中的n个低级PKG,其中n≥1。Referring now to the drawings, FIG. 1 is a flowchart illustrating a method of encoding and decoding digital messages in accordance with a presently preferred embodiment of the present invention. The method is performed in a HIDE system comprising multiple PKGs. The PKG includes at least one root PKG and n lower-level PKGs in the hierarchical structure between the root PKG and the recipient, where n≥1.

在模块102中,根PKG选取一个只有根PKG知道的根密钥生成密文。该根密钥生成密文可被用来为分级结构中根PKG以下的PKG和/或用户生成私有密钥。然后,在模块104中,根PKG根据根密钥生成密文产生一个根密钥生成参数。该根密钥生成参数被用来掩饰根密钥生成密文。该根密钥生成参数可被透露给低级PKG,而又不会危及根密钥生成密文。在模块106中,低级PKG选取低级密钥生成密文。与一个给定的低级PKG相关的低级密钥生成密文可被用来为分级结构中在该相关低级PKG之下的PKG和/或用户生成私有密钥。与根密钥生成密文类似,每个低级密钥生成密文仅对其相关的低级PKG已知。In module 102, the root PKG selects a root key known only by the root PKG to generate ciphertext. The root key generation ciphertext may be used to generate private keys for PKGs and/or users below the root PKG in the hierarchy. Then, in module 104, the root PKG generates a root key generation parameter according to the root key generation ciphertext. The root key generation parameters are used to mask the root key generation ciphertext. The root key generation parameters can be revealed to the lower level PKG without compromising the root key generation ciphertext. In module 106, the low-level PKG selects the low-level key to generate ciphertext. The lower-level key generation ciphertext associated with a given lower-level PKG can be used to generate private keys for PKGs and/or users below the associated lower-level PKG in the hierarchy. Similar to the root key-generating ciphertext, each lower-level key-generating ciphertext is known only to its associated lower-level PKG.

在模块108中,为n个低级PKG各自产生低级密钥生成参数。每个低级密钥生成参数的产生至少要利用其相关低级PKG的低级密钥生成密文。与根密钥生成参数类似,每个低级密钥生成参数掩饰了与其相关的低级密钥生成密文。In module 108, low-level key generation parameters are generated for each of the n low-level PKGs. The generation of each low-level key generation parameter shall at least utilize the low-level key of its associated low-level PKG to generate ciphertext. Similar to the root keygen parameters, each low-level keygen parameter masks the low-level keygen ciphertext associated with it.

在模块110中,发送方至少利用根密钥生成参数以及与接收方相关的身份信息来编码消息以形成一个密文。例如,可以只利用根密钥生成参数以及接收方的身份来编码所述的消息。或者,也可以利用低级密钥生成参数中的一个,就像在下文中将根据双HIDE方案进行更详细说明的一样。在模块112中,一个低级PKG为接收方生成一个私有密钥,使得该私有密钥至少与根密钥生成密文、与分级结构中根PKG和接收方之间的n个低级PKG相关的n个低级密钥生成密文中的一个或多个、以及接收方的身份信息相关。例如,除了根密钥生成密文和接收方的身份信息之外,接收方的私有密钥最好还至少与向接收方发放私有密钥的PKG的低级密钥生成密文相关。或者,接收方的私有密钥也可以与所有n个前辈PKG的低级密钥生成密文以及根密钥生成密文相关。在模块114中,接收方至少利用其私有密钥来解码密文并恢复消息。除了利用其私有密钥来解码以外,接收方最好还利用与分级结构中根PKG和接收方之间的n个低级PKG相关的n个低级密钥生成参数。In block 110, the sender encodes the message using at least root key generation parameters and identity information associated with the recipient to form a ciphertext. For example, the message may be encoded using only root key generation parameters and the identity of the recipient. Alternatively, one of the low-level key generation parameters can also be utilized, as will be explained in more detail below in terms of the double HIDE scheme. In module 112, a lower-level PKG generates a private key for the receiver such that the private key is at least n related to the root key-generating ciphertext, and n lower-level PKGs in the hierarchy between the root PKG and the receiver. One or more of the low-level key generation ciphertexts are associated with the recipient's identity information. For example, in addition to the root key generation ciphertext and the recipient's identity information, the recipient's private key is preferably at least related to the low-level key generation ciphertext of the PKG that issues the private key to the recipient. Alternatively, the receiver's private key can also be related to the lower-level key-generating ciphertexts of all n predecessors PKG as well as the root-key-generating ciphertext. In module 114, the recipient uses at least its private key to decode the ciphertext and recover the message. In addition to decoding using its private key, the receiver preferably also uses n lower-level key generation parameters associated with the n lower-level PKGs between the root PKG and the receiver in the hierarchy.

每个低级PKG都有一个密钥生成密文,就像根PKG一样。如上所述,低级PKG最好利用这个密文来为它的各个后代生成私有密钥,就像根PKG那样做。这样,后代的私有密钥就与低级PKG的密钥生成密文相关。即使低级PKG为了限制密钥托管(escrow)的目的而使用其密钥生成密文的修改版本来隐藏那个密文,这一点也是成立的,正如下文中将要更完整地说明的那样。同时,低级PKG不必总是使用相同的密文来进行每次私有密钥提取,而是可以为PKG的每个后代随机产生一个新的密钥生成密文,从而为每个后代得到不同的密钥生成参数。Each low-level PKG has a key generating ciphertext, just like the root PKG. As mentioned above, the low-level PKG preferably uses this ciphertext to generate private keys for its various descendants, just as the root PKG does. In this way, the private key of the descendant is related to the key-generating ciphertext of the lower-level PKG. This is true even if the lower-level PKG uses a modified version of its key-generating ciphertext to hide that ciphertext for the purpose of restricting key escrow, as will be explained more fully below. At the same time, instead of always using the same ciphertext for each private key extraction, the low-level PKG can randomly generate a new key generation ciphertext for each descendant of the PKG, thus obtaining a different key for each descendant. key generation parameters.

由于一个低级PKG能够为接收方生成一个私有密钥(模块112),因此根PKG不必自己生成所有的私有密钥。另外,由于低级PKG使用它们自己的密钥生成密文来为它们的后代产生私有密钥,因此暴露一个低级密钥生成密文只会对分级结构造成有限的安全性损害。与其暴露分级结构中所有的私有密钥,不如让一个低级PKG的一次违规行为只暴露该PKG的私有密钥以及利用那个PKG的密钥生成密文产生的那些私有密钥(即,作为被暴露PKG在分级结构中的直系后代的那些用户的私有密钥)。Since a lower-level PKG is able to generate a private key for the recipient (block 112), the root PKG does not have to generate all private keys itself. Also, since lower-level PKGs use their own key-generating ciphertexts to generate private keys for their descendants, exposing a lower-level key-generating ciphertext causes only limited security damage to the hierarchy. Rather than exposing all private keys in the hierarchy, it is better to have a single breach of a low-level PKG expose only that PKG's private keys and those produced by generating ciphertexts using that PKG's keys (i.e., as the exposed The private keys of those users who are direct descendants of the PKG in the hierarchy).

本实施例的另一个优点在于,发送方不必处在分级结构中即可向接收方发送一个编码消息。该发送方只需知道与接收方相关的身份信息以及由根PKG生成的系统参数。但是,当发送方处于分级结构中时,本发明的HIDE方案还有某些额外的优点会体现出来。例如,当发送方与接收方都处在分级结构中时,就可以通过利用双方的身份来改善消息加密的效率。这类HIDE方案可以被称为双HIDE,因为发送方与接收方的身份都被用作加密及解密算法的输入。现在将参照图2和图3来说明使用了双HIDE方案的编码与解码方法。Another advantage of this embodiment is that the sender does not have to be in a hierarchy to send an encoded message to the receiver. The sender only needs to know the identity information related to the receiver and the system parameters generated by the root PKG. However, when the sender is in a hierarchical structure, the HIDE scheme of the present invention has some additional advantages. For example, when both the sender and receiver are in a hierarchical structure, the efficiency of message encryption can be improved by utilizing the identities of both parties. This type of HIDE scheme can be called double HIDE because the identity of both the sender and receiver are used as input to the encryption and decryption algorithms. An encoding and decoding method using the double HIDE scheme will now be described with reference to FIGS. 2 and 3 .

双HIDEDouble HIDE

图2所示的流程图根据本发明的另一个当前优选实施例展示了一种在发送方y和接收方z之间编码及解码数字消息的方法。图3所示的框图展示了一种典型的分级结构,在这种结构中可以实现这种方法。与先前的实施例相似,该方法可在一个HIDE系统中实现,所述的HIDE系统中至少包括一个根PKG 302,以及根PKG 302与接收方z 308之间的分级结构中的n个低级PKG 304a,b,d,其中n≥1。该实施例中的发送方y 306必须也在分级结构中,并且该分级结构中还包括根PKG 302与发送方y 306之间的m个低级PKG 304a,b,c,其中m≥1。在根PKG 302与发送方y 306之间的m个PKG 304a,b,c,以及根PKG 302与接收方z 308之间的n个PKG 304a,b,d中,有l个PKG304a,b是发送方y 306与接收方z 308的公共前辈,其中1≤l≤m,n。例如,在图3中示出了这l个公共前辈PKG中的两个(PKGy1/PKGz1304a和PKGyl/PKGzl304b)。The flowchart shown in FIG. 2 illustrates a method of encoding and decoding a digital message between a sender y and a receiver z according to another presently preferred embodiment of the present invention. The block diagram shown in Figure 3 illustrates a typical hierarchical structure in which this approach can be implemented. Similar to the previous embodiments, the method can be implemented in a HIDE system comprising at least one root PKG 302, and n lower-level PKGs in the hierarchy between the root PKG 302 and recipient z 308 304a, b, d, where n≥1. The sender y 306 in this embodiment must also be in the hierarchy, and the hierarchy also includes m lower-level PKGs 304a,b,c between the root PKG 302 and the sender y 306, where m≧1. Of the m PKGs 304a, b, c between the root PKG 302 and the sender y 306, and the n PKGs 304a, b, d between the root PKG 302 and the receiver z 308, l PKGs 304a, b are The common predecessor of sender y 306 and receiver z 308, where 1≤l≤m,n. For example, two of these 1 common predecessor PKGs (PKG y1 /PKG z1 304a and PKG y1 /PKG z1 304b) are shown in FIG. 3 .

该实施例的方法在模块202中开始,在该模块中,根PKG 302选取一个只有根PKG 302知道的根密钥生成密文。然后,在模块204中,根PKG 302根据根密钥生成密文产生一个根密钥生成参数。在模块206中,低级PKG 304a-d选取低级密钥生成密文。与根密钥生成密文类似,每个低级密钥生成密文只对与其相关的低级PKG 304a-d已知。在模块208中,为n个低级PKG 304a-d各自产生低级密钥生成参数。每个低级密钥生成参数的产生至少要用到对应于其相关低级PKG 304a-d的低级密钥生成密文。The method of this embodiment begins in block 202, where the root PKG 302 selects a root key known only to the root PKG 302 to generate a ciphertext. Then, in module 204, the root PKG 302 generates a root key generation parameter according to the root key generation ciphertext. In block 206, the low-level PKG 304a-d selects the low-level key to generate ciphertext. Similar to the root key-generating ciphertext, each lower-level key-generating ciphertext is known only to its associated lower-level PKG 304a-d. In block 208, low-level key generation parameters are generated for each of the n low-level PKGs 304a-d. Each low-level keygen parameter is generated using at least the low-level keygen ciphertext corresponding to its associated low-level PKG 304a-d.

在模块210中,发送方的上代PKGym 304c为发送方y 306生成一个私有密钥,使得该私有密钥至少与根密钥生成密文、与根PKG302和发送方y 306之间的m个低级PKG 304a,b,c相关的m个低级密钥生成密文中的一个或多个、以及发送方的身份信息相关。例如,除了根密钥生成密文和发送方的身份信息以外,发送方的私有密钥最好至少还与发送方的上代PKGym 304c的低级密钥生成密文相关。或者,发送方的私有密钥也可以与它所有m个直系前辈PKG的低级密钥生成密文以及根密钥生成密文相关。在模块212中,接收方的上代PKGzn304d为接收方z生成一个私有密钥,生成的方式与发送方的上代PKGym304c用来生成发送方私有密钥的方式类似。In module 210, the parent PKG ym 304c of the sender generates a private key for the sender y 306, so that the private key is at least the same as the root key to generate the ciphertext, and the m number between the root PKG 302 and the sender y 306 One or more of the m low-level key generation ciphertexts related to the low-level PKG 304a, b, c are related to the sender's identity information. For example, in addition to the root key generation ciphertext and the sender's identity information, the sender's private key is preferably at least related to the low-level key generation ciphertext of the sender's previous generation PKG ym 304c. Alternatively, the sender's private key can also be related to the low-level keygenerating ciphertexts of all its m immediate predecessors PKG as well as the root keygenerating ciphertext. In block 212, the recipient's parent PKG zn 304d generates a private key for recipient z in a manner similar to that used by the sender's parent PKG ym 304c to generate the sender's private key.

在模块214中,发送方y编码消息以形成一个密文,该过程至少要用到发送方的私有密钥以及与根PKG 302和发送方y 306之间的(m-l+1)个PKG(即,PKGyl 304b和PKGym 304c)相关的低级密钥生成参数中的一个或多个,且所述的PKG位于发送方y 306和接收方z308的最低级公共前辈PKG(PKGyl/PKGzl 304b)的级别或低于该级别。在对消息进行编码时,发送方y 306最好不要用到与高于最低级公共前辈PKG(PKGyl/PKGzl 304b)的(l-1)个PKG(即PKGy1 304a)有关的任何低级密钥生成参数。In block 214, sender y encodes the message to form a ciphertext using at least the sender's private key and (m-l+1) PKGs between root PKG 302 and sender y 306 (i.e., PKG yl 304b and PKG ym 304c) one or more of the relevant low-level key generation parameters, and said PKG is located at the lowest level common predecessor PKG of sender y 306 and receiver z 308 (PKG yl /PKG zl 304b) or below. When encoding the message, sender y 306 preferably does not use any lower-level Key generation parameters.

然后,在模块216中,接收方z 308解码密文以恢复出所述的消息,该过程至少要用到接收方的私有密钥以及与根PKG 302和接收方z 308之间的(n-l+1)个PKG(即,PKGzl 304b和PKGzn 304c)相关的低级密钥生成参数中的一个或多个,且所述的PKG位于发送方y 306和接收方z 308的最低级公共前辈PKG(PKGyl/PKGzl 304b)的级别或低于该级别。在对消息进行解码时,接收方z 308最好不要用到与高于最低级公共前辈PKG(PKGyl/PKGzl 304b)的(l-1)个PKG(即PKGz1304a)有关的任何低级密钥生成参数。Then, in block 216, recipient z 308 decodes the ciphertext to recover said message using at least the recipient's private key and the (n- One or more of the low-level key generation parameters associated with 1+1) PKGs (i.e., PKG zl 304b and PKG zn 304c), and said PKG is located at the lowest level common to sender y 306 and receiver z 308 Senior PKG (PKG yl /PKG zl 304b) level or lower. When decoding the message , receiver z 308 preferably does not use any lower-level Key generation parameters.

本发明的这种双HIDE实施例提供了对消息进行编码和解码的更为高效的方案,因为只需使用较少的密钥生成参数。例如,普通HIDE方案中的解码大约需要所有的n个密钥生成参数,但是在双HIDE方案中的解码只需要(n-l+1)个密钥生成参数。双HIDE方案要求发送方y 306在向接收方z 308发送一条编码消息之前先获得它的私有密钥,这与只需获得根PKG的公共系统参数相反。双HIDE方案还使得发送方y 306和接收方z 308能够限制密钥托管的范围,就如下文中将要更完整说明的那样。这个共享的密文是除了它们最低级公共前辈PKGyl/PKGzl 304b以外的第三方所不知道的。This double HIDE embodiment of the present invention provides a more efficient scheme for encoding and decoding messages, since fewer key generation parameters need to be used. For example, decoding in a normal HIDE scheme requires approximately all n key generation parameters, but decoding in a double HIDE scheme requires only (n-l+1) key generation parameters. The double HIDE scheme requires sender y 306 to obtain its private key before sending an encoded message to receiver z 308, as opposed to only obtaining the public system parameter of the root PKG. The double HIDE scheme also enables sender y 306 and receiver z 308 to limit the scope of key escrow, as will be explained more fully below. This shared ciphertext is unknown to third parties other than their lowest public predecessor, PKG yl /PKG zl 304b.

基本HIDEBasic HIDE

图4所示的流程图根据本发明的另一个当前优选实施例展示了一种编码和解码一条数字消息M的方法,所述的数字消息在发送方y和接收方z之间传递。如图3中所示,接收方z 308在分级结构中比根PKG低n+1个级别,并且与ID元组(IDz1,...,IDz(n+1))相关联。接收方的ID元组中包括与接收方有关的身份信息IDz(n+1),以及与其在分级结构中的n个前辈低级PKG相关的身份信息IDzi。该方法在模块402中开始,在该模块中生成元素的第一与第二循环群Γ1和Γ2。在模块404中,选取一个函数

Figure A20081018375600281
使得该函数
Figure A20081018375600282
能够由第一循环群Γ1的两个元素生成第二循环群Γ2的一个元素。函数最好是一种可行的配对,如上所述。在模块406中选取第一循环群Γ1的一个根生成器P0。在模块408中,选取一个随机根密钥生成密文s0,该密文与根PKG 302相关且只有根PKG 302知道。s0最好是循环群Z/qZ的一个元素。在模块410中产生一个根密钥生成参数Q0=s0P0。Q0最好是第一循环群Γ1的一个元素。在模块412中,选取一个第一函数H1,使得H1能够由第一串二进制数生成第一循环群Γ1的一个元素。在模块414中选取一个第二函数H2,使得H2能够由第二循环群Γ2的一个元素生成第二串二进制数。模块402至414的功能都是上述HIDE根设置算法的组成部分,并且最好都在大致相同的时刻完成。作为示例,比如那些在Boneh-Franklin中公开的函数就可以被用作H1和H2。The flowchart shown in FIG. 4 illustrates a method of encoding and decoding a digital message M communicated between a sender y and a receiver z, according to another presently preferred embodiment of the present invention. As shown in FIG. 3, recipient z 308 is n+1 levels below the root PKG in the hierarchy and is associated with ID tuples (ID z1 , . . . , ID z(n+1) ). The receiver's ID tuple includes identity information ID z(n+1) related to the receiver, and identity information ID zi related to its n predecessors and low-level PKGs in the hierarchical structure. The method starts in block 402 where first and second cyclic groups Γ 1 and Γ 2 of elements are generated. In block 404, select a function
Figure A20081018375600281
makes the function
Figure A20081018375600282
One element of the second cyclic group Γ 2 can be generated from two elements of the first cyclic group Γ 1 . function Preferably a viable pairing, as described above. In block 406 a root generator P 0 of the first cyclic group Γ 1 is selected. In block 408, a random root key is chosen to generate a ciphertext s 0 , which is associated with the root PKG 302 and known only to the root PKG 302 . s 0 is preferably an element of the cyclic group Z/qZ. In block 410 a root key generation parameter Q 0 =s 0 P 0 is generated. Q 0 is preferably an element of the first cyclic group Γ 1 . In module 412, a first function H 1 is selected such that H 1 can generate an element of the first cyclic group Γ 1 from the first string of binary numbers. In module 414, a second function H 2 is selected such that H 2 can generate a second string of binary numbers from an element of the second cyclic group Γ 2 . The functions of blocks 402 through 414 are all integral to the HIDE root setup algorithm described above, and preferably all complete at approximately the same time. As an example, functions such as those disclosed in Boneh-Franklin can be used as H1 and H2 .

接下来的一系列模块(模块416至424)示出了作为低级设置算法的组成部分而执行的功能。在模块416中,为接收方的n个前辈低级PKG各生成一个公共元素Pzi。每个公共元素Pzi=H1(ID1,...,IDzi)最好都是第一循环群Γ1的一个元素,其中1≤i≤n。尽管是以单个模块表示的,但是所有公共元素Pzi的产生需要进行一段时间,而非一次全部完成。The next series of blocks (blocks 416 to 424) illustrate the functions performed as part of the low-level setup algorithm. In module 416, a common element P zi is generated for each of the n predecessor low-level PKGs of the receiver. Each common element P zi =H 1 (ID 1 , . . . , ID zi ) is preferably an element of the first cyclic group Γ 1 , where 1≤i≤n. Although represented by a single module, the generation of all common elements P zi needs to be performed for a period of time instead of being completed all at once.

为接收方的n个前辈低级PKG 304a,b,d各选取一个低级密钥生成密文szi(模块418)。该低级密钥生成密文szi最好是循环群Z/qZ的元素,其中1≤i≤n,并且每个低级密钥生成密文szi最好只有它相关的低级PKG知道。同样,尽管是以单个模块表示,但是所有低级密钥生成密文szi的选取需要进行一段时间,而非一次全部完成。Select a low-level key for each of the n predecessors low-level PKG 304a, b, d of the receiver to generate ciphertext s zi (block 418). The lower-level key-generating ciphertexts szi are preferably elements of the cyclic group Z/qZ, where 1≤i≤n, and each lower-level key-generating ciphertext szi is preferably known only to its associated lower-level PKG. Similarly, although it is represented by a single module, the selection of all low-level key generation ciphertexts zi needs to be performed for a period of time instead of being completed all at once.

为发送方的n个前辈低级PKG各生成一个低级机密元素Szi(模块420)。每个低级机密元素Szi=Sz(i-1)+sz(i-1)Pzi最好是第一循环群Γ1的一个元素,其中1≤i≤n。尽管与公共元素Pzi以及密文szi一样都是以单个模块表示的,但是所有机密元素Szi的产生也需要进行一段时间,而非一次全部完成。为了这些重复的密钥生成过程的缘故,可将S0定为Γ1的身份元素。One low-level secret element S zi is generated for each of the sender's n predecessor low-level PKGs (block 420 ). Each low-level secret element S zi = S z(i-1) + s z(i-1) P zi is preferably an element of the first cyclic group Γ 1 , where 1≤i≤n. Although it is represented by a single module like the public element P zi and the ciphertext s zi , the generation of all the secret elements S zi also needs to be done for a period of time instead of being completed all at once. For the sake of these repeated key generation processes, S 0 may be defined as the identity element of Γ 1 .

还要为接收方的n个前辈低级PKG各产生一个低级密钥生成参数Qzi(模块422)。每个密钥生成参数Qzi=sziP0最好都是第一循环群Γ1的元素,其中1≤i≤n。同样,尽管以单个模块表示,但是所有密钥生成参数Qzi的产生也需要进行一段时间,而非一次全部完成。A low-level key generation parameter Q zi is also generated for each of the receiver's n predecessors low-level PKGs (block 422 ). Each key generation parameter Q zi =s zi P 0 is preferably an element of the first cyclic group Γ 1 , where 1≤i≤n. Similarly, although represented by a single module, the generation of all key generation parameters Q zi also needs to be performed for a period of time instead of being completed all at once.

随后两个模块(模块424和426)的功能是作为上述抽取算法的一部分而执行的。在模块424中生成与接收方z相关的接收方公共元素Pz(n+1)。该接收方公共元素,Pz(n+1)=H1(IDz1,...IDz(n+1)),最好是第一循环群Γ1的一个元素。然后在模块426中生成与接收方z有关的接收方机密元素Sz(n+1)。该接收方机密元素, S z ( n + 1 ) = S zn + s zn P z ( n + 1 ) = Σ i = 1 n + 1 s z ( i - 1 ) P zi , 最好也是第一循环群Γ1的一个元素。The functions of the next two blocks (blocks 424 and 426) are performed as part of the decimation algorithm described above. In block 424 a receiver common element P z(n+1) related to receiver z is generated. The recipient common element, P z(n+1) =H 1 (ID z1 , . . . ID z(n+1) ), is preferably an element of the first cyclic group Γ 1 . Then in block 426 a recipient secret element S z(n+1) related to recipient z is generated. the recipient secret element, S z ( no + 1 ) = S zn + the s zn P z ( no + 1 ) = Σ i = 1 no + 1 the s z ( i - 1 ) P the zi , Preferably also an element of the first cyclic group Γ1 .

为方便起见,第一函数H1可被选为一种迭代函数,从而可以按照例如H1(Pz(i-1),IDzi)而非H1(ID1,...IDzi)来计算公共点PiFor convenience, the first function H 1 can be chosen as an iterative function, so that for example H 1 (P z(i-1) , ID zi ) instead of H 1 (ID 1 , . . . ID zi ) to calculate the common point P i .

图4中所示的最后两个模块(模块428和430)代表了上述的加密与解密算法。在模块428中,消息M被编码以生成一个加密文本C。该编码过程最好至少用到根密钥生成参数Q0以及ID元组(IDz1,...IDz(n+1))。然后在模块430中解码加密文本C以恢复消息M。该解码过程最好至少用到低级密钥生成参数Qzi以及接收方机密元素Sz(n+1),其中1≤i≤n。The last two blocks shown in Figure 4 (blocks 428 and 430) represent the encryption and decryption algorithms described above. In block 428, the message M is encoded to generate a ciphertext C. The encoding process preferably uses at least root key generation parameter Q 0 and ID tuples (ID z1 , . . . ID z(n+1) ). The encrypted text C is then decoded to recover the message M in block 430 . The decoding process preferably uses at least the low-level key generation parameters Q zi and the receiver secret element S z(n+1) , where 1≤i≤n.

图4中所示的模块不必完全顺次出现。例如,一个知道接收方身份的发送方可以在接收方获得私有密钥之前对通信进行加密。The modules shown in Figure 4 do not have to appear in exact sequence. For example, a sender who knows the identity of the receiver can encrypt the communication before the receiver has the private key.

现在将参照图5和图6,来详细说明在对消息M及密文C进行编码和解码中所提到的参数及元素的具体运用。图5所示的流程图根据本发明的另一个当前优选实施例展示了一种编码和解码一条数字消息M的方法,所述的数字消息在发送方y和接收方z之间传递。在这个被称为基本HIDE的方案中,根设置、低级设置以及抽取算法都与图4中模块402至426所示的实施例相同。图5所示的流程图展示了加密与解密算法,它在模块528a中从选取一个随机加密参数r开始。r最好是循环群Z/qZ中的一个整数。然后在模块528b中利用公式C=[U0,U2,...,Un+1,V]生成加密文本C。该加密文本C中包括元素Ui=rPzi,其中i=0和2≤i≤n+1,这些元素与接收方在分级结构中的位置有关。加密文本C的其他组成部分是加密形式的实际消息, V = M ⊕ H 2 ( g r ) , 其中 g = e ^ ( Q 0 , P z 1 ) . 元素g最好是第二循环群Γ2的成员。在消息被编码之后,可以根据基本HIDE解密算法对其进行解密,在该解密算法中利用公式 M = V ⊕ H 2 ( e ^ ( U 0 , S n + 1 ) Π i = 2 n + 1 e ^ ( Q i - 1 , U i ) ) , 从加密文本C中恢复出消息M(模块530)。Now, referring to FIG. 5 and FIG. 6, the specific application of the parameters and elements mentioned in the encoding and decoding of the message M and the ciphertext C will be described in detail. The flowchart shown in FIG. 5 illustrates a method of encoding and decoding a digital message M communicated between a sender y and a receiver z, according to another presently preferred embodiment of the present invention. In this scheme, called Basic HIDE, the root setup, low-level setup, and decimation algorithm are all the same as in the embodiment shown in blocks 402 to 426 in FIG. 4 . The flow diagram shown in Figure 5 illustrates the encryption and decryption algorithm, which begins in block 528a with the selection of a random encryption parameter r. r is preferably an integer in the cyclic group Z/qZ. Then in module 528b, the encrypted text C is generated by using the formula C=[U 0 , U 2 , . . . , U n+1 , V]. The encrypted text C includes elements U i =rP zi , where i=0 and 2≤i≤n+1, and these elements are related to the position of the receiver in the hierarchical structure. The other components of the ciphertext C are the actual message in encrypted form, V = m ⊕ h 2 ( g r ) , in g = e ^ ( Q 0 , P z 1 ) . Element g is preferably a member of the second cyclic group Γ2 . After the message is encoded, it can be decrypted according to the basic HIDE decryption algorithm in which the formula m = V ⊕ h 2 ( e ^ ( u 0 , S no + 1 ) Π i = 2 no + 1 e ^ ( Q i - 1 , u i ) ) , The message M is recovered from the encrypted text C (block 530).

全HIDEFull HIDE

利用已知的方法来使得单向加密方案具有针对选定加密文本攻击的安全性,可以将基本HIDE方案转换为全HIDE方案,后者在随机预言模型中具有选定加密文本安全性。现在将参照图6来说明一种具有选定密文安全性的全HIDE方案。Using known methods to make one-way encryption schemes secure against chosen ciphertext attacks, the basic HIDE scheme can be transformed into a full HIDE scheme with chosen ciphertext security in the random oracle model. A full HIDE scheme with selected ciphertext security will now be described with reference to FIG. 6 .

图6所示的流程图根据本发明的另一个当前优选实施例展示了一种编码和解码一条数字消息M的方法,所述的数字消息在发送方y和接收方z之间传递。在本发明的该实施例中,根设置、低级设置以及抽取算法都与参照图4所述的实施例相同,只是该实施例的根设置算法需要两个额外的函数。因此,图6所示的流程图从额外函数(模块615a和615b)的选择开始,并继续进行加密与解密算法(模块628a至630d)。The flowchart shown in FIG. 6 illustrates a method of encoding and decoding a digital message M communicated between a sender y and a receiver z, according to another presently preferred embodiment of the present invention. In this embodiment of the invention, the root setup, low-level setup, and decimation algorithm are the same as the embodiment described with reference to FIG. 4, except that the root setup algorithm of this embodiment requires two additional functions. Thus, the flowchart shown in Figure 6 begins with the selection of additional functions (blocks 615a and 615b) and continues with the encryption and decryption algorithms (blocks 628a to 630d).

通过选择一个第三函数H3(模块615a)和一个第四函数H4(模块615b)来完成根设置算法。第三函数H3最好能够由两串二进制数产生循环群Z/qZ的一个整数。第四函数H4最好能够由另一个二进制串产生一个二进制串。The root setting algorithm is completed by selecting a third function H3 (block 615a) and a fourth function H4 (block 615b). The third function H3 is preferably capable of generating an integer of the cyclic group Z/qZ from two strings of binary numbers. The fourth function H4 is preferably capable of generating a binary string from another binary string.

加密算法从模块628a开始,该模块示出了随机二进制串σ的选取。然后,该随机二进制串σ被用来生成一个随机整数r=H3(σ,M,W),如模块628b所示。其中W是实际消息M的对称加密。该加密最好是利用对称加密算法E生成的,并用H4(σ)作为加密密钥。相应的, W = E H 4 ( s ) ( M ) . 在模块628c中,生成加密文本C=[U0,U2,...,Un+1,V,W]。该密文C中包括元素Ui=rPzi,其中i=0和2≤i≤n+1,其与接收方在分级结构中的位置有关。加密文本C的第二个组成部分是加密形式的随机二进制串σ, V = σ ⊕ H 2 ( g r ) , 其中 g = e ^ ( Q 0 , P z 1 ) . 元素g最好是第二循环群Γ2的成员。加密文本C的第三个组成部分是W,如上所述,它是对称加密形式的实际消息。The encryption algorithm begins at block 628a, which shows the selection of a random binary string σ. Then, the random binary string σ is used to generate a random integer r=H 3 (σ, M, W), as shown in block 628b. where W is the symmetric encryption of the actual message M. The encryption is preferably generated using a symmetric encryption algorithm E with H 4 (σ) as the encryption key. corresponding, W = E. h 4 ( the s ) ( m ) . In block 628c, the encrypted text C=[U 0 , U 2 , . . . , U n+1 , V, W] is generated. The ciphertext C includes elements U i =rP zi , where i=0 and 2≤i≤n+1, which are related to the receiver's position in the hierarchical structure. The second component of the ciphertext C is the encrypted form of the random binary string σ, V = σ ⊕ h 2 ( g r ) , in g = e ^ ( Q 0 , P z 1 ) . Element g is preferably a member of the second cyclic group Γ2 . The third component of the ciphertext C is W, which, as mentioned above, is the actual message in symmetric encrypted form.

解密算法从模块630a开始,该模块示出了随机二进制串σ的恢复。随机二进制串σ是利用公式 s = V ⊕ H 2 ( e ^ ( U 0 , S n + 1 ) Π i = 2 n + 1 e ^ ( Q i - 1 , U i ) ) 恢复的。然后利用公式 M = E H 4 ( s ) - 1 ( W ) 从密文C中恢复出消息M(模块630b)。可对加密文本进行检查,以检验内部一致性。例如,可以生成一个实验性的随机整数r′=H3(σ,M,W),如模块630c中所示。然后,就可以在模块630d中利用该实验性的随机整数r′来检验U0=r′P0及Ui=r′Pzi,其中2≤i≤n+1。如果成立,则可认为加密文本C是真实的。The decryption algorithm starts at block 630a, which shows the recovery of the random binary string σ. The random binary string σ is obtained using the formula the s = V ⊕ h 2 ( e ^ ( u 0 , S no + 1 ) Π i = 2 no + 1 e ^ ( Q i - 1 , u i ) ) restored. Then use the formula m = E. h 4 ( the s ) - 1 ( W ) Message M is recovered from ciphertext C (block 630b). Encrypted text can be checked to verify internal consistency. For example, an experimental random integer r'= H3 (σ, M, W) may be generated, as shown in block 630c. Then, U 0 =r'P 0 and U i =r'P zi can be checked using the experimental random integer r' in block 630d, where 2≤i≤n+1. If established, the encrypted text C can be considered as authentic.

双基本HIDE与双全HIDEDual Basic HIDE and Dual Full HIDE

参照图2和图3所述的双HIDE概念可被应用于基本HIDE和全HIDE方案。当发送方与接收方都处在分级结构中时,如图3所示,双HIDE就能令它们提高它们的加密通信的效率与安全性。对基本HIDE和全HIDE方案应用双HIDE需要决定附加信息,这些信息大多是通过上述的低级设置算法决定的。例如,必须为发送方的m个前辈低级PKG决定公共元素Pyi、低级密钥生成密文syi、低级机密元素Syi以及低级密钥生成参数Qyi。但是要注意,对于作为发送方y和接收方z的公共前辈的低级PKG来说,这些参数最好相同,以便对发送方y和接收方z进行分析(也就是说,对于所有的i≤l最好有:Pyi=Pzi,syi=szi,Syi=Szi以及Qyi=Qzi)。双HIDE还需要为发送方决定一个发送方公共元素Py(m+1)和一个发送方机密元素Sy(m+1),使用的方法与上述为接收方决定这些参数时所用的方法相同。The dual HIDE concept described with reference to FIGS. 2 and 3 can be applied to basic HIDE and full HIDE schemes. When both the sender and the receiver are in a hierarchical structure, as shown in Figure 3, double HIDE enables them to improve the efficiency and security of their encrypted communication. Applying double HIDE to basic HIDE and full HIDE schemes requires determining additional information, mostly through the low-level setup algorithm described above. For example, a common element P yi , a low-level key generation ciphertext s yi , a low-level secret element S yi , and a low-level key generation parameter Q yi must be decided for m predecessors low-level PKGs of the sender. Note, however, that these parameters are preferably the same for the low-level PKG that is the common predecessor of sender y and receiver z, so that the analysis is performed on sender y and receiver z (that is, for all i ≤ l Preferably there are: P yi =P zi , s yi =s zi , S yi =S zi and Q yi =Q zi ). Double HIDE also requires determining a sender public element P y(m+1) and a sender secret element S y(m+1) for the sender, using the same method as described above for determining these parameters for the receiver .

有了这些附加参数,就可以根据双HIDE原理对消息M进行编码以生成一个加密文本C,编码的过程要利用低级密钥生成参数Qyi(其中i≥l)以及发送方机密元素Sy(m+1),但是不会用到i<l的低级密钥生成参数Qyi。类似地,对加密文本C解码以恢复消息M时要利用低级密钥生成参数Qyi(其中i≥l)以及接收方机密元素Sz(n+1),但是不会用到i<l的低级密钥生成参数QziWith these additional parameters, the message M can be encoded according to the double-HIDE principle to generate an encrypted text C. The encoding process uses the low-level key generation parameters Q yi (where i≥l) and the sender’s secret element S y ( m+1) , but the low-level key generation parameter Q yi with i<l will not be used. Similarly, low-level key generation parameters Q yi (where i ≥ l) and receiver secret element S z(n+1) are used when decoding the encrypted text C to recover the message M, but i<l is not used. Low-level key generation parameters Q zi .

例如,在基本HIDE方案中(图4与图5),双HIDE的应用改变了消息M的编码以生成一个密文C=[U0,Ul+1,...,Un+1,V],其中对于i=0和l+1≤i≤n+1,有Ui=rPzi,其中 V = M &CirclePlus; H 2 ( g yl r ) , 并且其中 g yl = e ^ ( P 0 , S y ( m + 1 ) ) &Pi; i = l + 1 m + 1 e ^ ( Q y ( i - 1 ) , P yi ) . Ui因子的计算与以前相同,但是只需计算其中的少部分。然而,双基本HIDE要求发送方y使用多于上述生成g所必需的密钥生成参数Qyi来生成gyl。这是因为发送方的身份被包含到加密算法中了。For example, in the basic HIDE scheme (Fig. 4 and Fig. 5), the application of double HIDE changes the encoding of the message M to generate a ciphertext C=[U 0 , U l+1 , . . . , U n+1 , V], where for i=0 and l+1≤i≤n+1, U i =rP zi , where V = m &CirclePlus; h 2 ( g yl r ) , and among them g yl = e ^ ( P 0 , S the y ( m + 1 ) ) &Pi; i = l + 1 m + 1 e ^ ( Q the y ( i - 1 ) , P yi ) . The calculation of the U i factor is the same as before, but only a small part of it needs to be calculated. However, double basic HIDE requires sender y to generate g yl using more key generation parameters Q yi than are necessary to generate g as described above. This is because the identity of the sender is included in the encryption algorithm.

解密算法的效率提高更为惊人。消息M是利用The efficiency improvement of the decryption algorithm is even more astonishing. Message M is exploited

M = V &CirclePlus; H 2 ( e ^ ( U 0 , S z ( n + 1 ) ) &Pi; i = l + 1 n + 1 e ^ ( Q z ( i - 1 ) , U zi ) ) 恢复的。同样,还是只需要较少的Ui参数。类似地,接收方需要用于双HIDE的密钥生成参数Qzi比其他情况下所必需的要少。 m = V &CirclePlus; h 2 ( e ^ ( u 0 , S z ( no + 1 ) ) &Pi; i = l + 1 no + 1 e ^ ( Q z ( i - 1 ) , u the zi ) ) restored. Again, fewer U i parameters are required. Similarly, the receiver needs fewer key generation parameters Q zi for double HIDE than would otherwise be necessary.

全HIDE也可以被修改以创建一种双全HIDE方案。加密算法中加密文本C的生成被修改为C=[U0,Ul+1,...,Un+1,V,W],其中对于i=0和l+1≤i≤n+1,有Ui=rPzi。参数W和r仍然以同样的方法生成, W = E H 4 ( s ) ( M ) , 并且 V = &sigma; &CirclePlus; H 2 ( g yl r ) 中的参数 g yl = e ^ ( P 0 , S y ( m + 1 ) ) &Pi; i = l + 1 m + 1 e ^ ( Q y ( i - 1 ) , P yi ) . Full HIDE can also be modified to create a dual full HIDE scheme. The generation of encrypted text C in the encryption algorithm is modified as C=[U 0 , U l+1 ,..., U n+1 , V, W], where for i=0 and l+1≤i≤n+ 1. There is U i =rP zi . The parameters W and r are still generated in the same way, W = E. h 4 ( the s ) ( m ) , and V = &sigma; &CirclePlus; h 2 ( g yl r ) parameters in g yl = e ^ ( P 0 , S the y ( m + 1 ) ) &Pi; i = l + 1 m + 1 e ^ ( Q the y ( i - 1 ) , P yi ) .

在双全HIDE方案中,解密算法也被修改。随机二进制串σ是利用 &sigma; = V &CirclePlus; H 2 ( e ^ ( U 0 , S z ( n + 1 ) ) &Pi; i = l + 1 n + 1 e ^ ( Q z ( i - 1 ) , U zi ) ) 恢复的。另外,消息M的恢复不变。In the double full HIDE scheme, the decryption algorithm is also modified. The random binary string σ is exploited &sigma; = V &CirclePlus; h 2 ( e ^ ( u 0 , S z ( no + 1 ) ) &Pi; i = l + 1 no + 1 e ^ ( Q z ( i - 1 ) , u the zi ) ) restored. In addition, the recovery of message M is unchanged.

尽管已经用PKGl 304b作为发送方y与接收方z的最低公共前辈PKG说明了这些双HIDE方案,但是PKGl 304b可以是任意的公共前辈PKG。加密与解密算法是相同的。但是为了获得最高的效率,PKGl 304b最好是最低公共前辈PKG。Although these dual HIDE schemes have been illustrated with PKG 1 304b as the lowest common predecessor PKG of sender y and receiver z, PKG 1 304b can be any common predecessor PKG. Encryption and decryption algorithms are the same. But for highest efficiency, PKG l 304b is preferably the lowest common predecessor PKG.

除了效率的提高以外,本发明的双HIDE方案还通过限制密钥托管提供了更高的安全性。在上述的基本HIDE和全HIDE方案中,接收方的所有直系前辈PKG都能解密发给接收方的消息。但是,由于双HIDE方案加入了PKGl-1(PKGl的直接上代)的密钥生成密文,该密文对于PKGl-1以上的公共前辈PKG是未知的,因此那些公共前辈PKG就不能解密发送方y与接收方z之间的消息。In addition to the increased efficiency, the double HIDE scheme of the present invention provides greater security by limiting key escrow. In the Basic HIDE and Full HIDE schemes described above, all PKGs of the receiver's immediate predecessors are able to decrypt messages addressed to the receiver. However, since the double HIDE scheme adds the key generation ciphertext of PKG 1-1 (the direct predecessor of PKG 1), the ciphertext is unknown to the public predecessor PKG above PKG 1-1 , so those public predecessor PKGs cannot Decrypt messages between sender y and receiver z.

密钥托管可被进一步限制,从而即使是PKGl的直接上代也不能解密发送方y与接收方z之间的消息。这一点可以通过在为发送方y和接收方z生成私有密钥(或是为PKGl的后代同时又是发送方y与接收方z的前辈的PKG生成私有密钥)的过程中隐藏PKGl的私有密钥来实现。例如,对于某些随机的b∈Z/qZ,PKGl 304b可以通过设置S′l:=Sl+bPl和Q′l-1:=Ql-1+bP0而轻易地改变其私有密钥。新的私有密钥S′l同样有效,但是却不为PKGl的直接上代所知。因此,PKGl以上的PKG都不能对加密发送给接收方z的消息进行解码。更具体地说,只有接收方z在PKGl的域内的前辈才能够解密发送给接收方z的消息。Key escrow can be further restricted so that even PKG 1 's immediate ancestors cannot decrypt messages between sender y and receiver z. This can be done by hiding PKG l in the process of generating private keys for sender y and receiver z (or for a PKG that is a descendant of PKG l and is also a predecessor of sender y and receiver z) of the private key. For example, for some random b∈Z/qZ , PKG l 304b can easily change its private key. The new private key S'l is also valid, but not known to the immediate parent of PKGl . Therefore, no PKG above PKG l can decode an encrypted message sent to receiver z. More specifically, only recipient z's predecessors within the domain of PKG 1 are able to decrypt messages sent to recipient z.

当PKGl 304b通过设置S′l:=Sl+bPl和Q′l-1:=Ql-1+bP0来改变其私有密钥时,新的私有密钥仍然与PKGl-1的密钥生成密文sl-1相关,因为新的私有密钥是从一个由PKGl-1利用sl-1生成的私有密钥推得的。一般而言,在本文所讨论的所有方案中,一个用户或PKG可以通过选取bi的值(其中1≤i≤n)并设置 S &prime; z ( n + 1 ) : = S z ( n + 1 ) + &Sigma; i = 1 n b i P z ( i + 1 ) 和Q′zi:=Qzi+biP0(其中1≤i≤n),来改变它自己的机密元素Sz(n+1)和密钥生成参数Qzi(其中1≤i≤n)。然而,为了本发明的目的,这种新的私有密钥仍然被认为与原始的私有密钥有关,从而也和密钥生成密文szi的初始值有关。When PKG 1 304b changes its private key by setting S' 1 := S 1 + bP 1 and Q' 1-1 := Q 1-1 + bP 0 , the new private key is still the same as PKG 1-1 The key generation ciphertext s l-1 is related because the new private key is derived from a private key generated by PKG l-1 using s l-1 . In general, in all the schemes discussed in this paper, a user or PKG can be selected by choosing the value of b i (where 1≤i≤n) and setting S &prime; z ( no + 1 ) : = S z ( no + 1 ) + &Sigma; i = 1 no b i P z ( i + 1 ) and Q′ zi :=Q zi +b i P 0 (where 1≤i≤n), to change its own secret element S z(n+1) and key generation parameter Q zi (where 1≤i≤n ). However, for the purposes of the present invention, this new private key is still considered to be related to the original private key and thus also to the initial value of the key generating ciphertext s zi .

具有更高效的加密解密技术的双HIDE方案Double HIDE scheme with more efficient encryption and decryption technology

在上述的双HIDE方案中,可以将加密器必须计算的配对值的数量减少一个,而又不会提高解密器必须计算的配对值的数量。例如,上述的双基本HIDE加密算法可以被修改,从而密文In the double HIDE scheme described above, it is possible to reduce the number of pairing values that the encryptor has to compute by one without increasing the number of pairing values that the decryptor has to compute. For example, the double base HIDE encryption algorithm described above can be modified so that the ciphertext

C = [ P 0 , r ( P y ( l + 1 ) - P z ( l + 1 ) ) , r P z ( l + 2 ) , K , r P z ( n + 1 ) , M &CirclePlus; H 2 ( g y ( l + 1 ) r ) ] , 其中 C = [ P 0 , r ( P the y ( l + 1 ) - P z ( l + 1 ) ) , r P z ( l + 2 ) , K , r P z ( no + 1 ) , m &CirclePlus; h 2 ( g the y ( l + 1 ) r ) ] , in

g y ( l + 1 ) = e ^ ( P 0 , S y ( n + 1 ) ) &Pi; i = l + 2 m e ^ ( Q y ( i - 1 ) , P yi ) = e ^ ( P 0 , S y ( l + 1 ) ) . 如果密文被表示为 g the y ( l + 1 ) = e ^ ( P 0 , S the y ( no + 1 ) ) &Pi; i = l + 2 m e ^ ( Q the y ( i - 1 ) , P yi ) = e ^ ( P 0 , S the y ( l + 1 ) ) . If the ciphertext is expressed as

C=[U0,Ul+1,K,Un+1,V],那么就可以利用 M = V &CirclePlus; H 2 [ e ^ ( U 0 , S z ( n + 1 ) ) e ^ ( U l + 1 , Q zl ) &Pi; i = l + 2 n e ^ ( Q z ( i - 1 ) , U i ) ] 来对其进行解密。C=[U 0 , U l+1 , K, U n+1 , V], then you can use m = V &CirclePlus; h 2 [ e ^ ( u 0 , S z ( no + 1 ) ) e ^ ( u l + 1 , Q zl ) &Pi; i = l + 2 no e ^ ( Q z ( i - 1 ) , u i ) ] to decrypt it.

同样地,也可以将解密器必须计算的配对值的数量减少一个,而又不会提高加密器必须计算的值的数量。例如,双基本HIDE加密算法可以被修改,从而密文 C = [ P 0 , r P y ( l + 2 ) , K , r P y ( n ) , M &CirclePlus; H 2 ( g z ( l + 1 ) r ) ] , 其中Likewise, it is also possible to reduce the number of paired values the decryptor must compute by one without increasing the number of values the encryptor must compute. For example, the double base HIDE encryption algorithm can be modified so that the ciphertext C = [ P 0 , r P the y ( l + 2 ) , K , r P the y ( no ) , m &CirclePlus; h 2 ( g z ( l + 1 ) r ) ] , in

g z ( l + 1 ) = e ^ ( P 0 , S y ( m + 1 ) ) e ^ ( Q yl , ( P z ( l + 1 ) - P y ( l + 1 ) ) ) &Pi; i = l + 2 m e ^ ( Q y ( i - 1 ) , P yi ) = e ^ ( P 0 , S z ( l + 1 ) ) . 如果密文被表示为 g z ( l + 1 ) = e ^ ( P 0 , S the y ( m + 1 ) ) e ^ ( Q yl , ( P z ( l + 1 ) - P the y ( l + 1 ) ) ) &Pi; i = l + 2 m e ^ ( Q the y ( i - 1 ) , P yi ) = e ^ ( P 0 , S z ( l + 1 ) ) . If the ciphertext is expressed as

C=[U0,Ul+2,K,Un,V],那么就可以利用 M = V &CirclePlus; H 2 [ e ^ ( U 0 , S z ( n + 1 ) ) &Pi; i = l + 2 n e ^ ( Q z ( i - 1 ) , U i ) ] 来对其进行解密。C=[U 0 , U l+2 , K, U n , V], then you can use m = V &CirclePlus; h 2 [ e ^ ( u 0 , S z ( no + 1 ) ) &Pi; i = l + 2 no e ^ ( Q z ( i - 1 ) , u i ) ] to decrypt it.

经过认证的低级根PKGCertified Low Level Root PKG

可以通过创建一个经过认证的低级根PKG将上述双HIDE方案的高效性扩展到位于分级结构之外的消息发送方。要“认证,,低级PKG,根PKG可以提出一个附加参数,比如一个随机消息M′。然后,低级PKG“签署”M′,生成签名Sig=Szl+szlPM′,其中Sl是低级PKG的私有密钥,sl则是其低级密钥生成密文。低级PKG还会公布对应于1≤i≤t的QiThe efficiency of the above double HIDE scheme can be extended to message senders located outside the hierarchy by creating an authenticated low-level root PKG. To "authenticate", the lower-level PKG, the root PKG can propose an additional parameter, such as a random message M'. Then, the lower-level PKG "signs"M', generating a signature Sig = S zl + s zl P M' , where S l is The private key of the low-level PKG, s l is the ciphertext generated by its low-level key. The low-level PKG will also publish Q i corresponding to 1≤i≤t.

利用经过认证的低级根PKG,位于分级结构之外的发送方无需计算接收方所有n个前辈PKG的公共元素Pzi即可向接收方z发送加密消息。发送方可以利用对应于低级认证根PKG的参数更高效地加密消息。具体地说,发送方计算Pzi=H1(ID1,...,IDzi)∈Γ1,其中l+1≤i≤n+1。然后发送方选取一个随机的r∈Z/qZ,并生成加密文本 C = [ P 0 , r P z ( l + 1 ) , . . . , r P z ( n + 1 ) , M &CirclePlus; H 2 ( g zl r ) ] , 其中With an authenticated lower-level root PKG, a sender located outside the hierarchy can send an encrypted message to a receiver z without computing the common element P zi of all n predecessor PKGs of the receiver. The sender can more efficiently encrypt messages using parameters corresponding to the low-level authentication root PKG. Specifically, the sender calculates P zi =H 1 (ID 1 , . . . , ID zi )∈Γ 1 , where l+1≤i≤n+1. Then the sender picks a random r∈Z/qZ and generates encrypted text C = [ P 0 , r P z ( l + 1 ) , . . . , r P z ( no + 1 ) , m &CirclePlus; h 2 ( g zl r ) ] , in

g zl = e ^ ( P 0 , Sig ) e ^ ( s zl P 0 , P M &prime; ) = e ^ ( P 0 , S zl ) . 假设接收到的密文C=[U0,Ul+1,...,Un+1,V],则接收方可以解密该密文以恢复消息 M = V &CirclePlus; H 2 [ e ^ ( U 0 , S z ( n + 1 ) ) &Pi; i = l + 1 n + 1 e ^ ( Q z ( i - 1 ) , U i ) ] , 其中Sz(n+1)是接收方的私有密钥。 g zl = e ^ ( P 0 , Sig ) e ^ ( the s zl P 0 , P m &prime; ) = e ^ ( P 0 , S zl ) . Assuming the received ciphertext C=[U 0 , U l+1 ,..., U n+1 , V], the receiver can decrypt the ciphertext to recover the message m = V &CirclePlus; h 2 [ e ^ ( u 0 , S z ( no + 1 ) ) &Pi; i = l + 1 no + 1 e ^ ( Q z ( i - 1 ) , u i ) ] , where S z(n+1) is the recipient's private key.

分布式PKGDistributed PKG

为了进一步保护上述HIDE方案的密钥生成密文,并使得这些方案对于不诚实的PKG具有鲁棒性,可以利用已知的阈加密技术将密钥生成密文和私有密钥分布开。To further protect the key generation ciphertext of the above HIDE schemes and make these schemes robust against dishonest PKGs, the key generation ciphertext and the private key can be distributed using known threshold encryption techniques.

更高效的加密技术More Efficient Encryption Technology

通过将分级结构中的最高两级合并成单个根PKG,就可以提高用于上述HIDE方案的加密技术的效率。在那种情况下, g = e ^ ( Q 0 , P 1 ) 被包含在系统参数中。这样就省去了加密器计算该配对值的任务。然而,解密器必须计算一个额外的配对(这是它在树的下一级的结果)。By merging the top two levels in the hierarchy into a single root PKG, the efficiency of the encryption techniques used for the HIDE scheme described above can be increased. In that case, g = e ^ ( Q 0 , P 1 ) is included in the system parameters. This saves the encryptor from the task of computing this pairing value. However, the decryptor has to compute an additional pairing (which is its result at the next level of the tree).

HIDS方案HIDS program

现在考虑本发明的签名方案或HIDS方案,图7所示的流程图根据本发明的另一个当前优选实施例展示了一种生成及验证一个数字签名的方法。该方法在一个包含多个PKG的HIDS系统中实现。所述的PKG中至少包括一个根PKG以及根PKG与发送方或签署人之间的分级结构中的n个低级PKG,其中n≥1。在模块702中,根PKG选取一个只有根PKG知道的根密钥生成密文。该根密钥生成密文可被用来为分级结构中低于根PKG的PKG或用户产生私有密钥。然后在模块704中,根PKG根据根密钥生成密文产生一个根密钥生成参数。在模块706中,低级PKG选取低级密钥生成密文。与一个给定的低级PKG相关的低级密钥生成密文可被用来为分级结构中低于该相关低级PKG的PKG或用户生成私有密钥。与根密钥生成密文类似,每个低级密钥生成密文只对其相关的低级PKG已知。在模块708中,为n个低级PKG各自产生低级密钥生成参数。每个低级密钥生成参数的产生都至少要用到其相关低级PKG的低级密钥生成密文。Considering now the signature scheme or HIDS scheme of the present invention, the flowchart shown in FIG. 7 shows a method of generating and verifying a digital signature according to another presently preferred embodiment of the present invention. The method is implemented in a HIDS system containing multiple PKGs. The PKG includes at least one root PKG and n lower-level PKGs in the hierarchical structure between the root PKG and the sender or signer, where n≥1. In module 702, the root PKG selects a root key known only by the root PKG to generate ciphertext. This root key generating ciphertext can be used to generate private keys for PKGs or users below the root PKG in the hierarchy. Then in module 704, the root PKG generates a root key generation parameter according to the root key generation ciphertext. In block 706, the low-level PKG selects the low-level key to generate ciphertext. The lower-level key generation ciphertext associated with a given lower-level PKG can be used to generate private keys for PKGs or users lower in the hierarchy than the associated lower-level PKG. Similar to the root key-generating ciphertext, each lower-level key-generating ciphertext is known only to its associated lower-level PKG. In block 708, low-level key generation parameters are generated for each of the n low-level PKGs. The generation of each low-level key generation parameter requires at least the low-level key generation ciphertext of its associated low-level PKG.

在模块710中,一个低级PKG为接收方生成一个私有密钥,使得该私有密钥至少与n个低级密钥生成密文中的一个相关。例如,发送方的私有密钥至少可以与向接收方发放私有密钥的PKG的低级密钥生成密文相关。但是,接收方的私有密钥最好与它所有n个前辈PKG的低级密钥生成密文以及根密钥生成密文相关。在模块712中,发送方至少利用其私有密钥来签署消息并生成数字签名。然后在模块714中,接收方或校验器至少利用低级密钥生成参数之一来验证该数字签名。例如,可以只利用根密钥生成参数来验证该签名。或者,也可以利用低级密钥生成参数中的一个或多个。In block 710, a low-level PKG generates a private key for the recipient such that the private key is associated with at least one of the n low-level key-generating ciphertexts. For example, the sender's private key may at least be associated with the low-level key-generating ciphertext of the PKG that issued the private key to the recipient. However, the recipient's private key is preferably related to the lower key-generating ciphertexts of all its n predecessors PKG as well as the root key-generating ciphertext. In block 712, the sender signs the message using at least its private key and generates a digital signature. Then in block 714, the recipient or verifier verifies the digital signature using at least one of the low-level key generation parameters. For example, the signature can be verified using only the root key generation parameters. Alternatively, one or more of the low-level key generation parameters may also be utilized.

图8所示的流程图根据本发明的另一个当前优选实施例展示了一种生成及验证一条数字消息M的数字签名Sig的方法,所述的数字消息在发送方y和接收方z之间传递。如图3所示,发送方y 306在分级结构中比根PKG低m+1个级别,并且与ID元组(IDy1,...,IDy(m+1))相关联。发送方的ID元组中包括与发送方相关的身份信息IDy(m+1),以及与它在分级结构中的m个前辈低级PKG的每一个相关的身份信息IDyi。该方法从模块802开始,生成元素的第一与第二循环群Γ1和Γ2。在模块804中,选取一个函数

Figure A20081018375600361
使得该函数能够由第一循环群Γ1的两个元素生成第二循环群Γ2的一个元素。函数
Figure A20081018375600363
最好是一种可行的配对,如上所述。在模块806中选取第一循环群Γ1的一个根生成器P0。在模块808中,选取一个随机根密钥生成密文s0,该密文与根PKG 302相关且只有根PKG 302知道。s0最好是循环群Z/qZ的一个元素。在模块810中产生一个根密钥生成参数Q0=s0P0。Q0最好是第一循环群Γ1的一个元素。在模块812中,选取一个第一函数H1,使得H1能够由第一串二进制数生成第一循环群Γ1的一个元素。在模块814中选取一个第二函数H3,使得H3能够由第二循环群Γ2的一个元素生成第二串二进制数。模块802至814的功能都是上述HIDS根设置算法的组成部分,并且最好都在大致相同的时刻完成。作为示例,比如那些在Boneh-Franklin中公开的函数就可以被用作H1和H3。实际上,函数H1和H3可以是完全相同的函数。但是会有一个潜在的隐患。一名攻击者可能尝试让签署人签署M=IDt,其中IDt代表了一个实际身份。在这种情况下,签署人的签名实际上会是一个私有密钥,此后该密钥可被用来解密消息及伪造签名。但是,通过采用某些能够区分签名与私有密钥提取的手段——比如一个比特前缀或为H3采用不同的函数,该隐患是可以避免的。The flowchart shown in FIG. 8 shows a method of generating and verifying a digital signature Sig of a digital message M between a sender y and a receiver z according to another presently preferred embodiment of the present invention transfer. As shown in FIG. 3 , sender y 306 is m+1 levels below the root PKG in the hierarchy and is associated with ID tuples (ID y1 , . . . , ID y(m+1) ). The sender's ID tuple includes identity information ID y(m+1) related to the sender, and identity information ID yi related to each of its m predecessors and lower-level PKGs in the hierarchical structure. The method begins at block 802 by generating first and second cyclic groups Γ 1 and Γ 2 of elements. In block 804, select a function
Figure A20081018375600361
makes the function One element of the second cyclic group Γ 2 can be generated from two elements of the first cyclic group Γ 1 . function
Figure A20081018375600363
Preferably a viable pairing, as described above. In block 806 a root generator P 0 of the first cyclic group Γ 1 is selected. In block 808, a random root key is chosen to generate a ciphertext s 0 , which is associated with the root PKG 302 and known only to the root PKG 302 . s 0 is preferably an element of the cyclic group Z/qZ. In block 810 a root key generation parameter Q 0 =s 0 P 0 is generated. Q 0 is preferably an element of the first cyclic group Γ 1 . In module 812, a first function H 1 is selected such that H 1 can generate an element of the first cyclic group Γ 1 from the first string of binary numbers. In module 814, a second function H 3 is selected such that H 3 can generate a second string of binary numbers from an element of the second cyclic group Γ 2 . The functions of blocks 802 through 814 are all integral to the HIDS root setup algorithm described above, and are preferably all performed at approximately the same time. As an example, functions such as those disclosed in Boneh-Franklin can be used as H1 and H3 . In fact, functions H 1 and H 3 can be exactly the same function. But there will be a potential hidden danger. An attacker may try to get the signer to sign M=ID t , where ID t represents an actual identity. In this case, the signer's signature would actually be a private key, which could then be used to decrypt the message and forge the signature. However, this hidden danger can be avoided by adopting some means that can distinguish the signature from the extraction of the private key—such as a bit prefix or a different function for H3 .

接下来的一系列模块(模块816至824)示出了作为低级设置算法的组成部分而执行的功能。在模块816中,为发送方的m个前辈低级PKG各生成一个公共元素Pyi。每个公共元素Pyi=H1(ID1,...,IDyi)最好都是第一循环群Γ1的一个元素,其中1≤i≤m。尽管是以单个模块表示的,但是所有公共元素Pyi的产生需要进行一段时间,而非一次全部完成。The next series of blocks (blocks 816 to 824) illustrate the functions performed as part of the low-level setup algorithm. In module 816, a common element P yi is generated for each of the m predecessor low-level PKGs of the sender. Each common element P yi =H 1 (ID 1 , . . . , ID yi ) is preferably an element of the first cyclic group Γ 1 , where 1≤i≤m. Although represented by a single module, the generation of all common elements P yi needs to be performed for a period of time instead of being completed all at once.

为发送方的m个前辈低级PKG 304a,b,d各选取一个低级密钥生成密文syi(模块818)。该低级密钥生成密文syi最好是循环群Z/qZ的元素,其中1≤i≤m,并且每个低级密钥生成密文syi最好只有与它相关的低级PKG知道。同样,尽管是以单个模块表示,但是所有低级密钥生成密文syi的选取需要进行一段时间,而非一次全部完成。Select a low-level key for each of the sender's m predecessors low-level PKG 304a, b, d to generate ciphertext s yi (block 818). The low-level key-generating ciphertexts s yi are preferably elements of the cyclic group Z/qZ, where 1≤i≤m, and each low-level key-generating ciphertext syi is preferably known only by its associated low-level PKG. Similarly, although it is represented by a single module, the selection of all low-level key generation ciphertexts yi needs to be performed for a period of time instead of being completed all at once.

为发送方的m个前辈低级PKG各生成一个低级机密元素Syi(模块820)。每个低级机密元素Syi=Sy(i-1)+sy(i-1)Pyi最好是第一循环群Γ1的一个元素,其中1≤i≤m。尽管与公共元素Pyi以及密文syi一样都是以单个模块表示的,但是所有机密元素Syi的产生也需要进行一段时间,而非一次全部完成。为了这些重复的密钥生成过程的缘故,可将S0定为Γ1的身份元素。One low-level secret element S yi is generated for each of the sender's m predecessor low-level PKGs (block 820 ). Each low-level secret element S yi =S y(i-1) +s y(i-1) P yi is preferably an element of the first cyclic group Γ 1 , where 1≤i≤m. Although the same as the public element P yi and the ciphertext s yi are represented by a single module, the generation of all the secret elements S yi also needs to be performed for a period of time instead of being completed all at once. For the sake of these repeated key generation processes, S 0 may be defined as the identity element of Γ 1 .

还要为发送方的m个前辈低级PKG各产生一个低级密钥生成参数Qyi(模块822)。每个密钥生成参数Qyi=syiP0最好都是第一循环群Γ1的元素,其中1≤i≤m。同样,尽管以单个模块表示,但是所有密钥生成参数Qyi的产生也需要进行一段时间,而非一次全部完成。A low-level key generation parameter Q yi is also generated for each of the sender's m predecessor low-level PKGs (block 822 ). Each key generation parameter Q yi =s yi P 0 is preferably an element of the first cyclic group Γ 1 , where 1≤i≤m. Similarly, although represented by a single module, the generation of all key generation parameters Q yi also needs to be performed for a period of time, rather than being completed all at once.

随后两个模块(模块824和826)的功能是作为上述抽取算法的一部分而执行的。在模块824中生成与发送方y相关的发送方公共元素Py(m+1)。该发送方公共元素,Py(m+1)=H1(IDy1,...IDy(m+1)),最好是第一循环群Γ1的一个元素。然后在模块826中生成与发送方y有关的发送方机密元素Sy(m+1)。该发送方机密元素, S y ( m + 1 ) = S ym + s ym P y ( m + 1 ) = &Sigma; i = 1 m + 1 s y ( i - 1 ) P yi , 最好也是第一循环群Γ1的一个元素。The functions of the next two blocks (blocks 824 and 826) are performed as part of the decimation algorithm described above. In block 824 a sender public element P y(m+1) related to sender y is generated. The sender common element, P y(m+1) =H 1 (ID y1 , ... ID y(m+1) ), is preferably an element of the first cyclic group Γ 1 . A sender secret element Sy (m+1) related to sender y is then generated in block 826 . the sender secret element, S the y ( m + 1 ) = S ym + the s ym P the y ( m + 1 ) = &Sigma; i = 1 m + 1 the s the y ( i - 1 ) P yi , Preferably also an element of the first cyclic group Γ1 .

为方便起见,第一函数H1可被选为一种迭代函数,从而可以按照例如H1(Py(i-1),IDyi)而非H1(ID1,...IDyi)来计算公共点PiFor convenience, the first function H 1 can be chosen as an iterative function, so that for example H 1 (P y(i-1) , ID yi ) instead of H 1 (ID 1 , ... ID yi ) to calculate the common point P i .

图8中所示的最后两个模块(模块828和830)代表了上述的签署与验证算法。在模块828中,消息M被签署以生成一个数字签名Sig。该签署过程最好至少用到发送方机密元素Sy(m+1)。然后在模块830中验证数字签名Sig。该验证过程最好至少用到根密钥生成参数Q0以及低级密钥生成参数Qyi。现在将参照图9来说明这些参数和元素在签署消息M以及验证数字签名Sig时的具体用法。The last two blocks shown in Figure 8 (blocks 828 and 830) represent the signing and verification algorithm described above. In block 828, the message M is signed to generate a digital signature Sig. This signing process preferably uses at least the sender secret element S y(m+1) . The digital signature Sig is then verified in block 830 . The verification process preferably uses at least the root key generation parameter Q 0 and the low level key generation parameter Q yi . The specific usage of these parameters and elements when signing the message M and verifying the digital signature Sig will now be explained with reference to FIG. 9 .

图9所示的流程图根据本发明的另一个当前优选实施例展示了一种生成及验证一条数字消息M的数字签名Sig的方法,所述的数字消息在发送方y和接收方z之间传递。在该方案中,根设置、低级设置以及抽取算法都与图8中模块802至826所示的实施例相同。因此,图9所示的流程图在模块927a中从选取一个发送方密钥生成密文sy(m+1)开始,该密文只有发送方y知道。在模块927b中,利用公式Qy(m+1)=sy(m+1)P0产生一个与发送方相关联的发送方密钥生成参数Qy(m+1)。然后,签署算法从发送方在模块928a中生成一个消息元素PM=H3(IDy1,...,IDy(m+1),M)。该消息元素PM最好是第一循环群Γ1的一个成员。在模块928b中利用方程Sig=Sy(m+1)+sy(m+1)PM生成数字签名Sig本身。接收方通过检验方程 e ^ ( P 0 , Sig ) e ^ ( Q y ( m + 1 ) , P M ) &Pi; i = 2 m + 1 e ^ ( Q y ( i - 1 ) , P yi ) = e ^ ( Q 0 , P 1 ) 是否满足来验证数字签名Sig。The flowchart shown in FIG. 9 shows a method of generating and verifying a digital signature Sig of a digital message M between a sender y and a receiver z according to another presently preferred embodiment of the present invention transfer. In this scheme, the root settings, low-level settings, and decimation algorithms are all the same as in the embodiment shown in blocks 802 to 826 in FIG. 8 . Therefore, the flowchart shown in FIG. 9 starts in block 927a by selecting a sender's key to generate a ciphertext sy(m+1) , which is known only to the sender y. In block 927b, a sender key generation parameter Q y(m+1) associated with the sender is generated using the formula Q y(m+1) =s y(m+1) P 0 . The signing algorithm then generates a message element P M =H 3 (ID y1 , . . . , ID y(m+1) , M) from the sender in block 928a. The message element PM is preferably a member of the first cyclic group Γ1 . The digital signature Sig itself is generated in block 928b using the equation Sig= Sy(m+1) + sy(m+1) PM . The receiver passes the verification equation e ^ ( P 0 , Sig ) e ^ ( Q the y ( m + 1 ) , P m ) &Pi; i = 2 m + 1 e ^ ( Q the y ( i - 1 ) , P yi ) = e ^ ( Q 0 , P 1 ) Whether it is satisfied to verify the digital signature Sig.

本文参照本发明的优选实施例以及图示实例对本发明进行了详细的说明,但是应该明白,在本发明的思想与范围内可以实现各种变化与改进。Herein, the present invention has been described in detail with reference to the preferred embodiments and illustrated examples of the present invention, but it should be understood that various changes and improvements can be realized within the spirit and scope of the present invention.

Claims (48)

1.一种计算机实施的加密方法,用于在分级加密方案中对用于解密期望接收方实体E的密文信息的消息M进行加密,该方法包括:1. A computer-implemented encryption method for encrypting a message M for decrypting ciphertext information of an intended recipient entity E in a hierarchical encryption scheme, the method comprising: (1)获得变量值r;(1) Obtain variable value r; (2)获得所述消息M的第一加密,使用值gr可解密所述第一加密,其中(2) Obtain a first encryption of said message M, which can be decrypted using the value g r , where g是一个预定义函数在值ê(p0,p1)处的值;ê:G1×G1→G2是非退化双线性映射,其中G1和G2是群,并且ê,G1和G2将用于解密;g is the value of a predefined function at the value ê(p0,p1); ê: G 1 ×G 1 →G 2 is a non-degenerate bilinear map, where G 1 and G 2 are groups, and ê, G 1 and G 2 will be used for decryption; p0,p1是G1的元素,其中至少一个依赖于分级加密系统中E的上代的ID;p0, p1 are elements of G1 , at least one of which depends on the ID of the previous generation of E in the hierarchical encryption system; (3)获得第一密文部分,包括多个值,每个值是群G1的元素并且是rF形式的值的线性表达,其中每个F是E和/或至少E的一个上代的ID的预定义函数,其中至少一个值F依赖于E的至少一个上代的ID;以及(3) Obtain the first ciphertext part, including a plurality of values, each value is an element of the group G1 and is a linear expression of a value of the form rF, where each F is the ID of E and/or at least one previous generation of E A predefined function of where at least one value F depends on the ID of at least one ancestor of E; and (4)产生使用所述第一密文部分和所述消息M的第一加密而形成的密文。(4) Generate a ciphertext formed using the first encryption of the first ciphertext portion and the message M. 2.根据权利要求1的方法,其中所述第一密文部分不依赖于M。2. A method according to claim 1, wherein said first ciphertext part does not depend on M. 3.根据权利要求1或2的方法,其中所述分级加密方案为使得:3. A method according to claim 1 or 2, wherein said hierarchical encryption scheme is such that: 根实体E0生成其密文整数s0The root entity E 0 generates its ciphertext integer s 0 ; 在分级等级i>0的E的上代的每个实体Ei生成各自的密文整数siEach entity E i of the previous generation of E with hierarchical level i>0 generates its own ciphertext integer s i ; 对每个整数i∈[1,t],其中t>1是E的分级等级且其中Et=E,每个实体Ei获得等于Si-1+si-1Pi的值,并且设置Ei的密文Si为所述等于Si-1+si-1Pi的值或通过修改所述等于Si-1+si-1Pi的值而获得的值,其中每个Pi是包括Ei的ID的一个或多个ID的函数,并且S0是G1的身份元素,Pi可用于所述解密;For each integer i∈[1,t], where t > 1 is the hierarchical level of E and where E t = E, each entity E i gets a value equal to S i-1 + s i-1 P i , and Set the ciphertext S i of E i to the value equal to S i-1 + s i-1 P i or a value obtained by modifying the value equal to S i-1 + s i-1 P i , where each P i is a function of one or more IDs including the ID of E i , and S 0 is the identity element of G 1 , P i can be used for said decryption; 每个实体Ei(i∈[1,t-1])生成元素Qi,且Qi=siP0,每个实体Ei(i∈[2,t-11)为所有k∈[1,i-1]获得一组元素Qk,并且修改一个或多个Qk或者保持其不被修改以相应于Si,并且实体Et接收元素Q1,...,Qt-1Each entity E i (i∈[1, t-1]) generates element Q i , and Q i =s i P 0 , each entity E i (i∈[2, t-11]) is all k∈[ 1,i-1] obtains a set of elements Q k , and modifies one or more Q k or keeps them unmodified to correspond to S i , and entity E t receives elements Q 1 ,...,Q t-1 . 4.根据权利要求3的方法,其中对至少一个值i∈[2,t-1],Ei设置Si等于Si-1+si-1Pi,并且元素Qk不被Ei修改。4. The method according to claim 3, wherein for at least one value i ∈ [2, t-1], E i sets S i equal to S i-1 + s i-1 P i , and element Q k is not replaced by E i Revise. 5.根据权利要求3的方法,其中对至少一个值i∈[2,t-1]:5. The method according to claim 3, wherein for at least one value i∈[2,t−1]: Ei为一个或多个整数值c∈[1,i-1]生成一个或多个变量整数值bc,并且使用所述等于Si-1+si-1Pi的值生成Si作为值bcPc+1的和;以及E i generates one or more variable integer values b c for one or more integer values c ∈ [1, i-1], and uses said values equal to S i-1 + s i-1 P i to generate S i as the sum of the values b c P c + 1 ; and Ei通过对每个所述c使用Qc+bcP0替换元素Qc,从而修改元素QkE i modifies the element Q k by replacing the element Q c with Q c +b c P 0 for each said c. 6.根据权利要求3的方法,其中每个F是一个或多个元素P0,...,Pt的线性表达,使得值F一起定义了除Pj外的所有P0,...,Pt的值;6. A method according to claim 3, wherein each F is a linear expression of one or more elements P0 , ..., Pt such that the values F together define all P0 , ... except Pj , the value of Pt ; 对某些j∈[1,t-1],g=ê(Q0,Pj),且For some j∈[1,t-1], g=ê(Q 0 ,P j ), and gr可如下计算g r can be calculated as follows gg rr == ee ^^ (( Uu 00 ,, SS tt )) &Pi;&Pi; 11 &le;&le; ii &le;&le; tt ,, ii &NotEqual;&NotEqual; jj ee ^^ (( QQ ii -- 11 ,, Uu ii )) 其中U0=rP0,每个Ui=rPiwhere U 0 =rP 0 , each U i =rP i . 7.根据权利要求6的方法,其中所述值F是对所有i∈[0,t]从而i≠1且j=1的值Pi7. The method according to claim 6, wherein said value F is a value Pi for all i∈[0,t] such that i≠1 and j=1. 8.根据权利要求3的方法,其中获得所述第一加密包括:8. The method of claim 3, wherein obtaining the first encryption comprises: 从另一个实体获得值Sig=Sl+slPM’,l是选择的整数,l<t,其中Sl不用于加密所述消息M,并且PM’可用于加密,且积slP0作为Ql用于加密所述消息M;Obtaining the value Sig=S l +s l P M' from another entity, l is a chosen integer, l<t, where S l is not used to encrypt said message M, and PM ' is available for encryption, and the product s l P 0 is used as Q 1 for encrypting said message M; 计算g:Calculate g: gg == ee ^^ (( PP 00 ,, SigSig )) ee ^^ (( sthe s 11 PP 00 ,, PP Mm &prime;&prime; )) 其中gr可以计算如下where g r can be calculated as follows gg rr == ee ^^ (( Uu 00 ,, SS tt )) &Pi;&Pi; ii == ll ++ 11 tt ee ^^ (( QQ ii -- 11 ,, Uu ii )) 其中对每个i∈[l+1,t],Ui=rPi;以及where U i =rP i for each i∈[l+1,t]; and 值F一起定义了P0和所有的Pl+1,...,PtThe value F together defines P 0 and all P l+1, . . . , P t . 9.根据权利要求8的方法,其中g=ê(P0,Sl)。9. The method according to claim 8, wherein g=ê(P 0 , S l ). 10.根据权利要求3的方法,其中:10. The method according to claim 3, wherein: 代表实体Eym执行所述方法,其在分级加密方案中的m级并且是某些l<t的El的后代;performing the method on behalf of an entity E ym at level m in a hierarchical encryption scheme and a descendant of some E l for which l<t; 在分级i>0级的Eym的上代的每个实体Eyi,生成相应的密文整数syiFor each entity E yi of the previous generation of E ym with grade i>0, generate the corresponding ciphertext integer s yi ; 对每个整数i∈[1,m],每个实体Eyi从等于Sy(i-1)+sy(i-1)Pyi的值获得Eyi的密文Syi,其中每个Pyi是包括Eyi的ID的一个或多个ID的函数,并且可用于解密,并且Sy0是G1的身份元素;For each integer i ∈ [1, m], each entity E yi obtains the ciphertext S yi of E yi from a value equal to S y (i-1) + s y(i-1) P yi , where each P yi is a function of one or more IDs including the ID of E yi and can be used for decryption, and S y0 is the identity element of G 1 ; 每个实体Eyi(i∈[1,m-1])生成一个元Qyi,Qyi=syiP0,为所有k∈[1,i-1]获得一组元素Qyk,并且提供修改或未经修改的元素Qyk和Qyi给Ey(i+1)Each entity E yi (i∈[1,m-1]) generates an element Q yi , Q yi =s yi P 0, obtains a set of elements Q yk for all k∈[1,i-1], and provides The modified or unmodified elements Q yk and Q yi give E y(i+1) . 11. 根据权利要求10的方法,其中:11. The method according to claim 10, wherein: gg == ee ^^ (( PP 00 ,, SS ymym )) &Pi;&Pi; ii == ll ++ 11 mm ee ^^ (( QQ ythe y (( ii -- 11 )) ,, PP yiyi )) 并且gr可计算如下and g r can be calculated as follows gg rr == ee ^^ (( Uu 00 ,, SS tt )) &Pi;&Pi; ii == ll ++ 11 tt ee ^^ (( QQ ii -- 11 ,, Uu ii )) 其中对每个i∈[l+1,t],Ui=rPi;以及where U i =rP i for each i∈[l+1,t]; and 值F一起定义了P0和所有的Pl+1,...,PtThe value F together defines P 0 and all P l+1, . . . , P t . 12.根据权利要求11的方法,其中从sl与syl分离地产生作为变量值。12. The method according to claim 11, wherein from s l and s yl are generated separately as variable values. 13.根据权利要求10的方法,其中syl=sl,以及13. The method according to claim 10, wherein s yl =s l , and gg == ee ^^ (( PP 00 ,, SS ymym )) &Pi;&Pi; ii == ll ++ 22 mm ee ^^ (( QQ &prime;&prime; ythe y (( ii -- 11 )) ,, PP yiyi )) 并且gr可计算如下and g r can be calculated as follows gg rr == ee ^^ (( Uu 00 ,, SS tt )) ee ^^ (( Uu ll ++ 11 ,, QQ &prime;&prime; ll )) &Pi;&Pi; ii == ll ++ 22 tt ee ^^ (( QQ &prime;&prime; ii -- 11 ,, Uu ii )) 其中Ul+1=r(Py(l+1)-Pl+1),以及对i=0和每个i∈[l+2,t],Ui=rPi,以及where U l+1 = r(P y(l+1) -P l+1 ), and for i=0 and for each i∈[l+2,t], U i =rP i , and 值F一起定义了P0,Py(l+1)-Pl+1,和所有的Pl+2,...,PtThe values F together define P 0 , P y(l+1) −P l+1 , and all of P l+2, . . . , P t . 14.根据权利要求3的方法,其中对每个i>1,Pi是(ID1,...,IDi)的函数。14. The method according to claim 3, wherein P i is a function of (ID 1 , . . . , ID i ) for each i>1. 15.一种计算机实施的解密方法,用于从密文C恢复消息M,代表拥有使用从分级加密方案中的一个或多个E的上代获取的一个或多个值而获得的E的密文信息的实体E,E的密文信息包括群G1的元素S(E),其中S(E)是群G1的第一成员的线性组合,在所述线性组合中每个第一成员与一个相应整数系数相关联,所述第一成员包括群G1的一个或多个第一元素,其各自依赖于E的ID,所述第一成员包括群G1的一个或多个第二元素,其各自独立于E的ID,该方法包括:15. A computer-implemented decryption method for recovering a message M from a ciphertext C representing a ciphertext possessing E obtained using one or more values obtained from one or more previous generations of E in a hierarchical encryption scheme An entity E of information, the ciphertext information of E comprises elements S(E) of group G1 , where S(E) is a linear combination of the first members of group G1 , in which each first member is associated with A corresponding integer coefficient is associated, the first member comprising one or more first elements of the group G1 , each depending on the ID of E, the first member comprising one or more second elements of the group G1 , each independent of the ID of E, the method includes: (1)根据下面计算值gr(1) Calculate the value g r according to the following: 密文C;ciphertext C; 元素S(E);和element S(E); and 群G1的一组一个或多个元素Q;a set of one or more elements Q of group G1 ; 其中每个元素Q独立于密文C,但是依赖于一个或多个第一和第二元素的系数,其中值gr不依赖于E的ID但是依赖于一个或多个第二元素的系数,值gr作为比例A/B的函数而计算,其中:where each element Q is independent of the ciphertext C, but depends on the coefficients of one or more first and second elements, where the value g r does not depend on the ID of E but depends on the coefficients of one or more second elements, The value g r is calculated as a function of the ratio A/B, where: (i)A是群G2的一个或多个元素的第一乘积,所述第一乘积的一个或多个元素包括一个元素,该元素是两个元素上的双线性非退化映射ê:G1×G1→G2,所述两个元素中至少一个元素依赖于S(E)且至少一个元素依赖于密文C;以及(i) A is the first product of one or more elements of the group G2 , the one or more elements of the first product include an element that is a bilinear nondegenerate map ε on two elements: G 1 ×G 1 →G 2 , of which at least one element depends on S(E) and at least one element depends on ciphertext C; and (ii)B是群G2的一个或多个元素的第二乘积,所述第二乘积的一个或多个元素包括各自等于在两个元素上的映射ê的值的一个或多个元素,所述两个元素中至少一个依赖于一个或多个元素Q并且至少一个依赖于密文C;(ii) B is a second product of one or more elements of the group G , the one or more elements of said second product comprising one or more elements each equal to the value of the map ε over the two elements, At least one of the two elements depends on one or more elements Q and at least one depends on the ciphertext C; (2)使用值gr来从C恢复消息M。(2) Use the value g r to recover the message M from C. 16.根据权利要求15的方法,其中除了A和/或B和/或密文C中存在的信息以外,操作(2)不使用所述第一元素的系数的任何信息16. A method according to claim 15, wherein operation (2) does not use any information of the coefficients of said first element other than that present in A and/or B and/or ciphertext C 17.根据权利要求15的方法,其中除了A和/或B和/或密文C中存在的信息以外,操作(2)不使用任何E的ID上的信息。17. A method according to claim 15, wherein operation (2) does not use any information on E's ID other than that present in A and/or B and/or ciphertext C. 18.根据权利要求17的方法,其中值gr依赖于E的一个或多个上代的ID。18. A method according to claim 17, wherein the value gr depends on the ID of one or more previous generations of E. 19.根据权利要求15的方法,其中所述第一元素的系数各自是E的上代的密文并且不能用于解密E。19. The method of claim 15, wherein the coefficients of the first elements are each a ciphertext of a previous generation of E and cannot be used to decrypt E. 20.根据权利要求19的方法,其中所述第二元素的系数各自是E的上代的密文并且不能用于解密E。20. The method of claim 19, wherein the coefficients of the second elements are each a ciphertext of a previous generation of E and cannot be used to decrypt E. 21.根据权利要求15的方法,其中一个或多个所述第二元素依赖于一个或多个E的上代的ID。21. The method of claim 15, wherein one or more of said second elements are dependent on the ID of one or more ancestors of E. 22.根据权利要求15的方法,其中22. The method according to claim 15, wherein SS (( EE. )) == &Sigma;&Sigma; ii == 11 tt sthe s ii -- 11 PP ii 其中:in: t>1是E的分级等级;t>1 is the grade of E; {Pi}是所述第一成员并且{si-1}是所述系数;{P i } is the first member and {s i-1 } is the coefficient; 对每个i∈[1,t-1],Et=E且Ei是E的分级等级i的上代,并且其中对每个i<t,Pi是IDi的函数,所述IDi是相应实体Ei的ID,但是对任意k>i,Pi独立于任何IDk;以及For each i ∈ [1, t-1], E t = E and E i is the parent of hierarchical level i of E, and where for each i < t, P i is a function of ID i , which ID i is the ID of the corresponding entity E i , but P i is independent of any ID k for any k >i; and 对一个或多个整数i∈[1,t],所述一个或多个元素Q是一个或多个元素Qi=si-1P0,其中P0是群G1的预定义元素。For one or more integers i∈[1,t], said one or more elements Q are one or more elements Q i =s i−1 P 0 , where P 0 is a predefined element of group G 1 . 23.根据权利要求22的方法,其中23. The method according to claim 22, wherein gg rr == ee ^^ (( Uu 00 ,, SS (( EE. )) )) &Pi;&Pi; 11 &le;&le; ii &le;&le; tt ,, ii &NotEqual;&NotEqual; jj ee ^^ (( QQ ii -- 11 ,, Uu ii )) 其中in j是在[1,t-1]中选定的整数;j is an integer selected in [1,t-1]; 从所述密文C获得所述元素U0,Ui(1≤i≤t},i≠j)。The elements U 0, U i (1≤i≤t}, i≠j) are obtained from the ciphertext C. 24.根据权利要求23的方法,其中每个Ui=rPi,其中r是E不可用的整数。24. The method of claim 23, wherein each U i = rP i , where r is an integer for which E is not available. 25.根据权利要求22的方法,其中下面的条件(a)或(b)之一成立:25. The method according to claim 22, wherein one of the following conditions (a) or (b) holds: (( aa )) gg rr == ee ^^ (( Uu 00 ,, SS (( EE. )) )) &Pi;&Pi; ii == ll ++ 11 tt ee ^^ (( QQ ii -- 11 ,, Uu ii )) 其中:in: l是在[2,t-1]中选定的整数;l is an integer selected in [2,t-1]; 从所述密文C获得所述元素U0,Ui(i=l+1,...,t);Obtain said elements U 0, U i (i=l+1,...,t) from said ciphertext C; (( bb )) gg rr == ee ^^ (( Uu 00 ,, SS tt )) ee ^^ (( Uu ll ++ 11 ,, QQ ll )) &Pi;&Pi; ii == ll ++ 22 tt ee ^^ (( QQ ii -- 11 ,, Uu ii )) 其中:in: l是在[2,t-2]中选定的整数;l is an integer selected in [2,t-2]; 从所述密文C获得所述元素U0,Ui(i=l+2,...,t)Obtain said elements U 0, U i (i=l+2, . . . , t) from said ciphertext C 26.根据权利要求22的方法,其中所述分级加密方案是使得:26. The method of claim 22, wherein said hierarchical encryption scheme is such that: 每个实体Ei(0≤i<t)生成各自的密文整数siEach entity E i (0≤i<t) generates its own ciphertext integer s i ; 对每个整数i∈[1,t],每个实体Ei从等于Si-1+si-1Pi的值获得Ei的密文Si,其中S(E)=St并且其中S0是G1的身份元素;For each integer i ∈ [1, t], each entity E i obtains E i 's ciphertext S i from a value equal to S i-1 + s i-1 P i , where S(E) = S t and where S 0 is the identity element of G 1 ; 每个实体Ei(i∈[1,t-1])生成Qi且Qi=siP0,对所有k∈[1,i-1],每个实体Ei(i∈[2,t-1])获得一组元素Qk并且修改一个或多个Qk或保持其未经修改以相应于SiEach entity E i (i∈[1,t-1]) generates Q i and Q i =s i P 0 , for all k∈[1,i-1], each entity E i (i∈[2 , t−1]) obtain a set of elements Q k and modify one or more Q k or leave it unmodified to correspond to S i . 27.一种计算机实现的密钥提取方法,用于包括多个实体的分级加密方案,每个实体与加密密文值S(“S值”)相关联,加密密文值S是群G1的一个元素,该方法包括,代表所述实体之一的实体Et-1,其具有分级等级t-1,其中t>1并且其中根实体E0具有分级等级0:27. A computer-implemented key extraction method for a hierarchical encryption scheme comprising a plurality of entities, each entity being associated with an encrypted ciphertext value S ("S value"), the encrypted ciphertext value S being a group G1 An element of , the method includes, representing one of said entities , an entity E t-1 with hierarchical level t-1, where t > 1 and where the root entity E 0 has hierarchical level 0: (1)从Et-1的直系上代接收的数据中获得相应于Et-1的第一密文值;(1) Obtain the first ciphertext value corresponding to E t-1 from the data received by the immediate predecessor of E t-1 ; (2)从相应于Et-1的第一密文值获得Et-1的S值St-1(2) Obtain the S value S t-1 of E t-1 from the first ciphertext value corresponding to E t- 1 ; (3)对Et-1的一个或多个直系后代Et的每一个:(3) For each of one or more direct descendants E t of E t-1 : 获得值Pt,其为Et的ID的函数并且是群G1的元素;Obtain a value P t that is a function of the ID of E t and is an element of the group G 1 ; 生成包括值St-1+st-1Pt的数据作为相应于Et的第一密文值,其中st-1是Et-1生成的密文值;以及generating data comprising the value S t-1 + s t-1 P t as a first ciphertext value corresponding to E t , where st t-1 is the ciphertext value generated by E t-1 ; and 提供包括所述第一密文值St-1+st-1Pt的所述数据给Et,使得Et产生Et的密文S值。Providing said data comprising said first ciphertext value S t-1 + st -1 P t to E t such that E t generates a ciphertext S value of E t . 28.根据权利要求27的方法,其中t>2,其中操作(2)包括设置St-1等于所述相应于Et-1的第一密文值,并且该方法还包括,代表Et-1,28. The method according to claim 27, wherein t>2, wherein operation (2) comprises setting S t-1 equal to said first ciphertext value corresponding to E t-1 , and the method further comprises, representing E t -1, : 对1≤i≤t-2的每个等级i,获得群G1的元素Qi,每个元素Qi与等级i的上代Et-1相关联;For each level i of 1≤i≤t-2, obtain the elements Q i of group G 1 , each element Q i is associated with the parent E t-1 of level i; 对每个Et-1的直系后代Et,提供元素Qi(1≤i≤t-2)和Qt-1给Et,其中Qt-1由Et-1生成为Qt-1=st-1P0,其中P0是群G1的预定义公共元素,其中P0独立于后代Et和实体Et-1For each direct descendant E t of E t-1 , provide elements Q i (1≤i≤t-2) and Q t-1 to E t , where Q t-1 is generated by E t-1 as Q t- 1 = s t-1 P 0 , where P 0 is a predefined common element of group G 1 , where P 0 is independent of descendant E t and entity E t-1 . 29.根据权利要求27的方法,其中t>2,其中操作(2)包括对一个或多个选中的值c∈[1,t-2]生成一个或多个变量整数值bc,并且设置St-1等于值bcPc+1以及相应于Et-1的所述第一密文值之和;29. The method according to claim 27, wherein t > 2, wherein operation (2) comprises generating one or more variable integer values b c for one or more selected values c ∈ [1, t-2], and setting S t-1 is equal to the sum of the value b c P c+1 and said first ciphertext value corresponding to E t-1 ; 其中所述方法还包括,代表Et-1Wherein the method further comprises, representing E t-1 : 对1≤i≤t-2的每个等级i,获得群G1的元素Qi,每个元素Qi与等级i的上代Et-1相关联;For each level i of 1≤i≤t-2, obtain the elements Q i of group G 1 , each element Q i is associated with the parent E t-1 of level i; 对每个所述值c,使用Qc+bcP0替代Qc;以及然后for each said value c, replace Qc with Qc + bcP0 ; and then 对Et-1的每个直系后代EtFor each direct descendant E t of E t-1 : 对Et-1的每个直系后代Et,提供元素Qi(1≤i≤t-2)和Qt-1给Et,其中Qt-1由Et-1生成为Qt-1=st-1P0,其中P0是群G1的预定义公共元素,其中P0独立于后代Et和实体Et-1For each direct descendant E t of E t-1 , provide elements Q i (1≤i≤t-2) and Q t-1 to E t , where Q t-1 is generated by E t-1 as Q t- 1 = s t-1 P 0 , where P 0 is a predefined common element of group G 1 , where P 0 is independent of descendant E t and entity E t-1 . 30.根据权利要求27的方法,其中Et-1具有多于一个的直系后代Et,并且对所有后代Et产生作为单一值的st-130. The method of claim 27, wherein Et -1 has more than one direct descendant Et , and st -1 is produced as a single value for all descendants Et . 31.根据权利要求27的方法,其中Et-1具有多于一个的直系后代Et,并且对每个后代Et产生单独的值st-131. The method of claim 27, wherein Et -1 has more than one direct descendant Et , and a separate value st -1 is generated for each descendant Et . 32.一种计算机实施的在消息M上为签署人Et生成数字签名的方法,所述签署人Et是包括至少实体E0,E1,...,Et,t≥2的分级系统中比实体E0低等级t的实体,其中在该分级系统中每个实体Ei(i=1,...,t)是实体Ei-1的后代,该方法包括:32. A computer -implemented method of generating a digital signature on a message M for a signatory E t that is a hierarchy comprising at least entities E 0 , E 1 , ... , E t , t ≥ 2 Entities of rank t lower than entity E 0 in a system in which each entity E i (i=1, . . . , t) is a descendant of entity E i−1 in the hierarchical system, the method comprising: (1)获得签署人的密钥St,其是群G1的成员;(1) Obtain the key S t of the signer, which is a member of the group G 1 ; (2)获得签署人的整数密文st(2) Obtain the integer ciphertext s t of the signer; (3)在消息M上生成签名成分Sig,作为值Sig=St+stPM (3) Generate signature component Sig on message M as value Sig=S t +s t P M 其中:in: “+”是群G1的群操作;以及"+" is the group operation of group G1 ; and PM是依赖于消息M的值并且是群G1的成员。P M is a value that depends on message M and is a member of group G1 . 33.一种计算机实施的验证消息M上的数字签名以验证该数字签名是签署人Et的正确签名的方法,所述签署人Et是包括至少实体E0,E1,...,Et,t≥2的分级系统中比实体E0低等级t的实体,其中在该分级系统中每个实体Ei(i=1,...,t)是实体Ei-1的后代,该方法包括:33. A computer-implemented method of verifying a digital signature on a message M to verify that the digital signature is the correct signature of a signer E t that includes at least entities E 0 , E 1 , ..., E t , entities of rank t lower than entity E 0 in a hierarchical system with t ≥ 2, where each entity E i (i=1,...,t) is a descendant of entity E i-1 in the hierarchical system , the method includes: (1)获得签名成分Sig,其为预定义的群G1的元素;(1) Obtain the signature component Sig, which is an element of the predefined group G1 ; (2)获得与各自的一个或多个实体Ei相关联的一个或多个值Qi,所述一个或多个值Qi包括值Qt(2) obtaining one or more values Q i associated with the respective one or more entities E i , said one or more values Q i including the value Q t ; (3)确认(3) confirmation ee ^^ (( PP 00 ,, SigSig )) ee ^^ (( QQ tt ,, PP Mm )) &Pi;&Pi; ii ee ^^ (( QQ ii -- 11 ,, PP ii )) == VV 其中:in: P0是群G1的预定义元素;P 0 is a predefined element of group G 1 ; 所述积∏iê(Qi-1,Pi)对包含1至t的整数的适当子集中所有整数i进行;Said product ∏ i ê(Q i-1 , P i ) is performed on all integers i in the appropriate subset of integers comprising 1 to t; 每个Qi-1=si-1P0,其中si-1是实体Ei-1的整数密文;Each Q i-1 = s i-1 P 0, where s i-1 is the integer ciphertext of entity E i-1 ; Qt=s0P0,其中si是实体Et的整数密文;Q t = s 0 P 0, where s i is the integer ciphertext of entity E t ; ê是G1×G1到预定义的群G2的双线性非退化映射;ê is the bilinear non-degenerate mapping from G 1 ×G 1 to the predefined group G 2 ; PM是依赖于消息M的值并且是群G1的成员; PM is a value that depends on message M and is a member of group G1 ; 每个Pi依赖于实体Ei的身份;Each P i depends on the identity of the entity E i ; V是群G2的元素。V is an element of group G2 . 34.根据权利要求32或33的方法,其中:34. The method according to claim 32 or 33, wherein: 每个实体Ei(i>0)从实体Ei-1接收其密钥SiEach entity E i (i > 0) receives its key S i from entity E i-1 ; 每个实体Ei(i<t)生成其密文si并且还生成密钥Si+1如下:Each entity E i (i<t) generates its ciphertext s i and also generates a key S i+1 as follows: Si+1=Si+siPi+1 S i+1 =S i +s i P i+1 并且提供密钥Si+1给所述实体Ei+1and providing the key S i+1 to said entity E i+1 ; 每个实体Ei(0≤i≤t)生成值Qi=siP0,其中P0是群G1的预定义的元素。Each entity E i (0≤i≤t) generates a value Q i =s i P 0 , where P 0 is a predefined element of group G 1 . 35.权利要求34的方法,其中所述签名成分Sig将被提供给验证器,其中对于在包括从0到t的整数的子集中的值i,所述验证器访问值{Qi}。35. The method of claim 34, wherein said signature component Sig is to be provided to a verifier, wherein for a value i in a subset comprising integers from 0 to t, said verifier accesses a value {Q i }. 36.根据权利要求35的方法,其中所述包括从0到t的整数的子集是包括从1到t-1的所有整数的集合。36. The method of claim 35, wherein the subset comprising integers from 0 to t is the set comprising all integers from 1 to t-1. 37.一种设备,用于执行根据任一前述权利要求的方法。37. An apparatus for performing a method according to any preceding claim. 38.一种设备,用于根据权利要求32来生成数字签名。38. A device for generating a digital signature according to claim 32. 39.根据权利要求32的方法或权利要求38的设备,其中39. A method according to claim 32 or an apparatus according to claim 38, wherein SS tt == &Sigma;&Sigma; ii == 11 tt sthe s ii -- 11 PP ii 其中每个Pi是实体Ei的身份的公共函数,并且每个si-1是实体Ei-1的整数密文。where each P i is a public function of the identity of entity E i and each s i-1 is the integer ciphertext of entity E i-1 . 40.根据权利要求39的方法或设备,其中在操作(1)中,所述签署人从所述实体Et-1获得St,并且在操作(2)中,所述签署人生成st40. A method or apparatus according to claim 39, wherein in operation (1) the signer obtains S t from the entity E t-1 , and in operation (2) the signer generates st . 41.根据权利要求39的方法或设备,其中每个Pi依赖于每个实体Ej的身份,使得1≤j≤i。41. A method or apparatus according to claim 39, wherein each Pi is dependent on the identity of each entity Ej such that 1≤j≤i. 42.根据权利要求39的方法或设备,其中:42. A method or apparatus according to claim 39, wherein: 每个实体Ei(i>0)从所述实体Ei-1接收其密钥SiEach entity E i (i>0) receives its key S i from said entity E i-1 ; 每个实体Ei(i<t)生成其密钥si并且还生成密钥Si+1如下:Each entity E i (i<t) generates its key si and also generates key S i+1 as follows: Si+1=Si+siPi+1 S i+1 =S i +s i P i+1 并且提供所述密钥Si+1至所述实体Ei+1and providing said key S i+1 to said entity E i+1 ; 每个实体Ei(0≤i≤t)生成值Qi=siP0,其中P0是群G1的预定义的元素。Each entity E i (0≤i≤t) generates a value Q i =s i P 0 , where P 0 is a predefined element of group G 1 . 43.根据权利要求42的方法或设备,其中所述签名成分Sig将被提供给验证器,其中对于在包括从0到t的整数的子集中的值i,所述验证器访问值{Qi}。43. A method or apparatus according to claim 42, wherein said signature component Sig is to be provided to a verifier, wherein for a value i in the subset comprising integers from 0 to t, said verifier accesses the value { Qi }. 44.根据权利要求43的方法或设备,其中所述包括从0到t的整数子集是包括从1到t-1的所有整数的集合。44. A method or apparatus according to claim 43, wherein said subset of integers comprising from 0 to t is the set comprising all integers from 1 to t-1. 45.一种可操作以验证消息M上的数字签名从而确定所述数字签名是签署人Et的正确签名的设备,所述签署人Et是包括至少实体E0,E1,...,Et,t≥2的分级系统中比实体E0低等级t的实体,其中在该分级系统中每个实体Ei(i=1,...,t)是实体Ei-1的后代,该设备操作可用于:45. An apparatus operable to verify a digital signature on a message M to determine that said digital signature is the correct signature of a signatory E t comprising at least entities E 0 , E 1 , ... , E t , an entity of rank t lower than entity E 0 in a hierarchical system with t≥2, where each entity E i (i=1,...,t) is a member of entity E i−1 in the hierarchical system For posterity, this device operation can be used to: (1)获得签名成分Sig,其为预定义的群G1的元素;(1) Obtain the signature component Sig, which is an element of the predefined group G1 ; (2)获得与各自的一个或多个实体Ei相关联的一个或多个值Qi,所述一个或多个值Qi包括值Qt(2) obtaining one or more values Q i associated with the respective one or more entities E i , said one or more values Q i including the value Q t ; (3)确认(3) confirmation ee ^^ (( PP 00 ,, SigSig )) ee ^^ (( QQ tt ,, PP Mm )) &Pi;&Pi; ii ee ^^ (( QQ ii -- 11 ,, PP ii )) == VV 其中:in: P0是群G1的预定义公共元素;P 0 is a predefined common element of group G 1 ; ê是G1×G1到预定义的群G2的双线性非退化映射;ê is the bilinear non-degenerate mapping from G 1 ×G 1 to the predefined group G 2 ; PM是依赖于消息M的值并且是群G1的成员; PM is a value that depends on message M and is a member of group G1 ; 每个Pi依赖于实体Ei的身份;Each P i depends on the identity of the entity E i ; V是群G2的元素。V is an element of group G2 . 46.根据权利要求43的方法或权利要求45的设备,其中所述积∏iê(Qi-1,Pi)在除了整数i0以外的包括从1到t的所有整数i上进行,以及V=ê(Q0,Pi0)。46. The method according to claim 43 or the apparatus of claim 45, wherein said product ∏ i ê (Q i−1 , P i ) is performed on all integers i including from 1 to t except the integer i 0 , And V=ê(Q 0 , P i0 ). 47.根据权利要求46的方法或设备,其中所述积∏iê(Qi-1,Pi)在包括从2到t的所有整数i上进行,并且V=ê(Q0,P1)。47. A method or apparatus according to claim 46, wherein said product ∏ i ê(Q i-1 , P i ) is performed over all integers i including from 2 to t, and V=ê(Q 0 , P 1 ). 48.根据权利要求33的方法或权利要求45的设备,其中:48. A method according to claim 33 or an apparatus according to claim 45, wherein: 每个实体Ei(i>0)从实体Ei-1接收其密钥SiEach entity E i (i > 0) receives its key S i from entity E i-1 ; 每个实体Ei(i<t)生成其密文si并且还生成密钥Si+1如下:Each entity E i (i<t) generates its ciphertext s i and also generates a key S i+1 as follows: Si+1=Si+siPi+1 S i+1 =S i +s i P i+1 并且提供密钥Si+1给所述实体Ei+1and providing the key S i+1 to said entity E i+1 ; 每个实体Ei(0≤i≤t)生成值Qi=siP0,其中P0是群G1的预定义的元素。Each entity E i (0≤i≤t) generates a value Q i =s i P 0 , where P 0 is a predefined element of group G 1 .
CNA2008101837569A 2002-03-21 2003-03-18 Hierarchical identity-based encryption and signature schemes Pending CN101527629A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US36619602P 2002-03-21 2002-03-21
US60/366,196 2002-03-21
US60/366,292 2002-03-21
US10/384,328 2003-03-07

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN038039109A Division CN1633774B (en) 2002-03-21 2003-03-18 Hierarchical identity-based encryption and signature schemes

Publications (1)

Publication Number Publication Date
CN101527629A true CN101527629A (en) 2009-09-09

Family

ID=41095340

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101837569A Pending CN101527629A (en) 2002-03-21 2003-03-18 Hierarchical identity-based encryption and signature schemes

Country Status (1)

Country Link
CN (1) CN101527629A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104065483A (en) * 2014-06-06 2014-09-24 武汉理工大学 A method for using IBC grades of electronic communication identification
CN105743646A (en) * 2016-02-03 2016-07-06 四川长虹电器股份有限公司 Encryption method and system based on identity
CN105897420A (en) * 2014-11-21 2016-08-24 褚万青 Atomic nucleus type password system, direct communication method and indirect communication method
CN107508796A (en) * 2017-07-28 2017-12-22 北京明朝万达科技股份有限公司 A kind of data communications method and device
CN105897420B (en) * 2014-11-21 2019-07-16 褚万青 A kind of atom caryogram cryptographic system and direct communication method and indirect communication method
CN110176992A (en) * 2019-05-29 2019-08-27 江苏恒宝智能系统技术有限公司 Security key management system and method and its safety element

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104065483A (en) * 2014-06-06 2014-09-24 武汉理工大学 A method for using IBC grades of electronic communication identification
CN104065483B (en) * 2014-06-06 2017-05-10 武汉理工大学 Identity-based cryptograph (IBC) classified using method of electronic communication identities
CN105897420A (en) * 2014-11-21 2016-08-24 褚万青 Atomic nucleus type password system, direct communication method and indirect communication method
CN105897420B (en) * 2014-11-21 2019-07-16 褚万青 A kind of atom caryogram cryptographic system and direct communication method and indirect communication method
CN105743646A (en) * 2016-02-03 2016-07-06 四川长虹电器股份有限公司 Encryption method and system based on identity
CN105743646B (en) * 2016-02-03 2019-05-10 四川长虹电器股份有限公司 A kind of Identity based encryption method and system
CN107508796A (en) * 2017-07-28 2017-12-22 北京明朝万达科技股份有限公司 A kind of data communications method and device
CN107508796B (en) * 2017-07-28 2019-01-04 北京明朝万达科技股份有限公司 A kind of data communications method and device
CN110176992A (en) * 2019-05-29 2019-08-27 江苏恒宝智能系统技术有限公司 Security key management system and method and its safety element
CN110176992B (en) * 2019-05-29 2022-06-03 恒宝股份有限公司 Secure key management system and method and secure element thereof

Similar Documents

Publication Publication Date Title
CN1633774B (en) Hierarchical identity-based encryption and signature schemes
US7653817B2 (en) Signature schemes using bilinear mappings
Gentry et al. Hierarchical ID-based cryptography
JP5933786B2 (en) ID-based encryption and related cryptosystem systems and methods
CN104168114A (en) Distributed type (k, n) threshold certificate-based encrypting method and system
CN110113155A (en) One kind is efficiently without CertPubKey encryption method
CN101594228A (en) Authentication encryption method between certificate public key system and identity public key system
McCullagh et al. Efficient and forward-secure identity-based signcryption
Huige et al. ID-based proxy re-signcryption scheme
Backes et al. Fully secure inner-product proxy re-encryption with constant size ciphertext
CN101527629A (en) Hierarchical identity-based encryption and signature schemes
EP1924021A2 (en) Signature schemes using bilinear mappings
Ahmad et al. TIBC: Trade-off between Identity-Based and Certificateless Cryptography for future internet
an Wang et al. On the role of pkg for proxy re-encryption in identity based setting
CN110855436A (en) Structure of key system based on secondary surplus
Chatterjee et al. Applications, Extensions and Related Primitives
Aman et al. Secure message authentication using true random number generator based on Signcryption scheme using ECC

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20090909