Hierarchical identity-based encryption and signature schemes
Summary by NHIP
Hierarchical Identity-Based Signature
The method generates a digital signature by combining a signer's secret key with a message-dependent value using group operations. Distinctive elements include the hierarchical derivation where each entity Eᵢ receives key Sᵢ from parent Eᵢ₋₁ and generates secret sᵢ to compute Sᵢ₊₁ = Sᵢ + sᵢPᵢ₊₁, with Pᵢ depending on identities of entities Eⱼ where 1≤j≤i.
Claim Score by NHIP
Abstract
A signature {Sig, {Qi}} is generated on a message M by a signer Et in a hierarchical system including the entities E0, E1, . . . , Et, each entity Ei (i>0) being a child of Ei−1. Here Sig=St+stPM=∑i=1tsi-1Pi, where: each Si is a secret key of Ei; each si is a secret of Si; PM is a public function of M; each Pi is a public function of the ID's of all entities Ej such that 1≦j≦i; each Qi=siP0 where P0 is public. The verifier confirms that e^(P0,Sig)e^(Qt,PM)∏ie^(Qi-1,Pi)=V, where: the product Πiê(Qi−1,Pi) is taken over all integers i in a proper subset of the integers from 1 to t inclusive; ê is a bilinear non-degenerate mapping; V can be ê(Q0,Pi0) where i0 is predefined (e.g. 1), or V can be another expression is a verifier is part of the hierarchical system.

