FR3078463A1 - Procede et dispositif de realisation d'operations en table de substitution - Google Patents

Procede et dispositif de realisation d'operations en table de substitution Download PDF

Info

Publication number
FR3078463A1
FR3078463A1 FR1851638A FR1851638A FR3078463A1 FR 3078463 A1 FR3078463 A1 FR 3078463A1 FR 1851638 A FR1851638 A FR 1851638A FR 1851638 A FR1851638 A FR 1851638A FR 3078463 A1 FR3078463 A1 FR 3078463A1
Authority
FR
France
Prior art keywords
substitution
operations
sets
series
substitution operations
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.)
Pending
Application number
FR1851638A
Other languages
English (en)
Inventor
Yanis Linge
Thomas Ordas
Pierre-Yvan Liardet
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.)
STMicroelectronics Rousset SAS
Original Assignee
STMicroelectronics Rousset 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 STMicroelectronics Rousset SAS filed Critical STMicroelectronics Rousset SAS
Priority to FR1851638A priority Critical patent/FR3078463A1/fr
Priority to EP19157874.9A priority patent/EP3531612B1/fr
Priority to US16/281,881 priority patent/US11265145B2/en
Priority to US16/281,889 priority patent/US11218291B2/en
Publication of FR3078463A1 publication Critical patent/FR3078463A1/fr
Priority to US17/537,056 priority patent/US11824969B2/en
Pending legal-status Critical Current

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
    • 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/08Randomization, e.g. dummy operations or using noise

Landscapes

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

Abstract

L'invention concerne un procédé de mise en œuvre, par un circuit cryptographique (300), d'un ensemble d'opérations de substitution d'un algorithme cryptographique impliquant plusieurs tables de substitution, ce procédé comprenant : la réalisation, pour chaque ensemble d'opérations de substitution de l'algorithme cryptographique, d'une série d'ensembles d'opérations de substitution, dont : l'un est un ensemble réel d'opérations de substitution correspondant à l'ensemble d'opérations de substitution de l'algorithme cryptographique ; et un ou plusieurs ensembles sont des ensembles factices d'opérations de substitution, chaque ensemble factice étant basé sur une permutation différente desdites tables de substitution.

Description

