DE102014113300A1 - Datenspeicherung im persistenten Speicher - Google Patents

Datenspeicherung im persistenten Speicher Download PDF

Info

Publication number
DE102014113300A1
DE102014113300A1 DE102014113300.5A DE102014113300A DE102014113300A1 DE 102014113300 A1 DE102014113300 A1 DE 102014113300A1 DE 102014113300 A DE102014113300 A DE 102014113300A DE 102014113300 A1 DE102014113300 A1 DE 102014113300A1
Authority
DE
Germany
Prior art keywords
encryption key
event
memory controller
encryption
memory
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.)
Pending
Application number
DE102014113300.5A
Other languages
English (en)
Inventor
Asher M. Altman
Kirk S. Yap
Raj K. Ramanujan
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE102014113300A1 publication Critical patent/DE102014113300A1/de
Pending 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting 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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

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

Abstract

Hierin werden Ausführungsformen, die mit dem Speichern von Daten in einem persistenten Speicher verbundene Systeme, Verfahren und Vorrichtungen umfassen, offengelegt. In den Ausführungsformen kann ein Speicher-Controller konfiguriert werden, um Daten mit einem Verschlüsselungscode zu verschlüsseln, und die verschlüsselten Daten werden im persistenten Speicher gespeichert. Der Speicher-Controller kann des Weiteren konfiguriert werden, um den Verschlüsselungscode als Reaktion auf ein Rücksetzereignis zu ändern bzw. zu vernichten. Andere Ausführungsformen können ebenfalls offengelegt bzw. beansprucht werden.

