FR2759226A1 - Protocole de verification d'une signature numerique - Google Patents

Protocole de verification d'une signature numerique Download PDF

Info

Publication number
FR2759226A1
FR2759226A1 FR9801047A FR9801047A FR2759226A1 FR 2759226 A1 FR2759226 A1 FR 2759226A1 FR 9801047 A FR9801047 A FR 9801047A FR 9801047 A FR9801047 A FR 9801047A FR 2759226 A1 FR2759226 A1 FR 2759226A1
Authority
FR
France
Prior art keywords
signature
value
mod
key
private
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9801047A
Other languages
English (en)
Other versions
FR2759226B1 (fr
Inventor
Scott A Vanstone
Donald B Johnson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Certicom Corp
Original Assignee
Certicom Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GBGB9702063.0A external-priority patent/GB9702063D0/en
Application filed by Certicom Corp filed Critical Certicom Corp
Publication of FR2759226A1 publication Critical patent/FR2759226A1/fr
Application granted granted Critical
Publication of FR2759226B1 publication Critical patent/FR2759226B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Computer And Data Communications (AREA)
  • Collating Specific Patterns (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

La présente invention concerne un procédé de vérification d'une signature numérique engendrée par un signataire dans un système de communication de données, ladite signature incluant des composantes de signature qui incorporent une paire de clés privées, qui sont de préférence, la première une clé à long terme, et la deuxième une clé à court terme. Ses étapes consistant à : appliquer à ladite signature la première clé privée afin de récupérer une valeur équivalente à une fonction associée à la deuxième et comparer ladite valeur récupérée à ladite fonction afin de déterminer l'authenticité de ladite signature. Le procédé s'applique particulièrement au cas où un signataire dispose d'une clé privée à long terme et d'une clé publique et au cas où doit être vérifiée l'authenticité d'un certificat émis par une autorité de certification dans un système de communications de données électroniques. L'invention concerne aussi un système de communication de données incluant au moins une paire de correspondants et mettant en oeuvre le procédé.

Description

La présente invention concerne une transmission de données et, plus
particulièrement, des systèmes de transmission de données pour vérifier l'identité des
parties qui transmettent des données.
Il est bien connu de communiquer électroniquement des données entre une paire de correspondants, typiquement une paire de terminaux d'ordinateurs ou une carte personnelle et un terminal d'ordinateur. Ces communications sont utilisées de façon très répandue dans l'environnement bancaire pour effectuer des transactions. Afin de maintenir l'intégrité de telles transactions, il faut mettre en oeuvre un système dans lequel l'identité des parties peut être vérifiée et un certain nombre de protocoles de signatures a été développé à cet effet. De tels protocoles sont basés sur des protocoles de signatures de El Gamal qui utilisent la méthode de chiffrage par clés publiques de Diffie Hellman. Une méthode de cryptographie utilisée communément est désignée par le terme de RSA, mais il faut, pour obtenir une transmission sécurisée, utiliser un module relativement grand qui augmente la largeur de bande et qui est généralement indésirable
lorsque la puissance de calcul disponible est limitée.
Une méthode de cryptographie plus robuste est la méthode appelée le système de chiffrage à courbe
elliptique, ou ECC selon les initiales du terme anglo-
saxon Elliptic curve cryptosystem, qui permet d'obtenir une sécurité comparable aux systèmes de
chiffrage RSA, mais avec un module réduit.
Fondamentalement, chaque partie possède une clé
privée et une clé publique dérivée de la clé privee.
Normalement, pour un transfert de données, un message est chiffré au moyen de la clé publique du destinataire prévu et peut ensuite être déchiffré par son destinataire en utilisant la cle privée qui n'est connue que du destinataire. Pour des buts de signature et de vérification, le message est signé au moyen de la clé privée de l'émetteur afin qu'il puisse être vérifié par traitement au moyen de la clé publique de l'émetteur indiqué. Puisque la clé privée de l'émetteur ne doit être connue que de l'émetteur, un déchiffrage réussi au moyen de la clé publique de
l'émetteur confirme l'identité de l'émetteur.
La sécurité du protocole de signature de El Gamal résulte de la difficulté de calculer des logarithmes discrets dans un champ fini. Des signatures du type El Gamal fonctionnent dans un groupe quelconque, y compris les groupes à courbes elliptiques. Par exemple, étant donné le groupe E(Fq) à courbe elliptique, alors pour P e E(Fq) et Q = aP, le problème des logarithmes discrets se réduit à trouver l'entier a. Au moyen d'une courbe sous-jacente sélectionnée de façon appropriée, ce problème est infaisable par calcul et ces systèmes de chiffrage
sont donc considérés comme sûrs.
Il existe divers protocoles pour mettre en oeuvre une telle méthode. Par exemple, un algorithme de signature numérique, ou DSA selon les initiales du terme anglo-saxon Digital signature algorithm, est une variante de la méthode de El Gamal. Selon cette méthode, une paire d'entités correspondantes A et B créent chacune une clé publique et une clé privée correspondante. L'entité A signe un message m d'une
longueur arbitraire au moyen de sa clé privee.
L'entité B peut vérifier cette signature en utilisant la clé publique de A. Dans chaque cas, cependant, tant l'émetteur, l'entité A, que le destinataire, l'entité B, doivent exécuter certaines opérations intensives en calcul, typiquement une élévation a une puissance, pour engendrer et vérifier respectivement la signature. Lorsque chacune des parties dispose d'une puissance de calcul appropriée, ceci ne présente pas de problème particulier mais, lorsque l'une ou l'autre des parties ne dispose que d'une puissance de calcul limitée, par exemple dans une application à carte intelligente, ou "Smart card", les calculs peuvent introduire des retards dans le processus de signature
et de vérification.
Il existe aussi des circonstances o le signataire doit vérifier sa propre signature. Par exemple, dans un système de cryptographie à clé publique, la distribution de clés est plus facile que dans un système à clés symétriques. Cependant, l'intégrité des clés publiques est critique. Par conséquent, les entités d'un tel système peuvent utiliser une tierce partie sécurisée pour certifier la clé publique de chaque entité. Cette tierce partie peut être une autorité de certification, ou CA selon les initiales du terme anglo-saxon certifying Authority, qui possède un algorithme privé de signature Sr et un algorithme de vérification Vr que l'on suppose connu de toutes les entités. Selon sa forme la plus simple, l'autorité de certification fournit un certificat qui relie l'identité d'une entité à sa clé publique. Ceci peut consister en une signature d'un message consistant en un identifiant et la clé publique authentifiée de l'entité. De temps à autres, cependant, l'autorité de certification peut souhaiter authentifier ou vérifier ses propres certificats. Comme noté ci-dessus, une vérification de signature peut être intensive en calculs et exige une puissance de calcul significative pour être achevée en un temps pratique. Lorsque l'un des correspondants dispose d'une capacité limitée de calculs, comme dans le cas o une "carte intelligente" est utilisée comme carte d'obtention d'espèces monétaires, il est préférable d'adopter un protocole dans lequel les calculs sur la carte sont minimisés. De même, lorsqu'il faut vérifier un grand nombre de signatures, une installation de vérification rapide est
souhaitable.
C'est donc un but de la présente invention que de fournir un protocole de génération et de vérification de signature qui facilite l'utilisation d'une puissance limitée de calcul pour l'un des
correspondants.
En termes généraux, la présente invention fournit un procédé de génération et de vérification de signature entre une paire de correspondants qui partagent entre eux un entier secret commun, le procédé comprenant les étapes consistant à engendrer à partir d'un entier sélectionné une clé de session à un premier des correspondants, sélectionner une composante de ladite clé de session et chiffrer un message au moyen de ladite composante sélectionnée, engendrer un hachage de ladite composante sélectionnée, et calculer une composante de signature qui inclut ledit entier secret commun, ledit hachage et ledit entier sélectionné et envoyer à l'autre correspondant la composante de signature, le message filtré et le hachage. L'entier sélectionné peut être récupéré pour la composante de signature en utilisant
l'entier secret commun et la clé de session chiffrée.
Le solde de la clé de session récupérée peut ensuite être utilisé pour envoyer facultativement une
interrogation au destinataire.
De façon plus particulière, selon un premier aspect, l'invention fournit un procédé de vérification d'une signature numérique engendrée par un signataire dans un système de communication de données, ladite signature incluant des composantes de signature qui incorporent une paire de clés privées, caractérisé en ce qu'il comprend les étapes consistant à: appliquer à ladite signature l'une desdites clés privées afin de récupérer une valeur équivalente à une fonction associée à une deuxième desdites clés privées et comparer ladite valeur récupérée à ladite fonction afin de déterminer l'authenticité de ladite signature. Ladite valeur récupérée peut être utilisée pour calculer une valeur de l'une des composantes de signature, ladite valeur calculée et ladite composante de signature étant comparées pour vérifier ladite signature. La structure de ladite valeur récupérée peut être comparée à des paramètres prédéterminés pour vérifier
ladite signature.
L'une desdites clés peut être une clé à long terme, l'autre desdites clés étant une clé à court terme engendrée pour chaque signature, et, ladite valeur récupérée correspondant alors de préférence à
ladite clé à court terme.
Dans le cas de cette modalité préférée, ladite valeur récupérée peut être utilisée pour calculer une clé publique à court terme dérivée de ladite clé privée et incluse dans lesdites composantes de signature, et/ou une partie au moins de ladite valeur récupérée peut être hachée par une fonction de hachage cryptographique, une valeur de hachage résultante étant comparée à l'une desdites composantes de
signature pour vérification.
Selon un deuxième aspect, l'invention fournit un procédé de vérification d'une signature numérique engendrée par un signataire dans un système d'ordinateur, ledit signataire possédant une clé privée (d) et une clé publique (y), dérivée d'un élément g et de ladite clé privée (d), caractérisé en ce qu'il comprend les étapes suivantes: ledit signataire signe un message (m) dans ledit système d'ordinateur en: a) engendrant une première composante de signature en combinant au moins ledit élément (d) et un parametre g de signature selon une première fonction mathématique; b) engendrant une deuxième composante de signature en combinant mathématiquement ladite première composante de signature avec ladite clé privée (d), ledit message (m) et ledit paramètre g de signature, et ledit signataire vérifie ladite signature en: c) récupérant de ladite signature une valeur (k') sans utiliser ladite clé publique (y) et; d) utilisant dans ladite première fonction mathématique ladite valeur récupérée (k') pour dériver une valeur (r') afin de vérifier que ledit paramètre g
de signature et (k') sont équivalents.
Ledit élément g peut être un élément d'ordre q dans un champ Fp De façon avantageuse, ledit élément g peut être un point d'ordre premier n dans E(fq), tel que E est
une courbe elliptique définie dans le champ Fqn.
Ledit élément g peut être un point sur une courbe elliptique sur un champ fini Fqn Ledit paramètre k de signature peut être un entier sélectionné de facon aléatoire dans l'intervalle [1, q - 1], ladite première composante de signature étant d'une forme définie par r = gk mod p mod q, o p et q sont des nombres premiers tels que q divise p - 1, et le procédé peut alors inclure un calcul d'une valeur e = h(m) o h est une fonction de hachage, et ou ladite deuxième composante de signature
s = k-1 (e + dr) mod q.
Dans ce cas, l'étape de récupération de ladite valeur (k') peut inclure les étapes consistant à: (a) calculer une valeur z = (h(m) + dr) mod q; (b) calculer z-1 en inversant z mod q; (c) calculer k'-1 = s(z-1) mod q; et
(d) calculer k' en inversant k'-1 mod q.
On peut alors prévoir que ladite étape de vérification de g inclut les étapes consistant à: calculer r' = gk' mod p mod q et comparer r' à r afin de vérifier k = k', le procédé pouvant alors, en particulier, inclure l'utilisation de tables calculées au préalable pour
lesdits calculs.
Dans le cas de la modalité avantageuse décrite ci-dessus ledit paramètre k de signature peut être un entier statistiquement unique et impossible à prédire, sélectionné dans un intervalle [2, n - 2], ladite première composante de signature étant d'une forme definie par r = x, mod n o n est une
coordonnée n d'une clé privée.
Le procédé peut alors inclure un calcul d'une valeur e = h(m) o h est une fonction de hachage, ladite deuxième composante de signature étant
donnée par s = k-1 (e + dr) mod n.
Dans ce cas, la récupération de ladite valeur (k') peut inclure les étapes consistant à: (a) calculer une valeur z = (h(m) + dr) mod n; (b) calculer z-l en inversant z mod n; (c) calculer k'-1 = s(z-1) mod n; et
(d) calculer k' en inversant k'-1 mod n.
On peut alors prévoir que ladite étape de vérification de g inclut les étapes consistant à: calculer r' = gk' mod n et
comparer r' à r afin de vérifier k = k'.
Lorsque g et un élément d'ordre q d'un champ Fp*, comme envisage précédemment, ledit paramètre g de signature peut être un entier sélectionné de façon aleatoire dans un intervalle [1, p - 1], ladite première composante de signature étant d'une forme définie par e = h(m I| r) o r = gk mod p, h étant une fonction de hachage et
désignant un chaînage.
Dans ce cas, ladite deuxième composante de signature peut être définie par s = (de + k) mod p. Ladite étape de récupération de ladite valeur (k') peut alors inclure les étapes consistant à: (a) calculer une valeur k' = (s - de) mod p; (b) calculer une valeur r' = gk mod p; (c) calculer une valeur e' = h(m I r'); et (d) comparer ladite valeur e' à e afin de
vérifier k' = k.
Selon un troisième aspect, l'invention fournit un procédé de vérification de l'authenticité d'un certificat émis par une autorité de certification dans un système de communications de données électroniques caractérisé en ce qu'il inclut les étapes suivantes, mises en oeuvre par l'autorité de certification: inclure dans ledit certificat une paire de composantes de signature dérivées d'une paire de clés privées, retenir l'une desdites clés privées, recevoir ledit certificat et appliquer ladite clé privée auxdites composantes de signatures pour en dériver une valeur correspondant à une fonction de l'autre desdites clés privées, et comparer ladite valeur dérivée à ladite fonction
afin de déterminer l'authenticité dudit certificat.
Ladite valeur dérivée peut être comparée à des paramètres prédéterminés pour déterminer
l'authenticité dudit certificat.
Ladite valeur dérivée peut correspondre à ladite autre clé et, dans ce cas, ladite première clé peut être une clé privée à long terme utilisée dans une série de signatures, ladite autre clé étant une clé à court terme dérivée pour chaque signature, et/ou lesdites composantes de signature peuvent inclure une clé publique dérivée de ladite autre clé, ledit procédé incluant l'étape consistant à dériver de ladite valeur dérivée une clé publique correspondante et comparer ladite clé publique contenue dans lesdites composantes de signature à ladite clé publique correspondante. Selon un quatrième aspect, l'invention réalise un système de communication de données incluant une paire de correspondants connectés par une ligne de communication de données, chacun desdits correspondants exerçant une fonction cryptographique pour mettre en oeuvre une méthode cryptographique à clés publiques qui utilise une paire de clés privées, caractérisé en ce que une première desdites clés privées est utilisée pour des communications multiples entre lesdits correspondants et l'autre desdites clés privées est engendrée par un premier correspondant à chaque communication, et ladite première clé privée est partagée par lesdits correspondants pour permettre à l'autre desdites clés privées d'être récupérée par ledit autre correspondant à partir d'une signature numérique engendrée par ledit premier correspondant et comparée à une composante de signature de ladite signature numérique pour vérifier l'authenticité du premier correspondant. Dans ce système, on peut prévoir que lesdites fonctions cryptographiques mettent en oeuvre un système de chiffrage à courbe elliptique. Les buts, particularités et avantages de la présente invention exposés ci-dessus, ainsi que
d'autres, ressortiront mieux de la description
détaillée qui suit d'un mode de réalisation, donné à titre d'exemple seulement, en se référant aux dessins annexés dans lesquels: la Figure 1 est une représentation schématique d'un système de transmission de données; la Figure 2 est un schéma logique d'un protocole de vérification de signature; la Figure 3 est un schéma logique d'une variante de protocole; et la Figure 4 est un schéma logique d'un autre protocole. En se référant à la Figure 1, un système 10 de transmission de données inclut une série de correspondants 12a, 12b,... 12t, désignés de façon générique par la référence numérique 12 et interconnectés par une liaison 16 de transmission de données. Les correspondants 12 sont typiquement des terminaux électroniques à capacité limitée de calcul et, dans le présent exemple, le correspondant 12 peut être considéré comme étant de la forme d'une "carte intelligente" à capacité limitée de mémoire et de calcul. Le système 10 de transmission de données inclut également un correspondant 14 qui peut être, dans ce mode de réalisation, un terminal d'une institution bancaire, connecté par la ligne 16 de transmission à des terminaux respectifs 12. Une telle connexion est typiquement établie sur une base transitoire, lorsque des correspondants 12 accèdent périodiquement au système 10, mais ces connexions
peuvent aussi être des connexions permanentes.
Les correspondants 12, 14 disposent chacun d'unités de chiffrage désignées par 18, 20 qui établissent un système commun de chiffrage. Dans l'exemple fourni, on suppose que les unités de chiffrage 18, 20 mettent en oeuvre un système de chiffrage à courbe elliptique au moyen de paramètres établis de courbe sous-jacente et d'un point P de
valeur de départ sur cette courbe.
Chacun des correspondants 12 inclut une mémoire 22 dans laquelle est intégre un entier secret respectif d utilisé comme clé privée à long terme par
le correspondant 12 pour des transactions multiples.
Le correspondant 14 possède une clé publique QB et un certain nombre de valeurs calculées au préalable de dQB est mémorisé dans une mémoire adressable 24 sur le
correspondant 12 pour faciliter la signature.
Un générateur 26 de nombres est inclus sur chaque carte pour engendrer au début de chaque session un entier statistiquement unique mais impossible à prédire, destiné à être utilisé comme clé privée à
court terme qui varie à chaque transaction.
Le correspondant 14 inclut de même une mémoire 28 comprenant une banque de données qui mémorise la clé privée respective d à long terme de chacun des correspondants 12 et la corrèle à l'identité du
correspondant respectif 12.
Pour lancer un protocole de vérification, l'un des correspondants 12 formule un message m et engendre au moyen du générateur 26 un entier aléatoire k qui intervient comme clé privée à court terme pendant la session de transmission. En utilisant le point P de valeur de départ, il calcule une clé de session r qui correspond à kP. Cette valeur kP est en fait un point
de la courbe sous-jacente à coordonnées (x, y).
Une première composante de signature e est engendrée en chiffrant un message m en utilisant la représentation binaire de la coordonnée x de façon que
e = Ex(m).
Une deuxième composante de signature e' est engendrée par hachage de la coordonnée x par la clé de session r de façon que e' = h(x). Une fonction de hachage cryptographique appropriée est utilisée, par exemple l'algorithme sécurisé de hachage Hash Algorithm (SHA-1) proposé par le National Institute for Standards and Technology (NIST) des Etats Unis. Une troisième composante de signature s est engendrée, de la forme générale s = a e + k (mod n) o a est la clé privée à long terme, e est une valeur dérivée par hachage d'un train de message et k est la clé privée à court terme. Dans ce mode de réalisation, la composante s de signature est de la forme spécifique s = d. h (dQB // e') + k (mod n) o n est l'ordre de la courbe sous-jacente. La composante s de signature est obtenue en récupérant de la mémoire 24 du correspondant 12 la valeur calculée au préalable de dQB et en la chaînant avec la valeur
de hachage de x et en hachant ensuite le résultat.
Une signature qui inclut les composantes s, e et e' de signature est ensuite envoyée au correspondant 14. A réception, le correspondant 14 récupère la clé privée d à long terme dans la base de données 28 sur la base de l'identité indiquée du correspondant 12 et calcule, avec sa propre clé publique, QB et la composante e' reçue, le hachage h = dQB//e'. A partir de ceci et de la composante s de signature, une valeur
k' qui devrait correspondre à k peut être obtenue.
En utilisant la valeur calculée de k et du point P de départ, une fonction associée à la valeur calculée de la clé à court terme, qui est la valeur de la coordonnée x de kP, c'est-à-dire x', peut être obtenue. La valeur calculée de x' est ensuite hachée et une comparaison est effectuée pour vérifier que la valeur résultante du hachage correspond à la valeur reçue de e'. A cette étape, une vérification des correspondants a été obtenue, et la seule élévation requise à une puissance est le calcul initial
de kP.
Le calcul de la clé r de session et l'utilisation ultérieure d'une partie de cette clé de session permet au correspondant 14 de renvoyer une autorisation sécurisée. Après calcul d'une valeur de la coordonnée x, le correspondant 14 peut ensuite calculer la coordonné y et l'utiliser pour chiffrer un message m' comme autorisation. Ainsi le correspondant 14 répond au correspondant 12 en envoyant un message qui inclut Ey(m'). A réception, le correspondant 12 connaît la coordonnée y de la clé r de session et peut récupérer le message m' qui inclut de façon appropriée une interrogation. Le correspondant 12 déchiffre le message et renvoie l'interrogation au correspondant 14, de façon que les correspondants soient ensuite vérifiés et synchronisés. D'autres messages peuvent ensuite être transférés entre les correspondants 12, 14 en utilisant la clé de session r comme clé de chiffrage. On voit donc que, dans le protocole précédent, une paire de clés est utilisée et le correspondant 14 garde commande de l'une des clés qui constitue une clé privée à long terme et utilise celle-ci pour récupérer la clé de session à court terme calculée par le correspondant 12. La clé de session a court terme récupérée peut ensuite être utilisée pour vérification avec d'autres composantes transmises de signature, par
exemple en contrôlant e'.
En variante, la structure de la valeur récupérée de la clé pourrait être indicative d'une vérification, par exemple, par la configuration, le nombre ou la répartition de chiffres de façon que la valeur récupérée puisse être comparée à des paramètres prédéterminés pour vérification. En raison de la relation entre la composante récupérée et l'information transmise, l'autre partie de la clé de session peut être utilisée pour répondre et établir
une synchronisation.
Dans ce mode de réalisation, on note que la vérification de signature est facilement effectuée en ce qui concerne les calculs, sans élévation à une puissance, et peut donc être effectuée relativement
rapidement.
On note aussi que le système 10 peut fonctionner comme système de chiffrage de clé privée entre les correspondants 12 ou entre des correspondants 12, 14, mais qu'il peut utiliser les attributs d'un protocole à clés symétriques lorsqu'une vérification rapide est nécessaire. Selon un exemple exposé ci-dessous, des variantes de signature peuvent être utilisées et, généralement, une équation quelconque de signature de El Gamal peut être utilisée. Une variante de mode de réalisation de vérification de signature peut être mise en oeuvre en utilisant le protocole de signatures DSS, comme représenté à la Figure 3. Dans ce protocole, une clé publique à court terme r est dérivee en élevant le groupe générateur a à une puissance égale à un entier aléatoire k, c'est-à-dire r = k. Si un système cryptographique à courbe elliptique est utilisé, l'élévation à la puissance est effectuée par une
addition k fois du point P de sorte que r = kP.
Dans le cas du protocole DSS, la composante de signature s est de la forme s = k-1 (h(m) + dr) (mod n) o d est une clé privée à long terme et m est le message. Les valeurs des composantes s, r de signature et le message m sont transmis par le correspondant 12 au correspondant 14. Le correspondant 14 partage la clé privée d à long terme et peut donc restituer, à partir de l'identité k = s (h(m) + dr), la clé privée k à court terme. Puisque les valeurs de r, m et s sont émises et que d est connue par le correspondant 14, k peut être calculée. Comme noté ci-dessus, k peut être agencé pour posséder une structure spécifique, par exemple une configuration spécifique d'un certain nombre de 1 et peut donc être utilisé comme vérification. En variante, la vérification peut être contrôlée en calculant une valeur de r à partir de la valeur récupérée k, c'est-à-dire r = ak et en la comparant à la valeur r transmise. Cette étape exige une élévation à une puissance et elle est donc plus exigeante en calcul, mais elle peut être utilisée lorsque ceci est
souhaitable.
Ici aussi, en partageant la clé privée k à long terme, une vérification peut être effectuée d'une manière simple mais pourtant efficace en extrayant la
clé privée à court terme, k.
Dans chacun des exemples ci-dessus, la vérification de signature est effectuée entre une paire de correspondants. Les caractéristiques du protocole peuvent être utilisées pour vérifier une signature émise par une autorité de certification CA, par exemple une banque, constituée par un
correspondant 14.
Dans ce mode de réalisation, le correspondant 14 recoit un certificat dont le sens est qu'il a été émis par elle. Le correspondant 14 vérifie l'authenticité du certificat en utilisant la clé privée à long terme d pour extraire la clé privée à court terme k. La structure de la clé privée k peut ensuite être contrôlée ou la clé k peut être utilisée pour dériver une information concernant la clé privée publique à court terme r, incluse dans le message. Ici aussi, une vérification peut être obtenue sans calcul extensif, d'une manière commode, et ceci permet la vérification
du certificat reçu par le correspondant 14, c'est-à-
dire une banque ou une institution financière.
Un exemple de ce mode de réalisation peut être donné en utilisant l'algorithme de signature numérique DSA, qui est un cas spécial de la méthode de signature de El Gamal. Pour une génération de clé dans la méthode de signature de El Gamal, chaque correspondant A et B crée une clé publique et une clé privée correspondante. Afin d'établir le système de chiffrage sous-jacent dans un groupe Fp, les entités A et B sélectionnent des nombres premiers p et q de façon que q divise p - 1. Un générateur g est sélectionné d'une manière telle qu'il est un élément d'ordre q dans Fp
et le groupe utilisé est {gO, gl, g2,... gq-1}.
Dans l'algorithme de signature numérique, ou DSA, une génération de clé est effectuée en sélectionnant un nombre entier d dans l'intervalle [1, q - 1] et en calculant une clé publique y = gd mod p. L'information de clé publique est (p, q, g, y) et la clé privée à long terme est d, tandis que dans la méthode générale de El Gamal, la formation de clé
publique est (p, g, y) et la clé privée est d.
Dans la méthode de signature DSA, les composantes r et s de signature sont données par r = (gk mod q) mod q; et s = k-1 (h(m) + dr) mod q ou typiquement: d est un entier aléatoire, la clé privée à long terme du signataire et est typiquement de 160 bits; p est typiquement un nombre premier à 1024 bits; q est un nombre premier à 160 bits o q divise p - 1; g est le générateur tel que y = gd mod p; h(m) est typiquement un hachage SHA-1 du message m; k est une valeur à 160 bits choisie de façon aléatoire pour chaque signature; et la signature pour m est la paire (r, s).
Normalement, pour vérifier la signature (r, s) de A sur le message m, le destinataire B devrait obtenir l'information de clé publique authentique (p, q, g, y) de A et vérifier que 0 < r < q et 0 < s < q. Puis, les valeurs w = s-1 mod q et h(m) sont calculées. Ceci est suivi par le calcul de u1 = w h(m) mod q et de u2 = r w mod q et de v = (gul yu2 mod p) mod q. La signature est acceptée si et seulement si v = r. On peut donc voir que, dans certains cas, si le propriétaire souhaite vérifier sa propre signature à une étape ultérieure, il peut falloir du temps pour récupérer l'information de clé publique et mettre en oeuvre les étapes ci-dessus, qui incluent une paire
d'élévations à une puissance.
Une vérification rapide de signature par l'autorité de certification CA peut être mise en oeuvre de la manière représentée à la Figure 4 en utilisant comme vérificateur la clé privée d à long terme de l'autorité de certification. Dans ce cas, le
signataire d'origine connaît p, q, g, y, h(m), r et s.
Par conséquent le vérificateur doit simplement récupérer la clé privée k à court terme utilisée dans la signature et vérifier la valeur de k ainsi obtenue afin de vérifier la signature. Le vérificateur calcule donc z = (h(m) + dr) mod q. La valeur z-1 est calculée en inversant z mod q et elle est utilisée pour calculer k'-1 = s(z-1) mod q. La valeur de k' peut être calculée en inversant k'-1 mod q. Le vérificateur évalue ensuite r = gk' mod p mod q et vérifie que k = k'. On peut donc voir que cette étape de vérification utilise la clé privée d à long terme plutôt que la clé publique y à long terme pour éviter une élévation à une puissance. Naturellement, un grand nombre des calculs ci-dessus peuvent être accélérés en
utilisant des tables calculées au préalable.
Une variante de procédé de signature de E1 Gamal est représentée à la figure 5 et possède comme composantes de signature (s, e) o r = gk mod p; e = h(m Il r) o Il indique un chaînage; et s = (de + k) mod p o p est un grand nombre premier public, g est un générateur public, m est un message, h est une fonction de hachage, d est une clé privée à long terme, y = gd mod p est la clé publique à long terme correspondante et k est un entier aléatoire secret
utilisé comme clé privée à court terme.
Pour engendrer un certificat, le correspondant 14 signe un message m qui contient l'identité de l'un premier des correspondants 12 et la clé publique de ce correspondant. Le message est signé en utilisant la clé publique à long terme et une clé de session k à court terme du correspondant 14 et un certificat émis au correspondant 12 incluant les composantes s, e de signature. L'information publique est retenue par le correspondant 14. Le certificat peut être utilisé par le correspondant 12 et être vérifié par les destinataires en utilisant la clé publique du
correspondant 14.
Lorsqu'un certificat est présenté au correspondant 14, une rapide vérification peut être
obtenue en utilisant la clé privée d à long terme.
Dans une vérification rapide de signature qui utilise la clé privée d, l'information publique de p, g, y, h, m, r, e et la clé privée d sont connues par le vérificateur. Pour vérifier la signature, le vérificateur doit donc simplement récupérer la clé privée k à court terme et vérifier k. Le vérificateur calcule k' = (s - de) mod p, r' = gk mod p et
e' = h(m Il r'). Si e = e', ceci vérifie que k = k'.
Seule une élévation à une puissance est nécessaire
dans cette vérification pour faciliter le processus.
En variante, les caractéristiques de la valeur récupérée de k peuvent être suffisantes pour satisfaire à une vérification comme décrit précédemment. On peut donc voir qu'un avantage particulier de la présente invention est offert lorsqu'un signataire signe des données qui peuvent par exemple résider sur l'ordinateur du signataire. Ceci peut être vérifié ultérieurement sans utiliser aucune clé publique de correspondance, le signataire pouvant en substitution utiliser sa clé privée pour vérifier les données. Ceci est également très utile pour certaines applications à puissance limitée de calcul, comme des cartes intelligentes. Dans un système de communication de données qui inclut une autorité de certification, l'autorité de certification CA ou centre de distribution de clés signerait des données fréquemment avant qu'elles ne soient installées dans les systèmes de communication et pourrait ensuite vérifier les signatures ultérieurement. L'autorité de certification n'a donc pas besoin de l'information de clés publiques pour vérifier les signatures mais utilise simplement pour la vérification la clé privée à long terme, puisque tous les autres paramètres sont mémorisés à
l'intérieur de la frontière sécurisée du signataire.
Puisque la clé privée d à long terme est utilisée, on note aussi qu'il n'est pas nécessaire de retenir la clé privée k à court terme de sorte que les servitudes
associées au système sont minimisées.
Une application additionnelle concerne la vérification d'un logiciel comme dans des applications de logiciel de paiement à l'utilisation. Une demande d'accès à un serveur peut être commandée par un certificat émis par le serveur et présenté par l'utilisateur du logiciel. L'authenticité du certificat peut ensuite être vérifiée par l'utilisateur du logiciel. L'authenticité du certificat peut ensuite être vérifiée, d'une manière rapide et commode en utilisant la clé privée du
serveur comme décrit ci-dessus.
Alors que l'invention a été décrite en connexion avec le mode de réalisation spécifique de celle-ci et dans des utilisations spécifiques, diverses modifications de celle-ci apparaîtront à l'homme de l'art sans s'écarter de l'esprit de l'invention exposé
dans les revendications annexées. Par exemple, dans la
description ci-dessus de modes de réalisation
préférés, on utilise une notation multiplicative, mais le procédé de la présente invention peut également être décrit en utilisant une notation additive. Il est bien connu par exemple que l'algorithme de courbe elliptique équivalent du DSA, c'est-à-dire le ECDSA, est l'analogue en courbe elliptique d'un algorithme à logarithme discret qui est décrit habituellement dans un ensemble de Fp* le groupe multiplicatif des p entiers modulo un nombre premier. Il existe une correspondance entre les éléments et les opérations du
groupe Fp* et le groupe de courbes elliptiques E(Fq).
En outre, cette technique de signature est tout aussi applicable à des fonctions exécutées dans un champ
défini sur F2n.
La présente invention concerne de façon générale un procédé et un système de chiffrage et particulièrement un procédé et un système de cryptographie à courbe elliptique dans lequel des5 éléments de champ fini sont multipliés de façon efficace dans un processeur. Le système de
cryptographie peut comprendre un processeur approprié quelconque, par exemple un ordinateur polyvalent programmé de façon appropriée.

Claims (30)

REVENDICATIONS
1. Procédé de vérification d'une signature numérique engendrée par un signataire dans un système de communication de données, ladite signature incluant des composantes de signature qui incorporent une paire de clés privées, caractérisé en ce qu'il comprend les étapes consistant à: appliquer à ladite signature l'une fdesdites clés privées afin de récupérer une valeur équivalente à une fonction associée à une deuxième desdites clés privées et comparer ladite valeur récupérée à ladite fonction afin de déterminer l'authenticité de ladite signature.
2. Procédé selon la revendication 1, caractérisé en ce que ladite valeur récupérée est utilisée pour calculer une valeur de l'une des composantes de signature, et ladite valeur calculée et ladite composante de signature sont comparées pour vérifier
ladite signature.
3. Procédé selon la revendication 1 caractérisé en ce que la structure de ladite valeur récupérée est comparée à des paramètres prédéterminés pour vérifier
ladite signature.
4. Procédé selon la revendication 1 caractérisé en ce que l'une desdites clés est une clé à long terme et l'autre desdites clés est une clé à court terme
engendrée pour chaque signature.
5. Procédé selon la revendication 4, caractérisé en ce que ladite valeur récupérée correspond à ladite clé à
court terme.
6. Procédé selon la revendication 5, caractérisé en ce que ladite valeur récupérée est utilisée pour calculer une clé publique à court terme dérivée de ladite clé privée et incluse dans lesdites composantes
de signature.
7. Procédé selon la revendication 5 caractérisé en ce que une partie au moins de ladite valeur récupérée est hachée par une fonction de hachage cryptographique, et une valeur de hachage résultante est comparée à l'une desdites composantes de signature
pour vérification.
8. Procédé de vérification d'une signature numérique engendrée par un signataire dans un système d'ordinateur, ledit signataire possédant une clé privée (d) et une clé publique (y), dérivée d'un élément g et de ladite clé privée (d), caractérisé en ce qu'il comprend les étapes suivantes: ledit signataire signe un message (m) dans ledit système d'ordinateur en: a) engendrant une première composante de signature en combinant au moins ledit élément (d) et un paramètre g de signature selon une première fonction mathématique; b) engendrant une deuxième composante de signature en combinant mathématiquement ladite première composante de signature avec ladite clé privée (d), ledit message (m) et ledit paramètre g de signature, et ledit signataire vérifie ladite signature en: c) récupérant de ladite signature une valeur (k') sans utiliser ladite clé publique (y) et; d) utilisant dans ladite première fonction mathématique ladite valeur récupérée (k') pour dériver une valeur (r') afin de vérifier que ledit paramètre g
de signature et (k') sont équivalents.
9. Procédé selon la revendication 8, caractérisé en ce que ledit élément g est un élément d'ordre q dans un champ Fp
10. Procédé selon la revendication 8, caractérisé en ce que ledit élément g est un point d'ordre premier n dans E(fq), tel que E est une courbe elliptique
définie dans le champ Fqn.
11. Procédé selon la revendication 8, caractérisé en ce que ledit élément g est un point sur une courbe elliptique sur un champ fini Fqn
12. Procédé selon la revendication 8, caractérisé en ce que ledit paramètre k de signature est un entier sélectionné de façon aléatoire dans l'intervalle [1, q - 1] et ladite première composante de signature est d'une forme définie par r = gk mod p mod q, o p et q sont
des nombres premiers tels que q divise p - 1.
13. Procédé selon la revendication 12 caractérisé en ce que il inclut un calcul d'une valeur e = h(m) o h est une fonction de hachage, et ou ladite deuxième
composante de signature s = k-1 (e + dr) mod q.
14. Procédé selon la revendication 13, caractérisé en ce que l'étape de récupération de ladite valeur (k') inclut les étapes consistant à: (a) calculer une valeur z = (h(m) + dr) mod q; (b) calculer z-1 en inversant z mod q; (c) calculer k'-1 = s(z-1) mod q; et
(d) calculer k' en inversant k'-l mod q.
15. Procédé selon la revendication 14, caractérisé en ce que ladite étape de vérification de g inclut les étapes consistant à: calculer r' = gk' mod p mod q et comparer r' à r afin de vérifier k = k'.
16. Procédé selon la revendication 15, caractérisé en ce que il inclut l'utilisation de tables calculées au
préalable pour lesdits calculs.
17. Procédé selon la revendication 10, caractérisé en ce que ledit paramètre g de signature est un entier statistiquement unique et impossible à prédire, sélectionné dans un intervalle [2, n - 2] et en ce que ladite première composante de signature est d'une forme définie par r = x, mod n o n est une coordonnée
n d'une clé privée.
18. Procédé selon la revendication 17, caractérisé en ce que il inclut un calcul d'une valeur e = h(m) o h est une fonction de hachage et ladite deuxième composante de signature est
donnée par s = k-1 (e + dr) mod n.
19. Procédé selon la revendication 18, caractérisé en ce que la récupération de ladite valeur (k') inclut les étapes consistant à: (a) calculer une valeur z = (h(m) + dr) mod n; (b) calculer z-1 en inversant z mod n; (c) calculer k'-1 = s(z-1) mod n; et
(d) calculer k' en inversant k'-1 mod n.
20. Procédé selon la revendication 19, caractérisé en ce que ladite étape de véerification de g inclut les étapes consistant à: calculer r' = gk' mod n et
comparer r' à r afin de vérifier k = k'.
21. Procédé selon la revendication 9, caractérisé en ce que ledit paramètre g de signature est un entier sélectionné de façon aléatoire dans un intervalle [1, p - 1] et ladite première composante de signature est d'une forme définie par e = h(m Il r) o r = gk mod p, h est une fonction de hachage et I
désigne un chaînage.
22. Procédé selon la revendication 21, caractérisé en ce que ladite deuxième composante de signature est définie par s = (de + k) mod p.
23. Procédé selon la revendication 22, caractérisé en ce que ladite étape de récupération de ladite valeur (k') inclut les étapes consistant à: (a) calculer une valeur k' = (s - de) mod p; (b) calculer une valeur r' = gk mod p; (c) calculer une valeur e' = h(m Il r'); et (d) comparer ladite valeur e' à e afin de
vérifier k' = k.
24. Procédé de vérification de l'authenticité d'un certificat émis par une autorité de certification dans un système de communications de données électroniques caractérisé en ce qu'il inclut les étapes suivantes, mises en oeuvre par l'autorité de certification: inclure dans ledit certificat une paire de composantes de signature dérivées d'une paire de clés privées, retenir l'une desdites clés privées, recevoir ledit certificat et appliquer ladite clé privée auxdites composantes de signatures pour en dériver une valeur correspondant à une fonction de l'autre desdites clés privées, et comparer ladite valeur dérivée à ladite fonction
afin de déterminer l'authenticité dudit certificat.
25. Procédé selon la revendication 24, caractérisé en ce que ladite valeur dérivée est comparée à des paramètres prédéterminés pour déterminer l'authenticité dudit certificat.
26. Procédé selon la revendication 24, caractérisé en ce que ladite valeur dérivée correspond à ladite autre clé.
27. Procédé selon la revendication 26 caractérisé en ce que ladite première clé est une clé privée à long terme utilisée dans une série de signatures, et ladite autre clé est une clé à court terme
dérivée pour chaque signature.
28. Procédé selon la revendication 26, caractérisé en ce que lesdites composantes de signature incluent une clé publique dérivée de ladite autre clé et en ce que ledit procédé inclut l'étape consistant à dériver de ladite valeur dérivée une clé publique correspondante et comparer ladite clé publique contenue dans lesdites composantes de signature à
ladite clé publique correspondante.
29. Système (10) de communication de données
incluant une paire de correspondants (12a, 12b,...
12t; 14) connectés par une ligne de communication (16) de données, chacun desdits correspondants exerçant une fonction cryptographique (18, 20) pour mettre en oeuvre une méthode cryptographique a clés publiques qui utilise une paire de clés privées, caractérisé en ce que une première desdites clés privées est utilisée pour des communications multiples (16) entre lesdits correspondants (12a, 12b,... 12t; 14) et l'autre desdites clés privées est engendrée par un premier correspondant à chaque communication, et ladite première clé privée est partagée par lesdits correspondants (12a, 12b,... 12t; 14) pour permettre à l'autre desdites clés privées d'être récupérée par ledit autre correspondant à partir d'une signature numérique engendrée par ledit premier correspondant et comparée à une composante de signature de ladite signature numérique pour vérifier
l'authenticité du premier correspondant.
30. Système (10) de communication de données selon la revendication 29, caractérisé en ce que lesdites fonctions cryptographiques (18, 20) mettent en oeuvre un système de chiffrage à courbe
elliptique.
FR9801047A 1997-01-31 1998-01-30 Protocole de verification d'une signature numerique Expired - Lifetime FR2759226B1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB9702063.0A GB9702063D0 (en) 1997-01-31 1997-01-31 Verification protocol
US96244197A 1997-10-31 1997-10-31

Publications (2)

Publication Number Publication Date
FR2759226A1 true FR2759226A1 (fr) 1998-08-07
FR2759226B1 FR2759226B1 (fr) 2001-10-19

Family

ID=26310910

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9801047A Expired - Lifetime FR2759226B1 (fr) 1997-01-31 1998-01-30 Protocole de verification d'une signature numerique

Country Status (6)

Country Link
US (2) US6446207B1 (fr)
CA (1) CA2228185C (fr)
CH (1) CH694603A5 (fr)
DE (1) DE19803939B4 (fr)
FR (1) FR2759226B1 (fr)
GB (1) GB2321834B (fr)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2228185C (fr) * 1997-01-31 2007-11-06 Certicom Corp. Protocole de verification
JP4307589B2 (ja) * 1997-10-31 2009-08-05 サーティコム コーポレーション 認証プロトコル
US6279110B1 (en) 1997-11-10 2001-08-21 Certicom Corporation Masked digital signatures
US7092523B2 (en) * 1999-01-11 2006-08-15 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
US7171000B1 (en) * 1999-06-10 2007-01-30 Message Secure Corp. Simplified addressing for private communications
CA2285770A1 (fr) * 1999-05-26 2000-11-26 Certicom Corp. Signatures numeriques efficaces pour systemes de courrier
US20020101998A1 (en) * 1999-06-10 2002-08-01 Chee-Hong Wong Fast escrow delivery
US20020019932A1 (en) * 1999-06-10 2002-02-14 Eng-Whatt Toh Cryptographically secure network
FI112418B (fi) * 2000-02-01 2003-11-28 Nokia Corp Menetelmä datan eheyden tarkastamiseksi, järjestelmä ja matkaviestin
WO2001095068A2 (fr) * 2000-06-09 2001-12-13 Certicom Corp. Procede d'application de systemes de signature implicite
US20020023213A1 (en) * 2000-06-12 2002-02-21 Tia Walker Encryption system that dynamically locates keys
US7251728B2 (en) * 2000-07-07 2007-07-31 Message Secure Corporation Secure and reliable document delivery using routing lists
FR2814620B1 (fr) * 2000-09-28 2002-11-15 Gemplus Card Int Procede de transmission accelere de signature electronique
US7921290B2 (en) * 2001-04-18 2011-04-05 Ipass Inc. Method and system for securely authenticating network access credentials for users
US20030065919A1 (en) * 2001-04-18 2003-04-03 Albert Roy David Method and system for identifying a replay attack by an access device to a computer system
US7469341B2 (en) * 2001-04-18 2008-12-23 Ipass Inc. Method and system for associating a plurality of transaction data records generated in a service access system
FI114062B (fi) * 2001-06-08 2004-07-30 Nokia Corp Menetelmä tiedonsiirron turvallisuuden varmistamiseksi, tiedonsiirtojärjestelmä ja tiedonsiirtolaite
US7281132B2 (en) * 2001-10-19 2007-10-09 Sun Microsystems, Inc. Using token-based signing to install unsigned binaries
US7631318B2 (en) * 2002-06-28 2009-12-08 Microsoft Corporation Secure server plug-in architecture for digital rights management systems
US7353402B2 (en) * 2002-06-28 2008-04-01 Microsoft Corporation Obtaining a signed rights label (SRL) for digital content and obtaining a digital license corresponding to the content based on the SRL in a digital rights management system
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7827156B2 (en) * 2003-02-26 2010-11-02 Microsoft Corporation Issuing a digital rights management (DRM) license for content based on cross-forest directory information
KR20060006770A (ko) * 2003-03-04 2006-01-19 인터내셔널 비지네스 머신즈 코포레이션 디지털 서명 방법, 컴퓨터 장치, 디지털 서명 시스템 및전자 문서 검증 방법
US8606885B2 (en) * 2003-06-05 2013-12-10 Ipass Inc. Method and system of providing access point data associated with a network access point
IL156606A (en) * 2003-06-23 2011-07-31 Aviad Kipnis Digital certificates
US7549062B2 (en) * 2003-06-27 2009-06-16 Microsoft Corporation Organization-based content rights management and systems, structures, and methods therefor
US7512798B2 (en) * 2003-06-27 2009-03-31 Microsoft Corporation Organization-based content rights management and systems, structures, and methods therefor
US7716288B2 (en) * 2003-06-27 2010-05-11 Microsoft Corporation Organization-based content rights management and systems, structures, and methods therefor
US8862866B2 (en) 2003-07-07 2014-10-14 Certicom Corp. Method and apparatus for providing an adaptable security level in an electronic communication
GB2406484B (en) 2003-08-19 2007-01-31 Certicom Corp Method and apparatus for synchronizing an adaptable security level in an electronic communication
US20040117626A1 (en) * 2003-09-12 2004-06-17 Pioneer Research Center Usa, Inc. Key exchange based on dsa type certificates
WO2005043807A1 (fr) 2003-10-28 2005-05-12 Certicom Corp. Procede et dispositif pour la production verifiable de cles publiques
JP2007522739A (ja) * 2004-02-13 2007-08-09 サーティコム コーポレーション 一方向性認証
US7539862B2 (en) * 2004-04-08 2009-05-26 Ipass Inc. Method and system for verifying and updating the configuration of an access device during authentication
US7715551B2 (en) * 2004-04-29 2010-05-11 Stmicroelectronics Asia Pacific Pte. Ltd. Apparatus and method for consistency checking public key cryptography computations
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US7693277B2 (en) 2005-01-07 2010-04-06 First Data Corporation Generating digital signatures using ephemeral cryptographic key
US7936869B2 (en) 2005-01-07 2011-05-03 First Data Corporation Verifying digital signature based on shared knowledge
US7869593B2 (en) * 2005-01-07 2011-01-11 First Data Corporation Software for providing based on shared knowledge public keys having same private key
JP5068176B2 (ja) 2005-01-18 2012-11-07 サーティコム コーポレーション デジタル署名と公開鍵の促進された検証
US8467535B2 (en) * 2005-01-18 2013-06-18 Certicom Corp. Accelerated verification of digital signatures and public keys
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US20060259440A1 (en) * 2005-05-13 2006-11-16 Keycorp Method and system for electronically signing a document
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
JP2007028447A (ja) * 2005-07-20 2007-02-01 Toshiba Corp 暗号プロトコル安全性検証装置、暗号プロトコル設計装置、暗号プロトコル安全性検証方法、暗号プロトコル設計方法、暗号プロトコル安全性検証プログラムおよび暗号プロトコル設計プログラム
CA2941216C (fr) 2006-04-13 2018-11-27 Certicom Corp. Procedes et appareil pour procurer un niveau de securite adaptable dans une communication electronique
US7774607B2 (en) * 2006-12-18 2010-08-10 Microsoft Corporation Fast RSA signature verification
JP5138775B2 (ja) 2007-07-17 2013-02-06 サーティコム コーポレーション Idベース暗号化(ibe)に対して暗黙の証明証およびアプリケーションを生成する方法およびシステム
US10943030B2 (en) 2008-12-15 2021-03-09 Ibailbonding.Com Securable independent electronic document
US8745376B2 (en) 2011-10-14 2014-06-03 Certicom Corp. Verifying implicit certificates and digital signatures
US9503267B2 (en) * 2011-12-28 2016-11-22 Certicom Corp. Generating digital signatures
US20150006900A1 (en) * 2013-06-27 2015-01-01 Infosec Global Inc. Signature protocol
CN107409305B (zh) * 2015-02-27 2021-05-25 瑞典爱立信有限公司 通信设备与网络设备之间的通信安全设置
US9800418B2 (en) 2015-05-26 2017-10-24 Infosec Global Inc. Signature protocol
GB201707168D0 (en) 2017-05-05 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
US10313133B2 (en) * 2017-06-21 2019-06-04 Visa International Service Association Secure communications providing forward secrecy
US10491404B1 (en) * 2018-09-12 2019-11-26 Hotpyp, Inc. Systems and methods for cryptographic key generation and authentication
CN115580401B (zh) * 2022-10-25 2023-12-22 商密(广州)信息科技有限公司 一种基于可验证秘密共享的无证书sm2密钥生成方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442707A (en) * 1992-09-28 1995-08-15 Matsushita Electric Industrial Co., Ltd. Method for generating and verifying electronic signatures and privacy communication using elliptic curves
US5475763A (en) * 1993-07-01 1995-12-12 Digital Equipment Corp., Patent Law Group Method of deriving a per-message signature for a DSS or El Gamal encryption system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4995081A (en) * 1988-03-21 1991-02-19 Leighton Frank T Method and system for personal identification using proofs of legitimacy
US5159632A (en) * 1991-09-17 1992-10-27 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
ATE187588T1 (de) * 1993-08-17 1999-12-15 R3 Security Engineering Ag Verfahren zur digitalen unterschrift und verfahren zur schlüsselübereinkunft
WO1997002679A1 (fr) * 1995-06-30 1997-01-23 Stefanus Alfonsus Brands Certificats pouvant etre masques de façon restrictive au niveau des codes confidentiels
CA2228185C (fr) * 1997-01-31 2007-11-06 Certicom Corp. Protocole de verification

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442707A (en) * 1992-09-28 1995-08-15 Matsushita Electric Industrial Co., Ltd. Method for generating and verifying electronic signatures and privacy communication using elliptic curves
US5475763A (en) * 1993-07-01 1995-12-12 Digital Equipment Corp., Patent Law Group Method of deriving a per-message signature for a DSS or El Gamal encryption system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SCHNORR C P: "EFFICIENT IDENTIFICATION AND SIGNATURES FOR SMART CARDS", LECTURE NOTES IN COMPUTER SCIENCE,US,SPRINGER VERLAG, NEW YORK, NY, 20 August 1989 (1989-08-20), pages 239 - 252, XP002052048, ISSN: 0302-9743 *

Also Published As

Publication number Publication date
GB2321834B (en) 2002-05-15
DE19803939B4 (de) 2020-03-26
DE19803939A1 (de) 1998-08-13
CA2228185C (fr) 2007-11-06
US6446207B1 (en) 2002-09-03
US7036015B2 (en) 2006-04-25
US20020152385A1 (en) 2002-10-17
GB2321834A (en) 1998-08-05
CH694603A5 (de) 2005-04-15
CA2228185A1 (fr) 1998-07-31
FR2759226B1 (fr) 2001-10-19
GB9801792D0 (en) 1998-03-25

Similar Documents

Publication Publication Date Title
FR2759226A1 (fr) Protocole de verification d&#39;une signature numerique
FR2760583A1 (fr) Systeme de verification de cartes de donnees
EP3091689A1 (fr) Procédé de génération d&#39;une signature de message à partir d&#39;un jeton de signature chiffré à l&#39;aide d&#39;une fonction de chiffrement homomorphique
EP1151576B1 (fr) Procede cryptographique a cles publique et privee
US8438393B2 (en) Quadratic residue based password authenticated key exchange method and system
FR2822002A1 (fr) Authentification cryptographique par modules ephemeres
EP2345202A2 (fr) Procédé de signature numérique en deux étapes
EP1166496B1 (fr) Procede d&#39;authentification et de signature de message utilisant des engagements de taille reduite et systemes correspondants
EP2795833B1 (fr) Procede d&#39;authentification entre un lecteur et une etiquette radio
FR2793366A1 (fr) Protocole de signature numerique a largeur de bande reduite
EP3965361B1 (fr) Echange de données entre un client et un dispositif distant, par exemple un module sécurisé
FR2826811A1 (fr) Procede d&#39;authentification cryptographique
EP1145483B1 (fr) Procede d&#39;authentification ou de signature a nombre de calculs reduit
EP0666664B1 (fr) Procédé de signature numérique et d&#39;authentification de messages utilisant un logarithme discret avec un nombre réduit de multiplications modulaires
JP4307589B2 (ja) 認証プロトコル
FR2752122A1 (fr) Procede d&#39;authentification a nombre reduit de bits transmis
WO2003055134A9 (fr) Procede cryptographique permettant de repartir la charge entre plusieurs entites et dispositifs pour mettre en oeuvre ce procede
EP1820297A1 (fr) Procédé de génération de signature avec preuve de sécurité &#34;tight&#34;, procédé de vérification et schéma de signature associés basés sur le modèle de diffie-hellman
WO1998051038A1 (fr) Generateur pseudo-aleatoire base sur une fonction de hachage pour systemes cryptographiques necessitant le tirage d&#39;aleas
EP1407575A1 (fr) Procede pour effectuer une tache cryptographique au moyen d&#39;une cle publique
FR3070517A1 (fr) Systeme et procede d&#39;authentification et de signature numerique
FR3141538A1 (fr) Procede et dispositif de stockage en ligne reparti de fichiers dans un contexte zero confiance
FR2836768A1 (fr) Procede et dispositif pour former une signature numerique
WO2003021864A2 (fr) Procede de reduction de la taille d&#39;une signature rsa ou rabin
FR2713420A1 (fr) Procédé de génération de signatures DSA avec des appareils portables à bas coûts.

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 19

PLFP Fee payment

Year of fee payment: 20