DE112010005847T5 - Modifizieren einer Länge eines Elements, um einen Verschlüsselungsschlüssel zu bilden - Google Patents

Modifizieren einer Länge eines Elements, um einen Verschlüsselungsschlüssel zu bilden Download PDF

Info

Publication number
DE112010005847T5
DE112010005847T5 DE112010005847T DE112010005847T DE112010005847T5 DE 112010005847 T5 DE112010005847 T5 DE 112010005847T5 DE 112010005847 T DE112010005847 T DE 112010005847T DE 112010005847 T DE112010005847 T DE 112010005847T DE 112010005847 T5 DE112010005847 T5 DE 112010005847T5
Authority
DE
Germany
Prior art keywords
data
key
data key
address
length
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.)
Withdrawn
Application number
DE112010005847T
Other languages
English (en)
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 DE112010005847T5 publication Critical patent/DE112010005847T5/de
Withdrawn legal-status Critical Current

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
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/061Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying further key derivation, e.g. deriving traffic keys from a pair-wise master key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks

Landscapes

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

Abstract

Eine Länge eines Elements, das als Teil eines Verschlüsselungsschlüssels zum Verschlüsseln von Daten verwendet wird, wird modifiziert. Daten werden unter Verwendung des Verschlüsselungsschlüssels verschlüsselt und die verschlüsselten Daten werden zum Speichern in einer Speichervorrichtung (106, 204) bereitgestellt.

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 Typen von Daten 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 Figuren beschrieben:
  • 1 und 2 sind Blockdiagramme von beispielhaften Anordnungen, die einige Implementierungen umfassen; und
  • 3 ist ein Flussdiagramm eines Prozesses zum Schützen von Inhalt einer Speichervorrichtung gemäß einigen Implementierungen.
  • 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 mit 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.
  • Als Teil eines Schutzmechanismus oder einer Schutztechnik wird ein Datenschlüssel zusammen mit einer Verschlüsselungstechnik verwendet, um Daten zu verschlüsseln, die in der Speichervorrichtung zu speichern sind. Es kann Zeiten geben, wenn der erzeugte Datenschlüssel nicht die gleiche Länge hat wie die Daten- oder Informationssegmente, die verschlüsselt werden; als Folge müsste die Länge des Datenschlüssels entsprechend modifiziert werden, um einen Verschlüsselungsschlüssel zu bilden, um Verschlüsselungen auf das Daten- oder Informationssegment anzuwenden. Außerdem kann es Zeiten geben, wenn ein Datenschlüssel mit einem anderen Informationselement gemischt ist – um es zu ermöglichen, dass das Mischen korrekt durchgeführt wird, kann es sein, dass die Länge des Verschlüsselungsschlüssels und/oder eines anderen Informationselements, das mit dem Verschlüsselungsschlüssel zum Mischen ist, modifiziert werden muss.
  • Datenschutztechniken oder -mechanismen gemäß einigen Implementierungen können einen Verschlüsselungsschlüssel erzeugen (zum Verschlüsseln von Daten, die in einer Speichervorrichtung zu speichern sind) durch Modifizieren einer Länge eines Elements, das verwendet wird, um den Verschlüsselungsschlüssel zu bilden. Das Element, dessen Länge modifiziert ist, kann ein Datenschlüssel und/oder Adressinformation sein, die beim Bilden des Verschlüsselungsschlüssels verwendet werden. Das Modifizieren der Länge des Elements umfasst das Erhöhen oder Verringern seiner Länge. Verschiedene Techniken zum Modifizieren der Länge des Elements werden nachfolgend näher erörtert.
  • 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 (bei der eine Anfangsadresse modifiziert wird durch Anwenden einer Verwürfelungstechnik, die nachfolgend näher erörtert wird). Verwürfeln einer Adresse kann entweder durchgeführt werden unter Verwendung eines Adressverwürflers 126 in der Speichervorrichtungssteuerung 104, oder eines Adressverwürflers 128 in dem Speichervorrichtungsanforderer 102.
  • 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 der Schlüsselmischer 124 bei Implementierungen ausgelassen werden kann, die Datenschlüssel und Adressinformationen nicht mischen, um Verschlüsselungsschlüssel zu bilden.
  • Wie es oben angemerkt wurde, kann gemäß einigen Implementierungen Längenmodifikation an (einem) Element(en) durchgeführt werden, das/die zum Bilden eines Verschlüsselungsschlüssels verwendet wird/werden. Bei 1 kann die Längenmodifikation durchgeführt werden durch einen Längenmodifizierer 130 (zum Modifizieren einer Länge von Adressinformationen) oder einen Längenmodifizierer 132 (zum Modifizieren einer Länge eines Datenschlüssels 120). Bei einigen Implementierungen liegt nur einer der Längenmodifizierer 130 und 132 vor. Bei anderen Implementierungen liegen beide Längenmodifizierer 130 und 132 vor. Längenmodifikation kann auch alternativ erreicht werden durch Mischen eines Datenschlüssels 120 mit Adressinformationen durch den Mischer 124 (in diesem Fall können die Längenmodifizierer 130 und 132 ausgelassen werden).
  • Wie es oben angemerkt wurde, kann es Zeiten geben, wenn ein Datenschlüssel 120 nicht die gleiche Länge hat wie das Daten- oder Informationssegment, das verschlüsselt wird; als Folge müsste die Länge des Datenschlüssels entsprechend modifiziert werden. Außerdem kann es Zeiten geben, wenn ein Datenschlüssel mit einem anderen Informationselement (z. B. Adressinformationen) gemischt ist – um es zu ermöglichen, dass das Mischen erfolgreich korrekt durchgeführt wird, muss die Länge des Datenschlüssels und/oder der Adressinformationen, die mit dem Datenschlüssel zu mischen sind, modifiziert werden.
  • Die Fähigkeit, die Länge der Adressinformationen und/oder des Datenschlüssels 120 zu modifizieren, ermöglicht eine verbesserte Flexibilität, wie Verschlüsselungsschlüssel gebildet werden. Beispielsweise kann die Länge eines Datenschlüssels kundenspezifisch angepasst werden, um einen Verschlüsselungsschlüssel einer Ziellänge bereitzustellen. Als weiteres Beispiel können mehrere Datenschlüssel erzeugt und kombiniert werden (wie z. B. durch Anwenden einer Funktion), um den Verschlüsselungsschlüssel zu bilden. Als noch eine weitere Alternative können bei Implementierungen, wo (ein) Datenschlüssel mit Adressinformationen gemischt wird/werden, um einen Verschlüsselungsschlüssel zu bilden, eine oder beide der Langen des/der Datenschlüssel und Adressinformationen modifiziert werden, um ein geeignetes Mischen zu ermöglichen, um den Verschlüsselungsschlüssel zu erzeugen.
  • Es folgen verschiedene Implementierungen zum Modifizieren von Längen von Datenschlüsseln und Adressinformationen (verwürfelte oder nicht verwürfelte Adressinformationen), die durch den Längenmodifizierer 130 und/oder Längenmodifizierer 132 und/oder den Mischer 124 durchgeführt werden können. Bei einigen Implementierungen kann die Länge eines Datenschlüssels 120 modifiziert werden, indem einfach Bits zu dem Datenschlüssel 120 hinzugefügt werden oder Bits von demselben entfernt werden. Um beispielsweise die Länge des Datenschlüssels 120 zu erhöhen, kann der Datenschlüssel 120 reproduziert werden und die reproduzierten Datenschlüssel (oder einige Teile davon) verkettet werden, um den Verschlüsselungsschlüssel zu bilden.
  • Bei anderen Implementierungen kann das Modifizieren der Länge eines Datenschlüssels 120 erreicht werden durch Mischen des Datenschlüssels 120 mit Adressinformationen durch den Mischer 124.
  • Bei weiteren Implementierungen können mehrere Datenschlüssel 120 vorgesehen sein, und die mehreren Datenschlüssel 120 werden kombiniert, wie z. B. durch Anwenden einer Funktion. Die angewendete Funktion kann eines oder mehrere der folgenden umfassen: (1) Verketten der mehreren Datenschlüssel 120, um den Verschlüsselungsschlüssel zu bilden; (2) Multiplizieren der mehreren Datenschlüssel 120, um den Verschlüsselungsschlüssel zu bilden; (3) Anwenden einer Hashfunktion auf die mehreren Datenschlüssel 120, um den Verschlüsselungsschlüssel zu bilden; (4) Durchführen einer Nachschlageoperation einer Nachschlagtabelle unter Verwendung der mehreren Datenschlüssel 120, um den Verschlüsselungsschlüssel wiederzugewinnen; und (5) andere Funktionen. Es ist anzumerken, dass das Anwenden der Funktion auf die mehreren Datenschlüssel 120 die Länge eines Datenschlüssels entweder erhöhen oder verringern kann.
  • Bei weiteren Implementierungen erzeugt das Anwenden einer Funktion auf mehrere Datenschlüssel 120 eine Ausgabe, die dann durch den Mischer 124 mit Adressinformationen gemischt werden kann, um den Verschlüsselungsschlüssel zu bilden.
  • Es ist anzumerken, dass die Länge von Adressinformationen modifiziert werden kann durch Verwenden einer der oben angemerkten Funktionen für mehrere Datenschlüssel. Beispielsweise können mehrere Adressinformationen erzeugt werden, und alle der oben angemerkten Funktionen können an die mehreren Adressinformationen angelegt werden, um eine Ausgabe zu erzeugen, die zum Ableiten eines Verschlüsselungsschlüssels verwendet wird, wie z. B. durch Mischen mit (einem) Datenschlüssel(n), um den Verschlüsselungsschlüssel zu erzeugen.
  • 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).
  • 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.
  • Bei der Anordnung von 2 können unterschiedliche Speicherregionen der Speichervorrichtung 204 unter Verwendung unterschiedlicher Schutztechniken geschützt werden. Wie es in 2 dargestellt ist, hat die Speichervorrichtung mehrere Speicherregionen („Speicherregion 1”, ..., „Speicherregion n”). Die unterschiedlichen Speicherregionen können unterschiedliche Abschnitte einer Speichervorrichtung darstellen. Die mehreren Speicherregionen können alternativ unterschiedliche Speichervorrichtungen darstellen. Somit kann beispielsweise in einem elektronischen Gerä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. Die unterschiedlichen Schlüssel können mehrere Datenschlüssel (dargestellt als „Datenschlüssel 1”, ..., „Datenschlüssel n”, wobei n ≥ 2) in einer Schlüsselspeicherung 220 umfassen.
  • Bei weiteren Beispielen kann es in dem elektronischen Gerät unterschiedliche Speichervorrichtungstypen geben, in diesem Fall werden unterschiedliche Datenschlüssel verwendet, um Daten zu schützen, die in den unterschiedlichen Typen von Speichervorrichtungen gespeichert sind. Somit wird beispielsweise ein erster Datenschlüssel verwendet, um Daten in einem ersten Speichervorrichtungstyp (z. B. einem 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 anzumerken, dass es auch Cachespeicher in dem elektronischen Gerät geben kann, 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.
  • 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 Speichersteuerung 202 umfasst auch einen Transaktionsadresspuffer 222, um eine Adresse zu speichern, die einer bestimmten Transaktion (Lesetransaktion oder Schreibaktion) zugeordnet ist. Der Adressverwürfler 224 wendet Adressverwürfelung auf die Adresse von dem Transaktionsadresspuffer 222 an. Die verwürfelte Adresse wird von dem Adressverwürfler 224 einem Adresssteuer- und Zeitgebungsmodul 226 bereitgestellt, das die verwürfelte Adresse über den Adressabschnitt des Speicherbusses 214 ausgibt.
  • Wie es in 2 dargestellt ist, umfasst die Speichersteuerung 202 einen Schlüsselmodifizierer 230, der bewirken kann, dass eine Länge eines Elements, das verwendet wird, um einen Verschlüsselungsschlüssel zu bilden, modifiziert wird, ähnlich dem oben in Verbindung mit 1 erörterten Mechanismus. Der Schlüsselmodifizierer 230 kann die Länge eines Datenschlüssels (von der Schlüsselspeicherung 220) modifizieren, und/oder die Länge der Adressinformation (unverwürfelt oder verwürfelt) modifizieren, und/oder einen Datenschlüssel mit Adressinformationen (nicht verwürfelt oder verwürfelt) mischen. Effektiv kann der Schlüsselmodifizierer 230 von 2 jeder oder eine Kombination des Längenmodifizierers 130, Längenmodifizierers 132 und Mischers 124 von 1 sein.
  • 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) ein Element, das als Teil eines Verschlüsselungsschlüssels verwendet wird zum Verschlüsseln von Daten, die in einer Speichervorrichtung zu speichern sind (z. B. 106 in 1 oder 204 in 2). Das Element kann ein Datenschlüssel und/oder Adressinformationen sein. Eine Länge des Elements wird modifiziert (bei 304), um den Verschlüsselungsschlüssel zu bilden. Diese Modifikation kann durch jeden oder eine Kombination der Folgenden durchgeführt werden: Längenmodifizierer 130, Längenmodifizierer 132, Mischer 124 und Schlüsselmodifizierer 230.
  • Das Steuersystem verschlüsselt (bei 306) als Nächstes Schreibdaten unter Verwendung des Verschlüsselungsschlüssels. Die verschlüsselten Daten werden dann zum Speichern in der Speichervorrichtung bereitgestellt (bei 308).
  • Das Steuersystem, das verwendet wird, um den Prozess von 3 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 (15)

  1. Ein Verfahren, das folgende Schritte aufweist: Empfangen (302), durch ein Steuersystem, eines Elements, das als Teil eines Verschlüsselungsschlüssels zum Verschlüsseln von Daten verwendet wird; Modifizieren (304), durch das Steuersystem, einer Länge des Elements, um den Verschlüsselungsschlüssel zu bilden; Verschlüsseln (306), durch das Steuersystem, von Daten unter Verwendung des Verschlüsselungsschlüssels; und Bereitstellen (308), durch das Steuersystem, der verschlüsselten Daten für eine Speicherung in einer Speichervorrichtung.
  2. Das Verfahren gemäß Anspruch 1, bei dem das Empfangen des Elements ein Empfangen eines Datenschlüssels aufweist, und wobei das Modifizieren der Länge des Datenschlüssels ein Hinzufügen von Bits zu dem Datenschlüssel oder ein Entfernen von Bits von demselben aufweist.
  3. Das Verfahren gemäß Anspruch 2, bei dem das Modifizieren der Länge des Datenschlüssels ein Kombinieren des Datenschlüssels mit Adressinformationen aufweist, um den Verschlüsselungsschlüssel zu bilden.
  4. Das Verfahren gemäß Anspruch 3, bei dem das Kombinieren des Datenschlüssels mit den Adressinformationen ein Kombinieren des Datenschlüssels mit einem der folgenden aufweist (1) zumindest einem Teil einer physikalischen Adresse, die eine Stelle der Speichervorrichtung spezifiziert, und (2) zumindest einem Teil einer virtuellen Adresse zum Zugreifen auf Inhalt der Speichervorrichtung.
  5. Das Verfahren gemäß Anspruch 2, bei dem der Datenschlüssel ein erster Datenschlüssel ist, wobei das Verfahren ferner folgende Schritte aufweist: Erzeugen zumindest eines anderen Datenschlüssels; und Anwenden einer Funktion auf den ersten Datenschlüssel und den zumindest anderen Datenschlüssel, um den Verschlüsselungsschlüssel zu bilden.
  6. Das Verfahren gemäß Anspruch 5, bei dem das Anwenden der Funktion zumindest eines aufweist, das aus Folgendem ausgewählt ist: Verketten des ersten Datenschlüssels und des zumindest anderen Datenschlüssels; Multiplizieren des ersten Datenschlüssels mit dem zumindest anderen Datenschlüssel; Anwenden einer Hashfunktion auf den ersten Datenschlüssel und den zumindest anderen Datenschlüssel; Verwenden einer Nachschlagtabelle basierend auf dem ersten Datenschlüssel und dem zumindest anderen Datenschlüssel.
  7. Das Verfahren gemäß Anspruch 5, bei dem das Anwenden der Funktion auf den ersten Datenschlüssel und den zumindest anderen Datenschlüssel eine Ausgabe erzeugt, wobei das Verfahren ferner ein Kombinieren der Ausgabe der Funktion mit Adressinformationen aufweist, um den Verschlüsselungsschlüssel zu bilden.
  8. Das Verfahren gemäß Anspruch 1, bei dem das Modifizieren der Länge des Elements ein Anwenden eines Modifikationsalgorithmus auf das Element aufweist, um den Verschlüsselungsschlüssel zu erzeugen.
  9. Das Verfahren gemäß Anspruch 1, bei dem das Empfangen des Elements ein Empfangen eines Datenschlüssels aufweist, wobei das Modifizieren der Länge des Elements ein Kombinieren des Datenschlüssels mit Adressinformationen aufweist, und wobei die Adressinformationen eine andere Länge haben als der Datenschlüssel, wobei das Verfahren ferner folgenden Schritt aufweist: Modifizieren einer Länge der Adressinformationen; und wobei das Kombinieren des Datenschlüssels mit den Adressinformationen ein Kombinieren des Datenschlüssels mit den modifizierten Adressinformationen aufweist.
  10. Das Verfahren gemäß Anspruch 1, bei dem das Entfernen das Elements ein Entfernen eines Datenschlüssels aufweist, wobei das Modifizieren der Länge des Elements ein Kombinieren des Datenschlüssels mit Adressinformationen aufweist, und wobei die Adressinformationen auf zumindest einem Teil einer physikalischen Adresse oder zumindest einem Teil einer virtuellen Adresse basieren.
  11. Das Verfahren gemäß Anspruch 10, bei dem eine Länge des Datenschlüssels sich von einer Länge der Adressinformationen unterscheidet, wobei das Verfahren ferner folgenden Schritt aufweist: Ändern einer Länge des Datenschlüssels; und wobei das Kombinieren des Datenschlüssels mit den Adressinformationen ein Kombinieren des Datenschlüssels mit der geänderten Länge mit den Adressinformationen aufweist.
  12. Das Verfahren gemäß Anspruch 10, bei dem die Adressinformationen auf dem Anwenden einer Funktion auf zumindest den Teil einer physikalischen Adresse oder zumindest den Teil einer virtuellen Adresse basieren, wobei die Funktion eine Hashfunktion, eine Tabellennachschlagfunktion und eine Multiplikationsfunktion umfasst.
  13. Ein Artikel, der maschinenlesbare Speichermedien aufweist, die Anweisungen speichern, die auf die Ausführung hin bewirken, dass ein System mit einem Prozessor ein Verfahren gemäß einem der Ansprüche 1 bis 12 durchführt.
  14. Ein System, das folgende Merkmale aufweist: zumindest eine Speichervorrichtung (106, 204); und ein Steuerteilsystem (102, 104, 202, 206) zum: Empfangen zumindest eines Datenschlüssels; Erzeugen eines Verschlüsselungsschlüssels basierend auf dem zumindest einen Datenschlüssel, wobei die Erzeugung des Verschlüsselungsschlüssels ein Modifizieren einer Länge eines Elements umfasst, das verwendet wird, um den Verschlüsselungsschlüssel zu bilden; und Verschlüsseln von Daten, die in der zumindest einen Speichervorrichtung gespeichert sind, unter Verwendung des Verschlüsselungsschlüssels.
  15. Das System gemäß Anspruch 14, bei dem das Element eines oder beide des zumindest einen Datenschlüssels und der Adressinformationen aufweist, die mit dem zumindest einen Datenschlüssel zu mischen sind.
