DE112009002502B4 - Multilayer inhalte-schützender Mikrocontoller - Google Patents
Multilayer inhalte-schützender Mikrocontoller Download PDFInfo
- Publication number
- DE112009002502B4 DE112009002502B4 DE112009002502.1T DE112009002502T DE112009002502B4 DE 112009002502 B4 DE112009002502 B4 DE 112009002502B4 DE 112009002502 T DE112009002502 T DE 112009002502T DE 112009002502 B4 DE112009002502 B4 DE 112009002502B4
- Authority
- DE
- Germany
- Prior art keywords
- memory
- data
- access
- block
- address
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
einen Speicher, der Daten speichert;
eine Prozessoreinheit, die eine Vielzahl an Befehlen erzeugt;
eine Zugriffssteuerung (102), verbunden, um die Vielzahl an Befehlen zu empfangen, wobei die Zugriffssteuerung (102) eine Vielzahl an Berechtigungs-Registern aufweist, die Zugriffsrechte zu den innerhalb des Speichers gespeicherten Daten festlegen;
ein erstes Berechtigungs-Register, innerhalb der Vielzahl an Berechtigungs-Registern, das einen ersten Satz an Zugriffsrechten zu einer ersten Menge von Daten innerhalb des Speichers festlegt;
ein zweites Berechtigungs-Register, innerhalb der Vielzahl an Berechtigungs-Registern, das einen zweiten Satz an Zugriffsrechten zu einer zweiten Menge von Daten innerhalb des Speichers festlegt,
wobei die zweite Menge anders als die erste Menge ist; und
einen mit der Zugriffssteuerung (102) verbundenen Ausnahmeverwalter, der einen Zugriffsbefehl zu der ersten Menge an Daten in Reaktion darauf, dass der Zugriffsbefehl den ersten Satz an mit der ersten Menge an Daten verbundenen Zugriffsrechten nicht erfüllt, unterbricht;
bei welchem die Zugriffsrechte eine Vielzahl von Benutzer-Berechtigungs-Ebenen für den sicheren Mikrocontroller (100) betreffen.
Description
- Erfindungsgebiet
- Die vorliegende Erfindung bezieht sich allgemein auf Mikrocontroller, und insbesondere auf Technologien, die den Schutz von Inhalten, wie zum Beispiel Bestandteilen geistigen Eigentums, durch Speichern mit einem Mikrocontroller ermöglichen. Mikrocontroller mit diesen Merkmalen werden allgemein als sichere Mikrocontroller bezeichnet.
- Hintergrund der Erfindung
- Inhalteschutz innerhalb eines Prozessors oder Mikrocontrollers ist seit geraumer Zeit eine Herausforderung für die Elektronikindustrie. Mit dem Fortschreiten der Halbleitertechnologie sind sichere Mikrocontroller komplexe Systeme auf einem Chip geworden. Kritische Systemfunktionen, die zuvor durch Hardware realisiert wurden, können nun durch Software realisiert werden, die es Original-Ausstatter-Herstellern („OEMS“) ermöglicht, schnell hochwertige, kostengünstige Mikrocontroller auf einem Markt anzubieten. Zum Beispiel ermöglichen programmierbare nichtflüchtige speicherbasierte Mikrocontroller häufige Systemaktualisierungen, einschließlich Codemodifikationen und das Hinzufügen neuer Funktionen durch zahlreiche Anwendungs-/Inhalteanbieter für den Mikrocontroller.
- Oftmals können diese Codemodifikationen und/oder neuen Funktionen wertvolles geistiges Eigentum darstellen, welches der Anbieter besitzt und welches anfällig für nicht autorisierten Zugriff durch Dritte ist. Darüber hinaus sind Softwareimplementierungen innerhalb eines Mikrocontrollers normalerweise einfacher rückwärts zu konstruieren als Hardware. Als ein Ergebnis können nichtflüchtige speicherbasierte elektronische Baugruppen Hardwaredatenschutz beinhalten, der versucht, dieses geistige Eigentum innerhalb der elektronischen Baugruppe zu sichern.
- Mikrocontroller beinhalten typischerweise einen für Zugriffssteuerungsinformationen reservierten Speicherbereich entsprechend dem Datenbereich in einem nichtflüchtigen Speicher. Der Datenbereich kann entweder als eine sämtliche Speicherzellen beinhaltende einzelne Einheit zum Datenspeichern oder in einer Vielzahl von Speichersegmenten entsprechend der physischen Struktur des Speicherarrays ausgestaltet sein. In Systemen des Standes der Technik wird eine Zugriffssteuerung zu einem bestimmten Segment durch Hardware durchgesetzt. Ein Programmcode kann durch den Prozessor ausgeführt werden, wobei aber Lese- und Schreiboperationen wegen der Steuerungseinstellungen untersagt sind. Typischerweise ist der einzige Weg, diesen Schutz aufzuheben, zunächst sowohl den Schutzprogrammcode als auch seine entsprechende Zugriffssteuerungsinformation zu löschen.
- Dieser Ansatz stellt effektiven Datenschutz bereit, verursacht aber auch signifikanten Verwaltungsaufwand hinsichtlich zusätzlicher Speicherbereiche für Steuerungsinformationen und CPU-Zeit für Löschung und Umprogrammierung, selbst für kleinere Aktualisierungen. Verwaltung für CPU-Zeit senkt nicht nur die Systemeffizienz sondern steigert auch die Programmverwaltungskomplexität.
- Diese einfache Sicherheitsanordnung aber starre Gestaltung erzwingt zu viele Einschränkungen und kann für den Endverbraucher eine Last sein. Da Programmcodes für Mikrocontrolleroperationen anspruchsvoller und komplizierter werden, kann es vorteilhaft sein, vom OEM und anderen Anbietern bereitgestellte verfügbare Softwarebibliotheken zu nutzen anstatt ein vollständiges Programm von Grund auf zu entwerfen. Eine Softwarebibliothek beinhaltet wichtige Algorithmusroutinen und bestimmte Funktionen und ist einsatzbereit für Subroutinenaufrufe. Solch eine Sofwarebibliothek stellt wesentlichen Wert als geistiges Eigentum („IP“) für das Endprodukt dar. Darüber hinaus könnte eine Programmentwicklung verschiedene Entwickler während verschiedener Phasen mit der Möglichkeit von Offshore Unterstützung und Wartung involvieren. Diese Multilayer-Programmentwicklung und Multientwickler-Teilnahme daran ergibt eine komplexe Umgebung, in welcher sicheres Erhalten geschützten IP-Inhalts schwierig ist.
- Aktuellen Zugriffssteuerungsschemata fehlt es auch an direktem Auslesen von Betriebsparameter im Programmspeicherplatz. Betriebsparameter werden normalerweise während der Systeminitialisierung gesetzt und als Datentabellen im nichtflüchtigen Speicher gespeichert, so dass Daten im Falle eines Energieverlustes erhalten bleiben. Es ist übliche Praxis, diese kritischen Parameter im selben nichtflüchtigen Speicher mit dem/n Systemprogramm/en des Mikrocontrollers zu speichern. Wenn der geschützte Programmbereich lediglich zur Ausführung ist und das Lesen von Daten verbietet, dann kann das Lesen von Betriebsparametern ein Problem sein.
- Die obigen Beschränkungen stellen eine Herausforderung für den IP-Schutz in Systemen auf einem Chip dar, insbesondere für kostengünstige aber hochintegrierte elektronische Systeme wie zum Beispiel sichere Mikrocontroller.
- Hierfür relevante Offenbarungen sind beispielsweise in den Dokumenten
US 2007/0050580 A1 ,US 2003/0084308 A1 undUS 6,845,159 B1 zu finden. DieUS 2007/0050580 A1 offenbart ein Gerät, System und Verfahren zur Kontrolle von Speicherzugriffen zwischen Subkontexten in einem Rechner. Es wird eine Berechtigungszuordnung für Zugriffe zwischen den Subkontexten aufrechterhalten. Ein Steuermodul überwacht alle Zugriffe zwischen den Subkontexten und verhindert jene, für die keine Berechtigungszuordnung existiert. DieUS 2003/0084308 A1 offenbart ein Verfahren zur Verschlüsselung eines Datenworts unter Kontrolle einer zugeordneten Adresse A mittels zweier kryptografischer Schritte. Hierbei wird zunächst die Adresse durch eine Hash-Funktion in eine gehashte Adresse umgewandelt. Das Datenwort wird mit der gehashten Adresse kombiniert. Das Ergebnis wird mit einem Blockverschlüsselungsverfahren verschlüsselt. Ein Dekryptor entschlüsselt das aus dem Speicher gelesene verschlüsselte Wort, ebenfalls unter Kontrolle der Adresse A. Eine inverse Blockverschlüsselung wandelt das verschlüsselte Wort in eine Zwischenform um. Ein Dekomponierer, erzeugt aus dem entschlüsselten verschlüsselten Wort und der gehashten Adresse das Klartext-Datenwort. DieUS 6,845,159 B1 offenbart eine Methode und ein Gerät zur Datenverarbeitung, die für Verschlüsselung, Entschlüsselung und Authentifizierung von Nachrichten verwendet werden. Hierbei bestimmen Eingangsinformationen die Reihenfolge und Anzahl von durchgeführten Operationen. Die Operationen sind so konzipiert, dass jede mögliche Eingabezeichenfolge als gültiges Programm interpretiert wird. Der Prozess entwickelt sich für jede mögliche Eingabezeichenfolge unterschiedlich und der durch das Modul durchgeführte Prozess kann nicht durch einen Algorithmus beschrieben werden. - Zusammenfassung der Erfindung
- Die vorliegende Erfindung betrifft einen Mikrocontroller, der Multilayerschutz von geschütztem digitalen Inhalt bietet. Mehrere Ausführungsformen des Mikrocontrollers umfassen eine sichere CPU, einen Echtzeitchiffreur und ein benutzer-programmierbares Multilayerzugriffssteuerungssystem von programmierbarem nichtflüchtigen Speicher innerhalb des Mikrocontrollers. Programmierbarer nichtflüchtiger Speicher ermöglicht für den Endbenutzer intra-System- und intra-Anwendungsprogrammieren und ist zum Erhalten von Dateninhalt fähig, wenn die Stromversorgung entfernt wird.
- Multilayerzugriffssteuerung wird in oder mit dem Mikrocontroller angeboten und ermöglicht Vertraulichkeitsschutz für eingebetteten digitalen Inhalt durch Steuern des Lesens, Schreibens und/oder Ausführung eines Codesegments gemäß eines Satzes an benutzer-programmierten Parametern. In bestimmten Ausführungsformen bezieht ein Chiffreur einen Satz an kryptographischen Regeln zur Datenverschlüsselung und - entschlüsselung mit Reihen- und Spaltenmanipulation der Datenspeicherung mit ein. In einigen Ausführungsformen der Erfindung werden kryptographische Operationen parallel mit einer CPU Laufzeit ausgeführt, ohne dass erhebliche zusätzliche Latenzzeit und Verzögerung für Systemoperationen anfällt.
- Bestimmte Merkmale und Vorteile der vorliegenden Erfindung wurden im Allgemeinen in diesem Zusammenfassungskapitel beschrieben; jedoch werden weitere Merkmale, Vorteile und Ausführungsformen hier präsentiert oder werden für einen durchschnittlichen Fachmann aus den Ansichten der Zeichnungen, der Spezifikation oder den Ansprüchen ersichtlich sein. Dementsprechend sollte verstanden sein, dass der Umfang der Erfindung nicht durch die bestimmten Ausführungsformen begrenzt wird, die in dieser Zusammenfassung offenbart werden.
- Kurzbeschreibung der Zeichnungen
- Bezug wird genommen auf Ausführungsformen der Erfindung, von denen Beispiele gegebenenfalls in den zugehörigen Figuren veranschaulicht werden. Diese Figuren sind bestimmt, erläuternd zu sein, nicht begrenzend. Obwohl die Erfindung im Allgemeinen im Zusammenhang mit diesen Ausführungsformen beschrieben wird, soll verstanden werden, dass es nicht beabsichtigt ist, den Umfang der Erfindung auf diese besonderen Ausführungsformen zu begrenzen.
- Figur („Fig.“) 1 veranschaulicht ein Blockdiagramm eines einen Inhalte mit geistigem Eigentum schützenden Mikrocontrollers (oder sicheren Mikrocontroller) Blockdiagramm gemäß unterschiedlichen Ausführungsformen der Erfindung.
-
2 veranschaulicht ein Blockdiagramm der Zugriffssteuerung und verbundener Schaltungen für mehrere Ausführungsformen der Erfindung. -
3 ist eine Tabelle, die die Programmspeichergrenzen und Berechtigungsebenen gemäß unterschiedlichen Ausführungsformen der Erfindung beschreibt. -
4 ist ein Diagramm der Programmspeichersegmentierung für ein Dreispeichersegment gemäß unterschiedlichen Ausführungsformen der Erfindung. -
5 ist ein Diagramm der Programmspeichersegmentierung für ein Zweispeichersegment gemäß unterschiedlichen Ausführungsformen der Erfindung. -
6 ist eine Tabelle der Berechtigungs-Registerebenen für ein Dreispeichersegment gemäß unterschiedlichen Ausführungsformen der Erfindung. -
7 ist ein Blockdiagramm der funktionalen Chiffrierblöcke und Schnittstellen für mehrere Ausführungsformen der Erfindung. -
8 ist ein Blockdiagramm der chiffrierblock-internen Struktur gemäß unterschiedlichen Ausführungsformen der Erfindung. -
9 ist ein Flussdiagramm, welches den Betrieb der Multilayerzugriffssteuerung gemäß unterschiedlichen Ausführungsformen der Erfindung veranschaulicht. -
10 ist ein Flussdiagramm, welches den Betrieb des Chiffreurs gemäß unterschiedlichen Ausführungsformen der Erfindung veranschaulicht. - Detaillierte Beschreibung der Erfindung
- Ausführungsformen der vorliegenden Erfindung sehen Systeme, Vorrichtungen und Verfahren für sichere Mikrocontroller vor. In der folgenden Beschreibung werden zu Zwecken Klärung der Erläuterung, bestimmte Details dargelegt, um ein Verständnis der Erfindung zu vermitteln. Jedoch wird es für einen Fachmann ersichtlich sein, dass die Erfindung ohne diese Details ausgeführt werden kann. Ein Fachmann wird erkennen, dass nachfolgend beschriebene Ausführungsformen der vorliegenden Erfindung auf einer Vielzahl von Wegen und durch Verwenden einer Reihe von Mitteln durchgeführt werden können. Fachleute werden auch erkennen, dass zusätzliche Modifikationen, Anwendungen und Ausführungsformen innerhalb dieses Umfangs liegen, ebenso wie zusätzliche Bereiche, in welchen die Erfindung von Nutzen sein könnte. Folglich sind die nachfolgend beschriebenen Ausführungsformen veranschaulichend für besondere Ausführungsformen der Erfindung und sollen ein Verschleiern der Erfindung verhindern.
- Bezugnahme in der Spezifikation auf „eine Ausführungsform“ oder „Ausführungsform“ bedeutet, dass ein besonderes Merkmal, Struktur, Charakteristik oder Funktion, das in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform der Erfindung enthalten ist. Das Auftreten des Ausdrucks „in einer Ausführungsform“ oder dergleichen an unterschiedlichen Stellen in der Spezifikation bezieht sich nicht notwendigerweise auf dieselbe Ausführungsform.
- A. Sicherer Mikrocontroller
- Ein sicherer Mikrocontroller, der Kern- und funktionale Elemente mit Sicherheits- und Schutzfunktionen umfasst, wird gemäß unterschiedlichen Ausführungsformen der Erfindung beschrieben. Die Schutzfunktionen können Teil des Mikrocontrollerkerns sein, der ein Steuerungsprotokoll für Speicherzugriff entsprechend der Lese/Schreib-Berechtigung jedes Speichersegments einbezieht, das durch den Systemprogrammierer festgelegt wird. Das Berechtigungsprotokoll kann durch mit einer Speicherverwaltungseinheit und Programmroutinen, die in einem Hilfs-ROM liegen, verbundene Hardware durchgesetzt werden. Hilfsfunktionen können ein Sicherungsladeprogramm zur Systemprogrammierung und einen Schaltungs-Debugger zur Programmcodeentwicklung enthalten. Um zusätzlichen Schutz zum eingelagerten Programmcode zu gewährleisten, können Dateninhalte und Speicherplätze in Laufzeit durch einen Hardwarechiffreur entsprechend bestimmten Ausführungsformen der Erfindung verschlüsselt werden. Dadurch können ein oder mehrere Programme innerhalb eines Mikrocontrollers durch mehrere Entwickler gebaut werden, während der gesicherte Inhalt jedes Entwicklers innerhalb des Mikrocontrollers gesichert ist. In unterschiedlichen Ausführungsformen ist der gesicherte, innerhalb des Mikrocontrollers gespeicherte Inhalt jedes Entwicklers besonderen Zugriffsrechten zugeordnet, die den Zugriff auf diesen Inhalt durch andere Parteien beschränken und/oder blockieren.
-
1 ist ein Blockdiagramm eines sicheren Mikrocontrollers 100 gemäß unterschiedlichen Ausführungsformen der Erfindung. Wie in1 gezeigt, beinhaltet ein Mikrocontrollerkern 101 eine zentrale Prozessoreinheit („CPU“) und einen Ausnahmeverwalter. Die CPU wird auch als „Prozessoreinheit“ bezeichnet. In bestimmten Ausführungsformen der Erfindung ist die CPU des Mikrocontrollerkerns 101 als ein kanalisierter Prozessor implementiert, was einen einzigen Zeitgebertakt zum Vorausabrufen von Programmcode erlaubt. Folglich verursacht ein Befehlswort, dass ein Befehl in einem Zeitgebertakt ausgeführt wird. Dies ermöglicht höhere Systemzeitgeberfrequenzen mit Programmspeicher, der lange Zugriffszeiten hat, wie zum Beispiel einem Flash-Speicher. Die Codeausführung ist dennoch eintaktig Takt für einen Linearcode, aber Codeverzweigung zieht einen Zeitgebertaktnachteil nach sich, sofern nicht weitere Messungen realisiert werden, wie zum Beispiel eine Zweigvorhersageeinheit. Eine Befehlscodeoperation umfasst im Allgemeinen eine Anzahl von Takten an Codeausführungen, die eine besondere Funktion bestimmen. Außerdem werden die Begriffe „Code“, „Programmcode“ und „Befehlscode“ als synonym betrachtet. - In unterschiedlichen Ausführungsformen benutzt der Prozessor die Harvard-Speicherarchitektur mit gesonderten Programm- und Datenspeichern. Diese Speicherarchitektur verbessert die Systembandbreite durch das Zulassen simultanen Zugriffs auf Programm- und Datenspeicher; es erlaubt auch das Benutzen unterschiedlicher Wortlängen für Datenspeicherung. Zum Beispiel können sowohl die Programmspeicheradressen als auch die Datenspeicheradressen 16 Bits haben. Die 16-Bit effektive Adresse unterstützt 65536 (64K) 16-Bit Wörter des Programmspeichers und 64K 16-Bit Wörter des Datenspeichers. Um Zugriff auf Datentabellen zu gewähren, die im Programmspeicher gespeichert sind, unterstützt der Prozessor einen Von-Neumann-Architekturzugriff, wobei dieser Zugriff aber eine 1-Taktverzögerung beinhaltet, es sei denn ein Befehlscache ist implementiert. Ein Fachmann wird erkennen, dass unterschiedliche Prozessorarchitekturen, Zeitgeberschemata und Adressierungsverfahren gemäß Ausführungsformen der Erfindung realisiert werden können.
- Der Ausnahmeverwalter ist Bestandteil des Mikrocontrollerkerns 101 und funktioniert so, dass Unterbrechungen des normalen Programmflusses verursacht werden, wenn unerwartete oder erwartete Ereignisse oder Bedingungen auftreten. Zum Beispiel kann ein unzulässiger Versuch durch einen nicht autorisierten Benutzer, auf gesicherten Inhalt zuzugreifen, eine Unterbrechung erzeugen, die effektiv solch einen Zugriff verhindert.
- Der Programmspeicher speichert Inhalt, der einen Programmcode und Betriebsparameter enthalten kann. Der Hauptprogrammspeicher kann durch die Verwendung von nichtflüchtigem Speicher realisiert werden, wie zum Beispiel durch Flash-Speicher 106 oder EEPROM.
- Ein ROM 105 ist ebenfalls mit dem Programmplatz gemappt, um Hilfsfunktionen zu unterstützen, die keine intra-System-Programmierbarkeit benötigen, wie zum Beispiel eine Urladeprogrammfunktion, intra-Schaltungsdebuggen und Chiptesten. Um einwandfreien Betrieb zu gewährleisten, können Löschen und Schreiben auf programmierbare nichtflüchtige Speicher durch Subroutineaufrufe auf das Hilfs-ROM 105 durchgeführt werden und dadurch nur durch den Systemcodespeicher zugreifbar sein. In bestimmten Ausführungsformen der Erfindung ist Lesezugriff auf den Flash-Speicher 106 ein Takt, wobei aber die Lösch- und Schreibzeiten nicht deterministisch sind, da diese Operationen durch einen Hilfs-ROM- 105 Code über ein Paar von Steuer- und Datenregister verarbeitet werden.
- Datenspeicher speichert unterschiedliche Arten von Daten innerhalb des Mikrocontrollers. Ein Fachmann wird erkennen, dass der Datenspeicher durch eine Vielzahl an Speichertechnologien realisiert werden kann, wie zum Beispiel SRAM 107.
- Ein Merkmal des sicheren Mikrocontrollers 100 ist seine hierarchische Multilayerzugriffssteuerung auf den Programmspeicher. Diese Hierarchie wird durch Verwenden eines physischen Layers, der mit der Speicherverwaltungseinheit (MMU) 103 verbunden ist, und der Zugriffssteuerung 102 und der Sicherheitsmerkmale des Mikrocontrollerkerns 101 verwirklicht. Der physische Layer enthält Überwachungs- und Komparatorschaltungen, die den Programmfluss kontinuierlich in einem Speicherschutzmodus überwachen und einen Lese/Schreib-Zugriff des Programmspeichers entsprechend den benutzerdefinierten Berechtigungsebenen für Speichersegmente steuern. In einer besonderen Ausführungsform kann der Programmspeicher in drei Speichersegmente aufgeteilt werden, die drei Zugriffsberechtigungsebenen für das System bereitstellen. Der Speicherbereich und die Zugriffsberechtigung für jedes Segment können durch Verwenden eines Satzes reservierter Register im Universal-Registerplan der CPU bestimmt sein. In bestimmten Ausführungsformen sind diese Register benutzer-programmierbar, wobei aber ihre Zugriffssequenz durch eine atomare Schaltung in Form eines Paares von sequenzgesteuerten Registern durchgesetzt wird. Eine atomare Operation bezieht sich auf einen Satz an Operationen, die kombiniert werden können, so dass sie gegenüber dem Rest des Systems als eine Operation mit nur zwei möglichen Ergebnissen erscheinen: Erfolg oder Fehlschlag.
- In unterschiedlichen Ausführungsformen der Erfindung wird die Zugriffssteuerung im Speicherschutzmodus in Kraft treten, wenn ein Speicherschutzfreigabe- („MPE“) Bit im Systemregister gesetzt ist. In bestimmten Beispielen kann dieses Systemregister lediglich durch Programmcodes, die im höchsten Sicherheitsspeichersegment liegen, zugreifbar sein. In diesem Betriebsmodus ruft, decodiert und führt die CPU Programmbefehle in normaler Art ab bzw. aus. Die Steuerungszugriffsschaltung überwacht den Befehlsdecoder für Speicherbefehle. Wenn ein Lade- oder Speicherbefehl entdeckt wird, benutzt der Überwacher die letzte Programmadresse, um die vorhandene Zugriffsberechtigung festzustellen. Die vorhandene Berechtigung wird dann benutzt, um die Legitimität der Quelle/des Ziels zu testen, indem der Komparator die Zeigeradresse gegen die Segmentgrenzen prüft. Lediglich autorisierter Lese- oder Schreibzugriffe, d.h. zugelassene unter entsprechender Zugriffsberechtigung/ entsprechenden Zugriffsberechtigungen Zugriffe werden durch die CPU ausgeführt. Jeder unautorisierte Zugriffsversuch verursacht eine Ausnahme oder Unterbrechung, wahlweise wird das Programm gezwungen, eine benutzer-definierte Programmroutine in Reaktion auszuführen.
- Wie in
1 veranschaulicht, kann der Mikrocontroller 100 auch einen bidirektionalen Hardwarechiffreur 104 enthalten, der Befehlscode während der Laufzeit zum Zweck des Schutzes der eingelagerten Software entsprechend unterschiedlichen Ausführungsformen der Erfindung umwandelt. Für starken kryptografischen Schutz kann ein Chiffreur verwendet werden, der einen herkömmlichen kryptografischen Algorithmus verwendet, wie zum Beispiel Tripel-DES oder AES. In bestimmten Ausführungsformen verwendet der sichere Mikrocontroller 100 eine Chiffriertechnik, die einen Schlüsselstrom durch Permutieren von Befehlsadressen mit einem geheimen Schlüssel erzeugt. Die Überlegungen für die Chiffriertechnik umfassen: - 1. Ausreichendes Unklarmachen:
- Das Chiffriermerkmal führt zu einem ausreichenden Unklarmachen, welches es schwer macht, den Klartext herzuleiten, auch in Kenntnis, dass der erste Flash-Befehl von einem wohlbekannten Inbetriebnahmecode ist.
- 2. Niedriger Hardwareeinfluss:
- Das Chiffriermerkmal verbraucht keine exzessiven Ressourcen hinsichtlich Bereich und Berechnungszeit. Durch zu niedrige Flash-Speicherbetriebsgeschwindigkeit sollte das verschlüsselte Codewort, welches vom Flash abgerufen werden muss, lediglich im letzten Stadium der Dechiffrieroperation verwendet werden.
- 3. Reversible Funktion, die bidirektionale Operationen unterstützt:
- Wenn ein d = fn(s, x, y, z,...) vorhanden ist, dann ist auch ein s = fn-1(d, x, y, z, ...) vorhanden. Das heißt aber nicht eine echte Umkehrung, da es verschiedene s für jedes gegebene d geben könnte, aber lediglich ein d für jede Kombination von s, x, y, z, .... Wenn fn() als „Schlüsselstrom“-Erzeuger implementiert wird, dann ist fn1() = fn(), ausgenommen für die letzte Summierung.
- 4. Andere mögliche Einschränkungen:
- Es gibt für die Schlüsselregistergröße Beschränkungen. Eine Größe von 64 bis 128 Bit könnte ein guter Kompromiss zwischen Speichergröße und Schlüsselstärke sein. Operationen können Additions-Modulo, binäre Summen, Bitauswahl, etc. sein, aber einige Operationen können in Bezug auf Hardware teuer sein, zum Beispiel allgemeines Rotieren oder Mod n, wobei n nicht einer Potenz von 2 entspricht. Spezialisiertes Rotieren (mit n = 0, 1 2, 3) oder fest verdrahtetes Mod 3, Mod 5 oder Mod 7 und ähnliche Niedrig-Gatewayzählungsoperationen können verwendet werden.
- Bezugnehmend auf
7 beinhalten die Chiffrierfunktion und die Schnittstellen 700 einen Hashblock 701 zur schnellen Komprimierung einer langen pseudozufälligen Sequenz zur Schlüsselerzeugung, Register für geheime Schlüsselspeicherung (zum Beispiel ist der Chiffrierschlüssel im Flash-Speicher 106 gespeichert), einen Bitmischer (Adressbitmischer 705) zum Verschlüsseln von Speicherplätzen und einen Chiffrierblock 703 zum Chiffrieren des Reintextcodes zum Speichern und Dechiffrieren des Chiffriertextcodes oder kritischer Daten zur Ausführung. In unterschiedlichen Ausführungsformen arbeitet der Chiffrierblock 703 auf einer Befehl-für-Befehl-Basis, welche die Adresse jedes Befehls und Teilmenge von Daten vom Schlüsselregister nimmt, um einen Schlüsselstrom zu erzeugen, der sich aus einer Sequenz von Stammoperationen ergibt. Der Schlüsselstrom wird dann binär summiert mit einem Codewort. Der Chiffreur kann auch Schaltungen beinhalten, die die eingehenden und ausgehenden Bitströme nach besonderen Mustern überprüfen und bestimmt, ob sie umgangen werden sollen. In bestimmten Ausführungsformen kann der Chiffreur 104 innerhalb der MMU 103 eingebunden sein, da er in den Datenpfad des Programmspeichers eingebunden ist und die Chiffrierfunktion üblicherweise aktiviert ist. - Während der gefüllte Programmplatz im Speicherschutzmodus geschützt werden kann, ist der Hardwarechiffreur 104 üblicherweise auf dem Hauptprogrammspeicher angelegt, der durch einen Flash-Speicher 106 verwirklicht ist. Das ROM 105 beinhaltet hauptsächlich allgemeine Hilfsfunktionen, die üblicherweise nicht geheim sind. Das im ROM 105 enthaltene Urladeprogramm soll nicht eine Sicherheitsbedrohung darstellen, wenn auch das Urladeprogramm zum direkten Lesen des/Schreiben auf den Flash-Speicher 106 befähigt ist, da die Ladeprogrammfunktion der Zugriffssteuerung des physischen Layers unterliegt.
- Andere Ausführungsformen des sicheren Mikrocontrollers können ohne den Hardwarechiffreur realisiert werden. Obwohl der Programmcode nicht innerhalb des Mikrocontrollers geschützt wäre, hätte dies System immer noch die Multilayerzugriffssteuerungssicherheitsmerkmale.
- B. Multilayerzugriffssteuerung
- Die folgende Beschreibung der Multilayerzugriffssteuerung und der Speichersegmentierung innerhalb des Mikrocontrollers ist bestimmt, besondere Ausführungsformen der Erfindung zu veranschaulichen. Ein Fachmann wird erkennen, dass andere Zugriffssteuerungsprotokolle und Speichersegmentierungsarchitekturen gemäß Ausführungsformen der vorliegenden Erfindung verwirklicht werden können.
- Wie zuvor angemerkt, ist ein Merkmal des sicheren Mikrocontrollers 100 seine hierarchische Multilayerzugriffssteuerung für mehrere Benutzer des Programmspeichers. Wie in
2 gezeigt wird, ermöglicht die Zugriffssteuerung 102 die Multilayerzugriffssteuerung des sicheren Mikrocontrollers 100. Ein Bestandteil der Zugriffssteuerung ist der Zugriffsüberwacher 201. Die Zugriffssteuerung 102 ist verbunden mit Steuer-, Adress- und Datensignalen von der CPU des Mikrocontrollerkerns 101. Die Steuersignale von der CPU können auch Befehle, Speicherschutz, Lese-/Schreib-Anfragen und andere dem Fachmann bekannte Signale enthalten. Die Datensignale von der CPU können die Datenbussignale, Registersignale und andere dem Fachmann bekannte Datensignale enthalten. In bestimmten Ausführungsformen sind die Datensignale mit einem bidirektionalen Datenbus verbunden. Das Adresssignal von der CPU kann auch ein Programmadresssignal oder andere dem Fachmann bekannte Adresssignale enthalten. - In der Zugriffssteuerung 102 sind auch die Berechtigungs-Register, umfassend PRIV, PRIVT0, PRIVT1 und PRIVF. Diese Register speichern und verwalten die Berechtigungsinformationen, die mit der Berechtigungsebene des Benutzers verbunden sind. Ein Fachmann wird erkennen, dass unterschiedliche Arten und Zahlen von Berechtigungs-Registern verwendet werden können, um Zugriff auf geschützte Daten/IP innerhalb des Mikrocontrollers 100 zu steuern.
- Durch Überwachen und Vergleichen des Betriebes der CPU benachrichtigt die Zugriffssteuerung 102 den Ausnahmeverwalter durch Bereitstellen einer besonderen Handlung, die durch eine Berechtigungsanfrage erforderlich ist. In anderen Worten, eine Funktion der Zugriffssteuerung 102 dient zum Verwalten von Speichersegmentebenenanfragen, die mit Berechtigungsebenen verbunden ist. In besonderen Ausführungsformen der Erfindung können Bestandteile der Zugriffssteuerungsfunktion enthalten:
- • ein Steuerprotokoll für Speicherzugriff, das mit den Lese-/Schreibberechtigungsebenen verbunden ist.
- • Jedes der Speichersegmente entspricht der Berechtigungsebene, so dass mehrere Benutzer mit unterschiedlichen Berechtigungsebenen getrennt einen Programmcode laden können und Schreibzugriff zu den Registern der entsprechenden Berechtigungsebene haben.
- • Der geringere Berechtigungscode kann die Grenzen für eine höhere Berechtigungsebene nicht verändern, und die Vertraulichkeit des Programmcodes gegen Lese-/Schreibversuche durch geringer berechtigte Coderegionen ist geschützt.
- Der Hauptprogrammspeicher ist im nichtflüchtigen Speicher 106 gespeichert und kann als drei fortlaufende Speichersegmente gemäß unterschiedlichen Ausführungsformen angesehen werden.
4 veranschaulicht eine bestimmte Programmspeichersegmentierung für drei Speichersegmente. Befehlscodes liegen im Programmspeicher und sind immer durch die CPU ausführbar; jedoch unterliegt ein Lese- oder Schreibzugriff zu jedem Segment der Hardwaresteuerung gemäß der Berechtigungsebene. Die drei Segmente, festgelegt von höchster Sicherheit zu niedrigster im sicheren Mikrocontroller 100, sind: System, Benutzerladeprogramm und Benutzeranwendung. Die Tabelle in3 skizziert diese Speichersegmente, einstellbare Flashseitengrenzen und maximale Berechtigungsebene, die mit einer Codeausführung innerhalb der Segmente gemäß bestimmten Ausführungsformen der Erfindung verbunden sein können. Auf sämtliche Berechtigungsebenen kann durch Nur-Lese-Speichercodes 105 zugegriffen werden. - In unterschiedlichen Ausführungsformen ist die Segmentgrenze entsprechend der Seitennummer des Flashspeichers 106 festgelegt. Das Systemsegment beginnt von Seite 0 bis zu der Seite ULDR-1, eine Seite unterhalb des Benutzerladeprogrammsegments. In der gleichen Art beginnt das Benutzerladeprogrammsegment von der Seite ULDR bis Seite UAPP-1, und das Benutzeranwendungssegment beginnt von Seite UAPP bis zur Oberseite des Flashspeichers 106.
- Jedes der drei Speichersegmente hat eine maximal zulässige Berechtigungsebene. Die aktuelle Berechtigungsebenenzuordnung wird durch Hardware als Grundlage zur Steuerung eines Lese-/Schreibzugriffs auf andere Speichersegmente benutzt. Zusätzlich zu den drei benutzerdefinierbaren Segmenten haben auch das Hilfs-ROM und Datenspeicherregionen eine maximale Standardwert-Berechtigungsebene, die Zugriffssteuerung zum Programm- und Datenplatz bereitstellt. Die Mikrocontrollerkernarchitektur unterstützt eine Programmausführung von Daten-RAM durch Mappen des Datenspeichers auf den Programmplatz. Das Gestalten des Datenspeichers zu einem niedrigen Berechtigungssegment beseitigt die Möglichkeit, das Daten-RAM zum Umgehen der Zugriffssteuerung zu verwenden.
- In bestimmten Ausführungsformen der Erfindung sind die Flashseitengrenzen über die internen Register User Loader Starting Page Address („ULDR“) und User Application Starting Page Address („UAPP“) eingestellt. Ein Schreibzugriff zu diesen Registern ist derart, dass niedrigerer berechtigter Code die Grenzen eines höher berechtigten Segments nicht verändern kann. Die Werte dieses Registers werden mit der Anzahl der Wörter pro Seite multipliziert, um die entsprechende Adresse für das erste Wort auf der angegebenen Seite zu bestimmen. Zum Beispiel ist ULDR*256 die Adresse für das erste Wort auf Seite ULDR, wenn die Anzahl der Wörter in einer Flashseite 256 ist.
- Um diese kritischen Werte nichtflüchtig zu machen, werden die Werte der ULDR und UAPP im Flashspeicher 106 während der Segmentinitialisierung gespeichert. Wenn ein Benutzerladeprogrammsegment bevorzugt wird, muss der ULDR-Wert in das Systemsegment programmiert werden und der Systemcode ist zum Übertragen des ULDR-Werts zum ULDR-Register bei Einschaltrücksetzung verantwortlich. Das gleiche wird beim Benutzeranwendungssegment angewendet. Der UAPP-Wert wird in das Benutzerladeprogrammsegment programmiert und muss zum UAPP-Register durch das Benutzerladeprogramm übertragen werden.
- In unterschiedlichen Ausführungsformen der Erfindung lassen die Flashseitengrenzen in
3 Möglichkeiten für Segmentationsoptionen offen, die nicht durch den Benutzercode erstellt worden sein können. Wenn Programmspeichersegmentation und -schutz aktiviert sind (z.B. MPE=1), dann sollte das Systemcodesegment Bestandteil der ersten Flashspeicherseite sein. Das heißt, dass die ULDR- und UAPP-Register nicht auf = 0 programmiert sind. Wenn es gewünscht ist, dass der Programmspeicher lediglich zwei Speichersegmente umfasst, dann sind das ULDR-Register und UAPP-Register programmiert, um dieselbe Startseite festzulegen, folglich werden keine Seiten innerhalb des ULDR-Segments festgelegt. Wenn das ULDR-Register auf einen Wert gleich oder größer als UAPP programmiert ist, wird kein Benutzerladeprogrammsegment festgelegt. Das UAPP-Register kann auf die Startseite für die zweite Region programmiert werden. In diesem Zustand (lediglich zwei Programmspeichersegmente) wird die letzte Seite des Systemcodespeichers (UAPP-1) sein, wie in5 veranschaulicht. In bestimmten Zuständen wird dies einem Benutzen von User Loader als zweite Speicherregion vorgezogen, so dass lediglich HIGH und LOW Berechtigungsebenen verfügbar sind. - Diese Segmentierung von Programmspeicher ist vorgesehen, um das Laden von Programcodes durch mehrere Parteien in unterschiedlichen Stadien während des Produktlebenszyklus zu ermöglichen (z.B. Originalanbieter-, zweiter Benutzer-, Endbenutzerupgrade und Bibliothekdownloads). Das Segmentierungs- und Berechtigungsschema bietet auch einen Mechanismus zum Schutz der Vertraulichkeit von Code gegen Lese-/Schreibzugriffsversuche durch niedriger bevorrechtigte Coderegionen. In bestimmten Ausführungsformen ist die Fähigkeit, Hilfs-ROM zu lesen, typischerweise zugelassen, unabhängig des MPE-Bitzustandes.
- In den folgenden Abschnitten werden Beispiele für ein Zweisegment- und Dreisegmentmultilayerzugriffssteuerungssystem angegeben. Jedoch wird ein Fachmann erkennen, dass Ausführungsformen mit mehr als drei Speichersegmenten innerhalb des Umfangs der vorliegenden Erfindung liegen.
- C. Systemcodesegment
- In bestimmten Ausführungsformen der Erfindung ist das System- oder Systemcodesegment die höchste Bevorrechtigungsebene und auch die höchste Sicherheitsebene, wie aus
3 bekannt. Typischerweise ist der Systemcode lediglich für den Originalanbieter des Mikrocontrollerproduktes verfügbar. Für eine Dreisegment- oder Zweisegmentausführungsform ist ein exemplarischer Systemcode in den4 bzw. 5 veranschaulicht. - In bestimmten Ausführungsformen beginnt der Systemcode auf einer bestimmten Seite und erstreckt sich bis zu der Seite genau vor der Startseite der Benutzerladeprogrammstartseite. Das ULDR-Register, welches die Oberseite der Systemcoderegion festlegt, kann durch Systemcode oder ROM-Code beschreibbar sein. In unterschiedlichen Ausführungsformen der Erfindung speichert ein Verfahren zur Initialisierung der Systemcoderegion den gewünschten ULDR-Startseitenwert in der Flashwortadresse 000Fh (Wort genau vor dem Systempasswort) und lässt den Rücksetzvektorcode die ULDR-Schreiboperation wie folgt durchführen:
org 0000h
; Rücksetzen
move CP, #usr_ldr_page
move ULDR, @CP
jump sys_init
org 000Fh
user_ldr_page:
; Startseitenadresse des Benutzerladeprogramms
dw 0020h; Seite 32
org 0010h
; System kennwort
dw ..., ..., ..., ...
org 0000h
; Rücksetzen
move CP, #usr_app_page
move UAPP, @CP
move ULDR, UAPP; setze ULDR=UAPP
jump sys_init
org 000Fh
user_app_page:
; Startseitenadresse der Benutzeranwendung (kein
Benutzerladeprogramm)
dw 8020h; Seite 32, msbit=1
org 0010h
; System kennwort
- 1. der maximalen Berechtigungsebene der Speicherregion, in welcher der Code abläuft oder
- 2. dem Inhalt des PRIV-Registers.
- 1. der maximalen Berechtigungsebene der Speicherregion, in welcher Code abläuft
- 2. dem PRIVT0-Register, oder
- 3. dem Quellargumente für das PRIVT1-Schreiben
- Erstens, der Mikrocontroller 100 wird eine Einschaltrücksetzung („POR“) 901 haben und wird prüfen, um zu sehen, ob besondere Programmierungen 902, 903 erforderlich sind, d.h., ob der SPE-Bit bestätigt wird. Wenn der SPE-Bit bestätigt wird, dann wird das Urladeprogramm eingesetzt (siehe Abschnitt J. Die Urladeprogrammfunktion und
9 , Schritte 921 bis 932).
- 1. Die Hashfunktion 701 stellt eine lange pseudozufällige Sequenz bereit und erzeugt einen Hashdigest, der auf dem Chiffrierschlüssel basiert.
- 2. SRAM-Register 702 stellen einen Zwischenschlüsselstrom bereit, der auf zusätzlichen Manipulationen des Hashdigest beruht.
- 3. Der Chiffrierblock 703 stellt einen Bitstromerzeugen zum Chiffrieren von Reintextdaten und Dechiffrieren von Chiffriertextdaten bereit.
- 4. Der Adressbitmischer 705 verschlüsselt die physischen Flashspeicherplätze.
- 5. Der Prüfer 704 „prüft“ nach besonderen Datenmustern. Wenn diese Muster erkannt werden, werden besondere Handlungen vorgenommen.
- XOR - bitweise exklusiv OR
- ADD - Additionsmodulo 216
- ROL - Rotier links des Worts
- MOD - Achtbitmodulo
- MUX - Multiplexer
- Für Schreiboperationen, wenn die Reintexteingabe FFFFh ist, umgeht FFFFh den Chiffrierblock und wird in den Flashspeicher 106 programmiert. Alternativ, wenn die Chiffrierblockausgabe FFFFh ist, werden die chiffrierten Daten verworfen. Die Reintextdaten umgehen den Chiffrierblock 703 und werden in den Flashspeicher 106 programmiert.
- Für Befehlsabrufe und Leseoperationen, wenn die Flashausgabe FFFFh ist, umgeht FFFFh den Chiffrierblock 703 und wird zum Decoder oder zum Zielregister versendet. Alternativ, wenn die Chiffrierblockausgabe 703 FFFFh ist, werden die chiffrierten Daten verworfen. Die Flashspeicherausgabe 106 umgeht den Chiffrierblock 703 und wird an den Decoder oder das Zielregister versendet.
Claims (26)
- Sicherer Mikrocontroller (100) umfassend: einen Speicher, der Daten speichert; eine Prozessoreinheit, die eine Vielzahl an Befehlen erzeugt; eine Zugriffssteuerung (102), verbunden, um die Vielzahl an Befehlen zu empfangen, wobei die Zugriffssteuerung (102) eine Vielzahl an Berechtigungs-Registern aufweist, die Zugriffsrechte zu den innerhalb des Speichers gespeicherten Daten festlegen; ein erstes Berechtigungs-Register, innerhalb der Vielzahl an Berechtigungs-Registern, das einen ersten Satz an Zugriffsrechten zu einer ersten Menge von Daten innerhalb des Speichers festlegt; ein zweites Berechtigungs-Register, innerhalb der Vielzahl an Berechtigungs-Registern, das einen zweiten Satz an Zugriffsrechten zu einer zweiten Menge von Daten innerhalb des Speichers festlegt, wobei die zweite Menge anders als die erste Menge ist; und einen mit der Zugriffssteuerung (102) verbundenen Ausnahmeverwalter, der einen Zugriffsbefehl zu der ersten Menge an Daten in Reaktion darauf, dass der Zugriffsbefehl den ersten Satz an mit der ersten Menge an Daten verbundenen Zugriffsrechten nicht erfüllt, unterbricht; bei welchem die Zugriffsrechte eine Vielzahl von Benutzer-Berechtigungs-Ebenen für den sicheren Mikrocontroller (100) betreffen.
- Sicherer Mikrocontroller (100) nach
Anspruch 1 , bei welchem die Zugriffssteuerung (102) weiterhin umfasst: einen Adressüberwacher, der eine Speicheradresse eines ersten Befehls, innerhalb der Vielzahl an Befehlen, mit dem ersten Berechtigungs-Register verbindet; und einen Adressenvergleicher, der Zugriff zu der ersten Menge an Daten gewährt, basierend auf Zugriffsrechten, die innerhalb des ersten Berechtigungs-Registers festgelegt sind. - Sicherer Mikrocontroller (100) nach
Anspruch 2 , weiterhin umfassend eine Speicherverwaltungseinheit (103), verbunden mit dem Speicher, der Prozessoreinheit (101) und der Zugriffssteuerung (102), und Bereitstellen einer Vielzahl an Ausgängen zum Speicher und der Zugriffssteuerung (102), wobei die Speicherverwaltungseinheit (103) Verwaltung der Datenübertragung zwischen dem Speicher, der Prozessoreinheit (101) und der Zugriffssteuerung (102) bereitstellt. - Sicherer Mikrocontroller (100) nach
Anspruch 3 , bei dem der Speicher schreibgeschützten Speicher (105), nichtflüchtigen Speicher (106) und Datenspeicher (107) umfasst. - Sicherer Mikrocontroller (100) nach
Anspruch 4 , bei dem der Datenspeicher (107) RAM-Speicher ist und bei dem nichtflüchtiger Speicher (106) Flash-Speicher ist. - Sicherer Mikrocontroller (100) nach
Anspruch 4 , weiterhin umfassend einen Programmspeicher, welcher in dem schreibgeschützten Speicher (105) und dem nichtflüchtigen Speicher (106) liegt. - Sicherer Mikrocontroller (100) nach
Anspruch 6 , bei dem der nichtflüchtige Speicher (106) weiterhin umfasst: eine Vielzahl an Speichersegmenten; jedes der Speichersegmente, innerhalb der Vielzahl an Speichersegmenten, entspricht einer bestimmten Berechtigungs-Ebene innerhalb der Vielzahl an Berechtigungs-Ebenen, so dass ein erster Benutzer einen ersten Anweisungscode in ein erstes Speichersegment lädt, welches einer ersten Berechtigungs-Ebene innerhalb einer Vielzahl an Berechtigungs-Ebenen entspricht, und so dass ein zweiter Benutzer einen zweiten Anweisungscode in ein zweites Speichersegment lädt, welches der zweiten Berechtigungs-Ebene innerhalb der Vielzahl an Berechtigungs-Ebenen entspricht; und bei dem Zugriffsrechte zu den ersten und zweiten Speichersegmenten durch die ersten und zweiten Berechtigungs-Ebenen festgelegt sind. - Sicherer Mikrocontroller (100) nach
Anspruch 7 , bei dem der zweite Benutzer, verknüpft mit einer niedrigeren Berechtigungs-Ebene, am Zugreifen auf das erste Speichersegment, welches der ersten Berechtigungs-Ebene zugeordnet ist, gehindert wird. - Sicherer Mikrocontroller (100) nach
Anspruch 7 , bei dem die erste Berechtigungs-Ebene innerhalb der Vielzahl an Berechtigungs-Ebenen basierend auf einem Betriebszustand der Zugriffssteuerung (102) bestimmt ist, wobei der, durch die erste Berechtigungs-Ebene für einen ersten, durch einen ersten Benutzer geladenen Anweisungscode gekennzeichnete Betriebszustand, festgelegt ist als ein kleinerer aus entweder einer maximalen Berechtigungs-Ebene des Speichersegments, in welchem der Anweisungscode ausgeführt wird, oder einem in dem ersten Berechtigungs-Register festgelegten Wert ist, . - Sicherer Mikrocontroller (100) nach
Anspruch 7 , bei dem der schreibgeschützte Speicher (105) die erste Berechtigungs-Ebene hat, und der Datenspeicher (107) die zweite Berechtigungs-Ebene hat, wobei die erste Berechtigungs-Ebene höher als die zweite ist. - Sicherer Mikrocontroller (100) nach
Anspruch 7 , bei dem ein Systemcode durch eine Sicherheitsprozedur vor Sicherheitsangriffen geschützt ist. - Sicherer Mikrocontroller (100) nach
Anspruch 11 , bei dem die Sicherheitsprozedur die Schritte umfasst: Herabsetzen einer bestehenden Berechtigungs-Ebene bevor eine Anweisungscodeoperation verlassen wird, nachdem Unterbrechungs- und Bibliotheksfunktionen die aktuelle Berechtigungs-Ebene während der Codeoperation hochgesetzt haben; Sperren von Unterbrechungen für eine Dauer der Anweisungscodeoperation, in welcher der Anweisungscode die aktuelle Berechtigungs-Ebene hochsetzt, für Unterbrechungen, die die Berechtigungs-Ebene herabsetzen, oder für einen Unterbrechungscode, der außerhalb des Systemcode umfassenden Speichersegments läuft; und wobei der Systemcode daran gehindert wird, die aktuelle Berechtigungs-Ebene der Anweisungscodeoperation zu speichern und wiederherzustellen. - Sicherer Mikrocontroller (100) nach
Anspruch 11 , bei dem die Sicherheitsprozedur den Schritt umfasst: Verhindern, dass eine Anweisungscodeoperation die bestehende Berechtigungs-Ebene mittels eines Subroutineaufrufs hochsetzt. - Sicherer Mikrocontroller (100) nach
Anspruch 11 , bei dem die Sicherheitsprozedur den Schritt umfasst: Überprüfen von Argumenten einer Systembibliothek vor dem Hochsetzen einer bestehenden Berechtigungs-Ebene, wobei die Sicherheitsprozedur in einer atomaren Art unter Benutzung des zweiten Berechtigungs-Registers und eines dritten Berechtigungs-Registers durchgeführt wird. - Sicherer Mikrocontroller (100) nach
Anspruch 7 , bei dem der nichtflüchtige Speicher (106) weiterhin einen Informationsblock umfasst, der benutzergeheime Daten und Chiffrierschlüsseldaten speichert; und bei dem eine Vielzahl an unbenutzten Speicherplätzen des Informationsblocks mit Zufallsdaten programmiert sind und eine Vielzahl an Adressen des Informationsblocks verschlüsselt sind. - Mikrocontroller (100) nach
Anspruch 15 , bei dem der schreibgeschützte Speicher (105) ein Urladeprogramm beinhaltet, das eine höhere Berechtigungs-Ebene besitzt, und auf jedes der Speichersegmente zugreifen kann; und worin die benutzergeheimen Daten zum Herstellen einer authentifizierten Verbindung mit einem Fernsicherungsladeprogramm benutzt werden. - Sicherer Mikrocontroller (100) nach
Anspruch 15 , weiterhin umfassend einen Hardwarechiffreur (104), welcher umfasst: einen Hashblock (701), welcher schnelles Komprimieren einer langen pseudozufälligen Sequenz eines Chiffrierschlüssels zur Schlüsselerzeugung bereitstellt; Register (702) für geheime Schlüsselspeicherung; einen Adressbitmischer (705), welcher verschlüsselte Speicherplätze bereitstellt; einen Chiffrierblock (703), welcher Chiffrieren und Dechiffrieren bereitstellt; und wobei kryptographische Operationen parallel mit einer Prozessoreinheitlaufzeit ausgeführt werden. - Sicherer Mikrocontroller (100) nach
Anspruch 17 , bei dem der Hardwarechiffreur (104) weiterhin umfasst: einen Hashblock (701), verbunden, um Daten vom nichtflüchtigen Speicher (106) zu empfangen, der Hashblock (701) legt eine Datenauswahl basierend auf der pseudozufälligen Sequenz des Chiffrierschlüssels an; Verschlüsselregister (702), verbunden, um Daten vom Hashblock (701) zu empfangen, die Verschlüsselregister (702) erzeugen einen Schlüsselstrom, welcher sich aus weiterer Änderungen der Hashauswahl ergibt; einen Adressbitmischer (705), verbunden, um eine Speicheradresse und ein Steuersignal zu empfangen, der Adressbitmischer (705) verschlüsselt die Speicheradressplätze; einen Prüfer (704), verbunden mit dem Chiffrierblock (703) und der Speicherverwaltungeinheit (103) über einen bidirektionalen Datenbus, der Prüfer (704) stellt eine besondere Datenmusterverwaltung bereit; und der Chiffrierblock (703), verbunden, um vom verbundenen Verschlüsselregister (702) Daten zu empfangen; und verbunden mit der Speicherverwaltungseinheit (103), dem nichtflüchtigen Speicher (106) und dem Prüfer (704) über den bidirektionalen Datenbus, der Chiffrierblock (703) erzeugt einen Bitstrom an chiffrierten Reintextdaten und dechiffrierten Chiffriertextdaten. - Sicherer Mikrocontroller (100) nach
Anspruch 18 , bei dem der Chiffrierblock (703) weiterhin umfasst: eine Vielzahl an Schnittstellen, an welchen pseudozufällige Sequenzen von den Verschlüsselregistern (702) und konstanten Registern (702) empfangen werden; ein Subschlüsselerzeugungsblock, verbunden, um Daten von mindestens einer physischen Adresse der Speicherverwaltungseinheit (103) zu empfangen, der Subschlüsselerzeugungsblock erzeugt einen Subschlüssel; ein Adresspermutationsblock, verbunden mit dem Subschlüsselerzeugungsblock und der Speicherverwaltungseinheit (103), der Adresspermutationsblock stellt einen Bitstrom zu einem Datenpermutationsblock bereit; der Datenpermutationsblock, verbunden mit den Verschlüsselregistern (702), dem Subschlüsselerzeugungsblock, dem Adresspermutationsblock und einem Dateneingang von der Speicherverwaltungseinheit (103), der Datenpermutationsblock erzeugt einen Chiffrier-/Dechiffrierbitstrom verbunden mit dem Prüfer (704) und der Speicherverwaltungseinheit (103); und wobei die konstanten Register (702) durch zufällig gewählte Nummern vorbestimmt sind, die im sicheren Mikrocontroller (100) fest verdrahtet sind. - Sicherer Mikrocontroller (100) nach
Anspruch 19 , bei dem die physische Adresse entweder von einer externen Datenschnittstelle oder einem Anweisungszeiger oder einem Datenzeiger zur Speicherinitialisierung und In-System-Programmierung des nichtflüchtigen Speichers (106) bezogen wird. - Sicherer Mikrocontroller (100) nach
Anspruch 19 , bei dem der Adresspermutationsblock einen Bitstrom erzeugt durch Durchführen der Schritte: Empfangen des Subschlüssels und der physischen Adresse; Verarbeiten eines geringeren Bytes der physischen Adresse durch eine Achtbitmodulo (MOD)- Operation, um einen ersten Bitstrom zu erzeugen; Verarbeiten des ersten Bitstroms durch eine Additionsmodulo 216 (ADD)- Operation, um einen zweiten Bitstrom zu erzeugen; Durchführen einer Rotierlinks (ROL)- Operation an dem zweiten Bitstrom, um einen Adresspermutationsbitstrom zu erzeugen; und wobei das MOD eine Sequenz von Additionsoperationen mit einem Multiplexer ist. - Sicherer Mikrocontroller (100) nach
Anspruch 19 , bei dem der Datenpermutationsblock eine Ausgabe erzeugt durch Durchführen der Schritte: Komprimieren des Subschlüssels vom Subschlüsselerzeuger und des Bitstroms vom Adresspermutationsblock in einen ersten Bitstrom, welcher eine Vielzahl von Multiplexern verwendet; Verarbeiten des ersten Bitstroms durch eine Additionsmodulo 216-Operation mit einem umgewandelten Adressbitstrom, der einen zweiten Bitstrom erzeugt; Durchführen einer Rotierlinks (ROL)- Operation auf den zweiten Bitstrom, um den endgültigen Bitstrom zu erzeugen; Chiffrieren oder Dechiffrieren der Eingangsdaten, welche den endgültigen Bitstrom verwenden; und Verbinden des Chiffrier-/Dechiffrierbitstroms mit dem Chiffrierblock (703) und dem Prüfer (704). - Sicherer Mikrocontroller (100) nach
Anspruch 19 , bei dem der Prüfer (704) Komparatoren umfasst, um besondere mit den Kennzeichen des nichtflüchtigen Speichers (106) zusammenhängende Datenmuster zu handhaben, und verhindert wird, dass das besondere Datenmuster durch den Chiffrierblock (703) chiffriert oder dechiffriert zu wird. - Verfahren zur Sicherung von Inhalt innerhalb eines Mikrocontrollers (100), wobei das Verfahren die Schritte umfasst: Speichern eines ersten Satzes von Daten, empfangen von einem ersten Benutzer, innerhalb eines Speichers eines Mikrocontrollers (100); Verbinden eines ersten Satzes von Zugriffsrechten für die erste Gruppe von gespeicherten Daten; Verwalten des Zugriffs auf den ersten Satz von Zugriffsrechten, welcher Zugriffsberechtigungen auf den ersten Satz von gespeicherten Daten festlegt; und Verhindern von Zugriff auf den zweiten Satz von gespeicherten Daten, die zuvor in den Speicher (107) durch einen zweiten Benutzer geschrieben wurden, in Übereinstimmung mit einem zweiten Satz von Zugriffsrechten, der mit dem zweiten Satz gespeicherter Daten verknüpft ist, der zweite Satz von Zugriffsrechten legt Zugriffsberechtigungen zum zweiten Satz gespeicherter Daten fest.
- Verfahren nach
Anspruch 24 , weiterhin umfassend: Speichern des ersten Satzes von Daten, verbunden mit den ersten Zugriffsrechten, und des zweiten Satzes von Daten, verbunden mit den zweiten Zugriffsrechten, in verschiedenen Segmenten eines nichtflüchtigen Speichers (106); Regeln des Zugriffs zu den Speichersegmenten basierend auf den Zugriffsrechten eines Benutzers; wobei Zugriffsrechte durch mit einer Speicherverwaltungseinheit (103) und Programmroutinen, die in einem Hilfs-ROM (105) liegen, verbundene Hardware durchgesetzt werden. - Sicherer Mikrocontroller (100) umfassend: einen Speicher, der Daten speichert; eine Prozessoreinheit, die eine Vielzahl an Befehlen erzeugt; eine Zugriffssteuerung (102), verbunden, um eine Vielzahl an Befehlen zu empfangen, wobei die Zugriffssteuerung (102) eine Vielzahl von Berechtigungs-Registern aufweist, die Zugriffsrechte zu den gespeicherten Daten innerhalb des Speichers festlegen; ein erstes Berechtigungs-Register, innerhalb der Vielzahl an Berechtigungs-Registern, das einen ersten Satz an Zugriffsrechten zu einer ersten Menge von Daten innerhalb des Speichers festlegt; ein zweites Berechtigungs-Register, innerhalb der Vielzahl an Berechtigungs-Registern, das einen zweiten Satz an Zugriffsrechten zu einer zweiten Menge von Daten innerhalb des Speichers festlegt, wobei die zweite Menge anders als die erste Menge ist; und einen Ausnahmeverwalter, verbunden mit der Zugriffssteuerung (102), der in Reaktion darauf, dass der Zugriffsbefehl den ersten Satz an mit der ersten Menge an Daten verbundenen Zugriffsrechten nicht erfüllt, unterbricht; und einen Hardwarechiffreur (104) umfassend: einen Hashblock (701), verbunden, um bidirektionale Daten vom Speicher und der Prozessoreinheit (101) zu empfangen, der Hashblock (701) stellt schnelle Komprimierung einer langen pseudozufälligen Sequenz eines Chiffrierschlüssels zur Schlüsselerzeugung bereit, ein Adressbitmischer (705), verbunden mit einer Speicherverwaltungseinheit (103) und dem Speicher, der Adressbitmischer (705) stellt verschlüsselte Speicherplätze bereit, ein Chiffrierblock (703), der Chiffrieren und Dechiffrieren bereitstellt und mit der Speicherverwaltungseinheit (103) und dem Speicher verbunden ist, wobei der Hardwarechiffreur (104) einen Chiffrierschlüssel vom Speicher empfängt.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/257,339 US8555015B2 (en) | 2008-10-23 | 2008-10-23 | Multi-layer content protecting microcontroller |
| US12/257,339 | 2008-10-23 | ||
| PCT/US2009/059130 WO2010047930A1 (en) | 2008-10-23 | 2009-09-30 | Multi-layer content protecting microcontroller |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE112009002502T5 DE112009002502T5 (de) | 2012-10-04 |
| DE112009002502B4 true DE112009002502B4 (de) | 2024-07-25 |
Family
ID=41469877
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE112009002502.1T Active DE112009002502B4 (de) | 2008-10-23 | 2009-09-30 | Multilayer inhalte-schützender Mikrocontoller |
Country Status (5)
| Country | Link |
|---|---|
| US (2) | US8555015B2 (de) |
| CN (1) | CN102197382B (de) |
| DE (1) | DE112009002502B4 (de) |
| TW (1) | TWI460604B (de) |
| WO (1) | WO2010047930A1 (de) |
Families Citing this family (46)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8719589B2 (en) * | 2010-05-25 | 2014-05-06 | Via Technologies, Inc. | Microprocessor that facilitates task switching between multiple encrypted programs having different associated decryption key values |
| FR2976147B1 (fr) * | 2011-05-30 | 2013-11-22 | Maxim Integrated Products | Schema d'entrelacement de donnees pour une memoire externe d'un microcontroleur securise |
| US9262340B1 (en) * | 2011-12-29 | 2016-02-16 | Cypress Semiconductor Corporation | Privileged mode methods and circuits for processor systems |
| KR101975027B1 (ko) | 2012-05-04 | 2019-05-03 | 삼성전자주식회사 | 시스템 온 칩, 이의 동작 방법, 이를 포함하는 장치들 |
| US9754133B2 (en) * | 2013-03-14 | 2017-09-05 | Microchip Technology Incorporated | Programmable device personalization |
| US9208105B2 (en) | 2013-05-30 | 2015-12-08 | Dell Products, Lp | System and method for intercept of UEFI block I/O protocol services for BIOS based hard drive encryption support |
| US9530000B2 (en) | 2013-06-14 | 2016-12-27 | Microsoft Technology Licensing, Llc | Secure privilege level execution and access protection |
| CN103413098B (zh) * | 2013-08-01 | 2016-05-18 | 广州杰赛科技股份有限公司 | 硬件加密方法与系统及其装置 |
| FR3043229B1 (fr) * | 2015-11-03 | 2018-03-30 | Proton World International N.V. | Demarrage securise d'un circuit electronique |
| US10146681B2 (en) * | 2015-12-24 | 2018-12-04 | Intel Corporation | Non-uniform memory access latency adaptations to achieve bandwidth quality of service |
| US9990474B2 (en) * | 2016-03-16 | 2018-06-05 | Konica Minolta Laboratory U.S.A., Inc. | Access control for selected document contents using document layers and access key sequence |
| US11442760B2 (en) | 2016-07-01 | 2022-09-13 | Intel Corporation | Aperture access processors, methods, systems, and instructions |
| US10389693B2 (en) * | 2016-08-23 | 2019-08-20 | Hewlett Packard Enterprise Development Lp | Keys for encrypted disk partitions |
| US10379768B2 (en) * | 2016-09-30 | 2019-08-13 | Intel Corporation | Selective memory mode authorization enforcement |
| CN106919865B (zh) * | 2017-03-02 | 2020-06-05 | 上海东软载波微电子有限公司 | 非易失性存储器数据加密系统 |
| FR3069935A1 (fr) * | 2017-08-01 | 2019-02-08 | Maxim Integrated Products, Inc. | Dispositifs et procedes de protection de propriete intellectuelle de logiciel pour des plates-formes integrees |
| 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 |
| GB201721608D0 (en) | 2017-12-21 | 2018-02-07 | Nordic Semiconductor Asa | A hardware cipher engine |
| JP2019133345A (ja) * | 2018-01-30 | 2019-08-08 | 東芝メモリ株式会社 | データ蓄積装置、データ処理システムおよびデータ処理方法 |
| KR102510451B1 (ko) * | 2018-05-09 | 2023-03-16 | 삼성전자주식회사 | 집적 회로 장치 및 집적 회로 장치의 동작 방법 |
| JP7109992B2 (ja) * | 2018-05-22 | 2022-08-01 | キオクシア株式会社 | メモリシステムおよび制御方法 |
| US11113422B2 (en) | 2018-08-03 | 2021-09-07 | Micron Technology, Inc. | Data protection in computer processors |
| US11074198B2 (en) * | 2018-09-18 | 2021-07-27 | Micron Technology, Inc. | Key management in computer processors |
| CN111240581B (zh) * | 2018-11-29 | 2023-08-08 | 北京地平线机器人技术研发有限公司 | 存储器访问控制方法、装置和电子设备 |
| TWI738135B (zh) * | 2019-04-07 | 2021-09-01 | 新唐科技股份有限公司 | 監控系統開機之安全裝置及其方法 |
| KR102660388B1 (ko) * | 2019-05-09 | 2024-04-26 | 에스케이하이닉스 주식회사 | 메모리 모듈, 메모리 모듈의 동작 방법, 메모리 시스템 및 메모리 모듈의 동작 방법 |
| EP3736716B1 (de) * | 2019-05-10 | 2021-12-22 | Aptiv Technologies Limited | Verfahren zum schutz einer elektronischen steuerungseinheit |
| CN110554298B (zh) * | 2019-08-27 | 2022-03-22 | 江苏芯盛智能科技有限公司 | 芯片和芯片测试方法 |
| CN110990331B (zh) * | 2019-12-03 | 2023-09-05 | 飞腾信息技术有限公司 | 片上系统密钥管理方法、装置、设备及可读存储介质 |
| US11227046B2 (en) | 2019-12-24 | 2022-01-18 | Stmicroelectronics International N.V. | Dynamic randomization of password challenge |
| US11281795B2 (en) * | 2019-12-24 | 2022-03-22 | Stmicroelectronics International N.V. | Hierarchical random scrambling of secure data storage resulting in randomness across chips and on power on resets of individual chips |
| FR3111441B1 (fr) | 2020-06-10 | 2022-08-05 | Proton World Int Nv | Démarrage sécurisé d'un circuit électronique |
| JP2022050899A (ja) * | 2020-09-18 | 2022-03-31 | キオクシア株式会社 | メモリシステム |
| US20220166762A1 (en) * | 2020-11-25 | 2022-05-26 | Microsoft Technology Licensing, Llc | Integrated circuit for obtaining enhanced privileges for a network-based resource and performing actions in accordance therewith |
| DE102021102777A1 (de) * | 2021-02-05 | 2022-08-11 | Infineon Technologies Ag | Verarbeitung von in einem speicher gespeicherter daten |
| CN112885403B (zh) * | 2021-02-08 | 2023-07-14 | 山东云海国创云计算装备产业创新中心有限公司 | 一种Flash控制器的功能测试方法、装置及设备 |
| CN113420308A (zh) * | 2021-07-01 | 2021-09-21 | 联芸科技(杭州)有限公司 | 用于加密存储器的数据访问控制方法及控制系统 |
| CN114580036A (zh) * | 2022-03-17 | 2022-06-03 | 杭州士兰微电子股份有限公司 | 存储安全组件、片上系统、嵌入式系统及代码调用方法 |
| TWI805341B (zh) * | 2022-04-27 | 2023-06-11 | 智原科技股份有限公司 | 系統單晶片架構及其資料保護方法 |
| CN119301575A (zh) * | 2022-06-10 | 2025-01-10 | 株式会社自动网络技术研究所 | 车载装置、信息处理方法及信息处理程序 |
| TWI895618B (zh) * | 2022-06-30 | 2025-09-01 | 新唐科技股份有限公司 | 密碼裝置及其密碼方法 |
| FR3142570B1 (fr) * | 2022-11-25 | 2025-07-18 | St Microelectronics Alps Sas | Système sur puce comportant un système d’isolation des ressources et procédé de gestion de l’isolation des ressources correspondant. |
| CN116720227A (zh) * | 2023-01-16 | 2023-09-08 | 合肥沛睿微电子股份有限公司 | 用于存储器的数据加解密系统及数据加解密方法 |
| US12499280B2 (en) * | 2023-05-01 | 2025-12-16 | Mellanox Technologies, Ltd | Integrated-circuit memory dump using hardware security mechanism |
| CN116595594A (zh) * | 2023-05-19 | 2023-08-15 | 无锡摩芯半导体有限公司 | 一种基于ucb的flash的安全控制方法 |
| TWI892327B (zh) * | 2023-11-28 | 2025-08-01 | 瑞昱半導體股份有限公司 | 位址監視裝置及位址監視方法 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030084308A1 (en) | 2001-10-03 | 2003-05-01 | Van Rijnswou Sander Matthijs | Memory encryption |
| US6845159B1 (en) | 1998-10-07 | 2005-01-18 | Protego Information Ab | Processing method and apparatus for converting information from a first format into a second format |
| US20070050580A1 (en) | 2005-08-31 | 2007-03-01 | Lewis Russell L | Apparatus, system, and method for implementing protected virtual memory subcontexts |
Family Cites Families (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5504814A (en) * | 1991-07-10 | 1996-04-02 | Hughes Aircraft Company | Efficient security kernel for the 80960 extended architecture |
| US6003133A (en) * | 1997-11-17 | 1999-12-14 | Motorola, Inc. | Data processor with a privileged state firewall and method therefore |
| US7124170B1 (en) * | 1999-08-20 | 2006-10-17 | Intertrust Technologies Corp. | Secure processing unit systems and methods |
| US20010037450A1 (en) * | 2000-03-02 | 2001-11-01 | Metlitski Evgueny A. | System and method for process protection |
| US6792528B1 (en) * | 2000-05-17 | 2004-09-14 | Chien-Tzu Hou | Method and apparatus for securing data contents of a non-volatile memory device |
| US6952778B1 (en) * | 2000-10-26 | 2005-10-04 | Cypress Semiconductor Corporation | Protecting access to microcontroller memory blocks |
| US7409685B2 (en) * | 2002-04-12 | 2008-08-05 | Hewlett-Packard Development Company, L.P. | Initialization and update of software and/or firmware in electronic devices |
| DE10115118A1 (de) | 2001-03-27 | 2002-10-10 | Philips Corp Intellectual Pty | Verfahren zur Übertragung von Daten über einen Datenbus |
| US7631160B2 (en) * | 2001-04-04 | 2009-12-08 | Advanced Micro Devices, Inc. | Method and apparatus for securing portions of memory |
| US7231476B2 (en) * | 2002-11-18 | 2007-06-12 | Arm Limited | Function control for a processor |
| WO2004046916A2 (en) * | 2002-11-18 | 2004-06-03 | Arm Limited | Exception types within a secure processing system |
| FR2849233B1 (fr) | 2002-12-24 | 2005-05-20 | Trusted Logic | Procede de securisation des systemes informatiques par confinement logiciel |
| US7774619B2 (en) * | 2004-11-17 | 2010-08-10 | Broadcom Corporation | Secure code execution using external memory |
| US20060265544A1 (en) * | 2005-05-17 | 2006-11-23 | John Rudelic | Internally authenticated flash remediation |
| FR2888433A1 (fr) * | 2005-07-05 | 2007-01-12 | St Microelectronics Sa | Protection d'une quantite numerique contenue dans un circuit integre comportant une interface jtag |
| EP1742152B1 (de) | 2005-07-07 | 2012-09-12 | Texas Instruments Inc. | Verfahren und System für eine mehrfach nutzbare Speicherzugangsbeschränkung |
| US20070162964A1 (en) * | 2006-01-12 | 2007-07-12 | Wang Liang-Yun | Embedded system insuring security and integrity, and method of increasing security thereof |
| JP4795812B2 (ja) * | 2006-02-22 | 2011-10-19 | 富士通セミコンダクター株式会社 | セキュアプロセッサ |
| JP2008027327A (ja) * | 2006-07-25 | 2008-02-07 | Sony Corp | メモリアクセス制御装置および方法、並びに、通信装置 |
| JP4712017B2 (ja) * | 2006-11-13 | 2011-06-29 | 韓國電子通信研究院 | ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法 |
| US8190885B2 (en) * | 2006-12-21 | 2012-05-29 | Spansion Llc | Non-volatile memory sub-system integrated with security for storing near field transactions |
| US8307416B2 (en) | 2007-01-03 | 2012-11-06 | Texas Instruments Incorporated | Data structures for use in firewalls |
| US8056143B2 (en) | 2007-01-19 | 2011-11-08 | Research In Motion Limited | Selectively wiping a remote device |
-
2008
- 2008-10-23 US US12/257,339 patent/US8555015B2/en active Active
-
2009
- 2009-09-30 CN CN200980142513.3A patent/CN102197382B/zh active Active
- 2009-09-30 WO PCT/US2009/059130 patent/WO2010047930A1/en not_active Ceased
- 2009-09-30 DE DE112009002502.1T patent/DE112009002502B4/de active Active
- 2009-10-13 TW TW098134676A patent/TWI460604B/zh active
-
2013
- 2013-09-09 US US14/022,083 patent/US9311255B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6845159B1 (en) | 1998-10-07 | 2005-01-18 | Protego Information Ab | Processing method and apparatus for converting information from a first format into a second format |
| US20030084308A1 (en) | 2001-10-03 | 2003-05-01 | Van Rijnswou Sander Matthijs | Memory encryption |
| US20070050580A1 (en) | 2005-08-31 | 2007-03-01 | Lewis Russell L | Apparatus, system, and method for implementing protected virtual memory subcontexts |
Also Published As
| Publication number | Publication date |
|---|---|
| TW201030550A (en) | 2010-08-16 |
| TWI460604B (zh) | 2014-11-11 |
| DE112009002502T5 (de) | 2012-10-04 |
| US9311255B2 (en) | 2016-04-12 |
| US8555015B2 (en) | 2013-10-08 |
| US20100106954A1 (en) | 2010-04-29 |
| WO2010047930A1 (en) | 2010-04-29 |
| US20140040584A1 (en) | 2014-02-06 |
| CN102197382B (zh) | 2016-01-13 |
| CN102197382A (zh) | 2011-09-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE112009002502B4 (de) | Multilayer inhalte-schützender Mikrocontoller | |
| DE102008021567B4 (de) | Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel | |
| DE102008011925B4 (de) | Sicheres Initialisieren von Computersystemen | |
| EP3259698B1 (de) | Autonom bootendes system mit einem sicherheitsmodul | |
| DE19781829C2 (de) | Verfahren und Vorrichtung zum Schützen eines Flash-Speichers | |
| DE10196006B4 (de) | Erzeugen einer Schlüsselhierarchie zur Verwendung in einer isolierten Ausführungsumgebung | |
| DE112005003340B4 (de) | Mechanismus zum Bestimmen der Vertrauenswürdigkeit von Außerbandverwaltungsagenten | |
| DE102008006759B4 (de) | Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit | |
| DE19782169C2 (de) | Kryptographisch geschütztes Seitenwechsel-Subsystem | |
| DE60302844T2 (de) | Halbleitervorrichtung mit Verschlüsselung, Halbleitervorrichtung mit externer Schnittstelle, und Inhaltswiedergabeverfahren | |
| DE102018115491A1 (de) | System, vorrichtung und verfahren zur seitengranularen, softwaregesteuerten speicherverschlüsselung mit mehreren schlüsseln | |
| DE102009013384B4 (de) | System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung | |
| DE102018115489A1 (de) | Krypto-erzwungene rechte für isolation | |
| DE112010005842T5 (de) | Verwürfeln einer Adresse und Verschlüsseln von Schreibdaten zum Speichern einer Speichervorrichtung | |
| DE112009005466T5 (de) | Verfahren und Vorrichtung zum Bereitstellen einer sicheren Anwendungsausführung | |
| DE102013108394A1 (de) | Verfahren zum Verwalten eines Schlüssels für sicheres Speichern von Daten und Vorrichtung dafür | |
| DE102020119389A1 (de) | Vorrichtung und Verfahren zum sicheren Verwalten von Schlüsseln | |
| DE102013200161A1 (de) | Datenverschlüsselung/-Komprimierung auf der Grundlage einer Speicheradressübersetzung | |
| DE102020126293A1 (de) | Vorrichtungen, verfahren und systeme für anweisungen für kryptografisch an daten gebundene nutzungsbeschränkungen | |
| DE102012200613A1 (de) | System und Verfahren zur Unterstützung von JIT in einem sicheren System und zufällig zugewiesenen Speicherbereichen | |
| WO2011054639A1 (de) | Kryptographisches Hardwaremodul bzw. Verfahren zur Aktualisierung eines kryptographischen Schlüssels | |
| DE102015113468A1 (de) | Datenverarbeitungsvorrichtung und verfahren zum sichern einer datenverarbeitungsvorrichtung gegen angriffe | |
| DE102021110766B3 (de) | Forensik-Modul und eingebettetes System | |
| DE102008050631A1 (de) | Datenverarbeitungssystem | |
| DE112006004173T5 (de) | Schutz eines programmierbaren Speichers gegen unberechtigte Veränderung |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R082 | Change of representative |
Representative=s name: CANZLER & BERGMEIER PATENTANWAELTE, DE |
|
| R082 | Change of representative |
Representative=s name: CANZLER & BERGMEIER PATENTANWAELTE, DE |
|
| R081 | Change of applicant/patentee |
Owner name: MAXIM INTEGRATED PRODUCTS, INC., SAN JOSE, US Free format text: FORMER OWNER: MAXIM INTEGRATED PRODUCTS, SUNNYVALE, CALIF., US Effective date: 20140508 Owner name: MAXIM INTEGRATED PRODUCTS, INC., US Free format text: FORMER OWNER: MAXIM INTEGRATED PRODUCTS, SUNNYVALE, US Effective date: 20140508 |
|
| R082 | Change of representative |
Representative=s name: PATENTANWAELTE CANZLER & BERGMEIER PARTNERSCHA, DE Effective date: 20140508 Representative=s name: PATENTANWAELTE CANZLER & BERGMEIER PARTNERSCHA, DE Effective date: 20121116 Representative=s name: PATENTANWAELTE CANZLER & BERGMEIER PARTNERSCHA, DE Effective date: 20121009 Representative=s name: CANZLER & BERGMEIER PATENTANWAELTE, DE Effective date: 20121116 Representative=s name: CANZLER & BERGMEIER PATENTANWAELTE, DE Effective date: 20121009 Representative=s name: CANZLER & BERGMEIER PATENTANWAELTE, DE Effective date: 20140508 |
|
| R012 | Request for examination validly filed | ||
| R016 | Response to examination communication | ||
| R130 | Divisional application to |
Ref document number: 112009005596 Country of ref document: DE |
|
| R018 | Grant decision by examination section/examining division | ||
| R020 | Patent grant now final |