CN101527629A - Hierarchical identity-based encryption and signature schemes - Google Patents
Hierarchical identity-based encryption and signature schemes Download PDFInfo
- 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
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
本申请是申请号为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:
其中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:
其中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和Γ2。The 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。另外,还提供了一个配对或函数
函数最好还是对称的,从而对所有的Q,R∈Γ1都有
本发明中HIDE和HIDS方案的安全性主要是基于双线性Diffie-Hellman问题的。双线性Diffie-Hellman问题是在给定一个随机选取的P∈Γ1、以及aP、bP和cP(对于未知的随机选取的a,b,c∈Z/qZ)的情况下,求出的问题。在Γ1中解决Diffie-Hellman问题就解决了双线性Diffie-Hellman问题,这是因为
如果一个随机化算法IΓ采用了一个保密参数k>0、在k的多项式时间内运行、并输出两个群Γ1和Γ2的描述以及一个可行配对
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
在模块108中,为n个低级PKG各自产生低级密钥生成参数。每个低级密钥生成参数的产生至少要利用其相关低级PKG的低级密钥生成密文。与根密钥生成参数类似,每个低级密钥生成参数掩饰了与其相关的低级密钥生成密文。In
在模块110中,发送方至少利用根密钥生成参数以及与接收方相关的身份信息来编码消息以形成一个密文。例如,可以只利用根密钥生成参数以及接收方的身份来编码所述的消息。或者,也可以利用低级密钥生成参数中的一个,就像在下文中将根据双HIDE方案进行更详细说明的一样。在模块112中,一个低级PKG为接收方生成一个私有密钥,使得该私有密钥至少与根密钥生成密文、与分级结构中根PKG和接收方之间的n个低级PKG相关的n个低级密钥生成密文中的一个或多个、以及接收方的身份信息相关。例如,除了根密钥生成密文和接收方的身份信息之外,接收方的私有密钥最好还至少与向接收方发放私有密钥的PKG的低级密钥生成密文相关。或者,接收方的私有密钥也可以与所有n个前辈PKG的低级密钥生成密文以及根密钥生成密文相关。在模块114中,接收方至少利用其私有密钥来解码密文并恢复消息。除了利用其私有密钥来解码以外,接收方最好还利用与分级结构中根PKG和接收方之间的n个低级PKG相关的n个低级密钥生成参数。In
每个低级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
该实施例的方法在模块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
在模块210中,发送方的上代PKGym 304c为发送方y 306生成一个私有密钥,使得该私有密钥至少与根密钥生成密文、与根PKG302和发送方y 306之间的m个低级PKG 304a,b,c相关的m个低级密钥生成密文中的一个或多个、以及发送方的身份信息相关。例如,除了根密钥生成密文和发送方的身份信息以外,发送方的私有密钥最好至少还与发送方的上代PKGym 304c的低级密钥生成密文相关。或者,发送方的私有密钥也可以与它所有m个直系前辈PKG的低级密钥生成密文以及根密钥生成密文相关。在模块212中,接收方的上代PKGzn304d为接收方z生成一个私有密钥,生成的方式与发送方的上代PKGym304c用来生成发送方私有密钥的方式类似。In
在模块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
然后,在模块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
本发明的这种双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
基本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中,选取一个函数使得该函数能够由第一循环群Γ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,
接下来的一系列模块(模块416至424)示出了作为低级设置算法的组成部分而执行的功能。在模块416中,为接收方的n个前辈低级PKG各生成一个公共元素Pzi。每个公共元素Pzi=H1(ID1,...,IDzi)最好都是第一循环群Γ1的一个元素,其中1≤i≤n。尽管是以单个模块表示的,但是所有公共元素Pzi的产生需要进行一段时间,而非一次全部完成。The next series of blocks (
为接收方的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-
为发送方的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)。该接收方机密元素,
为方便起见,第一函数H1可被选为一种迭代函数,从而可以按照例如H1(Pz(i-1),IDzi)而非H1(ID1,...IDzi)来计算公共点Pi。For 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 (
图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的其他组成部分是加密形式的实际消息,
全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 (
通过选择一个第三函数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(σ)作为加密密钥。相应的,
解密算法从模块630a开始,该模块示出了随机二进制串σ的恢复。随机二进制串σ是利用公式
双基本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的低级密钥生成参数Qzi。With 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,其中
解密算法的效率提高更为惊人。消息M是利用The efficiency improvement of the decryption algorithm is even more astonishing. Message M is exploited
全HIDE也可以被修改以创建一种双全HIDE方案。加密算法中加密文本C的生成被修改为C=[U0,Ul+1,...,Un+1,V,W],其中对于i=0和l+1≤i≤n+1,有Ui=rPzi。参数W和r仍然以同样的方法生成,
在双全HIDE方案中,解密算法也被修改。随机二进制串σ是利用
尽管已经用PKGl 304b作为发送方y与接收方z的最低公共前辈PKG说明了这些双HIDE方案,但是PKGl 304b可以是任意的公共前辈PKG。加密与解密算法是相同的。但是为了获得最高的效率,PKGl 304b最好是最低公共前辈PKG。Although these dual HIDE schemes have been illustrated with
除了效率的提高以外,本发明的双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)并设置
具有更高效的加密解密技术的双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=[U0,Ul+1,K,Un+1,V],那么就可以利用
同样地,也可以将解密器必须计算的配对值的数量减少一个,而又不会提高加密器必须计算的值的数量。例如,双基本HIDE加密算法可以被修改,从而密文
C=[U0,Ul+2,K,Un,V],那么就可以利用
经过认证的低级根PKGCertified Low Level Root PKG
可以通过创建一个经过认证的低级根PKG将上述双HIDE方案的高效性扩展到位于分级结构之外的消息发送方。要“认证,,低级PKG,根PKG可以提出一个附加参数,比如一个随机消息M′。然后,低级PKG“签署”M′,生成签名Sig=Szl+szlPM′,其中Sl是低级PKG的私有密钥,sl则是其低级密钥生成密文。低级PKG还会公布对应于1≤i≤t的Qi。The 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,并生成加密文本
分布式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方案的加密技术的效率。在那种情况下,
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
在模块710中,一个低级PKG为接收方生成一个私有密钥,使得该私有密钥至少与n个低级密钥生成密文中的一个相关。例如,发送方的私有密钥至少可以与向接收方发放私有密钥的PKG的低级密钥生成密文相关。但是,接收方的私有密钥最好与它所有n个前辈PKG的低级密钥生成密文以及根密钥生成密文相关。在模块712中,发送方至少利用其私有密钥来签署消息并生成数字签名。然后在模块714中,接收方或校验器至少利用低级密钥生成参数之一来验证该数字签名。例如,可以只利用根密钥生成参数来验证该签名。或者,也可以利用低级密钥生成参数中的一个或多个。In
图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中,选取一个函数使得该函数能够由第一循环群Γ1的两个元素生成第二循环群Γ2的一个元素。函数最好是一种可行的配对,如上所述。在模块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 ,
接下来的一系列模块(模块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-
为发送方的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)。该发送方机密元素,
为方便起见,第一函数H1可被选为一种迭代函数,从而可以按照例如H1(Py(i-1),IDyi)而非H1(ID1,...IDyi)来计算公共点Pi。For 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本身。接收方通过检验方程
本文参照本发明的优选实施例以及图示实例对本发明进行了详细的说明,但是应该明白,在本发明的思想与范围内可以实现各种变化与改进。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)
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)
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 |
-
2003
- 2003-03-18 CN CNA2008101837569A patent/CN101527629A/en active Pending
Cited By (10)
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 |