DE112010005847T 2010-10-05 2010-10-05 Modifizieren einer Länge eines Elements, um einen Verschlüsselungsschlüssel zu bilden Withdrawn DE112010005847T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2010/051411 WO2012047199A1 (en) 2010-10-05 2010-10-05 Modifying a length of an element to form an encryption key

Publications (1)

Publication Number Publication Date
DE112010005847T5 true DE112010005847T5 (de) 2013-06-20

Family

ID=45927990

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010005847T Withdrawn DE112010005847T5 (de) 2010-10-05 2010-10-05 Modifizieren einer Länge eines Elements, um einen Verschlüsselungsschlüssel zu bilden

Country Status (5)

Country Link
US (1) US20130198528A1 (de)
CN (1) CN103154967A (de)
DE (1) DE112010005847T5 (de)
GB (1) GB2498122A (de)
WO (1) WO2012047199A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103154963A (zh) 2010-10-05 2013-06-12 惠普发展公司,有限责任合伙企业 对地址的加扰和对需存储于存储设备中的写入数据的加密
TWI472237B (zh) * 2012-05-04 2015-02-01 國立清華大學 利用分散金鑰資料進行傳輸之加密系統
US10320562B2 (en) 2016-06-01 2019-06-11 Nxp Usa, Inc. Application specific low-power secure key
CN106936820B (zh) * 2017-03-06 2020-12-25 桂林电子科技大学 数据变长修改方法及其在大数据加密中的应用

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237611A (en) * 1992-07-23 1993-08-17 Crest Industries, Inc. Encryption/decryption apparatus with non-accessible table of keys
EP0966810A2 (de) * 1997-03-10 1999-12-29 Guy L. Fielder Sichere deterministische schlüsselgeneratorvorrichtung und verfahren
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 日本電気株式会社 コンテンツ不正コピー防止方法およびシステム
US7237125B2 (en) * 2000-08-28 2007-06-26 Contentguard Holdings, Inc. Method and apparatus for automatically deploying security components in a content distribution system
US6868407B1 (en) * 2000-11-02 2005-03-15 Pitney Bowes Inc. Postage security device having cryptographic keys with a variable key length
JP2003195758A (ja) * 2001-12-25 2003-07-09 Kenwood Corp データ処理装置、インタフェースボードおよびデータ秘匿方法
JP4199477B2 (ja) * 2002-04-17 2008-12-17 パナソニック株式会社 デジタル双方向通信制御装置およびその方法
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 株式会社日立製作所 暗号処理を行うストレージシステム
JP2006094241A (ja) * 2004-09-24 2006-04-06 Fuji Xerox Co Ltd 暗号化装置、暗号化処理方法及びプログラム、並びに該暗号化装置を用いた情報保護システム
US8090099B2 (en) * 2006-07-24 2012-01-03 National University Corporation Okayama University Computer-readable recording medium recording program and apparatus for encryption/decryption, apparatus for multiplication in extension field
US8213607B2 (en) * 2006-10-18 2012-07-03 Qualcomm Incorporated Method for securely extending key stream to encrypt high-entropy data
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
CN101542968B (zh) * 2007-08-28 2012-12-26 松下电器产业株式会社 密钥终端装置、加密处理用lsi、固有密钥生成方法和内容系统
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 ラピスセミコンダクタ株式会社 プロセッサ装置
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 記憶装置及びデータ書き込み方法
US9369437B2 (en) * 2010-04-01 2016-06-14 Cloudflare, Inc. Internet-based proxy service to modify internet responses

