Brevet FR3124670A1 — publié le 20221230

Protection de données traitées par un algorithme de chiffrement La présente description concerne un procédé de protection d’une première donnée (x) appliquée à un algorithme cryptographique, exécuté par un processeur, dans lequel ledit algorithme est un algorithme par tour, chaque tour traitant des contenus de premier, deuxième et troisième registres (20, 21, 22), le contenu du deuxième registre (21) étant, lors des tours d’une première parité, masqué par le contenu d’un quatrième registre (24) et le contenu du troisième registre (22) étant, lors des tours d’une deuxième parité, masqué par le contenu d’un cinquième registre (25) Figure pour l'abrégé : Fig. 3 Protection de données traitées par un algorithme de chiffrement La présente description concerne de façon générale la protection de données et plus particulièrement le traitement d’un chiffrement de données par un algorithme de chiffrement par bloc. Un algorithme de chiffrement par bloc s’exécute en une succession de tours. A chaque tour, des opérations de chiffrement sont effectuées sur des blocs d’une donnée à chiffrer. Les opérations de chiffrement dépendent en outre, d’une clef de cryptage elle-même dépendant du rang du tour. Néanmoins, les algorithmes de chiffrement par bloc sont sensibles aux attaques par canaux cachés. Ces attaques consistent à exploiter des informations telles qu’un temps de calcul ou d’exécution de l’algorithme par un processeur, une consommation électrique du dispositif électronique dans lequel l’algorithme s’exécute. L’attaquant en déduit alors la valeur d’au moins une partie d’une ou plusieurs données utilisées par l’algorithme (comme, par exemple, une clef de chiffrement). Une contre-mesure à ce type d’attaque consiste à masquer les données d’entrée traitées par l’algorithme. Il existe un besoin d’améliorer la protection des données traitées par des algorithmes de chiffrement par bloc. Un mode de réalisation pallie tout ou partie des inconvénients des procédés connus de protection de données traitées par un algorithme de chiffrement par bloc. Un mode de réalisation prévoit un procédé de protection d’une première donnée appliquée à un algorithme cryptographique, exécuté par un processeur, dans lequel ledit algorithme est un algorithme par tour, chaque tour traitant des contenus de premier, deuxième et troisième registres, le contenu du deuxième registre étant, lors des tours d’une première parité, masqué par le contenu d’un quatrième registre et le contenu du troisième registre étant, lors des tours d’une deuxième parité, masqué par le contenu d’un cinquième registre. Un mode de réalisation prévoit un processeur mettant en œuvre un algorithme cryptographique par tour configuré pour protéger une première donnée, chaque tour traitant des contenus de premier, deuxième et troisième registres, le contenu du deuxième registre étant, lors des tours d’une première parité, masqué par le contenu d’un quatrième registre et le contenu du troisième registre étant, lors des tours d’une deuxième parité, masqué par le contenu d’un cinquième registre. Selon un mode de réalisation, les contenus des premier, deuxième et troisième registres pour le premier tour sont, respectivement : - ladite première donnée masquée par un premier masque ; - un deuxième masque ; et - le premier masque masqué par un troisième masque. Selon un mode de réalisation, le contenu du premier registre suite à l’exécution du dernier tour fournit le résultat de l’application de l’algorithme à la première donnée. Selon un mode de réalisation, pour chaque tour de première parité, un quatrième masque est généré par un générateur aléatoire et est stocké dans le quatrième registre et pour chaque tour de deuxième parité, un cinquième masque est généré par le générateur et est stocké dans le cinquième registre. Selon un mode de réalisation, pour chaque tour a) le contenu du premier registre est inversé modulo un polynôme premier ; puis b) le contenu du premier registre est masqué par les contenus des deuxième et troisième registres. Selon un mode de réalisation, pour chaque tour, suite aux étapes a) et b), des opérations cryptographiques sont effectuées sur le contenu du premier registre. Selon un mode de réalisation, à chaque tour, l’inversion du contenu du premier registre est mise en œuvre par une implémentation à seuil par boîtes. Selon un mode de réalisation, le polynôme premier modulo lequel est calculé l’inverse du contenu du premier registre est fonction de l’algorithme mis en œuvre. Selon un mode de réalisation, les tours de première parité sont les tours de rang impair et les tours de deuxième parité sont les tours de rang pair. Selon un mode de réalisation, les tours de première parité sont les tours de rang pair et les tours de deuxième parité sont les tours de rang impair. Selon un mode de réalisation, en sortie du dernier tour, le premier registre contient une deuxième donnée masquée par un sixième masque. Selon un mode de réalisation, la deuxième donnée correspond à la première donnée chiffrée. Selon un mode de réalisation, le sixième masque est une combinaison multiplicative du troisième masque avec le contenu du deuxième registre ou de l’inverse du troisième masque avec le contenu du troisième registre, selon que le dernier tour soit de première ou de deuxième parité. Selon un mode de réalisation, l’algorithme cryptographique utilisé est l’AES. Selon un mode de réalisation, l’algorithme cryptographique utilisé est le SM4. 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 un exemple d’un dispositif électronique du type auquel s’appliquent les modes de réalisation décrits ; la représente de façon schématique et sous forme de blocs un exemple illustrant un mode de mise en œuvre du procédé décrit ; la représente de façon schématique et sous forme de blocs un autre exemple illustrant un mode de mise en œuvre du procédé décrit ; la est un organigramme représentant des étapes d’un mode de mise en œuvre du procédé décrit ; la est un schéma-bloc illustrant un exemple d’algorithme de chiffrement du type auquel s’appliquent les modes de réalisations décrits ; et la est un schéma-bloc illustrant un exemple d’application, par l’algorithme illustré en , des modes de réalisations décrits. Procédé de protection d’une première donnée (x) appliquée à un algorithme cryptographique, exécuté par un processeur (12), dans lequel ledit algorithme est un algorithme par tour, chaque tour traitant des contenus de premier, deuxième et troisième registres (20, 21, 22), le contenu du deuxième registre (21) étant, lors des tours d’une première parité, masqué par le contenu d’un quatrième registre (24) et le contenu du troisième registre (22) étant, lors des tours d’une deuxième parité, masqué par le contenu d’un cinquième registre (25). Procédé selon la revendication 1, dans lequel les contenus des premier, deuxième et troisième registres (20,21,22) pour le premier tour sont, respectivement : - ladite première donnée (x) masquée par un premier masque (R1) ; - un deuxième masque (R2) ; et - le premier masque (R1) masqué par un troisième masque (R3). Procédé selon la revendication 1 ou 2, dans lequel le contenu du premier registre (20) suite à l’exécution du dernier tour fournit le résultat de l’application de l’algorithme à la première donnée (x). Procédé selon l’une quelconque des revendications 1 à 3, dans lequel, pour chaque tour de première parité, un quatrième masque (R4) est généré par un générateur aléatoire (16) et est stocké dans le quatrième registre (24) et pour chaque tour de deuxième parité, un cinquième masque (R5) est généré par le générateur (16) et est stocké dans le cinquième registre (25). Procédé selon l’une quelconque des revendications 1 à 4, dans lequel, pour chaque tour a) le contenu du premier registre (20) est inversé modulo un polynôme premier ; puis b) le contenu du premier registre (20) est masqué par les contenus des deuxième et troisième registres (21, 22). Procédé selon la revendication 5, dans lequel, pour chaque tour, suite aux étapes a) et b), des opérations cryptographiques sont effectuées sur le contenu du premier registre (20). Procédé selon la revendication 5 ou 6, dans lequel, à chaque tour, l’inversion du contenu du premier registre (20) est mise en œuvre par une implémentation à seuil par boîtes. Procédé selon l’une quelconques des revendications 5 à 7, dans lequel le polynôme premier modulo lequel est calculé l’inverse du contenu du premier registre (20) est fonction de l’algorithme mis en œuvre. Procédé selon l’une quelconque des revendications 1 à 8, dans lequel, les tours de première parité sont les tours de rang impair et les tours de deuxième parité sont les tours de rang pair. Procédé selon l’une quelconque des revendications 1 à 8, dans lequel, les tours de première parité sont les tours de rang pair et les tours de deuxième parité sont les tours de rang impair. Procédé selon l’une quelconques des revendications 1 à 10, dans lequel en sortie du dernier tour, le premier registre (20) contient une deuxième donnée (y) masquée par un sixième masque. Procédé selon la revendication 11, dans lequel la deuxième donnée (y) correspond à la première donnée (x) chiffrée. Procédé selon la revendication 11 ou 12, dans lequel le sixième masque est une combinaison multiplicative du troisième masque (R3) avec le contenu du deuxième registre (21) ou de l’inverse du troisième masque (R3) avec le contenu du troisième registre, selon que le dernier tour soit de première ou de deuxième parité. Procédé selon l’une quelconques des revendications 1 à 13, dans lequel l’algorithme cryptographique utilisé est l’AES. Procédé selon l’une quelconques des revendications 1 à 13, dans lequel l’algorithme cryptographique utilisé est le SM4. Processeur mettant en œuvre un algorithme cryptographique par tour configuré pour protéger une première donnée, chaque tour traitant des contenus de premier, deuxième et troisième registres (20, 21, 22), le contenu du deuxième registre (21) étant, lors des tours d’une première parité, masqué par le contenu d’un quatrième registre (24) et le contenu du troisième registre (22) étant, lors des tours d’une deuxième parité, masqué par le contenu d’un cinquième registre (25).