PROCEDE ET DISPOSITIF DE REALISATION D'OPERATIONS EN TABLE DE SUBSTITUTION
DOMAINE DE L'INVENTION
La présente invention concerne le domaine des circuits électroniques, et notamment un dispositif et un procédé d'accès à des tables de substitution au cours d'une opération cryptographique .
EXPOSE DE L’ART ANTERIEUR
Les tables de substitution, également connues sous le nom de S-box, définissent une opération de substitution de données réalisée au cours d'algorithmes cryptographiques. Cette substitution de données a pour objet de dissimuler la relation entre la clé secrète et le texte crypté et de rendre donc plus difficile la découverte de la clé secrète.
Une technique utilisée par les pirates souhaitant récupérer la clé secrète traitée par un dispositif cryptographique consiste à surveiller les signaux sur des canaux auxiliaires pour extraire certaines informations liées, par exemple, à la consommation ou à la séquence chronologique du dispositif lors de l'exécution d'un algorithme cryptographique. La manipulation de la donnée secrète pendant les opérations de substitution est souvent visée par les pirates par des procédés par canaux
B16586 17-RO-0550 auxiliaires du fait de la visibilité relative des opérations de substitution.
Certaines solutions assurant un degré de protection limité contre l'utilisation de procédés par canaux auxiliaires ont été proposées. Il existe cependant un besoin dans la technique de solutions offrant une meilleure protection.
RESUME
Un objet de modes de réalisation de la présente description est de répondre à un ou plusieurs besoins de 11 art antérieur.
Selon un aspect, la présente invention prévoit un procédé de mise en œuvre, par un circuit cryptographique, d'un ensemble d'opérations de substitution d'un algorithme cryptographique impliquant plusieurs tables de substitution, ce procédé comprenant : la réalisation, pour chaque ensemble d'opérations de substitution de l'algorithme cryptographique, d'une série d'ensembles d'opérations de substitution, dont : un ensemble est un ensemble réel d'opérations de substitution correspondant à l'ensemble d'opérations de substitution de l'algorithme cryptographique ; et un ou plusieurs ensembles sont des ensembles factices d'opérations de substitution, chaque ensemble factice étant basé sur une permutation différente desdites tables de substitution.
Selon un mode de réalisation, la position de l'ensemble réel d'opérations de substitution dans chaque série est choisie aléatoirement à partir d'une première valeur aléatoire.
Selon un mode de réalisation, la réalisation de chaque série d'ensembles d'opérations de substitution comprend :
le chargement de N valeurs d'entrée, où N est un entier supérieur ou égal à deux ; et la fourniture, sur des ensembles consécutifs d'opérations d'accès en table de substitution, de chacune desdites N valeurs d'entrée à une table de substitution respective parmi les N tables de substitution pendant l'ensemble réel d'opérations de substitution, chacune des N valeurs d'entrée étant fournie à une table de substitution correspondante parmi les N tables de substitution à partir de l'algorithme
B16586 17-RO-0550 cryptographique et, pendant les ensembles factices d'opérations de substitution, chacune des N valeurs d'entrée étant fournie à une table de substitution différente de sa table de substitution correspondante, et la position à laquelle l'ensemble réel d'opérations de substitution est réalisé par rapport aux ensembles factices d'opérations de substitution étant choisie à partir de la première valeur aléatoire.
Selon un mode de réalisation, chaque ensemble d'opérations de substitution comprend l'adressage d'emplacements de mémoire d'une ou plusieurs mémoires à partir de valeurs de données d'entrée de table de substitution et la lecture de valeurs aux emplacements de mémoire pour fournir des valeurs de données de sortie de table de substitution.
Selon un mode de réalisation, le procédé comprend en outre, pour chaque série d'ensembles d'opérations de substitution, le stockage des valeurs de sortie de table de substitution de chaque opération de substitution et la sélection des valeurs de sortie correspondant à l'ensemble réel d'opérations de substitution à partir de la première valeur aléatoire.
Selon un mode de réalisation, la réalisation de chaque ensemble d'opérations de substitution de la série comprend l'exécution de l'algorithme cryptographique à partir d'un même message d'entrée et d'une même clé secrète.
Selon un mode de réalisation, chaque série d'ensembles d'opérations de substitution comprend m-1 ensembles factices d'opérations de substitution, m étant un entier fixé à une valeur supérieure ou égale à 2 ou choisi aléatoirement ; et pour une clé donnée, un même groupe de m-1 permutations est appliqué pendant les m-1 opérations de substitution factices correspondantes.
Selon un mode de réalisation, chaque groupe de m-1 permutations pour une clé données est sélectionné à partir d'une seconde valeur aléatoire.
Selon un mode de réalisation, le nombre d'ensembles factices d'opérations de substitution réalisés dans chaque série est choisi aléatoirement.
B16586 17-RO-0550
Selon un autre aspect, la présente invention prévoit un moyen de stockage non transitoire stockant un programme informatique configuré, lorsqu'il est exécuté par un dispositif de traitement, pour mettre en œuvre le procédé ci-dessus.
Selon un autre aspect, la présente invention prévoit un circuit cryptographique comprenant : un circuit de mémoire stockant plusieurs tables de substitution pour mettre en œuvre des ensembles d'opérations de substitution d'un algorithme cryptographique ; et un ou plusieurs circuits configurés pour réaliser, pour chaque ensemble d'opérations de substitution de l'algorithme cryptographique, une série d'ensembles d'opérations de substitution utilisant lesdites tables de substitution, chaque série d'ensembles d'opérations de substitution comprenant : un ensemble réel d'opérations de substitution correspondant à l'ensemble d'opérations de substitution de l'algorithme cryptographique ; et un ou plusieurs ensembles factices d'opérations de substitution, les un ou plusieurs circuits étant configurés pour appliquer une permutation différente des tables de substitution pendant chacun des ensembles factices d'opérations de substitution.
Selon un mode de réalisation, le dispositif cryptographique comprend en outre un générateur de nombre aléatoire configuré pour générer, pour chaque série d'ensembles d'opérations de substitution, une première valeur aléatoire, les un ou plusieurs circuits étant configurés pour sélectionner aléatoirement la position de l'ensemble réel d'opérations de substitution parmi les un ou plusieurs ensembles factices d'opérations de substitution à partir de la première valeur aléatoire.
Selon un mode de réalisation, le générateur de nombre aléatoire est par ailleurs configuré pour générer une seconde valeur aléatoire, les un ou plusieurs circuits étant configurés pour sélectionner aléatoirement les permutations des tables de substitution à partir de la seconde valeur aléatoire.
Selon un mode de réalisation, le dispositif cryptographique comprend en outre : un registre d'entrée configuré pour
B16586 17-RO-0550 stocker N valeurs d'entrée ; et un ou plusieurs multiplexeurs configurés pour sélectionner, pour chaque ensemble d'opérations de substitution de chaque série, la valeur d'entrée parmi les N valeurs d'entrée à fournir à chaque table de substitution.
Selon un mode de réalisation, le dispositif cryptographique comprend en outre un circuit de sélection configuré pour générer un signal de sélection pour commander les un ou plusieurs multiplexeurs à partir des première et seconde valeurs aléatoires.
Selon un mode de réalisation, les un ou plusieurs circuits comprennent un ou plusieurs dispositifs de traitement commandés par des instructions stockées dans une mémoire d'instructions pour charger N valeurs d'entrée dans une mémoire, N étant égal au nombre de tables de substitution, et pour choisir, pour chaque ensemble d'opérations de substitution de chaque série, soit de mettre en œuvre l'ensemble réel d'opérations de substitution en fournissant chaque valeur d'entrée à la table de substitution correspondante à partir de l'algorithme cryptographique, soit de mettre en œuvre un ensemble factice d'opérations de substitution en fournissant chaque valeur d'entrée à une des tables de substitution autre que la table correspondante.
BREVE DESCRIPTION DES FIGURES
Ces caractéristiques et leurs 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 figure 1 illustre schématiquement un circuit d'exécution d'un algorithme cryptographique faisant intervenir
des opérations de substitution selon un exemple de mode de
réalisation ;
la figure 2 illustre schématiquement une table de
substitution selon un exemple de réalisation ;
la figure 3A illustre schématiquement un circuit de
substitution selon un exemple de réalisation de la présente
invention ;
B16586 17-RO-0550 la figure 3B illustre schématiquement un circuit de permutation du circuit de substitution de la figure 3A plus en détail selon un exemple de réalisation de la présente invention ;
la figure 4 illustre schématiquement un circuit d'exécution d'une série d'opérations cryptographiques selon un exemple de réalisation de la présente description ;
la figure 5 est un chronogramme illustrant des exemples de signaux dans le circuit de la figure 4 selon un exemple de réalisation ;
la figure 6A illustre schématiquement un circuit d'exécution d'une série d'opérations cryptographiques selon un autre exemple de réalisation de la présente invention ;
la figure 6B illustre schématiquement un circuit de substitution de la figure 6A plus en détail selon un exemple de réalisation de la présente invention ;
la figure 7 est un chronogramme illustrant un exemple de signaux dans le circuit de la figure 6B ;
la figure 8 illustre schématiquement un système de traitement pour effectuer un ensemble d'opérations d'accès en table de substitution selon un exemple de réalisation de la présente invention ;
la figure 9 est un organigramme représentant des opérations d'un procédé d'exécution d'un ensemble d'opérations d'accès en table de substitution selon un exemple de réalisation de la présente invention ; et la figure 10 illustre schématiquement un dispositif cryptographique selon un exemple de réalisation de la présente invention.
DESCRIPTION DETAILLEE
Dans la présente description, le terme connecté est utilisé pour désigner une connexion électrique directe entre éléments de circuit, tandis que le terme relié ou couplé est utilisé pour désigner une connexion électrique entre éléments de circuit qui peut être directe ou par l'intermédiaire d'un ou plusieurs éléments tels que des multiplexeurs, des tampons, etc.
B16586 17-RO-0550
En outre, dans la présente description, on considérera que les termes suivants ont les définitions suivantes :
algorithme cryptographique - toute série d'opérations réalisées par un dispositif, impliquant la manipulation d'une valeur secrète, telle qu'une clé secrète, qui doit être cachée du monde extérieur au dispositif. Des exemples d'algorithmes cryptographiques comprennent les algorithmes de cryptage ou de décryptage de texte non-crypté/texte crypté à partir d'une clé secrète, pour générer un code d'authentification de message (MAC) ou une autre forme de signature numérique à partir d'un algorithme secret et/ou clé, ou tout autre type d'opération secrète ;
opération de substitution ou accès en table de substitution - une opération d'un algorithme cryptographique dans laquelle une valeur de donnée de sortie est générée à partir d'une valeur de donnée d'entrée au moyen d'une table de substitution, S-box. Les valeurs d'entrée et de sortie peuvent comprendre le même nombre de bits ou un nombre de bits différent. Cette opération est par exemple réalisée au moyen d'une table de correspondance (LUT, lookup table) stockée dans une mémoire, et les valeurs définies dans la table de correspondance peuvent être fixées ou pourraient être mises à jour de façon dynamique ;
ensemble d'opérations de substitution ou ensemble d'accès en table de substitution - plusieurs opérations de substitution réalisées au moyen de tables de substitution définies par un algorithme cryptographique. Comme on le décrira plus en détail ci-dessous, chaque ensemble peut correspondre à un accès unique à chaque table de substitution ou à des accès multiples à chaque table de substitution. Par exemple, un ensemble d'opérations de substitution peut correspondre à un accès unique à chacune des huit tables de substitution SI à S8 pendant l'exécution de chaque opération de substitution d'une itération de l'algorithme DES. A titre de variante, un ensemble d'opérations de substitution peut correspondre à toutes les opérations de substitution réalisées pendant l'exécution de l'algorithme DES, ce qui implique de multiples itérations ;
B16586 17-RO-0550 ensemble réel d'opérations de substitution - un ensemble d'opérations de substitution défini par l'algorithme cryptographique en cours d'exécution, qui consiste par exemple en une opération utile en ce que les résultats de l'ensemble de substitutions contribueront au calcul des données de sortie utiles de l'algorithme cryptographique ; et ensemble factice d'opérations de substitution - un ensemble d'opérations de substitution faux ou fictif réalisé de façon semblable à un ensemble réel d'opérations de substitution, mais qui est superflu dans la mesure où il est réalisé en plus de l'ensemble réel d'opérations de substitution défini par l'algorithme cryptographique. Bien que les résultats de chaque ensemble factice d'opération de substitution puissent être stockés en mémoire, ils ne sont pas utiles dans la mesure où ces résultats sont sans objet en lien avec l'algorithme cryptographique et peuvent être rejetés. Comme on l'a décrit ici, les ensembles d'opérations de substitution factices sont par exemple effectués à partir de données d'entrée permutées fournies à plusieurs tables de substitution.
tographique reçoit par traiter et
La figure 1 illustre schématiquement un circuit cryp100 selon un mode de réalisation. Le circuit 100 exemple en tant qu'entrées un message une clé secrète (KEY). Par exemple, à un texte en clair à crypter par le (MESSAGE) à le message circuit 100 correspond utilisant la clé secrète, à un texte crypté à décrypter par le circuit 100 au moyen de la clé secrète ou à la donnée à signer par le circuit 100 en générant une qu'un MAC (code d'authentification de cation code) à partir de la clé.
Le circuit 100 comprend une signature message, série de numérique, telle message authentimodules matériels mettant en œuvre l'algorithme cryptographique impliquant diverses opérations 102, 104, 106 appliquées au message et à la clé de manière à générer un message de sortie (MESSAGE') correspondant à un texte crypté, à un texte en clair et/ou à une signature numérique. Dans l'exemple de la figure 1, l'opération 104
B16586 17-RO-0550 correspond à une opération de substitution (SUBSTITUTION) faisant intervenir plusieurs tables de substitution.
La figure 2 illustre schématiquement un exemple d'une table de substitution utilisée au cours de l'algorithme DES (data encryption standard). De façon connue de l'homme de l'art, l'algorithme de cryptage DES fait intervenir 8 tables de substitution SI à S8 dont chacune est unique. La figure 2 illustre la table de substitution DES SI.
Un accès à une table de substitution selon l'algorithme de cryptage DES implique l'introduction de 6 bits d'entrée (INPUT) b5 à bO et la fourniture de 4 bits de sortie (OUTPUT) b3 à bO. La table de substitution SI se présente sous la forme d'une table de correspondance comprenant 16 colonnes et 4 lignes. Les bits b5 et bO de la valeur d'entrée sont par exemple utilisés pour choisir une rangée de la table et les bits b4 à bl de la valeur d'entrée sont par exemple utilisés pour choisir une colonne de la table. La valeur sur 4 bits stockée dans la rangée et la colonne choisies constitue la valeur de sortie de la table de substitution.
Bien entendu, la figure 2 n'illustre qu'un exemple de table de substitution et les principes décrits dans la présente description pourraient être appliquées à tout type de table de substitution dans laquelle des données d'entrée sont substituées pour générer des données de sortie à partir d'une table de valeurs mémorisées.
La figure 3A illustre schématiquement un circuit de substitution 300 pour mettre en œuvre des ensembles d'opérations d'accès en table de substitution selon un exemple de réalisation de la présente description. Le circuit 300 fait par exemple partie du circuit 100 de la figure 1.
Le circuit 300 comprend par exemple N tables de substitution (S-BOXES) 301, qui correspondent par exemple aux huit tables de substitution de la norme de cryptage DES. A titre de variante, les N tables de substitution pourraient correspondre à celles utilisées dans une autre norme de cryptage, telle que la norme de cryptage TDES (triple DES).
B16586 17-RO-0550
Chacune des N tables de substitution reçoit une valeur de donnée d'entrée S1_IN à SN_IN, et délivre une valeur de donnée de sortie respective S1_OUT à SN_OUT. Les tables de substitution
301 sont par exemple mises en œuvre par une ou plusieurs mémoires non volatile, les valeurs de donnée d'entrée S1_IN à SN_IN fournissant des entrées d'adresse respectives aux une ou plusieurs mémoires et les valeurs de donnée de sortie S1_OUT à SN_OUT correspondent aux valeurs de donnée de sortie mémorisées aux emplacements de mémoire adressés.
Le circuit 300 comprend en outre un registre d'entrée
302 (INPUT REG) et un circuit de permutation de tables de substitution (S-BOX PERM) 304. Le registre d'entrée 302 reçoit par exemple N valeurs d'entrée INPUT correspondant aux entrées d'un ensemble d'opérations de substitution à réaliser en relation avec un algorithme cryptographique par les N tables de substitution 301. Par exemple, les N valeurs d'entrée INPUTS sont le résultat d'une opération réalisée sur les données de message et les données de clé de la figure 1. Le registre 302 fournit par exemple les N valeurs d'entrée INI à INN au circuit de permutation de tables de substitution 304.
Le circuit de permutation de tables de substitution 304 choisit par exemple la valeur d'entrée à fournir à chacune des tables de substitution pendant un ensemble donné d'opérations de substitution. Par exemple, le circuit de permutation 304 reçoit un signal de commande CTRL en provenance d'un générateur de nombre aléatoire (RNG) 306 commander la sélection. Le générateur 306 est par exemple un générateur de nombre pseudo-aléatoire ou un générateur de nombre réellement aléatoire.
En fonctionnement, chaque ensemble réel d'opérations d'accès en table de substitution défini par l'algorithme cryptographique est mis en œuvre par une série de m ensembles d'opérations d'accès en table de substitution, m étant par exemple un entier supérieur ou égal à deux. Seul un des m ensembles d'opérations d'accès en table de substitution correspond à l'ensemble réel d'opérations de substitution de l'algorithme cryptographique. Les m-1 autres ensembles d'opérations d'accès de
B16586 17-RO-0550 chaque série correspondent à un ensemble d'opérations de substitution fictives ou factices mettant en œuvre différentes permutations des tables de substitution par le circuit 304. Par exemple, chaque ensemble factice d'opérations de substitution pour un ensemble donné d'opérations de substitution se base sur une permutation différente.
La figure 3B illustre schématiquement le circuit de permutation de tables de substitution 304 de la figure 3A plus en détail selon un exemple de réalisation. Le circuit 304 comprend par exemple N multiplexeurs MPI à MPN, associés à chacune des N tables de substitution. Chacun des multiplexeurs MPI à MPN reçoit chacune des valeurs d'entrée INI à INN en provenance du registre d'entrée 302. Ainsi, n'importe quelle valeur d'entrée peut être fournie à n'importe quelle table de substitution. Bien entendu, dans le cas où seul un nombre limité de permutations sont sélectionnables, chaque multiplexeur MPI à MPN n'a pas besoin de recevoir chaque signal d'entrée INI à INN.
Le circuit de permutation 304 comprend également par exemple un circuit de sélection de permutation (PERM SEL) 310 qui génère un signal de sélection SEL pour commander les multiplexeurs MPI à MPN à partir de la valeur du signal de commande CTRL fourni par le générateur de nombre aléatoire 306. Le circuit de sélection de permutation 310 reçoit par exemple un signal d'horloge CLK indiquant la période de chaque ensemble d'opérations d'accès en table de substitution de sorte que le signal de sélection SEL peut être mis à jour à l'instant approprié.
Selon un mode de réalisation qui sera à présent décrit en référence aux figures 4 et 5, chaque ensemble d'opérations de substitution correspond à toutes les opérations de substitution réalisées pendant l'exécution d'un algorithme cryptographique à partir d'un message et d'une clé donnés.
La figure 4 illustre le circuit cryptographique 100 de la figure 1 plus en détail pour une série de m ensembles d'opérations de substitution, chacun correspondant à l'exécution de l'algorithme DES à partir d'un message (MESSAGE) et d'une clé (KEY) donnés. Le circuit cryptographique 100 comprend par exemple
B16586 17-RO-0550 un circuit 400 (F FUNCTION) d'exécution d'une fonction d'itération, chaque itération comprenant par exemple une opération d'expansion (EXP) effectuée par un circuit 402, une opération d'OU exclusif (XOR) effectuée par un circuit 404 pour introduire une clé d'itération, l'opération de substitution effectuée par le circuit de substitution 300 et une opération de permutation (PBOX) effectuée par un circuit 406. Le message M(R), M(Pl)-M(P(m-
1)) résultant de chaque exécution de l'algorithme DES est fourni à un registre de sortie (OP REG) 408, avec le signal de commande CTRL.
Le circuit cryptographique 100 est illustré de multiples fois à la figure 4 pour représenter l'opération de substitution effectuée pendant chacune des séries de m exécutions de l'algorithme DES. L'une de ces exécutions représentée du côté gauche de la figure 4 est basée sur l'absence de permutation des tables de substitution (S-BOXES P=ID) tandis que les autres exécutions sont respectivement basées sur les permutations Pi à P(m-l). L'ordre des exécutions réelles et fictives du DES est choisi aléatoirement pour chaque série d'exécutions à partir du signal de commande généré aléatoirement CTRL.
La figure 5 est un chronogramme représentant un exemple des signaux MESSAGE et KEY à l'entrée du circuit 100 de la figure 4, des opérations CRYPTO OP effectuées par le circuit 100 et du message de sortie (MESSAGE') généré pendant chaque exécution.
Une première série SA1 d'exécutions du DES est réalisée à partir d'un message Ml et d'une clé kl et une deuxième série SA2 d'exécutions de DES est réalisée à partir d'un message M2 et d'une clé k2. Dans l'exemple de la figure 4, le nombre m d'exécutions de DES de chaque série est fixé à quatre, bien que, dans des variantes de réalisation, m puisse être tout entier supérieur ou égal à 2. La série SA1 comprend par exemple trois exécutions fictives de DES F(PI), F(P2) et F(P3) respectivement à partir des permutations PI, P2 et P3 des tables de substitution et une exécution réelle de DES RI. La série SA2 comprend par exemple trois exécutions fictives de DES F(P4), F(P5) et F(P6) respectivement à partir des permutations P4, P5 et P6 des tables
B16586 17-RO-0550 de substitution et une exécution réelle de DES R2. La position de l'exécution réelle de DES parmi les exécutions fictives est choisie aléatoirement pour chaque série de m exécutions et est la troisième position de la série SA1 et la deuxième position de la série SA2 dans l'exemple de la figure 5.
Dans certains modes de réalisation, le groupe de permutations de chaque série d'ensemble d'accès est fixé pour une clé secrète donnée et seule la position de l'ensemble réel d'opérations d'accès varie entre les séries. Chaque fois que la clé change, un nouveau groupe de permutations est par exemple sélectionné.
Le message MESSAGE' résultant de chaque exécution de l'algorithme cryptographique est par exemple émis à la suite de chaque exécution de l'algorithme cryptographique et ces messages sont par exemple désignés par M(P1) à M(P6) dans le cas des exécutions fictives F(PI) à F(P6) et M(R1) et M(R2) dans le cas des exécutions réelles Ri et R2. Pendant chaque série d'exécutions, tous les messages sont par exemple stockés dans le registre de sortie 408 et le signal de commande CTRL est par exemple utilisé pour ne sélectionner que les messages réels en provenance du registre de sortie 408 pour fournir le résultat de 1'algorithme cryptographique.
La figure 6A illustre le circuit cryptographique 100 de la figure 1 plus en détail pour une série de m ensembles d'opérations de substitution dont chacune correspond à une seule opération de substitution accédant à plusieurs tables de substitution. L'exemple de la figure 6A est à nouveau basé sur l'algorithme DES et implique le même circuit 400 de la figure 4. Toutefois, dans le cas de la figure 6A, chaque fois que le circuit de substitution 104 est appelé pour appliquer un ensemble d'opérations de substitution au sein d'une exécution donnée de la fonction de tour, une série de m ensembles d'opérations de substitution est effectuée.
Le circuit de substitution 300 est illustré de nombreuses fois à la figure 6A pour représenter l'ensemble d'opérations de substitution réalisées pendant chacun de la série de m
B16586 17-RO-0550 ensembles d'opérations de substitution. L'un de ces ensembles d'opérations de substitution, représenté du côté gauche de la figure 6A, est basé sur l'absence de permutation des tables de substitution (S-BOXES P=ID) tandis que les autres ensembles d'opérations de substitution sont respectivement basés sur les permutations PI à P(m-l). L'ordre des ensembles d'opérations de substitution réel et fictifs est choisi aléatoirement pour chaque série d'opérations de substitution à partir du signal de commande généré aléatoirement CTRL.
La figure 6B illustre le circuit de substitution 300 plus en détail selon un exemple de réalisation. Le circuit 300 de la figure 6B est par exemple semblable à celui de la figure 3A et de mêmes éléments sont désignés par de mêmes références et ne seront pas décrits à nouveau en détail. L'exemple de la figure 6A est basé sur les huit tables de substitution SI à S8 de la norme DES. Le circuit de permutation de tables de substitution 304 génère par exemple un bit d'occupation (BB) pour indiquer à un système hôte les périodes pendant lesquelles les tables de substitution sont occupées. En outre, dans l'exemple de la figure 6B, les sorties des tables de substitution sont fournies à un registre de sortie (OUTPUT REG) 602, qui reçoit également par exemple le signal de commande CTRL en provenance du générateur 306.
En fonctionnement, pendant chaque ensemble d'opérations de substitution à réaliser en utilisant les tables de substitution SI à S8, les valeurs de données d'entrée INI à IN8 sont chargées dans le registre d'entrée 302 et la sélection de la valeur d'entrée à fournir pour chaque table de substitution pendant chacun des m ensembles d'opérations d'accès en table de substitution de la série se fait à partir du signal de commande CTRL.
Par exemple, dans certains modes de réalisation, le signal de commande CTRL comprend des valeurs aléatoires PERM, RAC et NFC.
La valeur RAC comprend par exemple une valeur sur r bits indiquant la position des ensembles réels d'opérations de
B16586 17-RO-0550 substitution parmi les m-1 ensembles factices d'opérations de substitution. Par exemple, 2r est égal à m. Dans un exemple, m est égal à 4, et r est égal à 2, une valeur RAC de 00 indiquant le premier des quatre ensembles d'opérations de substitution, et une valeur de RAC de 11 indiquant le quatrième des quatre ensembles d'opérations de substitution.
Les permutations sont par exemple choisies aléatoirement à partir de la valeur aléatoire PERM fournie par le générateur 306. Dans certains modes de réalisation, les permutations sont choisies aléatoirement pour chacun des m-1 ensembles factices d'opérations d'accès de chaque série. Dans des variations de réalisation, pour une valeur de clé k donnée, les permutations particulières appliquées pendant chacun des m-1 ensembles d'opérations d'accès factices sont fixées jusqu'au changement de clé.
Le nombre de permutations possibles des huit tables de substitution SI à S8 dans l'exemple de la figure 6B est égal à la factorielle de 8, également exprimée sous la forme 8!, qui est égale à 40 320. En outre, chacun des m-1 ensembles d'opérations de substitution factices d'un ensemble donné d'opérations de substitution utilise une permutation différente. En conséquence, pour une série donnée d'ensembles d'opérations de substitution, le circuit de permutation de tables de substitution 304 choisit par exemple à la fois les permutations à appliquer et l'ordre dans lequel les permutations doivent être appliquées.
Dans certains modes de réalisation, le circuit de permutation 304 est capable d'appliquer un groupe limité de permutations dans un nombre limité d'ordres différents pour les m-1 ensembles d'opérations de substitution factices et la valeur de PERM est utilisée pour choisir aléatoirement à la fois les permutations et l'ordre des permutations. Un exemple de sélection de permutations à partir de la valeur sur 3 bits de PERM, sur une valeur de m égale à 4 et à partir de huit permutations disponibles Pi à P8, est fourni dans le tableau suivant pour les m-1 ensembles d'opérations de substitution factices :
Valeur de PERM Permutations et ordre choisis
B16586 17-RO-0550
000 PI, P2, P3
001 P4, P5, P6,
010 P7, P8, P2
011 P4, P6, P8
100 P3, P6, PI
101 P5, P7, P2
110 P8, P5, PI
111 P7, P4, P6
En outre, la valeur du RAC est utilisée pour sélectionner la position de l'ensemble réel d'opérations de substitution par rapport aux m-1 ensembles factices d'opérations de substitution. Ainsi, si PERM est égal à 000 et RAC est égal à 11, les m ensembles de substitutions sont par exemple réalisés de la façon suivante à partir des tables ci-dessus : PI, P2, P3, RA, où RA correspond à l'ensemble réel d'opérations d'accès en table de substitution.
La valeur NFC indique par exemple le nombre m-1 d'ensembles factices d'opérations de substitution de chaque série. Dans certains modes de réalisation, cette valeur peut être fixée pour une clé donnée, tandis que dans d'autres modes de réalisation, cette valeur est générée aléatoirement pour chaque série d'ensembles d'opérations de substitution.
Par exemple, dans un mode de réalisation, la valeur NFC est une valeur sur 2 bits et la valeur RAC est une valeur sur 3 bits. Le nombre m-1 d'accès factices en table de substitution dans chaque série d'accès en table de substitution est par exemple égal m-l = 2we-l
Ainsi, la valeur de NFC étant égale à 0, 1, 2, ou 3, le nombre m1 d'accès en table de substitution peut par exemple être 0, 1, 3 ou 7. En outre, la valeur RAC est par exemple utilisée pour déterminer la position de l'accès réel en réalisant une opération de ET logique entre la valeur binaire sur 3 bits RAC et une valeur binaire sur 3 bits représentant le nombre m-1.
En générant la valeur de NFC pour chaque série d'accès à la table de substitution, le temps de traitement de chaque accès
B16586 17-RO-0550 en table de substitution sera variable. Ainsi, dans la mesure où la durée de chaque accès en table de substitution n'est plus prévisible, le bit d'occupation BB indique par exemple au système de traitement hôte les périodes temporelles pendant lesquelles la table de substitution 301 est occupée.
Le registre de sortie 602 stocke par exemple chacune des valeurs de sortie SI_OUT à S8_OUT à partir des tables de substitution SI à S8 pendant chacun des ensembles d'opérations de substitution de chaque série. De plus, le circuit 602 sélectionne par exemple l'ensemble réel de valeurs de sortie pour former les valeurs de sortie OUTPUTS à partir de la valeur RAC.
Le fonctionnement du circuit de la figure 6B va à présent être décrit plus en détail en référence à la figure 7.
La figure 7 est un chronogramme représentant des exemples de la valeur NFC, de la valeur RAC, des opérations d'accès en table de substitution OP, et des valeurs de sortie OUTPUTS, pendant une série d'ensembles d'accès SA1 et SA2 utilisant le circuit de la figure 6B.
Pendant la série d'ensembles d'accès SA1, les valeurs de NFC et RAC sont générées aléatoirement à 2 et 5, respectivement. Ainsi, à partir de l'équation ci-dessus, le nombre m-1 d'ensembles factices d'opérations en table de substitution de la série SA1 est égal à 3. Le nombre total d'ensembles d'accès en table de substitution de chaque série est égal à m et le résultat de l'opération NF*RAC est par exemple une valeur sur 3 bits qui peut prendre une valeur comprise entre 0 et NF, où 0 représente le premier accès de la série et NF représente le dernier accès de la série. Ainsi, dans l'exemple de la série d'accès SA1, la position de l'opération d'accès réelle est égale à un ET logique appliqué bit par bit aux valeurs 011 et 101, ce qui donne 001, correspondant au second accès de la série. Ainsi, dans l'exemple de la série d'accès SA1, l'ensemble réel d'opérations d'accès est en deuxième position et la série SA1 de m ensembles d'opérations d'accès comprend, séquentiellement : un ensemble factice d'opérations d'accès utilisant une permutation aléatoire PI ; un ensemble réel d'opérations d'accès RI ; un ensemble factice
B16586 17-RO-0550 d'opérations d'accès utilisant une permutation aléatoire P2 ; et un ensemble factice d'opérations d'accès utilisant une permutation aléatoire P3. Après le dernier ensemble d'opérations d'accès, les valeurs de sortie OUTPUTS deviennent égales au résultat de l'ensemble réel d'opérations d'accès RAI.
Pendant la série d'accès SA2, les valeurs de NFC et RAC sont générées aléatoirement à 1 et 4, respectivement. Ainsi, le nombre m-1 d'ensembles factices d'opérations en table de substitution de la série SA2 est égal à 1 et la position de l'opération d'accès réelle de la série SA2 est égale à un ET logique appliqué bit par bit aux valeurs 001 et 100, ce qui donne 000, correspondant au premier accès de la série. Ainsi dans l'exemple de la série d'ensembles d'accès SA2, les m ensembles d'opérations d'accès comprennent, séquentiellement : un ensemble réel d'opérations d'accès R2 ; et un ensemble factice d'opérations d'accès utilisant une permutation aléatoire P4. Après le dernier ensemble d'opérations d'accès, les valeurs de sortie OUTPUTS deviennent égales au résultat de l'ensemble réel d'opérations d'accès RA2.
Les exemples des figures 3A, 4A et 6A correspondent à des mises en œuvre matérielles. Dans des variantes de réalisation, le procédé de réalisation d'un ensemble d'opérations d'accès en table de substitution décrit ici peut être mis en œuvre sous forme logicielle, comme on le décrira plus en détail en référence aux figures 8 et 9.
La figure 8 illustre schématiquement un système de traitement 800 selon un exemple de réalisation de la présente invention. Le système 800 comprend par exemple un dispositif de traitement (P) 802 couplé par l'intermédiaire d'un bus 804 à une mémoire 806 stockant plusieurs tables de substitution (S-BOXES). La mémoire 806 est par exemple une mémoire non volatile (NVM, NonVolatile Memory). Le système 800 comprend également par exemple, couplés au bus 804, une mémoire volatile 808, qui est par exemple une mémoire RAM (mémoire à accès aléatoire), une interface d'entrée/sortie (I/O INTERFACE) 810 et un générateur de nombre aléatoire (RNG) 812. Le dispositif de traitement 802 comprend par
B16586 17-RO-0550 exemple un ou plusieurs noyaux de traitement commandés par des instructions stockées dans une mémoire d'instructions, par exemple, la mémoire 806 et/ou 808.
La figure 9 est un organigramme illustrant des opérations dans un procédé de réalisation d'un ensemble d'opérations d'accès en table de substitution selon un exemple de réalisation de la présente description et utilisant le système de traitement de la figure 9. Comme on l'a décrit ci-dessus, chaque ensemble d'opérations d'accès en table de substitution peut correspondre à l'opération de substitution elle-même seulement, ou à l'opération de substitution réalisée pendant l'ensemble d'un algorithme cryptographique.
Dans une opération 901, la valeur aléatoire CTRL est générée, par exemple, à partir de valeurs aléatoires fournies par le générateur 812. Ces valeurs sont par exemple stockées dans la mémoire RAM 808.
Dans une opération 902, le dispositif de traitement 802 effectue m ensembles d'accès en table de substitution. Chaque ensemble d'accès en table de substitution implique par exemple le chargement de N valeurs d'entrée dans la mémoire de travail du dispositif de traitement 802, qui correspond par exemple à la mémoire 808. L'un de ces ensembles correspond à un ensemble réel basé sur des accès en table de substitution tel que défini par l'algorithme cryptographique en cours d'exécution, sans permutation. Les m-1 ensembles restants d'accès en table de substitution correspondent à des ensembles d'opérations d'accès factices, dans lesquels une permutation est appliquée par le dispositif de traitement 802, à partir de la valeur CTRL, de sorte que pendant ces accès en table de substitution, chacune des N valeurs d'entrée n'est pas fournie à sa table de substitution correspondante, mais à une autre table de substitution à partir d'une sélection aléatoire. L'ensemble réel d'accès est positionné aléatoirement par rapport aux ensembles factices d'accès à partir de la valeur CTRL. Chaque ensemble d'accès en table de substitution est par exemple effectué en adressant une ou plusieurs mémoires non volatiles, telle que la mémoire 806, qui
B16586 17-RO-0550 stocke par exemple une table de correspondance correspondant à chaque table de substitution. Le résultat de chaque ensemble d'accès en table de substitution est stocké en mémoire, par exemple dans la mémoire RAM 808.
Alors que dans le mode de réalisation matériel de la figure 6B, les accès en table de substitution de chaque ensemble sont par exemple réalisées en parallèle dans chacune des tables de substitution SI à S8, dans le cas de la mise en œuvre logicielle de la figure 8, les accès en table de substitution de chaque ensemble peuvent être effectués en parallèle si les ressources de traitement le permettent, ou peuvent être effectués en série.
Dans l'opération 903, les résultats de l'ensemble réel d'accès en table de substitution sont choisis pour être utilisés dans l'algorithme cryptographique, à partir du signal CTRL. Par exemple, le dispositif de traitement 802 sélectionne dans la mémoire RAM 808, à partir des valeurs aléatoires RAC et NFC du signal de commande CTRL, une adresse correspondant à l'emplacement de stockage des résultats de l'ensemble réel d'opérations de substitution. La figure 10 illustre schématiquement un dispositif cryptographique 1000 selon un exemple de réalisation.
Le dispositif 1000 comprend par exemple un dispositif de traitement (P) 1002 correspondant au processeur hôte du dispositif cryptographique 1000. Le dispositif de traitement 1002 est par exemple en communication avec un circuit cryptographique (CRYPTO) 1004 qui correspond par exemple au circuit 300 de la figure 3A, 4 ou 6A ou à certains ou tous les éléments du système de traitement 800 de la figure 8. Le dispositif cryptographique 1000 comprend également par exemple une mémoire (MEM) 1006 et une interface d'entrée/sortie (I/O) 1008 en communication avec le dispositif de traitement 1002.
Le dispositif 1000 correspond par exemple à une carte de circuit intégré (souvent désignée sous le nom de carte à puce), à un dispositif électronique portable ou à tout autre type de dispositif électronique dans lequel doit être réalisée une fonction cryptographique. Dans certains modes de réalisation,
B16586 17-RO-0550 l'interface d'entrée/sortie 1008 peut correspondre à une interface
NFC (Near-Field Communication).
Un avantage des modes de réalisation décrits ici est que la découverte d'une clé secrète manipulée pendant les ensembles d'opérations de substitution d'un algorithme cryptographique au moyen de procédés par canaux auxiliaires peut être rendue considérablement plus difficile. En effet, en réalisant des ensembles factices d'accès en table de substitution à partir de permutations des tables de substitution, ceci crée une dissymétrie des fuites pendant chaque ensemble réel d'accès en table de substitution, et il devient très difficile de déterminer une corrélation significative entre les signaux de canaux auxiliaires pendant les accès en table de substitution et la valeur de la clé secrète.
En outre, l'utilisation d'un même groupe de permutations pour une clé secrète donnée peut entraîner la génération d'informations trompeuses quant à la valeur de la clé sur les canaux auxiliaires. En effet, une permutation donnée répétée plusieurs fois pour une même clé peut être confondue avec les accès en table de substitution authentiques à partir d'une clé fantôme différente. Avec plusieurs permutations différentes, le nombre de clés fantôme différentes qui sembleront présenter de bonnes corrélations peut être relativement élevé et sensiblement plus élevé que dans le cas de l'utilisation d'une clé fictive et/ou d'un message fictif.
Un avantage de la mise en œuvre matérielle des figures 3A, 3B, 4, 6Ά et 6B est que le passage entre les ensembles factices et réels d'accès en table de substitution peut être réalisé relativement rapidement, d'où il résulte un délai temporel relativement court pour les ensembles supplémentaires d'accès en table de substitution.
On a décrit au moins un mode de réalisation à titre d'illustration, mais de nombreuses variantes et modifications apparaîtront à l'homme de l'art. Par exemple, il apparaîtra à l'homme de l'art que le circuit de la figure 3B mettant en œuvre le circuit de permutation de tables de substitution n'est qu' un
B16586 17-RO-0550 exemple et que de nombreuses variantes de mise en œuvre sont possibles.
En outre, alors que l'on a décrit des modes de réalisation dans lesquels chaque permutation est appliquée au 5 niveau d'une seule opération de substitution, ou au niveau de l'ensemble d'un algorithme cryptographique, la permutation pourrait également être appliquée à différents niveaux. Par exemple, chaque permutation pourrait être appliquée pour une itération entière de l'algorithme de cryptage DES et une série 10 d'itérations fictives pourrait être effectuée pour chaque itération réelle à exécuter.
En outre, il apparaîtra à l'homme de l'art que les diverses caractéristiques décrites en relation avec les modes de réalisation pourraient être combinées, dans des variantes de 15 réalisation, selon n'importe quelle combinaison. Par exemple, il serait possible de mettre en œuvre le procédé d'accès en table de substitution de la présente invention au moyen d'une combinaison d'éléments matériels et logiciels.