Also Published As

Publication number Publication date
GB201304768D0 (en) 2013-05-01
GB2498122A (en) 2013-07-03
WO2012047199A1 (en) 2012-04-12
US20130198528A1 (en) 2013-08-01
CN103154967A (zh) 2013-06-12

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
US20170046281A1 (en) Address dependent data encryption
US8468365B2 (en) Tweakable encryption mode for memory encryption with protection against replay attacks
US7444480B2 (en) Processor, memory device, computer system, and method for transferring data
DE112009004491T5 (de) System und Verfahren zum sicheren Speichern von Daten in einem elektronischen Gerät
JP7225220B2 (ja) 記憶データ暗号化/復号化装置及び方法
EP3259698B1 (de) Autonom bootendes system mit einem sicherheitsmodul
WO2017129184A1 (de) Verfahren zur mehrschichtig geschützten sicherung von daten insbesondere anmeldedaten und passwörtern
DE102019110327A1 (de) Technologien zum verifizieren von speicherintegrität über mehrere speicherbereiche hinweg
DE102014113300A1 (de) Datenspeicherung im persistenten Speicher
US20130262880A1 (en) Secure memory access controller
US20190384938A1 (en) Storage apparatus and method for address scrambling
US8200964B2 (en) Method and apparatus for accessing an encrypted file system using non-local keys
US20180137062A1 (en) Cryptographic-based initialization of memory content
EP2990953B1 (de) Periodische speicherauffrischung in einem sicheren datenverarbeitungssystem
DE112010005847T5 (de) Modifizieren einer Länge eines Elements, um einen Verschlüsselungsschlüssel zu bilden
DE602004001732T2 (de) Datenverschlüsselung in einem elektronischen Gerät mit mehreren symmetrischen Prozessoren
DE102015201298A1 (de) Verfahren zum kryptographischen Bearbeiten von Daten
CN106100829B (zh) 加密存储的方法及装置
JP6175807B2 (ja) 情報処理装置、プログラム
CN113839773A (zh) 一种luks密钥离线提取方法、终端设备及存储介质
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

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee