DE112010005842T5 - Verwürfeln einer Adresse und Verschlüsseln von Schreibdaten zum Speichern einer Speichervorrichtung - Google Patents

Verwürfeln einer Adresse und Verschlüsseln von Schreibdaten zum Speichern einer Speichervorrichtung Download PDF

Info

Publication number
DE112010005842T5
DE112010005842T5 DE112010005842T DE112010005842T DE112010005842T5 DE 112010005842 T5 DE112010005842 T5 DE 112010005842T5 DE 112010005842 T DE112010005842 T DE 112010005842T DE 112010005842 T DE112010005842 T DE 112010005842T DE 112010005842 T5 DE112010005842 T5 DE 112010005842T5
Authority
DE
Germany
Prior art keywords
address
data
key
different
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112010005842T
Other languages
English (en)
Other versions
DE112010005842T8 (de
Inventor
Craig A. Walrath
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE112010005842T5 publication Critical patent/DE112010005842T5/de
Application granted granted Critical
Publication of DE112010005842T8 publication Critical patent/DE112010005842T8/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

Eine Adresse zum Zugreifen auf eine Stelle in einer Speichervorrichtung (106, 204) wird empfangen und die Adresse wird verwürfelt. Schreibdaten werden unter Verwendung eines Verschlüsselungsschlüssels verschlüsselt. Die verschlüsselten Schreibdaten werden in der Speichervorrichtung an einer Stelle der Speichervorrichtung gespeichert, die durch die verwürfelte Adresse spezifiziert ist.

Description

  • Hintergrund
  • Ein elektronisches Gerät umfasst typischerweise eine Speichervorrichtung, um Daten zu speichern. Die Speichervorrichtung kann eine flüchtige Speichervorrichtung sein, die verwendet wird, um vorübergehend verschiedene Datentypen zu speichern, einschließlich Nutzer- oder Anwendungsdaten, maschinenlesbare Anweisungen usw. Alternativ kann die Speichervorrichtung eine Permanentspeichervorrichtung sein, wie z. B. eine plattenbasierte Speichervorrichtung oder eine nichtflüchtige Speichervorrichtung. Die Daten, die in einer Speichervorrichtung gespeichert sind, können empfindliche oder vertrauenswürdige Daten umfassen, wie z. B. Sicherheitsschlüssel, Nutzerberechtigungsnachweise, Finanzinformationen, persönliche Informationen usw. Falls das elektronische Gerät gestohlen wird oder anderweitig auf unbefugte Weise auf dasselbe zugegriffen wird, kann ein Hacker versuchen, den Inhalt der Speichervorrichtung wiederzugewinnen, um empfindliche oder vertrauenswürdige Informationen zu erhalten, die in der Speichervorrichtung gespeichert sind.
  • Kurze Beschreibung der Zeichnungen
  • Einige Ausführungsbeispiele sind mit Bezugnahme auf die folgenden Zeichnungen beschrieben:
  • 1 und 2 sind Blockdiagramme von beispielhaften Anordnungen, die einige Ausführungsbeispiele umfassen; und
  • 3 und 4 sind Flussdiagramme von Prozessen zum Schützen von Inhalt einer Speichervorrichtung gemäß einigen Ausführungsbeispielen.
  • Detaillierte Beschreibung
  • Gemäß einigen Implementierungen sind Techniken oder Mechanismen vorgesehen, um Inhalt einer Speichervorrichtung in einem elektronischen Gerät zu schützen, das ein Computer, ein Personaldigitalassistent, eine Elektronikvorrichtung, ein Speicherungsserver, ein Mobiltelefon oder ein anderer Elektronikgerättyp sein kann. Bei einigen Beispielen kann die Speichervorrichtung eine flüchtige Speichervorrichtung sein, die mit Dynamischer-Direktzugriffsspeicher-(DRAM-) oder Statischer-Direktzugriffsspeicher-(SRAM-)Technologie implementiert ist. Bei alternativen Beispielen kann die Speichervorrichtung eine nichtflüchtige Speichervorrichtung sein, wie z. B. eine Flash-Speichervorrichtung. Als weitere Beispiele kann die Speichervorrichtung eine plattenbasierte Speichervorrichtung sein, wie z. B. ein Festplattenlaufwerk oder ein optisches Plattenlaufwerk. Bei anderen Beispielen können andere Speichervorrichtungstypen verwendet werden.
  • 1 zeigt eine beispielhafte Anordnung, die einen Speichervorrichtungsanforderer 102, eine Speichervorrichtungssteuerung 104 (versehen mit Datenschutzmechanismen gemäß einigen Implementierungen) und eine Speichervorrichtung 106 umfasst. Der Speichervorrichtungsanforderer 102 ist in der Lage, auf den Inhalt der Speichervorrichtung 106 durch die Speichervorrichtungssteuerung 104 zuzugreifen (zu lesen oder zu schreiben). Beispiele des Speichervorrichtungsanforderers 102 umfassen einen Prozessor, eine Eingabe/Ausgabe-(I/O-)Steuerung oder einen anderen Anforderertyp.
  • Ein Speichervorrichtungsbus 108 verbindet die Speichervorrichtungssteuerung 104 und die Speichervorrichtung 106. Der Speichervorrichtungsbus 108 umfasst einen Steuerabschnitt (zum Tragen von Steuersignalen), einen Adressabschnitt (zum Tragen von Adresssignalen) und einen Datenabschnitt (zum Tragen von Daten, die von der Speichervorrichtung 106 gelesen oder auf dieselbe geschrieben werden). Die Steuer-, Adress- und Datenabschnitte des Busses 108 sind als ein Beispiel getrennt gezeigt. Verschiedene Implementierungen könnten diese als getrennte Verbindungen aufweisen, aber die Abschnitte können auch gemultiplext werden, oder auf gemeinsamen Bussignalen gesendet werden, usw. Außerdem können die Steuer-, Adress- und/oder Datenabschnitte als verdrahtete oder drahtlose Verbindungen implementiert sein. Bei drahtlosen Implementierungen werden die Steuer-, Adress- und/oder Datenabschnitte unter Verwendung eines drahtlosen Protokolls übertragen.
  • Wie es in 1 gezeigt ist, kann die Speichervorrichtungssteuerung 104 eine Speichervorrichtungsadresse 110 bereitstellen, um auf eine Stelle der Speichervorrichtung 106 zuzugreifen. Für eine Schreiboperation können Schreibdaten 112 an die Speichervorrichtung 106 bereitgestellt werden, und für eine Leseoperation können Lesedaten 114 von der Speichervorrichtung 106 wieder gewonnen werden. Um Inhalte der Speichervorrichtung 106 zu schützen, umfassen Schreibdaten 112, die von der Speichervorrichtungssteuerung 104 an die Speichervorrichtung 106 gesendet werden, verschlüsselte Schreibdaten. Falls Daten von einer Stelle der Speichervorrichtung 106 gelesen werden, die durch Verschlüsselung geschützt ist, sind die entsprechenden Lesedaten 114 verschlüsselte Lesedaten.
  • Für einen weiteren Schutz des Inhalts der Speichervorrichtung 106 kann die Speichervorrichtungsadresse 110 eine verwürfelte Adresse sein. Es ist anzumerken, dass nicht alle Stellen in der Speichervorrichtung 106 durch Datenverschlüsselung und Adressverwürfelung geschützt werden müssen – bei einigen Beispielen werden bestimmte Stellen der Speichervorrichtung 106 keiner Datenverschlüsselung und/oder Adressverwürfelung unterzogen. Beispielsweise können Datenverschlüsselung und/oder Adressverwürfelung für spezifische Speicherstellen selektiv aktiviert oder deaktiviert werden. Das selektive Aktivieren/Deaktivieren von Datenverschlüsselung und/oder Adressverwürfelung kann erreicht werden durch Aufnehmen eines Befehlsfelds mit einem Speicherzugriffsbefehl, um zu spezifizieren, ob die entsprechende Speicherstelle durch Datenverschlüsselung und/oder Adressverwürfelung zu schützen ist oder nicht. Alternativ können andere Mechanismen verwendet werden zum selektiven Aktivieren/Deaktivieren von Datenverschlüsselung und/oder Adressverwürfelung für spezifische Speicherstellen, wie z. B. durch die Verwendung von Konfigurationsinformationen, einer Anwendungs-Programmier-Schnittstelle (API; API = application programming interface) usw.
  • Die Verwendung sowohl von Adressverwürfelung als auch Datenverschlüsselung schafft einen verbesserten Schutzpegel für Daten, die in der Speichervorrichtung 106 gespeichert sind. Auf diese Weise ist die Wahrscheinlichkeit reduziert, dass ein Hacker in der Lage ist, Inhalt geschützter Daten in der Speichervorrichtung wiederzugewinnen. Bei dem Versuch, Daten von der Speichervorrichtung 106 wiederzugewinnen, kann der Hacker das Elektronikgerät stehlen, die Speichervorrichtung 106 von dem Elektronikgerät entfernen oder anderweitig unbefugten Zugriff zu der Speichervorrichtung 106 (entweder physikalisch oder elektronisch) erlangen.
  • Obwohl 1 nur eine Speichervorrichtungssteuerung 104 zeigt, die mit Datenschutzmechanismen implementiert ist, um Daten in der Speichervorrichtung 106 zu schützen, ist anzumerken, dass es (eine) zusätzliche Speichervorrichtungssteuerung(en) mit ähnlichen Datenschutzmechanismen für (eine) andere Speichervorrichtung(en) geben kann.
  • Die Speichervorrichtungssteuerung 104 umfasst ein Verschlüsselungsmodul 116, um (unverschlüsselte) Schreibdaten zu verschlüsseln, und ein Entschlüsselungsmodul 118, um verschlüsselte Lesedaten 114 zu entschlüsseln. Das Entschlüsselungsmodul 118 gibt entschlüsselte Lesedaten aus.
  • Sowohl das Verschlüsselungsmodul 116 als auch das Entschlüsselungsmodul 118 ist mit einem Verschlüsselungsschlüssel versehen, um die jeweilige Verschlüsselung oder Entschlüsselung durchzuführen. Der Verschlüsselungsschlüssel kann auf einem Datenschlüssel 120 basieren, der in der Schlüsselspeicherung 122 gespeichert ist. Alternativ kann der Datenschlüssel, der an das Verschlüsselungsmodul 116 und das Entschlüsselungsmodul 118 geliefert wird, ein gemischter Schlüssel sein, der durch einen Schlüsselmischer 124 ausgegeben wird. Der Schlüsselmischer 124 mischt einen Datenschlüssel 120 von der Schlüsselspeicherung 122 mit Adressinformationen, um den gemischten Schlüssel auszugeben. Das Mischen des Datenschlüssels mit den Adressinformationen kann eine Exklusiv-Oder-Verknüpfung des Datenschlüssels und der Adressinformationen sein. Bei anderen Implementierungen können andere Mischtypen des Datenschlüssels und der Adressinformationen verwendet werden. Es ist anzumerken, dass die Darstellung des Schlüsselmischers 124 in 1 in gestricheltem Profil bedeutet, dass der Schlüsselmischer 124 bei einigen Beispielen in der Speichervorrichtungssteuerung 104 nicht vorgesehen ist.
  • Die Verschlüsselung, die durch das Verschlüsselungsmodul 116 angewendet wird, kann eine von verschiedenen Verschlüsselungstypen sein. Beispielsweise kann eine schnelle Verschlüsselungstechnik eine Exklusiv-Oder-(XOR-)Technik sein, bei dem ein Verschlüsselungsschlüssel mit Schreibdaten Exklusiv-Oder-verknüpft wird. Ein Vorteil der Verwendung der XOR-basierten Verschlüsselungstechnik ist, dass dieselbe relativ schnell ist und relativ schnelle Zugriffsgeschwindigkeiten der Speichervorrichtung 106 unterstützen kann, ohne den Lese- und Schreibwegen Verzögerung hinzuzufügen.
  • Das Verschlüsselungsmodul 116 kann somit die folgende Exklusiv-Oder-Operation anlegen: A ⊗ K = C, wobei A die eingegebenen Klartextdaten (Schreibdaten) darstellt, die XOR-verknüpft werden mit dem Verschlüsselungsschlüssel K (Datenschlüssel 120 oder gemischter Schlüssel), um verschlüsselte Schreibdaten (C) zu erzeugen.
  • Um Entschlüsselung durchzuführen, können die verschlüsselten Lesedaten (C) XOR-verknüpft werden mit dem Verschlüsselungsschlüssel K, um den ursprünglichen Klartext (A) wiederzugewinnen, gemäß C ⊗ K = A.
  • Bei alternativen Implementierungen kann statt der Verwendung der XOR-basierten Verschlüsselungstechnik eine Verschlüsselungstechnik höherer Ebene verwendet werden. Beispielsweise kann die Verschlüsselung höherer Ebene eine AES-Verschlüsselung sein (AES = advanced encryption standard = hoch entwickelter Verschlüsselungsstandard). Der AES-Verschlüsselungsschlüssel ist schwieriger zu hacken als ein Schlüssel, der in XOR-Verschlüsselung verwendet wird. AES-Verschlüsselung kann jedoch mit erhöhter Schaltungskomplexität verbunden sein (da mehr Schaltungen verwendet werden müssen, um AES-Verschlüsselung zu implementieren), was zu erhöhten Zugriffszeiten oder erhöhten Komplexität beim Adressieren des Problems erhöhter Zugriffszeit führen kann, die beim Durchführen von AES-Verschlüsselung verwendet wird. Bei anderen Beispielen können andere Verschlüsselungstypen höherer Ebene verwendet werden.
  • In dem Schlüsselmischer 124 können die Adressinformationen, die mit dem Datenschlüssel 120 gemischt sind, eines oder eine Kombination der Folgenden umfassen: (1) zumindest einen Teil einer anfänglichen (nicht verwürfelten) physikalischen Adresse, die durch den Speichervorrichtungsanforderer 102 bereitgestellt wird, (2) zumindest einen Teil einer verwürfelten physikalischen Adresse, und (3) zumindest einen Teil virtueller Adressinformationen (verwürfelte virtuelle Adresse oder nicht verwürfelte virtuelle Adresse). Eine „virtuelle Adresse” bezieht sich auf eine logische Adresse, die Teil eines virtuellen Adressraums ist, der typischerweise durch Komponenten höherer Ebene eines elektronischen Geräts verwendet wird, wie z. B. ein Betriebssystem oder ein Dateisystem. Der virtuelle Adressraum ist typischerweise größer als der physikalische Adressraum, der die tatsächlichen verfügbaren Speicherstellen in der Speichervorrichtung 106 definiert.
  • Jeder Datenschlüssel 120, der in der Schlüsselspeicherung 122 gespeichert ist, kann ein zufällig erzeugter Schlüssel sein, der durch die Speichervorrichtungssteuerung 104 selbst erzeugt werden kann oder durch eine Komponente außerhalb der Speichervorrichtungssteuerung 104. Beispielsweise kann ein Datenschlüssel durch einen Systembootcode erzeugt werden, wie z. B. einen BIOS-Code (BIOS = basic input/output system = Basiseingabe/ausgabesystem), der verschiedene Initialisierungsfunktionen durchführt, wenn ein elektronisches Gerät zuerst gestartet wird. Alternativ kann der Datenschlüssel durch eine Verwaltungsmaschine erzeugt werden, die Teil des Chipsatzes eines elektronischen Geräts ist. Als noch weitere Alternative kann der Datenschlüssel basierend auf Nutzereingabe erzeugt werden. Als weiteres Beispiel kann der Datenschlüssel durch einen Prozessor, ein vertrauenswürdiges Plattformmodul oder eine andere Komponente erzeugt werden. Der Datenschlüssel kann auch über eine Netzwerkverbindung oder einen Verwaltungsbus empfangen werden, mit dem das elektronische Gerät verbunden ist. Allgemein wird der Datenschlüssel erzeugt ohne Daten zu verwenden, die durch Rückentwickeln einer Komponente in dem elektronischen Gerät entdeckt werden können.
  • Zufallsdatenschlüssel können basierend auf der Ausgabe eines Zufallszahlgenerators erzeugt werden. Außerdem oder alternativ können Zufallsdatenschlüssel erzeugt werden basierend auf Daten und/oder Zeit. Um die Sicherheit zu erhöhen, ändert sich der Datenschlüssel, der verwendet wird, um jeweils die Verschlüsselung und Entschlüsselung durch das Verschlüsselungsmodul 116 und Entschlüsselungsmodul 118 durchzuführen, mit jeder System-Rücksetzung oder jedem System-Neustart. Alternativ kann ein anderer Datenschlüssel erzeugt werden, wenn das Elektronikgerät wieder fortfährt von einem Zustand niedrigerer Leistung, wie z. B. einem Standby-Zustand, einem Ruhezustand oder einem anderen Zustand niedrigerer Leistung. Als noch eine weitere Alternative können Verschlüsselungsauffrischzyklen verwendet werden, bei dem bei jedem neuen Verschlüsselungsauffrischzyklus ein neuer Datenschlüssel erzeugt wird.
  • Die Schlüsselspeicherung 122 ist eine flüchtige Speichervorrichtung, die auf den Verlust oder die Entfernung von Leistung hin ihren Inhalt verliert. Die Schlüsselspeicherung 122 kann beispielsweise ein Register in der Speichervorrichtungssteuerung 104 sein, oder alternativ kann die Schlüsselspeicherung 122 Teil der Speichervorrichtung 106 sein. Die Schlüsselspeicherung 122 kann eine Nur-Schreib/einmal beschreibbare Speichervorrichtung (z. B. Register) sein, die ansprechend auf ein vordefiniertes Ereignis zurückgesetzt wird, wie z. B. das Elektronikgerät wird abgeschaltet, zurückgesetzt, tritt in einen N Zustand niedrigerer Leistung ein, beginnt einen neuen Verschlüsselungsauffrischzyklus, usw. Eine Nur-Schreib-Speichereinrichtung bedeutet, dass die Schlüsselspeicherung 122 nicht durch eine Komponente außerhalb der Speichervorrichtungssteuerung 104 gelesen werden kann, und eine einmal beschreibbare Speichereinrichtung bedeutet, dass die Schlüsselspeicherung 122 während jedes vordefinierten Intervalls nur einmal beschrieben kann (z. B. während der Ein-Zeit eines elektronischen Geräts zwischen Rücksetzungen, Neustarts oder Leistungszyklen; während eines bestimmten Auffrischzyklusintervalls; usw.).
  • Wie es oben angemerkt wurde, kann die Speichervorrichtungsadresse 110, die durch die Speichervorrichtungssteuerung 104 bereitgestellt wird, um auf eine Position in der Speichervorrichtung 106 zuzugreifen, eine verwürfelte Adresse sein. Das Verwenden von Adressverwürfelung ermöglicht eine zusätzliche Schutzschicht zu dem Schutz, der durch das Verschlüsseln von Daten bereitgestellt wird, die in der Speichervorrichtung 106 gespeichert sind. Wie angemerkt kann Adressverwürfelung bei einigen Beispielen durch den Adressverwürfler 126 in der Speichervorrichtungssteuerung 104 durchgeführt werden.
  • Bei alternativen Ausführungsbeispielen kann statt dem Bereitstellen des Adressverwürflers 126 in der Speichervorrichtungssteuerung 104 der Adressverwürfler 128 als Teil des Speichervorrichtungsanforderers 104 vorgesehen sein oder alternativ kann der Adressverwürfler 128 zwischen dem Speichervorrichtungsanforderer 102 und der Speichervorrichtungssteuerung 104 vorgesehen sein (anders ausgedrückt, der Adressverwürfler kann in einer Komponente vorgesehen sein, die von dem Speichervorrichtungsanforderer 102 und der Speichervorrichtungssteuerung 104 getrennt ist).
  • Verwürfeln einer Anfangsadresse kann durchgeführt werden unter Verwendung einer von verschiedenen Techniken. Beispielsweise können Adressbits der Anfangsadresse umgeändert werden. Alternativ kann eine Anfangsadresse verwürfelt werden durch Verwenden eines Schlüssels, wie z. B. eines zufällig erzeugten Schlüssels. Der Schlüssel zum Verwürfeln der Adresse kann ein Datenschlüssel 120 (gespeichert in der Schlüsselspeicherung 122) oder ein anderer Schlüssel sein. Der Schlüssel kann mit der Anfangsadresse gemischt werden oder anderweitig an dieselbe angelegt werden, um die verwürfelte Adresse zu erzeugen. Alternativ kann Adressverwürfelung durchgeführt werden durch Hashcodieren der Anfangsadresse, um einen Hashwert zu erzeugen, der die verwürfelte Adresse darstellt. Als noch eine weitere Alternative kann eine Datenstruktur, wie z. B. eine Tabelle, gespeichert werden, um eingegebene Anfangsadressen auf Ausgangsadressen abzubilden, wo die Ausgangsadressen als die verwürfelten Adressen angesehen werden. Andere Techniken können bei anderen Implementierungen verwendet werden.
  • Bei Implementierungen, wo ein Schlüssel verwendet wird, um eine Adresse zu verwürfeln, kann es verschiedene mögliche Szenarien geben (von denen einige nachfolgend aufgeführt werden). Bei einem ersten Szenario kann der Adressverwürfler 126 oder 128 eine anfängliche physikalische Adresse verwürfeln, um unter Verwendung eines Datenschlüssels 120 eine verwürfelte Adresse zu bilden. Der Schlüsselmischer 124 mischt die anfängliche physikalische Adresse mit dem Datenschlüssel 120, um einen gemischten Schlüssel zu bilden, und der gemischte Schlüssel kann durch das Verschlüsselungsmodul 116 und das Entschlüsselungsmodul 118 verwendet werden, um Daten zu verschlüsseln bzw. zu entschlüsseln.
  • Ein zweites Szenario umfasst den Adressverwürfler 126 oder 128, der eine anfängliche physikalische Adresse mit einem Adressschlüssel verwürfelt, der sich von einem Datenschlüssel 120 unterscheidet. Die anfängliche physikalische Adresse wird durch den Schlüsselmischer 124 mit dem Datenschlüssel 120 gemischt, um einen gemischten Schlüssel zu bilden, der verwendet wird, um Daten zu verschlüsseln oder zu entschlüsseln.
  • Bei einem dritten Szenario kann der Adressverwürfler 126 oder 128 eine anfängliche physikalische Adresse verwürfeln unter Verwendung einer anderen Technik als einer Technik, die zum Verschlüsseln von Daten verwendet wird. Beispielsweise wird eine erste Verschlüsselungstechnik verwendet, um die anfängliche physikalische Adresse mit einem Schlüssel (Datenschlüssel oder Adressschlüssel, der sich von dem Datenschlüssel unterscheidet) zu verwürfeln, um die verwürfelte Adresse zu bilden, während eine zweite Verschlüsselungstechnik verwendet wird, um Schreibdaten mit einem Datenschlüssel (statt eines gemischten Schlüssels) zu verschlüsseln, um verschlüsselte Schreibdaten auszugeben.
  • Bei einem vierten Szenario kann eine verwürfelte Adresse erzeugt werden unter Verwendung eines Adressschlüssels, der sich von einem Datenschlüssel unterscheidet. Die verwürfelte Adresse wird mit dem Datenschlüssel gemischt, um einen gemischten Schlüssel zu bilden, um Schreibdaten zu verschlüsseln.
  • Bei einem fünften Szenario kann eine verwürfelte Adresse unter Verwendung eines Datenschlüssels erzeugt werden. Die verwürfelte Adresse wird mit dem Datenschlüssel gemischt, um einen gemischten Schlüssel zu bilden, um Schreibdaten zu verschlüsseln.
  • Bei einem sechsten Szenario kann eine verwürfelte Adresse erzeugt werden unter Verwendung einer Verschlüsselungstechnik, die sich von der Verschlüsselungstechnik unterscheidet, die zum Verschlüsseln von Schreibdaten verwendet wird. Bei diesem Szenario wird statt eines gemischten Schlüssels ein Datenschlüssel verwendet, um die Daten zu verschlüsseln.
  • Bei einem siebten Szenario kann eine anfängliche physikalische Adresse verwürfelt werden, um eine verwürfelte Adresse zu bilden, aber eine virtuelle Adresse (oder verwürfelte virtuelle Adresse) kann mit einem Datenschlüssel gemischt werden, um den gemischten Schlüssel zum Verschlüsseln der Schreibdaten bereitzustellen. Eine Variante dieses Szenarios ist es, die virtuelle Adresse (oder eine verwürfelte virtuelle Adresse) als den Datenschlüssel zu verwenden, um Schreibdaten zu verschlüsseln.
  • Es kann zahlreiche andere Szenarien geben. Darüber hinaus können einige Szenarien Kombinationen von mehreren der obigen Szenarien umfassen.
  • 2 zeigt eine weitere beispielhafte Anordnung, die eine Speichersteuerung 202 umfasst, die mit einer Speichervorrichtung 204 verbunden ist (es ist anzumerken, dass bei unterschiedlichen Beispielen die Speichersteuerung 202 durch eine Speichervorrichtungssteuerung ersetzt werden kann, während die Speichervorrichtung 204 durch eine Speichervorrichtung ersetzt wird). Die Speichersteuerung 202 implementiert Speicherschutzmechanismen (ähnlich den oben angemerkten), um Daten zu schützen, die in der Speichervorrichtung 204 zu speichern sind. Die Speichervorrichtung 204 kann eine einzige Vorrichtung darstellen oder eine Kombination mehrerer Vorrichtungen (z. B. einen einzelnen Speicherchip oder mehrere Speicherchips, oder ein einzelnes Speichermodul oder mehrere Speichermodule). Es ist anzumerken, dass die Implementierungen gemäß 2 kein Schlüsselmischen verwenden, um einen Datenschlüssel mit Adressinformationen zu mischen, um einen gemischten Schlüssel zu bilden, um Schreibdaten zu verschlüsseln.
  • Bei alternativen Implementierungen kann ein Schlüsselmischer, wie z. B. der Schlüsselmischer 124 von 1, zu der Speichersteuerung 202 von 2 hinzugefügt werden.
  • Die Speicherschutzmechanismen, die durch die Speichersteuerung 202 implementiert werden, umfassen einen Datenverschlüsselungsmechanismus, um Schreibdaten zu verschlüsseln, die in der Speichervorrichtung 204 zu speichern sind. Der Speicherschutzmechanismus der Speichersteuerung 202 kann auch einen Adressverwürfler 224 umfassen, um eine Adresse zu verwürfeln, die eine Stelle in der Speichervorrichtung 204 spezifiziert.
  • 2 zeigt ferner einen Anforderer 206 (z. B. Prozessor, I/O-Steuerung usw.), der mit der Speichersteuerung 202 gekoppelt ist. Der Anforderer 206 ist in der Lage, die Lese- oder Schreibanforderungen an die Speichersteuerung 202 auszugeben, um Daten in der Speichervorrichtung 204 zu lesen oder zu schreiben.
  • Für eine Schreiboperation, wie es in 2 gezeigt ist, umfasst die Speichersteuerung 202 einen Schreibdatenpuffer 210, um ankommende Schreibdaten zu speichern. Ein Verschlüsselungsmodul 212 wendet Verschlüsselung auf den Schreibdaten von dem Schreibdatenpuffer 210 an, und liefert die verschlüsselten Schreibdaten für Speicherung an der Speichervorrichtung 204 über einen Speicherbus 214. Der Speicherbus 217 umfasst einen Steuerabschnitt (mit Steuersignalen), einen Adressabschnitt (der eine Adresse enthält), und einen Datenabschnitt (der Daten enthält, die zwischen der Speichersteuerung 202 und der Speichervorrichtung 204 zu übertragen sind).
  • Für eine Leseoperation werden Lesedaten von der Speichervorrichtung 204 wieder gewonnen und einem Verschlüsselungsmodul 216 bereitgestellt. Es ist anzumerken, dass die Daten, die von der Speichervorrichtung 204 gelesen werden, verschlüsselte Daten sein können, sodass das Entschlüsselungsmodul 216 Entschlüsselung auf die verschlüsselten Lesedaten anwendet, um entschlüsselte Lesedaten an einen Lesedatenpuffer 218 auszugeben, wo die Lesedaten dem Anforderer 206 bereitgestellt werden können.
  • Die Verschlüsselung oder Entschlüsselung, die durch das Verschlüsselungsmodul 212 und das Entschlüsselungsmodul 216 angewendet wird, kann auf einem Datenschlüssel basieren, der in der Schlüsselspeicherung 220 in der Speichersteuerung 202 gespeichert ist. Wie es in 2 dargestellt ist, kann die Schlüsselspeicherung 220 mehrere Datenschlüssel (dargestellt als „Datenschlüssel 1”, ..., „Datenschlüssel n” speichern, wobei n ≥ 2). Bei einigen Implementierungen können unterschiedliche Speicherregionen der Speichervorrichtung 204 unter Verwendung unterschiedlicher Datenschlüssel verschlüsselt werden. Wie es in 2 dargestellt ist, hat die Speichervorrichtung mehrere Speicherregionen („Speicherregion 1”, ..., „Speicherregion n”). Die unterschiedlichen Speicherregionen können unterschiedliche Abschnitte einer bestimmten Speichervorrichtung darstellen. Die mehreren Speicherregionen können alternativ unterschiedliche Speichervorrichtungen darstellen. Somit kann bei einem Elektronikgerät mit mehreren Speichervorrichtungen ein erster Datenschlüssel verwendet werden, um Daten in einer ersten Speichervorrichtung zu schützen, ein zweiter Datenschlüssel kann verwendet werden, um Daten in einer zweiten Speichervorrichtung zu schützen usw. Bei weiteren Beispielen kann es unterschiedliche Typen von Speichervorrichtungen in dem elektronischen Gerät geben, in diesem Fall werden unterschiedliche Datenschlüssel verwendet, um Daten zu schützen, die in den unterschiedlichen Speichervorrichtungstypen gespeichert sind. Somit wird beispielsweise ein erster Datenschlüssel verwendet, um Daten in einem ersten Speichervorrichtungstyp (z. B. einer DRAM-basierten Speichervorrichtung) zu schützen, ein zweiter Datenschlüssel wird verwendet, um Daten in einem zweiten Speichervorrichtungstyp (z. B. einer Flashspeichervorrichtung) zu schützen, usw. Es ist auch anzumerken, dass es Cachespeicher geben kann in dem elektronischen Gerät, sodass ein anderer Datenschlüssel verwendet wird, um den Cachespeicher zu schützen.
  • Es ist außerdem anzumerken, dass unterschiedliche Datenschlüssel für unterschiedliche Speicherregionen verwendet werden können, abhängig davon, wie die jeweiligen Speicherregionen verwendet werden. Beispielsweise kann eine der Speicherregionen ein Betriebssystem-Bereich sein zum Speichern von Daten oder Anweisungen, die einem Betriebssystem zugeordnet sind. Eine weitere Speicherregion kann Daten speichern, die einem Nicht-Betriebssystemprogramm zugeordnet sind, wie z. B. Nutzer- oder Anwendungsdaten.
  • Alternativ können unterschiedliche Datenschlüssel während unterschiedlichen Betriebsmodi des elektronischen Geräts verwendet werden, wobei sich die unterschiedlichen Modi beispielsweise auf unterschiedliche Sicherheitspegel beziehen können.
  • Bei anderen Implementierungen können unterschiedliche Verschlüsselungspegel auf unterschiedliche Speicherregionen angewendet werden. Beispielsweise kann XOR-basierte Verschlüsselung angewendet werden für eine erste Speicherregion, während AES-Verschlüsselung oder eine andere Verschlüsselung höherer Ebene für eine andere Speicherregion angewendet wird.
  • Außerdem kann bei einigen Implementierungen unterschiedliche Adressverwürfelung für unterschiedliche Speicherregionen verwendet werden. Beispielsweise können unterschiedliche Schlüssel (Datenschlüssel oder Adressschlüssel, die sich von den Datenschlüsseln unterscheiden), angewendet werden, um unterschiedliche Adressverwürfelungen zu erzeugen. Alternativ können unterschiedliche Verschlüsselungspegel angewendet werden, um unterschiedliche Adressverwürfelungen für die unterschiedlichen Speicherregionen bereitzustellen.
  • Die unterschiedlichen Schlüssel und/oder unterschiedlichen Verschlüsselungspegel und/oder unterschiedlichen Adressverwürfelungen, die auf unterschiedliche Speicherregionen angewendet werden, können zur Bauzeit des elektronischen Geräts konfiguriert werden oder während des Betriebs des elektronisches Geräts durch einen Nutzer oder Administrator.
  • Die Speichersteuerung 202 umfasst auch einen Transaktionsadresspuffer 222, um eine Adresse zu speichern, die einer bestimmten Transaktion (Lesetransaktion oder Schreibtransaktion) zugeordnet ist. Ein Adressverwürfler 224 wendet Adressverwürfelung an der Adresse von dem Transaktionsadresspuffer 222 an. Die verwürfelte Adresse wird von dem Adressverwürfler 224 zu einem Adresssteuer- und Zeitgebungsmodul 226 geliefert, das die gewürfelte Adresse über den Adressabschnitt des Speicherbusses 214 ausgibt.
  • Es ist anzumerken, dass unterschiedliche Adressverwürfelungen für unterschiedliche Speicherregionen in der Speichervorrichtung durchgeführt werden können. Somit wird beispielsweise eine Adresse, die auf eine erste Speicherregion zugreift, auf eine erste Weise verwürfelt, während eine Adresse, die auf eine zweite Speicherregion zugreift, auf eine zweite unterschiedliche Weise verwürfelt wird.
  • Beispielsweise können die unterschiedlichen Arten zum Verwürfeln der Adresse darauf basieren, unterschiedliche Schlüssel zum Verwürfeln der unterschiedlichen Adresse für die unterschiedlichen Speicherregionen zu verwenden. Alternativ können unterschiedliche Hash-Funktionen verwendet werden, um die Adressen für unterschiedliche Speicherregionen zu verwürfeln. Außerdem können auch unterschiedliche Adressverwürfelungstechniken durchgeführt werden für die Speicherregionen, die unterschiedliche Datentypen speichern, wie z. B. Nutzerdaten, Grafikdaten, Betriebssystemdaten usw.
  • Durch Verwenden unterschiedlicher Datenschlüssel und/oder unterschiedlicher Adressverwürfelung für unterschiedliche Speicherregionen wird es schwieriger, Schlüssel oder eine spezifische Adressverwürfelungstechnik wiederzugewinnen für Speicherregionen, die empfindliche oder vertrauenswürdige Daten enthalten können. Es ist anzumerken, dass bestimmte Betriebssystemdaten bekannte Daten sein können, sodass ein Hacker relativ leicht einen Schlüssel oder eine spezifische Adressverwürfelungstechnik für eine Betriebssystemspeicherregion basierend auf den bekannten Betriebssystemdaten rückentwickeln kann. Falls jedoch eine andere Datenschlüssel- und/oder Adressverwürfelungstechnik für eine Speicherregion verwendet wird, die Nichtbetriebssystemdaten enthält (wie z. B. Nutzer- oder Anwendungsdaten), dann wäre der Hacker nicht in der Lage, auf den Inhalt dieser anderen Speicherregion zuzugreifen, selbst wenn der Datenschlüssel und/oder die Adressverwürfelungstechnik durch den Hacker für die Betriebssystemspeicherregion bestimmt werden würden.
  • Bei einigen Implementierungen ist anzumerken, dass Betriebssystemdaten und Nichtbetriebssystemdaten über die Speichervorrichtung 204 verteilt sein können. Falls unterschiedliche Adressverwürfelungen für die Speicherregion angewendet werden, die Betriebssystemdaten enthält, gegenüber einer Speicherregion, die Nichtbetriebssystemdaten enthält, dann sind die Adressverwürfelungen entworfen, sodass die resultierende verwürfelte Adresse für eine Nichtbetriebssystemregion nicht letztendlich die gleiche bleibt wie die resultierende verwürfelte Adresse für eine Betriebssystemspeicherregion.
  • 3 ist ein Flussdiagramm eines Prozesses, der durch ein Steuersystem durchgeführt wird. Wie es hierin verwendet wird, umfasst das Steuersystem (oder äquivalent „Steuerteilsystem”) Verarbeitungsschaltungsanordnung, die in der Lage ist, vordefinierte Aufgaben durchzuführen. Das Steuersystem kann beispielsweise eines oder eine Kombination der Folgenden umfassen: den Speichervorrichtungsanforderer 102 von 1, die Speichervorrichtungssteuerung 104 von 1, den Anforderer 206 von 2 und die Speichersteuerung 202 von 2.
  • Das Steuersystem empfängt (bei 302) Adressbits, die im Kontext von 3 Teil einer Adresse sind, die einer Anforderung zugeordnet ist, um auf eine Speichervorrichtung zu schreiben. Das Steuersystem verwürfelt dann (bei 304) die Adressbits. Schreibdaten werden dann verschlüsselt (bei 306) unter Verwendung eines Verschlüsselungsschlüssels, der eine Kombination eines Datenschlüssels und von Adressinformationen ist, wobei die Adressinformationen ein oder eine Kombination des folgenden umfassen können: (1) zumindest einen Teil einer anfänglichen (nicht verwürfelten) physikalischen Adresse, (2) zumindest einen Teil einer verwürfelten physikalischen Adresse und (3) zumindest ein Teil der virtuellen Adressinformation (verwürfelte virtuelle Adresse oder nicht verwürfelte virtuellen Adresse).
  • Die verschlüsselten Schreibdaten werden bereitgestellt (bei 308) zum Speichern in der Speichervorrichtung.
  • 4 ist ein Flussdiagramm eines Prozesses zum Durchführen durch ein Steuersystem gemäß alternativen Implementierungen. Das Steuersystem empfängt (bei 402) Adressen, die mehreren Anforderungen zugeordnet sind, um auf mehrere Speicherregionen zu schreiben. Die Adressen werden verwürfelt (bei 404), wobei sich das Verwürfeln jeder Adresse auf das Verwürfeln von zumindest einem Teil der Adresse bezieht. Schreibdatensegmente, die den jeweiligen Schreibanforderungen zugeordnet sind, werden verschlüsselt (bei 406) unter Verwendung entsprechender unterschiedlicher Verschlüsselungen, wobei unterschiedliche Verschlüsselungen erreicht werden können unter Verwendung unterschiedlicher Verschlüsselungsschlüssel (z. B. unterschiedlicher Datenschlüssel) oder der Verwendung unterschiedlicher Verschlüsselungstechniken (z. B. XOR-basierter Verschlüsselung, AES-Verschlüsselung usw.).
  • Die verschlüsselten Schreibdatensegmente werden dann bereitgestellt (bei 408) zum Speichern in den jeweiligen Speicherregionen.
  • Das Steuersystem, das verwendet wird, um den Prozess von 3 oder 4 zu implementieren, kann nur mit Hardware oder einer Kombination von Hardware und maschinenlesbaren Anweisungen implementiert werden, die für eine Ausführung auf der Verarbeitungsschaltungsanordnung (die Teil des Anforderers 102 oder 206 oder Teil der Speichervorrichtungssteuerung 104 oder der Speichersteuerung 202 in 1 oder 2 sein kann) geladen werden. Verarbeitungsschaltungsanordnung kann einen Mikroprozessor, Mikrokontroller, Prozessormodul oder Teilsystem, programmierbare integrierte Schaltung, programmierbares Gatterarray oder ein anderes Steuer- oder Rechengerät umfassen.
  • Daten und Anweisungen werden in jeweiligen Speichervorrichtungen gespeichert, die als eines oder mehrere computerlesbare oder maschinenlesbare Speichermedien implementiert sind. Die Speichermedien umfassen unterschiedliche Formen von Speicher, einschließlich Halbleiterspeichervorrichtungen, wie z. B. dynamische oder statische Direktzugriffsspeicher (DRAM oder SRAM), löschbare und programmierbare Nur-Lese-Speicher (EPROM), elektrisch löschbare und programmierbare Nur-Lese-Speicher (EEPROM) und Flash-Speicher; Magnetplatten, wie z. B. Festplatten, Disketten und entfernbare Platten; andere Magnetmedien einschließlich Band; optische Medien, wie z. B. Kompaktdisks (CDs) oder digitale Videodisks (DVDs) oder andere Speichervorrichtungstypen. Es ist anzumerken, dass die oben erörterten Anweisungen auf einem computerlesbaren oder maschinenlesbaren Speichermedium vorgesehen sein können, oder alternativ auf mehreren computerlesbaren oder maschinenlesbaren Speichermedien vorgesehen sein können, die in einem großen System verteilt sind das möglicherweise mehrere Knoten aufweist. Ein solches computerlesbares oder maschinenlesbares Speichermedium oder Speichermedien wird (werden) so gesehen, dass dieselben Teil eines Artikels (oder Herstellungsartikels) sind. Ein Herstellungsartikel kann sich auf jede hergestellte einzelne Komponente oder mehrere Komponenten beziehen.
  • In der obigen Beschreibung sind zahlreiche Einzelheiten aufgeführt, um ein Verständnis des hierin offenbarten Gegenstands zu schaffen. Implementierungen können jedoch ohne einige oder alle diese Einzelheiten praktiziert werden. Andere Implementierungen können Modifikationen und Variationen von den oben erörterten Einzelheiten umfassen. Die angehängten Ansprüche sollen alle solche Modifikationen und Variationen abdecken.

Claims (16)

  1. Ein Verfahren, das folgende Schritte aufweist: Empfangen (302), durch ein Steuersystem, von Adressbits, die eine Adresse definieren, die verwendet wird, um auf eine Stelle in einer Speichervorrichtung zuzugreifen; Verwürfeln (304) der Adressbits durch das Steuersystem; Verschlüsseln (306) von Schreibdaten unter Verwendung eines Verschlüsselungsschlüssels, wobei der Verschlüsselungsschlüssel eine Kombination aus einem ersten Schlüssel und Adressinformationen aufweist, wobei die Adressinformationen auf einem oder einer Kombination des folgenden basieren: zumindest einem Teil der empfangenen Adressbits, zumindest einem Teil der verwürfelten Adressbits, oder zumindest einem Teil virtueller Adressinformationen; und Bereitstellen (308) der verschlüsselten Schreibdaten durch das Steuersystem, zum Speichern in der Speichervorrichtung an einer Stelle der Speichervorrichtung, die durch die verwürfelten Adressbits spezifiziert wird.
  2. Das Verfahren gemäß Anspruch 1, bei dem die Stelle in der Speichervorrichtung, die durch die Adressbits vor dem Verwürfeln spezifiziert wird, sich von einer Stelle in der Speichervorrichtung unterscheidet, die durch die verwürfelten Adressbits spezifiziert wird.
  3. Das Verfahren gemäß Anspruch 1, bei dem die Kombination des ersten Schlüssels und der Adressinformation eine Exklusiv-ODER-Verknüpfung des ersten Schlüssels und der Adressinformationen aufweist.
  4. Das Verfahren gemäß Anspruch 1, bei dem die Speichervorrichtung mehrere Regionen aufweist, und bei dem unterschiedliche Verschlüsselungsschlüssel verwendet werden, um Daten zu verschlüsseln, die in den jeweiligen mehreren Regionen gespeichert sind.
  5. Das Verfahren gemäß Anspruch 1, bei dem die Speichervorrichtung mehrere Regionen aufweist, wobei das Verfahren ferner das Anwenden unterschiedlicher Verschlüsselungspegel auf die jeweiligen mehreren Regionen aufweist.
  6. Das Verfahren gemäß Anspruch 1, bei dem die Speichervorrichtung mehrere Regionen aufweist, wobei das Verfahren ferner das Anwenden unterschiedlicher Adressverwürfelungen für die jeweiligen mehreren Regionen aufweist.
  7. Das Verfahren gemäß Anspruch 1, bei dem das Verwürfeln der Adressbits darauf basiert, einen Schlüssel zu verwenden, der aus dem ersten Schlüssel und einem zweiten Schlüssel, der sich von dem ersten Schlüssel unterscheidet, ausgewählt ist.
  8. Das Verfahren gemäß Anspruch 1, bei dem das Verwürfeln der Adressbits eines aufweist, das aus den folgenden ausgewählt ist: (1) Verwürfeln der Adressbits basierend auf dem Anlegen einer Hash-Funktion an die Adressbits, und (2) Verwürfeln der Adressbits basierend auf der Verwendung einer Datenstruktur, die Eingabeadressen auf ausgegebene verwürfelte Adressen abbildet.
  9. Das Verfahren gemäß Anspruch 1, das ferner folgende Schritte aufweist: Lesen verschlüsselter Lesedaten von der Speichervorrichtung; und Entschlüsseln der verschlüsselten Lesedaten unter Verwendung des Verschlüsselungsschlüssels.
  10. Ein System, das folgende Merkmale aufweist: zumindest eine Speichervorrichtung (204); und ein Steuerteilsystem (202, 206) zum: Verwürfeln von Adressen zum Zugreifen auf unterschiedliche Speicherregionen der zumindest einen Speichervorrichtung, um jeweilige verwürfelte Adressen zu bilden; Verschlüsseln, unter Verwendung unterschiedlicher Verschlüsselungen, entsprechender mehrerer Schreibdatensegmente; und Bereitstellen der verschlüsselten Schreibdatensegmente zum Speichern in den jeweiligen Speicherregionen, die durch die jeweiligen verwürfelten Adressen spezifiziert werden.
  11. Das System gemäß Anspruch 10, bei dem die unterschiedlichen Verschlüsselungen auf der Verwendung entsprechender unterschiedlicher Verschlüsselungsschlüssel basieren.
  12. Das System gemäß Anspruch 11, bei dem zumindest einer der Verschlüsselungsschlüssel eine Mischung aus einem Datenschlüssel und Adressinformationen ist, die eine Adresse enthalten zum Zugreifen auf eine Stelle in der zumindest einen Speichervorrichtung.
  13. Das System gemäß Anspruch 10, bei dem die unterschiedlichen Verschlüsselungen auf der Verwendung entsprechender unterschiedlicher Verschlüsselungstechniken basieren.
  14. Das System gemäß Anspruch 10, bei dem die unterschiedlichen Speicherregionen folgendes aufweisen: (1) unterschiedliche Speicherregionen einer Speichervorrichtung oder (2) unterschiedliche Speicherregionen unterschiedlicher Speichervorrichtungen.
  15. Das System gemäß Anspruch 10, bei dem die unterschiedlichen Speicherregionen dazu dienen, jeweils unterschiedliche Datentypen zu speichern.
  16. Das System gemäß Anspruch 10, bei dem das Steuerteilsystem konfiguriert ist, um zumindest entweder Adressinformationen, Steuerinformationen oder Dateninformationen drahtlos an die Speichervorrichtung zu kommunizieren.
DE112010005842.3T 2010-10-05 2010-10-05 Verwürfeln einer Adresse und Verschlüsseln von Schreibdaten zum Speichern in einer Speichervorrichtung Ceased DE112010005842T8 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2010/051413 WO2012047200A1 (en) 2010-10-05 2010-10-05 Scrambling an address and encrypting write data for storing in a storage device

Publications (2)

Publication Number Publication Date
DE112010005842T5 true DE112010005842T5 (de) 2013-06-20
DE112010005842T8 DE112010005842T8 (de) 2014-07-17

Family

ID=45927991

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010005842.3T Ceased DE112010005842T8 (de) 2010-10-05 2010-10-05 Verwürfeln einer Adresse und Verschlüsseln von Schreibdaten zum Speichern in einer Speichervorrichtung

Country Status (5)

Country Link
US (1) US9397834B2 (de)
CN (1) CN103154963A (de)
DE (1) DE112010005842T8 (de)
GB (1) GB2497464A (de)
WO (1) WO2012047200A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11178114B2 (en) 2017-03-09 2021-11-16 Siemens Aktiengesellschaft Data processing method, device, and system

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012033496A1 (en) * 2010-09-10 2012-03-15 Hewlett-Packard Development Company, L.P. Unlock a storage device
WO2012047200A1 (en) 2010-10-05 2012-04-12 Hewlett-Packard Development Company, L. P. Scrambling an address and encrypting write data for storing in a storage device
KR102060996B1 (ko) * 2013-01-07 2020-02-11 삼성전자주식회사 단말기의 메모리 주소 및 데이터변환 장치 및 방법
US9104588B2 (en) 2013-03-01 2015-08-11 Micron Technology, Inc. Circuits, apparatuses, and methods for address scrambling
US9858208B2 (en) 2013-03-21 2018-01-02 International Business Machines Corporation System for securing contents of removable memory
US9436844B2 (en) 2013-08-29 2016-09-06 Microsoft Technology Licensing, Llc Access enablement security circuit
US9716708B2 (en) 2013-09-13 2017-07-25 Microsoft Technology Licensing, Llc Security certificates for system-on-chip security
US9607177B2 (en) * 2013-09-30 2017-03-28 Qualcomm Incorporated Method for securing content in dynamically allocated memory using different domain-specific keys
US20150095661A1 (en) * 2013-09-30 2015-04-02 Microsoft Corporation Flexible Memory Addressing For Data Security
US9218296B2 (en) * 2014-01-27 2015-12-22 International Business Machines Corporation Low-latency, low-overhead hybrid encryption scheme
GB2524561A (en) * 2014-03-27 2015-09-30 St Microelectronics Res & Dev Methods and apparatus for storing content
CN103929297B (zh) * 2014-04-17 2017-05-17 福建联迪商用设备有限公司 一种pos和移动终端通信方法、加密方法和装置及一种pos
IL235729A (en) * 2014-11-17 2017-06-29 Kaluzhny Uri A device and method for securely storing information
CN104486081A (zh) * 2014-12-15 2015-04-01 英华达(上海)科技有限公司 Nfc设备数据的加密传输方法和系统
CN104537319A (zh) * 2014-12-22 2015-04-22 昆腾微电子股份有限公司 对总线进行加解扰的装置和方法、集成电路芯片
US10454845B2 (en) 2015-04-22 2019-10-22 ColorTokens, Inc. Object memory management unit
US20170093823A1 (en) * 2015-09-25 2017-03-30 Vinodh Gopal Encrypting Observable Address Information
GB2544546B (en) * 2015-11-20 2020-07-15 Advanced Risc Mach Ltd Dynamic memory scrambling
CN105512560B (zh) * 2015-11-27 2018-11-16 深圳国微技术有限公司 一种一次性可编程存储器芯片和及其的控制方法
GB2545409B (en) * 2015-12-10 2020-01-08 Advanced Risc Mach Ltd Wear levelling in non-volatile memories
CN105608050B (zh) 2015-12-31 2019-02-01 华为技术有限公司 数据存储方法及系统
US10740466B1 (en) * 2016-09-29 2020-08-11 Amazon Technologies, Inc. Securing interfaces of a compute node
CN108073353B (zh) * 2016-11-15 2020-04-14 华为技术有限公司 一种数据处理的方法及装置
CN106599735B (zh) * 2017-02-13 2023-10-24 珠海格力电器股份有限公司 数据保护装置、方法以及存储控制器
US10474359B1 (en) 2017-02-28 2019-11-12 Amazon Technologies, Inc. Write minimization for de-allocated memory
US10901627B1 (en) 2017-02-28 2021-01-26 Amazon Technologies, Inc. Tracking persistent memory usage
US10404674B1 (en) 2017-02-28 2019-09-03 Amazon Technologies, Inc. Efficient memory management in multi-tenant virtualized environment
US10769080B2 (en) * 2017-03-30 2020-09-08 Futurewei Technologies, Inc. Distributed and shared memory controller
CN107590402A (zh) * 2017-09-26 2018-01-16 杭州中天微系统有限公司 一种存储数据加解密装置及方法
US10534554B2 (en) * 2017-10-13 2020-01-14 Silicon Storage Technology, Inc. Anti-hacking mechanisms for flash memory device
CN108229215A (zh) * 2017-12-06 2018-06-29 杭州中天微系统有限公司 一种地址加扰的存储装置及方法
US10983711B2 (en) 2018-01-04 2021-04-20 Montage Technology Co., Ltd. Memory controller, method for performing access control to memory module
US10936212B2 (en) 2018-01-04 2021-03-02 Montage Technology Co., Ltd. Memory controller, method for performing access control to memory module
CN110007849B (zh) * 2018-01-04 2021-03-12 澜起科技股份有限公司 存储器控制器以及用于对存储模块进行访问控制的方法
US10901917B1 (en) * 2018-01-26 2021-01-26 Amazon Technologies, Inc. Address scrambling for storage class memory
KR102510451B1 (ko) * 2018-05-09 2023-03-16 삼성전자주식회사 집적 회로 장치 및 집적 회로 장치의 동작 방법
KR102644274B1 (ko) * 2018-11-22 2024-03-06 삼성전자주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 메모리 컨트롤러의 동작 방법
EP3675125A1 (de) * 2018-12-27 2020-07-01 Secure-IC SAS Vorrichtung und verfahren zum schützen eines speichers
CN110598485A (zh) * 2019-08-07 2019-12-20 浙江省北大信息技术高等研究院 数据加密存储装置及方法
US11487908B2 (en) * 2019-08-16 2022-11-01 Macronix International Co., Ltd. Secure memory
CN110955904B (zh) * 2019-11-22 2022-02-01 海光信息技术股份有限公司 一种数据加密方法、数据解密方法、处理器及计算机设备
CN111125791B (zh) * 2019-12-11 2023-08-29 海光信息技术股份有限公司 一种内存数据的加密方法、装置、cpu芯片及服务器
CN111130784B (zh) * 2019-12-25 2023-08-08 成都海光集成电路设计有限公司 一种密钥生成方法、装置、cpu芯片及服务器
US11645428B1 (en) * 2020-02-11 2023-05-09 Wells Fargo Bank, N.A. Quantum phenomenon-based obfuscation of memory
TWI791963B (zh) 2020-03-19 2023-02-11 瑞昱半導體股份有限公司 資料解密系統及資料解密方法
CN113449311B (zh) * 2020-03-25 2024-08-30 瑞昱半导体股份有限公司 数据解密系统及数据解密方法
GB202018926D0 (en) * 2020-12-01 2021-01-13 Nordic Semiconductor Asa Digital radio communications
CN114968088B (zh) * 2022-04-08 2023-09-05 中移互联网有限公司 文件存储方法、文件读取方法及装置
CN114817967B (zh) * 2022-06-24 2022-09-30 中关村科学城城市大脑股份有限公司 一种基于城市大脑的数据安全共享方法及系统
CN115062352B (zh) * 2022-08-16 2022-12-02 湖南进芯电子科技有限公司 加密区域动态调节的数据处理方法、系统及电路结构
CN115509464A (zh) * 2022-11-18 2022-12-23 北京紫光青藤微系统有限公司 一种针对ram的加密方法、装置、可读介质及电子设备

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4588991A (en) * 1983-03-07 1986-05-13 Atalla Corporation File access security method and means
US5237611A (en) 1992-07-23 1993-08-17 Crest Industries, Inc. Encryption/decryption apparatus with non-accessible table of keys
GB2321728B (en) 1997-01-30 2001-12-19 Motorola Inc Apparatus and method for accessing secured data stored in a portable data carrier
JP2001514834A (ja) 1997-03-10 2001-09-11 ガイ・エル・フィールダー 安全決定性暗号鍵発生システムおよび方法
US7228425B1 (en) 2000-02-07 2007-06-05 Koninklijke Philips Electronics N. V. Protecting content from illicit reproduction by proof of existence of a complete data set via self-referencing sections
JP3508680B2 (ja) 2000-02-24 2004-03-22 日本電気株式会社 コンテンツ不正コピー防止方法およびシステム
US8225414B2 (en) 2000-08-28 2012-07-17 Contentguard Holdings, Inc. Method and apparatus for identifying installed software and regulating access to content
US6868407B1 (en) 2000-11-02 2005-03-15 Pitney Bowes Inc. Postage security device having cryptographic keys with a variable key length
SG140467A1 (en) 2001-02-16 2008-03-28 Sony Corp Data processing method and its apparatus
WO2002077878A1 (en) * 2001-03-26 2002-10-03 Galois Connections Inc Crypto-pointers for secure data storage
KR100398620B1 (ko) * 2001-06-29 2003-09-19 주식회사 하이닉스반도체 암호화 회로를 포함하는 메모리 장치
KR20030002488A (ko) * 2001-06-29 2003-01-09 현대자동차주식회사 투과도 조절이 가능한 코팅 유리 및 이의 제조방법
ATE494692T1 (de) * 2001-10-03 2011-01-15 Nxp Bv Verfahren und system zur speicherverschlüsselung
JP2003195758A (ja) 2001-12-25 2003-07-09 Kenwood Corp データ処理装置、インタフェースボードおよびデータ秘匿方法
JP4199477B2 (ja) 2002-04-17 2008-12-17 パナソニック株式会社 デジタル双方向通信制御装置およびその方法
US7216227B2 (en) * 2002-04-23 2007-05-08 Amiram Grynberg Method and system for controlling the use of addresses using address computation techniques
DE10345385B4 (de) * 2003-09-30 2005-10-06 Infineon Technologies Ag Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher
US7685436B2 (en) 2003-10-02 2010-03-23 Itt Manufacturing Enterprises, Inc. System and method for a secure I/O interface
JP4698982B2 (ja) 2004-04-06 2011-06-08 株式会社日立製作所 暗号処理を行うストレージシステム
US20060013162A1 (en) * 2004-07-16 2006-01-19 Hyo Taek Lim Portable digital device and service system having iSCSI-based remote storage service function in wireless environment
JP2006094241A (ja) 2004-09-24 2006-04-06 Fuji Xerox Co Ltd 暗号化装置、暗号化処理方法及びプログラム、並びに該暗号化装置を用いた情報保護システム
JP4734906B2 (ja) * 2004-12-07 2011-07-27 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP2006203564A (ja) * 2005-01-20 2006-08-03 Nara Institute Of Science & Technology マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法
JP2006236064A (ja) 2005-02-25 2006-09-07 Oki Electric Ind Co Ltd メモリ制御装置およびメモリシステム
US8001374B2 (en) * 2005-12-16 2011-08-16 Lsi Corporation Memory encryption for digital video
US7428610B2 (en) 2006-02-14 2008-09-23 Atmel Corporation Writing to flash memory
JP4836208B2 (ja) 2006-07-24 2011-12-14 国立大学法人 岡山大学 暗号化/復号化プログラム、暗号化/復号化装置及び拡大体の乗算装置
US8213607B2 (en) 2006-10-18 2012-07-03 Qualcomm Incorporated Method for securely extending key stream to encrypt high-entropy data
US20080152142A1 (en) 2006-12-20 2008-06-26 Mark Buer Memory scrambler unit (msu)
US20080181406A1 (en) 2007-01-30 2008-07-31 Technology Properties Limited System and Method of Storage Device Data Encryption and Data Access Via a Hardware Key
DE102007007699A1 (de) 2007-02-09 2008-08-14 IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik Reduktion von Seiten-Kanal-Informationen durch interagierende Krypto-Blocks
US8346839B2 (en) 2007-03-30 2013-01-01 Intel Corporation Efficient advanced encryption standard (AES) datapath using hybrid rijndael S-box
JP2008299611A (ja) 2007-05-31 2008-12-11 Toshiba Corp メモリセキュリティ装置
CN101364249A (zh) * 2007-08-06 2009-02-11 北京中电华大电子设计有限责任公司 一种安全算法保护方法
CN101542968B (zh) 2007-08-28 2012-12-26 松下电器产业株式会社 密钥终端装置、加密处理用lsi、固有密钥生成方法和内容系统
US8539250B2 (en) * 2007-09-29 2013-09-17 Intel Corporation Secure, two-stage storage system
IL187046A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Memory randomization for protection against side channel attacks
JP4865694B2 (ja) 2007-12-28 2012-02-01 ラピスセミコンダクタ株式会社 プロセッサ装置
US8813247B1 (en) * 2008-04-07 2014-08-19 Alex I. Alten Providing cryptographic security for objective-oriented programming files
GB2471630B8 (en) 2008-05-09 2013-10-23 Hewlett Packard Development Co System and method for providing secure access to system memory
KR101496975B1 (ko) 2008-05-28 2015-03-02 삼성전자주식회사 고체 상태 디스크 및 이에 대한 입출력방법
US8112634B2 (en) 2008-06-04 2012-02-07 Samsung Electronics Co., Ltd. Security-enhanced storage devices using media location factor in encryption of hidden and non-hidden partitions
US9336160B2 (en) 2008-10-30 2016-05-10 Qualcomm Incorporated Low latency block cipher
JP2010129128A (ja) 2008-11-28 2010-06-10 Toshiba Storage Device Corp 記憶装置及びデータ書き込み方法
CN102362280A (zh) * 2009-03-23 2012-02-22 惠普开发有限公司 在电子设备中安全地存储数据的系统和方法
US9634993B2 (en) 2010-04-01 2017-04-25 Cloudflare, Inc. Internet-based proxy service to modify internet responses
DE112010005847T5 (de) 2010-10-05 2013-06-20 Hewlett-Packard Development Company, L.P. Modifizieren einer Länge eines Elements, um einen Verschlüsselungsschlüssel zu bilden
WO2012047200A1 (en) 2010-10-05 2012-04-12 Hewlett-Packard Development Company, L. P. Scrambling an address and encrypting write data for storing in a storage device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11178114B2 (en) 2017-03-09 2021-11-16 Siemens Aktiengesellschaft Data processing method, device, and system

Also Published As

Publication number Publication date
CN103154963A (zh) 2013-06-12
WO2012047200A1 (en) 2012-04-12
GB201304448D0 (en) 2013-04-24
GB2497464A (en) 2013-06-12
US20130205139A1 (en) 2013-08-08
US9397834B2 (en) 2016-07-19
DE112010005842T8 (de) 2014-07-17

Similar Documents

Publication Publication Date Title
DE112010005842T5 (de) Verwürfeln einer Adresse und Verschlüsseln von Schreibdaten zum Speichern einer Speichervorrichtung
DE112008003855B4 (de) System und Verfahren zum Bereitstellen von sicherem Zugriff auf einen Systemspeicher
DE112009004491T5 (de) System und Verfahren zum sicheren Speichern von Daten in einem elektronischen Gerät
US8468365B2 (en) Tweakable encryption mode for memory encryption with protection against replay attacks
JP7225220B2 (ja) 記憶データ暗号化/復号化装置及び方法
US7444480B2 (en) Processor, memory device, computer system, and method for transferring data
US8516271B2 (en) Securing non-volatile memory regions
US20170046281A1 (en) Address dependent data encryption
US10896267B2 (en) Input/output data encryption
DE102018115491A1 (de) System, vorrichtung und verfahren zur seitengranularen, softwaregesteuerten speicherverschlüsselung mit mehreren schlüsseln
DE102019110327A1 (de) Technologien zum verifizieren von speicherintegrität über mehrere speicherbereiche hinweg
US20190384938A1 (en) Storage apparatus and method for address scrambling
DE102016002549A1 (de) Verfahren zur mehrschichtig geschützten Sicherung von (Anmelde-) Daten insbesondere Passwörtern
DE102014113300A1 (de) Datenspeicherung im persistenten Speicher
DE102018115683A1 (de) Domänenübergreifende sicherheit in kryptographisch partionierter cloud
US20180137062A1 (en) Cryptographic-based initialization of memory content
DE102019110440A1 (de) Replay-Schutz für Speicher auf der Basis eines Schlüsselauffrischens
CN101042683A (zh) 将计算机存储器和主板绑定的方法和装置
US9928385B2 (en) Periodic memory refresh in a secure computing system
DE112010005847T5 (de) Modifizieren einer Länge eines Elements, um einen Verschlüsselungsschlüssel zu bilden
US20240004802A1 (en) Data security for memory and computing systems
JP6175807B2 (ja) 情報処理装置、プログラム
DE112021000149T5 (de) Verschlüsselung einer datenspeicherungsvorrichtung
EP3371733B1 (de) Verschlüsseln des speicherinhalts eines speichers in einem eingebetteten system

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021240000

Ipc: G06F0021600000

Effective date: 20130508

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final