FR 2814616 A1 20020329 FR 0101692 A 20010208 Domaine technique : La plupart des systèmes d'authentification utilisent maintenant des fonctions de chiffrement à clé asymétriques basés sur des couples clé publique/clé secrète tel que l'algorithme RSA (Rivest Shamir Adelman) ou Diffie Hellmann. Cependant, si ces fonctions de chiffrement asymétriques sont très pratiques à utiliser, ils ne sont pas très rapide au niveau temps de traitement : des fonctions symétriques tes que IDEA avec des clés de 128 bits sont beaucoup plus rapides. Enfin, il existe pour ces procédés d'authentification à clé asymétriques tels que RSA des attaques consistant en la décomposition de la clé publique en facteurs premiers. En l'état actuel de la technique des clés RSA de 570 bits environ ont été cassées et avec les progrès conjugués en matière de factorisation (algorithmes MPQS, courbes elliptiques, etc...) et vitesse des processeurs, cette limite progresse rapidement, de sorte qu'il existe des doutes sérieux sur l'utilisation de clés RSA de 2048 bits pour un horizon de 5 ans. Pour une taille de clés identiques, les procédés de chiffrement ou authentification symétriques offrent une sécurité bien supérieure par rapport aux procédés de chiffrement ou authentification asymétrique : on estime qu'une clé symétrique IDEA 128 bits est équivalente à une clé RSA de 2048 bits. De plus, la technologie actuelle ne permet pas d'utiliser des clés énormes. Les cartes à puce supportant le RSA ont généralement des tailles de clé de 1024 bits seulement actuellement, le maximum sur une carte à microprocesseur actuellement connu est de 2048 bits. Quant aux protocoles à apport nul de connaissance, ils sont quand même sensibles à une attaque consistant à décomposer la clé publique en facteurs premiers. De sorte que revenir à des procédés de chiffrement et authentification symétrique peut offrir une sécurité renforcée pour des performances améliorées. La difficulté consiste à trouver un protocole d'authentification dont les caractéristiques permettent d'offrir les fonctionnalités désirées. Concernant les attaques possibles, pour un porte monnaie électronique avec clé RSA, il peut être attaqué soit par factorisation de la clé publique, soit en perçant le secret de la carte à puce par espionnage du comportement électronique du composant. Une fois le secret découvert, il est possible de faire un clonage de carte à microprocesseur par exemple simulant le comportement de la carte à microprocesseur originale en programmant un microprocesseur PIC (Programmable Integrated Circuit) muni d'une EEPROM sur une Wafercard. Le clonage revient à casser tout le système en matière de porte-monnaie électronique décentralisé (permettant les échanges sans passer par l'intermédiaire d'un serveur centralisé) puisqu'il n'y a pas de connexion avec un central par définition, il ne peut y avoir raisonnablement de gestion de liste noire. Le procédé d'authentification est applicable dans le cas proposé utilisant les propriétés de la fonction exponentielle dans un anneau de nombres entiers modulo un nombre N fixé. En effet, il est difficile d'inverser la fonction exponentielle dans un anneau de nombres entiers modulo un nombre N fixé. C'est à dire que connaissant A et ALIB mod N (A élevé à la puissance B modulo N), il est très difficile de retrouver B. La fonction inverse de l'exponentielle s'appelle le logarithme discret et il n'existe pas à l'heure actuelle de méthode ou d'algorithme pour la calculer dans un temps raisonnable même avec une grande puissance de calcul lorsque le nombre N choisi est suffisamment grand. Le système proposé ne subit donc que les attaques par violation du secret de la puce ou par inversion du logarithme discret. Il est possible de mettre en oeuvre ce procédé d'authentification avec la technologie existante des cartes à microprocesseurs basées sur la technologie RSA car leur jeu d'instructions permet de faire des opérations sur des grands nombres modulo P, même si P est un nombre premier et non pas un produit de 2 nombres premiers (dans le cas RSA, N est un produit d'au moins 2 nombres premiers différents) et dans notre cas, N peut être un nombre premier. Enfin si l'échange de 4 messages pour une authentification serait vraiment pénible pour le chiffrement ou authentification de message électronique par exemple (du fait du nombre de messages), cela ne présente pas d'inconvénient pour des échanges automatisés sans intervention manuelle entre composants électroniques présents tous les 2 chez un commerçant, ou même connectés entre eux en ligne pour une transaction à distance sur Internet par exemple. Exposé de l'invention : Procédé d'identification d'un support appelé"le vérifié"dit A, par un autre support appelé"le vérificateur"dit B, ces supports étant équipés de moyens de calcul et de mémorisation appropriés, le vérifié et le vérificateur possédant en commun : un nombre entier public N, premier ou non un nombre entier S secret inférieur à N un nombre entier phiN égal au résultat de l'indicatrice d'Euler de N un nombre entier E secret inférieur à N premier avec PhiN Ces moyens de calculs, de mémorisation et d'échange de données sont utilisés pour les différentes étapes successives suivantes : Etape 1. le vérifié A tire au hasard un nombre Al tel que Al soit premier avec PhiN (le plus grand commun diviseur de Al et PhiN est 1) le vérifié A choisit un message Ml composé de S A envoie a B le nombre Ml^ (A1*E) modulo N =M2 Etape 2. B reçoit M2 Le vérificateur B génère un nombre aléatoire B 1 tel que B 1 soit premier avec PhiN (le plus grand commun diviseur de B 1 et PhiN est 1) B envoie à A le nombre M2^ (BI) modulo N= M3 Etape 3. A reçoit M3 A calcule l'inverse A 1 prime de Al tel que Al prime* Al = 1 modulo PhiN Cela se calcule facilement à l'aide de l'algorithme d'Euclide étendu par divisions euclidiennes successives A envoie à B M3Alprime modulo N = M4 Etape 4. B calcule l'inverse Bu prime de B1*E tel que Blprime* (Bl*E) = 1 modulo PhiN B calcule M4^Blprime modulo N =M5 Comme M5=M1 d'après les propriétés de la fonction exponentielle, si M5 est composé de S alors B a vérifié que A connaît le secret S et donc a authentifié A. Donc B est authentifié de façon sûre comme homologue de A car détenant les secrets S et E A aucun moment, les secrets S ou E n'ont pourtant été échangés L'identification dynamique de supports tels qu'exposé précédemment est intéressante par la sécurité apportée par l'alliance de procédés cryptographiques et de systèmes électroniquement sûrs tels que des cartes à microprocesseurs. Pour autant, l'identification n'est pas suffisante et ces supports doivent pouvoir également authentifier des messages échangés, c'est à dire s'assurer que l'intégrité des messages n'est pas altérée par un système intrus. Pour cela, le contenu du message doit être inclus dans le message échangé et un numéro identifiant unique du support doit être inséré pour éviter qu'un autre support produise ce contenu L'unicité du support identifiant peut être garantie à la fabrication centralisée du support électronique avec un numéro de série unique. Une autre variante peut être décrite par le procédé précédents caractérisé en ce que le message Ml est composé, outre le secret S, d'un identifiant unique IA du support du vérifié, d'un message T Indication de la manière dont l'invention est susceptible d'application industrielle : L'invention consiste à effectuer de l'authentification croisée de 2 systèmes homologues (détenant un secret partagé) électroniquement sûr à l'aide de fonction de chiffrement symétrique difficilement inversible. L'invention peut s'appliquer à des cas de composants électroniques ou informatiques permettant de garder un secret telle que la carte à microprocesseur, carte à puce, carte a micro-circuit, coupleur USB (Universal Serial Bus). Elle peut avoir une application monétique dans le domaine du porte-monnaie électronique. Elle peut s'appliquer aussi à des systèmes d'authentification ou d'identification (accès sécurisés...) L'invention peut être utilisée pour une authentification mutuelle de 2 composants sécurisés tel que l'identification de chacun des systèmes électroniquement sûr soit authentifié par un dialogue comportant 2 messages envoyés et de 1 réponse Pour que l'identification soit croisée, le même procédé est utilisé pour l'autre système puisque les composants sont homologues, mais les échanges de messages sont faits dans l'autre sens (au lieu que ce soit le composant A qui commence à envoyer les messages, c'est le composant B) L'invention est particulièrement adaptée pour les identifications croisées de cartes à microprocesseurs dotées de secrets partagés Les échanges de données entre les 2 cartes à microprocesseurs peuvent être réalisés par l'intermédiaire d'un boîtier lecteur de carte à mémoire disposant d'une interface d'échange de données avec un autre boîtier homologue REVENDICATIONS 1) Procédé d'identification d'un moyen appelé"le vérifié"dit A, par un moyen appelé"le vérificateur" dit B, caractérisé en ce que ces moyens sont équipés de moyens de calcul, de mémorisation et d'échange de données appropriés, le vérifié et le vérificateur possédant en commun : un nombre entier public N, premier ou non un nombre entier S secret inférieur à N un nombre entier phiN égal au résultat de l'indicatrice d'Euler de N un nombre entier E secret inférieur à N premier avec PhiN, procédé dans lequel le vérifié et le vérificateur mettent en oeuvre leurs moyens de calcul, de mémorisation et d'échange de données pour effectuer les opérations successives des différentes étapes suivantes : Etape 1. le vérifié A tire au hasard un nombre Al tel que Al soit premier avec PhiN (le plus grand commun diviseur de Al et PhiN est 1) le vérifié A choisit un message MI composé de S A envoie a B le nombre Ml (Al *E) modulo N =M2 Etape 2. B reçoit M2. Le vérificateur B génère un nombre aléatoire B 1 tel que BI soit premier avec PhiN (le plus grand commun diviseur de Blet PhiN est 1) B envoie à A le nombre M2^ (B 1) modulo N= M3 Etape 3. A reçoit M3. A calcule l'inverse Alprime de Al tel que Alprime* Al = 1 modulo PhiN Cela se calcule facilement à l'aide de l'algorithme d'Euclide étendu par divisions euclidiennes successives A envoie à B M3#Alprime modulo N = M4 Etape 4. B calcule l'inverse B1prime de B1*E tel que B1prime* (Bl*E) = 1 modulo PhiN B calcule M4^B 1 prime modulo N = M5 Comme M5=MI d'après les propriétés de la fonction exponentielle, si M5 est composé de S alors B a vérifié que A connaît le secret S et donc a authentifié A. 2) Procédé selon la revendication 1 pour lequel l'un des moyens est une carte à microprocesseur