Brevet FR2850811A1 — publié le 20040806

PROCEDE ANTI-FRAUDE POUR CIRCUIT INT GRE MANIPULANT DES DONNEES SECR TES La présente invention concerne le domaine des circuits intégrés et plus particulièrement la protection de données ou quantités secrètes manipulées par des circuits intégrés contre des tentatives de fraude visant à pirater ces données. L'inven5 tion concerne plus particulièrement le cas o les données secrètes manipulées par le circuit intégré sont masquées par intervention d'une quantité aléatoire. Un exemple d'application de la présente invention concerne le domaine des cartes à puce dans lesquelles des quantités secrètes 10 servant à chiffrer ou crypter des données sont manipulées de façon masquée par un ou plusieurs nombres aléatoires. Parmi les fraudes possibles, l'invention se préoccupe plus particulièrement des tentatives de fraude basées sur un examen de la signature d'un paramètre physique du circuit intégré 15 exécutant la fonction de chiffrement et de masquage/démasquage. Cette signature physique sur le circuit intégré peut correspondre, par exemple, à l'évolution de sa température ou de sa consommation en courant. Les attaques par analyse statistique de la consommation en courant d'un circuit intégré sont connues sous 20 la dénomination DPA (Differential Power Analysis). Ces attaques consistent à émettre des hypothèses sur la ou les clés secrètes manipulées alors que l'on connaît les données d'entrée dans l'algorithme ainsi que l'algorithme lui-même. Dans la mesure o l'algorithme est connu, on sait comment la quantité secrète est mélangée à la donnée d'entrée par cet algorithme. En faisant 5 varier les données d'entrée sur la base d'une même hypothèse de clé, on peut analyser la consommation en courant du circuit et obtenir une signature (trace) moyenne qui peut conduire à la découverte de la quantité secrète en tombant sur la bonne hypothèse. Des attaques par consommation en courant de type DPA 10 sont décrites, par exemple, dans l'article "Differential Power Analysis", de Kocher, Jaffe et Jun publié par Springer Verlag LNCS 1666, en 1999 dans le cadre de la conférence CRYPTO 99 (pages 388-397). Pour contrer de telles attaques par analyse de la 15 consommation et plus généralement des attaques examinant une signature physique d'un circuit intégré, on prévoit généralement de masquer les quantités manipulées par des nombres aléatoires. Dans la mesure o l'aléa change à chaque exécution de l'algorithme, les données traitées par l'algorithme sont aléatoires et 20 inconnues de l'attaquant, ce qui rend l'attaque impossible. La figure 1 illustre les trois étapes caractéristiques d'un procédé de chiffrement mettant en oeuvre cette technique de protection. Dans cet exemple, on considère un chiffrement d'une donnée M par une clé secrète K. Ce chiffrement consiste en une 25 addition. Par addition, on entend une addition logique, c'est-àdire une addition modulo 2, bit à bit, ce qui revient à exécuter une fonction de type OU-Exclusif (XOR). Toutes les données ont donc généralement la même taille en nombre de bits. Dans une première étape (bloc 1, SEL R), on sélec30 tionne aléatoirement un nombre R, généralement de même taille que les données et clés. Dans une deuxième étape (bloc 2, M' M + R), on combine ce nombre R avec la donnée d'entrée M devant être traitée par l'algorithme. Dans une troisième étape, le résultat M' de la combinaison précédente est ajouté à la clé secrète K (bloc 3, M" = M' + K). Il s'agit là de l'étape de chiffrement proprement dite. Généralement, la donnée d'entrée M provient de l'extérieur 5 du circuit alors que la clé secrète K est interne au circuit intégré. Enfin, la quantité aléatoire R (qui a été mémorisée depuis l'étape 1) est ajoutée (bloc 4, M"'=M"+R) au résultat M", ce qui a pour effet d'éliminer la contribution de la valeur 10 aléatoire R. La donnée fournie en sortie du bloc 4 est le résultat M+K du chiffrement de la donnée M par la clé K. Ce chiffrement a été masqué, pendant le calcul, par le nombre aléatoire R. Une faiblesse exploitable de la protection décrite en 15 relation avec la figure 1 réside dans le lien entre les étapes 2 et 4 (l'utilisation de la même quantité aléatoire aux étapes 2 et 4). En effet, à partir du moment o l'algorithme de manipulation de la clé secrète est connu, on sait également à quel instant interviennent les quantités aléatoires R. Une 20 attaque par analyse de la consommation (ou d'une autre signature physique) peut alors être menée uniquement sur la contribution des étapes 2 et 4 sur la consommation. Le pirate est alors en mesure d'obtenir une information sur l'aléa R et, par voie de conséquence, de contrecarrer l'effet du masquage. Ce type 25 d'attaque est connu sous le nom HO-DPA (High Order DPA). La présente invention vise à proposer un procédé antifraude pour pallier l'inconvénient des solutions connues. L'invention vise plus particulièrement à proposer un procédé anti-fraude permettant de contrer les attaques de type 30 HO-DPA. Pour atteindre ces objets et d'autres, la présente invention prévoit un procédé anti-fraude consistant à rendre aléatoire la signature physique d'un circuit intégré exécutant une fonction de chiffrement d'au moins une donnée d'entrée par 35 au moins une quantité secrète, par le masquage de la donnée d'entrée au moyen d'au moins un nombre aléatoire et démasquage du résultat de la fonction de chiffrement au moyen du même nombre aléatoire, caractérisé en ce qu'il consiste à réaliser le masquage et le démasquage par deux opérateurs fonctionnellement 5 identiques et dont la réalisation diffère en termes de signature physique. Selon un mode de mise en oeuvre de la présente invention, chacun desdits opérateurs est sélectionné dans deux ensembles distincts comprenant chacun, de préférence, plusieurs 10 réalisations différentes du même opérateur. Selon un mode de mise en oeuvre de la présente invention, ladite fonction de chiffrement est identique à la fonction de masquage et est exécutée par un troisième opérateur. Selon un mode de mise en oeuvre de la présente inven15 tion, les opérateurs de masquage et de chiffrement sont sélectionnés dans le même ensemble, l'opérateur de démasquage étant sélectionné dans un ensemble différent. Selon un mode de mise en oeuvre de la présente invention, lesdites réalisations différentes sont sélectionnées de 20 façon aléatoire. La présente invention prévoit également un circuit intégré mettant en oeuvre, entre autres, une fonction de masquage d'au moins une donnée d'entrée par au moins un nombre aléatoire avant chiffrement par au moins une quantité secrète, 25 et comportant au moins deux opérateurs distincts de réalisation de la même fonction de masquage, lesdits opérateurs ayant des signatures physiques différentes. Selon un mode de réalisation de la présente invention, un premier opérateur est sélectionné pour masquer la donnée 30 d'entrée par le nombre aléatoire tandis qu'un deuxième opérateur différent est sélectionné pour démasquer la donnée à l'issue de l'application de la fonction de chiffrement, lesdits premier et deuxième opérateurs faisant, de préférence, partie de deux ensembles d'opérateurs distincts. Selon un mode de réalisation de la présente invention, un deuxième ensemble comporte plusieurs réalisations en logique câblée du même opérateur. Selon un mode de réalisation de la présente invention, les opérateurs réalisent une fonction de type OU-Exclusif. Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de mise en oeuvre et de réalisation particuliers faite à titre non-limitatif en relation 10 avec les figures jointes parmi lesquelles: la figure 1 qui a été décrite précédemment est destinée à exposer l'état de la technique et le problème posé et la figure 2 représente, sous forme de schéma bloc, un 15 mode de mise en oeuvre du procédé de l'invention. Par souci de clarté, seuls les éléments et étapes de procédé qui sont nécessaires à la compréhension de l'invention ont été représentés aux figures et seront décrits par la suite. En particulier, la réalisation pratique des opérateurs utilisés 20 par l'invention n'a pas été détaillée, celle-ci pouvant être mise en oeuvre avec n'importe quelle réalisation classique. De plus, la provenance des données d'entrée et l'exploitation faite des données de sortie traitées par un algorithme de chiffrement n'a pas non plus été détaillée, l'invention s'appliquant quelle 25 que soit la provenance et la destination des données traitées. Une caractéristique de la présente invention est d'utiliser, pour le masquage au moyen d'un nombre aléatoire et le démasquage du résultat obtenu, deux réalisations différentes du même opérateur fonctionnel. Ainsi, l'invention choisit des 30 opérateurs ayant des signatures physiques différentes pour le masquage par un nombre aléatoire et pour le démasquage de la donnée résultat par ce même nombre aléatoire. La figure 2 illustre, de façon très schématique et sous forme de blocs, un mode de mise en oeuvre de la présente 35 invention. Selon l'invention, à chaque fois qu'une donnée X (correspondant à la donnée M de la figure 1) doit être combinée avec une clé secrète K par une fonction f, on commence par sélectionner (bloc 15, SEL OP) un mode d'exécution (opérateur 5 OP) de la fonction de masquage de la donnée X par un nombre aléatoire R. Cet opérateur OP est sélectionné, par exemple aléatoirement, dans un premier ensemble (bloc 16, ENS1) de N (N supérieur ou égal à 1) réalisations possibles (OP1 à OPN). Comme précédemment, la donnée d'entrée X provient 10 généralement de l'extérieur du circuit alors que la clé secrète K est interne au circuit intégré. La donnée aléatoire R (sélectionnée de façon classique) est combinée avec la donnée d'entrée X par l'opérateur OP sélectionné (bloc 12, OP(X, R)) du premier ensemble. On effectue 15 ensuite l'application classique de la fonction fde chiffrement au résultat de la donnée X, masquée par la quantité R, avec la donnée secrète K (bloc 13, f[OP(X, R), KI). Selon l'invention, on sélectionne ensuite une réalisation différente (opérateur OP') de la fonction de masquage 20 (bloc 17, SEL OP'). Cette réalisation est sélectionnée dans un deuxième ensemble (bloc 18, ENS2) de L (L supérieur ou égal à 1) réalisations possibles (OP'1 à OP'L). Selon un mode de réalisation préféré de l'invention, les deux ensembles 16 et 18 sont disjoints, c'est-à-dire que les 25 réalisations possibles des opérateurs OP sont toutes différentes des implantations possibles des opérateurs OP'. En variante, on prévoit un seul ensemble d'opérateurs et on vérifie alors, lors de la sélection 17 de l'opérateur OP' que la réalisation sélectionnée est différente de la réalisation OP sélectionnée à 30 l'étape 15. L'opérateur OP' est alors appliqué au résultat issu du bloc 13 (bloc 14, OP'(f[OP(X, R), KJD) pour démasquer ce résultat par le nombre R, afin d'obtenir la donnée de sortie Y correspondant à l'application de la fonction f de chiffrement 35 aux données X et K. Au sens de la présente invention, par réalisation différente ou opérateurs différents, on considère des réalisations (mises en oeuvre) d'une même fonction qui conduisent à des signatures physiques (par exemple, consommation en courant ou élévation de température) différente l'une de l'autre. En prenant l'exemple d'un opérateur de type XOR, une première réalisation peut consister en l'utilisation d'une table de vérité mémorisée, transférée sur le bus de données lorsqu'un microcontrôleur a besoin de l'opération. Une deuxième réali10 sation peut consister en l'utilisation d'un câblage logique de réalisation de la fonction. De préférence, on utilise au moins trois réalisations différentes du même opérateur réparties dans deux ensembles disjoints. On peut utiliser un multiplexeur (ou son équivalent 15 fonctionnel) pour sélectionner celui des opérateurs à appliquer au masquage et au démasquage. On veillera toutefois à ce qu'un seul des moyens physiques utilisés pour réaliser l'opérateur (par exemple, une seule des cellules logiques câblées dans le cas d'un ensemble 20 constitué de plusieurs réalisations câblées de la même fonction) soit alimenté à chaque exécution. En effet, dans le cas contraire et même en sélectionnant l'une des sorties des fonctions par un multiplexeur, on assisterait à un bruit moyen au niveau de la consommation si toutes les cellules sont en 25 fonctionnement. Un tel bruit moyen permettrait, par analyse statistique de la consommation des étapes 12 et 14, de détecter la donnée aléatoire R. Un avantage de la présente invention est qu'elle permet de masquer efficacement le chiffrement par une quantité 30 secrète, au moyen d'une donnée aléatoire. Cela empêche les fraudes consistant en des attaques par analyse de signature physique et notamment par analyse statistique de consommation du circuit intégré exécutant la fonction de chiffrement, pendant les étapes de masquage et de démasquage. En effet, la combi35 naison de l'information fournie par la consommation aux étapes 12 et 14 pour éliminer la contribution du nombre R (ou rendre cette contribution constante pour tout nombre R) n'apporte rien au pirate car cette contribution n'est pas la même au masquage et au démasquage. Un autre avantage de l'invention est que la présence de plusieurs réalisations différentes d'un même opérateur est souvent existante dans les circuits intégrés (par exemple, câblage logique et microcontrôleur). Par conséquent, la mise en oeuvre de l'invention est compatible avec les modes de réalisation 10 classiques des opérateurs utilisés. Dans le cas o la fonction de masquage est identique à la fonction de chiffrement (addition modulo 2, bit à bit, par exemple), la fonction de masquage peut être réalisée par le même opérateur que le masquage ou que le démasquage, pourvu que les 15 opérateurs de masquage et de démasquage soient différents. Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'homme de l'art. En particulier, bien que l'invention ait été décrite ci-dessus en relation plus particulièrement avec une fonction de 20 masquage de type XOR, identique à la fonction de chiffrement, elle s'applique plus généralement dès que la fonction de masquage est identique à la fonction utilisée pour démasquer la donnée résultat, chacune étant idempotente, et que la fonction de chiffrement est linéaire par rapport à l'opération utilisée 25 pour le masquage (f(A OP B) = f(A) OP f(B)). De plus, l'invention s'applique à un procédé de chiffrement mettant en oeuvre une ou plusieurs données d'entrée, une ou plusieurs clés de chiffrement, et quel que soit le nombre de quantités aléatoires de masquage utilisées (en parallèle pour 30 plusieurs données et/ou successivement dans l'exécution de l'algorithme). On notera qu'en variante par rapport à différents modes de réalisation matériels d'une même fonction ou de différentes tables de vérité pour une exécution logicielle, on 35 pourrait également différencier les signatures physiques en exécutant une fonction en mode synchrone alors que l'autre est en mode asynchrone. En outre, l'opérateur de masquage peut être la combinaison de plusieurs opérations. Dans ce cas, on peut disposer de 5 plusieurs tables de vérité combinées pour obtenir une même table de vérité de l'opérateur de masquage. Deux combinaisons différentes de tables constituent alors, au sens de l'invention, deux réalisations différentes (elles auront des signatures physiques différentes). Enfin, les étapes de masquage et de chiffrement décrites ci-dessus à titre d'exemple pourront être des étapes intermédiaires d'un algorithme plus long et plusieurs opérations de chiffrement pourront séparer ces étapes. Cela revient à considérer que la fonction f de chiffrement comporte plusieurs opéra15 teurs ou opérations de chiffrement. REVENDICATIONS 1. Procédé anti-fraude consistant à rendre aléatoire la signature physique d'un circuit intégré exécutant une fonction de chiffrement (f) d'au moins une donnée d'entrée par au moins une quantité secrète (K), par le masquage de la donnée 5 d'entrée (X) au moyen d'au moins un nombre aléatoire (R) et démasquage du résultat de la fonction de chiffrement au moyen du même nombre aléatoire, caractérisé en ce qu'il consiste à réaliser le masquage et le démasquage par deux opérateurs (OP, OP') fonctionnellement identiques et dont la réalisation diffère 10 en termes de signature physique. 2. Procédé selon la revendication 1, dans lequel chacun desdits opérateurs (OP, OP') est sélectionné dans deux ensembles distincts (16, 18) comprenant chacun, de préférence, plusieurs réalisations différentes du même opérateur. 3. Procédé selon la revendication 1 ou 2, dans lequel ladite fonction de chiffrement (f) est identique à la fonction de masquage et est exécutée par un troisième opérateur. 4. Procédé selon la revendication 3, dans lequel les opérateurs de masquage (OP) et de chiffrement (f) sont 20 sélectionnés dans le même ensemble, l'opérateur de démasquage étant sélectionné dans un ensemble différent. 5. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel lesdites réalisations différentes sont sélectionnées de façon aléatoire. 6. Circuit intégré mettant en oeuvre, entre autres, une fonction de masquage d'au moins une donnée d'entrée (X) par au moins un nombre aléatoire (R) avant chiffrement par au moins une quantité secrète (K), caractérisé en ce qu'il comporte au moins deux opérateurs distincts (OP, OP') de réalisation de la 30 même fonction de masquage, lesdits opérateurs ayant des signatures physiques différentes. 7. Circuit selon la revendication 6, dans lequel un premier opérateur (OP) est sélectionné pour masquer la donnée d'entrée (X) par le nombre aléatoire (R) tandis qu'un deuxième opérateur différent (OP') est sélectionné pour démasquer la donnée à l'issue de l'application de la fonction de chiffrement, lesdits premier et deuxième opérateurs faisant, de préférence, partie de deux ensembles (16, 18) d'opérateurs distincts. 8. Circuit selon la revendication 7, dans lequel un deuxième ensemble comporte plusieurs réalisations en logique câblée du même opérateur. 9. Circuit selon l'une quelconque des revendications 7 ou 8, dans lequel les opérateurs réalisent une fonction de type 10 OU-Exclusif.