Claims (16)

  1. REVENDICATIONS
    1. Procédé de mise en œuvre, par un circuit cryptographique (300, 800), d'un ensemble d'opérations de substitution d'un algorithme cryptographique impliquant plusieurs tables de substitution, ce procédé comprenant :
    la réalisation, pour chaque ensemble d'opérations de substitution de l'algorithme cryptographique, d'une série d'ensembles d'opérations de substitution, dont :
    un ensemble est un ensemble réel d'opérations de substitution correspondant à l'ensemble d'opérations de substitution de l'algorithme cryptographique ; et un ou plusieurs autres ensembles sont des ensembles factices d'opérations de substitution, chaque ensemble factice étant basé sur une permutation différente desdites tables de substitution.
  2. 2. Procédé selon la revendication 1, dans lequel la position de l'ensemble réel d'opérations de substitution dans chaque série est choisie aléatoirement à partir d'une première valeur aléatoire (RAC).
  3. 3. Procédé selon la revendication 2, dans lequel la réalisation de chaque série d'ensembles d'opérations de substitution comprend :
    le chargement de N valeurs d'entrée (INI à INB), où N est un entier supérieur ou égal à deux ; et la fourniture, sur des ensembles consécutifs opérations d'accès en table de substitution, de chacune desdites N valeurs d'entrée à une table de substitution respective parmi les N tables de substitution (SI à S8), dans lequel pendant l'ensemble réel d'opérations de substitution, chacune des N valeurs d'entrée est fournie à une table de substitution correspondante parmi lesdites N tables de substitution (SI à S8) à partir dudit algorithme cryptographique et, pendant les ensembles factices d'opérations de substitution, chacune des N valeurs d'entrée est fournie à une table de substitution différente de sa table de substitution correspondante, et dans lequel la position dans laquelle
    B16586 17-RO-0550
    1'ensemble réel d'opérations de substitution est réalisé par rapport aux ensembles factices d'opérations de substitution est choisie à partir de la première valeur aléatoire (RAC).
  4. 4. Procédé selon la revendication 2 ou 3, dans lequel chaque ensemble d'opérations de substitution comprend l'adressage d'emplacements de mémoire d'une ou plusieurs mémoires (302, 606) à partir de valeurs de données d'entrée de table de substitution (S1_IN à SN_IN) et la lecture de valeurs auxdits emplacements de mémoire pour fournir des valeurs de données de sortie de table de substitution (S1_OUT à SN_OUT).
  5. 5. Procédé selon la revendication 4, comprenant en outre, pour chaque série d'ensemble d'opérations de substitution, le stockage des valeurs de sortie de table de substitution (S1_OUT à S8_OUT) de chaque opération de substitution et la sélection des valeurs de sortie correspondant à l'ensemble réel d'opérations de substitution à partir de la première valeur aléatoire (RAC).
  6. 6. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel chaque ensemble d'opérations de substitution de ladite série comprend l'exécution de l'algorithme cryptographique à partir d'un même message d'entrée et d'une même clé secrète.
  7. 7. Procédé selon la revendication 6, dans lequel :
    chaque série d'ensembles d'opérations de substitution comprend m-1 ensembles factices d'opérations de substitution, m étant un entier fixé à une valeur supérieure ou égale à 2 ou choisie aléatoirement ; et pour une clé donnée, un même groupe de m-1 permutations est appliqué pendant les m-1 opérations de substitution factices correspondantes.
  8. 8. Procédé selon la revendication 7, dans lequel chaque groupe de m-1 permutations pour une clé données est sélectionné à partir d'une seconde valeur aléatoire (PERM).
  9. 9. Procédé selon l'une quelconque des revendications 1 à 8, dans lequel le nombre (m-1) d'ensembles factices d'opérations de substitution effectués dans chaque série est choisi aléatoirement.
    B16586 17-RO-0550
  10. 10. Moyen de stockage non transitoire stockant un programme informatique configuré, lorsqu'il est exécuté par un dispositif de traitement (602), pour mettre en œuvre un procédé selon l'une quelconque des revendications 1 à 9.
  11. 11. Circuit cryptographique comprenant :
    un circuit de mémoire (302, 606) stockant plusieurs tables de substitution (S-BOXES) pour mettre en œuvre des ensembles d'opération de substitution d'un algorithme cryptographique ; et un ou plusieurs circuits (304, 602) configurés pour réaliser, pour chaque ensemble d'opérations de substitution de l'algorithme cryptographique, une série d'ensembles d'opérations de substitution utilisant lesdites tables de substitution (SBOXES), chaque série d'ensembles d'opérations de substitution comprenant :
    un ensemble réel d'opérations de substitution correspondant à l'ensemble d'opérations de substitution de l'algorithme cryptographique ; et un ou plusieurs ensembles factices d'opérations de substitution, dans lequel les un ou plusieurs circuits (302, 602) sont configurés pour appliquer une permutation différente des tables de substitution pendant chacun des ensembles factices d'opérations de substitution.
  12. 12. Circuit cryptographique selon la revendication 11, comprenant en outre un générateur de nombre aléatoire (306, 812) configuré pour générer, pour chacune desdites séries d'en-sembles d'opérations de substitution, une première valeur aléatoire (RAC), dans lequel les un ou plusieurs circuits (304, 602) sont configurés pour sélectionner aléatoirement la position de l'ensemble réel d'opérations de substitution parmi les un ou plusieurs ensembles factices d'opérations de substitution à partir de la première valeur aléatoire (RAC).
  13. 13. Circuit cryptographique selon la revendication 12, dans lequel le générateur de nombre aléatoire (306, 812) est par ailleurs configuré pour générer une seconde valeur aléatoire (PERM), dans lequel les un ou plusieurs circuits sont configurés
    B16586 17-RO-0550 pour sélectionner aléatoirement les permutations desdites tables de substitution à partir de la seconde valeur aléatoire (PERM).
  14. 14. Circuit cryptographique selon la revendication 13, comprenant en outre :
    un registre d'entrée (302) configuré pour stocker N valeurs d'entrée (INI à IN8) ; et un ou plusieurs multiplexeurs (MPI à MPN) configurés pour sélectionner, pour chaque ensemble d'opérations de substitution de chaque série, la valeur d'entrée parmi les N valeurs d'entrée à fournir à chaque table de substitution.
  15. 15. Circuit cryptographique selon la revendication 14, comprenant en outre un circuit de sélection (310) configuré pour générer un signal de sélection (SEL) pour commander les un ou plusieurs multiplexeurs (MPI à MP8) à partir desdites première et seconde valeurs aléatoires (PERM, RAC).
  16. 16. Circuit cryptographique selon l'une quelconque des revendications 11 à 13, dans lequel les un ou plusieurs circuits (304, 602) comprennent un ou plusieurs dispositifs de traitement (602) commandés par des instructions stockées dans une mémoire d’instructions (606, 608) pour charger N valeurs d'entrée dans une mémoire (808) , N étant égal au nombre de tables de substitution, et pour choisir, pour chaque ensemble d'opérations de substitution de chaque série, soit de mettre en œuvre 1'ensemble réel d'opérations de substitution en fournissant chaque valeur d'entrée à la table de substitution correspondante à partir dudit algorithme cryptographique, soit de mettre en ouvre un ensemble factice d'opérations de substitution en fournissant chaque valeur d'entrée à l'une desdites tables de substitution autre que la table correspondante.
