FR3060809A1 - METHOD OF ENCRYPTION BY MASSIVELY PARALLEL CALCULATION - Google Patents

METHOD OF ENCRYPTION BY MASSIVELY PARALLEL CALCULATION Download PDF

Info

Publication number
FR3060809A1
FR3060809A1 FR1662859A FR1662859A FR3060809A1 FR 3060809 A1 FR3060809 A1 FR 3060809A1 FR 1662859 A FR1662859 A FR 1662859A FR 1662859 A FR1662859 A FR 1662859A FR 3060809 A1 FR3060809 A1 FR 3060809A1
Authority
FR
France
Prior art keywords
encryption
decoy
processors
keys
data
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
FR1662859A
Other languages
French (fr)
Inventor
Florian Pebay-Peyroula
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.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
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 Commissariat a lEnergie Atomique CEA, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique CEA
Priority to FR1662859A priority Critical patent/FR3060809A1/en
Publication of FR3060809A1 publication Critical patent/FR3060809A1/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]

Landscapes

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

Abstract

Le système de chiffrement comprend un processeur maître ainsi qu'une pluralité de processeurs esclaves opérant en parallèle. Le processeur maître dispose du message à chiffrer et de la clé de chiffrement. Il divise le message à chiffrer en blocs de données utiles. Il génère par ailleurs des messages leurres et les divise en blocs de données leurres. De manière similaire, il génère de manière pseudo-aléatoire des clés leurres. A chaque intervalle de temps, le processeur maître alloue à chacun des processeurs esclaves un bloc de données ainsi qu'une clé, l'un au plus de ces blocs de données étant un bloc de données utiles et l'une au plus de ces clés étant la clé de chiffrement. Les instructions de chiffrement sont réalisées de manière synchronisée par les processeurs esclaves de manière à rendre très difficile les attaques physiques par corrélation (CPA).The encryption system includes a master processor and a plurality of slave processors operating in parallel. The master processor has the message to be encrypted and the encryption key. It divides the message to be encrypted into blocks of useful data. It also generates decoy messages and divides them into decoy data blocks. Similarly, it generates pseudo-random decoy keys. At each time interval, the master processor allocates to each of the slave processors a block of data and a key, at most one of these data blocks being a block of useful data and at most one of these keys being the encryption key. Encryption instructions are performed synchronously by the slave processors so as to make physical correlation attacks (CPA) very difficult.

Description

DESCRIPTIONDESCRIPTION

DOMAINE TECHNIQUETECHNICAL AREA

La présente invention concerne de manière générale le domaine de la cryptographie et plus particulièrement celui des méthodes de chiffrement résistant aux attaques physiques.The present invention relates generally to the field of cryptography and more particularly that of encryption methods resistant to physical attacks.

ÉTAT DE LA TECHNIQUE ANTÉRIEUREPRIOR STATE OF THE ART

Les méthodes de chiffrement permettent de protéger des données dans les systèmes électroniques, informatiques ou de télécommunication. On distingue classiquement deux types de systèmes cryptographiques, les systèmes symétriques où une même clé privée est utilisée pour le chiffrement et le déchiffrement, et les systèmes asymétriques utilisant un couple de clés distinctes, une clé privée étant utilisée pour le déchiffrement (ou la signature) et une clé publique pour le chiffrement (ou la vérification de signature).Encryption methods protect data in electronic, computer or telecommunications systems. There are typically two types of cryptographic systems, symmetric systems where the same private key is used for encryption and decryption, and asymmetric systems using a couple of distinct keys, a private key being used for decryption (or signature) and a public key for encryption (or signature verification).

Parmi les méthodes de chiffrement symétriques, on distingue les méthodes de chiffrement par blocs et les méthodes de chiffrement par flot. Dans une méthode de chiffrement par blocs, le message à chiffrer est découpé en blocs et ces blocs sont chiffrés de manière indépendante ou chaînée, généralement les uns après les autres. Dans les méthodes de chiffrement par flot, le message est en revanche chiffré en continu par un flot de clé (key streom).Among the symmetric encryption methods, a distinction is made between block encryption methods and stream encryption methods. In a block encryption method, the message to be encrypted is divided into blocks and these blocks are encrypted independently or chained, generally one after the other. In stream encryption methods, however, the message is continuously encrypted by a stream of key (key streom).

Un critère essentiel de qualité d'une méthode de chiffrement est sa robustesse aux techniques de cryptanalyse, c'est-à-dire à l'ensemble des techniques auxquelles un attaquant peut recourir pour retrouver les données en clair sans posséder la clé de chiffrement.An essential quality criterion of an encryption method is its robustness to cryptanalysis techniques, that is to say to all of the techniques which an attacker can use to find data in clear without having the encryption key.

On distingue la cryptanalyse classique (ou théorique) et la cryptanalyse par attaques physiques. La cryptanalyse classique consiste à observer des données chiffrées et à essayer de remonter par une analyse différentielle ou algébrique aux données en clair. Les attaques physiques sont l'ensemble des techniques exploitant le fonctionnement du circuit de chiffrement pour remonter aux données en clair. A la différence de la cryptanalyse classique, les attaques physiques ne visent pas à attaquer l'algorithme de chiffrement en soi mais son implémentation logicielle ou matérielle.A distinction is made between classical (or theoretical) cryptanalysis and cryptanalysis by physical attacks. Classical cryptanalysis consists of observing encrypted data and trying to ascend by clear or algebraic analysis to clear data. Physical attacks are all the techniques exploiting the operation of the encryption circuit to go back to the data in clear. Unlike conventional cryptanalysis, physical attacks are not aimed at attacking the encryption algorithm per se but its software or hardware implementation.

