FR 3141261 A1 20240426 FR 2211078 A 20221025 Protection de données masquées La présente description concerne un procédé de protection d'un dispositif électronique (100) contre les attaques par analyse de canaux cachés, le dispositif électronique (100) étant adapté à appliquer au moins une première opération logique binaire masquée (601, 602, 603, 604, 605) à une première donnée masquée, dans lequel ladite au moins une première opération (601, 602, 603, 604, 605) est mise en oeuvre par une table de correspondance. Figure pour l'abrégé : Fig. 6 Protection de données masquées La présente description concerne de façon générale le dispositifs et circuits électroniques, et en particulier les dispositifs et circuits électroniques adaptés à traiter des données binaires. La présente description se rapporte, plus précisément, à la protection de données binaires et, en particulier à la protection de données binaires face aux attaques par analyse de canaux cachés. Lors de l'utilisation de données binaires sensibles, il est courant d'utiliser des opérations de masquages et des opérations logiques masquées pour protéger ces données. De telles opérations peuvent être mises en oeuvre, par exemple, par un processeur. Il serait souhaitable de pouvoir améliorer, au moins en partie, le traitement de données masquées, et en particulier, la protection des données masquées. Il existe un besoin pour un traitement de données sensibles plus sécurisé. Il existe un besoin pour un traitement de données sensibles masquées plus sécurisé. Il existe un besoin pour un traitement de données sensibles plus sécurisé face aux attaques de type par analyse de canaux cachés. Un mode de réalisation pallie tout ou partie des inconvénients des dispositifs connus traitant des données sensibles, et en particulier, des données masquées. Un mode de réalisation pallie tout ou partie des inconvénients des procédés de protection contre les attaques par analyse de canaux cachés connus. Un mode de réalisation prévoit un procédé de protection d'un dispositif électronique contre les attaques par analyse de canaux cachés, le dispositif électronique étant adapté à appliquer au moins une première opération logique binaire masquée à une première donnée masquée, dans lequel ladite au moins une première opération est mise en oeuvre par une table de correspondance. Selon un mode de réalisation, ladite au moins une opération logique binaire masquée est une opération adaptée à mettre en oeuvre successivement une opération logique binaire et une opération de masquage. Selon un mode de réalisation, ladite opération logique binaire exécute un calcul bit à bit. Selon un mode de réalisation, ladite opération logique binaire est choisie parmi le groupe comprenant : une opération logique de type inverseuse, une opération logique de type OU, une opération logique de type NON-OU, une opération logique de type OU EXCLUSIF, une opération logique de type NON-OU EXCLUSIF, une opération logique de type NON, une opération logique de type ET, et une opération logique de type NON-ET, une opération de multiplication bit à bit, et une combinaison de deux ou plus des opérations précédentes. Selon un mode de réalisation, ladite opération de masquage est une opération logique dans laquelle une donnée binaire est combinée avec un masque. Selon un mode de réalisation, ladite opération de masquage met en oeuvre une opération logique de type OU EXCLUSIF. Selon un mode de réalisation, la première donnée masquée est une donnée comprenant au moins 2 bits. Selon un mode de réalisation, la première donnée masquée est une donnée comprenant au moins 3 bits. Selon un mode de réalisation, la première donnée masquée est une donnée comprenant au moins 4 bits. Selon un mode de réalisation, le dispositif électronique est adapté à appliquer au moins une deuxième opération logique binaire masquée à une deuxième donnée masquée, ladite au moins une deuxième opération étant mise en oeuvre par une table de correspondance. Un autre mode de réalisation prévoit un dispositif adapté à mettre en oeuvre le procédé décrit précédemment. 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 : la représente, très schématiquement et sous forme de blocs, un dispositif électronique auquel peut s'appliquer le mode de réalisation décrit en relation avec la ; la représente, très schématiquement et sous forme de blocs, une opération de masquage ; la représente, très schématiquement et sous forme de blocs, une opération logique binaire masquée ; la comprend deux vues illustrant une première mise en oeuvre d'une opération logique binaire masquée ; la comprend deux vues illustrant une deuxième mise en oeuvre d'une opération logique binaire masquée ; et la représente, très schématiquement et sous forme de blocs, un mode de mise en oeuvre d'un procédé de protection contre les attaques par canaux cachés. De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. En particulier, aucun exemple de procédé de traitement de données masquées n'est décrits, les modes de réalisation décrits étant compatibles avec la plupart des procédés de traitement de données masquées connus. 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éments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés (en anglais "coupled") entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés par l'intermédiaire d'un ou plusieurs autres éléments. Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures. Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près. La représente, très schématiquement et sous forme de blocs, un dispositif électronique 100 pouvant mettre en oeuvre le mode de mise en oeuvre de procédé de protection contre les attaques par canaux cachés décrit en relation avec la . Le dispositif 100 est un dispositif électronique adapté à traiter des données, et plus particulièrement, à traiter des données sensibles, c'est-à-dire des données dont l'accès est restreint à une ou plusieurs personnes spécifiques. Pour cela, le dispositif 100 est adapté à traiter des données masquées, c'est-à-dire des données chiffrées. Une opération de masquage est décrite en relation avec la . Le dispositif 100 est, en outre, adapter à mettre en oeuvre des opérations logiques binaires masquées. Une opération logique binaire masquée est décrite en relation avec la . Le dispositif 100 comprend un processeur 101 (CPU) permettant de traiter des données. Selon un exemple, le dispositif 100 peut comprendre plusieurs processeurs adaptés chacun à traiter différents types de données. Selon un exemple particulier, le dispositif 100 peut comprendre un processeur principal et un processeur sécurisé adapté à ne traiter que des données sensibles. Le dispositif 100 comprend, en outre, une ou plusieurs mémoires 102 (MEM) dans lesquelles sont stockées des données, par exemple des données binaires. Selon un exemple, le dispositif 100 comprend plusieurs types de mémoires, comme une mémoire morte, une mémoire volatile, et/ou une mémoire non volatile. Selon un exemple particulier, le dispositif 100 peut comprendre une mémoire principale et au moins une mémoire sécurisée adapté à stocker des données sensibles. Le dispositif 100 comprend, en outre et de façon optionnelle, un ou plusieurs circuits d'entrée/sortie 103 (I/0) permettant au dispositif 100 de transmettre et/ou recevoir des données et/ou de l'énergie avec un ou plusieurs dispositifs électroniques externes. Le dispositif 100 comprend, en outre, un ou plusieurs circuits 104 (FCT) mettant en oeuvre une ou plusieurs fonctionnalités du dispositif 100. Selon un exemple, les circuits 104 peuvent comprendre des circuits de traitement spécifiques de données, comme des circuits de chiffrement, ou des circuits permettant d'effectuer des mesures, comme des capteurs. Le dispositif 100 comprend, en outre, un ou plusieurs bus de communication 105 permettant à tous les circuits du dispositif 100 de communiquer. En , un seul bus 105 reliant le processeur 101, la ou les mémoires 102, et les circuits 103 et 104 est représenté, mais en pratique, le dispositif 100 comprend plusieurs bus de communication reliant ces différents éléments. La représente, schématiquement et sous forme de blocs, la mise en oeuvre d'une opération de masquage 200 (MSK) d'une donnée binaire X1 avec un masque M1. L'opération de masquage 200 permet de réaliser un traitement sécurisé d'une donnée en la combinant, ou en la chiffrant, avec une autre donnée binaire appelé masque. Il existe différents types de masquage de données, mais dans les modes de réalisation décrits ci-après, le masquage utilisé est un masquage utilisant une opération logique de type OU EXCLUSIF (XOR). D'autres types de masquage peuvent être envisagés, comme le masquage multiplicatif, et sont à la portée de la personne du métier. Ainsi, l'opération de masquage 200 met en oeuvre une opération de masquage en utilisant la formule mathématique suivante : [Math 1] dans lequel : - l'opérateur xor désigne l'opération logique OU EXCLUSIF ; - X1 est la donnée binaire à masquer ; - M1 est la donnée binaire servant de masque ; et - M1(X1) est la donnée binaire masquée. Par ailleurs, une opération de démasquage permettant de retourner la donnée X1 à partir de la donnée masquée M1(X1) et du masque M1 applique la même opération qu'une opération de masquage. En effet, lorsque l'opération de masquage est une simple utilisation de l'opération logique OU EXCLUSIF, masquer la donnée masquée M1(X1) avec le masque M1 revient à annuler la première opération. Autrement dit, une opération de démasquage utilise la formule mathématique suivante : [Math 2] La représente, schématiquement et sous forme de blocs, un mode de réalisation d'une opération logique binaire masquée 300 (MSK Logic fct) de deux données masquées MA(A) et MB(B). La donnée masquée MA(A), respectivement MB(B), est le résultat de l'application d'une opération de masquage à une donnée A, respectivement B, en utilisant un masque MA, respectivement MB. L'opération logique binaire masquée est une opération logique prenant, en entrée, une ou plusieurs données binaires, masquées ou non, et fournissant, en sortie, une donnée binaire masquée avec un masque indépendant des éventuels masques des données binaires d'entrée. En , l'opération 300 prend, en entrée, deux données binaires masquées MA(A) et MB(B), et un masque de sortie MC, et fournit, en sortie, une donnée masquée MC(C). A titre de variante l'opération 300 pourrait prendre en entrée une seule donnée binaire, ou plus de deux données. L'opération 300 est une opération adaptée à mettre en oeuvre successivement une opération logique binaire F et une opération de masquage. Plus particulièrement, l'opération 300 met en oeuvre la formule mathématique suivante : [Math 3] La fonction F est une fonction logique binaire, c'est-à-dire une fonction mettant en oeuvre une opération logique bit à bit et prenant, en entrée, des données binaires. Selon un mode de réalisation, la fonction F met en oeuvre une opération choisie parmi le groupe comprenant : une opération logique de type inverseuse, une opération logique de type OU, une opération logique de type NON-OU, une opération logique de type OU EXCLUSIF, une opération logique de type NON-OU EXCLUSIF, une opération logique de type NON, une opération logique de type ET, et une opération logique de type NON-ET, une opération de multiplication bit à bit, n'importe laquelle des opérations logiques précédentes utilisant une ou plusieurs données stockées dans lesdites opérations logiques, et une combinaison de deux ou plus des opérations précédentes. L'opération de masquage est du type de celle décrit en relation avec la . Selon un exemple, l'opération 300 peut prendre comme donnée d'entrée des données ayant au moins 2 bits, par exemple 2, 3, ou 4 bits. Un moyen connu pour récupérer des données sensibles masquées est de surveiller la consommation en énergie d'un dispositif mettant en oeuvre des opérations sur ces données. Une attaque de ce type s'appelle une attaque par analyse de canaux cachés (Side-channel analysis). En effet, la mise en oeuvre d'une opération logique binaire masquée peut avoir un temps de réalisation variable en fonction des données reçues en entrée. En particulier, certaines données, comme une donnée représentant le chiffre 0 dans certain cas, peut simplifier la mise en oeuvre des calculs et donc accélérer le temps de réalisation de l'opération. Cet exemple est décrit plus en détails en relation avec les figures 4 et 5. Par ailleurs, si une donnée peut simplifier la mise en oeuvre d'une opération faisant partie d'un procédé de traitement comprenant plusieurs opérations, alors cette donnée accélère aussi la mise en oeuvre du procédé de traitement complet. Les figures 4 et 5 comprennent, chacune, deux vues illustrant la mise en oeuvre d'une attaque par analyse de canaux cachés à l'encontre de l'opération 300 décrite en relation avec la . Plus particulièrement, chaque , 5 comprend une vue (A) représentant un chronogramme illustrant la mise en oeuvre de l'opération 300 et une vue (B) représentant l'évolution temporelle de la consommation en énergie du circuit mettant en oeuvre l'opération 300. Dans le cas de la , l'opération 300 reçoit des données masquées MA(A) et MB(B) dont les valeurs ne simplifie pas la mise en oeuvre de l'opération 300. A un instant t40, l'opération 300 n'a pas encore reçu les données masquées MA(A) et MB(B), et ne peut être mise en oeuvre pour fournir la donnée masquée MC(C). Selon un exemple, la donnée masquée MB(B) est rendue accessible pour l'opération 300 à partir d'un instant t41, postérieure à l'instant t40, et la donnée MA(A) est rendue accessible pour l'opération 300 à partir d'un instant t42, postérieure aux instants t40 et t41. L'opération 300 ne peut donc être mise en oeuvre qu'à partir de l'instant t42, et à un instant t43, postérieur à l'instant t42, la donnée résultat masquée MC(C) est obtenue et rendue accessible par la mise en oeuvre de l'opération 300. Le graphique de la vue (B) indique que jusqu'à l'instant t43 la consommation électrique du circuit mettant en oeuvre l'opération 300 est haute, puis diminue puisque l'opération n'est plus mise en oeuvre. Dans le cas de la , et par comparaison avec le cas de la , l'opération 300 reçoit des données masquées MA(A) et MB(B) dont au moins une des valeurs, par exemple la valeur de la donnée MB(B), simplifie la mise en oeuvre de l'opération 300. A un instant t50, l'opération 300 n'a pas encore reçu les données masquées MA(A) et MB(B), et ne peut être mise en oeuvre pour fournir la donnée masquée MC(C). Selon un exemple, la donnée masquée MB(B) est rendue accessible pour l'opération 300 à partir d'un instant t51, postérieure à l'instant t50, et la donnée MA(A) est rendue accessible pour l'opération 300 à partir d'un instant t52, postérieure aux instants t50 et t51. L'opération 300 ne peut donc, en théorie, être mise en oeuvre qu'à partir de l'instant t52. Cependant, en pratique, comme la donnée MB(B) simplifie la mise en oeuvre de l'opération 300 alors l'opération 300 peut être mise en oeuvre à partir du moment où la donnée MB(B) est rendue accessible, et à un instant t53, postérieur à l'instant t51, la donnée résultat masquée MC(C) est obtenue et rendue accessible par la mise en oeuvre de l'opération 300, avec un décalage temporelle par rapport à la donnée résultat masquée MC(C) obtenue en . Le graphique de la vue (B) indique que jusqu'à l'instant t53 la consommation électrique du circuit mettant en oeuvre l'opération 300 est haute, puis diminue puisque l'opération n'est plus mise en oeuvre. Il est intéressant de remarquer que comme, dans le cas de la , la valeur de la donnée masquée MB(B) simplifie la mise en oeuvre de l'opération 300, la temps de réalisation de l'opération 300 est diminué, et donc la consommation en énergie du circuit mettant en oeuvre l'opération 300 est nettement diminuée. La représente, très schématiquement et sous forme de blocs, un mode de mise en oeuvre d'un procédé de protection contre les attaques par canaux cachés. Plus particulièrement, la représente un procédé 600 (ALG) de traitement de données sensibles. Plus particulièrement, le procédé 600 comprend la mise en oeuvre d'au moins une fonction logique binaire masquée du type de la fonction 300 décrite en relation avec la . En , le procédé 600 met en oeuvre cinq opérations logiques binaires masquées 601 (FCT1), 602 (FCT2), 603 (FCT3), 604 (FCT4), et 605 (FCT5). Les opérations 601 à 605 peuvent être mises en oeuvre chacune un ou plusieurs fois, et dans n'importe quelle ordre. Selon un mode de réalisation, au moins une des opérations 601 à 605 est mise en oeuvre en utilisant une table de correspondance (Look Up Table). Une table de correspondance est une liste d'association de valeurs stockée dans une mémoire ou dans une partie d'une mémoire. Un avantage de ce mode de réalisation est que quelque soit les données masquées envoyées en entrée d'une opération, le temps de mise en oeuvre de l'opération est toujours le même, et ainsi la consommation en énergie du dispositif mettant en oeuvre le procédé 600. Cela permet de rendre une attaque par analyse de canaux cachés plus difficile . En pratique, l'utilisation d'une table de correspondance permet de réduire la propagation d'un décalage temporelle obtenu par simplification d'une opération à d'autres opérations. Selon un exemple, lorsque les données binaires masquées d'entrée comprennent deux bits, ce mode de réalisation permet de réduire d'au moins 50 % la propagation de décalage temporelle. Selon un autre mode de réalisation, plusieurs des opérations 601 à 605 sont mises en oeuvre en utilisant des tables de correspondance. Augmenter le nombre de tables de correspondance utilisées pour mettre en oeuvre le procédé 600 permet d'accroître la difficulté de mener à bien une attaque par analyse de canaux cachés. Divers modes de réalisation et variantes ont été décrits. La personne du métier comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d’autres variantes apparaîtront à la personne du métier. Enfin, la mise en oeuvre pratique des modes de réalisation et variantes décrits est à la portée de la personne du métier à partir des indications fonctionnelles données ci-dessus. Procédé de protection d'un dispositif électronique (100) contre les attaques par analyse de canaux cachés, le dispositif électronique (100) étant adapté à appliquer au moins une première opération logique binaire masquée (300 ; 601, 602, 603, 604, 605) à une première donnée masquée (MA(A), MB(B)), dans lequel ladite au moins une première opération (300 ; 601, 602, 603, 604, 605) est mise en oeuvre par une table de correspondance. Procédé selon la revendication 1, dans lequel ladite au moins une opération logique binaire masquée (300 ; 601, 602, 603, 604, 605) est une opération adaptée à mettre en oeuvre successivement une opération logique binaire (F) et une opération de masquage (200). Procédé selon la revendication 2, dans lequel ladite opération logique binaire (F) exécute un calcul bit à bit. Procédé selon la revendication 2 ou 3, dans lequel ladite opération logique binaire (F) est choisie parmi le groupe comprenant : une opération logique de type inverseuse, une opération logique de type OU, une opération logique de type NON-OU, une opération logique de type OU EXCLUSIF, une opération logique de type NON-OU EXCLUSIF, une opération logique de type NON, une opération logique de type ET, et une opération logique de type NON-ET, une opération de multiplication bit à bit, et une combinaison de deux ou plus des opérations précédentes. Procédé selon l'une quelconque des revendications 2 à 4, dans lequel ladite opération de masquage (200) est une opération logique dans laquelle une donnée binaire est combinée avec un masque. Procédé selon la revendication 5, dans lequel ladite opération de masquage (200) met en oeuvre une opération logique de type OU EXCLUSIF. Procédé selon l'une quelconque des revendications 1 à 6, dans lequel la première donnée masquée est une donnée comprenant au moins 2 bits. Procédé selon la revendication 7, dans lequel la première donnée masquée est une donnée comprenant au moins 3 bits. Procédé selon la revendication 8, dans lequel la première donnée masquée est une donnée comprenant au moins 4 bits. Procédé selon l'une quelconque des revendications 1 à 9, dans lequel le dispositif électronique (100) est adapté à appliquer au moins une deuxième opération (300 ; 601, 602, 603, 604, 605) logique binaire masquée à une deuxième donnée masquée, ladite au moins une deuxième opération (300 ; 601, 602, 603, 604, 605) étant mise en oeuvre par une table de correspondance. Dispositif (100) adapté à mettre en oeuvre le procédé selon l'une quelconque des revendications 1 à 10.