FR2976147A1 - Schema d'entrelacement de donnees pour une memoire externe d'un microcontroleur securise - Google Patents

Schema d'entrelacement de donnees pour une memoire externe d'un microcontroleur securise Download PDF

Info

Publication number
FR2976147A1
FR2976147A1 FR1154694A FR1154694A FR2976147A1 FR 2976147 A1 FR2976147 A1 FR 2976147A1 FR 1154694 A FR1154694 A FR 1154694A FR 1154694 A FR1154694 A FR 1154694A FR 2976147 A1 FR2976147 A1 FR 2976147A1
Authority
FR
France
Prior art keywords
integrity
data
words
word
external memory
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
FR1154694A
Other languages
English (en)
Other versions
FR2976147B1 (fr
Inventor
Alain Christophe Rollet
Vincent Victor Alfred Debout
Yann Yves Rene Loisel
Frank Lhermet
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 FR1154694A priority Critical patent/FR2976147B1/fr
Priority to CN201210172262.7A priority patent/CN102855161B/zh
Priority to US13/483,669 priority patent/US10797857B2/en
Publication of FR2976147A1 publication Critical patent/FR2976147A1/fr
Application granted granted Critical
Publication of FR2976147B1 publication Critical patent/FR2976147B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory

Landscapes

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

Abstract

Divers modes de réalisation de la présente invention concernent des systèmes, des dispositifs et des procédés d'entrelacement de données de charge utile et de données de contrôle d'intégrité dans une mémoire externe interfacée avec un microcontrôleur pour améliorer la vérification d'intégrité des données, accroître la confidentialité des données et économiser la mémoire interne. Une pluralité de mots de données et une pluralité d'adresses logiques sont reçues pour le stockage dans la mémoire externe. Chaque mot de données est utilisé pour générer un mot d'intégrité respectif sur la base d'un procédé de vérification d'intégrité, tandis que l'adresse logique associée est traduite en une première adresse physique pour le mot de données et une seconde adresse physique pour le mot d'intégrité dans la mémoire externe selon un procédé de mappage de données. Les mots de données peuvent être chiffrés avant d'être stockés dans la mémoire externe dans le microcontrôleur sécurisé. Les adresses physiques pour les mots de données et les mots d'intégrité associés sont entrelacées dans la mémoire externe, et parfois entrelacées dans un schéma périodique. En particulier, chaque mot de données peut être associé à un sous-mot d'intégrité inclus dans un mot d'intégrité ayant la même longueur que celle d'un mot de données. La mémoire externe peut être une ROM, une RAM ou une mémoire flash, et peut comporter des régions dédiées pour les mots de données et les mots d'intégrité, respectivement.

Description

SCHEMA D'ENTRELACEMENT DE DONNEES POUR UNE MEMOIRE EXTERNE D'UN MICROCONTROLEUR SECURISE
ARRIERE-PLAN A. Domaine technique La présente invention concerne généralement un microcontrôleur sécurisé utilisant une mémoire externe, et plus particulièrement des procédés, des systèmes et des dispositifs pour effectuer une vérification d'intégrité en entrelaçant des données de charge utile et des données de contrôle d'intégrité dans une mémoire externe interfacée avec un microcontrôleur sécurisé.
B. Arrière-plan de l'invention Un microcontrôleur est normalement un circuit intégré unique comprenant un coeur d'unité centrale de traitement (CPU), une mémoire, et des périphériques d'entrée/sortie (E/S). Un microcontrôleur sécurisé est utilisé pour des applications qui impliquent des opérations de confiance sur des actifs de valeur dans un environnement non sécurisé où un voleur ou un pirate informatique peut avoir accès à des coeurs de processeur, des dispositifs de mémoire ou des périphériques d'El S qui sont utilisés pour communiquer et traiter des données sensibles. Ces données sensibles peuvent inclure des numéros de compte, des codes d'accès, un numéro d'identification personnel (PIN), des clés cryptographiques, des transactions financières/ soldes de compte, la gestion des droits, et le comptage (par ex., énergie, unités). En particulier, ces données sensibles peuvent être des programmes ou
des instructions employés pour contrôler le coeur de CPU ou les périphériques d'E/S. Diverses fonctions de sécurité ont été employées pour éviter l'accès non autorisé à ces données sensibles. A ce jour, le microcontrôleur sécurisé a été appliqué dans une large gamme d'applications cruciales du point de vue de la sécurité comme la banque électronique, les transactions commerciales, et le contrôle d'accès à la TV payante, ou toute application qui requiert la protection de logiciels et de procédés propriétaires. Etant donné que les données sensibles peuvent être stockées dans une mémoire externe du microcontrôleur sécurisé, la confidentialité et l'intégrité du contenu de la mémoire sont deux menaces distinctes qui doivent être prises en compte. La première menace provoque la divulgation d'informations sensibles (c'est-à-dire, la confidentialité des données) où des données confidentielles sont révélées et la faiblesse d'un programme est exposée. La seconde menace provoque une modification du comportement de l'application (c'est-à-dire, l'intégrité des données) qui implique que des programmes et des données soient modifiés dans la mémoire externe et se solde par un problème quant à l'intégrité des données.
Le microcontrôleur sécurisé est conçu pour offrir un niveau de sécurité aux données sensibles stockées dans la mémoire externe. Par exemple, la sécurité physique peut être établie contre la vérification par une protection anti-fraude. Toutefois, cette solution peut être onéreuse et ne couvre pas de nouvelles méthodes d'attaque basées sur l'injection de fautes à partir d'un pépin dans l'alimentation électrique, de la lumière, d'un laser synchrone ou asynchrone, ou de particules radioactives. Les fonctions de sécurité peuvent également comprendre le chiffrement de mémoire où les données sensibles stockées dans la mémoire externe sont chiffrées ou déchiffrées en utilisant des clés cryptographiques dans le microcontrôleur sécurisé pendant le processus d'échange de données. Les clés cryptographiques sont stockées localement à l'intérieur du microcontrôleur sécurisé. En conséquence, le périmètre de sécurité physique peut être limité au microcontrôleur tandis que la mémoire externe et ses bus de communication peuvent rester exposés physiquement. Il convient de noter que généralement le chiffrement ne fournit pas en soi une protection d'intégrité suffisante. Par exemple, un algorithme de chiffrement est utilisé avec un mode de livre de codes électronique (ECB), et aucune modification n'est détectée sur un texte chiffré corrompu dans la mémoire externe. Le texte chiffré corrompu est déchiffré en texte en clair, et en raison de la modification/corruption de données réelle, le texte en clair est associé à une valeur différente par rapport à une valeur attendue. Toutefois, étant donné que l'algorithme de déchiffrement même ne signale aucune erreur, le texte en clair résultant est toujours considéré corne une valeur légitime. Le format de données sous-jacent peut être utilisé pour identifier une corruption de données, et pour certains formats de données, cette corruption peut être difficile à identifier. Un exemple typique d'intégrité de données insuffisante dans un microcontrôleur est une transaction financière où seul le montant d'argent est chiffré. Un texte chiffré modifié conduirait à un texte en clair corrompu, pouvant correspondre à un montant supérieur au montant réel.
Une intégrité de données insuffisante se produit également dans la protection d'instructions du microcontrôleur stockées dans la mémoire sur la base d'un chiffrement de code. Lorsque la mémoire est trafiquée, une instruction de texte chiffré modifiée aléatoirement serait déchiffrée en une instruction de texte en clair modifiée qui ne correspond pas à l'instruction de texte en clair originale. Cette instruction de texte en clair erronée peut être considérée comme légitime selon le jeu d'instructions du microprocesseur particulier et sa couverture d'un espace en clair. Par exemple, les instructions de coeur MIPS 4KSd ont une longueur de 32 bits. Seulement 56 % de toute instruction de 32 bits sont associés à des instructions de coeur valides, et les 44 % restants des instructions de 32 bits sont considérés par le microcontrôleur comme illicites et rejetés en émettant une exception de microcontrôleur. Dans un autre cas, un algorithme de chiffrement de 64 bits, comme la norme de chiffrement de données (DES), est utilisé pour traiter deux mots de 32 bits à la fois pour le chiffrement/ déchiffrement. Lorsqu'une instruction de texte chiffré de 64 bits est modifiée, le texte en clair déchiffré correspondant inclut deux mots de 32 bits, et la probabilité est d'approximativement 30 % pour que ces deux mots soient des instructions de coeur légitimes. En conséquence, la probabilité est de 70 % pour détecter une modification de texte chiffré et une instruction de 32 bits illicite dans un système DES de 64 bits corrompu.
Un contrôle d'intégrité des données est mis en oeuvre pour les données sensibles stockées dans la mémoire externe afin de détecter toute corruption volontaire ou involontaire entre ce qui a été envoyé à l'origine pour le stockage et ce qui est stocké dans la mémoire. Des procédés de vérification d'intégrité spécifiques sont utilisés pour générer des données de contrôle d'intégrité (c'est-à-dire, une étiquette ou une signature) pendant une opération d'écriture mémoire, et la validité des données stockées est vérifiée par leur cohérence avec les données de contrôle d'intégrité correspondantes pendant une opération de lecture mémoire. Le contrôle d'intégrité constitue une protection suffisante contre les attaques par injection de fautes, et les modules de contrôle d'intégrité peuvent être intégrés dans le microcontrôleur sécurisé pour garantir un niveau de confiance suffisant aux parties intéressées.
Plusieurs procédés de vérification d'intégrité peuvent être employés. Le procédé de vérification d'intégrité le plus simple est une vérification de parité pair/impair d'1 bit, dans lequel un bit de contrôle d'intégrité est généré pour maintenir une parité paire ou impaire parmi tous les bits dans les données. Des procédés de vérification d'intégrité alternatifs vont de simples procédés de contrôle par redondance cyclique (CRC) ou de code de correction/correcteur d'erreurs (ECC) à des procédés forts et éprouvés, comme le code d'authentification de message (MAC). En dépit de leur faible résistance de sécurité, les procédés de vérification d'intégrité simples sont en général suffisants pour protéger contre la corruption involontaire ; toutefois, les procédés forts et éprouvés sont obligatoires pour la protection contre la corruption volontaire ou active. Un procédé simple (par ex., ECC) n'implique normalement pas de clés secrètes, donc les attaqueurs peuvent facilement générer des données d'intégrité cohérentes en modifiant les données sensibles. Un élément secret (c'est-à-dire, une clé cryptographique) peut être incorporé dans des procédés de vérification d'intégrité forts et éprouvés. Les attaqueurs sont empêchés de faire une modification facile étant donné que l'élément secret doit d'abord être reconstitué.
La figure 1 illustre un microcontrôleur sécurisé 102 s'interfaçant avec une mémoire chiffrée 104. Les préoccupations liées à la
confidentialité et à l'intégrité des données susmentionnées sont considérées dans ce microcontrôleur. Le microcontrôleur sécurisé 102 comprend un coeur de CPU 106, un contrôleur de mémoire 110, et des bus pour les données, les adresses et les clés. Les procédés pour la vérification d'intégrité, le chiffrement de données ou le déchiffrement de données sont incorporés dans le coeur de CPU 102. Pendant une opération d'écriture mémoire, les données originales sont chiffrées dans le coeur de CPU 106 en données de charge utile pour le stockage dans la mémoire 104. Pendant une opération de lecture mémoire, les données de charge utile de la mémoire 104 sont déchiffrées en données originales dans le coeur de CPU 106. Les données de contrôle d'intégrité sont générées et stockées habituellement dans une mémoire interne à l'intérieur du coeur de CPU 106 pendant une opération d'écriture mémoire, et extraites pour la vérification d'intégrité des données pendant une opération de lecture mémoire subséquente. Les données de contrôle d'intégrité sont stockées habituellement dans un emplacement dédié en utilisant des adresses de mémoire statique. Cette solution est appliquée dans de nombreux microcontrôleurs de l'art antérieur pour stocker leurs données de contrôle d'intégrité respectives, par ex., la valeur de hachage de référence dans le brevet US N° 5 708 274 et la valeur de vérification d'intégrité dans le brevet français N° 1 885 709. Cette solution conventionnelle peut requérir une utilisation intensive de mémoire interne, et par conséquent, peut être une solution onéreuse, même si le taux d'accès aux données est satisfaisant.
Résumé de l'invention Divers modes de réalisation de la présente invention concernent un microcontrôleur sécurisé utilisant une mémoire externe, et plus particulièrement des procédés, des systèmes et des dispositifs pour effectuer une vérification d'intégrité en entrelaçant des données de charge utile et des données de contrôle d'intégrité dans une mémoire externe interfacée avec un microcontrôleur sécurisé. Une pluralité de mots de données et une pluralité d'adresses logiques sont générés dans un microcontrôleur, et chaque mot de données est associé à une adresse logique. Chaque mot de données est utilisé pour générer un mot d'intégrité respectif sur la base d'un
procédé de vérification d'intégrité, tandis que l'adresse logique associée est traduite en une première adresse physique pour le mot de données et une seconde adresse physique pour le mot d'intégrité dans la mémoire externe. Les mots de données et les mots d'intégrité associés sont entrelacés dans la mémoire externe sur la base d'un procédé de mappage de données, et les adresses physiques pour les mots de données et d'intégrité sont déterminées dynamiquement. La mémoire externe peut être une ROM, une RAM ou une mémoire flash, et peut avoir des régions dédiées pour les mots de données et les mots d'intégrité, respectivement. Les mots de données et les mots d'intégrité sont entrelacés dans un schéma périodique dans la mémoire externe. En particulier, chaque mot de données peut être associé à un sous-mot d'intégrité, et plusieurs sous-mots d'intégrité forment un mot d'intégrité ayant la même longueur que celle d'un mot de données. Par conséquent, des mots de données associés alternent avec ce mot d'intégrité dans un schéma périodique. Le microcontrôleur utilisant une mémoire externe pour stocker les mots de données et d'intégrité est configuré pour générer deux adresses physiques dans la mémoire externe pour chaque mot de données et chaque mot d'intégrité associé. En particulier, un bloc de chiffrement et de protection d'intégrité intégré peut comprendre un traducteur d'adresse pour mettre en oeuvre un procédé de mappage de données, et un générateur de données de contrôle d'intégrité pour générer des mots d'intégrité. Les mots de données et les mots d'intégrité concernés sont stockés dans la mémoire externe. Pour l'utilisation dans un microcontrôleur sécurisé, le bloc de chiffrement et de protection d'intégrité intégré comprend également une pluralité de blocs de fonction pour le chiffrement/déchiffrement de données et le stockage temporaire de sous-mots d'intégrité. Certaines caractéristiques et avantages de la présente invention ont été décrits de manière générale dans cette section de résumé ; toutefois, des caractéristiques, avantages et modes de réalisation additionnels sont présentés ici ou seront évidents pour un homme du métier ordinaire au vu des dessins, du mémoire, et des revendications de celle-ci. En conséquence, il convient de comprendre
que la portée de l'invention ne doit pas être limitée par les modes de réalisation particuliers décrits dans cette section de résumé.
BREVE DESCRIPTION DES DESSINS Il va maintenant être fait référence aux modes de réalisation de l'invention, dont des exemples sont illustrés sur les figures jointes. Ces figures sont destinées à être illustratives, non limitatives. Bien que l'invention soit généralement décrite dans le contexte de ces modes de réalisation, il convient de comprendre que cela n'est pas destiné à limiter la portée de l'invention à ces modes de réalisation particuliers. La figure 1 illustre un microcontrôleur sécurisé s'interfaçant avec une mémoire externe où les préoccupations de sécurité et d'intégrité sont considérées. La figure 2 illustre un schéma de principe en exemple d'un système de microcontrôleur sécurisé comprenant un micro contrôleur sécurisé s'interfaçant avec une mémoire externe selon divers modes de réalisation de l'invention. La figure 3(a) illustre un procédé de génération et de stockage de mot de données et de mot d'intégrité s'entrelaçant dans la mémoire 20 externe selon divers modes de réalisation de l'invention. La figure 3(b) illustre un procédé d'extraction d'un mot de données et d'un mot d'intégrité d'une mémoire externe selon divers modes de réalisation de l'invention. La figure 4 illustre un schéma de principe en exemple du bloc de 25 chiffrement et de protection d'intégrité selon divers modes de réalisation de l'invention. La figure 5 illustre un schéma d'entrelacement de données en exemple dans la mémoire externe selon divers modes de réalisation de l'invention. 30 La figure 6 illustre un autre schéma d'entrelacement de données en exemple dans la mémoire externe selon divers modes de réalisation de l'invention. La figure 7 illustre un schéma d'entrelacement de données en exemple dans la mémoire externe selon divers modes de réalisation de 35 l'invention. La figure 8 illustre un procédé en exemple de mappage d'adresses logiques de données dans un bloc de données en adresses physiques dans la mémoire externe selon un schéma d'entrelacement de données selon divers modes de réalisation de l'invention. DESCRIPTION DETAILLEE DES MODES DE REALISATION PREFERES La présente invention concerne généralement un microcontrôleur sécurisé utilisant une mémoire externe, et plus particulièrement des procédés, des systèmes et des dispositifs pour effectuer une vérification d'intégrité en entrelaçant des données de charge utile et des données de contrôle d'intégrité dans une mémoire externe interfacée avec un microcontrôleur sécurisé.
Dans la description suivante, à des fins d'explication, des détails spécifiques sont exposés afin de procurer une bonne compréhension de l'invention. Toutefois, il sera évident pour un homme du métier que l'invention puisse être pratiquée sans ces détails. Un homme du métier reconnaîtra que les modes de réalisation de la présente invention, décrits ci-dessous, peuvent être effectués de diverses manières et en utilisant diverses structures. L'homme du métier reconnaîtra également que des modifications, applications, et modes de réalisation additionnels soient dans sa portée, de même que des domaines additionnels dans lesquels l'invention peut procurer une utilité. En conséquence, les modes de réalisation décrits ci-dessous sont illustratifs de modes de réalisation spécifiques de l'invention et sont destinés à éviter d'obscurcir l'invention.
La référence dans le mémoire à « un mode de réalisation » (point de vue quantitatif) ou « un mode de réalisation » (point de vue indéfini) signifie qu'une particularité, structure, caractéristique ou fonction particulière décrite en relation avec le mode de réalisation est incluse dans au moins un mode de réalisation de l'invention. L'apparition de l'expression « dans un mode de réalisation » (point de vue quantitatif), « dans un mode de réalisation » (point de vue indéfini), ou similaire à divers endroits dans le mémoire ne font pas forcément toutes référence au même mode de réalisation.
En outre, les connexions entre composants ou entre étapes de procédé sur les figures ne sont pas restreintes à des connexions qui sont effectuées directement. Au contraire, les connexions illustrées sur les figures entre composants ou étapes de procédé peuvent être modifiées ou sinon changées en y ajoutant des composants ou étapes de procédé intermédiaires, sans s'écarter des enseignements de la présente invention.
La figure 2 illustre un schéma de principe en exemple 200 d'un système de microcontrôleur sécurisé comprenant un microcontrôleur sécurisé 220 s'interfaçant avec une mémoire externe selon divers modes de réalisation de l'invention. Le microcontrôleur sécurisé 220 comprend un coeur de CPU 206, un bloc de chiffrement et de protection d'intégrité 208, un contrôleur de mémoire 210, un stockage de clé 212 et des bus pour les données, les adresses et les clés. Le bloc de chiffrement et de protection d'intégrité 208 est utilisé pour mettre en oeuvre un mappage d'adresses, un calcul de données d'intégrité, une vérification d'intégrité, un chiffrement de données et un déchiffrement de données. Dans divers modes de réalisation de la présente invention, des données de contrôle d'intégrité sont générées par le bloc 208 et stockées par la suite dans la mémoire chiffrée et à intégrité protégée 240 (c'est-à-dire, la mémoire externe 240) de sorte qu'un espace de mémoire interne dans le coeur de CPU 206 n'ait pas besoin d'être réservé pour des données de contrôle d'intégrité. En conséquence, le bloc de chiffrement et de protection d'intégrité 208 et le contrôleur de mémoire 210 sont ajustés pour générer et accéder à des adresses physiques dans la mémoire externe non seulement pour des données de charge utile mais également pour les données de contrôle d'intégrité correspondantes. Dans divers modes de réalisation de la présente invention, une gestion d'intégrité (par ex., ECC) est mise en oeuvre dans le bloc 208 plutôt que dans la mémoire externe 240 bien que certaines mémoires, comme flash NON-ET, puissent également fournir une gestion d'intégrité.
La mémoire externe 240 est partitionnée en au moins une région de contenu en clair 214, et au moins une région de contenu chiffré 216. Le contenu stocké dans la région de contenu chiffré 216 peut comprendre des données de charge utile et des données de contrôle d'intégrité. Les données de charge utile sont des programmes ou des données chiffrés associés à des informations confidentielles, par ex., des noms d'utilisateurs, des mots de passe, des transactions etc. Chaque donnée de contrôle d'intégrité est dérivée des données originales ou de données chiffrées (c'est-à-dire, données de charge utile) selon un procédé de vérification d'intégrité spécifique qui peut être propriétaire dans certains cas.
Les données de charge utile et les données de contrôle d'intégrité sont stockées comme mots de données de charge utile (c'est-à-dire, mots de données) et mots de données de contrôle d'intégrité (c'est-à-dire, mots d'intégrité) dans la mémoire externe 240, respectivement, et les longueurs de ces mots sont associées au type de mémoire et aux procédés pour le chiffrement et la vérification d'intégrité. Une solution opportune est de stocker les mots de données et les mots de données de contrôle d'intégrité dans leurs régions dédiées respectives dans la mémoire externe 240. Les mémoires à l'intérieur de plages d'adresses spécifiques sont configurées pour stocker les mots de données et les données de contrôle d'intégrité, respectivement. En conséquence, un mot de données et son mot d'intégrité associé sont stockés au niveau de deux cellules de mémoire qui peuvent être distantes physiquement l'une de l'autre et peuvent même être situées sur deux pages de mémoire distinctes. Dans divers modes de réalisation de la présente invention, les mots d'intégrité sont entrelacés avec les mots de données dans la mémoire externe 240 selon un schéma d'entrelacement de données régulier pour améliorer la performance. Le schéma d'entrelacement de données régulier simplifie le flux de données et évite le mécanisme de saut en récupérant les mots d'intégrité dans des emplacements de stockage d'intégrité dédiés qui sont adjacents aux emplacements de stockage de données associés. En particulier, le schéma d'entrelacement de données régulier est préféré pour les mémoires paginées, comme SDRAM, où le saut entre pages requiert un temps de commutation de page supplémentaire et dégrade le taux d'accès à la mémoire de manière significative. Dans un mode de réalisation, un schéma périodique est employé dans lequel tous les deux ou trois mots de données peuvent être entrelacés avec un mot d'intégrité associé directement à ces mots de données. Afin de mettre en oeuvre le schéma d'entrelacement de données régulier, le bloc de chiffrement et de protection d'intégrité 208 effectue un remappage automatique de la mémoire externe 240 de sorte que le coeur de CPU 206 puisse extraire des données et des programmes/instructions sans identifier les adresses pour les mots d'intégrité associés. La mémoire externe 240 est allouée pour stocker les données de charge utile et les données de contrôle d'intégrité dynamiquement. Dans
certains modes de réalisation, la mémoire externe 240 peut comprendre plus d'une mémoire parmi RAM, ROM et mémoire flash. Le microcontrôleur sécurisé 220 s'interface à diverses mémoires dans la mémoire externe 240 sans configurer de régions de données dédiées pour chaque mémoire. Comme plus d'une mémoire est impliquée, le mappage d'adresses pour certains schémas d'entrelacement de données est mis en oeuvre dynamiquement dans le bloc de chiffrement et de protection d'intégrité 208. Dans certains modes de réalisation, pendant une opération d'écriture mémoire, le coeur de CPU 206 fournit des données et des adresses logiques au bloc de chiffrement et de protection d'intégrité 208 qui chiffre en outre les données en données de charge utile en utilisant un procédé de chiffrement. Le procédé de chiffrement est basé sur les adresses logiques et une clé, et la clé est fixée ou générée aléatoirement par le coeur de CPU 206 et stockée dans le stockage de clé 212. Dans un mode de réalisation, le procédé de chiffrement est directement basé sur une adresse physique traduite depuis l'adresse logique. Les données de contrôle d'intégrité sont générées dans le bloc de chiffrement et de protection d'intégrité 208 en utilisant un procédé de vérification d'intégrité prédéterminé basé sur les données. Dans certains modes de réalisation, au moins une clé cryptographique est utilisée pour générer les données de contrôle d'intégrité. En plus de chiffrer les données et de générer les données de contrôle d'intégrité correspondantes, le bloc 208 traduit également les adresses logiques d'entrée en deux adresses physiques distinctes, une pour les données de charge utile et l'autre pour les données de contrôle d'intégrité. Le contrôleur de mémoire 210 identifie les adresses physiques dans la mémoire externe 240 et stocke les données de charge utile et les données de contrôle d'intégrité comme spécifié par les adresses physiques.
Dans certains modes de réalisation, pendant une opération de lecture mémoire, une adresse logique est fournie par le coeur de CPU 206 pour extraire des donnes de charge utile spécifiques de la mémoire externe chiffrée et à intégrité protégée 240. Le bloc de chiffrement et de protection d'intégrité 208 traduit l'adresse physique pour reconstituer deux adresses physiques pour les données de charge utile et les données de contrôle d'intégrité associées, respectivement. Le procédé utilisé dans ce processus de reconstitution d'adresse est similaire au
procédé utilisé pour traduire l'adresse logique lorsque les données ont besoin d'être stockées pendant l'opération d'écriture mémoire. Le contrôleur de mémoire 210 permet l'accès à des contenus de mémoire stockés aux adresses physiques spécifiées, et le bloc de chiffrement et de protection d'intégrité 208 est couplé pour recevoir les données de charge utile et les données de contrôle d'intégrité en provenance de la mémoire chiffrée et à intégrité protégée 240. Un procédé de déchiffrement peut être mis en oeuvre pour utiliser l'adresse logique et la clé stockée dans le stockage de clé 212 afin de reconstituer les données de charge utile tandis que les données d'intégrité associées sont extraites de la mémoire 240. Les données reconstituées à partir des données de charge utile sont traitées en utilisant le même procédé de vérification d'intégrité qui est utilisé auparavant pour générer les données de contrôle d'intégrité. Si les données de contrôle d'intégrité regénérées à partir des données reconstituées sont cohérentes avec les données de contrôle d'intégrité extraites de la mémoire externe 240, alors les données reconstituées sont valides et fournies par la suite au coeur de CPU 206 ; sinon, une erreur est reconnue et un matériel dédié est employé pour dresser une exception CPU sur la base de la politique de sécurité du microcontrôleur. Dans divers modes de réalisation de la présente invention, l'exception CPU peut être exploitée pour effacer les données sensibles, déclencher une interruption non masquable, écrire une valeur dans un registre à drapeaux, réinitialiser le microcontrôleur, ou exécuter un code dédié.
L'entrelacement de données augmente la rentabilité du microcontrôleur sécurisé. Dans un microcontrôleur sécurisé traditionnel, les données de contrôle d'intégrité sont stockées dans la mémoire interne, alors que dans la présente invention, cette mémoire interne peut être épargnée étant donné qu'au moins une partie associée aux données de contrôle d'intégrité est déplacée vers la mémoire chiffrée et à intégrité protégée 240 localisée de manière externe par rapport au coeur de CPU. Le coût pour le coeur de CPU sera largement réduit en raison de la disponibilité de ce stockage de données d'intégrité sécurisé dans la mémoire externe.
La figure 3(a) illustre un procédé 300 de génération et de stockage de mots de données et d'intégrité s'entrelaçant dans la mémoire externe 240 selon divers modes de réalisation de l'invention. Un mot de données et son adresse logique à l'intérieur d'un bloc de données sont reçus à l'étape 302. Le mot de données est en outre chiffré sur la base d'un procédé de chiffrement prédéterminé à l'étape 304, et un mot d'intégrité est généré à partir du mot de données sur la base d'un procédé de vérification d'intégrité prédéterminé à l'étape 306. Dans un mode de réalisation, le mot d'intégrité peut également être généré à partir du mot de données chiffré (c'est-à-dire, données de charge utile). L'adresse logique est mappée en deux adresses physiques dans la mémoire externe à l'étape 310, une adresse physique pour le mot de données chiffré (c'est-à-dire, données de charge utile) et l'autre adresse physique pour le mot d'intégrité (c'est-à-dire, données de contrôle d'intégrité). Un schéma d'entrelacement de données peut être incorporé à l'étape 310. En conséquence, le mot de données et le mot d'intégrité peuvent être stockés dans les mémoires adressées par les deux adresses physiques, respectivement, à l'étape 312.
La figure 3(b) illustre un procédé 350 d'extraction d'un mot de données et d'un mot d'intégrité d'une mémoire externe 240 selon divers modes de réalisation de l'invention. Une adresse logique à l'intérieur d'un bloc de données est reçue à l'étape 352 pour un mot de données d'intérêt. L'adresse logique est utilisée pour identifier deux adresses physiques pour le mot de données et le mot d'intégrité à l'étape 354 selon un schéma d'entrelacement de données. Le mot de données et le mot d'intégrité sont par conséquent extraits des adresses physiques spécifiées à l'étape 356. Le mot de données est déchiffré à l'étape 358 sur la base d'un procédé de déchiffrement inverse d'un procédé de chiffrement, et le mot de données déchiffré est en outre utilisé pour générer un mot d'intégrité regénéré à l'étape 360 en utilisant un procédé de vérification d'intégrité. Dans un mode de réalisation, le mot d'intégrité regénéré peut également être généré à partir du mot de données chiffré. Le mot d'intégrité extrait de la mémoire externe est généré par le même procédé de vérification d'intégrité pendant un processus de chiffrement antérieur, et par conséquent, la cohérence entre le mot d'intégrité reconstitué et le mot d'intégrité regénéré est applicable à l'étape 364 pour la vérification de données. Si la cohérence existe, le mot de données extrait de la mémoire externe peut être sorti ; sinon, un drapeau d'erreur serait sorti.
De manière avantageuse, le procédé peut comprendre en outre le stockage d'au moins un mot d'intégrité, à l'intérieur de la pluralité de mots d'intégrité, dans un cache d'intégrité dans le microcontrôleur avant l'étape de vérification de la validité de la pluralité de mots de données en utilisant la pluralité de mots d'intégrité reconstitués sur la base d'une vérification d'intégrité, où le cache d'intégrité est différent d'un cache de CPU. Diverses structures sont incorporées dans le bloc de chiffrement et de protection d'intégrité 208 pour mettre en oeuvre des fonctions critiques de chiffrement/déchiffrement de données, génération de mot d'intégrité, vérification d'intégrité et mappage d'adresses. La figure 4 illustre un schéma de principe exemplaire 400 du bloc de chiffrement et de protection d'intégrité 208 selon divers modes de réalisation de l'invention. Le bloc de chiffrement et de protection d'intégrité 400 comprend un traducteur d'adresse 402, un chiffreur de données 404, un déchiffreur de données 406, un générateur de données de contrôle d'intégrité 412, et un bloc de validation d'intégrité 414. Les processus d'écriture et de lecture mémoire susmentionnés sont étiquetés dans des lignes en trait continu et trait tireté, respectivement. Une adresse logique est traduite en deux adresses physiques respectives pour les données de charge utile et les données de contrôle d'intégrité dans le traducteur d'adresse 402 pendant à la fois les opérations d'écriture mémoire et de lecture mémoire. Pendant une opération d'écriture mémoire, les données entrantes sont chiffrées en données de charge utile dans le chiffreur de données 404, tandis que les données de contrôle d'intégrité sont générées dans le générateur de données de contrôle d'intégrité 412. Pendant une opération de lecture mémoire, les données de charge utile sont extraites de la mémoire externe 240, déchiffrées dans le déchiffreur de données 406, et utilisées pour regénérer les données de contrôle d'intégrité dans le générateur de données de contrôle d'intégrité 412. Les données de contrôle d'intégrité sont en outre comparées avec les données de contrôle d'intégrité extraites dans le bloc de validation d'intégrité 414. Des données déchiffrées ou un drapeau d'erreur est sorti concernant les données de charge utile valides ou invalides extraites de la mémoire externe, respectivement.
L'accès aux données de contrôle d'intégrité introduit des retards pour les opérations de lecture et d'écriture des données de charge utile. Chaque fois que les données de charge utile sont lues ou écrites, les données de contrôle d'intégrité associées sont lues depuis ou écrites vers la mémoire externe. Le temps d'accès à la mémoire peut être largement dégradé. Par conséquent, dans certains modes de réalisation, un cache d'intégrité 416 peut être utilisé pour augmenter le taux d'accès à la mémoire en stockant temporairement les données de contrôle d'intégrité pendant des opérations de lecture ou d'écriture consécutives. Le cache d'intégrité 416 est différent d'un cache de CPU inclus dans le coeur de CPU. Dans divers modes de réalisation, des mots de données consécutifs sont associés à des sous-mots d'intégrité différents dans un mot de données de contrôle d'intégrité. Un mot de données de contrôle d'intégrité peut être lu dans une opération de lecture mémoire, et stocké dans le cache d'intégrité 416 pour l'utilisation par plusieurs opérations de lecture de données de charge utile consécutives. Une pluralité de sous-mots de données de contrôle d'intégrité peuvent être combinés en utilisant le cache d'intégrité 416 et un bloc de combinaison pendant des opérations d'écriture mémoire consécutives, et écrits dans la mémoire externe 240 à l'intérieur d'une opération d'écriture mémoire. Plusieurs procédés peuvent être employés pour écrire dans ou lire depuis la mémoire externe d'un microcontrôleur sécurisé. Ces procédés incluent un procédé de mappage de données, un procédé de chiffrement de données, et un procédé de vérification d'intégrité. Le procédé de chiffrement de données peut être inversé pour fournir le procédé de déchiffrement de données correspondant. Particulièrement, dans divers modes de réalisation de la présente invention, le schéma d'entrelacement de données est intégré dans le procédé de mappage de données dans le traducteur d'adresse 402. Dans la mémoire chiffrée et à intégrité protégée 240, les données de charge utile et les données de contrôle d'intégrité sont entrelacées selon un certain schéma d'entrelacement de données, et deux adresses physiques sont traduites à partir de chaque adresse logique en conséquence pendant l'opération de lecture et d'écriture mémoire. En particulier, il existe divers modes de réalisation de schémas d'entrelacement de données réguliers dans lesquels les données de
charge utile et les données de contrôle d'intégrité sont agencées dans une configuration périodique. Dans un mode de réalisation, chaque mot de données de charge utile est suivi d'un mot de données de contrôle d'intégrité pertinent. Dans un autre mode de réalisation, plusieurs mots de données de charge utile forment un bloc de données de charge utile, et chaque bloc de données de charge utile est suivi d'un mot ou bloc de données de contrôle d'intégrité, qui contient les données de contrôle d'intégrité de tous les mots de données de charge utile inclus dans le bloc de données de charge utile. Les données de charge utile et les données de contrôle d'intégrité pertinentes peuvent ne pas être localisées physiquement ensemble dans la mémoire 240. Le schéma d'entrelacement de données détermine directement le procédé de mappage de données utilisé par le traducteur d'adresse 402 pour traduire une adresse logique en deux adresses physiques différentes pour les données de charge utile et les données de contrôle d'intégrité pendant les opérations de lecture et d'écriture mémoire. La figure 5 illustre un schéma d'entrelacement de données en exemple 500 dans la mémoire externe 240 selon divers modes de réalisation de l'invention. Chaque mot de données de charge utile (c'est- à-dire, mot de données, DW) est suivi directement d'un mot de données de contrôle d'intégrité (c'est-à-dire, mot d'intégrité, IW) qui est lié au mot de données de charge utile précédent sur la base d'un procédé de vérification d'intégrité. Par exemple, les longueurs des mots de données et des mots de données de contrôle d'intégrité peuvent être de 16, 22, 54 ou 128 bits comme spécifié par la spécification de mémoire externe. Dans certains modes de réalisation, la longueur des mots de données et la longueur des mots d'intégrité ne sont pas égales, et peuvent être inférieures à la longueur de mot autorisée par la mémoire externe. Des zéros ou des uns peuvent être utilisés pour remplir les bits inutilisés.
Les bits inutilisés peuvent être les deux ou trois premiers bits ou les deux ou trois derniers bits, et ils peuvent également être mélangés aléatoirement avec les bits utilisés du moment que leurs emplacements soient suivis par le contrôleur de mémoire 210. Dans divers modes de réalisation de la présente invention, tous les deux ou trois mots de données sont entrelacés avec un mot d'intégrité de la même longueur dans la mémoire externe 240. Ce mot d'intégrité se compose de plusieurs sous-mots d'intégrité (ISW) qui ont une longueur égale. Chaque ISW est un mot d'intégrité lié à un mot de données de charge utile sur la base d'un procédé de vérification d'intégrité. Par conséquent, le nombre de sous-mots d'intégrité est égal au nombre de mots de données. Les mots de données stockés dans la mémoire externe ont une largeur de i bit, où i est un entier. La longueur de chaque ISW, ISWlength est une fraction de la longueur du mot de données i, et peut être dérivée comme : a ISWlength n où n est le nombre de mots de données et le nombre de sous-mots d'intégrité. L'équation (1) est applicable à des schémas d'entrelacement de données périodiques dans lesquels les sous-mots d'intégrité ont une longueur égale.
La figure 6 illustre un autre schéma d'entrelacement de données périodique en exemple 600 dans la mémoire 240 selon divers modes de réalisation de l'invention. Tous les huit mots de données de 128 bits sont alternés avec un mot de données de contrôle d'intégrité de 128 bits qui se compose de huit sous-mots d'intégrité de 16 bits. Chacun des huit sous-mots d'intégrité de 16 bits est lié successivement à chacun des huit mots de données de charge utile de 128 bits sur la base du procédé de vérification d'intégrité. Dans ce mode de réalisation, un mot d'intégrité de 128 bits IWO se compose de huit sous-mots d'intégrité de 16 bits ISWO-ISW7, et ISWO-ISW7 correspondent à huit mots de données successifs DWO-DW7, respectivement. En particulier, le sous-mot d'intégrité ISWO qui occupe les 16 bits de poids faible d'IWO est lié au premier mot de données DWO, tandis que le sous-mot d'intégrité ISW7 qui occupe les 16 bits de poids fort d'IWO est lié au dernier mot de données DW7. Dans ce mode de réalisation, le schéma d'entrelacement de données est compatible avec l'équation (1), et les entiers i et n sont égaux à 128 et 8, respectivement.
La figure 7 illustre un schéma d'entrelacement de données en exemple 700 dans la mémoire externe 240 selon divers modes de réalisation de l'invention. La longueur pour chaque sous-mot d'intégrité applicable à chaque mot de données est 1 bit. La longueur du mot de données i et le nombre d'ISW n sont égaux. Le mot de contrôle (1) d'intégrité d'l bit peut être généré à partir d'une vérification de parité paire/impaire. Les mots de données de charge utile d'i bit sont liés successivement aux mots de contrôle d'intégrité d'l bit sur la base d'un certain procédé de vérification d'intégrité. Le premier mot de données DWO est associé à ISWO qui est le bit de poids faible du mot d'intégrité d'i bit, tandis que le dernier mot de données DW;_1 est associé à ISWI_i qui est le bit de poids fort du mot d'intégrité d'i bit. Du fait de la longueur ISW d'l bit, ce mode de réalisation est un cas limite qui peut être représenté par l'équation (1).
La figure 8 illustre un procédé en exemple 800 de mappage d'adresses logiques de données dans un bloc de données en adresses physiques dans la mémoire externe 240 selon un certain schéma d'entrelacement de données selon divers modes de réalisation de l'invention. Les équations doivent convertir les adresses logiques en adresses physiques. Dans le mode de réalisation illustré sur la figure 5, tous les huit mots de données de charge utile de 128 bits sont entrelacés avec un mot de données de contrôle d'intégrité de 128 bits. Un x-ième mot de données de charge utile à l'intérieur d'un bloc de données entrantes peut être mappé en le y-ième mot à l'intérieur d'un bloc de données résultantes stocké dans la mémoire externe. Les deux indices des données entrantes et résultantes commencent à partir de 0. Sur la base du schéma d'entrelacement de données périodique particulier, la relation des adresses relatives x et y dans le bloc de données résultantes peut être représentée comme y = 9 x floor (g) + mod(x,8) (2) où floor(x/8) est un résultat arrondi de la division de x par 8, et mod(x,8) est un reste. En conséquence, toutes les huit données de charge utile sont entrelacées avec une donnée de contrôle d'intégrité dont l'adresse relative Addrw dans le bloc de données résultantes est Add1W = 9 x floor(g) +8 (3) Les adresses relatives pour les données de charge utile et les données de contrôle d'intégrité sont générées dans le traducteur d'adresse 402, et superposées en outre à une adresse de bloc pour identifier leurs adresses physiques dans la mémoire externe. Les équations (2) et (3) sont intégrées dans le procédé de mappage de données employé par le traducteur d'adresse 402.
Un mot d'intégrité (IW) comprend une pluralité de sous-mots d'intégrité (ISW) qui occupent des bits différents de l'IW. Comme un mot de données (DW) est stocké dans la mémoire externe, un ISW (c'est-à- dire, une pluralité de bits dans l'IW) est écrit dans un mot de mémoire correspondant également. Les sous-mots d'intégrité associés aux mots de données successifs forment un mot d'intégrité et partagent une même adresse physique pour le mot d'intégrité. Dans un mode de réalisation, le mot d'intégrité est extrait une fois, et stocké dans le cache d'intégrité 416. Les sous-mots d'intégrité sont extraits pendant des opérations de lecture successives pour diverses données de charge utile. Dans un mode de réalisation, le bloc de chiffrement et de protection d'intégrité 208 utilise le cache d'intégrité 416 pour stocker des ISW temporairement pour une opération d'écriture mémoire. Le bloc 208 attend qu'un mot d'intégrité complet soit dérivé de données de charge utile successives avant que le mot d'intégrité complet ne puisse être stocké dans le mot de mémoire spécifié par l'adresse physique du mot d'intégrité. Ce mode de réalisation permet un temps d'accès à la mémoire court pendant les opérations d'écriture. Dans un autre mode de réalisation, le mot d'intégrité est extrait de l'adresse physique IW, et les bits alloués au mot de données de charge utile présent sont recouverts avec l'ISW avant que le mot d'intégrité ne soit restocké à l'adresse physique IW spécifiée dans la mémoire externe. Des modules additionnels (par ex., des caches d'intégrité) et des contrôles sont intégrés dans le bloc de chiffrement et de protection d'intégrité 208 pour entrelacer des données si une pluralité de mots de données sont associés à un mot.
Le schéma d'entrelacement de données est mis en oeuvre par matériel et s'avère transparent au logiciel utilisé par le microcontrôleur sécurisé. Le logiciel utilise normalement des adresses logiques sans la nécessité d'utiliser de registres supplémentaires pour configurer une zone de données (c'est-à-dire, un bloc) dans la mémoire externe. Dans
la présente invention, les adresses logiques sont configurées en adresses physiques dans le traducteur d'adresse. A la fois la confidentialité des données et l'intégrité des données sont améliorées du fait de la programmation du schéma d'entrelacement de données dans le matériel. Bien que le schéma d'entrelacement de données périodique soit préféré dans certaines mémoires, par ex., SDRAM, l'homme du métier reconnaîtra qu'un schéma d'entrelacement de données plus complexe puisse être utilisé. Dans un mode de réalisation, une adresse physique d'un mot de données de contrôle d'intégrité peut être générée à partir d'un procédé spécial dépendant d'une clé. Un schéma d'entrelacement de données complexe améliorera la confidentialité des données, et créera plus d'obstacles pour les attaqueurs pour distinguer les données de charge utile des données de contrôle d'intégrité dans une mémoire externe. En combinaison avec des procédés de chiffrement de données, ce schéma d'entrelacement de données complexe fournit une solution robuste pour protéger un microcontrôleur sécurisé d'une majorité d'efforts de manipulation frauduleuse. Les procédés utilisés pour mettre en oeuvre des schémas d'entrelacement de données complexes sont incorporés dans le traducteur d'adresse 402, et le coût pour la conception et le matériel augmente avec la complexité des schémas d'entrelacement de données. Un schéma d'entrelacement de données dans une mémoire externe est particulièrement utile pour garantir la confidentialité des données et l'intégrité des données dans un microcontrôleur sécurisé. Toutefois, un homme du métier ordinaire peut se rendre compte que le schéma d'entrelacement de données est également applicable dans des microcontrôleurs traditionnels. Ces microcontrôleurs peuvent nécessiter d'économiser le coût de mémoires de CPU onéreuses provenant du stockage des données de contrôle d'intégrité. Un procédé de mappage de données incorporé dans le traducteur d'adresse peut être utilisé pour mettre en oeuvre le schéma d'entrelacement de données, et le contrôleur de mémoire peut être acheminé vers la mémoire externe plutôt que la mémoire de CPU interne.
Pour le mémoire ci-dessus, la référence à « données de charge utile » signifie des données chiffrées qui sont associées à des « données » qui sont fournies par le coeur de CPU 206 et stockées dans la mémoire 240. Toutefois, « données de charge utile » peut être équivalent à « données » dans le cas où aucun chiffrement/ déchiffrement n'est impliqué dans les opérations d'écriture ou de lecture mémoire. Les expressions « mot de données de charge utile » et « mot de données » à divers endroits dans le mémoire sont équivalentes. Les expressions « mot de données de contrôle d'intégrité » et « mot d'intégrité à divers endroits dans le mémoire sont également équivalentes. Dans divers modes de réalisation de la présente invention, l'utilisation de « données » est associée non seulement à des données liées à des informations confidentielles (par ex., noms d'utilisateurs, mots de passe, transactions, etc.) mais également à des programmes, instructions et codes exécutés par le coeur de CPU. Bien que l'invention soit susceptible de diverses modifications et formes alternatives, des exemples spécifiques de celle-ci ont été montrés sur les dessins et sont décrits ici en détail. Toutefois, il convient de comprendre que l'invention ne doive pas être limitée aux formes particulières décrites, mais au contraire, l'invention doit couvrir toutes les modifications, équivalents, et alternatives se trouvant à l'intérieur de la portée des revendications annexées.20