Description

  • Technisches Gebiet
  • Ausführungsformen der Erfindung betreffen im Allgemeinen den technischen Bereich von Prozessoren. Spezifische Ausführungsformen umfassen Verfahren zur sicheren Verwendung von persistentem (permanentem) Speicher zur Emulation von flüchtigem Speicher.
  • Hintergrund
  • Die in diesem Dokument bereitgestellte Hintergrundbeschreibung dient dem Ziel der allgemeinen Darstellung des Zusammenhangs der Offenlegung. Die Arbeit der gegenwärtig genannten Erfinder in dem Umfang, wie es in diesem Hintergrundabschnitt beschrieben wird sowie Aspekte der Beschreibung, die sich andernfalls nicht als Stand der Technik zum gegenwärtigen Anmeldezeitpunkt qualifizieren, werden, weder ausdrücklich noch stillschweigend, als Stand der Technik im Vergleich mit der gegenwärtigen Offenlegung anerkannt. Falls hierin nicht anders angegeben, stellen die in diesem Abschnitt beschriebenen Ansätze keinen Stand der Technik in Bezug auf die Ansprüche in der gegenwärtigen Offenlegung dar und werden nicht als Stand der Technik durch Einbeziehung in diesen Abschnitt anerkannt.
  • Gegenwärtig können Recheneinheiten eine oder mehrere Teile eines flüchtigen Speichers umfassen, die als dynamischer Schreib-Lesespeiche mit wahlfreiem Zugriff (DRAM) oder eine andere Art von flüchtigem Speicher referenziert werden. Flüchtiger Speicher kann zum Speichern von Daten, die nach dem Auftreten bestimmter Systemereignisse verloren gehen, konfiguriert werden. In vielen Fällen können diese Systemereignisse wie Systemrücksetzereignisse, Systemabschaltungsereignisse oder andere Systemereignisse spannungsbedingt sein.
  • Da die im flüchtigen Speicher gespeicherten Daten nach dem Auftreten eines Systemspannungsereignisses verloren gehen oder geändert werden, ist der flüchtige Speicher gut als Systemspeicher verwendbar. Das heißt, Systeminformationen wie Informationen der Anwendung, wie eines Textverarbeitungs- oder Tabellenkalkulationsprogramms, werden in einem arbeitenden Computersystem im DRAM gespeichert. In Ausführungsformen kann die Verwendung von flüchtigem Speicher als Systemspeicher als verhältnismäßig sicher betrachtet werden, da im flüchtigen Speicher gespeicherte Systeminformationen, die nicht persistent sein müssen, nach dem Auftreten eines Systemspannungsereignisses verloren gehen können (nicht mehr zugänglich).
  • Kurze Beschreibung der Zeichnungen
  • Ausführungsformen werden ohne Weiteres durch die folgende ausführliche Beschreibung in Verbindung mit den begleitenden Zeichnungen verstanden. Um diese Beschreibung zu erleichtern, bezeichnen gleiche Bezugsnummern ähnliche strukturelle Elemente. Ausführungsformen werden exemplarisch und in keiner Weise einschränkend in den Figuren der begleitenden Zeichnungen veranschaulicht.
  • 1 veranschaulicht, in Übereinstimmung mit verschiedenen Ausführungsformen, einen beispielhaften Speicher-Controller.
  • 2 veranschaulicht, in Übereinstimmung mit verschiedenen Ausführungsformen, ein beispielhaftes Verfahren zum Speichern von Daten im persistenten Speicher.
  • 3 veranschaulicht, in Übereinstimmung mit verschiedenen Ausführungsformen, einen beispielhaften Prozess zum Entschlüsseln von im persistenten Speicher gespeicherten Daten.
  • 4 veranschaulicht, in Übereinstimmung mit verschiedenen Ausführungsformen, ein beispielhaftes System, das zur Ausführung der hierin beschriebenen Verfahren konfiguriert ist.
  • Ausführliche Beschreibung
  • In der folgenden ausführlichen Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil hiervon bilden, in denen gleiche Bezugsnummern ähnliche Teile bezeichnen und in denen durch Veranschaulichung spezifische Ausführungsformen, durch die Erfindung realisiert werden können, gezeigt werden. Es ist selbstverständlich, dass andere Ausführungsformen verwendet werden können und andere strukturelle oder logische Änderungen vorgenommen werden können, ohne vom Wirkungsbereich der vorliegenden Offenbarung abzuweichen. Die folgende ausführliche Beschreibung ist deshalb in keinster Weise einschränkend zu sehen, und der Wirkungsbereich der Ausführungsformen wird durch die angefügten Ansprüche und deren Äquivalente definiert.
  • Die mit der sicheren Speicherung von Daten im persistenten Speicher verbundenen Vorrichtungen, Verfahren und Speichermedien werden hierin beschrieben. Die Verwendung von persistentem Speicher zur Speicherung von Daten, die normalerweise im flüchtigen Speicher gespeichert werden, stellt größere Speicherkapazitäten als bei flüchtigem Speicher zu verminderten Kosten zur Verfügung. In einigen Fällen behält der persistente Speicher jedoch Daten in Situationen bei, in denen die Daten andernfalls verloren oder zerstört würden, wenn diese im flüchtigen Speicher abgelegt wären.
  • In den Ausführungsformen kann ein Speicher-Controller konfiguriert werden, um persistenten Speicher flüchtigen Speicher emulieren zu lassen, indem Daten sicher gespeichert werden, die nach dem Auftreten eines Systemrücksetzereignisses unzugänglich werden können. Speziell erzeugt der Speicher-Controller einen Verschlüsselungscode und verschlüsselt Daten mit dem Verschlüsselungscode. Die verschlüsselten Daten werden dann im persistenten Speicher gespeichert, während der Verschlüsselungscode entweder im persistenten oder flüchtigen Speicher abgelegt wird. In einigen Ausführungsformen kann der Speicher-Controller konfiguriert werden, um mittels des Verschlüsselungscodes Daten zu verschlüsseln, die bereits im persistenten Speicher gespeichert sind. Wenn das System einem Rücksetzereignis wie eine Systemabschaltung, einen Wiederanlauf oder einen Spannungsverlust ausgesetzt ist, kann ein Verschlüsselungscode bzw. ein vom Verschlüsselungscode abgeleiteter Entschlüsselungscode geändert oder zerstört werden. Infolgedessen ist es nicht möglich, selbst wenn die verschlüsselten Daten auszulesen sind oder im persistenten Speicher zugänglich sind, die Daten zu entschlüsseln, da der Verschlüsselungs/Entschlüsselungscode nicht verfügbar ist. Die Datenspeicherung im persistenten Speicher erfährt deshalb die Sicherheitsvorteile der Speicherung im flüchtigen Speicher bei gleichzeitiger Nutzung der Vorteile des persistenten Speichers wie erhöhte Speicherkapazitäten bei niedrigeren Kosten.
  • Verschiedene Arbeitsvorgänge werden wiederum als mehrere diskrete Aktionen oder Arbeitsvorgänge auf eine Weise beschrieben, die sehr hilfreich beim Verständnis des beanspruchten Gegenstandes sind. Jedoch soll die Reihenfolge der Beschreibung nicht so ausgelegt werden, dass diese Arbeitsvorgänge unbedingt von dieser Reihenfolge abhängig sind. Es wird betont, dass diese Vorgänge nicht in der Reihenfolge der Darstellung ausgeführt werden müssen. Die beschriebenen Vorgänge können in einer anderen Reihenfolge als in der beschriebenen Ausführungsform durchgeführt werden. Verschiedene zusätzliche Vorgänge können durchgeführt werden bzw. beschriebene Vorgänge können in zusätzlichen Ausführungsformen entfallen.
  • Für den Zweck der vorliegenden Offenlegung bedeutet der Ausdruck „A und/oder B” und „A oder B” (A), (B) oder (A und B). Für die Zwecke der vorliegenden Offenbarung bedeutet der Ausdruck „A, B und/oder C” (A), (B), (C), (A und B), (A und C), (B und C) oder (A, B und C).
  • Die Beschreibung kann die Ausdrücke „bei einer Ausführungsform” oder „bei Ausführungsformen” verwenden, die sich auf eine oder mehrere der gleichen oder auf unterschiedliche Ausführungsformen beziehen können. Des Weiteren sind die Begriffe „umfassend”, „einschließlich” „aufweisen” und dergleichen, wie in Bezug auf Ausführungsformen der vorliegenden Offenbarung verwendet, synonym.
  • Wie hier verwendet, kann sich der Begriff „Modul” auf eine anwendungsspezifische integrierte Schaltung (ASIC), eine elektronische Schaltung, einen Prozessor (gemeinsam benutzt, fest zugeordnet oder Gruppe) und/oder Speicher (gemeinsam benutzt, fest zugeordnet oder Gruppe) verweisen, der/die ein oder mehrere Software- oder Firmwareprogramme ausführen, eine kombinatorische Logikschaltung und/oder andere geeignete Komponenten verweisen, welche die beschriebene Funktionalität bereitstellen. Wie hierin verwendet, kann sich das „Computer-implementierte Verfahren” auf jedes mögliche Verfahren beziehen, das von einem oder mehreren Prozessoren, einem Computersystem mit einem oder mehreren Prozessoren, einem tragbaren Gerät wie ein Smartphone (das über einen oder mehrere Prozessoren verfügt), einem Tablet, einem Laptop-Computer, einer Set-Top-Box, einer Spielkonsole, und so weiter ausgeführt wird.
  • 1 zeigt ein Beispiel eines Speicher-Controllers 100, der mit einem Prozessor 102 und einem persistenten Speicher 115 verbunden sein kann. In einigen Ausführungsformen wird der persistente Speicher 115 als ein Permanentspeicher bezeichnet, wobei dieser persistente Speicher z. B. ein ferroelektrischer Direktzugriffsspeicher (FeTRAM), ein Nanodraht-basierter Permanentspeicher, ein dreidimensionaler (3D) Cross-Point-Speicher wie ein Phase Change-Speicher (PCM), ein byteadressierbarer Cross-Point-Speicher, Speicher unter Einsatz der Memristor-Technologie, magnetoresistiver Direktzugriffsspeicher (MRAM), Spin Transfer Torque(STT)-MRAM oder eine andere Art von Permanentspeicher als Systemspeicher sein kann. Der Speicher-Controller 100 kann einen Zufallszahlengenerator 105 einschließen. In einigen Ausführungsformen ist der Zufallszahlengenerator 105 ein digitaler Zufallszahlengenerator oder irgendeine Art von Hardware-, Software- oder Firmware-Zufallszahlengenerator. In einigen Ausführungsformen kann der Zufallszahlengenerator 105 konfiguriert werden, um einen Advanced Encryption Standard(AES)-Schlüssel wie ein 256-Bit-AES-Schlüsselpaar zu erzeugen, während in anderen Ausführungsformen der Zufallszahlengenerator 105 konfiguriert werden kann, um eine Zufalls- oder Pseudozufallszahl zu erzeugen. In einigen Ausführungsformen ist der Zufallszahlengenerator 105 ein Pseudozufallszahlgenerator (Pseudorandom Number Generator – PRNG) wie ein Wichmann-Hill-PRNG, ein lineares rückgekoppeltes Schieberegister, ein Mersenne-Twister, eine pseudozufällige Naor-Reingold-Funktion oder irgendein anderer PRNG. In einigen Ausführungsformen kann der Zufallszahlengenerator 105 ein Hardware-Zufallszahlengenerator sein, der auch als wahrer Zufallszahlengenerator (TRNG) bezeichnet wird. Ein TRNG kann ein Araneus Alea-TRNG, ein Entropieschlüssel-TRNG oder einer von einer Anzahl verschiedener Chipsätze sein, der zur Erzeugung von Zufallszahlen konfiguriert ist. In anderen Ausführungsformen schließt der Zufallszahlengenerator 105 eine oder mehrere Verschlüsselungsalgorithmen wie Blockchiffrierungen oder Stromchiffrierungen ein. Der Zufallszahlengenerator 105 kann andere Schlüssel-, Zufallszahlen- oder Pseudozufallszahlgenerationstechniken zusätzlich oder alternativ verwenden.
  • Der Zufallszahlengenerator 105 kann mit einer Verschlüsselung/Entschlüsselung 110 verbunden werden. Die Verschlüsselung/Entschlüsselung 110 kann ein Xor-Verschlüsselungs-Xor-basierter Tweaked-Codebook-Modus mit Ciphertext Stealing-AES(XTS-AES)-Verschlüsselung/Entschlüsselung, die konfiguriert ist, um Daten mittels eines Verschlüsselungscodes wie ein AES-Schlüssel oder 256-Bit-AES-Schlüsselpaar, der/das durch den Zufallszahlengenerator 105 erzeugt wird, zu verschlüsseln oder entschlüsseln. Alternativ kann die Verschlüsselung/Entschlüsselung 110 konfiguriert werden, um eine Zufalls- oder Pseudozufallszahl vom Zufallszahlengenerator 105 zu empfangen und um ein Schlüssel oder Schlüsselpaar zu erzeugen, wie in Bezug auf den Zufallszahlengenerator 105 zuvor beschrieben wurde. In anderen Ausführungsformen verwendet die Verschlüsselung/Entschlüsselung 110 eine andere Art von Verschlüsselungs/Entschlüsselungsalgorithmus wie den AES Liskov Rivest- und Wagner(LRW)-Modus.
  • Die Verschlüsselung/Entschlüsselung 110 kann des Weiteren mit einem persistenten Speicher 115 über eine oder mehrere Kommunikationsleitungen 116 verbunden werden. Die eine oder mehrere Kommunikationsleitungen 116 können zum Beispiel als ein „Speicherbus” bezeichnet werden. Wie ausführlicher nachfolgend beschrieben, können die Verschlüsselung/Entschlüsselung 110 oder ein anderes Element des Speicher-Controllers 100 konfiguriert werden, um Daten zu verschlüsseln und die verschlüsselten Daten an den persistenten Speicher 115 zur Speicherung auszugeben. In anderen Ausführungsformen kann die Verschlüsselung/Entschlüsselung 110 zur Verschlüsselung von Daten, die bereits im persistenten Speicher 115 gespeichert sind, konfiguriert werden. In einigen Ausführungsformen kann die Verschlüsselung/Entschlüsselung 110 des Weiteren zum Empfang der verschlüsselten Daten vom persistenten Speicher 115 und zur Entschlüsselung von diesen mittels des Verschlüsselungscodes konfiguriert werden oder alternativ können die verschlüsselten Daten vom persistenten Speicher 115 entschlüsselt werden, ohne die verschlüsselten Daten zuerst aus dem persistenten Speicher 115 zurückzuholen.
  • In den Ausführungsformen kann der Speicher-Controller 100 des Weiteren eine Sicherheitsmanagement-Logik 120 bzw. eine Speichermanagement-Logik 125 umfassen. Im Allgemeinen kann die Sicherheitsmanagement-Logik 120 mit dem Zufallszahlengenerator 105 verbunden sein und konfiguriert werden, um den Zufallszahlengenerator 105 anzuweisen, eine oder mehrere Zufallszahlen oder Verschlüsselungscode zu erzeugen und auszugeben. Zum Beispiel kann die Sicherheitsmanagement-Logik 120 konfiguriert werden, um „Seed”-Werte oder Variablen für den Zufallszahlengenerator 105 bereitzustellen.
  • Die Speichermanagement-Logik 125 kann mit mindestens der Verschlüsselung/Entschlüsselung 110 sowie mit einer oder mehreren externen Kommunikationsleitungen 106 verbunden werden. Die eine oder mehreren externe(n) Kommunikationsleitung(en) 106 kann/können eine Kommunikationsleitung oder ein Bus wie ein Peripheral Component Interconnect(PCI)- oder PCI express-Bus sein, die/der zur kommunikativen Verbindung des Speicher-Controllers 110 mit dem Prozessor 102 konfiguriert wird. Die Speichermanagement-Logik 125 kann zum Empfang der vom Prozessor 102 über die externe Kommunikationsleitungen 106 in den persistenten Speicher 115 zu schreibenden Daten und zu deren Bereitstellung für die Verschlüsselung/Entschlüsselung 110 konfiguriert werden. In den Ausführungsformen können die Daten zusammen mit Verschlüsselungsanweisungen, wie die Art der durchzuführenden Verschlüsselung, vom Prozessor 102 bereitgestellt werden. Des Weiteren kann die Speichermanagement-Logik 125 konfiguriert werden, um die Informationen über die externen Kommunikationsleitungen 106 an den Prozessor 102 zu exportieren. Zum Beispiel kann die Speichermanagement-Logik 125 den Verschlüsselungscode, der durch die Verschlüsselung/Entschlüsselung 110 von der Verschlüsselung/Entschlüsselung 110 verwendet wird, erhalten und diesen dann über die externen Kommunikationsleitungen 106 an den Prozessor 102 exportieren. Zusätzlich oder alternativ kann die Speichermanagement-Logik 125 die entschlüsselte Daten von der Verschlüsselung/Entschlüsselung 110 erhalten und diese dann über die externen Kommunikationsleitungen 106 an den Prozessor 102 exportieren.
  • Zusätzlich oder alternativ, wie vorstehend beschrieben, kann die Verschlüsselung/Entschlüsselung 110 konfiguriert werden, um über die Kommunikationsleitungen 116 auf die verschlüsselten Daten im persistenten Speicher 115 zuzugreifen oder diese auszulesen und diese mittels des Verschlüsselungscodes, der während des Verschlüsselungsvorgangs eingesetzt wird, zu entschlüsseln (der Entschlüsselungsvorgang ist das Gegenteil des Verschlüsselungsvorgangs). In einigen Ausführungsformen kann die Verschlüsselung/Entschlüsselung 110 auf die im persistenten Speicher 115 gespeicherten verschlüsselten Daten zugreifen und diese mittels des Verschlüsselungscodes entschlüsseln, damit nur die entschlüsselten Daten über die Kommunikationsleitungen 216 an den Speicher-Controller 100 übertragen werden. In anderen Ausführungsformen können einige oder alle verschlüsselten Daten über die Kommunikationsleitungen 116 vom persistenten Speicher an die Verschlüsselung/Entschlüsselung 110 übermittelt werden, wo die verschlüsselten Daten durch die Verschlüsselung/Entschlüsselung 110 mittels des Verschlüsselungscodes entschlüsselt werden. Als ein Beispiel kann der verwendete Verschlüsselungs-/Entschlüsselungscode oder eine Zufalls- oder Pseudozufallszahl zur Ableitung des Verschlüsselungs/Entschlüsselungscodes vom Zufallszahlengenerator 105 zur Verfügung gestellt werden. Alternativ kann der Verschlüsselungs-/Entschlüsselungscode durch die Speichermanagement-Logik 125 über die externen Kommunikationsleitungen 106 erhalten werden, zum Beispiel von einem flüchtigen Speicher, der mit dem Speicher-Controller 100 über die externen Kommunikationsleitungen 106 verbunden ist und diesen Verschlüsselungs/Entschlüsselungscode zur Verschlüsselung/Entschlüsselung durch die Verschlüsselung/Entschlüsselung 110 bereitstellen. Nachdem der Verschlüsselung/Entschlüsselung 110 die verschlüsselten Daten mittels des Verschlüsselungs/Entschlüsselungscodes entschlüsselt hat, kann die Verschlüsselung/Entschlüsselung 110 die Daten an die Speichermanagement-Logik 125 ausgeben, die diese dann über eine oder mehrere Kommunikationsleitungen 106 an den Prozessor 102 exportiert. In den Ausführungsformen kann die Verschlüsselung/Entschlüsselung 110 konfiguriert werden, um den/die Verschlüsselungs-/Entschlüsselungscode(s) bei einem Rücksetzen zu ändern, zu vernichten oder andernfalls zu verlieren. In den Ausführungsformen leitet die Verschlüsselung/Entschlüsselung 110 ergänzend den Entschlüsselungscode vom Verschlüsselungscode, der vom Zufallszahlengenerator 105 bereitgestellt wird, ab oder leitet die Verschlüsselungs- und Entschlüsselungscodes ergänzend von den von einem Zufallszahlengenerator 105 bereitgestellten Zufallszahlen ab, wie vorstehend besprochen.
  • In den Ausführungsformen können die Sicherheitsmanagement-Logik 120, der Zufallszahlengenerator 105, die Verschlüsselung/Entschlüsselung 110 und die Speichermanagement-Logik 125 alle im Speicher-Controller 100 als Architektur eines Einchipsystems (SoC) implementiert werden. In anderen Ausführungsformen können eine oder mehrere der Sicherheitsmanagement-Logiken 120, der Zufallszahlengenerator 105, die Verschlüsselung/Entschlüsselung 110 und die Speichermanagement-Logik 125 getrennt von, kommunikativ aber verbunden mit dem Speicher-Controller 100 sein. In einigen Ausführungsformen kann/können ein oder mehrere Elemente wie die Speichermanagement-Logik 125 und Sicherheitsmanagement-Logik 120 oder die Speichermanagement-Logik 125 und die Verschlüsselung/Entschlüsselung 110 kombiniert werden. Alternativ können in einigen Ausführungsformen die Verschlüsselung/Entschlüsselung 110 in eine separate Verschlüsselung und in eine separate Entschlüsselung getrennt werden. Wie vorstehend bemerkt kann in einigen Ausführungsformen eine oder mehrere der Sicherheitsmanagement-Logiken 120, der Zufallszahlengenerator 105, die Verschlüsselung/Entschlüsselung 110 und die Speichermanagement-Logik 125 in Form von Software, Hardware bzw. Firmware implementiert werden.
  • 2 stellt einen beispielhaften Prozess dar, der von einem Speicher-Controller wie dem Speicher-Controller 100 verwendet werden kann, um die Ausführungsformen der gegenwärtigen Offenlegung zu verwirklichen. Anfänglich empfängt der Speicher-Controller Daten bei 200. Zum Beispiel können Daten durch den Speicher-Controller über die Kommunikationsleitungen 106 von einem Prozessor 102 empfangen werden, wie vorstehend beschrieben. Speziell empfängt die Speichermanagement-Logik wie die Speichermanagement-Logik 125 Daten vom Speicher-Controller 100 über die externen Kommunikationsleitungen 106.
  • Als Nächstes verschlüsselt der Speicher-Controller die Daten mittels eines Verschlüsselungscodes bei 205. Zum Beispiel kann eine Verschlüsselung/Entschlüsselung des Speicher-Controllers wie die Verschlüsselung/Entschlüsselung 110 von Speicher-Controller 100 einen Verschlüsselungscode von einem Zufallszahlengenerator wie dem Zufallszahlengenerator 210505 empfangen (oder leitet diesen andernfalls ab). Die Verschlüsselung/Entschlüsselung kann ebenfalls Daten von der Speichermanagement-Logik empfangen, damit die Verschlüsselung/Entschlüsselung diese verschlüsseln kann. Nach der Verschlüsselung der Daten speichert der Speicher-Controller die verschlüsselten Daten im persistenten Speicher wie dem persistenten Speicher 115 bei 210. Obgleich nicht gezeigt, können in anderen Ausführungsformen Daten im persistenten Speicher gespeichert und dann die gespeicherten Daten mittels des Verschlüsselungscodes verschlüsselt werden.
  • Der Speicher-Controller kann dann den Verschlüsselungscode bei 215 speichern. In einigen Ausführungsformen kann der Verschlüsselungscode im persistenten Speicher gespeichert werden. Zum Beispiel kann der Verschlüsselungscode in einem oder mehreren nicht aufeinanderfolgenden Registern des persistenten Speichers wie dem persistenten Speicher 115 gespeichert werden. In anderen Ausführungsformen kann der Verschlüsselungscode vom Speicher-Controller über eine Kommunikationsleitung an einen dynamischen Schreib-Lesespeiche mit wahlfreiem Zugriff (DRAM) oder irgendeinen anderen flüchtigen Speicher übertragen werden.
  • Der Speicher-Controller kann dann das System auf ein Rücksetz-Systemereignis bei 220 überwachen. Ein Systemrücksetzereignis kann im Allgemeinen als ein Ereignis betrachtet werden, bei dem der Inhalt des flüchtigen Speichers normalerweise verloren gehen würde. Ein Beispiel für ein Systemrücksetzereignis ist ein Spannungsausfall des Systems, eine Systemabschaltung, einem Systemwiederanlauf oder irgendein anderes Ereignis. In einigen Ausführungsformen kann das Systemrücksetzereignis nur mit Teilen eines Systems zusammenhängen, zum Beispiel mit bestimmten Unterbereichen des Speichers bzw. den Verarbeitungselementen des Systems. Das Systemrücksetzereignis kann durch ein Plattformrücksetzsignal signalisiert werden, das vom Speicher-Controller von einem Prozessor wie dem Prozess 102 über die Kommunikationsleitungen wie die Kommunikationsleitungen 106 empfangen wird. Das Systemrücksetzereignis kann zusätzlich oder alternativ durch eine Übermittlung eines Plattform-Spannungsereignisses signalisiert werden, das vom Prozessor über die Kommunikationsleitungen oder nach einer anderen Art von Übermittlung oder Signal durch den Speicher-Controller empfangen wird. In einigen Ausführungsformen ist das Systemrücksetzereignis eine Ereignisübermittlung, die durch den Speicher-Controller empfangen wird. Alternativ ist das Systemrücksetzereignis ein Signal wie ein Rücksetzstift oder irgendein anderer Ereignisstift oder ein Spannungsausfall an einem oder mehreren Spannungseingängen des Speicher-Controllers.
  • Wird ein Systemrücksetzereignis nicht bei 220 ermittelt, dann kann der Speicher-Controller die Überwachung bezüglich des Systemrücksetzereignisses fortsetzen. Wird jedoch ein Systemrücksetzereignis ermittelt, dann kann der Speicher-Controller den Verschlüsselungscode bei 225 ändern bzw. vernichten. Wird zum Beispiel der Verschlüsselungscode im persistenten Speicher bei 215 gespeichert, dann kann der Speicher-Controller den Verschlüsselungscode im persistenten Speicher auf null setzen. Die Nullsetzung umfasst das ein oder mehrmalige Überschreiben der Speicherstelle des Verschlüsselungscodes mit Werten wie Nullen, somit kann der Verschlüsselungscode nicht vom persistenten Speicher zurückgelesen werden. In anderen Ausführungsformen werden die Zeiger zur Speicherstelle des Verschlüsselungscodes gelöscht, oder andere Werte wie Einsen oder ein Muster von Nullen und Einsen werden ein oder mehrmals auf die Speicherstelle des Verschlüsselungscodes geschrieben. In den Ausführungsformen, in denen der Verschlüsselungscode im flüchtigen Speicher gespeichert wird, führt das Rücksetzereignis dazu, dass der Verschlüsselungscode im flüchtigen Speicher verloren geht. In einigen Ausführungsformen kann der Verschlüsselungscode dennoch mit Nullen überschrieben werden, wenn dieser im flüchtigen Speicher abgelegt ist. Der Prozess kann dann bei 230 beendet werden.
  • Am Ende der Änderung bzw. Zerstörung des Verschlüsselungscodes bei 225 ist es schwierig oder unmöglich, den Verschlüsselungscode aus dem Speicher, in dem der Verschlüsselungscode gespeichert wurde, zurückzulesen. Daher kann es, selbst wenn die verschlüsselten Daten im persistenten Speicher gespeichert werden, schwierig oder unmöglich sein, die Daten zu entschlüsseln. Infolgedessen können die Daten als sicher betrachtet werden, und der persistente Speicher emuliert die Sicherheitsebene der Speicherung im flüchtigen Speicher.
  • 3 zeigt einen Prozess zum Entschlüsseln von Daten, die mittels des Prozesses von 2 verschlüsselt wurden. Der Prozess kann von einem Speicher-Controller wie Speicher-Controller 100 ausgeführt werden. Zuerst wird ein Verschlüsselungscode bei 300 identifiziert. In den Ausführungsformen kann der Verschlüsselungscode durch eine Speichermanagement-Logik wie Speichermanagement-Logik 125 bzw. eine Verschlüsselung/Entschlüsselung wie die Verschlüsselung/Entschlüsselung 110 identifiziert werden. Wie vorstehend beschrieben, kann in einigen Ausführungsformen der Verschlüsselungscode im persistenten Speicher wie im persistenten Speicher 115 gespeichert werden. In anderen Ausführungsformen kann der Verschlüsselungscode im flüchtigen Speicher gespeichert werden, der kommunikativ mit dem Speicher-Controller verbunden ist.
  • Der Speicher-Controller ermittelt dann, ob der Verschlüsselungscode bei 305 vorhanden ist. In einigen Ausführungsformen ist der Verschlüsselungscode nicht vorhanden. Zum Beispiel kann, wie vorstehend mit Bezug auf 2 beschrieben wird, bei einem Auftreten eines System-Rücksetzereignisses der Verschlüsselungscode mit Nullen überschrieben, geändert oder andernfalls gelöscht worden sein. Deshalb ist der Verschlüsselungscode nicht identifizierbar, und der Prozess endet bei 320. Andernfalls können, falls der Verschlüsselungscode vorhanden ist, die verschlüsselten Daten durch den Speicher-Controller bei 310 im persistenten Speicher identifiziert bzw. zurückgelesen werden. Speziell werden die verschlüsselten Daten durch eine oder beide der Speichermanagement-Logiken 125 bzw. die Verschlüsselung/Entschlüsselung 110 des Speicher-Controllers 100 zurückgelesen. Die verschlüsselten Daten können dann durch die Verschlüsselung/Entschlüsselung 110 mittels des identifizierten Verschlüsselungscodes entschlüsselt werden, wobei dann ein umgekehrter Entschlüsselungsvorgang vom Entschlüsselungsvorgang bei 315 stattfindet. In einigen Ausführungsformen können die entschlüsselten Daten dann vom Speicher-Controller ausgegeben werden. Der Prozess beendet dann bei 320.
  • In den Ausführungsformen, wie vorstehend beschrieben, kann der Entschlüsselungscode vom Verschlüsselungscode oder von derselben Zufallszahl abgeleitet werden, von der der Verschlüsselungscode abgeleitet wurde. Für diese Ausführungsformen kann der Prozess von 3 die Vorgänge umfassen, die den Vorgängen bei 215 und 220 ähneln, um den Entschlüsselungscode zu vernichten oder andernfalls zu verlieren.
  • 4 veranschaulicht eine beispielhafte Recheneinheit 400, in dem Systeme wie der vorstehend beschriebene Speicher-Controller 100 bzw. ein persistenter Speicher 115 in Übereinstimmung mit verschiedenen Ausführungsformen integriert sind. Die Recheneinheit 400 umfasst ebenfalls eine Anzahl von Komponenten, einen oder mehrere der Prozessoren 404 und mindestens ein Kommunikationschip 406. Wie vorstehend beschrieben, kann der Speicher-Controller 100 mit einem persistenten Speicher 115 verbunden sein, der zur Emulation eines flüchtigen Speicher konfiguriert ist, indem man verschlüsselte Daten im persistenten Speicher 115 speichert. Weiterhin kann der Speicher-Controller 100 konfiguriert werden, den zur Verschlüsselung oder Entschlüsselung der Daten verwendeten Verschlüsselungs- bzw. Entschlüsselungscode zu vernichten bzw. andernfalls zu verlieren.
  • In den verschiedenen Ausführungsformen kann der einzelne oder die mehreren Prozessoren 404 über jeweils einen oder mehrere Prozessorkerne verfügen. In den verschiedenen Ausführungsformen kann mindestens ein Kommunikationschip 406 mit dem einen oder mehreren Prozessoren 404 physikalisch und elektrisch verbunden sein. In weiteren Implementierungen kann der Kommunikationschip 406 Teil eines oder mehrerer Prozessoren 404 sein. In den verschiedenen Ausführungsformen umfasst die Recheneinheit 400 die Leiterplatte (PCB) 402. Für diese Ausführungsformen können der einzelne oder die mehreren Prozessoren 404 und der Kommunikationschip 406 darauf angeordnet sein. In alternativen Ausführungsformen können die verschiedenen Komponenten ohne die Verwendung von PCB 402 verbunden sein.
  • Abhängig von ihren Anwendungen kann die Recheneinheit 400 andere Komponenten, die mit der Leiterplatte 402 physikalisch und elektrisch gekoppelt sein können oder nicht, umfassen. Diese anderen Komponenten schließen ein, sind aber nicht beschränkt auf Speicher-Controller 100, Permanentspeicher wie nur Nur-Lese-Speicher 410 (ROM), persistenten Speicher 115, einen E/A-Controller 414, einen Digital-Signalprozessor (nicht dargestellt), einen Krypto-Prozessor (nicht dargestellt), einen Grafikprozessor 416, eine oder mehrere Antennen 418, ein Display (nicht dargestellt), ein Touchscreen-Display 420, einen Touchscreen-Controller 422, eine Batterie 424, einen Audiocodec (nicht dargestellt), einen Videocodec (nicht dargestellt), ein globales Positionsbestimmungssystem(GPS)-Gerät 428, einen Kompass 430, einen Beschleunigungsmesser (nicht dargestellt), ein Gyroskop (nicht dargestellt), ein Lautsprecher 432, eine Kamera 434 und ein Massenspeichergerät (wie ein Festplattenlaufwerk, ein SSD-Laufwerk, ein Compact-Disc (CD) (nicht dargestellt), eine Digital Versatile Disc (DVD) (nicht dargestellt) und so weiter). In den verschiedenen Ausführungsformen kann der Prozessor 404 zusammen mit anderen Komponenten zur Bildung eines Systems auf einem Chip (SoC) auf dem gleichen Chip integriert sein. Wie vorstehend beschrieben, ist der persistente Speicher 115 ein FeTRAM, ein Nanodraht-basierter Permanentspeicher, ein dreidimensionaler (3D) Cross-Point-Speicher wie ein Phase Change-Speicher (PCM), ein byteadressierbarer Cross-Point-Speicher, Speicher unter Einsatz der Memristor-Technologie, MRAM, STT-MRAM oder eine andere Art von Permanentspeicher, der als Systemspeicher dienen sein kann.
  • In den verschiedenen Ausführungsformen kann die Recheneinheit 400 zusätzlich zum persistenten Speicher 115 persistenten oder Permanentspeicher, z. B. Flash-Speicher (nicht dargestellt), umfassen. In einigen Ausführungsformen kann/können der einzelne oder die mehreren Prozessor(en) 404 bzw. der Flash-Speicher die zugehörige Firmware (nicht dargestellt) umfassen, die die Programmieranweisungen speichern, die konfiguriert wurden, um der Recheneinheit 400 zu ermöglichen, als Reaktion auf die Ausführung der Programmieranweisungen durch einen oder mehrere Prozessoren 404 alle oder gewählte Aspekte der Blöcke, die oben in Bezug auf die 2 oder 3 beschrieben sind, auszuführen. In den verschiedenen Ausführungsformen können diese Aspekte mittels zusätzlicher oder alternativer Hardware, die getrennt von dem einzelnen oder den mehreren Prozessor(en) 404 oder dem Flash-Speicher sind, implementiert sein.
  • Der Kommunikationschip 406 ermöglicht eine drahtlose und/oder verdrahtete Kommunikation zur Datenübertragung von und zur Recheneinheit 400. Der Begriff „drahtlos” und seine Ableitungen kann verwendet sein, um Schaltungen, Geräte, Systeme, Verfahren, Techniken, Kommunikationskanäle usw. zu beschreiben, die Daten unter Verwendung von modulierter elektromagnetischer Strahlung durch ein nicht festes Medium kommunizieren können. Der Begriff impliziert nicht, dass die verbundenen Geräte nicht irgendwelche Drähte enthalten, obwohl sie in einigen Ausführungsformen keine enthalten könnten. Der Kommunikationschip 506 kann jede beliebige Anzahl von drahtlosen Normen oder Protokolle implementieren, ist aber nicht beschränkt auf IEEE 802.20, General Packet Radio Service (GPRS), Evolution Data Optimized (Ev-DO), Evolved High Speed Packet Access (HSPA+), Evolved High Speed Downlink Packet Access (HSDPA+), Evolved High Speed Uplink Packet Access (HSUPA+), Enhanced Data rates for GSM Evolution (EDGE), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Digital Enhanced Cordless Telecommunications (DECT), Bluetooth, Ableitungen hiervon sowie alle anderen drahtlosen Protokolle, die als 3G, 4G, 5G und darüber hinaus bezeichnet werden. Die Recheneinheit 400 kann eine Vielzahl von Kommunikationschips 406 enthalten. Zum Beispiel kann ein erster Kommunikationschip 406 für die drahtlose Kommunikation über kürzere Strecken wie WLAN und Bluetooth und ein zweiter Kommunikationschip 406 zur drahtlosen Kommunikation über größere Entfernungen wie GPS, EDGE, GPRS, CDMA, WiMAX, LTE, Ev-DO und andere vorgesehen sein.
  • In verschiedenen Implementierungen kann die Recheneinheit 400 ein Laptop, ein Netbook, ein Notebook, ein Ultrabook, ein Smartphone, ein Tablet, ein Personal Digital Assistant (PDA), ein Ultra Mobile PC, ein Mobiltelefon, ein Desktop-Computer, ein Server, ein Drucker, ein Scanner, ein Monitor, eine Set-Top-Box, ein Unterhaltungssteuergerät (wie z. B. eine Spielkonsole), eine Digitalkamera, ein portables Musikwiedergabegerät oder ein digitaler Videorekorder sein. In weiteren Implementierungen kann die Recheneinheit 400 jedes andere elektronische, Daten verarbeitende Gerät sein.
  • In den Ausführungsformen kann ein erstes Beispiel der gegenwärtigen Offenlegung eine Vorrichtung zur Änderung eines Verschlüsselungscodes umfassen, wobei die Vorrichtung Folgendes umfasst: einen Speicher-Controller, der konfiguriert ist, um als Reaktion auf ein Rücksetzereignis einen Verschlüsselungscode zu ändern oder zu vernichten. Dieser wird verwendet, um Daten vor Speicherung der Daten in einem persistenten Speicher zu verschlüsseln, wobei der persistente Speicher vom Speicher-Controller gesteuert wird.
  • Beispiel 2 kann die Vorrichtung von Beispiel 1 umfassen und besteht des Weiteren aus dem persistenten Speicher, verbunden mit dem Speicher-Controller.
  • Beispiel 3 kann die Vorrichtung von Beispiel 1 umfassen und besteht des Weiteren aus einem Massenspeicher, der zur Speicherung des Verschlüsselungscodes konfiguriert ist.
  • Beispiel 4 kann die Vorrichtung von Beispiel 3 umfassen, wobei der Massenspeicher einen mit dem Speicher-Controller verbundenen flüchtigen Speicher enthält.
  • Beispiel 5 kann die Vorrichtung von Beispiel 3 umfassen, wobei der Massenspeicher eine Vielzahl von nicht aufeinanderfolgenden Registern des persistenten Speichers umfasst und der Verschlüsselungscode in einem oder mehreren der Vielzahl der nicht aufeinanderfolgenden Register gespeichert wird.
  • Beispiel 6 kann die Vorrichtung aus einem der Beispiele 1–5 umfassen, wobei der Speicher-Controller konfiguriert ist, durch auf Nullsetzung des Verschlüsselungscodes den Verschlüsselungscode zu vernichten.
  • Beispiel 7 kann die Vorrichtung aus einem der Beispiele 1–5 umfassen, wobei der Speicher-Controller des Weiteren konfiguriert ist, um einen den Verschlüsselungscode ergänzenden Entschlüsselungscode als Reaktion auf das Rücksetzereignis zu ändern oder zu vernichten.
  • Beispiel 8 kann die Vorrichtung aus einem der Beispiele 1–5 umfassen, wobei das Rücksetzereignis ein Spannungsausfallereignis, ein Abschaltereignis oder ein Wiederanlaufereignis umfasst.
  • Beispiel 9 kann ein Verfahren zur Speicherung verschlüsselter Daten umfassen, wobei das Verfahren Folgendes umfasst: Verschlüsselung durch einen Speicher-Controller, die Daten basieren mindestens zum Teil auf einem Verschlüsselungscode zur Erstellung der verschlüsselten Daten, Speicherung der verschlüsselten Daten durch den Speicher-Controller in einem Permanentspeicher, Empfang einer Signalisierung eines Rücksetzereignisses durch den Speicher-Controller und Zerstörung des Verschlüsselungscodes durch den Speicher-Controller als Reaktion auf den Empfang der Signalisierung des Rücksetzereignisses.
  • Beispiel 10 kann das Verfahren von Beispiel 9 umfassen, wobei das Vernichten das Überschreiben des Verschlüsselungscodes umfasst.
  • Beispiel 11 kann das Verfahren von Beispiel 9 umfassen, wobei das Vernichten durch Überschreiben des Verschlüsselungscodes mit Nullen umfasst.
  • Beispiel 12 kann das Verfahren aus einem der Beispiele 9–11 umfassen, wobei das Vernichten des Weiteren das Vernichten eines Entschlüsselungscodes umfasst, ergänzend zum Verschlüsselungscode als Reaktion auf das Rücksetzereignis.
  • Beispiel 13 kann das Verfahren aus einem der Beispiele 9–11 umfassen, wobei das Rücksetzereignis ein Spannungsausfallereignis, ein Abschaltungsereignis oder ein Wiederanlaufereignis ist.
  • Beispiel 14 kann ein oder mehrere vom Computer lesbare Medien umfassen, bestehend aus Anweisungen zur Zerstörung eines Verschlüsselungscodes, wobei die Anweisungen konfiguriert sind, um bei Ausführung durch einen Speicher-Controller den Speicher-Controller zu Folgendem zu veranlassen: Empfang einer Signalisierung eines Rücksetzereignisses und als Reaktion auf die Signalisierung des Rücksetzereignisses die Zerstörung des zur Verschlüsselung der in einem persistenten Speicher, der durch den Speicher-Controller gesteuert wird, zu speichernden Daten.
  • Beispiel 15 kann ein oder mehrere vom Computer lesbare Medien aus Beispiel 14 umfassen, wobei der Speicher-Controller zur Zerstörung des Verschlüsselungscodes veranlasst wird.
  • Beispiel 16 kann ein oder mehrere vom Computer lesbare Medien aus Beispiel 14 umfassen, wobei der Speicher-Controller durch Überschreiben des Verschlüsselungscodes mit Nullen zur Zerstörung des Verschlüsselungscodes veranlasst wird.
  • Beispiel 17 kann ein oder mehrere vom Computer lesbare Medien aus einem der Beispiele 14–16 umfassen, wobei der Speicher-Controller veranlasst wird, die mit dem Verschlüsselungscode oder einen den Verschlüsselungscode ergänzenden Entschlüsselungscode verschlüsselten Daten zu entschlüsseln.
  • Beispiel 18 kann ein oder mehrere vom Computer lesbare Medien aus einem der Beispiele 14–16 umfassen, wobei der Speicher-Controller des Weiteren veranlasst wird, als Reaktion auf das Rücksetzereignis einen den Verschlüsselungscode ergänzenden Entschlüsselungscode zu vernichten.
  • Beispiel 19 kann ein oder mehrere vom Computer lesbare Medien aus einem der Beispiele 14–16 umfassen, wobei das Rücksetzereignis ein Spannungsausfallereignis, ein Abschaltereignis oder ein Wiederanlaufereignis ist.
  • Beispiel 20 umfasst eine Vorrichtung zur Vernichten eines Verschlüsselungscodes, wobei die Vorrichtung Folgendes umfasst: Mittel zum Empfang einer Signalisierung eines Rücksetzereignisses, und eine Einrichtung zur Zerstörung eines Verschlüsselungscodes, der zur Verschlüsselung von in einem persistenten Speicher zu speichernden Daten verwendet wird, als Reaktion auf ein Rücksetzereignis.
  • Beispiel 21 kann die Vorrichtung von Beispiel 20 umfassen, wobei die Einrichtung zur Zerstörung Mittel zur Zerstörung des Verschlüsselungscodes durch das Überschreiben mit Nullen umfasst.
  • Beispiel 22 kann die Vorrichtung aus einem der Beispiele 20 oder 21 umfassen und des Weiteren aus Mittel zur Entschlüsselung der verschlüsselten Daten mit dem Verschlüsselungscode oder einem den Verschlüsselungscode ergänzenden Entschlüsselungscode.
  • Beispiel 23 umfasst die Vorrichtung aus einem der Beispiele 20 oder 21 und des Weiteren aus Mittel zur Zerstörung eines den Verschlüsselungscode ergänzenden Entschlüsselungscodes als Reaktion auf das Rücksetzereignis.
  • Beispiel 24 kann die Vorrichtung aus einem der Beispiele 20 oder 21 umfassen, wobei das Rücksetzereignis ein Spannungsausfallereignis, ein Abschaltereignis oder ein Wiederanlaufereignis ist.
  • Beispiel 25 kann ein System umfassen, das Folgendes umfasst: einen persistenten Speicher, der zum Speichern verschlüsselter Daten konfiguriert ist, ein mit dem persistenten Speicher verbundener Speicher-Controller, der für Folgendes konfiguriert ist: Empfang einer Signalisierung eines Rücksetzereignisses, und als Reaktion auf die Signalisierung des Rücksetzereignisses die Zerstörung eines Verschlüsselungscodes, der verwendet wird, um verschlüsselte Daten vor der Speicherung der verschlüsselten Daten im persistenten Speicher zu verschlüsseln.
  • Beispiel 26 kann das System von Beispiel 25 umfassen, wobei der Speicher-Controller des Weiteren zum Überschreiben des Verschlüsselungscodes mit Nullen konfiguriert ist, um den Verschlüsselungscode zu vernichten.
  • Beispiel 27 kann das System aus einem der Beispiele 25 oder 26 umfassen, wobei der Speicher-Controller des Weiteren konfiguriert ist, die verschlüsselten Daten mit dem Verschlüsselungscode oder einem den Verschlüsselungscode ergänzenden Entschlüsselungscode zu entschlüsseln.
  • Beispiel 28 kann das System aus einem der Beispiele 25 oder 26 umfassen, wobei der Speicher-Controller des Weiteren als Reaktion auf das Rücksetzereignis zur Zerstörung eines den Verschlüsselungscode ergänzenden Entschlüsselungscodes konfiguriert ist.
  • Beispiel 29 kann das System aus einem der Beispiele 25 oder 26 umfassen, wobei das Rücksetzereignis ein Spannungsausfallereignis, ein Abschaltereignis oder ein Wiederanlaufereignis ist.
  • Obwohl bestimmte Ausführungsformen hierin zwecks der Beschreibung veranschaulicht und beschrieben wurden, soll diese Anwendung alle möglichen Anpassungen oder Varianten der Ausführungsformen umfassen, die hierin besprochen werden. Deshalb wird offenkundig beabsichtigt, dass hierin beschriebene Ausführungsformen nur durch die Ansprüche begrenzt werden.
  • Wo in der Offenlegung „ein” oder „ein erstes” Element oder das Äquivalent davon erwähnt wird, umfasst solch eine Offenlegung eines oder mehrere solcher Elemente, wobei weder zwei noch mehrere solcher Elemente ausgeschossen werden. Weiter werden Ordnungsindikatoren (z. B., erster, zweiter oder dritter) für identifizierte Elemente verwendet, um zwischen den Elementen zu unterscheiden. Dies zeigt nicht an oder impliziert nicht, dass solch ein Element erforderlich ist oder beschränkt die Anzahl solcher Elemente noch zeigt dies eine bestimmte Position oder eine Reihenfolge solcher Elemente an, es sei denn, dass dies andernfalls speziell angegeben ist.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • IEEE 802.20 [0037]

