Brevet FR3066846A1 — publié le 20181130

B15712 - 16-R0-0730 1 PROTECTION D'UN GENERATEUR DE NOMBRES ALEATOIRES Domaine La présente description concerne de façon générale les circuits électroniques et, plus particulièrement, les circuits intégrés générant des nombres aléatoires ou non déterministes. Exposé de l'art antérieur Dans de nombreux circuits électroniques, on utilise des générateurs dits de nombres aléatoires ou non déterministes. De tels nombres aléatoires sont utilisés dans de nombreuses applications mettant en oeuvre des algorithmes de chiffrement, d'authentification, de calcul de signature, et plus généralement des algorithmes manipulant des données, dites secrètes, c'est-à-dire dont on souhaite réserver l'accès à certains utilisateurs ou circuits. Lorsque des nombres aléatoires sont utilisés dans ces applications, on souhaite généralement que les nombres soient non déterministes et qu'ils aient par ailleurs une répartition statistiquement uniforme. De nombreuses méthodes, dites attaques, existent pour tenter de découvrir ou pirater des données secrètes manipulées par ces calculs. Par exemple, des attaques dites par canaux cachés, exploitent des informations indirectes telles que la consommation du circuit (attaques SPA, DPA), son rayonnement, etc. L'interprétation de ces informations renseigne le pirate sur la 3066846 B15712 - 16-R0-0730 2 donnée secrète. D'autres attaques, dites par injection de fautes interviennent directement sur certaines étapes du calcul. Les nombres aléatoires peuvent alors être utilisés pour masquer des traitements algorithmiques et faire en sorte notamment 5 que la reproduction d'un même traitement se traduise par un comportement différent du circuit électronique qui l'exécute, ce qui rend plus difficile l'interprétation des résultats d'une attaque. Ils peuvent également directement représenter la donnée confidentielle qui est alors directement protégée par le caractère 10 non-déterministe et par le caractère uniforme du tirage du nombre aléatoire. Toutefois, certaines attaques, dites déterministes, se focalisent sur les générateurs de nombres aléatoires pour en rompre le caractère non déterministe et, plus précisément, pour 15 rendre le ou les nombres générés déterministes. En effet, à partir du moment où le nombre devient déterministe, l'aléa qu'il introduit sur le calcul disparait et les autres attaques peuvent prospérer. Résumé 20 Un mode de réalisation pallie tout ou partie des inconvénients des générateurs de nombres aléatoires usuels. Un mode de réalisation propose une solution pour détecter une attaque déterministe. Ainsi, un mode de réalisation prévoit un procédé de détection d'une attaque d'injection d'un nombre déterministe sur un générateur aléatoire comportant un analyseur statistique d'un caractère non déterministe d'un signal de sortie d'une source de bruit, dans lequel : un biais est introduit dans la source de bruit ; et la présence d'une attaque déterministe est détectée si l'analyseur statistique confirme le caractère non conforme du signal de sortie. Selon un mode de réalisation, ledit signal de sortie est un flux de bits. 3066846 B15712 - 16-R0-0730 3 Selon un mode de réalisation, lesdites étapes sont effectuées périodiquement. Selon un mode de réalisation, lesdites étapes sont effectuées de façon non périodique. 5 Selon un mode de réalisation, lesdites étapes sont effectuées au démarrage du générateur. Selon un mode de réalisation, lesdites étapes sont effectuées avant chaque génération de nombre aléatoire. Un mode de réalisation prévoit un générateur de nombres 10 aléatoires, comportant un module adapté à la mise en oeuvre du procédé de détection d'une attaque d'injection d'un nombre déterministe. Un mode de réalisation prévoit un circuit électronique comportant un générateur de nombres aléatoires. 15 Brève description des dessins Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : 20 la figure 1 représente, de façon très schématique et sous forme de blocs, un exemple de circuit électronique du type auquel s'appliquent les modes de réalisation décrits ; la figure 2 illustre, de façon très schématique sous forme de blocs, un exemple d'attaque déterministe sur un signal 25 produit par un générateur de nombres aléatoires ; la figure 3 représente, de façon très schématique et sous forme de blocs, un mode de réalisation d'un procédé de détection d'une attaque déterministe ; et la figure 4 représente, de façon très schématique et 30 sous forme de blocs, un autre mode de réalisation d'un procédé de détection d'une attaque déterministe. Description détaillée De mêmes éléments ont été désignés par de mêmes références aux différentes figures. Par souci de clarté, seuls 35 les éléments utiles à la compréhension des modes de réalisation 3066846 B15712 - 16-R0-0730 4 décrits ont été représentés et seront détaillés. En particulier, l'exploitation faite des nombres générés n'a pas été détaillée, les modes de réalisation décrits étant compatibles avec les applications habituelles exploitant des nombres aléatoires. De 5 plus, la génération des signaux de commande requérant la génération du nombre aléatoire n'a pas non plus été détaillée, les modes de réalisation décrits étant, là encore, compatibles avec les circuits électroniques usuels de commande de générateurs de nombres aléatoires. 10 Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans élément intermédiaire autre que des conducteurs, et lorsque l'on fait référence à deux éléments reliés entre eux, cela signifie que ces deux éléments peuvent être directement 15 reliés (connectés) ou reliés par l'intermédiaire d'un ou plusieurs autres éléments. Dans la description qui suit, lorsqu'on fait référence aux termes "approximativement", "environ" et, "de l'ordre de", cela signifie à 10% près, de préférence à 5% près. 20 La figure 1 représente, de façon très schématique, un circuit électronique 1 du type auquel s'appliquent les modes de réalisation qui vont être décrits. Le circuit 1 comporte : une unité de calcul 11 (UC), par exemple une machine 25 d'états, un microprocesseur, un circuit logique programmable, etc. ; une ou plusieurs zones 13 (MEM) de stockage volatile et/ou non volatile pour stocker tout ou partie des données et des clés ; 30 un ou plusieurs bus 15 de données, d'adresses et/ou de commandes entre les différents éléments internes au circuit 1 et une interface d'entrée-sortie 17 (I/O) de communication avec l'extérieur du circuit 1. 3066846 B15712 - 16-R0-0730 5 Le circuit 1 peut inclure divers autres circuits en fonction de l'application, symbolisés en figure 1 par un bloc 19 (FCT). En outre, dans les applications visées par la présente 5 description, le circuit 1 comporte au moins un générateur 2 de nombres aléatoires (RBG). La constitution interne du générateur aléatoire n'est pas modifiée par les modes de réalisation qui vont être décrits. Par conséquent, le générateur en soi peut prendre n'importe quelle forme usuelle (source de bruit, lignes à retard 10 rebouclées, etc.). On a déjà proposé des méthodes basées sur l'exécution de tests statistiques sur le caractère d'uniformité des nombres fournis par le générateur. De telles méthodes permettent de contrer une catégorie d'attaques, dites d'introduction d'un biais, 15 perpétrées sur des générateurs aléatoires. Ces attaques consistent à fausser la source de bruit afin que les nombres générés soient plus déterministes. En effet, avec des tests statistiques sur le flux de bits fourni en sortie de la source de bruit, on peut alors détecter l'attaque. A titre d'exemple, si une source de bruit est 20 faussée afin que le générateur ne produise que des suites de 0, des suites de 1, ou des suites de couples 10, une contremesure par analyse statistique le détecte. Toutefois, si l'attaque est une attaque déterministe faussant le flux de sortie de la source de bruit en respectant 25 une distribution statistique, les contremesures par analyse statistique s'avèrent inefficaces. Pour simplifier, dans la description qui suit, on prendra pour exemple un générateur aléatoire fournissant un flux de bits série. Toutefois, tout ce qui va être décrit par la suite 30 d'applique plus généralement à tous signaux non déterministes fournis par un ou plusieurs générateurs de nombres aléatoires qu'ils soient série ou parallèle et quel que soit le codage éventuellement opéré en sortie du générateur. 3066846 B15712 - 16-R0-0730 6 La figure 2 illustre, de façon très schématique sous forme de blocs, un exemple d'attaque déterministe sur un signal produit par un générateur 2 de nombres aléatoires. Le générateur 2 est basé sur une source de bruit 22 5 (RNS) fournissant un flux de bits. La sortie de la source 22 est soumise à une vérification du caractère statistiquement uniformément réparti du flux de bits généré. Typiquement, le flux de bits est prélevé par un analyseur 3 (STAT TEST) qui a pour rôle de vérifier que la distribution des bits dans le signal généré 10 respecte un caractère équiprobable (uniformément répartis) sur un nombre donné d'échantillons et qu'il ne s'agit pas d'une reproduction de séquences de bits (par exemple des suites de 10, de 101100, etc.). Si le test est réussi, l'analyseur 3 valide (signal OK) la fourniture du flux de bits en sortie du générateur 15 2, c'est-à-dire au reste de l'application. Cette validation est symbolisée en figure 2 par la fermeture d'un interrupteur 4 mais peut prendre différentes formes usuelles de fourniture du résultat d'une détection d'attaque (génération d'un signal d'erreur, réinitialisation du circuit, etc.). 20 Toutefois, une attaque déterministe consiste à remplacer le flux de bits de sortie de la source de bruit 22 par une suite de bits déterministe, mais qui respecte les caractéristiques statistiques d'être non uniformément réparti (non équiprobable) et de ne pas représenter une séquence qui se répète. Par exemple, 25 une source déterministe 5 (DETERM SOURCE) injecte ce flux de bits entre la sortie de la source 22 et l'analyseur 3. En fait, il peut s'agir du même moyen d'attaque que les attaques faussant le caractère uniforme. La différence provient du fait qu'un flux déterministe, respectant une distribution statistiquement 30 aléatoire sur un échantillon, est introduit dans le système. De telles attaques ne sont pas détectables par l'analyseur 3, dès que le nombre introduit en remplacement du flux de bits fourni par la source 22 respecte le caractère d'être statistiquement aléatoire sur les échantillons examinés par l'analyseur 3. Par exemple, si l'on force la sortie de la source 22 pour fournir les 3066846 B15712 - 16-R0-0730 7 décimales du nombre pi, le nombre devient déterministe mais est statistiquement aléatoire sur les quantités de bits analysées par l'analyseur 3. D'autres flux de bits peuvent servir à des attaques déterministes et ne pas être détectés par les analyseurs usuels. 5 Par exemple, il suffirait de mémoriser un flux de bits non perturbé, validé par l'analyseur 3, et de le rejouer (l'injecter entre la sortie de la source 22 et l'analyseur 3). La figure 3 représente, de façon très schématique et sous forme de blocs, un mode de réalisation d'un procédé de 10 détection d'une attaque déterministe. On retrouve la chaîne de traitement d'un générateur usuel, c'est-à-dire la source de bruit 22 dont la sortie est interceptée par un analyseur statistique 3 du caractère non uniformément réparti du flux de bits généré et un interrupteur 4 15 (ou tout autre élément de validation) du flux fourni par le générateur 2 au reste du circuit électronique. Selon ce mode de réalisation, on introduit une contremesure supplémentaire (bloc 6, NEGAT TEST) qui consiste à introduire un biais (signal B) dans la source de bruit 22, de 20 façon à forcer le générateur 2 à fournir un flux de bits statistiquement déterministe. Le plus simple est, par exemple, de forcer la source à ne fournir que des 1 ou que des 0. On pourrait même prévoir d'intercepter le signal de sortie de la source 22 pour forcer ce signal, mais on doit alors veiller à ce que cela 25 soit effectué en amont de toute injection possible d'un nombre par attaque déterministe (bloc 5). Ainsi, on préfère intervenir sur la source de bruit 22 et la fausser à la manière d'une attaque par biais. Le résultat de l'analyseur statistique 3 est envoyé sur le bloc de contremesure 6 qui vérifie que, lorsqu'il injecte 30 un biais dans la source de bruit 22, celui-ci est bien détecté par l'analyseur 3. S'il est détecté, cela signifie que le générateur est fiable et le bloc 6 supprime le biais pour permettre d'utiliser le flux de sortie non déterministe généré par le générateur 2. En fait, la vérification porte d'une part sur le 35 fait que le générateur est bien celui qui reçoit le biais, et non 3066846 B15712 - 16-R0-0730 8 une autre installation sur le chemin électrique, et d'autre part que les organes de test statistique détectent bien un biais. En présence d'une attaque déterministe (bloc 5), le signal de sortie de la source 22 est remplacé par l'attaquant par 5 le flux déterministe. Par conséquent, le biais introduit par le bloc 6 lors d'un test de contremesure est sans effet. Il en découle que le signal de détection de l'analyseur 3 n'identifie pas la présence du biais. Le bloc 6 de contremesure interprète cette absence de détection comme la présence d'une attaque et génère un 10 signal d'erreur ERROR (ou tout autre mesure adaptée en fonction de l'application pour réagir à la détection d'une attaque). On prend en fait le contrepied de l'utilisation habituelle de ce détecteur pour interpréter une absence de détection d'une attaque par celui-ci comme signifiant la présence 15 d'une attaque. Le test de contremesure 6 est effectué, par exemple, périodiquement ou à des instants déterminés par l'application, par exemple, au démarrage du générateur ou à chaque demande de fourniture d'un nombre aléatoire par l'application, etc. 20 La figure 4 représente, de façon très schématique et sous forme de blocs, un autre mode de réalisation d'un procédé de détection d'une attaque déterministe. On retrouve ici encore la chaîne de traitement d'un générateur usuel, c'est-à-dire une source de bruit 22 dont la 25 sortie est interceptée par un analyseur statistique 3 du caractère non déterministe du flux de bits généré et un interrupteur 4 (ou tout autre élément de validation) du flux fourni au reste du circuit électronique. Selon le mode de réalisation de la figure 4, le bloc de 30 contremesure 6' introduit un test déterministe (DETERM TEST) qui consiste à forcer (signal F) la source de bruit 22 à fournir un train de bits déterminé pendant un temps donné. A l'inverse du cas de la figure 3, le train de bits généré ne doit pas déclencher l'analyseur statistique 3, c'est-à-dire qu'il doit respecter le 35 caractère statistiquement uniforme. En variante, on désactive 3066846 B15712 - 16-R0-0730 9 l'analyseur 3 pendant le test déterministe et, dans ce cas, il importe peu que le train de bits soit ou non statistiquement déterministe. Le signal de sortie du générateur 2, fourni par l'interrupteur 4 est intercepté par le bloc 6'. Le bloc 6' vérifie 5 alors que le flux de bits de sortie correspond bien à celui qu'il attend. Dans la négative, cela signifie que l'on est en présence d'une attaque déterministe (signal ERROR). Ainsi, on considère qu'on est en présence d'une attaque déterministe si le bloc 6' ne retrouve pas le résultat (déterministe) qu'il attend. 10 On pourra prévoir différents tests déterministes, c'est- à-dire forcer le générateur 2 à fournir un flux de bits donné, lui introduire un biais dont on connait à l'avance la conséquence sur le signal de sortie, etc. Comme pour le mode de réalisation de la figure 3, le 15 test est effectué périodiquement ou non à des instants adaptés en fonction de l'application. Un avantage des modes de réalisation décrits est qu'ils préservent le fonctionnement d'un analyseur de détection de biais. Divers modes de réalisation ont été décrits, diverses 20 variantes et modifications apparaîtront à l'homme de l'art. En particulier, le choix des instants de déclenchement du test 6 ou 6' peut varier d'une application à une autre. En outre, la mise en oeuvre pratique, par des techniques matérielles, logicielles ou combinées, des modes de réalisation qui ont été décrits est à 25 la portée de l'homme du métier à partir des indications fonctionnelles données ci-dessus. REVENDICATIONS1. Procédé de détection d'une attaque d'injection d'un nombre déterministe sur un générateur aléatoire (2) comportant un analyseur statistique (3) d'un caractère non déterministe d'un signal de sortie d'une source de bruit (22), dans lequel : un biais est introduit dans la source de bruit ; et la présence d'une attaque déterministe est détectée si l'analyseur statistique confirme le caractère non conforme du signal de sortie. 2. Procédé selon la revendication 1 , dans lequel ledit signal de sortie est un flux de bits. 3. Procédé selon la revendication 1 ou 2, dans lequel lesdites étapes sont effectuées périodiquement. 4. Procédé selon la revendication 1 ou 2, dans lequel lesdites étapes sont effectuées de façon non périodique. 5. Procédé selon la revendication 1 ou 2, dans lequel lesdites étapes sont effectuées au démarrage du générateur. 6. Procédé selon la revendication 1 ou 2, dans lequel lesdites étapes sont effectuées avant chaque génération de nombre aléatoire. 7. Générateur de nombres aléatoires, comportant un module (6) adapté à la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 6. 8. Circuit électronique comportant un générateur selon la revendication 7.