A method for the application of implicit signature schemes
3 claims: 3 independent, 0 dependent
- 1A method for certifying a correspondent (12, 14) in a data communication system through the use of a certifying authority (20) having control of a certificate's validity, said method comprising the steps of:a) said certifying authority (20) generating a first random number (cA);b) generating transaction specific implicit signature components γA. sA, based on said first random number (cA);c) publishing a public key Qc of said certifying authority (20) for use in verifying said correspondent (12, 14);d) forwarding said transaction specific implicit signature components from said certifying authority (20) to said correspondent (12, 14);wherein said certifying authority (20) recertifies said correspondent's (12, 14) transaction specific implicit signature components by changing said value of said first random number (cA);wherein said first random number (cA) has said value for one certification period, said value being changed for other of said certifications periods, wherein ki is said first random number generated by said certifying authority (20) for an ith certification period and said transaction specific implicit signature components include: i, where i is a current certification period;sA, where sAi = ric + ki + cA(mod n), n is a large prime number, c is a long term private key of said certifying authority (20), cA is a second random number, and ri = h(γA ∥ Ai ∥ cP ∥ kiP ∥ i), where Ai includes at least one distinguishing feature of said correspondent (12, 14) and transaction specific information, P is a point on a curve, and h indicates a secure hash function;wherein γA = aP + cAP, and where aP is a long term public key of said correspondent (12, 14) and γA has previously been determined by said certifying authority (20) and forwarded to said correspondent (12, 14). Procédé pour certifier un correspondant (12, 14) dans un système de communication de données par l'intermédiaire de l'utilisation d'une autorité de certification (20) ayant le contrôle de la validité d'un certificat, ledit procédé comprenant les étapes consistant à : a) générer, par ladite autorité de certification (20), un premier nombre aléatoire (cA) ;b) générer des éléments de signature implicite spécifiques à une transaction γA, sA, sur la base dudit premier nombre aléatoire (cA) ;c) publier une clé publique Qc de ladite autorité de certification (20) pour une utilisation lors de la vérification dudit correspondant (12, 14) ;d) transférer lesdits éléments de signature implicite spécifiques à une transaction de ladite autorité de certification (20) audit correspondant (12, 14) ;ladite autorité de certification (20) recertifiant les éléments de signature implicite spécifiques à une transaction du correspondant (12, 14) en changeant ladite valeur dudit premier nombre aléatoire (cA) ;ledit premier nombre aléatoire (cA) ayant ladite valeur pendant une période de certification, ladite valeur étant changée pendant une autre desdites périodes de certification, ki étant ledit premier nombre aléatoire généré par ladite autorité de certification (20) pendant une ième période de certification et lesdits éléments de signature implicite spécifiques à une transaction comprenant : i, où i est une période de certification actuelle ;SA, où sAi = ric + ki + cA (mod n), n est un grand nombre premier, c est une clé privée à long terme de ladite autorité de certification (20), cA est un second nombre aléatoire, et ri = h (γA ∥ Ai ∥ cP ∥ kiP ∥ i), où Ai comprend au moins une caractéristique de distinction dudit correspondant (12, 14) et des informations spécifiques à une transaction, P est un point sur une courbe, et h indique une fonction de hachage sécurisée ;γA = aP + cAP, où aP est une clé publique à long terme dudit correspondant (12, 14) et γA a été précédemment déterminé par ladite autorité de certification (20) et transféré audit correspondant (12, 14). Verfahren zum Zertifizieren eines Korrespondenten (12, 14) in einem Datenkommunikationssystem durch die Verwendung einer Zertifizierungsstelle (20), welche die Kontrolle über die Gültigkeit eines Zertifikats hat, wobei das Verfahren folgende Schritte umfasst: a) Generieren einer ersten Zufallszahl (cA) durch die Zertifizierungsstelle (20);b) Generieren von transaktionsspezifischen impliziten Signaturkomponenten γA, sA, basierend auf der ersten Zufallszahl (cA);c) Veröffentlichen eines öffentlichen Schlüssels Qc der Zertifizierungsstelle (20) zur Verwendung beim Überprüfen des Korrespondenten (12, 14);d) Weiterleiten der transaktionsspezifischen impliziten Signaturkomponenten von der Zertifizierungsstelle (20) an den Korrespondenten (12, 14);wobei die Zertifizierungsstelle (20) die transaktionsspezifischen impliziten Signaturkomponenten des Korrespondenten (12, 14) erneut zertifiziert, indem sie den Wert der ersten Zufallszahl (cA) ändert;wobei die erste Zufallszahl (cA) den Wert für eine Zertifizierungsperiode aufweist, wobei der Wert für andere der Zertifizierungsperioden geändert wird, wobei ki die erste Zufallszahl ist, die durch die Zertifizierungsstelle (20) für eine i. Zertifizierungsperiode generiert wird, und die transaktionsspezifischen impliziten Signaturkomponenten Folgendes umfassen: i, wobei i eine aktuelle Zertifizierungsperiode ist;sA, wobei sAi = ric + ki + cA(mod n), n eine große Primzahl ist, c ein langfristiger privater Schlüssel der Zertifizierungsstelle (20) ist, cA eine zweite Zufallszahl ist, und ri = h(γA ∥ Ai ∥ cP ∥ kiP ∥ i), wobei Ai mindestens ein Differenzierungsmerkmal des Korrespondenten (12, 14) und transaktionsspezifische Informationen umfasst, P ein Punkt auf einer Kurve ist, und h eine sichere Hash-Funktion angibt;wobei γA = aP + cAP, und wobei aP ein langfristiger öffentlicher Schlüssel des Korrespondenten (12, 14) ist, und γA durch die Zertifizierungsstelle (20) zuvor bestimmt und an den Korrespondenten (12, 14) weitergeleitet wurde.
- 2A method as defined in claim 1, wherein said published information further includes kiP and i. Procédé tel que défini à la revendication 1, dans lequel lesdites informations publiées comprennent en outre kiP et i. Verfahren nach Anspruch 1, wobei die veröffentlichten Informationen ferner kiP und i umfassen.
- 3A method as defined in claim 2, wherein said correspondent (12, 14) is recertified by forwarding said transaction specific implicit signature components for said first random number having said changed value from said certifying authority (20) to said correspondent (12, 14). Procédé tel que défini à la revendication 2, dans lequel ledit correspondant (12, 14) est recertifié par transfert desdits éléments de signature implicite spécifiques à une transaction pour ledit premier nombre aléatoire ayant ladite valeur changée de ladite autorité de certification (20) audit correspondant (12, 14). Verfahren nach Anspruch 2, wobei der Korrespondent (12, 14) erneut zertifiziert wird, indem die transaktionsspezifischen impliziten Signaturkomponenten für die erste Zufallszahl, die den geänderten Wert aufweisen, von der Zertifizierungsstelle (20) an den Korrespondenten (12, 14) weitergeleitet werden.
Independent claims3
57 paragraphs in 4 sections, as filed
This invention relates generally to cryptographic schemes, and more specially to implicit signature schemes.
BACKGROUND OF THE INVENTION
Various schemes of generating a public key in a secure digital communication system having at least one trusted entity and subscriber entities can be found in <patcit id="pcit0001" dnum="WO9949612A"><text>PCT publication No. WO 99/49612 A to QU et al.</text></patcit> In such schemes, for each subscriber the trusted entity selects a unique identity distinguishing the subscriber, generates a public key reconstruction of the subscriber by mathematically combining a generator of the trusted entity with a private value of the subscriber, such that the pair of unique identity and public key reconstruction serves as the subscriber's implicit certificate, combines the implicit certificate information in accordance with a mathematical function to derive an entity information, generates a private key of the subscriber by signing the entity information and transmitting the private key to the subscriber, whereby the subscriber's public key may be reconstructed from the public information, the public key reconstruction and the unique identity.
A paper entitled "<nplcit id="ncit0001" npl-type="b"><text>Intranet Security Framework based on Short-Lived Certificates" by Hsu et al. (Proceedings Sixth IEEE Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises, IEEE Comput. SOC, 20 June 1997, pages 228-233</text></nplcit>) describes an intranet security framework based on public key cryptography. It uses short-lived certificates to avoid and eliminate costly and difficult key management issues in the typical X.509 authentication framework. Specifically, it loosens the tightly coupled relationship between the security components and the application. Operationally, the framework creates the tasks of entity registration and certification so that certificates can be efficiently and securely delivered to the client.
Diffie-Hellman key agreement provided the first practical solution to the key distribution problem, in cryptographic systems. The key agreement protocol allows two parties never having met in advance or sharing key material to establish a shared secret by exchanging messages over an open (unsecured) channel. The security rests on the intractability of computing discrete logarithms or in factoring large integers.
With the advent of the Internet and such like, the requirement for large-scale distribution of public keys and public key certificates is becoming increasingly important to enable systems like Diffie-Hellman key agreement.
A number of vehicles are known by which public keys may be stored, distributed or forwarded over unsecured media without danger of undetectable manipulation. These vehicles include public-key certificates, identity-based systems, and implicit certificates. The objective of each vehicle is to make one party's public key available to others such that its authenticity and validity are verifiable.
A public-key certificate is a data structure consisting of a data part and a signature part. The data part contains cleartext data including as a minimum, a public key and a string identifying the party to be associated therewith. The signature part consists of the digital signature of a certification authority (CA) over the data part, effectively the encryption of the data with the CA's private key so it may be recovered with his public key, thereby binding the entities identity to the specified public key. The CA is a trusted third party whose signature on the certificate vouches for the authenticity of the public key bound to the subject entity.
Identity-based systems (ID-based system) resemble ordinary public-key systems, involving a private transformation and a public transformation, but parties do not have explicit public keys as before. Instead, the public key is effectively replaced by a party's publicly available identity information (e.g. name or network address). Any publicly available information, which uniquely identifies the party and can be undeniably associated with the party, may serve as identity information. Here a trusted CA is required to furnish each party with the private key corresponding to their public key.
An alternate approach to distributing public keys involves implicitly certified public keys. Here explicit user public keys exist, but they are to be reconstructed by the recipient rather than transported by explicitly signed public-key certificates as in certificate based systems. Thus implicitly certified public keys may be used as an alternative means for distributing public keys (e.g. Diffie-Hellman keys).
With a conventional certificate, the authenticity of the information must be verified to ensure that the sender and the sender's public key are bound to one another. With an implicit certification it is simply necessary to verify the sender's signature of the message using the implicit certificate. The primary advantage of implicit certificates is the computationally expense explicit certificate verification is not required as it is in certification schemes. Further, unconditionally trusted CAs are not required as they are in ID-based schemes.
An example of an implicitly certified public key mechanism is known as Gunther's implicitly-certified public key method. In this method: <ol id="ol0001" compact="compact" ol-style=""><li>1. A trusted server T selects an appropriate fixed public prime p and generator α of <i>Z<sup>*</sup><sub>p</sub></i>. T selects a random integer t, with 1 ≤ t ≤ p-2 and gcd(t,p-1) =1, as its private key, and publishes its public key u = α<sup>t</sup> mod p, along with α, p.</li><li>2. T assigns to each party A a unique name or identifying string I<sub>A</sub> and a random integer k<sub>A</sub> with gcd(k<sub>A</sub>, p-1) = 1. T then computes <i>P<sub>A</sub></i> = α<i><sup>kA</sup></i> mod <i>p</i>. P<sub>A</sub> is A's key reconstruction public data, allowing other parties to compute (P<sub>A</sub>)<sup>a</sup> below.</li><li>3. Using a suitable hash function h, T solves the following equation for a: <maths id="math0001" num=""><math display="block"><mi mathvariant="normal">H</mi><mfenced><msub><mi mathvariant="normal">I</mi><mi mathvariant="normal">A</mi></msub></mfenced><mo>≡</mo><mi mathvariant="normal">t</mi><mo>.</mo><msub><mi mathvariant="normal">P</mi><mi mathvariant="normal">A</mi></msub><mo>+</mo><msub><mi mathvariant="normal">k</mi><mi mathvariant="normal">A</mi></msub><mi> a</mi><mfenced><mrow><mi>mod p</mi><mo>−</mo><mn>1</mn></mrow></mfenced></math><img file="EP1292872B2_D0001.tif" /></maths></li><li>4. T securely transmits to A the pair (r,s) = (P<sub>A</sub>,a), which is T's ElGamal signature on l<sub>A</sub>. (a is A's private key for a Diffie-Hellman key-agreement)</li><li>5. Any other party can then reconstruct A's Diffie-Hellman public key <maths id="math0002" num=""><math display="inline"><msubsup><mi>P</mi><mi>A</mi><mi>a</mi></msubsup></math><img file="EP1292872B2_D0002.tif" /></maths> entirely from publicly available information (a, I<sub>A</sub>, u, P<sub>A</sub>,p) by computing: <maths id="math0003" num=""><math display="block"><msubsup><mi>P</mi><mi>A</mi><mi>a</mi></msubsup><mo>≡</mo><msup><mi mathvariant="normal">α</mi><mrow><mi>H</mi><mfenced><mi>I</mi></mfenced></mrow></msup><msub><mrow /><mi>A</mi></msub><mi mathvariant="normal"></mi><msup><mi>u</mi><mrow><mo>−</mo><mi>P</mi></mrow></msup><msub><mrow /><mi>A</mi></msub><mi> mod </mi><mi>p</mi></math><img file="EP1292872B2_D0003.tif" /></maths></li></ol>
Thus signing an implicit certificate needs one exponentiation operation, but reconstructing the ID-based implicitly-verifiable public key needs two exponentiations.
It is known that exponentiation in the group <maths id="math0004" num=""><math display="inline"><msubsup><mi>Z</mi><mi>p</mi><mrow /></msubsup></math><img file="EP1292872B2_D0004.tif" /></maths> and its analog scalar multiplication of a point in E(F<sub>q</sub>) is computationally intensive. An RSA scheme is extremely slow requiring successive squaring and multiplication operations. Elliptic curve (EC) cryptosystems are not only more robust but also more efficient by using doubling and adding operations. However, despite the resounding efficiency of EC systems over RSA type systems the computational requirement is still a problem particularly for computing devices having limited computing power such as "smart cards", pagers and such like.
Significant improvements have been made in the efficacy of certification protocols by adopting the protocols set out in Canadian patent application <patcit id="pcit0002" dnum="CA2232936"><text>2,232,936</text></patcit>. In this arrangement, an implicitly-certified public key is provided by cooperation between a certifying authority, CA, and a correspondent A.
For each correspondent A, the CA selects a unique identity I<sub>A</sub> distinguishing the entityA. The CA generates public data γ<sub>A</sub> for reconstruction of a public key of correspondent A by mathematically combining a private key of the trusted party CA and a generator created by the CA with a private value of the correspondent A. The values are combined in a mathematically secure way such that the pair (I<sub>A</sub>,γ<sub>A</sub>) serves as correspondent A's implicit certificate. The CA combines the implicit certificate information (I<sub>A</sub>,γ<sub>A</sub>) in accordance with a mathematical function F(γ<sub>A</sub>,I<sub>A</sub>) to derive an entity information <i>f</i>. A private key a of the correspondent A is generated from <i>f</i> and the private value of the correspondent A. The correspondent A's public key may be reconstructed from the public information, the generator γ<sub>A</sub> and the identity I<sub>A</sub> relatively efficiently.
Certificates, implicit certificates, and ID-based systems provide assurance of the authenticity of public keys. However, it is frequently necessary to verify the status of the public key to ensure it has not been revoked by the CA.
Several solutions are known to this revocation problem, the most common bein the use of certificate revocation lists (CRLs). Each CA maintains a CRL which contains the serial number of revoked certificates and is signed by the CA using its private key. When a recipient receives a message that has been secured with a certificate, the recipient will recover the serial number, and check the CRL.
Typically, therefore, the correspondent A will sign a message <i>m</i> with a private key, <i>a</i>, and forward it together with a certificate from the CA that binds the sender A and the public key <i>a</i>P. The recipient B checks the certificate and verifies the signature on the message <i>m.</i> The correspondent B will then ask the CA whether the certificate is valid and receives a message signed by the CA confirming the status of the certificate at a particular time. The correspondent B will then verify the signature on the CA's message and proceed accordingly to accept or reject the message sent by correspondent A.
During this process it is necessary for correspondent A to perform one signature, for the CA to perform one signature, and for the recipient B to verify three signatures. CAs may also issue authorization or attributable certificates in addition to public-key certificates. In this case the certificate issued by the CA to the correspondent A has a certain expiry or has details such as a credit limit or access rights to certain programs.
However with each arrangement, verification of the certificates is necessary as the information contained in the certificate may change periodically, even within the life of the certificate.
Furthermore, a correspondent may wish to be recertified. This is particularly true if the correspondent has reason to believe that its implicit public key has been compromised. However, recertification is a costly process that requires the correspondent to regenerate its private key, securely communicate its private key with the CA, and regenerate the data for constructing and reconstructing the implicit public key.
Accordingly, there is a need for a technique that simplifies the verification and recertification of certificates issued by a certifying authority and it is an object of the present invention to provide a technique that obviates or mitigates the above disadvantages.
SUMMARY OF THE INVENTION
In accordance with an embodiment of the present invention there is provided a method as detailed in the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the present invention will now be described by way of example only with reference to the accompanying drawings in which <ul id="ul0001" list-style="none" compact="compact"><li><figref idref="f0001"><b>Figure 1</b></figref> is a schematic representation of a data communication system;</li><li><figref idref="f0002"><b>Figure 2</b></figref> is a flow chart illustrating the exchange of information conducted on the system of <figref idref="f0001">figure 1</figref> in a first non-claimed embodiment;</li><li><figref idref="f0003"><b>Figure 3</b></figref> is a flow chart illustrating the exchange of information conducted on the system of <figref idref="f0001">figure 1</figref> in a second non-claimed embodiment;</li><li><figref idref="f0004"><b>Figure 4</b></figref> is a flow chart showing a non-claimed third embodiment of the system of <figref idref="f0001">Figure 1</figref>;</li><li><figref idref="f0005"><b>Figure 5</b></figref> is a flow chart showing a fourth non-claimed embodiment of the system of <figref idref="f0001">Figure 1</figref>;</li><li><figref idref="f0006"><b>Figure 6</b></figref> is a flow chart showing a fifth embodiment of the system of <figref idref="f0001">Figure 1</figref>.</li></ul>
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Referring therefore to <figref idref="f0001">figure 1</figref>, a data communication system 10 includes a pair of correspondents A, B, respectively identified as 12, 14, interconnected by a communication link 16. The correspondent B, 14, is also connected by a communication link 18 to a certifying authority, CA, indicated at 20. It will be appreciated that the links 16,18 are typically telephone lines or wireless links allowing the parties to route messages to intended recipients.
Each of the correspondents, 12, 14 and certifying authority 20 incorporate cryptographic units 22 that perform public-key cryptographic functions under the control of cryptographic software that may be embodied on a data carrier or programmed in an integrated circuit. Such implementations are well known and need not be described in detail, except to the extent necessary to appreciate the operation of the exchange of messages. For the purpose of this description it is assumed that each of the units 22 implement an elliptic curve public-key cryptosystem (ECC) operating in a field defined over F(q) but it will be appreciated that other implementations, such as those using <maths id="math0005" num=""><math display="inline"><msub><mi>Z</mi><mi>P</mi></msub><msubsup><mi>F</mi><mi>p</mi><mrow /></msubsup><mo>,</mo></math><img file="EP1292872B2_D0005.tif" /></maths> the multiplicative group, of integers modulo a prime may be used.
The parameters for the ECC are an underlying cubic curve and a defined point P on the curve of order n. The correspondent A has an identity, ID<sub>A</sub>, a short term or ephemeral private key k and a corresponding public key kP. The CA 20 is advised of the public key kP and identity ID<sub>A</sub> which conveniently remain the same for all correspondence originating from the correspondent A.
To initiate an exchange of a message, <i>m</i>, for example a transaction record, between correspondents A and B, the message is sent by correspondent A to correspondent B over the communication channel 16. The message <i>m</i> is sent in the clear or in any other manner that may be read by correspondent B.
The correspondent B advises the certifying authority CA 20 that he has received a message from correspondent A and may also include some additional information relating to the nature of the transaction. This may be performed on a dedicated channel or may be encrypted if the information is considered to be of a sensitive nature. Upon receiving the information from correspondent B, the CA 20 checks the record of correspondent A and, if in order, prepares to return to the correspondent B the implicit certificate components, 24, identified as s<sub>i</sub>,γ<sub>i</sub> and A<sub>i</sub>.
The component A<sub>i</sub> includes the identity of A, i.e. ID<sub>A</sub>, typically a unique distinguishing name or identity, for example a name, address or phone number that is stored by the CA 20 and a time stamp, message or similar transaction specific information,
The CA 20 also generates a random integer r and computes a corresponding public key rP. The value of γ<sub>i</sub> is then computed from the relationship that γ<sub>i</sub> = kP + rP.
The value of s<sub>i</sub> is then computed. s<sub>i</sub> is a signature component computed from one of the number of signing equations having a complementary public key reconstruction equation. In the embodiment described, the signing equation is selected as s<sub>i</sub> = r- c·H(A<sub>i</sub>,γ<sub>i</sub>) (mod n) where c is a long term secret key of the CA 20, and H indicates a secure hash function such as SHA 1 or SHA 2.
The CA 20 forwards s<sub>i</sub>, γ<sub>i</sub>, and A<sub>i</sub> to correspondent B. Since A<sub>i</sub> contains transaction specific information, the implicit signature components γ<sub>i</sub>, s<sub>i</sub> are also transaction specific. It is preferable, but not necessary, that the CA signs the signature components forwarded to correspondent B.
Correspondent B, upon receipt of the communication from the CA 20, forwards the certificate component s<sub>i</sub> to the correspondent A. It is preferable, but not necessary, that correspondent B signs the certificate component sent to correspondent A. The correspondent A computes a transaction specific private key a<sub>i</sub> from the relationship a<sub>i</sub> = k+s<sub>i</sub>. The message <i>m</i> is then signed according to a selected signature scheme that utilizes the computed private key a<sub>i</sub> and the signature is returned to the correspondent B. For example, a Nyberg Rueppel signature scheme may be implemented between the correspondents A and B. The correspondent A selects an ephemeral key pair w; W where w is a randomly selected integer and W is a corresponding point wP.
The signature on the message m is R, S where <i>R</i> = <i>W<sub>x</sub></i> + <i>H</i>(<i>m</i>) (mod n) and <i>S</i> = <i>w</i> - <i>a<sub>i</sub>R</i> (mod n) and W<sub>x</sub> is the x coordinate of the point wP.
The correspondent B then recovers the value corresponding to the transaction specific public key, a<sub>i</sub>P, from the values of γ<sub>i</sub> and A<sub>i</sub> received from the CA 20. For the signing equation exemplified above, the public key a<sub>i</sub>P can be computed from a<sub>i</sub>P= γ<sub>i</sub>-H(A<sub>i</sub>,γ<sub>i</sub>)·cP (mod n), where cP is the public key of the CA 20, and checks the signature on the message m. The verification equation for a Nyberg Rueppel schemes requires the computation of <i>sP</i> + <i>R</i>(<i>a<sub>i</sub>P</i>) which is the point W on the curve. The x coordinate of the point is selected and R-W<sub>x</sub> is computed. The result should correspond to H(m), which can be computed and verified by B. If the signature verifies, the message m is accepted and the transaction completed.
The implementation described above maintains a relatively small size of certificate and reduces the work performed by the correspondents A and B. The CA 20 is required to perform one implicit signature per transaction and correspondent B only requires one implicit signature verification and two signature verifications per transaction. Whereas prior proposals would require the CA20 to return a message to the correspondent B stating that correspondent A has a valid certificate, this is avoided in the present embodiment by sending transaction specific implicit certificate components.
As described above, a common key kP is used for each transaction by correspondent A but if preferred a different key kP may be used to inhibit tracing of transactions originating at correspondent A. In this case new values of kP are sent to the CA 20 offline with appropriate levels of security.
In the above embodiment a specific computation of s<sub>i</sub> and the public key reconstruction equation is given. It will be appreciated that other forms of s<sub>i</sub> may be used. For example <i>s<sub>i</sub></i> = <i>rH</i>(<i>A<sub>i</sub>γ<sub>i</sub></i>) <i>- c</i>(mod n) could be used with a corresponding change to the public key reconstruction equation such that <i>a<sub>i</sub>P</i> = <i>H</i>(<i>A<sub>i</sub></i>γ<sub>1</sub>)γ<sub>1</sub> = <i>cP.</i> With this scheme, the correspondents A and B may utilize an ECDSA signature scheme to exchange the messages, m, in which the signature is R, S with the component S of the form k<sup>-1</sup>(E+RD) where K is an ephemeral private key, R is an integer derived from the x coordinate of the point kP, E is a hash of the message m, and D is a long term private key. In this embodiment, the computed private, a<sub>i</sub>, is used for the long term private key D with K and R computed for each communication in the normal manner. For a ECDSA scheme, the verification is performed by computing u<sub>1</sub>=ES<sup>-1</sup> mod (n) and u<sub>2</sub>-RS<sup>-1</sup> mod (n). A value corresponding to R is computed from u<sub>1</sub>P+u<sub>2</sub>(a<sub>i</sub>P) and compared with the received value of R. If they correspond, the signature is verified, the message is accepted and the transaction completed.
An alternative arrangement is shown in <figref idref="f0003">figure 3</figref>, wherein like numerals with a prefix "1" refer to similar components as those of <figref idref="f0001">Figure 1</figref>, in which the originator of the message, correspondent A, communicates directly with the CA 120 who has previously been provided with the identity ID<sub>A</sub> and the public key kP. In this arrangement the correspondent A notifies the CA 120 that a certificate is required. The CA 120 generates a certificate with components s<sub>i</sub>, γ<sub>i</sub>, A<sub>i</sub> as before. The correspondent A then computes the transaction specific private key a<sub>i</sub> = k + s<sub>i</sub> and uses it to sign the message <i>m</i>. The signed message is forwarded together with the explicit signature components γ<sub>i</sub> and A<sub>i</sub> to the correspondent B.
The correspondent B recovers the public key a<sub>i</sub>P from A<sub>i</sub> and γ<sub>i</sub> and checks the signature on the message m. The transaction specific information in the component A<sub>i</sub> is checked to determine if it is as expected. Verification of the transaction specific information after it has been recovered is known in the art and depends on the type of information being verified. If both the signature and the information are verified then the transaction is accepted.
Alternately, the CA 120 could send <i>s<sub>i</sub></i> to correspondent A and γ<i><sub>i</sub></i>, <i>A<sub>i</sub></i> to correspondent B. Correspondent A can then sign message <i>m</i> using the private key <i>d<sub>s</sub></i> = <i>a</i> + <i>s<sub>i</sub></i> and forward the message and signature to correspondent B.
The above protocol may also be used to provide implicit attributable certificates as shown in <figref idref="f0004">figure 4</figref>, wherein like numerals with a prefix "2" refer to similar components as those of <figref idref="f0001">Figure 1</figref>. Initially the values of ID<sub>A</sub> and kP are transferred to the CA 220 from correspondent A. A request is then sent from correspondent A to the CA 220 to gain access to a particular application controlled by B.
The CA 220 generates a certificate including A<sub>i</sub>, γ<sub>i</sub> and s<sub>i</sub> with A<sub>i</sub> including the ID<sub>A</sub> and an indication that the correspondent A can use a particular application and sends the certificate to A. A value of a<sub>i</sub> = k + s<sub>i</sub> is generated by the correspondent A and used to sign the message m. The signed message is forwarded to correspondent B together with γ<sub>i</sub> and A<sub>i</sub> who recovers the corresponding public key a<sub>i</sub>P. The signature is then checked and, if it verifies, access is given to the application. If the signature does not verify, the request is returned.
The above implicit attributable certificate is efficient in that it only requires one signed certificate and by using different public keys per application is hard to trace to a particular user. Moreover, the identity and the specific attributable certificate can be incorporated into one certificate rather than the two normally required.
Yet an alternate embodiment, similar to that illustrated in <figref idref="f0003">figure 3</figref>, is shown in <figref idref="f0005">figure 5</figref>. The CA 120 has a private key, <i>c</i>, and a public key, Q<sub>C</sub> = cP. In order to acquire a certificate, correspondent A first generates a random integer, <i>a</i>. Integer <i>a</i> is used to compute a value <i>a</i>P, which is sent to the CA 120 along with correspondent A's identity, ID<sub>A</sub> or, alternately, A<sub>i</sub> (which may contain ID<sub>A</sub>).
Upon receiving <i>a</i>P and ID<sub>A</sub> from correspondent A, the CA 120 generates a random integer <i>c<sub>A</sub></i> and uses it to calculate correspondent A's certificate, γ<i><sub>A</sub></i> = <i>aP</i> + <i>c<sub>A</sub>P.</i> The CA 120 also calculates a signature component s<sub>A</sub> of a suitable form. In the preferred embodiment, <i>s<sub>A</sub></i> = <i>H</i>(γ<i><sub>A</sub></i> ∥ <i>ID<sub>A</sub></i> ∥ <i>cP</i>)<i>c</i> + <i>c<sub>A</sub></i>(mod <i>n</i>). As an alternative, s<sub>A</sub> could be computed from <i>s<sub>A</sub></i> = <i>H</i>(<i>γ<sub>A</sub></i> ∥ <i>ID<sub>A</sub></i> ∥ <i>cP</i>)<i>c<sub>A</sub></i> + <i>c</i>(mod <i>n</i>). The certificate, γ<sub>A</sub> and s<sub>A</sub> are sent to correspondent A. Correspondent A's private key then becomes <i>d</i> = <i>a</i> + <i>s<sub>A</sub>,</i> and its public key becomes Q<sub>A</sub> = <i>d</i>P. Correspondent A's public key can be derived from the certificate according to the appropriate public key reconstruction equation, i.e. in the preferred embodiment <i>Q<sub>A</sub></i> = <i>h</i>(<i>γ<sub>A</sub></i> ∥ <i>ID<sub>A</sub></i> ∥ <i>cP</i>)<i>Q<sub>C</sub></i> + <i>γ<sub>A</sub>.</i>
Therefore, if correspondent A wants to sign a message, <i>m,</i> to send to correspondent B, correspondent A does so using the private key, <i>d.</i> Correspondent A then sends the signed message along with the certificate, γ<sub>A</sub>, and identification, ID<sub>A</sub>. Upon receiving the information sent from correspondent A, correspondent B uses the certificate and identification along with the CA's public key, Q<sub>C</sub>, for deriving correspondent A's public key, Q<sub>A</sub>. The message is accepted if the signature is verified using correspondent A's derived public key, Q<sub>A</sub>.
In the present embodiment, it is possible for the CA to efficiently recertify correspondent A. The CA generates a random number, <i><o ostyle="single">c<sub>A</sub></o></i> and computes <i><o ostyle="single">c<sub>A</sub></o>P.</i> Using the original value of aP received from correspondent A, the CA generates a new certificate, <o ostyle="single">γ<i><sub>A</sub></i></o> = <i><o ostyle="single">c<sub>A</sub></o>P</i> + <i>aP</i> and a new <i><o ostyle="single">s<sub>A</sub></o></i> = <i>H(</i><o ostyle="single">γ<i><sub>A</sub></i></o> ∥ <i>ID<sub>A</sub></i> ∥ <i>cP</i>)<i>c</i> + <i><o ostyle="single">c<sub>A</sub></o></i>(mod <i>n</i>). The certificate, <o ostyle="single">γ<i>A</i></o>, and <i><o ostyle="single">s<sub>A</sub></o></i> are sent to correspondent A. Therefore, correspondent A has a new private key, <i><o ostyle="single">d</o></i> = <i>a</i> + <o ostyle="single">s</o><i><o ostyle="single"><sub>A</sub></o>,</i> and a new certificate, <o ostyle="single">γ<i><sub>A</sub></i></o>. Therefore, correspondent A's new public key, <i>Q<sub>A</sub></i>, can be derived according to <i><o ostyle="single">Q<sub>A</sub></o></i> = <i>H</i>(<o ostyle="single">γ<i><sub>A</sub></i></o> ∥ <i>ID<sub>A</sub></i> ∥ <i>cP</i>)<i>Q<sub>C</sub></i> + <o ostyle="single">γ<i><sub>A</sub></i></o>.
Using such a recertification process can recertify correspondent A without requiring correspondent A to change its private key. However, this scheme requires sufficient bandwidth to send both <i>s<sub>A</sub></i> and γ<i><sub>A</sub></i> to correspondent A. Furthermore, for each correspondent (such as correspondent A), the CA has to perform a point multiplication to obtain the new certificate, y<i><sub>A</sub></i>.
However, it is possible to make a modification to the recertification process as described above such that it is more efficient and requires less bandwidth. In the following example illustrated in <figref idref="f0006">figure 6</figref>, the CA recertifies all correspondents (including correspondent A). Also, it is assumed that correspondent A has been previously certified, acquired the certificate, γ<sub>A</sub>, from the CA and determined the private key <i>d</i> = <i>a</i> + s<sub>A</sub>.
The CA certifies the correspondents at the expiration of a certification period. For an <i>i</i><sup>th</sup> certification period, the CA generates a random value k<sub>i</sub> and computes the value Q<sub>i</sub> = k<sub>i</sub>P. For each correspondent such as correspondent A, the CA computes <i>r<sub>i</sub></i> = <i>H</i>(γ<i><sub>A</sub></i> ∥ <i>ID<sub>A</sub></i> ∥ <i>cP</i> ∥ <i>k<sub>i</sub>P</i> ∥ <i>i</i>) and then s<i><sub>A<sub2>i</sub2></sub></i> = <i>r<sub>i</sub>c</i> + <i>k<sub>i</sub></i> + <i>c<sub>A</sub></i> (mod n). Again, the CA could use other equations to produce <i>s<sub>A<sub2>i</sub2></sub>,</i> for example <i>s<sub>A<sub2>i</sub2></sub></i> = <i>r<sub>i</sub>c<sub>A</sub></i> + <i>c</i> + <i>k<sub>i</sub></i> (mod <i>n</i>) with a corresponding public key reconstruction equation. Since the certificate does not change, it is only necessary for the CA to send <i>s<sub>A<sub2>i</sub2></sub></i> to correspondent A. The private key for correspondent A becomes <i>d<sub>i</sub></i> = <i>a</i> + <i>s<sub>A<sub2>i</sub2></sub></i> and the certificate remains γ<sub>A</sub>. The CA makes Q<sub>i</sub> and <i>i</i> publicly available.
Therefore, it is possible to reconstruct correspondent A's public key, <i>d</i><sub>i</sub>P, by computing <i>r<sub>i</sub></i>, and then calculating <i>d<sub>i</sub>P</i> = <i>r<sub>i</sub>Q<sub>C</sub></i> + γ<i><sub>A</sub></i> + <i>Q<sub>i</sub></i>. Correspondent A communicates with correspondent B similarly to the situation previously described. If correspondent A wants to sign a message to send to correspondent B, correspondent A does so using the private key, <i>d<sub>i</sub></i>. Correspondent A then sends the signed message along with the certificate, γ<sub>A</sub>, and identification ID<sub>A</sub>. Upon receiving the information sent from correspondent A, correspondent B uses the certificate and identification along with the CA's public keys, Q<sub>C</sub> and Q<sub>i</sub>, for deriving <i>r<sub>i</sub></i>. The values <i>r<sub>i</sub></i>, Q<sub>c</sub>, Q<sub>i</sub>, and γ<sub>A</sub> are then used for deriving correspondent A's public key. The message is accepted if the signature is verified using correspondent A's derived public key.
Thus it can be seen that correspondent A's certificate does not change. Therefore, the CA is only required to send s<sub>i</sub> and <i>i</i> to correspondent A for recertification, which requires essentially half the bandwidth of sending s<sub>A</sub> and γ<sub>A</sub> as in the previous example. Further, although the CA has to calculate <i>Q<sub>i</sub></i> = <i>k<sub>i</sub>P</i> for the <i>i</i>th certification period, the calculation is amortized over all the correspondents. That is, the CA only has to do one point multiplication for all the correspondents (for the calculation of <i>Q<sub>i</sub></i>). The CA also has to perform one modular multiplication for each correspondent (while calculating <i>s<sub>A<sub2>i</sub2></sub></i>)<i>.</i> This results in a more efficient process than previously described wherein the CA has to perform one point multiplication and one modular multiplication for each correspondent.
Since the recertification scheme described above is not a costly operation for the CA, the CA could recertify correspondents more frequently than if traditional schemes are implemented. Therefore, one application of this recertification scheme is to replace revocation lists. Instead of providing a list of revoked certificates, the CA recertifies only those certificates that are still valid and have not been revoked.
In an alternate embodiment, the certificates as described in the previous embodiments are embedded into an RSA modulus itself. For an RSA encryption algorithm, correspondent A is required to provide a public key pair, (<i>n, e</i>), where <i>n</i> is the modulus and <i>e</i> is the public exponent. The modulus is defined as <i>n</i> = <i>pq</i> where <i>p</i> and <i>q</i> are large prime numbers. The public exponent is selected as 1 < e < φ, where φ = (<i>p</i>-1)(<i>q</i>-1). It has been shown that a portion of the modulus can be set aside to have a predetermined value without increasing the vulnerability of the key. This method is described in detail in <patcit id="pcit0003" dnum="US08449357B"><text>U.S. serial no. 08/449,357 filed May 24, 1995</text></patcit>.
Embedding the certificate into the modulus reduces the bandwidth requirements since the certificate is included as part of the modulus instead of in addition to it. This implementation is particularly useful for a CA who signs using RSA and certifies using ECC. For example, a 2048-bit RSA modulus can easily contain a 160-bit ECC certificate.
Contents4
11 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US5136646A | Cites | United States of America | Opposition |
| US5136647A | Cites | United States of America | Opposition |
| US5136646A | Cites | United States of America | – |
| US5136647A | Cites | United States of America | – |
| WO9949612A | Cites | World Intellectual Property Organization (WIPO) | – |
21 members in 6 offices
Priority claims7
| Document | Office | Kind | Date |
|---|---|---|---|
| 589891 | United States of America | – | |
| 58989100 | United States of America | A | |
| 0100833 | Canada | W | |
| 589891 | – | – | – |
| CA2001000833 | – | – | – |
| US20000589891 | – | – | – |
| WO2001CA00833 | – | – | – |
Members21
| Document | Office | Kind | |
|---|---|---|---|
| CA2350118A1 | Canada | A1 | |
| WO0195068A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU6719801A | Australia | A | |
| WO0195068A3 | World Intellectual Property Organization (WIPO) | A3 | |
| EP1292872A2 | European Patent Office (EPO) | A2 | |
| US2005193219A1 | United States of America | A1 | |
| US7480795B2 | United States of America | B2 | |
| US2009086968A1 | United States of America | A1 | |
| EP1292872B1 | European Patent Office (EPO) | B1 | |
| DE60139621D1 | Germany | D1 | |
| EP2148465A1 | European Patent Office (EPO) | A1 | |
| EP2276196A1 | European Patent Office (EPO) | A1 | |
| US8069347B2 | United States of America | B2 | |
| EP1292872B9 | European Patent Office (EPO) | B9 | |
| US2012102318A1 | United States of America | A1 | |
| EP2148465B1 | European Patent Office (EPO) | B1 | |
| EP2148465B9 | European Patent Office (EPO) | B9 | |
| CA2350118C | Canada | C | |
| US8522012B2 | United States of America | B2 | |
| EP2276196B1 | European Patent Office (EPO) | B1 | |
| EP1292872B2This record | European Patent Office (EPO) | B2 |
49 legal events, as 4 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)REGISTERED BETWEEN 20220407 AND 20220413732E | 732E | GB | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent expired after termination of 20 yearsExpiredPE20 | PE20 | GB | |
| Expiry of rightR071 | R071 | DE | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Change of applicant/patenteeR081 | R081 | DE | |
| Change of representativeR082 | R082 | DE | |
| Patent maintained in amended form27A | 27A | EP | |
| Designated contracting statesAK | AK | EP | |
| Epo decision maintaining patent in amended form now finalR102 | R102 | DE | |
| Patent maintained in amended formORIGINAL CODE: 0009272PUAH | PUAH | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: PATENT MAINTAINED AS AMENDEDSTAA | STAA | EP | |
| Fee paymentPLFP | PLFP | FR | |
| Fee paymentPLFP | PLFP | FR | |
| Information provided on ipc code assigned after grantRIC2 | RIC2 | EP | |
| Information provided on ipc code assigned after grantRIC2 | RIC2 | EP | |
| Fee paymentPLFP | PLFP | FR | |
| Appeal procedure closedAppealORIGINAL CODE: EPIDOSNNOA9OAPBU | APBU | EP | |
| Party data changed (patent owner data changed or rights of a patent transferred)RAP2 | RAP2 | EP | |
| Date of receipt of statement of grounds of appeal recordedAppealORIGINAL CODE: EPIDOSNNOA3OAPBQ | APBQ | EP | |
| Date of receipt of statement of grounds of appeal recordedAppealORIGINAL CODE: EPIDOSNNOA3OAPBQ | APBQ | EP | |
| Appeal reference recordedAppealORIGINAL CODE: EPIDOSNREFNOAPBM | APBM | EP | |
| Date of receipt of notice of appeal recordedAppealORIGINAL CODE: EPIDOSNNOA2OAPBP | APBP | EP | |
| Appeal reference modifiedAppealORIGINAL CODE: EPIDOSCREFNOAPAH | APAH | EP | |
| Appeal reference recordedAppealORIGINAL CODE: EPIDOSNREFNOAPBM | APBM | EP | |
| Date of receipt of notice of appeal recordedAppealORIGINAL CODE: EPIDOSNNOA2OAPBP | APBP | EP | |
| Opposition filed (corrected)OppositionR26 | R26 | EP | |
| Opposition data, opponent's data or that of the opponent's representative modifiedOppositionORIGINAL CODE: 0009299OPPOPLAB | PLAB | EP | |
| Reply of patent proprietor to notice(s) of opposition receivedOppositionORIGINAL CODE: EPIDOSNOBS3PLBB | PLBB | EP | |
| Information modified related to communication of a notice of opposition and request to file observations + time limitOppositionORIGINAL CODE: EPIDOSCOBS2PLAF | PLAF | EP | |
| Notice of opposition and request to file observation + time limit sentOppositionORIGINAL CODE: EPIDOSNOBS2PLAX | PLAX | EP | |
| Opposition filedOpposition26 | 26 | EP | |
| Opposition filedOppositionORIGINAL CODE: 0009260PLBI | PLBI | EP | |
| Corresponds to:REF | REF | EP | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Designated contracting states (corrected)RBV | RBV | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 1292872
- Publication, DOCDB
- 1292872
- Publication, EPODOC
- EP1292872
- Application
- 19448018
- Application, DOCDB
- 01944801
- Application, EPODOC
- EP20010944801
Titles3
- German
- VERFAHREN ZUR ANWENDUNG VON IMPLIZITEN UNTERSCHRIFTEN
- English
- A METHOD FOR THE APPLICATION OF IMPLICIT SIGNATURE SCHEMES
- French
- PROCEDE D'APPLICATION DE SYSTEMES DE SIGNATURE IMPLICITE
Classification
- CPC, 4
- H04L9/3268
- H04L9/3247
- H04L2209/56
- H04L2209/64
- IPC, 2
- G06F21 00
- H04L9 32
Designated states3
- Contracting states, 3
- Germany
- France
- United Kingdom