Claims (14)

  1. REVENDICATIONS1. Procédé pour le stockage sécurisé de mots de données et de mots d'intégrité à l'intérieur d'une mémoire externe d'un 5 microcontrôleur, le procédé comprenant : la réception (302) d'une pluralité de mots de données et d'une pluralité d'adresses logiques ; l'association de chaque mot de données, à l'intérieur de la pluralité de mots de données, à une adresse logique correspondante à 10 l'intérieur de la pluralité d'adresses logiques ; la génération (306) d'une pluralité de mots d'intégrité à partir de la pluralité de mots de données sur la base d'un procédé de vérification d'intégrité, chaque mot d'intégrité étant associé à au moins un mot de données à l'intérieur de la pluralité de mots de données ; 15 la traduction (310) de la pluralité d'adresses logiques en une pluralité de premières adresses physiques à l'intérieur de la mémoire externe et une pluralité de secondes adresses physiques à l'intérieur de la mémoire externe sur la base d'une mappe de données ; le stockage (312) de la pluralité de mots de données dans la 20 pluralité de premières adresses physiques dans la mémoire externe ; et le stockage (312) de la pluralité de mots d'intégrité dans la pluralité de secondes adresses physiques dans la mémoire externe.
  2. 2. Procédé selon la revendication 1, comprenant en outre le chiffrement (304) de la pluralité de mots de données avant le 25 stockage des mots de données ; dans lequel la pluralité de mots de données sont stockés dans la pluralité de premières adresses physiques dans la mémoire externe sous forme chiffrée.
  3. 3. Procédé selon la revendication 1 ou 2, comprenant en outre 30 le stockage d'au moins un mot d'intégrité, à l'intérieur de la pluralité de mots d'intégrité, dans un cache d'intégrité dans le microcontrôleur avant l'étape de stockage de la pluralité de mots d'intégrité dans la pluralité de secondes adresses physiques dans la mémoire externe, où le cache d'intégrité est différent d'un cache de 35 CPU.
  4. 4. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel chaque mot d'intégrité, à. l'intérieur de la pluralité de motsd'intégrité, comporte un premier nombre de bits et chaque mot de données chiffré, à l'intérieur de la pluralité de mots de données chiffrés, comporte un second nombre de bits, le premier nombre de bits étant égal au second nombre de bits.
  5. 5. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel chaque mot d'intégrité comprend une pluralité de sous-mots d'intégrité, chaque sous-mot d'intégrité correspondant à un mot de données à l'intérieur de la pluralité de mots de données.
  6. 6. Procédé selon l'une quelconque des revendications 1 à 5, 10 dans lequel la pluralité de mots de données chiffrés et la pluralité de mots d'intégrité sont entrelacés dans la mémoire externe.
  7. 7. Procédé selon la revendication 6, dans lequel un sous-ensemble de la pluralité de mots de données chiffrés est associé à un mot d'intégrité ayant une pluralité de sous-mots d'intégrité 15 correspondant au sous-ensemble de la pluralité de mots de données chiffrés, le sous-ensemble étant stocké avec le mot d'intégrité dans un schéma entrelacé à l'intérieur de la mémoire externe.
  8. 8. Procédé selon la revendication 7, dans lequel le sous-ensemble de la pluralité de mots de données chiffrés comporte huit 20 mots de données chiffrés et le mot d'intégrité comporte huit sous-mots d'intégrité.
  9. 9. Système de microcontrôleur sécurisé comprenant : un coeur de traitement central (206) agencé pour générer une pluralité de mots de données et une pluralité d'adresses logiques ; 25 un bloc de chiffrement et de protection d'intégrité (208), couplé au coeur de traitement central, le bloc de chiffrement et de protection d'intégrité étant agencé pour générer une pluralité de mots d'intégrité à partir de la pluralité de mots de données, chiffrer la pluralité de mots de données, et mapper la pluralité d'adresses logiques en une pluralité de 30 premières adresses physiques et une pluralité de secondes adresses physiques à l'intérieur d'une mémoire externe ; et un contrôleur de mémoire (210), couplé au bloc de chiffrement et de protection d'intégrité, le contrôleur de mémoire étant agencé pour stocker la pluralité de mots de données chiffrés dans la pluralité de 35 premières adresses physiques et la pluralité de mots d'intégrité dans la pluralité de secondes adresses physiques.
  10. 10. Système de microcontrôleur sécurisé selon la revendication 9, dans lequel le bloc de chiffrement et de protection d'intégrité (208) comprend en outre : un générateur de données de contrôle d'intégrité agencé pour générer une pluralité de mots d'intégrité à partir de la pluralité de mots de données sur la base d'un procédé de vérification d'intégrité ; un traducteur d'adresse agencé pour traduire la pluralité d'adresses logiques en la pluralité de premières adresses physiques et la pluralité de secondes adresses physiques sur la base d'une mappe de données ; et un chiffreur de données agencé pour chiffrer la pluralité de mots de données en la pluralité de mots de données chiffrés sur la base d'un procédé de chiffrement de données ; dans lequel à la fois la pluralité de premières adresses physiques 15 et la pluralité de secondes adresses physiques sont associées à une mémoire externe du microcontrôleur ; dans lequel chacun de la pluralité de mots d'intégrité est associé à au moins un de la pluralité des mots de données.
  11. 11. Système de microcontrôleur sécurisé selon l'une quelconque 20 des revendications 9 ou 10, dans lequel le bloc de chiffrement et de protection d'intégrité (208) comprend en outre un cache d'intégrité pour stocker au moins un de la pluralité de mots d'intégrité, où le cache d'intégrité est différent d'un cache de CPU.
  12. 12. Procédé pour extraire des mots de données chiffrés et des 25 mots d'intégrité à l'intérieur d'une mémoire externe d'un microcontrôleur, le procédé comprenant : la réception (352) d'une pluralité d'adresses logiques ; la traduction (354) de la pluralité d'adresses logiques en une pluralité de premières adresses physiques à l'intérieur de la mémoire 30 externe et une pluralité de secondes adresses physiques à l'intérieur de la mémoire externe sur la base d'une mappe de données ; la lecture (356) d'une pluralité de mots de données chiffrés à partir de la pluralité de premières adresses physiques dans la mémoire externe et d'une pluralité de mots d'intégrité à partir de la pluralité de 35 secondes adresses physiques dans la mémoire externe ; le déchiffrement (358) de la pluralité de mots de données chiffrés en une pluralité de mots de données ;la vérification de la validité (360, 364) de la pluralité de mots de données en utilisant la pluralité de mots d'intégrité reconstitués sur la base d'une vérification d'intégrité ; et la sortie de la pluralité de mots de données si la pluralité de mots 5 de données sont valides.
  13. 13. Procédé selon la revendication 12, dans lequel l'étape de vérification de la validité de la pluralité de mots de données comprend en outre les étapes suivantes : regénérer (360) une pluralité de mots d'intégrité regénérés à partir 10 de la pluralité de mots de données sur la base de la vérification d'intégrité ; comparer (364) la pluralité de mots d'intégrité regénérés avec la pluralité de mots d'intégrité ; et indiquer la validité de la pluralité de mots de données par des 15 résultats de comparaison qui sont associés à la cohérence entre la pluralité de mots d'intégrité et la pluralité de mots d'intégrité reconstitués.
  14. 14. Procédé selon l'une quelconque des revendications 12 ou 13, dans lequel la validité de la pluralité de mots de données est en 20 outre appliquée pour dresser une exception CPU sur la base d'une politique de sécurité du microcontrôleur, l'exception CPU étant exploitée pour mettre en oeuvre au moins une fonction sélectionnée dans un groupe de fonctions incluant l'effacement des données sensibles, le déclenchement d'une interruption non masquable, l'écriture d'une 25 valeur dans un registre à drapeaux, la réinitialisation du microcontrôleur, et l'exécution d'un code dédié.
