Brevet FR3123469A1 — publié le 20221202

L’invention propose un nouveau type de contremesures par infection contre des attaques par injection de fautes. Au lieu de déterminer l’erreur injectée avant de l’amplifier, la nouvelle contremesure applique une même fonction de diffusion à deux chiffrés intermédiaires obtenus en exécutant une opération cryptographique sur une entrée. L’erreur est donc amplifiée au sein même des chiffrés intermédiaires, dénommés chiffrés infectants après diffusion. On peut désormais utiliser des fonctions de diffusion ne mappant pas le chiffré 0 en une sortie égale à 0. Un chiffré recomposé à partir des bits des chiffrés sans diffusion est également généré. Ces chiffrés infectants et recomposé sont XOR-combinés pour fournir un chiffré de sortie. Cette approche permet d’adapter, par simple duplication des paires et fonctions de diffusion spécifiques associées, la protection offerte par la contremesure à un nombre souhaité de fautes injectées. Figure pour l’abrégé : Fig.4 CONTREMESURES PAR INFECTION AMÉLIORÉES La présente invention concerne le domaine de la sécurité informatique. Elle concerne plus particulièrement la sécurisation de procédés, traitements ou opérations cryptographiques. Certains procédés de traitement de données, en particulier dans le cadre du traitement cryptographique (par exemple, chiffrement ou déchiffrement) de données, utilisent des algorithmes cryptographiques basés sur un ou plusieurs secrets ou clés cryptographiques. Des exemples d’opérations cryptographiques incluent la signature numérique d’un message ou son chiffrement, en une donnée de sortie (donnée binaire) appelée « texte chiffre », « message chiffré » ou tout simplement « chiffré » (« ciphertext » en langue anglo-saxonne). D’autres exemples incluent le déchiffrement d’un chiffré, en une donnée de sortie appelée message « clair » ou « en clair » (« cleartext » en langue anglo-saxonne). Les grandes classes d’opérations cryptographiques incluent les algorithmes de chiffrement/déchiffrement symétriques ou à clé secrète (par exemple AES, DES), les algorithmes de chiffrement/déchiffrement asymétriques ou à clés publique et privée (par exemple RSA, DSA), et les fonctions de hachage (par exemple MD5 et SHA-3). Les secrets ou clés cryptographiques ne doivent pas être accessibles. Aussi, les traitements cryptographiques sont généralement mis en œuvre au sein de systèmes cryptographiques sécurisés dotés de crypto-processeurs, systèmes tels que des éléments sécurisés (SE), c’est-à-dire des plates-formes matérielles sécurisées capables de contenir des données en conformité avec les règles et les exigences de sécurité fixées par des autorités de confiance. Les éléments sécurisés peuvent être embarqués (embedded SE ou eSE) ou amovibles, et incluent notamment les cartes à puce, les cartes UICC (ou eUICC). Ces procédés sont la cible d’attaques de la part d’utilisateurs malveillants qui cherchent à déjouer la sécurité du système. Parmi ces attaques, on connaît les attaques du type par génération de fautes qui consistent à perturber volontairement l’exécution normale du procédé de traitement de données afin d’obtenir en sortie du procédé des données (messages) différentes de celles normalement attendues mais révélatrices d’informations sur les données secrètes utilisées dans l’algorithme cryptographique. Ces attaques peuvent porter sur des composants matériels (cryptoprocesseur) ou logiciels du système. Des contremesures ont ainsi été proposées pour lutter contre ce type d’attaques. On connait les contremesures par détection (ou « detective countermeasure s » en langue anglo-saxonne) qui sont principalement basée sur une exécution redondante de l’algorithme cryptographique et la comparaison des résultats de l’exécution principale et de l’exécution redondante. En cas de comparaison erronée, le procédé est interrompu et une action sécuritaire est engagée. Ces contremesures sont cependant vulnérables aux attaques sur l'étape de comparaison elle-même. Pour s’affranchir de cette comparaison, d’autres contremesures dites par infection ou infectives ou infectieuses (ou « infective countermeasures » en langue anglo-saxonne) ont été proposées. Elles diffusent l'effet de la faute pour rendre le message chiffré ou déchiffré inexploitable par l’utilisateur malveillant. La illustre de façon schématique le principe des contremesures connues par infection. L’opération cryptographique OPE sur le message d’entrée E est dupliquée permettant d’obtenir deux messages identiques, dits « messages premiers », c 0 , c 1 , en l’absence d’attaque par faute. Les messages peuvent être des chiffrés ou des messages en clair selon l’opération mise en œuvre. Pour faciliter la compréhension, on fait principalement référence ci-dessous à des « chiffrés ». Un XOR (OU Exclusif) 10 sur les chiffrés c 0 , c 1 issus des deux exécutions de l’opération cryptographique calcule l’erreur ‘e’ injectée (nulle en l’absence de faute), laquelle est diffusée, c’est-à-dire modifiée et amplifiée, par une fonction de diffusion f diff qui mappe 0 (absence d’erreur) en 0 et toute autre valeur binaire d’entrée (erreur injectée non nulle) en une valeur de sortie différente (c’est la diffusion de l’erreur). Une fonction de diffusion est déterministe, sortant toujours la même sortie pour une même entrée, pour des paramètres fixes de la fonction. Elle présente en outre une forte entropie, c’est-à-dire modifiant de façon importante la sortie pour une petite modification de l’entrée. L’erreur diffusée e diff (nulle ou pas) est alors ajoutée (XOR 11) à l’un des chiffrés (c 0 ) pour fournir un chiffré infecté en sortie S. Aussi, les contremesures par infection infectent le chiffré résultat de telle façon que si le calcul cryptographique s’est déroulé correctement (sans erreur injectée) alors le chiffré résultat sera correct, sinon le chiffré résultat sera a priori inutilisable par l’attaquant. Ce schéma de contremesure par infection n’est pas satisfaisant à tout le moins pour les raisons suivantes. D’une part, il n’est pas résistant aux attaques par injections multiples de fautes. Il serait donc utile de disposer de contremesures par infection qui soient résistantes à des attaques par injection de fautes multiples. Il serait également préférable de disposer de telles contremesures qui soient facilement adaptables au niveau de protection souhaité. D’autre part, la contrainte sur la fonction de diffusion (0 mappé en 0) réduit fortement les fonctions de diffusion utilisables, celles-ci ayant, pour la plupart, déjà été cassés dans la littérature. Il est donc un besoin général d’améliorer les contremesures par infection connues. Dans ce dessein, l’invention prévoit notamment un procédé de traitement cryptographique d’un message d’entrée en un message de sortie, comprenant les étapes suivantes mises en œuvre par un processeur : - exécuter plusieurs fois une même opération cryptographique sur le message d’entrée pour obtenir une ou plusieurs paires de messages intermédiaires, - pour chaque paire, appliquer une même fonction de diffusion aux deux messages intermédiaires de la paire pour obtenir deux messages infectants, et - combiner les messages infectants avec un message recomposé obtenu par sélection de bits d’un ou plusieurs messages premiers résultant des exécutions de l’opération cryptographique, pour obtenir le message de sortie. Selon la nature de l’opération cryptographique, les messages premiers résultant de son exécution, ainsi que les messages intermédiaires, les messages infectants et le message recomposé peuvent tous être des chiffrés ou tous correspondre à des messages en clair. Corrélativement, l’invention concerne aussi un dispositif de traitement cryptographique comprenant un processeur configuré pour : - exécuter plusieurs fois une même opération cryptographique sur un message d’entrée pour obtenir une ou plusieurs paires de messages intermédiaires, - pour chaque paire, appliquer une même fonction de diffusion aux deux messages intermédiaires de la paire pour obtenir deux messages infectants, et - combiner les messages infectants avec un message recomposé obtenu par sélection de bits d’un ou plusieurs messages premiers résultant des exécutions de l’opération cryptographique, pour obtenir un message de sortie. Il est ainsi possible d’exécuter deux ou trois fois l’opération cryptographique et combiner deux messages (e.g. chiffrés) infectants (c’est-à-dire d’une même paire) avec le message recomposé, ou quatre ou cinq fois l’opération cryptographique et combiner quatre messages infectants (c’est-à-dire de deux paires associées à deux fonctions de diffusion) avec le message recomposé, ou plus généralement 2d ou 2d+1 fois l’opération cryptographique (d entier supérieur ou égal à 1) et combiner 2d messages infectants (d paires associées à d fonctions de diffusion) avec le message recomposé. L’application de la même fonction de diffusion sur une paire de messages intermédiaires et leur combinaison ultérieure, par exemple via un XOR, permettent d’annuler les effets de la fonction de diffusion en cas d’absence de faute. Aussi, la contrainte visant à mapper un message (e.g. chiffré) 0 en un message « infectant » 0 est levée. Il en résulte un plus grand nombre de fonctions de diffusion disponibles. Il est constaté que chaque paire de messages intermédiaires permet une protection contre une attaque par faute. L’invention peut donc être mise à l’échelle du nombre d’attaques par faute auxquelles elle doit être résistante, par simple multiplication du nombre de paires de messages intermédiaires traités (avec une fonction de diffusion associée). Des caractéristiques facultatives des modes de réalisation de l’invention sont définies dans les revendications annexées. Certaines de ces caractéristiques sont expliquées ci-dessous en référence à un procédé, tandis qu’elles peuvent être transposées en caractéristiques de dispositif. Dans un mode de réalisation, la fonction de diffusion est différente d’une paire de messages intermédiaires à l’autre. On utilise donc k fonctions de diffusion différentes pour k paires de messages infectants. Dans un mode de réalisation, la fonction de diffusion d’une paire est basée sur un premier paramètre spécifique à ladite paire, par exemple un identifiant unique de ladite paire. Cet identifiant peut notamment être concaténé au message intermédiaire en entrée de la fonction de diffusion. Il est ainsi possible d’utiliser un même algorithme de diffusion pour toutes les paires où seul cet identifiant varierait entre les paires. Cette disposition simplifie la complexité calculatoire. Dans un autre mode de réalisation, la ou les fonctions de diffusion des paires sont basées sur un second paramètre qui varie pour l’obtention d’un nouveau message de sortie à partir d’un nouveau message d’entrée. Ainsi, la fonction de diffusion d’une paire évolue d’une exécution de la contremesure à l’autre, améliorant la robustesse de la contremesure contre des attaques par injection de fautes sur plusieurs exécutions. Dans un mode de réalisation, la fonction de diffusion est un générateur de nombre pseudo-aléatoire basé sur une ou plusieurs clés, par exemple lesdits premier et/ou second paramètres (ou PRNG pour PseudoRandom Number Generator en langue anglo-saxonne). Bien entendu, d’autres types de fonction de diffusion peuvent être utilisés, par exemple des fonctions de hachage. Dans des premiers modes de réalisation, chaque message intermédiaire est un message premier résultant directement d’une des exécutions de l’opération cryptographique. Cette disposition offre une mise en œuvre simple de contremesure contre une ou plusieurs injections de faute. Dans des seconds modes de réalisation, chaque message intermédiaire est un message concaténant, selon un profil de concaténation correspondant, plusieurs ou tous les messages premiers résultant directement des exécutions de l’opération cryptographique. Cette disposition permet de réduire le nombre d’exécutions de l’opération cryptographique contre un nombre fixé d’injections de faute, comparée aux premiers modes ci-dessus. Dans un mode de réalisation particulier, des messages intermédiaires de deux paires différentes diffèrent entre eux par une rotation différente des messages premiers au sein d’un même message maître concaténant tous les messages premiers. Dans une variante de réalisation, les messages intermédiaires sont formés de paires distinctes de messages premiers. Par exemple, le premier message intermédiaire est formé des deux messages premiers résultant des deux premières exécutions de l’opération cryptographique ; le deuxième message intermédiaire des deux messages premiers résultant des deuxième et troisième exécutions de l’opération cryptographique ; et ainsi de suite, le dernier message intermédiaire étant formé des deux messages premiers résultant des dernière et première exécutions de l’opération cryptographique. Ce mode de réalisation permet de s’affranchir d’une fonction de diffusion différente pour chaque paire. D’une façon générale, on peut s’affranchir d’une fonction de diffusion différente pour chaque paire si au plus paires disjointes de profils de concaténation sont symétriques pour un groupe de n messages premiers, étant la partie entière inférieure de x. Une paire de profils de concaténation est dite symétrique pour le groupe de n messages premiers lorsque ses deux profils de concaténation utilisent les mêmes positions de messages dans la concaténation pour positionner les messages premiers issus du groupe de n messages premiers. Cette contrainte peut être vérifiée pour tout n entre 2 et d, avec d+1 le nombre total d’exécutions de l’opération cryptographique. Cette configuration permet en effet d’éviter que paires aient des messages intermédiaires identiques et qu’ainsi elles s’annulent lors de la combinaison finale. On garantit ainsi la robustesse contre n fautes injectées. Dans un mode de réalisation particulier, le message recomposé n’est pas uniquement formé par un ou plusieurs desdits n messages premiers du groupe lorsque paires disjointes de profils de concaténation sont symétriques. En d’autres termes, il faut la présence, dans le message recomposé, d’au moins un message premier qui ne soit pas impliqué dans la symétrie des paires de profils de concaténation. Cela améliore la robustesse de la contremesure contre n attaques par injection de faute. De préférence, cette disposition est satisfaite pour n pair. De façon préférentielle, elle est en outre satisfaite pour d pair. Dans un mode de réalisation, l’étape de combinaison comprend l’application de l’opérateur logique OU EXCLUSIF (ou XOR) entre les différents messages infectants et le message recomposé. Préférentiellement, l’étape de combinaison comprend une première sous-étape initiale combinant (e.g. XOR) le message recomposé avec l’un des messages infectants et une ou plusieurs sous-étapes ultérieures combinant le résultat de la sous-étape initiale avec le ou les autres messages infectants. Il est possible que chaque sous-étape ultérieure combine le résultat de la sous-étape précédente avec un autre des messages/chiffrés infectants. Aussi, tous les messages infectants sont progressivement combinés. En variante, les autres messages infectants peuvent être combinés entre eux avant combinaison avec le résultat de la sous-étape initiale. En commençant par combiner le message recomposé, on améliore la résistance de la contremesure à certaines attaques injectant plus de fautes que le nombre de paires de messages intermédiaires. Dans un mode de réalisation, le message recomposé est l’un des messages premiers résultant directement d’une des exécutions de l’opération cryptographique. Cela simplifie les calculs. Dans une variante, le message recomposé est formé de bits issus de plusieurs ou de tous les messages premiers résultant directement des exécutions de l’opération cryptographique, par exemple par répartition équitable et alternée des bits entre les messages intermédiaires ou les paires de tels messages. Dans un mode de réalisation où chaque message intermédiaire est un message premier résultant directement d’une des exécutions de l’opération cryptographique, le message recomposé peut être formé de bits issus de messages premiers d’au moins deux paires différentes (i.e. traités par des fonctions de diffusion différentes). Par exemple, le message recomposé est formé de bits issus de messages premiers de chacune des paires. De façon préférée, au moins un ou plusieurs ou chaque octet du message recomposé est formé de bits issus de messages premiers d’au moins deux paires différentes. Cela s’applique notamment pour le cas où au plus huit paires sont générées. On évite ainsi qu’un attaquant puisse récupérer, via des fautes identiques lors des deux exécutions d’une même paire, un chiffré infecté par une faute sans que celle-ci n’ait été diffusée ou modifiée. On améliore donc la sécurité du système. Il faut comprendre de ce qui précède que chaque bit du message recomposé est issu d’un des messages premiers et occupe la même position dans le message recomposé que sa position dans le message premier dont il est issu. En effet, c’est le message recomposé qui est fourni comme message de sortie en l’absence de faute. Un autre aspect de l’invention concerne un support non transitoire lisible par ordinateur stockant un programme qui, lorsqu’il est exécuté par un processeur d’un dispositif de traitement cryptographique, amène le dispositif de traitement cryptographique à effectuer le procédé tel que défini ci-dessus. Au moins une partie des procédés selon l’invention peut être mise en œuvre par ordinateur. En conséquence, la présente invention peut prendre la forme d’un mode de réalisation entièrement matériel, d’un mode de réalisation entièrement logiciel (comportant les microprogrammes, les logiciels résidents, les microcodes, etc.) ou d’un mode de réalisation combinant des aspects logiciels et matériels qui peuvent tous être globalement appelés ici "circuit", "module" ou "système". De plus, la présente invention peut prendre la forme d’un produit de programme informatique incorporé dans tout support d’expression tangible disposant d’un code de programme utilisable par ordinateur incorporé dans le support. Étant donné que la présente invention peut être mise en œuvre dans un logiciel, la présente invention peut être incorporée sous forme de code lisible par ordinateur pour être fournie à un appareil programmable sur tout support adapté. Un support tangible ou non transitoire peut comprendre un support de stockage tel qu’un lecteur de disque dur, un dispositif de bande magnétique ou un dispositif de mémoire à semi-conducteurs et analogues. Un support transitoire peut comporter un signal tel qu’un signal électrique, un signal électronique, un signal optique, un signal acoustique, un signal magnétique ou un signal électromagnétique, par exemple un signal hyperfréquence ou RF (radiofréquence). D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après, illustrée par les figures ci-jointes qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif. La illustre de façon schématique le principe des contremesures connues par infection. La représente, schématiquement, un dispositif de traitement de données formant système cryptographique dans lequel la présente invention est mise en œuvre. La représente une carte à microcircuit qui constitue un exemple de dispositif de traitement cryptographique pour une mise en œuvre de l'invention tel que représenté à la . La illustre de façon schématique le principe général de la contremesure par infection améliorée selon l’invention. La illustre de façon schématique des premiers modes de réalisation de la contremesure améliorée selon l’invention. La illustre une variante de la contremesure de la résistante à l’injection d’une faute. La illustre une variante de contremesure améliorée par infection résistante à l’injection de deux fautes. La illustre une contremesure améliorée par infection résistante à l’injection de d fautes (d entier supérieur ou égal à 1). La illustre de façon schématique des seconds modes de réalisation de la contremesure améliorée selon l’invention. Procédé de traitement cryptographique d’un message d’entrée (E) en un message de sortie (S), comprenant les étapes suivantes mises en œuvre par un processeur : - exécuter plusieurs fois une même opération cryptographique (OPE) sur le message d’entrée (E) pour obtenir une ou plusieurs paires (p i ) de messages intermédiaires (C i ), - pour chaque paire, appliquer une même fonction de diffusion (f diff-i ) aux deux messages intermédiaires (C 2i , C 2i+1 ) de la paire pour obtenir deux messages infectants (g 2i , g 2i+1 ), et - combiner les messages infectants avec un message recomposé (C rec ) obtenu par sélection de bits d’un ou plusieurs messages premiers (c i ) résultant des exécutions de l’opération cryptographique, pour obtenir le message de sortie (S). Procédé selon la revendication 1, dans lequel la fonction de diffusion (f diff-i ) est différente d’une paire (p i ) de messages intermédiaires à l’autre. Procédé selon la revendication 2, dans lequel la fonction de diffusion (f diff-i ) d’une paire (p i ) est basée sur un premier paramètre (i) spécifique à ladite paire, par exemple un identifiant unique de ladite paire. Procédé selon l’une des revendications précédentes, dans lequel la ou les fonctions de diffusion (f diff-i ) des paires (p i ) sont basées sur un second paramètre qui varie pour l’obtention d’un nouveau message de sortie à partir d’un nouveau message d’entrée. Procédé selon l’une des revendications 1 à 4, dans lequel chaque message intermédiaire (C i ) est un message premier (c i ) résultant directement d’une des exécutions de l’opération cryptographique (OPE). Procédé selon l’une des revendications 1 à 4, dans lequel chaque message intermédiaire (C i ) est un message concaténant, selon un profil de concaténation correspondant, plusieurs ou tous les messages premiers (c i ) résultant directement des exécutions de l’opération cryptographique (OPE). Procédé selon la revendication 6, dans lequel des messages intermédiaires (C i ) de deux paires (p i ) différentes diffèrent entre eux par une rotation (R i ) différente des messages premiers au sein d’un même message maître (CM) concaténant tous les messages premiers (c i ). Procédé selon la revendication 6, dans lequel les messages intermédiaires (C i ) sont formés de paires distinctes de messages premiers (c i ). Procédé selon la revendication 6, dans lequel au plus paires disjointes de profils de concaténation sont symétriques pour un groupe de n messages premiers, pour tout n entre 2 et d, avec d+1 le nombre total d’exécutions de l’opération cryptographique et la partie entière inférieure de x, une paire de profils de concaténation étant dite symétrique pour le groupe de n messages premiers lorsque ses deux profils de concaténation utilisent les mêmes positions de messages dans la concaténation pour positionner les messages premiers issus du groupe de n messages premiers. Procédé selon la revendication 9, dans lequel le message recomposé (C rec ) n’est pas uniquement formé par un ou plusieurs desdits n messages premiers (c i ) du groupe lorsque paires disjointes de profils de concaténation sont symétriques. Procédé selon l’une des revendications 1 à 10, dans lequel l’étape de combinaison comprend l’application de l’opérateur logique OU EXCLUSIF (10, 11) entre les différents messages infectants (g i ) et le message recomposé (C rec ). Procédé selon la revendication 11, dans lequel l’étape de combinaison comprend une première sous-étape initiale (10) combinant le message recomposé (C rec ) avec l’un des messages infectants (g 0 ) et une ou plusieurs sous-étapes ultérieures (11) combinant le résultat de la sous-étape initiale avec le ou les autres messages infectants (g i ). Procédé selon l’une des revendications 1 à 12, dans lequel le message recomposé (C rec ) est l’un des messages premiers (c i ) résultant directement d’une des exécutions de l’opération cryptographique (OPE). Procédé selon l’une des revendications 1 à 12, dans lequel le message recomposé (C rec ) est formé de bits issus de plusieurs ou de tous les messages premiers (c i ) résultant directement des exécutions de l’opération cryptographique (OPE). Dispositif de traitement cryptographique (40) comprenant un processeur (41) configuré pour : - exécuter plusieurs fois une même opération cryptographique (OPE) sur un message d’entrée (E) pour obtenir une ou plusieurs paires (p i ) de messages intermédiaires (C i ), - pour chaque paire, appliquer une même fonction de diffusion (f diff-i ) aux deux messages intermédiaires(C 2i , C 2i+1 ) de la paire pour obtenir deux messages infectants (g 2i , g 2i+1 ), et - combiner les messages infectants avec un message recomposé (C rec ) obtenu par sélection de bits d’un ou plusieurs messages premiers (c i ) résultant des exécutions de l’opération cryptographique, pour obtenir un message de sortie (S). Support non transitoire lisible par ordinateur stockant un programme qui, lorsqu’il est exécuté par un processeur d’un dispositif de traitement cryptographique, amène le dispositif de traitement cryptographique à effectuer le procédé selon l’une des revendications 1 à 14.