FR2829597A1 - Procede pour le calcul d'une exponentiation dans un groupe et son application a l'authentification d'un utilisateur - Google Patents

Procede pour le calcul d'une exponentiation dans un groupe et son application a l'authentification d'un utilisateur Download PDF

Info

Publication number
FR2829597A1
FR2829597A1 FR0111775A FR0111775A FR2829597A1 FR 2829597 A1 FR2829597 A1 FR 2829597A1 FR 0111775 A FR0111775 A FR 0111775A FR 0111775 A FR0111775 A FR 0111775A FR 2829597 A1 FR2829597 A1 FR 2829597A1
Authority
FR
France
Prior art keywords
group
memory
exponentiation
user
term
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR0111775A
Other languages
English (en)
Inventor
Jean Luc Sthele
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.)
EVERBEE WIRELESS Ltd
Original Assignee
EVERBEE WIRELESS Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EVERBEE WIRELESS Ltd filed Critical EVERBEE WIRELESS Ltd
Priority to FR0111775A priority Critical patent/FR2829597A1/fr
Priority to PCT/FR2002/003104 priority patent/WO2003023606A1/fr
Publication of FR2829597A1 publication Critical patent/FR2829597A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • 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/723Modular exponentiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un procédé pour le calcul de l'exponentiation dans un groupe (G) en vue d'authentifier un utilisateur d'un dispositif physique (U).Il comprend les étapes - de décomposer l'exposant (s) dudit calcul d'exponentiation en deux termes (h) et (p) de façon à ce que la connaissance des deux termes soit nécessaire pour retrouver cet exposant (s),- de stocker le premier terme (h) dans une mémoire (H) du dispositif physique (U),- d'effectuer un précalcul consistant à élever un élément du groupe (G) à une puissance déterminée par le premier terme (h), cette exponentiation étant effectuée au sens de la loi de groupe du groupe (G),- de stocker le résultat dudit précalcul dans une mémoire (R), et- de calculer le résultat final de l'exponentiation en utilisant le résultat stocké dans la mémoire (R) et un nombre déterminé à partir du second terme (p).

Description