Claims (23)

  1. Vorrichtung zur Änderung eines Verschlüsselungscodes, wobei die Vorrichtung Folgendes umfasst: einen Speicher-Controller, der konfiguriert ist, um als Reaktion auf ein Rücksetzereignis einen Verschlüsselungscode zu ändern oder zu vernichten, um Daten vor der Speicherung der Daten in einem persistenten Speicher zu verschlüsseln, wobei der persistente Speicher durch den Speicher-Controller gesteuert wird.
  2. Vorrichtung nach Anspruch 1, die des Weiteren den mit dem Speicher-Controller verbundenen persistenten Speicher umfasst.
  3. Vorrichtung nach Anspruch 1, die des Weiteren einen Massenspeicher umfasst, der zur Speicherung des Verschlüsselungscodes konfiguriert ist.
  4. Vorrichtung nach Anspruch 3, wobei der Massenspeicher einen mit dem Speicher-Controller verbundenen flüchtigen Speicher umfasst.
  5. Vorrichtung nach Anspruch 3, wobei der Massenspeicher eine Vielzahl von nicht aufeinanderfolgenden Registern des persistenten Speichers umfasst und der Verschlüsselungscode in einem oder mehreren der Vielzahl der nicht aufeinanderfolgenden Register gespeichert wird.
  6. Vorrichtung nach einem der Ansprüche 1–5, wobei der Speicher-Controller zum Vernichten des Verschlüsselungscodes durch Überschreiben des Verschlüsselungscodes mit Nullen konfiguriert ist.
  7. Vorrichtung nach einem der Ansprüche 1–5, wobei der Speicher-Controller des Weiteren konfiguriert ist, als Reaktion auf das Rücksetzereignis einen den Verschlüsselungscode ergänzenden Entschlüsselungscode zu ändern oder zu vernichten.
  8. Vorrichtung nach einem der Ansprüche 1–5, wobei das Rücksetzereignis ein Spannungsausfallereignis, ein Abschaltereignis oder ein Wiederanlaufereignis umfasst.
  9. Verfahren zum Speichern verschlüsselter Daten, wobei das Verfahren Folgendes umfasst: Verschlüsselung von Daten durch einen Speicher-Controller, zu mindestens im Teil basierend auf einem Verschlüsselungscode zur Erstellung verschlüsselter Daten, Speicherung der verschlüsselten Daten in einem nicht flüchtigen Speicher durch den Speicher-Controller, Empfang einer Signalisierung eines Rücksetzereignisses durch den Speicher-Controller, und Zerstörung des Verschlüsselungscodes durch den Speicher-Controller als Reaktion auf den Empfang der Signalisierung des Rücksetzereignisses.
  10. Verfahren nach Anspruch 9, wobei das Vernichten das Überschreiben des Verschlüsselungscodes umfasst.
  11. Verfahren nach Anspruch 9, wobei das Vernichten das Überschreiben des Verschlüsselungscodes mit Nullen umfasst.
  12. Verfahren nach einem der Ansprüche 9–11, wobei das Vernichten des Weiteren das Vernichten eines den Verschlüsselungscode ergänzenden Entschlüsselungscodes als Reaktion auf das Rücksetzereignis umfasst.
  13. Verfahren nach einem der Ansprüche 9–11, wobei das Rücksetzereignis ein Spannungsausfallereignis, ein Abschaltereignis oder ein Wiederanlaufereignis ist.
  14. System zum Speichern verschlüsselter Daten, wobei das System Folgendes umfasst: ein persistenter Speicher, konfiguriert zum Speichern verschlüsselter, ein mit dem persistenten Speicher verbundener Speicher-Controller, der für Folgendes konfiguriert ist: Empfang einer Signalisierung eines Rücksetzereignisses, und als Reaktion auf das Signalisieren des Rücksetzereignisses das Vernichten eines Verschlüsselungscodes, der vor der Speicherung verschlüsselter Daten im persistenten Speicher zur Verschlüsselung verwendet wird.
  15. System nach Anspruch 14, wobei der Speicher-Controller des Weiteren zum Überschreiben des Verschlüsselungscodes mit Nullen konfiguriert ist, um den Verschlüsselungscode zu vernichten.
  16. System nach Anspruch 14 oder 15, wobei der Speicher-Controller des Weiteren konfiguriert ist, die verschlüsselten Daten mit dem Verschlüsselungscode oder einen den Verschlüsselungscode ergänzenden Entschlüsselungscode zu entschlüsseln.
  17. System nach Anspruch 14 oder 15, wobei der Speicher-Controller des Weiteren konfiguriert ist, als Reaktion auf ein Rücksetzereignis einen den Verschlüsselungscode ergänzenden Entschlüsselungscode zu vernichten.
  18. System nach Anspruch 14 oder 15, wobei das Rücksetzereignis ein Spannungsausfallereignis, ein Abschaltungsereignis oder ein Wiederanlaufereignis ist.
  19. Vorrichtung zur Zerstörung eines Verschlüsselungscodes, wobei die Vorrichtung das Folgende umfasst: Mittel zum Empfang einer Signalisierung eines Rücksetzereignisses, und Mittel, um als Reaktion auf ein Rücksetzereignis den Verschlüsselungscode zu vernichten, der vor der Speicherung verschlüsselter Daten im persistenten Speicher zur Verschlüsselung verwendet wird.
  20. Vorrichtung nach Anspruch 19, wobei die Mittel zum Vernichten Mittel zum Überschreiben des Verschlüsselungscodes mit Nullen zum Vernichten des Verschlüsselungscodes umfassen.
  21. Vorrichtung nach Anspruch 19 oder 20, die des Weiteren Mittel zur Entschlüsselung der verschlüsselten Daten mit dem Verschlüsselungscode oder einem den Verschlüsselungscode ergänzenden Entschlüsselungscode umfasst.
  22. Vorrichtung nach Anspruch 19 oder 20, die des Weiteren als Reaktion auf ein Rücksetzereignis Mittel zum Vernichten eines Entschlüsselungscodes einen den Verschlüsselungscode ergänzenden Entschlüsselungscode umfasst.
  23. Vorrichtung nach Anspruch 19 oder 20, wobei das Rücksetzereignis ein Spannungsausfallereignis, ein Abschaltungsereignis oder ein Wiederanlaufereignis ist.
