FR2980285A1 - Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise - Google Patents
Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise Download PDFInfo
- Publication number
- FR2980285A1 FR2980285A1 FR1158222A FR1158222A FR2980285A1 FR 2980285 A1 FR2980285 A1 FR 2980285A1 FR 1158222 A FR1158222 A FR 1158222A FR 1158222 A FR1158222 A FR 1158222A FR 2980285 A1 FR2980285 A1 FR 2980285A1
- Authority
- FR
- France
- Prior art keywords
- key
- memory
- data
- address
- keys
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000015654 memory Effects 0.000 claims abstract description 163
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000013507 mapping Methods 0.000 claims description 12
- 230000001131 transforming effect Effects 0.000 claims 1
- 230000000295 complement effect Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 14
- 238000012546 transfer Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000036541 health Effects 0.000 description 5
- 238000003672 processing method Methods 0.000 description 5
- 238000002347 injection Methods 0.000 description 4
- 239000007924 injection Substances 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 239000000243 solution Substances 0.000 description 3
- 230000032258 transport Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- AGJBKFAPBKOEGA-UHFFFAOYSA-M 2-methoxyethylmercury(1+);acetate Chemical compound COCC[Hg]OC(C)=O AGJBKFAPBKOEGA-UHFFFAOYSA-M 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011068 loading method Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013496 data integrity verification Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002285 radioactive effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
- H04L9/3073—Public 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 involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Storage Device Security (AREA)
Abstract
A secure microcontroller comprising a central processing unit (CPU) core, a plurality of key sources, a cryptographie processor and a universal memory controller. A data word and an associated logic address are generated by the CPU core. The cryptographie engine translates the logic address to at least one physical address, and processes the data word based on at least one target key. The target key is selected from a plurality of keys based on the logic or physical address. The universal memory controller stores each processed data word in the corresponding physical address within a memory. Each key in the plurality of keys is associated with a memory region within the memory, and therefore, the logic or physical address associated with a memory region may be used to automatically identify the corresponding target key.
Description
SYSTEMES ET PROCEDES DE GESTION DE CLES CRYPTOGRAPHIQUES DANS UN MICROCONTROLEUR SECURISE Contexte A. Domaine technique La présente invention concerne généralement la gestion de clés dans un microcontrôleur sécurisé et, plus particulièrement, des systèmes, des dispositifs et des procédés utilisant de manière automatique et transparente des clés à base d'adresse logique ou physique qui peuvent également être transférées en utilisant une liaison sécurisée dédiée entre un processeur cryptographique et des sources de clés.
B. Contexte de l'invention Un microcontrôleur est normalement un circuit intégré unique comprenant un noyau d'unité centrale (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 biens de valeur dans un environnement de confiance dans lequel un voleur ou un pirate informatique peut tenter d'obtenir l'accès à des données sensibles par l'intermédiaire de noyaux de processeur, de dispositifs de mémoire ou de périphériques d'entrée/sortie qui sont utilisés pour communiquer et traiter des données sensibles. Ces données sensibles peuvent comprendre des numéros de compte, des codes d'accès, des soldes/transactions financiers, de la gestion de droits, des données de mesure (par exemple, énergie, unités), des algorithmes de programme et d'autres informations. Le microcontrôleur sécurisé peut utiliser une mémoire vive non volatile (RAM) au lieu d'une mémoire morte (ROM) pour une mémorisation, et des caractéristiques de sécurité améliorées supplémentaires sont utilisées pour éviter des accès non autorisés. A ce jour, le microcontrôleur sécurisé a été appliqué à une large gamme d'applications critiques quant à la sécurité telles qu'une opération bancaire électronique, des transactions commerciales, et du contrôle d'accès à une TV payante, ou toute application qui nécessite une protection de biens sensibles.
Etant donné que les données sensibles peuvent être mémorisées dans une mémoire externe du microcontrôleur sécurisé, la confidentialité et l'intégrité du contenu de mémoire sont deux caractéristiques distinctes qui devraient être abordées en relation avec différentes menaces. La première menace est associée à une 10 présentation d'informations sensibles où des données confidentielles sont révélées et une faiblesse d'un programme est exposée. La deuxième menace est associée à une modification du comportement de l'application qui implique que des programmes et des données soient modifiés dans la mémoire externe et résulte en un problème d'intégrité 15 des données. Le microcontrôleur sécurisé est conçu pour offrir un niveau de sécurité élevé à des données mémorisées dans la mémoire. Par exemple, la sécurité physique peut être établie contre une attaque de type « probing » par une enceinte anti-violation. Cependant, cette solution 20 peut être coûteuse et ne couvre pas les nouveaux procédés d'attaque basés sur une injection d'erreurs par une impulsion transitoire sur l'alimentation, une lumière, un laser synchrone ou asynchrone, ou des particules radioactives. Les caractéristiques de sécurité peuvent également comprendre un chiffrement de mémoire dans lequel les 25 données et les adresses mémorisées dans la mémoire sont chiffrées ou déchiffrées pendant le processus d'échange de données. Par conséquent, le périmètre de sécurité physique peut être limité au microcontrôleur, alors que la mémoire et son bus de communication peuvent rester exposés physiquement. 30 Un contrôle d'intégrité de données est effectué pour les programmes et les données mémorisés dans la mémoire pour détecter n'importe quelle corruption voulue ou non voulue entre ce qui a été envoyé à l'origine pour une mémorisation et ce qui est mémorisé dans la mémoire. Des procédés de vérification d'intégrité spécifiques sont 35 utilisés pour générer des données de contrôle d'intégrité (c'est-à-dire, un marqueur ou une signature) pendant une opération d'écriture en mémoire, et la validité des données mémorisé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. Un contrôle d'intégrité constitue une protection suffisante contre des attaques par injection d'erreurs, et, parfois, il est mis en oeuvre sous forme logicielle et intégré dans le microcontrôleur sécurisé pour garantir un niveau suffisant de confiance pour les parties prenantes. Les problèmes de sécurité des données et d'intégrité des données susmentionnés peuvent être abordés en incorporant un engin matériel pour des opérations de cryptographie (par exemple, un chiffrement de données, un déchiffrement de données et une vérification d'intégrité) au niveau de l'interface du microcontrôleur vers la mémoire externe au lieu de s'appuyer sur un logiciel. L'engin matériel permet une réaction plus rapide à des attaques par injection d'erreurs, et une amélioration des performances pour un chiffrement ou un déchiffrement de données. Par ailleurs, celui-ci permet un portage direct des systèmes d'exploitation standard sur le microcontrôleur sécurisé sans modifications logicielles majeures. Une ou plusieurs clés peuvent être utilisées pendant une opération cryptographique. Bien que les procédés mis en oeuvre dans l'engin matériel puissent être publics, ces clés sont maintenues confidentielles pour éviter de compromettre la sécurité ou l'intégrité des données. Par conséquent, un besoin existe pour la gestion de clés cryptographiques. Résumé de l'invention Divers modes de réalisation de la présente invention concernent la gestion de clés dans un microcontrôleur sécurisé et, plus particulièrement, des systèmes, des dispositifs et des procédés d'utilisation de manière automatique et transparente de clés à base d'adresse logique ou physique qui peuvent également être transférées en utilisant une liaison sécurisée dédiée entre un processeur cryptographique et des sources de clés. Un aspect de la présente invention est un microcontrôleur sécurisé comprenant un noyau d'unité centrale (CPU), une pluralité de sources de clés, un processeur cryptographique et un çontrôleur de mémoire universel. Un mot de données et une adresse logique associée sont générés par le noyau d'unité centrale. L'engin cryptographique transforme l'adresse logique en au moins une adresse physique, et traite le mot de données sur la base d'au moins une clé cible qui est sélectionnée parmi une pluralité de clés en fonction de l'adresse logique ou physique. Le contrôleur de mémoire universel mémorise chaque mot de données traité dans l'adresse physique correspondante dans une 5 mémoire. Chaque clé parmi la pluralité de clés est associée à une région de mémoire dans la mémoire, et par conséquent, l'adresse logique ou physique associée à une région de mémoire peut être utilisée pour identifier automatiquement la clé cible correspondante. Une liaison sécurisée dédiée peut être utilisée pour transporter des commandes de 10 demande de clé (comprenant une identification de clé) et la pluralité de clés, et peut être mise en oeuvre en tant qu'interface de données série. Un aspect de l'invention est un procédé d'appariement de clés cryptographiques avec des adresses mémoire dans un microcontrôleur sécurisé. Des données et une adresse logique sont reçues. L'adresse 15 logique est transformée en au moins une adresse physique, et l'adresse logique ou l'adresse physique est comparée à une pluralité d'ensembles de configurations de zone. Chaque ensemble de configurations de zone est associé à une région de mémoire mémorisant des données traitées sur la base d'une clé particulière. Du fait de sa cohérence avec l'adresse 20 logique ou l'adresse physique, un ensemble de configurations de zone est identifié et utilisé en outre pour sélectionner une clé cible parmi une pluralité de clés. Un aspect de l'invention est un microcontrôleur sécurisé qui utilise une liaison sécurisée dédiée pour coupler des sources de clés et 25 un processeur cryptographique. Le processeur cryptographique génère une commande de demande de clé demandant qu'une pluralité de clés soient transférées à partir des sources de clés, sélectionne au moins une clé cible parmi la pluralité de clés, et peut traiter en outre des données d'entrée sur la base de la clé cible. La commande de demande 30 de clé est émise par l'intermédiaire de la liaison sécurisée dédiée par le processeur cryptographique pour les sources de clés, et de manière similaire la pluralité de clés sont transportées dans une direction opposée par l'intermédiaire de la liaison sécurisée dédiée. Cette liaison sécurisée peut être mise en oeuvre en tant qu'interface de données série, 35 et est séparée du bus de système de sorte que d'autres modules dans le microcontrôleur sécurisé ne puissent pas accéder à la clé cible.
Un aspect de l'invention consiste en un procédé de gestion de clés cryptographiques en utilisant une liaison sécurisée dédiée dans un microcontrôleur sécurisé. La liaison sécurisée dédiée peut être mise en oeuvre en tant qu'interface de données série, comprenant des données de sortie série, des premières données d'intégrité série, une horloge série, des données d'entrée série et des deuxièmes données d'intégrité série. Les données de sortie série incorporent une commande de demande de clé comprenant une identification (ID) de clé. Lors de la réception et du décalage de la commande de demande de clé, des sources de clés peuvent sélectionner une clé parmi une pluralité de clés pour un transport et la convertir en les données d'entrée série. Les premières et deuxièmes données d'intégrité série sont respectivement associées aux données d'entrée et de sortie série. La commande, la clé pour le transport, les données d'intégrité et une horloge synchrone sont transportées en utilisant la liaison sécurisée dédiée. Certains avantages et certaines caractéristiques de la présente invention ont été décrits généralement dans cette section de résumé ; cependant, des caractéristiques, des avantages et des modes de réalisation supplémentaires sont présentés ici ou seront évidents à l'homme du métier à la vue des dessins, de la description et des revendications de ceux-ci. Par conséquent, on devrait comprendre que l'étendue de l'invention ne devrait pas être limitée par les modes de réalisation particuliers présentés dans cette section de résumé.
Brève description des dessins Il va être fait référence à des modes de réalisation de l'invention, dont des exemples peuvent être illustrés sur les figures associées. Ces figures sont destinées à être illustratives, non limitatives. Bien que l'invention soit décrite de manière générale dans le contexte de ces modes de réalisation, on devrait comprendre qu'il n'est pas envisagé de limiter l'étendue de l'invention à ces modes de réalisation particuliers. La figure 1 illustre un exemple de schéma de principe d'un système de microcontrôleur sécurisé comprenant un microcontrôleur sécurisé s'interfaçant avec une mémoire chiffrée et à intégrité protégée 35 selon divers modes de réalisation de l'invention.
La figure 2 illustre un exemple de schéma de principe d'un système d'appariement de clé dans un microcontrôleur sécurisé selon divers modes de réalisation de l'invention. La figure 3A illustre un exemple de schéma de principe d'un bloc 5 de registres de configuration de clé selon divers modes de réalisation de l'invention. La figure 3B illustre un exemple de schéma de principe d'une zone de mémorisation de clés sécurisée selon divers modes de réalisation de l'invention. 10 La figure 3C illustre un autre exemple de schéma de principe d'un système d'appariement de clé dans un microcontrôleur sécurisé selon divers modes de réalisation de l'invention. La figure 4 illustre un exemple de schéma de principe d'un microcontrôleur sécurisé comprenant des bus au niveau système selon 15 divers modes de réalisation de l'invention. La figure 5 illustre un exemple de schéma de principe d'un engin cryptographique communiquant avec une zone de mémorisation de clés sécurisée par l'intermédiaire d'une interface de données série selon divers modes de réalisation de l'invention. 20 La figure 6 illustre un diagramme de synchronisation pour quatre signaux inclus dans une liaison sécurisée dédiée mise en oeuvre dans une interface de données série selon divers modes de réalisation de l'invention. La figure 7A illustre un procédé de traitement de données 25 utilisant une clé à base d'adresse dans un microcontrôleur sécurisé selon divers modes de réalisation de l'invention. La figure 7B illustre un procédé de chargement de clé pour un traitement de données utilisant une interface de données série dans un microcontrôleur sécurisé selon divers modes de réalisation de 30 l'invention. Description détaillée des modes de réalisation préférés Des modes de réalisation de la présente invention fournissent des systèmes, des dispositifs et des procédés de gestion de clés dans un 35 microcontrôleur sécurisé, et, plus particulièrement, des systèmes, des dispositifs et des procédés d'utilisation de manière automatique et transparente de clés à base d'adresse logique ou physique qui peuvent être transférées en utilisant une liaison sécurisée dédiée entre un processeur cryptographique et des sources de clés dans le microcontrôleur sécurisé. Dans la description qui suit, à des fins d'explication, des détails spécifiques sont exposés afin de permettre une compréhension de l'invention. Cependant, il sera évident à l'homme du métier que l'invention peut être mise en pratique sans ces détails. L'homme du métier reconnaîtra que les modes de réalisation de la présente invention, décrits ci-dessous, peuvent être mis en oeuvre d'un grand nombre de manières et en utilisant un grand nombre de structures. Les hommes du métier reconnaîtront également que des modifications, des applications, et des modes de réalisation supplémentaires sont dans l'étendue de celle-ci, comme le sont les domaines supplémentaires dans lesquels l'invention peut avoir une utilité. Par conséquent, les modes de réalisation décrits ci-dessous sont illustratifs de modes de réalisation spécifiques de l'invention et sont censés éviter d'obscurcir l'invention. La référence dans la spécification à « un mode de réalisation » 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'expression « dans un mode de réalisation », ou similaire apparaissant à divers emplacements dans la description ne fait pas nécessairement référence au même mode de réalisation. En outre, les liaisons entre des composants ou entre des étapes de procédé sur les figures ne sont pas limitées à des liaisons qui sont effectuées directement. Au lieu de cela, les liaisons illustrées sur les figures entre des composants ou des étapes de procédé peuvent être modifiées ou autrement changées par l'ajout à celles-ci de composants ou d'étapes de procédé intermédiaires, sans s'écarter des enseignements de la présente invention. En termes de sécurité des données, c'est une bonne pratique de dédier une clé spécifique à chaque utilisation spécifique dans un microcontrôleur sécurisé. Le chiffrement de la mémoire externe entière avec une clé unique peut ne pas être l'option préférée. Il est préféré de chiffrer ou de protéger différentes régions de mémoire par différentes clés. Par conséquent, une pluralité de clés cryptographiques peuvent être utilisées dans le microcontrôleur sécurisé, et chaque clé est associée à une région de mémoire dans une mémoire chiffrée et à intégrité protégée. Une fois qu'une adresse physique a été identifiée dans la région de mémoire, la clé associée à cette région de mémoire peut être automatiquement identifiée pour traiter des données d'entrée correspondantes. La confidentialité du contenu de mémoire est améliorée par cette identification de clé au vol sur la base de l'adresse physique. Une opération cryptographique peut être un chiffrement de données, un déchiffrement de données, un formatage de données, un calcul d'intégrité ou une vérification d'intégrité, et une ou plusieurs clés cryptographiques peuvent être utilisées pendant l'une quelconque de ces opérations. Dans certains modes de réalisation, les données en clair sont mémorisées dans certaines régions de mémoire n'impliquant aucune opération cryptographique, et ainsi, ces régions de mémoire en clair ne sont pas associées à une quelconque clé cryptographique. Le processus d'identification de clé au vol est mis en oeuvre de préférence sous forme matérielle, et est transparent à l'extérieur du microcontrôleur sécurisé. Afin de capturer des informations correctes dans une mémoire interfaçant un microcontrôleur sécurisé, les attaquants doivent non seulement discerner diverses régions de mémoire, mais également identifier les clés cryptographiques associées aux régions de mémoire. Par conséquent, la présente invention offre un niveau de sécurité des données plus élevé qu'un microcontrôleur sécurisé classique, et est particulièrement utile lorsqu'un niveau élevé de sécurité des données est nécessaire. La figure 1 illustre un exemple de schéma de principe 100 d'un système de microcontrôleur sécurisé comprenant un microcontrôleur sécurisé 120 s'interfaçant avec une mémoire chiffrée et à intégrité protégée 140 selon divers modes de réalisation de l'invention. Le microcontrôleur sécurisé 120 comprend un noyau d'unité centrale 106, un processeur cryptographique 108, un contrôleur de mémoire universel 110, des sources de clés 112 et des bus pour des données, des adresses et des clés. Le processeur cryptographique 108 est couplé au noyau d'unité centrale 106 et aux sources de clés 112, et est utilisé pour mapper les adresses logiques, contrôler l'intégrité des données, et chiffrer/déchiffrer/formater les données. Une ou plusieurs clés sont fournies par les sources de clés 112 au processeur cryptographique 108 pour une opération cryptographique, telle qu'un chiffrement, un déchiffrement, un formatage, un calcul d'intégrité et une vérification d'intégrité des données. Le contrôleur de mémoire universel 110 est couplé au processeur cryptographique 108, et permet un accès à la mémoire chiffrée et à intégrité protégée 140. La mémoire chiffrée et à intégrité protégée 140 peut comprendre diverses mémoires externes, comprenant une mémoire vive (RAM) 114, une mémoire flash 116, et une mémoire morte (ROM). La génération de données dans différentes mémoires peut imposer différentes spécifications aux clés. Par exemple, une mémoire non volatile peut nécessiter qu'une clé soit mémorisée en permanence dans une zone sécurisée, tandis qu'une mémoire volatile est associée de préférence à une clé générée de manière aléatoire à chaque amorçage. Une mémoire incluse dans la mémoire 140 peut être divisée en une pluralité de régions de contenu en clair et une pluralité de régions de contenu chiffré. Les données d'origine ou traitées peuvent être mémorisées dans les régions de contenus en clair ou chiffrés, respectivement. Les données d'origine peuvent être mémorisées directement dans une région de contenu en clair de la mémoire 140, et aucune clé n'est associée. Les régions de contenu chiffré sont normalement utilisées pour mémoriser des programmes ou des données associés à des informations confidentielles, par exemple, des noms d'utilisateurs, des mots de passe, des transactions, etc. Ces informations confidentielles peuvent être chiffrées en utilisant différentes clés et mémorisées dans différentes régions de contenu chiffré, et chaque région de contenu chiffré est associée à au moins une clé. Dans divers modes de réalisation de la présente invention, une clé peut être associée à une mémoire complète, à une région dans une 30 mémoire ou à un segment chevauchant au moins deux mémoires incluses dans la mémoire 140. Les sources de clés 112 comprennent un générateur de nombres aléatoires (RNG) 118 pour générer des clés aléatoires et une mémoire sécurisée non volatile 122 pour mémoriser des clés fixes. Les clés fournies par les sources de clés 112 sont 35 mappées vers différentes régions de mémoire dans la mémoire chiffrée et à intégrité protégée 140, et utilisées pour traiter des données d'entrée correspondantes.
Dans certains modes de réalisation, pendant un cycle d'écriture de mémoire, le noyau d'unité centrale 106 fournit les données et une adresse logique au processeur cryptographique 108 qui peut en outre chiffrer les données en utilisant un procédé de chiffrement de données.
Les données de contrôle d'intégrité peuvent être générées dans le processeur cryptographique 108 en utilisant un procédé de vérification d'intégrité basé sur les données. En plus de générer les données chiffrées et les données de contrôle d'intégrité, le processeur cryptographique 108 transforme également les adresses logiques d'entrée en deux adresses physiques, l'une pour les données chiffrées et l'autre pour les données de contrôle d'intégrité. Le contrôleur de mémoire universel 110 identifie ces deux adresses physiques dans la mémoire 140 et mémorise les données chiffrées et les données de contrôle d'intégrité dans les adresses physiques.
Dans certains modes de réalisation, pendant un cycle de lecture de mémoire, l'adresse logique est fournie par le noyau d'unité centrale 106 pour extraire des données chiffrées spécifiques de la mémoire chiffrée et à intégrité protégée externe 140. Le processeur cryptographique 108 transforme l'adresse logique pour récupérer deux adresses physiques pour les données chiffrées et les données de contrôle d'intégrité associées, respectivement. Le contrôleur de mémoire universel 110 permet l'accès au contenu de mémoire mémorisé à ces deux adresses physiques, et le processeur cryptographique 108 est couplé pour recevoir les données chiffrées et les données de contrôle d'intégrité de la mémoire 140. Un procédé de déchiffrement de données est mis en oeuvre pour déchiffrer les données chiffrées. Les données récupérées à partir des données chiffrées sont traitées en utilisant le procédé de vérification d'intégrité qui a été utilisé précédemment pour générer les données de contrôle d'intégrité. Si les données de contrôle d'intégrité régénérées à partir des données récupérées sont cohérentes avec les données de contrôle d'intégrité extraites de la mémoire 140, alors les données récupérées sont valides et sont fournies, par la suite, au noyau d'unité centrale 106 ; autrement, une erreur est acquittée et un matériel dédié est utilisé pour positionner une exception d'unité centrale sur la base de la politique de sécurité du microcontrôleur. Dans divers modes de réalisation de la présente invention, le signal utilisé pour générer une exception d'unité centrale ou l'exception d'unité centrale elle-même peut être exploité pour effacer les données sensibles, déclencher une interruption non masquable, écrire une valeur dans un registre d'indicateurs, réinitialiser le microcontrôleur, ou exécuter un code dédié.
Les données traitées sont mémorisées dans des régions de contenu chiffré dans la mémoire 140, et au moins une clé est utilisée pour chaque opération/procédé cryptographique susmentionné (c'est-à-dire, un chiffrement de données, un déchiffrement de données, et une vérification d'intégrité). Une même clé est utilisée pour des procédés de chiffrement et de déchiffrement qui sont l'inverse l'un de l'autre, étant donné que ces deux procédés sont associés à des données à une même adresse dans la mémoire. Une fois qu'une adresse logique et une adresse physique associée ont été associées à une région de mémoire particulière, les clés cryptographiques peuvent être identifiées en fonction de l'adresse logique ou physique. En particulier, une identification (ID) de clé peut être associée à chaque clé. Par conséquent, le système de microcontrôleur sécurisé 100 est basé sur ce procédé d'appariement des clés et des adresses physiques dans différentes régions de mémoire dans la mémoire 140.
Les adresses physiques dans une région de mémoire peuvent être décrites par un ensemble de configurations de zone spécifiant une plage d'adresses associée. Dans certains modes de réalisation, l'ensemble de configurations de zone peut comprendre une adresse basse et une adresse haute. Les adresses physiques dans la région de mémoire sont dans la plage définie par l'ensemble de configurations de zone. Par conséquent, lors de la génération d'une adresse physique pour des données d'entrée, le microcontrôleur sécurisé peut identifier la région de mémoire pour mémoriser les données traitées en comparant l'adresse physique avec des ensembles de configurations de zone disponibles, et une clé cible appariée avec la région de mémoire peut être appliquée par la suite pour traiter les données d'entrée. Dans divers mode de réalisation de la présente invention, le RNG 118 et la mémoire sécurisée non volatile 122 sont utilisés pour fournir des clés aléatoires et fixes au processeur cryptographique 108, respectivement. Ces clés aléatoires et fixes peuvent être directement fournies par le RNG 118 ou extraites de la mémoire sécurisée non volatile 122. Ces clés attendent d'être transportées vers le processeur 108 pour une utilisation dans le traitement de données. L'un ou l'autre du RNG 118 ou de la mémoire sécurisée non volatile 122 peut fournir une pluralité de clés qui sont associées à diverses régions de mémoire s'interfaçant avec le contrôleur de mémoire universel 110. Dans certains modes de réalisation, le RNG 118 est utilisé pour générer une clé pour chiffrer/déchiffrer les données dans la mémoire vive 114, et la mémoire sécurisée non volatile 122 est utilisée pour fournir une clé pour chiffrer/déchiffrer les données dans la mémoire flash 116. Dans un mode de réalisation basé sur un logiciel intégré, les données dans une mémoire volatile MemA et les données dans une mémoire non volatile MemB sont chiffrées au moyen d'une première clé KeyA et d'une deuxième clé KeyB, respectivement. Le processeur cryptographique 108 a chargé au préalable les données dans MemA en utilisant KeyA. Lors de la réception d'une demande de lecture de mémoire pour les données dans MemB, les mémoires caches matérielles dans le processeur cryptographique 108 peuvent réagir rapidement pour permettre un accès à la mémoire, mais cependant, le logiciel intégré peut ne pas permettre un changement de configuration nécessaire pour charger la deuxième clé KeyB à temps. Par conséquent, les données dans MemB sont extraites en utilisant la clé erronée, KeyA, au lieu de KeyB, et dans cet exemple, le logiciel intégré n'arrive pas à gérer les clés. Une solution préférée pour apparier des adresses et des clés peut être basée sur des unités matérielles intégrées dans le microcontrôleur sécurisé.
Un système d'appariement de clé peut être intégré dans le microcontrôleur 120, et appliqué en tant que solution matérielle pour gérer une pluralité de clés en fonction des adresses de mémoire. La figure 2 illustre un exemple de schéma de principe 200 d'un système d'appariement de clé dans un processeur cryptographique 108 selon divers modes de réalisation de l'invention. Dans un tel système d'appariement de clé 200, le processeur cryptographique 108 s'interface avec une ou plusieurs sources de clés 112, par exemple, le RNG 118 et la mémoire sécurisée non volatile 122. Le processeur cryptographique 108 comprend un engin cryptographique 206, un bloc de registres de configuration de clé 208, une zone de mémorisation de clés sécurisée 210 et une interface série sécurisée 230. L'engin cryptographique 206 comprend en outre un transformateur d'adresse 212. La pluralité de clés sont fournies par les sources de clés 112, et mémorisées temporairement dans la zone de mémorisation de clés sécurisée 210. Un appariement de clé est mis en oeuvre dans le bloc de registres de configuration de clé 208 et dans la zone de mémorisation de clés sécurisée 210 conformément à une identification de clé (ID de clé 1). L'engin cryptographique 206 est placé en série dans un trajet de données qui connecte un contrôleur de mémoire universel à un noyau d'unité centrale. L'engin cryptographique 206 reçoit des données et une adresse logique associée. Les données sont traitées en utilisant au moins un procédé de traitement de données, alors que l'adresse logique est transformée en au moins une adresse physique. Pendant un processus d'écriture de mémoire, les données sont traitées (par exemple, chiffrées), et les données traitées sont mémorisées dans au moins une adresse physique de la mémoire 140. Pendant un processus de lecture de mémoire, les données sont extraites de ladite au moins une adresse physique dans la mémoire 140 et traitées (par exemple, déchiffrées, vérifiées quant à l'intégrité). L'adresse physique est appariée à une clé cryptographique (clé cible) par le bloc de registres de configuration de clé 208 et la zone de mémorisation de clés sécurisée 210. Le bloc de registres de configuration de clé 208 est couplé à l'engin cryptographique 206 et configuré pour générer un ID de clé 1. L'ID de clé 1 identifie les clés dans la zone de mémorisation de clés sécurisée 210. La zone de mémorisation de clés sécurisée 210 est couplée non seulement au bloc de registres de configuration de clé 208 pour recevoir l'ID de clé 1, mais également à l'engin cryptographique 206 pour renvoyer une clé cible. Les clés dans la zone de mémorisation de clés sécurisée 210 sont fournies par les sources de clés 112, les clés étant identifiées par une ID de clé 2. L'interface série sécurisée 230 est couplée à la fois à la zone de mémorisation de clés sécurisée 210 et aux sources de clés 112 comprenant le RNG 118 et la mémoire sécurisée non volatile 122. Les clés qui peuvent être fournies par les sources de clés 112 sont transportées vers le processeur cryptographique 108 par l'intermédiaire de cette interface série sécurisée 230.
Le bloc de registres de configuration de clé 208 est configuré pour générer une ID de clé 1 sur la base d'une adresse physique. Chaque ID de clé 1 est associée à au moins une clé dans la zone de mémorisation de clés sécurisée 210 conformément à une carte de clés. L'adresse physique est cohérente avec un ensemble de configurations de zone particulier, et par conséquent, identifiée comme étant localisée dans une région de mémoire correspondante. Etant donné que la région de mémoire est appariée avec au moins une clé cible associée à une ID de clé, l'adresse physique peut être liée à l'ID de clé dans le bloc de registres de configuration de clé 208. Dans certains modes de réalisation, le bloc de registres de configuration de clé 208 peut être configuré pour générer l'ID de clé 1 sur la base de l'adresse logique. Etant donné qu'une adresse physique est transformée à partir d'une adresse logique dans l'engin cryptographique 206, une région de mémoire dans la mémoire 140 est également associée à une plage d'adresses logiques. Cependant, une adresse logique peut être associée à plusieurs adresses physiques lorsque plusieurs procédés de traitement de données (par exemple, un chiffrement et une vérification d'intégrité) sont impliqués. Un signal de contrôle de clé est utilisé si une adresse logique, au lieu d'une adresse physique, est associée à l'ID de clé dans le bloc de registres de configuration de clé 208.
La figure 3A illustre un exemple de schéma de principe d'un bloc de registres de configuration de clé 208 selon divers modes de réalisation de l'invention. Le bloc de registres de configuration de clé 208 comprend une pluralité de registres de configuration de zone 302 à 312 et un contrôleur de mappage d'adresse 314. Les registres 302 à 312 sont utilisés pour mémoriser une pluralité d'ensembles de configurations de zone associés à une pluralité de régions de mémoire. Le contrôleur de mappage d'adresse 314 est couplé pour recevoir une adresse d'entrée et un signal de contrôle de clé de l'engin cryptographique 206. Le contrôleur 314 compare l'adresse d'entrée avec la pluralité d'ensembles de configurations de zone, et génère une ID de clé associée à un des ensembles de configurations de zone correspondant à la région de mémoire qui est associée à l'adresse d'entrée. L'adresse d'entrée peut être une adresse logique ou une adresse 35 physique. Les configurations de zone dans les registres 302 à 312 sont représentées de préférence en adresses logiques ou adresses physiques en fonction du format de l'adresse d'entrée. Dans certains modes de réalisation, une adresse logique est utilisée pour l'adresse d'entrée et les configurations de zone. L'adresse logique est transformée en deux adresses physiques dans l'engin cryptographique 206 pour les données chiffrées et les données de vérification d'intégrité, respectivement. Les données chiffrées et les données de vérification d'intégrité peuvent être générées sur la base de deux clés distinctes, respectivement ; et peuvent être mémorisées dans deux régions de mémoire distinctes ou dans la même région de mémoire. Etant donné qu'une adresse logique est utilisée pour les deux données, le signal de contrôle de clé est nécessaire pour différencier les données chiffrées et les données de contrôle d'intégrité, et des ensembles de configurations de zone peuvent être sélectionnés en conséquence. Comparées aux adresses logiques, les adresses physiques sont associées plus directement aux régions de mémoire, et le signal de contrôle de clé peut ne pas être utilisé.
Dans un mode de réalisation, les ensembles de configurations de zone mémorisés dans les registres 302 à 312 spécifient les plages d'adresses en définissant des adresses hautes et basses pour une pluralité de régions de mémoire. Des comparateurs peuvent être inclus dans le contrôleur de mappage d'adresse 314, et l'adresse d'entrée est comparée consécutivement aux adresses haute et basse dans chaque registre. Si l'adresse d'entrée tombe entre les adresses haute et basse dans un registre, l'ID de clé associée à ce registre est délivrée. La figure 3B illustre un exemple de schéma de principe 210 d'une zone de mémorisation de clés sécurisée 210 selon divers modes de réalisation de l'invention. La zone de mémorisation de clés sécurisée 210 sélectionne la clé cible conformément à l'ID de clé 1. La zone de mémorisation de clés sécurisée 210 comprend une pluralité de registres de clé 214 à 222 et un contrôleur de mappage de clé 224. Chaque registre de clé mémorise une clé qui peut être fournie par différentes sources de clés, telles qu'un RNG ou une mémoire sécurisée non volatile. L'ID de clé 1 est directement mappée vers les clés dans les registres 214 à 222. Dans certains modes de réalisation, le contrôleur de mappage de clé 224 est un multiplexeur qui est couplé pour recevoir l'ID de clé 1, et sélectionne une clé cible parmi les clés dans les registres 214 à 222 conformément à l'ID de clé 1. La figure 3C illustre un autre exemple de schéma de principe 380 d'un système d'appariement de clé s'interfaçant avec un engin AES (Advanced Encryption Standard) 386 dans un microcontrôleur sécurisé selon divers modes de réalisation de l'invention. Le système d'appariement de clé 380 comprend un bloc de registres de configuration de clé 208 et une zone de mémorisation de clés sécurisée 210. Le bloc de registres de configuration de clé 208 est couplé pour recevoir l'adresse logique ou l'adresse physique, et l'adresse physique est transformée à partir de l'adresse logique par un transformateur d'adresse 212. Une ID de clé 1 est générée par le bloc de registres de configuration de clé 208, et fournie à la zone de mémorisation de clés sécurisée 210 pour sélectionner une clé cible parmi une pluralité de clés qui sont mémorisées dans ses registres de clé. La taille de clé peut être de 128, 192 ou 256 bits. L'engin AES 386 est couplé pour recevoir des données d'entrée et cette clé cible. Dans un mode de réalisation, les données d'entrée sont 15 des données d'origine en clair fournies par un noyau d'unité centrale. Les données d'entrée sont par la suite chiffrées en utilisant la clé dans l'engin AES 386 et mémorisées dans une certaine région de mémoire. Dans un autre mode de réalisation, les données d'entrée sont des données chiffrées extraites d'une région de mémoire, et peuvent être 20 déchiffrées pour renvoyer les données d'origine en clair en utilisant la même clé dans l'engin AES 386. Les clés fournies par diverses sources de clés sont normalement chargées et mémorisées dans le processeur cryptographique 108. Alors que le microcontrôleur 120 démarre ou est réinitialisé, les clés dans les 25 sources de clés 112 sont chargées dans la zone de mémorisation de clés sécurisée 210 dans le processeur 108. Lors de la détection d'une violation, ces clés peuvent être instantanément effacées de la zone de mémorisation de clés sécurisée 210. Bien qu'un mappage de clé et un effacement de clé aient amélioré davantage la sécurité des données, un 30 transfert de clé entre les sources de clés 112 et le processeur cryptographique 108 est encore une liaison vulnérable potentielle. Dans divers modes de réalisation, l'interface série sécurisée 230 est incorporée dans l'interface entre les sources de clés 112 et le processeur cryptographique 108 pour aborder ce problème, et ainsi elle est intégrée 35 avec un appariement de clé dans le processeur cryptographique 108. La figure 4 illustre un schéma de principe 400 d'un microcontrôleur sécurisé comprenant des bus de niveau de système selon divers modes de réalisation de l'invention. Le microcontrôleur sécurisé 400 comprend une pluralité de modules de fonction, comprenant un noyau d'unité centrale 106, un processeur cryptographique 108, un contrôleur de mémoire universel 110 et des sources de clés 112. Dans un microcontrôleur classique, ces modules de fonction sont couplés par un bus de système 402. Dans un mode de réalisation, lors de la réception d'une commande de demande de clé, la source de clés 112 sélectionne une clé qui est transportée vers le processeur cryptographique 108 par le bus de système 402. La commande de demande de clé transporte principalement une ID de clé 2 associée aux clés dans les sources de clés 112. Le noyau d'unité centrale 106 et le contrôleur de mémoire universel 110 peuvent être dans le trajet. Certaines unités de commande peuvent également être incluses dans le noyau d'unité centrale 106 et/ ou le contrôleur de mémoire universel 110 pour copier ou mémoriser temporairement la clé sélectionnée. Par conséquent, bien que la clé sélectionnée puisse être destinée à une utilisation dans le processeur cryptographique 108, elle est accessible par une pluralité de modules de fonction et peut même être mémorisée dans un registre dans ces modules. La sécurité des données peut être compromise du fait d'une exposition de la clé sélectionnée à d'autres modules de fonction partageant le même bus de système 402 avec le processeur cryptographique 108. Afin de réduire au minimum cette exposition de clé, une liaison sécurisée dédiée 404 peut être appliquée pour connecter le processeur cryptographique 108 directement aux sources de clés 112. Dans divers modes de réalisation de l'invention, la commande de demande de clé et la clé sélectionnée sont transférées par l'intermédiaire de la liaison sécurisée dédiée 404 au lieu du bus de système 402. La commande de demande de clé transporte principalement une ID de clé 2 associée à la clé sélectionnée. Par conséquent, une exposition de 11D de clé 2 et de la clé peut être réduite et la sécurité du système global est améliorée du fait du transfert de clé par l'intermédiaire de cette liaison dédiée 404. Dans certains modes de réalisation, la liaison sécurisée dédiée 35 404 pour le transfert de clé est une interface de données série entre le processeur cryptographique 108 et les sources de clés 112. Le processeur cryptographique 108 agit en tant que maître extrayant des clés cibles d'un esclave, c'est-à-dire, les sources de clés 112. La figure 5 illustre un schéma de principe 500 d'un processeur cryptographique 108 communiquant avec les sources de clés 112 par l'intermédiaire d'une interface de données série selon divers modes de réalisation de 5 l'invention. Dans divers modes de réalisation de la présente invention, cette interface de données série est une liaison sécurisée dédiée 404. L'interface de données série comprend cinq signaux qui sont respectivement une horloge série Serial_CLK, des données d'entrée série Serial_in, des données d'entrée série complémentaires /Serial_in, des 10 données de sortie série Serial out et des données de sortie série complémentaires /Serial_out. Les données d'entrée et de sortie série complémentaires sont inversées par rapport aux données d'entrée et de sortie série, respectivement. Dans cette interface de données série, une entrée et une sortie sont définies en relation avec le processeur 15 cryptographique 108. Les données de sortie série sont générées pour délivrer une commande de demande de clé pour extraire une clé sélectionnée conformément à une identification de clé (ID 2) intégrée dans la commande. Les données d'entrée série sont utilisées pour renvoyer la 20 clé sélectionnée. Afin de garantir l'intégrité de clé, les données d'entrée série complémentaires sont retransférées en tant que données de contrôle d'intégrité avec les données d'entrée série. De manière similaire, les données de sortie série complémentaires sont utilisées en tant que données de contrôle d'intégrité pour les données de sortie 25 série, de sorte que l'ID de clé 2 est protégée d'une falsification et transportée correctement pendant l'échange sur une liaison série. L'horloge série est synchrone avec ces signaux série, et utilisée pour une conversion de données série-parallèle ou parallèle-série. Du côté maître, le processeur cryptographique 108 comprend un 30 engin de communication série 506. L'engin de communication série 506 est utilisé pour convertir des signaux de commande parallèles (comprenant l'ID de clé 2) associés à une commande de demande de clé en les données de sortie série, fournir l'horloge série, recevoir les données d'entrée série (c'est-à-dire, la clé sélectionnée) et les données 35 d'entrée série complémentaires, et vérifier l'intégrité des données d'entrée série. Les signaux de commande parallèles sont associés à la commande de demande de clé, et comprennent l'ID de clé 2. Dans certains modes de réalisation, il pourrait y avoir plusieurs instances de l'engin de communication 506. Du côté esclave, les sources de clés 112 comprennent un engin de communication série et de décodage 508 correspondant et des emplacements de mémorisation de clés 510 à 514. Chacun des emplacements de mémorisation de clés peut être inclus dans la mémoire sécurisée non volatile 122 ou dans des ressources de mémoire supplémentaires qui sont utilisées pour mémoriser une clé fournie par une source de clés, par exemple, le RNG 118 ou la mémoire sécurisée non volatile 122. L'engin 508 est utilisé pour mettre en oeuvre une pluralité de fonctions, consistant à vérifier l'intégrité des données de sortie série, convertir les données de sortie série en signaux de commande parallèles comprenant l'ID de clé 2, décoder l'ID de clé 2, sélectionner la clé sélectionnée parmi les clés générées par le RNG 118 directement ou les clés mémorisées aux emplacements de mémorisation de clés 510 à 514, et convertir la clé sélectionnée en les données d'entrée série et les données d'entrée série complémentaires. Un bloc de sélection de clé est intégré dans l'engin de communication série et de décodage 508.
Dans divers modes de réalisation, les clés mémorisées aux emplacements de mémorisation de clés 510 à 514 et l'ID de clé 2 sont associées à diverses régions de mémoire. Une fois que l'ID de clé 2 a été identifiée dans la zone de mémorisation de clés sécurisée 210, l'ID de clé 2 est incorporée dans les signaux de commande parallèles et les données de sortie série associées à la commande de demande de clé correspondante. Les signaux de commande parallèles peuvent être convertis par la suite en les données de sortie série par l'engin de communication série 506. Dans d'autres modes de réalisation, l'engin de communication 30 série 508 peut s'interfacer directement avec le générateur de nombres aléatoires. Lors de la réception d'une commande de demande de clé, l'engin de communication série et de décodage peut ordonner au générateur de nombres aléatoires d'émettre un nombre aléatoire. Lors de la réception du nombre aléatoire du générateur de nombres 35 aléatoires, l'engin de communication série et de décodage le renverra à l'engin de communication maître 506.
La figure 6 illustre un diagramme de synchronisation 600 pour cinq signaux inclus dans une interface de données série selon divers modes de réalisation de l'invention. Les cinq signaux comprennent une horloge série Serial_CLK, un signal de sortie série Serial_out, un signal de sortie série complémentaire /Serial_out, un signal d'entrée série Serial_in et un signal d'entrée série complémentaire /Serial_in. Dans divers modes de réalisation de la présente invention, cette interface de données série est une liaison sécurisée dédiée. Les données de sortie série Serial_out sont synchronisées avec 10 l'horloge série Serial_CLK, et associées à une commande de demande de clé dans l'engin de communication série 506 dans le processeur cryptographique 108. Les données de sortie série Serial_out sont délivrées séquentiellement aux sources de clés 112 pendant des cycles d'horloge consécutifs dans une période de temps t1 - t2. L'intégrité des 15 données de sortie série est d'abord vérifiée conformément aux données de sortie complémentaires / Serial_out délivrées avec Serial_out à l'engin de communication série et de décodage 508 à l'intérieur des sources de clés 112. Dans certains modes de réalisation, une fois vérifiées, ces données de sortie série peuvent être converties en signaux de 20 commande parallèles par un premier registre à décalage à entrée série et sortie parallèle (SIPO) dans l'engin 508. Lors de la réception des signaux de commande parallèles, l'engin 508 continue de décoder l'ID de clé et d'identifier la clé sélectionnée pendant une période de temps t2 - t3. La clé sélectionnée est généralement mémorisée en tant que 25 données parallèles à l'un des emplacements de mémorisation de clés 510 à 514. Dans certains modes de réalisation, la clé sélectionnée peut être convertie en des données d'entrée série Serial_in par un premier registre à décalage à entrée parallèle et sortie série (PISO). Des données d'entrée série complémentaires / Serial_in doivent également être 30 générées. Dans le processeur cryptographique 108, les données de sortie série Serial_out peuvent être d'abord générées à partir de signaux de commande parallèles en utilisant un deuxième registre à décalage PISO et les données d'entrée série Serial_in peuvent être transférées et reçues 35 des sources de clés 112 pendant une période de temps t3 - t4. Les données d'entrée série Serial_in sont converties par la suite par un deuxième registre à décalage SIPO dans l'engin de communication série 06 dans le processeur cryptographique 108. Par conséquent, les premiers registres à décalage SIPO et PISO sont intégrés dans l'engin 508 dans les sources de clés 112, et les deuxièmes registres à décalage PISO et SIPO sont intégrés dans l'engin 506 dans le processeur 5 cryptographique 108. Dans divers modes de réalisation de l'invention, ces registres à décalage peuvent être déclenchés sur des fronts montants, des fronts descendants, ou à la fois des fronts montants et descendants de l'horloge série. Les données d'entrée et de sortie série complémentaires sont utilisées pour éviter une injection d'erreur dans les clés sélectionnées ou dans une ID de clé pendant un processus de transfert de clé. Les attaquants peuvent injecter une erreur pour forcer la clé sélectionnée à une faible valeur, par exemple, entièrement à zéro et entièrement à un ou pour modifier une ID de clé. Pour augmenter davantage la sécurité des données pour un transfert de clé, une liaison sécurisée série peut transférer les données d'entrée et de sortie série complémentaires avec les données d'entrée et de sortie série par l'intermédiaire de leurs lignes de données respectives. Lorsque l'une des données est au niveau haut l'autre devrait être au niveau bas. Etant donné qu'elles transportent des signaux complémentaires, ces deux lignes de données délivrent différents niveaux logiques pendant un cycle d'horloge. Par conséquent, une fois que des niveaux logiques identiques sont détectés sur ces deux lignes de données, une attaque de sécurité peut se produire, et un traitement de données en cours devra être terminé. Par conséquent, les clés mémorisées dans la zone de mémorisation de clés sécurisée 210 et dans la source de clés à l'exception du RNG sont de préférence effacées. L'homme du métier reconnaîtra que l'utilisation de données d'entrée et de sortie série complémentaires est un exemple de procédé pour garantir l'intégrité de données. D'autres procédés pour l'intégrité de données peuvent être utilisés pour générer des données d'intégrité série sur la base des données d'entrée et de sortie série, et la ligne de données pour les données d'entrée et de sortie série complémentaires peut être utilisée pour transférer ces données d'intégrité série. Des données de contrôle d'intégrité peuvent être récupérées dans ces données d'intégrité série dans le processeur cryptographique pour une vérification d'intégrité.
La figure 7A illustre un procédé 700 de traitement de données utilisant une clé à base d'adresse dans un microcontrôleur sécurisé selon divers modes de réalisation de l'invention. Les données et une adresse logique correspondante sont reçues à l'étape 702, et l'adresse logique est transformée en au moins une adresse physique à l'étape 703. L'adresse physique est directement comparée à une pluralité d'ensembles de configurations de zone associés à une pluralité de clés cryptographiques à l'étape 704. Chaque ensemble de configurations de zone est associé à une région de mémoire utilisée pour mémoriser des données traitées générées en utilisant une des clés cryptographiques. L'adresse physique peut être identifiée en tant qu'emplacement dans une plage d'adresses définies par des configurations de zone dans un ensemble de configurations de zone à l'étape 706. Etant donné qu'une clé est associée à l'ensemble de configurations de zone et à une région de mémoire associée, une clé cible est identifiée à l'étape 708. Dans certains modes de réalisation, l'ensemble de configurations de zone est d'abord associé à une ID de clé 1 à l'étape 7081, et l'ID de clé 1 est par la suite associée à une clé cible à l'étape 7082. Les données sont chiffrées en utilisant la clé cible, et les données chiffrées sont mémorisées à l'adresse physique à l'étape 710. Dans un certain mode de réalisation, l'adresse logique est directement utilisée à l'étape 704, excepté que les configurations de zone sont exprimées en adresses logiques au lieu d'adresses physiques. Cependant, dans certains modes de réalisation, étant donné qu'une adresse logique peut résulter en au moins deux adresses physiques provenant de deux procédés de traitement de données, un signal de contrôle de clé peut être utilisé pour limiter les régions de mémoire mémorisant des données traitées. La figure 7B illustre un procédé 750 de chargement d'une clé à partir de sources de clés en utilisant une interface de données série selon divers modes de réalisation de l'invention. Afin de charger une clé conformément à une ID de clé 2, des données de sortie série et des données de sortie série complémentaires sont générées dans un processeur cryptographique à l'étape 752 à partir d'une commande de demande de clé qui comprend des signaux de commande parallèles. Les données de sortie série sont converties en des signaux de commande parallèles comprenant l'ID de clé 2 à l'étape 756. La clé sélectionnée est sélectionnée conformément à l'ID de clé 2 à l'étape 758, et décalée en des données d'entrée série et des données d'entrée complémentaires à l'étape 760. Deux données d'entrée série sont renvoyées au processeur cryptographique, et utilisées pour récupérer la clé sélectionnée et vérifier l'intégrité des données à l'étape 764. Les étapes 756 à 760 sont exécutées dans des sources de clés qui sont à l'extérieur du processeur cryptographique. Dans certains modes de réalisation, une liaison sécurisée dédiée est utilisée pour transférer des clés et des demandes pour des clés.
L'étape 754 est exécutée entre les étapes 752 et 756 pour transmettre les données de sortie série (c'est-à-dire, une commande de demande de clé série) et une horloge du processeur cryptographique aux sources de clés par la liaison sécurisée dédiée. L'intégrité des données de sortie série peut être confirmée conformément aux données de sortie série complémentaires dans les sources de clés à l'étape 755. De même, l'étape 762 est exécutée entre les étapes 760 et 764 pour retransférer les données d'entrée série (c'est-à-dire, une clé sélectionnée dans un format de données série) et les données d'entrée série complémentaires au processeur cryptographique par la liaison sécurisée dédiée. Les étapes 755 à 762 sont exécutées dans des sources de clés qui sont à l'extérieur du processeur cryptographique. Dans divers modes de réalisation de la présente invention, des clés peuvent être mémorisées temporairement ou en permanence à la fois dans la zone de mémorisation de clés sécurisée 210 dans le processeur cryptographique 108 et dans les sources de clés 112 à l'extérieur du processeur 108. Les identifications (ID) de clé 1 et 2 sont utilisées pour identifier la clé dans ces deux mémoires. Bien que l'invention soit susceptible d'être diversement modifiée et de prendre d'autres formes, des exemples spécifiques de celle-ci ont été montrés sur les dessins et sont décrits ici en détail. On devrait comprendre, cependant, que l'invention ne doit pas être limitée aux formes particulières présentées, mais qu'au contraire, l'invention doit couvrir toutes les modifications, tous les équivalents et toutes les variantes tombant dans l'étendue des revendications jointes.
Claims (23)
- REVENDICATIONS1. Microcontrôleur sécurisé (120) comprenant : un noyau d'unité centrale (CPU) (106) qui génère un mot de 5 données et une adresse logique ; une pluralité de sources de clés (112) qui fournissent une pluralité de clés ; un processeur cryptographique (108), couplé entre le noyau d'unité centrale et la pluralité de sources de clés, le processeur 10 cryptographique mémorisant la pluralité de clés, mappant l'adresse logique vers au moins une adresse physique dans une mémoire, et traitant le mot de données sur la base d'une clé cible sélectionnée parmi la pluralité de clés en fonction d'une adresse sélectionnée parmi l'adresse logique et l'adresse physique ; et 15 un contrôleur de mémoire (110), couplé au bloc cryptographique, le contrôleur de mémoire mémorisant chaque mot de données traité à l'adresse physique correspondante dans la mémoire ; dans lequel chaque clé est associée à une région de mémoire dans la mémoire, et la plage d'adresses de la région de mémoire est définie 20 par une pluralité de configurations de zone dans un ensemble de configurations de zone.
- 2. Microcontrôleur sécurisé selon la revendication 1, dans lequel la mémoire comprend des mémoires internes ou externes sélectionnées dans un groupe consistant en une mémoire vive (RAM), une mémoire 25 flash, une mémoire non volatile et une mémoire morte (ROM).
- 3. Microcontrôleur sécurisé selon l'une quelconque des revendications 1 et 2, dans lequel la région de mémoire est une région sélectionnée dans un groupe comprenant une mémoire complète, une région dans une mémoire ou un segment chevauchant au moins deux 30 mémoires.
- 4. Microcontrôleur sécurisé (120) selon l'une quelconque des revendications 1 à 3, dans lequel la pluralité de sources de clés (112) comprend un générateur de nombres aléatoires (118).
- 5. Microcontrôleur sécurisé (120) selon l'une quelconque des 35 revendications 1 à 4, dans lequel la pluralité de sources de clés (112) comprend un générateur de nombres aléatoires (RNG) et une mémoire sécurisée non volatile (122).
- 6. Microcontrôleur sécurisé (120) selon l'une quelconque des revendications 1 à 5, dans lequel le processeur cryptographique (108) traite le mot de données par au moins un traitement de données sélectionné dans un groupe comprenant un chiffrement de données, un déchiffrement de données, une vérification d'intégrité et un formatage de données.
- 7. Microcontrôleur sécurisé (120) selon l'une quelconque des revendications 1 à 6, dans lequel le processeur cryptographique (108) génère un mot d'intégrité, chiffre le mot de données et mappe l'adresse logique vers deux adresses physiques dans la mémoire, dans lequel le mot d'intégrité et le mot de données chiffré sont mémorisés à ces deux adresses dans la mémoire.
- 8. Microcontrôleur sécurisé selon l'une quelconque des revendications 1 à 7, dans lequel le processeur cryptographique comprend un engin AES (Advanced Encryption Standard) (386), et la taille de la clé cible est sélectionnée dans un groupe consistant en 128 bits, 192 bits et 256 bits.
- 9. Microcontrôleur sécurisé selon l'une quelconque des revendications 1 à 8, dans lequel le processeur cryptographique 20 comprend en outre : un engin cryptographique (206), couplé au noyau d'unité centrale, l'engin cryptographique mappant l'adresse logique vers au moins une adresse physique dans la mémoire, traitant au moins un mot de données sur la base de la clé cible, et générant un signal de contrôle de 25 clé, dans lequel le signal de contrôle de clé est utilisé pour demander la clé cible sur la base de l'adresse sélectionnée parmi l'adresse logique et l'adresse physique ; un bloc de registres de configuration de clé (208), couplé à l'engin cryptographique, le bloc de registres de configuration de clé générant 30 une ID de clé (1) conformément au signal de contrôle de clé et de l'adresse correspondante sélectionnée parmi l'adresse logique et l'adresse physique ; une zone de mémorisation de clés sécurisée (210), couplée au bloc de registres de configuration de clé, la zone de mémorisation de clés 35 sécurisée mémorisant la pluralité de clés fournies par les sources de clés et sélectionnant une clé cible parmi la pluralité de clés conformément à 11D de clé (1).
- 10. Microcontrôleur sécurisé selon la revendication 9, dans lequel l'ID de clé (1) est associé à un ensemble de configurations de zone correspondant à une région de mémoire dans la mémoire et l'ensemble de configurations de zone comprend une adresse basse et une adresse haute qui indiquent la plage d'adresses de la région de mémoire.
- 11. Microcontrôleur sécurisé selon l'une quelconque des revendications 9 à 10, dans lequel le bloc de registres de configuration de clé comprend en outre : une pluralité de registres de configuration de zone (302 à 312) qui 10 mémorisent une pluralité d'ensembles de configurations de zone ; et un contrôleur de mappage d'adresse (314), couplé à l'engin cryptographique, le contrôleur de mappage d'adresse étant commandé par le signal de contrôle de clé pour générer l'ID de clé en comparant l'adresse sélectionnée parmi l'adresse logique et l'adresse physique avec 15 des configurations de zone dans la pluralité d'ensembles de configurations de zone ; dans lequel chaque ensemble de configurations de zone est utilisé pour définir une plage d'adresses d'une région de mémoire dans une pluralité de régions de mémoire ; 20 dans lequel au moins une région de mémoire correspond à au moins une clé et une ID de clé (1) correspondante.
- 12. Microcontrôleur sécurisé selon l'une quelconque des revendications 9 à 11, dans lequel la zone de mémorisation de clés sécurisée comprend en outre : 25 une pluralité de registres de clé (214 à 222) qui mémorisent une pluralité de clés, dans lequel la pluralité de clés sont associées à une pluralité d'ID de clé ; un contrôleur de mappage de clé (224), couplé à la pluralité de registres de clé, le contrôleur de mappage de clé étant commandé par 30 l'ID de clé (1) pour identifier la clé cible qui est associée à l'adresse sélectionnée parmi l'adresse logique et l'adresse physique.
- 13. Microcontrôleur sécurisé (120) selon l'une quelconque des revendications 1 à 12, comprenant en outre une liaison sécurisée dédiée (404) entre le processeur cryptographique (108) et la pluralité de 35 sources de clés, et la liaison sécurisée dédiée étant mise en oeuvre en tant qu'interface de données série.
- 14. Procédé pour apparier des clés cryptographiques avec des régions de mémoire dans un microcontrôleur sécurisé, consistant à : recevoir (702) des données et une adresse logique ; transformer (703) l'adresse logique en au moins une adresse 5 physique ; comparer (704) une adresse avec une pluralité d'ensembles de configurations de zone, l'adresse étant sélectionnée parmi l'adresse physique et l'adresse logique, chaque ensemble de configurations de zone étant associé à une région de mémoire mémorisant des données 10 traitées sur la base d'une clé particulière ; identifier un ensemble de configurations de zone sur la base de l'adresse sélectionnée parmi l'adresse physique et l'adresse logique ; sélectionner une clé cible parmi une pluralité de clés conformément à l'ensemble de configurations de zone ; et 15 traiter (710) les données sur la base de la clé cible ; dans lequel la plage d'adresses de la région de mémoire est définie par une pluralité de configurations de zone incluses dans l'ensemble de configurations de zone.
- 15. Procédé selon la revendication 14 dans lequel la région de 20 mémoire utilisée pour des données de mémorisation est sélectionnée dans un groupe consistant en une mémoire vive (RAM), une mémoire flash, une mémoire non volatile et une mémoire morte (ROM).
- 16. Procédé selon la revendication 14 ou la revendication 15, dans lequel la région de mémoire est une région sélectionnée dans un groupe 25 comprenant une mémoire complète, une région dans une mémoire ou un segment chevauchant au moins deux mémoires.
- 17. Procédé selon l'une quelconque des revendications 14 à 16, dans lequel la pluralité de clés sont fournies par une pluralité de sources de clés comprenant un générateur de nombres aléatoires (RNG). 30
- 18. Procédé selon l'une quelconque des revendications 14 à 17, dans lequel la pluralité de clés sont fournies par une pluralité de sources de clés comprenant un générateur de nombres aléatoires (RNG) et une mémoire sécurisée non volatile.
- 19. Procédé selon l'une quelconque des revendications 14 à 18, 35 dans lequel l'étape de traitement des données sur la base de la clé cible peut être un traitement de données sélectionné dans un groupecomprenant un chiffrement de données, un déchiffrement de données, une vérification d'intégrité et un formatage de données.
- 20. Procédé selon l'une quelconque des revendications 14 à 19, dans lequel l'étape de traitement des données sur la base de la clé cible est effectuée dans un engin AES (Advanced Encryption Standard), et la taille de la clé cible est sélectionnée dans un groupe consistant en 128 bits, 192 bits et 256 bits.
- 21. Procédé selon l'une quelconque des revendications 14 à 20, dans lequel l'étape de sélection d'une clé cible parmi une pluralité de 10 clés conformément à l'ensemble de configurations de zone consiste en outre à : identifier une ID de clé (1) associée à l'ensemble de configurations de zone ; et sélectionner la clé cible parmi la pluralité de clés conformément à 15 l'ID de clé (1).
- 22. Procédé selon l'une quelconque des revendications 14 à 21, dans lequel chaque ensemble de configurations de zone comprend une adresse basse et une adresse haute qui indiquent la plage d'adresses de la région de mémoire correspondante. 20
- 23. Procédé selon l'une quelconque des revendications 14 à 22, dans lequel une liaison dédiée est utilisée pour transporter la pluralité de clés, et la liaison dédiée est mise en oeuvre en tant qu'interface de données série.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1158222A FR2980285B1 (fr) | 2011-09-15 | 2011-09-15 | Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise |
FR1253398A FR2980286A1 (fr) | 2011-09-15 | 2012-04-13 | Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise |
US13/597,009 US9021272B2 (en) | 2011-09-15 | 2012-08-28 | Systems and methods for managing cryptographic keys in a secure microcontroller |
FR1358884A FR2995707B1 (fr) | 2011-09-15 | 2013-09-16 | Systemes et procedes de gestion de cles de chiffrement dans un microcontroleur securise |
US14/528,810 US9537656B2 (en) | 2011-09-15 | 2014-10-30 | Systems and methods for managing cryptographic keys in a secure microcontroller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1158222A FR2980285B1 (fr) | 2011-09-15 | 2011-09-15 | Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2980285A1 true FR2980285A1 (fr) | 2013-03-22 |
FR2980285B1 FR2980285B1 (fr) | 2013-11-15 |
Family
ID=46229525
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1158222A Active FR2980285B1 (fr) | 2011-09-15 | 2011-09-15 | Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise |
FR1253398A Withdrawn FR2980286A1 (fr) | 2011-09-15 | 2012-04-13 | Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise |
FR1358884A Active FR2995707B1 (fr) | 2011-09-15 | 2013-09-16 | Systemes et procedes de gestion de cles de chiffrement dans un microcontroleur securise |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1253398A Withdrawn FR2980286A1 (fr) | 2011-09-15 | 2012-04-13 | Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise |
FR1358884A Active FR2995707B1 (fr) | 2011-09-15 | 2013-09-16 | Systemes et procedes de gestion de cles de chiffrement dans un microcontroleur securise |
Country Status (2)
Country | Link |
---|---|
US (2) | US9021272B2 (fr) |
FR (3) | FR2980285B1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860174A (zh) * | 2019-11-27 | 2021-05-28 | 瑞昱半导体股份有限公司 | 数据写入系统与方法 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8675868B1 (en) * | 2008-07-01 | 2014-03-18 | Maxim Integrated Products, Inc. | Encrypting an address-dependent value along with code to prevent execution or use of moved code |
US8943330B2 (en) * | 2011-05-10 | 2015-01-27 | Qualcomm Incorporated | Apparatus and method for hardware-based secure data processing using buffer memory address range rules |
US8874935B2 (en) | 2011-08-30 | 2014-10-28 | Microsoft Corporation | Sector map-based rapid data encryption policy compliance |
US10430608B2 (en) * | 2013-06-14 | 2019-10-01 | Salesforce.Com, Inc. | Systems and methods of automated compliance with data privacy laws |
US10615967B2 (en) * | 2014-03-20 | 2020-04-07 | Microsoft Technology Licensing, Llc | Rapid data protection for storage devices |
GB2524561A (en) | 2014-03-27 | 2015-09-30 | St Microelectronics Res & Dev | Methods and apparatus for storing content |
AT513782B1 (de) | 2014-04-11 | 2018-08-15 | Avl List Gmbh | Vorrichtung und Verfahren zur Übermittlung von Daten |
KR102208072B1 (ko) | 2014-09-01 | 2021-01-27 | 삼성전자주식회사 | 데이터 처리 시스템 |
US9825945B2 (en) | 2014-09-09 | 2017-11-21 | Microsoft Technology Licensing, Llc | Preserving data protection with policy |
US9830479B2 (en) * | 2014-09-16 | 2017-11-28 | Nxp Usa, Inc. | Key storage and revocation in a secure memory system |
US9853812B2 (en) | 2014-09-17 | 2017-12-26 | Microsoft Technology Licensing, Llc | Secure key management for roaming protected content |
CN105637491B (zh) * | 2014-09-26 | 2017-06-20 | 华为技术有限公司 | 一种文件迁移方法、装置和存储设备 |
US9900295B2 (en) | 2014-11-05 | 2018-02-20 | Microsoft Technology Licensing, Llc | Roaming content wipe actions across devices |
US9524249B2 (en) * | 2014-12-23 | 2016-12-20 | Intel Corporation | Memory encryption engine integration |
US9853820B2 (en) | 2015-06-30 | 2017-12-26 | Microsoft Technology Licensing, Llc | Intelligent deletion of revoked data |
US9900325B2 (en) | 2015-10-09 | 2018-02-20 | Microsoft Technology Licensing, Llc | Passive encryption of organization data |
US10776294B2 (en) * | 2015-11-16 | 2020-09-15 | Atmel Corporation | System architecture with secure data exchange |
EP3185464B1 (fr) | 2015-12-21 | 2020-05-20 | Hewlett-Packard Development Company, L.P. | Arborescences d'informations pour génération de clé |
CN106100829B (zh) * | 2016-05-23 | 2020-05-19 | 深圳市硅格半导体有限公司 | 加密存储的方法及装置 |
US10536441B2 (en) * | 2016-08-23 | 2020-01-14 | Texas Instruments Incorporated | Thread ownership of keys for hardware-accelerated cryptography |
US20190004973A1 (en) * | 2017-06-28 | 2019-01-03 | Intel Corporation | Multi-key cryptographic memory protection |
CN107516047A (zh) | 2017-08-08 | 2017-12-26 | 杭州中天微系统有限公司 | 一种存储数据加解密装置及方法 |
US10872043B2 (en) * | 2017-08-17 | 2020-12-22 | Microchip Technology Incorporated | Systems and methods for integrity checking of code or data in a mixed security system while preserving confidentiality |
DE102018202357A1 (de) | 2018-02-15 | 2019-08-22 | Bundesdruckerei Gmbh | Verfahren zum Verarbeiten eines kryptographischen Schlüssels und Prozessorchipkarte |
IL258368B2 (en) | 2018-03-26 | 2024-04-01 | Kazuar Advanced Tech Ltd | Secure computer system |
US10691813B2 (en) * | 2018-03-30 | 2020-06-23 | Intel Corporation | Techniques for enclave confidentiality management |
GB201807257D0 (en) * | 2018-05-02 | 2018-06-13 | Nordic Semiconductor Asa | Cryptographic key distribution |
GB201809526D0 (en) * | 2018-06-11 | 2018-07-25 | Wibu Systems Ltd | Key protection device |
US11010067B2 (en) * | 2018-12-28 | 2021-05-18 | Intel Corporation | Defense against speculative side-channel analysis of a computer system |
US11030120B2 (en) * | 2019-06-27 | 2021-06-08 | Intel Corporation | Host-convertible secure enclaves in memory that leverage multi-key total memory encryption with integrity |
CN114503105A (zh) * | 2019-09-25 | 2022-05-13 | 联邦科学和工业研究组织 | 用于浏览器应用的密码服务 |
US11436342B2 (en) | 2019-12-26 | 2022-09-06 | Intel Corporation | TDX islands with self-contained scope enabling TDX KeyID scaling |
US20220100871A1 (en) * | 2020-09-26 | 2022-03-31 | Intel Corporation | Scalable multi-key memory encryption |
US20220385451A1 (en) * | 2021-05-26 | 2022-12-01 | Micron Technology, Inc. | Data invalidation for memory |
KR20230056920A (ko) * | 2021-10-21 | 2023-04-28 | 삼성전자주식회사 | 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002077878A1 (fr) * | 2001-03-26 | 2002-10-03 | Galois Connections Inc | Crypto-pointeurs pour stockage de donnees sur |
US20060047972A1 (en) * | 2004-08-27 | 2006-03-02 | Microsoft Corporation | System and method for applying security to memory reads and writes |
US20070140477A1 (en) * | 2005-12-16 | 2007-06-21 | Lsi Logic Corporation | Memory encryption for digital video |
EP1978467A1 (fr) * | 2007-04-05 | 2008-10-08 | STMicroelectronics (Research & Development) Limited | Circuit intégré et procédé pour l'exécution sécurisée de logiciels |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2689998B2 (ja) * | 1990-08-22 | 1997-12-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 暗号動作を行う装置 |
US5333034A (en) * | 1992-01-31 | 1994-07-26 | Bremson Data Systems, Inc. | System for selectively controlling the spectral make-up of visible light from a source thereof |
US5224166A (en) * | 1992-08-11 | 1993-06-29 | International Business Machines Corporation | System for seamless processing of encrypted and non-encrypted data and instructions |
WO1995016238A1 (fr) * | 1993-12-06 | 1995-06-15 | Telequip Corporation | Carte memoire de securite pour ordinateur |
US6038400A (en) * | 1995-09-27 | 2000-03-14 | Linear Technology Corporation | Self-configuring interface circuitry, including circuitry for identifying a protocol used to send signals to the interface circuitry, and circuitry for receiving the signals using the identified protocol |
US5587957A (en) * | 1995-09-29 | 1996-12-24 | Intel Corporation | Circuit for sharing a memory of a microcontroller with an external device |
US7143289B2 (en) * | 2000-10-30 | 2006-11-28 | Geocodex Llc | System and method for delivering encrypted information in a communication network using location identity and key tables |
WO2003027816A1 (fr) * | 2001-09-28 | 2003-04-03 | High Density Devices As | Procede et dispositif de cryptage/decryptage de donnees sur un dispositif de memoire a grande capacite |
US7107459B2 (en) * | 2002-01-16 | 2006-09-12 | Sun Microsystems, Inc. | Secure CPU and memory management unit with cryptographic extensions |
DE102004014435A1 (de) * | 2004-03-24 | 2005-11-17 | Siemens Ag | Anordnung mit einem integrierten Schaltkreis |
US20070168292A1 (en) * | 2004-12-21 | 2007-07-19 | Fabrice Jogand-Coulomb | Memory system with versatile content control |
KR100664186B1 (ko) * | 2004-12-22 | 2007-01-03 | 엘지전자 주식회사 | 이동통신 단말기의 키 제어 장치 및 방법 |
US8605224B2 (en) * | 2008-02-27 | 2013-12-10 | Silicon Laboratories Inc. | Digital interface for tuner-demodulator communications |
-
2011
- 2011-09-15 FR FR1158222A patent/FR2980285B1/fr active Active
-
2012
- 2012-04-13 FR FR1253398A patent/FR2980286A1/fr not_active Withdrawn
- 2012-08-28 US US13/597,009 patent/US9021272B2/en active Active
-
2013
- 2013-09-16 FR FR1358884A patent/FR2995707B1/fr active Active
-
2014
- 2014-10-30 US US14/528,810 patent/US9537656B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002077878A1 (fr) * | 2001-03-26 | 2002-10-03 | Galois Connections Inc | Crypto-pointeurs pour stockage de donnees sur |
US20060047972A1 (en) * | 2004-08-27 | 2006-03-02 | Microsoft Corporation | System and method for applying security to memory reads and writes |
US20070140477A1 (en) * | 2005-12-16 | 2007-06-21 | Lsi Logic Corporation | Memory encryption for digital video |
EP1978467A1 (fr) * | 2007-04-05 | 2008-10-08 | STMicroelectronics (Research & Development) Limited | Circuit intégré et procédé pour l'exécution sécurisée de logiciels |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860174A (zh) * | 2019-11-27 | 2021-05-28 | 瑞昱半导体股份有限公司 | 数据写入系统与方法 |
Also Published As
Publication number | Publication date |
---|---|
US9537656B2 (en) | 2017-01-03 |
US9021272B2 (en) | 2015-04-28 |
US20130238907A1 (en) | 2013-09-12 |
FR2995707A1 (fr) | 2014-03-21 |
FR2980286A1 (fr) | 2013-03-22 |
FR2980285B1 (fr) | 2013-11-15 |
US20160072628A1 (en) | 2016-03-10 |
FR2995707B1 (fr) | 2017-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2980285A1 (fr) | Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise | |
US10579793B2 (en) | Managed securitized containers and container communications | |
CN112074836B (zh) | 通过可信执行环境保护数据的设备和方法 | |
US11831710B2 (en) | Tracking and certification of digital media via distributed ledger | |
Dai et al. | SBLWT: A secure blockchain lightweight wallet based on trustzone | |
US9684789B2 (en) | Arbitrary code execution and restricted protected storage access to trusted code | |
US8127146B2 (en) | Transparent trust validation of an unknown platform | |
US7853780B2 (en) | Core initialization code validation | |
CN111355705A (zh) | 一种基于区块链的数据审计与安全去重云存储系统、方法 | |
EP2759955A1 (fr) | Sauvegarde et restauration sécurisé de stockage protégé | |
GB2517016A (en) | Secure data storage | |
US20070226494A1 (en) | Computer architecture for an electronic device providing single-level secure access to multi-level secure file system | |
EP3320471B1 (fr) | Systeme et procede d'authentification et de licence ip de modules hardware | |
CN104579689A (zh) | 一种软密钥系统及实现方法 | |
FR2979443A1 (fr) | Microcontroleur securise a base de mode | |
WO2019199813A2 (fr) | Chaîne de blocs de haute intégrité gérée et communications de chaînes de blocs utilisant des conteneurs | |
FR2926149A1 (fr) | Dispositif, systemes et procede de demarrage securise d'une installation informatique | |
US11824977B2 (en) | Data processing system and method | |
Cano-Quiveu et al. | IRIS: An embedded secure boot for IoT devices | |
EP2860660A1 (fr) | Système et méthode de chargement sécurisé de données dans une mémoire cache associée à un processeur sécurisé | |
US11995195B2 (en) | System and device for data management | |
FR3098613A1 (fr) | Procede de gestion du fonctionnement d’au moins un logiciel applicatif chiffre et circuit integre correspondant | |
WO2019133298A1 (fr) | Contenants sécurisés gérés et communications de contenant | |
US11356271B2 (en) | Systems and methods for providing a trusted keystore | |
CN117786683A (zh) | 应用程序防勒索系统、方法、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
CA | Change of address |
Effective date: 20131018 |
|
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 |