FR2878390A1 - Systeme et procede cryptographiques pour chiffrer des donnees d'entree - Google Patents

Systeme et procede cryptographiques pour chiffrer des donnees d'entree Download PDF

Info

Publication number
FR2878390A1
FR2878390A1 FR0511911A FR0511911A FR2878390A1 FR 2878390 A1 FR2878390 A1 FR 2878390A1 FR 0511911 A FR0511911 A FR 0511911A FR 0511911 A FR0511911 A FR 0511911A FR 2878390 A1 FR2878390 A1 FR 2878390A1
Authority
FR
France
Prior art keywords
data
compensation
rounds
unit
encrypted
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
FR0511911A
Other languages
English (en)
Inventor
Joon Ho Hwang
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to FR0511911A priority Critical patent/FR2878390A1/fr
Publication of FR2878390A1 publication Critical patent/FR2878390A1/fr
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/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/12Details relating to cryptographic hardware or logic circuitry

Landscapes

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

Abstract

Un système cryptographique pour chiffrer des données d'entrée conformément à un algorithme de chiffrement ayant une structure de rondes répétées peut inclure une unité de chiffrement (210) qui actualise et stocke des données chiffrées conformément à l'algorithme de chiffrement dans chaque ronde donnée, et fournit en sortie les données chiffrées après l'exécution du chiffrement pour un nombre de rondes donné. Le système peut inclure une unité de compensation (230) qui génère et stocke des données de compensation de façon qu'une somme d'une distance de Hamming pour les données actualisées et stockées et d'une distance de Hamming des données de compensation soit maintenue à une valeur constante.

Description

