Brevet FR3111440A1 — publié le 20211217

Protection d'un algorithme de chiffrement La présente description concerne un procédé de mise en oeuvre, par un dispositif électronique, d'un algorithme de chiffrement symétrique par rondes de données comportant les étapes mettant en oeuvre : - des opérations de masquage et de démasquage (1011, 1024) de données de façon matérielle ; - des opérations linéaires (1021, 1025) appliquées aux données de façon logicielle ; et - des opérations non linéaires (1023) de façon logicielle ou de façon matérielle. Figure pour l'abrégé : Fig. 3 Protection d'un algorithme de chiffrement La présente description concerne de façon générale la sécurité informatique, et de façon plus particulière, la mise en oeuvre d'un algorithme de chiffrement. Plus précisément, la présente description concerne la mise en oeuvre d'un algorithme de chiffrement symétrique. Dans le domaine de la sécurité de l'information, il est usuel d'utiliser des algorithmes de chiffrement pour assurer la protection de données utilisées par un dispositif électronique. Les algorithmes de chiffrement utilisent, généralement, des clés de chiffrement et/ou de déchiffrement pour chiffrer des données. Un algorithme de chiffrement symétrique est un algorithme utilisant la même clé que ce soit pour chiffrer ou pour déchiffrer une donnée, la clé est alors appelée clé de chiffrement et de déchiffrement. Parmi les différents types d'algorithme de chiffrement symétrique connus, les algorithmes de chiffrement symétrique dit "par tours" ou "par rondes" sont des algorithmes dans lequel une ou plusieurs opérations mathématiques et/ou logiques sont appliquées plusieurs fois successives à une donnée à chiffrer. Il serait souhaitable de pouvoir améliorer, au moins en partie, la mise en oeuvre d'un algorithme de chiffrement symétrique dit "par rondes" connu. Il existe un besoin pour des mises en oeuvre d'algorithmes de chiffrement dit "par rondes" moins sensibles aux attaques physiques. Il existe un besoin pour des mises en oeuvre d'algorithmes de chiffrement symétrique dit "par rondes" plus rapides. Il existe un besoin pour des mises en oeuvre d'algorithmes de chiffrement symétrique dit "par rondes" utilisant des circuits physiques plus compacts. Un mode de réalisation pallie tout ou partie des inconvénients des mises en oeuvre d'algorithmes de chiffrement symétrique dit "par rondes" connues. Un mode de réalisation prévoit un procédé de mise en oeuvre, par un dispositif électronique, d'un algorithme de chiffrement symétrique par rondes de données comportant les étapes mettant en oeuvre : - des opérations de masquage et de démasquage de données de façon matérielle ; - des opérations linéaires appliquées aux données de façon logicielle ; et - des opérations non linéaires de façon logicielle ou de façon matérielle. Un mode de réalisation prévoit un dispositif électronique adapté à mettre en oeuvre un algorithme de chiffrement symétrique comportant les étapes mettant en oeuvre : - des opérations de masquage et de démasquage de données de façon matérielle ; - des opérations linéaires appliquées aux données de façon logicielle ; et - des opérations non linéaires de façon logicielle ou de façon matérielle. Selon un mode de réalisation, l'algorithme de chiffrement symétrique de données comprend un chemin de données et un chemin de clé, lesdites opérations de masquage et de démasquage, lesdites opérations linéaires et lesdites opérations non linéaires étant des opérations du chemin de données. Selon un mode de réalisation, lesdites opérations de masquage et de démasquage comprennent des opérations de masquage , des opérations de démasquage et des opérations de rafraîchissement de masque. Selon un mode de réalisation, chaque opération non linéaire est suivie d'une opération de masquage ou de démasquage. Selon un mode de réalisation, chaque opération non linéaire est suivie d'une opération de rafraîchissement de masque. Selon un mode de réalisation, chaque opération non linéaire est suivie d'une opération de masquage. Selon un mode de réalisation, chaque opération non linéaire est précédée d'une opération de masquage et de démasquage. Selon un mode de réalisation, chaque opération non linéaire est précédée d'une opération de démasquage. Selon un mode de réalisation, chaque opération non linéaire est précédée d'une opération de rafraîchissement de masque. Selon un mode de réalisation, lesdites opérations de rafraîchissement de masque sont mises en oeuvre en utilisant une table de correspondance. Selon un mode de réalisation, l'algorithme de chiffrement comprend, en outre, des étapes mettant en oeuvre des opérations de rafraîchissement de table de correspondance. Selon un mode de réalisation, lesdites opérations non linéaires sont mises en oeuvre en utilisant une table de correspondance. Selon un mode de réalisation, l'algorithme de chiffrement par rondes est un algorithme de chiffrement par blocs, par exemple l'AES (Advanced Encryption Standard), le SM4, et le GOST R 34.12-2015, ou un algorithme de chiffrement de flux ou par flot. Selon un mode de réalisation, l'algorithme de chiffrement par rondes utilise un masquage utilisant une opération d'addition logique. 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, schématiquement et sous forme de blocs, un schéma de principe d’exécution d’un mode de réalisation d’un algorithme de chiffrement symétrique dit "par rondes" ; la représente, schématiquement et sous forme de blocs, un dispositif électronique ; la représente, schématiquement et sous forme de blocs, des étapes d'un mode de mise en oeuvre protégé d'un algorithme de chiffrement symétrique ; la représente, schématiquement et sous forme de blocs, des étapes d'un autre mode de mise en oeuvre protégé d'un algorithme de chiffrement symétrique ; la représente, schématiquement et sous forme de blocs, des étapes d'un autre mode de mise en oeuvre protégé d'un algorithme de chiffrement symétrique ; la représente, schématiquement et sous forme de blocs, des étapes d'un autre mode de mise en oeuvre protégé d'un algorithme de chiffrement symétrique ; et la représente, schématiquement et sous forme de blocs, des étapes d'un autre mode de mise en oeuvre protégé d'un algorithme de chiffrement symétrique. 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, les différentes opérations de calcul mises en oeuvre par l'algorithme de chiffrement ne seront pas détaillées. 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, schématiquement et sous forme de blocs, un schéma de principe d’exécution d’un algorithme de chiffrement symétrique dit "par rondes", ou algorithme de chiffrement symétrique par rondes, ou encore algorithme de chiffrement par rondes. Un algorithme de chiffrement symétrique par rondes, exécuté par un circuit électronique, permet généralement de transformer un message formé d'une donnée Data en clair avec une clé Key secrète en vue d’obtenir une donnée chiffrée C_Data. L'exécution de cet algorithme de chiffrement est un processus de chiffrement ou traitement itératif. Ce traitement itératif consiste à appliquer, à la donnée Data en clair et à la clé Key, une ou plusieurs opérations mathématiques et/ou logiques successives, représentées en par un bloc 10, pendant plusieurs tours, ou plusieurs rondes. A titre d'exemple, les opérations du bloc 10 sont appliquées pendant un nombre N de tours (xN). L'algorithme de chiffrement peut, par exemple, commencer par une étape d'initialisation 9 (INIT), optionnelle, permettant de préparer la donnée Data et la clé Key aux étapes suivantes. A titre d'exemple, l'étape d'initialisation peut être une première étape de masquage de la donnée Data à chiffrer. À chaque tour, on commence par calculer ou générer une sous-clé SubKey à partir de la clé Key secrète ou de la sous-clé SubKey du tour précédent. L'ensemble des opérations mathématiques et/ou logiques appliquées à chaque tour à la clé Key, ou à la sous-clé SubKey, est appelé chemin de clé (bloc 11, Key Path). Puis, on utilise cette sous-clé SubKey pour transformer ou chiffrer la donnée Data. Pour chiffrer la donnée Data, un ensemble d'opérations mathématiques et/ou logiques sont appliquées à la donnée Data, ou à la donnée chiffrée C_Data du tour précédent, à chaque tour, en utilisant la clé Key, ou la sous-clé SubKey. L'ensemble des opérations mathématiques et/ou logiques appliquées à chaque tour à la donnée Data, ou à la donnée chiffrée C_Data, est appelé chemin de données (bloc 12, Data Path). On appelle ensuite l'ensemble formé par le chemin de clé et le chemin de données la fonction de tour de l'algorithme de chiffrement. On obtient ainsi, en fin de tour, une donnée chiffrée C_Data avec la sous-clé SubKey. Cette donnée chiffrée C_Data est, ensuite réinjectée dans le processus de traitement ou chiffrement, faisant ainsi office, au tour suivant, de donnée d’entrée pour l’application de la fonction de tour 10. De même, chaque nouvelle sous-clé SubKey est, en sortie d’un tour, réinjectée pour permettre de générer la sous-clé du tour suivant. À l’issue du nombre N de tours, la donnée chiffrée C_Data obtenue par la dernière application de la fonction de tour 110 constitue la donnée chiffrée finale C_Data. En d’autres termes, l’algorithme ou processus de chiffrement symétrique par rondes comporte successivement : - une étape d'initialisation 9 ; - un premier tour, durant lequel la fonction de tour est appliquée à la donnée Data et à la clé Key ; - un certain nombre de tours intermédiaires (N-2 tours, dans cet exemple), pour chacun desquels une nouvelle sous-clé SubKey est calculée, et durant lesquels la fonction de tour 10 est appliquée à la donnée chiffrée C_Data et à la sous-clé SubKey résultant de l’application de la fonction au tour précédent ; et - un ultime tour, à l’issue duquel le traitement de la dernière donnée chiffrée, par une dernière application de la fonction de tour, conduit à l’obtention de la donnée chiffrée C_Data finale. Le nombre N de tours est également appelé nombre d’itérations. Ce nombre N de tours dépend généralement de l'algorithme de chiffrement utilisé, et de la taille de la clé secrète Key. La fonction de tour 10, appliquée à chaque tour, se compose par exemple d’opérations de substitution, de décalage par ligne et de mélange par colonne suivies par une combinaison (par exemple, un OU exclusif) avec la sous-clé SubKey du tour considéré. Cette fonction de tour 10 vise typiquement à obtenir un algorithme doté de propriétés de confusion (c’est-à-dire une relation la plus complexe possible entre la clé secrète et le message en clair) et de diffusion (c’est-à-dire une dissipation, dans les statistiques du message chiffré, d’une redondance statistique du message en clair). C’est le cas typiquement d’un algorithme de type AES ou SM4. L'algorithme peut aussi comprendre des opérations de masquage secondaires permettant d'ajouter un niveau de protection à la donnée Data à chiffrer pendant l'application de la fonction de tour. Ces opérations permettent de protéger la donnée d'une attaque pendant l'application de l'algorithme de chiffrement. La représente, schématiquement et sous forme de blocs, un dispositif électronique 20. Le dispositif électronique 20 est un dispositif électronique adapté à mettre en oeuvre un algorithme de chiffrement par rondes du type de celui décrit en relation avec la . Le dispositif 20 comprend un ensemble 21 (HW) de circuits adaptés à mettre en oeuvre des opérations mathématiques et/ou logiques. L'ensemble 21 peut, par exemple, comprendre des éléments mémoires, comme des tables de correspondance, des circuits logiques, etc. Les opérations mathématiques et/ou logiques sont, par exemple, utilisées pour mettre en oeuvre ledit algorithme de chiffrement par rondes. Le dispositif 20 est, en outre, adapté à mettre en oeuvre un ensemble 22 (SW) d'instructions et de logiciels pour exécuter des opérations mathématiques et logiques. L'ensemble 22 est, par exemple, mis en oeuvre par un unique processeur, ou par plusieurs processeurs distincts. De même que précédemment, les opérations mathématiques et/ou logiques sont, par exemple, utilisées pour mettre en oeuvre ledit algorithme de chiffrement par rondes. Comme décrit en relation avec la , l'algorithme de chiffrement mis en oeuvre par le dispositif 20 applique un chemin de donnée à une donnée à masquer et un chemin de clé à une clé, et ce pendant un nombre N de tours. Le chemin de données et le chemin de clé de l'algorithme de chiffrement sont, plus particulièrement, composés de plusieurs opérations mathématiques et/ou logiques. Ces opérations peuvent présenter différentes caractéristiques comme le fait d'être linéaires ou non linéaires, et différents buts comme celui de chiffrer la donnée ou celui de réaliser une opération de masquage et/ou de démasquage secondaire de la donnée. Dans la suite de la description, on considère que le chemin de données est composé d'une succession d'une ou plusieurs opérations de chiffrement linéaires appliquées à la donnée à chiffrer, d'une ou plusieurs opérations de chiffrement non linéaires appliquées à la donnée à chiffrer, et d'une ou plusieurs opérations de masquage et/ou de démasquage secondaire. On appelle ci-après : - "opération linéaire", une opération mathématique et/ou logique linéaire ; - "opération non linéaire", une opération mathématique et/ou logique non linéaire ; et - "opération de masquage" ou "opération de démasquage", une opération visant un masquage ou un démasquage secondaire. Selon un mode de réalisation, le dispositif 20 est adapté à mettre en oeuvre les opérations linéaires de façon logicielle, c'est-à-dire en utilisant l'ensemble 22 d'instructions et de logiciels qu'il est adapté à mettre en oeuvre. Le dispositif 20 est adapté à mettre en oeuvre les opérations non linéaires de façon logicielle ou de façon matérielle, c'est-à-dire en utilisant l'ensemble 21 de circuits. Les opérations de masquage et démasquage sont des opérations permettant d'assurer le masquage de la donnée à chiffrer par un masque pendant l'exécution des opérations linéaires et non linéaires. Ces opérations de masquage et de démasquage sont mises en oeuvre par le dispositif 20 de façon matérielle. Selon un mode de réalisation, le type de masquage utilisé pendant l'exécution de l'algorithme de chiffrement est un type de masquage subsistant aux opérations linéaires. Autrement dit, si le masque subit les mêmes opérations linéaires que la donnée masquée alors le démasquage est possible en utilisant ledit masque. A titre d'exemple, un type de masquage vérifiant cette condition est un masquage utilisant une opération d'addition logique, par exemple utilisant une opération OU EXCLUSIF dans lequel la donnée à masquer est combinée à un masque par une opération logique OU EXCLUSIF. A titre d'exemple, un traitement similaire pourrait être appliqué aux opérations composant le chemin de clé de l'algorithme de chiffrement. Plusieurs modes de mise en oeuvre de l'algorithme de chiffrement mis en oeuvre par le dispositif 20 sont décrits en relation avec les figures 3 à 7. Plus particulièrement, dans l'exemple des figures 3 à 7, le chemin de données de l'algorithme de chiffrement mis en oeuvre par le dispositif 20 est constitué, successivement, d'une première opération linéaire, d'une opération non linéaire, et d'une deuxième opération linéaire. La répartition des opérations de masquage ou de démasquage sont décrites en relation avec les figures 3 à 7. Mais à titre de variante, le chemin de données de l'algorithme de chiffrement mis en oeuvre par le dispositif 20 pourrait comprendre une ou plus de deux opérations linéaires et plus de deux opérations non linéaires, agencées de n'importe quelle manière. La représente, schématiquement et sous forme de blocs, des étapes d'un mode de mise en oeuvre de l'algorithme de chiffrement symétrique du dispositif 20 décrit en relation avec la . Dans l'exemple décrit en relation avec la , l'opération non linéaire du chemin de données est mise en oeuvre de façon logicielle. En , les opérations représentées à gauche de la figure sont mises en oeuvre de façon matérielle (HW), et les opérations représentées à droite de la figure sont mises en oeuvre de façon logicielle (SW). De plus, en partie haute de la figure, l'exécution des opérations d'une étape d'initialisation 101 (délimitée en pointillés) de l'algorithme de chiffrement est représentée, et, en partie basse de la figure, l'exécution des opérations du chemin de données 102 (délimitée en pointillé) pendant un premier tour est représentée. A l'étape d'initialisation 101, une donnée Data1 à chiffrer est masquée avec un masque Mask1_1 durant une opération de masquage 1011 (Masking). L'opération de masquage 1011 fournit une donnée C_Data1 masquée. La donnée Data1 est représentée comme provenant de la partie matérielle du dispositif mettant en oeuvre l'algorithme de chiffrement, mais, à titre de variante, la donnée Data1 peut provenir de la partie logicielle du dispositif. Ensuite, les opérations du chemin de données 102 sont exécutées. Pour commencer, une première opération linéaire 1021 (Op Lin 1) est appliquée à la donnée masquée C_Data1 de façon logicielle. Le résultat de l'opération 1021 est une donnée masquée C_Data1_lin1. Une première opération linéaire 1022 (Op Lin 1), identique à l'opération 1021, est, en parallèle, appliquée au masque Mask1_1 de la donnée masquée C_Data1, de façon matérielle. Le résultat de l'opération 1022 est un masque Mask1_1_lin1. A ce stade, il est possible de démasquer la donnée masquée C_Data1_lin1 avec le masque Mask1_1_lin1 pour obtenir le résultat de l'application de l'opération 1021 à la donnée à chiffrer Data1. L'exécution du chemin de données 102 continue avec l'application d'une opération non linéaire 1023 (Op N Lin) à la donnée C_Data1_lin1, de façon logicielle. Le résultat de l'opération 1023 est une donnée masquée C_Data1_Nlin. L'opération suivante est alors une opération de rafraîchissement de masque 1024 (Refresh Mask) réalisée de façon matérielle. Pendant cette opération, la donnée C_Data1_Nlin est modifiée en une donnée C_Data1_Nlin2 masquée par un autre masque Mask1_2. Le masque Mask1_2 peut être différent, ou non, du masque Mask1_1. Avoir un masque Mask1_2 différent du masque Mask1_1 permet d'augmenter la protection de la donnée à chiffrer. Selon un exemple de réalisation, l'opération de rafraîchissement 1024 comprend les étapes successives suivantes : - application d'une opération inverse à l'opération non linéaire 1023 à la donnée C_Data1_Nlin pour retrouver la donnée C_Data1_lin1 ; - démasquage de la donnée C_Data1_lin1 avec le masque Mask1_1_lin1 ; - application de l'opération non linéaire 1023 à la donnée C_Data1_lin1 démasquée ; et - masquage par le masque Mask1_2 pour obtenir la donnée masquée C_Data1_Nlin2. L'exécution du chemin de données 102 continue par l'application d'une deuxième opération linéaire 1025 (Op Lin 2) à la donnée masquée C_Data1_Nlin2 de façon logicielle. Le résultat de l'opération 1025 est une donnée masquée C_Data1_lin2. Une deuxième opération linéaire 1026 (Op Lin 2), identique à l'opération 1025, est, en parallèle, appliquée au masque Mask1_2 de la donnée masquée C_Data1_Nlin2 de façon matérielle. Le résultat de l'opération 1026 est un masque Mask1_2_lin2. A ce stade, il est possible de démasquer la donnée masquée C_Data1_lin2 avec le masque Mask1_2_lin2. Les opérations du chemin de données 102 sont terminées pour le premier tour. La donnée C_Data1_lin2 et le masque Mask1_2_lin2 peuvent être réinjectés, respectivement, à la place de la donnée C_Data1 et du masque Mask1_1 pour commencer le tour suivant. En résumé, pour appliquer le chemin de données, chaque opération linéaire est appliquée en parallèle à la donnée masquée de façon logicielle, et à son masque de façon matérielle. De plus, chaque opération non linéaire est suivie d'une opération de rafraîchissement de masque. Selon une variante, si une opération linéaire ne modifie pas le masque, alors ladite opération n'est pas appliquée au masque en parallèle de la donnée masquée. Un avantage de ce mode de mise en oeuvre est qu'il permet une mise en oeuvre protégée de l'algorithme de chiffrement. Autrement dit, il permet de faire contre-mesure face à certaines attaques physiques permettant, par exemple, d'identifier l'algorithme de chiffrement utilisé. Un autre avantage de ce mode de mise en oeuvre est que les opérations de l'algorithme de chiffrement sont mises en oeuvre de façon logicielle et de façon matérielle, ce qui rend une attaque physique plus difficile à mettre en oeuvre. Un autre avantage de ce mode de mise en oeuvre est que, durant toutes les opérations de chiffrement de l'algorithme, la donnée à chiffrer est masquée. Un autre avantage de ce mode de réalisation est qu'il permet de réduire l'utilisation de circuits matériels, en comparaison avec une mise en oeuvre totalement matérielle du même algorithme de chiffrement. La représente, schématiquement et sous forme de blocs, des étapes d'un autre mode de mise en oeuvre de l'algorithme de chiffrement symétrique du dispositif 20 décrit en relation avec la . Dans l'exemple décrit en relation avec la , l'algorithme de chiffrement s'appuie sur l'utilisation d'une table de correspondance pour effectuer des opérations de rafraîchissement de masque. L'étape d'initialisation et le chemin de données de l'algorithme sont similaires à l'étape d'initialisation et au chemin de données décrits en relation avec la , mais comprennent en outre des opérations d'initialisation et de rafraîchissement de la table de correspondance. Comme décrit en , l'opération non linéaire du chemin de données est mise en oeuvre de façon logicielle dans l'exemple décrit ici. En , comme en , les opérations représentées à gauche de la figure sont mises en oeuvre de façon matérielle (HW), et les opérations représentées à droite de la figure sont mises en oeuvre de façon logicielle (SW). De plus, en partie haute de la figure, l'exécution des opérations d'une étape d'initialisation 201 (délimitée en pointillés) de l'algorithme de chiffrement est représentée, et, en partie basse de la figure, l'exécution des opérations du chemin de données 202 (délimitée en pointillé) pendant un premier tour est représentée. A l'étape d'initialisation 201, une donnée Data2 à chiffrer est masquée avec un masque Mask2_1 durant une opération de masquage 2011 (Masking). Il est alors fourni une donnée C_Data2 masquée. La donnée Data2 est représentée comme provenant de la partie matérielle du dispositif mettant en oeuvre l'algorithme de chiffrement, mais, à titre de variante, la donnée Data2 peut provenir de la partie logicielle du dispositif. En outre, une opération d'initialisation 2012 (Init Tab) d'une table de correspondance est exécutée, dans laquelle une table de correspondance Tab2_1 est créée. La table de correspondance Tab2_1 permet d'effectuer une opération de rafraîchissement de masque sans avoir à effectuer de calcul. Plus particulièrement, la table de correspondance permet d'associer à chaque valeur, que peut prendre une donnée, la valeur résultant de l'application d'une ou plusieurs opérations. En l'occurrence, dans l'exemple de la , la table de correspondance permet d'associer, à chaque valeur que peut prendre une donnée, la valeur résultant de l'application, successivement : - d'une opération de démasquage de la donnée en utilisant le masque Mask2_1 ; - d'une opération non linéaire 2023 décrite ci-après ; et - d'une opération de masquage par un masque Mask2_2. Selon une variante, pendant l'opération 2012, la table de correspondance peut être seulement créée à cette opération, et peut être remplie pendant une opération postérieure. Ensuite, l'exécution du chemin de données 202 commence par l'application d'une première opération linéaire 2021 (Op Lin 1) à la donnée masquée C_Data2 de façon logicielle. Le résultat de l'opération 2021 est une donnée masquée C_Data2_lin1. Une première opération linéaire 2022 (Op Lin 1), identique à l'opération 2021, est, en parallèle, appliquée au masque Mask2_1 de la donnée masquée C_Data2 de façon matérielle. Le résultat de l'opération 2022 est un masque Mask2_1_lin1. A ce stade, il est possible de démasquer la donnée masquée C_Data2_lin1 avec le masque Mask2_1_lin1. L'exécution du chemin de données 202 continue avec l'application d'une opération non linéaire 2023 (Op N Lin) à la donnée C_Data2_lin1 de façon logicielle. Le résultat de l'opération 2023 est une donnée masquée C_Data2_Nlin. Une opération 2024 de rafraîchissement de la table de correspondance Tab2_1 est exécutée. Pendant cette étape, les données de la table de correspondance Tab2_1 sont modifiées pour permettre d'associer, à chaque valeur que peut prendre une donnée, la valeur résultant de l'application successive des opérations suivantes : - l'opération inverse de l'opération non linéaire 2023 ; - une opération de démasquage de la donnée en utilisant le masque Mask2_1_lin1 ; - l'opération non linéaire 2023 ; et - une opération de masquage par le masque Mask2_2. La nouvelle table de correspondance résultant de l'opération 2024 est une table de correspondance Tab2_2. L'opération suivante est alors une opération de rafraîchissement de masque 2025 (Refresh Mask) réalisée de façon matérielle. Pendant cette opération, la donnée C_Data2_Nlin est modifiée en une donnée C_Data2_Nlin2 masquée par le masque Mask2_2. L'opération de rafraîchissement 2025 est une recherche dans la table de correspondance Tab2_2 de la valeur correspondant à la donnée masquée C_Data2_Nlin, pour fournir la donnée masquée C_Data2_Nlin2. Selon une variante, le masque Mask2_2 peut être égal au masque Mask2_1_lin1. L'exécution du chemin de données 202 continue par l'application d'une deuxième opération linéaire 2026 (Op Lin 2) à la donnée masquée C_Data2_Nlin2 de façon logicielle. Le résultat de l'opération 2025 est une donnée masquée C_Data2_lin3. Une deuxième opération linéaire 2027 (Op Lin 2), identique à l'opération 2026, est, en parallèle, appliquée au masque Mask2_2 de la donnée masquée C_Data2_Nlin2, de façon matérielle. Le résultat de l'opération 2027 est un masque Mask2_2_lin2. A ce stade, il est possible de démasquer la donnée masquée C_Data2_lin2 avec le masque Mask2_2_lin2. Les opérations du chemin de données 202 sont terminées pour le premier tour. La donnée C_Data2_lin2, le masque Mask2_2_lin2, et la table de correspondance Tab2_2 peuvent être réinjectés à la place de la donnée C_Data2, du masque Mask2_2, et de la table de correspondance Tab2_1 pour commencer le tour suivant. En résumé, comme pour le mode de mise en oeuvre de la , pour appliquer le chemin de données, chaque opération linéaire est appliquée en parallèle à la donnée masquée de façon logicielle, et à son masque de façon matérielle. De plus, chaque opération non linéaire est suivie d'une opération de rafraîchissement de masque. Par ailleurs, une table de correspondance utilisée pour mettre en oeuvre l'opération de rafraîchissement de masque doit être mise à jour, ou rafraîchie, avant la mise en oeuvre de l'opération de rafraîchissement de masque si la dernière opération subit par la donnée est une opération linéaire. Selon une variante, si une opération linéaire ne modifie pas le masque, alors ladite opération n'est pas appliquée au masque en parallèle de la donnée masquée. Ce mode de mise en oeuvre présente les mêmes avantages que le mode de mise en oeuvre décrit en relation avec la . Par ailleurs, un autre avantage de ce mode de mise en oeuvre est qu'il permet d'éviter des opérations de masquage et de démasquage pendant l'exécution du chemin de données. Encore un autre avantage de ce mode de mise en oeuvre est que l'utilisation d'une table de correspondance permet de s'affranchir de l'utilisation d'un circuit de masquage et d'un circuit de démasquage pendant l'exécution du chemin de données 302, ce qui permet de rendre cette exécution plus rapide, et de réduire la taille physique de l'ensemble de circuits 21 du dispositif 20. Le dispositif 20 est alors plus compact et plus abordable. La représente, schématiquement et sous forme de blocs, des étapes d'un autre mode de mise en oeuvre de l'algorithme de chiffrement symétrique du dispositif 20 décrit en relation avec la . Dans l'exemple décrit en relation avec la , l'opération non linéaire du chemin de données est mise en oeuvre de façon matérielle. Comme en figures 3 et 4, en , les opérations représentées à gauche de la figure sont mises en oeuvre de façon matérielle (HW), et les opérations représentées à droite de la figure sont mises en oeuvre de façon logicielle (SW). De plus, en partie haute de la figure, l'exécution des opérations d'une étape d'initialisation 301 (délimitée en pointillés) de l'algorithme de chiffrement est représentée, et, en partie basse de la figure, l'exécution des opérations du chemin de données 302 (délimitée en pointillé) pendant un premier tour est représentée. A l'étape d'initialisation 301, une donnée Data3 à chiffrer est masquée avec un masque Mask3_1 durant une opération de masquage 3011 (Masking). Il est alors fourni une donnée C_Data3 masquée. La donnée Data3 est représentée comme provenant de la partie matérielle du dispositif mettant en oeuvre l'algorithme de chiffrement, mais, à titre de variante, la donnée Data3 peut provenir de la partie logicielle du dispositif. Ensuite, l'exécution du chemin de données 302 commence par l'application d'une première opération linéaire 3021 (Op Lin 1) à la donnée masquée C_Data3 de façon logicielle. Le résultat de l'opération 3021 est une donnée masquée C_Data3_lin1. Une première opération linéaire 3022 (Op Lin 1), identique à l'opération 3021, est, en parallèle, appliquée au masque Mask3_1 de la donnée masquée C_Data3 de façon matérielle. Le résultat de l'opération 3022 est un masque Mask3_1_lin1. A ce stade, il est possible de démasquer la donnée masquée C_Data3_lin1 avec le masque Mask3_1_lin1. Ensuite, vient l'exécution d'une opération non linéaire 3023 (Op N Lin) à la donnée C_Data3_lin1 de façon matérielle. Pour minimiser le nombre d'opérations de masquage et/ou de démasquage, la donnée C_Data3_lin1 est envoyée dans l'ensemble de circuits 21, et est démasquée par une opération de démasquage 3024 (Demasking). L'opération de démasquage utilise le masque Mask3_1_lin1 pour démasquer la donnée C_Data3_lin1, et fournit en sortie une donnée démasquée Data3_lin1. L'opération non linéaire 3023 est, alors, appliquée à la donnée Data3_lin1, et fournit, en sortie, une donnée Data3_Nlin. La donnée Data3_Nlin est, ensuite, masquée par une opération de masquage 3025 (Masking), semblable à l'opération de masquage 3011 effectuée à l'étape d'initialisation 301. L'opération 3025 permet de masquer la donnée Data3_Nlin avec un nouveau masque Mask3_2, différent du masque Mask3_1. Selon une variante, le masque Mask3_2 peut être égal au masque Mask3_1_lin1. L'opération 3025 fournit, en sortie, une donnée masquée C_Data3_Nlin. L'opération de démasquage 3024, l'opération non linéaire 3023, et l'opération de masquage 3025 sont réalisés par un seul et même circuit de l'ensemble de circuits 21 du dispositif 20, de façon que la donnée démasquée ne soit jamais accessible. L'exécution du chemin de données 302 continue par l'application d'une deuxième opération linéaire 3026 (Op Lin 2) à la donnée masquée C_Data3_Nlin de façon logicielle. Le résultat de l'opération 3026 est une donnée masquée C_Data3_lin2. Une deuxième opération linéaire 3027 (Op Lin 2), identique à l'opération 3026, est, en parallèle, appliquée au masque Mask3_2 de la donnée masquée C_Data3_Nlin de façon matérielle. Le résultat de l'opération 3027 est un masque Mask3_2_lin2. A ce stade, il est possible de démasquer la donnée masquée C_Data3_lin2 avec le masque Mask3_2_lin2. Les opérations du chemin de données 302 sont terminées pour le premier tour. La donnée C_Data3_lin2 et le masque Mask3_2_lin2 peuvent être réinjectés à la place de la donnée C_Data3 et du masque Mask3_1 pour commencer le tour suivant. En résumé, comme pour les modes de mise en oeuvre des figures 3 et 4, pour appliquer le chemin de données, chaque opération linéaire est appliquée en parallèle à la donnée masquée de façon logicielle, et à son masque de façon matérielle. De plus, chaque opération non linéaire est encadrée par des opérations de démasquage et de masquage de la donnée à traiter. Selon une variante, si une opération linéaire ne modifie pas le masque, alors ladite opération n'est pas appliquée au masque en parallèle de la donnée masquée. Ce mode de mise en oeuvre présente les mêmes avantages que le mode de mise en oeuvre décrit en relation avec la . Par ailleurs, un autre avantage de ce mode de mise en oeuvre est qu'en mettant en oeuvre l'opération non linéaire 3023 de façon matérielle, l'utilisation de l'opération non linéaire 3023 et de son opération inverse est limitée en comparaison avec les modes de mise en oeuvre décrit en relation avec les figures 3 et 4. La représente, schématiquement et sous forme de blocs, des étapes d'un autre mode de mise en oeuvre de l'algorithme de chiffrement symétrique du dispositif 20 décrit en relation avec la . Dans l'exemple décrit en relation avec la , l'étape d'initialisation et le chemin de données de l'algorithme sont similaires à l'étape d'initialisation et au chemin de données décrits en relation avec la , à la différence que l'algorithme de chiffrement utilise, comme en , une table de correspondance. Dans l'exemple décrit en relation avec la , et comme en , l'opération non linéaire du chemin de données est mise en oeuvre de façon matérielle. Comme en figures 3 à 5, en , les opérations représentées à gauche de la figure sont mises en oeuvre de façon matérielle (HW), et les opérations représentées à droite de la figure sont mises en oeuvre de façon logicielle (SW). De plus, en partie haute de la figure, l'exécution des opérations d'une étape d'initialisation 401 (délimitée en pointillés) de l'algorithme de chiffrement est représentée, et, en partie basse de la figure, l'exécution des opérations du chemin de données 402 (délimitée en pointillé) pendant un premier tour est représentée. A l'étape d'initialisation 401, une donnée Data4 à chiffrer est masquée avec un masque Mask4_1 durant une opération de masquage 4011 (Masking). Il est alors fourni une donnée C_Data4 masquée. La donnée Data4 est représentée comme provenant de la partie matérielle du dispositif mettant en oeuvre l'algorithme de chiffrement, mais, à titre de variante, la donnée Data4 peut provenir de la partie logicielle du dispositif. En outre, une opération d'initialisation 4012 (Init Tab) d'une table de correspondance est exécutée, pendant laquelle une table de correspondance Tab4_1 est créée. L'opération 4012 est semblable à l'opération 2012 décrite en relation avec la . L'exécution du chemin de données 402 commence par l'application d'une première opération linéaire 4021 (Op Lin 1) à la donnée masquée C_Data4 de façon logicielle. Le résultat de l'opération 4021 est une donnée masquée C_Data4_lin1. Une première opération linéaire 4022 (Op Lin 1), identique à l'opération 4021, est, en parallèle, appliquée au masque Mask4_1 de la donnée masquée C_Data4 de façon matérielle. Le résultat de l'opération 4022 est un masque Mask4_1_lin1. A ce stade, il est possible de démasquer la donnée masquée C_Data4_lin1 avec le masque Mask4_1_lin1. L'exécution du chemin de données 402 continue avec l'application d'une opération non linéaire 4023 (Op N Lin) à la donnée C_Data4_lin1 de façon matérielle. Le résultat de l'opération 4023 est une donnée masquée C_Data4_Nlin. Une opération 4024 de rafraîchissement de la table de correspondance Tab4_1 est exécutée. Pendant cette étape, les données de la table de correspondance Tab4_1 sont modifiées pour permettre d'associer, à chaque valeur que peut prendre une donnée, la valeur résultant de l'application, successivement : - de l'opération inverse de l'opération non linéaire 4023 ; - d'une opération de démasquage de la donnée en utilisant le masque Mask4_1_lin1 ; - de l'opération non linéaire 4023 ; et - d'une opération de masquage par le masque Mask4_2. La nouvelle table de correspondance résultant de l'opération 4024 est une table de correspondance Tab4_2. La nouvelle table de correspondance Tab4_2 est ensuite utilisée par une opération de rafraîchissement de masque 4025 (Refresh Mask) de la donnée masquée C_Data4_Nlin. Cette opération 4025 a pour but de modifier le masque Mask4_1_lin1 utilisée pour le masquage de la donnée C_Data4_Nlin en le masque Mask4_2. L'opération de rafraîchissement 4025 est une recherche dans la table de correspondance Tab4_2 de la valeur correspondant à la donnée masquée C_Data4_Nlin, pour fournir la donnée masquée C_Data4_Nlin. Selon une variante, le masque Mask4_2 peut être égal au masque Mask4_1_lin1. L'exécution du chemin de données 402 continue par l'application d'une deuxième opération linéaire 4026 (Op Lin 2) à la donnée masquée C_Data4_Nlin, de façon logicielle. Le résultat de l'opération 4026 est une donnée masquée C_Data4_lin2. Une deuxième opération linéaire 4027 (Op Lin 2), identique à l'opération 4026, est, en parallèle, appliquée au masque Mask4_2 de la donnée masquée C_Data4_Nlin de façon matérielle. Le résultat de l'opération 4027 est un masque Mask4_2_lin2. A ce stade, il est possible de démasquer la donnée masquée C_Data4_lin2 avec le masque Mask4_2_lin2. Les opérations du chemin de données 402 sont terminées pour le premier tour. La donnée C_Data4_lin2, le masque Mask4_2_lin2 et la table de correspondance Tab4_2 peuvent être réinjectés à la place, respectivement, de la donnée C_Data4, du masque Mask4_2 et de la table de correspondance Tab4_1 pour commencer le tour suivant. En résumé, comme pour les modes de mise en oeuvre des figures 3 à 5, pour appliquer le chemin de données, chaque opération linéaire est appliquée en parallèle à la donnée masquée de façon logicielle, et à son masque de façon matérielle. De plus, chaque opération non linéaire est suivie d'une opération de rafraîchissement de table. Par ailleurs, une table de correspondance utilisée pour mettre en oeuvre l'opération de rafraîchissement de table doit être mise à jour, ou rafraîchie, avant la mise en oeuvre de l'opération de rafraîchissement de table si la dernière opération subit par la donnée est une opération linéaire. Selon une variante, si une opération linéaire ne modifie pas le masque, alors ladite opération n'est pas appliquée au masque en parallèle de la donnée masquée. Ce mode de mise en oeuvre présente les mêmes avantages que le mode de mise en oeuvre décrit en relation avec la à 5. Par ailleurs, un autre avantage de ce mode de mise en oeuvre est qu'il permet d'éviter des opérations de masquage et de démasquage pendant l'exécution du chemin de données, ce qui permet de rendre cette exécution plus rapide, et de réduire la taille physique de l'ensemble des circuits 21 du dispositif 20. Le dispositif 20 est alors plus compact et plus abordable. La représente, schématiquement et sous forme de blocs, des étapes d'un autre mode de mise en oeuvre de l'algorithme de chiffrement symétrique du dispositif 20 décrit en relation avec la . Dans l'exemple décrit en relation avec la , l'étape d'initialisation et le chemin de données de l'algorithme sont similaires à l'étape d'initialisation et au chemin de données décrits en relation avec la , à la différence que la donnée à masquer est toujours masquée par un même masque permanent pendant l'exécution d'opérations de façon matérielle. Comme en figures 3 à 6, en , les opérations représentées à gauche de la figure sont mises en oeuvre de façon matérielle (HW), et les opérations représentées à droite de la figure sont mises en oeuvre de façon logicielle (SW). De plus, en partie haute de la figure, l'exécution des opérations d'une étape d'initialisation 501 (délimitée en pointillés) de l'algorithme de chiffrement est représentée, et, en partie basse de la figure, l'exécution des opérations du chemin de données 502 (délimitée en pointillé) pendant un premier tour est représentée. A l'étape d'initialisation 501, une donnée Data5 à chiffrer est masquée avec un masque Mask5_1 durant une opération de masquage 5011 (Masking). Il est alors fourni une donnée C_Data5 masquée. La donnée Data5 est représentée comme provenant de la partie matérielle du dispositif mettant en oeuvre l'algorithme de chiffrement, mais, à titre de variante, la donnée Data5 peut provenir de la partie logicielle du dispositif. En outre, une opération d'initialisation 5012 (Init Tab) d'une table de correspondance Tab5_Perm est exécutée pendant l'étape 501. La table de correspondance Tab5_Perm permet d'associer, à chaque valeur que peut prendre une donnée masquée par un masque Mask5_Perm, la valeur que prendrait ladite donnée ayant subi les opérations successives suivantes : - une opération de démasquage utilisant le masque Mask5_Perm ; - une opération non linéaire de l'algorithme décrit ci-après ; et - une nouvelle opération de masquage utilisant le masque Mask5_Perm. L'exécution du chemin de données 502 commence par l'application d'une première opération linéaire 5021 (Op Lin 1) à la donnée masquée C_Data5, de façon logicielle. Le résultat de l'opération 5021 est une donnée masquée C_Data5_lin1. Une première opération linéaire 5022 (Op Lin 1), identique à l'opération 5021, est, en parallèle, appliquée au masque Mask5_1 de la donnée masquée C_Data5 de façon matérielle. Le résultat de l'opération 5022 est un masque Mask5_1_lin1. A ce stade, il est possible de démasquer la donnée masquée C_Data5_lin1 avec le masque Mask5_1_lin1. L'exécution du chemin de données 502 continue avec l'application de l'opération non linéaire 5023 (Op N Lin) de l'algorithme à la donnée C_Data5_lin1 de façon matérielle. Pour cela, la donnée masquée C_Data5_lin1 subit une première opération de rafraîchissement de masque 5024 (Refresh Mask 1) pendant laquelle le masque Mask5_1_lin1 utilisé pour le masquage de la donnée C_Data5_lin1 est modifié en le masque Mask5_Perm. Plus particulièrement, l'opération de rafraîchissement de masque 5024 comprend les opérations suivantes : - une opération de démasquage en utilisant la masque Mask5_1_lin1 ; et - une opération de masquage en utilisant le masque Mask5_Perm. Le résultat de l'opération 5024 est une donnée masquée C_Data5_Perm. L'opération non linéaire 5023 est ensuite appliquée à la donnée C_Data5_Perm en utilisant la table de correspondance Tab5_Perm. Le résultat de l'opération 5023 est une donnée masquée C_Data5_NlinPerm. Comme expliqué précédemment, l'utilisation de la table de correspondance Tab5_Perm permet de fournir une donnée masquée par le masque Mask5_Perm. L'opération suivante est une nouvelle opération de rafraîchissement de masque 5025 (Refresh Mask 2) appliquée à la donnée masquée C_Data5_NlinPerm. Pendant cette opération, le masque Mask5_Perm utilisé pour le masquage de la donnée C_Data5_NlinPerm est modifié en utilisant un masque Mask5_2. Le masque Mask5_2 est différemment, ou non, du masque Mask5_1. Plus particulièrement, l'opération de rafraîchissement de masque 5025 comprend les opérations suivantes : - une opération de démasquage en utilisant le masque Mask5_Perm ; et - une opération de masquage en utilisant le masque Mask5_2. Le résultat de l'opération 5025 est une donnée C_Data5_Nlin masquée par le masque Mask5_2. L'exécution du chemin de données 502 continue par l'application d'une deuxième opération linéaire 5026 (Op Lin 2) à la donnée masquée C_Data5_Nlin de façon logicielle. Le résultat de l'opération 5026 est une donnée masquée C_Data5_lin2. Une deuxième opération linéaire 5027 (Op Lin 2), identique à l'opération 5026, est, en parallèle, appliquée au masque Mask5_2 de la donnée masquée C_Data5_Nlin de façon matérielle. Le résultat de l'opération 5027 est un masque Mask5_2_lin2. A ce stade, il est possible de démasquer la donnée masquée C_Data5_lin2 avec le masque Mask5_2_lin2. Les opérations du chemin de données 502 sont terminées pour le premier tour. La donnée C_Data5_lin2, le masque Mask5_2_lin2 et la table de correspondance Tab5_Perm peuvent être réinjectés à la place, respectivement, de la donnée C_Data5, du masque Mask5_1 et de la table de correspondance Tab5_Perm pour commencer le tour suivant. En résumé, comme pour les modes de mise en oeuvre des figures 3 à 6, pour appliquer le chemin de données, chaque opération linéaire est appliquée en parallèle à la donnée masquée de façon logicielle, et à son masque de façon matérielle. Par ailleurs, chaque opération non linéaire est encadrée par des opérations de changement de masque, et est mise en oeuvre à l'aide d'une table de correspondance. Ce mode de mise en oeuvre présente les mêmes avantages que le mode de mise en oeuvre décrit en relation avec la à 5. Par ailleurs, un autre avantage de ce mode de mise en oeuvre est qu'il permet d'éviter des opérations de rafraîchissement de la table de correspondance pendant l'exécution du chemin de données, ce qui permet de rendre cette exécution plus rapide. De plus, les divers modes de mise en oeuvre décrits en relation avec les figures 3 à 7 peuvent permettre, dans certains cas, de réduire la taille de l'ensemble des circuits 21 adaptés à mettre en oeuvre les opérations du chemin de données de l'algorithme de chiffrement du dispositif 20 tout en conservant les performances de calculs. Ce qui permet donc de rendre le dispositif 20 plus compact et plus abordable. Un autre avantage des modes de mise en oeuvre décrits en relation avec les figures 3 à 7 est qu'ils permettent une mise en oeuvre plus sécurisée d'algorithmes de chiffrement connus. En effet, la donnée reste masquée tout au long de son traitement matériel et logiciel, ce qui offre une protection mathématique de l’algorithme de chiffrement. De plus, cette mise en oeuvre à la fois matérielle et logicielle de l'algorithme rend plus difficile une attaque physique, offrant ainsi une protection supplémentaire de l’algorithme de chiffrement. 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. Les modes de mise en oeuvre décrit en relation avec les figures 3 à 7 peuvent être appliqués à tout type d'algorithme de chiffrement par rondes, c'est-à-dire à des algorithmes de chiffrement dont le chemin de données comprend au moins une opération linéaire et au moins une opération non linéaire agencées de n'importe quelle manière. A titre d'exemple, l'algorithme de chiffrement est un algorithme de chiffrement par blocs, par exemple : l'AES (Advanced Encryption Standard), le SM4, ou le GOST R 34.12-2015, ou encore un algorithme de chiffrement de flux ou par flot (stream cipher). En particulier, l'AES (Advanced Encryption Standard) est un algorithme de chiffrement par rondes connu. Le chemin de données mis en oeuvre par l'AES se compose des trois opérations de chiffrement successives suivantes : - une opération de substitution (SubBytes) qui est une opération non linéaire ; - une opération de décalage de lignes (ShiftRows) qui est une opération linéaire ; et - une opération de mélange de colonnes (MixColumns) qui est une opération linéaire. 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. En particulier, la personne du métier sera à même d'adapter ces modes de mise en oeuvre à des chemins de données d'algorithmes de chiffrement comprenant plusieurs opérations non linéaires, et plus de deux opérations linéaires. Procédé de mise en oeuvre, par un dispositif électronique (20), d'un algorithme de chiffrement symétrique par rondes de données comportant les étapes mettant en oeuvre : - des opérations de masquage et de démasquage (1011, 1024 ; 2011, 2025 ; 3011, 3024, 3025 ; 4011, 4025 ; 5011, 5024, 5025) de données de façon matérielle ; - des opérations linéaires (1021, 1025 ; 2021, 2026 ; 3021, 3026 ; 4021, 4026 ; 5021, 5026) appliquées aux données de façon logicielle ; et - des opérations non linéaires (1023 ; 2023 ; 3023 ; 4023 ; 5023) de façon logicielle ou de façon matérielle. Procédé selon la revendication 1, dans lequel l'algorithme de chiffrement symétrique de données comprend un chemin de données (12) et un chemin de clé (11), lesdites opérations de masquage et de démasquage (1011, 1024 ; 2011, 2025 ; 3011, 3024, 3025 ; 4011, 4025 ; 5011, 5024, 5025), lesdites opérations linéaires (1021, 1025 ; 2021, 2026 ; 3021, 3026 ; 4021, 4026 ; 5021, 5026) et lesdites opérations non linéaires (1023 ; 2023 ; 3023 ; 4023 ; 5023) étant des opérations du chemin de données. Procédé selon la revendication 1 ou 2, dans lequel lesdites opérations de masquage et de démasquage comprennent des opérations de masquage (1011 ; 2011 ; 3011, 3025 ; 4011 ; 5011), des opérations de démasquage (3024) et des opérations de rafraîchissement de masque (1024 ; 2025 ; 4025 ; 5024, 5025). Procédé selon l'une quelconque des revendications 1 à 3, dans lequel chaque opération non linéaire (1023 ; 2023 ; 4023 ; 5023) est suivie d'une opération de masquage ou de démasquage (1024 ; 2025 ; 4025 ; 5025). Procédé selon les revendications 3 et 4, dans lequel chaque opération non linéaire (1023 ; 2023 ; 4023 ; 5023) est suivie d'une opération de rafraîchissement de masque (1024 ; 2025 ; 4025 ; 5025). Procédé selon les revendications 3 et 4, dans lequel chaque opération non linéaire (3023) est suivie d'une opération de masquage (3025). Procédé selon l'une quelconque des revendications 1 à 6, dans lequel chaque opération non linéaire (3023 ; 5023) est précédée d'une opération de masquage et de démasquage (3024 ; 5024). Procédé selon la revendication 7 dans son rattachement à la revendication 3, dans lequel chaque opération non linéaire (3023) est précédée d'une opération de démasquage (3024). Procédé selon la revendication 7 dans son rattachement à la revendication 3, dans lequel chaque opération non linéaire (5023) est précédée d'une opération de rafraîchissement de masque (5024). Procédé selon la revendication 3, dans lequel lesdites opérations de rafraîchissement de masque (2025 ; 4025) sont mises en oeuvre en utilisant une table de correspondance (Tab2_2 ; Tab4_2). Procédé selon la revendication 10, dans lequel l'algorithme de chiffrement comprend, en outre, des étapes mettant en oeuvre des opérations de rafraîchissement de la table de correspondance (2024 ; 4024). Procédé selon l'une quelconque des revendications 1 à 4, dans lequel lesdites opérations non linéaires (5023) sont mises en oeuvre en utilisant une table de correspondance (Tab5_Perm). Procédé selon l'une quelconque des revendications 1 à 12, dans lequel l'algorithme de chiffrement par rondes est un algorithme de chiffrement par blocs, par exemple l'AES (Advanced Encryption Standard), le SM4, et le GOST R 34.12-2015, ou un algorithme de chiffrement de flux ou par flot. Procédé selon l'une quelconque des revendications 1 à 13, dans lequel l'algorithme de chiffrement par rondes utilise un masquage utilisant une opération d'addition logique. Dispositif électronique (20) adapté à mettre en oeuvre un algorithme de chiffrement symétrique selon l'une quelconque des revendications 1 à 14.