WO2009138287A1 - 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
WO2009138287A1
WO2009138287A1 PCT/EP2009/053418 EP2009053418W WO2009138287A1 WO 2009138287 A1 WO2009138287 A1 WO 2009138287A1 EP 2009053418 W EP2009053418 W EP 2009053418W WO 2009138287 A1 WO2009138287 A1 WO 2009138287A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
bits
cryptographic key
cryptographic
stored
Prior art date
Application number
PCT/EP2009/053418
Other languages
English (en)
French (fr)
Inventor
Markus Dichtl
Erwin Hess
Bernd Meyer
Original Assignee
Siemens Aktiengesellschaft
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 Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Publication of WO2009138287A1 publication Critical patent/WO2009138287A1/de

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

Definitions

  • the present invention relates to a method and an apparatus for providing a cryptographic key, as required, for example, in encryption or authentication methods.
  • Cryptography usually refers to methods for encrypting and decrypting data.
  • encryption it is generally desired to subject data to a mathematical transformation in such a way that it is not possible for an attacker who possesses the data or a copy to reconstruct the original data from the transformed data.
  • a secret key which is defined as the longest possible binary number, is used for encryption or ciphering.
  • the encrypted data can then be decrypted or decrypted by the receiver with knowledge of the secret key in order to obtain the plaintext.
  • the cryptographic key must therefore be stored as securely as possible and must not be able to be determined by an intruder, for example by means of a so-called cryptanalysis.
  • Used keys stored in flash memories or technologically related memories, such as EEPROM memory It is therefore an object of the present invention to provide an improved method and apparatus suitable for securely storing cryptographic keys.
  • a method for providing a cryptographic key having a plurality of key bits.
  • the key bits are stored in a memory, such as in a flash memory and read from the memory. At least one key bit is inverted at a predetermined bit position each time before storing and after reading out the key bits.
  • each key bit is stored as an inverted key bit.
  • the information about the respective bit position at which an inversion is to be made can likewise be stored or made known in various ways. For example, it is possible to invert several key bits during storage and / or readout at the predetermined bit positions.
  • the predetermined bit position may be determined by corresponding masking data which is stored.
  • the method may include the steps of: inverting at least one key bit at a predetermined bit position to generate an altered cryptographic key; Storing the modified cryptographic key; Reading the key bits of the altered cryptographic key; and inverting the read out Key bits of the modified cryptographic key at the at least one predetermined bit position for recovering the cryptographic key.
  • the invention further comprises a method for storing a cryptographic key which has a plurality of key bits, in particular in a flash memory.
  • a cryptographic key which has a plurality of key bits, in particular in a flash memory.
  • at least one of the key bits is stored inverted at a predetermined bit position.
  • the invention provides a method for reading out a cryptographic key which has a plurality of key bits, in particular from a flash memory.
  • a cryptographic key which has a plurality of key bits, in particular from a flash memory.
  • at least one of the stored key bits is inverted at a predetermined bit position.
  • the logic-linking for example with an XOR-link, of the respective cryptographic key with the masking data enables the
  • Key bits are inverted at the desired positions.
  • the invention further provides a storage device which is particularly suitable for carrying out the above-described methods.
  • a memory device for a cryptographic key which has a plurality of key bits, therefore has at least one inverter device for inverting at least one stored key bit at a predetermined bit position and a memory device for
  • a further memory device may be provided which stores masking data for specifying the predetermined bit positions.
  • the masking data with the stored, modified cryptographic key results the bit sequence of the original cryptographic key required for the respective cryptographic application or encryption.
  • the inverter device can be designed as a software module or software implemented. However, it is also conceivable to provide respective inverters in terms of hardware which, when reading from the flash memory carrying the key bits, invert certain bit positions.
  • a corresponding memory device is particularly suitable for use in a smartcard which, in addition to the memory device, has a processing unit, such as a microprocessor, which executes an encryption algorithm in dependence on the cryptographic key.
  • a processing unit such as a microprocessor
  • Possible applications are, for example, access cards, cash cards or other systems designed as chip cards or smart cards with security functionalities.
  • the invention provides a computer program product which causes the execution of one of the above-described methods on a program-controlled device.
  • a program-controlled computer device is for example a PC in question, is installed on the appropriate software.
  • the computer program can run on an embedded microcontroller or microprocessor, for example on a chip or smart card.
  • the computer program product can be implemented, for example, in the form of a data carrier, such as USB sticks or memory cards.
  • FIG. IA, IB is an exemplary flowchart of a method for storing a cryptographic Key and a cryptographic key
  • Figure 2A, 2B is an exemplary flow diagram of a method for reading a cryptographic key and a cryptographic key
  • FIG. 3 shows a block diagram of a chip card with an exemplary embodiment of a memory device for providing a cryptographic key
  • FIG. 4 is a block diagram of a first embodiment of a memory device for storing a cryptographic key
  • FIG. 5 shows a block diagram of a second embodiment of a memory device for storing a cryptographic key.
  • FIG. 1A shows an example flow chart for a method for storing a cryptographic key.
  • a cryptographic key is first provided in step A1.
  • a cryptographic key KS is illustrated with a plurality of key bits SO-SN. If these key bits SO-SN of the cryptographic key KS are stored in their original form, for example in a flash memory, the cryptographic key can be reconstructed by a cryptographic attack, as explained in the introduction.
  • step A2 therefore, the key bits are inverted at predetermined bit positions. This is illustrated in FIG. 1B.
  • the bit positions P and Q of the cryptographic Key KS are inverted so that inverted key bits SP and SQ are present at the respective bit position. This results in a modified cryptographic key KS '.
  • This modified cryptographic key KS ' is stored in step A3, as indicated in FIG. 1A. If a potential attacker is unaware of which of the bit positions were inverted during storage, manipulating the stored key bits, that is to say the bits of the changed cryptographic key KS ', can not be detected by a method of differential error analysis which actual cryptographic key KS is used. A corresponding cryptographic attack is only possible with conventional memory methods because in the end a known key, which for example has only zero bits, is generated and can be searched backwards step by step for 1-bit changes, so that the actual key is reconstructed.
  • an attacker can potentially set the key bits of the changed cryptographic key KS 'stored, for example, in a flash memory to zero, but the attacker can not, without great effort, destroy the unknown bit positions at which an inversion occurs, notice.
  • FIG. 2A illustrates a method for reading out a cryptographic key as a flow chart.
  • step A4 an altered cryptographic key KS ', as shown for example in FIG. 2B, is read out. Subsequently, in step A5, an inversion of read key bits of the changed cryptographic key takes place at predetermined bit positions P and Q. Thus, the key bits SP and SQ are inverted and obtain the values of the original key bit values SP and SQ of the cryptographic key KS. Subsequently, in step A6, the cryptographic key can be provided.
  • the original desired cryptographic key KS can only be read if the bit positions in which an inversion occurred during storage are known. For example, it is possible to securely store corresponding masking data indicating the respective predetermined bit positions.
  • the method steps indicated in FIGS. 1A and 2A can also be understood as a single method for providing a cryptographic key with the steps A1-A6.
  • the respective back calculation of the key bits or inverted key bits stored in, for example, a flash memory can be implemented in software when an encryption algorithm is carried out, for example.
  • a hardware-based inversion of key bits at predetermined positions is also conceivable.
  • FIG. 3 shows an exemplary block diagram of a chip card 1 implementing, for example, a cryptographic method.
  • the chip card or smartcard 1 has, for example, a processing unit 2 designed as a microcontroller or microprocessor, which is coupled to a data bus 5 via suitable lines 8.
  • To the data bus is also a memory 4 with, for example, a
  • a memory device 10 which is suitable for carrying out the above-described methods for providing cryptographic keys, is coupled to the data bus.
  • the memory device 10 has a flash memory 6 and an inversion device 7.
  • the flash memory 6 can be programmed by an external programming signal PRG.
  • key bits or inverted key bits of a cryptographic key may be externally programmed into the flash memory.
  • the inverter device 7 is set up such that at the predetermined bit positions the read-out key bit values present in the flash memory 6 are inverted and used by the processing unit or the microprocessor 2 in the respective implemented crypto-algorithm. That An altered cryptographic key KS 'is stored in the flash memory. However, the processing unit or microprocessor or controller 2 obtains the original actual cryptographic key by inverting the predetermined bits at predetermined bit positions.
  • the processing unit 2 is set up together with the operating software such that, for example, the methods according to FIGS. 1A and 2A are carried out.
  • FIG. 4 shows a first exemplary embodiment of a memory device 10 for storing a cryptographic or an altered cryptographic key.
  • the memory device 10 has a flash memory with, in the example of Figure 4, eight memory cells 12.
  • eight key bits S0-S7 are stored, of which at the bit positions 0 and 2 inverted key bits SO and S2 are present.
  • the inverter device 7 receives the key bits SO, Sl, S2, S3-S7 stored in the memory cells 12 in parallel, and outputs the original key bits S0-S7.
  • the inverter input Direction 7 each inverter or a NOT gate 9, 11, which causes a change in the logic level of the supplied bit values.
  • the inverters 9, 11 can be implemented by transistors in the corresponding semiconductor chip.
  • FIG. 5 shows a second exemplary embodiment of a memory device 10 for providing a cryptographic key KS.
  • the memory device 10 has a flash memory 6 with memory cells into which the key bits SO, S1, S2, S3-S7 of the modified cryptographic key KS 'are programmed.
  • masking data MD are stored, which determine the bit positions of those key bits that are stored inverted. For example, in FIG. 7, the bit position is 0 and 2.
  • the masking data MD has the same bit length as the modified cryptographic key KS ', and a logical 1 is written in each case at the positions 0 and 2. The remaining digits are 0.
  • Both the mask data MD and the key bits of the modified cryptographic key KS ' are supplied to an XOR gate 13.
  • the XOR gate 13 combines the respective bits, that is, the key bits present at the same bit position, and masking data bits.
  • the XOR gate 13 thus supplies the original cryptographic key KS by logically combining with an XOR operation.
  • the masking data MD which are necessary for the reconstruction of the actual cryptographic key KS and represent a bit mask, as well as the logical XOR link 13, can also be implemented in the program code of the crypto algorithm for the processing unit or the processor 2.
  • the corresponding program code can also be stored, for example, in a flash memory.
  • a manipulation attempt on the appropriate Flash content wel rather than containing only the mask and key data, but also the program code for the cryptographic methods, attempted manipulation would also likely disrupt the program code so that the crypto-algorithm can no longer run correctly. Because of the intervention in the program code, an attacker can no longer initiate the necessary cryptographic process and thus can no longer determine the original cryptographic key and / or the mask data.
  • the present invention discloses methods and apparatuses for providing cryptographic keys or key bits by means of exemplary embodiments, these can be modified in many ways.
  • the specified bit lengths of the keys and the number of inverse key bits are only to be understood as examples.
  • a number of inverted bits that is approximately half the bit length of the cryptographic key to be provided is particularly suitable.
  • Usual key lengths are greater than 80 bits, for example. Due to the simple low implementation overhead compared to conventional memory methods in flash memories, the proposed method or device is particularly suitable for use in smart cards and simple cryptographic tokens for mass applications.

