FR2974693A1 - Procede pour appliquer une contre mesure de masquage haute entropie dans un algorithme de chiffrement par blocs, et circuit integre logique mettant en œuvre un tel procede. - Google Patents

Procede pour appliquer une contre mesure de masquage haute entropie dans un algorithme de chiffrement par blocs, et circuit integre logique mettant en œuvre un tel procede. Download PDF

Info

Publication number
FR2974693A1
FR2974693A1 FR1153547A FR1153547A FR2974693A1 FR 2974693 A1 FR2974693 A1 FR 2974693A1 FR 1153547 A FR1153547 A FR 1153547A FR 1153547 A FR1153547 A FR 1153547A FR 2974693 A1 FR2974693 A1 FR 2974693A1
Authority
FR
France
Prior art keywords
substitution
encryption
masked
algorithm
substitution tables
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1153547A
Other languages
English (en)
Other versions
FR2974693B1 (fr
Inventor
Celine Thuillet
Julien Francq
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Airbus DS SAS
Original Assignee
Cassidian SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cassidian SAS filed Critical Cassidian SAS
Priority to FR1153547A priority Critical patent/FR2974693B1/fr
Priority to PCT/EP2012/057325 priority patent/WO2012146550A1/fr
Priority to EP12721434.4A priority patent/EP2702720A1/fr
Publication of FR2974693A1 publication Critical patent/FR2974693A1/fr
Application granted granted Critical
Publication of FR2974693B1 publication Critical patent/FR2974693B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/043Masking or blinding of tables, e.g. lookup, substitution or mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Procédé pour appliquer une contre mesure de masquage haute entropie dans un algorithme de chiffrement par blocs, et circuit intégré logique mettant en œuvre un tel procédé. L'invention concerne un procédé de chiffrement basé sur un algorithme de chiffrement par blocs mettant en œuvre une contre mesure de masquage et comprenant une étape de substitution non linéaire des éléments d'une matrice Etat. Selon l'invention, ce procédé comprend pour chaque chiffrement d'un bloc : - une étape de pré-calcul, au cours de laquelle on génère en parallèle plusieurs tables de substitution indépendantes et masquées, et pendant l'étape de substitution non linéaire, on substitue les éléments de la matrice Etat par des éléments provenant desdites tables de substitution indépendantes et masquées.

Description

1 " Procédé pour appliquer une contre mesure de masquage haute entropie dans un algorithme de chiffrement par blocs, et circuit intégré logique mettant en oeuvre un tel procédé." La présente se rapporte à un procédé pour appliquer une contre mesure de masquage haute entropie dans un algorithme de chiffrement par blocs. Elle se rapporte également à un dispositif pour la mise en oeuvre d'un tel procédé. io Elle trouve une application particulièrement intéressante dans le domaine de chiffrement de données au moyen d'algorithmes spécifiques de masquage de toutes les valeurs intermédiaires afin de protéger des données sensibles contre d'éventuelles attaques. De façon générale, lors d'une implémentation de primitives 15 cryptographiques, il est nécessaire de prendre en compte et de se prémunir contre toutes tentatives d'extraction frauduleuse des données sensibles comme la clé de chiffrement. De telles tentatives peuvent être des attaques par canaux cachés (SCA pour « Side Channel Attacks »). On parle de canal caché car ces attaques sont généralement effectuées par des voies 20 alternatives. Dans de telles attaques, on analyse toute caractéristique émanant d'un circuit (consommation d'énergie, les émanations électromagnétiques, etc) implémentant un algorithme de chiffrement afin d'en déduire des données sensibles. En effet, il existe une corrélation entre ces caractéristiques et les données traitées. Cette analyse peut être simple ou 25 différentielle (DPA pour « Differential Power Analysis »). Une contre-mesure souvent proposée contre les attaques par canaux cachés est notamment un système de masquage. Le masquage de données consiste à rendre aléatoire toutes les données en leur ajoutant des valeurs aléatoires appelées masques. Les masques sont renouvelés à chaque 30 nouveau chiffrement de sorte que les caractéristiques observables deviennent indépendantes des données sensibles : ainsi, il est plus difficile pour une personne frauduleuse de récupérer la clé. La majorité des processus de masquage de l'art antérieur s'effectue par masquage booléen : les masques sont ajoutés par des ou-exclusif (XOR). 35 La plupart des algorithmes de chiffrement par blocs utilise une transformation non linéaire pour produire un effet de confusion et une 2 transformation linéaire pour produire un effet de diffusion. Lorsque l'on masque les variables impliquées dans ces transformations, on doit prévoir les conséquences de l'introduction du masque d'entrée sur la sortie de la transformation (qui sera aussi masquée). On doit être en mesure de donner un résultat non masqué à la fin de l'algorithme. L'ajout d'un masque d'entrée sur la transformation linéaire conduit à des conséquences facilement prévisibles. Ceci n'est pas le cas pour les transformations non linéaires. Dans un algorithme de chiffrement et déchiffrement tel que par exemple l'AES, le texte clair à chiffrer est découpé en blocs de 128 bits qui io sont ensuite mis sous forme de matrice carrée de 16 éléments dite « Etat », chaque élément de cet Etat représentant un octet. La clé de chiffrement est également mise sous forme matricielle. Le processus de chiffrement est itératif et comprend plusieurs tours ou rondes. Chaque tour est fait de plusieurs transformations linéaires et non linéaires qui sont appliquées à 15 l'Etat. Les transformations non linéaires font généralement intervenir des tables de substitution qui sont par ailleurs fortement sensibles aux attaques par canaux cachés. Le processus de déchiffrement est similaire au chiffrement, les transformations étant remplacées par leur inverse. Le nombre de rondes 20 dépend de la taille de la clé de chiffrement. Une table de substitution (ou « Sbox ») accepte x bits d'entrée et délivre y bits de sortie (par exemple, pour l'AES, x = y = 8). De nombreuses implémentations d'algorithme de chiffrement sur des processeurs de taille (-bits ont été publiées (par exemple, pour I'AES, généralement I = 8 ou 32 25 pour un Etat de 128-bit). Cette transformation, non linéaire, doit être recalculée en fonction des masques pour chaque nouveau chiffrement. L'art antérieur utilise une seule table de substitution car ce calcul est très couteux en termes de temps de calcul et d'utilisation de la mémoire vive (RAM). Les algorithmes de chiffrement implémentés dans des processeurs 30 cryptographiques I-bits et protégés contre les attaques par canaux cachés utilisent généralement un masque y-bits de sortie pour la SBox. Enfin, en tenant compte de l'entropie apportée par les masques, l'entropie globale est sous-optimale pour contrer les attaques sophistiquées par canaux cachés de second ordre notamment (ce genre d'attaques combine des mesures par 35 canaux cachés à différents moments de façon à retirer les masques). Dans le cadre d'un algorithme AES, le nombre global de masques (de longueur 8 bits) indépendants nécessaires est de 6 pour une implémentation architecturale 32 bits (1=32). Ainsi, l'entropie apportée par les masques dans un algorithme AES 128-bits est égal à 6 x 8 = 48 bits, ce qui est sous-optimal.
La figure 1 décrit un processus de masquage pour le chiffrement par blocs selon l'art antérieur. Sur la gauche de la figure 1, on distingue une clé de chiffrement 1 qui doit être dérivée via un module de préparation de clés de rondes 2 (Key Schedule) avant d'être utilisées par un algorithme de chiffrement ou un io ensemble de sous-clés de rondes 3 préalablement dérivées à partir de la clé de chiffrement 1. Ces sous-clés peuvent être calculées à la volée ou pré-calculées. Au départ, on considère une table de substitution dite SBox 4 stockée en mémoire. 15 Le centre de la figure 1 comporte un cadre 5 illustrant un processus d'initialisation dans lequel on réalise le masquage à partir d'une source aléatoire 6. Cette source aléatoire 6 est utilisée pour générer des masques. L'accès et l'utilisation de valeurs aléatoires dépend fortement de la plate-forme implémentant l'algorithme (tables de valeurs aléatoires pré-générées, 20 appel à une source aléatoire, etc.) Le texte en clair 7 (entrée) et les sous-clés 3 doivent être masqués au début du calcul de chiffrement par bloc : le module de sélection 8 permet d'obtenir s valeurs depuis la source aléatoire 6, ces s valeurs étant utilisées pour le chiffrement du texte en clair 7 et des sous-clés 3. On obtient ainsi une 25 entrée masquée et des sous-clés masquées. On masque également la SBox 4. Pour ce faire, on utilise un module de masquage Sbox 9 permettant de générer une unique table de substitution Sbox masquée 10 à partir de la Sbox 4 et des valeurs x et y provenant de la source aléatoire via le module de sélection 8. 30 L'entrée masquée, les sous-clés masquées et la Sbox masquée 10 vont alimenter un algorithme de chiffrement 11. La plupart des algorithmes de chiffrement par blocs utilise au moins une opération non linéaire pour produire un effet de confusion et des opérations linéaires pour produire un effet de diffusion. Sur la figure 1, la couche SBox 12 symbolise l'opération 35 non linéaire par utilisation de la seule Sbox masquée 10. Les opérations A - Z symbolisent les opérations linéaires. La couche d'insertion de clé permet 4 d'insérer les sous-clés masquées une à une en combinaison avec le texte clair masqué. Cette ronde de série d'opérations est exécutée r fois, autant de fois qu'il y a des sous-clés. Localement, un processus de re-masquage 14 peut être nécessaire. À la fin des r tours, le texte chiffré 16 est démasqué grâce à la couche 15.
On va maintenant décrire un processus générique pour masquer une Sbox selon l'art antérieur. L'effet d'un masquage booléen sur des opérations io linéaires est simple à prédire. Ce n'est pas le cas pour les opérations non-linéaires. Une table SBox peut être mise en oeuvre sous forme de « Lookup Table » ou table de correspondance, ce qui signifie que pour chaque entrée possible e, la sortie est stockée dans une mémoire à l'index correspondant 15 dans une table S. Pour masquer une telle table, on doit produire une table masquée Sm avec la propriété Sm (e E m) = S(e) O+ m' , où m et m' sont respectivement le masque d'entrée et le masque de sortie. Même s'il s'agit d'une procédure simple, elle peut être très coûteuse : il faut parcourir toutes les entrées e, 20 récupérer S(e) et stocker S(e)O+ m' pour tous les couples (m,m') dans la table masquée. Par conséquent, l'effort de calcul et la quantité de mémoire augmentent avec le nombre de masques utilisés : c'est pourquoi dans la plupart des applications, un seul couple (m,m') est utilisé. Néanmoins, l'utilisation d'un seul masque m' apporte peu d'entropie et de sécurité contre 25 des attaques par canaux cachés.
On va maintenant décrire le processus de masquage dans un algorithme AES selon l'art antérieur. Au début de l'algorithme de calcul, l'entrée et les sous-clés sont 30 masquées. L'algorithme AES comporte typiquement quatre transformations AddRoundKey, SubBytes, ShiftRows et MixColumns. AddRoundKey est la procédure d'insertion d'une sous-clé à chaque tour : la sous-clé et la matrice État subissent une opération XOR (ou- 35 exclusif). Il s'agit d'une addition modulo 2 de chaque octet de la matrice Etat avec son homologue dans la matrice de la sous-clé. La matrice Etat obtenue après une opération AddRoundKey est une matrice dont les octets sont masqués. SubBytes est la seule opération non linéaire de l'AES. Il s'agit de remplacer chaque octet de la matrice Etat par l'octet correspondant dans la SBox qui est un tableau bidimensionnel constitué de 256 octets. Chaque octet de la matrice Etat est représenté sous la forme de deux chiffres hexadécimaux, le premier chiffre étant utilisé pour adresser les lignes du tableau, et le deuxième chiffre étant utilisé pour adresser les colonnes du io tableau. L'octet de remplacement est celui de la SBox se trouvant à la ligne et colonne adressées. ShiftRows est une fonction qui décale les lignes de la matrice Etat. Ceci est une simple permutation ne modifiant pas les masques. MixColumns est une fonction qui mélange les octets de la matrice Etat. 15 Le masque de sortie est différent du masque d'entrée (propriété de l'opération). Cependant il peut être prédit (précalculé) car c'est une opération linéaire.
La figure 2 illustre le processus de masquage subit par la matrice Etat 20 pour un algorithme AES selon l'art antérieur. On utilise 6 masques indépendants de 8-bits. m et m' sont respectivement le masque d'entrée et le masque de sortie de l'opération SubBytes. Les 4 autres masques 8-bits sont des masques d'entrée pour la fonction MixColumns. En début de traitement, on pré-calcule une table masquée SBox S. tel 25 que Sm(e E m) = S(e) O+ m' et les 4 masques 8-bits de sortie (m'I,m'2, m'4 ) pour le MixColumns en calculant (m'1,m'2,m'3,m'4)=MixColumns( Au début de chaque tour AES, la matrice Etat est masquée avec ml,m2,m3 Ensuite, la fonction AddRoundKey change les masques 30 ( ,2,m,3,m' 4) en m à chaque octet de la matrice Etat. La fonction SubBytes change les masques m en m' à chaque octet de la matrice Etat. La fonction ShiftRows ne change pas le masquage. Avant de réaliser la fonction MixColumns, on réalise une étape de re-masquage: sur la colonne j, le masque est changé à partir de m' vers mj avec j e {1,2,3,4}. . Ensuite, la - 6- fonction MixColumns change le masque (mi,m2,m3,m4) en (m'I,m'2,m'3,m'4) qui sont les valeurs de masque du début de tour. Ainsi, le même processus peut être répété r fois. À la fin de l'algorithme, les masques peuvent être enlevés.
L'algorithme AES masqué conduit généralement à un temps de calcul élevé principalement en raison du masquage de la SBox.
La présente invention a donc pour but de remédier aux inconvénients de l'art antérieur en proposant un nouveau procédé équivalent en temps de io calcul. Un autre but de la présente invention est d'accroître la protection sur les fonctions linéaires et non linéaires ainsi que sur l'ensemble des données sensibles. L'invention a aussi pour but d'assurer une entropie élevée.
15 On atteint au moins l'un des objectifs précités avec un procédé de chiffrement basé sur un algorithme de chiffrement par blocs mettant en oeuvre une contre mesure de masquage et comprenant au moins une étape de substitution non linéaire des éléments. Selon l'invention, pour chaque chiffrement d'un bloc, ce procédé comprend : 20 - une étape de pré-calcul, au cours de laquelle on génère en parallèle plusieurs tables de substitution indépendantes et masquées, et - pendant l'étape de substitution non linéaire, on substitue les éléments de la matrice Etat par des éléments provenant desdites tables de substitution indépendantes et masquées. 25 De façon générale, un processus de contre-mesure a un coût en termes de mémoire et du temps d'exécution. Avec le procédé selon l'invention, on obtient une bonne protection car on réalise un bon compromis entre le gain de sécurité et la dégradation des performances. Cette protection est assurée par une entropie élevée. En effet, l'utilisation de plusieurs tables 30 de substitution indépendantes et masquées améliore grandement la sécurité vis à vis des attaques par canaux cachés. On conserve de bonnes performances car les tables de substitution sont traitées en parallèle. A titre d'exemple, on peut avantageusement utiliser comme algorithme de chiffrement par blocs l'algorithme AES. 35 Selon une caractéristique avantageuse de l'invention, on gère l'ensemble des tables de substitution en parallèle par paquets d'octets, la - 7- taille de chaque paquet d'octets étant identique à la largeur du microprocesseur mettant en oeuvre l'algorithme de chiffrement. On utilise ainsi toute la capacité disponible dans l'architecture matérielle pour traiter les données.
Par exemple, on peut gérer les tables de substitution en parallèle au moyen d'un microprocesseur dont la taille est de 32 bits, 64 bits ou 128 bits, ces chiffres correspondant donc au nombre de bits sur lequel une opération est réalisée par le microprocesseur. Le processus de masquage selon l'invention propose d'utiliser des io masques I-bits, au lieu de y-bits, I étant la taille du microprocesseur et y la taille des données de sortie d'une table de substitution. Cette caractéristique augmente l'entropie apportée par les masques, et par conséquent la sécurité de toute mise en oeuvre contre les attaques par canaux cachés du second ordre. Par exemple pour l'algorithme AES avec un microprocesseur 32 bits, la 15 présente invention présente une entropie de 6 x 32 = 192 bits, ce qui est quatre fois supérieur à 6 x 8 = 48 bits d'entropie proposée par l'art antérieur. On peut remarquer que ce nouveau plafond de 192 bits est supérieur à la taille de l'état AES (128 bits), ce qui signifie que la sécurité apportée par le procédé selon l'invention est théoriquement élevée. 20 Selon un mode de réalisation préféré, le processus de masquage des tables de substitution est cadencé par plusieurs compteurs parallèles, on utilise un compteur par table de substitution, chaque compteur étant représenté par des chiffres hexadécimaux d'un mot dont la largeur est identique à la largeur du microprocesseur mettant en oeuvre l'algorithme de 25 chiffrement. En d'autres termes, lorsqu'on utilise par exemple quatre tables de substitution en parallèle, on stocke quatre compteurs dans un même mot de 32 bits pris en hexadécimal. Chaque compteur utilise deux chiffres hexadécimaux allant de 00 à FF. Chaque compteur reste indépendant car il est possible de compter jusqu'à 256 sans qu'une paire de chiffres 30 hexadécimaux n'affecte pas une paire voisine. En effet, il n'y a pas de propagation de retenue entre les différents octets lorsqu'on réalise des additions entre 0 et 255. Selon un mode de mise en oeuvre avantageux, les tables de substitution peuvent être générées à partir d'une unique table initiale à 35 laquelle on applique différents masques indépendants issus de valeurs aléatoires. Il s'agit d'une table initiale stockée en mémoire.
On utilise avantageusement un algorithme itératif de chiffrement par blocs dans lequel on renouvelle les nombres aléatoires à partir desquels on réalise le masquage des tables de substitution. Ce renouvellement se fait ainsi à chaque tour du processus de chiffrement.
Selon un mode de mise en oeuvre avantageux, on gère les tables de substitution en parallèle en utilisant une instruction d'accès parallèle du microprocesseur mettant en oeuvre l'algorithme de chiffrement. Cette instruction peut être nommée PSTL pour « Parallel Substitution Table Lookup » et permet donc de limiter l'augmentation du temps de calcul ; io augmentation due à l'utilisation de plusieurs tables de substitution et à l'application de masques. On peut ainsi traiter plusieurs tables en parallèle dans la même durée que le traitement d'une seule table. Le nombre de tables de substitution utilisées dépend notamment de la taille de l'instruction PSTL. Dans le cas d'un algorithme de type AES par exemple sur un 15 processeur 32 bits, on peut idéalement établir en parallèle quatre (=l/y, y étant égale à 8 bits) tables de substitution SBOX. Au début d'une phase de masquage, les tables de substitution doivent être recalculées en fonction de la valeur des masques. L'instruction PSTL évite que cette phase impacte le temps de calcul. 20 Suivant un autre aspect de l'invention, il est proposé un circuit intégré logique, non-transitoire, encodé avec des instructions qui, lorsque exécutées, mettent en oeuvre un procédé de chiffrement basé sur un algorithme de chiffrement par blocs comprenant une contre mesure de masquage et une substitution non linéaire des éléments d'une matrice Etat. Selon l'invention, 25 les instructions comprennent pour chaque chiffrement d'un bloc : - un pré-calcul pour générer en parallèle plusieurs tables de substitution indépendantes et masquées, et - une substitution non linéaire des éléments de la matrice Etat par des éléments provenant desdites tables de substitution indépendantes et 30 masquées. Ce circuit intégré logique peut consister en un circuit logique programmable ou en un circuit intégré spécifique dit ASIC. De préférence, ce circuit intégré logique comprend au moins un microprocesseur et des composants mémoires configurés pour mettre en 35 oeuvre les instructions selon l'invention.
D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée d'un mode de mise en oeuvre nullement limitatif, et des dessins annexés, sur lesquels : La figure 1 est une vue schématique illustrant un processus de chiffrement selon un algorithme AES selon l'art antérieur ; La figure 2 est une vue schématique illustrant une succession de masques selon l'art antérieur ; La figure 3 est une vue schématique illustrant le procédé selon l'invention appliqué à un algorithme AES ; et io La figure 4 est une vue schématique illustrant une succession de masques selon l'invention.
Bien que l'invention n'y soit pas limitée, on va maintenant décrire le procédé de chiffrement selon l'invention appliqué à un algorithme AES. Le 15 processus de chiffrement proposé présente une entropie élevée. Le nombre de valeurs aléatoires utilisées impacte directement la sécurité de l'ensemble. On propose d'utiliser plusieurs tables de substitution masquées, ce nombre étant fonction de l'architecture matérielle et/ou logicielle implémentant le procédé selon l'invention. L'unité opérationnelle est 20 avantageusement le mot du microprocesseur et non pas l'élément de base de l'algorithme (pour l'AES, l'octet). L'entropie est augmentée dans la mesure où l'on utilise une table de substitution masquée par mot de la matrice d'Etat. On n'utilise pas une table de substitution masquée pour l'ensemble de la matrice d'Etat. Les masques sont choisis de façon aléatoire et indépendante 25 pour chaque table de substitution. Par exemple, typiquement dans l'algorithme AES conventionnel, l'unique table de substitution est 8x8 bits. L'Etat est une matrice de 128 bits de long. Avec la présente invention, on propose d'utiliser plusieurs tables de 30 substitution : on pourrait donc en utiliser 128 / 8 = 16. Cela implique de calculer 16 différentes tables de substitution masquées. Un mode de réalisation préféré de la présente invention préconise d'utiliser plutôt le mot comme unité opérationnelle, soit par exemple 32 bits lorsque l'algorithme est mis en oeuvre par un microprocesseur 32 bits. Ce qui revient à gérer quatre 35 tables de substitution.
Pour parvenir à utiliser plusieurs tables de substitution tout en limitant le temps de calcul, on prévoit avantageusement un traitement en parallèle des tables de substitution. En particulier, on utilise une instruction spécifique travaillant sur I bits, I étant la taille du mot du microprocesseur. Cette instruction spécifique que l'on retrouve dans certains microprocesseurs peut être nommée PSTL pour « Parallel Substitution Table Lookup » en langue anglaise. Si y est la taille de sortie d'une table de substitution, le nombre de tables de substitution à utiliser est I/y. Avec la présente invention, on ajuste le masque de sortie de la fonction SubBytes avec la taille du processeur, on io élève ainsi la sécurité contre des attaques par canaux cachés. Les masques sont plus grands, l'entropie également.
Sur la figure 3, on voit de quelle manière le principe de masquage et de chiffrement est modifié par rapport à la figure 1 de l'art antérieur. 15 Une des différences essentielles visible sur la figure 3 avec l'art antérieur, est la présence de plusieurs tables de substitution masquées 31, appelées également Sbox, en l'occurrence quatre pour traiter en parallèle les quatre octets d'une même ligne de la matrice Etat (matrice 4x4). On traite un seul octet par table de substitution, mais les quatre tables de substitution 20 sont traitées en parallèle. Le module de masquage 30 sur la figure 3 est configuré pour réaliser n masquages en parallèle à partir d'une matrice initiale 32 produisant n « Sbox » masquées. A partir de la clé de chiffrement 1, on génère un ensemble de sous-clés 25 3 via le module de préparation de clés 2 (Key Schedule). Ces sous-clés peuvent être calculées à la volée ou pré-calculées. Sur la figure 3, la source aléatoire 33 est utilisée pour générer les masques. L'entrée 34 et les sous-clés 35 doivent être masquées au début du 30 calcul de chiffrement par bloc : le module de sélection 36 permet d'obtenir s valeurs depuis la source aléatoire 33, ces s valeurs étant utilisées pour le chiffrement de l'entrée 34 et des sous-clés 35. On obtient ainsi une entrée masquée et des sous-clés masquées. L'entrée masquée, les sous-clés masquées et les Sbox masquées 31 35 vont alimenter l'algorithme de chiffrement 37. La couche SBox 38 symbolise l'opération non linéaire par utilisation des n Sbox masquées 31. Les opérations A - Z symbolisent les opérations linéaires. La couche d'insertion de clé permet d'insérer les sous-clés masquées une à une en combinaison avec l'entrée masquée. Cette série d'opérations est exécutée r fois, autant de fois qu'il y a des sous-clés.
On prévoit un processus de re-masquage 39. À la fin des r tours, le texte chiffré 41 de la sortie est démasqué grâce à la couche 40.
La figure 4 décrit la succession des masques sur la matrice Etat selon l'invention, prenant comme unité opérationnelle un mot de 32 bits. io Le chiffrement selon l'invention utilise 6 masques indépendants 32-bits. (m1 m2 m3 m4) et (m'1 m'2 m'3 m'4) sont respectivement les masques 32-bits d'entrée et de sortie de la fonction SubBytes. Les quatre autres masques 32- bits (m1,1 m1,2 m1,3 m1,4 ), (m2 1 m2 2 m2 3 m2 4),(m3 1 m3 2 m3 3 m3 4),(m4 1 m4 2 m4 3 m4 4) sont les masques d'entrée pour la fonction MixColumns. 15 Au début du chiffrement, on pré-calcule : quatre tables SBox masquées Smz telles que : (Sm, (e) mi S, (e) m2 S (e) m3 Sm, (e) O+ m4) _ (S(e) O+ m'i S(e) m'2 S(e) m'3 S(e) m'4 ) et, - les quatre (m'1,1 m'1,2 m'1,3 m'1,4 ), (m'2,1 masques ,4 (M'3,1 32-bits de sortie 20 m 4,3 m 4,2 m 4,4 pour la fonction MixColumns en calculant : 41,1 , m1,2 , m1,3 , m1,4 , m ,m3,1m3,2,m3,3,m3,4,m4,1,m4 2,m4,3,m4,4 = MixColumns(m1,1, m1,2, m1,3, m1,4, m2,1, m3,11m3,2,m3,3,m3,4,m4,1,m4,2,m4,3,m4,4) Au début de chaque tour AES, la matrice Etat est masquée avec m11, m1 2, m13 , m1 ,m M3',3, m3,4, m4,1, m4,2, m4,3, m4,4 25 Ensuite, la fonction AddRoundKey change les masques à la ligne j à partir de (m1',1 m1',2 m1',3 m1',4 m2',1 m2',2 m' 2 9 m' 2, m' 3 19 m3',2 m3',3 m 3, 9 m' 4 19 m4,29 m' 4 39 M4',4) vers mi avec i E {1,2,3,4} . La fonction SubBytes change les masques ml en m'Z sur chaque ligne 30 de la matrice Etat. La fonction ShiftRows ne change pas le masquage.
Avant de réaliser la fonction MixColumns, on réalise une étape de remasquage : sur la colonne j, le masque est changé à partir de m' en mlii avec je {1,2,3,4}. Ensuite, la fonction MixColumns change le masque depuis (m1,1, m1,2, m1,3' m1,4, m2,1, M2,2 9 m2,3, m2,4, m3,1, m3,2, m3,3' m3,4, m4,1, m4,2, m4,3, m4,4 vers (m m m m m' m' m' m' m' M3',2 M3',3 m' m' m' m' 1,1~ 1,2~ 1,3~ 1,4~ M2' ,l 2,2~ 22,31~ ~ 3,41~ 4,2~ 43~ 4,4 qui sont les valeurs des masques du début de tour. Ainsi, la même procédure peut être répétée r fois. À la fin de l'algorithme, les masques peuvent être enlevés. io Le procédé selon l'invention modifie peu d'étapes de l'algorithme AES par rapport à l'art antérieur, de sorte que la surcharge de calculs est principalement due aux pré-calculs. Avantageusement, ces pré-calculs sont optimisés par un traitement parallèle dans la présente invention. Une autre caractéristique avantageuse de l'invention est l'utilisation de 15 quatre compteurs dans un seul mot pour le traitement en parallèle des tables de substitution. En fait, après avoir choisi les masques d'entrée et de sortie des SBox, on doit masquer toutes les SBox. Pour ce faire, on utilise l'algorithme suivant qui tient compte de la taille 32 bits du processeur utilisé pour l'implémentation du procédé. Cet algorithme de masquage de Sbox 20 utilise l'instruction PSTL pour accéder aux valeurs des quatre SBox en même temps (en parallèle). Cet algorithme peut être adapté à d'autres tailles de processeur. S-Boxes masking Inputs : SB (S-box address), c (input ruas), m' (output rnask) Output SBm (masked S-boxes addresses) c [l; For e = E1 to 2a' - 1 by step16843 09= (01010IOI)h 1 x' = SB[x]; SBm [c] 7i End f or 25 » 13 On utilise ainsi un mot c en hexadécimal dans lequel on définit quatre compteurs, un compteur par SBox.
Si l'on compare le masquage dans l'algorithme AES selon l'art antérieur par rapport à la présente invention, on constate que l'entropie a été augmentée, ce qui représente un gain de sécurité face à des attaques par canaux cachés. L'art antérieur propose une entropie de 48 bits (6 masques de 8 bits), alors que le procédé selon la présente invention injecte 192 bits d'entropie (4 fois plus). On augmente donc globalement la sécurité. Mais on io augmente également localement cette sécurité tant sur la fonction SubBytes que sur la fonction MixColumns de l'AES. Le fait de protéger les SBox avec un masque plus grand que dans l'art antérieur ajoute de la sécurité. De plus, le processus de masquage selon l'invention utilise un masque de 128 bits pour la fonction MixColumns, ce qui ajoute également de la sécurité localement sur 15 cette fonction.
Bien sûr, l'invention n'est pas limitée aux exemples qui viennent d'être décrits et de nombreux aménagements peuvent être apportés à ces exemples sans sortir du cadre de l'invention.
20 Les différents modes de réalisation de la présente invention comprennent diverses étapes. Ces étapes peuvent être mises en oeuvre par des instructions d'une machine exécutable au moyen d'un microprocesseur par exemple.
25 Alternativement, ces étapes peuvent être réalisées par des circuits intégrés spécifiques comprenant une logique câblée pour exécuter les étapes, ou par toute combinaison de composants programmables et composants personnalisés. La présente invention peut également être fournie sous forme d'un 30 produit programme d'ordinateur qui peut comprendre un support mémoire informatique non-transitoire contenant des instructions exécutables sur une machine informatique, ces instructions pouvant être utilisées pour programmer un ordinateur (ou tout autre dispositif électronique) pour exécuter le procédé.

Claims (12)

  1. REVENDICATIONS1. Procédé de chiffrement basé sur un algorithme de chiffrement par blocs mettant en oeuvre une contre mesure de masquage et comprenant une étape de substitution non linéaire des éléments d'une matrice Etat, caractérisé en ce que ce procédé comprend pour chaque chiffrement d'un bloc : - une étape de pré-calcul, au cours de laquelle on génère en parallèle plusieurs tables de substitution indépendantes et masquées, et - pendant l'étape de substitution non linéaire, on substitue les éléments de la matrice Etat par des éléments provenant desdites tables de io substitution indépendantes et masquées.
  2. 2. Procédé selon la revendication 1, caractérisé en ce qu'on gère l'ensemble des tables de substitution en parallèle par paquets d'octets, la taille de chaque paquet traité étant identique à la largeur du microprocesseur mettant 15 en oeuvre l'algorithme de chiffrement.
  3. 3. Procédé selon la revendication 2, caractérisé en ce que un processus de masquage des tables de substitution est cadencé par plusieurs compteurs parallèles, on utilise un compteur par table de substitution, chaque compteur 20 étant représenté par des chiffres hexadécimaux d'un mot dont la largeur est identique à la largeur du microprocesseur mettant en oeuvre l'algorithme de chiffrement.
  4. 4. Procédé selon l'une quelconque des revendications précédentes, 25 caractérisé en ce que les tables de substitution sont générées à partir d'une unique table initiale à laquelle on applique différents masques indépendants issus de nombres aléatoires.
  5. 5. Procédé selon l'une quelconque des revendications précédentes, 30 caractérisé en ce qu'on utilise comme algorithme de chiffrement par blocs l'algorithme AES pour « Advanced Encryption Standard » dans lequel l'étape de MixColumns est masquée avec un masque de la taille de la matrice Etat.
  6. 6. Procédé selon l'une quelconque des revendications précédentes, 35 caractérisé en ce qu'on utilise un algorithme itératif de chiffrement par blocs 30dans lequel on renouvelle les nombres aléatoires à partir desquels on réalise le masquage des tables de substitution.
  7. 7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'on gère les tables de substitution en parallèle en utilisant une instruction d'accès parallèle du microprocesseur mettant en oeuvre l'algorithme de chiffrement.
  8. 8. Procédé selon l'une quelconque des revendications précédentes, io caractérisé en ce qu'on gère les tables de substitution en parallèle au moyen d'un microprocesseur dont la taille est de 32 bits, 64 bits ou 128 bits.
  9. 9. Circuit intégré logique, non-transitoire, encodé avec des instructions qui, lorsque exécutées, mettent en oeuvre un procédé de chiffrement basé sur un 15 algorithme de chiffrement par blocs comprenant une contre mesure de masquage et une substitution non linéaire des éléments d'une matrice Etat, caractérisé en ce que les instructions comprenant pour chaque chiffrement d'un bloc : - un pré-calcul pour générer en parallèle plusieurs tables de substitution 20 indépendantes et masquées, et - une substitution non linéaire des éléments de la matrice Etat par des éléments provenant desdites tables de substitution indépendantes et masquées. 25
  10. 10. Circuit intégré logique selon la revendication 9, caractérisé en ce qu'il consiste en un circuit logique programmable.
  11. 11. Circuit intégré logique selon la revendication 9, caractérisé en ce qu'il consiste en un circuit intégré spécifique dit ASIC.
  12. 12. Circuit intégré logique selon l'une des revendications 9 à 11, caractérisé en ce qu'il comprend au moins un microprocesseur et des composants mémoires configurés pour mettre en oeuvre les instructions.
FR1153547A 2011-04-26 2011-04-26 Procede pour appliquer une contre mesure de masquage haute entropie dans un algorithme de chiffrement par blocs, et circuit integre logique mettant en oeuvre un tel procede. Active FR2974693B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR1153547A FR2974693B1 (fr) 2011-04-26 2011-04-26 Procede pour appliquer une contre mesure de masquage haute entropie dans un algorithme de chiffrement par blocs, et circuit integre logique mettant en oeuvre un tel procede.
PCT/EP2012/057325 WO2012146550A1 (fr) 2011-04-26 2012-04-20 Procédé d'application d'une contre-mesure de masquage à entropie élevée dans un algorithme de cryptage de bloc et circuit intégré logique mettant en œuvre ce procédé
EP12721434.4A EP2702720A1 (fr) 2011-04-26 2012-04-20 Procédé d'application d'une contre-mesure de masquage à entropie élevée dans un algorithme de cryptage de bloc et circuit intégré logique mettant en uvre ce procédé

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1153547A FR2974693B1 (fr) 2011-04-26 2011-04-26 Procede pour appliquer une contre mesure de masquage haute entropie dans un algorithme de chiffrement par blocs, et circuit integre logique mettant en oeuvre un tel procede.

Publications (2)

Publication Number Publication Date
FR2974693A1 true FR2974693A1 (fr) 2012-11-02
FR2974693B1 FR2974693B1 (fr) 2013-04-26

Family

ID=46085894

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1153547A Active FR2974693B1 (fr) 2011-04-26 2011-04-26 Procede pour appliquer une contre mesure de masquage haute entropie dans un algorithme de chiffrement par blocs, et circuit integre logique mettant en oeuvre un tel procede.

Country Status (3)

Country Link
EP (1) EP2702720A1 (fr)
FR (1) FR2974693B1 (fr)
WO (1) WO2012146550A1 (fr)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3131228A1 (fr) * 2015-08-13 2017-02-15 Gemalto Sa Procédé pour sécuriser un algorithme keccak contre les attaques par canaux auxiliaires
FR3040513B1 (fr) * 2015-09-02 2018-11-16 Stmicroelectronics (Rousset) Sas Protection d'un algorithme de rijndael
FR3040514B1 (fr) * 2015-09-02 2017-09-15 Stmicroelectronics Rousset Protection dpa d'un algorithme de rijndael
FR3040515B1 (fr) 2015-09-02 2018-07-27 St Microelectronics Rousset Verification de la resistance d'un circuit electronique a des attaques par canaux caches
JP6584732B2 (ja) * 2017-06-27 2019-10-02 三菱電機株式会社 符号生成装置、符号生成方法および符号生成プログラム
EP3484095A1 (fr) * 2017-11-10 2019-05-15 Nagravision S.A. Procédé cryptographique mis en oeuvre par ordinateur et dispositif pour la mise en oeuvre de ce procédé

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1120933A2 (fr) * 2000-01-26 2001-08-01 Fujitsu Limited Procédé et dispositif de conception d'une logique de chiffrage et ordinateur y relatif
US20050259814A1 (en) * 2004-05-24 2005-11-24 Gebotys Catherine H Table masking for resistance to power analysis attacks
US20090086976A1 (en) * 2007-10-01 2009-04-02 Research In Motion Limited Substitution table masking for cryptographic processes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1120933A2 (fr) * 2000-01-26 2001-08-01 Fujitsu Limited Procédé et dispositif de conception d'une logique de chiffrage et ordinateur y relatif
US20050259814A1 (en) * 2004-05-24 2005-11-24 Gebotys Catherine H Table masking for resistance to power analysis attacks
US20090086976A1 (en) * 2007-10-01 2009-04-02 Research In Motion Limited Substitution table masking for cryptographic processes

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GEBOTYS C: "Differential Analysis of a Low Energy Table-Based Countermeasure for Secure Embedded Systems", INTERNET CITATION, 2005, XP002455441, Retrieved from the Internet <URL:University Waterloo Canada> [retrieved on 20071018] *
ITOH K ET AL: "DPA countermeasure based on the masking method", LECTURE NOTES IN COMPUTER SCIENCE/MICCAI 2000, SPRINGER, DE, vol. 2288, 1 December 2001 (2001-12-01), pages 440 - 456, XP002322028, ISBN: 978-3-540-24128-7 *

Also Published As

Publication number Publication date
EP2702720A1 (fr) 2014-03-05
WO2012146550A1 (fr) 2012-11-01
FR2974693B1 (fr) 2013-04-26

Similar Documents

Publication Publication Date Title
CA2570617C (fr) Procede et dispositif d&#39;execution d&#39;un calcul cryptographique
EP1769603B1 (fr) Procede et dispositif d&#39;execution d&#39;un calcul cryptographique
EP1638245B2 (fr) Protection d&#39;un algorithme DES
EP3139364B1 (fr) Protection dpa d&#39;un algorithme de rijndael
FR2974693A1 (fr) Procede pour appliquer une contre mesure de masquage haute entropie dans un algorithme de chiffrement par blocs, et circuit integre logique mettant en œuvre un tel procede.
EP3139365B1 (fr) Vérification de la résistance d&#39;un circuit électronique à des attaques par canaux cachés
EP3139363B1 (fr) Protection d&#39;un algorithme de rijndael
EP2803161A1 (fr) Procede de chiffrement protege contre des attaques par canaux auxiliaires
EP3228043B1 (fr) Méthode de chiffrement à couches de confusion et de diffusion dynamiques
EP3754893A1 (fr) Protection d&#39;exécution d&#39;algorithmes de chiffrement symétriques contre des attaques par canaux auxiliaires
EP2166696B1 (fr) Protection de l&#39;intégrité de données chiffrées en utilisant un état intermédiare de chiffrement pour générer une signature
Lavanya et al. Enhancing the security of AES through small scale confusion operations for data communication
EP2296307B1 (fr) Procédé de traitement cryptographique de données sécurisé contre les attaques par canaux auxiliaires
Scripcariu et al. On the substitution method of the AES algorithm
EP1457858A1 (fr) Procédé de sécurisation d&#39;un ensemble électronique à cryptoprocesseur
Madani et al. Enhancement of A5/1 Stream Cipher Overcoming its Weaknesses
Sharma et al. Comparative analysis of block key encryption algorithms
Huynh Design and Analysis of Lightweight Encryption Schemes
Gurubaran et al. Non-deterministic image encryption based on symmetric cryptosystem
FR2924550A1 (fr) Procedes et dispositifs de cryptage et de decryptage d&#39;un message de donnees a cle secrete aleatoire.
Siahaan et al. Data Security using 128-bit Advanced Encryption Standard Algorithm
FR2949887A1 (fr) Procede de traitement cryptographique de donnees
Kalaichelvi et al. ENAES CCSA to preserve confidentiality of outsourced data in public cloud
EP2173056A1 (fr) Procédé de contre-mesure dans un composant électronique mettant en ouvre un algorithme de cryptographie à clef secrète
FR2992084A1 (fr) Procede de protection d&#39;un circuit de cryptographie et systeme correspondant

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14