FR1154694A 2011-05-30 2011-05-30 Schema d'entrelacement de donnees pour une memoire externe d'un microcontroleur securise Active FR2976147B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR1154694A FR2976147B1 (fr) 2011-05-30 2011-05-30 Schema d'entrelacement de donnees pour une memoire externe d'un microcontroleur securise
CN201210172262.7A CN102855161B (zh) 2011-05-30 2012-05-29 用于安全微控制器的外部存储器的数据交织方案
US13/483,669 US10797857B2 (en) 2011-05-30 2012-05-30 Data interleaving scheme for an external memory of a secure microcontroller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1154694A FR2976147B1 (fr) 2011-05-30 2011-05-30 Schema d'entrelacement de donnees pour une memoire externe d'un microcontroleur securise

Publications (2)

Publication Number Publication Date
FR2976147A1 true FR2976147A1 (fr) 2012-12-07
FR2976147B1 FR2976147B1 (fr) 2013-11-22

Family

ID=44785931

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1154694A Active FR2976147B1 (fr) 2011-05-30 2011-05-30 Schema d'entrelacement de donnees pour une memoire externe d'un microcontroleur securise

Country Status (3)

Country Link
US (1) US10797857B2 (fr)
CN (1) CN102855161B (fr)
FR (1) FR2976147B1 (fr)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256551B2 (en) 2013-08-09 2016-02-09 Apple Inc. Embedded encryption/secure memory management unit for peripheral interface controller
US9419952B2 (en) * 2014-06-05 2016-08-16 Stmicroelectronics (Grenoble 2) Sas Memory encryption method compatible with a memory interleaved system and corresponding system
US10223289B2 (en) * 2015-07-07 2019-03-05 Qualcomm Incorporated Secure handling of memory caches and cached software module identities for a method to isolate software modules by means of controlled encryption key management
CN106681941A (zh) * 2015-11-07 2017-05-17 上海复旦微电子集团股份有限公司 存储器的数据写入、读出方法及装置
US10594491B2 (en) * 2015-12-24 2020-03-17 Intel Corporation Cryptographic system memory management
US10992453B2 (en) * 2016-05-18 2021-04-27 International Business Machines Corporation System architecture for encrypting external memory
US11163701B2 (en) * 2018-11-15 2021-11-02 Intel Corporation System, apparatus and method for integrity protecting tenant workloads in a multi-tenant computing environment
US11520709B2 (en) * 2020-01-15 2022-12-06 International Business Machines Corporation Memory based encryption using an encryption key based on a physical address
US11763008B2 (en) 2020-01-15 2023-09-19 International Business Machines Corporation Encrypting data using an encryption path and a bypass path

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200448A1 (en) * 2002-04-18 2003-10-23 International Business Machines Corporation Control function implementing selective transparent data authentication within an integrated system
US6708274B2 (en) * 1998-04-30 2004-03-16 Intel Corporation Cryptographically protected paging subsystem
EP2026470A1 (fr) * 2007-08-17 2009-02-18 Panasonic Corporation Vérification de redondance cyclique de fonctionnement sur des segments de codage

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5332315A (en) 1991-04-27 1994-07-26 Gec Avery Limited Apparatus and sensor unit for monitoring changes in a physical quantity with time
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
NZ513862A (en) * 2000-01-21 2001-09-28 Sony Corp Data authentication system
DK1797645T3 (en) * 2004-08-30 2018-11-19 Google Llc Systems and methods for providing non-volatile memory management in cordless phones
US7340672B2 (en) * 2004-09-20 2008-03-04 Intel Corporation Providing data integrity for data streams
US7657756B2 (en) * 2004-10-08 2010-02-02 International Business Machines Corporaiton Secure memory caching structures for data, integrity and version values
US8055970B1 (en) * 2005-11-14 2011-11-08 Raytheon Company System and method for parallel processing of data integrity algorithms
US8830072B2 (en) 2006-06-12 2014-09-09 Intelleflex Corporation RF systems and methods for providing visual, tactile, and electronic indicators of an alarm condition
US7809899B2 (en) * 2007-05-29 2010-10-05 Lsi Corporation System for integrity protection for standard 2n-bit multiple sized memory devices
JP2009301482A (ja) 2008-06-17 2009-12-24 Totoku Electric Co Ltd 無線タグおよび無線タグ・システム
US8555015B2 (en) * 2008-10-23 2013-10-08 Maxim Integrated Products, Inc. Multi-layer content protecting microcontroller
EP2221750A1 (fr) 2009-02-10 2010-08-25 EM Microelectronic-Marin SA Carte à puce à circuit de mesure à capteur, et procédé de réalisation de la carte à puce

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708274B2 (en) * 1998-04-30 2004-03-16 Intel Corporation Cryptographically protected paging subsystem
US20030200448A1 (en) * 2002-04-18 2003-10-23 International Business Machines Corporation Control function implementing selective transparent data authentication within an integrated system
EP2026470A1 (fr) * 2007-08-17 2009-02-18 Panasonic Corporation Vérification de redondance cyclique de fonctionnement sur des segments de codage

