FR3085215A1 - Dispositifs et procedes de masquage d'operations de cryptographie ecc - Google Patents

Dispositifs et procedes de masquage d'operations de cryptographie ecc Download PDF

Info

Publication number
FR3085215A1
FR3085215A1 FR1857571A FR1857571A FR3085215A1 FR 3085215 A1 FR3085215 A1 FR 3085215A1 FR 1857571 A FR1857571 A FR 1857571A FR 1857571 A FR1857571 A FR 1857571A FR 3085215 A1 FR3085215 A1 FR 3085215A1
Authority
FR
France
Prior art keywords
parameters
memory
function
subset
secure
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
FR1857571A
Other languages
English (en)
Other versions
FR3085215B1 (fr
Inventor
Frank Lhermet
Jeremy Dubeuf
Yann Yves Rene LOISEL
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.)
Maxim Integrated Products Inc
Original Assignee
Maxim Integrated Products Inc
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 Maxim Integrated Products Inc filed Critical Maxim Integrated Products Inc
Priority to FR1857571A priority Critical patent/FR3085215B1/fr
Priority to US16/547,385 priority patent/US20200067693A1/en
Publication of FR3085215A1 publication Critical patent/FR3085215A1/fr
Application granted granted Critical
Publication of FR3085215B1 publication Critical patent/FR3085215B1/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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

Un procédé de protection de données confidentielles, comprenant : au niveau d'un dispositif sécurisé, le traitement (302) d'une valeur secrète qui est associée à une clef publique afin d'obtenir une pluralité de paramètres d'une fonction de telle sorte qu'au moins deux de la pluralité de paramètres de la fonction sont nécessaires afin de récupérer la valeur secrète ; la mémorisation (304) de la pluralité de paramètres dans une mémoire sécurisée (214) dans le dispositif sécurisé ; dans un premier temps (306), la fourniture, à partir de la pluralité de paramètres, d'un premier sous-ensemble de paramètres à une mémoire non sécurisée (204) et, dans un deuxième temps (310), la fourniture, à partir de la pluralité de paramètres, d'un deuxième sous-ensemble de paramètres à la mémoire non sécurisée ; en réponse à la détection d'une manipulation, l'effacement (314) des données de la mémoire sécurisée ; et l'utilisation (316) de la fonction afin de calculer la clef publique.

Description