La présente invention concerne de façon générale un système
cryptographique et un procédé pour chiffrer des données d'entrée.
En général, un système cryptographique à clé publique peut être réalisé sur la base de la sécurité théorique utilisant la factorisation de nombres premiers ou l'algèbre discrète. Par exemple, des systèmes cryptographiques à clé publique peuvent employer des techniques utilisant une clé de chiffrement qui est de façon caractéristique difficile à factoriser. Des exemples de techniques utilisant une certaine clé de chiffrement qui est difficile à résoudre en utilisant l'algèbre discrète comprennent la technique Rivest-Shamir-Adelman (RSA), la technique Diffie- Hellman, la technique ElGamal, etc. Du fait que des systèmes cryptographiques à clé publique manipulant ces difficultés mathématiques effectuent une opération avec des nombres de bits supérieurs à 512 bits, les systèmes cryptographiques de l'art antérieur utilisant de telles techniques peuvent avoir de façon caractéristique ce qu'on appelle une structure à rondes répétées.
On a utilisé récemment des systèmes cryptographiques par blocs, qui ont une structure de rondes répétées, dans laquelle on peut considérer une ronde comme étant une itération de traitement de chiffrement donnée, pour des données à chiffrer. Un système cryptographique par blocs est un système cryptographique à clé non publique (clé symétrique) qui chiffre des données en divisant les données en blocs d'une taille déterminée. Après avoir généré une multiplicité de clés de sous-ronde en utilisant une clé de chiffrement donnée, le système cryptographique par blocs avec une structure de rondes répétées chiffre des données de façon répétée en utilisant chacune des clés de sous-ronde.
Des systèmes cryptographiques par blocs peuvent être réalisés en utilisant un algorithme de chiffrement donné. Des algorithmes de chiffrement utilisés de façon générale peuvent être définis par exemple par des standards de chiffrement connus. Des algorithmes de chiffrement par blocs caractéristiques comprennent le DES ("Data Encryption Standard") , utilisé aux Etats-Unis, l'algorithme IDEA ("International Data Encryption Algorithm") utilisé en Europe, l'algorithme SEED utilisé en Corée, etc. Tous les algorithmes de chiffrement normalisés sont publiés, et des utilisateurs peuvent réaliser des systèmes de chiffrement en utilisant les algorithmes de chiffrement fournis par ces standards publiés.
La figure 1 est un schéma synoptique d'un système cryptographique de l'art antérieur avec une structure de rondes répétées. Le système cryptographique 100 de l'art antérieur peut inclure de façon caractéristique une unité d'entrée 110, un registre 120, un circuit de chiffrement 135, une unité de sortie 150 et un compteur de rondes 160. L'unité d'entrée 110 reçoit des données à chiffrer à chaque ronde, c'està-dire que l'unité d'entrée 110 reçoit des données à chiffrer dans une première ronde, et elle reçoit au cours de rondes suivantes les données qui ont été chiffrées dans une ronde précédente.
Le registre 120 stocke les données émises par l'unité d'entrée 110 en réponse à un signal d'horloge. Dans la première ronde, les données à chiffrer sont stockées dans le registre 120, et dans les rondes suivantes les données chiffrées dans une ronde précédente sont actualisées et stockées dans le registre 120. Le circuit de chiffrement 135 chiffre les données stockées dans le registre 120 en utilisant une clé de chiffrement donnée (KEY). Le circuit de chiffrement 135 comprend un circuit de génération de clé de ronde 130 et un circuit de fonction de chiffrement 140.
Le circuit de génération de clé de ronde 130 génère une clé de ronde (RKEY), qui est utilisée pour le chiffrement à chaque ronde, en utilisant une clé donnée, KEY. Le circuit de fonction de chiffrement 140 réalise une fonction de chiffrement qui fait partie d'un algorithme de chiffrement donné. Le circuit de fonction de chiffrement 140 chiffre les données stockées dans le registre 120 en utilisant la clé RKEY basée sur la fonction de chiffrement donnée.
Dans une ronde finale, l'unité de sortie 150 fournit en sortie les données chiffrées par le circuit de fonction de chiffrement 140. Dans des rondes précédentes, l'unité de sortie 150 émet vers l'unité d'entrée 110 les données chiffrées par le circuit de fonction de chiffrement 140. Le compteur de rondes 160 compte le nombre de rondes effectuées, et émet une valeur de comptage comme un signal de commande, vers l'unité d'entrée 110 et l'unité de sortie 150. Le compteur de rondes 160 peut être restauré en réponse aux données chiffrées émises par l'unité de sortie 150. Le compteur de rondes 160 peut commencer à compter en réponse à l'introduction des données à chiffrer. Le compteur de rondes 160 peut augmenter la valeur de comptage en réponse aux données chiffrées émises à partir de l'unité de sortie 150.
Comme décrit ci-dessus, le système cryptographique à clé publique de l'art antérieur est basé sur la sécurité théorique utilisant l'algèbre discrète, la factorisation de nombres premiers, etc. Le système cryptographique par blocs de l'art antérieur réalise un chiffrement basé sur la sécurité théorique, comme la théorie de Shannon (diffusion et confusion). Cependant, on a développé récemment des attaques qui peuvent menacer des systèmes cryptographiques en exploitant une information collatérale tirée des systèmes cryptographiques, indépendamment de la sécurité théorique qui est utilisée.
Ces attaques menaçant des systèmes cryptographiques par l'exploitation d'information collatérale sont appelées attaques par "canal collatéral" ou "side channel". Une attaque par canal collatéral comprend une attaque par mesure de temps, qui exploite un temps d'accomplissement d'opération, une attaque par analyse de puissance qui exploite le niveau de consommation de puissance, et une attaque par défaut qui utilise un défaut intentionnel. Par exemple, l'attaque par analyse de puissance peut attaquer avec relativement peu d'effort et de coût un système cryptographique utilisé pour une carte à microprocesseur, et est donc une menace potentielle considérable pour la sécurité.
L'attaque par analyse de puissance peut être connue comme une attaque par analyse de puissance simple (SPA pour "Simple Power Analysis") ou une attaque par analyse de puissance différentielle (DPA pour "Differential Power Analysis"), par exemple. L'attaque par SPA infère une information secrète simplement en analysant un signal de puissance pendant qu'un système cryptographique fonctionne. L'attaque par DPA infère une information secrète en analysant un nombre considérable de signaux de puissance liés à la même clé secrète. Cette analyse peut être effectuée en utilisant une propriété statistique.
Plusieurs technologies ont été proposées pour concevoir un système cryptographique capable de résister à des attaques par analyse de puissance. Ces technologies comprennent fondamentalement un procédé ou un processus qui réduit le niveau d'un signal, insère du bruit, ou qui emploie une horloge aléatoire ou un ordre d'exécution aléatoire, par exemple. Cependant, s'il y a suffisamment d'échantillons de signaux de puissance à analyser, une composante aléatoire s'annule. Par conséquent, les technologies proposées de façon classique ne peuvent pas assurer parfaitement la sécurité contre des attaques par analyse de puissance.
Dans une autre proposition, il a été développé une technique de masquage, qui est différente de technologies utilisant une composante aléatoire. Dans la technique de masquage, une opération interne est effectuée en masquant des données d'entrée avec des données aléatoires, et en enlevant ensuite le masque. La technique de masquage a une structure qui assure de façon générale la sécurité contre des attaques par SPA et des attaques par DPA. Cependant, si l'opération interne est non linéaire, un circuit supplémentaire complexe est exigé, et il est nécessaire de concevoir des circuits de masquage convenant pour chaque algorithme de chiffrement.
De plus, l'attaque par analyse de puissance peut être utilisée pour déterminer une corrélation avec une information secrète en mesurant la consommation de puissance d'un circuit logique, tel qu'une table de substitution ou "boîte S" dans un système cryptographique par blocs. La boîte S, qui est une fonction de substitution non linéaire, utilise un algorithme pour convertir des données d'entrée en d'autres données, et pour fournir en sortie les autres données. Cependant, du fait qu'il est difficile en pratique de mesurer la consommation de puissance de la boîte S, la consommation de puissance ne peut pas être utilisée pour l'attaque par analyse de puissance.
Au contraire, il est aisé de mesurer la consommation de puissance due à un courant de commutation dans le registre dans lequel des données codées à chaque ronde sont actualisées et stockées, au lieu de mesurer la consommation de puissance de la boîte S. Par conséquent, une mesure de la consommation de puissance du registre est fréquemment utilisée comme une représentation d'une mesure de changements dans la puissance consommée par le système cryptographique.
En se référant à la figure 1, on note que les données stockées dans le registre 120 dans une ronde précédente sont actualisées par de nouvelles données chiffrées dans une ronde suivante. L'attaque par analyse de puissance est effectuée en utilisant le courant, qui change au moment où les données sont actualisées dans le registre 120. Par ailleurs, le courant de commutation dans un registre a une corrélation élevée avec une distance de Hamming de bits de données. La distance de Hamming indique le nombre de bits de données actualisées qui ont des valeurs différentes de celles de bits des données précédentes. Par exemple, si une valeur stockée dans le registre est actualisée de 1100 à 1010, le nombre de bits qui ont des valeurs différentes de celles de bits des données précédentes est 2. La distance de Hamming est donc 2.
Par conséquent, plus il y a de bits qui changent de valeurs lorsque des données stockées dans un registre sont actualisées, plus l'augmentation de consommation de puissance est grande. En d'autres termes, lorsque la distance de Hamming augmente, la consommation de puissance augmente. Du fait qu'une attaque par analyse de puissance fait intervenir l'attaque d'un système cryptographique en utilisant les changements de la puissance consommée dans un registre, il peut être souhaitable de maintenir une consommation de puissance constante. Par conséquent, il peut être souhaitable de maintenir constante la distance de Hamming lorsque des données stockées dans un registre sont actualisées.
Un exemple de mode de réalisation de la présente invention porte sur un système cryptographique pour chiffrer des données d'entrée conformément à un algorithme de chiffrement ayant une structure de rondes répétées. Le système peut inclure une unité de chiffrement qui actualise et stocke des données chiffrées conformément à l'algorithme de chiffrement dans chaque ronde donnée, et fournit en sortie les données chiffrées après l'exécution du chiffrement pour un nombre de rondes donné. Le système peut inclure une unité de compensation qui génère et stocke des données de compensation, de façon qu'une somme d'une distance de Hamming pour les données chiffrées actualisées et stockées et d'une distance de Hamming des données de compensation soit maintenue à une valeur constante.
Un autre exemple de mode de réalisation de la présente invention porte sur un système cryptographique pour chiffrer des données d'entrée en divisant les données d'entrée en un premier bloc et un deuxième bloc conformément à un algorithme de chiffrement ayant une structure de rondes répétées. Le système peut inclure une unité de chiffrement qui actualise et stocke des données, dans chaque ronde, pour chacun des premier et deuxième blocs chiffrés en conformité avec l'algorithme de chiffrement, et fournit en sortie les données chiffrées après l'exécution du chiffrement pour un nombre de rondes donné. Le système peut inclure une unité de compensation qui génère et stocke des premières données de compensation et des deuxièmes données de compensation, de façon que la somme d'une distance de Hamming pour les données chiffrées actualisées et stockées du premier bloc et les premières données de compensation soit maintenue à une valeur constante, et de façon que la somme de la distance de Hamming pour les données chiffrées actualisées et stockées du deuxième bloc et les deuxièmes données de compensation soit maintenue à une valeur constante.
Un autre exemple de mode de réalisation de la présente invention porte sur un procédé de chiffrement de données d'entrée conformément à un algorithme de chiffrement ayant une structure de rondes répétées. Dans le procédé, des données stockées peuvent être chiffrées conformément à l'algorithme de chiffrement dans chaque ronde. Des données de compensation peuvent être générées de façon qu'une somme d'une distance de Hamming pour les données chiffrées et pour les données de compensation soit maintenue à une valeur constante. Les données de compensation peuvent être produites simultanément aux données chiffrées, sur la base d'un signal d'horloge.
Des exemples de modes de réalisation de la présente invention seront mieux compris en considérant la description détaillée donnée ci-dessous et les dessins annexés, dans lesquels des éléments semblables sont désignés par des numéros de référence semblables, qui sont donnés seulement à titre d'illustration et ne limitent donc pas les exemples de modes de réalisation de la présente invention.
La figure 1 est un schéma synoptique d'un système cryptographique de l'art antérieur avec une structure de rondes répétées.
La figure 2 est un schéma synoptique d'un système cryptographique avec une structure de rondes répétées conforme à un exemple de mode de réalisation de la présente invention.
La figure 3 est un tableau montrant des valeurs de données stockées dans le registre dans le système cryptographique illustré sur la figure 2.
La figure 4 est un schéma synoptique d'un système cryptographique ayant une structure de Feistel conforme à un exemple de mode de réalisation de la présente invention.
La figure 5 est un tableau montrant des valeurs de données stockées dans le registre dans le système cryptographique illustré sur la figure 4.
La figure 6 est un organigramme illustrant un procédé pour chiffrer des données d'entrée en conformité avec un exemple de mode de réalisation de la présente invention.
Comme on l'envisagera ci-après de façon plus détaillée, les exemples de modes de réalisation de la présente invention portent sur un procédé et un système cryptographiques qui peuvent avoir une meilleure sécurité contre des attaques par canal collatéral. L'exemple de système cryptographique peut avoir une structure de rondes répétées, et peut maintenir constante la distance de Hamming en générant des données de compensation. Les données de compensation peuvent compenser un changement dans le courant généré sous l'effet d'un changement de la distance de Hamming de données chiffrées, lorsque les données chiffrées sont actualisées et stockées à chaque ronde et/ou itération de traitement de chiffrement.
Comme on le montrera ci-après, pour réaliser un système cryptographique qui soit capable de résister à une attaque par analyse de puissance, la méthodologie considérée à titre d'exemple peut employer une corrélation statistique entre la distance de Hamming et la consommation de puissance. La distance de Hamming est maintenue constante lorsque des données stockées dans un registre sont actualisées. Par exemple, un registre de compensation séparé peut être utilisé pour compenser la différence du courant qui est généré lorsque les données stockées dans le registre sont actualisées, permettant la circulation d'un courant constant à travers le système entier.
Dans les exemples de modes de réalisation de la présente invention qui suivent, on peut employer un registre de compensation, qui a la même taille (capacité) qu'un registre caractéristique dans le système cryptographique de l'art antérieur ("registre de système").
En outre, la distance de Hamming peut être la moitié de la somme de la capacité ou taille de mémoire combinée du registre de système et du registre de compensation.
A titre d'exemple, si la capacité du registre de système est de 32 bits, la capacité (ou taille) du registre de compensation est de 32 bits, et la distance de Hamming est donc de 32 bits. Dans un autre exemple, si la distance de Hamming de données est de 12 bits, la distance de Hamming de données stockées dans le registre de compensation doit être de 20 bits, pour donner une distance de Hamming totale de 32 bits. Par conséquent, la distance de Hamming des données actualisées et stockées dans un registre ayant au total 64 bits (capacité ou taille combinée des registres de système et de compensation) du système cryptographique reste inchangée.
La figure 2 est un schéma synoptique d'un système cryptographique avec une structure de rondes répétées conforme à un exemple de mode de réalisation de la présente invention. Le système cryptographique 200 peut inclure une unité de chiffrement 210 et une unité de compensation 230. L'unité de chiffrement 210 peut chiffrer des données pendant chaque ronde (ou itération de traitement) donnée, en utilisant un algorithme de chiffrement donné. Les données chiffrées peuvent être actualisées et stockées au cours de chaque ronde. L'unité de compensation 230 génère et stocke des données de compensation pour compenser les données chiffrées devant être actualisées et stockées par l'unité de chiffrement 210 dans chaque ronde.
Dans un exemple, les données de compensation peuvent avoir une valeur appropriée pour maintenir à une valeur donnée la somme de la distance de Hamming des données chiffrées et de la distance de Hamming des données de compensation. En outre, les données de compensation et les données chiffrées peuvent être stockées en synchronisme avec un signal d'horloge.
L'unité de chiffrement 210 représentée sur la figure 2 est la même que celle illustrée sur la figure 1. Du fait que le fonctionnement de chacun des éléments inclus dans l'unité de chiffrement 210 est identique au fonctionnement des éléments correspondants inclus dans le système cryptographique classique 100 de la figure 1, une description détaillée du fonctionnement est omise ici dans l'intérêt de la brièveté.
L'unité de compensation 230 peut inclure une unité de génération de données de compensation 232 et un registre de compensation 237. L'unité de génération de compensation 232 peut être configurée pour générer des données de compensation pour compenser les données chiffrées qui sont actualisées et stockées dans chaque ronde. Les données de compensation peuvent avoir en alternance soit les valeurs des données actualisées qui sont stockées dans un registre 231, soit une valeur inversée par rapport aux données actualisées stockées dans le registre 231, pendant chaque ronde consécutive. Les données de compensation peuvent être initialisées comme des données à chiffrer.
Dans un exemple, si le système cryptographique 200 considéré à titre d'exemple a un registre à 8 bits, et si la distance de Hamming des données qui sont actualisées et stockées après avoir été chiffrées dans une première ronde est désignée par n, la distance de Hamming des données de compensation est (8 - n). De plus, les données de compensation peuvent avoir des valeurs inversées par rapport à celles des données chiffrées.
Dans un exemple, si la distance de Hamming de données qui sont actualisées et stockées après avoir été chiffrées dans une ronde suivante est m, la distance de Hamming des données de compensation est (8 - m). A ce moment, du fait que des données de compensation d'une ronde précédente ont des valeurs inversées par rapport aux données qui ont été chiffrées dans la ronde précédente, les données de compensation peuvent avoir des valeurs inversées deux fois par rapport à celles des données chiffrées, ou en d'autres termes la même valeur que les données chiffrées.
Par conséquent, si on désigne par Ri la valeur de données qui sont actualisées et stockées après avoir été chiffrées dans une i-ième ronde, les valeurs des données actualisées et stockées dans l'unité de chiffrement 210 peuvent être celles indiquées dans l'expression (1) . R0 > R1 - R2 - R3 -+ R4 ... (1) En correspondance avec ces données, les valeurs des données de compensation actualisées et stockées peuvent être celles indiquées dans l'expression (2). Dans l'expression (2), "-R1" désigne la valeur inversée de R1.
RO -- -R1 -* R2 --t -R3 > R4 > ... (2) Si les données actualisées et stockées dans l'unité de chiffrement 210 contiennent x bits, les données de compensation contiennent x bits, et la distance de Hamming est maintenue à x bits. Par conséquent, le courant généré au moment de l'actualisation et du stockage de données dans le système cryptographique 200 est constant, ce qui fait que le système cryptographique 200 peut assurer la protection contre une attaque par analyse de puissance, par exemple.
En se référant à nouveau à la figure 2, on note que le registre de compensation 237 peut stocker les données de compensation générées en réponse au signal d'horloge. Pour maintenir la distance de Hamming constante, les données de compensation peuvent être stockées dans le registre de compensation 237 en même temps que les données chiffrées sont stockées dans le registre 213.
L'unité de génération de données de compensation 232 peut inclure une unité d'inversion 231, un premier circuit de sélection 233 et un deuxième circuit de sélection 235. L'unité d'inversion 231 inverse les données émises par une unité de sortie 219 (telle qu'un multiplexeur) de l'unité de chiffrement 210, pendant chaque ronde. Le premier circuit de sélection 233 peut sélectionner en alternance soit les données émises par l'unité de sortie 219 de l'unité de chiffrement 210, soit l'information de sortie de l'unité d'inversion 231. Dans un exemple, le premier circuit de sélection 233 sélectionne l'information de sortie de l'unité d'inversion 231 pendant des rondes de numéro impair, et sélectionne les données émises par l'unité de sortie 219 de l'unité de chiffrement 210 dans des rondes de numéro pair.
Le deuxième circuit de sélection 235 sélectionne soit l'information de sortie du premier circuit 233, soit les données à chiffrer. Le registre de compensation 237 peut être initialisé aux données originales qui n'ont pas encore été chiffrées. Par conséquent, le deuxième circuit de sélection 235 sélectionne les données à chiffrer seulement dans la première ronde, et sélectionne l'information de sortie du premier circuit de sélection 233 dans chaque ronde suivante.
La figure 3 est un tableau montrant des valeurs de données stockées dans le registre du système cryptographique 200 illustré sur la figure 2. Les exemples de valeurs représentés dans le tableau de la figure 3 concernent une capacité ou une taille de 8 bits, prise à titre d'exemple, pour chacun du registre 213 et du registre de compensation 237, et une situation dans laquelle la distance de Hamming est de 8 bits.
Pour illustrer un exemple de séquence de processus de chiffrement, le registre 213 et le registre de compensation 237 sont initialisés à des données (01010110) qui doivent être chiffrées. Dans la première ronde, si les données stockées précédemment dans le registre 213 sont chiffrées en utilisant un algorithme de chiffrement déterminé, donnant par exemple une valeur de 11110011, la valeur chiffrée (11110011) est actualisée et stockée dans le registre 213. D'autre part, la valeur inversée (00001100) des données chiffrées est stockée dans le registre de compensation 237.
A ce moment, la distance de Hamming des données actualisées (01010110 -* 11110011) stockées dans le registre 213 est de 4 bits, et la distance de Hamming des données actualisées (01010110 - 00001100) stockées dans le registre de compensation 237 est de 4 bits. Par conséquent, la distance de Hamming totale des données actualisées stockées dans les registres 213 et 217 est de 8 bits.
Dans la deuxième ronde, les données (11110011) stockées dans le registre 213 sont chiffrées en utilisant l'algorithme de chiffrement donné, ce qui conduit à la valeur 00111000, et la valeur chiffrée (00111000) est actualisée et stockée dans le registre 213. Par ailleurs, la valeur doublement inversée des données chiffrées, c'est- à-dire la valeur de données chiffrées (00111000), est stockée dans le registre de compensation 237.
A ce moment, la distance de Hamming des données actualisées (11110011 -+ 00111000) stockées dans le registre 213 est de 5 bits, et la distance de Hamming des données actualisées (00001100 -* 00111000) stockées dans le registre de compensation 237 est de 3 bits. Par conséquent, la distance de Hamming des données actualisées stockées dans les registres 213 et 237 du système cryptographique 200 est de 8 bits, ce qui est identique à la distance de Hamming des données actualisées stockées dans la première ronde.
Ensuite, les données actualisées stockées dans le registre de compensation 237 ont en alternance la même valeur que les valeurs actualisées stockées dans le registre 213 et la valeur inversée par rapport aux données actualisées stockées dans le registre 231. Par conséquent, la distance de Hamming des données actualisées stockées dans les registres 213 et 237 peut être maintenue à une valeur constante de 8 bits.
La figure 4 est un schéma synoptique d'un système cryptographique ayant une structure de Feistel conforme à un exemple de mode de réalisation de la présente invention. Le système cryptographique 400 utilise un algorithme de chiffrement par blocs ayant une structure de Feistel. Dans un algorithme de chiffrement ayant une structure de Feistel, des données sont chiffrées en étant divisées en deux blocs.
Un algorithme de chiffrement par blocs ayant une structure de Feistel (qu'on appelle ci-après un "algorithme de chiffrement de Feistel") est bien connu. Des standards caractéristiques de l'algorithme de chiffrement de Feistel sont un algorithme de chiffrement DES et un algorithme de chiffrement SEED. L'algorithme de chiffrement DES et l'algorithme de chiffrement SEED ont tous deux une structure de Feistel à 16 rondes.
En se référant à la figure 4, on note que le système cryptographique 400 peut inclure une unité de chiffrement 410 et une unité de compensation 430. Des données peuvent être chiffrées après avoir été divisées en un premier bloc et un deuxième bloc. L'unité de chiffrement 410 actualise et stocke les données divisées entre le premier bloc et le deuxième bloc, qui sont chiffrées pendant chaque ronde. L'unité de compensation 430 génère et stocke des premières données de compensation compensant les données du premier bloc, et des deuxièmes données de compensation compensant les données du deuxième bloc. Les premières et deuxièmes données de compensation peuvent être actualisées et stockées pendant chaque ronde.
Les premières données de compensation peuvent avoir des valeurs pourmaintenir à une valeur constante la somme des données chiffrées du premier bloc et de la distance de Hamming des premières données de compensation. De plus, les deuxièmes données de compensation peuvent avoir des valeurs pour maintenir à une valeur constante la somme des données chiffrées du deuxième bloc et de la distance de Hamming des deuxièmes données de compensation. En outre, les premières données de compensation et les données chiffrées du premier bloc peuvent être stockées simultanément en réponse à un signal d'horloge. Les deuxièmes données de compensation et les données chiffrées du deuxième bloc peuvent également être stockées simultanément en réponse au signal d'horloge.
Comme représenté sur la figure 4, l'unité de chiffrement 410 peut inclure une première unité d'entrée 411 et une deuxième unité d'entrée 415 pour introduire des données des premier et deuxième blocs devant être chiffrées au cours de chaque ronde. Dans un exemple, les première et deuxième unités d'entrée 411, 415 introduisent les premier et deuxième blocs des données à chiffrer dans une première ronde, et introduisent dans les rondes suivantes des données de chaque bloc qui ont été chiffrées dans une ronde précédente.
L'unité de chiffrement 410 peut inclure un premier registre 413 et un deuxième registre 417 pour stocker les données introduites respectivement à partir de la première unité d'entrée 411 et de la deuxième unité d'entrée 415, en réponse au signal d'horloge. Dans la première ronde, le premier bloc et le deuxième bloc des données à chiffrer sont respectivement stockés dans le premier registre 413 et le deuxième registre 417, et le premier bloc et le deuxième bloc de données qui ont été chiffrés dans une ronde précédente sont actualisés et stockés dans les premier et deuxième registres 413 et 417 dans les rondes suivantes.
Comme représenté sur la figure 4, les unités d'entrée 410 et 411 peuvent être réalisées comme des multiplexeurs.
L'unité de chiffrement 410 peut inclure un circuit de chiffrement 420. Le circuit de chiffrement 420 peut inclure un circuit de génération de clé de ronde 419, un circuit de fonction F 421 et un premier circuit OU- Exclusif 423. Dans l'exemple de mode de réalisation présent, l'algorithme de chiffrement peut être réalisé comme un algorithme de chiffrement de Feistel. La réalisation de l'algorithme de chiffrement de Feistel est connue de l'homme de l'art; une explication détaillée est donc omise dans l'intérêt de la brièveté. L'algorithme de chiffrement de Feistel est cependant de chiffrement 420 pris d'autres algorithmes de chiffrement, comme il est évident pour l'homme de l'art.
En utilisant une le circuit de génération de ronde (RKEY) qui peut pendant chaque ronde. Le circuit de fonction F 421 est conçu pour réaliser une fonction particulière utilisée pour l'algorithme de chiffrement de Feistel. Dans un exemple, si la clé RKEY dans une i-ième ronde de l'algorithme de chiffrement de Feistel est Ki, les valeurs Li et Ri devant être stockées respectivement dans le premier registre 413 et le deuxième registre 417 peuvent être définies par les expressions (3) et (4) suivantes.
simplement un exemple; le circuit à titre d'exemple peut réaliser clé de chiffrement donnée (KEY), de clé de ronde 419 génère une clé être utilisée pour le chiffrement Ri = L(i - 1) OU-EX f(R(i - 1), K(i - 1)) (3) Li = R(i - 1) (4) Dans les expressions (3) et (4), L(i - 1) et R(i - 1) représentent les valeurs de données actualisées et stockées dans le premier registre 413 et le deuxième registre 417 pendant la ronde précédente ("i-l"-ième ronde), respectivement, et "f(R(i - 1), K(i - 1))" désigne une fonction F particulière qui est utilisée pour l'algorithme de chiffrement de Feistel.
Le circuit de fonction F 421 peut effectuer une opération de fonction F donnée sur les données stockées dans le deuxième registre 417, en utilisant la clé RKEY. Le premier circuit d'opération OU-Exclusif 423 peut effectuer une opération OU-Exclusif sur les données stockées dans le premier registre 413 et une information de sortie du circuit de fonction F 421, et peut émettre le résultat vers la deuxième unité de sortie 427, qui peut être réalisée par exemple comme un démultiplexeur.
Le circuit de chiffrement 420 émet des données stockées dans le deuxième registre 417 vers la première unité de sortie 425 qui peut par exemple être réalisée comme un démultiplexeur. Dans la ronde finale, la première unité de sortie 425 peut fournir en sortie les données chiffrées du premier bloc, et la deuxième unité de sortie 427 peut fournir en sortie les données chiffrées du deuxième bloc. Dans les rondes précédentes, la première unité de sortie 425 peut émettre vers la première unité d'entrée 411 les données chiffrées du premier bloc, et la deuxième unité de sortie 427 peut émettre vers la deuxième unité d'entrée 415 les données chiffrées du deuxième bloc.
L'unité de chiffrement 410 peut inclure un compteur de rondes 429. Le compteur de rondes 429 compte le nombre de rondes, et peut fournir en sortie la valeur de comptage aux première et deuxième unités d'entrée 411 et 415, aux première et deuxième unités de sortie 425 et 427, et à l'unité de compensation 430, comme un signal de commande. Le compteur de rondes 429 peut être restauré en réponse au fait que les données chiffrées sont fournies en sortie des première et deuxième unités de sortie 425 et 427. Le compteur de rondes 429 peut commencer à compter en réponse à la réception de données à chiffrer. Le compteur de rondes 429 compte en réponse aux données chiffrées qui sont émises par les première et deuxième unités de sortie 425 et 427.
L'unité de compensation 430 peut inclure des première et deuxième unités de génération de données de compensation 434 et 432 pour générer des premières et deuxièmes données de compensation, pour compenser les données chiffrées dans les premier et deuxième blocs, qui sont actualisées et stockées pendant chaque ronde. Les premières et deuxièmes données de compensation peuvent avoir en alternance la valeur des données actualisées stockées respectivement dans les premier et deuxième registres 413 et 417, et la valeur inversée par rapport aux données actualisées.
Dans la "i"-ième ronde, si la clé RKEY est Ki, les premières données de compensation sont CLi et les deuxièmes données de compensation sont CRi, CLi et CRi sont générées par les expressions (5) et (6) suivantes.
CRi = CL(i - 1) OU-EX f(R(i - 1), K(i - 1)), et CR0 = RO (5) CLi = CR(i 1), et CLO = -LO (6) L'unité de compensation 430 peut inclure un premier registre de compensation 439 et un deuxième registre de compensation 433. Dans les expressions (5) et (6), CL(i - 1) et CR (i - 1) désignent respectivement les valeurs de données stockées dans le premier registre de compensation 439 et le deuxième registre de compensation 433 dans une ronde précédente ("i-l"-ième ronde). Les termes "f(R(i - 1), K(i-1))" désignent une fonction F particulière qui est utilisée pour L'algorithme de chiffrement de Feistel. En outre, le premier registre de compensation 439 peut être initialisé à une valeur inversée ('LO) des données du premier bloc, et le deuxième registre de compensation 433 peut être initialisé à une valeur (RO) des données du deuxième bloc qui sont destinées à être chiffrées.
Comme décrit ci-dessus, dans le système cryptographique ayant une structure de Feistel, Li et Ri, qui sont actualisées et stockées respectivement dans le premier registre 413 et le deuxième registre 417, peuvent être représentées par l'expression (7).
L0 RO --* L1 R1 -> L2 R2 -> L3 R3 -> L4 R4. (7) De plus, CLi et CRi, qui sont actualisées et stockées respectivement dans le premier registre de compensation 439 et le deuxième registre de compensation 433, peuvent être représentées par l'expression (8).
- LO RO -> L1 -Rl -> -L2 R2 -> L3 -R3 -> -L4 R4 -+ ... (8) En d'autres termes, dans le système cryptographique 400 considéré à titre d'exemple, la distance de Hamming des données actualisées stockées dans les registres 413, 417, 439 et 433 peut être maintenue constante au cours de chaque ronde.
Les premier et deuxième registres de compensation 439 et 433 stockent donc les premières et deuxièmes données de compensation, qui sont générées en réponse au signal d'horloge. Pour préserver une distance de Hamming constante, les premières et deuxièmes données de compensation et les données chiffrées des premier et deuxième blocs peuvent être stockées simultanément dans les premier et deuxième registres 413 et 417, et les premier et deuxième registres de compensation 439 et 433, respectivement, en réponse au signal d'horloge.
La première unité de génération de données de compensation 434 peut inclure une unité d'inversion 435 et une première unité de sélection 437. L'unité d'inversion 435 inverse le premier bloc des données à chiffrer. La première unité de sélection 437 sélectionne soit la sortie de l'unité d'inversion 435, soit la sortie du deuxième registre de compensation 433. Le premier registre de compensation 439 peut être initialisé à la valeur inversée du premier bloc de données originales à chiffrer. Par conséquent, la première unité de sélection 437 sélectionne la sortie de l'unité d'inversion 435 seulement dans la première ronde, et sélectionne la sortie du deuxième registre de compensation 433 dans toutes les rondes suivantes.
La deuxième unité de génération de données de compensation 432 peut inclure une deuxième unité de sélection 431 et un deuxième circuit OUExclusif 441. La deuxième unité de sélection 431 sélectionne soit le deuxième bloc des données à chiffrer, soit la sortie du deuxième circuit OU-Exclusif 441, sur la base du numéro de ronde. Le deuxième registre de compensation 433 peut être initialisé à la valeur du deuxième bloc de données originales à chiffrer. Par conséquent, la deuxième unité de sélection sélectionne le deuxième bloc des données à chiffrer seulement dans la première ronde, et sélectionne la sortie du deuxième circuit OUExclusif 441 dans toutes les rondes suivantes. Le deuxième circuit OUExclusif 441 peut effectuer une opération OU-Exclusif sur les données stockées dans le premier registre de compensation 439 et sur la sortie du circuit de fonction F 421, et il fournit en sortie le résultat comme les deuxièmes données de compensation.
La figure 5 est un tableau montrant des valeurs de données stockées dans le système cryptographique 400 illustré sur la figure 4. Pour expliquer la figure 5, on peut supposer que la taille de chacun des premier et deuxième registres 413 et 417 et des premier et deuxième registres de compensation 439 et 433 est de 8 bits, et que la distance de Hamming du système total est de 16.
En se référant à la figure 5, on note que le premier registre 413 peut être initialisé à des données (01100101) destinées à être chiffrées, le premier registre de compensation 439 peut être initialisé aux données inversées (10011010) du premier registre 413, et le deuxième registre 417 et le deuxième registre de compensation 433 peuvent être initialisés aux données (01010110) à chiffrer.
Dans la première ronde, si des valeurs de données générées en chiffrant les données stockées dans le premier registre 413 et le deuxième registre 417 en utilisant l'algorithme de chiffrement de Feistel sont respectivement "11100101" et "11110011", les valeurs de données chiffrées (11100101 et 11110011) sont actualisées et stockées respectivement dans les premier et deuxième registres. Par ailleurs, une valeur est générée en inversant deux fois la valeur chiffrée. En d'autres termes, la valeur des données chiffrées (11100101) stockées dans le premier registre 413 est stockée dans le premier registre de compensation 439, et la valeur inversée (00001100) des données chiffrées stockées dans le deuxième registre 417 est stockée dans le deuxième registre de compensation 433.
A ce moment, la distance de Hamming des données (01100101 -* 11100101) qui sont actualisées et stockées dans le premier registre 413 est 1 bit, et la distance de Hamming des données (10011010 -* 11100101) qui sont actualisées et stockées dans le premier registre de compensation 439 est 7 bits. De plus, la distance de Hamming des données (01010110 * 11110011) qui sont actualisées et stockées dans le deuxième registre 417 est 4 bits, et la distance de Hamming des données (01010110 > 00001100) qui sont actualisées et stockées dans le deuxième registre de compensation 433 est 4 bits. Par conséquent, la distance de Hamming totale des données actualisées et stockées dans le premier registre 413 et le premier registre de compensation 439 est 8 bits, et la distance de Hamming totale des données actualisées et stockées dans le deuxième registre 417 et le deuxième registre de compensation 433 est également 8 bits. La distance de Hamming totale des données actualisées et stockées dans les registres 413, 417, 439 et 433 est donc 16 bits.
Dans la deuxième ronde, si des valeurs générées en chiffrant les données (11100101 et 11110011) stockées dans les premier et deuxième registres 413 et 417 en utilisant l'algorithme de chiffrement de Feistel sont respectivement "00111010" et "100111000", les valeurs chiffrées (00111010 et 00111000) sont actualisées et stockées respectivement dans les premier et deuxième registres 413 et 417. Par ailleurs, une valeur est générée en inversant trois fois les données chiffrées stockées dans le premier registre 413. En d'autres termes, la valeur inversée (11000101) des données chiffrées stockées dans le premier registre 413 est stockée dans le premier registre de compensation 439, et une valeur qui est générée en inversant deux fois les données chiffrées, c'est-à-dire la valeur des données chiffrées (00111000) stockées dans le deuxième registre 417, est stockée dans le deuxième registre de compensation 433.
A ce moment, la distance de Hamming des données (11100101 ---> 00111010) qui sont actualisées et stockées dans le premier registre 413 est 7 bits, et la distance de Hamming des données (11100101 + 11000101) qui sont actualisées et stockées dans le premier registre de compensation 439 est 1 bit. De plus, la distance de Hamming des données (11110011 > 00111000) qui sont actualisées et stockées dans le deuxième registre 417 est 5 bits, et la distance de Hamming des données (00001100 * 00111000) qui sont actualisées et stockées dans le deuxième registre de compensation 433 est 3 bits. Par conséquent, la distance de Hamming totale des données actualisées et stockées dans le premier registre 413 et le premier registre de compensation 439 est 8 bits, et la distance de Hamming totale des données actualisées et stockées dans le deuxième registre 417 et le deuxième registre de compensation 438 est également 8 bits. Par conséquent, la distance de Hamming totale des données actualisées et stockées dans les registres 413, 417, 439 et 433 est 16 bits, ce qui est identique à la distance de Hamming des données actualisées et stockées dans la première ronde.
Dans chaque ronde suivante, les données actualisées et stockées dans le premier registre de compensation 439 et le deuxième registre de compensation 433 ont en alternance la valeur des données stockées dans le premier registre 413 et le deuxième registre 417, et la valeur inversée des données stockées dans les premier et deuxième registres 413 et 417. Par conséquent, la distance de Hamming totale des données actualisées et stockées dans les registres 413, 417, 439 et 433 est toujours maintenue à une valeur constante de 16 bits.
La figure 6 est un organigramme illustrant un procédé de chiffrement de données d'entrée en conformité avec un exemple de mode de réalisation de la présente invention. Comme représenté sur la figure 6, lorsque des données d'entrée à chiffrer sont introduites (S601), le nombre de rondes est fixé à 1 (S603), et les données d'entrée sont stockées en même temps dans un registre et un registre de compensation (S605) en réponse à un signal d'horloge. Les données stockées dans le registre peuvent être chiffrées (S607) en utilisant un algorithme de chiffrement donné.
Après que les données ont été chiffrées, il est déterminé si le nombre de rondes est identique à un nombre de rondes donné (opération S609). Si le nombre de rondes est identique au nombre donné, et du fait que le chiffrement de données est achevé conformément à l'algorithme de chiffrement donné, les données chiffrées sont fournies en sortie (S611). Cependant, si le nombre de rondes n'est pas identique au nombre de rondes donné, le chiffrement de données est exécuté dans une ronde suivante.
Pour exécuter le chiffrement dans la ronde suivante, des données de compensation pour les données chiffrées sont générées (S613).
Après que les données de compensation ont été générées, et en réponse à un signal d'horloge, les données de compensation sont stockées dans le registre de compensation en même temps que les données chiffrées sont stockées dans un registre (S615). Après que les données chiffrées ont été stockées dans le registre, le nombre de rondes est augmenté de 1 (S617), de façon à exécuter le chiffrement dans la ronde suivante, en retournant à l'opération S607.
Bien qu'il soit décrit ci-dessus essentiellement en termes de matériel, l'exemple de méthodologie mis en oeuvre par un ou plusieurs composants de l'exemple de système décrit ci-dessus peut également être mis en oeuvre par logiciel sous la forme d'un programme d'ordinateur. Par exemple, un programme en conformité avec les exemples de modes de réalisation de la présente invention peut être un produit - programme d'ordinateur qui commande un ordinateur pour exécuter un procédé de chiffrement de données d'entrée en exécutant un algorithme de chiffrement donné avec une structure de rondes répétées, comme décrit ci-dessus.
Le produit - programme d'ordinateur peut inclure un support lisible par ordinateur dans lequel sont incorporées des parties de logique ou de code de programme d'ordinateur pour permettre à un processeur du système d'accomplir une cu plusieurs fonctions en conformité avec l'exemple de méthodologie décrit ci-dessus. La logique de programme d'ordinateur peut donc faire accomplir au processeur l'exemple de procédé décrit ci-dessus, ou une ou plusieurs fonctions de l'exemple de procédé.
Le support de stockage lisible par ordinateur peut être un support incorporé, installé à l'intérieur d'une unité principale d'ordinateur, ou un support amovible agencé de façon à pouvoir être séparé de l'unité principale d'ordinateur. Des exemples du support incorporé comprennent, mais de façon non limitative, des mémoires non volatiles avec possibilité de réécriture, comme des mémoires vives (RAM), des mémoires mortes (ROM), des mémoires flash et des disques durs. Des exemples d'un support amovible peuvent inclure, mais de façon non limitative, des supports de stockage optiques tels que des CD-ROM et des DVD; des supports de stockage magnéto-optiques tels que des disques MO; des supports de stockage magnétiques tels que des disquettes, des bandes en cassettes et des disques durs amovibles; des supports dans lesquels est incorporée une mémoire non volatile avec possibilité de réécriture, comme des cartes à mémoire; et des supports avec une mémoire morte incorporée, comme des cassettes de mémoire morte.
Ces programmes peuvent également être fournis sous la forme d'un signal capable de se propager, fourni à partir de l'extérieur, et/ou d'un signal de données d'ordinateur incorporé dans une onde porteuse. Le signal de données d'ordinateur matérialisant une ou plusieurs d'instructions ou fonctions de l'exemple de méthodologie peut être porté sur une onde porteuse pour l'émission et/ou la réception par une entité qui exécute les instructions ou les fonctions de l'exemple de méthodologie. Par exemple, les fonctions ou instructions de l'exemple de procédé peuvent être mises en oeuvre en traitant un ou plusieurs segments de code de l'onde porteuse dans un ordinateur qui commande un ou plusieurs des composants de l'exemple de système des figures 2 et/ou 4, dans lequel des instructions ou des fonctions peuvent être exécutées pour chiffrer des données et générer des données de compensation, en conformité avec l'exemple de procédé illustré sur n'importe lesquelles des figures 2, 4 ou 6.
En outre, lorsque de tels programmes sont enregistrés sur des supports de stockage lisibles par ordinateur, ils peuvent être aisément stockés et distribués. Lorsque le support de stockage est lu par un ordinateur, il peut permettre le traitement de signaux de données multimédias, la prévention de la copie de ces signaux, l'allocation de signaux de données multimédias à l'intérieur d'un appareil configuré pour traiter les signaux, et/ou la réduction de la charge de traitement de servitude de communication dans un appareil configuré pour traiter de multiples signaux de données multimédias, en conformité avec l'exemple de procédé décrit ici.
Par conséquent, les exemples de systèmes et de procédés cryptographiques peuvent assurer la sécurité vis-à-vis d'une attaque par analyse de puissance simple et d'une attaque par analyse de puissance différentielle, qui infèrent une information secrète en mesurant une information de puissance d'un système cryptographique. De plus, les exemples de systèmes et de procédés cryptographiques décrits ci-dessus peuvent empêcher une fuite d'information due à des variations de la distance de Hamming de données chiffrées, qui sont actualisées et stockées dans un registre. Les exemples de modes de réalisation peuvent donc être applicables à n'importe quel système cryptographique ayant une structure de rondes répétées, par exemple, bien que les exemples de modes de réalisation ne soient pas ainsi limités à des systèmes et/ou des méthodologies cryptographiques à rondes répétées.
Par conséquent, les exemples de modes de réalisation procurent un système et un procédé cryptographiques qui peuvent être configurés pour maintenir une distance de Hamming constante en actualisant et en stockant des données de compensation en même temps que les données chiffrées sont actualisées et stockées dans une ronde ou une itération de traitement donnée, en empêchant ainsi un changement du courant généré sous l'effet de variations de la distance de Hamming. En outre, les exemples de systèmes et de procédés cryptographiques peuvent être appliqués à un système de chiffrement standard, tel par exemple qu'un système de chiffrement DES ou un système de chiffrement SEED, qui utilise un algorithme de chiffrement par blocs avec une structure de Feistel.
Les exemples de modes de réalisation de la présente invention ayant ainsi été décrits, il apparaîtra de façon évidente qu'ils peuvent être modifiés de nombreuses manières. Par exemple, les blocs fonctionnels des figures 2, 4 et 6 décrivant l'exemple de système et/ou de procédé peuvent être réalisés par matériel et/ou logiciel. Les formes de réalisation matérielles/logicielles peuvent inclure une combinaison de processeur(s) et article(s) manufacturés. Le ou les articles manufacturés peuvent en outre inclure des supports de stockage et un ou des programmes informatiques exécutables. Le ou les programmes informatiques exécutables peuvent inclure les instructions pour accomplir les opérations ou fonctions décrites. Le ou les programmes informatiques exécutables peuvent également être fournis sous la forme d'une partie d'un ou plusieurs signaux capables de se propager, fournis à partir de l'extérieur. De tels changements ne doivent pas être considérés comme étant hors de l'esprit et du cadre des exemples de modes de réalisation de la présente invention.

Claims (26)

REVENDICATIONS
1. Système cryptographique (200) pour chiffrer des données d'entrée en conformité avec un algorithme de chiffrement ayant une structure de rondes répétées, caractérisé en ce qu'il comprend: une unité de chiffrement (210) qui actualise et stocke des données chiffrées en conformité avec l'algorithme de chiffrement, à chaque ronde donnée, et fournit en sortie les données chiffrées après avoir exécuté le chiffrement pour un nombre de rondes donné ; 10 et une unité de compensation (230) qui génère et stocke des données de compensation de façon qu'une somme d'une distance de Hamming pour les données chiffrées actualisées et stockées et d'une distance de Hamming des données de compensation soit maintenue à une valeur constante.
2. Système selon la revendication 1, caractérisé en ce que l'unité de chiffrement (210) comprend: une unité d'entrée (211) recevant des données à chiffrer, sur la base du nombre de rondes à effectuer; un registre (213) stockant des données émises par l'unité d'entrée en réponse 20 à un signal d'horloge (CLK) ; un circuit de chiffrement (217) chiffrant les données stockées en conformité avec l'algorithme de chiffrement; et une unité de sortie (219) fournissant en sortie les données chiffrées, sur la base du nombre de rondes effectuées.
3. Système selon la revendication 2, caractérisé en ce que l'unité d'entrée (211) reçoit les données d'entrée si le nombre de rondes effectuées est 0 et reçoit les données chiffrées lorsque le nombre de rondes effectuées est supérieur à 0.
4. Système selon la revendication 2, caractérisé en ce que l'unité de sortie (219) fournit en sortie les données chiffrées si le nombre de rondes effectuées est identique au nombre de rondes donné, ou bien elle émet les données chiffrées vers l'unité d'entrée (211) et l'unité de compensation (230) si le nombre de rondes est inférieur au nombre de rondes donné. 30
5. Système selon la revendication 1, caractérisé en ce que l'unité de compensation (230) comprend: une unité de génération de données de compensation (232) générant les données de compensation sur la base du nombre de rondes effectuées; et un registre de compensation (237) stockant les données de compensation en réponse à un signal d'horloge (CLK).
6. Système selon la revendication 5, caractérisé en ce que l'unité de génération de données de compensation (232) comprend: une unité d'inversion (231) inversant les données chiffrées; une première unité de sélection (233) sélectionnant et fournissant en sortie soit les données chiffrées, soit les données inversées par rapport aux données chiffrées, sur la base du nombre de rondes effectuées; et une deuxième unité de sélection (235) sélectionnant et fournissant en sortie soit les données émises par la première unité de sélection (233), soit les données d'entrée, sur la base du nombre de rondes effectuées.
7. Système selon la revendication 6, caractérisé en ce que la première unité de sélection (233) sélectionne les données chiffrées si le nombre de rondes effectuées est impair, ou bien sélectionne les données inversées si le nombre de rondes effectuées est pair.
8. Système selon la revendication 6, caractérisé en ce que la deuxième unité de sélection (235) sélectionne les données d'entrée si le nombre de rondes effectuées est 0, ou bien sélectionne les données émises par la première unité de sélection {233) si le nombre de rondes effectuées est supérieur à 0.
9. Système selon la revendication 1, caractérisé en ce que l'algorithme de chiffrement est réalisé sous la forme d'un algorithme de chiffrement DES (Data Encryption Standard).
10. Système selon la revendication 1, caractérisé en ce que les données de compensation ont en alternance la même valeur que les données actualisées et stockées dans chaque ronde, et une valeur inversée par rapport aux données actualisées et stockées dans chaque ronde.
11. Système selon la revendication 1, caractérisé en ce que les données de compensation compensent les données actualisées et stockées, et sont fixées à des valeurs telles que la somme des distances de Hamming soit maintenue à la valeur constante dans chaque ronde.
12. Système cryptographique (400) pour chiffrer des données d'entrée en divisant les données d'entrée en un premier bloc et un deuxième bloc conformément à un algorithme de chiffrement ayant une structure de rondes répétées, caractérisé en ce qu'il comprend: une unité de chiffrement (410) qui actualise et stocke, à chaque ronde, pour chacun des premier et deuxième blocs, des données chiffrées conformément à l'algorithme de chiffrement, et qui fournit en sortie les données chiffrées après avoir exécuté un chiffrement pour un nombre de rondes donné ; et une unité de compensation (430) qui génère et stocke des premières données de compensation et des deuxièmes données de compensation telles que la somme d'une distance de Hamming pour les données actualisées et stockées du premier bloc et les premières données de compensation soit maintenue à une valeur constante, et la somme de la distance de Hamming pour les données actualisées et stockées du deuxième bloc et les deuxièmes données de compensation soit maintenue à une valeur constante.
13. Système selon la revendication 12, caractérisé en ce que l'unité de chiffrement (410) comprend: une première unité d'entrée (411) recevant des données du premier bloc à chiffrer, sur la base du nombre de rondes effectuées; une deuxième unité d'entrée (415) recevant des données du deuxième bloc à chiffrer, sur la base du nombre de rondes effectuées; un premier registre (413) stockant des données émises par la première unité d'entrée (411), sur la base d'un signal d'horloge (CLK) ; un deuxième registre (417) stockant des données émises par la deuxième unité d'entrée (415), sur la base du signal d'horloge (CLK) ; un circuit de chiffrement (420) chiffrant les données stockées dans les premier et deuxième registres (413, 417), en conformité avec l'algorithme de chiffrement; une première unité de sortie (425) fournissant en sortie des données chiffrées du premier bloc, sur la base du nombre de rondes effectuées; et une deuxième unité de sortie (427) fournissant en sortie des données chiffrées du deuxième bloc, sur la base du nombre de rondes effectuées.
14. Système selon la revendication 13, caractérisé en ce que la première unité d'entrée (411) reçoit le premier bloc des données d'entrée si le nombre de rondes effectuées est 0 et reçoit les données chiffrées du premier bloc si le nombre de rondes effectuées est supérieur à 0; et la deuxième unité d'entrée (415) reçoit le deuxième bloc des données d'entrée si le nombre de rondes effectuées est 0 et reçoit les données chiffrées du deuxième bloc si le nombre de rondes effectuées est supérieur à 0.
15. Système selon la revendication 13, caractérisé en ce que la première unité de sortie (425) fournit en sortie les données chiffrées du premier bloc si le nombre de rondes effectuées est identique au nombre de rondes donné, et émet les données chiffrées du premier bloc vers la première unité d'entrée (411) et l'unité de compensation 430) si le nombre de rondes effectuées est inférieur au nombre de rondes donné ; et la deuxième unité de sortie (427) fournit en sortie les données chiffrées du deuxième bloc si le nombre de rondes effectuées est identique au nombre de rondes donné, et émet les données chiffrées du deuxième bloc vers la deuxième unité d'entrée (415) et l'unité de compensation (430) si le nombre de rondes effectuées est inférieur au nombre de rondes donné.
16. Système selon la revendication 12, caractérisé en ce que l'unité de compensation (430) comprend: une première unité de génération de données de compensation (434) générant les premières données de compensation sur la base du nombre de rondes effectuées; une deuxième unité de génération de données de compensation (432) générant les deuxièmes données de compensation sur la base du nombre de rondes effectuées; un premier registre de compensation (439) stockant les premières données de compensation sur la base d'un signal d'horloge (CLK) ; et un deuxième registre de compensation (433) stockant les deuxièmes données de compensation sur la base du signal d'horloge (CLK).
17. Système selon la revendication 16, caractérisé en ce que la première unité de génération de données de compensation (434) comprend: une unité d'inversion (435) inversant le premier bloc des données d'entrée; et une première unité de sélection (437) sélectionnant et fournissant en sortie soit les données stockées dans le deuxième registre de compensation (433), soit les données émises par l'unité d'inversion (435), sur la base du nombre de rondes effectuées.
18. Système selon la revendication 17, caractérisé en ce que la première unité de sélection (437) sélectionne les données émises par l'unité d'inversion (435) si le nombre de rondes effectuées est 0, ou bien sélectionne les données stockées dans le deuxième registre de compensation (433) si le nombre de rondes effectuées est supérieur à 0.
19. Système selon la revendication 16, caractérisé en ce que la deuxième unité de génération de données de compensation (432) comprend: un circuit OU-Exclusif (441) effectuant une opération OU-Exclusif sur l'information de sortie du premier registre de compensation (439) et des données déterminées, utilisées pour l'algorithme de chiffrement donné ; et une deuxième unité de sélection (431) sélectionnant et fournissant en sortie soit le deuxième bloc des données d'entrée, soit des données émises par le circuit OU-Exclusif (441), sur la base du nombre de rondes effectuées.
20. Système selon la revendication 19, caractérisé en ce que la deuxième unité de sélection (431) sélectionne le deuxième bloc des données à chiffrer si le nombre de rondes effectuées est 0, ou bien sélectionne les données fournies en sortie par le circuit d'opération OU-Exclusif (441) si le nombre de rondes effectuées est supérieur à 0.
21. Système selon la revendication 12, caractérisé en ce que l'algorithme de chiffrement est réalisé comme un algorithme de chiffrement de Feistel.
22. Système selon la revendication 12, caractérisé en ce que les premières données de compensation ont en alternance la même valeur que les données du premier bloc et une valeur inversée par rapport aux données du premier bloc, dans des rondes consécutives; et les deuxièmes données de compensation ont en alternance la même valeur que les données du deuxième bloc et une valeur inversée par rapport aux données du deuxième bloc, dans des rondes consécutives.
23. Système selon la revendication 12, caractérisé en ce que les premières données de compensation compensent les données actualisées et stockées du premier bloc et les deuxièmes données de compensation compensent les données actualisées et stockées du deuxième bloc; et les premières données de compensation et les deuxièmes données de compensation sont fixées à des valeurs telles que la somme des distances de Hamming soit maintenue à la valeur constante dans chaque ronde.
24. Procédé de chiffrement de données d'entrée en conformité avec un algorithme de chiffrement ayant une structure de rondes répétées, caractérisé en ce qu'il comprend les étapes consistant à : chiffrer des données stockées en conformité avec l'algorithme de chiffrement dans chaque ronde; générer des données de compensation de façon qu'une somme d'une distance de Hamming pour les données chiffrées et des données de compensation soit maintenue à une valeur constante; et stocker les données de compensation simultanément aux données chiffrées, sur la base d'un signal d'horloge.
25. Procédé selon la revendication 24, caractérisé en ce que les données de compensation ont en alternance la même valeur que les données chiffrées et une valeur inversée par rapport aux données chiffrées, dans des rondes consécutives.
26. Procédé selon la revendication 24, caractérisé en ce que l'algorithme de chiffrement est réalisé sous la forme de l'un d'un algorithme de chiffrement DES et d'un algorithme de chiffrement de Feistel.
FR0511911A 2005-11-24 2005-11-24 Systeme et procede cryptographiques pour chiffrer des donnees d'entree Pending FR2878390A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0511911A FR2878390A1 (fr) 2005-11-24 2005-11-24 Systeme et procede cryptographiques pour chiffrer des donnees d'entree

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0511911A FR2878390A1 (fr) 2005-11-24 2005-11-24 Systeme et procede cryptographiques pour chiffrer des donnees d'entree

Publications (1)

Publication Number Publication Date
FR2878390A1 true FR2878390A1 (fr) 2006-05-26

Family

ID=36284430

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0511911A Pending FR2878390A1 (fr) 2005-11-24 2005-11-24 Systeme et procede cryptographiques pour chiffrer des donnees d'entree

Country Status (1)

Country Link
FR (1) FR2878390A1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0790595A1 (fr) * 1995-09-05 1997-08-20 Mitsubishi Denki Kabushiki Kaisha Appareil de conversion de donnees et procede de conversion de donnees
EP0923062A1 (fr) * 1997-05-30 1999-06-16 Mitsubishi Denki Kabushiki Kaisha Processeur cryptographique, carte de circuits integres et procede de traitement cryptographique
WO1999067766A2 (fr) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Procede de calcul cryptographique equilibre et dispositif de minimisation de fuites dans les cartes a puce et autres cryptosystemes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0790595A1 (fr) * 1995-09-05 1997-08-20 Mitsubishi Denki Kabushiki Kaisha Appareil de conversion de donnees et procede de conversion de donnees
EP0923062A1 (fr) * 1997-05-30 1999-06-16 Mitsubishi Denki Kabushiki Kaisha Processeur cryptographique, carte de circuits integres et procede de traitement cryptographique
WO1999067766A2 (fr) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Procede de calcul cryptographique equilibre et dispositif de minimisation de fuites dans les cartes a puce et autres cryptosystemes

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ERIC BRIER ET AL: "Correlation Power Analysis with a Leakage Model", 8 July 2004, CRYPTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS - CHES 2004; [LECTURE NOTES IN COMPUTER SCIENCE;;LNCS], SPRINGER-VERLAG, BERLIN/HEIDELBERG, PAGE(S) 16 - 29, ISBN: 978-3-540-22666-6, XP019009370 *
TIRI K ET AL: "A logic level design methodology for a secure DPA resistant ASIC or FPGA implementation", DESIGN, AUTOMATION AND TEST IN EUROPE CONFERENCE AND EXHIBITION, 2004. PROCEEDINGS FEB. 16-20, 2004, PISCATAWAY, NJ, USA,IEEE, vol. 1, 16 February 2004 (2004-02-16), pages 246 - 251, XP010684580, ISBN: 978-0-7695-2085-8, DOI: 10.1109/DATE.2004.1268856 *

Similar Documents

Publication Publication Date Title
EP3211823B1 (fr) Méthode d'exécution confidentielle d'un programme opérant sur des données chiffrées par un chiffrement homomorphe
EP1151576B1 (fr) Procede cryptographique a cles publique et privee
FR2789535A1 (fr) Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique
EP2296086B1 (fr) Protection d'une génération de nombres premiers contre des attaques par canaux cachés
FR2499792A1 (fr) Recepteur pour un systeme cryptographique a cle publique
FR2968104A1 (fr) Procede et systeme de protection d'un dispositif de cryptographie
CA2712180A1 (fr) Procede et dispositifs de contre-mesure pour cryptographie asymetrique a schema de signature
FR3078464A1 (fr) Procede et circuit de mise en oeuvre d'une table de substitution
Kang et al. Fast image encryption algorithm based on (n, m, k)-PCMLCA
FR2880750A1 (fr) Carte a microprocesseur et procede cryptographique pour proteger une cle secrete
WO2011083232A1 (fr) Procede de chiffrement et de dechiffrement
EP2983083B1 (fr) Procede de cryptographie sur courbe elliptique comprenant une detection d'erreur
FR2888690A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d'une exponentiation et composant associe
FR2892583A1 (fr) Procede de transmission securisee de donnees
FR2960728A1 (fr) Procede de determination d'une representation d'un produit et procede d'evaluation d'une fonction
FR3056322A1 (fr) Procede de chiffrement ou de dechiffrement protege contre des attaques par canaux caches
EP2936302B1 (fr) Generateur de sequences chaotiques
EP1829279A2 (fr) Procede et dispositif d'execution d'un calcul cryptographique
Islamy et al. Reversible data hiding based on histogram and prediction error for sharing secret data
FR2922393A1 (fr) Systeme tracable de chiffrement/dechiffrement de donnees numeriques diffusees
Sulaiman et al. Extensive analysis on images encryption using hybrid elliptic curve cryptosystem and hill cipher
FR2878390A1 (fr) Systeme et procede cryptographiques pour chiffrer des donnees d'entree
EP2274869B1 (fr) Protection en boîte-blanche d'algorithmes cryptographiques comprenant le calcul d'une forme quadratique
FR3035293A1 (fr)
Simpson et al. Improved cryptanalysis of the common scrambling algorithm stream cipher

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 11