Brevet FR2773406A1 — publié le 19990709

La présente invention concerne un procédé d'authentification de cartes à circuit intégré, telles que des cartes bancaires ou d'autorisation d'accès, par un organe vérificateur tel qu'un terminal informatique. On sait qu'un algorithme RSA (abréviation des noms de ses auteurs, RIVERST, SHAMIR, ADELMAN) est utilisé actuellement pour l'authentification de cartes à circuit intégré. Pour la mise en oeuvre de cet algorithme on utilise un exposant public E. Pour chaque carte, un module N est calculé en effectuant le produit de deux nombres premiers P et Q secrets et un exposant secret D est calculé de façon que D x E = 1 mod (P-l) (Q-l) - Ces valeurs sont ensuite mémorisées dans la carte concernée. Lorsque la carte à circuit intégré est connectée à l'organe vérificateur, le module N et l'exposant public E sont transmis par la carte à l'organe vérificateur tandis que les facteurs premiers P et Q ainsi que l'exposant D demeurent secrets. Pour authentifier la carte, l'organe vérificateur sélectionne aléatoirement une valeur-test R et la transmet à la carte. La carte calcule une preuve Pr = RD (mod N) et la transmet à l'organe vérificateur. L'organe vérificateur contrôle alors que R = PrE (mod N). Afin d'obtenir une sécurité suffisante avec cet algorithme, il est nécessaire d'utiliser un module N et un exposant secret D de grande dimension. La carte doit donc disposer d'un espace-mémoire important pour mémoriser ces valeurs. De plus, la carte doit effectuer de nombreux calculs de sorte que la carte emploie des moyens de calcul importants. On connaît par ailleurs du document US-A4,748,668 un algorithme dit de Fiat Shamir comprenant les étapes de - calculer un module N en faisant le produit de deux nombres premiers P et Q secrets, - déterminer de façon aléatoire k valeurs d'authentification V;, - implanter dans une mémoire de chaque carte k clés secrètes Si tel que Sl = Vu~1/2 (mod N), - déterminer aléatoirement dans la carte un nombre R et calculer X = R2 (mod N), et transmettre X à l'organe vérificateur, - déterminer aléatoirement dans l'organe vérificateur un nombre-test E composé de k bits e1 transmis à la carte, - calculer dans la carte Y = R NSlel (mod N) où ll désigne l'opération de produit modulaire des k facteurs S pour i variant de 1 à k, - contrôler dans l'organe vérificateur que X = y2 n Viel (mod N) pour i variant de 1 à k. Dans cet algorithme, les valeurs d'authentification varient d'une carte à une autre. Pour effectuer la vérification, l'organe vérificateur doit connaître les valeurs d'authentification propres à la carte. Les valeurs d'authentification peuvent être soit mémorisées dans l'organe vérificateur, ce qui est irréaliste si le nombre de cartes est important ; soit être transmises à l'organe vérificateur par chaque carte, ce qui suppose de stocker ces valeurs dans la carte avec la signature permettant de les valider. Ceci impose une charge de stockage pour la carte, augmente le nombre de messages à transmettre et la charge de travail pour l'organe vérificateur. En outre, dans cet algorithme, le module N est commun à toutes les cartes de sorte que si un fraudeur parvient à factoriser le nombre N en ses facteurs P et Q, le fraudeur pourra déterminer les clés secrètes Si de toutes les cartes du réseau à partir des valeurs d'authentification Vi qui sont accessibles. Le fraudeur pourra alors introduire ces clés dans des fausses cartes et utiliser celles-ci comme si elles bénéficiaient d'une identification authentique. Afin d'obtenir un degré de sécurité important, il est donc nécessaire de choisir un nombre N de grande dimension augmentant ainsi la difficulté de sa factorisation. Toutefois, ceci augmente la charge de calcul de la carte et l'espace-mémoire nécessaire. Selon l'invention, on propose un procédé d'authentification de cartes à circuit intégré par un organe vérificateur, mettant en oeuvre un algorithme analogue à l'algorithme de Fiat Shamir et dans lequel les valeurs d'authentification Vi sont communes à toutes les cartes et chaque carte contient un module Nj qui lui est propre, le procédé comprenant l'étape de transmettre le module N, à l'organe vérificateur préalablement au calcul de contrôle de X par l'organe vérificateur. Le module Nj étant propre à chaque carte, un fraudeur parvenant à factoriser le module Nj ne pourra utiliser que ce module et non pas forcer tout le système d'authentification. Pour déjouer la fraude, il suffira donc de mettre ce module hors service, les autres cartes du réseau pouvant être utilisées normalement. En conséquence, le module N, ne servant à la protection que d'une carte, il peut être de dimension réduite. Le procédé d'authentification est de la sorte applicable à des cartes disposant d'un espace-mémoire et de moyens de calcul limités. Avantageusement, le module N, est mémorisé dans la carte sous forme de ses facteurs premiers Pj et Qj. La carte disposant des deux facteurs premiers, les calculs sont simplifiés. L'espace-mémoire utilisé par la carte pour l'exécution des calculs peut alors être minimisé. Un mode de réalisation particulier non limitatif de l'invention va maintenant être décrit. Le procédé d'authentification selon l'invention comprend les étapes de déterminer de façon aléatoire k valeurs d'authentification Vlpubliques, et de mémoriser ces valeurs d'authentification V1 dans une mémoire de l'organe vérificateur. Le nombre k est par exemple compris entre 10 et 20, l'authentification étant d'autant plus sûre que k est élevé mais le temps de calcul étant augmenté de façon correspondante. L'organisme chargé de l'implantation des données dans la mémoire du circuit intégré des cartes détermine aléatoirement, pour chaque carte, deux facteurs premiers Pu et Q3. Pour certaines applications particulières, des contraintes pourront être instaurées pour la sélection des facteurs Pj et Qj. L'ordre de grandeur des facteurs Pj et Qj pourra notamment être déterminé en fonction du nombre de cartes mises en service, les facteurs premiers Pj et Qj ont par exemple un ordre de grandeur de 2300 pour un million de cartes mises en service. Le produit des facteurs premiers P3 et Qj est égal au module N, propre à chaque carte. Le module Nj est mémorisé dans la carte sous forme des facteurs Pj et Qj L'organisme d'implantation calcule ensuite k clés secrètes Si tels que Sl = Vl~lX2 (mod N) et les mémorise dans la carte. Une signature Tj contenant l'identification et le module Nj de la carte est mémorisée dans chaque carte. Lorsqu'une carte est utilisée, elle est connectée à l'organe vérificateur et transmet sa signature T3 à l'organe vérificateur. L'organe vérificateur contrôle la signature T3 et en extrait le module N,. Le protocole d'authentification débute alors. La carte détermine aléatoirement un nombre R et effectue le calcul de X = R2 (mod Nj). La carte transmet le nombre X à l'organe vérificateur. L'organe vérificateur détermine ensuite de façon aléatoire un nombre-test E composé de k bits ei et transmet les k bits e1 à la carte. La carte calcule alors Y = R IISiei (mod Nj) pour i variant de 1 à k et transmet le résultat Y à l'organe vérificateur. Ensuite, l'organe vérificateur contrôle que X = y2 n Vieil (mod Nj) pour i variant de 1 à k. Si X = Y, il est prouvé que la carte est bien en possession des k clés secrètes Sl. La carte est alors acceptée. Avant d'accepter la carte, on peut prévoir de renouveler le protocole d'authentification un certain nombre de fois afin d'augmenter la sûreté de l'authentification. Bien entendu l'invention n'est pas limitée au mode de réalisation décrit et on peut y apporter des variantes de réalisation sans sortir du cadre de l'invention tel que défini par les revendications. REVENDICATIONS 1. Procédé d'authentification de cartes à circuit intégré par un organe vérificateur, le procédé mettant en oeuvre un algorithme comprenant les étapes de - calculer un module N en faisant le produit de deux nombres premiers P et Q secrets, - déterminer de façon aléatoire k valeurs d'authentification Vi, - implanter dans une mémoire de chaque carte k clés secrètes Sl tel que Sl = V1-1/2 (mod N), - déterminer aléatoirement dans la carte un nombre R et calculer X = R2 (mod N), et transmettre X à l'organe vérificateur, - déterminer aléatoirement dans l'organe vérificateur un nombre-test E composé de k bits ei transmis à la carte - calculer dans la carte Y = R NSiel (mod N) pour i variant de 1 à k, - contrôler dans l'organe vérificateur que X = y2 fi Vlel (mod N) pour i variant de 1 à k, caractérisé en ce que les valeurs d'authentification Vi sont communes à toutes les cartes et en ce que chaque carte contient un module N3 qui lui est propre, le procédé comprenant l'étape de transmettre le module Nj à l'organe vérificateur préalablement au calcul de contrôle de X par l'organe vérificateur. 2. Procédé d'authentification selon la revendication 1, caractérisé en ce que le module Nj est mémorisé dans la carte sous forme de ses facteurs premiers P3 et Q.