DISPOSITIFS ET PROCEDES DE MASQUAGE D'OPERATIONS DE
CRYPTOGRAPHIE ECC
A - Domaine technique
Dans son domaine technique, la présente invention se rapporte à la sécurité des informations et plus particulièrement, à des dispositifs et procédés de sécurisation destinés à préserver la confidentialité de données en créant des contre-mesures contre des attaques de faille (« fault attacks » en anglais) sur des 5 circuits électriques qui réalisent des opérations liées à la sécurité, telles que des opérations de cryptographie sur courbe elliptique (ECC, de l’anglais « EllipticCurve Cryptography »). La présente invention se rapporte, en outre, à des dispositifs et procédés de sécurisation qui protègent les dispositifs cryptographiques contre les attaques qui cherchent à exploiter les imperfections de 10 mécanismes d’effacement basés sur logiciel courants.
B --- Art antérieur
Dans l’art antérieur, il est connu que la cryptographie ECC constitue un obstacle important pour des attaquants potentiels de données cryptées compte tenu du problème de logarithme discret de courbe elliptique, c'est-à-dire, de la 15 recherche d'une clef privée secrète d, étant donné un certain nombre de paramètres connus, dont une clef publique Q. Cependant, comme tout autre dispositif cryptographique, les dispositifs de cryptographie ECC ne sont toutefois pas immunisés contre un accès ou inspection non autorisé par des attaquants potentiels, par exemple, des attaques par canal auxiliaire qui exploitent le fait
-2qu'un dispositif cryptographique tel qu'une carte à puce présente des fuites d'informations dans l’environnement. La surveillance du niveau et de remplacement des fuites peut alors être utilisée directement ou indirectement de manière à révéler des opérations cryptographiques, telles que des operations de décryptage ou de génération de signature exécutées sur le dispositif à partir de quoi des informations confidentielles peuvent alors être déduites. Les informations fuitées peuvent être collectées lorsque le dispositif exécute des opérations cryptographiques, par exemple, en surveillant et en analysant la consommation d'énergie et des profils de séquence du dispositif ou le rayonnement électromagnétique émis à partir de ce dernier ; les profils de séquence des opérations cryptographiques ; ou la réponse du dispositif à des erreurs induites afin d’inverser des opérations d'ingénierie et de déterminer des données confidentielles.
Une attaque de faille est un type d'attaque par canal auxiliaire destiné à exploiter des faiblesses sur la mise en œuvre d'un dispositif informatique afin d'obtenir l'accès à un contenu sensible. Une attaque par injection d'erreur active est un type d'attaque de mise en œuvre qui implique la manipulation d’un dispositif par ailleurs sécurisé afin de provoquer une fuite d'informations exploitables en injectant, au cours d'un calcul crypîographique, une erreur sur la mise en œuvre du dispositif informatique afin de forcer un résultat erroné qui s'écarte d'opérations cryptographiques normales de telle sorte que les états internes du dispositif puissent être révélés.
Un autre type d'attaque de faille est une attaque par cryptanalyse DFA (de l’anglais « differential fault analysis »), dans laquelle l'attaquant observe une réponse normale de dispositif et injecte ensuite une erreur, par exemple, en manipulant une condition d'environnement d'un microprocesseur par Γ intermédiaire d'une stimulation physique afin d'amener l'algorithme cryptographique à faire une erreur de calcul. Ainsi en comparant les différences entre les résultats erronés et normaux, l'attaquant peut obtenir des informations utiles, telle qu'une clef secrète ou une clef secrète partielle. Des attaques par cryptanalyse DFA représentent un danger classique, en particulier, pour les dispositifs sécurisés intégrés qui utilisent des algorithmes cryptographiques tels que RSA, ECC, etc.. L'attaquant peut injecter une erreur au cours d'un calcul cryptographique. En résultat le dispositif peut présenter une défaillance, par exemple, à un test de certification de sécurité exécuté par un laboratoire de certification du fait d'une non conformité avec des normes de sécurité renforcées.
Des contre-mesures classiques à des attaques par canal auxiliaire sur des calculs de cryptage comportent l'insertion d'une ou plusieurs opérations inopérantes, telles que le doublement ou l'addition, afin de masquer ou de dissimuler, en fait, des opérations cryptographiques réelles de manière à empêcher un attaquant de pouvoir distinguer des opérations surveillées l'une de l’autre. Une autre contre-mesure est un type de principe de masquage qui applique une opération OU exclusif entre un nombre aléatoire et la clef secrète afin d'obtenir des données masquées, ce qui dissimule les informations secrètes puisque la clef secrète elle-même n'est pas mémorisée.
Toutes ces contre-mesures présentent, toutefois, leurs propres inconvénients. Par exemple, ajouter d’un certain nombre d’opérations inopérantes ralentit le traitement cryptographique réel, ce qui augmente le coût de calcul à un niveau qui peut être inacceptable pour différentes applications cryptographiques. Par conséquent, certaines normes de sécurité informatique exigent que des données confidentielles soient effacées immédiatement à la suite de la détection d'un indice d'une tentative d'effraction avec un dispositif cryptographique matériel.
Un algorithme de signature numérique sur courbe elliptique (ECDSA, de l’anglais « Elliptic Curve Digital Signature Algorithm ») est l'équivalent sur courbe elliptique d'un algorithme DSA (de l’anglais «Digital Signature Algorithm ») qu'une autorité de certification de confiance peut utiliser afin de signer numériquement un certificat pour un message en texte brut. Les calculs de signature par algorithme ECDSA impliquent des opérations scalaires et des opérations modulaires simples telles que des additions et des multiplications. Alors que certains algorithmes existants mettent en œuvre une opération scalaire elliptique dans une tentative de résister à une attaque de faille, il n'existe aucun
-4mécanisme de protection connu qui assure une défense contre des attaques plus récentes pour le reste de l'algorithme ESCDSA, par exemple, une attaque hors du domaine de l'opération scalaire elliptique elle-même.
En résumé, alors que pour certains types d'attaques il existe des contremesures qui permettent de protéger un environnement de confiance, il n'existe pas de solution connue qui assurent un niveau de protection satisfaisant contre des attaques plus intrusives, telles que celles visant à pénétrer dans la mémoire par des moyens physiques ou des moyens logiciels intégrés. En particulier dans le domaine de la cryptographie ECC, des mécanismes d'effacement sur base logicielle courants ne peuvent pas reposer sur la conformité avec des normes de sécurité lorsqu'ils sont confrontés à de telles attaques intrusives.
Par conséquent, pour assurer une conformité correcte et contrecarrer des attaques de faille, il est désirable que soient disponibles des dispositifs et procédés qui protègent contre des attaques lors de l'exécution de calculs cryptographiques qui peuvent révéler des informations sensibles.
La figure 1 représente des dispositif et procédé classiques de protection de données confidentielles contenues dans la mémoire. Le dispositif 100 comprend un dispositif d'accélération arithmétique modulaire (MAA, de l’anglais «Modular Arithmetic Accelerator ») 102 qui, de manière classique, est un dispositif matériel similaire à un co-processeur qui comporte ses propres ressources et constitue un support pour des calculs mathématiques. Le dispositif MAA 102 est souvent utilisé pour la cryptographie par clef publique, qui est très exigeante en termes de puissance de traitement, en particulier, lorsque des mises en œuvre logicielles ne sont pas suffisamment puissantes.
Le dispositif MAA 102 comprend des registres et une mémoire 106, par exemple, une mémoire SRAM (de l’anglais « Static Random Access memory »), qui reçoit des opérandes, exécute des calculs et délivre un résultat, par exemple, un message m. Comme cela est représenté sur la figure 1, le dispositif MAA 102 est couplé à une mémoire à accès aléatoire sécurisée non volatile (mémoire NVSRAM, de l’anglais « Non-Volatile Secure Random Access Memory») 110 qui, en fonctionnement, charge un secret 104 dans la mémoire 106 du dispositif
MAA 102, de telle sorte que le dispositif MAA 102 peut calculer un message m à partir de ce dernier.
Dans le cas d'une attaque sur le dispositif 100, une alarme d’intrusion est déclenchée et, en réponse à une source de réinitialisation destructive (DRS, de l’anglais « Destructive Reset Source »), une instruction d'effacement logiciel 130 est délivrée, par exemple, par un dispositif de détection d'effraction et communiquée à la mémoire NVSRAM 110, de telle sorte qu'un secret partiel quelconque présent dans la mémoire 114, par exemple, des clefs secrètes, peut être réinitialisé ou effacé afin d'empêcher un accès non autorisé à des données confidentielles. Toutefois, dans des conceptions existantes, une telle mémoire 106 du dispositif d'accélération MAA 102 d'un dispositif 100, ne peut pas être effacée d'une façon efficace, du fait que, par conception, il n'existe pas de mécanisme ou de particularité de sécurité, que ce soit sous une forme matérielle ou logicielle, qui peut reposer sur l'exécution d'un effacement opportun suffisamment rapide, complet et garanti de la mémoire de dispositif MAA 106. Ceci est, en partie, dû à la taille de mémoire relativement importante de la mémoire 106. En résultat, des calculs qui ont été exécutés et mémorisés à l'intérieur de la mémoire de dispositif MAA 106 et comprennent un type quelconque de secret, restent à l'intérieur de la mémoire de dispositif MAA 106 jusqu'à ce qu’ils soient activement effacés, par exemple, de manière logicielle. Ainsi, des informations confidentielles laissées dans la mémoire de dispositif MAA 106 sont laissées vulnérables en cas d'accès par des attaquants potentiels.
A titre d'exemple, un attaquant qui peut arriver à délivrer une instruction de réinitialisation suffisamment rapide qui interrompt le mécanisme d'effacement logiciel, par exemple, en interférant avec la séquence du gestionnaire d'interruption non masquable (NMI, de l’anglais « Non-Maskable Interrupt ») de manière à empêcher l'exécution ou l'achèvement de l'interruption, peut obtenir l'accès au secret à protéger dans la mémoire de dispositif MAA 106 qui n’a pas été effacée à la suite d’une alarme. Par conséquent, une tentative quelconque de mise en conformité avec des normes qui impliquent un effacement immédiat de la mémoire qui contient des données confidentielles peut ainsi être contrecarrée par
- 6 une attaque réussie.
Etant donné le problème de sécurité en ce que la mémoire 106 ne peut pas être effacée à temps en cas de détection d'une tentative d'intrusion, dans le but de se conformer à des normes de sécurité et de certification applicables, il est, par conséquent, désirable de pouvoir disposer de dispositifs et de procédés qui permettent l'utilisation d'un dispositif MAA tout en assurant simultanément qu'aucune exposition indésirable de secrets contenus à l'intérieur ne se produise.
De plus, une condition d’erreur, telle que provoquée par une attaque de faille qui provoque un saut de tension, peut altérer une clef privée. Une signature numérique ECDSA peut, ainsi, être produite à partir d'une clef privée légèrement différente, c'est-à-dire, une clef qui présente un faible nombre de bits qui sont différents de ceux de la clef privée véritable (c'est-à-dire, une clef privée attendue). Un attaquant peut réaliser cela, par exemple, en utilisant un laser afin d'irradier une puce de manière à cibler un bit spécifique d'une clef dans le but de positionner un seul bit de la clef à un ou à zéro, de telle sorte que la clef privée erronée (qui) ne soit pas trop différente de la clef privée attendue. L'attaquant peut alors utiliser la clef privée légèrement différente afin de produire une signature ECDSA erronée, c’est-à-dire, invalide. L'attaquant peut alors déduire de la clef publique véritable une clef privée qui permet la validation de la signature erronée. Une fois que ceci est réalisé, l'attaquant peut alors récupérer la faible différence entre les clefs privées véritable et erronée utilisées au cours de la signature ECDSA, sur la base de la représentation du secret. Il est nécessaire de créer des dispositifs et procédés qui surmontent ces inconvénients et peuvent supporter différents types d'attaques physiques et logicielles.
Un résumé de l'invention va être donné ci-dessous.
Il est proposé un procédé de protection de données confidentielles, le procédé comprenant :
au niveau d'un dispositif sécurisé, le traitement d'une valeur secrète qui est associée à une clef publique afin d'obtenir une pluralité de paramètres d'une fonction de telle sorte qu'au moins deux de la pluralité de paramètres de la fonction sont nécessaires afin de récupérer la valeur secrète ;
la mémorisation de la pluralité de paramètres dans une mémoire sécurisée dans le dispositif sécurisé ;
dans un premier temps, la fourniture, à partir de la pluralité de paramètres, d'un premier sous-ensemble de paramètres à une mémoire non sécurisée afin d'exécuter une ou plusieurs opérations cryptographiques sur le premier sousensemble de paramètres ;
dans un deuxième temps, la fourniture, à partir de la pluralité de paramètres, d'un deuxième sous-ensemble de paramètres à la mémoire non sécurisée afin d'exécuter une ou plusieurs opérations cryptographiques sur le deuxième sousensemble de paramètres ;
en réponse à la détection d'une manipulation, l'effacement de données à partir de la mémoire sécurisée, de telle sorte que sans les données effacées, la fonction ne peut pas être récupérée que ce soit à partir de la mémoire sécurisée ou de la mémoire non sécurisée ; et l'utilisation de la fonction afin de calculer la clef publique.
Avantageusement, le procédé peut, en outre, comprendre l'actualisation d'au moins certains de la pluralité de paramètres de la fonction afin d'obtenir une fonction modifiée à partir de laquelle la valeur secrète peut être récupérée.
Avantageusement, la mémoire non sécurisée peut être externe au dispositif sécurisé.
Avantageusement, la valeur secrète peut être un nombre entier.
Avantageusement, la manipulation peut être indicative d'une parmi au moins l'une d'une attaque logicielle et d'une attaque matérielle.
Avantageusement, le calcul de la clef publique peut comprendre l'utilisation d'une opération de cryptographie ECC.
Avantageusement, un ou plusieurs de la pluralité de paramètres peut présenter une longueur en bits qui est inférieure à la longueur en bits de la valeur secrète.
Il est aussi proposé un programme informatique comprenant des instructions destinées à exécuter les étapes décrites précédemment. Ces instructions peuvent, par exemple, être mémorisées dans une mémoire.
-8Π est en outre proposé un dispositif sécurisé destiné à protéger des données confidentielles, comprenant des moyens de traitement agencés de manière à traiter une valeur secrète qui est associée à une clef publique afin d'obtenir une pluralité de paramètres d'une fonction de telle sorte qu'au moins deux de la pluralité de paramètres de la fonction sont nécessaires afin de récupérer la valeur secrète ;
une mémoire sécurisée destinée à mémoriser la pluralité de paramètres ;
dans lequel les moyens de traitement sont, en outre, agencés de manière à, dans un premier temps, fournir, à partir de la pluralité de paramètres, un premier sous-ensemble de paramètres à une mémoire non sécurisée afin d'exécuter une ou plusieurs opérations cryptographiques sur le premier sous-ensemble de paramètres ;
dans un deuxième temps, fournir, à partir de la pluralité de paramètres, un deuxième sous-ensemble de paramètres à la mémoire non sécurisée afin d’exécuter une ou plusieurs opérations cryptographiques sur le deuxième sousensemble de paramètres ;
en réponse à la détection d'une manipulation, effacer des données à partir de la mémoire sécurisée, de telle sorte que sans les données effacées, la fonction ne peut pas être récupérée que ce soit à partir de la mémoire sécurisée ou de la mémoire non sécurisée ; et utiliser la fonction afin de calculer la clef publique.
Une brève description des dessins va maintenant être donnée ci-dessous.
Il va être fait référence à des modes de réalisation de l’invention dont des exemples vont être représentés sur les figures annexées. Ces figures doivent être considérées comme représentatives et pas limitatives. Bien que l'invention soit généralement décrite dans le contexte de ces modes de réalisation, il doit être compris qu'il n'est pas prévu de limiter la portée de l'invention à ces modes de réalisation particuliers. Certains éléments sur les figures peuvent ne pas être à l'échelle.
La figure 1 représente des dispositif et procédé classiques de protection de données confidentielles contenues dans la mémoire.
Les figures 2A et 2B représentent des dispositifs de protection de données
-9confidentielles contenues dans une mémoire, destinés à empêcher des accès et manipulation de données non autorisés, selon différents modes de réalisation de la présente invention.
La figure 3 est un organigramme d'un procédé de protection de données confidentielles représentatif selon différents modes de réalisation de la présente invention.
Dans la description détaillée des modes de réalisation préférés suivante, pour des besoins d'explication, des détails spécifiques sont mis en évidence dans le but d'assurer la compréhension de l'invention. Toutefois, il va être évident pour le spécialiste de la technique que l'invention peut être mise en œuvre sans ces détails. En outre, il va être évident pour le spécialiste de la technique que des modes de réalisation de la présente invention décrits ci-dessous peuvent être mis en œuvre suivant une variété de manières, telles que par un processus, un appareil, un système, un dispositif ou un procédé sur un support tangible pouvant être lu par ordinateur.
Des composants ou modules, montrés sur les schémas sont représentatifs d'exemples de modes de réalisation de l'invention et sont destinés à ne pas obscurcir l'invention. Il doit aussi être compris que, à travers cette description, des composants peuvent être décrits comme des unités fonctionnelles distinctes qui peuvent comprendre des unités secondaires. Il va être évident pour les spécialistes de la technique que différents composants, ou des parties de ceux-ci, peuvent être divisés en composants distincts ou peuvent être intégrés ensemble, comprenant intégrés à l'intérieur d'un dispositif ou composant unique. Il doit être noté que des fonctions ou opérations décrites ici peuvent être mises en œuvre sous la forme de composants. Des composants peuvent être mis en œuvre sous forme logicielle, matérielle ou d'une association des deux.
En outre, des liaisons entre les composants ou dispositifs sur les figures ne sont pas destinées à être limitées à des liaisons directes. Au lieu de cela, des données entre ces composants peuvent être modifiées, reformatées ou changées d'une autre manière par des composants intermédiaires. De plus, des liaisons supplémentaires ou moins de liaisons peuvent être utilisées. Il doit aussi être noté
- 10que les termes couplé, raccordé” ou couplé de manière à communiquer” doivent être compris comme comportant des liaisons directes, des liaisons indirectes au moyen d'un ou plusieurs dispositifs intermédiaires et des liaisons sans fil.
La référence, dans la description à un premier mode de réalisation, un mode de réalisation préféré, un mode de réalisation, ou des modes de réalisation signifie qu'une particularité, structure, caractéristique, ou fonction spécifique décrite en relation avec le mode de réalisation est contenue dans au moins un premier mode de réalisation de l’invention et peut être dans plusieurs modes de réalisation. De plus, les aspects des phrases notées précédemment à différents emplacements de la spécification ne se réfèrent pas nécessairement toutes au mêmes mode de réalisation ou modes de réalisation.
L'utilisation de certains termes à différents emplacements dans la description est destinée à la représentation et ne doit pas être considérée comme limitative. Un sendee, une fonction ou une ressource n'est pas limité à un sendee, une fonction, ou une ressource unique ; l'utilisation de ces termes peut se référer à un groupement de sendees, fonctions ou ressources associés, qui peuvent être répartis ou regroupés. En outre, les termes de mémoire, base de données, base d’informations, mémoire de données, tables, matériel, et analogue peuvent être utilisés ici afin de désigner un composant ou des composants de dispositif dans lesquels des informations peuvent être entrées ou enregistrées d'une autre manière.
En outre, il doit être noté que : (i) certaines étapes peuvent être mises en œuvre de manière optionnelle ; (2) des étapes peuvent ne pas être limitées à l'ordre spécifique défini ici ; (3) certaines étapes peuvent être mises en œuvre suivant des ordres différents ; et (4) certaines étapes peuvent être réalisées de manière simultanée.
Des modes de réalisation proposent ici une contre-mesure efficace de protection contre des attaques de faille et de protection de la confidentialité des données traitées sur des circuits électroniques qui mettent en œuvre des opérations cryptographiques, comportant la cryptographie ECC, pour des applications associées à la sécurité. Il doit être compris que des modes de réalisation décrits ici peuvent être mis en œuvre par une machine d'état qui utilise de la logique câblée ou sous forme logicielle qui exécute des instructions en utilisant une unité de traitement.
La cryptographie ECC est basée sur une multiplication d'une valeur, P, qui représente un point d'une courbe elliptique, et d’un nombre scalaire, d, qui sert d’entier secret qui doit être protégé d'un accès non autorisé.
Des modes de réalisation de la présente invention modifient la production d'une clef publique Q et, ainsi, la représentation d’une valeur secrète de la clef privée d. Dans certains modes de réalisation, ceci est réalisé en découpant la clef privée d d’une manière telle que d comprend deux composantes qui représentent ensemble d. Par exemple, au lieu de définir Q comme une multiplication de d et P, Q peut être défini comme une multiplication de variables mj, m2 et P, dans laquelle la clef privée d est remplacée par le produit de mj et ni2. Il doit être noté que, alors que pour des besoins d'explication le produit de variables nu et m2 est décrit ici, il doit être compris que toutes combinaisons de celles-ci et de nombre de variables et/ou de fonctions peuvent être utilisées pour représenter la clef privée d.
Les figures 2A et 2B représentent des dispositifs 200, 250 destinés à protéger des données confidentielles mémorisées dans une mémoire afin d'empêcher un accès non autorisé et une manipulation de données, selon différents modes de réalisation de la présente invention. Comme cela est représenté sur les figures 2A et 2B, dans certains modes de réalisation, les variables nu et m? peuvent être mémorisées, par exemple, dans un registre ou une mémoire 214 du dispositif NVSRAM 210 et peuvent être manipulées consécutivement, par exemple, dans une mémoire MAA 204 d'un dispositif MAA 202, de telle sorte que, à un instant donné quelconque soit nu soit m2 est présent dans la mémoire MAA 204, mais pas les deux ensembles. En effet, ceci assure qu'au moins une première partie de la clef privée d est mémorisée dans la mémoire sécurisée 214 et au moins une partie de la clef privée d est mémorisée hors de la mémoire sécurisée 214. En résultat, si l'une ou l'autre des variables nu et m2 est erronée, l’erreur résultante va être inutile pour l'attaquant, puisqu'une seule des deux variables est insuffisante pour récupérer la clef privée d.
En résumé, une séquence d'utilisation des composantes secrètes de la clef privée d assure l'effacement d'une première composante alors que l'autre, même si elle n'est pas effacée, devient inutile compte tenu du caractère incomplet de la clef privée d.
Comme exemple, si la composante mi (ou m?) de la clef privée d est erronée du fait d'une erreur relativement faible e, alors l'erreur résultante, e multipliée par un nombre relativement important hl, devient si importante qu’il est théoriquement impossible de récu pérer des informations concernant la clef privée, d, à partir de cela, en utilisant une attaque en force pure ou d'autres procédés. Ceci peut être représenté par les équations de signature ECSDA suivantes. La signature erronée est :
s n- -j- (mÇ ± e) (r · mp 1 mod n «·« = -l· (d/rfi2 ± e) (r w)) mod ri, <3- <s ~~ à: -l· (,«' ± c · ms) r) rnod n dans lesquelles s est la.
signature, H représente la fonction hachage d'un message, représente une première partie de la signature.
Dans des modes de réalisation, par exemple, après chaque production de signature, les composantes nii et hl peuvent être modifiées ou actualisées en utilisant un type quelconque d'opération mathématique afin de modifier la représentation secrète de manière à rendre plus aléatoire les opérations et calculs.
Comme exemple, la variable πη peut être divisée par un nombre aléatoire, R, et la variable m3 peut être multipliée par ce nombre aléatoire, de telle sorte qu’ici, le produit irn * m2 reste égal à la clef privée d. Dans certains modes de réalisation, afin d’améliorer davantage la sécurité de dispositif, des variables mi et ni2 peuvent être nouvellement produites afin de fournir différents nombres à différents instants. De manière avantageuse, lorsqu'elles sont associées avec le nombre aléatoire, R, ceci conduit à un nombre infini de combinaisons pour πη et m2 pour une clef privée donnée quelconque, empêchant, ainsi, le risque qu'un attaquant puisse utiliser nr. ou m2 pour récupérer des informations confidentielles concernant une clé privé spécifique en utilisant des attaques récursives bit à bit sur
- 13 les deux variables. Il doit être compris que d'autres opérations peuvent être utilisées afin de produire des composantes de d, par exemple, mj = irn/R mod n et m2 :::: m2 * R mod n, afin, par exemple, de se protéger contre des attaques récursives.
En résumé, dans le cas d'une source DRS, les données dans la mémoire MAA 204 ne laissent fuir aucune information secrète du fait que les variables rm ou m2, mais pas les deux ensemble, peuvent être trouvées dans la mémoire MAA 204 .Toutefois, comme cela a été démontré précédemment, les deux variables mj et un vont être nécessaires pour récupérer la clef privée d.
Dans certains modes de réalisation, puisqu’en modifiant ηη ou m2, le secret n’est pas représenté de la même manière d'une actualisation à une autre, ceci conduit à un principe de transformation aléatoire de signatures physiques qui, comme avantage supplémentaire, constitue une contre-mesure efficace contre les attaques par canal auxi liaire sur la clef privée, telle que par analyse différentielle de la consommation d’énergie (DPA, de l’anglais « differential power analysis ») ou analyse de la consommation d'énergie par corrélation (CPA, de l’anglais « correlation power analysis »).
Comme cela va être évident pour le spécialiste de la technique, les modes de réalisation présentés ici offrent différents avantages supplémentaires. En premier, les clefs de cryptage ECC sont relativement plus petites que, par exemple, les clefs RSA. Par conséquent, le stockage des variables mi et m2 peut nécessiter uniquement, par exemple, 1,5 ou 2 fois plus d'espace que la clef standard ellemême. En second, la quantité de calculs supplémentaires au cours de la production de signature est relativement faible puisqu'elle peut nécessiter uniquement une multiplication supplémentaire, par exemple, une multiplication modulaire, qui peut conduire à une augmentation globale de 1 % de la charge de calcul. Par conséquent, les calculs supplémentaires au cours de la production de clef ne représentent pas une charge importante pour la plupart des cas d'utilisation.
Dans certains modes de réalisation, le dispositif NVSRAM 210 peut produire ses propres paires de clefs privées et publiques, de telle sorte que, plutôt que de produire une clef privée d, des variables mj et m2 puis Q peuvent être
- 14produits. En résultat, la clef privée d n'a jamais besoin d'exister en el le-même.
Dans certains modes de réalisation, des calculs et ainsi, des spécifications d'empreinte de mémoire peuvent être davantage réduits en utilisant des variables nii et m2 qui sont de longueurs plus courtes que la clef privée elle-même. Par exemple, pour une clef privée de 256 bits, m. et m2 n'ont pas à présenter une longueur de 256 bits, mais peuvent plutôt présenter des tailles réduites, par exemple, de seulement 128 bits ou 192 bits. Il doit être compris que dans le but de créer des clefs suffisamment résistantes, la valeur du nombre de bit de clef ne doit pas être réduite de manière arbitraire mais un compromis doit être fait sur la base de la mise en œuvre réelle.
La figure 3 est un organigramme d'un procédé de protection de données confidentielles représentatif selon différents modes de réalisation de la présente invention. Le procédé 300 de protection des données confidentielles commence à l'étape 302 lorsqu'une valeur secrète qui est associée à une clef publique est reçue et traitée, par exemple, par un dispositif sécurisé, dans le but d'obtenir une pluralité de paramètres d'une fonction, de telle sorte qu'au moins deux de la pluralité de paramètres de la fonction sont nécessaires pour récupérer la valeur secrète.
A l'étape 304, la pluralité de paramètres est mémorisée dans une mémoire sécurisée dans le dispositif sécurisé, par exemple, un dispositif de mémoire NVSRAM.
A l'étape 306, dans un premier temps, un premier sous-ensemble de paramètres à partir de la pluralité de paramètres est fourni à une mémoire non sécurisée, par exemple, une mémoire MAA, afin d'exécuter, à l'étape 308, un certain nombre d'opérations cryptographiques sur le premier sous-ensemble de paramètres.
A l'étape 310, dans un deuxième temps, un deuxième sous-ensemble de paramètres est fourni à la mémoire non sécurisée afin d’exécuter, à l'étape 312, un certain nombre d'opérations cryptographiques sur le deuxième sous-ensemble de paramètres.
A l'étape 314, en réponse à une manipulation, par exemple, à la détection
-15d'une tentative d'effraction, des données sont effacées à partir de la mémoire sécurisée (comme cela est représenté sur les figures 2A et 2B par l'instruction d'effacement logiciel 230), de telle sorte, que sans les données effacées la fonction ne peut pas être récupérée ni à partir de la mémoire sécurisée ni de la mémoire non sécurisée.
Enfin, à l’étape 316, la fonction est utilisée afin de calculer la clef publique.
Des aspects de la présente invention peuvent être codés sur un ou plusieurs supports non transitoires pouvant être lus par ordinateur par des instructions destinées à un ou plusieurs processeurs ou unités de traitement afin de provoquer la mise en œuvre des étapes. Il doit être noté que le ou les supports non transitoires pouvant être lus par ordinateur peuvent comporter une mémoire volatile et non volatile. Il doit être noté que des variantes de mise en œuvre sont possibles, comportant une mise en œuvre matérielle ou une mise en œuvre logicielle/matérielie. Des fonctions mises en œuvre de manière matérielle peuvent être réalisées en utilisant des circuits ASiC, des réseaux programmables, des circuits de traitement de signal numérique ou analogue. Par conséquent, les termes moyen dans l'une quelconque des revendications sont destinés à couvrir à la fois des mises en œuvre logicielles et matérielles. De manière similaire, le terme support ou supports pouvant être lus par ordinateur tel qu'utilisé ici comporte des supports logiciels et/ou matériels à l'intérieur desquels un programme d'instructions est mis en œuvre, ou une association de ceux-ci. Avec ces variantes de mise en œuvre l'esprit, il doit être compris que les figures et la description associée fournissent des informations fonctionnelles nécessaires à un spécialiste de la technique afin d'écrire un code de programme (c'est-à-dire, un logiciel) et/ou de fabriquer des circuits (c'est-à-dire, un matériel) de manière à exécuter le traitement requis.
Il doit être noté que des modes de réalisation de la présente invention peuvent, en outre, se rapporter à des produits informatiques avec un support non transitoire tangible pouvant être lu par ordinateur qui comporte un code informatique destiné à exécuter différentes opérations mises en œuvre par ordinateur. Les support et code informatique peuvent être ceux définis de manière
-16 spécifique, construits pour les besoins de la présente invention, ou peuvent être du type connu ou disponible pour les spécialistes de la technique connexe. Des exemples de supports tangibles pouvant être lus par ordinateur comportent, mais ne sont pas limités à cela : des supports magnétiques tels que des disques durs, des disquettes et des bande magnétique ; des supports optiques tels que des CD-ROM et des dispositifs holographiques ; des supports magnéto-optiques ; et des dispositifs matériels qui sont configurés de manière spécifique afin de mémoriser ou de mémoriser et d’exécuter un code informatique, tels que des circuits intégrés spécifiques à l'application (ASIC), des dispositifs logiques programmables (PLD), des dispositifs de mémoire instantanée et des dispositifs de mémoire RAM et ROM. Des exemples de code informatique comportent du code machine, tel que produit par un compilateur et des fichiers contenant du code de niveau supérieur qui sont exécutés par un ordinateur en utilisant un interpréteur. Des modes de réalisation de la présente invention peuvent être mis en œuvre globalement ou en partie sous la forme d'instructions pouvant être exécutées par une machine qui peuvent être dans des modules de programme qui sont exécutés par un dispositif de traitement. Des exemples de modules de programme comportent des librairies, des programmes, des sous-programmes, des codes objets, des composants et des structures de données. Dans des environnements de calculs répartis, des modules de programme peuvent être situés physiquement à des emplacements qui sont locaux, distant, ou les deux.
Il va être évident pour un spécialiste de la technique qu'aucun dispositif de calcul ou langage de programmation n'est critique pour la pratique de la présente invention. Il va aussi être évident pour un spécialiste de la technique qu'un certain nombre des éléments décrits précédemment peuvent être physiquement et/ou fonctionnellement séparés en modules secondaires ou associés entre eux.
Il va être apprécié par les spécialistes de la technique que les précédents exemples et modes de réalisation sont donnés à titre d’exemple et ne limitent pas la portée de la présente invention. II doit être considéré que toutes permutations, améliorations, équivalents, combinaisons et perfectionnements de celle-ci qui sont évidents pour les spécialistes de la technique à la lecture des spécifications et à l'étude des dessins sont contenus dans l'esprit réel et la portée de la présente invention. Il doit être noté que des éléments des revendications suivantes peuvent être agencés différemment, comportant le fait de présenter des dépendances, configurations et combinaisons multiples. Par exemple, dans certains modes de 5 réalisation, le sujet principal des différentes revendications peut être associé à d’autres revendications.
Références numériques et légendes des figures figure 1
130 Instruction d'effacement logiciel
106 Mémoire
114 Mémoire
104 Secret
Technique Antérieure
Figure 2A, Figure 2 B
230 Instruction d'effacement logiciel
Figure 3
302 Sur un dispositif sécurisé, traitement d'une valeur secrète associée à une clef publique afin d'obtenir une pluralité de paramètres d’une fonction de telle sorte qu'au moins deux des paramètres sont nécessaires afin de récupérer la valeur secrète
304 Mémorisation de la pluralité de paramètres dans une mémoire sécurisée dans le dispositif sécurisé
306 Dans un premier temps, fourniture d'un premier sous-ensemble de paramètres à partir de la pluralité de paramètres à une mémoire non sécurisée
308 Utilisation de la mémoire non sécurisée afin d'exécuter une ou plusieurs opérations cryptographiques sur le premier sous-ensemble de paramètres
310 Dans un deuxième temps, fourniture d'un deuxième sous-ensemble de paramètres à partir de la pluralité de paramètres à une mémoire non sécurisée
312 Utilisation de la mémoire non sécurisée afin d'exécuter une ou plusieurs opérations ciyptographiques sur le deuxième sous-ensemble de paramètres
314 En réponse à la détection d'une manipulation, effacement des données de la mémoire sécurisée, de telle sorte que sans les données effacées, la fonction ne peut pas être récupérée de la mémoire non sécurisée
316
Utilisation de la fonction afin de calculer la clef publique

Claims (9)

  1. REVENDICATIONS
    1. Procédé de protection de données confidentielles, le procédé comprenant :
    au niveau d'un dispositif sécurisé, le traitement (302) d'une valeur secrète qui est associée à une clef publique afin d'obtenir une pluralité de paramètres d'une fonction de telle sorte qu'au moins deux de la pluralité de paramètres de la fonction sont nécessaires afin de récupérer la valeur secrète ;
    la mémorisation (304) de la pluralité de paramètres dans une mémoire sécurisée (214) dans le dispositif sécurisé ;
    dans un premier temps (306), la fourniture, à partir de la pluralité de paramètres, d’un premier sous-ensemble de paramètres à une mémoire non sécurisée (204) afin d'exécuter une ou plusieurs opérations cryptographiques sur le premier sous-ensemble de paramètres ;
    dans un deuxième temps (310), la fourniture, à partir de la pluralité de paramètres, d’un deuxième sous-ensemble de paramètres à la mémoire non sécurisée afin d’exécuter une ou plusieurs opérations cryptographiques sur le deuxième sous-ensemble de paramètres ;
    en réponse à la détection d'une manipulation, l’effacement (314) des données de la mémoire sécurisée, de telle sorte que sans les données effacées, la fonction ne peut pas être récupérée que ce soit à partir de la mémoire sécurisée ou de la mémoire non sécurisée ; et l'utilisation (316) de la fonction afin de calculer la clef publique.
  2. 2. Procédé selon la revendication 1, comprenant, en outre, l'actualisation d'au moins certains de la pluralité de paramètres de la fonction afin d'obtenir une fonction modifiée à partir de laquelle la valeur secrète peut être récupérée.
  3. 3. Procédé selon la revendication 1 ou 2, dans lequel la mémoire non sécurisée (204) est externe au dispositif sécurisé.
  4. 4. Procédé selon l'une quelconque des revendications 1 à 3, dans
    -2lequel la valeur secrète est un entier.
  5. 5. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel la manipulation est indicative d'une parmi au moins l'une d'une attaque logicielle et d'une attaque matérielle.
  6. 6. Procédé selon Tune quelconque des revendications 1 à 5, dans lequel le calcul de la clef publique comprend l'utilisation d'une opération de cryptographie ECC.
  7. 7. Procédé selon l'une quelconque des revendications 1 à 6, dans lequel un ou plusieurs de la pluralité de paramètres présente une longueur en bits qui est inférieure à la longueur en bits de la valeur secrète.
  8. 8. Dispositif sécurisé (210) destiné à protéger des données confidentiel les, comprenant des moyens de traitement agencés de manière à traiter une valeur secrète qui est associée à une clef publique afin d'obtenir une pluralité de paramètres d'une fonction de telle sorte qu'au moins deux de la pluralité de paramètres de la fonction sont nécessaires afin de récupérer la valeur secrète ;
    une mémoire sécurisée (214) destinée à mémoriser la pluralité de paramètres ;
    dans lequel, les moyens de traitement sont, en outre, agencés de manière, dans un premier temps, à fournir, à partir de la pluralité de paramètres, un premier sous-ensemble de paramètres à une mémoire non sécurisée (204) afin d'exécuter une ou plusieurs opérations cryptographiques sur le premier sousensemble de paramètres ;
    dans un deuxième temps, à fournir, à partir de la pluralité de paramètres, un deuxième sous-ensemble de paramètres à la mémoire non sécurisée afin d'exécuter une ou plusieurs opérations cryptographiques sur le deuxième sousensemble de paramètres ;
    en réponse à la détection d'une manipulation, à effacer les données de la mémoire sécurisée, de telle sorte que sans les données effacées, la fonction ne peut pas être récupérée que ce soit à partir de la mémoire sécurisée ou de la mémoire non sécurisée ; et à utiliser la fonction afin de calculer la clef publique.
  9. 9. Produit formant programme informatique comprenant des instructions destinées à exécuter les étapes selon l'une quelconque des revendications 1 à 7.
FR1857571A 2018-08-21 2018-08-21 Dispositifs et procedes de masquage d'operations de cryptographie ecc Active FR3085215B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1857571A FR3085215B1 (fr) 2018-08-21 2018-08-21 Dispositifs et procedes de masquage d'operations de cryptographie ecc
US16/547,385 US20200067693A1 (en) 2018-08-21 2019-08-21 Systems and methods for masking ecc operations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1857571A FR3085215B1 (fr) 2018-08-21 2018-08-21 Dispositifs et procedes de masquage d'operations de cryptographie ecc

Publications (2)

Publication Number Publication Date
FR3085215A1 true FR3085215A1 (fr) 2020-02-28
FR3085215B1 FR3085215B1 (fr) 2020-11-20

Family

ID=65685457

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1857571A Active FR3085215B1 (fr) 2018-08-21 2018-08-21 Dispositifs et procedes de masquage d'operations de cryptographie ecc

Country Status (2)

Country Link
US (1) US20200067693A1 (fr)
FR (1) FR3085215B1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11366899B2 (en) * 2020-02-18 2022-06-21 Nuvoton Technology Corporation Digital fault injection detector

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030194086A1 (en) * 1999-01-11 2003-10-16 Lambert Robert J. Method for strengthening the implementation of ECDSA against power analysis

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PT885417E (pt) * 1996-02-09 2002-11-29 Digital Privacy Inc Sistema de controlo/criptografia de acesso
US6279110B1 (en) * 1997-11-10 2001-08-21 Certicom Corporation Masked digital signatures
JP7316283B2 (ja) * 2018-01-16 2023-07-27 エヌチェーン ライセンシング アーゲー デジタル署名されたデータを取得するためのコンピュータにより実施される方法及びシステム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030194086A1 (en) * 1999-01-11 2003-10-16 Lambert Robert J. Method for strengthening the implementation of ECDSA against power analysis

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BINU V P ET AL: "Threshold Multi Secret Sharing Using Elliptic Curve and Pairing", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 31 March 2016 (2016-03-31), XP080963385 *
KEVIN SELF: "SRAM-Based Microcontroller Optimizes Security", 27 June 2003 (2003-06-27), XP055600525, Retrieved from the Internet <URL:https://pdfserv.maximintegrated.com/en/an/AN2033.pdf> [retrieved on 20190628] *

Also Published As

Publication number Publication date
US20200067693A1 (en) 2020-02-27
FR3085215B1 (fr) 2020-11-20

Similar Documents

Publication Publication Date Title
Bruinderink et al. Differential fault attacks on deterministic lattice signatures
US9990180B2 (en) Stochastic processing
Conte de Leon et al. Blockchain: properties and misconceptions
EP3457620B1 (fr) Procédé d&#39;exécution d&#39;un code binaire d&#39;une fonction sécurisée par un microprocesseur
US9571289B2 (en) Methods and systems for glitch-resistant cryptographic signing
US20090319769A1 (en) Discrete key generation method and apparatus
JP5693927B2 (ja) 故障利用攻撃の検出方法及び検出装置
EP1745366A1 (fr) Procede de protection d&#34;un ensemble cryptographique par masquage homographique
TWI631462B (zh) 確保機板上匯流排交易安全的計算系統和計算設備實現的方法以及非暫時性的電腦可讀取媒體
US20070168669A1 (en) Anti-tamper system
CN109495270A (zh) 数字签名生成中的临时乱数到消息的结合
Lee et al. Security issues on the CNG cryptography library (Cryptography API: Next Generation)
US20170322836A1 (en) Automatic correction of cryptographic application program interfaces
FR3085215A1 (fr) Dispositifs et procedes de masquage d&#39;operations de cryptographie ecc
Mantri et al. Pre-encryption and identification (PEI): an anti-crypto ransomware technique
EP2326042A1 (fr) Procédé de détection d&#39;une attaque par injection de fautes
US20070168680A1 (en) Anti-tamper system
EP2336931B1 (fr) Procédé de vérification de signature
FR3069993A1 (fr) Dispositifs et procedes de masquage d&#39;operations de chiffrement rsa
Frieslaar et al. Investigating multi-thread utilization as a software defence mechanism against side channel attacks
FR3098613A1 (fr) Procede de gestion du fonctionnement d’au moins un logiciel applicatif chiffre et circuit integre correspondant
US20160344753A1 (en) Method for instruction set morphing to inhibit malicious code injection
FR3087022A1 (fr) Systèmes et procédés cryptographiques résistant à des attaques par défaut
Calle Viera et al. Fault Attacks Sensitivity of Public Parameters in the Dilithium Verification
US20210399880A1 (en) Method for setting permissions for cryptographic keys, computer program and cryptographic processing system

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20200228

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6