Brevet FR3101499A1 — publié le 20210402

Sécurisation du chiffrement DES et du déchiffrement DES inverse L’invention concerne un procédé de chiffrement ou de déchiffrement, comprenant une série d’au moins un chiffrement 3DES (3DES1, 3DES2) ou d’au moins un déchiffrement 3DES -1 inverse, chaque chiffrement ou déchiffrement comportant une première, deuxième et troisième opération DES (OP1, OP2, OP3) ou DES inverse réalisées successivement en utilisant respectivement une première, deuxième et troisième clé (K1, K2, K3). Le procédé comprend : exécution de chaque chiffrement ou déchiffrement de la série, selon un premier mode (MD1) dans lequel les deuxième et troisième clés (K2, K3) sont des clés identiques (KR1) de sorte que les deuxième et troisième opérations (OP2, OP3) s’annulent mutuellement, ou selon un deuxième mode (MD2) dans lequel les première et deuxième clés (K1, K2) sont des clés identiques (KR2, KR2) de sorte que les première et deuxième opérations (OP1, OP2) s’annulent mutuellement. L’un parmi les premier et deuxième modes est sélectionné de façon aléatoire pour chaque chiffrement ou déchiffrement de la série. Figure pour l’abrégé : Fig. 3. Sécurisation du chiffrement DES et du déchiffrement DES inverse L'invention se rapporte au domaine de la cryptographie et concerne plus particulièrement la mise en œuvre sécurisée de chiffrements de type DES ou de déchiffrements de type DES inverse pour chiffrer ou déchiffrer des données. Le DES (pour « Data Encryption Standard ») est un algorithme de chiffrement symétrique bien connu utilisant une clé de chiffrement pour chiffrer des données. Le DES inverse (noté aussi par la suite DES -1 ) permet par ailleurs de déchiffrer sur le même principe des données précédemment chiffrées au moyen d’un chiffrement DES. Le DES et le DES inverse (noté DES -1 ), offrent un niveau de sécurité relativement limité. Toutefois, bien qu’elles soient vulnérables notamment face à une attaque systématique en un temps raisonnable, ces techniques sont encore aujourd’hui couramment utilisées dans diverses applications. Le DES est par exemple encore utilisé pour le calcul de codes MAC (pour « Message Authentication Code »), notamment pour assurer l’intégrité d’un message. Le triple DES (aussi nommé 3DES) est un algorithme de chiffrement symétrique. Comme représenté dans un exemple en figure 1 , un chiffrement 3DES implique l’exécution successive d’un premier chiffrement 2 de type DES à partir de données d’entrées IN1, suivi d’un déchiffrement 4 de type DES inverse (DES -1 ) prenant en entrée le résultat du chiffrement 2, suivi d’un deuxième chiffrement 6 de type DES prenant en entrée le résultat du déchiffrement 4. Les opérations 2, 4 et 6 prennent respectivement en entrée des clés K1, K2 et K3. Ces 3 clés peuvent être différentes mais le triple DES peut être utilisé avec 3 fois la même valeur de clé (ou seulement 2 clés différentes) pour mettre en œuvre un simple chiffrement DES, pour des raisons notamment de rétrocompatibilité. Dans une implémentation matérielle, cela permet ainsi d’utiliser un même composant pour mettre en œuvre à la fois le standard DES et le standard triple DES. De manière analogue, un déchiffrement de type triple DES inverse (appelé aussi 3DES -1 ) comprend l’enchaînement successif d’un premier DES inverse, d’un DES et d’un deuxième DES inverse, en utilisant 3 clés respectives. Outre les attaques théoriques sur l’algorithme DES, il existe en parallèle des attaques physiques qui peuvent retrouver très rapidement la valeur de la clé secrète. En particulier, lorsque ce type d’algorithme est mis en œuvre dans certains dispositifs, tels que des cartes à puce par exemple, il est vulnérable en particulier à des attaques malveillantes s’appuyant sur la surveillance des signaux électromagnétiques émis par le dispositif au cours de l’exécution de l’algorithme. A partir d’une analyse des signaux électromagnétiques captés au cours de l’exécution du chiffrement, un tiers ou entité malveillante est susceptible de déterminer les clés utilisées et ainsi de craquer le chiffrement. Un besoin existe donc aujourd’hui pour renforcer la sécurité du chiffrement DES et du déchiffrement DES -1 utilisant respectivement un chiffrement 3DES ou déchiffrement 3DES -1 . A cet effet, la présente invention concerne un procédé de chiffrement ou de déchiffrement, comprenant une série d’au moins un chiffrement de type triple DES ou d’au moins un déchiffrement de type triple DES inverse, chaque chiffrement ou déchiffrement prenant en entrée des données d’entrée et comportant une première, deuxième et troisième opération de type DES ou DES inverse qui sont réalisées successivement en utilisant respectivement une première, deuxième et troisième clé, dans lequel les première et troisième opérations sont des opérations de type identique, de chiffrement ou de déchiffrement, tandis que la deuxième opération est une opération de type inverse aux première et troisième opérations, ledit procédé comprenant : exécution de chaque chiffrement ou déchiffrement de ladite série, soit selon un premier mode dans lequel les deuxième et troisième clés sont des clés identiques de sorte que les deuxième et troisième opérations s’annulent mutuellement, soit selon un deuxième mode dans lequel les première et deuxième clés sont des clés identiques de sorte que les première et deuxième opérations s’annulent mutuellement, l’un parmi le premier mode et le deuxième mode étant sélectionné de façon aléatoire pour chaque chiffrement ou déchiffrement de ladite série. L’application aléatoire du premier ou deuxième mode lors de chaque chiffrement ou déchiffrement de la série permet de complexifier significativement l’analyse des signaux qu’un hackeur doit entreprendre pour déterminer les clés utilisées pour la mise en œuvre du simple chiffrement DES ou déchiffrement DES -1 à l’aide respectivement d’un chiffrement 3DES ou déchiffrement 3DES -1 . En basculant aléatoirement entre ces deux modes, il est particulièrement difficile pour un tiers malveillant de déterminer les clés utilisées pour la mise en œuvre du simple chiffrement DES ou déchiffrement DES -1 lors de chaque chiffrement ou déchiffrement de la série. Il sera donc plus difficile de craquer le chiffrement DES ou déchiffrement DES -1 . Dans un mode de réalisation particulier, la série comprend : une pluralité de chiffrements de type triple DES, les première et troisième opérations étant des opérations de chiffrement de type DES et la deuxième opération étant une opération de déchiffrement de type DES inverse ; ou une pluralité de déchiffrements de type triple DES inverse, les première et troisième opérations étant des opérations de déchiffrement de type DES inverse et la deuxième opération étant une opération de chiffrement de type DES. Dans un mode de réalisation particulier, un mode commun respectif est sélectionné de façon indépendante, pour chaque groupe de X chiffrement(s) ou déchiffrement(s) de la série, parmi le premier mode et le deuxième mode aléatoirement, préalablement à l’exécution de ladite série, X étant un nombre entier supérieur ou égal à 1, chaque mode commun respectif étant appliqué à chaque chiffrement ou déchiffrement du groupe correspondant. Dans un mode de réalisation particulier, un mode unique, parmi le premier mode et le deuxième mode, est sélectionné aléatoirement préalablement à l’exécution de ladite série, ledit mode unique étant appliqué à chaque chiffrement ou déchiffrement de ladite série. Dans un mode de réalisation particulier, l’exécution est telle que : dans le premier mode, les deuxième et troisième clés sont des clés aléatoires identiques ; et dans le deuxième mode, les première et deuxième clés sont des clés aléatoires identiques. Dans un mode de réalisation particulier, la série comprend une pluralité de chiffrements successifs de type triple DES ou de déchiffrements successifs de type triple DES inverse, le procédé comprenant : obtention de données d’entrée effectives à chiffrer ou déchiffrer ; dans lequel, lors de ladite série : au moins un chiffrement factice ou déchiffrement factice prenant chacun en entrée des premières données d’entrée est réalisé en appliquant aléatoirement le premier ou second mode, de sorte que dans le premier mode la première clé est une clé factice choisie aléatoirement et dans le deuxième mode la troisième clé est une clé factice choisie aléatoirement ; et un unique chiffrement effectif ou déchiffrement effectif prenant en entrée les données d’entrée effectives est réalisé en appliquant aléatoirement le premier ou le second mode pour chiffrer ou déchiffrer les données d’entrées effectives, de sorte que dans le premier mode la première clé est une clé effective sélectionnée pour chiffrer ou déchiffrer lesdites données d’entrées effectives et dans le deuxième mode la troisième clé est une clé effective sélectionnée pour chiffrer ou déchiffrer lesdites deuxièmes données d’entrées. Dans un mode de réalisation particulier, ladite clé factice est identique pour chaque chiffrement factice ou déchiffrement factice, ladite clé factice étant sélectionnée aléatoirement préalablement à l’exécution de ladite série. Dans un mode de réalisation particulier, une nouvelle clé factice est sélectionnée aléatoirement de façon indépendante pour chaque chiffrement factice ou déchiffrement factice de sorte à être utilisée en tant que première clé dans le premier mode et en tant que troisième clé dans le deuxième mode. Dans un mode de réalisation particulier, les premières données prises en entrée dans chaque chiffrement factice ou déchiffrement factice sont définies de sorte à être identiques aux données d’entrée effectives prises en entrée dans l’unique chiffrement effectif ou déchiffrement effectif. Dans un mode de réalisation particulier, les premières données prises en entrée dans chaque chiffrement factice ou déchiffrement factice sont définies de façon aléatoire. Dans un mode de réalisation particulier, les premières données sont définies aléatoirement préalablement à l’exécution de ladite série de façon à être identiques pour chaque chiffrement factice ou déchiffrement factice de ladite série. Dans un mode de réalisation particulier, les premières données sont définies aléatoirement et de façon indépendante pour chaque chiffrement factice ou déchiffrement factice de ladite série. Dans un mode de réalisation particulier, ladite série comprend une pluralité de chiffrements successifs de type triple DES ou de déchiffrements successifs de type triple DES inverse, le procédé comprenant : obtention de données d’entrée effectives à chiffrer ou déchiffrer ; dans lequel, lors de ladite série : au moins un chiffrement factice ou déchiffrement factice prenant chacun en entrée des données factices aléatoires est réalisé en appliquant aléatoirement le premier ou second mode ; et un unique chiffrement effectif ou déchiffrement effectif prenant en entrée les données d’entrée effectives est réalisé en appliquant aléatoirement le premier ou le second mode pour chiffrer ou déchiffrer les données d’entrée effectives. Dans un mode particulier de réalisation, les différentes étapes du procédé de l’invention sont déterminées par des instructions de programmes d’ordinateurs. En conséquence, l’invention vise aussi un programme d’ordinateur sur un support d’informations (ou support d’enregistrement), ce programme étant susceptible d’être mis en œuvre dans un dispositif, tel qu’une carte à puce par exemple, ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre des étapes d'un procédé de l’invention tel que défini dans ce document. Ce programme peut utiliser n’importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n’importe quelle autre forme souhaitable. L’invention vise aussi un support d'informations (ou support d’enregistrement) lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy disc) ou un disque dur. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. L’invention vise également un dispositif configuré pour mettre en œuvre le procédé de l’invention. En particulier, l’invention concerne un dispositif de chiffrement ou de déchiffrement, configuré pour exécuter une série d’au moins un chiffrement de type triple DES ou d’au moins un déchiffrement de type triple DES inverse, chaque chiffrement ou déchiffrement prenant en entrée des données d’entrée et comportant une première, deuxième et troisième opération de type DES ou DES inverse qui sont réalisées successivement en utilisant respectivement une première, deuxième et troisième clé, dans lequel les première et troisième opérations sont des opérations de type identique, de chiffrement ou de déchiffrement, tandis que la deuxième opération est une opération de type inverse aux première et troisième opérations, ledit dispositif comprenant : un module d’exécution pour exécuter chaque chiffrement ou déchiffrement de ladite série, soit selon un premier mode dans lequel les deuxième et troisième clés sont des clés identiques de sorte que les deuxième et troisième opérations s’annulent mutuellement, soit selon un deuxième mode dans lequel les première et deuxième clés sont des clés identiques de sorte que les première et deuxième opérations s’annulent mutuellement ; et un module de sélection pour sélectionner de façon aléatoire l’un parmi le premier mode et le deuxième mode à appliquer pour chaque chiffrement ou déchiffrement de ladite série. A noter que les différents modes de réalisation définis dans ce document en relation avec le procédé de l’invention ainsi que les avantages associés s’appliquent de façon analogue au dispositif de l’invention. Pour chaque étape du procédé de l’invention, le dispositif peut comprendre un module correspondant configuré pour réaliser ladite étape. Selon un mode de réalisation, l'invention est mise en œuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, le terme « module » peut correspondre dans ce document aussi bien à un composant logiciel, qu'à un composant matériel ou à un ensemble de composants matériels et logiciels. D’autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif. Sur les figures: La figure 1 représente schématiquement un chiffrement triple DES connu de l’art antérieur ; La figure 2 représente la structure d’un dispositif conforme à un mode de réalisation particulier de l’invention ; La figure 3 représente schématiquement un chiffrement triple DES selon un premier mode et selon un deuxième mode, conformément à un mode de réalisation particulier de l’invention ; La figure 4 représente schématiquement un déchiffrement triple DES inverse selon un premier mode et selon un deuxième mode, conformément à un mode de réalisation particulier de l’invention ; La figure 5 représente schématiquement, sous forme d’un diagramme, les étapes d’un procédé de chiffrement ou de déchiffrement selon un mode de réalisation particulier de l’invention ; La figure 6 représente schématiquement une série de chiffrements triple DES mise en œuvre selon un mode de réalisation particulier de l’invention ; et La figure 7 représente schématiquement, sous forme d’un diagramme, les étapes d’un procédé de chiffrement ou de déchiffrement selon un mode de réalisation particulier de l’invention. Procédé de chiffrement ou de déchiffrement, comprenant une série (SR) d’au moins un chiffrement (3DES1-3DES4) de type triple DES ou d’au moins un déchiffrement (3DES1a, 3DES2a,) de type triple DES inverse, chaque chiffrement ou déchiffrement prenant en entrée des données d’entrée (IN) et comportant une première, deuxième et troisième opération (OP1, OP2, OP3) de type DES ou DES inverse qui sont réalisées successivement en utilisant respectivement une première, deuxième et troisième clé (K1, K2, K3), dans lequel les première et troisième opérations sont des opérations de type identique, de chiffrement ou de déchiffrement, tandis que la deuxième opération est une opération de type inverse aux première et troisième opérations, ledit procédé comprenant : exécution (S12 ; S28) de chaque chiffrement ou déchiffrement de ladite série, soit selon un premier mode (MD1) dans lequel les deuxième et troisième clés (K2, K3) sont des clés identiques (KR1) de sorte que les deuxième et troisième opérations (OP2, OP3) s’annulent mutuellement, soit selon un deuxième mode (MD2) dans lequel les première et deuxième clés (K1, K2) sont des clés identiques (KR2) de sorte que les première et deuxième opérations (OP1, OP2) s’annulent mutuellement, l’un parmi le premier mode (MD1) et le deuxième mode (MD2) étant sélectionné de façon aléatoire pour chaque chiffrement ou déchiffrement de ladite série. Procédé selon la revendication 1, dans lequel la série comprend : une pluralité de chiffrements de type triple DES, les première et troisième opérations étant des opérations de chiffrement de type DES et la deuxième opération étant une opération de déchiffrement de type DES inverse ; ou une pluralité de déchiffrements de type triple DES inverse, les première et troisième opérations étant des opérations de déchiffrement de type DES inverse et la deuxième opération étant une opération de chiffrement de type DES. Procédé selon la revendication 1 ou 2, dans lequel un mode commun respectif est sélectionné de façon indépendante, pour chaque groupe de X chiffrement(s) ou déchiffrement(s) de la série, parmi le premier mode et le deuxième mode aléatoirement, préalablement à l’exécution de ladite série, X étant un nombre entier supérieur ou égal à 1, chaque mode commun respectif étant appliqué à chaque chiffrement ou déchiffrement du groupe correspondant. Procédé selon l’une quelconque des revendications 1 à 3, dans lequel un mode unique, parmi le premier mode et le deuxième mode, est sélectionné aléatoirement préalablement à l’exécution de ladite série, ledit mode unique étant appliqué à chaque chiffrement ou déchiffrement de ladite série. Procédé selon l’une quelconque des revendications 1 à 4, dans lequel l’exécution est telle que : dans le premier mode (MD1), les deuxième et troisième clés (K2, K3) sont des clés aléatoires identiques (KR1) ; et dans le deuxième mode (MD2), les première et deuxième clés (K1, K2) sont des clés aléatoires identiques (KR2). Procédé selon l’une quelconque des revendications 1 à 5, dans lequel la série comprend une pluralité de chiffrements (3DES1-3DES4) successifs de type triple DES ou de déchiffrements successifs de type triple DES inverse, le procédé comprenant : obtention de données d’entrée effectives (INE) à chiffrer ou déchiffrer ; dans lequel, lors de ladite série : au moins un chiffrement factice (3DES1, 3DES2, 3DS4) ou déchiffrement factice prenant chacun en entrée des premières données d’entrée (IN) est réalisé en appliquant aléatoirement le premier ou second mode (IN1, IN2, IN4), de sorte que dans le premier mode la première clé (K1) est une clé factice (KR3) choisie aléatoirement et dans le deuxième mode la troisième clé (K3) est une clé factice (KR3) choisie aléatoirement ; et un unique chiffrement effectif ou déchiffrement effectif (3DES3) prenant en entrée les données d’entrée effectives (INE) est réalisé en appliquant aléatoirement le premier ou le second mode (MD1, MD2) pour chiffrer ou déchiffrer les données d’entrées effectives, de sorte que dans le premier mode la première clé (K1) est une clé effective (KE) sélectionnée pour chiffrer ou déchiffrer lesdites données d’entrées effectives et dans le deuxième mode la troisième clé (K3) est une clé effective (KE) sélectionnée pour chiffrer ou déchiffrer lesdites deuxièmes données d’entrées. Procédé selon la revendication 6, dans lequel ladite clé factice est identique pour chaque chiffrement factice ou déchiffrement factice, ladite clé factice étant sélectionnée aléatoirement préalablement à l’exécution de ladite série. Procédé selon la revendication 6, dans lequel une nouvelle clé factice est sélectionnée aléatoirement de façon indépendante pour chaque chiffrement factice ou déchiffrement factice de sorte à être utilisée en tant que première clé dans le premier mode et en tant que troisième clé dans le deuxième mode. Procédé selon l’une quelconque des revendications 6 à 8, dans lequel les premières données prises en entrée dans chaque chiffrement factice ou déchiffrement factice sont définies de sorte à être identiques aux données d’entrée effectives prises en entrée dans l’unique chiffrement effectif ou déchiffrement effectif. Procédé selon l’une quelconque des revendications 6 à 8, dans lequel les premières données prises en entrée dans chaque chiffrement factice ou déchiffrement factice sont définies de façon aléatoire. Procédé selon la revendication 10, dans lequel les premières données sont définies aléatoirement préalablement à l’exécution de ladite série de façon à être identiques pour chaque chiffrement factice ou déchiffrement factice de ladite série. Procédé selon la revendication 10, dans lequel les premières données sont définies aléatoirement et de façon indépendante pour chaque chiffrement factice ou déchiffrement factice de ladite série. Procédé selon l’une quelconque des revendications 1 à 5, dans lequel ladite série comprend une pluralité de chiffrements successifs de type triple DES ou de déchiffrements successifs de type triple DES inverse, le procédé comprenant : obtention de données d’entrée effectives (IN3) à chiffrer ou déchiffrer ; dans lequel, lors de ladite série : au moins un chiffrement factice (3DES1, 3DES2, 3DS4) ou déchiffrement factice prenant chacun en entrée des données factices aléatoires est réalisé en appliquant aléatoirement le premier ou second mode (MD1, MD2) ; et un unique chiffrement effectif ou déchiffrement effectif (3DES3) prenant en entrée les données d’entrée effectives (IN3) est réalisé en appliquant aléatoirement le premier ou le second mode (MD1, MD2) pour chiffrer ou déchiffrer les données d’entrée effectives. Programme d’ordinateur (PG1) comportant des instructions pour l’exécution des étapes d’un procédé selon l’une quelconque des revendications 1 à 13 lorsque ledit programme est exécuté par un ordinateur. Dispositif de chiffrement ou de déchiffrement, configuré pour exécuter une série d’au moins un chiffrement (3DES1-3DES 4) de type triple DES ou d’au moins un déchiffrement (3DES1a,3DES 2a) de type triple DES inverse, chaque chiffrement ou déchiffrement prenant en entrée des données d’entrée (IN) et comportant une première, deuxième et troisième opération (OP1, OP2, OP3) de type DES ou DES inverse qui sont réalisées successivement en utilisant respectivement une première, deuxième et troisième clé (K1, K2, K3), dans lequel les première et troisième opérations sont des opérations de type identique, de chiffrement ou de déchiffrement, tandis que la deuxième opération est une opération de type inverse aux première et troisième opérations, ledit dispositif comprenant : un module d’exécution pour exécuter chaque chiffrement ou déchiffrement de ladite série, soit selon un premier mode (MD1) dans lequel les deuxième et troisième clés (K2, K3) sont des clés identiques (KR1) de sorte que les deuxième et troisième opérations (OP2, OP3) s’annulent mutuellement, soit selon un deuxième mode (MD2) dans lequel les première et deuxième clés (K1, K2) sont des clés identiques (KR2, KR2) de sorte que les première et deuxième opérations (OP1, OP2) s’annulent mutuellement ; et un module de sélection pour sélectionner de façon aléatoire l’un parmi le premier mode (MD1) et le deuxième mode (MD2) à appliquer pour chaque chiffrement ou déchiffrement de ladite série.