FR2880750A1 - Carte a microprocesseur et procede cryptographique pour proteger une cle secrete - Google Patents

Carte a microprocesseur et procede cryptographique pour proteger une cle secrete Download PDF

Info

Publication number
FR2880750A1
FR2880750A1 FR0600156A FR0600156A FR2880750A1 FR 2880750 A1 FR2880750 A1 FR 2880750A1 FR 0600156 A FR0600156 A FR 0600156A FR 0600156 A FR0600156 A FR 0600156A FR 2880750 A1 FR2880750 A1 FR 2880750A1
Authority
FR
France
Prior art keywords
secret key
random number
microprocessor card
processor
string
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.)
Withdrawn
Application number
FR0600156A
Other languages
English (en)
Inventor
Chong Hee Kim
Ki Hun Lee
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
Publication of FR2880750A1 publication Critical patent/FR2880750A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • G06K19/07309Means for preventing undesired reading or writing from or onto record carriers
    • G06K19/07363Means for preventing undesired reading or writing from or onto record carriers by preventing analysis of the circuit, e.g. dynamic or static power analysis or current analysis
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H33/00Other toys
    • A63H33/22Optical, colour, or shadow toys
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H33/00Other toys
    • A63H33/40Windmills; Other toys actuated by air currents
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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
    • H04L2209/127Trusted platform modules [TPM]
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention consiste en une carte à microprocesseur et un procédé pour protéger une clé secrète. Le procédé peut comprendre la réception d'un texte chiffré et d'une clé secrète (S200), la génération d'une table pour le déchiffrement (S210), la réception d'au moins une chaîne de nombres aléatoires (S230), l'exécution d'une opération logique (S240) sur la clé secrète et la chaîne de nombres aléatoires, et le décodage du texte chiffré (S250). La carte à microprocesseur peut comprendre un générateur de nombres pseudo-aléatoires et un processeur.

Description

