DE102008023912A1 - Verfahren und Speichervorrichtung zum Bereitstellen eines kryptografischen Schlüssels - Google Patents

Verfahren und Speichervorrichtung zum Bereitstellen eines kryptografischen Schlüssels Download PDF

Info

Publication number
DE102008023912A1
DE102008023912A1 DE200810023912 DE102008023912A DE102008023912A1 DE 102008023912 A1 DE102008023912 A1 DE 102008023912A1 DE 200810023912 DE200810023912 DE 200810023912 DE 102008023912 A DE102008023912 A DE 102008023912A DE 102008023912 A1 DE102008023912 A1 DE 102008023912A1
Authority
DE
Germany
Prior art keywords
key
bits
cryptographic key
stored
cryptographic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE200810023912
Other languages
English (en)
Inventor
Markus Dr. Dichtl
Erwin Dr. Hess
Bernd Dr. Meyer
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE200810023912 priority Critical patent/DE102008023912A1/de
Priority to PCT/EP2009/053418 priority patent/WO2009138287A1/de
Publication of DE102008023912A1 publication Critical patent/DE102008023912A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Abstract

Verfahren zum Bereitstellen eines krypotgrafischen Schlüssels (KS) mit mehreren Schlüsselbits (S1-SN). Die Schlüsselbits (S1-SN) werden in einem Speicher (6), insbesondere in einem Flash-Speicher, abgespeichert und aus dem Speicher (6) ausgelesen. Dabei wird vor dem Abspeichern (A3) und nach dem Auslesen (A4) der Schlüsselbits (S1-SN) jeweils mindestens ein Schlüsselbit (S1-SN) an einer vorgegebenen Bitpositionen invertiert.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zum Bereitstellen eines kryptografischen Schlüssels, wie er beispielsweise bei Verschlüsselungs- oder Authentifizierungsverfahren benötigt wird.
  • Unter Kryptografie werden üblicherweise Methoden zur Verschlüsselung und Entschlüsselung von Daten verstanden. Bei einer Verschlüsselung ist es grundsätzlich gewünscht, Daten derart einer mathematischen Transformation zu unterwerfen, dass es einem Angreifer, der die Daten oder eine Kopie in seinen Besitz bringt, nicht möglich ist, die Originaldaten aus den transformierten Daten zu rekonstruieren. Bei der symmetrischen Verschlüsselung wird beispielsweise ein geheimer Schlüssel, der als möglichst lange Binärzahl festgelegt ist, zur Verschlüsselung bzw. Chiffrierung verwendet. Die verschlüsselten Daten können anschließend von dem Empfänger in Kenntnis des geheimen Schlüssels dechiffriert bzw. entschlüsselt werden, um den Klartext zu erhalten. Der kryptografische Schlüssel muss somit möglichst sicher abgelegt werden und darf nicht von einem Eindringling zum Beispiel durch eine sogenannte Kryptoanalyse ermittelt werden können.
  • Heutzutage greifen viele Systeme mit Sicherheitsfunktionalität auf Flash-Speicher zurück, in denen die jeweiligen Schlüsselbitfolgen als kryptografischer Schlüssel gespeichert werden. Insbesondere bei Flash-Speichern erfolgt die Speicherung der Informationen im Form von logischen Zuständen durch elektrische Ladungen. Es sind allerdings Verfahren bekannt geworden, um die in Flash-Speichern als Ladungen codierten Bitzustände zu manipulieren. Zum Beispiel lassen sich bei Flash-Speichern die gespeicherten Ladungszustände durch radioaktive Strahlung oder UV-Licht verändern.
  • In E. Biham und A. Shamir „Differential Fault Analysis of Secret Key Cryptosystems" in Proceedings of Advances in Cryptology-Crypto '97, l7tn International Cryptology Conference Santa Barbara, California, U.S.A., August 17–21, 1997, wird zum Beispiel ein Verfahren zum Ermitteln eines gespeicherten kryptografischen Schlüssels von k Bits beschrieben. Zunächst wird ein Klartext P verschlüsselt und das sich ergebende Chiffrat gespeichert. Anschließend wird der Flash-Speicher einem schwachen äußeren Einfluss ausgesetzt, der einzelne Schlüsselbits zu Null setzen kann. Das sich ergebende Chiffrat, welches sich wegen des sich veränderten kryptografischen Schlüssels ändert, wird ebenfalls ermittelt. Dies wird solange wiederholt, bis sich durch die Manipulation der Schlüsselbits keine weitere Veränderung im Chiffrat ergibt. D. h., alle Schlüsselbits sind in einem wohldefinierten gleichen logischen Zustand, zum Beispiel Null (oder Low). Somit ist davon auszugehen, dass das zuletzt erhaltene Chiffrat mit hoher Wahrscheinlichkeit in Abhängigkeit von einem kryptografischen Schlüssel entstanden ist, in dem nur ein Bit gesetzt ist. Die Position dieses Bits kann durch Ausprobieren der k Bitposition gefunden werden. Durch wiederholte Anwendung dieses Angriffs und der Manipulierung der gespeicherten Schlüsselbits, kann somit ein Angreifer den ursprünglichen Schlüssel rekonstruieren.
  • Es ist einerseits gewünscht, möglichst einfache und zuverlässige Speicher, wie zum Beispiel Flash-Speicher, zu verwenden und andererseits eine hohe Sicherheit gegenüber dem Ausspähen von gespeicherten sicherheitsrelevanten Informationen, wie insbesondere kryptografischen Schlüsseln, zu erzielen. In der Vergangenheit sind immer häufiger sogenannte Smartcards oder Chipkarten mit Sicherheitsmerkmalen versehen worden, die mit äußeren Kommunikationseinrichtungen Daten austauschen. Zur Authentifizierung oder gesicherten Datenübertragung werden dabei auf der Chipkarte abgespeicherte kryptografische Schlüssel verwendet, die in Flash-Speichern oder technologisch verwandten Speichern, wie beispielsweise EEPROM Speicher, abgelegt sind.
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren und eine verbesserte Vorrichtung zu schaffen, die zum sicheren Abspeichern von kryptografischen Schlüsseln geeignet ist.
  • Diese Aufgabe wird durch ein Verfahren gemäß Patentanspruch 1 gelöst.
  • Demgemäß ist ein Verfahren zum Bereitstellen eines kryptografischen Schlüssels mit mehreren Schlüsselbits vorgesehen. Dabei werden die Schlüsselbits in einem Speicher, wie zum Beispiel in einem Flash-Speicher abgespeichert und aus dem Speicher ausgelesen. Jeweils vor dem Abspeichern und nach dem Auslesen der Schlüsselbits wird mindestens ein Schlüsselbit an einer vorgegebenen Bitposition invertiert.
  • Ein Angriff, wie er eingangs erläutert wurde, führt bei kryptografischen Schlüsseln, die nach dem vorbeschriebenen Verfahren bereitgestellt werden, nicht zum Erfolg. Die Schlüsselbits werden nicht in ihrer ursprünglichen Form im jeweiligen Speicher abgelegt. Vielmehr wird mit einer Wahrscheinlichkeit von 0,5 jedes Schlüsselbit als invertiertes Schlüsselbit gespeichert. Die Information über die jeweilige Bitposition, an der eine Invertierung vorgenommen werden soll, kann ebenfalls auf verschiedene Art gespeichert oder bekannt gemacht werden. Es ist zum Beispiel möglich, mehrere Schlüsselbits beim Abspeichern und/oder Auslesen an den vorgegebenen Bitpositionen zu invertieren. Die vorgegebene Bitposition kann durch entsprechende Maskierungsdaten, welche abgespeichert werden, festgelegt sein.
  • Das Verfahren kann die folgenden Schritte umfassen: Invertieren mindestens eines Schlüsselbits an einer vorgegeben Bitposition zum Erzeugen eines veränderten kryptografischen Schlüssels; Speichern des veränderten kryptografischen Schlüssels; Auslesen der Schlüsselbits des veränderten kryptografischen Schlüssels; und Invertieren der ausgelesenen Schlüsselbits des veränderten kryptografischen Schlüssels an der mindestens einen vorgegeben Bitposition zum Wiederherstellen des kryptografischen Schlüssels.
  • Die Erfindung umfasst ferner ein Verfahren zum Speichern eines kryptografischen Schlüssels, welcher mehrere Schlüsselbits aufweist, insbesondere in einem Flash-Speicher. Dabei wird mindestens eines der Schlüsselbits an einer vorgegebenen Bitposition invertiert abgespeichert.
  • Analog schafft die Erfindung ein Verfahren zum Auslesen eines kryptografischen Schlüssels, welcher mehrere Schlüsselbits aufweist, insbesondere aus einem Flash-Speicher. Dabei wird mindestens eines der abgespeicherten Schlüsselbits an einer vorgegebenen Bitposition invertiert.
  • Wenn die jeweiligen Bitpositionen beispielsweise durch Maskierungsdaten festgelegt sind, kann durch logisches Verknüpfen, beispielsweise mit einer XOR-Verknüpfung, des jeweiligen kryptografischen Schlüssels mit den Maskierungsdaten die Schlüsselbits an den gewünschten Positionen invertiert werden.
  • Die Erfindung schafft ferner eine Speichervorrichtung, welche sich insbesondere zur Durchführung der vorbeschriebenen Verfahren eignet. Eine Speichereinrichtung für einen kryptografischen Schlüssel, welcher mehrere Schlüsselbits aufweist, hat demnach mindestens eine Invertereinrichtung zum Invertieren mindestens eines gespeicherten Schlüsselbits an einer vorgegebenen Bitposition und eine Speichereinrichtung zum Speichern der Schlüsselbits und des invertierten Schlüsselbits.
  • Es kann eine weitere Speichereinrichtung vorgesehen werden, welche Maskierungsdaten zum Festlegen der vorgegebenen Bitpositionen speichert. Durch logisches Verknüpfen, beispielsweise mit einem XOR-Gatter, der Maskierungsdaten mit dem gespeicherten, veränderten kryptografischen Schlüssel, ergibt sich die für die jeweilige kryptografische Anwendung bzw. Verschlüsselung notwendige Bitfolge des ursprünglichen kryptografischen Schlüssels. Die Invertereinrichtung kann insofern als Software-Modul oder Software-implementiert ausgebildet sein. Es ist jedoch auch denkbar, entsprechende Inverter hardwaremäßig vorzusehen, die beim Auslesen aus dem Flash-Speicher, der die Schlüsselbits trägt, bestimmte Bitpositionen invertieren.
  • Eine entsprechende Speichervorrichtung eignet sich insbesondere zum Einsatz in einer Smartcard, die neben der Speichervorrichtung eine Verarbeitungseinheit, wie zum Beispiel einen Mikroprozessor aufweist, der einen Verschlüsselungsalgorithmus in Abhängigkeit von dem kryptografischen Schlüssel durchführt. Mögliche Anwendungen sind zum Beispiel Zugangskarten, Geldkarten oder andere als Chip- oder Smartcards ausgeführte Systeme mit Sicherheitsfunktionalitäten.
  • Schließlich sieht die Erfindung ein Computerprogrammprodukt vor, welches die Durchführung eines der vorbeschriebenen Verfahren auf einer programmgesteuerten Einrichtung veranlasst. Als programmgesteuerte Rechnereinrichtung kommt zum Beispiel ein PC in Frage, auf dem entsprechende Software installiert ist. Ferner kann das Computerprogramm auf einem eingebetteten Mikrocontroller oder Mikroprozessor, beispielsweise auf einer Chip- oder Smartcard ablaufen. Das Computerprogrammprodukt kann beispielsweise in der Art eines Datenträgers, wie zum Beispiel USB-Sticks oder Speicherkarten implementiert werden.
  • Weitere vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche sowie der im Folgenden beschriebenen Ausführungsbeispiele. Im Weiteren wird die Erfindung anhand einzelner Ausführungsbeispiele unter Bezugnahme auf die Figuren näher erläutert. Es zeigt dabei
  • 1A, 1B ein beispielhaftes Ablaufdiagramm eines Verfahrens zum Speichern eines kryptografischen Schlüssels und einen kryptographischen Schlüssel;
  • 2A, 2B ein beispielhaftes Ablaufdiagramm eines Verfahrens zum Auslesen eines kryptografischen Schlüssels und einen kryptographischen Schlüssel;
  • 3 ein Blockdiagramm einer Chipkarte mit einem Ausführungsbeispiel einer Speichervorrichtung zum Bereitstellen eines kryptografischen Schlüssels;
  • 4 ein Prinzipschaltbild einer ersten Ausführungsform einer Speichereinrichtung zum Speichern eines kryptografischen Schlüssels; und
  • 5 ein Prinzipschaltbild einer zweiten Ausführungsform einer Speichereinrichtung zum Speichern eines kryptografischen Schlüssels.
  • In den Figuren sind gleiche oder funktionsgleiche Elemente mit denselben Bezugszeichen versehen worden, sofern nichts anderes angegeben ist.
  • In der 1A ist ein beispielhaftes Ablaufdiagramm für ein Verfahren zum Speichern eines kryptografischen Schlüssels dargestellt. Dazu wird im Schritt A1 zunächst ein kryptografischer Schlüssel bereitgestellt. In der 1B ist zum Beispiel ein kryptografischer Schlüssel KS mit mehreren Schlüsselbits SO-SN illustriert. Werden diese Schlüsselbits SO-SN des kryptografischen Schlüssels KS in ursprünglichen Form, beispielsweise in einem Flash-Speicher abgelegt, kann durch einen, wie in der Einleitung dargelegten, kryptografischen Angriff, der kryptografische Schlüssel rekonstruiert werden.
  • Im Schritt A2 werden deshalb an vorgegebenen Bitpositionen die Schlüsselbits invertiert. Dies ist in der 1B illustriert. Die Bitpositionen P und Q des kryptografischen Schlüssels KS werden invertiert, so dass invertierte Schlüsselbits SP und SQ an der jeweiligen Bitposition vorliegen. Es ergibt sich somit ein veränderter kryptografischer Schlüssel KS'.
  • Dieser veränderte kryptografische Schlüssel KS' wird im Schritt A3, wie in der 1A angedeutet ist, abgespeichert. Wenn einem potenziellen Angreifer unbekannt ist, welche der Bitpositionen beim Abspeichern invertiert wurden, kann auch durch Manipulieren der abgespeicherten Schlüsselbits, also der Bits des veränderten kryptografischen Schlüssels KS', durch ein Verfahren der differentiellen Fehleranalyse nicht erkannt werden, welcher tatsächliche kryptografische Schlüssel KS verwendet wird. Ein entsprechender kryptografischer Angriff ist bei konventionellen Speichermethoden nur deshalb möglich, weil am Ende ein bekannter Schlüssel, der zum Beispiel nur Null-Bits aufweist, erzeugt wird und rückwärts schrittweise nach 1-Bit-Veränderungen gesucht werden kann, so dass der eigentliche Schlüssel rekonstruiert wird. Bei dem vorgeschlagenen Verfahren zum Abspeichern eines kryptografischen Schlüssels kann ein Angreifer potenziell zwar die, beispielsweise in einem Flash-Speicher abgelegten Schlüsselbits des veränderten kryptografischen Schlüssels KS' zu Null setzen, allerdings kann der Angreifer nicht ohne hohen Aufwand die unbekannten Bitpositionen, an denen eine Inversion erfolgt, feststellen. Je mehr unbekannte Bitpositionen invertiert werden, desto schwieriger wird es für einen Angreifer, den ursprünglichen kryptografischen Schlüssel KS zu erraten.
  • In der 2A ist ein Verfahren zum Auslesen eines kryptografischen Schlüssels als Ablaufdiagramm illustriert.
  • Im Schritt A4 wird ein veränderter kryptografischer Schlüssel KS', wie er beispielsweise in der 2B dargestellt ist, ausgelesen.
  • Anschließend erfolgt im Schritt A5 eine Inversion von ausgelesenen Schlüsselbits des veränderten kryptografischen Schlüssels an vorgegebenen Bitpositionen P und Q. Somit werden die Schlüsselbits SP und SQ invertiert und erhalten die Werte des ursprünglichen Schlüsselbitwerte SP und SQ des kryptografischen Schlüssels KS. Anschließend kann im Schritt A6 der kryptografische Schlüssel bereitgestellt werden.
  • Der ursprüngliche gewünschte kryptografische Schlüssel KS kann lediglich dann gelesen werden, wenn die Bitpositionen, an denen beim Abspeichern eine Inversion erfolgte, bekannt sind. Es ist zum Beispiel möglich, entsprechende Maskierungsdaten sicher abzuspeichern, die die jeweiligen vorgegebenen Bitpositionen anzeigen.
  • Die in den 1A und 2A angedeuteten Verfahrensschritte können auch als ein einziges Verfahren zum Bereitstellen eines kryptografischen Schlüssels mit den Schritten A1–A6 verstanden werden. Das jeweilige Zurückrechnen der in beispielsweise einem Flash-Speicher abgelegten Schlüsselbits bzw. invertierten Schlüsselbits, kann Software-implementiert bei der Durchführung beispielsweise eines Verschlüsselungsalgorithmus erfolgen. Denkbar ist jedoch auch eine hardwarebasierte Inversion von Schlüsselbits an vorgegebenen Positionen.
  • In der 3 ist ein beispielhaftes Blockdiagramm einer Chipkarte 1, die zum Beispiel ein kryptografisches Verfahren implementiert, dargestellt. Die Chipkarte oder Smartcard 1 hat dazu beispielsweise eine als Mikrokontroller oder Mikroprozessor ausgeführte Verarbeitungseinheit 2, welche über geeignete Leitungen 8 an einen Datenbus 5 gekoppelt ist. An den Datenbus ist ebenfalls über geeignete Leitungen 8 eine Schnittstelle 3 gekoppelt, welche Kopplungssignale CC, beispielsweise mit externen Einrichtungen, austauscht. An den Datenbus ist ferner ein Speicher 4 mit beispielsweise einem RAM-Speicher 4A und einem ROM-Speicher 4B gekoppelt, wobei im RAM-Speicher beispielsweise zu verschlüsselnde oder ver schlüsselte Daten abgelegt sind und im ROM-Speicher ein Betriebssystem oder Betriebssoftware implementiert sind.
  • An den Datenbus ist schließlich eine Speichereinrichtung 10 gekoppelt, die zur Durchführung der vorbeschriebenen Verfahren zum Bereitstellen von kryptografischen Schlüsseln geeignet ist. Die Speichereinrichtung 10 hat dabei einen Flash-Speicher 6 und eine Invertierungseinrichtung 7. Der Flash-Speicher 6 kann durch ein externes Programmiersignal PRG programmiert werden. Beispielsweise können Schlüsselbits bzw. invertierte Schlüsselbits eines kryptografischen Schlüssels in den Flash-Speicher von extern einprogrammiert werden.
  • Die Invertereinrichtung 7 ist derart eingerichtet, dass an den vorgegebenen Bitpositionen die ausgelesenen, im Flash-Speicher 6 vorliegenden, Schlüsselbitwerte invertiert werden und von der Verarbeitungseinheit bzw. dem Mikroprozessor 2 bei dem jeweils implementierten Kryptoalgorithmus verwendet werden. D. h. im Flash-Speicher ist ein veränderter kryptografischer Schlüssel KS' abgespeichert. Die Verarbeitungseinheit bzw. der Mikroprozessor oder Kontroller 2 erhält jedoch durch die Inversion der vorbestimmten Bits an vorbestimmten Bitpositionen den ursprünglichen tatsächlichen kryptografischen Schlüssel. Die Verarbeitungseinheit 2 ist zusammen mit der Betriebssoftware derart eingerichtet, dass zum Beispiel die Verfahren gemäß 1A und 2A durchgeführt werden.
  • In der 4 ist ein erstes Ausführungsbeispiel einer Speichereinrichtung 10 zum Speichern eines kryptografischen bzw. eines veränderten kryptografischen Schlüssels dargestellt. Die Speichereinrichtung 10 hat dabei einen Flash-Speicher mit, in dem Beispiel der 4, acht Speicherzellen 12. In den Speicherzellen 12 sind acht Schlüsselbits S0–S7 abgelegt, wovon an den Bitpositionen 0 und 2 invertierte Schlüsselbits S0 und S2 vorliegen. Die Invertereinrichtung 7 empfängt die in den Speicherzellen 12 abgelegten Schlüsselbits S0, S1, S2, S3–S7 parallel und gibt die ursprünglichen Schlüsselbits S0–S7 aus. An den Bitpositionen 0 und 2 hat die Inverterein richtung 7 jeweils Inverter bzw. ein NOT-Gatter 9, 11, welche eine Änderung des logischen Pegels der zugeführten Bitwerte verursacht. Beim Einsatz in einer Chipkarte können beispielsweise die Inverter 9, 11 durch Transistoren im entsprechenden Halbleiterchip implementiert werden.
  • Die 5 zeigt ein zweites Ausführungsbeispiel für eine Speichereinrichtung 10 zum Bereitstellen eines kryptografischen Schlüssels KS. Wie bereits in der 4 dargestellt ist, weist die Speichereinrichtung 10 einen Flash-Speicher 6 mit Speicherzellen auf, in die die Schlüsselbits S0, S1, S2, S3–S7 des veränderten kryptografischen Schlüssels KS' einprogrammiert sind.
  • Beispielsweise im ROM-Speicher 4B sind Maskierungsdaten MD abgelegt, welche die Bitpositionen derjenigen Schlüsselbits festlegen, die invertiert abgespeichert sind. Beispielsweise ist dies in der 7 ist die Bitposition 0 und 2. Die Maskierungsdaten MD haben dieselbe Bitlänge wie der veränderte kryptografische Schlüssel KS', und an den Positionen 0 und 2 ist jeweils eine logische 1 eingeschrieben. Die restlichen Stellen sind 0. Sowohl die Maskierungsdaten MD wie auch die Schlüsselbits des veränderten kryptografischen Schlüssels KS' werden einem XOR-Gatter 13 zugeführt. Das XOR-Gatter 13 verknüpft die jeweiligen Bits, also die an derselben Bitposition vorliegenden Schlüsselbits, und Maskierungsdatenbits. Das XOR-Gatter 13 liefert somit durch das logische Verknüpfen mit einer XOR-Verknüpfung den ursprünglichen kryptografischen Schlüssel KS.
  • Die Maskierungsdaten MD, welche zur Rekonstruktion des tatsächlichen kryptografischen Schlüssels KS notwendig sind und eine Bitmaske darstellen, sowie die logische XOR-Verknüpfung 13, können auch im Programmcode des Kryptoalgorithmus für die Verarbeitungseinheit bzw. den Prozessor 2 implementiert werden. Der entsprechende Programmcode kann zum Beispiel ebenfalls in einem Flash-Speicher abgelegt werden. Bei einem Manipulationsversuch an dem entsprechenden Flash-Inhalt, wel cher nicht nur die Masken- und Schlüsseldaten, sondern auch den Programmcode für die kryptografischen Verfahren enthält, würde bei einer versuchten Manipulation auch der Programmcode voraussichtlich gestört werden, so dass der Kryptoalgorithmus nicht mehr korrekt ablaufen kann. Ein Angreifer kann wegen des Eingriffs in den Programmcode dann nicht mehr das notwendige kryptografische Verfahren in Gang setzten und somit auch nicht mehr den ursprünglichen kryptografischen Schlüssel und/oder die Maskendaten ermitteln.
  • Bei einem Abspeichern der Maskendaten in einem ROM-Speicher muss ein potenzieller Angreifer, um die Maskendaten zu erkennen, Eingriffe in den jeweiligen Halbleiterchip vornehmen.
  • Obwohl die vorliegende Erfindung Verfahren und Vorrichtungen zum Bereitstellen von kryptografischen Schlüsseln bzw. Schlüsselbits anhand von Ausführungsbeispielen näher erläutert ist, können diese vielfältig modifiziert werden. Die angegebenen Bitlängen der Schlüssel und die Anzahl der invertierten Schlüsselbits ist lediglich beispielhaft zu verstehen. Besonders geeignet ist zum Beispiel eine Anzahl von invertierten Bits, die ungefähr der Hälfte der Bitlänge des bereitzustellenden kryptografischen Schlüssels entspricht. Übliche Schlüssellängen sind zum Beispiel größer als 80 Bit. Durch den einfachen geringen Implementierungsmehraufwand gegenüber üblichen Speicherverfahren in Flash-Speichern eignet sich das vorgeschlagene Verfahren bzw. die Vorrichtung insbesondere zum Einsatz in Smartcards und einfachen kryptografischen Token für Massenanwendungen.
  • 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
    • - E. Biham und A. Shamir „Differential Fault Analysis of Secret Key Cryptosystems” in Proceedings of Advances in Cryptology-Crypto '97, l7tn International Cryptology Conference Santa Barbara, California, U.S.A., August 17–21, 1997 [0004]

