-
Ausführungsbeispiele betreffen allgemein Datenverarbeitungsvorrichtungen und Verfahren zum Verifizieren von Krypto-Daten.
-
Elektronische Geräte müssen in einer Vielzahl von Anwendungen gegen Angriffe geschützt sein. Ein typisches Beispiel sind Chipkarten, die geheime Daten verarbeiten und speichern. In einem solchen elektronischen Gerät kann es zum Schutz von geheimen Daten vorgesehen sein, dass Daten nur in verschlüsselter Form in einem Speicher des Geräts abgelegt werden, um zu vermeiden, dass ein Angreifer die Daten ausliest. Dafür muss das elektronische Gerät allerdings einen kryptographischen Schlüssel, der zur Verschlüsselung und Entschlüsselung von Speicherinhalten verwendet wird, speichern. Um die Sicherheit der verschlüsselten Daten zu gewährleisten, ist ein Mechanismus erforderlich, der den Schlüssel vor Manipulation durch einen Angreifer schützt.
-
Gemäß einer Ausführungsform wird eine Datenverarbeitungsvorrichtung bereitgestellt, die einen Speicher, der eingerichtet ist, erste Krypto-Daten zur Ausführung einer ersten Sicherheitsfunktion zu speichern und eine Ermittlungsschaltung, die eingerichtet ist, zweite Krypto-Daten zur Ausführung einer zweiten Sicherheitsfunktion zu ermitteln, aufweist. Die Datenverarbeitungsvorrichtung weist ferner eine Verknüpfungsschaltung auf, die eingerichtet ist, basierend auf den ersten Krypto-Daten und den zweiten Krypto-Daten Verknüpfungsdaten zu ermitteln, mittels welcher die zweiten Krypto-Daten aus den ersten Krypto-Daten rekonstruiert werden können, und die Verknüpfungsdaten in dem Speicher zu speichern. Eine Überprüfungsschaltung der Datenverarbeitungsvorrichtung ist eingerichtet, die ersten Krypto-Daten und die Verknüpfungsdaten aus dem Speicher zu lesen, die zweiten Krypto-Daten aus den ersten Krypto-Daten mittels der Verknüpfungsdaten zu rekonstruieren, zu überprüfen, ob die zweite Sicherheitsfunktion mittels der rekonstruierten zweiten Krypto-Daten ausführbar ist und die gespeicherten ersten Krypto-Daten als verifiziert einzustufen, wenn die zweite Sicherheitsfunktion mittels der rekonstruierten zweiten Krypto-Daten ausführbar ist.
-
Die Figuren geben nicht die tatsächlichen Größenverhältnisse wieder, sondern sollen dazu dienen, die Prinzipien der verschiedenen Ausführungsbeispiele zu illustrieren. Im Folgenden werden verschiedene Ausführungsbeispiele mit Bezug auf die folgenden Figuren beschrieben.
- 1 zeigt eine Datenverarbeitungsvorrichtung.
- 2 zeigt ein Beispiel einer Datenverarbeitungsvorrichtung gemäß einer Ausführungsform mit einer Speicherverschlüsselungseinheit zum Entschlüsseln und Verschlüsseln von Speicherinhalten eines RAMs und eines nicht-flüchtigen Speichers (non-volatile memory - NVM).
- 3 zeigt eine Datenverarbeitungsvorrichtung gemäß einer Ausführungsform.
- 4 zeigt ein Flussdiagramm, das ein Verfahren zum Verifizieren von Krypto-Daten veranschaulicht.
-
Die folgende detaillierte Beschreibung bezieht sich auf die beiliegenden Figuren, die Details und Ausführungsbeispiele zeigen. Diese Ausführungsbeispiele sind so detailliert beschrieben, dass der Fachmann die Erfindung ausführen kann. Andere Ausführungsformen sind auch möglich und die Ausführungsbeispiele können in struktureller, logischer und elektrischer Hinsicht geändert werden, ohne vom Gegenstand der Erfindung abzuweichen. Die verschiedenen Ausführungsbeispiele schließen sich nicht notwendig gegenseitig aus, sondern es können verschiedene Ausführungsformen miteinander kombiniert werden, so dass neue Ausführungsformen entstehen. Im Rahmen dieser Beschreibung werden die Begriffe „verbunden“, „angeschlossen“ sowie „gekoppelt“ verwendet zum Beschreiben sowohl einer direkten als auch einer indirekten Verbindung, eines direkten oder indirekten Anschlusses sowie einer direkten oder indirekten Kopplung.
-
1 zeigt eine Datenverarbeitungsvorrichtung 100.
-
Die Datenverarbeitungsvorrichtung 100 kann ein Steuergerät oder ein Mikrocontroller in einem Fahrzeug, z.B. eine ECU (Electronic Control Unit) in einem Auto, sein. Sie kann auch ein Chipkarten-IC (integrated circuit) einer Chipkarte wie eine Smartcard mit einem beliebigen Formfaktor, z.B. für einen Pass oder für eine SIM (Subscriber Identity Module), sein.
-
Die Datenverarbeitungsvorrichtung 100 weist einen Prozessor (z.B. eine CPU) 101 auf, auf der ein Betriebssystem (OS) 102 ausgeführt wird. Die Datenverarbeitungsvorrichtung 100 weist in diesem Beispiel einen ersten Speicher 103 und einen zweiten Speicher 104 auf. Die beiden Speicher 103, 104 sind mittels einer jeweiligen Speicherverschlüsselungseinheit 105, 106 mit dem Prozessor 101 verbunden.
-
Jede Speicherverschlüsselungseinheit 105, 106 verschlüsselt Daten, bevor sie in dem jeweiligen Speicher 103, 104 gespeichert werden, und entschlüsselt Daten, die aus dem jeweiligen Speicher 103, 104 ausgelesen werden. Dazu ist jede Speicherverschlüsselungseinheit 105, 106 mit einem jeweiligen Schlüsselregister 107, 108 verbunden, das einen Schlüssel speichert, der von der Speicherverschlüsselungseinheit 105, 106 zum Entschlüsseln und Verschlüsseln von Daten verwendet wird.
-
Die Speicher 103, 104 können verschiedene flüchtige oder nicht-flüchtige Speicher sein. Beispielsweise ist ein Speicher ein nicht-flüchtiger Speicher (z.B. ein Flash-Speicher, NVM) und der andere Speicher ist ein flüchtiger Speicher (z.B. ein RAM (Random Access Memory)), der der Datenverarbeitungsvorrichtung als Arbeitsspeicher dient.
-
Ein kryptographischer Schlüssel einer Speicherverschlüsselungseinheit 105, 106 (z.B. eines Chipkarten-Controllers) soll typischerweise gegen Manipulationen beim Erzeugen des Schlüssels und während der Benutzung des abgespeicherten Schlüssels zur Ver- und Entschlüsselung von Speicherinhalten geschützt werden.
-
Ein Schlüssel zum Sichern von Speicherinhalten wird beispielsweise vom Betriebssystem 102 sitzungsindividuell (wobei eine Sitzung als die Zeitspanne zwischen dem boot-up und dem power-down des ICs angesehen werden kann) erzeugt und in das jeweilige Schlüsselregister 107, 108 geschrieben. Es ist speziell bei flüchtigen Speichern üblich, dass ein Schlüssel sitzungsindividuell erzeugt wird, d.h. nach einem boot-up ein neuer Schlüssel generiert wird und zur Anwendung kommt.
-
Ein Angreifer kann durch einen Fehlerangriff (zum Beispiel mittels Laser-Attacken oder Probing-Nadeln) diesen Generierungs-Vorgang stören oder unterbinden. Ein Angreifer kann auch den gespeicherten Schlüssel nachträglich manipulieren. So kann ein Angreifer die Entropie des in dem Register 107, 108 gespeicherten Schlüssels reduzieren, ohne dass die grundsätzliche Funktion der Verschlüsselung beeinträchtigt wird. Entsprechend sind Maßnahmen wünschenswert, die es ermöglichen, solche Manipulationen zu erkennen.
-
Eine Möglichkeit zur Überprüfung eines Schlüssels (oder allgemein eines Konfigurationsparameters), der in einem Register gespeichert ist, besteht darin, den Registerinhalt durch Auslesen zu verifizieren. Dafür kann ein eigener Übertragungskanal (zum Beispiel ein Re-Read-Register) existieren. Der Registerinhalt kann dabei beim Zurücklesen geeignet umcodiert werden (zum Beispiel durch Verwendung fehlererkennender Codes), um systematische Veränderungen von Datum und Prüfwert (zum Beispiel durch Manipulation eines Datenbusses) erkennen zu können. Diese Herangehensweise schützt allerdings nicht einen bereits abgespeicherten Wert gegen nachträgliche Manipulation des Registerinhalts.
-
Alternativ kann ein Schüssel redundant übertragen und vom empfangenden Register geprüft werden. Dazu können Codes z.B. lineare Codes verwendet werden. Dafür ist es jedoch erforderlich, dass eine entsprechende Redundanzinformation zusätzlich zu den eigentlichen Schlüsseldaten erzeugt, übertragen und geprüft werden muss.
-
Sollen für die Sicherheitseigenschaften einer Chipkarten-Steuervorrichtung wichtige Konfigurationsparameter (wie Schlüssel) auch gegen nachträgliche Manipulationen der gespeicherten Registerinhalte geschützt werden, kann ein sogenannter OOC (Online-Configuration-Checker) verwendet werden. Ein OCC hat zwei Betriebszustände:
- • Während eines Konfigurationszustands können zu schützende Register (zum Beispiel ein Schlüsselregister für eine Speicherverschlüsselung) von einem Prozessor mit den notwendigen Betriebsparametern (zum Beispiel dem zu verwendenden Schlüssel) beschrieben und konfiguriert werden. In diesem Modus ist die zugehörige zu schützende Komponente (zum Beispiel eine Speicherverschlüsselungseinheit) nicht funktionsfähig. Dieser Konfigurationszustand kann an eine gesicherten Umgebung gekoppelt sein, um Manipulationen oder Angriffe auf die Chipkarte während dieses Zustandes auszuschließen.
- • Wenn alle für den Betrieb notwendigen Parameter gesetzt sind, wird der OCC in den Betriebszustand geschaltet. Dieser Zustand wird durch das Schreiben einer kryptographischen Prüfsumme in ein Register aktiviert. Dabei wird die Prüfsumme über die Werte der konfigurierten Registerinhalte (zum Beispiel den zu verwendenden Schlüssel) berechnet. Im Betriebszustand kann die zu schützende Komponente verwendet werden. Die Hardware des OCCs berechnet aus den konfigurierten Registerinhalten permanent die kryptographische Prüfsumme und vergleicht das Ergebnis mit dem Wert, der zur Aktivierung des Betriebszustands verwendet wurde. Sind die Werte unterschiedlich wird ein Sicherheitsalarm ausgelöst und die zu schützende Komponente deaktiviert.
-
Die Verwendung eines solchen OOCs ist jedoch verhältnismäßig aufwändig.
-
Gemäß verschiedenen Ausführungsbeispielen, wie sie im Folgenden beschrieben werden, werden zwei Schlüssel (k1 , k2 ) miteinander zu einem Wert verknüpft v = f(k1, k2). Die Verknüpfungsabbildung f wird dabei bijektiv gewählt, um aus Kenntnis des Verknüpfungsergebnisses v und eines der beiden Schlüssel den anderen Schlüssel wieder rekonstruieren zu können, z.B. k2 aus k1 gemäß k2 = g(k1, v) und um die Entropie der verwendeten Schlüssel nicht zu reduzieren. Dazu kann beispielsweise eine bitweise XOR Verknüpfung der beiden Schlüssel als Funktion f verwendet werden.
-
2 zeigt ein Beispiel einer Datenverarbeitungsvorrichtung 200 mit einer Speicherverschlüsselungseinheit 201 zum Entschlüsseln und Verschlüsseln von Speicherinhalten eines RAMs 202 und eines nicht-flüchtigen Speichers (NVM) 203.
Die Speicherverschlüsselungseinheit 201 verwendet beispielsweise einen ersten Schlüssel k1 = KeyRAM zum Entschlüsseln und Verschlüsseln von Speicherinhalten des RAMs 202 und einen zweiten Schlüssel k2 = KeyNVM zum Entschlüsseln und Verschlüsseln von Speicherinhalten des NVMs 203.
-
Mittels der Speicherverschlüsselungseinheit 201 kann eine Einheit, z.B. ein Prozessor 204, auf die beiden Speicher 202, 203 zugreifen, wie es mit Bezug auf 1 beschrieben ist. Auf dem Prozessor kann ein Betriebssystem laufen.
-
Zur Konfiguration schreibt die Speicherverschlüsselungseinheit 201 einen der beiden Schlüssel (zum Beispiel k1 = KeyRAM) und das Ergebnis v der Verknüpfung (zum Beispiel v = KeyRAM XOR KeyNVM) in zugehörige Schlüssel-Register 205, 206.
-
Die Speicherverschlüsselungseinheit 201 (z.B. eine entsprechende Hardware, d.h. z.B. eine fest-verdrahtete dafür eingerichtete Schaltung der Speicherverschlüsselungseinheit 201) verwendet die Werte k1 und v zum Berechnen von k'2 = g(k1, v). Dies kann permanent erfolgen, z.B. bei jedem Zugriff auf den nicht-flüchtigen Speicher 203.
-
Die Speicherverschlüsselungseinheit 201 verwendet den berechneten Wert k'2 direkt (z.B. ohne Zwischenspeichern in einem Schlüsselregister) als Schlüssel zur Ver- und Entschlüsselung von Inhalten des nicht-flüchtigen Speichers 203.
-
Bei Vorliegen einer Speicherredundanz, z.B. einer Prüfsumme im NVM, kann ein Entschlüsseln der NVM-Speicherinhalten mit dem Schlüssel k'2 überprüft werden. So kann auf diese Weise implizit eine Manipulation des im Register gespeicherten Schlüssels k1 festgestellt werden. Jede Manipulation eines der Werte k1 und v während der Konfiguration oder im Betrieb führt durch die Eigenschaften der Verknüpfungsabbildung f zu Veränderungen des implizit berechneten Schlüssels k'2 . Ein falscher Schlüssel k'2 kann aber bei der Entschlüsselung von gespeicherten NVM-Speicherinhalten erkannt werden. Die Speicherverschlüsselungseinheit 201 löst bei Erkennung eines durch z.B. einen Angriff veränderten Schlüssels einen Sicherheitsalarm aus.
-
Die Erkennungswahrscheinlichkeit für zufällige oder gezielte simultane Änderungen beider Werte k1 und v während der Konfiguration oder der gespeicherten Registerinhalte im Betrieb hängt vom Fehlermodell des Angreifers sowie von kryptographischen Eigenschaften der verwendeten Verknüpfungsabbildungen f und g und von physikalischen Eigenschaften der Realisierung in Hardware ab.
-
Der mit Bezug auf 2 beschriebene Schutz von Konfigurationsparametern während der Initialisierung und gegen nachträgliche Manipulation kann einfacher implementiert werden als ein entsprechender Ansatz unter Verwendung von OCC. Bei geeigneter Wahl der Verknüpfungsabbildung f und ihrer inversen Abbildung g ist es möglich, dass die Abbildung f durch ein kompaktes Programm während der Initialisierung der Konfigurationsregister 205. 206 berechnet wird und dass die resultierende Schaltung zur Berechnung der inversen Abbildung g deutlich weniger Gatter und Fläche benötigt als ein OCC. Außerdem entfallen das Umschalten zwischen Konfigurations- und Betriebsmodus und ein eventuelles Rücklesen und Vergleichen der tatsächlich gespeicherten Konfigurationsparameter nach erfolgter Aktivierung des OCCs, um eine Manipulation der Registerinhalte während der Konfigurationsphase des OCCs erkennen zu können.
-
Insbesondere sind bei der mit Bezug auf 2 beschriebenen Herangehensweise keine zusätzlichen Signale und Speicherzellen zur Übertragung und Speicherung der Redundanz für den zu schützenden Wert k1 notwendig.
-
Die mit Bezug auf 2 beschriebene Herangehensweise kann durch Verwendung der XOR-Verknüpfung (exklusives ODER) als eine Möglichkeit für die Verknüpfungsfunktion f einfach und effizient realisiert werden. Im folgenden Beispiel wird dabei angenommen, dass k1 und k2 die gleiche Länge haben. Die Verknüpfungsabbildungen f und g werden dann beispielsweise folgendermaßen definiert:
- •
- •
-
Die Abbildung f wird dabei beispielsweise in Software durch das Betriebssystem während der Initialisierung der Schlüssel k1 = KeyRAM und k2 = KeyNVM berechnet. Die Speicherverschlüsselungseinheit kann Hardware (z.B. eine fest-verdrahtete dafür eingerichtete Schaltung) zur Berechnung des Schlüssels k'2 = g(k1, v) zur Entschlüsselung von NVM-Speicherinhalten aufweisen, die aus XOR Gattern zur bit-weisen Verknüpfung der in den Registern 205, 206 gespeicherten Konfigurationswerte k1 und v besteht.
-
In einer weiteren Ausführungsvariante wird zusätzlich eine Abbildung h (zum Beispiel die duale Abbildung eines lineareren Codes) verwendet. Dann werden die Verknüpfungsabbildungen f und g folgendermaßen definiert:
- •
- •
-
Dabei kann die Abbildung h so gewählt werden, dass sie sowohl in Software effizient berechenbar als auch in Hardware effizient implementierbar ist.
-
Diese Ausführungsvariante erlaubt es, einen erfolgreichen Probing-Angriff auf den Datenbus zwischen Speicherverschlüsselungseinheit 201 und Registern 205, 206 zu erschweren. Ein Angreifer könnte durch Probing von Busleitungen Information über Bits der Werte k1 und v erhalten, wenn diese während der Initialisierung in die Register geschrieben werden. Durch geeignete Wahl der Abbildung h kann aber erreicht werden, dass die Bits von k1 und v bis zu einer vorgegebenen Anzahl von Bits unabhängig sind und keinen Rückschluss auf die tatsächlichen Datenbits von k'2 ermöglichen. Wird der Schlüssel k1 = KeyRAM zur Ver- und Entschlüsselung von RAM-Inhalten sitzungsindividuell durch einen Zufallszahlengenerator neu erzeugt, so sind die beobachteten Bits von k1 für den Angreifer nicht von Wert, wenn der nicht beobachtete Teil des RAM-Schlüssels noch ausreichend Entropie besitzt.
-
Zusammenfassend wird gemäß verschiedenen Ausführungsbeispielen eine Datenverarbeitungsvorrichtung bereitgestellt, wie sie im Folgenden beschrieben wird.
-
3 zeigt eine Datenverarbeitungsvorrichtung 300.
-
Die Datenverarbeitungsvorrichtung 300 weist einen Speicher 301 auf, der eingerichtet ist, erste Krypto-Daten zur Ausführung einer ersten Sicherheitsfunktion zu speichern.
-
Die Datenverarbeitungsvorrichtung 300 weist ferner eine Ermittlungsschaltung 302 auf, die eingerichtet ist, zweite Krypto-Daten zur Ausführung einer zweiten Sicherheitsfunktion zu ermitteln.
-
Die Datenverarbeitungsvorrichtung 300 weist ferner eine Verknüpfungsschaltung 303 auf, die eingerichtet ist, basierend auf den ersten Krypto-Daten und den zweiten Krypto-Daten Verknüpfungsdaten zu ermitteln, mittels welcher die zweiten Krypto-Daten aus den ersten Krypto-Daten rekonstruiert werden können, und die Verknüpfungsdaten in dem Speicher 301 zu speichern.
-
Die Datenverarbeitungsvorrichtung 300 weist außerdem eine Überprüfungsschaltung 304 auf, die eingerichtet ist,
- • die ersten Krypto-Daten und die Verknüpfungsdaten aus dem Speicher 301 zu lesen,
- • die zweiten Krypto-Daten aus den ersten Krypto-Daten mittels der Verknüpfungsdaten zu rekonstruieren
- • zu überprüfen, ob die zweite Sicherheitsfunktion mittels der rekonstruierten zweiten Krypto-Daten ausführbar ist und
- • wenn die zweite Sicherheitsfunktion mittels der rekonstruierten zweiten Krypto-Daten ausführbar ist, die gespeicherten ersten Krypto-Daten als verifiziert einzustufen.
-
Gemäß verschiedenen Ausführungsformen werden gespeicherte erste Krypto-Daten (z.B. ein erster Schlüssel) verifiziert, z.B. sichergestellt, dass die ersten Krypto-Daten nicht manipuliert wurden, z.B. in einem Speicher oder bei der Übertragung zum oder vom Speicher. Dies erfolgt dadurch, dass zusätzlich zu den ersten Krypto-Daten das Resultat einer Verknüpfung von zweiten Krypto-Daten gespeichert wird, wobei die zweiten Krypto-Daten aus den ersten Krypto-Daten und dem Resultat wieder rekonstruiert werden können. Es kann dann redundante Information der zweiten Krypto-Daten dazu verwendet werden, zu überprüfen, ob die zweiten Krypto-Daten erfolgreich rekonstruiert/entschlüsselt wurden. Ist dies der Fall, kann darauf rückgeschlossen werden, dass die gespeicherten ersten Krypto-Daten korrekt sind, d.h. die ersten Krypto-Daten können verifiziert werden.
-
Die redundante Information kann darin bestehen, dass mit den zweiten Krypto-Daten eine (zweite) Sicherheitsfunktion erfolgreich ausführbar ist (beispielsweise eine Entschlüsselung von gespeicherten Daten). So können mittels der rekonstruierten zweiten Krypto-Daten Speicherinhalte eines Speichers, die mittels der zweiten Krypto-Daten verschlüsselt wurden, entschlüsselt werden und überprüft werden, ob die Speicherinhalte korrekt entschlüsselt wurden. Zum Beispiel kann überprüft werden, ob die resultierenden entschlüsselten Daten sinnvoll sind (z.B. Worte ergeben, ein ausführbares Programm ergeben oder von einem Programm verarbeitbare Daten ergeben oder auch mit vorgegebenen Referenzdaten oder z.B. einer Prüfsumme übereinstimmen).
-
Die ersten Krypto-Daten können neuer (später erzeugt) sein als die zweiten Krypto-Daten. Zum Beispiel sind die ersten Krypto-Daten ein Schlüssel für ein RAM, der regelmäßig neu erzeugt wird, während die zweiten Krypto-Daten ein Schlüssel für einen nicht-flüchtigen Speicher sind, der bei einer Initialisierung (z.B. Personalisierung einer Chipkarte) der Datenverarbeitungsvorrichtung erzeugt wird. Das Ermitteln der zweiten Krypto-Daten zur Ausführung der zweiten Sicherheitsfunktion kann dementsprechend auf dem Wiederherstellen von vorgegeben oder zuvor erzeugten Daten oder auch dem Auslesen von vorgegebenen oder zuvor erzeugten Daten basieren.
-
Gemäß einer Ausführungsform wird ein zu schützender Wert k1 (als Beispiel für erste Krypto-Daten, beispielsweise ein RAM-Schlüssel) mittels einer einfach zu berechnenden und einfach zu invertierenden bijektiven Verknüpfungsabbildung f mit einem zweiten Wert k2 (als Beispiel für zweite Krypto-Daten, beispielsweise ein NVM-Schlüssel) zu einem Wert v = f(k1, k2) verschränkt und dann die Werte k1 und v in Konfigurationsregistern abgespeichert. Dabei ermöglicht die Funktion des zweiten Werts k2 (für die Ausführung der zweiten Sicherheitsfunktion) eine Verifikation des aus den gespeicherten Werten k1 und v (evtl. permanent in Hardware) rekonstruierten Wertes k'2 = g(k1, v) (zum Beispiel durch die erfolgreiche Entschlüsselung von verschlüsselt abgespeicherten NVM-Inhalten mittels k'2 ).
-
Es sind vielfältige Ausprägungen möglich:
- • Wenn für die Längen der zu verschränkenden Werte k1 , und k2 gilt k1, > k2, so kann k2 vor der Verschränkung durch eine geeignete Abbildung (zum Beispiel die Redundanz eines linearen Codes in systematischer Darstellung) expandiert werden. Der Wert k1 wird dann mit dem expandierten Wert verknüpft.
- • Die Redundanz des Wertes k2 kann auf vielfältige Weise gegeben sein (zum Beispiel als Redundanz eines linearen Codes, als Ergebnis einer kryptographischen Hash-Funktion, als mit k2 verschlüsselter Ciphertext, usw.).
-
4 zeigt ein Flussdiagramm 400, das ein Verfahren zum Verifizieren von Krypto-Daten veranschaulicht.
-
In 401 werden erste Krypto-Daten zur Ausführung einer ersten Sicherheitsfunktion gespeichert.
-
In 402 werden zweite Krypto-Daten zur Ausführung einer zweiten Sicherheitsfunktion ermittelt.
-
In 403 werden Verknüpfungsdaten basierend auf den ersten Krypto-Daten und den zweiten Krypto-Daten, mittels welcher die zweiten Krypto-Daten aus den ersten Krypto-Daten rekonstruiert werden können, ermittelt und gespeichert.
-
In 404 werden die gespeicherten ersten Krypto-Daten und die gespeicherten Verknüpfungsdaten gelesen.
-
In 405 werden die zweiten Krypto-Daten aus den ersten Krypto-Daten mittels der Verknüpfungsdaten rekonstruiert.
-
In 406 wird überprüft, ob die zweite Sicherheitsfunktion mittels der rekonstruierten zweiten Krypto-Daten ausführbar ist.
-
In 407 werden die gespeicherten ersten Krypto-Daten als verifiziert eingestuft, wenn die zweite Sicherheitsfunktion mittels der rekonstruierten zweiten Krypto-Daten ausführbar ist.
-
Im Folgenden werden Ausführungsbeispiele beschrieben.
-
Ausführungsbeispiel 1 ist eine Datenverarbeitungsvorrichtung, wie sie in 3 dargestellt ist.
-
Ausführungsbeispiel 2 ist die Datenverarbeitungsvorrichtung gemäß Ausführungsbeispiel 1, wobei die Überprüfungsschaltung eingerichtet ist, ein Alarmsignal auszugeben, wenn die zweite Sicherheitsfunktion mittels der rekonstruierten zweiten Krypto-Daten nicht ausführbar ist.
-
Ausführungsbeispiel 3 ist die Datenverarbeitungsvorrichtung gemäß Ausführungsbeispiel 1 oder 2, wobei der Speicher ein Register zum Speichern von kryptographischen Daten ist.
-
Ausführungsbeispiel 4 ist die Datenverarbeitungsvorrichtung gemäß einem der Ausführungsbeispiele 1 bis 3, wobei die ersten Krypto-Daten einen ersten kryptographischen Schlüssel aufweisen und die zweiten Krypto-Daten einen zweiten kryptographischen Schlüssel aufweisen
-
Ausführungsbeispiel 5 ist die Datenverarbeitungsvorrichtung gemäß einem der Ausführungsbeispiele 1 bis 4, wobei die erste Sicherheitsfunktion und/oder die zweite Sicherheitsfunktion das Entschlüsseln von gespeicherten verschlüsselten Daten ist.
-
Ausführungsbeispiel 6 ist die Datenverarbeitungsvorrichtung gemäß einem der Ausführungsbeispiele 1 bis 5, wobei die erste Sicherheitsfunktion das Entschlüsseln von in einem ersten Speicher gespeicherten verschlüsselten Daten ist und die zweite Sicherheitsfunktion das Entschlüsseln von in einem zweiten Speicher gespeicherten verschlüsselten Daten ist.
-
Ausführungsbeispiel 7 ist die Datenverarbeitungsvorrichtung gemäß Ausführungsbeispiel 6, wobei der erste Speicher ein flüchtiger Speicher ist und der zweite Speicher ein nicht-flüchtiger Speicher ist.
-
Ausführungsbeispiel 8 ist die Datenverarbeitungsvorrichtung gemäß Ausführungsbeispiel 6 oder 7, wobei der erste Speicher ein Arbeitsspeicher ist.
-
Ausführungsbeispiel 9 ist die Datenverarbeitungsvorrichtung gemäß einem der Ausführungsbeispiele 1 bis 8, wobei die Verknüpfungsschaltung eingerichtet ist, die Verknüpfungsdaten durch Anwenden einer umkehrbaren Funktion auf die ersten Krypto-Daten und die zweiten Krypto-Daten zu erzeugen.
-
Ausführungsbeispiel 10 ist die Datenverarbeitungsvorrichtung gemäß Ausführungsbeispiel 9, wobei die Überprüfungsschaltung eingerichtet ist, die zweiten Krypto-Daten durch Anwenden einer Umkehrung der umkehrbaren Funktion auf die ersten Krypto-Daten und die Verknüpfungsdaten zu rekonstruieren.
Ausführungsbeispiel 11 ist die Datenverarbeitungsvorrichtung gemäß Ausführungsbeispiel 9 oder 10, wobei die umkehrbare Funktion eine bitweise XOR-Kombination der ersten Krypto-Daten und der zweiten Krypto-Daten ist.
-
Ausführungsbeispiel 12 ist die Datenverarbeitungsvorrichtung gemäß einem der Ausführungsbeispiele 1 bis 11, wobei die Datenverarbeitungsvorrichtung ein Chip ist.
-
Ausführungsbeispiel 13 ist das Verfahren zum Verifizieren von Krypto-Daten, wie es in 4 dargestellt ist.
-
Ausführungsbeispiel 14 ist das Verfahren gemäß Ausführungsbeispiel 13, wobei ein Alarmsignal ausgegeben wird, wenn die zweite Sicherheitsfunktion mittels der rekonstruierten zweiten Krypto-Daten nicht ausführbar ist.
-
Ausführungsbeispiel 15 ist das Verfahren gemäß Ausführungsbeispiel 13 oder 14, aufweisend Speichern der ersten Krypto-Daten in einem Register zum Speichern von kryptographischen Daten.
-
Ausführungsbeispiel 16 ist das Verfahren gemäß einem der Ausführungsbeispiele 13 bis 15, wobei die ersten Krypto-Daten einen ersten kryptographischen Schlüssel aufweisen und die zweiten Krypto-Daten einen zweiten kryptographischen Schlüssel aufweisen
-
Ausführungsbeispiel 17 ist das Verfahren gemäß einem der Ausführungsbeispiele 13 bis 16, wobei die erste Sicherheitsfunktion und/oder die zweite Sicherheitsfunktion das Entschlüsseln von gespeicherten verschlüsselten Daten ist.
-
Ausführungsbeispiel 18 ist das Verfahren gemäß einem der Ausführungsbeispiele 13 bis 17, wobei die erste Sicherheitsfunktion das Entschlüsseln von in einem ersten Speicher gespeicherten verschlüsselten Daten ist und die zweite Sicherheitsfunktion das Entschlüsseln von in einem zweiten Speicher gespeicherten verschlüsselten Daten ist.
-
Ausführungsbeispiel 19 ist das Verfahren gemäß Ausführungsbeispiel 18, wobei der erste Speicher ein flüchtiger Speicher ist und der zweite Speicher ein nicht-flüchtiger Speicher ist.
-
Ausführungsbeispiel 20 ist das Verfahren gemäß Ausführungsbeispiel 18 oder 19, wobei der erste Speicher ein Arbeitsspeicher ist.
-
Ausführungsbeispiel 21 ist das Verfahren gemäß einem der Ausführungsbeispiele 13 bis 20, wobei die Verknüpfungsdaten durch Anwenden einer umkehrbaren Funktion auf die ersten Krypto-Daten und die zweiten Krypto-Daten erzeugt werden.
-
Ausführungsbeispiel 22 ist das Verfahren gemäß Ausführungsbeispiel 21, wobei die zweiten Krypto-Daten durch Anwenden einer Umkehrung der umkehrbaren Funktion auf die ersten Krypto-Daten und die Verknüpfungsdaten rekonstruiert werden.
-
Ausführungsbeispiel 23 ist das Verfahren gemäß Ausführungsbeispiel 21 oder 22, wobei die umkehrbare Funktion eine bitweise XOR-Kombination der ersten Krypto-Daten und der zweiten Krypto-Daten ist.
-
Ausführungsbeispiel 24 ist das Verfahren gemäß einem der Ausführungsbeispiele 13 bis 23, durchgeführt von einem Chip.
-
Gemäß einem weiteren Beispiel wird eine Datenverarbeitungsvorrichtung bereitgestellt, die eingerichtet ist, erste Daten, die gegen Manipulation zu schützen sind und zweite Daten, zu Verknüpfen und ein Resultat der Verknüpfung zusätzlich zu den ersten Daten zu speichern. Die Datenverarbeitungsvorrichtung weist eine Rekonstruktionsschaltung zum Rekonstruieren der zweiten Daten aus den gespeicherten ersten Daten und den gespeicherten Verknüpfungsdaten auf. Die Datenverarbeitungsvorrichtung weist ferner eine Verifizierungsschaltung auf, die eingerichtet ist, basierend auf einer Überprüfung der rekonstruierten Daten die gespeicherten ersten Daten zu verifizieren. Die Überprüfung erfolgt dabei basierend auf redundanter Information der rekonstruierten zweiten Daten, beispielsweise basierend darauf, ob mit ihnen eine Sicherheitsfunktion korrekt ausführbar ist.
-
Die Komponenten der Datenverarbeitungsvorrichtung (z.B. die Ermittlungsschaltung, die Verknüpfungsschaltung und die Überprüfungsschaltung) können durch ein oder mehrere Schaltkreise oder Schaltungen realisiert sein. In einer Ausführungsform ist ein Schaltkreis oder eine Schaltung als jegliche Einheit zu verstehen, die eine Logik implementiert, und die sowohl Hardware, Software, Firmware oder eine Kombination daraus sein kann. Somit kann ein Schaltkreis oder eine Schaltung in einer Ausführungsform ein hart-verdrahteter Logik-Schaltkreis oder ein programmierbarer Logik-Schaltkreis sein, wie beispielsweise ein programmierbarer Prozessor. Unter einem Schaltkreis oder einer Schaltung kann auch ein Prozessor zu verstehen sein, der Software ausführt. Unter einem Schaltkreis oder einer Schaltung kann in einer Ausführungsform jegliche Art der Implementierung der jeweiligen beschriebenen Funktionen zu verstehen sein. Insbesondere kann die Erzeugung der ersten und/oder zweiten Krypto-Daten in Software erfolgen, während die Verknüpfung (d.h. das Erzeugen der Verknüpfungsdaten), die Rekonstruktion der zweiten Krypto-Daten und/oder die Überprüfung der rekonstruierten zweiten Krypto-Daten in Hardware erfolgt.
-
Obwohl die Erfindung vor allem unter Bezugnahme auf bestimmte Ausführungsformen gezeigt und beschrieben wurde, sollte es von denjenigen, die mit dem Fachgebiet vertraut sind, verstanden werden, dass zahlreiche Änderungen bezüglich Ausgestaltung und Details daran vorgenommen werden können, ohne vom Wesen und Bereich der Erfindung, wie er durch die nachfolgenden Ansprüche definiert wird, abzuweichen. Der Bereich der Erfindung wird daher durch die angefügten Ansprüche bestimmt, und es ist beabsichtigt, dass sämtliche Änderungen, welche unter den Wortsinn oder den Äquivalenzbereich der Ansprüche fallen, umfasst werden.