Des exemples de modes de réalisation de la présente invention concernent
des cartes à microprocesseur, et plus particulièrement des cartes à microprocesseur capables d'éviter qu'une clé secrète ne soit vulnérable à des
attaques externes.
On peut protéger des systèmes numériques par des algorithmes de chiffrement utilisant une clé secrète. Une clé secrète peut cependant être vulnérable à des attaques externes du fait qu'un algorithme de chiffrement peut ne pas avoir été conçu pour empêcher une fuite d'information imprévue. La fuite d'information imprévue peut être un problème important pour la sécurité d'un système utilisant les cartes à microprocesseur. Une fuite d'une telle information imprévue peut avoir lieu par l'intermédiaire d'une information de canal secondaire, et des attaques tirant parti de l'information de canal secondaire peuvent être appelées des attaques par canal secondaire. Des attaques par canal secondaire peuvent être classées en attaques temporelles, par insertion de défaut ou par analyse de puissance. Une attaque temporelle peut être utilisée comme un procédé d'obtention d'une clé secrète en analysant une différence de temps dans de l'information de traitement entre une clé secrète et d'autres données. Une attaque par insertion de défaut peut être utilisée comme un procédé d'obtention d'une clé secrète par l'analyse de données après avoir introduit intentionnellement des données de défaut dans la carte à microprocesseur. Une attaque par analyse de puissance peut être utilisée pour obtenir une clé secrète en analysant de façon comparative une quantité de puissance utilisée et non utilisée dans des données de traitement concernant une clé secrète. Une attaque par analyse de puissance peut être classée en une attaque par analyse de puissance simple (SPA pour "Simple Power Analysis") et une attaque par analyse de puissance différentielle (DPA pour "Differential Power Analysis").
On a récemment accordé beaucoup d'intérêt et d'études à une attaque par canal secondaire contre une carte à microprocesseur ayant une unité de calcul de chiffrement par fonction OU-Exclusif, c'est-à-dire une carte à microprocesseur qui peut effectuer un chiffrement en combinant par une fonction OU-Exclusif des données de texte en clair avec une seule clé secrète aléatoire, de longueur fixée. Il peut y avoir une probabilité élevée de fuite d'information dans une attaque par canal secondaire, du fait que de nombreuses cartes à microprocesseur ont une relativement petite mémoire et un processeur ayant de faibles possibilités arithmétiques. Un processeur peut être dans l'obligation de répéter un traitement arithmétique de données secrètes, comme dans un processus d'authentification. Un procédé effectif d'attaque d'un système peut être une attaque par analyse de puissance, qui mesure une quantité de puissance consommée pour trouver une clé secrète. Cette attaque par analyse de puissance peut contrôler une variation de puissance transitoire au moment de l'activation d'un algorithme de chiffrement et d'une clé secrète incorporés dans une carte à microprocesseur, et peut ensuite déchiffrer la clé secrète au moyen d'un procédé statistique utilisant des techniques d'estimation et de correction d'erreur. Une attaque par DPA peut être plus effective qu'un procédé consistant à employer un appareil de déchiffrement exclusif ou un super-ordinateur, du fait qu'il peut être plus aisé d'estimer une clé secrète simplement en utilisant plusieurs dispositifs capables de contrôler une variation de tension.
Un processeur d'une carte à microprocesseur utilisant un système cryptographique à clé secrète peut utiliser une clé secrète non manipulée. Une clé secrète non manipulée peut signifier la clé secrète originale avant chiffrement. Par conséquent, la clé secrète peut aisément être obtenue par une attaque par DPA. Par exemple, si un texte chiffré et une clé secrète sont appliqués en entrée d'un processeur d'une carte à microprocesseur, le processeur peut diviser la clé secrète en blocs unités de la taille de mot d'opération. La clé secrète divisée en blocs peut être appliquée dans le décodage (ou le déchiffrement) du texte chiffré, en lisant chaque bit de la clé secrète au moyen d'opérateurs de décalage de bit. En d'autres termes, une opération unité portant sur chaque bit de la clé secrète peut être traitée dans le processeur de la carte à microprocesseur. Par conséquent, une opération de décodage de clé secrète dans un processeur d'une carte à microprocesseur peut présenter un problème, tel que la vulnérabilité à une attaque par DPA.
Des exemples de modes de réalisation de la présente invention peuvent porter sur un procédé cryptographique et une carte à microprocesseur utilisant ce dernier.
Dans un exemple de mode de réalisation de la présente invention, un procédé cryptographique peut inclure la réception d'un texte chiffré et d'une clé secrète, la génération d'une table à utiliser pour le déchiffrement sur la base du texte chiffré et de la clé secrète, la réception d'au moins une chaîne de nombres aléatoires, l'exécution d'une opération logique avec la clé secrète et l'au moins une chaîne de nombres aléatoires, et le déchiffrement du texte chiffré en utilisant une valeur résultante de l'opération logique, la chaîne de nombres aléatoires et la table.
Dans un autre exemple de mode de réalisation de la présente invention, un procédé cryptographique peut inclure la réception d'un texte chiffré et d'une clé secrète, la génération d'une table à utiliser pour le déchiffrement sur la base du texte chiffré et de la clé secrète, la division de la clé secrète en une multiplicité de blocs, la réception d'au moins une chaîne de nombres aléatoires, l'exécution d'une opération OU-EX avec l'un de la multiplicité de blocs et l'au moins une chaîne de nombres aléatoires, et le déchiffrement du texte chiffré.
De plus, dans un autre exemple de mode de réalisation de la présente invention, une carte à microprocesseur peut inclure un générateur de nombres aléatoires adapté pour générer une chaîne de nombres aléatoires avec une longueur définie, et un processeur adapté pour recevoir un texte en clair et une clé secrète pour générer une table, et le processeur étant en outre adapté pour recevoir la chaîne de nombres aléatoires, exécuter une opération logique sur la chaîne de nombres aléatoires et la clé secrète, et exécuter une opération de déchiffrement de texte chiffré en utilisant une valeur résultante obtenue par l'opération logique, la table et la chaîne de nombres aléatoires.
Les dessins annexés sont inclus pour permettre une compréhension supplémentaire d'exemples de modes de réalisation de la présente invention, et sont incorporés dans cette description et forment une partie de celle-ci. Les dessins illustrent conjointement à la description les exemples de modes de réalisation de la présente invention.
Dans les dessins: La figure 1 est un schéma synoptique illustrant une carte à microprocesseur conforme à un exemple de mode de réalisation de la présente invention; La figure 2 est un organigramme illustrant une 25 procédure conforme à un exemple de mode de réalisation de la présente invention; et La figure 3 est un organigramme illustrant une procédure arithmétique conforme à un exemple de mode de réalisation de la présente invention.
On décrira ci-dessous de façon plus détaillée des exemples de modes de réalisation de la présente invention, en référence aux dessins annexés. La présente invention peut cependant être mise en oeuvre sous différentes formes et ne doit pas être interprétée comme étant limitée aux exemples de modes de réalisation présentés ici. A la place, ces exemples de modes de réalisation sont fournis en tant qu'exemple de travail. Des numéros semblables peuvent désigner des éléments semblables dans l'ensemble de la description.
La terminologie utilisée ici a seulement pour but de décrire des exemples de modes de réalisation particuliers, et ne vise pas à limiter la présente invention. Dans l'utilisation qui en est faite ici, les formes du singulier "un" et "le" peuvent être destinées à inclure également les formes du pluriel, sauf si le contexte indique clairement le contraire. On notera en outre que les termes "comprend" et/ou "comprenant", lorsqu'ils sont utilisés dans cette description, spécifient la présence de caractéristiques, entiers, étapes, opérations, éléments et/ou composants mentionnés, mais n'interdisent pas la présence ou l'ajout d'un ou plusieurs autres caractéristiques, entiers, étapes, opérations, éléments, composants et/ou groupes de ceux-ci.
Sauf en cas de définition contraire, tous les termes (incluant des termes techniques et scientifiques) utilisés ici ont la signification communément admise par le spécialiste du domaine auquel cette invention appartient. On notera en outre que des termes tels que ceux définis dans des dictionnaires couramment utilisés doivent être interprétés comme ayant une signification qui est en accord avec leur signification dans le contexte du domaine pertinent, et ne seront pas interprétés en un sens idéalisé ou excessivement formel, sauf si une telle acception est expressément définie ici.
La figure 1 est un schéma synoptique illustrant une 30 carte à microprocesseur conforme à un exemple de mode de réalisation de la présente invention.
En se référant à la figure 1, on note qu'une carte à microprocesseur 100 peut inclure un processeur 10, un générateur de nombres pseudo-aléatoires 20, une unité d'interface d'entrée/sortie (E/S) 30, une mémoire morte (ROM) 40, une mémoire vive (RAM) 50 et/ou un bus de données 60.
Le processeur 10 peut être une unité centrale de traitement (UC), un microprocesseur, et autres. Le processeur 10 peut commander des chemins de données et des signaux internes pour accéder à des composants tels qu'une mémoire de données, une mémoire de programme, la mémoire vive, etc. Le processeur 10 peut accomplir diverses opérations en utilisant un texte chiffré et une clé secrète.
Le générateur de nombres pseudo-aléatoires 20 peut inclure un registre à décalage à rétroaction linéaire et un bloc de cryptographie asymétrique, capable de stocker des chaînes de nombres aléatoires. Le générateur de nombres pseudo-aléatoires 20 peut générer des chaînes de nombres aléatoires répétées avec une longueur définie. Les chaînes de nombres aléatoires peuvent être fournies au processeur 10 pour éviter qu'une clé secrète ne soit divulguée au cours d'une opération. Une "opération" peut signifier une opération arithmétique, par exemple une opération de chiffrement ou une opération de déchiffrement, à moins qu'une autre acception ne soit spécifiquement indiquée.
L'unité d'interface d'E/S 30 peut être incorporée pour transférer des données, des adresses et des ordres entre la carte à microprocesseur 100 et des appareils externes.
La mémoire morte 40 peut être utilisée comme une mémoire de programme et peut contenir un système d'exploitation et des instructions de base pour la carte à microprocesseur 100. La mémoire vive 50 peut être utilisée comme un registre de travail et peut stocker temporairement des données et des résultats calculés de façon intermédiaire. Le bus de données 60 peut être utilisé comme un canal de transfert pour diverses données dans la carte à microprocesseur 100.
Le processeur 10 peut fonctionner de façon à accomplir des opérations arithmétiques de chiffrement et de déchiffrement (ou décodage).
Un algorithme cryptographique peut être une procédure pour transformer un texte en clair (information originale) en un texte chiffré (information chiffrée) au moyen d'une clé de chiffrement. La procédure de transformation du texte chiffré pour donner le texte en clair original au moyen d'une clé de déchiffrement peut être appelée déchiffrement (ou décodage). La technique cryptographique peut comprendre un cryptosystème symétrique dans lequel une clé de chiffrement peut être identique à une clé de déchiffrement, et un cryptosystème asymétrique dans lequel la clé de chiffrement peut être différente de la clé de déchiffrement. Pour transférer des données avec le cryptosystème symétrique, une clé partagée par un émetteur de données et un récepteur peut être exigée. La clé peut être une clé secrète qui ne doit pas être divulguée à l'extérieur, du fait qu'elle peut être utilisée en commun pour le chiffrement et le déchiffrement. Pour cette raison, le cryptosystème symétrique peut également être appelé un cryptosystème à clé secrète. On peut utiliser pour un cryptosystème symétrique un algorithme DES (Data Encryption Standard), qui est un algorithme cryptographique par blocs. Le DES peut cependant avoir une faible sécurité, à cause d'une longueur de la clé. De ce fait, on a introduit un nouveau standard de système cryptographique par blocs, appelé AES (Advanced Encryption Standard). Un aspect du cryptosystème asymétrique consiste en ce que des valeurs de clés utilisées en chiffrement et en déchiffrement peuvent être mutuellement différentes, et une clé de chiffrement peut être ouvertement publiée, tandis qu'une clé de déchiffrement peut être disponible seulement pour un utilisateur. La clé de déchiffrement ne doit pas pouvoir être trouvée d'après la clé de chiffrement publiée. Pour cette raison, le cryptosystème asymétrique peut être appelé un cryptosystème à clé publique. Les clés publiques peuvent inclure des codes RSA (Rivest-Shamir- Adieman) basés sur la décomposition de nombres composites en facteurs premiers; des codes d'ElGamal basés sur des problèmes d'algèbre discrète pour des objets définis; des codes de type sac à dos basés sur des problèmes de sac à dos; et des codes à courbes elliptiques basés sur des problèmes d'algèbre discrète de courbes elliptiques. L'algorithme de chiffrement à clé publique doit être capable de protéger une clé secrète contre la divulgation pendant une opération, ainsi que d'assurer un stockage fiable de la clé secrète utilisée pour le déchiffrement. Des exemples de modes de réalisation de la présente invention peuvent procurer un procédé pour protéger de façon sûre une clé secrète pendant une opération.
La figure 2 est un organigramme illustrant une procédure conforme à un exemple de mode de réalisation de la présente invention.
Un processeur 10 peut recevoir un texte chiffré et une clé secrète (S200), et créer une table de référence, qui peut être utilisée dans le déchiffrement du texte chiffré (S210). La table de référence peut être adaptée pour empêcher que la clé secrète ne soit directement utilisée pendant une opération de déchiffrement du texte chiffré. Une longueur de la clé secrète peut être plus longue qu'une taille d'un mot d'opération que le processeur 10 est capable de traiter; par conséquent, le processeur 10 peut diviser la clé secrète en un bloc de taille de mot qu'il peut traiter (S220). Le processeur 10 peut utiliser des chaînes de nombres aléatoires pour protéger la clé secrète contre la divulgation pendant une opération. Le processeur 10 peut recevoir les chaînes de nombres aléatoires à partir d'un générateur de nombres pseudoaléatoires 20 (S230). Une longueur du nombre aléatoire peut être la même que celle du bloc de clé secrète divisée (la taille de mot d'opération du processeur 10). Le processeur peut générer des valeurs aléatoires en exécutant une sommation binaire exclusive, par exemple une opération OU- EX, avec la chaîne de nombres aléatoires reçue et le bloc de clé secrète divisée (S240). La valeur de résultat de l'étape 5240 ne doit pas être liée directement à la clé secrète. Pour réduire notablement le lien entre la clé secrète et la valeur résultante de l'opération OU-EX, on peut augmenter le nombre des chaînes de nombres aléatoires employées dans l'opération OU-EX avec la clé secrète. Il en résulte qu'un système peut être renforcé contre une analyse de puissance. Du fait que les valeurs des chaînes de nombres aléatoires générées par le générateur de nombres pseudo-aléatoires 20 peuvent être variables pour la même valeur de la clé secrète, la valeur résultante de l'opération OU-EX peut être différente chaque fois. Par conséquent, du fait que les valeurs employées dans l'opération effectuée par le processeur 10 peuvent être variables même pour la même valeur de la clé secrète, ceci peut éliminer un risque de divulgation d'une clé secrète sous l'effet d'une attaque externe.
Le processeur 10 peut accomplir une opération pour déchiffrer le texte chiffré en référence à la table générée de façon préliminaire au moyen de la clé secrète et des chaînes de nombres aléatoires (S250), sans utiliser la clé secrète originale. Pendant cette procédure, du fait que des valeurs de bits réelles de la clé secrète peuvent ne pas être utilisées dans l'opération, il peut y avoir peu de risques de divulgation de la clé secrète sous l'effet d'une attaque externe. L'opération de déchiffrement du texte chiffré peut employer la valeur résultante obtenue à partir de la clé secrète et des chaînes de nombres aléatoires, et chaque valeur de bit de la chaîne de nombres aléatoires et chaque valeur de bit déterminée par un opérateur de décalage de bits. Cette procédure peut être répétée jusqu'à ce que toutes les valeurs de bit de la clé secrète aient été traitées dans l'opération de déchiffrement du texte chiffré (S260).
La figure 3 est un organigramme illustrant une procédure arithmétique qui utilise un texte chiffré et une clé secrète en conformité avec un exemple de mode de réalisation de la présente invention. Un algorithme cryptographique à clé publique générale peut employer une technique d'exponentiation modulaire qui est un processus arithmétique de multiplication successive. La figure 3 illustre une procédure pour obtenir une valeur déchiffrée y = gk à partir d'un texte chiffré g et d'une clé secrète k, par une opération d'exponentiation modulaire.
Un processeur 10 peut recevoir un texte chiffré g et une clé secrète k (S300). La clé secrète k peut être transformée en une valeur de bloc unité en la segmentant en une taille de mot d'opération pour le processeur 10. Des valeurs Rp et Ri peuvent être utilisées dans l'opération d'exponentiation modulaire, et Ro et R1 peuvent être initialisées respectivement à des valeurs de "1" et du texte chiffré g (S310). Ensuite, une table Q peut être créée pour l'opération de déchiffrement de texte chiffré (S320). La table Q peut être configurée de façon à empêcher que la clé secrète ne soit directement utilisée pendant l'opération de déchiffrement de texte chiffré. Le processeur 10 peut recevoir des chaînes de nombres aléatoires d'entrée Ti et T2 (S330), qui peuvent être utilisées pour protéger la clé secrète k pendant une opération. Une longueur de la chaîne de nombres aléatoires peut être la même que celle du bloc de clé secrète divisée.
Le processeur 10 peut générer un nombre aléatoire D en exécutant une opération OU-EX avec une valeur de bloc Ki de la clé secrète et les chaînes de nombres aléatoires Ti et T2 (S340). Le nombre aléatoire D obtenu par l'opération OU-EX peut être allongé jusqu'à une taille égale à la taille de mot d'opération, à la longueur de la valeur de bloc de clé secrète Ki, ou à la longueur de la chaîne de nombres aléatoires d'entrée T1, T2. Le processeur 10 peut traiter l'opération de déchiffrement de texte chiffré en utilisant les valeurs Ro et R1 en référence à la table Q générée de façon préliminaire, au moyen du nombre aléatoire D obtenu à partir de la clé secrète et des chaînes de nombres aléatoires (S350), pendant l'opération d'exponentiation modulaire pour déchiffrer la clé secrète. Du fait que les valeurs dans la table Q sont "0" ou "1", la valeur de Q[d j] [t_1] [t_2] ou la valeur inversée -,Q[d j] [t 1] [t_2] peut être "0" ou "1". Par conséquent, la valeur de RQ[d j] [t_1] [t_2] ou R-,Q[d j] [t1] [t2] peut être Ro ou Ri. En fournissant en sortie la valeur Rp comme un résultat de l'opération d'exponentiation modulaire pour déchiffrer le texte chiffré en utilisant Ro et R1, on peut obtenir une valeur résultante pour le déchiffrement du texte chiffré (S360). Ces processus peuvent être répétés (par exemple en retournant en boucle à S330), jusqu'à ce que toutes les valeurs de la clé secrète soient traitées dans l'opération de déchiffrement de texte chiffré (S370). Du fait que des valeurs de bit originales ne sont pas utilisées dans l'opération de déchiffrement de texte chiffré, il est possible d'éviter que la clé secrète ne soit divulguée sous l'effet d'une attaque externe, par exemple une attaque DPA.
Conformément à la description ci-dessus, des
exemples de modes de réalisation de la présente invention peuvent être effectifs pour protéger une clé secrète contre la divulgation sous l'effet d'une attaque externe, par exemple une attaque par analyse de puissance incluant une attaque DPA ou SDA. Dans des exemples de modes de réalisation de la présente invention, un processeur d'une carte à microprocesseur peut utiliser une opération de table et des valeurs combinées avec une clé secrète et des chaînes de nombres aléatoires qui sont fournies par un générateur de nombres pseudo-aléatoires, pendant une opération avec la clé secrète. La sécurité d'un système de carte à microprocesseur peut donc être renforcée.
Bien que la présente invention ait été décrite en relation avec des exemples de modes de réalisation de celle-ci, il apparaîtra à l'homme de l'art que divers changements, substitutions et modifications peuvent y être apportés sans sortir du cadre de la présente invention.