Les attaques physiques peuvent être matérielles ou logicielles (cheval de Troie par exemple). On distingue généralement deux grandes familles d'attaques physiques matérielles, à savoir les attaques par observation (ou par canaux auxiliaires) et les attaques par injection de fautes. Les attaques par observation ou SCA (Side Channel Analysis) se fondent sur l'observation du circuit pendant l'exécution des calculs liés au chiffrement. Cette observation se traduit en pratique par des mesures physiques (consommation de courant, trace électromagnétique, temps de calcul, etc.). Les attaques par injection de fautes ou FIA (Fault Injection Attack) exploitent l'effet d'une perturbation intentionnelle sur le fonctionnement du circuit, notamment pour détourner des protections ou réduire la complexité mathématique du déchiffrement.Physical attacks can be hardware or software (Trojan horse for example). There are generally two main families of physical physical attacks, namely attacks by observation (or by auxiliary channels) and attacks by injection of faults. Observation or Side Channel Analysis (SCA) attacks are based on observing the circuit while performing encryption calculations. This observation is translated in practice by physical measurements (current consumption, electromagnetic trace, calculation time, etc.). Fault Injection Attack (FIA) attacks exploit the effect of an intentional disturbance on the functioning of the circuit, in particular to bypass protections or reduce the mathematical complexity of decryption.

Le brevet US-B-7 500 112 décrit une méthode de chiffrement utilisant au moins deux processeurs, à savoir un CPU et au moins un coprocesseur, permettant de protéger le calcul cryptographique contre des attaques par canaux cachés et plus particulièrement contre une attaque par analyse différentielle de consommation ou DPA (Differential Power Analysis). Plus précisément, pendant que l'un des deux processeurs opère sur les données utiles à chiffrer, l'autre opère sur des données leurres. L'allocation des données utiles à chiffrer et des données leurres est effectuée de manière pseudo-aléatoire entre les deux processeurs, et le flux chiffré est reconstitué en ne conservant que les données utiles. Il est ainsi possible de noyer la trace électromagnétique et/ou la trace de consommation de courant dans le bruit produit par le chiffrement des données leurres.US Pat. No. 7,500,112 describes an encryption method using at least two processors, namely a CPU and at least one coprocessor, making it possible to protect the cryptographic calculation against attacks by hidden channels and more particularly against an attack by analysis. consumption differential or DPA (Differential Power Analysis). More precisely, while one of the two processors operates on the data useful to encrypt, the other operates on decoy data. The allocation of the useful data to be encrypted and of the decoy data is carried out in a pseudo-random manner between the two processors, and the encrypted stream is reconstituted while keeping only the useful data. It is thus possible to drown the electromagnetic trace and / or the trace of current consumption in the noise produced by the encryption of the decoy data.

Cette méthode de chiffrement présente une bonne robustesse aux attaques par DPA mais reste néanmoins vulnérable à des attaques telles que la CPA (Corrélation Power Analysis). Cette dernière permet, grâce à la corrélation avec un modèle de consommation, de différencier dans les traces de consommationThis encryption method has good robustness to attacks by DPA but is nevertheless vulnerable to attacks such as CPA (Correlation Power Analysis). The latter allows, thanks to the correlation with a consumption model, to differentiate in the traces of consumption

Le but de la présente invention est par conséquent de proposer un système/ une méthode de chiffrement qui soit plus robuste aux attaques par canaux auxiliaires, et plus particulièrement aux attaques par CPA, que les systèmes/ méthodes de chiffrement de l'état de la technique.The aim of the present invention is therefore to propose an encryption system / method which is more robust to attacks by auxiliary channels, and more particularly to CPA attacks, than the encryption systems / methods of the prior art. .

EXPOSÉ DE L'INVENTIONSTATEMENT OF THE INVENTION

La présente invention est définie par un système de chiffrement d'un message au moyen d'une clé de chiffrement, ledit système comprenant un module de contrôle et une pluralité de processeurs identiques opérant en parallèle, dans lequel :The present invention is defined by a system for encrypting a message by means of an encryption key, said system comprising a control module and a plurality of identical processors operating in parallel, in which:

- le module de contrôle alloue à chaque intervalle de temps et à chaque processeur :- the control module allocates to each time interval and to each processor:

• soit un bloc de données dudit message, dit bloc de données utiles, ainsi qu'une clé de chiffrement élémentaire obtenue à partir de ladite clé de chiffrement, pour chiffrer ledit bloc de données utiles ;• either a data block of said message, said useful data block, as well as an elementary encryption key obtained from said encryption key, for encrypting said useful data block;

• soit un bloc de données leurres de même taille que le bloc utile ainsi qu'une clé de chiffrement leurre, pour chiffrer le bloc de données leurres ;• either a decoy data block of the same size as the useful block as well as a decoy encryption key, for encrypting the decoy data block;

le module de contrôle allouant au plus un bloc de données utiles et une clé de chiffrement élémentaire par intervalle de temps ;the control module allocating at most one block of useful data and one elementary encryption key per time interval;

- les processeurs sont cadencés par une même horloge et sont initialisés par le module de contrôle en un même instant, les processeurs exécutant à chaque instant des instructions identiques, aux données et aux clés de chiffrement près.the processors are clocked by the same clock and are initialized by the control module at the same instant, the processors executing identical instructions at all times, except for the data and the encryption keys.

Avantageusement, le module de contrôle divise le message en blocs de données utiles et génère les blocs de données leurres de manière aléatoire, les blocs de données utiles et les blocs de données leurres étant transmis aux processeurs auxquels ils sont alloués.Advantageously, the control module divides the message into useful data blocks and generates the decoy data blocks at random, the useful data blocks and the decoy data blocks being transmitted to the processors to which they are allocated.

En outre, le module de contrôle génère les clés de chiffrement élémentaires à partir de la clé de chiffrement et génère les clés de chiffrement leurres de manière pseudoaléatoire, les clés de chiffrement élémentaires et les clés de chiffrement leurre étant transmis aux processeurs auxquels elles sont allouées.In addition, the control module generates the elementary encryption keys from the encryption key and generates the decoy encryption keys in a pseudo-random manner, the elementary encryption keys and the decoy encryption keys being transmitted to the processors to which they are allocated. .

Selon un premier exemple de réalisation, le chiffrement est réalisé par flot de clé et que les clés élémentaires sont obtenues comme des portions consécutives de la clé de chiffrement.According to a first exemplary embodiment, the encryption is carried out by stream of key and that the elementary keys are obtained as consecutive portions of the encryption key.

Selon un second exemple de réalisation, le chiffrement est un chiffrement AES et que les clés élémentaires sont des clés chaînées ou identiques.According to a second exemplary embodiment, the encryption is an AES encryption and that the elementary keys are chained or identical keys.

Le système de chiffrement peut être implémenté sous la forme d'une carte graphique ou d'un circuit intégré graphique de type GP-GPU.The encryption system can be implemented in the form of a graphics card or a GP-GPU graphics integrated circuit.