Abstract

Verfahren zum Bereitstellen eines kryptografischen 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

Beschreibung
Verfahren und Speichervorrichtung zum Bereitstellen eines kryptografischen Schlüssels
Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zum Bereitstellen eines kryptografischen Schlüssels, wie er beispielsweise bei Verschlüsselungs- oder Au- thentifizierungsverfahren 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 Se- cret Key Cryptosystems" in Proceedings of Advances in Crypto- logy - Crypto '97, 17th Annual 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 er- gibt. 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 kryp- tografischen Schlüssel entstanden ist, in dem nur ein Bit ge- setzt 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 kryptogra- fischen 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 kryp- tografischen Schlüsseln, die nach dem vorbeschriebenen Ver- fahren 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 Bitpo- sition, 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 Bitpo- sition zum Erzeugen eines veränderten kryptografischen Schlüssels; Speichern des veränderten kryptografischen Schlüssels; Auslesen der Schlüsselbits des veränderten kryp- tografischen 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 kryptogra- fischen 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 ausgebil- det 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 durch- fü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
Figur IA, IB ein beispielhaftes Ablaufdiagramm eines Verfahrens zum Speichern eines kryptografischen Schlüssels und einen kryptographischen Schlüssel;
Figur 2A, 2B ein beispielhaftes Ablaufdiagramm eines Verfahrens zum Auslesen eines kryptografischen Schlüssels und einen kryptographischen Schlüssel;
Figur 3 ein Blockdiagramm einer Chipkarte mit einem Ausführungsbeispiel einer Speichervorrichtung zum Bereitstellen eines kryptografischen Schlüssels;
Figur 4 ein Prinzipschaltbild einer ersten Ausführungsform einer Speichereinrichtung zum Speichern eines kryptografischen Schlüssels; und
Figur 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 Figur IA ist ein beispielhaftes Ablaufdiagramm für ein Verfahren zum Speichern eines kryptografischen Schlüssels dargestellt. Dazu wird im Schritt Al zunächst ein kryptogra- fischer Schlüssel bereitgestellt. In der Figur IB 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, kryptografi- schen Angriff, der kryptografische Schlüssel rekonstruiert werden .
Im Schritt A2 werden deshalb an vorgegebenen Bitpositionen die Schlüsselbits invertiert. Dies ist in der Figur IB 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 Figur IA 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 kryptografi- sche Schlüssel KS verwendet wird. Ein entsprechender kryp- tografischer 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 ho- hen 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 Figur 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 Figur 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 Figuren IA 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 beispiels- weise 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 Figur 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 Mikro- prozessor 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 pro- grammiert 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 kryptogra- fischer 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äß Figur IA und 2A durchgeführt werden.
In der Figur 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 Figur 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 SO und S2 vorliegen. Die Invertereinrichtung 7 empfängt die in den Speicherzellen 12 abgelegten Schlüsselbits SO, Sl, 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 Figur 5 zeigt ein zweites Ausführungsbeispiel für eine Speichereinrichtung 10 zum Bereitstellen eines kryptografi- schen Schlüssels KS. Wie bereits in der Figur 4 dargestellt ist, weist die Speichereinrichtung 10 einen Flash-Speicher 6 mit Speicherzellen auf, in die die Schlüsselbits SO, Sl, 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 Figur 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 ver- knü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- eher 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 inver- tierten 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 kryptografi- schen Token für Massenanwendungen.

