-
TECHNISCHES GEBIET
-
Verschiedene hier beschriebene Ausführungsformen betreffen ein Verfahren und eine Einrichtung, die zum Verhindern der Erzeugung von Mülldaten benutzt werden, nachdem gewisse mit den Daten verbundene Parameter wie beispielsweise ein Verschlüsselungsparameter geändert werden.
-
HINTERGRUND
-
Speichern von Daten umfasst Schreiben von die Daten darstellenden Informationen zu einer Speichervorrichtung oder -einrichtung. Es gibt viele Arten von Speichervorrichtungen. Obwohl sie jedoch veränderlich sind, weisen die meisten der Speichervorrichtungen gemeinsame Ziele auf. Zu den Zielen gehören Speichern vergrößerter Datenmengen und Bereitstellung eines Mittels zum Sicherstellen, dass die Daten, so wie sie gespeichert sind, sicher sind. Verschlüsselung ist eine Weise, die Daten sicher zu machen. Verschlüsselung ist der Vorgang des Codierens von Informationen auf eine solche Weise, dass nur berechtigte Beteiligte sie lesen können. Verschlüsselung verhindert nicht Hacken, verringert aber die Wahrscheinlichkeit, dass der Hacker die verschlüsselten Daten lesen kann. In einem Verschlüsselungsschema werden die als Klartext bezeichneten Informationen mittels eines Verschlüsselungsalgorithmusses verschlüsselt, wodurch sie in unlesbaren Chiffretext verwandelt werden. Dies geschieht gewöhnlich mittels eines Verschlüsselungschlüssels, der angibt, wie die Nachricht zu codieren ist. Irgendein Angreifer, der den Chiffretext sehen kann, sollte nicht in der Lage sein, irgend etwas über die ursprünglichen Informationen zu bestimmen. Ein berechtigter Beteiligter ist jedoch in der Lage, den Chiffretext mittels eines Entschlüsselungsalgorithmusses zu decodieren, der gewöhnlich einen geheimen Entschlüsselungsschlüssel erfordert, zu dem Angreifer keinen Zugang haben. Aus technischen Gründen benötigt ein Verschlüsselungsschema gewöhnlich einen Schlüsselerzeugungsalgorithmus zum zufallsmäßigen Erzeugen von Schlüsseln.
-
Von Zeit zu Zeit können Verschlüsselungsparameter wie beispielsweise Verschlüsselungs-/Entschlüsselungsschlüssel für eine Speichervorrichtung geändert werden. Wenn Verschlüsselungsparameter geändert werden, wie ein Schlüssel oder Bereichsparameter, ist es möglich, Mülldaten mit CRC-Fehlern (CRC – Cyclic Redundancy Check = zyklische Redundanzprüfung) im LBA-Raum (LBA – Logical Block Address = logische Blockadresse) der Änderung aufzuweisen. Gegenwärtig ist eine Lösung zum Verhindern der CRC-Fehler, allen
-
Datenschutz an verschlüsselten Laufwerken zu deaktivieren. Dadurch werden die Daten freigelegt, die Daten sind nicht sicher, wenn das Datenschutzschema deaktiviert ist. Natürlich wird diese Lösung gewissen Standards für die Sicherheit der Daten nicht gerecht. Viele Hersteller, die Speichervorrichtungen in von ihnen angebotenen Produkten benutzen, qualifizieren die Speichervorrichtungen auf Grundlage von Konformität mit Standards. Abschalten des Sicherheitsmerkmals verhindert richtigen T10-Datenschutz auf verschlüsselten Speichervorrichtungen. Ein weiterer Standard, dem viele entsprechen müssen, ist der Standard Opal SSC. Der Standard gibt an, dass:
”An Opal SSC compliant SD SHALL implement Full Disk Encryption for all host accessible user data stored an media. AES-128 or AES-256 SHALL be supported [Paragraph 2.4, page 10 of 81 of the TCG Storage Opal SSC, version 1.0.”
”The Opal SSC is an implementation profile for Storage Devices built to:
- • Protect the confidentiality of stored user data against unauthorized access once it leaves the owner's control (involving a power cycle and subsequent deauthentication)
- • Enable interoperability between multiple SD vendors
”An Opal SSC compliant SD: - • Facilitates feature discoverability
- • Provides some user definable features (e. g. access control, locking ranges, user passwords, etc.)
- • Supports Opal SSC unique behaviors (e. g. communication, table management) [Section 2.1, page 10/81]
[„Eine Opal SSC konforme SD MUSS volle Plattenverschlüsselung für alle dem Host zugänglichen, auf Medien gespeicherten Benutzerdaten implementieren. AES-128 oder AES-256 WERDEN unterstützt [Absatz 2.4, Seite 10 von 81 der TCG Speicher-Opal-SSC, Version 1.0”
„Die Opal SSC ist ein Implementierungsprofil für Speichervorrichtungen gebaut zum: - • Schützen der Vertraulichkeit gespeicherter Benutzerdaten gegen unberechtigten Zugang nach Verlassen der Kontrolle des Eigentümers (mit einem Kraftzyklus und nachfolgender Entauthorisierung)
- • Ermöglichen von Interoperabilität zwischen mehreren SD-Lieferanten
„Eine Opal SSC-konforme SD: - • Erleichtert Merkmalsentdeckbarkeit
- • Bietet einige benutzerdefinierbare Merkmale (z. B. Zugangssteuerung, Verriegelungsbereiche, Benutzerpassworte, usw.)
- • Unterstützt für Opal SSC einzigartige Verhalten (z. B. Kommunikation, Tabellenmanagement) [Abschnitt 2.1, Seite 10/81]
-
Wenn die Daten zu allen Zeiten sicher sind, ist die Vertraulichkeit gespeicherter Benutzerdaten gegen unberechtigten Zugang geschützt, sobald sie die Kontrolle des Eigentümers verlassen. Zusätzlich ermöglicht Erfüllen eines Standards zur Sicherheit der Daten auf einer Speichereinrichtung Interoperabilität zwischen mehreren Speichervorrichtungslieferanten. Auch erleichtert Erfüllen eines Standards Merkmalsentdeckbarkeit, bietet einige vom Benutzer definierbare Merkmale (z. B. Zugangssteuerung, Verriegelungsbereiche, Benutzerpassworte usw.) und unterstützt einmalige Verhalten (z. B. Kommunikation, Tabellenmanagement).
-
KURZFASSUNG DER ERFINDUNG
-
Eine Speichervorrichtung umfassend wenigstens eine Speicherstelle zum Speichern von mittels eines ersten Verschlüsselungs-/Entschlüsselungsverfahrens geschriebenen Daten darstellenden Informationen, und einen Lesekanal mit einem zweiten Verschlüsselungs-/Entschlüsselungsverfahren zum Lesen und Entschlüsseln von Informationen so wie sie geschrieben sind. Auch umfasst die Speichervorrichtung eine Einrichtung, die das Lesen der wenigstens einen Speicherstelle mittels des zweiten Verschlüsselungs-/Entschlüsselungsverfahrens als Reaktion auf eine Anzeige, dass die wenigstens eine Speicherstelle mittels des ersten Verschlüsselungs-/Entschlüsselungsverfahrens geschrieben wurde, verhindert. Die Einrichtung, die das Lesen der wenigstens einen physikalischen Blockadresse verhindert, umfasst eine Vorrichtung zum Zuordnen eines Merkers zu der wenigstens einen mittels des ersten Verschlüsselungs-/Entschlüsselungsverfahrens geschriebenen Speicherstelle. Die Einrichtung, die das Lesen der wenigstens einen physikalischen Blockadresse verhindert, umfasst auch eine Vorrichtung zum Wiedergeben von Inhaltsleere für die wenigstens eine mittels des ersten Verschlüsselungs-/Entschlüsselungsverfahrens geschriebene Speicherstelle als Reaktion auf eine Anzeige, dass der Lesekanal ein zweites Verschlüsselungs-/Entschlüsselungsverfahren benutzt. Die Einrichtung, die das Lesen der wenigstens einen mit dem Verschlüsselungs-/Entschlüsselungsverfahren geschriebenen Speicherstelle verhindert, umfasst in einer Ausführungsform eine Vorrichtung zum Schreiben von Nullen zu der wenigstens einen mittels des ersten Verschlüsselungs-/Entschlüsselungsverfahrens geschriebenen Speicherstelle.
-
Eine Speichereinrichtung umfasst eine Festkörpervorrichtung mit einer Vielzahl von Speicherstellen, einen Schreibkanal zum Schreiben von Daten darstellenden Informationen zu der Vielzahl von Speicherstellen in einer Festkörpervorrichtung und einen Lesekanal zum Lesen von Daten darstellenden Informationen aus der Vielzahl von Speicherstellen in einer Festkörpervorrichtung. Die Speichereinrichtung umfasst auch eine Steuerung, die Operationen der Speichereinrichtung einschließlich des Schreibens von Informationen zu der Vielzahl von Speicherstellen in einer Festkörpervorrichtung und des Lesens von Daten darstellenden Informationen aus der Vielzahl von Speicherstellen in einer Festkörpervorrichtung steuert. Auch umfasst die Speichereinrichtung ein Indirektionssystem weiterhin umfassend einen Satz logischer Blockadressen und einen Satz physikalischer Blockadressen, die der Vielzahl von Speicherstellen in der Festkörpervorrichtung der Speichereinrichtung entsprechen. Auch umfasst das Indirektionssystem eine Abbildung, die eine logische Blockadresse wenigstens einer physikalischen Blockadresse zuordnet. Auch umfasst die Abbildung wenigstens einen Merker, der ein zum Schreiben und Lesen von Daten aus der physikalischen Blockadresse benutztes Verschlüsselungs-/Entschlüsselungsverfahren anzeigt. Die Steuerung gibt ein Lesen von Nullen wieder, wenn sich das zum Lesen der physikalischen Blockadresse benutzte Verschlüsselungs-/Entschlüsselungsverfahren geändert hat.
-
Ein Verfahren zum Verringern der Erzeugung von Mülldaten in einer Speichereinrichtung umfasst Überwachen einer Speichereinrichtung auf eine Änderung in einem zum Lesen und Schreiben von Daten benutzten Verschlüsselungs-/Entschlüsselungsschema und als Reaktion auf die Änderung in dem Verschlüsselungs-/Entschlüsselungsschema Bewirken, dass wenigstens eine logische Blockadresse eine Anzeige, in Nullen geschrieben zu sein, wiedergibt, wenn die mit der logischen Blockadresse verbundene physikalische Blockadresse mittels des alten Verschlüsselungs-/Entschlüsselungsschemas verschlüsselt worden ist.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die Ausführungsformen werden durch die nachfolgende ausführliche Beschreibung in Verbindungen mit den beiliegenden Zeichnungen leicht verständlich, worin gleiche Bezugsziffern gleiche Strukturelemente bezeichnen und in denen:
-
1A ein Schaltschema eines NAND-Flash-artigen Speichers nach einer beispielhaften Ausführungsform ist.
-
1B ein weiteres Schaltschema einer NAND-Flash-artigen Speichervorrichtung nach einer beispielhaften Ausführungsform ist.
-
2 ein Schaltschema einer Speichereinrichtung oder -vorrichtung nach einer beispielhaften Ausführungsform ist.
-
3 ein Schaltschema eines Indirektionssystems einer Speichervorrichtung nach einer beispielhaften Ausführungsform ist.
-
4 eine Art von mit einem Indirektionssystem einer Speichervorrichtung nach einer beispielhaften Ausführungsform verbundenen Tabelle ist.
-
5 ein Verfahren zur Wiedergabe von „Nullen” aus mit einem anderen oder alten Verschlüsselungsschema geschriebenen Daten nach einer beispielhaften Ausführungsform ist.
-
6 ein Verfahren zur Wiedergabe von „Nullen” aus mit einem anderen oder alten Verschlüsselungsschema geschriebenen Daten nach einer beispielhaften Ausführungsform ist.
-
7 eine weitere Art von mit einer Indirektionssteuerung einer Speichervorrichtung nach einer beispielhaften Ausführungsform verbundenen Tabelle ist.
-
8 ein Verfahren zur Wiedergabe von „Nullen” aus mit einem anderen oder alten Verschlüsselungsschema geschriebenen Daten nach einer beispielhaften Ausführungsform ist.
-
9 eine weitere Art von mit einer Indirektionssteuerung einer Speichervorrichtung nach einer beispielhaften Ausführungsform verbundenen Tabelle ist.
-
10 ein Flussdiagramm eines Verfahrens zum Verhindern der Erzeugung von Mülldaten nach einer beispielhaften Ausführungsform ist.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der nachfolgenden Schrift sind zahlreiche bestimmte Einzelheiten aufgeführt, um ein umfassendes Verständnis der den beschriebenen Ausführungsformen zugrundeliegenden Konzepte zu vermitteln. Dem Fachmann wird jedoch offenbar sein, dass die beschriebenen Ausführungsformen ohne einige oder alle dieser bestimmten Einzelheiten ausgeübt werden können. In anderen Fällen sind wohlbekannte Verarbeitungsschritte nicht ausführlich beschrieben worden, um unnötiges Verdecken der zugrundeliegenden Konzepte zu vermeiden.
-
Im Allgemeinen beschreibt die vorliegende Offenbarung Verfahren zum Schreiben und Lesen von Daten zu einer Festkörpervorrichtung oder einem sonstigen Speichermedium wie beispielsweise Festplattenlaufwerke, Hybridvorrichtungen und dergleichen. In dieser bestimmten Anwendung beschreibt die vorliegende Offenbarung Schreiben und Lesen von Daten darstellenden Informationen zu einer Flash-Speicher-basierenden Festkörpervorrichtung. Es ist zu beachten, dass dies eine Art von Speichermedium oder Festkörpervorrichtung ist und dass die Erfindung in Festkörpervorrichtungen benutzt werden könnte, die andere Arten von Speichertechniken einsetzen. Anders gesagt ist die Erfindung nicht auf Flash-Speicher begrenzt und könnte in anderen Speicherarten benutzt werden wie beispielsweise Phasenänderungsspeicher (PCM – Phase Change Memory), magnetoresistivem Direktzugriffsspeicher (MRAM = Magnetoresistive Random-Access Memory), resistivem Direktzugriffsspeicher (RRAM oder ReRAM) oder dergleichen.
-
Zurückkehrend zu der Besprechung von Flash-Speicher. Es gibt zwei Hauptarten von Flash-Speicher, die nach der Art von zum Bilden des Flash-Speichers benutzten Logikgattern benannt sind. Es gibt NAND-Art von Flash-Speicher und NOR-Art von Flash-Speicher. Die internen Eigenschaften der einzelnen Flash-Speicherzellen weisen Eigenschaften ähnlich denen der entsprechenden Gatter auf. NAND-artige Flash-Speicher können leicht in Blöcken (oder Seiten) geschrieben oder gelesen werden, die allgemein viel kleiner als die gesamte Vorrichtung sind. NOR-artige Flash-Speicher erlauben, dass ein einzelnes Maschinenwort (Byte) leicht geschrieben werden kann – zu einer gelöschten Stelle – oder unabhängig gelesen werden kann. Die NAND-Art wird hauptsächlich im Hauptspeicher, Speicherkarten, USB-Flash-Laufwerken, Festkörperlaufwerken und ähnlichen Produkten zur allgemeinen Speicherung und Übertragung von Daten benutzt. Die NOR-Art, die wahren Direktzugriff und daher direkte Codeausführung zulässt, wird als Ersatz für den älteren EPROM und als Alternative für gewisse Arten von ROM-Anwendungen benutzt, wohingegen NOR-Flash-Speicher ROM hauptsächlich auf Maschinencodeebene emulieren kann; viele digitale Konstruktionen benötigen ROM-(oder PLA-)Strukturen für andere Verwendungen, oft mit bedeutend höheren Geschwindigkeiten als (wirtschaftlicher) Flash-Speicher erreichen kann.
-
2 ist ein schematisches Diagramm einer Speichereinrichtung oder -vorrichtung 200. Speicher besteht aus Speicherstellen oder Bit 210, 211, 212, 213, 214, angeordnet in einem zweidimensionalen Raster. Die Bit 210, 211, 212, 213, 214 sind in Spalten angeordnet (CAS) 220, 221, 222, 223, 224, 225, 226, 227 und Reihen (RAS) 230, 231, 232, 233, 234, 235, 236, 237. Jedes Bit kann durch eine Spalte und Reihe identifiziert werden. Zum Beispiel ist Bit 211 in Spalte 225 und Reihe 232. Dieses bestimmte Bit ist kreuzschraffiert, um einen Wert „1” darzustellen. Ein nichtkreuzschraffiertes Bit wie beispielsweise Bit 214 stellt einen Wert „0” dar.
-
Um Daten zu einer Spalte zu schreiben wird eine Spalte ausgewählt und dann werden Reihen geladen, um Daten in die der bestimmten Spalte zugeordneten Bit zu schreiben. Als Beispiel wird, wenn Spalte 225 geschrieben wird, Spalte 225 ausgewählt.
-
Reihen 230, 232, 234, 235 und 236 werden geladen mit dem Ergebnis eines Wertes „1”, gespeichert an den bestimmten Bitstellen (gezeigt als kreuzschraffiert).
-
Anders gesagt werden Speicherzellen in einer Anordnung von Spalten (Bitlinien) und Zeilen (Wortlinien) auf einen Siliziumwafer aufgeätzt. Die Schnittstelle einer Bitlinie und Wortlinie bildet die Adresse der Speicherzelle.
-
Zum Aktivieren des Transistors an jedem Bit in der Spalte wird eine Ladung durch die zutreffende Spalte (CAS) durchgeführt. Beim Schreiben enthalten die Zeilenlinien den Zustand, den der Kondensator annehmen sollte. Beim Lesen bestimmt ein Leseverstärker die Ladungshöhe im Kondensator. Wenn sie mehr als 50% beträgt, liest er das als eine 1; ansonsten liest er das als ein Null. Vom Zähler wird die Auffrischfolge basierend darauf verfolgt, auf welche Zeilen in welcher Reihenfolge zugegriffen worden ist. Die dafür notwendige Zeitdauer wird in Nanosekunden ausgedrückt.
-
Speicherzellen alleine wären ohne eine Art und Weise, Informationen darin einzugeben und daraus auszulesen wertlos. Speichervorrichtungen umfassen mit dem Speicher verbundene Schaltungen zum Identifizieren jeder Zeile und Spalte, zum Lesen und Wiederherstellen von Signalen aus Zellen und zum Ermöglichen von Ladungen an verschiedenen Speicheradressen.
-
1A und 1B zeigen jeweils ein Schaltbild von NAND-artigem-Flash-Speicher 100 und 100' nach einer beispielhaften Ausführungsform. In jedem Fall ist eine NAND-Flash-Festkörpervorrichtung 110 über einen Host-Prozessor 130 an einem Host-Computer angebracht. In 1A bearbeitet der Host-Prozessor 130 viele der mit dem Lesen und Schreiben von Daten darstellenden Informationen zur NAND-Flash-Festkörpervorrichtung 110 verbundenen Operationen. Der Host-Prozessor 130 umfasst ein Fehlerkorrekturcode-(FCC – Error Correction Code)Modul 131, Blockfehlermanagementmodul 132, ein Nutzungsausgleichmodul (Wear Leveling Modul) 133, ein NAND-Flash-Treibermodul 134 und Adressindirektionsmodul 135. Alle diese Module können Hardware, Software oder eine Kombination von Hardware und Software sein. Vom Fehlerkorrekturcode-(FCC-)Modul 131 wird die Bestimmung eines Fehlers beim Datenlesen und die Anwendung von Fehlerkorrekturcode (FCC – Error Correction Code) an die Daten, wie sie gelesen sind, behandelt. Der Fehlerkorrekturcode wird zum Orten und Korrigieren des Fehlers in einem gelesenen Datenblock benutzt.
-
Vom Blockfehlermanagementmodul 132 werden Blockfehler im NAND-Flash 110 bearbeitet. Daten von einem Host kommen allgemein als ein Datenblock vom Host. Der Datenblock kann jede Länge aufweisen, obwohl 512 Byte und 4000 genormte Längen gewesen sind und sehr üblich sind. Der NAND-Flash kam Datenblöcke empfangen. Die Herstellung einer Festkörpervorrichtung ist in einigen Fällen weniger als perfekt. Als Ergebnis kann es eine oder mehrere Speicherstellen geben, die fehlerhaft sind und nicht zulassen, dass ein Datenblock zuverlässig dort gespeichert wird, so dass er später abgerufen werden kann. Vom Blockfehlermanagementmodul 132 werden diese Blockfehlerstellen gespeichert und verhindert, dass Daten dort gespeichert werden. Blockfehler können auch während der Lebensdauer des NAND-Flash 110 erscheinen, so dass das Blockfehlermanagementmodul 132 auch alle anderen Speicherstellen notiert, die sich in Blockfehler entwickelt haben.
-
Das Adressindirektionsmodul 135 arbeitet in Zusammenwirkung mit dem Blockfehlermanagementmodul 132. Das Adressindirektionsmodul 135 umfasst Abbilden von eigentlichen physikalischen Blockadressen (PBA – Physical Block Adresses) auf logische Blockadressen (LBA). Die LBA bleiben konstant. Der Host kann dann einen Befehl zum Schreiben an eine bestimmte LBA erteilen. Die eigentliche Adresse, an der die Daten gespeichert sind (PBA), kann sich ändern. Das Adressindirektionsmodul 135 verfolgt den Ort der LBA sowie er beschrieben oder auf dem NAND-Flash 110 gespeichert wurde. Damit wird, wenn der Host Daten aus dem NAND-Flash 110 auslesen muss, vom Adressindirektionsmodul 135 sichergestellt, dass die richtige mit der LBA verbundene PBA gelesen wird, um sicherzustellen, dass die die Daten darstellenden Informationen gelesen werden und zur Weiterverarbeitung zum Verdoppeln der in die NAND-Flash-Festkorpervorrichtung eingegebenen Daten dargeboten werden. Auch ist das Adressindirektionsmodul 135 zum Verschleißausgleich notwendig. Wenn Daten häufiger als eine Anzahl von Verschleißzyklen zu einer bestimmten Speicherstelle geschrieben werden, kann die Speicherstelle abgenutzt oder unzuverlässig werden. Dies wird durch Nutzungsausgleich erkannt und die Lebensdauer des Speichers durch Ändern von Speicherstellen oder eigentlichen physikalischen Stellen, wo die Informationen geschrieben werden, verlängert. Die LBA bleibt die Gleiche, während sich die PBA zum Verhindern übermäßiger frühzeitiger Nutzung ändern wird.
-
Vom Nutzungsausgleichmodul (Wear Leveling Modul) 133 wird überwacht und verwaltet, wo Daten geschrieben werden. Ein NAND-Flash weist viele Speicherstellen auf, zu denen Daten geschrieben werden können. Diese Speicherstellen werden mit der Zeit „abgenutzt”. Die Speicherstellen in einem NAND-Flash 110 können nur für eine Anzahl von Zyklen zuverlässig neu geschrieben werden. Vom Nutzungsausgleichmodul 133 wird die Anzahl von Lesungen und Schreibungen zu verschiedenen Speicherstellen überwacht und die Speicherstelle gewechselt, um die Lebensdauer des NAND-Flash 110 zu verlängern. Wenn beispielsweise nur die Hälfte der Speicherstellen fortlaufend zu dieser Hälfte des NAND-Flash geschrieben werden würde, würde die Hälfte des NAND-Flash abgenutzt werden. Obwohl die gesamte Vorrichtung nicht abgenutzt werden würde, würde die Kapazität zum Speichern von Daten stark behindert werden und schlechte Leistung ergeben. Vom Nutzungsausgleichmodul 133 wird die Abnutzung am NAND-Flash 110 verwaltet. Vom Nutzungsausgleichmodul 133 wird die Lebensdauer des NAND-Flash 110 effektiv verlängert. Das funktioniert auch mit dem Adressindirektionsmodul 135, da das Nutzungsausgleichmodul 133 entscheiden kann, dass eine bestimmte Menge von Blöcken (PBA) reserviert werden muss, um vorzeitige Abnutzung der Speicherstellen im NAND-Flash 110 zu vermeiden.
-
Das NAND-Flash-Treibermodul 134 ist ein Anweisungssatz für den Betrieb des NAND-Flash 110.
-
Die Festkörpervorrichtung 100 umfasst auch ein Sicherheitsmodul 136. Vom Sicherheitsmodul 136 werden Daten so wie sie geschrieben sind verschlüsselt und die Daten beim Lesen entschlüsselt. Durch die Verschlüsselung der Daten werden die Daten sicher gehalten. Es ist wichtig, die Daten zu allen Zeiten sicherzuhalten entsprechend dem gesunden Menschenverstand wie auch gewissen Kriterien für Produkte, die erfüllt werden müssen, damit das Produkt zur Verwendung in anderen Produkten qualifiziert ist. In einigen Fällen kann Qualifizieren eines Produkts Erfüllen einer Norm für Sicherheit der Daten umfassen. Bei einigen Verschlüsselungs- und Entschlüsselungsverfahren bestimmt eine (auch als Parameter bekannte) Schlüsselinformation die Funktionsausgabe eines kryptografischen Algorithmus oder Codes. Ohne einen Schlüssel würde der Algorithmus kein nützliches Ergebnis erzeugen. Bei Verschlüsselung gibt ein Schlüssel die bestimmte Transformation von Klartext in Chiffretext oder umgekehrt während der Entschlüsselung an. Schlüssel werden auch in anderen kryptografischen Algorithmen benutzt, wie beispielsweise Digitalsignaturverfahren und Nachrichtenauthentifizierungscodes für Produkte, die von Normenorganisationen vorgegeben werden. Die vorliegende bestimmte Erfindung behandelt Fälle, in denen ein Parameter geändert wird. Zum Beispiel könnte ein Schlüssel geändert werden. Es ist zu bemerken, dass wenn codierte Informationen gelesen werden, der mit dem Schreiben verbundene Schlüssel zusammen mit dem Algorithmus zum Decodieren der Information und ihrer Transformation in die Daten wie geschrieben benutzt werden muss. Ohne den Parameter, oder wenn der Parameter falsch ist, funktioniert der Decodierungsalgorithmus nicht. Eine Ausgabe von mit dem falschen Schlüssel decodierte Daten darstellenden Informationen wird allgemein als Müll bezeichnet. Dies sind nicht die ursprünglichen Daten so wie sie geschrieben wurden. Müll kann auch einen Datenkanal während eines Leseversuchs belasten. Wenn zum Beispiel Müllinformationen gelesen werden, wird das Fehlerkorrekturmodul bestimmen, dass in den gelesenen Daten ein Fehler besteht. Der sich aus Mülldaten ergebende „Fehler” wird nicht schnell korrigierbar sein. In Abhängigkeit von dem Schema für Fehlerkorrektur könnte das Fehlerkorrekturmodul versuchen, die Daten mittels verschiedener tiefer Datenwiedergewinnungsverfahren wiederzugewinnen. Dadurch wird Zeit verschwendet und auch die Zeit, während der der Prozessor versucht, den „Fehler” zu korrigieren, verschwendet. Dies ist natürlich nur ein Beispiel der Probleme, die sich aus dem Lesen von Informationen ergeben, die sich als Mülldaten erweisen.
-
1B zeigt ein Schaltbild einer anderen Art von NAND-Flash-artiger Speichervorrichtung 100' nach einer beispielhaften Ausführungsform. In jedem Fall ist eine NAND-Flash-Festkörpervorrichtung 110 über einen Host-Prozessor 130 an einem Host-Computer angebracht. Der Hauptunterschied zwischen Speichervorrichtung 100' und Speichervorrichtung 100 ist der Prozessor 120, der sich bei der NAND-artigen Festkörpervorrichtung 100' befindet. Der Prozessor 120 ist vom Host-Prozessor 130 getrennt. Vom Host-Prozessor 130 werden im Fall der NAND-artigen Festkörpervorrichtung 100' einige der Verarbeitungsmodule zu dem mit der NAND-artigen Festkörpervorrichtung 100' verbundenen Prozessor 120 abgeladen. Der Prozessor 120 kann ein Universalprozessor sein oder ein dedizierter Prozessor, der eine bestimmte Aufgabe oder Aufgaben bearbeitet. Wie in 1B gezeigt umfasst der Prozessor 120 das Fehlerkorrekturcode-(ECC – Error Correction Code)Modul 131, das Blockfehlermanagementmodul 132 und das Nutzungsausgleichmodul (Wear Leveling Module) 133, zum Beispiel. Diese Operationen werden vom Host-Prozessor 130 zum Prozessor 120 oder zur NAND-Steuerung weitergeleitet. Diese Blöcke 131, 132 und 133 fungieren auf die gleiche Weise wie oben hinsichtlich der 1A besprochen. Der Kürze halber werden diese Funktionen hier nicht wiederholt. In 1B koppeln ein Datenbus 160, eine Befehlsleitung 161 und ein Taktsignal 162 den Hostprozessor und die NAND-Steuerung oder den Prozessor 120 kommunikationstechnisch. Einige der über die Befehlsleitung 161 geleiteten Befehle befehlen nur einem der Module 131, 132, 133, ihre bestimmten Verfahren zu beginnen. Dies ist dahingehend behilflich, dass der Host-Prozessor 130 für andere Aufgaben freigegeben wird. Die Anzahl von vom Host zur NAND-Steuerung 120 weitergeleiteteten Aufgaben ist eine Sache eines Ausgleichs des Bestimmens, welche Aufgaben vollständig spezialisiert sind und besser durch die NAND-Steuerung 120 ausgeführt werden sollten. Andere Aufgaben können allgemeiner anwendbar sein und im Host-Prozessor 130 resident gehalten werden.
-
Wie oben beschrieben können auf dem NAND-artigen Flash-Speicher 110, 110' gespeicherte Daten als Datenblöcke organisiert sein. In einigen beispielhaften Ausführungsformen wird die Adressindirektion zum Schreiben von Datenblöcken zum NAND-artigen Flash-Speicher 110, 110' benutzt. Das heißt Host-Dateisysteme bearbeiten logische Blockadressen (LBA) in Befehlen zum Schreiben von Datenblöcken zum NAND-artigen Flash-Speicher 110, 110' und Auslesen von Datenblöcken aus dem NAND-artigen Flash-Speicher 110, 110' ungeachtet der eigentlichen Stellen im NAND-artigen Flash-Speicher 110, 110'. Die eigentliche physikalische Adresse ist die intern durch den NAND-artigen Flash-Speicher 110, 110' benutzte physikalische Blockadresse (PBA). Adressindirektion ist typischerweise im Steuerungsteil der Architektur der Speichervorrichtung (z. B. NAND-Steuerung 120 der 1B) mittels von Indikrektionstabellen implementiert, die zum Verfolgen der mit einer LBA verbundenen physikalischen Stelle benutzt werden. Anders gesagt wird durch die Indirektionstabellen die LBA auf eine PBA im NAND-artigen Flash-Speicher 110, 110' abgebildet.
-
Wie oben beschrieben werden Daten typischerweise in den NAND-artigen Flash-Speicher 110, 110' in in einen Satz von Speicherstellen innerhalb des NAN-artigen Flash-Speichers 102 enthaltenen Blöcken oder Sektoren eingelesen oder daraus ausgelesen. Die Blockgrößen können 512 Byte oder in einigen Ausführungsformen 4000 Byte aufweisen.
-
3 ist ein Schema eines Indirektionssystems einer Speichervorrichtung 300 nach einer beispielhaften Ausführungsform. Insbesondere ist 3 ein Schaltbild des kommunikationstechnisch an einen Host-Computer 310 angekoppelten Speichersystems 300. Das Speichersystem 300 empfängt Schreibbefehle vom Host 310. Das Speichersystem 300 speichert Daten darstellende Informationen in logischen Blockadressen (LBA – Logical Block Addresses). Auch werden vom Speichersystem 300 Informationen abgerufen oder die Daten gelesen und logische Blockadressen (LBA) zum Host 310 zurückgeliefert. Wie gezeigt umfasst das Speichersystem 300 ein Indirektionssystem 320, eine erste Speichervorrichtung 330 und eine zweite Speichervorrichtung 332. Das Indirektionssystem 320 kann LBA auf eine oder mehrere Speichervorrichtungen wie beispielsweise Speichervorrichtung 330 und 332 abbilden. Die erste Speichervorrichtung 330 und die zweite Speichervorrichtung 332 können ein NAND-Flash 110, 110' oder eine allgemeine Speichervorrichtung wie beispielsweise Vorrichtung 200 sein. Das Host-System 310 kann ein Prozessor, ein unabhängiges Computersystem, ein Serversystem oder sonstige Hardwarekomponente sein, die mit der Speichervorrichtung 300 kommuniziert.
-
Indirektionssteuerung 320 umfasst Prozessor 307, an dem Prozessor 307 kommunikationstechnisch angekoppelten Speicher und computerlesbares Medium 309. Prozessor 307 kann eine programmierbare Logiksteuerung (PLC – Programmable Logic Controller), Mikroprozessor oder Mikrosteuerung sein. Das computerlesbare Medium 309 kann von den Speichervorrichtungen 330, 332 getrennt sein oder sich auf in Speichervorrichtungen 330, 332 reservierten Raum zum Speichern von Datenstrukturen und/oder Anweisungen zur Ausführung durch den Prozessor 307 beziehen.
-
Von der Indirektionssteuerung 320 wird eine dynamische Umsetzungsschicht zwischen durch das Host-System benutzten logischen Blockadressen (LBA) und zum Zugreifen auf in der Festkörpervorrichtung 330, 332 gespeicherte Daten benutzte physikalische Blockadressen (PBA) bereitgestellt. Die „physikalische Blockadresse” entspricht einer eigentlichen Speicherstelle oder einer Mehrzahl von eigentlichen Speicherstellen in den Speichervorrichtungen 330, 332. Von der Indirektionssteuerung 320 wird die Zuweisung von LBA zu PBA verwaltet. In einigen Speichersystemen verbleibt Abbilden von LBA auf PBA relativ statisch, da einzelne Speicherzellen sehr selten wiederbeschrieben werden können. In komplizierteren Architekturen kann sich die Abbildung zwischen LBA und PBA mit jeder Schreiboperation ändern, da das System die einer bestimmten logischen Stelle (d. h. LBA) zugewiesene physikalische Stelle (d. h. PBA) dynamisch bestimmt. Die Daten für die gleiche LBA werden das nächste Mal, wenn die Host-LBA aktualisiert wird, zu einer anderen Stelle geschrieben. Auf diese Weise wird durch die Indirektionssteuerung 320 eine dynamische Umsetzungsschicht zwischen durch Host-System 310 bereitgestellte LBA und mit Speichervorrichtungen 330, 332 verbundenen PBA bereitgestellt. Die Indirektionssteuerung 320 ist für Verwalten der Zuweisung von LBA zu der Vielzahl von PBA verantwortlich.
-
Um Daten in Speichervorrichtungen 330, 332 sicherzuhalten, werden die Daten viele Male mittels eines Schlüssels oder sonstigen Parameters verschlüsselt. Solange der Schlüssel oder sonstige Parameter gleich bleibt, sind die Daten sicher. Der Schlüssel oder sonstige Parameter wird zum Verschlüsseln der Daten vor Schreiben der Daten zu der Speichervorrichtung 330, 332 benutzt. Auch wird der Schlüssel oder sonstige Parameter zum Entschlüsseln der aus der Speichervorrichtung 330, 332 ausgelesenen Informationen zum Dekodieren der Informationen und Rücktransformieren in die geschriebenen Daten benutzt. Wenn der Schlüssel oder sonstige Parameter von dem, Schlüssel oder sonstigen Parameter wie er geschrieben wurde geändert wird, treten Probleme auf. Wenn ein Schlüssel oder sonstiger zum Schreiben der Daten benutzter Parameter geändert wird, wird Decodieren oder Entschlüsseln der Informationen nicht die geschriebenen Daten ergeben. In der Tat werden bedeutungslose oder „Müll”-Daten wiedergegeben. Dies kann viel zeitaufwändige Verfahren wie beispielsweise Fehlerwiedergewinnungsverfahren auslösen, was die Reaktionsfähigkeit des Speichersystems 300 verlangsamen kann. Es ist nicht wünschenswert, langsame Reaktionszeiten zu besitzen. Anstatt diese Verfahren auszulösen, die die Leistung des Speichersystems 300 verschlechtern können, ist das Speichersystem 300 mit einem Verfahren zur Wiedergabe einer wünschenswerteren Reaktion vorgesehen. Diese sind nachstehend beschrieben. Diese vermeiden „Müll”-Daten und erzeugen eine Reaktion, als ob keine Daten oder Informationen vorhanden wären.
-
Die vorliegende Offenbarung beschreibt nunmehr Weisen zum Erzeugen einer Lesung von Inhaltsleere aus Speichervorrichtungen, die vorher mit einem unterschiedlichen Schreibparameter beschrieben worden sind. Ein Schreibparameter, der geändert werden könnte, ist ein Schlüssel, der allgemein zum Schreiben von Daten darstellenden Informationen benutzt wird. Anstatt „Müll”-Daten oder -Informationen zurückzulesen wird eine Anzeige von Inhaltsleere erzeugt. Zum Beispiel könnte Inhaltsleere durch eine Lesung von nur „Einsen” oder nur „Nullen” für einen Block oder Satz von Datenblöcken angezeigt sein. Die Erzeugung von Inhaltsleere wird erreicht, wenn die Daten gelesen werden, während die Sicherheitsmaßnahmen beibehalten werden. Wie oben erwähnt ist dies ein Erfordernis bei vielen Vorrichtungen, da Hersteller die Daten nicht aufdecken wollen.
-
4 ist eine Art von mit einer Indirektionssteuerung 320 eines Speichersystems 300 nach einer beispielhaften Ausführungsform verbundenen Tabelle 400. Die Tabelle 400 ist im Speicher 109 der Indirektionssteuerung 300 gespeichert. Die Tabelle 400 umfasst eine logische Blockadresse 410, eine physikalische Blockadresse 420, eine Anzahl von Blöcken 430 und ein Verschlüsselungsschema 440. Die Anzahl von Blöcken ist die Länge der Kette von logischen Blockadressen oder physikalischen Blockadressen. Zum Beispiel beginnt die logische Blockadresse „1” bei der physikalischer Blockadressen „2” und ist acht Blöcke lang. Das Verschlüsselungsschema ist durch eine „1” bezeichnet. Die Tabelle 400 ist eine Abbildung der logischen Blockadressen auf die physikalischen Blockadressen in den Speichervorrichtungen 330, 332. Logische Blockadresse 3 besitzt eine Startadresse „SSD 1”, die einer Festkörpervorrichtung wie beispielsweise der in 3 gezeigten SSD 332 entspricht. Die Tabelle 400 umfasst eine Anzahl von Zeigern. Ein Zeiger ist eine Variable, die die Speicherstelle (Adresse) einiger Daten anstatt der Daten selbst enthält. Anders gesagt könnte die physikalische Blockadresse 420 für jeden der Datenblöcke als Zeiger bezeichnet werden, da sie die Adresse des Beginns des Datenblocks ist, ob er sich in der ersten Speichervorrichtung 330 oder der zweiten Speichervorrichtung 332 befindet.
-
Es gibt mehrere Verfahren zum Rückgeben von „Nullen” aus Daten, die mit einem alten oder sonstigen Verschlüsselungsschema geschrieben worden sind. Die verschiedenen Verfahren werden hinsichtlich der Tabellen wie beispielsweise der Tabelle 400 und sonstigen unten eingeführten Tabellen besprochen.
-
5 is ist ein Verfahren 500 zur Wiedergabe von „Nullen” aus mit einem anderen oder alten Verschlüsselungsschema beschriebenen Daten nach einer beispielhaften Ausführungsform. Das Verfahren 500 umfasst Überwachen des Speichers oder der Speichervorrichtung auf eine Änderung in dem zum Lesen und Schreiben der Daten 510 benutzten Verschlüsselungs-/Entschlüsselungsschema. Überwachung der Speichervorrichtung auf eine Änderung in dem Verschlüsselungs-/Entschlüsselungsschema umfasst Überwachungsspalte 440 der Tabelle 400. Spalte 440 bietet eine Anzeige des benutzten Verschlüsselungsschemas. Wie in 4 gezeigt, ist das für logische Blockadressen 1 und 2 benutzte Verschlüsselungsschema durch einen Wert von „1” in Spalte 440 der Tabelle 400 dargestellt. Dies ist ein anderes oder ein altes Verschlüsselungsschema in dieser beispielhaften Ausführungsform. Das für logische Blockadressen 3 und 4 benutzte Verschlüsselungsschema ist durch einen Wert von „2” dargestellt. Dies ist ein neues Verschlüsselungsschema, das anders als das zum Schreiben der mit logischen Blockadressen 1 und 2 verbundenen Daten benutzte Verschlüsselungsschema. Das Verfahren 500 umfasst Wiedergabe einer Anzeige für wenigstens eine logische Blockadresse in Nullen geschrieben zu sein, wenn die mit der logischen Blockadresse verbundene physikalische Blockadresse mittels eines alten Verschlüsselungs-/Entschlüsselungsschemas 512 verschlüsselt worden ist. In diesem Fall zeigt der Wert „1” in Spalte 440 an, dass ein altes Verschlüsselungsschema für logische Blockadressen 1 und 2 benutzt wurde. Das neue Verschlüsselungsschema oder geänderte oder unterschiedliche Verschlüsselungsschema ist durch einen Wert von „2” in Spalte 440 der Tabelle 4 dargestellt. Das aktuelle Verschlüsselungsschema ist durch den Wert von „2” dargestellt. Als Ergebnis wird der Lesekanal mit einer Eingabe von nur Nullen für die mit logischen Blockadressen 1 und 2 verbundenen Daten versehen, da das mit diesen Daten verbundene angezeigte Verschlüsselungsschema einen Wert von „1” aufweist.
-
6 ist ein Verfahren 600 zur Wiedergabe von „Nullen” aus mit einem anderen oder alten Verschlüsselungsschema geschriebenen Daten nach einer beispielhaften Ausführungsform. Das Verfahren 600 umfasst Überwachen der Speichervorrichtung auf eine Änderung in dem zum Lesen und Schreiben der Daten 610 benutzten Verschlüsselungs-/Entschlüsselungsschema. Überwachen der Speichervorrichtung auf die Änderung im Verschlüsselungs-/Entschlüsselungsschema umfasst Überwachungsspalte 440 der in 4 gezeigten Tabelle 400. Sobald bestimmt wird, dass einige der mit gewissen logischen Blockadressen verbundenen Daten mittels eines alten oder unterschiedlichen Verschlüsselungsschemas verschlüsselt worden sind, werden Nullen zu der physikalischen Blockadresse geschrieben, die vorher mittels des alten Verschlüsselungs-/Entschlüsselungsschemas 612 verschlüsselt worden sind. Daher werden in 4 die mit logischen Blockadressen 1 und 2 verbundenen Daten mit Nullen überschrieben oder neu geschrieben. Insbesondere werden physikalische Blockadresse 2 und die mit logischer Blockadresse 1 verbundenen acht physikalischen Blockadressen mit Nullen überschrieben. Auf ähnliche Weise werden physikalische Blockadresse 172 und die mit logischer Blockadresse 2 verbundenen 21 physikalischen Blockadressen ebenfalls mit Nullen überschrieben. So werden an den eigentlichen, durch die Tabelle 400 angezeigten physikalischen Speicherstellen Nullen auf diese Datenstellen geschrieben.
-
Das Verfahren umfasst auch Lesen der neugeschriebenen physikalischen Blockadressen, die den zugehörigen logischen Blockadressen 614 entsprechen. Anders gesagt werden zu den der logischen Blockadresse zugeordneten physikalischen Blockadressen Nullen geschrieben. Beim Lesen werden zum Lesekanal eigentliche Nullen anstatt von Mülldaten wiedergegeben. Es ist wiederum zu beachten, dass die logischen Blockadressen, die mit Nullen wiedergeschrieben werden, diejenigen sind, wo ein unterschiedliches Verschlüsselungsschema benutzt wird, wie beispielsweise die in 4 gezeigten logischen Blockadressen 1 und 2. Dabei wird angenommen, dass das Verschlüsselungsschema 2 das aktuelle Verschlüsselungsschema ist.
-
7 ist eine weitere Art von mit einer Indirektionssteuerung 320 des Speichersystems 300 verbundenen Tabelle 700 nach einer beispielhaften Ausführungsform. Die Tabelle 700 umfasst Spalten für die logischen Blockadressen 710, die physikalischen Blockadressen, die den logischen Blockadressen 720 entsprechen, die Anzahl von geschriebenen Blöcken 730, eine Anzeige von Ungültigkeit 734 und eine Anzeige des benutzten Verschlüsselungsschemas 740. Wie in 7 gezeigt, wird, wenn ein altes oder unterschiedliches Verschlüsselungsschema benutzt wird, die logische Blockadresse markiert oder wie durch Spalten 734 in der Tabelle 700 dargestellt als ungültig angezeigt. Das aktuelle Verschlüsselungsschema ist durch die Nummer „2” dargestellt und das alte oder unterschiedliche Verschlüsselungsschema ist durch die Nummer „1” in Spalte 740 der Tabelle 700 dargestellt. In Spalte 734 führen die ersten zwei Einträge, die logischen Blockadressen „1” und „2” entsprechen, einen Wert von 1, der anzeigt, dass die mit diesen logischen Blockadressen verbundenen Daten ungültig sind. Die übrigen zwei Einträge für logische Blockadressen „3” und „4” weisen einen Wert von „0” auf, was anzeigt, dass diese logischen Blockadressen oder Daten in diesen logischen Blockadressen darstellenden Informationen mit dem aktuellen Verschlüsselungsschema geschrieben worden sind.
-
8 ist ein Verfahren 800 zur Wiedergabe von „Nullen” aus mit einem unterschiedlichen oder alten Verschlüsselungsschema geschriebenen Daten nach einer beispielhaften Ausführungsform. Das Verfahren 800 umfasst Überwachen des Speichersystems und insbesondere einer Speichervorrichtung 330, 332 auf eine Änderung in dem zum Lesen und Schreiben der Daten 810 benutzten Verschlüsselungs-/Entschlüsselungsschemas. Überwachen der Speichervorrichtung auf eine Änderung in dem Verschlüsselungs-/Entschlüsselungsschema umfasst Überwachen der Spalte 740 der in 7 gezeigten Tabelle 700. Setzen der Ungültigkeit auf einen Wert von „1” kann auch als Setzen eines Merkers hinsichtlich der logischen Blockadressen „1” und „2” bezeichnet werden. Ein Merker ist eine Markierung irgendeiner durch Computerverarbeitung oder Interpretierung von Informationen benutzten Art. Ein Merker ist ein das Bestehen oder den Zustand einer bestimmten Bedingung anzeigendes Signal. In dieser beispielhaften Ausführungsform ist die bestimmte große Bedingung, dass die mit einer bestimmten logischen Blockadresse verbundenen Daten darstellenden Daten oder Informationen mit einem Verschlüsselungsschema geschrieben wurden, das sich von dem aktuellen benutzten Verschlüsselungsschema unterscheidet. Dies wird durch den Wert von 1 in der Ungültigkeitsspalte 734 der Tabelle 700 angezeigt. Auch umfasst das Verfahren 800 Zuordnen von wenigstens einem Merker zu wenigstens einer physikalischen Blockadresse, die mit einer logischen Blockadresse verbunden ist, die anzeigt, dass die Daten darstellenden Informationen an der zugehörigen physikalischen Blockadresse mittels eines alten Verschlüsselungsschemas geschrieben sind. Der Lesekanal oder die Steuerung, die einen Lesekanal steuert, wird die physikalischen Blockadressen der ungültigen Daten nicht lesen und eine Lesung von nur Nullen zur Weiterverarbeitung wiedergeben. Anders gesagt werden Nullen basierend auf der Anzeige von Ungültigkeit der logischen Blockadressen wiedergegeben. Dadurch wird die Wiedergabe von Mülldaten aus den mit den logischen Blockadressen verbundenen physikalischen Blockadressen verhindert.
-
9 ist eine weitere Art von mit einer Indirektionssteuerung 300 einer Speichervorrichtung 300 verbundenen Tabelle 900 nach einer beispielhaften Ausführungsform. In dieser bestimmten Ausführungsform wird, wenn bestimmt wird, dass das Verschlüsselungsschema dem aktuellen Verschlüsselungsschema nicht entspricht, die physikalische Blockadresse für eine bestimmte logische Blockadresse entfernt. Anders gesagt wird der Zeiger, der die beginnende physikalische Blockadresse zeigt, entfernt. Dies ist in Tabelle 900 in Spalte 920 gezeigt. Insbesondere sind die die beginnende physikalische Blockadresse für logische Blockadressen „1” und „2” anzeigenden physikalischen Blockadressen entfernt worden, da das durch einen Wert von „1” angezeigte Verschlüsselungsschema alt oder anders als das aktuelle Verschlüsselungsschema ist. Ohne eine physikalische Blockadresse als Startpunkt nimmt die Speichervorrichtung an, dass die den Werten von „1” und „2” entsprechenden logischen Blockadressen leer sind und wird daher automatisch Nullen als aus den logischen Blockadressen gelesen wiedergeben.
-
10 ist ein Flussdiagramm eines Verfahrens 1000 zum Verhindern der Erzeugung von Mülldaten nach einer beispielhaften Ausführungsform. Das Verfahren 1000 umfasst Überwachen der Speichereinrichtung oder Speichervorrichtung auf eine Änderung in dein zum Lesen und Schreiben der Daten 1010 benutzten Verschlüsselungs-/Entschlüsselungsschema. Überwachen der Speichereinrichtung auf die Änderung im Verschlüsselungs-/Entschlüsselungsschema 1010 umfasst Überwachen der Spalte 440 der in 9 gezeigten Tabelle 900. Auch umfasst das Verfahren Entfernen eines Zeigers aus der logischen Blockadresse zu der physikalischen Blockadresse bei einer Anzeige, dass ein neues Verschlüsselungs-/Entschlüsselungsschema zum Lesen der Daten 1012 benutzt wird. Anders gesagt wird der mit den ein altes oder unterschiedliches Verschlüsselungs-/Entschlüsselungsschema darstellenden Informationen verbundene Zeiger entfernt, so dass die logische Blockadresse leer erscheint. Wenn sich an einer logischen Blockadresse keine Daten befinden, wird der Lesekanal Nullen wiedergeben, um anzuzeigen, dass keine Daten vorhanden sind. Auf diese Weise wird wiederum das Lesen von Mülldaten verhindert.
-
Eine Speichervorrichtung umfassend wenigstens eine Speicherstelle zum Speichern von mittels eines ersten Verschlüsselungs-/Entschlüsselungsverfahrens geschriebenen Daten darstellenden Informationen und ein Lesekanal mit einem zweiten Verschlüsselungs-/Entschlüsselungsverfahren zum Lesen und Entschlüsseln von Informationen wie sie geschrieben sind. Auch umfasst die Speichervorrichtung eine Einrichtung, die das Lesen der wenigstens einen, das zweite Verschlüsselungs-/Entschlüsselungsverfahren benutzenden Speicherstelle als Reaktion auf eine Anzeige, dass die wenigstens eine Speicherstelle mittels des ersten Verschlüsselungs-/Entschlüsselungsverfahrens geschrieben wurde, verhindert. Die Einrichtung, die das Lesen der wenigstens einen physikalischen Blockadresse verhindert, umfasst eine Vorrichtung zum Zuordnen eines Merkers zu der mittels des ersten Verschlüsselungs-/Entschlüsselungsverfahrens geschriebenen wenigstens einen Speicherstelle. Die Einrichtung, die das Lesen der wenigstens einen physikalischen Blockadresse verhindert, umfasst auch eine Vorrichtung zur Wiedergabe von Inhaltsleere für die wenigstens eine, mittels des ersten Verschlüsselungs-/Entschlüsselungsverfahrens beschriebene Speicherstelle als Reaktion auf eine Anzeige, dass der Lesekanal ein zweites Verschlüsselungs-/Entschlüsselungsverfahren benutzt. Die Einrichtung, die das Lesen der wenigstens einen mit dem ersten Verschlüsselungs-/Entschlüsselungsverfahren beschriebenen Speicherstelle verhindert, umfasst in einer Ausführungsform eine Vorrichtung zum Schreiben von Nullen zu der wenigstens einen, mittels des ersten Verschlüsselungs-/Entschlüsselungsverfahrens beschriebenen Speicherstelle. In einer Ausführungsform befinden sich die Daten darstellenden Informationen in einen Block und die wenigstens eine Speicherstelle ist wenigstens eine physikalische Blockadresse. In einigen Ausführungsformen umfasst die Speichervorrichtung auch ein Indirektionssystem. Das Indirektionssystem umfasst wenigstens eine logische Blockadresse und eine Datenbank, die die wenigstens eine logische Blockadresse auf die wenigstens eine physikalische Blockadresse abbildet. In einer Ausführungsform umfasst das Indirektionssystem eine Einrichtung, die das Abbilden der wenigstens einen logischen Blockadresse auf die wenigstens eine physikalische Adresse als Reaktion auf die Verwendung eines zweiten Verschlüsselungs-/Entschlüsselungsverfahrens durch den Lesekanal unerreichbar macht, wenn die wenigstens eine physikalische Blockadresse mittels des ersten Verschlüsselungs-/Entschlüsselungsverfahrens geschrieben ist. Das zweite Verschlüsselungs-/Entschlüsselungsverfahren unterscheidet sich von dem ersten Verschlüsselungs-/Entschlüsselungsverfahren. Ein mit dem zweiten Verschlüsselungs-/Entschlüsselungsverfahren verbundener zweiter Verschlüsselungsparameter unterscheidet sich von einem ersten, mit dem ersten Verschlüsselungs-/Entschlüsselungsverfahren verbundenen Verschlüsselungsparameter. In einer weiteren beispielhaften Ausführungsform unterscheidet sich ein mit dem zweiten Verschlüsselungs-/Entschlüsselungsverfahren verbundener zweiter Verschlüsselungsbereichsparameter von einem mit dem ersten Verschlüsselungs-/Entschlüsselungsverfahren verbundenen ersten Verschlüsselungsbereichsparameter. In weiteren Ausführungsformen unterscheidet sich ein zweiter Verschlüsselungsschlüsselparameter des zweiten Verschlüsselungs-/Entschlüsselungsverfahrens von einem ersten Verschlüsselungsschlüsselparameter des ersten Verschlüsselungs-/Entschlüsselungsverfahrens.
-
Eine Speichereinrichtung umfasst eine Festkörpervorrichtung mit einer Vielzahl von Speicherstellen, einem Schreibkanal zum Schreiben von Daten darstellenden Informationen zur Vielzahl von Speicherstellen in einer Festkörpervorrichtung und einem Lesekanal zum Lesen von Daten darstellenden Informationen aus der Vielzahl von Speicherstellen in einer Festkörpervorrichtung. Auch umfasst die Speichereinrichtung eine Steuerung, die Operationen der Speichereinrichtung einschließlich von Schreibens von Informationen in die Vielzahl von Speicherstellen in einer Festkörpervorrichtung und des Lesens von Daten darstellenden Informationen aus der Vielzahl von Speicherstellen in einer Festkörpervorrichtung steuert. Auch umfasst die Speichereinrichtung ein Indirektionssystem weiterhin umfassend einen Satz von logischen Blockadressen und einen Satz von physikalischen Blockadressen, die der Vielzahl von Speicherstellen in der Festkörpervorrichtung der Speichereinrichtung entsprechen. Auch umfasst das Indirektionssystem eine Abbildung, die logische Blockadressen mit wenigstens einer physikalischen Blockadresse verbindet. Auch umfasst die Abbildung wenigstens einen ein zum Schreiben und Lesen von Daten von der physikalischen Blockadresse benutztes Verschlüsselungs-/Entschlüsselungsverfahren anzeigenden Merker. Von der Steuerung wird eine Lesung von Nullen wiedergegeben, wenn das zum Lesen der physikalischen Blockadresse benutzte Verschlüsselungs-/Entschlüsselungsverfahren sich geändert hat. In einer beispielhaften Ausführungsform bewirkt die Steuerung, dass die physikalische Blockadresse als Reaktion auf eine Änderung im Verschlüsselungs-/Entschlüsselungsverfahren mit Nullen geschrieben wird. In einer weiteren beispielhaften Ausführungsform werden von der Steuerung als Reaktion auf eine Anzeige einer Änderung im Verschlüsselungs-/Entschlüsselungsverfahren nur Nullen wiedergegeben. In einer weiteren Ausführungsform wird von der Steuerung ein Zeiger in der Abbildung zwischen der logischen Blockadresse und der physikalischen Blockadresse als Reaktion auf eine Anzeige einer Änderung im Verschlüsselungs-/Entschlüsselungsverfahren entfernt. In einer weiteren Ausführungsform wird von der Steuerung ein Merker erzeugt, der anzeigt, dass Informationen an einer physikalischen Blockadresse ungültig sind, als Reaktion auf eine Anzeige einer Änderung im Verschlüsselungs-/Entschlüsselungsverfahren. Von der Steuerung wird das Schreiben von Informationen zu der Festkörpervorrichtung und das Lesen von Daten darstellenden Informationen aus der Festkörpervorrichtung gesteuert. Das Indirektionssystem umfasst einen Satz physikalischer Blockadressen, die eigentlichen Speicherstellen der Festkörpervorrichtung entsprechen. Die Abbildung zum Verbinden von logischen Blockadressen mit wenigstens einer eigentlichen Speicherstelle der Festkörpervorrichtung umfassen auch wenigstens einen Merker, der ein zum Schreiben und Lesen von Daten von den eigentlichen Speicherstellen der Festkörpervorrichtung benutztes Verschlüsselungs-/Entschlüsselungsverfahren anzeigt. Wenn der Merker gesetzt ist, wird von der Steuerung eine Lesung von Nullen wiedergegeben, wenn sich das zum Lesen der eigentlichen Speicherstellen der Festkörpervorrichtung benutzte Verschlüsselungs-/Entschlüsselungsverfahren geändert hat.
-
Ein Verfahren zum Verringern der Erzeugung von Mülldaten in einer Speichereinrichtung umfasst Überwachen einer Speichereinrichtung auf eine Änderung in einem zum Lesen und Schreiben von Daten benutzten Verschlüsselungs-/Entschlüsselungsverfahren und als Reaktion auf die Änderung im Verschlüsselungs-/Entschlüsselungsverfahren Bewirken, dass wenigstens eine logische Blockadresse eine Anzeige, in Nullen geschrieben zu sein wiedergibt, wenn die mit der logischen Blockadresse verbundene physikalische Blockadresse mittels des alten Verschlüsselungs-/Entschlüsselungsverfahrens verschlüsselt worden ist. In einer Ausführungsform wird die vorher mittels des alten Verschlüsselungs-/Entschlüsselungsverfahrens verschlüsselte physikalische Blockadresse mittels des neuen Verschlüsselungs-/Entschlüsselungsverfahrens als Nullen geschrieben. In einer weiteren Ausführungsform wird ein Zeiger von der logischen Blockadresse zur physikalischen Blockadresse bei einer Anzeige entfernt, dass ein neues Verschlüsselungs-/Entschlüsselungsverfahren zum Lesen von Daten benutzt wird. Dadurch wird eine Lesung der Art von nur Nullen erzeugt und die Erzeugung von Mülldaten verhindert. In einer noch weiteren Ausführungsform gibt es eine Vielzahl logischer Blockadressen, die mit einer mit einem alten Verschlüsselungs-/Entschlüsselungsverfahren beschriebenen Vielzahl von physikalischen Blockadressen verbunden sind. Die Zeiger für die Vielzahl logischer Blockadressen werden zu der vorher mit einem alten Verschlüsselungs-/Entschlüsselungsverfahren beschriebenen Vielzahl von physikalischen Blockadressen entfernt. In einer noch weiteren Ausführungsform wird die Vielzahl von logischen Blockadressen auf die physikalischen Blockadressen in einer Abbildung abgebildet. Die Abbildung umfasst weiterhin wenigstens einen Merker, der anzeigt, dass Daten darstellende Informationen an einer logischen Blockadresse ungültig sind, wenn die zu der mit der logischen Blockadresse verbundenen physikalischen Blockadresse geschriebene Daten darstellenden Informationen mittels eines alten Verschlüsselungsverfahrens geschrieben sind.
-
In einem oder mehreren Beispielen können die beschriebenen Funktionen in Hardware, Software, Firmware oder einer beliebigen Kombination derselben ausgeführt werden. Wenn sie in Software ausgeführt sind, können die Funktionen als eine oder mehrere Anweisungen oder Code, ein computerlesbares Medium und ausgeführt durch eine auf Hardware basierende Verarbeitungseinheit gespeichert oder darüber übertragen werden. Computerlesbare Medien können computerlesbare Speichermedien umfassen, die einem fassbaren Medium entsprechen, wie beispielsweise Datenspeichermedien oder Kommunikationsmedien einschließlich jedes Mediums, das Übertragung eines Computerprogramms von einer Stelle zu einer anderen erleichtert, z. B. nach einem Kommunikationsprotokoll. Auf diese Weise können computerlesbare Medien allgemein (1) fassbaren computerlesbaren Speichermedien, die nichtflüchtig sind oder (2) einem Kommunikationsmedium wie beispielsweise einer Signal- oder Trägerwelle entsprechen. Datenspeichermedien können alle verfügbaren Medien sein, auf die durch einen oder mehrere Computer oder einen oder mehrere Prozessoren zum Abrufen von Anweisungen, Code und/oder Datenstrukturen zur Ausführung der in der vorliegenden Offenbarung beschriebenen Verfahren zugegriffen werden kann. Ein Computerprogrammprodukt kann ein computerlesbares Medium umfassen.
-
Beispielsweise und nicht als Begrenzung können solche computerlesbaren Speichermedien RAM, ROM, EEPROM, CD-ROM oder sonstige optische Plattenspeicherung, Magnetplattenspeicherung oder sonstige magnetische Speichervorrichtungen, Flash-Speicher oder jedes sonstige Medium umfassen, das zum Speichern gewünschten Programmcodes in der Form von Anweisungen oder Datenstrukturen benutzt werden kann, auf die durch einen Computer zugegriffen werden kann. Auch wird jede Verbindung ordnungsgemäß als computerlesbares Medium bezeichnet. Wenn zum Beispiel Anweisungen von einer Website, einem Server oder sonstigen entfernten Quelle mittels von Koaxialkabel, faseroptischem Kabel, verdrilltem Paar, digitaler Teilnehmerleitung (DSL – Digital Subscriber Line) oder drahtlosen Technologien wie beispielsweise Infrarot, Funk und Mikrowellen übertragen werden, dann sind das Koaxialkabel, faseroptische Kabel, verdrilltes Paar, DSL oder drahtlose Technologien wie beispielsweise Infrarot, Funk und Mikrowellen in der Definition von Medium eingeschlossen. Es versteht sich jedoch, dass computerlesbare Speichermedien und Datenspeichermedien nicht Verbindungen, Trägerwellen, Signale oder sonstige flüchtige Medien umfassen, sondern stattdessen auf nichtflüchtige, fassbare Speichermedien gerichtet sind. Platte und Diskette, so wie es hier benutzt wird, umfasst Festplatte (CD – Compact Disc), Laserplatte, Optische Platte, Digitale Videoplatte (DVD), Festplatte und Blu-Ray-Platte, wo Platten (Disks) gewöhnlich Daten magnetisch wiedergeben, während Discs Daten optisch mit Lasern wiedergeben. Kombinationen der obigen sollten ebenfalls im Schutzumfang computerlesbarer Medien enthalten sein.
-
Anweisungen können durch einen oder mehrere Prozessoren ausgeführt werden, wie einen oder mehrere Digitalsignalprozessoren (DSP), Mehrzweckmikroprozessoren, anwendungsspezifische integrierte Schaltungen (ASIC – Application Specific Integrated Circuits), kundenprogrammierbare Logikanordnungen (FPGA – Field Programmable Logic Arrays) oder sonstige gleichwertige integrierte oder diskrete Logikschaltungen ausgeführt werden. Dementsprechend kann sich der Begriff „Prozessor” so wie er hier benutzt wird auf jede beliebige der vorangehenden Strukturen oder jede andere zur Ausführung der hier beschriebenen Verfahren geeignete Struktur beziehen. Auch könnten die Verfahren voll in einer oder mehreren Schaltungen oder Logikelementen ausgeführt werden.
-
Die Verfahren der vorliegenden Offenbarung können in einer großen Vielzahl von Vorrichtungen oder Einrichtungen ausgeführt werden, einschließlich eines drahtlosen Handapparats, einer integrierten Schaltung (IC – Integrated Circuit) oder eines Satzes von IC (z. B. einem Chipsatz). Verschiedene Bauteile, Module oder Einheiten sind in der vorliegenden Offenbarung zum Betonen von Funktionsaspekten von Vorrichtungen eingerichtet zum Durchführen der offenbarten Verfahren beschrieben, erfordern aber nicht unbedingt Realisierung durch verschiedene Hardwareeinheiten. Stattdessen können wie oben beschrieben verschiedene Einheiten in einer Hardwareeinheit kombiniert sein oder durch eine Ansammlung von interoperativen Hardwareeinheiten bereitgestellt sein einschließlich eines oder mehrerer Prozessoren wie oben beschrieben, in Verbindung mit geeigneter Software und/oder Firmware.
-
Für Erläuterungszwecke benutzte die vorangehende Beschreibung bestimmte Bezeichnungen, um ein gründliches Verständnis der Erfindung zu bieten. Dem Fachmann wird jedoch offenbar sein, dass die bestimmten Einzelheiten nicht zum Ausüben der Erfindung erforderlich sind. So sind die vorangehenden Beschreibungen bestimmter Ausführungsformen der vorliegenden Erfindung für Zwecke der Darstellung und Beschreibung dargeboten. Sie sollen nicht erschöpfend sein oder die Erfindung auf die genauen offenbarten Formen begrenzen. Dem gewöhnlichen Fachmann wird offenbar sein, dass angesichts der obigen Lehre viele Abänderungen und Änderungen möglich sind.
-
Die Ausführungen wurden gewählt und beschrieben, um die Grundsätze der Erfindung und ihre praktischen Anwendungen am besten zu erläutern, um dadurch anderen Fachleuten zu ermöglichen, die Erfindung und verschiedene Ausführungsformen mit verschiedenen Abänderungen, so wie sie für die bestimmte in Betracht gezogene Benutzung geeignet sind, am besten zu nutzen. Es ist beabsichtigt, dass der Schutzumfang der Erfindung durch die nachfolgenden Ansprüche und ihre Entsprechungen definiert sein soll.
-
Während die Ausführungsformen als mehrere bestimmte Ausführungsformen beschrieben worden sind, gibt es Änderungen, Umsetzungen und Entsprechungen, die in den Schutzbereich dieser allgemeinen Konzepte fallen. Auch ist zu bemerken, dass es viele alternative Weisen zum Ausführen der Verfahren und Einrichtungen der gegenwärtigen Ausführungsformen gibt. Die nachfolgenden beiliegenden Ansprüche sollen daher als alle derartigen Änderungen, Umsetzungen und Entsprechungen enthaltend ausgelegt werden, sofern sie in den wahren Sinn und Schutzbereich der beschriebenen Ausführungsformen fallen. Diese und weitere beispielhafte Ausführungsformen liegen im Schutzbereich der nachfolgenden Ansprüche.
-
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
-
- An Opal SSC compliant SD SHALL implement Full Disk Encryption for all host accessible user data stored an media. AES-128 or AES-256 SHALL be supported [Paragraph 2.4, page 10 of 81 of the TCG Storage Opal SSC, version 1.0. [0004]
- Supports Opal SSC unique behaviors (e. g. communication, table management) [Section 2.1, page 10/81] [0004]
- Eine Opal SSC konforme SD MUSS volle Plattenverschlüsselung für alle dem Host zugänglichen, auf Medien gespeicherten Benutzerdaten implementieren. AES-128 oder AES-256 WERDEN unterstützt [Absatz 2.4, Seite 10 von 81 der TCG Speicher-Opal-SSC, Version 1.0 [0004]
- Unterstützt für Opal SSC einzigartige Verhalten (z. B. Kommunikation, Tabellenmanagement) [Abschnitt 2.1, Seite 10/81] [0004]