Alternativement, il peut être implémenté sous la forme d'un réseau de processeurs de type MPPA.Alternatively, it can be implemented in the form of a network of MPPA type processors.

L'invention concerne également une méthode de chiffrement d'un message au moyen d'une clé de chiffrement, ladite méthode mettant en oeuvre une pluralité de processeurs identiques opérant en parallèle, dans laquelle :The invention also relates to a method of encrypting a message using an encryption key, said method using a plurality of identical processors operating in parallel, in which:

- on alloue à chaque intervalle de temps et à chaque processeur :- we allocate to each time interval and each processor:

• soit un bloc de données dudit message, dit bloc de données utiles, ainsi qu'une clé de chiffrement élémentaire obtenue à partir de ladite clé de chiffrement, pour chiffrer ledit bloc de données utiles ;• either a data block of said message, said useful data block, as well as an elementary encryption key obtained from said encryption key, for encrypting said useful data block;

• soit un bloc de données leurres de même taille que le bloc utile ainsi qu'une clé de chiffrement leurre, pour chiffrer le bloc de données leurres ;• either a decoy data block of the same size as the useful block as well as a decoy encryption key, for encrypting the decoy data block;

au plus un bloc de données utiles et une clé de chiffrement élémentaire étant alloués par intervalle de temps ;at most one block of useful data and one elementary encryption key being allocated per time interval;

- on cadence les processeurs par une même horloge et on initialise les processeurs en un même instant, lesdits processeurs exécutant à chaque instant des instructions identiques, aux données et aux clés de chiffrement près.- The processors are clocked by the same clock and the processors are initialized in the same instant, said processors executing identical instructions at all times, except for the data and the encryption keys.

Avantageusement, on divise le message en blocs de données utiles et l'on génère les blocs de données leurres de manière aléatoire, les blocs de données utiles et les blocs de données leurres étant transmis aux processeurs auxquels ils sont alloués.Advantageously, the message is divided into useful data blocks and the decoy data blocks are generated randomly, the useful data blocks and the decoy data blocks being transmitted to the processors to which they are allocated.

En outre, on génère les clés de chiffrement élémentaires à partir de la clé de chiffrement et l'on génère les clés de chiffrement leurres de manière pseudo-aléatoire, les clés de chiffrement élémentaires et les clés de chiffrement leurres étant transmises aux processeurs auxquels elles sont allouées.In addition, the elementary encryption keys are generated from the encryption key and the decoy encryption keys are generated in a pseudo-random manner, the elementary encryption keys and the decoy encryption keys being transmitted to the processors to which they are allocated.

BRÈVE DESCRIPTION DES DESSINSBRIEF DESCRIPTION OF THE DRAWINGS

D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture d'un mode de réalisation préférentiel de l'invention, fait en référence aux figures jointes parmi lesquelles :Other characteristics and advantages of the invention will appear on reading a preferred embodiment of the invention, made with reference to the attached figures among which:

La Fig. 1 représente schématiquement l'architecture d'un système de chiffrement selon un mode de réalisation de l'invention ;Fig. 1 schematically represents the architecture of an encryption system according to an embodiment of the invention;

La Fig. 2A représente schématiquement une première variante de chronogramme des opérations de chiffrement réalisées par les différents processeurs de la Fig. 1 ;Fig. 2A schematically represents a first variant timing diagram of the encryption operations performed by the various processors of FIG. 1;

La Fig. 2B représente schématiquement une seconde variante de chronogramme 10 des opérations de chiffrement réalisées par les différents processeurs de la Fig. 1 ;Fig. 2B schematically represents a second variant of timing diagram 10 of the encryption operations performed by the various processors of FIG. 1;

La Fig. 3 représente un exemple de traces de consommation en courant de deux processeurs de la Fig. 1.Fig. 3 represents an example of traces of current consumption of two processors of FIG. 1.

EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERSDETAILED PRESENTATION OF PARTICULAR EMBODIMENTS

L'idée à la base de l'invention est d'utiliser un système de chiffrement comprenant une pluralité de processeurs identiques. Par identique, on entend que ces processeurs ont la même architecture matérielle et que le logiciel stocké dans ces processeurs est identique. Tous les processeurs sont cadencés par une seule et même horloge et les calculs cryptographiques exécutés par ces processeurs démarrent au même instant, de sorte qu'àThe idea underlying the invention is to use an encryption system comprising a plurality of identical processors. By identical, it is meant that these processors have the same hardware architecture and that the software stored in these processors is identical. All the processors are clocked by a single clock and the cryptographic calculations executed by these processors start at the same instant, so that at

0 un instant donné deux processeurs quelconques de ladite pluralité exécutent la même instruction, à la différence éventuelle près des données à chiffrer et de la clé de chiffrement sur laquelle elle porte. Toutefois, en un instant donné, un processeur au plus opère sur des données utiles, les autres processeurs opérant sur des données leurres. Le fait que les instructions soient identiques (à la seule différence près de la clé de chiffrement et des0 at any given time any two processors of said plurality execute the same instruction, with the possible difference near the data to be encrypted and the encryption key to which it relates. However, in a given instant, at most one processor operates on useful data, the other processors operating on decoy data. The fact that the instructions are identical (with the only difference near the encryption key and the

5 données à chiffrer sur lesquelles ces instructions portent) et que celles-ci soient exécutées de manière strictement simultanée rend une attaque par CPA particulièrement difficile.5 data to be encrypted to which these instructions relate) and that these are executed strictly simultaneously makes a CPA attack particularly difficult.

La Fig. 1 représente de manière schématique l'architecture d'un système de chiffrement selon un mode de réalisation de l'invention.Fig. 1 schematically represents the architecture of an encryption system according to an embodiment of the invention.

Ce système de chiffrement comprend un module de contrôle, 100, noté MP, par exemple un processeur maître.This encryption system comprises a control module, 100, denoted MP, for example a master processor.

Il comprend en outre une pluralité N (N>2) de processeurs identiques, 110, notés Ρυχ,...,ΡϋN, agissant comme processeurs esclaves.It further comprises a plurality N (N> 2) of identical processors, 110, denoted Ρυ χ , ..., Ρϋ N , acting as slave processors.

Ces processeurs peuvent être par exemple des processeurs génériques contenant dans leur mémoire ROM le même logiciel de chiffrement ou des circuits logiques programmables de type FGPA, programmés pour exécuter un même algorithme de chiffrement, ou des unités de calcul présentes dans un GPU (Grophicol Processing Unit) comme expliqué plus loin.These processors can for example be generic processors containing in their ROM memory the same encryption software or programmable logic circuits of FGPA type, programmed to execute the same encryption algorithm, or calculation units present in a GPU (Grophicol Processing Unit ) as explained below.

Chaque processeur PUn dispose de sa propre mémoire locale, désignée parEach PU n processor has its own local memory, designated by

MEMn. Autrement dit, les mémoires MEM i des processeurs PUn sont non partagées. Ces mémoires stockent les données à chiffrer (utiles ou leurres) et les clés de chiffrement.MEM n . In other words, the memories MEM i of the processors PU n are not shared. These memories store the data to be encrypted (useful or decoys) and the encryption keys.

Les processeurs PUX,...,PUN sont reliés par un bus ou plusieurs bus au module de contrôle 100. Ils sont cadencés par une même horloge CLK et sont initialisés par un même signal de synchronisation sync. Ce signal peut être un signal physique voire un message transmis par le module de contrôle.The processors PU X , ..., PU N are connected by a bus or several buses to the control module 100. They are clocked by the same CLK clock and are initialized by the same sync synchronization signal. This signal can be a physical signal or even a message transmitted by the control module.

Le module de contrôle MP peut être un processeur de même type que les processeurs PUX,...,PUN ou bien un processeur spécifique. Le module de contrôle MP a pour rôle de transmettre aux processeurs les données à chiffrer et les clés de chiffrement.The MP control module can be a processor of the same type as the processors PU X , ..., PU N or else a specific processor. The role of the control module MP is to transmit the data to be encrypted and the encryption keys to the processors.

0 Plus précisément, il alloue de manière pseudo-aléatoire les données utiles à l'un des processeurs et des données leurres aux autres.0 More specifically, it pseudo-randomly allocates the useful data to one of the processors and decoy data to the other.

Il convient de noter que cette allocation peut être effectuée de manière dynamique, par intervalle de temps. Autrement dit, à chaque intervalle de temps, le module de contrôle MP peut modifier l'allocation et charger un processeur différent duIt should be noted that this allocation can be carried out dynamically, by time interval. In other words, at each time interval, the control module MP can modify the allocation and load a processor different from the

5 chiffrement des données utiles. Selon une variante particulière, le module de contrôle peut, pendant certains intervalles de temps, n'allouer aux processeurs que des données leurres et pas de données utiles.5 encryption of useful data. According to a particular variant, the control module can, during certain time intervals, allocate to the processors only decoy data and no useful data.

Enfin, le module de contrôle est chargé de récupérer les données chiffrées par les processeurs PUn η = Ι,.,.,Ν, d'éliminer les données leurres (chiffrées) et de reconstituer le flux de données utiles chiffrées. Ce traitement peut être effectué à la fin de chaque intervalle de temps ou bien au terme du processus de chiffrement.Finally, the control module is responsible for recovering the data encrypted by the processors PU n η = Ι,.,., Ν, eliminating the decoy data (encrypted) and reconstructing the flow of encrypted useful data. This processing can be carried out at the end of each time interval or else at the end of the encryption process.

La Fig. 2A représente schématiquement une première variante de chronogramme 5 des opérations de chiffrement réalisées par les différents processeurs de la Fig. 1.Fig. 2A schematically represents a first variant of timing diagram 5 of the encryption operations performed by the various processors of FIG. 1.

On suppose que l'on ait à chiffrer un message Mit dit message utile, constitué par des données à chiffrer (données utiles). Ce message peut être divisé en bloc successifs notés MtBk où k = Ι,.,.,Κ est un indice temporel. Le message utile est noyé au sein d'une pluralité N de messages, Mjt j = Ι,.,.,Ν, les N-l messages Mjt j ψ i, étant constitués de données leurres et, pour cette raison, dénommés messages leurres. Les messages leurres,Mjt j Ψί, sont également divisés en blocs successifs, 47 ,¾ , de même taille que les blocs MtBk.We suppose that we have to encrypt a message M it called useful message, constituted by data to be encrypted (useful data). This message can be divided into successive blocks denoted M t B k where k = Ι,.,., Κ is a time index. The useful message is embedded in a plurality N of messages, M jt j = Ι,.,., Ν, the Nl messages M jt j ψ i, being made up of decoy data and, for this reason, called decoy messages . The decoy messages, M jt j Ψί, are also divided into successive blocks, 47, ¾, of the same size as the blocks M t B k .

K chaque intervalle de temps k, le module de contrôle alloue les blocs de données 47,¾. j = l,...,N, aux processeurs PUn, n = l,...,N et leur transmet des clés de chiffrement pour chiffrer respectivement ces blocs, soit Ω,. .K each time interval k, the control module allocates the data blocks 47, ¾. j = l, ..., N, to the processors PU n , n = l, ..., N and transmits encryption keys to them to encrypt these blocks respectively, ie Ω ,. .

JJ

Le chiffrement peut être un chiffrement symétrique par flot. Dans ce cas, les clés de chiffrement Ωι λ constituent un flot de clé Ω, ={Ωι1ι 2,..,Ωι ΛΓ} .The encryption can be symmetric stream encryption. In this case, the encryption keys Ω ι λ constitute a stream of key Ω, = {Ω ι1 , Ω ι 2 , .., Ω ι ΛΓ }.

Alternativement, le chiffrement réalisé par le système de chiffrement peut être par exemple un chiffrement symétrique par blocs comme le chiffrement AES. Dans ce cas,Alternatively, the encryption performed by the encryption system can be, for example, symmetric block encryption such as AES encryption. In that case,

0 les clés de chiffrement Ωιλ sont des clés qui peuvent être toutes identiques ou bien chaînées suivant le mode d'opération envisagé.0 the encryption keys Ω ιλ are keys which can all be identical or chained depending on the mode of operation envisaged.

Quel que soit le type de chiffrement, les clés Ωλ jïi sont des clés de chiffrement leurres, générées par exemple de manière pseudo-aléatoire par le module de contrôle.Whatever the type of encryption, the keys Ω λ jïi are decoy encryption keys, generated for example in a pseudo-random manner by the control module.