Claims (20)

REVENDICATIONS
1. Procédé cryptographique, caractérisé en ce qu'il comprend: la réception d'un texte chiffré et d'une clé secrète (5200) ; la génération d'une table à utiliser pour le déchiffrement, sur la base du texte chiffré et de la clé secrète (S210) ; la réception d'au moins une chaîne de nombres aléatoires (S230) ; l'exécution d'une opération logique avec la clé secrète et l'au moins une chaîne de nombres aléatoires (S240) ; et le déchiffrement du texte chiffré en utilisant une valeur de résultat de l'opération logique, la chaîne de nombres aléatoires et la table (S250).
2. Procédé selon la revendication 1, caractérisé en ce que la clé secrète est divisée en une multiplicité de blocs (S220) avant l'exécution de l'opération logique (S240).
3. Procédé selon la revendication 2, caractérisé en ce qu'une longueur de l'au moins une chaîne de nombres aléatoires est égale à une longueur de la multiplicité de blocs divisés.
4. Procédé selon la revendication 2, caractérisé en ce que le texte chiffré est déchiffré en utilisant une valeur d'opération de l'un de la multiplicité de blocs divisés, la chaîne de nombres aléatoires et la table.
5. Procédé selon la revendication 2, caractérisé en ce que le déchiffrement du texte chiffré comprend: la détection de chaque bit de la valeur résultante de la multiplicité de blocs divisés, en succession; et le traitement de chacun des bits détectés, de la table et de l'au moins une chaîne de nombres aléatoires.
6. Procédé selon la revendication 1, caractérisé en ce que la valeur de résultat de l'opération logique est faiblement liée à la clé secrète.
7. Procédé selon la revendication 1, caractérisé en ce que l'opération logique (5240) est exécutée de manière à affaiblir ainsi un lien entre la valeur de résultat de l'opération logique et la clé secrète lorsque deux chaînes de nombres aléatoires, ou plus, sont utilisées.
8. Procédé selon la revendication 1, caractérisé en ce que l'opération logique est une opération OU-EX.
9. Procédé cryptographique, caractérisé en ce qu'il comprend: la réception d'un texte chiffré et d'une clé secrète (S200) ; la génération d'une table à utiliser pour le déchiffrement, sur la base du texte chiffré et de la clé secrète (5210) ; la division de la clé secrète en une multiplicité de blocs (S220) ; la réception d'au moins une chaîne de nombres aléatoires (5230) ; l'exécution d'une opération OU-EX avec l'un de la multiplicité de blocs et l'au moins une chaîne de nombres aléatoires (S240) ; et le déchiffrement du texte chiffré (S250).
10. Procédé selon la revendication 9, caractérisé en ce que le déchiffrement du texte chiffré (S250) comprend la détection de chaque bit de la valeur résultante de la multiplicité de blocs, en succession; et le traitement de chacun des bits détectés, de la table et de l'au moins une chaîne de nombres aléatoires.
11. Carte à microprocesseur (100), caractérisée en ce qu'elle comprend. un générateur de nombres pseudoaléatoires (20) adapté pour générer une chaîne de nombres aléatoires avec une longueur définie; et un processeur (10) adapté pour recevoir un texte chiffré et une clé secrète et générer une table, le processeur étant en outre adapté pour recevoir la chaîne de nombres aléatoires, exécuter une opération logique sur la chaîne de nombres aléatoires et la clé secrète, et exécuter une opération de déchiffrement de texte chiffré en utilisant une valeur de résultat obtenue par l'opération logique, la table et la chaîne de nombres aléatoires.
12. Carte à microprocesseur (100) selon la revendication 11, caractérisée en ce que le processeur (10) 35 est un microprocesseur ou une unité centrale de traitement.
13. Carte à microprocesseur (100) selon la revendication 11, caractérisée en ce que le processeur (10) est adapté pour diviser la clé secrète en une multiplicité de blocs avant d'exécuter l'opération logique.
14. Carte à microprocesseur (100) selon la revendication 13, caractérisée en ce qu'une longueur de la chaîne de nombres aléatoires qui est fournie par le générateur de nombres pseudo-aléatoires (20) est fixée égale à une longueur de la multiplicité de blocs divisés.
15. Carte à microprocesseur (100) selon la revendication 13, caractérisée en ce que le processeur (10) est adapté pour exécuter l'opération de déchiffrement de texte chiffré en utilisant une valeur résultante de l'un de la multiplicité de blocs divisés, la chaîne de nombres aléatoires et la table.
16. Carte à microprocesseur (100) selon la revendication 13, caractérisée en ce que le processeur (10) est adapté pour exécuter l'opération de déchiffrement de texte chiffré en détectant séquentiellement chaque bit de la valeur résultante de la multiplicité de blocs divisés avec la clé secrète et la chaîne de nombres aléatoires.
17. Carte à microprocesseur (100) selon la revendication 11, caractérisée en ce que le processeur (10) est adapté pour exécuter l'opération logique de manière à affaiblir ainsi le lien entre la valeur de résultat de l'opération logique et la clé secrète lorsque deux chaînes de nombres aléatoires, ou plus, sont utilisées.
18. Carte à microprocesseur (100) selon la revendication 11, caractérisée en ce que la table que génère le processeur (10) est configurée pour éviter une divulgation de bits de la clé secrète pendant l'exécution de l'opération de déchiffrement de texte chiffré.
19. Carte à microprocesseur (100) selon la revendication 11, caractérisée en ce que l'opération 35 logique est une opération OU-EX.
20. Carte à microprocesseur (100) selon la revendication 11, caractérisée en ce qu'elle comprend en outre: une interface d'entrée/sortie (E/S) (30) adaptée pour transférer des données entre la carte à microprocesseur (100) et des appareils externes; une mémoire morte (ROM) (40) adaptée pour contenir un système d'exploitation et des instructions pour la carte à microprocesseur (100) ; une mémoire vive (RAM) (50) adaptée pour stocker des données temporaires et des résultats calculés; et un bus (60) fonctionnellement adapté pour transférer des données à l'intérieur de la carte à microprocesseur (100) entre l'interface d'E/S (30), la mémoire vive (50), la mémoire morte (40), le générateur de nombres pseudo-aléatoires (20) et le processeur (10).
FR0600156A 2005-01-10 2006-01-09 Carte a microprocesseur et procede cryptographique pour proteger une cle secrete Withdrawn FR2880750A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050002281A KR20060081847A (ko) 2005-01-10 2005-01-10 비밀키를 보호하는 스마트 카드 및 그것의 방법

Publications (1)

Publication Number Publication Date
FR2880750A1 true FR2880750A1 (fr) 2006-07-14

Family

ID=36609087

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0600156A Withdrawn FR2880750A1 (fr) 2005-01-10 2006-01-09 Carte a microprocesseur et procede cryptographique pour proteger une cle secrete

Country Status (3)

Country Link
US (1) US20060153372A1 (fr)
KR (1) KR20060081847A (fr)
FR (1) FR2880750A1 (fr)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006112114A1 (fr) * 2005-03-31 2006-10-26 Matsushita Electric Industrial Co., Ltd. Dispositif et procede de cryptage de donnees
DE102005024609A1 (de) * 2005-05-25 2006-11-30 Siemens Ag Bestimmung einer modularen Inversen
DE102006014353B4 (de) * 2006-03-28 2007-11-22 Siemens Ag Verfahren zum sicheren Ermitteln von Daten
US8781111B2 (en) * 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
US8413906B2 (en) 2011-05-22 2013-04-09 King Saud University Countermeasures to secure smart cards
US20130198513A1 (en) * 2012-01-27 2013-08-01 DoctorCom, Inc. Encryption method and system for network communication
CN103916235A (zh) * 2012-12-28 2014-07-09 北京中电华大电子设计有限责任公司 随机插入伪轮运算对的抗功耗攻击方法
EP3203460B1 (fr) * 2016-02-05 2021-04-07 Nxp B.V. Stockage de données sécurisé
US10887090B2 (en) * 2017-09-22 2021-01-05 Nec Corporation Scalable byzantine fault-tolerant protocol with partial tee support

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4776011A (en) * 1983-10-24 1988-10-04 Sony Corporation Recursive key schedule cryptographic system
US4797921A (en) * 1984-11-13 1989-01-10 Hitachi, Ltd. System for enciphering or deciphering data
FR2699300B1 (fr) * 1992-12-15 1995-03-10 Mireille Campana Procédé d'authentification d'un ensemble informatique par un autre ensemble informatique.
US5724428A (en) * 1995-11-01 1998-03-03 Rsa Data Security, Inc. Block encryption algorithm with data-dependent rotations
IL139935A (en) * 1998-06-03 2005-06-19 Cryptography Res Inc Des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
US6345101B1 (en) * 1998-10-07 2002-02-05 Jayant Shukla Cryptographic method and apparatus for data communication and storage
JP4317607B2 (ja) * 1998-12-14 2009-08-19 株式会社日立製作所 情報処理装置、耐タンパ処理装置
JP4671571B2 (ja) * 1999-09-29 2011-04-20 株式会社日立製作所 秘密情報の処理装置および秘密情報の処理プログラムを格納するメモリ
AU2001260970A1 (en) * 2000-01-31 2001-08-07 Vdg Inc. Block encryption method and schemes for data confidentiality and integrity protection
JP3864675B2 (ja) * 2000-03-09 2007-01-10 株式会社日立製作所 共通鍵暗号装置
JP4199937B2 (ja) * 2001-03-06 2008-12-24 株式会社日立製作所 耐タンパー暗号処理方法
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
US7325133B2 (en) * 2003-10-07 2008-01-29 Koolspan, Inc. Mass subscriber management
KR100720726B1 (ko) * 2003-10-09 2007-05-22 삼성전자주식회사 Rsa 알고리즘을 이용한 보안유지시스템 및 그 방법

Also Published As

Publication number Publication date
KR20060081847A (ko) 2006-07-13
US20060153372A1 (en) 2006-07-13

Similar Documents

Publication Publication Date Title
FR2880750A1 (fr) Carte a microprocesseur et procede cryptographique pour proteger une cle secrete
EP1151576B1 (fr) Procede cryptographique a cles publique et privee
CA2570617C (fr) Procede et dispositif d'execution d'un calcul cryptographique
KR101610917B1 (ko) 암호 알고리즘의 복호 방법 및 그것을 포함하는 암호 시스템
WO2014111647A1 (fr) Procede de cryptographie comprenant une operation de multiplication par un scalaire ou une exponentiation
EP2296086B1 (fr) Protection d'une génération de nombres premiers contre des attaques par canaux cachés
EP1166494A1 (fr) Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique
EP2707989B1 (fr) Dispositif et procede de generation de cles a securite renforcee pour algorithme de chiffrement pleinement homomorphique
EP3139363B1 (fr) Protection d'un algorithme de rijndael
EP2162820A1 (fr) Mise a la puissance modulaire selon montgomery securisee contre les attaques a canaux caches
FR2809893A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique sur courbe elliptique
EP2166696A1 (fr) Protection de l'intégrité de données chiffrées en utilisant un état intermédiare de chiffrement pour générer une signature
FR2888690A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d'une exponentiation et composant associe
FR2902252A1 (fr) Systemes cryptographiques pour chiffrer des donnees d'entree en utilisant une adresse associee aux donnees d'entree, circuits de detection d'erreur et procedes pour les faire fonctionner.
FR2966953A1 (fr) Procede de contremesure cryptographique par derivation d'une donnee secrete
FR3056322A1 (fr) Procede de chiffrement ou de dechiffrement protege contre des attaques par canaux caches
FR2949886A1 (fr) Procede de traitement cryptographique de donnees
EP2983083A1 (fr) Procede de cryptographie sur courbe elliptique comprenant une detection d'erreur
EP2326042A1 (fr) Procédé de détection d'une attaque par injection de fautes
EP2936302A1 (fr) Generateur de sequences chaotiques
EP2738974B1 (fr) Procédé de dérivation de clés cryptographiques multiples à partir d'une clé maitresse dans un microprocesseur de sécurité
EP2530867A1 (fr) Procédé de traitement cryptographique de données
EP0962069B1 (fr) Systeme cryptographique comprenant un systeme de chiffrement et de dechiffrement et un systeme de sequestre de cles
FR2818846A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie
FR3045883A1 (fr) Procede de traitement cryptographique de donnees, programme d'ordinateur et entite electronique associes

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20110930