Claims

Patentansprüche
1. Verfahren zum Bereitstellen eines kryptografischen Schlüssels (KS) mit mehreren Schlüsselbits (Sl-SN), wobei die Schlüsselbits (Sl-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 (Sl-SN) jeweils mindestens ein Schlüsselbit (Sl-SN) an einer vorgegebenen Bitpositionen invertiert wird.
2. Verfahren nach Anspruch 1, umfassend:
- Invertieren (A2) mindestens eines Schlüsselbits (Sl-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 (Sl-SN) des veränderten kryptografischen Schlüssels (KS'); und - Invertieren (A5) der ausgelesenen Schlüsselbits (Sl-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 (Sl-SN) aufweist, insbesondere in einem Flash-Speicher, wobei mindestens eines der Schlüsselbits (Sl-SN) an einer vorgegeben Bitposition invertiert abgespeichert wird.
4. Verfahren zum Auslesen eines kryptografischen Schlüssels (KS) , welcher mehrere Schlüsselbits (Sl-SN) aufweist, insbesondere aus einem Flash-Speicher, wobei mindestens eines der abgespeicherten Schlüsselbits (Sl-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üp- fen, insbesondere durch eine XOR-Verknüpfung, des kryptogra- fischen 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 (Sl-SN) aufweist, mit mindestens einer Invertereinrichtung (9, 11) zum Invertieren mindestens eines gespeicherten Schlüsselbits (SO, S2) an einer vorgegebenen Bitposition und mit einer Speichereinrichtung (6) zum Speichern der Schlüsselbits (S2, S3-S7) und des invertierten Schlüsselbits (SO, 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 durchge- führt wird.
10. Speichervorrichtung (10) nach Anspruch 8 oder 9, wobei eine weitere Speichereinrichtung (4B) zum Speichern von Maskierungsdaten (4B) , welche die vorgegebene Bitposition fest- legt, 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.
PCT/EP2009/053418 2008-05-16 2009-03-24 Verfahren und speichervorrichtung zum bereitstellen eines kryptografischen schlüssels WO2009138287A1 (de)

Applications Claiming Priority (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
DE102008023912.7 2008-05-16

Publications (1)

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

Family

ID=40737615

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2009/053418 WO2009138287A1 (de) 2008-05-16 2009-03-24 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
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

Citations (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
US20040042620A1 (en) * 2002-09-03 2004-03-04 Andrews Richard F. Method and system of securely escrowing private keys in a public key infrastructure
US6839847B1 (en) * 1998-11-30 2005-01-04 Hitachi, Ltd. Information processing equipment and IC card
WO2005027403A1 (ja) * 2003-09-11 2005-03-24 Renesas Technology Corp. 情報処理装置
US20060256963A1 (en) * 2005-05-10 2006-11-16 Research In Motion Limited Key masking for cryptographic processes
US20080019503A1 (en) * 2005-11-21 2008-01-24 Vincent Dupaquis Encryption protection method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11191149A (ja) * 1997-12-26 1999-07-13 Oki Electric Ind Co Ltd Icカード用lsiおよびその使用方法
US7266661B2 (en) * 2004-05-27 2007-09-04 Silverbrook Research Pty Ltd Method of storing bit-pattern in plural devices

Patent Citations (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
US6839847B1 (en) * 1998-11-30 2005-01-04 Hitachi, Ltd. Information processing equipment and IC card
US20040042620A1 (en) * 2002-09-03 2004-03-04 Andrews Richard F. Method and system of securely escrowing private keys in a public key infrastructure
WO2005027403A1 (ja) * 2003-09-11 2005-03-24 Renesas Technology Corp. 情報処理装置
US20060256963A1 (en) * 2005-05-10 2006-11-16 Research In Motion Limited Key masking for cryptographic processes
US20080019503A1 (en) * 2005-11-21 2008-01-24 Vincent Dupaquis Encryption protection method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
DE102008023912A1 (de) 2009-11-19

Similar Documents

Publication Publication Date Title
EP0283432B1 (de) Verfahren und Vorrichtung zum Schutz der Geheimelemente in einem Netz von Chiffriergeräten mit offener Schlüssel-Verwaltung
DE102005013830B4 (de) Vorrichtung und Verfahren zum verschlüsselten Übertragen von Daten
DE19924986A1 (de) Verschlüsselungs-Konversionsvorrichtung, Entschlüsselungs-Konversionsvorrichtung, kryptografisches Kommunikationssystem und elektronische Gebühren-Sammelvorrichtung
EP1883906B1 (de) Tragbarer datenträger mit sicherer datenverarbeitung
EP1496420B1 (de) Sicherheits-Datenverarbeitungseinheit sowie dazugehöriges Verfahren
DE112018003506T5 (de) Verfahren und Systeme zur linearen Schlüsselvereinbarung mit Forward Secrecy unter Verwendung eines unsicheren gemeinsam genutzten Kommunikationsmediums
DE60116195T2 (de) Vorrichtung und Verfahren zur Verschleierung von Eingangsparametern
DE3321910A1 (de) Vorrichtung und verfahren zum schuetzen von software
EP1073019A2 (de) Verfahren und Vorrichtung zur Übertragung von Daten auf SmartCards
EP1080454B1 (de) Zugriffsgeschützter datenträger
DE102004042826A1 (de) Verfahren und Vorrichtung zur Datenverschlüsselung
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
WO2009138287A1 (de) Verfahren und speichervorrichtung zum bereitstellen eines kryptografischen schlüssels
DE10352680A1 (de) Verschlüsselungsvorrichtung und Verschlüsselungsverfahren
DE102014117311A1 (de) Kommunikationsanordnung und Verfahren zum Generieren eines Kryptografieschlüssels
EP3371733B1 (de) Verschlüsseln des speicherinhalts eines speichers in einem eingebetteten system
DE19960047B4 (de) Verfahren und Einheit zur sicheren Informationsbehandlung in einem kryptographischen Informationsverarbeitungssystem
DE4420970A1 (de) Entschlüsselungseinrichtung von Entschlüsselungsalgorithmen und Verfahren zur Durchführung der Ver- und Entschlüsselung derselben
EP1035683B1 (de) Verfahren zur Erhöhung der Datensicherheit von Implementierungen kryptographischer Algorithmen
DE60023770T2 (de) Verfahren und Vorrichtung zur Sicherung eines Kryptokoprocessors
EP3903440B1 (de) Verfahren zum betreiben von im zähler-modus betriebenen schlüsselstromgeneratoren zur sicheren datenübertragung, schlüsselstromgenerator mit zähler-modus-betrieb zur sicheren datenübertragung und computer-programm-produkt zur schlüsselstromerzeugung
DE102005063482B4 (de) Vorrichtung und Verfahren zum verschlüsselten Übertragen von Daten
WO2024038210A1 (de) Verfahren zum bereitstellen eines digitalen schlüssels

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09745620

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09745620

Country of ref document: EP

Kind code of ref document: A1