Selon une variante, l'ensemble des clés Ω, j = 1,..., N, k = i,...,K peuvent avoir été stockées dans les différentes mémoires MEM , n = l,...,N à l'initialisation du processus de chiffrement.According to a variant, the set of keys Ω > λ , j = 1, ..., N, k = i, ..., K may have been stored in the various memories MEM, n = l, ..., N at the initialization of the encryption process.

De manière similaire, tous les blocs Μ F. , j = Ι,.,.,Ν, k = Ι,.,.,Κ , peuvent avoir été chargés dans les mémoires MEMn, n = l,...,N, lors de l'étape d'initialisation du processus de chiffrement. Dans ce cas, seuls les indices de message j = l,...,N sont alors communiqués à chaque intervalle de temps aux différents processeurs, chaque processeur utilisant un compteur pour incrémenter l'indice k à chaque intervalle de temps.Similarly, all the blocks Μ F., j = Ι,.,., Ν, k = Ι,.,., Κ, may have been loaded into the memories MEM n , n = l, ..., N , during the initialization step of the encryption process. In this case, only the message indices j = l, ..., N are then communicated at each time interval to the various processors, each processor using a counter to increment the index k at each time interval.

Quelle que soit la variante envisagée, le module de contrôle effectue l'allocation des blocs de données/ des indices de message de manière pseudo-aléatoire, accroissant ainsi la dispersion spatiale du chiffrement du message utile Mt.Whatever the variant envisaged, the control module allocates the data blocks / message indices in a pseudo-random manner, thus increasing the spatial dispersion of the encryption of the useful message M t .

On désigne dans la suite par CF une opération de chiffrement. Ainsi, pendant 10 l'intervalle de temps k, le processeur n s'étant vu allouer un bloc de données Μ .B, etHereinafter, CF denotes an encryption operation. Thus, during 10 the time interval k, the processor n having been allocated a data block Μ .B, and

J R une clé de chiffrement Ωλ effectue l'opération de chiffrement CF(MjBk,Eljk). Les instructions effectuées par les différents processeurs pour réaliser cette opération pendant l'intervalle de temps k sont strictement synchronisées et ne diffèrent que par les données MjBk et les clés Ω λ auxquelles elles s'appliquent.JR an encryption key Ω λ performs the encryption operation CF (M j B k , El jk ). The instructions carried out by the various processors to carry out this operation during the time interval k are strictly synchronized and differ only in the data MjB k and the keys Ω λ to which they apply.

Ainsi, sur l'exemple représenté en Fig. 2A, les blocs de données utiles ont été représentés en blanc et les blocs de données leurres ont été représentés en grisé. Les blocs successifs du message utile Mt sont chiffrés par le processeur PU3 lors de l'intervalle de temps k = l , le processeur PUN lors de l'intervalle de temps k = 2, le processeur PU3 lors de l'intervalle de temps k = 3, etc.Thus, in the example shown in FIG. 2A, the useful data blocks have been shown in white and the decoy data blocks have been shown in gray. The successive blocks of the useful message M t are encrypted by the processor PU 3 during the time interval k = l, the processor PU N during the time interval k = 2, the processor PU 3 during the interval time k = 3, etc.

0 Le module de contrôle récupère les données chiffrées au terme de chaque intervalle de chiffrement ou bien au terme du processus de chiffrement. La totalité du processus de chiffrement dure KT où T est la durée d'un intervalle de temps. Les données utiles chiffrées sont extraites des données chiffrées CF (m}Bk, Ω. jk ) pour reconstituer les données utiles chiffrées CF(MiBk,Q.ik), k = l,...,K .0 The control module recovers the encrypted data at the end of each encryption interval or else at the end of the encryption process. The entire encryption process lasts KT where T is the duration of a time interval. The encrypted useful data are extracted from the encrypted data CF (m } B k , Ω. Jk ) to reconstruct the encrypted useful data CF (M i B k , Q. Ik ), k = l, ..., K.

La Fig. 2B représente schématiquement une seconde variante des opérations de chiffrement réalisées par les différents processeurs de la Fig. 1.Fig. 2B schematically represents a second variant of the encryption operations performed by the various processors of FIG. 1.

Dans cette variante, à la différence de la première, le module de contrôle n'alloue pas nécessairement à chaque intervalle de temps k un bloc du message utile Mt à l'un des processeurs PUn, n = l,...,N . Autrement dit, si l'on désigne par 47,7/, k = 1,...,K les blocs du message utile Mjt le chiffrement complet de ce message s'effectue sur une duréeIn this variant, unlike the first, the control module does not necessarily allocate to each time interval k a block of the useful message M t to one of the processors PU n , n = l, ..., NOT . In other words, if we designate by 47.7 /, k = 1, ..., K the blocks of the useful message M jt the complete encryption of this message is carried out over a duration

QT > KT . Ainsi, les blocs du message utile, MtBk, k = Ι,.,.,Κ, sont distribués de manière pseudo-aléatoire, non seulement spatialement, entre les différents processeurs mais aussi temporellement entre les différents intervalles de temps. L'allocation respecte toutefois l'ordre des blocs et alloue au plus un de ces blocs par intervalle de temps à l'un des processeurs. En d'autres termes, si l'on se place à l'intervalle de temps q et que le bloc de message utile MtBk est le dernier bloc à avoir été alloué, le processeur maître peut soit allouer le bloc MtBk+1 à l'un des processeurs PUn, n = 1,..., N soit n'allouer que des blocs de messages leurres aux processeurs en question.QT> KT. Thus, the blocks of the useful message, M t B k , k = Ι,.,., Κ, are distributed in a pseudo-random manner, not only spatially, between the different processors but also temporally between the different time intervals. The allocation, however, respects the order of the blocks and allocates at most one of these blocks per time interval to one of the processors. In other words, if we take the time interval q and the useful message block M t B k is the last block to have been allocated, the master processor can either allocate the block M t B k + 1 to one of the processors PU n , n = 1, ..., N either allocate only blocks of decoy messages to the processors in question.

Sur l'exemple représenté en Fig. 2B, les blocs de données utiles ont été représentés en blanc et les blocs de données leurres ont été représentés en grisé.In the example shown in Fig. 2B, the useful data blocks have been shown in white and the decoy data blocks have been shown in gray.