FR1851638A 2018-02-26 2018-02-26 Procede et dispositif de realisation d'operations en table de substitution Pending FR3078463A1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR1851638A FR3078463A1 (fr) 2018-02-26 2018-02-26 Procede et dispositif de realisation d'operations en table de substitution
EP19157874.9A EP3531612B1 (fr) 2018-02-26 2019-02-18 Procédé et dispositif pour l'exécution d'opérations sur une table de substitution
US16/281,881 US11265145B2 (en) 2018-02-26 2019-02-21 Method and device for performing substitution table operations
US16/281,889 US11218291B2 (en) 2018-02-26 2019-02-21 Method and circuit for performing a substitution operation
US17/537,056 US11824969B2 (en) 2018-02-26 2021-11-29 Method and circuit for performing a substitution operation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1851638 2018-02-26
FR1851638A FR3078463A1 (fr) 2018-02-26 2018-02-26 Procede et dispositif de realisation d'operations en table de substitution

Publications (1)

Publication Number Publication Date
FR3078463A1 true FR3078463A1 (fr) 2019-08-30

Family

ID=63637940

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1851638A Pending FR3078463A1 (fr) 2018-02-26 2018-02-26 Procede et dispositif de realisation d'operations en table de substitution

Country Status (3)

Country Link
US (1) US11265145B2 (fr)
EP (1) EP3531612B1 (fr)
FR (1) FR3078463A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102628010B1 (ko) * 2018-10-05 2024-01-22 삼성전자주식회사 가상 암호화 연산을 수행하는 암호화 회로

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080019503A1 (en) * 2005-11-21 2008-01-24 Vincent Dupaquis Encryption protection method
US20090074181A1 (en) * 2004-07-22 2009-03-19 Herve Pelletier Method and device for executing crytographic calculation
US20130064362A1 (en) * 2011-09-13 2013-03-14 Comcast Cable Communications, Llc Preservation of encryption

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6002536A (en) 1990-07-06 1999-12-14 Hitachi Ltd. Digital transmission signal processing system and recording/reproducing system
US6966002B1 (en) * 1999-04-30 2005-11-15 Trymedia Systems, Inc. Methods and apparatus for secure distribution of software
US6875566B2 (en) 2000-07-29 2005-04-05 The Board Of Trustees Of The University Of Illinois Marker for antidepressant therapy and methods related thereto
US6963103B2 (en) 2001-08-30 2005-11-08 Micron Technology, Inc. SRAM cells with repressed floating gate memory, low tunnel barrier interpoly insulators
US7218251B2 (en) * 2002-03-12 2007-05-15 Sony Corporation Signal reproducing method and device, signal recording method and device, and code sequence generating method and device
JP2005527853A (ja) * 2002-05-23 2005-09-15 アトメル・コーポレイション 高度暗号化規格(aes)のハードウェア暗号法エンジン
US7066962B2 (en) 2002-07-23 2006-06-27 Porex Surgical, Inc. Composite surgical implant made from macroporous synthetic resin and bioglass particles
WO2004035744A2 (fr) 2002-10-18 2004-04-29 Biostream, Inc. Procede de purification de composes radiomarques
JP2004212828A (ja) * 2003-01-08 2004-07-29 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
KR20070093963A (ko) * 2004-09-24 2007-09-19 시냅틱 래버러토리즈 리미티드 대입 박스들
JPWO2006085619A1 (ja) 2005-02-10 2008-06-26 株式会社東芝 燃料電池
EP1798888B1 (fr) * 2005-12-19 2011-02-09 St Microelectronics S.A. Protection de l'exécution d'un algorithme DES
EP1997265B1 (fr) * 2006-03-10 2020-08-05 Irdeto B.V. Intégrité d'un système de traitement de données pour la protection de contenu basé utilisant de boites blanches
US20120123316A1 (en) 2010-11-15 2012-05-17 Aquesys, Inc. Intraocular shunts for placement in the intra-tenon's space
US8553877B2 (en) * 2007-10-01 2013-10-08 Blackberry Limited Substitution table masking for cryptographic processes
IL187046A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Memory randomization for protection against side channel attacks
JP5433498B2 (ja) 2010-05-27 2014-03-05 株式会社東芝 暗号処理装置
FR2985624B1 (fr) 2012-01-11 2014-11-21 Inside Secure Procede de chiffrement protege contre des attaques par canaux auxiliaires
EP2831797B1 (fr) * 2012-03-30 2018-05-02 Irdeto B.V. Sécurisation de systèmes accessibles par l'utilisation d'un réarrangement des données dynamiques
US8855599B2 (en) * 2012-12-31 2014-10-07 Lookout, Inc. Method and apparatus for auxiliary communications with mobile communications device
US9838198B2 (en) * 2014-03-19 2017-12-05 Nxp B.V. Splitting S-boxes in a white-box implementation to resist attacks
US9430329B2 (en) * 2014-04-03 2016-08-30 Seagate Technology Llc Data integrity management in a data storage device
CN103905462B (zh) * 2014-04-16 2017-05-17 深圳国微技术有限公司 可抵御差分功耗分析攻击的加密处理装置及方法
KR102446866B1 (ko) * 2014-08-28 2022-09-23 삼성전자주식회사 부채널 공격을 방지하는 암복호화기 및 이의 구동 방법 그리고 이를 포함하는 제어 장치
CN104378196A (zh) 2014-11-07 2015-02-25 昆腾微电子股份有限公司 加解密算法的安全执行方法和装置
US9819486B2 (en) * 2014-12-19 2017-11-14 Nxp B.V. S-box in cryptographic implementation
US9774443B2 (en) * 2015-03-04 2017-09-26 Apple Inc. Computing key-schedules of the AES for use in white boxes
US20160269175A1 (en) * 2015-03-09 2016-09-15 Qualcomm Incorporated Cryptographic cipher with finite subfield lookup tables for use in masked operations
CN104734842B (zh) 2015-03-13 2018-06-08 上海交通大学 基于伪操作的电路旁路攻击抵御方法
CN104734845B (zh) 2015-03-25 2018-11-23 上海交通大学 基于全加密算法伪操作的旁路攻击防护方法
US20160350520A1 (en) * 2015-05-29 2016-12-01 Nxp, B.V. Diversifying Control Flow of White-Box Implementation
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
NL2015745B1 (en) * 2015-11-09 2017-05-26 Koninklijke Philips Nv A cryptographic device arranged to compute a target block cipher.
EP3188000A1 (fr) 2015-12-29 2017-07-05 Gemalto Sa Système et procédé de masquage d'un secret cryptographique à l'aide d'une extension
EP3208789B1 (fr) * 2016-02-22 2020-08-05 Eshard Procédé de protection d'un circuit contre une analyse par canaux auxiliaires
CN107547189A (zh) * 2016-06-28 2018-01-05 埃沙尔公司 免受侧信道分析的保护方法和设备
US10771235B2 (en) * 2016-09-01 2020-09-08 Cryptography Research Inc. Protecting block cipher computation operations from external monitoring attacks
US11227071B2 (en) * 2017-03-20 2022-01-18 Nanyang Technological University Hardware security to countermeasure side-channel attacks
EP3407528A1 (fr) * 2017-05-24 2018-11-28 Koninklijke Philips N.V. Dispositif et procédé cryptographique
US10547449B2 (en) * 2017-05-30 2020-01-28 Nxp B.V. Protection against relay attacks in a white-box implementation
EP3413500A1 (fr) * 2017-06-09 2018-12-12 Koninklijke Philips N.V. Dispositif et procédé pour calculer un chiffrement par bloc
EP3422176A1 (fr) * 2017-06-28 2019-01-02 Gemalto Sa Method for securing a cryptographic process with sbox against high-order side-channel attacks
EP3447509B1 (fr) * 2017-08-21 2021-05-26 Eshard Procédé d'essai de la résistance d'un circuit à une analyse de canal latéral
CN107980212A (zh) 2017-09-06 2018-05-01 福建联迪商用设备有限公司 防dpa攻击的加密方法及计算机可读存储介质
US20190116022A1 (en) * 2017-10-16 2019-04-18 Samsung Electronics Co., Ltd. Encryption device and operation method thereof
EP3499788B1 (fr) * 2017-12-15 2020-07-29 Secure-IC SAS Masquage dynamique
US10778410B2 (en) 2019-06-18 2020-09-15 Alibaba Group Holding Limited Homomorphic data encryption method and apparatus for implementing privacy protection
KR102256524B1 (ko) * 2019-11-13 2021-05-26 현대모비스 주식회사 에어백 시스템의 에어백 미전개 방지 모듈 및 에어백 미전개 방지 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090074181A1 (en) * 2004-07-22 2009-03-19 Herve Pelletier Method and device for executing crytographic calculation
US20080019503A1 (en) * 2005-11-21 2008-01-24 Vincent Dupaquis Encryption protection method
US20130064362A1 (en) * 2011-09-13 2013-03-14 Comcast Cable Communications, Llc Preservation of encryption

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PAN J ET AL: "You Cannot Hide behind the Mask: Power Analysis on a Provably Secure S-Box Implementation", 25 August 2009, INFORMATION SECURITY APPLICATIONS, SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 178 - 192, ISBN: 978-3-642-10837-2, XP019135991 *
XIANWEN YANG ET AL: "Design research of the DES against power analysis attacks based on FPGA", MICROPROCESSORS AND MICROSYSTEMS, vol. 35, no. 1, 17 November 2010 (2010-11-17), pages 18 - 22, XP028133251, ISSN: 0141-9331, [retrieved on 20101117], DOI: 10.1016/J.MICPRO.2010.11.002 *