<Desc/Clms Page number 1>
PROCEDE POUR LE CALCUL D'UNE EXPONENTIATION DANS UN GROUPE ET
SON APPLICATION A L'AUTHENTIFICATION D'UN UTILISATEUR
De nombreuses applications informatiques (accès à des informations confidentielles, transactions financières, distributeurs de billets,...) nécessitent l'authentification préalable du client, utilisateur du service.
Cette authentification se fait en général par la combinaison de divers éléments : le client - est porteur d'un objet réputé lui appartenir (carte à puce, téléphone mobile, carte SIM, dispositif hardware spécifique repéré par un numéro de série unique et indélébile...) - connaît une information secrète (code PIN, mot de passe,...).
- présente certaines caractéristiques biométriques permettant de l'identifier (fond d'oeil, empreintes digitales, reconnaissance de la voix...)
L'information permettant d'authentifier le client (code PIN, mot de passe, information issue des caractéristiques biométriques...) doit alors être contrôlée par le système informatique avant que le client n'ait accès à ce qu'il demande.
Bien sûr, cette information ne doit en aucun cas transiter en clair sur le réseau. Elle serait en effet très
<Desc/Clms Page number 2>
facile à espionner par un pirate qui pourrait ensuite se faire passer pour le client. Cette information devra donc être cryptée. Cela se fait habituellement par le biais d'un échange de type défi/réponse.
Le principe général du défi/réponse est le suivant : le site central (serveur d'authentification) envoie un message, le défi, qui est normalement une suite d'octets aléatoires.
L'ordinateur du client effectue, à partir de ce défi, un calcul utilisant l'information à contrôler (code PIN, caractéristiques biométriques,...). Le résultat de ce calcul est la réponse au défi. Il est impossible de retrouver ce résultat sans connaître avec précision l'information à contrôler. La réponse est transmise au serveur qui vérifie qu'elle correspond bien à ce qui était attendu, ce qui authentifie ainsi le client (ou, du moins, assure que le bon code PIN, ou la bonne empreinte digitale, ou autre élément d'identification a été fourni par la personne désirant se faire authentifier).
L'exécution des algorithmes de défi/réponse nécessite des ressources informatiques (puissance de calcul, temps de calcul, espace mémoire) qui rendent leur mise en pratique difficile sur des processeurs de faible puissance, comme ceux qui équipent les cartes à puce ou les téléphones mobiles. Plus précisément, les temps de calcul nécessaires à l'authentification du client risquent d'être rédhibitoires.
La présente invention consiste à décomposer le calcul en deux phases, l'une d'elles étant effectuée d'avance, c'est-àdire avant que l'utilisateur n'ait entré son code PIN, son empreinte vocale, ou autre élément d'identification. La seconde phase, qui prend en compte les données d'authentification proprement dites, est alors quasi instantanée.
Dans le cas d'une application liée aux réseaux téléphoniques mobiles, un client peut utiliser son téléphone mobile pour accéder à des informations confidentielles ou pour réaliser une transaction financière (commerce électronique ou autre). Le client s'était déjà authentifié au moment où il a mis
<Desc/Clms Page number 3>
sous tension son téléphone mobile et s'est connecté au réseau téléphonique mobile. Mais ce n'est pas suffisant car il a pu laisser son poste hors de sa surveillance pour quelques instants et une personne indélicate a pu le lui emprunter pour l'utiliser frauduleusement. Une nouvelle authentification est donc nécessaire au moment de réaliser l'opération souhaitée. On peut d'ailleurs prévoir que le code PIN (ou le mot de passe à prononcer, ou tout autre moyen d'authentification) n'est pas le même que lors de la mise sous tension.
Dans le mode de réalisation proposé, dès la mise sous tension et la connexion au réseau téléphonique mobile établie, le serveur d'authentification enverra au client un défi. La première phase du calcul démarrera alors, et les résultats partiels de ce calcul resteront stockés dans la mémoire du téléphone mobile du client. Au moment où le client souhaite réaliser une opération nécessitant une authentification forte, il entrera un code PIN (ou toute autre information permettant de l'authentifier). La seconde phase du calcul de la réponse démarre alors, et le résultat est disponible quasi instantanément. L'application n'est donc plus pénalisée par la lenteur des calculs sur un poste client à ressources informatiques limitées.
Diverses normes de fait sont en train de se mettre en place pour la réalisation pratique des défis/réponses. Les techniques utilisées se répartissent en deux grands types. L'un regroupe les défis/réponses basés sur le système à clé publique RSA. L'autre regroupe les défis/réponses basés sur le protocole de Diffie-Hellman, qui lui-même comporte de nombreuses variantes selon les structures mathématiques sous-jacentes mises en oeuvre.
Avant d'entrer dans les détails des algorithmes, un petit rappel mathématique peut s'avérer nécessaire.
Les algorithmes mis en oeuvre sont, dans les deux cas, basés sur des calculs d'exponentiation dans des groupes finis.
<Desc/Clms Page number 4>
Leur sécurité repose sur l'impossibilité de résoudre en un temps raisonnable le problème appelé problème du logarithme discret.
L'arithmétique modulo N est une technique classique qui consiste à considérer que deux nombres sont égaux dès que leur différence est un multiple entier d'un nombre, noté ici N, appelé le module. On dit alors que les nombres sont définis modulo N et qu'on travaille sur l'ensemble des entiers modulo N.
Ces nombres peuvent être assimilés aux entiers compris entre 0 et N-1.
Dans les applications cryptographiques, ce nombre est en général très grand (nombre à 512 ou 1024 bits pour fixer les idées).
L'addition et la multiplication sont définies de façon similaire à l'arithmétique classique, mais lorsqu'un résultat dépasse N-1, on le remplace par le reste de sa division par N.
L'arithmétique ainsi définie est appelée arithmétique modulo N.
Nous ne considérerons ici que la multiplication.
L'ensemble des entiers modulo N, dont on aura enlevé l'élément 0, forme un groupe pour l'opération de multiplication, qu'on appellera groupe multiplicatif des entiers modulo N.
On peut réaliser en un temps raisonnable des additions et des multiplications modulo N. L'exponentiation, pour une base a et un exposant b est la multiplication de b éléments égaux à a. On réservera le nom d'exponentiation modulaire à l'exponentiation réalisée dans le groupe multiplicatif des entiers modulo N. Le résultat'de cette opération est appelé a puissance b modulo N et sera noté ci-après a^b[N].
Le calcul de a^b [N] est plus complexe, qu'une simple addition ou multiplication, mais il peut s'effectuer en un temps raisonnable, car et il peut se ramener, en moyenne, à 3k/2 multiplications modulo N (ou k est le nombre de bits nécessaires à la représentation binaire de l'exposant b). L'algorithme exact en sera détaillé plus loin.
Par contre, si on connaît la base a et le résultat de l'exponentiation modulaire a^b [N], il est en général
<Desc/Clms Page number 5>
impossible (pour un module N assez grand), de retrouver en un temps raisonnable l'exposant b. Ce problème est connu sous le nom de problème du logarithme discret.
Le nom provient de ce que, si on travaillait sur des nombres réels classiques, connaissant a et c = a^b, l'exposant b serait simplement donné par la relation b = Log c/Log a Malheureusement (et heureusement pour les cryptographes), il n'existe pas d'équivalent du logarithme sur les groupes utilisés en cryptographie et en particulier sur l'arithmétique modulo N.
L'impossibilité de résoudre le problème du logarithme discret fait que l'exponentiation modulaire est une excellente fonction à sens unique . Le calcul direct (calculer a^b [N] connaissant a et b) est très rapide, quelques fractions de secondes sur les micro-ordinateurs du commerce, pour un module N de plusieurs centaines de bits. Le temps nécessaire au calcul inverse (calculer b connaissant a et a^b[N]) peut se chiffrer en milliard d'années, même avec des moyens de calculs importants.
La fonction d'exponentiation peut être utilisée dans des applications cryptographiques. On bâtit un protocole dans lequel l'utilisateur normal ne fait que les calculs d'exponentiation directs, calculs raisonnablement rapides sur des machines peu puissantes. Un pirate souhaitant accéder frauduleusement aux informations devrait, quant à lui, résoudre le problème inverse, celui du logarithme discret ce qui lui est impossible, même avec les moyens très importants dont pourrait par exemple disposer une organisation criminelle puissante.
Le problème du logarithme discret a son équivalent dans un groupe quelconque. On peut, en effet, dans un groupe quelconque, définir une opération équivalente de l'exponentiation et dont la réciproque joue le rôle du problème du logarithme discret. C'est ce que nous allons décrire ciaprès.
Dans le mode de réalisation proposé, on se placera dans un groupe choisi de façon à ce que les calculs habituels,
<Desc/Clms Page number 6>
en particulier la multiplication et l'exponentiation, soient, dans ce groupe, faciles à réaliser sur un ordinateur. Soit G un tel groupe. On notera la loi de composition par le symbole 0 la loi de composition dans G. Chaque élément du groupe G a une représentation informatique sous forme d'une chaîne de bits (qu'on notera par le même nom que l'élément de G qu'il représente). On se placera dans le cas où l'opération de composition du groupe G (qui à u et v associe w = u v) est facile et rapide à programmer. Cela signifie qu'on peut écrire une routine informatique rapide permettant de calculer la chaîne de bits représentant u v à partir des chaînes de bits représentant u et v.
On notera e l'élément neutre de G. Étant donné un élément quelconque g du groupe G, et un entier a, positif ou nul, on notera g^ 0 a la composée (par la loi 0) d'un nombre a d'éléments égaux à g. Cette notation revient à écrire g^ 0 pour l'élément neutre e, g^ l pour g, g^02 pour gOg ; g^03 = g g g ; et ainsi de suite. On notera g^ -a l'inverse de g^Oa pour la loi de groupe 0. L'opération ainsi définie est l'opération d'exponentiation dans le groupe G. Le nombre g est appelé la base et le nombre a l'exposant. Le résultat g^Oa sera appelé g puissance a pour la loi .
On appellera ordre de g et on notera o (g) le plus petit entier positif a (s'il existe) tel que g^ a = e. S'il n'existe aucun tel a, on dira que l'ordre de g est infini.
L'ensemble des puissances d'un élément g, muni de l'opération 0 forme un sous-groupe de G, qui, lorsque o (g) est fini, est isomorphe à l'ensemble des entiers modulo o (g) muni de l'opération d'addition et qui, lorsque o (g) est infini, est isomorphe à l'ensemble des entiers relatifs.
Dans les applications cryptographiques, on utilisera toujours des groupes G et des bases g choisis de façon que l'ordre o (g) soit très élevé (nombre entier à plusieurs centaines de bits). L'idée fondamentale est de travailler dans des groupes où l'exponentiation (calcul de g^ a connaissant la
<Desc/Clms Page number 7>
base g et l'exposant a) peut se faire relativement rapidement, mais où le problème inverse (retrouver l'exposant a connaissant la base g et le résultat g^Oa de l'exponentiation) est impossible en un temps raisonnable. Ce dernier problème est l'analogue problème du logarithme discret décrit précédemment.
De nombreux groupes ayant ces caractéristiques sont utilisés en cryptographie. Les recherches actuelles dans ce domaine s'articulent autour de deux objectifs. Le premier est de trouver des solutions au problème du logarithme discret dans un groupe G donné, ou au contraire de démontrer qu'il n'y a pas de solution en un temps raisonnable. Le second est de construire des nouveaux groupes sur lesquels le problème du logarithme discret serait plus difficile à résoudre que dans les groupes habituellement utilisés.
L'enjeu de ces recherches est de déterminer des groupes dans lesquels, d'une part, le problème du logarithme discret est raisonnablement difficile à résoudre, mais dans lequel, d'autre part, le calcul de l'exponentiation nécessite un minimum de ressources informatiques (temps de calcul, espace mémoire nécessaire). L'utilisation de groupes de ce type dans les applications cryptographiques permet d'atteindre un niveau de sécurité donné tout en minimisant les ressources nécessaires à l'authentification d'un client.
Outre l'arithmétique modulo N présentée plus haut, deux familles de groupes semblent prometteuses en cryptographie, liés les uns aux courbes elliptiques sur un corps fini, les autres aux courbes hyperelliptiques.
Depuis plusieurs décennies, on étudie les structures de groupes sur les ensembles de points d'une courbe elliptique. Ces courbes peuvent être définies, sur le corps des nombres réels, sur celui des nombres complexes, sur les nombres rationnels ou encore sur un corps fini. La loi de composition se programme facilement, car il y a une relation simple entre les coordonnées des deux points de départ et celles de leur composée. L'idée d'utiliser la théorie des courbes elliptiques
<Desc/Clms Page number 8>
en cryptographie remonte aux années 1985 et a été proposée indépendamment par N. Koblitz et par V. Miller. Une présentation synthétique peut être trouvée dans l'ouvrage de Koblitz < < Algebraic aspects of Cryptography > > (Springer 1998).
D'autres structures de groupes, comme les variétés de Jacobi associées à une courbe hyperelliptique semblent très prometteuses. Les bases mathématiques de cette théorie sont connues depuis de nombreuses décennies. Une bonne introduction peut être trouvée dans le polycopié d'un cours de R. C. Gunning fait à l'université de Princetown en 1965/66, ( Lectures on Riemann Surfaces R. C. Gunning, Princeton University Press 1966) Une présentation synthétique peut être trouvée dans l'ouvrage de Koblitz cité plus haut.
Avant de décrire l'invention, il paraît utile de rappeler les principes des systèmes d'authentification par défi
Figure img00080001

/réponse couramment utilisés actuellement.
On peut baser un système d'authentification par défi/ réponse sur un système de cryptage à clé publique RSA. Ce système fonctionne obligatoirement en arithmétique modulaire. Le principe en est décrit par exemple dans le brevet US # 4 405 829 du 20 septembre 1993.
Pour chaque utilisateur on définit un nombre N, public, modulo lequel on travaille, un exposant public c et un exposant secret d connu uniquement de l'utilisateur. La connaissance du couple (N, c) ne permet pas de retrouver l'exposant secret d. Ces nombres c et d sont choisis de façon que pour tout entier x le nombre x puissance cd soit égal, modulo N, à x. A condition de respecter certaines contraintes mathématiques, le client peut, dans une certaine mesure, librement choisir et modifier son exposant secret d et publier la nouvelle valeur de l'exposant public c inverse de son nouveau secret d, à condition bien sûr de s'authentifier lors de cette publication de façon à assurer que c'est bien lui l'émetteur de la modification de clé.
<Desc/Clms Page number 9>
On dispose ainsi, pour chaque utilisateur, d'un couple de fonctions réciproques l'une de l'autre, l'une publique (élever à la puissance c modulo N), l'autre secrète (élever à la puissance d modulo N). En cryptant un message avec la fonction publique du destinataire, on assure que lui seul pourra décrypter (grâce à sa fonction secrète).
Une technique de défi/réponse basée sur RSA consiste à envoyer un nombre aléatoire x à la personne à authentifier, et à lui demander de le crypter avec sa clé secrète, (donc de l'élever à la puissance d modulo N). Le résultat de cette exponentiation sera décrypté avec la clé publique de la personne à authentifier (donc élevé à la puissance c modulo N), de façon à vérifier qu'on retrouve bien le nombre x initialement envoyé. Si c'est le cas, cela prouve que le client connaissait l'exposant secret d, ce qui permet donc de l'authentifier.
La sécurité de ce protocole repose sur le fait qu'un pirate espionnant la communication voit passer le nombre x et le nombre x puissance d modulo N, mais n'a aucun moyen de calculer l'exposant secret d en un temps raisonnable. Casser le système revient à résoudre le problème du logarithme discret ce qui n'est actuellement pas possible en pratique lorsque N et d sont assez grands.
Un autre système d'authentification par défi réponse est basé sur le protocole dit de Diffie-Hellman. Ce protocole est mathématiquement très voisin du précédent. Il est décrit par exemple dans le-brevet US # 4 200 770 Cryptographic apparatus and method de Hellman, Diffie et Merkle du 29 avril 1980, et nous rappelons le principe ci-après.
Dans le protocole classique de Diffie Hellman, on travaille en arithmétique modulaire, modulo un nombre N que l'on publie. On publie par ailleurs un nombre g appelé la base. Le client à authentifier possède un secret s et le nombre g puissance s modulo N est communiqué à l'autorité chargée d'authentifier le client (appelée par la suite serveur d'authentification). Pour authentifier le client, le serveur
<Desc/Clms Page number 10>
d'authentification choisit un nombre aléatoire a puis calcule le nombre g puissance a modulo N qui sera le défi envoyé au client.
Le client élève ce défi à la puissance s (son secret) modulo N, et détermine donc g puissance as modulo N qu'il envoie comme réponse. L'émetteur du défi, de son côté, connaît d'une part a (nombre aléatoire qu'il avait choisi) et d'autre part g puissance s (que le client avait publié). Il peut donc, en élevant ce dernier nombre à la puissance a, modulo N, calculer g puissance as et vérifier ainsi la réponse envoyée par le client.
Le déroulement du protocole de Diffie Hellman impose donc au serveur d'authentification d'effectuer deux exponentiations modulaires et au client à authentifier, d'effectuer une seule exponentiation modulaire.
La sécurité de ce protocole repose sur le fait qu'un pirate espionnant la communication voit passer ou connaît les nombres g puissance a, g puissance s et g puissance as (modulo N) mais n'a aucun moyen de calculer s en un temps raisonnable sans résoudre le problème du logarithme discret (ce qui n'est actuellement pas possible en pratique lorsque N et g sont assez grand et correctement choisis).
Notons que le secret s du client peut être modifié à son initiative, pourvu qu'il puisse communiquer de façon sûre au serveur d'authentification la nouvelle valeur g puissance s modulo N (et qu'il s'authentifie lors de cette communication de façon à assurer que c'est bien lui l'émetteur de la modification).
Alors que le système RSA impose de se placer en arithmétique modulo N, le protocole de Diffie-Hellman peut se transposer à n'importe quel groupe pour peu que le problème du logarithme discret y soit suffisamment difficile à résoudre.
Plusieurs protocoles de type Diffie-Hellman basés sur des courbes elliptiques particulières ont déjà été proposés en vue de normalisation. En ce qui concerne l'utilisation de variétés de Jacobi associées à des courbes hyperelliptiques, il semble qu'on en soit encore au stade de la recherche.
<Desc/Clms Page number 11>
Tant en RSA qu'en Diffie-Hellman, le client aura à effectuer un calcul d'exponentiation. Or pour assurer une sécurité suffisante, il faut travailler sur des nombres très élevés (plusieurs centaines de bits), tant pour le défi et la réponse que pour les exposants.
Le pirate cherchant à casser le système peut être une organisation criminelle disposant d'ordinateurs et de moyens de calcul très puissants pour résoudre le problème du logarithme discret. Cela conduit donc à augmenter la taille des nombres utilisés, en vue d'assurer le niveau de sécurité requis (on travaille typiquement dans une arithmétique à 512 ou 1024 bits).
De tels calculs nécessitent une puissance de calcul élevée difficilement compatible avec des processeurs à faible puissance (cartes à puces, téléphones mobiles,...) que le client peut être amené à utiliser pour s'authentifier, du moins si on souhaite des temps de réponse acceptables pour le client.
Cela explique les actuels efforts de recherche de nouvelles structures mathématiques qui pourraient être proposées en remplacement de l'arithmétique module N. La théorie des courbes elliptiques sur un corps fini, ou celle des variétés de Jacobi sur des courbes hyperelliptiques sur un corps fini offrent de perspectives prometteuses et permettent de construire des groupes où le problème du logarithme discret semble beaucoup plus difficile à résoudre. Pour obtenir un même niveau de sécurité, on peut alors travailler sur des nombres moins grands, accélérant très significativement les calculs d'exponentiation à faire sur le poste client.
Rappelons que ces nouvelles structures ne peuvent pas être utilisées dans une authentification basée sur RSA (qui utilise les propriétés spécifiques de l'arithmétique module N pour des valeurs de N spécifiquement choisies). En revanche, elles sont parfaitement adaptées à des protocoles de type Diffie Hellman. Notons cependant que, les temps de réponse sur processeurs de faible puissance restent encore élevés.
<Desc/Clms Page number 12>
Pour décrire l'invention proposée dans le présent brevet, il est indispensable d'entrer dans le détail des algorithmes d'exponentiation. En effet, notre approche ne consiste pas à découvrir de nouvelles structures mathématiques mais à analyser les algorithmes actuellement utilisés pour l'exponentiation, indépendamment de la structure mathématique particulière sur laquelle on travaille, arithmétique modulaire, courbes elliptiques, courbes hyperelliptiques ou autres.
Les algorithmes d'exponentiations classiquement utilisés permettent de ramener l'exponentiation à l'exécution d'un nombre pas trop élevé de multiplications. Ils fonctionnent de façon similaire, quel que soit le groupe sur lequel sont effectués les calculs. Pour en décrire le principe, on gardera les notations utilisées précédemment : on travaille dans un groupe G dont la loi sera notée Il et on suppose qu'on sait effectuer rapidement une multiplication dans G, c'est-à-dire calculer rapidement la composée (par la loi ) de deux éléments d'un groupe G.
Le calcul direct de g^Oa = gOgOg... g (avec a facteurs) devient rapidement prohibitif en temps de calcul pour les grandes valeurs de a, car il est nécessaire d'effectuer a-1 multiplications dans G pour obtenir le résultat. Une méthode indirecte permet d'y arriver bien plus rapidement. Le principe de cette méthode consiste à calculer, par des élévations au
Figure img00120001

carré successives (multiplication d'un nombre par lui-même), la liste des puissances de g dont l'exposant est une puissance de 2 (g, g^02, g^04, g^08, g^016, g^032, g^064,...). On examine alors le développement binaire de l'exposant a (ce qui est facile, car les entiers positifs sont habituellement stockés en binaire sur ordinateur). On retient dans la liste précédente les éléments qui correspondent à des bits à 1 dans ce développement et on les multiplie entre eux. Si l'exposant s'écrit sur n bits dont p bits à 1, il faut donc n-1 élévations au carré suivies de p-1 multiplications pour calculer le résultat. A titre d'exemple prenons le cas de l'exposant 181 qui se décompose en
<Desc/Clms Page number 13>
128+32+16+4+1 s'écrit donc en binaire 1011 0101. Par 7 élévations au carré successives, on peut calculer la liste des puissances de g d'exposants successifs 2,4, 8,16, 32,64 et 128. En remarquant que le résultat recherché g^0181 est égal au produit des 5 facteurs g 128", g^032, g^016, g^04 et g^ l on voit qu'il suffit de 4 multiplications pour obtenir le résultat final recherché. Soit au total 11 multiplications au lieu de 180. Le gain est considérablement plus spectaculaire lorsque l'exposant est un très grand nombre.
L'algorithme utilisé pour les exponentiations dans un groupe quelconque, tel qu'il est couramment implémenté dans les applications informatiques, s'inspire de cette méthode. Il est du domaine public et est décrit par exemple dans Applied Cryptography de Bruce Schneier (John Wiley 1993) ou dans The Art of Computer Programming Vol 2 Seminumerical Algorithms de D. Knuth (Addison Wesley, 1981 pour la seconde édition)
On veut calculer g^Ob où g est un élément d'un groupe G et b est un entier positif donné par son développement binaire b [k-1],..., b [2], b [1], b [0] (k est le nombre total de bits utilisés pour écrire b en binaire). Pour retrouver le nombre b à partir de ce développement il suffit de multiplier b [l] par 2, b [2] par 2 puissance 2, b [3] par 2 puissance 3, et ainsi de suite et d'additionner les résultats de toutes ces multiplications. Le nombre entier b est appelé l'exposant et l'élément g du groupe G est appelé la base.
L'exposant et la base sont des paramètres qui ne sont pas modifiées tout au long du déroulement de l'algorithme. Une variable utilitaire, notée d, contient un élément du groupe G.
Au début du calcul, la variable d est initialisée à l'élément neutre e du groupe G. L'algorithme consiste à faire tourner une boucle dont le compteur i décroît de k-1 à zéro par pas d'une unité. A chaque passage de la boucle on effectue deux opérations. La première opération consiste à élever la variable d au carré (c'est-à-dire à la multiplier par elle-même) au sens de l'opération 0 du groupe G. Ce calcul est effectué à chaque
<Desc/Clms Page number 14>
itération. La seconde opération consiste à tester si le bit b [i] du développement binaire de l'exposant est égal à 1 (i est la valeur courant du compteur de boucle). Si b [i] est égal à 1, on multipliera (au sens de l'opération 0 du groupe G) la variable d par la base.
Les deux paramètres, exposant et base, n'interviennent donc que lors de la seconde opération dans la boucle. L'exposant intervient bit après bit, ses bits successifs servant à inhiber ou non la multiplication. La base est le multiplicateur de cette multiplication (lorsqu'elle a lieu). Ces paramètres ne sont pas modifiés lors de l'algorithme.
La mise en oeuvre de cet algorithme nécessite bien sûr que l'on sache effectuer des multiplications (et des élévations au carré) dans le groupe G.
A titre d'exemple, montrons comment tourne cet algorithme dans un exemple précis. On veut élever la base a à la puissance 53 qui se décompose en 32+16+4+1 et qu'on va écrire en binaire 0011 0101. Au départ, la variable d est initialisée à l'élément neutre e du groupe G. On lit les bits du développement binaire de l'exposant en commençant par les bits de poids fort (c'est-à-dire de gauche à droite). Tant qu'on lit des bits à zéro, c'est-à-dire pour les 2 premières itérations de la boucle, la variable d n'est pas modifiée, car le carré de l'élément neutre e est égal à e, et il n'y a aucun calcul à faire. A la troisième itération, on élève d'abord d au carré (d reste égal à e) puis on le multiplie par la base a ; d contiendra donc a. A la quatrième itération, on élève au carré (d contient maintenant a^2), puis comme on a un bit à 1, on multiplie à nouveau par a (d contient maintenant a^3). A la cinquième itération, on élève au carré (d contient maintenant a^6) puis, comme on a un bit à 0, on n'effectue par la seconde opération. A la sixième itération, on élève au carré (d contient maintenant a^12), puis comme on a un bit à 1, on multiplie à nouveau par a (d contient maintenant a^13). Septième itération, bit à zéro, on se contente d'élever au carré (d contient maintenant a^26). A la
<Desc/Clms Page number 15>
huitième et dernière, on élève au carré (d contient maintenant a^52), puis comme on a un bit à 1, on multiplie à nouveau par a (d contient maintenant a^53). L'algorithme donne bien, dans ce cas, le résultat prévu
Les calculs effectifs ne commencent qu'au premier bit égal à 1 dans l'exposant b (en les prenant du plus significatif au moins significatif). Le nombre d'élévations au carré est égal au nombre de bits minimal nécessaires à la représentation binaire de b, diminué de 1, et le nombre de multiplications (seconde opération de la boucle) est égal au nombre de bits à 1 dans la représentation binaire de b (diminué de 1, car au départ d était initialisé à contient l'élément neutre du groupe G). En moyenne, si l'exposant est un nombre à k bits, le nombre total de multiplication est approximativement égal à 3k/2 et non à b (de l'ordre de 2 puissance k) comme ce serait le cas si l'exponentiation était effectuée par calcul direct.
L'invention présentée ici résulte de l'analyse détaillée de l'algorithme décrit ci-dessus. L'objectif est, précisons le, d'accélérer les calculs du côté du client, de façon à permettre une authentification rapide même si le client ne dispose que d'un processeur de faible puissance (carte à puce, téléphone mobile).
Rappelons que, du côté du client, les authentifications basées sur RSA et celles basées sur DiffieHellman sont similaires. Dans les deux cas, le client possède un secret s. Le serveur d'authentification envoie un nombre x au client en lui demandant de calculer x puissance s et de renvoyer le résultat. Ce calcul d'exponentiation est fait dans un groupe G qui peut être celui de l'arithmétique modulaire (ce qui est toujours le cas en RSA) soit un objet mathématique plus sophistiqué (courbe elliptique, hyperelliptique,...)
Le secret est forcément un grand nombre. Si le secret est simplement un code PIN à 4 ou même 6 chiffres, le pirate espionnant le défi et la réponse n'aura que 10 000 ou 1 000 000 essais à faire pour tester exhaustivement tous les codes PIN
<Desc/Clms Page number 16>
possibles et trouver celui qui est compatible avec le couple défi/réponse qu'il a relevé. Un tel calcul est faisable en quelques secondes sur un micro-ordinateur grand public.
La seule parade à une attaque exhaustive testant tous les secrets possibles est d'avoir un secret représenté par un grand nombre de bits (plusieurs centaines).
L'invention concerne un procédé pour le calcul de l'exponentiation dans un groupe en vue d'authentifier un utilisateur d'un dispositif physique, caractérisé en ce qu'il comprend les étapes suivantes : - L'étape de décomposer l'exposant dudit calcul d'exponentiation en deux termes et de façon à ce que la connaissance des deux termes soit nécessaire pour retrouver ledit exposant.
- L'étape de stocker le premier terme des dits termes dans une mémoire dudit dispositif physique.
- L'étape d'effectuer un précalcul consistant à élever un élément d'un groupe à une puissance déterminée par le premier terme, cette exponentiation étant effectuée au sens de la loi de groupe dudit groupe.
- L'étape de stocker le résultat dudit précalcul dans une mémoire.
- L'étape de calculer le résultat final de l'exponentiation en utilisant le résultat stocké dans ladite mémoire et un nombre déterminé à partir du second terme.
Dans l'invention, le secret s se compose donc de deux parties. L'une est un secret hardware (noté dans la suite h) et stocké dans le dispositif matériel physique de l'utilisateur. Ce secret hardware doit en principe avoir un grand nombre de bits. L'autre partie du secret est appelée secret physique client (noté dans la suite p)
L'invention consiste à décomposer le calcul de x puissance s en deux parties. L'une d'elles, appelée précalcul, prend en compte uniquement le secret hardware h, et la seconde utilise le secret physique client p. Un intervalle
<Desc/Clms Page number 17>
de temps éventuellement important peut séparer les deux parties du calcul. Ledit secret physique client peut être de différents types.
L'invention peut se réaliser sous forme d'un procédé pour le calcul de l'exponentiation dans un groupe en vue d'authentifier un utilisateur d'un dispositif physique, inspiré du procédé précédent et caractérisé en ce qu'il comprend les étapes suivantes : - L'étape de décomposer l'exposant dudit calcul d'exponentiation en deux termes de façon à ce que la connaissance des deux termes soit nécessaire pour retrouver cet exposant.
- L'étape de stocker le premier terme dans une mémoire dudit dispositif physique.
- L'étape de lier le second terme à certaines caractéristiques biométriques d'un utilisateur dudit dispositif physique.
- L'étape d'effectuer un précalcul consistant à élever un élément d'un groupe à une puissance déterminée par le premier terme, cette exponentiation étant effectuée au sens de la loi de groupe dudit groupe.
- L'étape de stocker le résultat dudit précalcul dans une mémoire.
- L'étape de saisir lesdites caractéristiques biométriques dudit utilisateur, à l'aide d'un lecteur de caractéristiques'biométriques, cette étape étant réalisée postérieurement aux étapes précédentes.
- L'étape de calculer le second terme à partir de données issues desdites caractéristiques biométriques.
- L'étape de calculer le résultat final de l'exponentiation en utilisant le résultat du précalcul qui avait été en mémoire et un nombre déterminé à partir du second terme.
Dans le procédé que nous venons de décrire, le secret physique client est une information qu'on peut rattacher à une caractéristique biométrique de l'utilisateur à authentifier
<Desc/Clms Page number 18>
(empreinte digitale, fond d'oeil, système d'analyse de la voix, etc. ). Un dispositif physique de lecture de ces caractéristiques biologiques les transformera en une série de bits ou une série de nombres à partir desquels sera calculé le second terme.
L'invention peut se réaliser sous forme d'un procédé pour le calcul de l'exponentiation dans un groupe en vue d'authentifier un utilisateur d'un dispositif physique, inspiré du procédé précédent et caractérisé en ce qu'il comprend les étapes suivantes : - L'étape de décomposer l'exposant dudit calcul d'exponentiation en deux termes de façon à ce que la connaissance des deux termes soit nécessaire pour retrouver cet exposant.
- L'étape de stocker le premier terme dans une mémoire dudit dispositif physique.
- L'étape de lier le second terme à une suite de symboles communiquée à l'utilisateur.
- L'étape d'effectuer un précalcul consistant à élever un élément d'un groupe à une puissance déterminée par le premier terme, cette exponentiation étant effectuée au sens de la loi de groupe dudit groupe.
- L'étape de stocker le résultat dudit précalcul dans une mémoire.
- L'étape de calculer le second terme à partir d'une suite de symboles entrés par l'utilisateur sur un dispositif de saisie, la frappe de ces symboles étant réalisée postérieurement aux étapes précédentes.
- L'étape de calculer le résultat final de l'exponentiation en utilisant le résultat du précalcul qui avait été en mémoire et un nombre déterminé à partir du second terme.
Dans le procédé présenté ici, le secret physique client est une suite de symboles. Dans un mode particulier de réalisation, ce peut être un code PIN analogue à ce qui est utilisé pour les cartes bancaires. C'est en fait un cas particulier du procédé précédent dans la mesure où cette suite
<Desc/Clms Page number 19>
de symboles ou ce code PIN est stocké dans la mémoire biologique de l'utilisateur, et est donc assimilable à une caractéristique biométrique.
L'invention peut se réaliser sous forme d'un procédé pour le calcul de l'exponentiation dans un groupe en vue d'authentifier un utilisateur d'un dispositif physique, inspiré du procédé précédent et caractérisé en ce qu'il comprend les étapes suivantes : - L'étape de décomposer l'exposant dudit calcul d'exponentiation en deux termes de façon à ce que la connaissance des deux termes soit nécessaire pour retrouver cet exposant.
- L'étape de lier le second terme à une suite de symboles choisie choisi par l'utilisateur.
- L'étape de calculer le premier terme à partir de ladite suite de symboles et dudit exposant.
- L'étape de stocker le premier terme dans une mémoire dudit dispositif physique.
- L'étape d'effectuer un précalcul consistant à élever un élément d'un groupe à une puissance déterminée par le premier terme, cette exponentiation étant effectuée au sens de la loi de groupe dudit groupe.
- L'étape de stocker le résultat dudit précalcul dans une mémoire.
- L'étape de calculer le second terme à partir d'une suite de symboles entrés par l'utilisateur sur un dispositif de saisie, la frappe de ces symboles étant réalisée postérieurement aux étapes précédentes.
- L'étape de calculer le résultat final de l'exponentiation en utilisant le résultat du précalcul qui avait été en mémoire et un nombre déterminé à partir du second terme.
La différence entre ce procédé et le procédé précédent réside dans le fait que le secret physique client peut être choisi par l'utilisateur au lieu de lui être imposé. Le point commun aux quatre procédés que nous venons de décrire est que le
<Desc/Clms Page number 20>
calcul est fait en deux étapes. La première est le précalcul, qui peut être long, mais elle ne nécessite pas d'intervention de l'utilisateur (frappe de code, fourniture d'informations biométriques...). Cette phase de calcul est donc faite au préalable de façon de réduire le délai entre le moment où une intervention de l'utilisateur est sollicitée (fourniture d'une suit de symboles, lecture de caractéristiques biométriques) et le moment où cet utilisateur est authentifié.
Le calcul d'exponentiation est en fait une partie du procédé général d'authentification d'un utilisateur d'un dispositif physique, caractérisé en ce qu'il comprend les étapes suivantes : - L'étape de faire envoyer, par un serveur d'authentification, au dispositif physique de l'utilisateur, une chaîne de bits représentant un élément d'un groupe.
- L'étape de faire effectuer par le dispositif physique de l'utilisateur, un précalcul consistant à élever ledit élément dudit groupe à une puissance déterminée à partir d'un premier terme stocké dans une mémoire liée à ce dispositif physique, cette exponentiation étant effectuée au sens de la loi de groupe dudit groupe.
- L'étape de stocker le résultat de ce précalcul dans une mémoire.
- L'étape, au moment où il est nécessaire d'authentifier un utilisateur, de déterminer le second terme.
-L'étape de faire exécuter, par le dispositif physique de l'utilisateur, un calcul utilisant d'une part le contenu de la mémoire et d'autre part le second terme - L'étape d'envoyer le résultat dudit calcul au serveur d'authentification.
- L'étape de faire analyser le résultat dudit calcul par le serveur d'authentification en vue de décider si l'utilisateur peut être authentifié.
L'innovation de ce procédé, par rapport aux authentifications classiques par défi réponse provient de ce que
<Desc/Clms Page number 21>
le défi est envoyé au préalable et qu'une partie du calcul est réalisé avant que ne soit connu le second terme nécessaire au calcul d'exponentiation. Ce procédé peut se réaliser de plusieurs façons.
L'invention peut se présenter sous forme d'un procédé d'authentification d'un utilisateur d'un dispositif physique, caractérisé en ce qu'il comprend les étapes suivantes : - L'étape de faire envoyer, par un serveur d'authentification, au dispositif physique de l'utilisateur, une chaîne de bits représentant un élément d'un groupe.
- L'étape de faire effectuer par le dispositif physique de l'utilisateur, un précalcul consistant à élever ledit élément dudit groupe à une puissance déterminée à partir d'un premier terme stocké dans une mémoire liée à ce dispositif physique, cette exponentiation étant effectuée au sens de la loi de groupe dudit groupe.
- L'étape de stocker le résultat de ce précalcul dans une mémoire.
- L'étape, au moment de l'authentification de l'utilisateur, de mesurer certaines caractéristiques biométriques de l'utilisateur à authentifier à l'aide d'un lecteur de données biométriques.
- L'étape de calculer le second terme à partir desdites caractéristiques biométriques de l'utilisateur.
- L'étape de faire exécuter, par le dispositif physique de l'utilisateur, un calcul utilisant d'une part le contenu de la mémoire dans laquelle était stocké le résultat du précalcul et d'autre part le second terme - L'étape d'envoyer le résultat dudit calcul au serveur d'authentification.
- L'étape de faire analyser le résultat dudit calcul par le serveur d'authentification en vue de décider si l'utilisateur peut être authentifié.
Un cas particulier de l'invention peut se présenter sous forme d'un procédé d'authentification d'un utilisateur d'un
<Desc/Clms Page number 22>
dispositif physique, caractérisé en ce qu'il comprend les étapes suivantes - L'étape de faire envoyer, par un serveur d'authentification, au dispositif physique de l'utilisateur, une chaîne de bits représentant un élément d'un groupe.
- L'étape de faire effectuer par le dispositif physique de l'utilisateur, un précalcul consistant à élever ledit élément dudit groupe à une puissance déterminée à partir d'un premier terme stocké dans une mémoire liée à ce dispositif physique, cette exponentiation étant effectuée au sens de la loi de groupe dudit groupe.
- L 1 étape de stocker le résultat de ce précalcul dans une mémoire.
- L'étape, au moment de l'authentification de l'utilisateur, de faire entrer par ledit utilisateur une suite de symboles sur un dispositif de saisie.
- L'étape de calculer le second terme (p) déterminé à partir de ladite suite de symboles.
- L'étape de faire exécuter, par le dispositif physique de l'utilisateur, un calcul utilisant d'une part le contenu de la mémoire dans laquelle était stocké le résultat du précalcul et d'autre part le second terme - L'étape d'envoyer le résultat dudit calcul au serveur d'authentification.
- L'étape de faire analyser le résultat dudit calcul par le serveur d'authentification en vue de décider si l'utilisateur peut être authentifié.
La réalisation pratique de l'invention se fait à l'aide d'un dispositif d'authentification d'un utilisateur d'un dispositif physique, caractérisé en ce qu'il comprend les éléments suivants - Une mémoire permettant de stocker un nombre appelé secret hardware en vue d'authentification.
<Desc/Clms Page number 23>
- Un dispositif de communication permettant de recueillir une chaîne de bits envoyée par un serveur central d'authentification et représentant un élément d'un groupe.
- Un processeur permettant d'effectuer un précalcul consistant à élever cet élément à une puissance dont l'exposant est déterminé à partir dudit secret hardware, contenu dans ladite mémoire, l'exponentiation étant réalisée selon la loi du groupe.
- Une mémoire permettant de stocker le résultat du précalcul précédent.
- Un dispositif permettant de recueillir des informations permettant de déterminer nombre qui sera le secret physique client.
- Un processeur permettant de calculer le résultat final d'une exponentiation dans ledit groupe en utilisant d'une part contenu de la mémoire où est stocké le résultat du précalcul et d'autre part le secret physique client.
La réalisation pratique de notre invention peut se faire à l'aide d'un dispositif d'authentification d'un utilisateur d'un dispositif physique, caractérisé en ce qu'il comprend les éléments suivants - Une mémoire permettant de stocker un nombre appelé secret hardware en vue d'authentification.
- Un dispositif de communication permettant de recueillir une chaîne de bits envoyée par un serveur central d'authentification et représentant un élément d'un groupe.
- Un processeur permettant d'effectuer un précalcul consistant à élever cet élément à une puissance dont l'exposant est déterminé à partir dudit secret hardware, contenu dans ladite mémoire, l'exponentiation étant réalisée selon la loi du groupe.
- Une mémoire permettant de stocker le résultat du précalcul précédent.
- Un dispositif permettant de recueillir, à partir des caractéristiques biométriques d'un utilisateur, des informations
<Desc/Clms Page number 24>
permettant de déterminer nombre qui sera le secret physique client.
- Un processeur permettant de calculer le résultat final d'une exponentiation dans ledit groupe en utilisant d'une part contenu de la mémoire où est stocké le résultat du précalcul et d'autre part le secret physique client.
La réalisation pratique de l'invention peut se faire à l'aide d'un dispositif d'authentification d'un utilisateur d'un dispositif physique 1 caractérisé en ce qu'il comprend les éléments suivants - Une mémoire permettant de stocker un nombre appelé secret hardware en vue d'authentification.
- Un dispositif de communication permettant de recueillir une chaîne de bits envoyée par un serveur central d'authentification et représentant un élément d'un groupe.
- Un processeur permettant d'effectuer un précalcul consistant à élever cet élément à une puissance dont l'exposant est déterminé à partir dudit secret hardware, contenu dans ladite mémoire, l'exponentiation étant réalisée selon la loi du groupe.
- Une mémoire permettant de stocker le résultat du précalcul précédent.
- Un dispositif de saisie permettant de recueillir, une suite de symboles entrés par un utilisateur qui permettront ensuite de déterminer nombre qui sera le secret physique client.
- Un processeur permettant de calculer le résultat final d'une exponentiation dans ledit groupe en utilisant d'une part contenu de la mémoire où est stocké le résultat du précalcul et d'autre part le secret physique client.
Pour mieux faire comprendre l'invention, on va en décrire maintenant, à titre d'exemple purement illustratif et non limitatif, plusieurs modes de réalisation.
Sur le dessin :
La figure 1 représente le dispositif d'authentification dans le cas où celle-ci se fait à partir de
<Desc/Clms Page number 25>
données biométriques de l'utilisateur à authentifier. (A) représente le serveur d'authentification et (U) le dispositif physique de l'utilisateur. Ce dispositif physique (U) contient un élément (N) chargé des communications avec le serveur d'authentification (A), un processeur (K) chargé d'effectuer les calculs, une mémoire (H) destinée à contenir le secret hardware et une mémoire (R) destinée à stocker les résultats du précalcul. Il est connecté à un dispositif (B) de lecture de données biométriques de l'utilisateur.
La figure 2 représente le dispositif d'authentification dans le cas où celle-ci se fait à partir de la saisie d'un code PIN ou plus généralement d'une suite de symboles entrés par l'utilisateur à authentifier. (A) représente le serveur d'authentification et (U) le dispositif physique de l'utilisateur. Ce dispositif physique (U) contient un élément (N) chargé des communications avec le serveur d'authentification (A), un processeur (K) chargé d'effectuer les calculs, une mémoire (H) destinée à contenir le secret hardware et une mémoire (R) destinée à stocker les résultats du précalcul. Il est connecté à un dispositif (C) de saisie du code PIN ou de la suite de symboles entrés par l'utilisateur.
Dans le mode de réalisation proposé, le serveur d'authentification (A) envoie d'avance un défi au poste client (U), par exemple au moment de la mise sous tension de son terminal, ou à intervalles réguliers selon une périodicité à convenir. Le poste client effectue le précalcul en tâche de fond au moment où il est inoccupé (cela peut prendre plusieurs secondes ou même plusieurs dizaines de secondes selon le nombre de bits utilisé et la puissance du poste client).
Seule la phase finale du calcul de x puissance s nécessite une intervention du client à authentifier (personne physique), que ce soit par la frappe d'un code PIN ou d'un mot de passe, ou, plus généralement, de la prise en compte de caractéristiques biométriques (empreinte vocale, empreinte digitale, fond d'oeil). L'intervention du client à pour effet de
<Desc/Clms Page number 26>
fournir au poste client la valeur du secret physique client .
La phase finale du calcul d'exponentiation est quasi instantanée (compte non tenu du temps de traitement des caractéristiques biométriques), et l'authentification est alors immédiate.
L'authentification peut être demandée par exemple au moment où l'utilisateur souhaite faire une transaction financière ou accéder à des données confidentielles. Selon le niveau de sécurité souhaité, on peut imaginer qu'à chaque accès ou transaction de ce type on exigera une nouvelle authentification. Cela implique qu'immédiatement après la précédente authentification, le serveur enverra un nouveau défi. Le poste client effectuera alors le précalcul en tâche de fond de façon et sera ainsi prêt pour la prochaine authentification.
Plusieurs modes de réalisation sont possibles en pratique. Nous en décrirons deux, à titre d'exemple purement illustratif et non limitatif. Dans les deux implémentations, on calcule x^ s (c'est-à-dire x puissance s dans le groupe G utilisé pour le défi/réponse).
Le secret s du client se compose, dans les deux modes de réalisation, de deux parties qui sont, l'une, le secret hardware h inclus dans le matériel du client, et l'autre, le secret physique client p lié au client et à ses caractéristiques biométriques. Notons qu'une information comme le code PIN, contenue dans la mémoire biologique du client n'est qu'un cas particulier de caractéristique biométrique.
Dans un premier mode de réalisation, qu'on appellera mode A , le secret s du client s'obtient tout simplement en multipliant le secret matériel h par le secret p du client.
Cette multiplication peut être une simple multiplication de nombres entiers ou peut être faite en arithmétique modulaire modulo o (x) (ou modulo o (g) si x peut s'écrire sous la forme g^ a pour une base g convenablement choisie).
Le précalcul consiste à calculer r = x puissance h
Figure img00260001

1 dans le groupe G. Au moment où on dispose du secret p, on calcule r puissance p. Comme p est un petit nombre (par
<Desc/Clms Page number 27>
exemple un code PIN), ce calcul est extrêmement rapide en regard d'un calcul d'exponentiation avec un exposant de plusieurs centaines de bits.
Dans ce mode A, l'algorithme d'exponentiation décrit précédemment est réinitialisé. La nouvelle base est maintenant r et le nouvel exposant p. La variable d est réinitialisée à e (élément neutre du groupe G)
Dans un second mode de réalisation, qu'on appellera mode B , le secret s du client s est la concaténée bit à bit du secret matériel h et du secret client p (les bits de h étant aux poids forts).
On utilise l'algorithme d'exponentiation détaillé plus haut, et on l'arrête provisoirement dès qu'on aura épuisé tous les bits de h. La valeur intermédiaire de d est alors provisoirement stockée dans le dispositif physique
Figure img00270001

d'authentification de l'utilisateur. Une fois connu le secret physique client p, l'algorithme est repris (avec la valeur intermédiaire de d telle qu'elle avait provisoirement stockée), sans aucune modification de la base, et en utilisant, bit à bit, les bits de p jusqu'au calcul complet du résultat x-os.
Dans le mode B, l'algorithme d'exponentiation décrit précédemment n'est pas réinitialisé. La base reste toujours la base x, telle qu'elle était au moment du précalcul. La variable d reprend la valeur qu'elle avait à la fin du précalcul. Mais ce sont les bits du secret client p qui servent maintenant à décider, à chaque itération de la boucle, si la multiplication par la base doit avoir lieu ou non.
Pour estimer le gain en temps de calcul, prenons l'exemple d'un code PIN en 4 ou 6 chiffres (représentable sur 13 ou 20 bits), en comparaison avec un secret s à 512 bits. Quelle que soit le mode de réalisation choisi, mode A ou mode B, le précalcul préalable permet de gagner un facteur 25 à 40 sur le temps de calcul après frappe du code PIN.
<Desc/Clms Page number 28>
Cela permet de passer de plusieurs dizaines de secondes (inacceptable en pratique) à un temps bien inférieur à la seconde (quasi imperceptible pour le client).
Comme l'algorithme utilisé pour l'exponentiation consomme séquentiellement les bits de l'exposant, dans le cas où le secret client est un code PIN, on peut traiter les bits de ce code PIN à la volée, au fur et à mesure qu 1 ils sont frappés au clavier. (On remplacerait par exemple alors chaque chiffre du code PIN par un code à 4 bits). Le calcul est fait en simultané au fur et à mesure que les chiffres du code PIN sont frappés.
Les temps de réponse sont alors encore meilleurs. Le temps de calcul après la frappe du dernier bit est alors, (dans l'hypothèse de secrets à 512 bits), 128 fois plus bref qu'en l'absence de précalcul.
Parmi les variantes de l'invention, on peut citer ici le fait que la mémoire H (figures 1 et 2), destinée à contenir le secret Hardware, peut être réalisée sous la forme d'une carte à mémoire ou"carte à puce" liée à un lecteur correspondant.
On peut également mentionner que le processeur K (figures 1 et 2) peut être formé de deux processeurs distincts, l'un effectuant le précalcul et l'autre, le calcul final d'exponentiation.

Claims (10)

REVENDICATIONS
1. Procédé pour le calcul de l'exponentiation dans un groupe (G) en vue d'authentifier un utilisateur d'un dispositif physique (U), caractérisé en ce qu'il comprend les étapes suivantes : l'étape de décomposer l'exposant (s) dudit calcul d'exponentiation en deux termes (h) et (p) de façon à ce que la connaissance des deux termes soit nécessaire pour retrouver cet exposant (s), - l'étape de stocker le premier terme (h) dans une mémoire (H) du dispositif physique (U), - l'étape d'effectuer un précalcul consistant à élever un élément du groupe (G) à une puissance déterminée par le premier terme (h), cette exponentiation étant effectuée au sens de la loi de groupe du groupe (G), - l'étape de stocker le résultat dudit précalcul dans une mémoire (R), et - l'étape de calculer le résultat final de l'exponentiation en utilisant le résultat stocké dans la mémoire (R) et un nombre déterminé à partir du second terme (p).
2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend les étapes suivantes : - l'étape de décomposer l'exposant (s) dudit calcul d'exponentiation en deux termes (h) et (p) de façon à ce que la connaissance des deux termes soit nécessaire pour retrouver cet exposant (s),
Figure img00290001
- l'étape de stocker le premier terme (h) dans une mémoire (H) du dispositif physique (U), - l'étape de lier le second terme (p) à certaines caractéristiques biométriques d'un utilisateur du dispositif physique (U), - l'étape d'effectuer un précalcul consistant à élever un élément du groupe (G) à une puissance déterminée par le premier terme (h), cette exponentiation étant effectuée au sens de la loi de groupe du groupe (G),
<Desc/Clms Page number 30>
l'étape de stocker le résultat dudit précalcul dans une mémoire (R), l'étape de saisir lesdites caractéristiques biométriques dudit utilisateur, à l'aide d'un lecteur de caractéristiques biométriques (B), cette étape étant réalisée postérieurement aux étapes précédentes, - l'étape de calculer le second terme (p) à partir de données issues desdites caractéristiques biométriques, - l'étape de calculer le résultat final de l'exponentiation en utilisant le résultat stocké dans la mémoire (R) et un nombre déterminé à partir du second terme (p).
3. Procédé selon la revendication 1 ou 2, caractérisé en ce qu'il comprend les étapes suivantes : - l'étape de décomposer l'exposant (s) dudit calcul d'exponentiation en deux termes (h) et (p) de façon à ce que la connaissance des deux termes soit nécessaire pour retrouver cet exposant (s), - l'étape de stocker le premier terme (h) dans une mémoire (H) du dispositif physique (U), l'étape de lier le second terme (p) à une suite de symboles communiquée à l'utilisateur, l'étape d'effectuer un précalcul consistant à élever un élément du groupe (G) à une puissance déterminée par le premier terme (h), cette exponentiation étant effectuée au sens de la loi de groupe du groupe (G), - l'étape de stocker le résultat dudit précalcul dans une mémoire (R), - l'étape de calculer le second terme (p) à partir d'une suite de symboles entrée par l'utilisateur sur un dispositif de saisie, la frappe de cette suite étant réalisée postérieurement aux étapes précédentes, - l'étape de calculer le résultat final de l'exponentiation en utilisant le résultat stocké dans la mémoire (R) et un nombre déterminé à partir du second terme (p).
<Desc/Clms Page number 31>
4. Procédé selon la revendication 1, 2 ou 3, caractérisé en ce qu'il comprend les étapes suivantes : - l'étape de décomposer l'exposant (s) dudit calcul d'exponentiation en deux termes (h) et (p) de façon à ce que la connaissance des deux termes soit nécessaire pour retrouver cet exposant (s), l'étape de lier le second terme (p) à une suite de symboles choisie par l'utilisateur, l'étape de calculer le premier terme (h) à partir du second terme (p) et de l'exposant (s),
Figure img00310001
-l'étape de stocker le premier terme (h) dans une mémoire (H) du dispositif physique (U), - l'étape d'effectuer un précalcul consistant à élever un élément du groupe (G) à une puissance déterminée par le premier terme (h), cette exponentiation étant effectuée au sens de la loi de groupe du groupe (G), - l'étape de stocker le résultat dudit précalcul dans une mémoire (R), l'étape de calculer le second terme (p) à partir d'une suite de symboles entrée par l'utilisateur sur un dispositif de saisie, la frappe de cette suite étant réalisée postérieurement aux étapes précédentes.
- l'étape de calculer le résultat final de l'exponentiation en utilisant le résultat stocké dans la mémoire (R) et un nombre déterminé à partir du second terme (p).
5. Procédé selon l'une des revendications 1 à 4, caractérisé en ce que, pour l'authentification d'un utilisateur d'un dispositif physique (U), il comprend les étapes suivantes : - l'étape de faire envoyer, par un serveur d'authentification (A), au dispositif physique (U) de l'utilisateur, une chaîne de bits représentant un élément (x) d'un groupe (G), - l'étape de faire effectuer par le dispositif physique (U) de l'utilisateur, un précalcul consistant à élever l'élément (x) du groupe (G) à une puissance déterminée à partir
<Desc/Clms Page number 32>
d'un premier terme (h) stocké dans une mémoire (H) liée à ce dispositif physique, cette exponentiation étant effectuée au sens de la loi de groupe du groupe (G) - l'étape de stocker le résultat de ce précalcul dans une mémoire (R), - l'étape, au moment où il est nécessaire d'authentifier un utilisateur, de déterminer le second terme (p), - l'étape de faire exécuter, par le dispositif physique de l'utilisateur, un calcul utilisant d'une part le contenu de la mémoire (R) et d'autre part le second terme (p), - l'étape d'envoyer le résultat dudit calcul au serveur d'authentification (A), - l'étape de faire analyser le résultat dudit calcul par le serveur d'authentification (A) en vue de décider si l'utilisateur peut être authentifié.
6. Procédé selon les revendications 2 et 5, caractérisé en ce qu'il comprend les étapes suivantes : - l'étape de faire envoyer, par un serveur d'authentification (A), au dispositif physique (U) de l'utilisateur, une chaîne de bits représentant un élément (x) d'un groupe (G), - l'étape de faire effectuer par le dispositif physique (U) de l'utilisateur, un précalcul consistant à élever l'élément (x) du groupe (G) à une puissance déterminée à partir d'un premier terme (h) stocké dans une mémoire (H) liée à ce dispositif physique, cette exponentiation étant effectuée au sens de la loi de groupe du groupe (G), - l'étape de stocker le résultat de ce précalcul dans une mémoire (R), - l'étape, au moment de l'authentification de l'utilisateur, de mesurer certaines caractéristiques biométriques de l'utilisateur à authentifier à l'aide d'un lecteur de données biométriques (B),
<Desc/Clms Page number 33>
l'étape de calculer le second terme (p) déterminé à partir desdites caractéristiques biométriques de l'utilisateur, - l'étape de faire exécuter, par le dispositif physique de l'utilisateur, un calcul utilisant d'une part le contenu de la mémoire (R) et d'autre part le second terme (p), - l'étape d'envoyer le résultat dudit calcul au serveur d'authentification (A), - l'étape de faire analyser le résultat dudit calcul par le serveur d'authentification (A) en vue de décider si l'utilisateur peut être authentifié.
7. Procédé selon la revendication 5, caractérisé en ce qu'il comprend les étapes suivantes : - l'étape de faire envoyer, par un serveur d'authentification (A), au dispositif physique (U) de l'utilisateur, une chaîne de bits représentant un élément (x) d'un groupe (G), -l'étape de faire effectuer par le dispositif physique (U) de l'utilisateur, un précalcul consistant à élever l'élément (x) du groupe (G) à une puissance déterminée à partir d'un premier terme (h) stocké dans une mémoire (H) liée à ce dispositif physique, cette exponentiation étant effectuée au sens de la loi de groupe du groupe (G), - l'étape de stocker le résultat de ce précalcul dans une mémoire (R), - l'étape, au moment de l'authentification de l'utilisateur, de faire entrer par ledit utilisateur une suite de symboles sur un dispositif de saisie (C), - l'étape de calculer le second terme (p) déterminé à partir de ladite suite de symboles, l'étape de faire exécuter, par le dispositif physique de l'utilisateur, un calcul utilisant d'une part le contenu de la mémoire (R) et d'autre part le second terme (p), - l'étape d'envoyer le résultat dudit calcul au serveur d'authentification (A),
<Desc/Clms Page number 34>
un dispositif permettant de recueillir un nombre (p), un processeur permettant de calculer le résultat final d'une exponentiation dans le groupe (G) en utilisant le contenu de la mémoire (R) et le nombre (p).
Figure img00340001
8. Dispositif pour la mise en oeuvre du procédé selon les revendications 1 et 5, caractérisé en ce qu'il comprend les éléments suivants : une mémoire (H) permettant de stocker un nombre (h) appelé secret hardware en vue d'authentification, un dispositif de communication (N) permettant de recueillir une chaîne de bits envoyée par un serveur central d'authentification (A) et représentant un élément (x) d'un groupe (G), un processeur (K) permettant d'élever cet élément (x) à une puissance dont l'exposant est déterminé à partir du nombre (h), contenu dans la mémoire (H), l'exponentiation étant effectuée selon la loi du groupe (G), une mémoire (R) permettant de stocker le résultat de l'exponentiation précédente,
l'étape de faire analyser le résultat dudit calcul par le serveur d'authentification (A) en vue de décider si l'utilisateur peut être authentifié,
9. Dispositif selon la revendication 8, caractérisé en ce qu'il comprend les éléments suivants : une'mémoire (H) permettant de stocker un nombre (h) appelé secret hardware en vue d'authentification, un dispositif de communication (N) permettant de recueillir une chaîne de bits envoyée par un serveur central d'authentification (A) et représentant un élément (x) d'un groupe (G), un processeur (K) permettant d'élever cet élément (x) à une puissance dont l'exposant est déterminé à partir du nombre (h), contenu dans la mémoire (H), l'exponentiation étant effectuée selon la loi du groupe (G),
<Desc/Clms Page number 35>
une mémoire (R) permettant de stocker le résultat de l'exponentiation précédente, un dispositif (B) permettant de recueillir un nombre (p) déterminé à partir de caractéristiques biométriques d'un utilisateur, un processeur permettant de calculer le résultat final d'une exponentiation dans le groupe (G) en utilisant le contenu de la mémoire (R) et le nombre (p).
10. Dispositif selon la revendication 8 ou 9, caractérisé en ce qu'il comprend les éléments suivants : une mémoire (H) permettant de stocker un nombre (h) appelé secret hardware en vue d'authentification, un dispositif de communication (N) permettant de recueillir une chaîne de bits envoyée par un serveur central d'authentification (A) et représentant un élément (x) d'un groupe (G), un processeur (K) permettant d'élever cet élément (x) à une puissance dont l'exposant est déterminé à partir du nombre (h), contenu dans la mémoire (H), l'exponentiation étant effectuée selon la loi du groupe (G), une mémoire (R) permettant de stocker le résultat de l'exponentiation précédente, un dispositif de saisie (C) permettant de recueillir une suite de symboles entrés par un utilisateur et d'en déduire un nombre (p), un-processeur permettant de calculer le résultat final d'une exponentiation dans le groupe (G) en utilisant le contenu de la mémoire (R) et le nombre (p).
FR0111775A 2001-09-12 2001-09-12 Procede pour le calcul d'une exponentiation dans un groupe et son application a l'authentification d'un utilisateur Pending FR2829597A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0111775A FR2829597A1 (fr) 2001-09-12 2001-09-12 Procede pour le calcul d'une exponentiation dans un groupe et son application a l'authentification d'un utilisateur
PCT/FR2002/003104 WO2003023606A1 (fr) 2001-09-12 2002-09-12 Procede pour le calcul d'une exponentiation dans un groupe et son application a l'authentification d'un utilisateur

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0111775A FR2829597A1 (fr) 2001-09-12 2001-09-12 Procede pour le calcul d'une exponentiation dans un groupe et son application a l'authentification d'un utilisateur

Publications (1)

Publication Number Publication Date
FR2829597A1 true FR2829597A1 (fr) 2003-03-14

Family

ID=8867197

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0111775A Pending FR2829597A1 (fr) 2001-09-12 2001-09-12 Procede pour le calcul d'une exponentiation dans un groupe et son application a l'authentification d'un utilisateur

Country Status (2)

Country Link
FR (1) FR2829597A1 (fr)
WO (1) WO2003023606A1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2730076A1 (fr) * 1995-01-31 1996-08-02 Sorep Sa Procede d'authentification par un serveur du porteur d'un objet portatif a microprocesseur, serveur et objet portatif correspondants
FR2739737A1 (fr) * 1995-10-09 1997-04-11 Inside Technologies Perfectionnements aux cartes a memoire
FR2780797A1 (fr) * 1998-07-03 2000-01-07 Gerard Bonnet Dispositif et procede d'authentification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2730076A1 (fr) * 1995-01-31 1996-08-02 Sorep Sa Procede d'authentification par un serveur du porteur d'un objet portatif a microprocesseur, serveur et objet portatif correspondants
FR2739737A1 (fr) * 1995-10-09 1997-04-11 Inside Technologies Perfectionnements aux cartes a memoire
FR2780797A1 (fr) * 1998-07-03 2000-01-07 Gerard Bonnet Dispositif et procede d'authentification

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CLAVIER C ET AL: "Universal exponentiation algorithm a first step towards provable SPA-resistance", CRYPTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS. 3RD INTERNATIONAL WORKSHOP, CHES 2001, PARIS, FRANCCE, MAY 14 - 16, 2001 PROCEEDINGS, LECTURE NOTES IN COMPUTER SCIENCE, BERLIN: SPRINGER, DE, vol. 2162, 2001, pages 300 - 308, XP002196751, ISBN: 3-540-42521-7 *

Also Published As

Publication number Publication date
WO2003023606A1 (fr) 2003-03-20

Similar Documents

Publication Publication Date Title
EP1368930B1 (fr) Authentification cryptographique par modules ephemeres
FR2713419A1 (fr) Procédé de génération de signatures DSA avec des appareils portables à bas coûts.
FR2760583A1 (fr) Systeme de verification de cartes de donnees
EP1807967B1 (fr) Procede de delegation securisee de calcul d&#39;une application bilineaire
FR2733379A1 (fr) Procede de generation de signatures electroniques, notamment pour cartes a puces
FR2759226A1 (fr) Protocole de verification d&#39;une signature numerique
CA2816933C (fr) Protection contre les ecoutes passives
WO2001080481A1 (fr) Procede de cryptographie sur courbes elliptiques
EP1166496A1 (fr) Procede d&#39;authentification et de signature de message utilisant des engagements de taille reduite et systemes correspondants
WO2007006810A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d&#39;une exponentiation et composant associe
WO2011144554A1 (fr) Procédé d&#39;obtention de clés de chiffrement, terminal, serveur, et produits programmes d&#39;ordinateurs corresupondants.
EP0909495B1 (fr) Procede de cryptographie a cle publique
CN110060055A (zh) 一种区块链中的数字资产托管方法、装置和电子设备
CA2451034C (fr) Procede cryptographique pour la protection d&#39;une puce electronique contre la fraude
EP1829279A2 (fr) Procede et dispositif d&#39;execution d&#39;un calcul cryptographique
CA2613884C (fr) Procede pour disposer d&#39;un lien de communication securise entre un utilisateur et une entite
EP1456998A1 (fr) Procede cryptographique permettant de repartir la charge entre plusieurs entites et dispositifs pour mettre en oeuvre ce procede
FR2829597A1 (fr) Procede pour le calcul d&#39;une exponentiation dans un groupe et son application a l&#39;authentification d&#39;un utilisateur
FR2842052A1 (fr) Procede et dispositifs cryptographiques permettant d&#39;alleger les calculs au cours de transactions
FR2734679A1 (fr) Procede de cryptographie a cle publique base sur le logarithme discret
FR3010562A1 (fr) Procede de traitement de donnees et dispositif associe
FR3100411A3 (fr) Procédé de cryptographie
FR3101182A3 (fr) Procédé de transmission chiffrée
FR3111037A1 (fr) Procédé de dérivation d’une signature partielle avec vérification partielle
FR2713420A1 (fr) Procédé de génération de signatures DSA avec des appareils portables à bas coûts.