Le processeur PU2 chiffre le premier bloc de données utiles, Μβ^, lors de l'intervalle de temps k = 1. Les processeurs ne chiffrent que des blocs de données leurres lors de l'intervalle de temps k = 2. Le processeur PU3 chiffre le second bloc de données utiles, Μβ2 lors de l'intervalle de temps k = 3, etc.The processor PU 2 encrypts the first block of useful data, Μβ ^, during the time interval k = 1. The processors encrypt only blocks of decoy data during the time interval k = 2. The processor PU 3 encrypts the second block of useful data, Μβ 2 during the time interval k = 3, etc.

0 La Fig. 3 représente un exemple de traces du courant consommé au cours du temps par deux processeurs de la Fig. 1. II convient de noter que des traces d'intensité de rayonnement électromagnétique des différents processeurs pourraient être alternativement utilisées.0 Fig. 3 shows an example of traces of the current consumed over time by two processors of FIG. 1. It should be noted that traces of the intensity of electromagnetic radiation from the various processors could be used alternately.

Les traces 310 et 320 correspondent respectivement à la consommation enTraces 310 and 320 correspond respectively to the consumption in

5 courant au cours d'un intervalle de temps T de deux processeurs, la trace 310 correspondant au chiffrement AES d'un bloc de données utiles et la trace 320 au chiffrement de données leurres.5 running during a time interval T of two processors, the trace 310 corresponding to the AES encryption of a useful data block and the trace 320 to the decryption of decoy data.

ίοίο

On remarque que ces traces sont parfaitement superposables sur l'axe temporel. La seule différence apparaissant en 330 provient du fait que les données à chiffrer ainsi que les clés de chiffrement sont différentes.We note that these traces are perfectly superimposable on the time axis. The only difference appearing in 330 comes from the fact that the data to be encrypted as well as the encryption keys are different.

En effet, des instructions identiques (aux clés de chiffrement et données près) sont exécutées de manière synchronisées par les différents processeurs. Ces instructions étant identiques, démarrant au même instant de début et se terminant au même instant de fin, on comprend que leurs traces temporelles sont quasi-identiques. Une corrélation entre les différentes traces ne permettra donc pas de discriminer les différentes étapes de calcul et donc de discriminer la consommation induite par le calcul sur les données sensibles de la consommation induite par le calcul sur les données leurres.In fact, identical instructions (apart from the encryption keys and data) are executed in synchronization by the different processors. These instructions being identical, starting at the same start time and ending at the same end time, we understand that their time traces are almost identical. A correlation between the different traces will therefore not make it possible to discriminate the different calculation steps and therefore to discriminate the consumption induced by the calculation on the sensitive data from the consumption induced by the calculation on the decoy data.

Le système de chiffrement peut être implémenté au moyen d'une carte graphique ou d'un circuit intégré graphique, de type GP-GPU (General Purpose computing on Graphics Processing Units). Une telle implémentation permet de faire effectuer par une carte graphique ou un circuit intégré graphique des calculs lourds qui traditionnellement étaient réalisés par un CPU, en bénéficiant de leur architecture massivement parallèle. Plusieurs bibliothèques de programmation GP-GPU sont disponibles pour exécuter ces calculs en ignorant les primitives graphiques sous-jacentes, notamment le langage OpenCL.The encryption system can be implemented by means of a graphics card or a graphics integrated circuit, of GP-GPU (General Purpose computing on Graphics Processing Units) type. Such an implementation allows heavy calculations which traditionally were carried out by a CPU to be carried out by a graphics card or a graphic integrated circuit, benefiting from their massively parallel architecture. Several GP-GPU programming libraries are available to execute these calculations while ignoring the underlying graphics primitives, notably the OpenCL language.