Term
Term ended
Expired 3 June 2023, 3.3 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
25 claims: 4 independent, 21 dependent
- 1Broadest claimClaim Score 38, average(NHIP)A computer-implemented method of generating a digital signature on a message M for a signer E t which is an entity t levels below an entity E 0 in a hierarchical system including at least the entities E 0 , E 1 , . . . , E t , t≧2, wherein each entity E i (i=1, . . . ,t) is a child of entity E i−1 in the hierarchical system, the method comprising:(1) obtaining the signer's secret key S t which is a member of a group G 1 ;(2) obtaining the signer's integer secret s t ;(3) generating a signature component Sig on the message M as a value Sig=S t +s t P M wherein: “+” is a group operation in the group G 1 ;and P M is a value depending on the message M and is a member of the group G 1 .
- 10A computer-implemented method of verifying a digital signature on a message M to verify that the digital signature is a valid signature by a signer E t which is an entity t levels below an entity E 0 in a hierarchical system including at least the entities E 0 , E 1 , . . . , E t , t≧2, wherein each entity E i (i=1, . . . ,t) is a child of entity E i−1 in the hierarchical system, the method comprising:(1) obtaining a signature component Sig which is an element of a predefined group G 1 ;(2) obtaining one or more values Q i associated with respective one or more entities E i , the one or more values Q i including a value Q t ;(3) confirming that e ^ ( P 0 , Sig ) e ^ ( Q t , P M ) ∏ i e ^ ( Q i - 1 , P i ) = V wherein: P 0 is a predefined element of a group G 1 ;the product Π i ê(Q i−1 ,P i ) is taken over all integers i in a proper subset of the integers from 1 to t inclusive;each Q i−1 =s i−1 P 0 , where s i−1 is an integer secret of the entity E i−1 ;Q t =s t P 0 , where s i is an integer secret of the entity E t ;ê is a bilinear non-degenerate mapping of G 1 ×G 1 into a predefined group G 2 ;P M is a value depending on the message M and is a member of the group G 1 ;each P i depends on an identity of the entity E i ;V is an element of the group G 2 .
- 15An apparatus operable to generate a digital signature on a message M for a signer E t which is an entity t levels below an entity E 0 in a hierarchical system including at least the entities E 0 , E 1 , . . . , E t , t≧2, wherein each entity E i (i=1, . . . ,t) is a child of entity E i−1 in the hierarchical system, the apparatus comprising circuitry for:(1) obtaining the signer's secret key S t which is a member of a group G 1 ;(2) obtaining the signer's integer secret s t ;(3) generating a signature component Sig on the message M as a value Sig=S t +s t P M wherein: “+” is a group operation in the group G 1 ;and P M is a value depending on the message M and is a member of the group G 1 .
- 21An apparatus operable to verify a digital signature on a message M to confirm that the digital signature is a valid signature by a signer E t which is an entity t levels below an entity E 0 in a hierarchical system including at least the entities E 0 , E 1 , . . . , E t , t≧2, wherein each entity E i (i=1, . . . ,t) is a child of entity E i−1 in the hierarchical system, the apparatus comprising circuitry for:(1) obtaining a signature component Sig which is an element of a predefined group G 1 ;(2) obtaining one or more values Q i associated with respective one or more entities E i , the one or more values Q i including a value Q t ;(3) confirming that e ^ ( P 0 , Sig ) e ^ ( Q t , P M ) ∏ i e ^ ( Q i - 1 , P i ) = V wherein: P 0 is a predefined public element of a group G 1 ;ê is a bilinear non-degenerate mapping of G 1 ×G 1 into a predefined group G 2 ;P M is a value depending on the message M and is a member of the group G 1 ;each P i depends on an identity of the entity E i ;V is an element of the group G 2 .
Independent claims4
216 paragraphs in 5 sections, as filed
RELATED APPLICATIONS
The present application is a continuation of U.S. patent application Ser. No. 11/552,076, filed Oct. 23, 2006, which is now U.S. Pat. No. 7,337,322, incorporated herein by reference, which is a division of U.S. patent application Ser. No. 10/384,328, filed Mar. 7, 2003, which is now U.S. Pat. No. 7,349,538, incorporated herein by reference, which claims priority under 35 U.S.C. § 119(e) to provisional U.S. patent applications Ser. No. 60/366,292, filed on Mar. 21, 2002, and Ser. No. 60/366,196, filed on Mar. 21, 2002, both of which are incorporated herein by reference.
BACKGROUND OF THE INVENTION
The present invention relates in general to cryptography and secure communication via computer networks or via other types of systems and devices, and more particularly to hierarchical, identity-based schemes for encrypting and decrypting communications.
Roughly speaking, identity-based cryptosystems are public key cryptosystems in which the public key of an entity is derived from information associated with the entity's identity. For instance, the identity information may be personal information (i.e., name, address, email address, etc.), or computer information (i.e., IP address, etc.). However, identity information may include not only information that is strictly related to an entity's identity, but also widely available information such as the time or date. That is, the importance of the concept of identity information is not its strict relation to the entity's identity, but that the information is readily available to anyone who wishes to encrypt a message to the entity.
An entity's private key is generated and distributed by a trusted party or logical process, typically known as a private key generator (“PKG”). The PKG uses a master secret to generate private keys. Because an entity's public key may be derived from its identity, when Alice wants to send a message to Bob, she does not need to retrieve Bob's public key from a database. Instead, Alice merely derives the key directly from Bob's identifying information. Databases of public keys are unnecessary. Certificate authorities (“CAs”) also are unnecessary. There is no need to “bind” Bob's identity to his public key because his identity is his public key.
The concept of identity-based cryptosystems is not new. It was proposed in A. Shamir, <i>Identity</i>-<i>Based Cryptosystems and Signatures Schemes</i>, A<smallcaps>DVANCES IN </smallcaps>C<smallcaps>RYPTOGRAPHY</smallcaps>—C<smallcaps>RYPTO </smallcaps>'84, Lecture Notes in Computer Science 196 (1984), Springer, 47-53. However, practical identity-based encryption schemes have not been found until recently. For instance, identity-based schemes were proposed in C. Cocks, <i>An Identity</i>-<i>Based Encryption Scheme Based on Quadratic Residues</i>, available at http://www.cesg.gov.uk/technology/id-pkc/media/ciren.pdf; D. Boneh, M. Franklin, <i>Identity Based Encryption from the Weil Pairing</i>, A<smallcaps>DVANCES IN </smallcaps>C<smallcaps>RYPTOLOGY</smallcaps>—C<smallcaps>RYPTO </smallcaps>2001, Lecture Notes in Computer Science 2139 (2001), Springer, 213-229; and D. Boneh, M. Franklin, <i>Identity Based Encryption from the Weil Pairing </i>(extended version), available at http://www.cs.stanford.edu/˜dabo/papers/ibe.pdf. Cocks's scheme is based on the “Quadratic Residuosity Problem,” and although encryption and decryption are reasonably fast (about the speed of RSA), there is significant message expansion (i.e., the bit-length of the ciphertext is many times the bit-length of the plaintext). The Boneh-Franklin scheme bases its security on the “Bilinear Diffie-Hellman Problem,” and it is quite fast and efficient when using Weil or Tate pairings on supersingular elliptic curves or abelian varieties.
However, the known identity-based encryption schemes have a significant shortcoming—they are not hierarchical. In non-identity-based public key cryptography, it has been possible to have a hierarchy of CAs in which the root CA can issue certificates for other CAs, who in turn can issue certificates for users in particular domains. This is desirable because it reduces the workload on the root CA. A practical hierarchical scheme for identity-based cryptography has not been developed.
Ideally, a hierarchical identity-based encryption scheme would involve a hierarchy of logical or actual PKGs. For instance, a root PKG may issue private keys to other PKGs, who in turn would issue private keys to users in particular domains. It also would be possible to send an encrypted communication without an online lookup of the recipient's public key or lower-level public parameters, even if the sender is not in the system at all, as long as the sender obtained the public parameters of the root PKG. Another advantage of a hierarchical identity-based encryption scheme would be damage control. For instance, disclosure of a domain PKG's secret would not compromise the secrets of higher-level PKGs, or of any other PKGs that are not direct descendents of the compromised domain PKG. The schemes taught by Cocks and Boneh-Franklin do not have these properties.
A secure and practical hierarchical identity-based encryption scheme has not been developed. A hierarchical identity-based key sharing scheme with partial collusion-resistance is given in G. Hanaoka, T. Nishioka, Y. Zheng, H. Imai, <i>An Efficient Hierarchical Identity</i>-<i>Based Key</i>-<i>Sharing Method Resistant Against Collusion Attacks</i>, A<smallcaps>DVANCES IN </smallcaps>C<smallcaps>RYPTOGRAPHY</smallcaps>—A<smallcaps>SIACRYPT </smallcaps>1999, Lecture Notes in Computer Science 1716 (1999), Springer 348-362; and G. Hanaoka, T. Nishioka, Y. Zheng, H. Imai, <i>A Hierarchical Non</i>-<i>Interactive Key</i>-<i>Sharing Scheme With Low Memory Size and High Resistance Against Collusion Attacks</i>, to appear in T<smallcaps>HE </smallcaps>C<smallcaps>OMPUTER </smallcaps>J<smallcaps>OURNAL</smallcaps>. In addition, an introduction to hierarchical identity-based encryption was provided in J. Horwitz, B. Lynn, <i>Toward Hierarchical Identity</i>-<i>Based Encryption</i>, to appear in A<smallcaps>DVANCES IN </smallcaps>C<smallcaps>RYPTOGRAPHY</smallcaps>—E<smallcaps>UROCRYPT </smallcaps>2002, Lecture Notes in Computer Science. Springer. Horwitz and Lynn proposed a two-level hierarchical scheme with total collusion-resistance at the first level and partial collusion-resistance at the second level (i.e., users can collude to obtain the secret of their domain PKG and thereafter masquerade as that domain PKG). However, the complexity of the Horwitz-Lynn system increases with the collusion-resistance at the second level, and therefore that scheme cannot be both practical and secure.
Accordingly, there has been a need for a secure and practical hierarchical identity-based encryption scheme. It is therefore an object of the present invention to provide a secure and practical hierarchical identity-based encryption scheme. It is another object of the present invention to provide a secure and practical hierarchical identity-based signature scheme. It is a further object of the present invention that the encryption and signature schemes be fully scalable. It is a still further object of the present invention that the encryption and signature schemes have total collusion resistance on an arbitrary number of levels, and that they have chosen-ciphertext security in the random oracle model.
BRIEF SUMMARY OF THE PREFERRED EMBODIMENTS
In accordance with the present invention, methods are provided for implementing secure and practical hierarchical identity-based encryption and signature schemes.
According to one aspect of the present invention, a method is provided for encoding and decoding a digital message between a sender and a recipient in a system including a plurality of private key generators (“PKGs”). The PKGs include at least a root PKG and n lower-level PKG in the hierarchy between the root PKG and the recipient, wherein n≧1. A root key generation secret is selected and is known only to the root PKG. A root key generation parameter is generated based on the root key generation secret. A lower-level key generation secret is selected for each of the n lower-level PKGs, wherein each lower-level key generation secret is known only to its associated lower-level PKG. A lower-level key generation parameter also is generated for each of the n lower-level PKGs using at least the lower-level key generation secret for its associated lower-level private key generator. The message is encoded to form a ciphertext using at least the root key generation parameter and recipient identity information. A recipient private key is generated such that the recipient private key is related to at least the root key generation secret, one or more of the n lower-level key generation secrets associated with the n lower-level PKGs in the hierarchy between the root PKG and the recipient, and the recipient identity information. The ciphertext is decoded to recover the message using at least the recipient private key.
According to another aspect of the present invention, a method is provided for encoding and decoding a digital message between a sender and a recipient in a system including a plurality of private key generators (“PKGs”). The PKGs include at least a root PKG, m lower-level PKGs in the hierarchy between the root PKG and the sender, wherein m≧1, n lower-level PKG in the hierarchy between the root PKG and the recipient, wherein n≧1, and PKG<sup>l</sup>, which is a common ancestor PKG to both the sender and the recipient. In the hierarchy, l of the m private key generators are common ancestors to both the sender and the recipient, wherein l≧1.
According to this aspect of the invention, a lower-level key generation secret is selected for each of the m lower-level PKGs in the hierarchy between the root PKG and the sender. A sender private key is generated such that the sender private key is related to at least the root key generation secret, one or more of the m lower-level key generation secrets associated with the m lower-level PKGs in the hierarchy between the root PKG and the sender, and sender identity information. A recipient private key is generated such that the recipient private key is related to at least the root key generation secret, one or more of the n lower-level key generation secrets associated with the n lower-level PKGs in the hierarchy between the root PKG and the recipient, and recipient identity information. The message is encoded using at least the recipient identity information, the sender private key, and zero or more of the lower-level key generation parameters associated with the (m−l+1) private key generators at or below the level of the common ancestor PKG<sup>l</sup>, but not using any of the lower-level key generation parameters that are associated with the (l−1) PKGs above the common ancestor PKG<sup>l</sup>. The message is decoded using at least the sender identity information, the recipient private key, and zero or more of the lower-level key generation parameters associated with the (n−l+1) private key generators at or below the level of the common ancestor PKG<sub>l</sub>, but not using any of the lower-level key generation parameters that are associated with the (l−1) PKGs above the common ancestor PKG<sub>l</sub>.
According to another aspect of the present invention, a method is provided for generating and verifying a digital signature of a message between a sender and a recipient in a system including a plurality of PKGs. The PKGs include at least a root PKG and n lower-level PKG in the hierarchy between the root PKG and the sender, wherein n≧1. A root key generation secret is selected and is known only to the root PKG. A root key generation parameter is generated based on the root key generation secret. A lower-level key generation secret is selected for each of the n lower-level PKGs, wherein each lower-level key generation secret is known only to its associated lower-level PKG. A lower-level key generation parameter also is generated for each of the n lower-level PKGs using at least the lower-level key generation secret for its associated lower-level private key generator. A private key is generated for the sender such that the private key is related to at least the root key generation secret and sender identity information. The message is signed to generate the digital signature using at least the sender private key. The digital message is verified using at least the root key generation parameter and the sender identity information.
BRIEF DESCRIPTION OF THE DRAWINGS
The subsequent description of the preferred embodiments of the present invention refers to the attached drawings, wherein:
<figref idref="DRAWINGS">FIG. 1</figref> shows a flow diagram illustrating a method of encoding and decoding a digital message according to one presently preferred embodiment of the invention;
<figref idref="DRAWINGS">FIG. 2</figref> shows a flow diagram illustrating a method of encoding and decoding a digital message between a sender y and a recipient z according to another presently preferred embodiment of the invention;
<figref idref="DRAWINGS">FIG. 3</figref> shows a block diagram illustrating a typical hierarchical structure in which this method of <figref idref="DRAWINGS">FIG. 2</figref> may be performed;
<figref idref="DRAWINGS">FIG. 4</figref> shows a flow diagram illustrating a method of encoding and decoding a digital message M communicated between a sender y and a recipient z according to another presently preferred embodiment of the invention;
<figref idref="DRAWINGS">FIG. 5</figref> shows a flow diagram illustrating a method of encoding and decoding a digital message M communicated between a sender y and a recipient z according to another presently preferred embodiment of the invention;
<figref idref="DRAWINGS">FIG. 6</figref> shows a flow diagram illustrating a method of encoding and decoding a digital message M communicated between a sender y and a recipient z according to another presently preferred embodiment of the invention;
<figref idref="DRAWINGS">FIG. 7</figref> shows a flow diagram illustrating a method of generating and verifying a digital signature according to another presently preferred embodiment of the invention;
<figref idref="DRAWINGS">FIG. 8</figref> shows a flow diagram illustrating a method of generating and verifying a digital signature Sig of a digital message M communicated between a sender y and a recipient z according to another presently preferred embodiment of the invention; and
<figref idref="DRAWINGS">FIG. 9</figref> shows a flow diagram illustrating a method of generating and verifying a digital signature Sig of a digital message M communicated between a sender y and a recipient z according to another presently preferred embodiment of the invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The presently preferred methods of the invention provide secure and practical hierarchical identity-based encryption (“HIDE”) and signature (“HIDS”) schemes. The hierarchical schemes are fully scalable, have total collusion resistance on an arbitrary number of levels, and have chosen-ciphertext security in the random oracle model. These objectives are achieved, in part, by introducing additional random information at each of the lower-level PKGs. One intuitively surprising aspect of these schemes is that, even though lower level PKGs generate additional random information, this does not necessitate adding public parameters below the root level of the hierarchy. In addition, the random information generated by a lower-level PKG does not adversely affect the ability of users not under the lower-level PKG to send encrypted communications to users under the lower-level PKG.
Each of the HIDE and HIDS schemes of the present invention requires a hierarchical structure of PKGs, including at least one root PKG and a plurality of lower-level PKGs. The hierarchy and the lower-level PKGs may be logical or actual. For instance, a single entity may generate both a root key generation secret and the lower-level key generation secrets from which lower-level users' encryption or signature keys are generated. In this case, the lower-level PKGs are not separate entities, but are merely processes or information arranged in a logical hierarchy and used to generate keys for descendent PKGs and users in the hierarchy. Alternatively, each lower-level PKG may be a separate entity. Another alternative involves a hybrid of actual and logical lower-level PKGs. For purposes of this disclosure, the term “lower-level PKG” will be used generically to refer to any of these alternatives.
In the context of the hierarchical identity-based cryptosystems disclosed herein, identity-based public keys may be based on time periods. For instance, a particular recipient's identity may change with each succeeding time period. Alternatively, a recipient may arrange the time periods as children or descendents of itself in a hierarchy, and a sender would use the identity of the proper time period when encoding the message. Either way, each key may be valid for encrypting messages to Bob only during the associated time period.
The HIDE schemes of the present invention generally include five randomized algorithms: Root Setup, Lower-level Setup, Extraction, Encryption, and Decryption. Three of these algorithms rely upon the identities of the relevant entities in the hierarchy. Each user preferably has a position in the hierarchy that may be defined by its tuple of IDs: (ID<sub>1</sub>, . . . , ID<sub>t</sub>). The user's ancestors in the hierarchy are the root PKG and the users, or PKGs, whose ID-tuples are {(ID<sub>1</sub>, . . . , ID<sub>i</sub>): 1≦i≦(t−1)}. The ID-tuples preferably are represented as binary strings for purposes of computations.
In the Root Setup algorithm, the root PKG uses a security parameter k to generate public system parameters params and a root key generation secret. The system parameters include a description of the message space <img file="US7590854B2_D0001.tif" /> and the ciphertext space <img file="US7590854B2_D0002.tif" />. The system parameters will be publicly available, while only the root PKG will know the root key generation secret.
In the Lower-level Setup algorithm, each lower-level PKG preferably generates its own lower-level key generation secret for purposes of extraction. Alternatively, a lower-level PKG may generate random one-time secrets for each extraction.
In the Extraction algorithm, a PKG (whether the root PKG or a lower-level PKG) generates a private key for any of its children. The private key is generated using the system parameters, the generating PKG's private key, and any other preferred secret information.
In the Encryption algorithm, a sender receives the system parameters from the root PKG, preferably via some secure means outside the present system. It is not necessary for the sender to receive any of the lower-level key generation parameters. The sender encodes a message M ε <img file="US7590854B2_D0003.tif" /> to generate a ciphertext C ε <img file="US7590854B2_D0004.tif" /> using params and the ID-tuple of the intended recipient. Conversely, in the Decryption algorithm, the recipient decodes the ciphertext C to recover the message M using params and the recipient's private key d. Encryption and decryption preferably satisfy the standard consistency constraint:
∀M ε <img file="US7590854B2_D0005.tif" />: Decryption(params, d, C)=M
where C=Encryption(params, ID-tuple, M).
Like the HIDE schemes, the HIDS schemes of the present invention also generally include five randomized algorithms: Root Setup, Lower-level Setup, Extraction, Signing, and Verification. For Root Setup, the system parameters are supplemented to include a description of the signature space <img file="US7590854B2_D0006.tif" />. Lower-level Setup and Extraction preferably are the same as for HIDE, as described above.
In the Signing algorithm, the sender of a digital message signs the message M ε <img file="US7590854B2_D0007.tif" /> to generate a signature S ε <img file="US7590854B2_D0008.tif" /> using params and the sender's private key d. In the Verification algorithm, the recipient of the signed message verifies the signature S using params and the ID-tuple of the sender. The Verification algorithm preferably outputs “valid” or “invalid”. Signing and Verification also preferably satisfies a consistency constraint:
∀M ε <img file="US7590854B2_D0009.tif" />: Verification(params, ID-tuple, S)=“valid”
where S=Signing(params, d, M).
Security of HIDE and HIDS Schemes
The security of the schemes embodying the present invention will now be discussed with respect to both HIDE and HIDS. It has been noted in the context of non-hierarchical identity-based cryptography that the standard definition of chosen-ciphertext security must be strengthened for identity-based systems. This is because it should be assumed, for purposes of a security analysis, that an adversary can obtain the private key associated with any identity of its choice (other than the particular identity being attacked). The same applies to hierarchical identity-based cryptography. Accordingly, to establish that the HIDE schemes of the present invention are chosen-ciphertext secure, a simulated attacker is allowed to make private key extraction queries. Also, the simulated adversary is allowed to choose the identity on which it wishes to be challenged.
It should also be noted that an adversary may choose the identity of its target adaptively or nonadaptively. An adversary that chooses its target adaptively will first make hash queries and extraction queries, and then choose its target based on the results of these queries. Such an adversary might not have a particular target in mind when it begins the attack. Rather, the adversary is successful when it is able to hack somebody. A nonadaptive adversary, on the other hand, chooses its target independently from results of hash queries and extraction queries. For example, such an adversary might target a personal enemy. The adversary may still make hash queries and extraction queries, but its target choice is based strictly on the target's identity, not on the query results. Obviously, security against an adaptively-chosen-target adversary is the stronger, and therefore preferable, notion of security. However, the security analysis of the HIDE schemes in the present invention address both types of security.
A HIDE scheme is said to be semantically secure against adaptive chosen ciphertext and adaptive chosen target attack if no polynomially bounded adversary <img file="US7590854B2_D0010.tif" /> has a non-negligible advantage against the challenger in the following game.
SETUP: The challenger takes a security parameter k and runs the Root Setup algorithm. It gives the adversary the resulting system parameters params. It keeps the root key generation secret to itself.
PHASE 1: The adversary issues queries q<sub>1</sub>, . . . , q<sub>m</sub>, where q<sub>i </sub>is one of: <ul id="ul0001" list-style="none"><li id="ul0001-0001" num="0000"><ul id="ul0002" list-style="none"><li id="ul0002-0001" num="0044">1. Public-key query (ID-tuple<sub>i</sub>): The challenger runs a hash algorithm on ID-tuple<sub>i </sub>to obtain the public key H (ID-tuple<sub>i</sub>) corresponding to ID-tuple<sub>i</sub>.</li><li id="ul0002-0002" num="0045">2. Extraction query (ID-tuple<sub>i</sub>): The challenger runs the Extraction algorithm to generate the private key d<sub>i </sub>corresponding to ID-tuple<sub>i</sub>, and sends d<sub>i </sub>to the adversary.</li><li id="ul0002-0003" num="0046">3. Decryption query (ID-tuple<sub>i</sub>, C<sub>i</sub>): The challenger runs the Extraction algorithm to generate the private key d<sub>i </sub>corresponding to ID-tuple<sub>i</sub>, runs the Decryption algorithm to decrypt C<sub>i </sub>using d<sub>i</sub>, and sends the resulting plaintext to the adversary. <br /> These queries may be asked adaptively. In addition, the queried ID-tuple<sub>i </sub>may correspond to a position at any level of the hierarchy. </li></ul></li></ul>
CHALLENGE: Once the adversary decides that Phase 1 is over, it outputs two equal-length plaintexts M<sub>0</sub>, M<sub>1 </sub>ε <img file="US7590854B2_D0011.tif" /> and an ID-tuple on which it wishes to be challenged. The only constraints are that neither this ID-tuple nor its ancestors appear in any private key extraction query in Phase 1. The challenger picks a random bit b ε {0,1} and sets C=Encryption(params, ID-tuple, M<sub>b</sub>). It sends C as a challenge to the adversary.
PHASE 2: The adversary issues more queries q<sub>m+1</sub>, . . . , q<sub>n </sub>where q<sub>i </sub>is one of: <ul id="ul0003" list-style="none"><li id="ul0003-0001" num="0000"><ul id="ul0004" list-style="none"><li id="ul0004-0001" num="0049">1. Public-key query (ID-tuple<sub>i</sub>): The challenger responds as in Phase 1.</li><li id="ul0004-0002" num="0050">2. Extraction query (ID-tuple<sub>i</sub>): The challenger responds as in Phase 1.</li><li id="ul0004-0003" num="0051">3. Decryption query (C, ID-tuple<sub>i</sub>): The challenger responds as in Phase 1. <br /> The queries in Phase 2 are subject to the constraint that the challenger cannot make an Extraction query on the ID-tuple associated with the challenge ciphertext C, or make a Decryption query using that ID-tuple and the ciphertext C. This same constraint also applies to all ancestors of the ID-tuple. </li></ul></li></ul>
GUESS: The adversary outputs a guess b′ ε {0,1}. The adversary wins the game if b=b′. The adversary's advantage in attacking the scheme is defined to be |Pr[b=b′]−½|.
A HIDE schemes is said to be a one-way encryption scheme if no polynomial time adversary has a non-negligible advantage in the game described below. In this game, the adversary <img file="US7590854B2_D0012.tif" /> is given a random public key K<sub>pub </sub>and a ciphertext C that is the encryption of a random message M using K<sub>pub</sub>, and outputs a guess for the plaintext. The adversary is said to have an advantage ε against the scheme if ε is the probability that <img file="US7590854B2_D0013.tif" /> outputs M. The game is played as follows:
SETUP: The challenger takes a security parameter k and runs the Root Setup algorithm. It gives the adversary the resulting system parameters params. It keeps the root key generation secret to itself.
PHASE 1: The adversary makes public key and/or extraction queries as in Phase 1 of the chosen-ciphertext security analysis described above.
CHALLENGE: Once the adversary decides that Phase 1 is over, it outputs a new ID-tuple ID on which it wishes to be challenged. The challenger picks a random M ε <img file="US7590854B2_D0014.tif" /> and sets C=Encryption(params, ID-tuple, M). It sends C as a challenge to the adversary.
PHASE 2: The adversary issues more public-key queries and more extraction queries on identities other than ID and its ancestors, and the challenger responds as in Phase 1.
GUESS: The adversary outputs a guess M′ ε <img file="US7590854B2_D0015.tif" />. The adversary wins the game if M=M′. The adversary's advantage in attacking the scheme is defined to be Pr[M=M′].
The schemes of the present invention are secure against the challenges described above. In addition, the HIDS schemes of the present invention are secure against existential forgery on adaptively chosen messages. An adversary should be unable to forge its target's signature on other messages that the target has not signed previously, even after (adaptively) obtaining the target's signature on messages of the adversary's choosing. A HIDS adversary also will have the ability to make public key queries and private key extraction queries on entities other than the target and its ancestors, and the ability to choose its target. As with HIDE, the adversary's choice of target may be adaptive or nonadaptive.
Pairings
The presently preferred HIDE and HIDS schemes of the present invention are based on pairings, such as, for instance, the Weil or Tate pairings associated with elliptic curves or abelian varieties. The methods also are based on the Bilinear Diffie-Hellman problem. They use two cyclic groups <img file="US7590854B2_D0016.tif" /><sub>1 </sub>and <img file="US7590854B2_D0017.tif" /><sub>2</sub>, preferably of the same large prime order q. The first group <img file="US7590854B2_D0018.tif" /><sub>1 </sub>preferably is a group of points on an elliptic curve or abelian variety, and the group law on <img file="US7590854B2_D0019.tif" /><sub>1 </sub>may be written additively. The second group <img file="US7590854B2_D0020.tif" /><sub>2 </sub>preferably is a multiplicative subgroup of a finite field, and the group law on <img file="US7590854B2_D0021.tif" /><sub>2 </sub>may be written multiplicatively. However, other types of groups may be used as <img file="US7590854B2_D0022.tif" /><sub>1 </sub>and <img file="US7590854B2_D0023.tif" /><sub>2 </sub>consistent with the present invention.
The methods also use a generator P<sub>0 </sub>of the first group <img file="US7590854B2_D0024.tif" /><sub>1</sub>. In addition, a pairing or function ê: <img file="US7590854B2_D0025.tif" /><sub>1</sub>×<img file="US7590854B2_D0026.tif" /><sub>1</sub>→<img file="US7590854B2_D0027.tif" /><sub>2 </sub>is provided for mapping two elements of the first group <img file="US7590854B2_D0028.tif" /><sub>1 </sub>to one element of the second group <img file="US7590854B2_D0029.tif" /><sub>2</sub>. The function ê preferably satisfies three conditions. First, the function ê preferably is bilinear, such that if Q and R are in <img file="US7590854B2_D0030.tif" /><sub>1 </sub>and a and b are integers, then ê(aQ, bR)=ê(Q, R)<sup>ab</sup>. Second, the function ê preferably is non-degenerate, such that the map does not send all pairs in <img file="US7590854B2_D0031.tif" /><sub>1</sub>×<img file="US7590854B2_D0032.tif" /><sub>1 </sub>to the identity in <img file="US7590854B2_D0033.tif" /><sub>2</sub>. Third, the function ê preferably is efficiently computable. A function ê satisfying these three conditions is considered to be admissible.
The function ê also preferably is symmetric, such that ê(Q, R)=ê(R, Q) for all Q, R ε <img file="US7590854B2_D0034.tif" /><sub>1</sub>. Symmetry, however, follows immediately from the bilinearity and the fact that <img file="US7590854B2_D0035.tif" /><sub>1 </sub>is a cyclic group. Weil and Tate pairings associated with supersingular elliptic curves or abelian varieties can be modified to create such bilinear maps according to methods known in the art. However, even though reference to elements of the first cyclic group <img file="US7590854B2_D0036.tif" /><sub>1 </sub>as “points” may suggest that the function ê is a modified Weil or Tate pairing, it should be noted that any admissible pairing ê will work.
The security of the HIDE and HIDS schemes of the present invention is based primarily on the difficulty of the Bilinear Diffie-Hellman problem. The Bilinear Diffie-Hellman problem is that of finding ê(P, P)<sup>abc </sup>given a randomly chosen P ε <img file="US7590854B2_D0037.tif" /><sub>1</sub>, as well as aP, bP, and cP (for unknown randomly chosen a, b, c ε <img file="US7590854B2_D0038.tif" />/q<img file="US7590854B2_D0039.tif" />). Solving the Diffie-Hellman problem in <img file="US7590854B2_D0040.tif" /><sub>1 </sub>solves the Bilinear Diffie-Hellman problem because ê(P, P)<sup>abc</sup>=ê(abP, cP). Similarly, solving the Diffie-Hellman problem in <img file="US7590854B2_D0041.tif" /><sub>2 </sub>solves the Bilinear Diffie-Hellman problem because, if g=ê(P, P), then g<sup>abc</sup>=(g<sup>ab</sup>)<sup>c </sup>where g<sup>ab</sup>=ê(aP, bP) and g<sup>c</sup>=ê(P, cP). For the Bilinear Diffie-Hellman problem to be hard, <img file="US7590854B2_D0042.tif" /><sub>1 </sub>and <img file="US7590854B2_D0043.tif" /><sub>2 </sub>should be chosen such that there is no known algorithm for efficiently solving the Diffie-Hellman problem in either <img file="US7590854B2_D0044.tif" /><sub>1 </sub>or <img file="US7590854B2_D0045.tif" /><sub>2</sub>. If the Bilinear Diffie-Hellman problem is hard for a pairing ê, then it follows that ê is non-degenerate.
A randomized algorithm <img file="US7590854B2_D0046.tif" /> is a Bilinear Diffie-Hellman generator if <img file="US7590854B2_D0047.tif" /> takes a security parameter k>0, runs in time polynomial in k, and outputs the description of two groups <img file="US7590854B2_D0048.tif" /><sub>1 </sub>and <img file="US7590854B2_D0049.tif" /><sub>2</sub>, preferably of the same prime order q, and the description of an admissible pairing ê: <img file="US7590854B2_D0050.tif" /><sub>1</sub>×<img file="US7590854B2_D0051.tif" /><sub>1</sub>→<img file="US7590854B2_D0052.tif" /><sub>2</sub>. If <img file="US7590854B2_D0053.tif" /> is a Bilinear Diffie-Hellman parameter generator, the advantage Adv<img file="US7590854B2_D0054.tif" />(<img file="US7590854B2_D0055.tif" />) that an algorithm <img file="US7590854B2_D0056.tif" /> has in solving the Bilinear Diffie-Hellman problem is defined to be the probability that the algorithm <img file="US7590854B2_D0057.tif" /> outputs ê(P, P)<sup>abc </sup>when the inputs to the algorithm are <img file="US7590854B2_D0058.tif" /><sub>1</sub>, <img file="US7590854B2_D0059.tif" /><sub>2</sub>, ê, P, aP, bP, and cP, where (<img file="US7590854B2_D0060.tif" /><sub>1</sub>, <img file="US7590854B2_D0061.tif" /><sub>2</sub>, ê) is the output of <img file="US7590854B2_D0062.tif" /> for a sufficiently large security parameter k, P is a random generator of <img file="US7590854B2_D0063.tif" /><sub>1</sub>, and a, b, and c are random elements of <img file="US7590854B2_D0064.tif" />/q<img file="US7590854B2_D0065.tif" />. The assumption underlying the Bilinear Diffie-Hellman problem is that Adv<img file="US7590854B2_D0066.tif" />(<img file="US7590854B2_D0067.tif" />) is negligible for all efficient algorithms <img file="US7590854B2_D0068.tif" />.
HIDE Schemes
Referring now to the accompanying drawings, <figref idref="DRAWINGS">FIG. 1</figref> shows a flow diagram illustrating a method of encoding and decoding a digital message according to one presently preferred embodiment of the invention. The method is performed in a HIDE system including a plurality of PKGs. The PKGs include at least a root PKG and n lower-level PKGs in the hierarchy between the root PKG and the recipient, wherein n≧1.
In block <b>102</b>, the root PKG selects a root key generation secret known only to the root PKG. The root key generation secret may be used to generate private keys for PKGs and/or users below the root PKG in the hierarchy. The root PKG then generates a root key generation parameter based on the root key generation secret in block <b>104</b>. The root key generation parameter is used to mask the root key generation secret. The root key generation parameter may be revealed to lower-level PKGs without compromising the root key generation secret. The lower-level PKGs select lower-level key generation secrets in block <b>106</b>. The lower-level key generation secret associated with a given lower-level PKG may be used to generate private keys for PKGs and/or users below the associated lower-level PKG in the hierarchy. Like the root key generation secret, each of the lower-level key generation secrets is known only to its associated lower-level PKG.
In block <b>108</b>, lower-level key generation parameters are generated for each of the n lower-level PKGs. Each of the lower-level key generation parameters is generated using at least the lower-level key generation secret for its associated lower-level PKG. Like the root key generation parameter, each of the lower-level key generation parameters masks its associated lower-level key generation secret.
Using at least the root key generation parameter and identity information associated with the recipient, the sender encodes the message in block <b>110</b> to form a ciphertext. For instance, the message may be encoded using only the root key generation parameter and the recipient's identity. Alternatively, one of the lower-level key generation parameters may be used, such as is described in more detail below with respect to dual-HIDE schemes. In block <b>112</b>, a lower-level PKG generates a private key for the recipient such that the private key is related to at least the root key generation secret, one or more of the n lower-level key generation secrets associated with the n lower-level PKGs in the hierarchy between the root PKG and the recipient, and the recipient's identity information. For instance, in addition to root key generation secret and the recipient's identity information, the recipient's private key preferably also is related at least to the lower-level key generation secret of the PKG that issued the private key to the recipient. Alternatively, the recipient's private key may be related to all n of its ancestral PKG's lower-level key generation secrets, as well as the root key generation secret. In block <b>114</b>, the recipient uses at least its private key to decode the ciphertext and recover the message. In addition to using its private key to decode, the recipient preferably also uses the n lower-level key generation parameters associated with the n lower-level PKGs in the hierarchy between the root PKG and the recipient.
Each lower-level PKG has a key generation secret, just like the root PKG. As described above, a lower-level PKG preferably uses this secret to generate a private key for each of its children, just as the root PKG does. As a result, the children's private keys are related to the lower-level PKG's key generation secret. This is true even if the lower-level PKG uses a modified version of its key generation secret to obscure that secret for purposes of restricting key escrow, as described more fully below. At the same time, the lower-level PKGs need not always use the same secret for each private key extraction. Rather, a new key generation secret could be generated randomly for each of the PKG's children, resulting in a different key generation parameter for each child.
Because a lower-level PKG is able to generate a private key for the recipient (block <b>112</b>), the root PKG need not generate all of the private keys itself. In addition, because the lower-level PKGs use their own key generation secrets to generate private keys for their descendants, compromising a lower-level key generation secret causes only limited security damage to the hierarchy. Rather than compromising all of the private keys in the hierarchy, a breach of a lower-level PKG compromises only the private key of that PKG and those private keys that were generated using that PKG's key generation secret (i.e., the private keys of those users that are direct hierarchical descendants of the compromised PKG).
Another advantage of this embodiment is that the sender need not be in the hierarchy to send an encoded message to the recipient. The sender merely needs to know the identity information associated with the recipient and the system parameters generated by the root PKG. There are however, certain additional advantages of the HIDE schemes of the present invention that become available when the sender is positioned within the hierarchy. For instance, when both the sender and the recipient are in the hierarchy, the efficiency of the message encryption may be improved by using the identities of both parties. This type of HIDE scheme may be referred to as dual-HIDE because the identities of both the sender and the recipient are used as input for the encryption and decryption algorithms. A method of encoding and decoding a message using a dual-HIDE scheme will now be discussed with reference to <figref idref="DRAWINGS">FIGS. 2 and 3</figref>.
Dual-HIDE
<figref idref="DRAWINGS">FIG. 2</figref> shows a flow diagram illustrating a method of encoding and decoding a digital message between a sender y and a recipient z according to another presently preferred embodiment of the invention. <figref idref="DRAWINGS">FIG. 3</figref> shows a block diagram illustrating a typical hierarchical structure in which this method may be performed. Like the previous embodiment, this method is performed in a HIDE system including at least a root PKG <b>302</b> and n lower-level PKGs <b>304</b><i>a,b,d </i>in the hierarchy between the root PKG <b>302</b> and the recipient z <b>308</b>, wherein n≧1. The sender y <b>306</b> in this embodiment also must be in the hierarchy, and the hierarchy also includes m lower-level PKGs <b>304</b><i>a,b,c </i>between the root PKG <b>302</b> and the sender y <b>306</b>, wherein m≧1. Of the m PKGs <b>304</b><i>a,b,c </i>between the root PKG <b>302</b> and the sender y <b>306</b>, and the n PKGs <b>304</b><i>a,b,d </i>between the root PKG <b>302</b> and the recipient z <b>308</b>, there are l PKGs <b>304</b><i>a,b </i>that are common ancestors to both the sender y <b>306</b> and the recipient z <b>308</b>, wherein 1≦l≦m, n. For instance, two of these l common ancestral PKGs (PKG<sub>y1</sub>/PKG<sub>z1 </sub><b>304</b><i>a </i>and PKG<sub>yl</sub>/PKG<sub>zl </sub><b>304</b><i>b</i>) are shown in <figref idref="DRAWINGS">FIG. 3</figref>.
The method of this embodiment begins in block <b>202</b>, when the root PKG <b>302</b> selects a root key generation secret known only to the root PKG <b>302</b>. The root PKG <b>302</b> then generates a root key generation parameter based on the root key generation secret in block <b>204</b>. The lower-level PKGs <b>304</b><i>a</i>-<i>d </i>select lower-level key generation secrets in block <b>206</b>. Like the root key generation secret, each of the lower-level key generation secrets is known only to its associated lower-level PKG <b>304</b><i>a</i>-<i>d</i>. In block <b>208</b>, lower-level key generation parameters are generated for each of the n lower-level PKGs <b>304</b><i>a</i>-<i>d</i>. Each of the lower-level key generation parameters is generated using at least the lower-level key generation secret for its associated lower-level PKG <b>304</b><i>a</i>-<i>d. </i>
In block <b>210</b>, the sender's parent PKG<sub>ym </sub><b>304</b><i>c </i>generates a private key for the sender y <b>306</b> such that the private key is related to at least the root key generation secret, one or more of the m lower-level key generation secrets associated with the m lower-level PKGs <b>304</b><i>a,b,c </i>between the root PKG <b>302</b> and the sender y <b>306</b>, and the sender's identity information. For instance, in addition to root key generation secret and the sender's identity information, the sender's private key preferably is related at least to the lower-level key generation secret of the sender's parent PKG<sub>ym </sub><b>304</b><i>c</i>. Alternatively, the sender's private key may be related to all m of its direct ancestral PKGs' lower-level key generation secrets, as well as the root key generation secret. In block <b>212</b>, the recipient's parent PKG<sub>zn </sub><b>304</b><i>d </i>generates a private key for the recipient z in a similar manner that the sender's parent PKG<sub>ym </sub><b>304</b><i>c </i>used to generate the sender's private key.
In block <b>214</b>, the sender y encodes the message to form a ciphertext using at least the sender's private key and one or more of the lower-level key generation parameters associated with the (m−l+1) PKGs (i.e., PKG<sub>yl</sub>, <b>304</b><i>b </i>and PKG<sub>ym </sub><b>304</b><i>c</i>) between the root PKG <b>302</b> and the sender y <b>306</b> that are at or below the level of the lowest ancestor PKG (PKG<sub>yl</sub>/PKG<sub>zl </sub><b>304</b><i>b</i>) that is common to both the sender y <b>306</b> and the recipient z <b>308</b>. In encoding the message, the sender y <b>306</b> preferably does not use any of the lower-level key generation parameters that are associated with the (l−1) PKGs (i.e., PKG<sub>y1 </sub><b>304</b><i>a</i>) that are above the lowest common ancestor PKG (PKG<sub>yl</sub>/PKG<sub>zl </sub><b>304</b><i>b</i>).
The recipient z <b>308</b> then decodes the ciphertext to recover the message in block <b>216</b> using at least the recipient's private key and one or more of the lower-level key generation parameters associated with the (n−l+1) PKGs (i.e., PKG<sub>zl</sub>, <b>304</b><i>b </i>and PKG<sub>zn </sub><b>304</b><i>c</i>) between the root PKG <b>302</b> and the recipient z <b>308</b> that are at or below the level of the lowest ancestor PKG (PKG<sub>yl</sub>/PKG<sub>zl </sub><b>304</b><i>b</i>) that is common to both the sender y <b>306</b> and the recipient z <b>308</b>. In decoding the message, the recipient z <b>306</b> preferably does not use any of the lower-level key generation parameters that are associated with the (l−1) PKGs (i.e., PKG<sub>z1 </sub><b>304</b><i>a</i>) that are above the lowest common ancestor PKG (PKG<sub>yl</sub>/PKG<sub>zl </sub><b>304</b><i>b</i>).
This dual-HIDE embodiment of the invention provides a more efficient scheme for encoding and decoding the message because it requires the use of fewer key generation parameters. For instance, decoding in a regular HIDE scheme preferably requires all n of the key generation parameters, but decoding in a dual-HIDE scheme preferably requires only (n−l+1) of the key generation parameters. Dual-HIDE schemes require the sender y <b>306</b> to obtain its private key before sending an encoded message to the recipient z <b>308</b>, as opposed to merely obtaining the public system parameters of the root PKG. The dual-HIDE schemes also enable the sender y <b>306</b> and the recipient z <b>308</b> to restrict the scope of key escrow, as described more fully below. This shared secret is unknown to third parties other than their lowest common ancestor PKG<sub>yl</sub>/PKG<sub>zl </sub><b>304</b><i>b. </i>
BasicHIDE
In some embodiments, the scheme is as follows. Let Level<sub>i </sub>be the set of entities at level i, where Level<sub>0</sub>={Root PKG}. Let K be the security parameter given to the setup algorithm and let <img file="US7590854B2_D0069.tif" /> be a BDH parameter generator.
Root Setup: The root PKG:
1. runs <img file="US7590854B2_D0070.tif" /> on input K to generate groups <img file="US7590854B2_D0071.tif" /><sub>1</sub>, <img file="US7590854B2_D0072.tif" /><sub>2 </sub>of some prime order q and an admissible pairing ê: <img file="US7590854B2_D0073.tif" /><sub>1</sub>×<img file="US7590854B2_D0074.tif" /><sub>1</sub>→<img file="US7590854B2_D0075.tif" /><sub>2</sub>;
2. chooses an arbitrary generator P<sub>0</sub>ε<img file="US7590854B2_D0076.tif" /><sub>1</sub>;
3. picks a random s<sub>0</sub>ε<img file="US7590854B2_D0077.tif" />/q<img file="US7590854B2_D0078.tif" /> and sets Q<sub>0</sub>=s<sub>0</sub>P<sub>0</sub>;
4. chooses cryptographic hash functions H<sub>1</sub>:{0,1}*→<img file="US7590854B2_D0079.tif" /><sub>1 </sub>and H<sub>2</sub>:<img file="US7590854B2_D0080.tif" /><sub>2</sub>→{0,1}<sup>n </sup>for some n. The security analysis will treat H<sub>1 </sub>and H<sub>2 </sub>as random oracles.
The message space is <img file="US7590854B2_D0081.tif" />={0,1}<sup>n</sup>. The ciphertext space <img file="US7590854B2_D0082.tif" />=<img file="US7590854B2_D0083.tif" /><sub>1</sub><sup>t</sup>×{0,1}<sup>t </sup>where t is the level of the recipient. The system parameters are params={<img file="US7590854B2_D0084.tif" /><sub>1</sub>,<img file="US7590854B2_D0085.tif" /><sub>2</sub>,ê,P<sub>0</sub>,Q<sub>0</sub>,H<sub>1</sub>,H<sub>2</sub>}. The root PKG's secret is s<sub>0</sub>ε<img file="US7590854B2_D0086.tif" />/q<img file="US7590854B2_D0087.tif" />.
Lower-level Setup. Entity E<sub>t</sub>εLevel<sub>t </sub>picks a random s<sub>t</sub>ε<img file="US7590854B2_D0088.tif" />/q<img file="US7590854B2_D0089.tif" />, which it keeps secret.
Extraction: Let E<sub>t </sub>be an entity in Level<sub>t </sub>with ID-tuple (ID<sub>1</sub>, . . . ,ID<sub>t</sub>), where (ID<sub>1</sub>, . . . ,ID<sub>i</sub>) for 1≦i≦t is the ID tuple of E<sub>t</sub>'s ancestor at Level<sub>i</sub>. Set S<sub>0 </sub>to be the identity element of <img file="US7590854B2_D0090.tif" /><sub>1</sub>. The E<sub>t</sub>'s parent:
1. computes P<sub>t</sub>=H<sub>1</sub>(ID<sub>1</sub>, . . . ,ID<sub>t</sub>)ε<img file="US7590854B2_D0091.tif" /><sub>1</sub>;
2. sets E<sub>t</sub>'s secret point S<sub>t </sub>to be
<maths id="MATH-US-00003" num="00003"><math overflow="scroll"><mrow><mrow><mrow><msub><mi>S</mi><mrow><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><mrow><msub><mi>s</mi><mrow><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msub><mo></mo><msub><mi>P</mi><mi>t</mi></msub></mrow></mrow><mo>=</mo><mrow><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>t</mi></munderover><mo></mo><mrow><msub><mi>s</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo></mo><msub><mi>P</mi><mi>i</mi></msub></mrow></mrow></mrow><mo>;</mo></mrow></math></maths><img file="US7590854B2_D0092.tif" />
3. also gives E<sub>t </sub>the values of Q<sub>i</sub>=s<sub>i</sub>P<sub>0 </sub>for 1≦i≦t−1.
Encryption: To encrypt M ε <img file="US7590854B2_D0093.tif" /> with the ID-tuple (ID<sub>1</sub>, . . . ,ID<sub>t</sub>), do the following:
1. Compute P<sub>i</sub>=H<sub>1</sub>(ID<sub>1</sub>, . . . ,ID<sub>i</sub>)ε<img file="US7590854B2_D0094.tif" /><sub>1 </sub>for 1≦i≦t.
2. Choose a random rε<img file="US7590854B2_D0095.tif" />/q<img file="US7590854B2_D0096.tif" />.
3. Set the ciphertext to be <br /><i>C=[rP</i><sub>0</sub><i>,rP</i><sub>2</sub><i>, . . . ,rP</i><sub>t</sub><i>,M⊕H</i><sub>2</sub>(<i>g</i><sup>r</sup>)] where <i>g=ê</i>(<i>Q</i><sub>0</sub><i>,P</i><sub>1</sub>)ε <img file="US7590854B2_D0097.tif" /><sub>2</sub>.
Decryption: Let C=[U<sub>0</sub>,U<sub>2</sub>, . . . ,U<sub>t</sub>,V]ε<img file="US7590854B2_D0098.tif" /> be the ciphertext encrypted using the ID-tuple (ID<sub>1</sub>, . . . ,ID<sub>t</sub>). To decrypt C, E<sub>t </sub>computes:
<maths id="MATH-US-00004" num="00004"><math overflow="scroll"><mrow><mrow><mi>V</mi><mo>⊕</mo><mrow><msub><mi>H</mi><mn>2</mn></msub><mo>(</mo><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>U</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mi>t</mi></msub></mrow><mo>)</mo></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mn>2</mn></mrow><mi>t</mi></munderover><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>U</mi><mi>i</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>)</mo></mrow></mrow><mo>=</mo><mrow><mi>M</mi><mo>.</mo></mrow></mrow></math></maths><img file="US7590854B2_D0099.tif" />
This concludes the description of one embodiment of our BasicHIDE scheme.
Remark 1. Each lower-level PKG—say, in Level<sub>t</sub>—has a secret s<sub>t</sub>ε<img file="US7590854B2_D0100.tif" />/q<img file="US7590854B2_D0101.tif" />, just like the root PKG. A lower-level PKG uses this secret to generate a secret point for each of its children, just as the root PKG does. An interesting fact, however, is that lower-level PKGs need not always use the same s<sub>t </sub>for each private key extraction. Rather, s<sub>t </sub>could be generated randomly for each of the PKG's children.
Remark 2. H<sub>1 </sub>can be chosen to be an iterated hash function so that, for example, P<sub>i </sub>may be computed as H<sub>1</sub>(P<sub>i−1</sub>,ID<sub>i</sub>) rather than H<sub>1</sub>(ID<sub>1</sub>, . . . ,ID<sub>i</sub>).
<figref idref="DRAWINGS">FIG. 4</figref> shows a flow diagram illustrating a method of encoding and decoding a digital message M communicated between a sender y and a recipient z according to another presently preferred embodiment of the invention. The recipient z <b>308</b> is n+1 levels below the root PKG in the hierarchy, as shown in <figref idref="DRAWINGS">FIG. 3</figref>, and is associated with the ID-tuple (ID<sub>z1</sub>, . . . , ID<sub>z(n+1)</sub>). The recipient's ID-tuple includes identity information ID<sub>z(n+1) </sub>associated with the recipient, as well as identity information ID<sub>zi </sub>associated with each of its n ancestral lower-level PKGs in the hierarchy. The method begins in block <b>402</b> by generating first and second cyclic groups <img file="US7590854B2_D0102.tif" /><sub>1 </sub>and <img file="US7590854B2_D0103.tif" /><sub>2 </sub>of elements. In block <b>404</b>, a function ê is selected, such that the function ê is capable of generating an element of the second cyclic group <img file="US7590854B2_D0104.tif" /><sub>2 </sub>from two elements of the first cyclic group <img file="US7590854B2_D0105.tif" /><sub>1</sub>. The function ê preferably is an admissible pairing, as described above. A root generator P<sub>0 </sub>of the first cyclic group <img file="US7590854B2_D0106.tif" /><sub>1 </sub>is selected in block <b>406</b>. In block <b>408</b>, a random root key generation secret s<sub>0 </sub>associated with and known only to the root PKG <b>302</b> is selected. Preferably, s<sub>0 </sub>is an element of the cyclic group <img file="US7590854B2_D0107.tif" />/q<img file="US7590854B2_D0108.tif" />. A root key generation parameter Q<sub>0</sub>=s<sub>0</sub>P<sub>0 </sub>is generated in block <b>410</b>. Preferably, Q<sub>0 </sub>is an element of the first cyclic group <img file="US7590854B2_D0109.tif" /><sub>1</sub>. In block <b>412</b>, a first function H<sub>1 </sub>is selected such that H<sub>1 </sub>is capable of generating an element of the first cyclic group <img file="US7590854B2_D0110.tif" /><sub>1 </sub>from a first string of binary digits. A second function H<sub>2 </sub>is selected in block <b>414</b>, such that H<sub>2 </sub>is capable of generating a second string of binary digits from an element of the second cyclic group <img file="US7590854B2_D0111.tif" /><sub>2</sub>. The functions of blocks <b>402</b> through <b>414</b> are part of the HIDE Root Setup algorithm described above, and preferably are performed at about the same time. By way of example, the functions such as those disclosed in Boneh-Franklin may be used as H<sub>1 </sub>and H<sub>2</sub>.
The next series of blocks (blocks <b>416</b> through <b>424</b>) show the functions performed as part of Lower-level Setup algorithm. In block <b>416</b>, a public element P<sub>zi </sub>is generated for each of the recipients' n ancestral lower-level PKGs. Each of the public elements, P<sub>zi</sub>=H<sub>1</sub>(ID<sub>1</sub>, . . . , ID<sub>zi</sub>) for 1≦i≦n, preferably is an element of the first cyclic group <img file="US7590854B2_D0112.tif" /><sub>1</sub>. Although represented in a single block, generation of all the public elements P<sub>zi </sub>may take place over time, rather than all at once.
A lower-level key generation secret s<sub>zi </sub>is selected (block <b>418</b>) for each of the recipients' n ancestral lower-level PKGs <b>304</b><i>a,b,d</i>. The lower-level key generation secrets s<sub>zi </sub>preferably are elements of the cyclic group <img file="US7590854B2_D0113.tif" />/q<img file="US7590854B2_D0114.tif" /> for 1≦i≦n, and each lower-level key generation secret s<sub>zi </sub>preferably is known only to its associated lower-level PKG. Again, although represented in a single block, selection of all the lower-level key generation secrets s<sub>zi </sub>may take place over time, rather than all at once.
A lower-level secret element S<sub>zi </sub>is generated (block <b>420</b>) for each of the sender's n ancestral lower-level PKGs. Each lower-level secret element, S<sub>zi</sub>=S<sub>z(i−1)</sub>+s<sub>z(i−1)</sub>P<sub>zi </sub>for 1≦i≦n preferably is an element of the first cyclic group <img file="US7590854B2_D0115.tif" /><sub>1</sub>. Although represented in a single block like the public elements P<sub>zi </sub>and the secrets s<sub>zi</sub>, generation of all the secret elements S<sub>zi </sub>may take place over time, rather than all at once. For purposes of these iterative key generation processes, S<sub>0 </sub>may be defined to be the identity element of <img file="US7590854B2_D0116.tif" /><sub>1</sub>.
A lower-level key generation parameter Q<sub>zi </sub>also is generated (block <b>422</b>) for each of the recipients' n ancestral lower-level PKGs. Each of the key generation parameters, Q<sub>zi</sub>=s<sub>zi</sub>P<sub>0 </sub>for 1≦i≦n, preferably is an element of the first cyclic group <img file="US7590854B2_D0117.tif" /><sub>1</sub>. Again, although represented in a single block, generation of all the key generation parameters Q<sub>zi </sub>may take place over time, rather than all at once.
The functions of the next two blocks (blocks <b>424</b> and <b>426</b>) are performed as part of the Extraction algorithm described above. A recipient public element P<sub>z(n+1) </sub>associated with the recipient z is generated in block <b>424</b>. The recipient public element, P<sub>z(n+1)</sub>=H<sub>1</sub>(ID<sub>z1</sub>, . . . , ID<sub>z(n+1)</sub>), preferably is an element of the first cyclic group <img file="US7590854B2_D0118.tif" /><sub>1</sub>. A recipient secret element S<sub>z(n+1) </sub>associated with the recipient z is then generated in block <b>426</b>. The recipient secret element
<maths id="MATH-US-00005" num="00005"><math overflow="scroll"><mrow><mrow><msub><mi>S</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>=</mo><mrow><mrow><msub><mi>S</mi><mi>zn</mi></msub><mo>+</mo><mrow><msub><mi>s</mi><mi>zn</mi></msub><mo></mo><msub><mi>P</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow></mrow><mo>=</mo><mrow><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></munderover><mo></mo><mrow><msub><mi>s</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo></mo><msub><mi>P</mi><mi>zi</mi></msub></mrow></mrow></mrow></mrow><mo>,</mo></mrow></math></maths><img file="US7590854B2_D0119.tif" /><br /> also preferably is an element of the first cyclic group <img file="US7590854B2_D0120.tif" /><sub>1</sub>.
For convenience, the first function H<sub>1 </sub>optionally may be chosen to be an iterated function so that, for example, the public points P<sub>i </sub>may be computed as H<sub>1</sub>(P<sub>z(i−1)</sub>, ID<sub>zi</sub>) rather than H<sub>1 </sub>(ID<sub>1</sub>, . . . , ID<sub>zi</sub>).
The last two blocks shown in <figref idref="DRAWINGS">FIG. 4</figref> (blocks <b>428</b> and <b>430</b>) represent the Encryption and Decryption algorithms described above. In block <b>428</b>, the message M is encoded to generate a ciphertext C. The encoding preferably uses at least the root key generation parameter Q<sub>0 </sub>and the ID-tuple (ID<sub>z1</sub>, . . . , ID<sub>z(n+1)</sub>). The ciphertext C is then decoded in block <b>430</b> to recover the message M The decoding preferably uses at least the lower-level key generation parameters Q<sub>zi </sub>for 1<i<n, and the recipient secret element S<sub>z(n+1)</sub>.
The blocks shown in <figref idref="DRAWINGS">FIG. 4</figref> need not all occur in sequence. For instance, a sender who knows a recipient's identity may encrypt communications to the recipient before the recipient obtains its private key.
The specific use of the parameters and elements described above in the encoding and decoding of the message M and the ciphertext C will now be discussed with reference to <figref idref="DRAWINGS">FIGS. 5 and 6</figref>. <figref idref="DRAWINGS">FIG. 5</figref> shows a flow diagram illustrating a method of encoding and decoding a digital message M communicated between a sender y and a recipient z according to another presently preferred embodiment of the invention. In this scheme, which may be referred to as BasicHIDE, the Root Setup, Lower-level Setup, and Extraction algorithms are the same as for the embodiment shown in blocks <b>402</b> through <b>426</b> of <figref idref="DRAWINGS">FIG. 4</figref>. The flow diagram of <figref idref="DRAWINGS">FIG. 5</figref> illustrates the Encryption and Decryption algorithms, beginning with the selection of a random encryption parameter r in block <b>528</b><i>a</i>. Preferably, r is an integer of the cyclic group <img file="US7590854B2_D0121.tif" />/q<img file="US7590854B2_D0122.tif" />. The ciphertext C is then generated in block <b>528</b><i>b </i>using the formula C=[U<sub>0</sub>, U<sub>2</sub>, . . . , U<sub>n+1</sub>, V]. The ciphertext C includes elements U<sub>i</sub>=rP<sub>zi </sub>for i=0 and for 2≦i≦n+1, which relate to the location of the recipient in the hierarchy. The other part of the ciphertext C is the actual message in encrypted form, V=M ⊕ H<sub>2</sub>(g<sup>r</sup>), wherein g=ê(Q<sub>0</sub>, P<sub>z1</sub>). The element g preferably is a member of the second cyclic group <img file="US7590854B2_D0123.tif" /><sub>2</sub>. After the message has been encoded, it may be decoded according to the BasicHIDE Decryption algorithm, in which the message M is recovered from the ciphertext C (block <b>530</b>) using the formula
<maths id="MATH-US-00006" num="00006"><math overflow="scroll"><mrow><mi>M</mi><mo>=</mo><mrow><mi>V</mi><mo>⊕</mo><mrow><mrow><msub><mi>H</mi><mn>2</mn></msub><mo>(</mo><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>U</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msub></mrow><mo>)</mo></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mn>2</mn></mrow><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>U</mi><mi>i</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>)</mo></mrow><mo>.</mo></mrow></mrow></mrow></math></maths><img file="US7590854B2_D0124.tif" /><br /> FullHIDE
It is known that Fujisaki-Okamato padding can be used to convert a basic IBE scheme to an IBE scheme that is chosen ciphertext secure in the random oracle model. In the same way, BasicHIDE can be converted to FullHIDE, a HIDE scheme that is chosen ciphertext secure in the random oracle model. Next we describe the scheme FullHIDE. One embodiment is as follows:
Setup: As in the BasicHIDE scheme, but in addition choose hash functions H<sub>3</sub>:{0,1}<sup>n</sup>×{0,1}<sup>n</sup>→<img file="US7590854B2_D0125.tif" />/q<img file="US7590854B2_D0126.tif" /> and H<sub>4</sub>:{0,1}<sup>n</sup>→{0,1}<sup>n</sup>.
Extraction: As in the BasicHIDE scheme.
Encryption: To encrypt Mε<img file="US7590854B2_D0127.tif" /> with the ID-tuple (ID<sub>1</sub>, . . . ,ID<sub>t</sub>), do the following:
1. compute P<sub>i</sub>=H<sub>1</sub>(ID<sub>1</sub>, . . . ,ID<sub>i</sub>)ε<img file="US7590854B2_D0128.tif" /><sub>1 </sub>for 1≦i≦t,
2. choose a random σε{0,1}<sub>n</sub>,
3. set r=H<sub>3</sub>(σ,M), and
4. set the ciphertext to be <br /><i>C=[rP</i><sub>0</sub><i>,rP</i><sub>2</sub><i>, . . . ,rP</i><sub>t</sub><i>,σ ⊕ H</i><sub>2</sub>(<i>g</i><sup>r</sup>),<i>M ⊕ H</i><sub>4</sub>(σ)]
where g=ê(Q<sub>0</sub>,P<sub>1</sub>)ε <img file="US7590854B2_D0129.tif" /><sub>2 </sub>as before.
Decryption: Let C=[U<sub>0</sub>,U<sub>2</sub>, . . . ,U<sub>t</sub>,V,W]ε<img file="US7590854B2_D0130.tif" /> be the ciphertext encrypted using the ID-tuple (ID<sub>1</sub>, . . . ,ID<sub>t</sub>). If (U<sub>0</sub>,U<sub>2</sub>, . . . ,U<sub>t</sub>)∉ <img file="US7590854B2_D0131.tif" /><sub>1</sub><sup>t</sup>, reject the ciphertext. To decrypt C, E<sub>t </sub>does the following:
1. computes
<maths id="MATH-US-00007" num="00007"><math overflow="scroll"><mrow><mrow><mrow><mi>V</mi><mo>⊕</mo><mrow><msub><mi>H</mi><mn>2</mn></msub><mo>(</mo><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>U</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mi>t</mi></msub></mrow><mo>)</mo></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mn>2</mn></mrow><mi>t</mi></munderover><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>U</mi><mi>i</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>)</mo></mrow></mrow><mo>=</mo><mi>σ</mi></mrow><mo>,</mo></mrow></math></maths><img file="US7590854B2_D0132.tif" />
2. computes W ⊕ H<sub>4</sub>(σ)=M,
3. sets r=H<sub>3</sub>(σ,M) and tests that U<sub>0</sub>=rP<sub>0 </sub>and U<sub>i</sub>=rP<sub>i </sub>for i=2, . . . ,t. If not, it rejects the ciphertext.
4. outputs M as the decryption of C.
Note that M is encrypted as W=M ⊕ H<sub>4</sub>(σ). This can be replaced by
<maths id="MATH-US-00008" num="00008"><math overflow="scroll"><mrow><mi>W</mi><mo>=</mo><mrow><msub><mi>E</mi><mrow><msub><mi>H</mi><mn>4</mn></msub><mo></mo><mrow><mo>(</mo><mi>σ</mi><mo>)</mo></mrow></mrow></msub><mo></mo><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow></mrow></mrow></math></maths><img file="US7590854B2_D0133.tif" /><br /> where E is a semantically secure symmetric encryption scheme.
Using known methods for making one-way encryption schemes secure against chosen-ciphertext attacks, a BasicHIDE scheme may be converted to a FullHIDE scheme that is chosen ciphertext secure in the random oracle model. A FullHIDE scheme that is chosen ciphertext secure will now be discussed with reference to <figref idref="DRAWINGS">FIG. 6</figref>.
<figref idref="DRAWINGS">FIG. 6</figref> shows a flow diagram illustrating a method of encoding and decoding a digital message M communicated between a sender y and a recipient z according to another presently preferred embodiment of the invention. The Root Setup, Lower-level Setup, and Extraction algorithms are the same for this embodiment of the invention as for the embodiment described with reference to <figref idref="DRAWINGS">FIG. 4</figref>, except that the Root Setup algorithm of this embodiment requires two additional functions. Accordingly, the flow diagram of <figref idref="DRAWINGS">FIG. 6</figref> begins with the selection of the additional functions (blocks <b>615</b><i>a </i>and <b>615</b><i>b</i>) and continues with the Encryption and Decryption algorithms (blocks <b>628</b><i>a </i>through <b>630</b><i>d</i>).
The Root Setup algorithm is completed by selecting a third function H<sub>3 </sub>(block <b>615</b><i>a</i>) and a fourth function H<sub>4 </sub>(block <b>615</b><i>b</i>). The third function H<sub>3 </sub>preferably is capable of generating an integer of the cyclic group <img file="US7590854B2_D0134.tif" />/q<img file="US7590854B2_D0135.tif" /> from two strings of binary digits. The fourth function H<sub>4 </sub>preferably is capable of generating one binary string from another binary string.
The Encryption algorithm begins with block <b>628</b><i>a</i>, which shows the selection of a random binary string σ. The random binary string σ is then used to generate a random integer r=H<sub>3</sub>(σ, M, W), as shown in block <b>628</b><i>b</i>, wherein W is a symmetric encryption of the actual message M. The encryption preferably is generated using a symmetric encryption algorithm E, and using H<sub>4</sub>(σ) as the encryption key. Accordingly, W=E<sub>H</sub><sub><sub2>4</sub2></sub><sub>(σ)</sub>(M). In block <b>628</b><i>c</i>, the ciphertext C=[U<sub>0</sub>, U<sub>2</sub>, . . . , U<sub>n+1</sub>, V, W] is generated. The ciphertext C includes elements U<sub>i</sub>=rP<sub>zi </sub>for i=0 and for 2≦i≦n+1, which relate to the location of the recipient in the hierarchy. The second part of the ciphertext C is the random binary string σ in encrypted form, V=σ ⊕ H<sub>2</sub>(g<sup>r</sup>), wherein g=ê(Q<sub>0</sub>, P<sub>z1</sub>). The element g preferably is a member of the second cyclic group <img file="US7590854B2_D0136.tif" /><sub>2</sub>. The third part of the ciphertext C is W, the actual message in symmetrically encrypted form, as described above.
The Decryption algorithm begins with block <b>630</b><i>a</i>, which shows the recovery of the random binary string σ. The random binary string σ is recovered using the formula
<maths id="MATH-US-00009" num="00009"><math overflow="scroll"><mrow><mi>σ</mi><mo>=</mo><mrow><mi>V</mi><mo>⊕</mo><mrow><mrow><msub><mi>H</mi><mn>2</mn></msub><mo>(</mo><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>U</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mn>2</mn></mrow><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></munderover><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>U</mi><mi>i</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>)</mo></mrow><mo>.</mo></mrow></mrow></mrow></math></maths><img file="US7590854B2_D0137.tif" /><br /> The message M is then recovered from the ciphertext C (block <b>630</b><i>b</i>) using the formula M=E<sub>H</sub><sub><sub2>4</sub2></sub><sub>(σ)</sub><sup>−1</sup>(W). The ciphertext optionally may be checked for internal consistency. For instance, an experimental random integer r′=H<sub>3</sub>(σ, M, W) may be generated, as shown in block <b>630</b><i>c</i>. The experimental random integer r′ then may be used in block <b>630</b><i>d </i>to confirm that U<sub>0</sub>=r′P<sub>0 </sub>and U<sub>i</sub>=r′P<sub>zi </sub>for 2≦i≦n+1. If so, then the ciphertext C is considered to be authentic. <br /> Dual-BasicHIDE and Dual-FullHIDE
In 2000, Sakai, Ohgishi and Kasahara presented a “key sharing scheme” based on the Weil pairing. The idea was quite simple: suppose a PKG has a master secret s, and it issues private keys to users of the form sP<sub>y </sub>where P<sub>y</sub>=H<sub>1</sub>(ID<sub>y</sub>) and ID<sub>y </sub>is the ID of user y (as in Boneh-Franklin). Then users y and z have a shared secret that only they (and the PKG) may compute, namely ê(sP<sub>y</sub>,P<sub>z</sub>)=ê(P<sub>y</sub>,sP<sub>z</sub>). They may use this shared secret to encrypt their communications. Notice that this “key sharing scheme” does not require any interaction between the parties. We can view Sakai, Ohgishi and Kasahara's discovery as a type of “dual-identity-based encryption,” where the word “dual” indicates that the identities of both the sender and the recipient (rather than just the recipient) are required as input into the encryption and decryption algorithms. The only significant practical difference between this scheme and the Boneh-Franklin IBE scheme is that the sender must obtain its private key from the PKG before sending encrypted communications, as opposed to merely obtaining the public parameters of the PKG.
In the non-hierarchical context, Dual-IBE does not appear to have any substantial advantages over IBE. In the hierarchical context, however, Dual-HIDE may be more efficient than HIDE if the sender and recipient are close to each other in the hierarchy tree. Suppose two users, y and z, have the ID-tuples (ID<sub>y1</sub>, . . . ,ID<sub>yl</sub>, . . . ,ID<sub>ym</sub>) and (ID<sub>z1</sub>, . . . ,ID<sub>zl</sub>, . . . ,ID<sub>zn</sub>), where (ID<sub>y1</sub>, . . . ,ID<sub>yl</sub>)=(ID<sub>z1</sub>, . . . ,ID<sub>zl</sub>). In other words, user y is in Level<sub>m</sub>, user z is in Level<sub>n</sub>, and they share a common ancestor in Level<sub>l</sub>. User y may use Dual-HIDE to encrypt a message to user z as follows:
Encryption: To encrypt Mε<img file="US7590854B2_D0138.tif" />, user y:
1. Computes P<sub>zi</sub>=H<sub>1</sub>(ID<sub>z1</sub>, . . . ,ID<sub>zi</sub>)ε<img file="US7590854B2_D0139.tif" /><sub>1 </sub>for l+1≦i≦n.
2. Chooses a random rε<img file="US7590854B2_D0140.tif" />/q<img file="US7590854B2_D0141.tif" />.
3. Set the ciphertext to be: <br /><i>C=[rP</i><sub>0</sub><i>,rP</i><sub>z(l+1)</sub><i>, . . . ,rP</i><sub>zn</sub><i>,M⊕H</i><sub>2</sub>(<i>g</i><sub>yl</sub><sup>r</sup>)]<br /> where
<maths id="MATH-US-00010" num="00010"><math overflow="scroll"><mrow><mrow><msub><mi>g</mi><mi>yl</mi></msub><mo>=</mo><mrow><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>P</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mi>y</mi></msub></mrow><mo>)</mo></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow></mrow><mi>m</mi></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>U</mi><mi>i</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>=</mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>P</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mi>yl</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mrow><mo>,</mo></mrow></math></maths><img file="US7590854B2_D0142.tif" /><br /> S<sub>y </sub>is y's secret point, S<sub>yl </sub>is the secret point of y's and z's common ancestor at level l, and Q<sub>yi</sub>=s<sub>yi</sub>P<sub>0 </sub>where s<sub>yi </sub>is the secret number chosen by y's ancestor at level i.
Decryption: Let C=[U<sub>0</sub>,U<sub>l+1</sub>, . . . ,U<sub>n</sub>,V] be the ciphertext. To decrypt C, user z computes:
<maths id="MATH-US-00011" num="00011"><math overflow="scroll"><mrow><mrow><mi>V</mi><mo>⊕</mo><mrow><msub><mi>H</mi><mn>2</mn></msub><mo>(</mo><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>U</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mi>z</mi></msub></mrow><mo>)</mo></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow></mrow><mi>n</mi></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>U</mi><mi>i</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>)</mo></mrow></mrow><mo>=</mo><mrow><mi>M</mi><mo>.</mo></mrow></mrow></math></maths><img file="US7590854B2_D0143.tif" />
Note that if y and z have a common ancestor below the root PKG, then the ciphertext is shorter with Dual-HIDE than with non-dual HIDE. Further, using Dual-HIDE, the encrypter y computes m−l+1 pairings while the decryptor z computers n−l+1 pairings. (Note that m+n−2l is the “length” of the path between y and z in the hierarchy tree.) In the non-dual HIDE scheme, the encrypter computes one pairing (or receives it as a per-computer value) while the decrypter computers n pairings. Thus when m<2l−1, the total work is less with Dual-HIDE than with non-dual HIDE. The relative computing power of the sender and recipient can also be taken into account.
The number of pairings that y and z must compute can be decreased to m+n−2l+1 if their common ancestor in Level<sub>l </sub>always uses the same s<sub>l </sub>rather than generating this number randomly with each private key extraction. Encryption and decryption proceed as follows:
Encryption: To encrypt Mε<img file="US7590854B2_D0144.tif" />, user y:
1. Computes P<sub>zi</sub>=H<sub>1</sub>(ID<sub>z1</sub>, . . . ,ID<sub>zi</sub>)ε<img file="US7590854B2_D0145.tif" /><sub>1 </sub>for l+1≦i≦n.
2. Chooses a random rε<img file="US7590854B2_D0146.tif" />/q<img file="US7590854B2_D0147.tif" />.
3. Set the ciphertext to be: <br /><i>C=[rP</i><sub>0</sub><i>,r</i>(<i>P</i><sub>z(l+1)</sub><i>−P</i><sub>z(l+1)</sub>),<i>rP</i><sub>z(l+2)</sub><i>. . . ,rP</i><sub>zn</sub><i>,M⊕H</i><sub>2</sub>(<i>g</i><sub>y(l+1)</sub><sup>r</sup>)]<br /> where
<maths id="MATH-US-00012" num="00012"><math overflow="scroll"><mrow><mrow><msub><mi>g</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>=</mo><mrow><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>P</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mi>y</mi></msub></mrow><mo>)</mo></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mrow><mi>l</mi><mo>+</mo><mn>2</mn></mrow></mrow><mi>m</mi></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>P</mi><mi>yi</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>=</mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>P</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow></mrow></mrow></mrow><mo>,</mo></mrow></math></maths><img file="US7590854B2_D0148.tif" /><br /> where S<sub>y </sub>is y's secret point and S<sub>y(l+1) </sub>is the secret point of y's ancestor at level l+1.
Decryption: Let C=[U<sub>0</sub>,U<sub>l+1</sub>, . . . ,U<sub>n</sub>,V] be the ciphertext. To decrypt C, user z computes:
<maths id="MATH-US-00013" num="00013"><math overflow="scroll"><mrow><mrow><mi>V</mi><mo>⊕</mo><mrow><msub><mi>H</mi><mn>2</mn></msub><mo>(</mo><mfrac><mrow><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>U</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mi>z</mi></msub></mrow><mo>)</mo></mrow></mrow><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>U</mi><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>Q</mi><mi>zl</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mrow><mi>l</mi><mo>+</mo><mn>2</mn></mrow></mrow><mi>n</mi></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>U</mi><mi>i</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>)</mo></mrow></mrow><mo>=</mo><mrow><mi>M</mi><mo>.</mo></mrow></mrow></math></maths><img file="US7590854B2_D0149.tif" />
The concept of dual-HIDE described with reference to <figref idref="DRAWINGS">FIGS. 2 and 3</figref> may be applied to BasicHIDE and FullHIDE schemes. When both the sender and recipient are within the hierarchical structure, as shown in <figref idref="DRAWINGS">FIG. 3</figref>, dual-HIDE allows them to increase the efficiency and security of their encrypted communications. The application of dual-HIDE to BasicHIDE and FullHIDE schemes requires the determination of additional information, most of which is determined via the Lower-level Setup algorithm described above. For instance, public elements P<sub>yi</sub>, lower-level key generation secrets s<sub>yi</sub>, lower-level secret elements S<sub>yi</sub>, and lower-level key generation parameters Q<sub>yi </sub>must be determined for the sender's m ancestral lower-level PKGs. Note, however, that for the lower-level PKGs that are common ancestors to both the sender y and the recipient z, these parameters preferably will be the same for purposes of analyzing both the sender y and the recipient z (i.e., preferably for all i≦l:P<sub>yi</sub>=P<sub>zi</sub>, s<sub>yi</sub>=s<sub>zi</sub>, S<sub>yi</sub>=S<sub>zi</sub>, and Q<sub>yi</sub>=Q<sub>zi</sub>). Dual-HIDE also requires determination of a sender public element P<sub>y(m+1) </sub>and a sender secret element S<sub>y(m+1) </sub>for the sender, using the same methods for which these parameters are determined for the recipient as described above.
Given these additional parameters, a message M may be encoded to generate a ciphertext C according the principles of dual-HIDE by using the lower-level key generation parameters Q<sub>yi </sub>for i≧l and the sender secret element S<sub>y(m+1)</sub>, but not using the lower-level key generation parameters Q<sub>yi </sub>for i<l. Similarly, the ciphertext C may be decoded to recover the message M using the lower-level key generation parameters Q<sub>zi </sub>for i≧l and the recipient secret element S<sub>z(n+1)</sub>, but not using the lower-level key generation parameters Q<sub>zi </sub>for i<l.
For instance, in a BasicHIDE scheme (<figref idref="DRAWINGS">FIGS. 4 and 5</figref>), application of dual-HIDE changes the encoding of the message M to generate a ciphertext C=[U<sub>0</sub>, U<sub>l+1</sub>, . . . , U<sub>n+1</sub>, V], wherein U<sub>i</sub>=rP<sub>zi </sub>for i=0 and for l+1≦i≦n+1, wherein V=M ⊕ H<sub>2</sub>(g<sub>yl</sub><sup>r</sup>), and wherein
<maths id="MATH-US-00014" num="00014"><math overflow="scroll"><mrow><msub><mi>g</mi><mi>yl</mi></msub><mo>=</mo><mrow><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>P</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow></mrow><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>P</mi><mi>yi</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>.</mo></mrow></mrow></math></maths><img file="US7590854B2_D0150.tif" /><br /> The U<sub>i </sub>factors are calculated in the same way as before, but fewer of them are necessary. However, dual-BasicHIDE does require the sender y to use more key generation parameters Q<sub>yi </sub>to generate g<sub>yl </sub>than are necessary to generate g as describe above. This is because the sender's identity is being incorporated into the Encryption algorithm.
The increase in efficiency of the Decryption algorithm is more dramatic. The message M is recovered using
<maths id="MATH-US-00015" num="00015"><math overflow="scroll"><mrow><mi>M</mi><mo>=</mo><mrow><mi>V</mi><mo>⊕</mo><mrow><mrow><msub><mi>H</mi><mn>2</mn></msub><mo>(</mo><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>U</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow></mrow><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>U</mi><mi>zi</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>)</mo></mrow><mo>.</mo></mrow></mrow></mrow></math></maths><img file="US7590854B2_D0151.tif" /><br /> Again, fewer U<sub>i </sub>parameters are necessary. Similarly, the recipient requires fewer key generation parameters Q<sub>zi </sub>for dual-HIDE than would otherwise be necessary.
FullHIDE also may be modified to create a dual-FullHIDE scheme. Generation of the ciphertext C in the Encryption algorithm is modified such that C=[U<sub>0</sub>, U<sub>l+1</sub>, . . . , U<sub>n+1</sub>, V, W], wherein U<sub>i</sub>=rP<sub>zi </sub>for i=0 and for l+1≦i≦n+1. The W and r parameters is still generated the same way, W=E<sub>H</sub><sub><sub2>4</sub2></sub><sub>(σ)</sub>(M), and the g<sub>yl </sub>parameter in V=σ ⊕ H<sub>2</sub>(g<sub>yl</sub><sup>r</sup>) is generated using
<maths id="MATH-US-00016" num="00016"><math overflow="scroll"><mrow><msub><mi>g</mi><mi>yl</mi></msub><mo>=</mo><mrow><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>P</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow></mrow><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>P</mi><mi>yi</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>.</mo></mrow></mrow></math></maths><img file="US7590854B2_D0152.tif" />
The Decryption algorithm also is modified in a dual-FullHIDE scheme. The random binary string σ is recovered using
<maths id="MATH-US-00017" num="00017"><math overflow="scroll"><mrow><mi>σ</mi><mo>=</mo><mrow><mi>V</mi><mo>⊕</mo><mrow><mrow><msub><mi>H</mi><mn>2</mn></msub><mo>(</mo><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>U</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow></mrow><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>U</mi><mi>zi</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>)</mo></mrow><mo>.</mo></mrow></mrow></mrow></math></maths><img file="US7590854B2_D0153.tif" /><br /> Otherwise, recovery of the message M does not change.
Although these dual-HIDE schemes have been described using PKG<sub>l </sub><b>304</b><i>b </i>as the lowest ancestor PKG common to both the sender y and the recipient z, PKG<sub>l </sub><b>304</b><i>b </i>may be any common ancestor PKG. The encryption and decryption algorithms are the same. For maximum efficiency however, it is preferable that PKG<sub>l </sub><b>304</b><i>b </i>be the lowest common ancestor PKG.
In addition to the increase in efficiency, the dual-HIDE schemes of the present invention also offer increased security by restricting key escrow. In the BasicHIDE and FullHIDE schemes described above, all of the recipient's direct ancestor PKGs are able to decrypt messages to the recipient. However, because the dual-HIDE schemes incorporate the key generation secret of PKG<sub>l−1 </sub>(the immediate parent of PKG<sub>l</sub>), which is unknown to the common ancestor PKGs above PKG<sub>l−1</sub>, those common ancestor PKGs are not able to decrypt messages between the sender y and the recipient z. The immediate parent of PKG<sub>l </sub><b>304</b><i>b </i>is still able to decrypt messages, however, because it knows its own key generation secret.
Key escrow may be further restricted such that even the immediate parent of PKG<sub>l </sub>may not decrypt messages between the sender y and the recipient z. This may be accomplished by obscuring PKG<sub>l</sub>'s private key in the process of generating private keys for the sender y and the recipient z (or private keys for children of PKG<sub>l </sub>that are ancestors of the sender y and the recipient z). For instance, PKG<sub>l </sub><b>304</b><i>b </i>may easily change its private key by setting S<sub>l</sub>′:=S<sub>l</sub>+bP<sub>l</sub>, and Q<sub>l−1</sub>′:=Q<sub>l−1</sub>+bP<sub>0</sub>, for some random b ε <img file="US7590854B2_D0154.tif" />/q<img file="US7590854B2_D0155.tif" />. The new private key S<sub>l</sub>′ is just as effective, but is unknown to PKG<sub>l</sub>'s immediate parent. Accordingly, no PKGs above PKG<sub>l </sub>are able to decode messages encrypted to the recipient z. More specifically, only ancestors of the recipient z that are within PKG<sub>l</sub>'s domain are able to decrypt messages to the recipient z.
When PKG<sub>l </sub><b>304</b><i>b </i>changes its private key by setting S<sub>l</sub>′:=S<sub>l</sub>+bP<sub>l</sub>, and Q<sub>l−1</sub>′:=Q<sub>l−1</sub>+bP<sub>0</sub>, the new private key is still related to PKG<sub>l−1</sub>'s key generation secret s<sub>l−1</sub>, because the new private key is derived from a private key generated by PKG<sub>l−1 </sub>using s<sub>l−1</sub>. In general, in all of the schemes discussed herein, a user or PKG may change its own secret element S<sub>z(n+1) </sub>and key generation parameters Q<sub>zi </sub>for 1≦i≦n by choosing values for b<sub>i </sub>for 1≦i≦n and setting
<maths id="MATH-US-00018" num="00018"><math overflow="scroll"><mrow><mrow><msubsup><mi>S</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mi>′</mi></msubsup><mo></mo><mstyle><mtext>:</mtext></mstyle><mo>=</mo><msub><mi>S</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow><mo>+</mo><mrow><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mo></mo><mrow><msub><mi>b</mi><mi>i</mi></msub><mo></mo><msub><mi>P</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow></mrow></mrow></math></maths><img file="US7590854B2_D0156.tif" /><br /> and Q<sub>zi</sub>′:=Q<sub>zi</sub>+b<sub>i</sub>P<sub>0 </sub>for 1≦i≦n. For purposes of the present invention, however, this new private key is still considered to be related to the original private key, and is thus related to the original values of the key generation secrets s<sub>zi</sub>. <br /> Dual-HIDE Scheme With More Efficient Encryption or Decryption
In the dual-HIDE schemes described above, it is possible to decrease by one the number of values of the pairing that the encrypter must compute without increasing the number of values of the pairing that the decrypter must compute. For instance, the dual-BasicHIDE Encryption algorithm described above may be modified such that the ciphertext C=[rP<sub>0</sub>,r(P<sub>y(l+1)</sub>−P<sub>z(l+1)</sub>),rP<sub>z(l+2)</sub>, . . . ,rP<sub>z(n+1)</sub>,M ⊕ H<sub>2</sub>(g<sub>y(l+1)</sub><sup>r</sup>)], where
<maths id="MATH-US-00019" num="00019"><math overflow="scroll"><mrow><msub><mi>g</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>=</mo><mrow><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>P</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mrow><mi>l</mi><mo>+</mo><mn>2</mn></mrow></mrow><mi>m</mi></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>P</mi><mi>yi</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>=</mo><mrow><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>P</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow></mrow><mo>.</mo></mrow></mrow></mrow></math></maths><img file="US7590854B2_D0157.tif" /><br /> If the ciphertext is represented as C=[U<sub>0</sub>,U<sub>l+1</sub>, . . . ,U<sub>n+1</sub>,V], then it may be decrypted using
<maths id="MATH-US-00020" num="00020"><math overflow="scroll"><mrow><mi>M</mi><mo>=</mo><mrow><mi>V</mi><mo>⊕</mo><mrow><mrow><msub><mi>H</mi><mn>2</mn></msub><mo>(</mo><mfrac><mrow><mrow><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>U</mi><mn>0</mn></msub><mo>,</mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><msub><mi>S</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>n</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo>+</mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow></mrow><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>U</mi><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>Q</mi><mi>zl</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo>=</mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mi>l</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo>+</mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>2</mn></mrow></mrow><mrow><mi>n</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle></mrow></munderover><mo></mo><mstyle><mspace width="0.6em" height="0.6ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo>-</mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>,</mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><msub><mi>U</mi><mi>i</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>)</mo></mrow><mo>.</mo></mrow></mrow></mrow></math></maths><img file="US7590854B2_D0158.tif" />
Likewise, it is possible to decrease by one the number of values of the pairing that the decrypter must compute without increasing the number of values that the encrypter must compute. For instance, the dual-BasicHIDE Encryption algorithm may be modified such that the ciphertext C=[rP<sub>0</sub>,rP<sub>y(l+2)</sub>, . . . ,rP<sub>y(n)</sub>,M ⊕ H<sub>2</sub>(g<sub>z(l+1)</sub><sup>r</sup>)], where
<maths id="MATH-US-00021" num="00021"><math overflow="scroll"><mrow><msub><mi>g</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>=</mo><mrow><mfrac><mrow><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>P</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow></mrow><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mi>yl</mi></msub><mo>,</mo><mrow><mo>(</mo><mrow><msub><mi>P</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>-</mo><msub><mi>P</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow></mrow><mo>)</mo></mrow></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mrow><mi>l</mi><mo>+</mo><mn>2</mn></mrow></mrow><mi>m</mi></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>P</mi><mi>yi</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>=</mo><mrow><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>P</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow></mrow><mo>.</mo></mrow></mrow></mrow></math></maths><img file="US7590854B2_D0159.tif" /><br /> If the ciphertext is represented as C=[U<sub>0</sub>,U<sub>l+2</sub>, . . . ,U<sub>n</sub>,V], then it may be decrypted using
<maths id="MATH-US-00022" num="00022"><math overflow="scroll"><mrow><mi>M</mi><mo>=</mo><mrow><mi>V</mi><mo>⊕</mo><mrow><mrow><msub><mi>H</mi><mn>2</mn></msub><mo>(</mo><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>U</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mrow><mi>l</mi><mo>+</mo><mn>2</mn></mrow></mrow><mi>n</mi></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>U</mi><mi>i</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>)</mo></mrow><mo>.</mo></mrow></mrow></mrow></math></maths><img file="US7590854B2_D0160.tif" /><br /> Authenticated Lower-Level Root PKGs
The efficiencies of the dual-HIDE schemes described above may be extended to message senders who are outside the hierarchy by creating an authenticated lower-level root PKG. To “authenticate” the lower-level PKG, the root PKG may issue an additional parameter, such as a random message M′. The lower-level PKG then “signs” M′, generating the signature Sig=S<sub>zl</sub>+s<sub>zl</sub>P<sub>M′</sub>, where S<sub>l </sub>is the lower-level PKG's private key, and s<sub>t </sub>is its lower-level key generation secret. The lower-level PKG also publishes Q<sub>i </sub>for 1≦i≦t.
Taking advantage of the authenticated lower-level root PKG, a sender outside the hierarchy may send an encrypted message to the recipient z without computing public elements P<sub>zi </sub>for all n of the recipient's ancestor PKGs. Rather, the sender may use the parameters for the lower-level authenticated root PKG to encrypt the message more efficiently. In particular, the sender computes P<sub>zi</sub>=H<sub>1</sub>(ID<sub>1</sub>, . . . , ID<sub>zi</sub>) ε <img file="US7590854B2_D0161.tif" /><sub>1 </sub>for l+1≦i≦n+1. The sender then chooses a random r ε <img file="US7590854B2_D0162.tif" />/q<img file="US7590854B2_D0163.tif" />, and generates the ciphertext C=[rP<sub>0</sub>,rP<sub>z(l+1)</sub>, . . . ,rP<sub>z(n+1)</sub>,M ⊕ H<sub>2</sub>(g<sub>zl</sub><sup>r</sup>)], where
<maths id="MATH-US-00023" num="00023"><math overflow="scroll"><mrow><msub><mi>g</mi><mi>zl</mi></msub><mo>=</mo><mrow><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>P</mi><mn>0</mn></msub><mo>,</mo><mi>Sig</mi></mrow><mo>)</mo></mrow></mrow><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><mrow><msub><mi>s</mi><mi>zl</mi></msub><mo></mo><msub><mi>P</mi><mn>0</mn></msub></mrow><mo>,</mo><msub><mi>P</mi><msup><mi>M</mi><mi>′</mi></msup></msub></mrow><mo>)</mo></mrow></mrow></mfrac><mo>=</mo><mrow><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>P</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mi>zl</mi></msub></mrow><mo>)</mo></mrow></mrow><mo>.</mo></mrow></mrow></mrow></math></maths><img file="US7590854B2_D0164.tif" /><br /> Letting the received ciphertext C=[U<sub>0</sub>, U<sub>l+1</sub>, . . . , U<sub>n+1</sub>, V], the recipient may then decrypt the ciphertext to recover the message
<maths id="MATH-US-00024" num="00024"><math overflow="scroll"><mrow><mrow><mi>M</mi><mo>=</mo><mrow><mi>V</mi><mo>⊕</mo><mrow><msub><mi>H</mi><mn>2</mn></msub><mo>[</mo><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>U</mi><mn>0</mn></msub><mo>,</mo><msub><mi>S</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow><mo>)</mo></mrow></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mrow><mi>l</mi><mo>+</mo><mn>1</mn></mrow></mrow><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>z</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>U</mi><mi>i</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mfrac><mo>]</mo></mrow></mrow></mrow><mo>,</mo></mrow></math></maths><img file="US7590854B2_D0165.tif" /><br /> where S<sub>z(n+1) </sub>is the recipient's private key. <br /> Distributed PKGs
To further protect the key generation secrets of the HIDE schemes described above, and to make the schemes robust against dishonest PKGs, the key generation secrets and private keys may be distributed using known techniques of threshold cryptography.
More Efficient Encryption
The efficiency of encryption for the HIDE schemes described above may be increased by merging the highest two levels of the hierarchy into a single root PKG. In that case, g=ê(Q<sub>0</sub>,P<sub>1</sub>) is included in the system parameters. This saves encrypters the task of computing the value of this pairing. However, the decrypters must compute one extra pairing (as a result of being one level lower down the tree).
HIDS Schemes
It has been noted by Moni Naor that an IBE scheme can be immediately converted into a public key signature scheme as follows: the signer's private key is the master key in the IBE scheme. The signer's signature on M is the IBE decryption key d corresponding to the “public key” H<sub>1</sub>(ID)=H<sub>1</sub>(M). The verifier checks the signature by choosing a random message M′, encrypting M′ with H<sub>1</sub>(M), and trying to decrypt the resulting ciphertext with d. If the ciphertext decrypts correctly, the signature is considered valid.
This observation can be extended to a hierarchical context: a HIDE scheme can be immediately converted to a hierarchical ID=based signature (HIDS) scheme. Suppose the signer has ID-tuple (ID<sub>1</sub>, . . . ,ID<sub>t</sub>). To sign M, the signer computes the private key d for the ID-tuple (ID<sub>1</sub>, . . . ,ID<sub>t</sub>,M), and sends d to the verifier. As before, the verifier checks the signature by choosing a random message M′, encrypting M′ with the “public key” (ID<sub>1</sub>, . . . ,ID<sub>t</sub>,M), and trying to decrypt the resulting ciphertext with d. The security of this HIDS scheme follows immediately from the security of our HIDE scheme, since forging a signer's signature is equivalent to recovering the private key of one of the signer's children. In fact, the security of the HIDS scheme is based on the difficulty of solving the Diffie-Hellman problem in the group <img file="US7590854B2_D0166.tif" /><sub>1</sub>.
A pitfall in the HIDS scheme just described is that an attacker might try to get the signer to sign M=ID<sub>t+1 </sub>where ID<sub>t+1 </sub>represents an actual identity. In this case, the signer's signature will actually be a private key, which thereafter may be used to decrypt messages and forge signatures. One solution to this problem is to use some expedient—such as a bit prefix—that distinguishes between signing and private key extraction. Here is one embodiment.
Let Level<sub>i </sub>be the set of entities at level i, where Level<sub>0</sub>={Root PKG}. Let K be the security parameter given to the setup algorithm and let <img file="US7590854B2_D0167.tif" /> be a BDH parameter generator.
Root Setup: The root PKG:
1. runs <img file="US7590854B2_D0168.tif" /> on input K to generate groups <img file="US7590854B2_D0169.tif" /><sub>1</sub>, <img file="US7590854B2_D0170.tif" /><sub>2 </sub>of some prime order q and an admissible pairing ê: <img file="US7590854B2_D0171.tif" /><sub>1</sub>×<img file="US7590854B2_D0172.tif" /><sub>1</sub>→<img file="US7590854B2_D0173.tif" /><sub>2</sub>;
2. chooses an arbitrary generator P<sub>0</sub>ε<img file="US7590854B2_D0174.tif" /><sub>1</sub>;
3. picks a random s<sub>0</sub>ε<img file="US7590854B2_D0175.tif" />/q<img file="US7590854B2_D0176.tif" /> and sets Q<sub>0</sub>=s<sub>0</sub>P<sub>0</sub>;
4. chooses cryptographic hash functions H<sub>1</sub>:{0,1}*→<img file="US7590854B2_D0177.tif" /><sub>1 </sub>and H<sub>3</sub>:{0,1}*→<img file="US7590854B2_D0178.tif" /><sub>1</sub>. The security analysis will treat H<sub>1 </sub>and H<sub>3 </sub>as random oracles.
The signature space is S=<img file="US7590854B2_D0179.tif" /><sub>1</sub><sup>t+1 </sup>where t is the level of the recipient. The system parameters are params={<img file="US7590854B2_D0180.tif" /><sub>1</sub>,<img file="US7590854B2_D0181.tif" /><sub>2</sub>,ê,P<sub>0</sub>,Q<sub>0</sub>,H<sub>1</sub>,H<sub>3</sub>}. The root PKG's secret is s<sub>0</sub>ε<img file="US7590854B2_D0182.tif" />/q<img file="US7590854B2_D0183.tif" />.
Lower-level Setup. As in BasicHIDE.
Extraction: As in BasicHIDE.
Signing: To encrypt M with the ID-tuple (ID<sub>1</sub>, . . . ,ID<sub>t</sub>) (using the secret point
<maths id="MATH-US-00025" num="00025"><math overflow="scroll"><mrow><msub><mi>S</mi><mi>t</mi></msub><mo>=</mo><mrow><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>t</mi></munderover><mo></mo><mrow><msub><mi>s</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo></mo><msub><mi>P</mi><mi>i</mi></msub></mrow></mrow></mrow></math></maths><img file="US7590854B2_D0184.tif" /><br /> and the points Q<sub>i</sub>=s<sub>i</sub>P<sub>0 </sub>for 1≦i≦t), do the following:
1. Compute P<sub>i</sub>=H<sub>1</sub>(ID<sub>1</sub>, . . . ,ID<sub>i</sub>)ε<img file="US7590854B2_D0185.tif" /><sub>1 </sub>for 1≦i≦t. (These can be precomputed.)
2. Compute P<sub>M</sub>=H<sub>3</sub>(ID<sub>1</sub>, . . . ,ID<sub>t</sub>,M)ε<img file="US7590854B2_D0186.tif" /><sub>1</sub>. (As suggested above, we might use a bit-prefix or some other method, instead of using a totally different hash function.)
3. Compute Sig(ID-tuple,M)=S<sub>t</sub>+s<sub>t</sub>P<sub>M</sub>.
4. Send Sig(ID-tuple,M) and Q<sub>i</sub>=s<sub>i</sub>P<sub>0 </sub>for 1≦i≦t
Verification: Let [Sig,Q<sub>1</sub>, . . . ,Q<sub>t</sub>]ε<img file="US7590854B2_D0187.tif" /> be the signature for (ID-tuple,M). The verifier confirms that:
<maths id="MATH-US-00026" num="00026"><math overflow="scroll"><mrow><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>P</mi><mn>0</mn></msub><mo>,</mo><mi>Sig</mi></mrow><mo>)</mo></mrow></mrow><mrow><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mi>t</mi></msub><mo>,</mo><msub><mi>P</mi><mi>M</mi></msub></mrow><mo>)</mo></mrow></mrow><mo></mo><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mn>2</mn></mrow><mi>t</mi></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>P</mi><mi>i</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mrow></mfrac><mo>=</mo><mrow><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mn>0</mn></msub><mo>,</mo><msub><mi>P</mi><mn>1</mn></msub></mrow><mo>)</mo></mrow></mrow><mo>.</mo></mrow></mrow></math></maths><img file="US7590854B2_D0188.tif" />
By modifying the above HIDS scheme so that an entity's point-tuple (P<sub>1</sub>, . . . ,P<sub>t</sub>) is computed as a function not only of its ID-tuple (ID<sub>1</sub>, . . . ,ID<sub>t</sub>), but also as a function of the points Q<sub>i</sub>=s<sub>i</sub>P<sub>0</sub>, i.e. P<sub>i</sub>=H<sub>1</sub>(ID<sub>1</sub>, . . . ,ID<sub>i</sub>,Q<sub>1</sub>, . . . ,Q<sub>i</sub>) for 1≦i≦t, we are able to obtain a stronger security proof. See the aforementioned U.S. patent application No. 60/366,196.
A dual HIDS scheme can be obtained as follows. If users y and z have a common ancestor in Level<sub>l</sub>, then y only needs to send Q<sub>yi </sub>for l+1≦i≦m. This makes the length of the signature proportional to m−l rather than m.
Turning now to the signature, or HIDS, schemes of the present invention, <figref idref="DRAWINGS">FIG. 7</figref> shows a flow diagram illustrating a method of generating and verifying a digital signature according to another presently preferred embodiment of the invention. The method is performed in a HIDS system including a plurality of PKGs. The PKGs include at least a root PKG and n lower-level PKGs in the hierarchy between the root PKG and the sender, or signer, wherein n≧1. In block <b>702</b>, the root PKG selects a root key generation secret known only to the root PKG. The root key generation secret may be used to generate private keys for PKGs or users below the root PKG in the hierarchy. The root PKG then generates a root key generation parameter based on the root key generation secret in block <b>704</b>. The lower-level PKGs select lower-level key generation secrets in block <b>706</b>. The lower-level key generation associated with a given lower-level PKG may be used to generate private keys for PKGs or users below the associated lower-level PKG in the hierarchy. Like the root key generation secret, each of the lower-level key generation secrets is known only to its associated lower-level PKG. In block <b>708</b>, lower-level key generation parameters are generated for each of the n lower-level PKGs. Each of the lower-level key generation parameters is generated using at least the lower-level key generation secret for its associated lower-level PKG.
In block <b>710</b>, a lower-level PKG generates a private key for the recipient such that the private key is related to at least one of the n lower-level key generation secrets. For instance, the sender's private key may be related at least to the lower-level key generation secret of the PKG that issued the private key to the recipient. Preferably, however, the recipient's private key may be related to all n of its ancestral PKG's lower-level key generation secrets, as well as the root key generation secret. In block <b>712</b>, the sender uses at least its private key to sign the message and generate the digital signature. The recipient, or verifier, then verifies the digital signature in block <b>714</b> using at least one of the lower-level key generation parameters. For instance, the signature may be verified using only the root key generation parameter. Alternatively, one or more of the lower-level key generation parameters also may be used.
<figref idref="DRAWINGS">FIG. 8</figref> shows a flow diagram illustrating a method of generating and verifying a digital signature Sig of a digital message M communicated between a sender y and a recipient z according to another presently preferred embodiment of the invention. The sender y <b>306</b> is m+1 levels below the root PKG in the hierarchy, as shown in <figref idref="DRAWINGS">FIG. 3</figref>, and is associated with the ID-tuple (ID<sub>y1</sub>, . . . , ID<sub>y(m+1)</sub>). The sender's ID-tuple includes identity information ID<sub>y(m+1) </sub>associated with the sender, as well as identity information ID<sub>yi </sub>associated with each of its m ancestral lower-level PKGs in the hierarchy. The method begins in block <b>802</b> by generating first and second cyclic groups <img file="US7590854B2_D0189.tif" /><sub>1 </sub>and <img file="US7590854B2_D0190.tif" /><sub>2 </sub>of elements. In block <b>804</b>, a function ê is selected, such that the function ê is capable of generating an element of the second cyclic group <img file="US7590854B2_D0191.tif" /><sub>2 </sub>from two elements of the first cyclic group <img file="US7590854B2_D0192.tif" /><sub>1</sub>. The function ê preferably is an admissible pairing, as described above. A root generator P<sub>0 </sub>of the first cyclic group <img file="US7590854B2_D0193.tif" /><sub>1 </sub>is selected in block <b>806</b>. In block <b>808</b>, a random root key generation secret s<sub>0 </sub>associated with and known only to the root PKG <b>302</b> is selected. Preferably, s<sub>0 </sub>is an element of the cyclic group <img file="US7590854B2_D0194.tif" />/q<img file="US7590854B2_D0195.tif" />. A root key generation parameter Q<sub>0</sub>=s<sub>0</sub>P<sub>0 </sub>is generated in block <b>810</b>. Preferably, Q<sub>0 </sub>is an element of the first cyclic group <img file="US7590854B2_D0196.tif" /><sub>1</sub>. In block <b>812</b>, a first function H<sub>1 </sub>is selected such that H<sub>1 </sub>is capable of generating an element of the first cyclic group <img file="US7590854B2_D0197.tif" /><sub>1 </sub>from a first string of binary digits. A second function H<sub>3 </sub>is selected in block <b>814</b>, such that H<sub>3 </sub>is capable of generating a second string of binary digits from an element of the second cyclic group <img file="US7590854B2_D0198.tif" /><sub>2</sub>. The functions of blocks <b>802</b> through <b>814</b> are part of the HIDS Root Setup algorithm described above, and preferably are performed at about the same time. By way of example, functions such as those disclosed in Boneh-Franklin may be used as H<sub>1 </sub>and H<sub>3</sub>. In fact, the functions H<sub>1 </sub>and H<sub>3 </sub>may be exactly the same function. However, there is a potential pitfall. An attacker may try to get the signer to sign M=ID<sub>t</sub>, wherein ID<sub>t </sub>represents an actual identity. In this case, the signer's signature may actually be a private key, which thereafter may be used to decrypt messages and forge signatures. This pitfall may be avoided, however, by using some expedient—such as a bit prefix or a different function for H<sub>3</sub>—that distinguishes between signing and private key extraction.
The next series of blocks (blocks <b>816</b> through <b>824</b>) show the functions performed as part of Lower-level Setup algorithm. In block <b>816</b>, a public element P<sub>yi </sub>is generated for each of the sender's m ancestral lower-level PKGs. Each of the public elements, P<sub>yi</sub>=H<sub>1</sub>(ID<sub>1</sub>, . . . , ID<sub>yi</sub>) for 1≦i≦m, preferably is an element of the first cyclic group <img file="US7590854B2_D0199.tif" /><sub>1</sub>. Although represented in a single block, generation of all the public elements P<sub>yi </sub>may take place over time, rather than all at once.
A lower-level key generation secret s<sub>yi </sub>is selected (block <b>818</b>) for each of the sender's m ancestral lower-level PKGs <b>304</b><i>a,b,d</i>. The lower-level key generation secrets s<sub>yi </sub>preferably are elements of the cyclic group <img file="US7590854B2_D0200.tif" />/q<img file="US7590854B2_D0201.tif" /> for 1≦i≦m, and each lower-level key generation secret s<sub>yi </sub>preferably is known only to its associated lower-level PKG. Again, although represented in a single block, selection of all the secrets s<sub>yi </sub>may take place over time, rather than all at once.
A lower-level secret element S<sub>yi </sub>is generated (block <b>820</b>) for each of the sender's m ancestral lower-level PKGs. Each lower-level secret element, S<sub>yi</sub>=S<sub>y(i−1)</sub>+s<sub>y(i−1)</sub>P<sub>yi </sub>for 1≦i≦m, preferably is an element of the first cyclic group <img file="US7590854B2_D0202.tif" /><sub>1</sub>. Although represented in a single block like the public elements P<sub>yi </sub>and the secrets s<sub>yi</sub>, generation of all the secret elements S<sub>yi </sub>may take place over time, rather than all at once. For purposes of these iterative key generation processes, S<sub>0 </sub>preferably is defined to be the identity element of <img file="US7590854B2_D0203.tif" /><sub>1</sub>.
A lower-level key generation parameter Q<sub>yi </sub>also is generated (block <b>824</b>) for each of the sender's m ancestral lower-level PKGs. Each of the key generation parameters, Q<sub>yi</sub>=s<sub>yi</sub>P<sub>0 </sub>for 1≦i≦m , preferably is an element of the first cyclic group <img file="US7590854B2_D0204.tif" /><sub>1</sub>. Again, although represented in a single block, generation of all the key generation parameters Q<sub>yi </sub>may take place over time, rather than all at once.
The functions of the next two blocks (blocks <b>824</b> and <b>826</b>) are performed as part of the Extraction algorithm described above. A sender public element P<sub>y(m+1) </sub>associated with the sender y is generated in block <b>824</b>. The sender public element, P<sub>y(m+1)</sub>=H<sub>1</sub>(D<sub>y1</sub>, . . . , ID<sub>y(m+1)</sub>), preferably is an element of the first cyclic group <img file="US7590854B2_D0205.tif" /><sub>1</sub>. A sender secret element S<sub>y(m+1) </sub>associated with the sender y is then generated in block <b>826</b>. The sender secret element
<maths id="MATH-US-00027" num="00027"><math overflow="scroll"><mrow><mrow><msub><mi>S</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>=</mo><mrow><mrow><msub><mi>S</mi><mi>ym</mi></msub><mo>+</mo><mrow><msub><mi>s</mi><mi>ym</mi></msub><mo></mo><msub><mi>P</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub></mrow></mrow><mo>=</mo><mrow><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow></munderover><mo></mo><mrow><msub><mi>s</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo></mo><msub><mi>P</mi><mi>yi</mi></msub></mrow></mrow></mrow></mrow><mo>,</mo></mrow></math></maths><img file="US7590854B2_D0206.tif" /><br /> also preferably is an element of the first cyclic group <img file="US7590854B2_D0207.tif" /><sub>1</sub>.
For convenience, the first function H<sub>1 </sub>optionally may be chosen to be an iterated function so that, for example, the public points P<sub>i </sub>may be computed as H<sub>1</sub>(P<sub>y(i−1)</sub>, ID<sub>yi</sub>) rather than H<sub>1 </sub>(ID<sub>1</sub>, . . . , ID<sub>yi</sub>).
The last two blocks shown in <figref idref="DRAWINGS">FIG. 8</figref> (blocks <b>828</b> and <b>830</b>) represent the Signing and Verification algorithms described above. In block <b>828</b>, the message M is signed to generate a digital signature Sig. The signing preferably uses at least the sender secret element S<sub>y(m+1)</sub>. The digital signature Sig is then verified in block <b>830</b>. The verification preferably uses at least the root key generation parameter Q<sub>0 </sub>and the lower-level key generation parameters Q<sub>yi</sub>. The specific use of these parameters and elements in the signing of the message M and verification of the digital signature Sig will now be discussed with reference to <figref idref="DRAWINGS">FIG. 9</figref>.
<figref idref="DRAWINGS">FIG. 9</figref> shows a flow diagram illustrating a method of generating and verifying a digital signature Sig of a digital message M communicated between a sender y and a recipient z according to another presently preferred embodiment of the invention. In this scheme the Root Setup, Lower-level Setup, and Extraction algorithms are the same as for the embodiment shown in blocks <b>802</b> through <b>826</b> of <figref idref="DRAWINGS">FIG. 8</figref>. Accordingly, the flow diagram of <figref idref="DRAWINGS">FIG. 9</figref> begins with the selection of a sender key generation secret s<sub>y(m+1)</sub>, known only to the sender y, in block <b>927</b><i>a</i>. A sender key generation parameter Q<sub>y(m+1) </sub>associated with the sender is generated in block <b>927</b><i>b </i>using the formula Q<sub>y(m+1)</sub>=s<sub>y(m+1)</sub>P<sub>0</sub>. The Signing algorithm then begins with the sender generating a message element P<sub>M</sub>=H<sub>3</sub>(ID<sub>y1</sub>, . . . , ID<sub>y(m+1)</sub>, M) in block <b>928</b><i>a. </i>The message element P<sub>M </sub>preferably is a member of the first cyclic group <img file="US7590854B2_D0208.tif" /><sub>1</sub>. The digital signature Sig itself is generated in block <b>928</b><i>b </i>using the formula Sig=S<sub>y(m+1)</sub>+s<sub>y(m+1)</sub>P<sub>M</sub>. The recipient verifies the digital signature Sig (block <b>930</b>) by confirming that the formula
<maths id="MATH-US-00028" num="00028"><math overflow="scroll"><mrow><mfrac><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>P</mi><mn>0</mn></msub><mo>,</mo><mi>Sig</mi></mrow><mo>)</mo></mrow></mrow><mrow><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>P</mi><mi>M</mi></msub></mrow><mo>)</mo></mrow></mrow><mo></mo><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mn>2</mn></mrow><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mrow><mi>y</mi><mo></mo><mrow><mo>(</mo><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></msub><mo>,</mo><msub><mi>P</mi><mi>yi</mi></msub></mrow><mo>)</mo></mrow></mrow></mrow></mrow></mfrac><mo>=</mo><mrow><mover><mi>e</mi><mo>^</mo></mover><mo></mo><mrow><mo>(</mo><mrow><msub><mi>Q</mi><mn>0</mn></msub><mo>,</mo><msub><mi>P</mi><mn>1</mn></msub></mrow><mo>)</mo></mrow></mrow></mrow></math></maths><img file="US7590854B2_D0209.tif" /><br /> is satisfied.
The invention has been described in detail with particular reference to preferred embodiments thereof and illustrative examples, but it will be understood that variations and modifications can be effected within the spirit and scope of the invention.
Contents5
272 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32 Sheet 33 Sheet 34 Sheet 35 Sheet 36 Sheet 37 Sheet 38 Sheet 39 Sheet 40 Sheet 41 Sheet 42 Sheet 43 Sheet 44 Sheet 45 Sheet 46 Sheet 47 Sheet 48 Sheet 49 Sheet 50 Sheet 51 Sheet 52 Sheet 53 Sheet 54 Sheet 55 Sheet 56 Sheet 57 Sheet 58 Sheet 59 Sheet 60 Sheet 61 Sheet 62 Sheet 63 Sheet 64 Sheet 65 Sheet 66 Sheet 67 Sheet 68 Sheet 69 Sheet 70 Sheet 71 Sheet 72 Sheet 73 Sheet 74 Sheet 75 Sheet 76 Sheet 77 Sheet 78 Sheet 79 Sheet 80 Sheet 81 Sheet 82 Sheet 83 Sheet 84 Sheet 85 Sheet 86 Sheet 87 Sheet 88 Sheet 89 Sheet 90 Sheet 91 Sheet 92 Sheet 93 Sheet 94 Sheet 95 Sheet 96 Sheet 97 Sheet 98 Sheet 99 Sheet 100 Sheet 101 Sheet 102 Sheet 103 Sheet 104 Sheet 105 Sheet 106 Sheet 107 Sheet 108 Sheet 109 Sheet 110 Sheet 111 Sheet 112 Sheet 113 Sheet 114 Sheet 115 Sheet 116 Sheet 117 Sheet 118 Sheet 119 Sheet 120 Sheet 121 Sheet 122 Sheet 123 Sheet 124 Sheet 125 Sheet 126 Sheet 127 Sheet 128 Sheet 129 Sheet 130 Sheet 131 Sheet 132 Sheet 133 Sheet 134 Sheet 135 Sheet 136 Sheet 137 Sheet 138 Sheet 139 Sheet 140 Sheet 141 Sheet 142 Sheet 143 Sheet 144 Sheet 145 Sheet 146 Sheet 147 Sheet 148 Sheet 149 Sheet 150 Sheet 151 Sheet 152 Sheet 153 Sheet 154 Sheet 155 Sheet 156 Sheet 157 Sheet 158 Sheet 159 Sheet 160 Sheet 161 Sheet 162 Sheet 163 Sheet 164 Sheet 165 Sheet 166 Sheet 167 Sheet 168 Sheet 169 Sheet 170 Sheet 171 Sheet 172 Sheet 173 Sheet 174 Sheet 175 Sheet 176 Sheet 177 Sheet 178 Sheet 179 Sheet 180 Sheet 181 Sheet 182 Sheet 183 Sheet 184 Sheet 185 Sheet 186 Sheet 187 Sheet 188 Sheet 189 Sheet 190 Sheet 191 Sheet 192 Sheet 193 Sheet 194 Sheet 195 Sheet 196 Sheet 197 Sheet 198 Sheet 199 Sheet 200 Sheet 201 Sheet 202 Sheet 203 Sheet 204 Sheet 205 Sheet 206 Sheet 207 Sheet 208 Sheet 209 Sheet 210 Sheet 211 Sheet 212 Sheet 213 Sheet 214 Sheet 215 Sheet 216 Sheet 217 Sheet 218 Sheet 219 Sheet 220 Sheet 221 Sheet 222 Sheet 223 Sheet 224 Sheet 225 Sheet 226 Sheet 227 Sheet 228 Sheet 229 Sheet 230 Sheet 231 Sheet 232 Sheet 233 Sheet 234 Sheet 235 Sheet 236 Sheet 237 Sheet 238 Sheet 239 Sheet 240 Sheet 241 Sheet 242 Sheet 243 Sheet 244 Sheet 245 Sheet 246 Sheet 247 Sheet 248 Sheet 249 Sheet 250 Sheet 251 Sheet 252 Sheet 253 Sheet 254 Sheet 255 Sheet 256 Sheet 257 Sheet 258 Sheet 259 Sheet 260 Sheet 261 Sheet 262 Sheet 263 Sheet 264 Sheet 265 Sheet 266 Sheet 267 Sheet 268 Sheet 269 Sheet 270 Sheet 271 Sheet 272
Every citation, both waysCites: the store holds 62 of 63
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US7751558B2 | Cited by | United States of America | Applicant |
| US2008313465A1 | Cited by | United States of America | Pre-grant |
| US10148285B1 | Cited by | United States of America | Applicant |
| US10795858B1 | Cited by | United States of America | Applicant |
| US2009034740A1 | Cited by | United States of America | Pre-grant |
| US11128454B2 | Cited by | United States of America | Applicant |
| US7796751B2 | Cited by | United States of America | Applicant |
| US10333696B2 | Cited by | United States of America | Applicant |
| US7853016B2 | Cited by | United States of America | Applicant |
| EP1051036A2 | Cites | European Patent Office (EPO) | Applicant |
| US2002025034A1 | Cites | United States of America | Applicant |
| US2002154782A1 | Cites | United States of America | Applicant |
| US2003081785A1 | Cites | United States of America | Applicant |
| US2003095665A1 | Cites | United States of America | Applicant |
| US2003097562A1 | Cites | United States of America | Applicant |
| US2003097569A1 | Cites | United States of America | Applicant |
| US2003120931A1 | Cites | United States of America | Search report |
| US2003179885A1 | Cites | United States of America | Applicant |
| US2004260926A1 | Cites | United States of America | Search report |
| US2005022102A1 | Cites | United States of America | Applicant |
| US2005097316A1 | Cites | United States of America | Search report |
| US2005169464A1 | Cites | United States of America | Applicant |
| US2005246533A1 | Cites | United States of America | Applicant |
| US2006126832A1 | Cites | United States of America | Applicant |
| US2007189539A1 | Cites | United States of America | Applicant |
| US2008152130A1 | Cites | United States of America | Search report |
| US2008162927A1 | Cites | United States of America | Search report |
| US2009024852A1 | Cites | United States of America | Search report |
| US2009034739A1 | Cites | United States of America | Search report |
| US4309569A | Cites | United States of America | Applicant |
| US5432852A | Cites | United States of America | Applicant |
| US5590197A | Cites | United States of America | Applicant |
| US5638447A | Cites | United States of America | Search report |
| US5708714A | Cites | United States of America | Search report |
| US5774552A | Cites | United States of America | Applicant |
| US5867578A | Cites | United States of America | Applicant |
| US6141420A | Cites | United States of America | Applicant |
| US6212637B1 | Cites | United States of America | Applicant |
| US6298153B1 | Cites | United States of America | Search report |
| US6618483B1 | Cites | United States of America | Applicant |
| US6760441B1 | Cites | United States of America | Applicant |
| US6826687B1 | Cites | United States of America | Applicant |
| US6886296B1 | Cites | United States of America | Applicant |
| US7088822B2 | Cites | United States of America | Applicant |
| US7113594B2 | Cites | United States of America | Applicant |
| US7178025B2 | Cites | United States of America | Applicant |
| US7224804B2 | Cites | United States of America | Applicant |
| US7225339B2 | Cites | United States of America | Applicant |
| US7337322B2 | Cites | United States of America | Search report |
| US7349538B2 | Cites | United States of America | Search report |
| US7443980B2 | Cites | United States of America | Search report |
| US20020025034A1 | Cites | United States of America | Third party observation |
| US20020154782A1 | Cites | United States of America | Third party observation |
| US20030081785A1 | Cites | United States of America | Third party observation |
| US20030095665A1 | Cites | United States of America | Third party observation |
| US20030097562A1 | Cites | United States of America | Third party observation |
| US20030097569A1 | Cites | United States of America | Third party observation |
| US20030120931A1 | Cites | United States of America | Search report |
| US20030179885A1 | Cites | United States of America | Third party observation |
| US20040260926A1 | Cites | United States of America | Search report |
| US20050022102A1 | Cites | United States of America | Third party observation |
| US20050097316A1 | Cites | United States of America | Search report |
| US20050169464A1 | Cites | United States of America | Third party observation |
| US20050246533A1 | Cites | United States of America | Third party observation |
| US20060126832A1 | Cites | United States of America | Third party observation |
| US20070189539A1 | Cites | United States of America | Third party observation |
| US20080152130A1 | Cites | United States of America | Search report |
| US20080162927A1 | Cites | United States of America | Search report |
| US20090024852A1 | Cites | United States of America | Search report |
| US20090034739A1 | Cites | United States of America | Search report |
| EP1051036A2 | Cites | European Patent Office (EPO) | Third party observation |
| Dutta, Ratna et al. "Pairing-Based Cryptographic Protocols: A Survey" Cryptographic Research Group. 2004. | Non-patent | – | Applicant |
| Gentry, Craig and Silverberg, Alice: "Hierarchical ID-Based Cryptography," May 24, 2002, pp. 1-21, XP002396667. | Non-patent | – | Applicant |
| N. Koblitz, Elliptic Curve Cryptosystems, Mathmatics of Computation, vol. 48, No. 177, Jan. 1987, pp. 203-209. | Non-patent | – | Applicant |
| Y. Dodis, M. Yung, Exposure-Resilience for Free: The Hierarchical ID-Based Encryption Case. | Non-patent | – | Applicant |
| U. Feige, A. Fiat, A. Shamir, Zero Knowledge Proofs of Identity, 1987 ACM 0-89791-22 7/87/0006-0210, pp. 210-217. | Non-patent | – | Applicant |
| S. S. Al-Riyami, K. G. Paterson, Authenticated Three Party Key Agreement Protocols From Pairings, 2002. | Non-patent | – | Applicant |
| C. G. Gunther, A. B. Boveri, An Identity-Based Key-Exchange Protocol, pp. 29-37. | Non-patent | – | Applicant |
| A. Fiat, A. Shamir, How to Prove Yourself: Practical Solutions to Identification and Signature Problems, 1998, pp. 186-194. | Non-patent | – | Applicant |
| J.C. Cha and J.H. Cheon, An Identity-Based Signature from Gap Diffie-Hellman Groups, Cryptology ePrint archive, Report 2002/018, 2002. http://eprint.iacr.org/, 2002. | Non-patent | – | Applicant |
| N. P. Smart, An Identity-Based Authenticated Key Agreement Protocol Based on the Weil Pairing, Cryptology Eprint Archive, Report 2001/111,2001. http://eprint.iacr.org/, 2001. | Non-patent | – | Applicant |
| D. Boneh, M. Franklin, Identity-Based Encryption from the Weil Pairing, Advances in Cryptology-Crypto2001, Springer LNCS 2139. | Non-patent | – | Applicant |
| C. Cocks, An Identity Based Encryption Scheme Based On Quadratic Equations. | Non-patent | – | Applicant |
| J. Horwitz, B. Lynn, Toward Hierarchical Identity-Based Encryption. | Non-patent | – | Applicant |
| M. Girault, Self-Certified Public Keys, 1998, pp. 490-497. | Non-patent | – | Applicant |
| L.C. Guillou, J. Quisquater, A Practical Zero-Knowledge Protocol Fitted to Security Microprocessor Minimizing Both Transmission and Memory, Advances in Cryptology-Eurocrypt'88, Lect. Notes in Computer Science, vol. 330, pp. 123-128, Springer Verlag (1988). | Non-patent | – | Applicant |
| R. Bloom, An Optimal Class of Symmetric Key Generation Systems, 1998, pp. 336-338. | Non-patent | – | Applicant |
| C. Blundo, A. De Santis, A. Herzberg, S. Kutten, U. Vaccaro, M. Yung, Perfectly-Secure Key Distribution for Dynamic Conferences, 1998, Springer-Verlag, pp. 471-486. | Non-patent | – | Applicant |
| F. Hess, Exponent Group Signature Schemes and Efficient Identity Based Signature Schemes based on Pairings, Cryptology Eprint Archive, Report 2002/012, 2002. http://eprrint.iacr.org/, 2002. | Non-patent | – | Applicant |
| K. Rubin, A. Silverberg, Supersingular Abelian Varieties in Cryptology. | Non-patent | – | Applicant |
| W. Diffie, M. E. Hellman, New Directions in Cryptography, pp. 29-40. | Non-patent | – | Applicant |
| A. Menezes, P. van Oorschot, S. Vanstone, Chapter 12 Key Establishment Protocols, Handbook of Applied Cryptography, 1997, pp. 489-541. | Non-patent | – | Applicant |
| V.S. Miller, Use of Elliptic Curves in Cryptography, 1998, pp. 417-426. | Non-patent | – | Applicant |
| D. Boneh, B. Lynn, H. Shacham, Short Signatures from the Weil Pairing, Advances in Cryptology: Asiacrypt 2001 (LNCS 2248), pp. 514-532, 2001. | Non-patent | – | Applicant |
| E. Fujisaki, T. Okamoto, Secure Integration of Asymmetric and Symmetric Encryption Schemes, Michael Wiener (Ed.): CRYTPTO'99, LNCS 1666, pp. 537-554, 1999. | Non-patent | – | Applicant |
| A. Shamir, Identity-Based Cryptosystems and Signature Schemes, 1998, Springer-Verlag, pp. 46-53. | Non-patent | – | Applicant |
| U. Maurer, Y. Yacobi, A Remark on a Non-Interactive Public-Key Distribution System, 1998. | Non-patent | – | Applicant |
| G. Hanaoka, T. Nishioka, Y. Zheng, H. Imai, A Hierarchical Non-interactive Key-Sharing Scheme with Low Memory Size and High Resistance Against Collusion Attacks, The Computer Journal, vol. 45, No. 3, 2002. | Non-patent | – | Applicant |
| G. Hanaoka, T. Nishioka, Y. Zheng, H. Imai, An Efficient Hierarchical Identity-Based Key-Sharing Method Resistant Against Collusion-Attacks, JSPS-REFT 96P00604, pp. 348-362. | Non-patent | – | Applicant |
| A. Joux, A One Round Protocol for Tripartite Diffie-Hellman, W. Bosma (Ed.), ANTS-IV, LNCS 1838, pp. 385-393, 2000. | Non-patent | – | Applicant |
34 members in 8 offices
Priority claims18
| Document | Office | Kind | Date |
|---|---|---|---|
| 36619602 | United States of America | P | |
| 36619602 | United States of America | P | |
| 36629202 | United States of America | P | |
| 36629202 | United States of America | P | |
| 38432803 | United States of America | A | |
| 38432803 | United States of America | A | |
| 55207606 | United States of America | A | |
| 55207606 | United States of America | A | |
| 92314807 | United States of America | A | |
| 10384328 | – | – | – |
| 11552076 | – | – | – |
| 60366196 | – | – | – |
| 60366292 | – | – | – |
| US20020366196P | – | – | – |
| US20020366292P | – | – | – |
| US20030384328 | – | – | – |
| US20060552076 | – | – | – |
| US20070923148 | – | – | – |
Members34
| Document | Office | Kind | |
|---|---|---|---|
| US2003179885A1 | United States of America | A1 | |
| US2003182554A1 | United States of America | A1 | |
| WO03081780A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU2003214189A1 | Australia | A1 | |
| AU2003214189A8 | Australia | A8 | |
| JP2003298568A | Japan | A | |
| WO03081780A3 | World Intellectual Property Organization (WIPO) | A3 | |
| EP1495573A2 | European Patent Office (EPO) | A2 | |
| CN1633774A | China | A | |
| JP2005521323A | Japan | A | |
| US2006143456A1 | United States of America | A1 | |
| US2006143457A1 | United States of America | A1 | |
| EP1495573A4 | European Patent Office (EPO) | A4 | |
| US2007050629A1 | United States of America | A1 | |
| US7221762B2 | United States of America | B2 | |
| US2008013722A1 | United States of America | A1 | |
| US7337322B2 | United States of America | B2 | |
| US2008052521A1 | United States of America | A1 | |
| US7349538B2 | United States of America | B2 | |
| US7353395B2 | United States of America | B2 | |
| US7363496B2 | United States of America | B2 | |
| US7443980B2 | United States of America | B2 | |
| EP1495573B1 | European Patent Office (EPO) | B1 | |
| EP2012459A1 | European Patent Office (EPO) | A1 | |
| AT419690T | Austria | T | |
| ATE419690T1 | Austria | T1 | |
| DE60325575D1 | Germany | D1 | |
| CN101527629A | China | A | |
| US7590854B2This record | United States of America | B2 | |
| JP4405810B2 | Japan | B2 | |
| JP4527358B2 | Japan | B2 | |
| EP2309671A2 | European Patent Office (EPO) | A2 | |
| CN1633774B | China | B | |
| EP2309671A3 | European Patent Office (EPO) | A3 |
36 transactions on the USPTO file
Allowed without a rejection on record.
- Non-final rejections
- 0
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Post Issue Communication - Certificate of CorrectionN423 | N423 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Mail Response to 312 Amendment (PTO-271)MN271 | MN271 | |
| Response to Amendment under Rule 312N271 | N271 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Amendment after Notice of Allowance (Rule 312)AllowedA.NA | A.NA | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Examiner's AmendmentMEX.A | MEX.A | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Preliminary AmendmentA.PE | A.PE | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Sent to Classification ContractorPGPC | PGPC | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Initial Exam Team nnIEXX | IEXX |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Certificate of correctionCC | CC | |
| Fee paymentFPAY | FPAY | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF |
Numbers
- Publication
- 7590854
- Publication, DOCDB
- 7590854
- Publication, EPODOC
- US7590854
- Application
- 11923148
- Application, DOCDB
- 92314807
- Application, EPODOC
- US20070923148
Titles
- English
- Hierarchical identity-based encryption and signature schemes
Patent term adjustment
- A delay
- +127 daysthe office missed an examination deadline
- Applicant delay
- −39 days
- Net adjustment
- 88 days
Classification
- CPC, 6
- H04L9/0836
- H04L9/3073
- H04L9/3247
- H04L9/0847
- H04L9/3252
- H04L9/007
- IPC, 4
- H04L9 08
- H04L9 32
- G06F21 22
- H04L9 30
- USPC, 2
- 713180000
- 713176000