Claims (14)

  1. Verfahren zum Bereitstellen eines kryptografischen Schlüssels (KS) mit mehreren Schlüsselbits (S1–SN), wobei die Schlüsselbits (S1–SN) in einem Speicher (6), insbesondere in einem Flash-Speicher, abgespeichert werden und aus dem Speicher (6) ausgelesen werden, wobei vor dem Abspeichern (A3) und nach dem Auslesen (A4) der Schlüsselbits (S1–SN) jeweils mindestens ein Schlüsselbit (S1–SN) an einer vorgegebenen Bitpositionen invertiert wird.
  2. Verfahren nach Anspruch 1, umfassend: – Invertieren (A2) mindestens eines Schlüsselbits (S1-SN) an einer vorgegeben Bitposition zum Erzeugen eines veränderten kryptografischen Schlüssels (KS'); – Speichern (A3) des veränderten kryptografischen Schlüssels (KS'); – Auslesen (A4) der Schlüsselbits (S1–SN) des veränderten kryptografischen Schlüssels (KS'); und – Invertieren (A5) der ausgelesenen Schlüsselbits (S1–SN) des veränderten krytografischen Schlüssels (KS') an der vorgegeben Bitposition zum Wiederherstellen des kryptografischen Schlüssels (KS).
  3. Verfahren zum Speichern eines kryptografischen Schlüssels (KS), welcher mehrere Schlüsselbits (S1–SN) aufweist, insbesondere in einem Flash-Speicher, wobei mindestens eines der Schlüsselbits (S1–SN) an einer vorgegeben Bitposition invertiert abgespeichert wird.
  4. Verfahren zum Auslesen eines kryptografischen Schlüssels (KS), welcher mehrere Schlüsselbits (S1–SN) aufweist, insbesondere aus einem Flash-Speicher, wobei mindestens eines der abgespeicherten Schlüsselbits (S1–SN) an einer vorgegeben Bitposition invertiert wird.
  5. Verfahren nach einem der Ansprüche 1–4, wobei mehrere Schlüsselbits (SP, SQ) beim Abspeichern und/oder Auslesen an den vorgegebenen Bitpositionen invertiert werden.
  6. Verfahren nach einem der Ansprüche 1–5, wobei Maskierungsdaten (MD) abgespeichert werden, welche die vorgegeben Bitpositionen festgelegen.
  7. Verfahren nach Anspruch 6, wobei durch logisches Verknüpfen, insbesondere durch eine XOR-Verknüpfung, des kryptografischen Schlüssels (KS, KS') mit den Maskierungsdaten (MD) die Schlüsselbits invertiert werden.
  8. Speichervorrichtung (10) für einen kryptografischen Schlüssel (KS), welcher mehrere Schlüsselbits (S1–SN) aufweist, mit mindestens einer Invertereinrichtung (9, 11) zum Invertieren mindestens eines gespeicherten Schlüsselbits (S0, S2) an einer vorgegebenen Bitposition und mit einer Speichereinrichtung (6) zum Speichern der Schlüsselbits (S2, S3–S7) und des invertierten Schlüsselbits (S0, S2).
  9. Speichervorrichtung (10) nach Anspruch 8, wobei eine Steuereinrichtung (2) vorgesehen, welche derart ausgestaltet ist, dass eine Verfahren nach einem der Ansprüche 1–7 durchgeführt wird.
  10. Speichervorrichtung (10) nach Anspruch 8 oder 9, wobei eine weitere Speichereinrichtung (4B) zum Speichern von Maskierungsdaten (4B), welche die vorgegebene Bitposition festlegt, vorgesehen ist.
  11. Speichervorrichtung (10) nach einem der Ansprüche 8–10, wobei die Invertereinrichtung als Software implementiert ist.
  12. Chipkarte (1) mit einer Speichervorrichtung (10) nach einem der Ansprüche 8–11 und einer Verarbeitungseinheit (2), welche einen Verschlüsselungsalgorithmus in Abhängigkeit von dem kryptografischen Schlüssel (KS) durchführt.
  13. Computerprogrammprodukt, welches die Durchführung eines Verfahrens nach einem der Ansprüche 1–7 auf einer programmgesteuerten Einrichtung veranlasst.
  14. Datenträger mit dem abgespeicherten Computerprogrammprodukt nach Anspruch 13.
DE200810023912 2008-05-16 2008-05-16 Verfahren und Speichervorrichtung zum Bereitstellen eines kryptografischen Schlüssels Withdrawn DE102008023912A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE200810023912 DE102008023912A1 (de) 2008-05-16 2008-05-16 Verfahren und Speichervorrichtung zum Bereitstellen eines kryptografischen Schlüssels
PCT/EP2009/053418 WO2009138287A1 (de) 2008-05-16 2009-03-24 Verfahren und speichervorrichtung zum bereitstellen eines kryptografischen schlüssels

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200810023912 DE102008023912A1 (de) 2008-05-16 2008-05-16 Verfahren und Speichervorrichtung zum Bereitstellen eines kryptografischen Schlüssels

Publications (1)

Publication Number Publication Date
DE102008023912A1 true DE102008023912A1 (de) 2009-11-19

Family

ID=40737615

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200810023912 Withdrawn DE102008023912A1 (de) 2008-05-16 2008-05-16 Verfahren und Speichervorrichtung zum Bereitstellen eines kryptografischen Schlüssels

Country Status (2)

Country Link
DE (1) DE102008023912A1 (de)
WO (1) WO2009138287A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017009026A1 (de) * 2015-07-15 2017-01-19 Siemens Aktiengesellschaft Verfahren und vorrichtung zur erzeugung einer geräte-spezifischen kennung und geräte umfassend einen personalisierten programmierbaren schaltungsbaustein

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0926624A2 (de) * 1997-12-26 1999-06-30 Oki Electric Industry Co., Ltd. Integrierte Schaltung für Einbettung in Chipkarten, und Verfahren zur Herstellung von Chipkarten
US7266661B2 (en) * 2004-05-27 2007-09-04 Silverbrook Research Pty Ltd Method of storing bit-pattern in plural devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19936918A1 (de) * 1998-09-30 2000-04-06 Philips Corp Intellectual Pty Verschlüsselungsverfahren zum Ausführen von kryptographischen Operationen
JP2000165375A (ja) * 1998-11-30 2000-06-16 Hitachi Ltd 情報処理装置、icカード
US6931133B2 (en) * 2002-09-03 2005-08-16 Verisign, Inc. Method and system of securely escrowing private keys in a public key infrastructure
JPWO2005027403A1 (ja) * 2003-09-11 2006-11-24 株式会社ルネサステクノロジ 情報処理装置
EP1722502B1 (de) * 2005-05-10 2007-09-05 Research In Motion Limited Schlüsselmaskierung für kryptographische Prozesse
FR2893796B1 (fr) * 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0926624A2 (de) * 1997-12-26 1999-06-30 Oki Electric Industry Co., Ltd. Integrierte Schaltung für Einbettung in Chipkarten, und Verfahren zur Herstellung von Chipkarten
US7266661B2 (en) * 2004-05-27 2007-09-04 Silverbrook Research Pty Ltd Method of storing bit-pattern in plural devices

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BIHAM, E. SHAMIR, A.: Differential Fault Analysis of Secret Key Cryptosystems, Springer Verlag, Copyright 1998. URL: http://dsns.csie.nctu.edu.tw/research/crypto/HTML/PDF/C97/513.PDF (recherchiert im Internet am 10.11.08)
BIHAM, E.,SHAMIR, A.: Differential Fault Analysis of Secret Key Cryptosystems, Springer Verlag, Copyright 1998. URL: http://dsns.csie.nctu.edu.tw/research/crypto/HTML/ DF/C97/513.PDF (recherchiert im Internet am 10.11.08) *
E. Biham und A. Shamir "Differential Fault Analysis of Secret Key Cryptosystems" in Proceedings of Advances in Cryptology-Crypto '97, l7tn International Cryptology Conference Santa Barbara, California, U.S.A., August 17-21, 1997

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017009026A1 (de) * 2015-07-15 2017-01-19 Siemens Aktiengesellschaft Verfahren und vorrichtung zur erzeugung einer geräte-spezifischen kennung und geräte umfassend einen personalisierten programmierbaren schaltungsbaustein
CN107836081A (zh) * 2015-07-15 2018-03-23 西门子公司 用于产生设备特定的标识的方法和装置和包括个性化的可编程电路模块的设备
US20180203709A1 (en) * 2015-07-15 2018-07-19 Siemens Aktiengesellschaft Method and device for generating a device-specific identifier, and devices comprising a personalized programmable circuit component
US10642628B2 (en) 2015-07-15 2020-05-05 Siemens Aktiengesellschaft Method and device for generating a device-specific identifier, and devices comprising a personalized programmable circuit component

Also Published As

Publication number Publication date
WO2009138287A1 (de) 2009-11-19

Similar Documents

Publication Publication Date Title
DE102011088502B3 (de) Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
EP0283432B1 (de) Verfahren und Vorrichtung zum Schutz der Geheimelemente in einem Netz von Chiffriergeräten mit offener Schlüssel-Verwaltung
DE10319435B4 (de) Verfahren zur Verarbeitung von Daten zum Schutz eines Softwareprogramms vor Rekonstruktion
DE60217260T2 (de) Datenverarbeitungs- und Verschlüsselungseinheit
DE19924986A1 (de) Verschlüsselungs-Konversionsvorrichtung, Entschlüsselungs-Konversionsvorrichtung, kryptografisches Kommunikationssystem und elektronische Gebühren-Sammelvorrichtung
EP1883906B1 (de) Tragbarer datenträger mit sicherer datenverarbeitung
DE102014213539A1 (de) Einrichtung und Verfahren zur Speicheradressenverschlüsselung
DE102013213316A1 (de) Zufallsbitstromgenerator mit verbesserter rückwärts gerichteter Gemeinhaltung
DE112018003506T5 (de) Verfahren und Systeme zur linearen Schlüsselvereinbarung mit Forward Secrecy unter Verwendung eines unsicheren gemeinsam genutzten Kommunikationsmediums
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
EP1073019A2 (de) Verfahren und Vorrichtung zur Übertragung von Daten auf SmartCards
DE602004001732T2 (de) Datenverschlüsselung in einem elektronischen Gerät mit mehreren symmetrischen Prozessoren
DE3705736A1 (de) Verfahren zum sichern von programmen und zur integritaetskontrolle gesicherter programme
DE112018002723T5 (de) System, verfahren und vorrichtung zur verschleierung von vorrichtungsoperationen
DE10142351A1 (de) Initialisieren einer Chipkarte
DE102008023912A1 (de) Verfahren und Speichervorrichtung zum Bereitstellen eines kryptografischen Schlüssels
DE102014117311A1 (de) Kommunikationsanordnung und Verfahren zum Generieren eines Kryptografieschlüssels
EP3371733B1 (de) Verschlüsseln des speicherinhalts eines speichers in einem eingebetteten system
EP0320489A2 (de) Verfahren zur Erhöhung der Sicherheit einer IC-Karte und IC-Karte hierzu
DE4420970A1 (de) Entschlüsselungseinrichtung von Entschlüsselungsalgorithmen und Verfahren zur Durchführung der Ver- und Entschlüsselung derselben
DE19960047B4 (de) Verfahren und Einheit zur sicheren Informationsbehandlung in einem kryptographischen Informationsverarbeitungssystem
EP1035683B1 (de) Verfahren zur Erhöhung der Datensicherheit von Implementierungen kryptographischer Algorithmen
DE102018006313A1 (de) Verfahren mit Safe-Error-Abwehrmaßnahme
DE102008054627A1 (de) Steuergerät mit dem Verfahren zum Manipulationsschutz Computerprogramm, Computerprogrammprodukt
DE102014108221A1 (de) Gesicherte Module unter Verwendung eindeutiger Identifikationselemente

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal