Brevet FR2755267A1 — publié le 19980430

La présente invention concerne un procédé de sécurisation d'un procédé d'authentification utilisant un algorithme à clé secrète. On connaît des procédés d'authentification utilisant un algorithme à clé secrète afin de contrôler l'accès à un terminal, à une zone de mémoire ou encore à une machine. Par exemple dans le cas d'un accès à un terminal au moyen d'une carte à circuit intégré, le procédé d'authentification comporte les étapes de faire émettre par le terminal un nombre aléatoire, soumettre ce nombre aléatoire à un algorithme à clé secrète contenu dans la mémoire du circuit intégré et non accessible de l'extérieur en lecture ou en écriture, et transmettre le résultat calculé obtenu au terminal. Parallèlement le terminal dispose d'un résultat d'authentification obtenu soit par un calcul analogue dans un module de sécurité présent dans le terminal soit par une liaison avec un organisme central effectuant un calcul analogue ou disposant d'une table de correspondance entre le nombre aléatoire émis et le résultat d'authentification qui doit être obtenu. Le résultat calculé dans la carte et le résultat d'authentifi- cation sont alors comparés et l'accès n'est autorisé que si le résultat calculé et le résultat d'authentification sont identiques. Pour pouvoir détourner le procédé d'authentifi- cation, il est nécessaire pour un fraudeur de découvrir la clé secrète qui est mémorisée de façon inaccessible dans la carte, l'algorithme étant généralement lui-même d'un type connu. L'accès physique à la clé secrète est rendu prati- quement impossible par les techniques de protection existantes et, faute de pouvoir accéder directement à la clé secrète, les fraudeurs disposant de moyens informati- ques puissants ont mis au point des algorithmes de recons- titution d'une clé secrète à partir de fautes de calculs de l'algorithme à clé secrète, les fautes de calculs pouvant être provoquées en soumettant une zone de mémoire contenant l'algorithme à clé secrète ou une zone mémoire de travail du microprocesseur à des contraintes anormales telles qu'un bombardement ionique, une contrainte mécanique, thermique, optique, électrique, magnétique... Certains types d'algorithmes de reconstitution de clé secrète procèdent à des émissions successives d'un même nombre soumis à l'algorithme à clé secrète, et analysent les différents résultats obtenus lorsque l'algorithme à clé secrète est soumis à des perturbations engendrant des fautes de calcul. Afin de mettre ces algorithmes de reconstitution en échec on a envisagé de bloquer l'algo- rithme à clé secrète dans le cas de soumissions successives d'un même nombre. Une telle disposition n'est cependant pas très efficace en raison de la possibilité pour les frau- deurs de présenter de façon cyclique des nombres différents ou d'assurer entre les nombres présentés une corrélation permettant une exploitation des résultats calculés obtenus pour la reconstitution de la clé secrète. Afin de perturber le fonctionnement de l'algo- rithme de reconstitution de clé secrète on a également envisagé de remplacer de façon aléatoire la transmission du résultat calculé par un résultat indépendant du résultat effectivement calculé par l'algorithme à clé secrète. Ainsi, quelles que soient les perturbations effectuées par le fraudeur, celui-ci reçoit un résultat indépendant du nombre initialement émis, ce qui conduit l'algorithme de reconstitution de clé secrète à rechercher de façon erronée une correlation entre le nombre émis et le résultat reçu. Toutefois la transmission d'un résultat aléatoire qui conduit à une comparaison négative avec le résultat d'authentification et donc un signal d'anomalie, risque de perturber un utilisateur non fraudeur. Selon l'invention on propose un procédé de sécurisation d'un procédé d'authentification du type précité comportant des étapes de sécurisation comprenant les étapes de calculer un résultat test à partir d'un nombre aléatoire de références soumis à l'algorithme à clé secrète, de comparer le résultat test à un résultat de référence, et d'assurer la transmission du résultat calculé seulement lorsque le résultat test est identique au résultat de référence. Ainsi lorsque l'algorithme est soumis à des perturbations par un fraudeur celui-ci ne peut recueillir les informations résultant des perturbations qu'il a générées. Selon une version avantageuse de l'invention, un résultat aléatoire est transmis lorsque le résultat test est différent du résultat de référence. Ainsi le fraudeur croit recevoir une information conforme à la perturbation qu'il a générée et reçoit en réalité une information totalement indépendante qui ne lui est d'aucune utilité pour la détermination de la clé secrète. Selon un autre aspect avantageux de l'invention les étapes de sécurisation sont mises en oeuvre de façon aléatoire. On diminue ainsi la durée moyenne de vérifica- tion de l'algorithme. Selon encore un autre aspect avantageux de l'invention l'algorithme à clé secrète comporte au moins une phase intermédiaire, et une comparaison entre un résultat calculé intermédiaire et un résultat de référence intermédiaire est effectuée à la fin d'au moins une phase intermédiaire. Ainsi on peut effectuer une vérification systématique sans augmenter de façon trop importante le temps d'exécution total. Selon un mode de mise en oeuvre préféré de cet aspect de l'invention le nombre des phases intermédiaires soumises aux étapes de sécurisation et/ou le choix de ces phases est déterminé de façon aléatoire. De préférence dans ce cas, le procédé de sécurisation comporte en outre une étape de temporisation ayant une durée déterminée pour qu'une réponse soit transmise dans un temps décorrélé des phases de l'algorithme soumises aux étapes de sécurisation. Ainsi, on évite qu'un fraudeur soit informé de la vérification effectuée par une observation du temps s'écoulant entre la transmission du nombre aléatoire et la réception d'un résultat. D'autres caractéristiques et avantages de l'in- vention apparaîtront à la lecture de la description qui va suivre de deux modes de mise en oeuvre préférés du procédé de sécurisation selon l'invention en référence avec les figures ci-jointes parmi lesquelles: - la figure 1 est un diagramme par blocs d'un premier mode de mise en oeuvre du procédé de sécurisation selon l'invention, - la figure 2 est un diagramme par blocs d'un second mode de mise en oeuvre du procédé de sécurisation selon l'invention. En référence à la figure 1, le procédé d'authen- tification comporte de façon connue en soi les étapes de soumettre un nombre aléatoire 1 à un algorithme cryptogra- phique à clé secrète 2 pour obtenir un résultat calculé 3. Selon l'invention le procédé de sécurisation comporte les étapes de soumettre un nombre aléatoire de référence 4 à l'algorithme à clé secrète 2 pour obtenir un résultat test 5 et de comparer le résultat test à un résultat de référence 6 auquel le résultat test doit être identique si le fonctionnement de l'algorithme à clé secrète n'a pas été perturbé. Dans le mode de mise en oeuvre préféré illustré sur la figure 1, le procédé de sécurisation comporte, dans le cas o le résultat test n'est pas identique au résultat de référence, une étape 7 de transmission d'un résultat aléatoire, c'est-à-dire un nombre ayant la même structure que le résultat calculé mais dont au moins une partie est obtenue de façon aléatoire, l'autre partie pouvant être constituée par des parties du résultat calculé. Si au contraire le résultat test est identique au résultat de référence, ceci signifie que l'algorithme a fonctionné normalement et le procédé de sécurisation comporte alors l'étape 8 de transmission du résultat calculé 3. A propos du nombre aléatoire de référence et du résultat de référence, on notera qu'il peut s'agir d'un couple unique qui est utilisé chaque fois que les étapes de sécurisation sont mises en oeuvre ou bien d'un couple extrait de façon aléatoire d'une table comportant plusieurs nombre aléatoires de référence et les résultats de réfé- rence correspondants. De préférence, ainsi qu'il a été indiqué ci- dessus, les étapes de sécurisation ne sont pas mises en oeuvre systématiquement à chaque soumission d'un nombre à l'algorithme à clé secrète mais sont au contraire mises en oeuvre de façon aléatoire. Ceci permet de n'allonger que de temps en temps la durée totale de traitement tout en permettant une détection statistique des tentatives de fraude. La figure 2 illustre un autre mode de mise en oeuvre du procédé selon l'invention dans lequel les étapes identiques à celles de la figure 1 portent les mêmes références numériques. Le procédé de ce second mode de réalisation se différencie du procédé illustré en relation avec la figure 1 essentiellement par le fait que le nombre aléatoire de référence est ici constitué par le nombre aléatoire reçu qui est soumis à l'algorithme cryptographi- que à clé secrète deux fois de suite, une première fois pour donner un résultat calculé qui sert également de résultat de référence, et une seconde fois pour donner un résultat test, ces deux résultats étant comparés entre eux. En outre, dans ce mode de mise en oeuvre l'algo- rithme à clé secrète est divisé en deux phases, une phase intermédiaire 2.1 permettant d'obtenir un résultat calculé intermédiaire 3.1 et un résultat test intermédiaire 5.1 qui font l'objet d'une première comparaison, et une phase finale 2.2 qui, dans cet exemple, n'est déclenchée que si la comparaison des résultats intermédiaires est positive et qui permet d'obtenir un résultat calculé 3.2 et un résultat test 5.2 qui font l'objet d'une deuxième comparaison. Lorsque l'une des comparaisons de résultats révèle une non identité de ceux-ci, un résultat aléatoire 7 est transmis. Afin que le temps de traitement apparent, c'est-à-dire le temps s'écoulant entre la soumission du nombre aléatoire 1 et la transmission d'une réponse, ne puisse pas être significatif du nombre ou du choix des phases de l'algo- rithme soumises à une vérification, le procédé comporte en outre une étape de temporisation 9 dont la durée peut être soit calculée pour que le temps total de traitement soit constant, soit au contraire déterminé pour que le temps total apparaisse aléatoire. Bien entendu l'invention n'est pas limitée aux modes de mise en oeuvre décrits et on peut y apporter des variantes de réalisation sans sortir du cadre de l'inven- tion tel que défini par les revendications. En particulier, bien que dans le second mode de réalisation on ait décrit un algorithme à clé secrète divisé en deux phases seulement, on peut prévoir une augmentation du nombre de phases avec une augmentation correspondante du nombre de comparaisons entre les résul- tats calculés intermédiaires et les résultats tests intermédiaires. La mise en oeuvre d'un algorithme à clé secrète en plusieurs phases peut également être réalisée dans le cadre du premier mode de mise en oeuvre. Dans ce cas on peut prévoir soit de réinjecter le résultat test intermédiaire dans la phase suivante de l'algorithme à clé secrète, soit de repartir d'un nouveau nombre aléatoire de référence et de comparer alors le résultat test intermé- diaire obtenu au résultat de référence intermédiaire correspondant. Lorsque la comparaison entre le résultat test et le résultat de référence est négative, on peut également prévoir de bloquer définitivement l'algorithme à clé secrète afin d'éviter qu'une nouvelle tentative frauduleuse puisse être effectuée. Afin d'éviter un blocage de l'algo- rithme à clé secrète à la suite d'une perturbation vérita- blement accidentelle, on peut également prévoir un compteur d'anomalies et ne réaliser un blocage de l'algorithme à clé10 secrète qu'après un nombre déterminé d'anomalies. REVENDICATIONS 1. Procédé de sécurisation d'un procédé d'authen- tification comprenant les étapes d'obtenir un résultat calculé (3) à partir d'un nombre aléatoire (1) soumis à un algorithme à clé secrète (2), caractérisé en ce qu'il comporte des étapes de sécurisation comprenant les étapes de calculer un résultat test (5) à partir d'un nombre aléatoire de référence (4) soumis à l'algorithme à clé secrète (2), de comparer le résultat test (5) à un résultat de référence (6), et d'assurer la transmission du résultat calculé seulement lorsque le résultat test (5) est identi- que au résultat de référence (6). 2. Procédé de sécurisation selon la revendication 1, caractérisé en ce qu'un résultat aléatoire (7) est transmis lorsque le résultat test (5) est différent du résultat de référence (6). 3. Procédé de sécurisation selon la revendication 1, caractérisé en ce que les étapes de sécurisation sont mises en oeuvre de façon aléatoire. 4. Procédé de sécurisation selon la revendication 1, caractérisé en ce que l'algorithme à clé secrète comporte au moins une phase intermédiaire (2.1) et en ce qu'une comparaison entre un résultat test intermédiaire (5.1) et un résultat de référence intermédiaire (3.1) est effectuée à la fin d'au moins chaque phase intermédiaire. 5. Procédé de sécurisation selon la revendication 4, caractérisé en ce que le nombre des phases intermédiai- res soumises aux étapes de sécurisation est déterminé de façon aléatoire. 6. Procédé de sécurisation selon la revendication 4, caractérisé en ce que les phases intermédiaires soumises aux étapes de sécurisation sont choisies de façon aléatoi- re. 7. Procédé de sécurisation selon la revendication 5 ou la revendication 6, caractérisé en ce qu'il comporte en outre une étape de temporisation ayant une durée déterminée pour qu'une réponse soit transmise dans un temps décorrélé des phases de l'algorithme soumises aux étapes de sécurisation. 8. Procédé de sécurisation selon la revendication 1, caractérisé en ce que le résultat de référence est le résultat calculé. 9. Procédé de sécurisation selon la revendication 1, caractérisé en ce que le nombre aléatoire de référence (4) et le résultat de référence (6) sont mémorisés préala- blement à la mise en oeuvre du procédé de sécurisation. 10. Procédé de sécurisation selon la revendica- tion 9, caractérisé en ce que le nombre aléatoire de référence (4) et le résultat de référence (6) sont extraits de façon aléatoire d'une table comportant plusieurs nombres aléatoires de référence et des résultats de référence correspondants.