DE102014113300.5A 2013-09-26 2014-09-16 Datenspeicherung im persistenten Speicher Pending DE102014113300A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/038,295 US20150089245A1 (en) 2013-09-26 2013-09-26 Data storage in persistent memory
US14/038,295 2013-09-26

Publications (1)

Publication Number Publication Date
DE102014113300A1 true DE102014113300A1 (de) 2015-03-26

Family

ID=51869672

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014113300.5A Pending DE102014113300A1 (de) 2013-09-26 2014-09-16 Datenspeicherung im persistenten Speicher

Country Status (7)

Country Link
US (1) US20150089245A1 (de)
JP (1) JP2015070608A (de)
KR (1) KR20150034640A (de)
CN (1) CN104516834A (de)
DE (1) DE102014113300A1 (de)
GB (1) GB2520387B (de)
TW (1) TWI550406B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018002714A1 (de) 2017-04-18 2018-10-18 Gabriele Trinkel Memristor Effekt System Netzwerk und Verfahren mit funktionalem Werkstoff

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10079019B2 (en) 2013-11-12 2018-09-18 Apple Inc. Always-on audio control for mobile device
DE102014000996A1 (de) * 2014-01-29 2015-07-30 Michael Gude Sicheres kryptografisches Verfahren und Vorrichtung dafür
US9778728B2 (en) 2014-05-29 2017-10-03 Apple Inc. System on a chip with fast wake from sleep
US10031000B2 (en) 2014-05-29 2018-07-24 Apple Inc. System on a chip with always-on processor
US9619377B2 (en) 2014-05-29 2017-04-11 Apple Inc. System on a chip with always-on processor which reconfigures SOC and supports memory-only communication mode
AU2014208249A1 (en) * 2014-07-31 2015-06-25 Taupe Overseas Limited A method for operating a gaming system
US9479331B2 (en) * 2014-08-20 2016-10-25 Apple Inc. Managing security in a system on a chip (SOC) that powers down a secure processor
US10142304B2 (en) * 2016-08-23 2018-11-27 Seagate Technology Llc Encryption key shredding to protect non-persistent data
US10445236B2 (en) * 2016-11-14 2019-10-15 Futurewei Technologies, Inc. Method to consistently store large amounts of data at very high speed in persistent memory systems
US11030118B2 (en) * 2017-03-07 2021-06-08 Rambus Inc. Data-locking memory module
US10360149B2 (en) 2017-03-10 2019-07-23 Oracle International Corporation Data structure store in persistent memory
TWI648741B (zh) 2017-06-05 2019-01-21 慧榮科技股份有限公司 資料儲存裝置之控制器以及進階資料抹除的方法
CN107590402A (zh) * 2017-09-26 2018-01-16 杭州中天微系统有限公司 一种存储数据加解密装置及方法
TWI662471B (zh) 2018-05-31 2019-06-11 華邦電子股份有限公司 真實隨機數產生裝置及其產生方法
CN110568992A (zh) * 2018-06-06 2019-12-13 华为技术有限公司 一种数据处理装置及方法
CN109359486B (zh) * 2018-10-24 2021-07-27 华中科技大学 一种加密与解密系统及其操作方法
JP7332083B2 (ja) * 2019-04-19 2023-08-23 インテル・コーポレーション マルチモード保護メモリ
US11562081B2 (en) 2019-06-24 2023-01-24 Quantum Properties Technology Llc Method and system for controlling access to secure data using custodial key data
CN113126905A (zh) * 2019-12-30 2021-07-16 美光科技公司 用于重放受保护存储器块的安全密钥更新
US11537728B1 (en) * 2020-01-26 2022-12-27 Quantum Properties Technology Llc Method and system for securing data using random bits and encoded key data

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9019022D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station or similar data processing system including interfacing means to microchannel means
US7210009B2 (en) * 2003-09-04 2007-04-24 Advanced Micro Devices, Inc. Computer system employing a trusted execution environment including a memory controller configured to clear memory
US7409545B2 (en) * 2003-09-18 2008-08-05 Sun Microsystems, Inc. Ephemeral decryption utilizing binding functions
JP5026102B2 (ja) * 2007-02-07 2012-09-12 株式会社日立製作所 ストレージ制御装置及びデータ管理方法
US8898412B2 (en) * 2007-03-21 2014-11-25 Hewlett-Packard Development Company, L.P. Methods and systems to selectively scrub a system memory
TWI361353B (en) * 2008-04-10 2012-04-01 Phison Electronics Corp Data writing method for non-volatile memory, storage system and controller thereof
US8379846B2 (en) * 2009-05-21 2013-02-19 Freescale Semiconductor, Inc. Encryption apparatus and method therefor
WO2010137177A1 (en) * 2009-05-25 2010-12-02 Hitachi,Ltd. Storage device and its control method
US8266334B2 (en) * 2010-02-12 2012-09-11 Phison Electronics Corp. Data writing method for non-volatile memory, and controller and storage system using the same
US8510552B2 (en) * 2010-04-07 2013-08-13 Apple Inc. System and method for file-level data protection
US8938624B2 (en) * 2010-09-15 2015-01-20 Lsi Corporation Encryption key destruction for secure data erasure
US9251058B2 (en) * 2010-09-28 2016-02-02 SanDisk Technologies, Inc. Servicing non-block storage requests
JP2012208798A (ja) * 2011-03-30 2012-10-25 Sony Corp 記憶メディア装置および記録装置
US8964237B2 (en) * 2013-06-28 2015-02-24 Lexmark International, Inc. Imaging device including wear leveling for non-volatile memory and secure erase of data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE 802.20

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018002714A1 (de) 2017-04-18 2018-10-18 Gabriele Trinkel Memristor Effekt System Netzwerk und Verfahren mit funktionalem Werkstoff