Also Published As

Publication number Publication date
CN102855161B (zh) 2018-10-12
US20120311239A1 (en) 2012-12-06
CN102855161A (zh) 2013-01-02
US10797857B2 (en) 2020-10-06
FR2976147B1 (fr) 2013-11-22

Similar Documents

Publication Publication Date Title
FR2976147A1 (fr) Schema d'entrelacement de donnees pour une memoire externe d'un microcontroleur securise
KR101577886B1 (ko) 무결성 검사 및 리플레이 공격들에 대한 보호를 이용하는 메모리 암호화를 위한 방법 및 장치
JP6592621B2 (ja) 認証ネットワーク
CN109388975B (zh) 针对安全性和可靠性的存储器组织
KR101863143B1 (ko) 메모리 무결성
US8843767B2 (en) Secure memory transaction unit
US10922243B2 (en) Secure memory
US8452984B2 (en) Message authentication code pre-computation with applications to secure memory
US8332652B2 (en) Computing device that securely runs authorized software
FR2979443A1 (fr) Microcontroleur securise a base de mode
FR3025041A1 (fr)
FR3098319A1 (fr) Procédé d'exécution d'un code binaire d'une fonction sécurisée par un microprocesseur
EP1983436B1 (fr) Contrôle d'intégrité d'une mémoire externe à un processeur
US20100194609A1 (en) Method and Device For Coding Data Words
CN110659506A (zh) 基于密钥刷新对存储器进行重放保护
JP5060372B2 (ja) データ処理装置
US20070168680A1 (en) Anti-tamper system
CN110311773B (zh) 一种高级加密标准协处理器防注入式攻击的方法
US7707431B2 (en) Device of applying protection bit codes to encrypt a program for protection
EP3832947A1 (fr) Procédé d' exécution d'un programme d'ordinateur par un appareil électronique
FR2930065A1 (fr) Procede de securisation de donnees d'une carte a puce

Legal Events

Date Code Title Description
CA Change of address

Effective date: 20131120

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