Le langage OpenCL distingue le processeur central CPU (c'est-à-dire le processeur maître MP dans le cas du système de chiffrement exposé précédemment) et les processeurs périphériques chargés des calculs intensifs (dans notre cas, les processeurs PUn, n = 1,..., N, chargés dans des opérations de chiffrement). Le langage OpenCL permet de tirer parti de l'architecture parallèle sous deux formes : SPMD (Single Program Multiple Data) et SIMD (Single Instruction Multiple Dota). Le parallélisme des tâches et des instructions garantit une superposition temporelle parfaite entre les instructions exécutées par les différents processeurs. Plus précisément, les différents blocs de messages Μ .B, (données utiles ou données leurres) sont considérés comme des « work item » regroupés dans des « work-group », mappés dans des processeurs dans le langage OpenCL. Chaque « work-group » exécute une même opération cryptographique sur des données (Μ .B, ) etThe OpenCL language distinguishes the central processor CPU (that is to say the master processor MP in the case of the encryption system described above) and the peripheral processors responsible for intensive calculations (in our case, the processors PU n , n = 1, ..., N, loaded in encryption operations). The OpenCL language makes it possible to take advantage of the parallel architecture in two forms: SPMD (Single Program Multiple Data) and SIMD (Single Instruction Multiple Dota). The parallelism of the tasks and the instructions guarantees a perfect temporal superposition between the instructions executed by the different processors. More precisely, the different message blocks Μ .B, (useful data or decoy data) are considered to be “work items” grouped in “work-groups”, mapped into processors in the OpenCL language. Each “work-group” performs the same cryptographic operation on data (Μ .B,) and

J K des clés ( Ω) différentes. Ce type d'implémentation offre en outre l'avantage d'interdire l'accès à un attaquant aux mémoires internes des différents processeurs contenant des informations sensibles.JK of keys (Ω / Ζ ) different. This type of implementation also offers the advantage of prohibiting an attacker from accessing the internal memories of the various processors containing sensitive information.

Le système de chiffrement selon la présente invention peut alternativement être 5 implémenté à l'aide d'un réseau de processeurs massivement parallèle ou MPPA (Mossively Parallel Processor Arroy). Un tel réseau est un circuit intégré comportant plusieurs centaines à plusieurs milliers de processeurs (ou cœurs) opérant en parallèle. Un cœur dédié (cœur de groupe) voire un processeur extérieur joue le rôle de module de contrôle. Il dispose du message Mt des données utiles et d'une clé Ω, de chiffrement (composée des clés Ωΐ(, ). En outre, il génère les N-1 messages leurres Mjt j = l,...,N, j Fi . Il divise le message utile M j =l,...,N en blocs Λ/,β, et les alloue à différents cœurs au cours du temps. Le cœur de groupe envoie une interruption aux différents cœurs pour effectuer une opération de chiffrement. Chaque cœur passe alors en mode non interruptible et effectue l'opération en question sur le bloc et avec la clé qui lui ont été préalablement fournis par le cœur de groupe. Chaque cœur signale la fin de son calcul et repasse en mode interruptible. Le cœur de groupe peut alors à nouveau envoyer une interruption aux différents cœurs pour lancer une nouvelle opération de chiffrement.The encryption system according to the present invention can alternatively be implemented using a massively parallel processor network or MPPA (Mossively Parallel Processor Arroy). Such a network is an integrated circuit comprising several hundreds to several thousand processors (or cores) operating in parallel. A dedicated core (group core) or even an external processor plays the role of control module. It has the message M t useful data and a key Ω, encryption (composed of the keys Ω ΐ ( ,). In addition, it generates the N-1 decoy messages M jt j = l, ..., N , j Fi. It divides the useful message M j = l, ..., N into blocks Λ /, β, and allocates them to different cores over time. The group core sends an interrupt to the different cores to perform a encryption operation. Each core then goes into non-interruptible mode and performs the operation in question on the block and with the key which were previously supplied to it by the group core. Each core signals the end of its calculation and returns to mode The group core can then again send an interrupt to the different cores to launch a new encryption operation.

Claims (10)

REVENDICATIONS 1. Système de chiffrement d'un message au moyen d'une clé de chiffrement, ledit système comprenant un module de contrôle et une pluralité de processeurs identiques opérant en parallèle, caractérisé en ce que :1. A system for encrypting a message by means of an encryption key, said system comprising a control module and a plurality of identical processors operating in parallel, characterized in that: - le module de contrôle alloue à chaque intervalle de temps et à chaque processeur :- the control module allocates to each time interval and to each processor: • soit un bloc de données dudit message, dit bloc de données utiles, ainsi qu'une clé de chiffrement élémentaire obtenue à partir de ladite clé de chiffrement, pour chiffrer ledit bloc de données utiles ;• either a data block of said message, said useful data block, as well as an elementary encryption key obtained from said encryption key, for encrypting said useful data block; • soit un bloc de données leurres de même taille que le bloc utile ainsi qu'une clé de chiffrement leurre, pour chiffrer le bloc de données leurres ;• either a decoy data block of the same size as the useful block as well as a decoy encryption key, for encrypting the decoy data block; le module de contrôle allouant au plus un bloc de données utiles et une clé de chiffrement élémentaire par intervalle de temps ;the control module allocating at most one block of useful data and one elementary encryption key per time interval; - les processeurs sont cadencés par une même horloge et sont initialisés par le module de contrôle en un même instant, les processeurs exécutant à chaque instant des instructions identiques, aux données et aux clés de chiffrement près.the processors are clocked by the same clock and are initialized by the control module at the same instant, the processors executing identical instructions at all times, except for the data and the encryption keys. 2. Système de chiffrement selon la revendication 1, caractérisé en ce que le module de contrôle divise le message en blocs de données utiles et génère les blocs de données leurres de manière aléatoire, les blocs de données utiles et les blocs de données leurres étant transmis aux processeurs auxquels ils sont alloués.2. Encryption system according to claim 1, characterized in that the control module divides the message into useful data blocks and generates the decoy data blocks randomly, the useful data blocks and the decoy data blocks being transmitted to the processors to which they are allocated. 3. Système de chiffrement selon la revendication 1 ou 2, caractérisée en ce que le module de contrôle génère les clés de chiffrement élémentaires à partir de la clé de chiffrement et génère les clés de chiffrement leurres de manière pseudo-aléatoire, les clés de chiffrement élémentaires et les clés de chiffrement leurre étant transmis aux processeurs auxquels elles sont allouées.3. Encryption system according to claim 1 or 2, characterized in that the control module generates the elementary encryption keys from the encryption key and generates the decoy encryption keys in a pseudo-random manner, the encryption keys elements and the decoy encryption keys being transmitted to the processors to which they are allocated. 4. Système de chiffrement selon la revendication 3, caractérisé en ce que le chiffrement est réalisé par flot de clé et que les clés élémentaires sont obtenues comme des portions consécutives de la clé de chiffrement.4. Encryption system according to claim 3, characterized in that the encryption is carried out by key flow and that the elementary keys are obtained as consecutive portions of the encryption key. 5. Système de chiffrement selon la revendication 3, caractérisé en ce que le chiffrement est un chiffrement AES et que les clés élémentaires sont des clés chaînées ou identiques.5. Encryption system according to claim 3, characterized in that the encryption is an AES encryption and that the elementary keys are chained or identical keys. 6. Système de chiffrement selon l'une des revendications précédentes, caractérisé en ce qu'il est implémenté sous la forme d'une carte graphique ou d'un circuit intégré graphique de type GP-GPU.6. Encryption system according to one of the preceding claims, characterized in that it is implemented in the form of a graphics card or a graphics integrated circuit of GP-GPU type. 7. Système de chiffrement selon l'une des revendications 1 à 5, caractérisée en ce qu'il est implémenté sous la forme d'un réseau de processeurs de type MPPA.7. Encryption system according to one of claims 1 to 5, characterized in that it is implemented in the form of a network of MPPA type processors. 8. Méthode de chiffrement d'un message au moyen d'une clé de chiffrement, ladite méthode mettant en œuvre une pluralité de processeurs identiques opérant en parallèle, caractérisée en ce que :8. Method for encrypting a message using an encryption key, said method using a plurality of identical processors operating in parallel, characterized in that: - on alloue à chaque intervalle de temps et à chaque processeur :- we allocate to each time interval and each processor: • soit un bloc de données dudit message, dit bloc de données utiles, ainsi qu'une clé de chiffrement élémentaire obtenue à partir de ladite clé de chiffrement, pour chiffrer ledit bloc de données utiles ;• either a data block of said message, said useful data block, as well as an elementary encryption key obtained from said encryption key, for encrypting said useful data block; • soit un bloc de données leurres de même taille que le bloc utile ainsi qu'une clé de chiffrement leurre, pour chiffrer le bloc de données leurres ;• either a decoy data block of the same size as the useful block as well as a decoy encryption key, for encrypting the decoy data block; au plus un bloc de données utiles et une clé de chiffrement élémentaire étant alloués par intervalle de temps ;at most one block of useful data and one elementary encryption key being allocated per time interval; - on cadence les processeurs par une même horloge et on initialise les processeurs en un même instant, lesdits processeurs exécutant à chaque instant des instructions identiques, aux données et aux clés de chiffrement près.- The processors are clocked by the same clock and the processors are initialized in the same instant, said processors executing identical instructions at all times, except for the data and the encryption keys. 9. Méthode de chiffrement selon la revendication 8, caractérisée en ce que l'on divise le message en blocs de données utiles et l'on génère les blocs de données leurres de manière aléatoire, les blocs de données utiles et les blocs de données leurres étant transmis aux processeurs auxquels ils sont alloués.9. Encryption method according to claim 8, characterized in that the message is divided into useful data blocks and the decoy data blocks are generated randomly, the useful data blocks and the decoy data blocks being passed to the processors to which they are allocated. 10. Méthode de chiffrement selon la revendication 8 ou 9, caractérisée en ce que l'on génère les clés de chiffrement élémentaires à partir de la clé de chiffrement et l'on génère les clés de chiffrement leurres de manière pseudo-aléatoire, les clés de chiffrement élémentaires et les clés de chiffrement leurres étant transmises aux processeurs auxquels10. The encryption method according to claim 8 or 9, characterized in that the elementary encryption keys are generated from the encryption key and the decoy encryption keys are generated in a pseudo-random manner, the keys encryption keys and decoy encryption keys being transmitted to processors to which 10 elles sont allouées.10 they are allocated. CLKCLK FiÉLlFiÉLl CFÇMîB^,QîN)CFÇMîB ^, Qî N )
FR1662859A 2016-12-20 2016-12-20 METHOD OF ENCRYPTION BY MASSIVELY PARALLEL CALCULATION Pending FR3060809A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1662859A FR3060809A1 (en) 2016-12-20 2016-12-20 METHOD OF ENCRYPTION BY MASSIVELY PARALLEL CALCULATION

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1662859A FR3060809A1 (en) 2016-12-20 2016-12-20 METHOD OF ENCRYPTION BY MASSIVELY PARALLEL CALCULATION
FR1662859 2016-12-20

Publications (1)

Publication Number Publication Date
FR3060809A1 true FR3060809A1 (en) 2018-06-22

Family

ID=58992929

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1662859A Pending FR3060809A1 (en) 2016-12-20 2016-12-20 METHOD OF ENCRYPTION BY MASSIVELY PARALLEL CALCULATION

Country Status (1)

Country Link
FR (1) FR3060809A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408075B1 (en) * 1998-11-30 2002-06-18 Hitachi, Ltd. Information processing equipment and IC card
US7500112B1 (en) * 2000-01-08 2009-03-03 Nxp B.V. Cryptographic device and methods for defeating physical analysis
US20120008780A1 (en) * 2008-02-26 2012-01-12 King Fahd University Of Petroleum And Minerals Method for elliptic curve scalar multiplication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408075B1 (en) * 1998-11-30 2002-06-18 Hitachi, Ltd. Information processing equipment and IC card
US7500112B1 (en) * 2000-01-08 2009-03-03 Nxp B.V. Cryptographic device and methods for defeating physical analysis
US20120008780A1 (en) * 2008-02-26 2012-01-12 King Fahd University Of Petroleum And Minerals Method for elliptic curve scalar multiplication

Similar Documents

Publication Publication Date Title
EP2215768B1 (en) Method and devices for protecting a microcircuit from attacks for obtaining secret data
FR2985624A1 (en) ENCRYPTION METHOD PROTECTED AGAINST AUXILIARY CHANNEL ATTACKS
EP1414182A1 (en) Hiding of data decomposed in a residue system
EP3200386A1 (en) Method of encrypting a stream of instructions and executing a stream of instructions thusly encrypted
FR2986631A1 (en) DEVICE AND METHOD FOR GENERATING A MESSAGE AUTHENTICATION CODE
FR2972064A1 (en) CRYPTOGRAPHY METHOD COMPRISING AN EXPONENTIATION OPERATION
FR3048102A1 (en) METHOD FOR CONFIDENTIAL EXECUTION OF A PROGRAM OPERATING ON DATA COMPRISING A HOMOMORPHIC NUMBER
EP3300293B1 (en) Method for symmetric encryption or decryption by blocks
EP3117555A1 (en) Countermeasure method for an electronic component implementing an elliptic curve cryptography algorithm
FR3078464A1 (en) METHOD AND CIRCUIT FOR IMPLEMENTING A SUBSTITUTION TABLE
FR3008505A1 (en) METHOD FOR OPTIMIZING PARALLEL DATA PROCESSING ON A MATERIAL PLATFORM
EP2707989A1 (en) Device and method for generating keys with enhanced security for fully homomorphic encryption algorithm
EP2166696A1 (en) Protection of encrypted data integrity using an intermediate cipher state to generate a signature
EP3300292A1 (en) Encryption or decryption method protected against side channel attacks
FR2888690A1 (en) CRYPTOGRAPHIC PROCESS FOR THE SECURE IMPLEMENTATION OF AN EXPONENTIATION AND ASSOCIATED COMPONENT
EP2284690A2 (en) Masking of a calculation performed according to an RSA-CRT algorithm
EP2284748B1 (en) Countermeasure for the protection of stored data
FR3060809A1 (en) METHOD OF ENCRYPTION BY MASSIVELY PARALLEL CALCULATION
US11283593B2 (en) Adaptive signal synchronization and glitch suppression for encryption engines
CA2988357A1 (en) Encryption method, corresponding encryption method, devices and programs
EP3547602A1 (en) Method for implementing a cryptographic function for a secret key
FR3078419A1 (en) METHOD AND CIRCUIT FOR REALIZING A SUBSTITUTE OPERATION
US11386237B2 (en) Scalable encryption engine having partitionable data paths
FR3078463A1 (en) METHOD AND DEVICE FOR REALIZING SUBSTITUTED TABLE OPERATIONS
EP2544115A1 (en) Method for running a process in a secured device

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20180622

RX Complete rejection