Also Published As

Publication number Publication date
KR20150034640A (ko) 2015-04-03
GB2520387B (en) 2019-03-27
US20150089245A1 (en) 2015-03-26
GB2520387A (en) 2015-05-20
JP2015070608A (ja) 2015-04-13
GB201416328D0 (en) 2014-10-29
TW201516682A (zh) 2015-05-01
CN104516834A (zh) 2015-04-15
TWI550406B (zh) 2016-09-21

Similar Documents

Publication Publication Date Title
DE102014113300A1 (de) Datenspeicherung im persistenten Speicher
DE102013108394A1 (de) Verfahren zum Verwalten eines Schlüssels für sicheres Speichern von Daten und Vorrichtung dafür
EP2742643B1 (de) Vorrichtung und verfahren zum entschlüsseln von daten
DE112010005842T5 (de) Verwürfeln einer Adresse und Verschlüsseln von Schreibdaten zum Speichern einer Speichervorrichtung
US9483664B2 (en) Address dependent data encryption
DE202011052333U1 (de) Verschlüsselter Speicherzugriff
DE112016004435T5 (de) Hardware-gestützte einseitige kryptografie
DE202016007854U1 (de) Speichern eines entschlüsselten Nachrichtenkörpers und Schlüssel, der für die Verschlüsselung und Entschlüsselung eines Nachrichtenkörpers verwendet wird
DE102015008012A1 (de) SM4-Beschleunigungsprozessoren, Verfahren, Systeme und Anweisungen
DE102013207024A1 (de) Inhaltsaufzeichnungs- und -abspielgeräte, inhaltsspeichernder Server und Speicherbauelement
DE112014000965T5 (de) Verarbeiten eines Gastereignisses in einem hypervisorgesteuerten System
DE102012111793A1 (de) Speichervorrichtung zum Schützen von sicheren Daten und Verfahren zum Authentifizieren einer Speichervorrichtung unter Verwendung von sicheren Daten
DE112008003855T5 (de) System und Verfahren zum Bereitstellen von sicherem Zugriff auf einen Systemspeicher
DE102019110501A1 (de) Fehlerkorrekturcode-speichersicherheit
DE102017115758A1 (de) Systeme und Verfahren für ein sicheres Zahlungsterminal ohne Batterien
DE602004001732T2 (de) Datenverschlüsselung in einem elektronischen Gerät mit mehreren symmetrischen Prozessoren
US20180123789A1 (en) Apparatus and method for generating a key in a programmable hardware module
DE102019110440A1 (de) Replay-Schutz für Speicher auf der Basis eines Schlüsselauffrischens
EP2678772B1 (de) Verschlüsseltes rechnen
DE112019007230T5 (de) Multimodus-Geschützter-Speicher
CN102346820A (zh) 一种保密数据存储方法及装置
DE112010005847T5 (de) Modifizieren einer Länge eines Elements, um einen Verschlüsselungsschlüssel zu bilden
DE60305781T2 (de) Verschlüsselung des Inhalts eines ausserhalb eines Prozessors angeordneten Speichers
DE112020005474T5 (de) Passwortgenerierung zur einmaligen verwendung
DE102008026697A1 (de) Vorrichtung und Verfahren zum Verschlüsseln von auf einem Bus ausgegebenen Daten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication