FR2966953A1 - Procede de contremesure cryptographique par derivation d'une donnee secrete - Google Patents

Procede de contremesure cryptographique par derivation d'une donnee secrete Download PDF

Info

Publication number
FR2966953A1
FR2966953A1 FR1004294A FR1004294A FR2966953A1 FR 2966953 A1 FR2966953 A1 FR 2966953A1 FR 1004294 A FR1004294 A FR 1004294A FR 1004294 A FR1004294 A FR 1004294A FR 2966953 A1 FR2966953 A1 FR 2966953A1
Authority
FR
France
Prior art keywords
data
transformed
calculation
circuit
processed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1004294A
Other languages
English (en)
Other versions
FR2966953B1 (fr
Inventor
Yannick Teglia
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics Rousset SAS
Original Assignee
STMicroelectronics Rousset SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics Rousset SAS filed Critical STMicroelectronics Rousset SAS
Priority to FR1004294A priority Critical patent/FR2966953B1/fr
Priority to US13/286,962 priority patent/US8666067B2/en
Publication of FR2966953A1 publication Critical patent/FR2966953A1/fr
Priority to US14/091,153 priority patent/US9363073B2/en
Application granted granted Critical
Publication of FR2966953B1 publication Critical patent/FR2966953B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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
    • 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

Landscapes

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

Abstract

L'invention concerne un procédé de protection d'un circuit contre des attaques visant à découvrir une donnée secrète utilisée lors de l'exécution d'un calcul cryptographique, le procédé comprenant des étapes d'exécution d'un calcul de transformation (F) mettant en œuvre une fonction de transformation bijective, recevant en entrée une donnée secrète (K), et fournissant une donnée transformée (K'), exécution d'un calcul cryptographique (CC) recevant en entrée une donnée à traiter (M) et la donnée transformée (K'), et exécution d'un calcul de transformation inverse (G) recevant en entrée le résultat du calcul cryptographique (CM'), et fournissant un résultat (CM) que le calcul cryptographique aurait fourni s'il avait été appliqué à la donnée à traiter et directement à la donnée secrète, la donnée à traiter appartenant à un flux (DS) d'une multiplicité de données, la donnée transformée (K') étant fournie en entrée du calcul cryptographique pour toutes les données du flux.

Description

i PROCEDE DE CONTREMESURE CRYPTOGRAPHIQUE PAR DERIVATION D'UNE DONNEE SECRETE
La présente invention concerne un procédé de contremesure pour protéger des données sensibles circulant dans un circuit électronique, contre des attaques visant à découvrir ces données. La présente invention s'applique notamment aux cartes à microcircuits, aux boitiers décodeurs (set s top box), et plus généralement à tout dispositif manipulant des données secrètes ou mettant en oeuvre des fonctions cryptographiques. Les données sensibles peuvent être notamment des clés de chiffrement ou de déchiffrement, et plus généralement des données cryptographiques utilisées ou élaborées lors de calculs cryptographiques, io comme des données intermédiaires de tels calculs, et des identifiants qui doivent être conservés secrets. Les circuits électroniques manipulant des données sensibles font parfois l'objet d'attaques visant à déterminer ces données. Parmi les attaques connues, les attaques de type SPA (Simple Power Analysis) ou ls DPA (Differential Power Analysis) consistent à effectuer de nombreuses mesures de courants et de tensions entrant et sortant dans le circuit lors de l'exécution d'un programme ou le traitement de données par le circuit, avec des données d'entrée différentes. Les mesures obtenues sont exploitées par des analyses statistiques visant à faire apparaître des corrélations, pour en 20 déduire des données secrètes, traitées ou utilisées par le circuit. Dans ce même but, les attaques de type EMA (Electromagnetic Analysis) et DEMA (Differential Electromagnetic Analysis) se basent sur l'analyse du rayonnement électromagnétique émis par le circuit. Afin de lutter contre ces attaques variées par nature, de nombreuses 25 solutions très différentes les unes des autres ont été apportées. L'invention concerne plus particulièrement celles qui visent à empêcher les attaques par analyse statistique d'aboutir par corrélation à la découverte d'une donnée secrète. A cet effet, il est connu d'utiliser des nombres aléatoires pour 30 masquer des calculs cryptographiques. Par exemple lors d'une exponentiation modulaire, de la forme (Md mod N, M étant une donnée à 2
chiffrer et d une donnée secrète), couramment utilisée dans certains calculs cryptographiques, il est connu de d'ajouter à la donnée secrète d un nombre aléatoire r avant de l'utiliser comme exposant dans le calcul d'exponentiation modulaire (Md+r mod N). Pour obtenir le résultat de l'opération s d'exponentiation recherchée (Md mod N), il faut ensuite retirer la composante résultant de l'introduction du nombre aléatoire en effectuant un calcul d'exponentiation modulaire appliqué au nombre aléatoire préalablement changé de signe (M-r mod N), puis de multiplier les résultats obtenus par les deux exponentiations modulaires. io Au lieu d'ajouter à la donnée secrète un nombre aléatoire, il est également connu de multiplier celle-ci par un nombre aléatoire r. Dans ce cas, le résultat de l'exponentiation modulaire recherché (Md mod N) est obtenu en calculant l'inverse du nombre aléatoire 1/r et en effectuant un second calcul d'exponentiation modulaire à la puissance 1/r, appliqué au ls résultat du premier calcul d'exponentiation modulaire ((Mdr mod N)~~r mod N). Ces solutions présentent l'inconvénient de nécessiter un générateur de nombres aléatoires de bonne qualité, de stocker temporairement le résultat du premier calcul d'exponentiation modulaire et d'ajouter un second 20 calcul d'exponentiation modulaire et une multiplication ou un calcul d'inverse. II est également connu d'ajouter à la donnée secrète d utilisée comme exposant un terme de la forme r - cp(N) tel que le calcul d'exponentiation modulaire utilisant la somme obtenue comme exposant (Md+r.q)(N) mod N), fournit un résultat identique au calcul d'exponentiation modulaire utilisant 25 uniquement la donnée secrète comme exposant (Md mod N). Cette solution nécessite également un générateur de nombre aléatoire de bonne qualité pour déterminer la valeur de r. Il est également nécessaire de connaître le facteur (p(N) qui permet de ne pas changer le résultat de l'exponentiation modulaire, ce qui, selon les applications, n'est pas toujours le cas. 30 Au lieu de modifier la donnée secrète avant de procéder au calcul d'exponentiation modulaire, il a également été envisagé de modifier la donnée à chiffrer M avant le calcul d'exponentiation en la multipliant par un nombre aléatoire r. Le calcul d'exponentiation modulaire fournit donc la valeur ((M - r)d mod N). Pour obtenir le résultat du calcul recherché, il est 3 donc nécessaire de calculer la quantité (r"d mod N) et de multiplier cette quantité par le résultat du premier calcul d'exponentiation modulaire. Cette solution présente les inconvénients des solutions précédemment décrites. II est donc souhaitable d'empêcher la découverte de données secrètes lors de calculs cryptographiques, sans avoir besoin d'un générateur de nombres aléatoires et de mémoire pour stocker des résultats intermédiaires. Des modes de réalisation concernent un procédé de protection d'un circuit contre des attaques visant à découvrir une donnée secrète utilisée io lors de l'exécution par le circuit d'un calcul cryptographique, le procédé comprenant des étapes consistant à : exécuter un calcul de transformation mettant en oeuvre une fonction de transformation bijective, recevant en entrée une donnée secrète, et fournissant une donnée transformée, exécuter un calcul cryptographique recevant en entrée une donnée à traiter 15 et la donnée transformée, et exécuter un calcul de transformation inverse recevant en entrée le résultat du calcul cryptographique, et fournissant un résultat que le calcul cryptographique aurait fourni s'il avait été appliqué à la donnée à traiter et directement à la donnée secrète. Selon un mode de réalisation, la donnée à traiter appartient à un flux comprenant une 20 multiplicité de données à traiter, la donnée transformée étant fournie en entrée du calcul cryptographique pour toutes les données du flux de données à traiter. Selon un mode de réalisation, le procédé comprend des étapes de mémorisation de la donnée transformée et de lecture de la donnée 25 transformée mémorisée, pour chaque donnée du flux à traiter, le calcul de transformation de la donnée secrète en donnée transformée étant effectué une seule fois pour toutes les données du flux à traiter. Selon un mode de réalisation, le procédé comprend des étapes de réception et d'exécution par le circuit d'un ordre de sélection d'une nouvelle 30 fonction de transformation et d'une fonction de transformation inverse, parmi un ensemble de couples de fonctions de transformations bijectives et de transformations inverses correspondantes, de calcul d'une nouvelle donnée transformée résultant de l'application de la nouvelle fonction de transformation sélectionnée à la donnée secrète, d'utilisation de la nouvelle 35 donnée transformée en entrée du calcul cryptographique appliqué à chacune 4
des données d'un flux de données à traiter, reçu à la suite de l'ordre de sélection. Selon un mode de réalisation, le procédé comprend des étapes de réception par le circuit d'un nouveau couple de fonctions de transformation s et de transformation inverse correspondante, sous la forme de séquence d'instructions exécutables, d'exécution de la fonction de transformation reçue, appliquée à la donnée secrète, pour obtenir une nouvelle donnée transformée, et d'utilisation de la nouvelle donnée transformée en entrée du calcul cryptographique appliqué à chacune des données d'un flux de io données à traiter, reçu à la suite de la réception du couple de fonctions de transformation. Selon un mode de réalisation, le calcul cryptographique comprend un calcul d'exponentiation modulaire de la donnée à traiter, utilisant comme exposant la donnée secrète ou la donnée transformée, ou bien une ls multiplication de courbe elliptique cryptographique de la donnée à traiter par la donnée transformée ou la donnée secrète. Selon un mode de réalisation, la fonction de transformation est une multiplication modulo N par un nombre entier positif ou négatif, ou l'inverse d'un tel nombre. 20 Des modes de réalisation concernent également un circuit de traitement de flux de données, configuré pour mettre en oeuvre le procédé tel que défini précédemment. Selon un mode de réalisation, le circuit de traitement comprend un circuit sécurisé de calcul cryptographique configuré pour mémoriser une 25 donnée secrète et exécuter le calcul de transformation de la donnée secrète et le calcul cryptographique sur une donnée d'un flux de données à traiter. Selon un mode de réalisation, le circuit de calcul cryptographique sécurisé est configuré pour mémoriser la donnée transformée résultant du calcul de transformation appliqué à la donnée secrète, et pour utiliser à 30 chaque calcul cryptographique, la donnée transformée mémorisée. Selon un mode de réalisation, le circuit de calcul cryptographique sécurisé est configuré pour mémoriser plusieurs couples de fonctions de transformation et de transformation inverse correspondante, pour recevoir des ordres de sélection d'un nouveau couple de fonctions parmi les couples 35 de fonctions mémorisés, et de calcul d'une nouvelle donnée transformée résultant de l'application de la fonction de transformation sélectionnée à la donnée secrète. 2966953 s Selon un mode de réalisation, le circuit de traitement est configuré pour recevoir un nouveau couple de fonctions de transformation et de transformation inverse correspondante, sous la forme de séquences d'instructions exécutables, exécuter la fonction de transformation reçue, s appliquée à la donnée secrète, pour obtenir une nouvelle donnée transformée, et utiliser la nouvelle donnée transformée en entrée du calcul cryptographique appliqué à chacune des données d'un flux de données à traiter.
io Des exemples de réalisation de l'invention seront décrits dans ce qui suit, à titre non limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente sous la forme de blocs un calcul cryptographique classique, la figure 2 représente sous la forme de blocs un calcul ls cryptographique modifié selon un mode de réalisation, la figure 3 représente schématiquement un circuit susceptible d'être protégé en mettant en oeuvre le calcul cryptographique modifié. La figure 1 représente un calcul cryptographique effectué par un circuit électronique. Le calcul cryptographique CC applique une fonction 20 mathématique CC à une donnée à traiter M et à une donnée secrète K et fournit un résultat CM = CC(M, K). Le calcul cryptographique CC peut être un calcul de chiffrement ou déchiffrement, symétrique ou asymétrique. La figure 2 représente un calcul cryptographique effectué par un circuit électronique, selon un mode de réalisation. Le calcul cryptographique 25 représenté sur la figure 2 fournit un résultat identique à celui de la figure 1. A cet effet, le calcul de la figure 2 applique tout d'abord à la donnée secrète K une fonction de transformation F qui est une fonction mathématique bijective. La fonction F appliquée à la donnée secrète K fournit une donnée transformée K'. La donnée à traiter M et la donnée transformée K' obtenue 30 sont fournies en entrée du calcul cryptographique CC. Ainsi le calcul CC fournit un résultat CM' = CC(M, K'). Pour obtenir le même résultat CM que par le calcul de la figure 1, le calcul de la figure 2 applique au résultat CM' une fonction mathématique G dite "inverse" de la fonction F, telle qu'elle fournit le résultat CM qui aurait été obtenu en appliquant le calcul 35 cryptographique CC à la donnée à traiter M et directement à la donnée secrète K, c'est-à-dire non transformée par la fonction F. Ainsi, le calcul cryptographique de la figure 2 peut être représenté par l'équation suivante : CM = CC(M, K) = G(F(M, F(K))) (1) Sur le plan mathématique, si la fonction F est bijective, il existe une fonction s G satisfaisant à l'équation (1). L'équation (1) peut s'appliquer notamment à des calculs cryptographique comprenant un ou plusieurs calculs d'exponentiation modulaire, de la manière suivante : CM = MK mod N = G(MF(K) mod N) (2) io Dans ce cas, les fonctions F et G sont des fonctions mathématiques modulo N. Les fonctions F et G peuvent être des fonctions mathématiques simples, telles qu'une multiplication modulo N par un nombre entier positif ou négatif A, ou l'inverse B=1/A d'un tel nombre, pour la fonction F, et une exponentiation modulo N à la puissance 1/A pour la fonction G. L'équation ls (2) peut s'appliquer à tout calcul cryptographique mettant en oeuvre des calculs d'exponentiation modulaire, tel que RSA, Diffie Hellman, et El Gamal. L'équation (1) peut également s'appliquer à la cryptographie basée sur les courbes elliptiques, de la manière suivante : CM = K x M = G(F(K) x M) (3) 20 dans laquelle l'opérateur "x" est une multiplication modulo N dans le groupe mathématique constitué par les points d'une courbe elliptique préalablement choisie, et N est un nombre premier correspondant à un point du groupe mathématique correspondant à la courbe elliptique choisie. Les fonctions F et G sont alors des fonctions dans le groupe mathématique associé à la 25 courbe elliptique choisie. Les fonctions F et G peuvent être des fonctions mathématiques simples dans le groupe des points de la courbe elliptique choisie, telles qu'une multiplication modulo N par un nombre entier positif ou négatif A pour la fonction F, et une multiplication par l'inverse 1/A de du nombre A (ou le nombre A élevé à la puissance -1 modulo N) pour la 30 fonction G. La figure 3 représente un exemple de circuit mettant en ceuvre le calcul cryptographique de la figure 2. Sur la figure 3, le circuit IC comprend une unité de traitement de données DPU, une ou plusieurs mémoires MEM1, MEM2, MEM3, un circuit sécurisé de calcul cryptographique CAU et 35 un circuit d'interface INT permettant au circuit IC de communiquer avec des 7
circuits externes. L'unité DPU, les mémoires MEM1 à MEM3, et les circuits CAU et INT sont interconnectés par l'intermédiaire d'un bus de transmission de données ADB. Les mémoires MEM1 et MEM2 sont par exemple des mémoires non volatiles. La mémoire MEM1 peut être de type ROM et la s mémoire MEM2 de type réinscriptible (EEPROM). La mémoire MEM3 peut être une mémoire volatile. Le circuit IC est configuré pour recevoir et/ou émettre des flux de données DS dont les données sont traitées par le circuit CAU, avant leur émission ou après leur réception par le circuit INT. Le circuit CAU fournit par exemple à l'unité DPU des données traitées CM résultant de io l'application le calcul cryptographique CC aux données M du flux DS. Le circuit CAU transforme chaque donnée M du flux DS en une donnée dérivée CM correspondant au résultat du calcul cryptographique CC(M,K) appliqué à la donnée M et à la clé secrète K. Le circuit IC peut être un circuit de décodeur vidéo (set top box) ou un microcircuit par exemple intégré dans ls une carte à puce. Selon un mode de réalisation, le circuit CAU calcule chaque donnée dérivée CM en appliquant l'équation (1), (2) ou (3), à chaque donnée M du flux DS, le couple de fonctions (F, G) et la donnée secrète K restant secrets et inchangés pour chaque donnée M du flux à traiter DS. De cette manière, 20 si le circuit IC subit une attaque basée sur une analyse statistique de mesures réalisées sur le circuit IC, visant à faire apparaître des corrélations, l'attaque peut conduire à la découverte, non pas de la donnée secrète K, mais de la donnée transformée K'. Il est à noter que le couple de fonctions (F, G) n'est pas changé à 25 chaque donnée à traiter, car sinon une attaque ne peut aboutir par corrélation à la découverte d'une donnée secrète ou transformée. Par conséquent, la donnée transformée K' est utilisée à la place de la donnée secrète K dans une série de calculs cryptographiques CC, un nombre minimum de fois suffisant pour que des corrélations puissent être établies 30 par les attaques connues. Selon un mode de réalisation, la donnée transformée K' = F(K) est calculée une fois pour traiter une première donnée du flux DS, est mémorisée par le circuit CAU, la donnée transformée mémorisée étant lue par ce dernier pour traiter toutes les autres données du flux DS. 2966953 s
Selon un mode de réalisation, les fonctions F et G sont exécutées par le circuit CAU. Selon un autre mode de réalisation, la fonction de transformation F est appliquée à la donnée secrète K par le circuit CAU, et la fonction inverse G correspondante est appliquée par un autre circuit tel que l'unité DPU, aux données transformées CM' = CC(M, K'). Selon un mode de réalisation, un ensemble de plusieurs couples de fonctions F et G est mémorisé par le circuit CAU. Le circuit IC peut recevoir par l'intermédiaire du circuit d'interface INT un ordre de changement du couple de fonctions (F, G) utilisé. Le circuit CAU sélectionne alors l'un des io couples de fonctions (F, G) qu'il mémorise. Cette sélection peut être aléatoire ou imposée par l'ordre reçu par le circuit d'interface INT. De cette manière, s'il existe un doute sur la connaissance des fonctions F et G, par des attaquants potentiels du circuit IC, ces fonctions peuvent être changées à distance par des exploitants du circuit IC.
15 Selon un mode de réalisation, les fonctions F et G peuvent être mémorisées par le circuit IC (dans la mémoire MEM2 ou par le circuit CAU) sous la forme de séquences d'instructions exécutables. Ces séquences d'instructions mémorisées peuvent être modifiées en transmettant au circuit IC de nouvelles séquences d'instructions implémentant un autre couple de 20 fonctions F et G. La transmission de ces séquences d'instructions au circuit IC est effectuée de manière sécurisée, par exemple sous forme chiffrée à l'aide d'une clé secrète partagée avec l'exploitant du circuit IC ayant émis les séquences d'instructions, ou bien à l'aide d'une clé appartenant à une paire de clés asymétriques. 25 9

Claims (11)

  1. REVENDICATIONS1. Procédé de protection d'un circuit (IC) contre des attaques visant à découvrir une donnée secrète utilisée lors de l'exécution par le circuit d'un calcul cryptographique, le procédé comprenant des étapes consistant à : exécuter un calcul de transformation mettant en oeuvre une fonction s de transformation bijective (F), recevant en entrée une donnée secrète (K), et fournissant une donnée transformée (K'), exécuter un calcul cryptographique (CC) recevant en entrée une donnée à traiter (M) et la donnée transformée (K'), et exécuter un calcul de transformation inverse (G) recevant en entrée 10 le résultat du calcul cryptographique (CM'), et fournissant un résultat (CM) que le calcul cryptographique aurait fourni s'il avait été appliqué à la donnée à traiter et directement à la donnée secrète, caractérisé en ce que la donnée à traiter (M) appartient à un flux (DS) comprenant une multiplicité de données à traiter, la donnée transformée (K') 15 étant fournie en entrée du calcul cryptographique (CC) pour toutes les données du flux de données à traiter.
  2. 2. Procédé selon la revendication 1, comprenant des étapes de mémorisation de la donnée transformée (K') et de lecture de la donnée 20 transformée mémorisée, pour chaque donnée (M) du flux à traiter (DS), le calcul de transformation (F) de la donnée secrète (K) en donnée transformée étant effectué une seule fois pour toutes les données du flux à traiter.
  3. 3. Procédé selon la revendication 1 ou 2, comprenant des étapes de 25 réception et d'exécution par le circuit (IC) d'un ordre de sélection d'une nouvelle fonction de transformation (F) et d'une fonction de transformation inverse (G), parmi un ensemble de couples de fonctions de transformations bijectives et de transformations inverses correspondantes, de calcul d'une nouvelle donnée transformée (K') résultant de l'application de la nouvelle 30 fonction de transformation sélectionnée à la donnée secrète (K), d'utilisation de la nouvelle donnée transformée en entrée du calcul cryptographique (CC) appliqué à chacune des données (M) d'un flux de données à traiter (DS), reçu à la suite de l'ordre de sélection.io
  4. 4. Procédé selon la revendication 1 ou 2, comprenant des étapes de réception par le circuit (IC) d'un nouveau couple de fonctions de transformation (F) et de transformation inverse correspondante (G), sous la s forme de séquence d'instructions exécutables, d'exécution de la fonction de transformation reçue, appliquée à la donnée secrète (K), pour obtenir une nouvelle donnée transformée (K'), et d'utilisation de la nouvelle donnée transformée en entrée du calcul cryptographique (CC) appliqué à chacune des données (M) d'un flux de données à traiter (DS), reçu à la suite de la 10 réception du couple de fonctions de transformation.
  5. 5. Procédé selon l'une des revendications 1 à 4, dans lequel le calcul cryptographique (CC) comprend un calcul d'exponentiation modulaire de la donnée à traiter (M), utilisant comme exposant la donnée secrète (K) ou la 15 donnée transformée (K'), ou bien une multiplication de courbe elliptique cryptographique de la donnée à traiter par la donnée transformée ou la donnée secrète.
  6. 6. Procédé selon l'une des revendications 1 à 5, dans lequel la 20 fonction de transformation (F) est une multiplication modulo N par un nombre entier positif ou négatif, ou l'inverse d'un tel nombre.
  7. 7. Circuit de traitement de flux de données, caractérisé en ce qu'il est configuré pour mettre en oeuvre le procédé 25 selon l'une des revendications 1 à 6.
  8. 8. Circuit selon la revendication 7, comprenant un circuit sécurisé de calcul cryptographique (CAU) configuré pour mémoriser une donnée secrète (K) et exécuter le calcul de transformation (F) de la donnée secrète et le 30 calcul cryptographique (CC) sur une donnée (M) d'un flux de données à traiter (DS).
  9. 9. Circuit selon la revendication 8, dans lequel le circuit de calcul cryptographique sécurisé (CAU) est configuré pour mémoriser la donnée 35 transformée (K') résultant du calcul de transformation (F) appliqué à laIl donnée secrète (K), et pour utiliser à chaque calcul cryptographique, la donnée transformée mémorisée.
  10. 10. Circuit selon l'une des revendications 8 et 9, dans lequel le circuit s de calcul cryptographique sécurisé (CAU) est configuré pour mémoriser plusieurs couples de fonctions de transformation et de transformation inverse correspondante (F, G), pour recevoir des ordres de sélection d'un nouveau couple de fonctions parmi les couples de fonctions mémorisés, et de calcul d'une nouvelle donnée transformée (K') résultant de l'application 10 de la fonction de transformation sélectionnée à la donnée secrète.
  11. 11. Circuit selon l'une des revendications 7 à 9, configuré pour recevoir un nouveau couple de fonctions de transformation et de transformation inverse correspondante (F, G), sous la forme de séquences 15 d'instructions exécutables, exécuter la fonction de transformation reçue, appliquée à la donnée secrète (K), pour obtenir une nouvelle donnée transformée (K'), et utiliser la nouvelle donnée transformée en entrée du calcul cryptographique (CC) appliqué à chacune des données (M) d'un flux de données à traiter (DS). 20
FR1004294A 2010-11-02 2010-11-02 Procede de contremesure cryptographique par derivation d'une donnee secrete Active FR2966953B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR1004294A FR2966953B1 (fr) 2010-11-02 2010-11-02 Procede de contremesure cryptographique par derivation d'une donnee secrete
US13/286,962 US8666067B2 (en) 2010-11-02 2011-11-01 Cryptographic countermeasure method by deriving a secret data
US14/091,153 US9363073B2 (en) 2010-11-02 2013-11-26 Cryptographic countermeasure method by deriving a secret data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1004294A FR2966953B1 (fr) 2010-11-02 2010-11-02 Procede de contremesure cryptographique par derivation d'une donnee secrete

Publications (2)

Publication Number Publication Date
FR2966953A1 true FR2966953A1 (fr) 2012-05-04
FR2966953B1 FR2966953B1 (fr) 2015-08-28

Family

ID=44072555

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1004294A Active FR2966953B1 (fr) 2010-11-02 2010-11-02 Procede de contremesure cryptographique par derivation d'une donnee secrete

Country Status (2)

Country Link
US (2) US8666067B2 (fr)
FR (1) FR2966953B1 (fr)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2977953A1 (fr) * 2011-07-13 2013-01-18 St Microelectronics Rousset Protection d'un calcul d'exponentiation modulaire par addition d'une quantite aleatoire
DE102012209404A1 (de) * 2012-06-04 2013-12-05 Robert Bosch Gmbh Vorrichtung zur Ausführung eines kryptographischen Verfahrens und Betriebsverfahren hierfür
DE102012025416A1 (de) * 2012-12-21 2014-06-26 Giesecke & Devrient Gmbh Verfahren zum Betreiben eines portablen Datenträgers sowie ein solcher portabler Datenträger
EP3220305B1 (fr) * 2016-02-22 2018-10-31 Eshard Procédé de test de la résistance d'un circuit à une analyse de canal latéral de second ordre ou plus
FR3069993B1 (fr) * 2017-08-07 2020-09-18 Maxim Integrated Products Dispositifs et procedes de masquage d'operations de chiffrement rsa
US20220198068A1 (en) * 2020-12-18 2022-06-23 Agita Labs, Inc. Privacy-enhanced computation via sequestered encryption

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060029224A1 (en) * 2004-08-06 2006-02-09 Yoo-Jin Baek System and recording medium for securing data and methods thereof
EP2326041A1 (fr) * 2009-11-19 2011-05-25 Gemalto SA Contre-mesures contre les attaques en force pour la randomisation de l'exposant

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4078152A (en) * 1976-04-26 1978-03-07 International Business Machines Corporation Block-cipher cryptographic system with chaining
US4229818A (en) * 1978-12-29 1980-10-21 International Business Machines Corporation Method and apparatus for enciphering blocks which succeed short blocks in a key-controlled block-cipher cryptographic system
US5696823A (en) * 1995-03-31 1997-12-09 Lucent Technologies Inc. High-bandwidth encryption system with low-bandwidth cryptographic modules
US6885748B1 (en) * 1999-10-23 2005-04-26 Contentguard Holdings, Inc. System and method for protection of digital works
DE60139280D1 (de) * 2000-03-09 2009-08-27 Nippon Telegraph & Telephone Blockverschlüsselungseinrichtung unter Verwendung von Hilfsumwandlungen
CA2341931C (fr) * 2000-03-24 2006-05-30 Contentguard Holdings, Inc. Systeme et methode de protection d'oeuvres numeriques
CA2327911A1 (fr) * 2000-12-08 2002-06-08 Cloakware Corporation Fonctions logicielles d'obscurcissement
RU2003131278A (ru) * 2002-10-29 2005-04-20 Хай-О Информтех Эсдиэн Биэйчди (MY) Способ шифрования данных
US6747580B1 (en) * 2003-06-12 2004-06-08 Silicon Image, Inc. Method and apparatus for encoding or decoding data in accordance with an NB/(N+1)B block code, and method for determining such a block code
US7961876B2 (en) * 2005-01-11 2011-06-14 Jintai Ding Method to produce new multivariate public key cryptosystems
FR2897216B1 (fr) * 2006-02-08 2008-05-02 Sagem Defense Securite Protection d'un algorithme cryptographique
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP2008058830A (ja) * 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP4961909B2 (ja) * 2006-09-01 2012-06-27 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US20080097954A1 (en) * 2006-10-20 2008-04-24 Microsoft Corporation Ranged lookups
WO2009075337A1 (fr) * 2007-12-13 2009-06-18 Nec Corporation Procédé de chiffrement, procédé de déchiffrement, dispositif, et programme
US20090245510A1 (en) * 2008-03-25 2009-10-01 Mathieu Ciet Block cipher with security intrinsic aspects
US9336160B2 (en) * 2008-10-30 2016-05-10 Qualcomm Incorporated Low latency block cipher
US8731189B2 (en) * 2009-10-27 2014-05-20 Nec Corporation Information processing device, information processing method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060029224A1 (en) * 2004-08-06 2006-02-09 Yoo-Jin Baek System and recording medium for securing data and methods thereof
EP2326041A1 (fr) * 2009-11-19 2011-05-25 Gemalto SA Contre-mesures contre les attaques en force pour la randomisation de l'exposant

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CORON J-S: "RESISTANCE AGAINST DIFFERENTIAL POWER ANALYSIS FOR ELLIPTIC CURVE CRYPTOSYSTEMS", CRYPTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS. INTERNATIONALWORKSHOP, XX, XX, 1 August 1999 (1999-08-01), pages 292 - 302, XP000952243 *
KOCHER P C ED - KOBLITZ N (ED): "TIMING ATTACKS ON IMPLEMENTATIONS OF DIFFIE-HELLMAN, RSA, DSS, AND OTHER SYSTEMS", ADVANCES IN CRYPTOLOGY - CRYPTO '96. 16TH. ANNUAL INTERNATIONAL CRYPTOLOGY CONFERENCE. SANTA BARBARA, AUG. 18 - 22, 1996. PROCEEDINGS; [PROCEEDINGS OF THE ANNUAL INTERNATIONAL CRYPTOLOGY CONFERENCE (CRYPTO)], BERLIN, SPRINGER, DE, vol. CONF. 16, 18 August 1996 (1996-08-18), pages 104 - 113, XP000626590, ISBN: 978-3-540-61512-5 *

Also Published As

Publication number Publication date
US9363073B2 (en) 2016-06-07
US20140079214A1 (en) 2014-03-20
US20120106732A1 (en) 2012-05-03
US8666067B2 (en) 2014-03-04
FR2966953B1 (fr) 2015-08-28

Similar Documents

Publication Publication Date Title
EP2946284B1 (fr) Procédé de cryptographie comprenant une opération de multiplication par un scalaire ou une exponentiation
EP1358732B1 (fr) Procede de cryptage securise et composant utilisant un tel procede de cryptage
EP1166494B1 (fr) Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique
FR2966953A1 (fr) Procede de contremesure cryptographique par derivation d'une donnee secrete
Wang et al. Cryptanalysis of an image cryptosystem based on logistic map
FR2820577A1 (fr) Procede securise de calcul cryptographique a cle secrete et composant mettant en oeuvre un tel procede
FR2809893A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique sur courbe elliptique
FR3095709A1 (fr) Procédé et système de masquage pour la cryptographie
EP3300292B1 (fr) Procédé de chiffrement ou de déchiffrement protégé contre des attaques par canaux cachés
FR2880750A1 (fr) Carte a microprocesseur et procede cryptographique pour proteger une cle secrete
EP2983083B1 (fr) Procede de cryptographie sur courbe elliptique comprenant une detection d'erreur
WO2007006810A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d'une exponentiation et composant associe
EP2284748B1 (fr) Procédé de contremesure pour protéger des données mémorisées
WO2007104706A1 (fr) Procede de securisation d'un calcul d'une exponentiation ou d'une multiplication par un scalaire dans un dispositif electronique
EP1254408B1 (fr) Procede de calcul d'exponentation modulaire dans un composant electronique mettant en oeuvre un algorithme de chiffrement a cle publique
EP2936302A1 (fr) Generateur de sequences chaotiques
EP2599256B1 (fr) Procede et dispositif de randomisation d'une cle secrete contre les attaques par canaux auxiliaires
FR2818846A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie
FR2810821A1 (fr) Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique de koblitz
WO2007116140A1 (fr) PROCÉDÉ DE TRAITEMENT CRYPTOQRAPHIQυE DE DONNÉES, DISPOSITIF ET PROGRAMME ASSOCIÉS
EP4270855A1 (fr) Protection contre les attaques par canal auxiliaire a l aide d'un masquage carre
FR3010562A1 (fr) Procede de traitement de donnees et dispositif associe
EP3579491A1 (fr) Procédé de détermination d'inverse modulaire et dispositif de traitement cryptographique associé
FR3045253A1 (fr) Procede et dispositif de traitement cryptographique
FR2984547A1 (fr) Procede de generation de nombres premiers prouves adapte aux cartes a puce

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14