Also Published As

Publication number Publication date
EP3531612A1 (fr) 2019-08-28
US20190268137A1 (en) 2019-08-29
EP3531612B1 (fr) 2020-11-04
US11265145B2 (en) 2022-03-01

Similar Documents

Publication Publication Date Title
US20210142324A1 (en) Method and apparatus for processing transaction requests
TWI686073B (zh) 金鑰資料處理方法、裝置及伺服器
US9904629B2 (en) Backup system with multiple recovery keys
US20230049649A1 (en) Method and apparatus for protecting embedded software
US10044703B2 (en) User device performing password based authentication and password registration and authentication methods thereof
US9537653B2 (en) Encryption key generating apparatus and computer program product
FR3078464A1 (fr) Procede et circuit de mise en oeuvre d'une table de substitution
CN107528917B (zh) 一种文件存储方法及装置
FR2833120A1 (fr) Appareil et procede de cryptage de donnees
US20210284703A1 (en) Encryption device and operation method thereof
US8566609B2 (en) Integrity of ciphered data
FR3011653A1 (fr) Procedes et dispositifs de masquage et demasquage
CN105095097A (zh) 随机化的存储器访问
FR2984553A1 (fr) Procede et dispositif de detection de fautes
CN112887077A (zh) 一种ssd主控芯片随机缓存保密方法和电路
FR2869174A1 (fr) Procede et dispositif pour determiner un resultat
EP3803636B1 (fr) Processeur ntt incluant une pluralite de bancs de memoires
FR2919448B1 (fr) Dispositif, systeme, et procede de masquage de donnees traitees dans un circuit integre
FR3056322A1 (fr) Procede de chiffrement ou de dechiffrement protege contre des attaques par canaux caches
FR3083885A1 (fr) Circuit de generation de facteurs de rotation pour processeur ntt
FR3078463A1 (fr) Procede et dispositif de realisation d'operations en table de substitution
FR3078419A1 (fr) Procede et circuit de realisation d'une operation de substitution
FR2949010A1 (fr) Procede de contremesure pour proteger des donnees memorisees
CN116628776A (zh) 存储器装置以及存储器芯片的存储器阵列信息的读取方法
WO2015032921A1 (fr) Procédé de gestion de cohérence de caches

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20190830

RX Complete rejection

Effective date: 20200617