DE102009060807B4 - Speichersystem - Google Patents

Speichersystem Download PDF

Info

Publication number
DE102009060807B4
DE102009060807B4 DE102009060807.9A DE102009060807A DE102009060807B4 DE 102009060807 B4 DE102009060807 B4 DE 102009060807B4 DE 102009060807 A DE102009060807 A DE 102009060807A DE 102009060807 B4 DE102009060807 B4 DE 102009060807B4
Authority
DE
Germany
Prior art keywords
instruction
value
memory
processing unit
bit
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
Application number
DE102009060807.9A
Other languages
English (en)
Other versions
DE102009060807A1 (de
Inventor
Jimyung Na
Gijin Kang
Jung-hyun Kim
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102009060807A1 publication Critical patent/DE102009060807A1/de
Application granted granted Critical
Publication of DE102009060807B4 publication Critical patent/DE102009060807B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Speichersystem mit:
einer Speichervorrichtung (160; 260; 360; 460), die eine Mehrzahl von Anweisungen speichert; und
einer Zentraleinheit (120; 220; 320; 420), die eine von der Speichervorrichtung (160; 260; 360; 460) abgerufene Anweisung verarbeitet,
wobei die Zentraleinheit (120; 220; 320; 420) eine Änderung in der von der Speichervorrichtung abgerufenen Anweisung erfasst während des Verarbeitens der Anweisung, wobei die Zentraleinheit (120) einen Sicherheitsanweisungssatz verarbeitet zum Erfassen, ob die von der Speichervorrichtung (160) abgerufene Anweisung geändert wurde,
wobei der Sicherheitsanweisungssatz enthält:
die von der Speichervorrichtung abgerufene Anweisung; und
einen Fehlerprüfcodewert der Anweisung,
wobei die Zentraleinheit eine Vergleichsoperation durchführt zum Vergleichen der von der Speichervorrichtung (120) abgerufenen Anweisung mit dem Fehlerprüfcodewert, wobei die Speichervorrichtung (160) den Sicherheitsanweisungssatz speichert, wobei der Sicherheitsanweisungssatz automatisch erzeugt wird während einer Codekompilierungsoperation eines Anweisungsprogramms mit der Mehrzahl von Anweisungen,
wobei der Sicherheitsanweisungssatz eine Vergleichsanweisung enthält und die Zentraleinheit (120) die Vergleichsoperation durch Ausführen der Vergleichsanweisung durchführt.

Description

  • HINTERGRUND
  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf Speichersysteme und genauer auf Verfahren und Systeme für sichere Speicheroperationen.
  • Beschreibung der verwandten Technologie
  • Chipkarten besitzen Mikrochips mit eingebauten Mikroprozessoren, Kartenbetriebssystemen, Sicherheitsmodulen, Speichern usw. für bestimmte Verarbeitungsaufgaben. Chipkarten führen verschiedene Funktionen wie z.B. Operationen, Verschlüsselung und zweiseitige Kommunikation durch, wobei den Benutzern hohe Sicherheit und Transportfähigkeit bereitgestellt wird. Chipkarten sind weit verbreitet in Anwendungen zur Identifikation, Authentifizierung, Datenspeicherung usw.
  • Chipkarten, Terminals und Anwendungssoftware sind funktionell miteinander verbunden. In dieser Hinsicht wird die Chipkartenindustrie oft bei Finanzdienstleistungen, Fahrkarten, Gesundheitskarten sowie Mobilfunkdiensten benutzt. Es wird erwartet, dass die Verwendung von Chipkarten zunehmen wird mit dem Fortschritt des Internets und des elektronischen Handels angesichts der Mobilität und Sicherheit von Chipkarten, die Chipkarten besonders geeignet machen für den elektronischen Handel und Online-Dienste.
  • Sicherheit ist ein wichtiges Merkmal von Chipkarten. Daher ist die Sicherheits-Technologie für Chipkarten wesentlich für die Entwicklung. Sicherheitsfunktionen können für ein Chipbetriebssystem, ein Netzwerk, eine Anwendung, usw. implementiert werden. Sicherheitsprinzipien für Chipkarten beinhalten Vertraulichkeit, Nachweisbarkeit, Authentifizierung, Integrität und Verifizierung.
  • Darüber hinaus sind Anti-Hacker-Merkmale von Bedeutung. Bekannte physikalische Anti-Hacker-Technologien verwenden einen Lichtdetektor, einen Innenisolations-Entfernungs-Detektor und einen Aktivschild-Entfernungs-Detektor. Diese Technologien arbeiten derart, dass sie das Entfernen eines physikalischen Schildes eines Chips anzeigen, wodurch der Chip funktionsunfähig gemacht wird.
  • Jedoch sind diese Technologien anfällig für Hackerangriffe bei ausreichender Zeit und/oder Technologie. Daher besteht ein Bedürfnis nach verbesserten Sicherheitsmerkmalen.
  • US 2006/0288223 A1 offenbart ein System zur schnellen und einfachen Authentifizierung großer Computerprogramme. Das System arbeitet, indem es zunächst das Computerprogramm mit einer digitalen Signatur inkrementell versiegelt. Konkret wird das Computerprogramm in eine Reihe von Seiten unterteilt und für jede Seite ein Hash-Wert berechnet. Der Satz von Hash-Werten wird zu einem Hash-Wert-Array zusammengefasst, und das Hash-Wert-Array wird dann mit einer digitalen Signatur versiegelt. Das Computerprogramm wird dann zusammen mit dem Hashwert-Array und der digitalen Signatur verteilt. Um das Computerprogramm zu authentifizieren, prüft ein Empfänger zunächst die Authentizität des Hash-Wert-Arrays mit der digitalen Signatur und einem öffentlichen Schlüssel. Sobald das Hash-Wert-Array authentifiziert wurde, kann der Empfänger dann die Authentizität jeder Seite des Computerprogramms überprüfen, indem er einen Hash-Wert einer zu ladenden Seite berechnet und dann mit einem zugehörigen Hash-Wert im authentifizierten Hash-Wert-Array vergleicht. Stimmen die Hash-Werte nicht überein, so kann die Ausführung angehalten werden.
  • US 2008/0046737 A1 offenbart: Ein sicheres Speichersystem verbindet einen verschlüsselten ersten Datenwert, der in einem Speicher gespeichert ist, mit einem Zustand des Speichers, indem es zufällig eine Adresse in dem Speicher auswählt und einen zweiten Datenwert, der an der Adresse gespeichert ist, mit einem Hash-Wert des ersten Datenwertes mischt, um einen Split-Wert zu erzeugen. Die Adresse, der Split-Wert und der erste Datenwert werden verschlüsselt und im Speicher abgelegt. Um eine Manipulation des Speichers zu erkennen, wird die verschlüsselte Adresse entschlüsselt und der entsprechende Wert aus dem Speicher gelesen und zur Wiederherstellung eines Hash-Wertes aus dem entschlüsselten Split-Wert verwendet. Der zurückgewonnene Hash-Wert wird dann mit dem ursprünglichen Hash-Wert verglichen.
  • Zusammenfassung
  • Die vorliegende Erfindung ist definiert in dem unabhängigen Anspruch. Spezifische Ausführungsformen sind definiert in den abhängigen Ansprüchen.
  • Figurenliste
    • 1 stellt ein Speichersystem gemäß einigen Ausführungsformen der vorliegenden Erfindung dar.
    • 2 ist ein Ablaufdiagramm, das ein Verfahren des Speicherns von Anweisungen durch das Speichersystem gemäß der vorliegenden Erfindung darstellt.
    • 3 ist ein Ablaufdiagramm, das ein Verfahren des Verarbeitens einer Anweisung durch das Speichersystem gemäß der vorliegenden Erfindung veranschaulicht.
    • 4 stellt die Programmschritte des Einfügens einer Vergleichs-PD-Anweisung dar.
    • 5 veranschaulicht ein Speichersystem gemäß anderen Ausführungsformen der vorliegenden Erfindung.
    • 6 ist ein Ablaufdiagramm, das ein Verfahren des Übertragens von Daten des Speichersystems gemäß der vorliegenden Erfindung darstellt.
    • 7 veranschaulicht ein alternatives Speichersystem gemäß der vorliegenden Erfindung.
    • 8 ist ein Ablaufdiagramm, das die Schritte des Verarbeitens einer Anweisung des in 7 dargestellten Speichersystems darstellt.
    • 9 stellt eine Anweisung des Speichersystems gemäß der vorliegenden Erfindung dar.
    • 10 stellt einen Anweisungssatz gemäß der vorliegenden Erfindung dar.
    • 11 stellt ein Speichersystem gemäß noch weiterer Ausführungsformen der vorliegenden Erfindung dar.
    • 12 stellt Schritte des Speicherns eines Anweisungssatzes des in 11 dargestellten Speichersystems dar.
    • 13 ist ein Ablaufdiagramm, das Schritte des Verarbeitens einer Anweisung des Speichersystems gemäß der vorliegenden Erfindung darstellt.
    • 14 ist ein Blockdiagramm einer Chipkarte, welche ein Speichersystem gemäß der vorliegenden Erfindung verwendet.
  • DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGSBEISPIELEN
  • Ausführungsbeispiele der vorliegenden Erfindung werden nun im Folgenden genauer mit Bezug auf die begleitenden Zeichnungen beschrieben werden.
  • Ein Speichersystem gemäß einer Ausführungsform der vorliegenden Erfindung kann die Änderung einer Anweisung und von Daten erfassen, die von Sicherheitsattacken herrühren, um gegenüber einem herkömmlichen Speichersystem eine verbesserte Sicherheitsfunktion bereitzustellen. Ein Speichersystem gemäß einer Ausführungsform der vorliegenden Erfindung erfasst, ob eine abgeholte Anweisung geändert wurde während des Verarbeitens einer Anweisung und bestimmt, ob eine Reset-Operation durchgeführt wird, auf der Grundlage eines Erfassungsergebnisses. Somit kann ein Speichersystem vor Laser-gestützten Attacken (z.B. dem Verwenden von hochenergetischem Licht mit kurzer Wellenlänge zum Lesen eines Musters auf einer Chipkarte), Störungstyp-Attacken (z.B. Verletzen von Sicherheitsmaßnahmen durch Unterbrechen der Ausführung einer oder mehrerer Maschinenanweisungen) usw. geschützt werden.
  • Einige Ausführungsformen der vorliegenden Erfindung stellen ein Programmdaten-Vergleichsverfahren bereit. Wenn Programmdaten geändert werden oder eine Leistungsversorgungsstörung aufgrund eines Laserangriffs oder eines Störungsangriffes auftritt, werden die geänderten Programmdaten mit dem Programmdaten-Vergleichsverfahren erfasst. Die Programmdaten sind ein Anweisungswert.
  • 1 stellt ein Speichersystem 100 gemäß einigen Ausführungsformen der vorliegenden Erfindung dar. Das Speichersystem 100 weist eine Zentraleinheit (CPU) 120, eine Schnittstelle 140 sowie eine Speicher-/Peripherieschaltung 160 auf. Das Speichersystem 100 ist derart ausgebildet, dass es eine Vergleichsanweisung aufweist, die verwendet wird zum Vergleichen eines Wertes einer Anweisung mit einem Wert des Fehlerprüfcodes (EDC) der Anweisung zum Bestimmen, ob der kompilierte Zustand einer Anweisung geändert wurde. Das heißt, das Speichersystem 100 bestimmt, ob eine Anweisung von Programmdaten geändert wurde seit die Programmdaten einschließlich der Anweisung kompiliert wurden und auf der Chipkarte gespeichert wurden.
  • Die CPU 120 steuert Operationen des Speichersystems 100. Die CPU 120 ist konfiguriert zum Verarbeiten einer Vergleichsanweisung. Die CPU 120 vergleicht einen Wert einer Anweisung mit dem Anweisungs-EDC-Wert. Diese Vergleichsoperation ist eine Prozedur des Verifizierens, ob ein EDC-Wert ein EDC-Wert einer Anweisung ist.
  • Wenn z.B. ein EDC-Wert definiert ist als ein invertierter Wert der Anweisung, vergleicht die CPU 120 den invertierten Wert der Anweisung mit einem EDC-Wert. Wenn der invertierte Wert der Anweisung gleich dem EDC-Wert ist, wird bestimmt, dass kein Hackerangriffsversuch auf die Anweisung gemacht wurde. Wenn andererseits der invertierte Wert der Anweisung nicht gleich dem EDC-Wert ist, wird bestimmt, dass ein Hackerangriffsversuch auf die Anweisung gemacht wurde. Wenn der Hackerangriffsversuch erfasst wird, kann die CPU 120 eine Verteidigungsmaßnahme durchführen, wie z.B. das Zurücksetzen oder Ausschalten aller Schaltungen des Speichersystems 100.
  • Die Schnittstelle 140 verbindet die CPU 120 und die Speicher-/Peripherieschaltung 160. Die Schnittstelle 140 überträgt Programmdaten PD an die CPU 120 durch einen 16-Bit-Bus während einer Anweisungsabrufoperation. Die Programmdaten PD sind eine Anweisung, die von einem Programmdatenbereich 162 der Speicher-/Peripherieschaltung 160 abgerufen wird. Die Schnittstelle 140 empfängt Schreibdaten WD von der CPU 120 durch den 16-Bit-Bus während einer Schreiboperation des Benutzerdatenbereichs 164 und überträgt diese Daten RD an die CPU 120 durch den 16-Bit-Bus während einer Leseoperation des Benutzerdatenbereichs 164.
  • Die Speicher-/Peripherieschaltung 160 ist ein Bereich zum Speichern von Daten und enthält den Programmdatenbereich 162 und den Benutzerdatenbereich 164. Der Programmdatenbereich 162 ist ein Bereich zum Speichern von Anweisungen für das Treiben des Speichersystems 100. Die Speicher-/Peripherieschaltung 160 überträgt die Programmdaten PD an die Schnittstelle 140 durch den 16-Bit-Bus während einer Anweisungsabrufoperation. Speicher-/Peripherieschaltung 160 empfängt die Schreibdaten WD durch den 16-Bit-Bus während einer Schreiboperation des Benutzerdatenbereichs 164 und überträgt die Lesedaten RD an die Schnittstelle 140 durch den 16-Bit-Bus während einer Leseoperation des Benutzerdatenbereichs 164.
  • Die Speicher-/Peripherieschaltung 160 enthält den Programmdatenbereich 162 und den Benutzerdatenbereich 164 zum Speichern von Daten, die erzeugt wurden während des Treibens der CPU 120. Die Speicher-/Peripherieschaltung 160 gemäß einer Ausführungsform der vorliegenden Erfindung ist eine Speichervorrichtung oder eine Schaltung, die Daten speichern kann. Die Speichervorrichtung kann eine flüchtige Speichervorrichtung (z.B. ein DRAM, ein SRAM usw.) oder eine nicht-flüchtige Speichervorrichtung (z.B. ein NAND-Flashspeicher, ein NOR-Flashspeicher, ein PRAM, ein FRAM, ein MRAM usw.) sein.
  • Der Programmdatenbereich 162 beinhaltet einen Sicherheitsanweisungssatz 163 mit einer Anweisung, einem EDC-Wert der Anweisung und einer Vergleichs-PD-Anweisung. Der Sicherheitsanweisungssatz 163 wird automatisch erzeugt, wenn programmierte Anweisungen kompiliert werden. Das heißt, eine Vergleichs-PD-Anweisung wird automatisch während einer Kompilierungsoperation eingefügt. Ein Benutzer kann eine solche Vergleichs-PD-Anweisung nicht verwenden.
  • Die Auswahl einer Kompilierungsmöglichkeit während der Systemherstellung erlaubt die Einstellung der automatischen Einfügung der Vergleichs-PD-Anweisung. Zum Beispiel kann für Anwendungen, die eine erhöhte Sicherheit erfordern, eine Kompilierungsvariante so ausgewählt werden, dass die Vergleichs-PD-Anweisung bei allen Anweisungen eingefügt wird. Andererseits kann bei einem geringeren Sicherheitsbedürfnis eine Kompilierungsmöglichkeit so ausgewählt werden, dass die Vergleichs-PD-Anweisung nur seltener bei Anweisungen eingefügt wird.
  • Während der Code-Kompilierungsoperation wird ein EDC-Wert einer Anweisung vor einer Vergleichs-PD-Anweisung automatisch eingefügt nach dem Einfügen der Vergleichs-PD-Anweisung. Ein invertierter Wert einer Anweisung kann verwendet werden als ein Fehlerprüfcodewert. Wie hier erwähnt, wird ein Sicherheitsanweisungssatz gebildet während der Codekompilierungsoperation. Der Sicherheitsanweisungssatz beinhaltet eine Anweisung, eine Vergleichs-PD-Anweisung und einen EDC-Codewert, z.B. einen invertierten Wert der Anweisung.
  • Während der Code-Kompilierungsoperation werden die Auswahl eines Ortes der Vergleichs-PD-Anweisung und eines Prozentsatzes der einzufügenden Vergleichs-PD-Anweisung gemacht. Dementsprechend fügt ein Kompilierer automatisch die Vergleichs-PD-Anweisung während der Code-Kompilierungs-Operation ein. Der Kompilierer bestimmt die Gesamtcodegröße, um die Vergleichs-PD-Anweisung gleichmäßig einzufügen.
  • 2 ist ein Flussdiagramm, das ein Verfahren des Speicherns von Anweisungen durch das Speichersystem gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Ein Anweisungsspeicherverfahren wird mit Bezug auf die 1 und 2 weiter unten beschrieben werden.
  • Ein Benutzer programmiert in dem Speichersystem 100 auszuführende Anweisungen (S110). Im Folgenden werden programmierte Anweisungen als „Anweisungsprogramm“ bezeichnet. Ein Kompilierer fügt automatisch während des Kompilierens des Anweisungsprogramms eine Vergleichs-PD-Anweisung, die einer Anweisung entspricht, und einen EDC-Wert der Anweisung ein. Somit, wenn das Kompilieren des Anweisungsprogrammes abgeschlossen ist, werden die kompilierten Anweisungen in dem Programmdatenbereich 162 der Speicher-/Peripherieschaltung 160 gespeichert. In dem Programmdatenbereich 162 gemäß einer Ausführungsform der vorliegenden Erfindung gibt es eine Mehrzahl von Sicherheitsanweisungssätzen, die in der Lage sind, Datenänderungen einer Anweisung zu erfassen.
  • 3 ist ein Ablaufdiagramm, das ein Verfahren des Verarbeitens einer Anweisung durch das Speichersystem gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Ein Anweisungsverarbeitungsverfahren wird nun beschrieben werden, wie es weiter unten mit Bezug auf die 1 und 3 dargelegt ist. Nach dem Einschalten überträgt die Zentraleinheit (CPU) 120 eine Anfangsadresse für das Abrufen von Anweisungen an die Speicher-/Peripherieschaltung 160 (S210). Die Speicher-/Peripherieschaltung 160 liest eine Anweisung, die der Anfangsadresse entspricht. Die ausgelesene Anweisung wird an die CPU 120 über die Schnittstelle 140 übertragen. Somit wird eine Anweisungsabrufoperation gestartet (S220). Die CPU 120 dekodiert eine abgerufene Anweisung und bestimmt, ob die dekodierte Anweisung eine Vergleichs-PD-Anweisung ist (S230).
  • Wenn die gegenwärtig abgerufene Anweisung nicht die Vergleichs-PD-Anweisung ist, wird sie in einem Register gespeichert (S240). Die CPU 120 führt eine Funktion gemäß der abgerufenen Anweisung durch (S250). Der Ablauf fährt fort mit dem Abruf der nächsten Anweisung (S230).
  • Wenn die gegenwärtig abgerufene Anweisung, die in einem Register der CPU gespeichert ist, eine Vergleichs-PD-Anweisung ist, ruft die CPU 120 die nächste Anweisung von dem Programmdatenbereich 162 ab (S260). Die abgerufene nächste Anweisung ist ein Fehlerprüfcode(EDC)-Wert der in dem Register gespeicherten Anweisung.
  • Die CPU 120 bestimmt, ob ein Wert der abgerufenen Anweisung gleich einem invertierten Wert der gespeicherten Anweisung ist (S270). Wenn der Wert der nächsten Anweisung gleich dem invertierten Wert der gespeicherten Anweisung ist, wird bestimmt, dass Daten der Anweisung nicht geändert wurden. Der Ablauf fährt mit dem Abruf der nächsten Anweisung fort (S220).
  • Wenn der Wert der abgerufenen Anweisung nicht gleich dem invertierten Wert der gespeicherten Anweisung ist, wird bestimmt, dass Daten der Anweisung geändert wurden. Das Speichersystem 100 führt eine Rücksetzoperation oder einen Fast-Interrupt-Request (FIQ) gemäß einer Anti-Hackerangriffs-Routine durch (S280).
  • 4 stellt ein beispielhaftes Programm zum Einfügen einer Vergleichs-PD-Anweisung dar. Bezugnehmend auf 4 wird die Vergleichs-PD-Anweisung nach einer ersten Anweisung Instruction1, einer fünften Anweisung Instruction5, einer siebten Anweisung Instruction7, einer dreizehnten Anweisung Instruction13, einer zweiten Interrupt-Anweisung Instruction_interrupt2 und einer 31. Anweisung Instruction31. Ein EDC-Wert der jeweiligen Anweisungen wird eingefügt nach der eingefügten Vergleichs-PD-Anweisung.
  • Das Speichersystem 100 gemäß einer Ausführungsform der vorliegenden Erfindung ist derart konfiguriert, dass es einen normalen Betrieb durchführt außer in dem Fall einer Fehlfunktion, die auf einen Hackerangriff zurückzuführen ist während des Einfügens einer Vergleichs-PD-Anweisung. Eine Zentraleinheit (CPU) 120 ist mit Hardware zum Ausführen einer Vergleichs-PD-Anweisung ausgebildet. Ein Kompilierer ist derart programmiert, dass er eine Vergleichs-PD-Anweisung einfügt und einen Fehlerprüfcode(EDC)-Wert einer Anweisung nach dem Einfügen der Vergleichs-PD-Anweisung einfügt.
  • Das in 1 dargestellte Speichersystem 100 ist auf einem 16-Bit-Datenbus basierend ausgebildet. Jedoch sind die Ausführungsformen der vorliegenden Erfindung nicht darauf beschränkt. Das heißt, das Speichersystem 100 kann basierend auf einem 32-Bit-Datenbus oder einem höheren Bit-Datenbus ausgebildet sein.
  • Das Speichersystem 100 gemäß einer Ausführungsform der vorliegenden Erfindung enthält eine Vergleichs-PD-Anweisung zum Erfassen, ob Daten einer Anweisung geändert wurden. So wird die Vergleichs-PD-Anweisung derart verarbeitet, dass bestimmt wird, ob Daten der Anweisung geändert wurden.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung ist ein Schutzverfahren implementiert. Wenn eine Änderung eines Datenwertes oder eine Leistungsversorgungsstörung aufgrund eines Laserangriffs oder eines Störungsangriffes auftritt, kann der Laserangriff oder der Störungsangriff durch das Schutzverfahren erkannt werden.
  • 5 veranschaulicht ein Speichersystem gemäß anderen Ausführungsformen der vorliegenden Erfindung. Mit Bezug auf 5 enthält ein Speichersystem 200 eine Zentraleinheit (CPU) 220, eine Schnittstelle 240 und eine Speicher-/Peripherieschaltung 260. Das Speichersystem 200 ist derart ausgebildet, dass es Fehlerprüfcodedaten WEDC und REDC überträgt unter Verwendung eines nicht benützten Busses während einer Halbwort-Zugriffsoperation oder einer Byte-Zugriffsoperation. Die CPU 220 und die Speicher-/Peripherieschaltung 260 sind konfiguriert zum Berechnen eines EDC-Wertes von Zugriffsdaten gemäß einem EDC-Algorithmus während der Halbwort-Zugriffsoperation oder der Byte-Zugriffsoperation.
  • Das Speichersystem 200 enthält einen 16-Bit-Datenbus. Das Speichersystem 200 führt einen 16-Bit-Zugriff, z.B. eine Wortzugriffsoperation durch. In bestimmten Fällen kann das Speichersystem 200 eine Halbwort-Zugriffsoperation oder eine Byte-Zugriffsoperation durchführen. Das Speichersystem 200 überträgt EDC-Daten unter Verwendung eines nicht benutzten 8-Bit-Buses während einer Halbwort-Zugriffsoperation oder einer Byte-Zugriffsoperation.
  • Ein Verfahren des Verhinderns von Hackerangriffen während einer Byte-Leseoperation wird nun im Detail beschrieben werden. Während der Byte-Leseoperation werden Lesedaten RD von der Speicher-/Peripherieschaltung 260 durch einen 8-Bit-Bus übertragen, während ein EDC-Wert der Lesedaten RD (im Folgenden als „REDC“ bezeichnet) durch einen nicht benutzten 8-Bit-Bus übertragen wird. Der Wert REDC ist ein EDC-Wert der Lesedaten RD, die von der Speicher-/Peripherieschaltung 260 übertragen wurden.
  • Die CPU 220 berechnet einen EDC-Wert, der von der Speicher-/Peripherieschaltung 260 übertragenen Lesedaten RD als Antwort auf ein Wort/Byte-Signal WBS. Das Wort/Byte-Signal WBS spezifiziert, ob die Operation eine WortZugriffsoperation oder eine Byte-Zugriffsoperation ist. Die CPU 220 bestimmt, ob der berechnete EDC-Wert (im Folgenden als „RDEDC“ bezeichnet) gleich dem übertragenen EDC-Wert REDC ist, um ein Angriffserfassungssignal ADS zu erzeugen.
  • Wenn der berechnete EDC-Wert RDEDC gleich dem übertragenen EDC-Wert REDC ist, wird bestimmt, dass es keinen Hackerangriff auf die Daten gibt. Wenn der berechnete EDC-Wert RDEDC nicht gleich dem übertragenen EDC-Wert REDC ist, wird bestimmt, dass es einen Hackerangriff auf die Daten gibt. Wenn bestimmt wird, dass es einen Hackerangriff gibt, wird das Speichersystem 200 zurückgesetzt oder geht in einen bestimmten Modus, so dass der Hackerangriff nicht fortschreitet.
  • Ein Verfahren des Verhinderns eines Hackerangriffs während einer Byte-Schreiboperation wird nun im Detail beschrieben werden. Während der Byte-Schreiboperation überträgt die CPU 220 Schreibdaten WD durch einen 8-Bit-Bus während ein EDC-Wert der Schreibdaten WD (im Folgenden auch als „WEDC“ bezeichnet) durch einen nicht benutzten 8-Bit-Bus übertragen wird. Der Wert WEDC ist ein EDC-Wert, der von der CPU 220 übertragenen Schreibdaten WD.
  • Die Speicher-/Peripherieschaltung 260 berechnet einen EDC-Wert der Schreibdaten WD als Antwort auf das Wort/Byte-Signal WBS. Die Speicher-/Peripherieschaltung 260 bestimmt, ob der berechnete EDC-Wert WDEDC gleich dem übertragenen EDC-Wert WEDC ist, um ein Angriffserfassungssignal ADS zu erzeugen.
  • Wenn der berechnete EDC-Wert WDEDC gleich dem übertragenen EDC-Wert WEDC ist, wird bestimmt, dass es keinen Hackerangriff auf die Daten gibt. Wenn der berechnete EDC-Wert WDEDC nicht gleich dem übertragenen EDC-Wert WEDC ist, wird bestimmt, dass es einen Hackerangriff auf die Daten gibt. Wenn bestimmt wird, dass es einen Hackerangriff gibt, wird das Speichersystem 200 zurückgesetzt oder geht in einen bestimmten Modus, so dass der Hackerangriff nicht fortschreitet.
  • 6 ist ein Ablaufdiagramm, das ein Verfahren des Übertragens von Daten des Speichersystems gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Bezug nehmend auf die 5 und 6 wird nun ein Datenübertragungsverfahren im Detail beschrieben werden.
  • Ein Sender, die CPU 220 oder die Speicher-/Peripherieschaltung 260 überträgt Daten an einen Bus, der während dem Byte-Zugriff verwendet wird, und überträgt einen EDC-Wert der zu übertragenden Daten an einen nicht verwendeten Bus an einen Empfänger, die Speicher-/Peripherieschaltung 260 oder die CPU 220 (S310). Der Sender berechnet einen EDC-Wert relativ zu Daten während des Byte-Zugriffs. Der Empfänger berechnet den EDC-Wert von den übertragenen Daten (S320).
  • Der Empfänger bestimmt, ob der berechnete EDC-Wert gleich dem übertragenen EDC-Wert ist (S330). Wenn der berechnete EDC-Wert gleich dem übertragenen EDC-Wert ist, bestimmt der Empfänger, dass es keinen Hackerangriffsversuch auf die Daten gibt und die Datenübertragung ist abgeschlossen (S340). Wenn andererseits der berechnete EDC-Wert nicht gleich dem übertragenen EDC-Wert ist, bestimmt der Empfänger, dass es einen Hackerangriffsversuch auf die Daten gibt. An diesem Punkt wird das Speichersystem 200 zurückgesetzt oder geht in einen bestimmten Modus (S350).
  • Das in 5 dargestellte Speichersystem 200 ist auf der Grundlage eines 16-Bit-Datenbuses ausgebildet. Jedoch sind die Ausführungsformen der vorliegenden Erfindung nicht darauf beschränkt. Das heißt, das Speichersystem 200 kann auf der Grundlage eines 32-Bit- oder höheren Bit-Datenbusses ausgebildet sein.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung kann die Anzahl an Verarbeitungsbits selektiv sein. Zum Beispiel kann das Speichersystem mit 16 Bit oder 32 Bit verarbeitet werden. Im Falle eines ARM(Advanced RISC Machine)-Prozessors arbeitet ein ARM-Modus mit 16 Bit und ein Thumb-Modus arbeitet mit 32 Bit. In dem Fall eines solchen Speichersystems wird die Bitanzahl einer Anweisung selektiv gesteuert. Das Speichersystem kann derart konfiguriert sein, dass es einen EDC-Wert einer abzurufenden Anweisung zu einem unbenutzten Bus während des Abrufens der Anweisung überträgt.
  • 7 veranschaulicht ein alternatives Speichersystem gemäß einer Ausführungsform der vorliegenden Erfindung. Bezug nehmend auf 7 kann ein Speichersystem 300 selektiv mit 16 Bit oder 32 Bit arbeiten. Das heißt, ein Verarbeitungsmodus des Speichersystems 300 weist einen 32-Bit-Modus und einen 16-Bit-Modus auf. In dem 16-Bit-Modus wird ein zu einer Anweisung gehörender EDC-Wert während des Abrufens einer 16-Bit-Anweisung durch einen nicht benutzten 16-Bit-Bus übertragen.
  • Ein Verfahren des Verhinderns eines Daten-Hackerangriffs während einer Anweisungsabrufoperation wird nun im Detail beschrieben werden. Während der Anweisungsabrufoperation wird eine Anweisung PD von einer Speicher-/Peripherieschaltung 360 durch einen 16-Bit-Bus übertragen, während ein EDC-Wert der Anweisung PD (im Folgenden als „PEDC“ bezeichnet) durch einen nicht benutzten 16-Bit-Bus übertragen wird. Der Wert PEDC ist ein EDC-Wert der Anweisung PD, der von der Speicher-/Peripherieschaltung 360 berechnet wird. Damit ist die Anweisungsabrufoperation durchgeführt.
  • Eine Zentraleinheit (CPU) 320 berechnet einen EDC-Wert der Anweisung PD, die von der Speicher-/Peripherieschaltung 360 abgerufen wird als Antwort auf ein Verarbeitungsmodustypsignal ATS. Das Signal ATS spezifiziert, ob das Speichersystem 300 in einem 32-Bit-Verarbeitungsmodus oder in einem 16-Bit-Verarbeitungsmodus ist. Die CPU 320 bestimmt, ob der berechnete EDC-Wert PDEDC gleich dem übertragenen EDC-Wert PEDC ist, um ein Angriffs-Erfassungssignal ADS zu erzeugen.
  • Wenn der berechnete EDC-Wert PDEDC gleich dem übertragenen EDC-Wert PEDC ist, wird bestimmt, dass es keinen Hackerangriff auf eine Anweisung gibt. Wenn andererseits der berechnete EDC-Wert PDEDC nicht gleich den übertragenen EDC-Wert ist, wird bestimmt, dass es einen Hackerangriff auf eine Anweisung gibt. Wenn bestimmt wird, dass es einen Hackerangriff gibt, wird das Speichersystem 300 zurückgesetzt oder geht in einen bestimmten Modus, so dass der Hackerangriff nicht fortgeführt wird.
  • 8 ist ein Ablaufdiagramm, das die Schritte des Verarbeitens einer Anweisung des in 7 dargestellten Speichersystems 300 zeigt. Ein Anweisungsverarbeitungsverfahren wird nun im Detail mit Bezug auf die 7 und 8 beschrieben werden.
  • Wenn das Speichersystem 300 in einem 16-Bit-Verarbeitungsmodus hochgefahren wird, überträgt die CPU 320 eine Programmadresse über eine Schnittstelle 340 an die Speicher-/Peripherieschaltung 360 zum Abrufen einer Anweisung (S410). Die Speicher-/Peripherieschaltung 360 liest eine Anweisung, die der Programmadresse entspricht und überträgt die gelesene Anweisung an die CPU 320 durch einen 16-Bit-Bus. Die Speicher-/Peripherieschaltung 360 überträgt einen EDC-Wert der gelesenen Anweisung an die anderen 16-Bit-Busse. Damit ist eine Abrufoperation für eine Anweisung abgeschlossen (S420).
  • Die CPU 320 berechnet einen EDC-Wert der übertragenen Anweisung (S430). Die CPU 320 bestimmt, ob ein berechneter EDC-Wert gleich einem übertragenen EDC-Wert (S440) ist. Wenn der berechnete EDC-Wert gleich dem übertragenen EDC-Wert ist, wird bestimmt, dass es keinen Hackerangriff auf eine Anweisung gibt, und die Anweisung wird verarbeitet (S450). Danach geht der Ablauf zu S420 zum Abrufen der nächsten Anweisung. Wenn andererseits der berechnete EDC-Wert nicht gleich dem übertragenen EDC-Wert ist, wird bestimmt, dass es einen Hackerangriff auf eine Anweisung gibt. Somit wird das Speichersystem zurückgesetzt oder geht in einen bestimmten Modus (S460).
  • Die in 5 bis 8 dargestellten Speichersysteme verwenden einen nicht benutzten Bus als einen Übertragungspfad eines Fehlerprüfcodes (EDC). Als Folge davon besitzt das Speichersystem gemäß einer Ausführungsform der vorliegenden Erfindung eine verbesserte Sicherheitsmaßnahme gegen Hackerangriffsversuche.
  • Andere Ausführungsformen der vorliegenden Erfindung stellen ein EDC-Anweisungsschutzverfahren bereit. Wenn Datenänderung oder eine Anschaltstörung aufgrund eines Laserangriffs oder eines Störungsangriffs auftritt, wird der Angriff mittels des EDC-Anweisungsschutzverfahrens erkannt. Somit wird ein Speichersystem gemäß anderen Ausführungsformen der vorliegenden Erfindung derart implementiert, dass ein EDC-Wert für alle Anweisungen eingefügt wird.
  • 9 veranschaulicht eine Anweisung des Speichersystems gemäß einer Ausführungsform der vorliegenden Erfindung. Mit Bezug auf 9 ist eine Größe eines Anweisungssatzes gleich N Bit. Der Anweisungssatz enthält einen M-Bit-EDC-Wert (wobei M gleich 1 oder mehr ist). Daher ist eine Größe einer Anweisung gleich N minus M (N-M) Bit.
  • Eine Zentraleinheit (CPU) besitzt einen Anweisungssatz der Größe N Bit gemäß einer verwendeten Bit-Größe der Anweisung die in 10 dargestellt ist. Da die wirklichen Anweisungen auf das N-M-Bit abgebildet sind, muss die Anzahl der Anweisungen abnehmen. Wenn Sicherheit oder ein Speichersystem wichtig ist, kann die Anzahl von Anweisungen niedriger Frequenz abnehmen.
  • 11 stellt ein Speichersystem gemäß noch weiteren Ausführungsformen der vorliegenden Erfindung dar. Mit Bezug auf 11 enthält ein Speichersystem 400 eine Zentraleinheit 420, eine Schnittstelle 440 und eine Speicher-/Peripherieschaltung 460. Das Speichersystem 400 arbeitet mit einer N-Bit-Architektur. Ein in einem Programmdatenbereich 462 der Speicher-/Peripherieschaltung 360 gespeicherter Anweisungssatz besteht aus einer echten (N-M)-Bit-Anweisung und einem M-Bit-EDC-Wert. Die CPU 420 berechnet einen EDC-Wert einer echten (N-M)-Bit-Anweisung während einer Anweisungsabrufoperation zum Bestimmen, ob der berechnete EDC-Wert gleich einem M-Bit-EDC-Wert einer übertragenen Anweisung ist. Als Ergebnis der Bestimmung erkennt das Speichersystem 400, ob es einen Angriffsversuch auf eine Anweisung gibt.
  • Die CPU 420 ist konfiguriert zum Verarbeiten einer Anweisung mit einem EDC-Wert. Die CPU 420 ist hinsichtlich ihrer Hardware konfiguriert zum Dekodieren einer abgerufenen Anweisung, zum Berechnen eines EDC-Wertes einer übertragenen echten Anweisung und zum Vergleichen des berechneten EDC-Wertes mit dem übertragenen EDC-Wert.
  • 12 veranschaulicht Schritte des Speicherns eines Anweisungssatzes des in 11 dargestellten Speichersystems 400. Mit Bezug auf 12 programmiert ein Benutzer eine echte (N-M)-Bit-Anweisung (S510). Ein Kompilierer hängt einen M-Bit-EDC-Wert, der der echten (N-M)-Bit-Anweisung entspricht, an eine echte Anweisung an, zum Erzeugen einer N-Bit-Anweisung während einer Kompilierungsoperation (S520). Somit wird ein Anweisungssatz erzeugt. Der Anweisungssatz 463 wird gespeichert in einem Programmdatenbereich 462 der Speicher-/Peripherieschaltung 460 (S530). Als Folge ist die Speicherung des Anweisungssatzes abgeschlossen.
  • 13 ist ein Ablaufdiagramm, das die Schritte des Verarbeitens einer Anweisung des Speichersystems gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Eine Anweisungsverarbeitungsprozedur wird nun weiter unten mit Bezug auf die 11 und 13 beschrieben werden.
  • Wenn das Speichersystem 400 eingeschaltet wird, überträgt die CPU 420 eine Programmadresse an die Speicher-/Peripherieschaltung 460 zum Abrufen einer Anweisung (S610). Die Speicher-/Peripherieschaltung 460 liest eine Anweisung, die der Programmadresse entspricht, und überträgt die Anweisung an die CPU 420 durch einen N-Bit-Bus. Die übertragene Anweisung umfasst eine echte (N-M)-Bit-Anweisung und einen M-Bit-EDC-Wert. Damit ist das Abrufen einer Anweisung abgeschlossen (S620).
  • Die CPU 420 berechnet einen EDC-Wert der echten (N-M)-Bit-Anweisung der abgerufenen Anweisung (S630). Die CPU 420 bestimmt, ob der berechnete EDC-Wert gleich dem M-Bit-EDC-Wert ist (S640). Wenn der berechnete EDC-Wert gleich dem M-Bit-EDC-Wert ist, wird bestimmt, dass es keinen Angriffsversuch auf eine Anweisung gibt und die Anweisung wird verarbeitet (S650). Danach fährt der Ablauf mit dem Abruf der nächsten Anweisung fort (S620). Wenn der berechnete EDC-Wert nicht gleich dem M-Bit-EDC-Wert ist, wird bestimmt, dass es einen Angriffsversuch auf die Anweisung gibt. Dementsprechend wird das Speichersystem 400 zurückgesetzt oder geht in einen bestimmten Modus (S660) über.
  • Das oben beschriebene Speichersystem 400 muss keinen zusätzlichen Speicher zum Speicher eines Fehlerprüfcodes (EDC) verwenden. Daher kann das Speichersystem 400 eine Anweisungsabrufprozedur von der Speicher-/Peripherieschaltung 460 zu der CPU 420 schützen, ohne Anstieg der Größe eines Code-Speichers.
  • 14 ist ein Blockdiagramm einer Chipkarte, die ein Speichersystem gemäß einer Ausführungsform der vorliegenden Erfindung verwendet. Mit Bezug auf 14 besitzt eine Chipkarte 10 einen Systembus 11, eine Zentraleinheit (CPU) 12, einen Festwertspeicher (ROM) 13, der ein Betriebssystem speichert, einen Direktzugriffsspeicher (RAM) 14, der während des Datenverarbeitens erzeugte Daten temporär speichert, eine Speicherschnittstelle 15, die eine für einen NAND-Flashspeicher 16 geeignete Schnittstelle darstellt, eine Sicherheitslogik 17, einen Angriffsdetektor 18, der einen Hackerangriff erkennt, und eine Rücksetzlogik 19, die eine Rücksetzoperation durchführt, wenn der Hackerangriff erkannt wird.
  • Die CPU ist mit einem Aufbau, wie er in den 1, 5, 7 und 11 dargestellt ist, organisiert. Genauso ist die Speicherschnittstelle 15 mit einem wie in den 1, 5, 7 und 11 dargestellten Aufbau organisiert, und ist der NAND-Flashspeicher 16 mit einem wie in den 1, 5, 7 und 11 dargestellten Aufbau organisiert.
  • Die Rücksetzlogik 19 führt eine Rücksetzoperation als Antwort auf ein Angriffserfassungssignal durch, das von den CPUs oder den Speicher-/Peripherieschaltungen erzeugt wird, die in den 1, 5, 7 und 11 dargestellt sind. Alternativ führt die Rücksetzlogik 19 eine Rücksetzoperation als Antwort auf ein Angriffserfassungssignal durch, das von dem Angriffsdetektor 18 erfasst wird.
  • Der Angriffsdetektor 18 kann einer von verschiedenen Angriffsdetektoren, wie z.B. ein Lichtdetektor, ein Innenisolationsentfernungsdetektor und ein Aktivschildentfernungsdetektor, sein. Der Angriffsdetektor 18 kann derart konfiguriert sein, dass er zu dem NAND-Flashspeicher 16 abgestrahltes Licht erfasst.
  • Das oben beschriebene Speichersystem enthält eine Schnittstelle zwischen einer CPU und einer Speicher-/Peripherieschaltung. Jedoch sind die Ausführungsformen der vorliegenden Erfindung nicht darauf beschränkt. Das heißt, ein Speichersystem gemäß einigen Ausführungsformen der vorliegenden Erfindung kann derart ausgebildet sein, dass eine Schnittstelle zwischen einer CPU und einer Speicher-/Peripherieschaltung nicht benötigt wird.
  • Das Speichersystem gemäß Ausführungsformen der vorliegenden Erfindung kann angewendet werden auf Karten, die Sicherheit erfordern, wie z.B. eine Multi-Media-Karte (MMC) oder eine sichere digitale Speicherkarte (SD).

Claims (4)

  1. Speichersystem mit: einer Speichervorrichtung (160; 260; 360; 460), die eine Mehrzahl von Anweisungen speichert; und einer Zentraleinheit (120; 220; 320; 420), die eine von der Speichervorrichtung (160; 260; 360; 460) abgerufene Anweisung verarbeitet, wobei die Zentraleinheit (120; 220; 320; 420) eine Änderung in der von der Speichervorrichtung abgerufenen Anweisung erfasst während des Verarbeitens der Anweisung, wobei die Zentraleinheit (120) einen Sicherheitsanweisungssatz verarbeitet zum Erfassen, ob die von der Speichervorrichtung (160) abgerufene Anweisung geändert wurde, wobei der Sicherheitsanweisungssatz enthält: die von der Speichervorrichtung abgerufene Anweisung; und einen Fehlerprüfcodewert der Anweisung, wobei die Zentraleinheit eine Vergleichsoperation durchführt zum Vergleichen der von der Speichervorrichtung (120) abgerufenen Anweisung mit dem Fehlerprüfcodewert, wobei die Speichervorrichtung (160) den Sicherheitsanweisungssatz speichert, wobei der Sicherheitsanweisungssatz automatisch erzeugt wird während einer Codekompilierungsoperation eines Anweisungsprogramms mit der Mehrzahl von Anweisungen, wobei der Sicherheitsanweisungssatz eine Vergleichsanweisung enthält und die Zentraleinheit (120) die Vergleichsoperation durch Ausführen der Vergleichsanweisung durchführt.
  2. Speichersystem nach Anspruch 1, wobei die Zentraleinheit (120) die von der Speichervorrichtung (160) abgerufene Anweisung speichert und eine Operation gemäß der von der Speichervorrichtung (160) abgerufenen Anweisung durchführt, wenn die von der Speichervorrichtung (160) abgerufene Anweisung eine Vergleichsanweisung ist.
  3. Speichersystem nach Anspruch 1, wobei jede der Anweisungen enthält: eine echte (N-M)-Bit-Anweisung mit Anweisungsinformation; und einen M-Bit-Fehlerprüfcodewert, der der echten (N-M)-Bit-Anweisung entspricht, wobei die Zentraleinheit (420) einen Fehlerprüfcodewert der echten (N-M)-Bit-Anweisung der abgeholten Anweisung berechnet während einer Anweisungsabrufoperation und den berechneten Fehlerprüfcodewert mit dem M-Bit-Fehlerprüfcodewert der abgerufenen Anweisung vergleicht, um zu bestimmen, ob die echte (N-M)-Bit-Anweisung angegriffen wird.
  4. Speichersystem nach Anspruch 1, wobei die Zentraleinheit (120; 220; 320; 420) eine Rücksetzoperation durchführt nach dem Erkennen der Änderung in der von der Speichervorrichtung (160; 260; 360; 460) abgerufenen Anweisung.
DE102009060807.9A 2009-01-05 2009-12-31 Speichersystem Active DE102009060807B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2009-0000393 2009-01-05
KR1020090000393A KR101685633B1 (ko) 2009-01-05 2009-01-05 메모리 시스템

Publications (2)

Publication Number Publication Date
DE102009060807A1 DE102009060807A1 (de) 2010-07-08
DE102009060807B4 true DE102009060807B4 (de) 2022-05-05

Family

ID=42234819

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009060807.9A Active DE102009060807B4 (de) 2009-01-05 2009-12-31 Speichersystem

Country Status (3)

Country Link
US (1) US8528081B2 (de)
KR (1) KR101685633B1 (de)
DE (1) DE102009060807B4 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2919146A1 (de) * 2014-03-14 2015-09-16 Nxp B.V. Vorrichtung zur Durchsetzung von Steuerungsabläufen
KR102316279B1 (ko) * 2015-10-19 2021-10-22 삼성전자주식회사 비휘발성 메모리 장치 및 이를 포함하는 에스에스디

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060288223A1 (en) 2003-09-18 2006-12-21 Perry Kiehtreiber Method and Apparatus for Incremental Code Signing
US20080046737A1 (en) 2006-08-03 2008-02-21 Motorola, Inc. Secure storage of data

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3440763B2 (ja) * 1996-10-25 2003-08-25 富士ゼロックス株式会社 暗号化装置、復号装置、機密データ処理装置、及び情報処理装置
US6708274B2 (en) * 1998-04-30 2004-03-16 Intel Corporation Cryptographically protected paging subsystem
AUPO799197A0 (en) * 1997-07-15 1997-08-07 Silverbrook Research Pty Ltd Image processing method and apparatus (ART01)
JP2000115183A (ja) 1998-10-02 2000-04-21 Toshiba Corp 携帯可能電子装置
JP2002328845A (ja) * 2001-05-07 2002-11-15 Fujitsu Ltd 半導体集積回路及びicカードのセキュリティー保護方法
US7020809B2 (en) * 2002-09-25 2006-03-28 International Business Machines Corporation System and method for utilizing spare bandwidth to provide data integrity over a bus
US20040143739A1 (en) * 2003-01-16 2004-07-22 Sun Mircosystems, Inc., A Delaware Corporation Run time code integrity checks
US7500098B2 (en) * 2004-03-19 2009-03-03 Nokia Corporation Secure mode controlled memory
JP4637526B2 (ja) 2004-07-28 2011-02-23 ルネサスエレクトロニクス株式会社 メモリカードおよび不揮発性記憶装置
KR20060067584A (ko) * 2004-12-15 2006-06-20 삼성전자주식회사 해킹 방지 기능이 있는 스마트 카드
JP2007011591A (ja) 2005-06-29 2007-01-18 Toshiba Corp 携帯可能電子装置およびicカード
KR101197556B1 (ko) * 2006-01-09 2012-11-09 삼성전자주식회사 불 휘발성 메모리의 프로그램 동작을 검증하는 장치 및방법, 그리고 그 장치를 포함한 메모리 카드
KR100837270B1 (ko) 2006-06-07 2008-06-11 삼성전자주식회사 스마트 카드 및 그것의 데이터 보안 방법
DE102007026977B4 (de) 2006-06-07 2012-03-08 Samsung Electronics Co., Ltd. Kryptographisches System und zugehöriges Betriebsverfahren und Computerprogrammprodukt
US7644322B2 (en) * 2006-11-21 2010-01-05 Atmel Corporation Hardware flow control monitor
KR20090000393A (ko) 2007-06-28 2009-01-07 엘지전자 주식회사 단말기 및 그 멀티미디어 재생 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060288223A1 (en) 2003-09-18 2006-12-21 Perry Kiehtreiber Method and Apparatus for Incremental Code Signing
US20080046737A1 (en) 2006-08-03 2008-02-21 Motorola, Inc. Secure storage of data

Also Published As

Publication number Publication date
US20100174888A1 (en) 2010-07-08
US8528081B2 (en) 2013-09-03
KR101685633B1 (ko) 2016-12-12
KR20100081110A (ko) 2010-07-14
DE102009060807A1 (de) 2010-07-08

Similar Documents

Publication Publication Date Title
DE19781829C2 (de) Verfahren und Vorrichtung zum Schützen eines Flash-Speichers
DE10196007B4 (de) Plattform und Verfahren zum Fernattestieren einer Plattform
DE102019109088A1 (de) Schutz von schlüsseln und sensitiven daten gegen angriffe in einer mikroprozessorarchitektur
US8250374B2 (en) Method and apparatus for verifying authenticity of initial boot code
CN113260994A (zh) 针对对计算机系统的推测性边信道分析的防御
US8639946B2 (en) System and method of using a protected non-volatile memory
DE202019005672U1 (de) System zum Verhindern eines unautorisierten Zugriffs auf verschlüsselten Speicher
DE102018125530A1 (de) Verfahren und Anordnungen für impliziete Integrität
CN109582604A (zh) 存储器完整性
CN109558372B (zh) 用于安全处理器的设备和方法
DE112017005005T5 (de) Systeme, vorrichtungen, und verfahren zur plattformsicherheit
US10797857B2 (en) Data interleaving scheme for an external memory of a secure microcontroller
US10642947B2 (en) System, method and computer-accessible medium providing secure integrated circuit camouflaging for minterm protection
US10223117B2 (en) Execution flow protection in microcontrollers
CN107301082A (zh) 一种实现操作系统完整性保护的方法和装置
US20030177319A1 (en) Enhanced memory management for portable devices
CN109472172B (zh) 用于防止来自存储器的未授权数据访问的方法
US11874925B2 (en) Data processing method for coping with ransomware, program for executing the method, and computer-readable recording medium storing the program
DE102005061367A1 (de) IC-Chipkarte und Verfahren zur Detektion von Datenmanipulation
DE102009060807B4 (de) Speichersystem
CN110378117B (zh) 控制流完整性检测方法、装置及系统
EP3944103A1 (de) Verfahren zur betriebsprüfung eines softwareprogramms, elektronisches gerät und speichermedium
JP6828548B2 (ja) 電子情報記憶媒体、icカード、改竄チェック方法及び改竄チェック用プログラム
JP2008204085A (ja) 半導体記憶装置
US20190042116A1 (en) Techniques for preventing memory corruption

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final