DE102015209368A1 - Ableiten eines kryptographischen Schlüssels einer vorgebbaren Schlüsselgeneration - Google Patents

Ableiten eines kryptographischen Schlüssels einer vorgebbaren Schlüsselgeneration Download PDF

Info

Publication number
DE102015209368A1
DE102015209368A1 DE102015209368.9A DE102015209368A DE102015209368A1 DE 102015209368 A1 DE102015209368 A1 DE 102015209368A1 DE 102015209368 A DE102015209368 A DE 102015209368A DE 102015209368 A1 DE102015209368 A1 DE 102015209368A1
Authority
DE
Germany
Prior art keywords
key
cryptographic
value
generation
key generation
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
DE102015209368.9A
Other languages
English (en)
Inventor
Erwin Hess
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 DE102015209368.9A priority Critical patent/DE102015209368A1/de
Publication of DE102015209368A1 publication Critical patent/DE102015209368A1/de
Withdrawn legal-status Critical Current

Links

Images

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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft ein Verfahren und ein Kryptomodul zum Ableiten eines kryptographischen Schlüssels einer aus einer Menge von mindestens zwei Schlüsselgenerationen vorgebbaren Schlüsselgeneration sowie ein Verfahren und eine Vorrichtung zum Bereitstellen von Schlüsselinformation für eine festlegbare Schlüsselgeneration, wobei geheime kryptographische Schlüssel aus einem Startwert mit einer Einwegfunktion abgeleitet werden und die Reihenfolge ihrer Verwendung für kryptographische Verfahren umgekehrt zur Reihenfolge der Schlüsselableitung vorgesehen ist.

Description

  • Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum Ableiten eines kryptographischen Schlüssels einer aus einer Menge von mindestens zwei Schlüsselgenerationen vorgebbaren Schlüsselgeneration sowie ein Verfahren zum Bereitstellen von Schlüsselinformation für eine festlegbare Schlüsselgeneration.
  • Beim Einsatz kryptographischer Verfahren soll die Sicherheit des kryptographischen Verfahrens nicht davon abhängen, dass der verwendete Algorithmus geheim ist. Vielmehr sollte die Sicherheit nur davon abhängen, dass die verwendeten geheimen Schlüssel zuverlässig geheim gehalten werden können. Geheime Schlüssel sollten deshalb in besonderer Weise geschützt werden, das heißt beispielsweise gesichert gespeichert oder übertragen werden. Dies ist in der Regel mit hohem Implementierungsaufwand verbunden, wie beispielsweise dem Vorsehen von Tamperschutzmaßnahmen, Obfuskationstechniken, sicheren Speichern oder Seitenkanalresistenzmaßnahmen.
  • Die Verwendung von asymmetrischen kryptographischen Verfahren, bei denen nur ein privater Schlüssel geheim zu halten ist und beispielsweise für eine Verschlüsselung kein geheimer Schlüssel benötigt wird, ist ein Ansatz, die Zahl der zu verwendenden geheimen Schlüssel zu reduzieren.
  • Es ist allerdings nicht für jedes Einsatzszenario möglich, den Grundsatz, einen geheimen Schlüssel möglichst wenig zu nutzen und möglichst wenig zu verbreiten, durchzuhalten. Insbesondere ist für Geräte eines verteilten Systems, bei dem systemweit derselbe private Schlüssel für ein asymmetrisches kryptographisches Verfahren benutzt wird, das Risiko einer potentiellen Kompromittierung dieser systemweit gültigen Schlüssel erheblich.
  • Für die Absicherung systemweit identischer geheimer Schlüssel ist es aus dem Stand der Technik allgemein bekannt, in regelmäßigen Abständen einen neuen Schlüssel einzuführen. Beispielsweise wird ein Schlüsselupdate durchgeführt, so dass Ver- oder Entschlüsselung von Daten, beispielsweise von Konfigurationsdaten oder Betriebsdaten von Software, nach dem Schlüsselupdate nur noch mit dem neuen Schlüssel erfolgen kann. Ältere Schlüssel werden beispielsweise sukzessive deaktiviert oder gelöscht. Somit muss ein neuer Schlüssel insbesondere zentral erzeugt werden und über das System verteilt werden. Der jeweils aktuell gültige Schlüssel muss durch jedes Gerät des Systems gespeichert werden, damit eine Ver- oder Entschlüsselung mit diesem Schlüssel erfolgen kann.
  • Vor diesem Hintergrund ist es eine Aufgabe der vorliegenden Erfindung, Verfahren sowie ein Kryptomodul und eine Vorrichtung bereitzustellen, die den Einsatz eines kryptographischen Schlüssels einer vorgebbaren Schlüsselgeneration vereinfachen und sicherer gestalten.
  • Diese Aufgabe wird durch die unabhängigen Ansprüche gelöst. Vorteilhafte Ausführungen und Weiterbildung sind in den abhängigen Ansprüchen angegeben.
  • Gemäß einem ersten Aspekt der Erfindung ist ein Verfahren zum Ableiten eines kryptographischen Schlüssels einer aus einer Menge von mindestens zwei vorgebbaren Schlüsselgenerationen vorgesehen, wobei durch ein Kryptomodul folgende Schritte durchgeführt werden:
    • – Ermitteln eines Startwertes, wobei aus dem Startwert durch das Kryptomodul mittels mindestens einmaligen Anwendens einer kryptographischen Einwegfunktion ein zweiter Schlüssel einer zweiten Schlüsselgeneration als Anwendungsergebnis ableitbar ist und aus dem Anwendungsergebnis mittels Anwendens der kryptographischen Einwegfunktion ein erster Schlüssel einer ersten Schlüsselgeneration ableitbar ist;
    • – Ermitteln eines zu einer vorgegebenen Schlüsselgeneration zugehörigen Wertes, wobei eine Verwendung von Schlüsseln der zweiten Schlüsselgeneration auf die Verwendung von Schlüsseln der ersten Schlüsselgeneration folgend vorgesehen ist;
    • – Ableiten des kryptographischen Schlüssels aus dem Startwert mittels mindestens einmaligen Anwendens der kryptographischen Einwegfunktion in Abhängigkeit von dem ermittelten Wert.
  • Verschiedene Schlüsselgenerationen werden insbesondere vorgesehen, um aktuell gültige kryptographische Schlüssel für ein System vorzugeben. In diesem System sollen beispielsweise in bestimmten Zeitabschnitten neue geheime Schlüssel für alle Geräte des Systems verteilt werden. Die Geräte weisen beispielsweise das Kryptomodul als Chip mit integriertem Schaltkreis oder FPGA auf. Für die Geräte eines Systems soll beispielsweise ein Schlüsselupdate durchgeführt werden und ab einem festlegbaren Zeitpunkt soll nur noch ein aktuell gültiger Schlüssel verwendet werden können.
  • Es können Geräte einer Produktgeneration oder einer Produktversion zusammengefasst werden, für welche ein einheitlicher geheimer symmetrischer Schlüssel oder geheimer privater Schlüssel für ein asymmetrisches Kryptoverfahren gelten soll. Für mindestens zwei Produktgenerationen oder -Versionen sind somit voneinander verschiedene kryptographische, geheime Schlüssel gültig. Der kryptographische Schlüssel soll insbesondere auf
  • Der zu einer vorgegebenen Schlüsselgeneration zugehörige Wert ist beispielsweise ein den Produktgenerationen gemeinsames Identifikationsmerkmal. Dieses Merkmal kann insbesondere eine einfache Ordnungszahl sein.
  • Auf dem Kryptomodul ist eine kryptographische Einwegfunktion implementiert, welche beispielsweise Binärvektoren der Länge n auf Binärvektoren derselben Länge abbildet. Beispielsweise handelt es sich bei der Einwegfunktion um eine Hashfunktion, insbesondere MD5, SHA-1 oder SHA-256. Somit weist das Kryptomodul insbesondere eine Key-Management-Funktion auf und erzeugt selbst einen kryptographischen Schlüssel oder führt selbst ein Schlüsselupdate durch. Das Kryptomodul ist beispielsweise außerdem dazu ausgelegt, mit Hilfe des kryptographischen Schlüssels Daten zu verarbeiten. Insbesondere ist das Kryptomodul eine Entschlüsselungskomponente und dazu ausgelegt, verschlüsselte Daten mit Hilfe des geheimen kryptographischen Schlüssels zu entschlüsseln. Alternativ ist das Kryptomodul eine Authentifizierungskomponente und geeignet zum Überprüfen oder Nachweisen einer Authentizität. Dazu wird insbesondere mit Hilfe des geheimen, insbesondere privaten kryptographischen Schlüssels eine kryptographische Prüfsumme gebildet oder eine Verschlüsselung oder ein Signaturverfahren durchgeführt.
  • Unter dem Startwert wird ein Ausgangswert verstanden, auf Basis dessen der zweite Schlüssel und der erste Schlüssel ableitbar sind. Dafür wird die kryptographische Einwegfunktion auf den Startwert angewendet und als Anwendungsergebnis ist der zweite Schlüssel erhältlich. Wird auf diesen zweiten Schlüssel die kryptographische Einwegfunktion nochmals angewendet, das heißt iterativ angewendet, so ist der erste Schlüssel ableitbar. Dies ist auch ohne das Berechnen des Zwischenanwendungsergebnisses, d.h. ohne das explizite Berechnen des zweiten Schlüssels, durchführbar. Liegt auf Seiten der Entschlüsselungskomponente also der Startwert vor, so kann mit Hilfe der kryptographischen Einwegfunktion durch iteratives Anwenden dieser ein Schlüssel einer jeweiligen Schlüsselgeneration abgeleitet werden. Insbesondere beträgt die Anzahl der Iterationen eins, zwei oder mehr, beispielsweise bis zu 1000. Damit auf einer Entschlüsselungskomponente der passende, das heißt insbesondere aktuell gültige Schlüssel oder zu einer Produktgeneration des Kryptomoduls passende Schlüssel abgeleitet werden kann, wird die kryptographische Einwegfunktion zwei- oder mehrfach auf den Startwert angewendet oder iterativ die kryptographische Einwegfunktion auf das Anwendungsergebnis der vorherigen Anwendung angewendet, bis die passende Schlüsselgeneration erreicht wurde. Für das Ableiten des Schlüssels einer vorgegebenen Schlüsselgeneration wird die kryptographische Einwegfunktion iterativ auf den Startwert angewendet, ohne dass dafür notwendigerweise die Anwendungsergebnisse jeder Iteration extrahiert oder abgespeichert werden.
  • Wie oft das iterative Verfahren durchgeführt wird, wird direkt oder indirekt durch den ermittelten Wert vorgegeben. Dieser gibt insbesondere die Anzahl der Anwendungen ausgehend von dem Startwert an. Das Ermitteln des Startwertes erfolgt beispielsweise über einen Speicherzugriff des Kryptomoduls auf einen internen Speicher. Alternativ wird der Startwert ermittelt, indem er mittels einer Schnittstelle des Kryptomoduls zu einer gesicherten Ausführungsumgebung oder zu einem Server empfangen wird. Diese Einheiten legen insbesondere auch den Startwert fest.
  • Die Verwendung der Schlüssel, das heißt die Definition der Schlüsselgeneration, ist in umgekehrter Reihenfolge zur Kette der iterativen Ableitungen vorgesehen. Das heißt, dass derjenige Schlüssel, der durch das erste Anwenden der kryptographischen Einwegfunktion auf den Startwert ermittelbar ist, der letzt- oder jüngst-möglichen Schlüsselgeneration zugeordnet ist. Es wird eine bestimmte Anzahl an Schlüsselableitungen mittels der iterativen Kette vorgegeben, welche die maximale Anzahl an Schlüsselgenerationen zu dem Startwert festlegt. Wird diese maximale Anzahl an Ableitungen ausgehend von dem Startwert mittels der iterativen Kette durchgeführt, so liegt der erste Schlüssel der ersten Schlüsselgeneration vor.
  • Da es sich bei den Schlüsselableitungen innerhalb der iterativen Kette um Einwegfunktionen handelt, kann aus dem ersten Schlüssel nicht auf vorherige abgeleitete Schlüssel geschlossen werden. Lediglich die andere Richtung, das heißt das Ableiten des ersten Schlüssels aus dem zweiten Schlüssel, ist möglich. Somit erhält ein Kryptomodul mit der Angabe über den Startwert und den Wert, der über die gewünschte Schlüsselgeneration Auskunft gibt, genügend Informationen, um mit Hilfe der kryptographischen Einwegfunktion den zu dieser Schlüsselgeneration zugehörigen geheimen Schlüssel bilden zu können. Liegen auf der Entschlüsselungskomponente zusätzlich noch Daten vor, welche mit dem Schlüssel der vorherigen Generation entschlüsselt werden sollen, so kann das Kryptomodul auch diesen älteren Schlüssel der vorherigen Generation noch aus dem aktuell gültigen Schlüssel ableiten. Dafür muss der ältere Schlüssel nicht lokal gespeichert werden sondern kann bei Bedarf neu erzeugt werden.
  • Die Kompromittierung eines Systems, in dem ein aktuell gültiger geheimer Schlüssel einem Angreifer bekannt wird, kann somit dadurch behoben werden, dass den Geräten dieses Systems die Information über eine nächste Schlüsselgeneration vorgegeben wird. Es leiten sich daraufhin alle Entschlüsselungskomponenten des Systems den nun aktuell gültigen Schlüssel ab und der alte, kompromittierte Schlüssel wird für nachfolgende kryptographische Verfahren nicht mehr eingesetzt. Dennoch ist die Abwärtskompatibilität gegeben aufgrund der Herleitbarkeit der früheren Schlüsselgenerationen aus der aktuellen.
  • Durch das Generationenkonzept für Schlüssel kann die potentielle Gefahr, die mit der Verwendung eines systemweiten geheimen symmetrischen oder privaten Schlüssels grundsätzlich verbunden ist, stark reduziert werden, indem hinreichend viele Schlüsselgenerationen eingeführt werden. Der zu verwendende aktuelle Schlüssel muss nicht statisch abgespeichert werden, sondern kann vielmehr dynamisch im laufenden Betrieb erzeugt werden. Ein physikalisch gesicherter Schlüsselspeicher in den verteilten Komponenten des Systems ist somit vorteilhafterweise nicht erforderlich.
  • In den Kryptomodulen, beispielsweise Entschlüsselungskomponenten, eines Systems sind geheime oder private Schlüssel einer einstellbaren Zahl von Generationen verwendbar. Die Entschlüsselungskomponenten können somit Daten entschlüsseln, die mit Schlüsseln unterschiedlicher Generationen verschlüsselt worden sind, ohne dass die zugehörigen geheimen Schlüssel explizit abgespeichert sein müssen.
  • Gemäß einer Ausgestaltung ist der kryptographische Schlüssel als privater Schlüssel für ein asymmetrisches oder hybrides Verschlüsselungsverfahren verwendbar. Insbesondere bei der Vielzahl von im Umlauf befindlichen Schlüsseln eines verteilten Systems ist es üblich, auf asymmetrische Verschlüsselungsverfahren zurückzugreifen, um die Anzahl der geheim zu haltenden Schlüssel zu reduzieren. Durch das vorgeschlagene Verfahren entfällt ein Abspeichern der privaten Schlüssel auf dem Kryptomodul und überdies auf einem zugehörigen Schlüsselerzeugungssystem, welches die Zuordnung der privaten Schlüssel zu den Schlüsselgenerationen vorgibt und sich den aktuellen Schlüssel ebenfalls dynamisch erzeugen kann. Das zugehörige Schlüsselerzeugungssystem erzeugt ferner den Startwert und vorteilhafterweise ist nur dieser Startwert oder ein Vorgängerwert, aus welchem der Startwert erzeugt wird, gesichert zu speichern. Insbesondere ist kein Angriff auf einen Globalschlüssel, der für alle Komponenten des verteilten Systems zugleich gilt, möglich, da dieser auf den Komponenten nicht abgespeichert vorliegt.
  • Gemäß einer Ausgestaltung ist der private Schlüssel für ein Verschlüsselungsverfahren auf Basis des diskreten Logarithmus, insbesondere auf Basis elliptischer oder hyperelliptischer Kurven, verwendbar. Die privaten Schlüssel in Public Key Systemen auf Basis des diskreten Logarithmus sind insbesondere Zufallszahlen oder Pseudozufallszahlen und weisen keine weiteren Struktureigenschaften auf.
  • Gemäß einer Ausgestaltung ist der kryptographische Schlüssel als symmetrischer Schlüssel für ein symmetrisches oder hybrides Verschlüsselungs- oder Authentifizierungsverfahren verwendbar. Der symmetrische Schlüssel muss allen beteiligten Komponenten vorliegen, damit er für ein Verschlüsselungsverfahren oder ein symmetrisches Authentifizierungsverfahren eingesetzt werden kann. Sowohl die Kryptomodule eines verteilten Systems als auch eine zugehörige Schlüsselerzeugungsvorrichtung sind in der Lage, die Schlüssel der jeweiligen Schlüsselgeneration selbst abzuleiten. Somit entfällt auf vorteilhafte Weise das Abspeichern des jeweils gültigen symmetrischen Schlüssels. Auch bei der Verwendung symmetrischer Verschlüsselungs- oder Authentifizierungsverfahren ermöglicht das vorgeschlagene Verfahren die Abwärtskompatibilität, da frühere gültige symmetrische Schlüssel aus einem aktuell gültigen symmetrischen Schlüssel ableitbar sind.
  • Gemäß einer Ausgestaltung wird die Schlüsselgeneration vorgegeben anhand von zeitlichen Kriterien oder anhand einer Eigenschaft des Kryptomoduls oder eines Gerätes, auf dem das Kryptomodul vorgesehen ist. Es können somit verschiedene Schlüssel für verschiedene Softwareversionen vorgesehen sein, welche mit einem Softwareupdate gültig werden und insbesondere verteilt werden. Alternativ verursacht das Durchführen einen Generationenwechsels von Geräten mit dem Kryptomodul das Einführen eines neuen Schlüssels. Der Wechsel von einer Schlüsselgeneration zur nächsten kann in regelmäßigen zeitlichen Abständen oder unregelmäßig, insbesondere getriggert durch eine Schlüsselerzeugungskomponente, welche für die Verteilung des Startwertes vorgesehen ist, erfolgen.
  • Gemäß einer Ausgestaltung wird der zu einer vorgegebenen Schlüsselgeneration zugehörige Wert als Identifikationsmerkmal einer Schlüsselgeneration, insbesondere in Form einer Ordinalzahl, ermittelt. Beispielsweise kann die Ordinalzahl die Schlüsselgeneration in Form einer ganzzahligen Zahl darstellen. Aus der Information über die gewünschte Schlüsselgeneration kann die Anzahl der Iterationen ermittelt werden, insbesondere anhand einer Tabelle, welche eine Zuordnung von Schlüsselgenerationen zu dafür benötigten Iterationen enthält. Ferner kann in einer Variante auf einem Gerät, auf welchem das Kryptomodul vorgesehen ist, anhand einer weiteren Tabelle aus dem ermittelten Wert abgeleitet werden, zu welcher Schlüsselgeneration ein Schlüssel abgeleitet werden soll oder direkt die Information, wie viele Iterationen nötig sind. Beispielsweise ist in der weiteren Tabelle als Wert ein Kennzeichen, wie eine laufende Versionsnummer, hinterlegt sowie die Zuordnung der Versionsnummer zu der passenden Schlüsselgeneration oder der passenden Anzahl der Iterationen.
  • In einer vorteilhaften Variante ist die Zuordnung von Schlüsselgeneration zu Anzahl benötigter Iterationen nicht gleichmäßig, sondern unregelmäßig, nicht-linear oder zufällig. Dies erhöht die Sicherheit des kryptographischen Schlüssels weiter, da für einen potentiell erfolgreichen Angriff auch die Information über die Zuordnungsfunktion bekannt sein müsste. Beispielsweise ist bei einem Generationenwechsel der nachfolgende Schlüssel durch eine um zwei oder mehr reduzierte Anzahl an Ableitungen generierbar, statt durch eine um eins reduzierte Anzahl.
  • Gemäß einer Ausgestaltung wird der zu einer vorgegebenen Schlüsselgeneration zugehörige Wert als Anzahl vorgesehener Anwendungen der kryptographischen Einwegfunktion auf den Startwert ermittelt. Damit das Kryptomodul den passenden Schlüssel ableiten kann, ist es insbesondere ausreichend, eine Information darüber zu erhalten, wie viele Iterationen der Einwegfunktion ausgehend von dem Startwert erforderlich sind. Die Ordinalzahl gibt somit die Anzahl der Iterationen der kryptographischen Einwegfunktion an, die das Kryptomodul auszuführen hat oder die eine Schlüsselerzeugungskomponente selbst durchgeführt hat, um den Schlüssel zu erhalten.
  • Gemäß einer Ausgestaltung ist aus dem Startwert durch Anwenden der kryptographischen Einwegfunktion mindestens ein dritter Schlüssel einer dritten Schlüsselgeneration als weiteres Anwendungsergebnis ableitbar und aus diesem weiteren Anwendungsergebnis ist durch Anwenden der kryptographischen Einwegfunktion der zweite Schlüssel als Anwendungsergebnis ableitbar, wobei eine Verwendung von Schlüsseln der dritten Schlüsselgeneration auf die Verwendung von Schlüsseln der zweiten Schlüsselgeneration folgend vorgesehen ist. Aus dem Startwert ist somit eine Kaskade geheimer Schlüssel ableitbar. In einer Weiterbildung sind bis zu 100, 1000 oder 10000 Ableitungen vorgesehen. Die maximale Anzahl unterschiedlicher Schlüssel- oder Produktgenerationen für die Schlüsselerzeugung auf Basis des gewählten Startwertes ist dann entsprechend 100, 1000 oder 10000. Die Schlüsselableitung erfolgt jeweils nach dem gleichen Prinzip der mehrfachen iterativen Anwendung der kryptographischen Einwegfunktion.
  • Die Erfindung betrifft ferner ein Verfahren zum Bereitstellen von Schlüsselinformation für eine festlegbare Schlüsselgeneration, wobei durch eine gesicherte Ausführungsumgebung folgende Schritte ausgeführt werden:
    • – Ermitteln eines Startwertes;
    • – Festlegen einer maximalen Anzahl an Schlüsselgenerationen zu dem Startwert, wobei ein kryptographischer Schlüssel einer jeweiligen Schlüsselgeneration der maximal festgelegten Schlüsselgenerationen mittels iterativen Anwendens einer kryptographischen Einwegfunktion auf den Startwert ableitbar ist;
    • – Bereitstellen des Startwertes als Schlüsselinformation für ein Kryptomodul, wobei der zu der festlegbaren Schlüsselgeneration zugehörige kryptographische Schlüssel durch das Kryptomodul aus dem Startwert mittels iterativen Anwendens der kryptographischen Einwegfunktion in Abhängigkeit von einer Angabe über die Schlüsselgeneration ableitbar ist.
  • Die gesicherte Ausführungsumgebung stellt somit ein Schlüsselerzeugungssystem dar, welches in einer sicheren Umgebung vorhanden ist. Diese sichere Umgebung kann auch als Trust Center bezeichnet werden. Das iterative Anwenden der kryptographischen Einwegfunktion auf den Startwert führt auch auf Seiten des Schlüsselerzeugungssystems zu den Schlüsseln der verschiedenen Generationen.
  • Der Startwert ist insbesondere eine Zufallszahl. Er wird insbesondere für Kryptomodule, die in einem System zusammenwirken, einheitlich gewählt. In einer Variante wird er aus einem Urschlüssel abgeleitet und spezifisch je Kryptomodul oder über die Zeit veränderlich gewählt.
  • Auf Seiten des Schlüsselerzeugungssystems ist somit durch das Festlegen der maximalen Anzahl an Schlüsselgenerationen bekannt, wie viele Schlüsselgenerationen es insgesamt für einen Startwert gibt, d.h. für wie viele Schlüsselgenerationen durch ein Kryptomodul ein Schlüssel ableitbar ist. Die Anzahl der verschiedenen, durch die sichere Ausführungsumgebung ableitbaren Schlüssel, d.h. die Länge der Kette der iterativen Ableitungen, legt die Anzahl der möglichen unterscheidbaren Schlüsselgenerationen fest. Ein Festlegen erfolgt insbesondere durch ein Zuordnen des letzten der in der Kaskade durch die gesicherte Ausführungsumgebung erzeugbaren Schlüssels zu einer ersten Schlüsselgeneration. Durch dieses Festlegen als ersten Schlüssel ist die maximale Anzahl an Schlüsselgenerationen durch die Länge der Kaskade festgelegt, da ein Wechsel zur nächsten Schlüsselgeneration rückwärts zur Reihenfolge der Schlüsselableitungen in der Kaskade erfolgt. Ein Wechsel zu einem Schlüssel einer nächsten, jüngeren Schlüsselgeneration wird immer nur hin zu einem Schlüssel, der in der Kette der iterativen Ableitungen vorher gebildet wurde, erfolgen, damit aus diesem nicht auf den früher gültigen Schlüssel geschlossen werden kann. Gleichzeitig wird die Abwärtskompatibilität des Kryptomoduls sichergestellt, da aus einem Schlüssel einer späteren Schlüsselgeneration oder aus dem Startwert auch noch vorherige Schlüssel abgeleitet werden können.
  • Es wird entweder der Startwert alleine als Schlüsselinformation bereitgestellt, oder zugleich auch die Angabe über die Schlüsselgeneration und die maximale Anzahl an Schlüsselgenerationen oder eine benötigte Anzahl von Ableitungen ausgehend vom Startwert. Diese Angaben können alternativ bereits teilweise auf dem Kryptomodul vorhanden sein, oder über eine anderen Übertragungsweg und/ oder von einer dritten Komponente an das Kryptomodul übermittelt werden.
  • Gemäß einer Weiterbildung erfolgt ferner ein Festlegen einer Reihenfolge für die Verwendung der iterativ ableitbaren kryptographischen Schlüssel umgekehrt zur Reihenfolge der iterativen Ableitung. Dabei erfolgt eine Zuordnung von kryptographischen Schlüsseln zu Schlüsselgenerationen oder Produktgenerationen, wobei ein weiterer Schlüssel, der aus einem in der iterativen Kette zuvor bereits erzeugten kryptographischen Schlüssel ableitbar ist, einer früheren Schlüsselgeneration zugeordnet wird. Die Reihenfolge für die Verwendung der iterativ abgeleiteten Schlüssel ist gerade umgekehrt zur Reihenfolge ihrer Ableitung, d.h. der Schlüssel nach der ersten Ableitung wird ein Schlüssel der letzten Schlüsselgeneration, der Schlüssel der letzten Ableitung in der Kaskade wird ein Schlüssel der ersten Schlüsselgeneration. Entsprechend dieser Festlegung erfolgt das Ausgeben einer Angabe über die Schlüsselgeneration.
  • Aus dem Startwert ist durch Anwenden der kryptographischen Einwegfunktion mindestens ein zweiter Schlüssel einer zweiten Schlüsselgeneration ableitbar und aus diesem Anwendungsergebnis ist durch Anwenden der kryptographischen Einwegfunktion der erste Schlüssel ableitbar, wobei insbesondere eine Verwendung von Schlüsseln der zweiten Schlüsselgeneration auf die Verwendung von Schlüsseln der ersten Schlüsselgeneration folgend vorgesehen ist. Ebenso kann ein dritter, vierter, fünfter, sechster Schlüssel usw. vorgesehen sein.
  • Gemäß einer Ausgestaltung wird der Startwert aus einem Urschlüssel, insbesondere aus einer Zufallszahl, abgeleitet. Die gesicherte Ausführungsumgebung oder das Schlüsselerzeugungssystem oder Schlüsselableitungssystem erzeugen demgemäß zunächst den Urschlüssel, beispielsweise mit Hilfe eines Zufallszahlengenerators. Beispielsweise ist der Schlüssel eine Zufallszahl der Binärlänge n = 256. Dieser Urschlüssel verbleibt dauerhaft in der sicheren Umgebung des Schlüsselableitungssystems. Somit wird auf vorteilhafte Weise als Startwert nicht der Urschlüssel oder Masterschlüssel verteilt, sondern ein daraus auf beliebige Weise abgeleiteter Startwert. Wird dieser Startwert beispielsweise durch einen Angreifer ausgelesen, so kann durch die sichere Ausführungsumgebung ein neuer Startwert aus dem Urschlüssel erzeugt werden und das oben beschriebene Verfahren entsprechend mit dem neuen Startwert durchgeführt werden. Der neue Startwert kann wiederum an das Kryptomodul oder mehrere betroffene Kryptomodule nach Art des oben beschriebenen Kryptomoduls innerhalb eines verteilten Systems verteilt werden. Das Ableiten des Startwertes aus dem Urschlüssel kann insbesondere mittels der kryptographischen Einwegfunktion durchgeführt werden. Alternativ können andere geeignete Einwegfunktionen verwendet werden, um zum Startwert zu gelangen. Es kann ein iteratives Anwenden der kryptographischen Einwegfunktion auf den Urschlüssel vorgesehen sein, sodass eine Gesamtkaskade beim Urschlüssel startet und über mindestens einen Zwischenwert beim Schlüssel der ersten Schlüsselgeneration endet. Aus dem Startwert sollte nicht mit vertretbarem Aufwand auf den Urschlüssel rückgeschlossen werden können. Für verschiedene Kryptomodule eines zusammenhängenden Systems können verschiedene Positionen innerhalb der Kaskade der Ableitung aus dem Urschlüssel als Startwerte verwendet werden.
  • Gemäß einer Ausgestaltung wird der Startwert mittels iterativen Anwendens der kryptographischen Einwegfunktion aus einem Urschlüssel abgeleitet und der Startwert bildet einen weiteren Generationsschlüssel zu dem aus dem Startwert maximal ableitenden Generationsschlüsseln. Der Startwert stellt somit einen kryptographischen Schlüssel innerhalb der Kaskade der iterativ erzeugten Schlüssel dar, welche beginnend mit dem Urschlüssel durch iteratives Anwenden der kryptographischen Einwegfunktion erhältlich sind.
  • Folgende Formeln veranschaulichen die iterative Schlüsselableitung auf Seiten der gesicherten Ausführungsumgebung:
    Figure DE102015209368A1_0002
  • Dabei stellt Kpriv jeweils den kryptographischen, insbesondere privaten Schlüssel dar, der zugehörige Index kennzeichnet die Generation. Dabei steht max für die Gesamtzahl der durchgeführten Ableitungen. Die gewählte maximale Generationenanzahl, deren Schlüssel durch ein Kryptomodul berechenbar sein sollen, kann dennoch kleiner sein und ist davon abhängig, nach wie vielen Ableitungen der Startwert gewählt wird. j steht für eine beliebige Generation.
  • Gemäß einer Ausgestaltung ist die kryptographische Einwegfunktion derart ausgebildet, dass der Startwert derart aus dem Urschlüssel mittels mindestens einmaligen Anwendens der kryptographisch Einwegfunktion abgeleitet wird, dass die Generationsschlüssel aus dem Startwert ableitbar sind und der Startwert zugleich selbst kein weiterer Generationsschlüssel ist.
  • Somit ist der Startwert selbst kein Vorgängerschlüssel des ersten, zweiten Schlüssels usw. und dennoch können die systemweit gültigen kryptographischen Schlüssel aus dem Startwert abgeleitet werden. Beispielsweise ist die Einwegfunktion Φ so konstruiert, dass sie selbst Potenz einer weiteren Einwegfunktion Φ = Fλ ist, mit einer natürlichen Zahl λ. Dann gilt:
    Figure DE102015209368A1_0003
  • Man kann dann den Startwert a derart wählen, dass dieser keine Potenz der kryptographischen Einwegfunktion ist, beispielsweise a = Fλc+d, mit d < λ. Somit ist der Startwert selbst kein Generationsschlüssel, so dass auf dem Kryptomodul, auf welchem der Startwert bereitgestellt wird, kein potentieller Vorgängerschlüssel eines kryptographischen Schlüssels einer beliebigen Schlüsselgeneration sichtbar ist. In einer Variante können die beiden Werte c und d für unterschiedliche Kryptomodule eines Systems, beispielsweise unterschiedliche Entschlüsselungskomponenten, verschieden gewählt werden.
  • Die Erfindung betrifft ferner ein Kryptomodul zum Ableiten eines kryptographischen Schlüssels einer aus einer Menge von mindestens zwei Schlüsselgenerationen vorgebbaren Schlüsselgeneration, aufweisend:
    • – Eine erste Komponente zum Ermitteln eines Startwertes, wobei aus dem Startwert durch das Kryptomodul mittels mindestens einmaligen Anwendens einer kryptographischen Einwegfunktion ein zweiter Schlüssel einer zweiten Schlüsselgeneration als Anwendungsergebnis ableitbar ist und aus dem Anwendungsergebnis mittels Anwendens der kryptographischen Einwegfunktion ein erster Schlüssel einer ersten Schlüsselgeneration ableitbar ist;
    • – eine zweite Komponente zum Ermitteln eines zu einer vorgegebenen Schlüsselgeneration zugehörigen Wertes, wobei eine Verwendung von Schlüsseln der zweiten Schlüsselgeneration auf die Verwendung von Schlüsseln der ersten Schlüsselgeneration folgend vorgesehen ist;
    • – eine dritte Komponente mit Zählwerk zum Ableiten des kryptographischen Schlüssels aus dem Startwert mittels Anwendens der kryptographischen Einwegfunktion, wobei das Zählwerk eine Anzahl für das Anwenden in Abhängigkeit von dem ermittelten Wert vorgibt.
  • Die erste Komponente ist beispielsweise eine Schnittstelle zu einer gesicherten Ausführungsumgebung, welche den Startwert ermittelt und an das Kryptomodul sendet. Die zweite Komponente ist beispielsweise ebenfalls eine Schnittstelle zu der gesicherten Ausführungsumgebung, die insbesondere auch den Wert ermittelt und bereitstellt. Alternativ sind die erste und die zweite Komponente Ausleseeinheiten zu internen Speichern des Kryptomoduls, in welchen der Startwert und/ oder der Wert gespeichert sind. Auf der dritten Komponente ist die kryptographische Einwegfunktion implementiert. Sie weist ferner das Zählwerk auf, welches die Schlüsselableitung auf Seiten der Entschlüsselungskomponente steuert, indem die Anzahl der Iterationen gesteuert wird. Somit erhält die Entschlüsselungskomponente aus dem Startwert und der Einwegfunktion den gewünschten Generationsschlüssel in Abhängigkeit von der dem Zählwerk vorgegebenen Anzahl an Ableitungen.
  • Die Erfindung betrifft ferner eine Vorrichtung zum Bereitstellen von Schlüsselinformation für einen kryptographischen Schlüssel einer festlegbaren Schlüsselgeneration, aufweisend
    • – eine vierte Komponente zum Festlegen eines Startwertes;
    • – eine fünfte Komponente zum Festlegen eines Wertes in Abhängigkeit von der festlegbaren Schlüsselgeneration,
    • – eine sechste Komponente zum Übermitteln des Startwertes und des Wertes an ein Kryptomodul, wobei aus dem Startwert mittels iterativen Anwendens einer kryptographischen Einwegfunktion der kryptographische Schlüssel ableitbar ist und wobei eine Anzahl an Iterationen aus dem Wert ermittelbar ist.
  • Gemäß Weiterbildungen kann die Vorrichtung ferner eine siebte Komponente zum Festlegen einer maximalen Anzahl an Schlüsselgenerationen und/ oder eine achte Komponenten zum Festlegen einer Reihenfolge für die Verwendung der iterativ ableitbaren kryptographischen Schlüssel umgekehrt zur Reihenfolge der iterativen Ableitung aufweisen.
  • Die Erfindung betrifft ferner ein Computerprogrammprodukt mit einem Computerprogramm, das Mittel zur Durchführung des oben beschriebenen Verfahrens aufweist, wenn das Computerprogramm auf einer programmgesteuerten Einrichtung zur Ausführung gebracht wird.
  • Ein Computerprogrammprodukt, wie z.B. ein Computerprogramm-Mittel, kann beispielsweise als Speichermedium, wie z.B. Speicherkarte, USB-Stick, CD-ROM, DVD, oder auch in Form einer herunterladbaren Datei von einem Server in einem Netzwerk bereitgestellt oder geliefert werden. Dies kann zum Beispiel in einem drahtlosen Kommunikationsnetzwerk durch die Übertragung einer entsprechenden Datei mit dem Computerprogrammprodukt oder dem Computerprogramm-Mittel erfolgen. Als programmgesteuerte Einrichtung kommt insbesondere eine Steuereinrichtung, wie zum Beispiel ein Mikroprozessor für eine Smartcard oder dergleichen in Frage.
  • Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen mit Hilfe der Figuren näher erläutert. Es zeigen:
  • 1 eine schematische Darstellung von Verfahrensschritten auf einem Kryptomodul gemäß einem ersten Ausführungsbeispiel der Erfindung;
  • 2 eine schematische Darstellung von Verfahrensschritten auf einer gesicherten Ausführungsumgebung gemäß dem ersten Ausführungsbeispiel der Erfindung;
  • 3 eine schematische Darstellung eines Kryptomoduls gemäß einem zweiten Ausführungsbeispiel der Erfindung;
  • 4 eine schematische Darstellung einer Vorrichtung gemäß dem zweiten Ausführungsbeispiel der Erfindung.
  • 1 zeigt die durch ein auf einem Gerät vorgesehenes Kryptomodul durchgeführten Schritte zum Ableiten eines kryptographischen Schlüssels einer vorgegebenen Schlüsselgeneration. Das Gerät ist eine Systemkomponente eines Systems, welches für verschiedene Produktgenerationen des Gerätes unterschiedliche private Schlüssel für ein asymmetrisches Verschlüsselungsverfahren vorsieht. Die Systemkomponente verfügt über die Information, dass sie beispielsweise der vierten Produktgeneration angehört. Insgesamt sind Schlüssel für fünf Produktgenerationen aus dem Startwert ableitbar.
  • Im gewählten Beispiel soll die Systemkomponente eine asymmetrische Entschlüsselungsfunktion aufweisen. Daher gilt es, auf dieser den privaten Schlüssel der vierten Produktgeneration zur Verfügung zu stellen. Dazu erfolgt ein Ermitteln 11 eines Startwertes. Der Startwert wird insbesondere der Systemkomponente durch ein Trust Center oder durch eine vertrauenswürdige Umgebung, in welcher ein geheimzuhaltender Masterkey oder Urschlüssel vorhanden ist, übermittelt. Vorteilhafterweise wird der Startwert auf dem Kryptomodul gespeichert, um ein erneutes Senden durch das Trust Center bei jedem Entschlüsselungsvorgang zu vermeiden. Es erfolgt außerdem ein Ermitteln 12 eines zu einer vorgegebenen Schlüsselgeneration zugehörigen Wertes. Dieser Wert entspricht im ersten Ausführungsbeispiel dem Wert 2, da ausgehend von dem Startwert aufgrund der vierten von fünf Schlüsselgenerationen zwei Ableitungen nötig sind. Aufgrund dieser Informationen kann nun das Ableiten 13 des kryptographischen Schlüssels erfolgen. Durch zweimaliges iteratives Anwenden der kryptographischen Einwegfunktion auf den Startwert erhält man den kryptographischen Schlüssel der vierten und in diesem Beispiel zweitjüngsten Generation.
  • Komponenten, die die Entschlüsselungsfunktion aufweisen, können in einer Variante auch den dazugehörigen öffentlichen Schlüssel selbst aus dem privaten kryptographischen Schlüssel dezentral ableiten und ferner auch eine Verschlüsselungsfunktion für die Verschlüsselung von Daten innerhalb des Systems aufweisen. Der öffentliche Schlüssel kann ebenso zentral in einer gesicherten Ausführungsumgebung erzeugt werden und gesichert verteilt werden. Systemkomponenten mit Entschlüsselungsfunktion können vorteilhaft separat zu Systemkomponenten mit Verschlüsselungsfunktion vorgesehen sein.
  • 2 veranschaulicht die Verfahrensabläufe für das erste Ausführungsbeispiel aus Sicht eines Trust Centers. Das Trust Center ist eine gesicherte Ausführungsumgebung und stellt Schlüsselinformationen für eine festgelegte Schlüsselgeneration bereit.
  • Für das Ermitteln 21 eines Startwertes wird zunächst ein Urschlüssel verwendet und auf diesen Urschlüssel wird eine kryptographische Einwegfunktion mehrfach angewendet (Schritt 20). Somit wird der Startwert aus dem Urschlüssel abgeleitet 20 und die sensitive Information über den Urschlüssel muss nicht außerhalb der gesicherten Ausführungsumgebung vorhanden sein. Nach dem Ermitteln 21 des Startwertes erfolgt das Festlegen 22 der maximalen Anzahl an Schlüsselgenerationen zu dem gewählten Startwert. Dazu erfolgt beispielsweise ein iteratives Ableiten des kryptographischen Schlüssels einer ersten Produktgeneration oder Schlüsselgeneration. Die Anzahl der iterativen Ableitungen legt fest, wie viele Schlüsselgenerationen für Schlüsselupdates etc. für das im Rahmen von 1 vorgestellte Kryptomodul, welches die Schlüsselinformation erhält, zur Verfügung stehen sollen. Der letzte Schlüssel in der Kette der iterativen Ableitungen auf Seiten des Trust Centers ist der erste Schlüssel der ersten Schlüsselgeneration, d.h. das Festlegen der Reihenfolge für die Verwendung der iterativ abgeleiteten kryptographischen Schlüssel umgekehrt zur Reihenfolge der iterativen Ableitung erfolgt auf Seiten des Trust Centers.
  • Es kann überdies das Festlegen 23 einer Reihenfolge für die Verwendung der Schlüssel vorgesehen sein. Dies erfolgt insbesondere über eine Zuordnung eines Identifikationsmerkmals einer Produktgeneration, zum Beispiel eines Kennzeichens Gen4, zu einer Kennzeichnung des privaten Schlüssels, beispielsweise ein Kennzeichen, der die Anzahl der Ableitungen aus dem Startwert angibt, beispielsweise 5 + 1 – 4, also 2 bei maximal fünf möglichen Schlüsselgenerationen. Das Festlegen 23 kann im Festlegen einer Gültigkeitstabelle bestehen, die beispielweise die Gültigkeit der Schlüsselpaare für zukünftige Zeiträume bestimmt. Das Festlegen 23 kann ebenso darin bestehen, dass die Reihenfolge der zu Verschlüsselungszwecken zu verwendenden öffentlichen Schlüssel durch Speichern der öffentlichen Schlüssel in entsprechenden Speicherbereichen, auf die das Trust Center zugreifen kann, erfolgt.
  • Es folgt das Bereitstellen 24 des Startwertes als Schlüsselinformation, beispielsweise gemeinsam mit einer Angabe über die Schlüsselgeneration. Eine Entschlüsselungskomponente kann daraus den passenden privaten Schlüssel erzeugen.
  • Das zweite Ausführungsbeispiel wird auf vorteilhafte Weise durch die 3 und 4 im Zusammenwirken als System erläutert.
  • In 3 ist ein Kryptomodul 101 abgebildet, welches gemäß dem zweiten Ausführungsbeispiel der Erfindung in der Lage ist, Schlüssel K1, K2, ... Kj, ... verschiedener Schlüsselgenerationen zu erzeugen. Das Kryptomodul 101 wird im Zusammenhang mit einer gesicherten Ausführungsumgebung 102, wie in 4 dargestellt, beschrieben, die beide Bestandteil eines Systems sind. Das Kryptomodul 101 ist eine Entschlüsselungskomponente in einem verteilten System, in dem immer ein systemweit gültiger geheimer privater Schlüssel vorgesehen ist. Es handelt sich beispielsweise um eine Industriesteuerungsanlagenkomponente. Die auf der Komponente befindliche Software zur Steuerung ist kryptographisch geschützt verschlüsselt hinterlegt. Die gesicherte Ausführungsumgebung 102 ist ein Trust Center, das die kryptographischen Schlüssel der verschiedenen Schlüsselgenerationen bestimmt. Als Verschlüsselungssystem ist ein asymmetrisches System vorgesehen auf Basis des diskreten Logarithmusproblems, bestehend aus einer endlichen Gruppe und einem Element, so dass das diskrete Logarithmusproblem in der von dem Element erzeugten zyklischen Gruppe rechentechnisch nicht lösbar ist. Ebenso eignet sich ein hybrides Verschlüsselungssystem, bei dem der asymmetrische Anteil Logarithmusbasiert ist. Die Gruppe wird vorteilhafterweise als Punktegruppe einer über einem endlichen Körper definierten elliptischen Kurve gewählt.
  • Das Kryptomodul 101 weist eine erste Komponente 1 auf, welche zum Ermitteln eines Startwertes a ausgebildet ist. Beispielsweise handelt es sich um eine Schnittstelle zur gesicherten Ausführungsumgebung 102. Auf der gesicherten Ausführungsumgebung 102 wird der Startwert a mit Hilfe der vierten Komponente 4 gebildet, indem auf einen Urschlüssel eine kryptographische Einwegfunktion H iterativ angewendet wird. Eine zweite Komponente 2 ist auf dem Kryptomodul vorgesehen zum Ermitteln eines Wertes b, welcher die gerade im System gültige Schlüsselgeneration angibt. Beispielsweise ist eine für einen bestimmten Zeitraum aktuelle Schlüsselgeneration die j-te Schlüsselgeneration. Die zweite Komponente 2 ist beispielsweise ebenfalls eine Schnittstelle zur gesicherten Ausführungsumgebung 102, wobei letztere zentral für das Vorgeben eines Generationswechsels zuständig ist. Der Wert b wird durch eine fünfte Komponente 5 der gesicherten Ausführungsumgebung 102 ermittelt. Beispielsweise liegt der fünften Komponente 5 die Zuordnung von einer jeweiligen Schlüsselgenerationen zu dem dazugehörigen Wert b vor. Dieser Wert b wird der dritten Komponente 3 des Kryptomoduls 101 über eine sechste Komponente 6 bereitgestellt und dort einem Zählwerk Z vorgegeben. Dieses Zählwerk Z zählt in Abhängigkeit von dem Wert b, wie oft die kryptographische Einwegfunktion H auf den Startwert a angewendet wird und stoppt das iterative Ableiten, sobald der Zählerstand erreicht ist. Dabei kann der Zähler ein hoch- oder herunterzählender Zähler sein.
  • Auf Seiten der gesicherten Ausführungsumgebung 102 wird folgende Kaskade kryptographischer Schlüssel aus dem Urschlüssel Kpriv_ur gebildet:
    Figure DE102015209368A1_0004
  • Im Ausführungsbeispiel leitet das Trust Center eine Anzahl von max = 100 Schlüsseln ab. Beispielsweise wird die Ableitung durch eine siebte Komponenten 7 durchgeführt, auf welcher eine kryptographischen Einwegfunktion implementiert ist. Diese siebte Komponente 7 kann die Funktionalität der vierten und fünften Komponente in sich vereinen und zugleich den Startwert berechnen sowie die Anzahl der Ableitungen, um ausgehend vom Startwert zum aktuell gültigen Schlüssel zu gelangen. Insbesondere wird die gleiche Einwegfunktion H genutzt, um von dem Urschlüssel auf den Startwert a zu kommen und vom Startwert a auf die Schlüssel der aus dem Startwert ableitbaren Schlüsselgenerationen. Der Wert Φ100+1-(25+1)(Kpriv_ur), d.h. Φ75(Kpriv_ur) wird als Startwert a an die Entschlüsselungskomponente übermittelt.
  • Ebenso erhält die Entschlüsselungskomponente mittels der zweiten Komponente 2 von der sechsten Komponente 6 den Wert b, also 25, und stellt diesen am Zählwerk Z ein. Aufgrund der Vorgabe des Wertes b als 25 erfolgt ein 25-maliges Anwenden der kryptographischen Einwegfunktion H und die Entschlüsselungskomponente erhält so den Schlüssel der ersten Schlüsselgeneration. Erfolgt ein Schlüsselupdate innerhalb des Systems, so kann die Entschlüsselungskomponente den nächsten gültigen Schlüssel ableiten, indem der Zähler beispielsweise um einen Wert heruntergesetzt wird auf 24 und so der Schlüssel der zweiten Schlüsselgeneration ermittelt wird. Für die Entschlüsselungskomponente ist die Anzahl der möglichen ableitbaren Schlüssel auf 25 verschiedene Generationen begrenzt, exklusive der Generation, die durch den Startwert selbst gebildet werden kann.
  • Falls beispielsweise bei Ausfall einer Komponente im System die darauf befindliche Software kurzfristig auf einem Ersatzgerät des Systems ablaufen muss, ist dort vorteilhafterweise der gleiche Schlüssel der aktuellen Generation vorhanden und die verschlüsselte Software, z.B. Konfigurationsdaten für die Steuerungsanlage, kann entschlüsselt werden.
  • Dennoch ist das System nicht auf einen einzigen Schlüssel oder nur aufwändig austauschbare Schlüssel beschränkt, sondern kann die beschriebenen Mechanismen nutzen, um dezentral auf den einzelnen Systemkomponenten gültige Schlüssel zu gewinnen, zu wechseln und zu löschen oder deaktivieren. Die Abwärtskompatibilität in Hinblick auf veraltete Schlüssel ist dabei vorteilhaft gegeben.
  • In einer vorteilhaften Variante können an verschiedene Systemkomponenten des Systems durch die gesicherte Ausführungsumgebung verschiedene Startwerte ausgegeben werden. Insbesondere sind aus den verschiedenen Startwerten unterschiedlich viele Schlüsselgenerationen ableitbar. So kann eine Lizenzierung realisiert werden. Entschlüsselungskomponenten mit umfänglicherer Lizenz können im oben skizzierten Fall des dritten Ausführungsbeispiels beispielsweise Schlüssel der Generation 50 bis 1 erzeugen, bei eingeschränkter Funktionalität wegen einer schmaleren Lizenz sind nur die Schlüssel 25 bis 1 generierbar, da aufgrund der Eigenschaft der Einwegfunktion aus dem Startwert nicht auf vorherige in der Kaskade berechnete Schlüssel geschlossen werden kann.
  • Gelingt ein Angriff auf das System, der es nötig macht, auch den Startwert zu erneuern, so kann als Startwert beispielsweise der Wert Φ100+1-(75+1)(Kpriv_ur), d.h. Φ25(Kpriv_ur) als neuer Startwert an die Entschlüsselungskomponente übermittelt werden. Dieser Schlüssel wurde auf Seiten des Trust Centers in der Kaskade der iterativen Ableitungen vor dem zuvor übermittelten Startwert erzeugt und kann wiederum für eine Fülle von ableitbaren Schlüsseln verwendet werden.
  • Vorteilhaft werden geheime kryptographische Schlüssel aus einem Startwert mit einer Einwegfunktion abgeleitet und die Reihenfolge ihrer Verwendung für kryptographische Verfahren ist umgekehrt zur Reihenfolge der Schlüsselableitung vorgesehen.
  • Die erste bis achte Komponente sowie das Zählwerk können hardwaretechnisch und/oder auch softwaretechnisch implementiert sein. Bei einer hardwaretechnischen Implementierung kann die jeweilige Einheit als Vorrichtung oder als Teil einer Vorrichtung, zum Beispiel als Computer oder als Mikroprozessor ausgebildet sein. Bei einer softwaretechnischen Implementierung kann die jeweilige Einheit als Computerprogrammprodukt, als eine Funktion, als eine Routine, als Teil eines Programmcodes oder als ausführbares Objekt ausgebildet sein.
  • Obwohl die Erfindung im Detail durch die Ausführungsbeispiele näher illustriert und beschrieben wurde, so ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen.

Claims (18)

  1. Verfahren zum Ableiten eines kryptographischen Schlüssels einer aus einer Menge von mindestens zwei Schlüsselgenerationen vorgebbaren Schlüsselgeneration, wobei durch ein Kryptomodul folgende Schritte durchgeführt werden: – Ermitteln (11) eines Startwertes, wobei aus dem Startwert durch das Kryptomodul mittels mindestens einmaligen Anwendens einer kryptographischen Einwegfunktion ein zweiter Schlüssel einer zweiten Schlüsselgeneration als Anwendungsergebnis ableitbar ist und aus dem Anwendungsergebnis mittels Anwendens der kryptographischen Einwegfunktion ein erster Schlüssel einer ersten Schlüsselgeneration ableitbar ist; – Ermitteln (12) eines zu einer vorgegebenen Schlüsselgeneration zugehörigen Wertes, wobei eine Verwendung von Schlüsseln der zweiten Schlüsselgeneration auf die Verwendung von Schlüsseln der ersten Schlüsselgeneration folgend vorgesehen ist; – Ableiten (13) des kryptographischen Schlüssels aus dem Startwert mittels mindestens einmaligen Anwendens der kryptographischen Einwegfunktion in Abhängigkeit von dem ermittelten Wert.
  2. Verfahren nach Anspruch 1, wobei der kryptographische Schlüssel als privater Schlüssel für ein asymmetrisches oder hybrides Verschlüsselungsverfahren verwendbar ist.
  3. Verfahren nach Anspruch 2, wobei der private Schlüssel für ein Verschlüsselungsverfahren auf Basis des diskreten Logarithmus, insbesondere auf Basis elliptischer oder hyperelliptischer Kurven, verwendbar ist.
  4. Verfahren nach Anspruch 1, wobei der kryptographische Schlüssel als symmetrischer Schlüssel für ein symmetrisches oder hybrides Verschlüsselungs- oder Authentifizierungsverfahren verwendbar ist.
  5. Verfahren nach einem der vorstehenden Ansprüche, wobei die Schlüsselgeneration vorgegeben wird anhand von zeitlichen Kriterien oder anhand einer Eigenschaft des Kryptomoduls oder eines Gerätes, auf dem das Kryptomodul vorgesehen ist.
  6. Verfahren nach einem der vorstehenden Ansprüche, wobei der zu einer vorgegebenen Schlüsselgeneration zugehörige Wert als Identifikationsmerkmal, insbesondere in Form einer Ordinalzahl, ermittelt wird.
  7. Verfahren nach einem der vorstehenden Ansprüche, wobei der zu einer vorgegebenen Schlüsselgeneration zugehörige Wert als Anzahl vorgesehener Anwendungen der kryptographischen Einwegfunktion auf den Startwert ermittelt wird.
  8. Verfahren nach einem der vorstehenden Ansprüche, wobei aus dem Startwert durch Anwenden der kryptographischen Einwegfunktion mindestens ein dritter Schlüssel einer dritten Schlüsselgeneration als weiteres Anwendungsergebnis ableitbar ist und aus diesem weiteren Anwendungsergebnis durch Anwenden der kryptographischen Einwegfunktion der zweite Schlüssel als Anwendungsergebnis ableitbar ist, wobei eine Verwendung von Schlüsseln der dritten Schlüsselgeneration auf die Verwendung von Schlüsseln der zweiten Schlüsselgeneration folgend vorgesehen ist.
  9. Verfahren zum Bereitstellen von Schlüsselinformation für eine festlegbare Schlüsselgeneration, wobei durch eine gesicherte Ausführungsumgebung folgende Schritte ausgeführt werden: – Ermitteln (21) eines Startwertes; – Festlegen (22) einer maximalen Anzahl an Schlüsselgenerationen zu dem Startwert, wobei ein kryptographischer Schlüssel einer jeweiligen Schlüsselgeneration der maximal festgelegten Schlüsselgenerationen mittels iterativen Anwendens einer kryptographischen Einwegfunktion auf den Startwert ableitbar ist; – Bereitstellen (24) des Startwertes als Schlüsselinformation für ein Kryptomodul, wobei der zu der festlegbaren Schlüsselgeneration zugehörige kryptographische Schlüssel durch das Kryptomodul aus dem Startwert mittels iterativen Anwendens der kryptographischen Einwegfunktion in Abhängigkeit von einer Angabe über die Schlüsselgeneration ableitbar ist.
  10. Verfahren nach Anspruch 9, ferner aufweisend den Schritt – Festlegen (23) einer Reihenfolge für die Verwendung der iterativ ableitbaren kryptographischen Schlüssel umgekehrt zur Reihenfolge der iterativen Ableitung.
  11. Verfahren nach Anspruch 9 oder 10, wobei der Startwert aus einem Urschlüssel, insbesondere aus einer Zufallszahl, abgeleitet wird.
  12. Verfahren nach Anspruch 11, wobei der Startwert mittels iterativen Anwendens der kryptographischen Einwegfunktion aus dem Urschlüssel abgeleitet wird (20) und der Startwert einen weiteren Generationsschlüssel zu den aus dem Startwert maximal ableitbaren Generationsschlüsseln bildet.
  13. Verfahren nach Anspruch 11, wobei die kryptographische Einwegfunktion derart ausgebildet ist, dass der Startwert derart aus dem Urschlüssel mittels mindestens einmaligen Anwendens der kryptographischen Einwegfunktion abgeleitet wird, dass die Generationsschlüssel aus dem Startwert ableitbar sind und der Startwert zugleich selbst kein weiterer Generationsschlüssel ist.
  14. Kryptomodul (101) zum Ableiten eines kryptographischen Schlüssels (K1, K2, Kj) einer aus einer Menge von mindestens zwei Schlüsselgenerationen vorgebbaren Schlüsselgeneration, aufweisend: – eine erste Komponente (1) zum Ermitteln eines Startwertes (a), wobei aus dem Startwert (a) durch das Kryptomodul (101) mittels mindestens einmaligen Anwendens einer kryptographischen Einwegfunktion (H) ein zweiter Schlüssel (K2) einer zweiten Schlüsselgeneration als Anwendungsergebnis ableitbar ist und aus dem Anwendungsergebnis mittels Anwendens der kryptographischen Einwegfunktion (H) ein erster Schlüssel (K1) einer ersten Schlüsselgeneration ableitbar ist; – eine zweite Komponente (2) zum Ermitteln eines zu einer vorgegebenen Schlüsselgeneration zugehörigen Wertes (b), wobei eine Verwendung von Schlüsseln der zweiten Schlüsselgeneration auf die Verwendung von Schlüsseln der ersten Schlüsselgeneration folgend vorgesehen ist; – eine dritte Komponente (3) mit Zählwerk (Z) zum Ableiten des kryptographischen Schlüssels (K1, K2, Kj) aus dem Startwert (a) mittels Anwendens der kryptographischen Einwegfunktion (H), wobei das Zählwerk (Z) eine Anzahl für das Anwenden in Abhängigkeit von dem ermittelten Wert (b) vorgibt.
  15. Vorrichtung (102) zum Bereitstellen von Schlüsselinformation für einen kryptographischen Schlüssel (K1, K2, Kj) einer festlegbaren Schlüsselgeneration, aufweisend – eine vierte Komponente (4) zum Festlegen eines Startwertes (a); – eine fünfte Komponente (5) zum Festlegen eines Wertes (b) in Abhängigkeit von der festlegbaren Schlüsselgeneration, – eine sechste Komponente (6) zum Übermitteln des Startwertes (a) und des Wertes (b) an ein Kryptomodul (101), wobei aus dem Startwert (a) mittels iterativen Anwendens einer kryptographischen Einwegfunktion (H) der kryptographische Schlüssel (K1, K2, Kj) ableitbar ist und wobei eine Anzahl an Iterationen aus dem Wert (b) ermittelbar ist.
  16. Vorrichtung (102) nach Anspruch 15, ferner aufweisend eine siebte Komponente (7) zum Festlegen einer maximalen Anzahl an Schlüsselgenerationen.
  17. Vorrichtung (102) nach Anspruch 15 oder 16, ferner aufweisend eine achte Komponente zum Festlegen einer Reihenfolge für die Verwendung der iterativ ableitbaren kryptographischen Schlüssel (K1, K2, Kj) umgekehrt zur Reihenfolge der iterativen Ableitung.
  18. Computerprogrammprodukt mit einem Computerprogramm, das Mittel zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 13 aufweist, wenn das Computerprogramm auf einer programmgesteuerten Einrichtung zur Ausführung gebracht wird.
DE102015209368.9A 2015-05-21 2015-05-21 Ableiten eines kryptographischen Schlüssels einer vorgebbaren Schlüsselgeneration Withdrawn DE102015209368A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102015209368.9A DE102015209368A1 (de) 2015-05-21 2015-05-21 Ableiten eines kryptographischen Schlüssels einer vorgebbaren Schlüsselgeneration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015209368.9A DE102015209368A1 (de) 2015-05-21 2015-05-21 Ableiten eines kryptographischen Schlüssels einer vorgebbaren Schlüsselgeneration

Publications (1)

Publication Number Publication Date
DE102015209368A1 true DE102015209368A1 (de) 2016-11-24

Family

ID=57231677

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015209368.9A Withdrawn DE102015209368A1 (de) 2015-05-21 2015-05-21 Ableiten eines kryptographischen Schlüssels einer vorgebbaren Schlüsselgeneration

Country Status (1)

Country Link
DE (1) DE102015209368A1 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030053629A1 (en) * 2001-09-14 2003-03-20 Koninklijke Philips Electronics N.V. USB authentication interface
WO2005038818A1 (en) * 2003-10-14 2005-04-28 Telefonaktiebolaget Lm Ericsson (Publ) Efficient management of cryptographic key generations
DE102005044949A1 (de) * 2005-09-20 2007-03-29 Nec Europe Ltd. Verfahren zur Authentifizierung
US7995758B1 (en) * 2004-11-30 2011-08-09 Adobe Systems Incorporated Family of encryption keys

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030053629A1 (en) * 2001-09-14 2003-03-20 Koninklijke Philips Electronics N.V. USB authentication interface
WO2005038818A1 (en) * 2003-10-14 2005-04-28 Telefonaktiebolaget Lm Ericsson (Publ) Efficient management of cryptographic key generations
US7995758B1 (en) * 2004-11-30 2011-08-09 Adobe Systems Incorporated Family of encryption keys
DE102005044949A1 (de) * 2005-09-20 2007-03-29 Nec Europe Ltd. Verfahren zur Authentifizierung

Similar Documents

Publication Publication Date Title
DE102013203415B4 (de) Erstellen eines abgeleiteten Schlüssels aus einem kryptographischen Schlüssel mittels einer physikalisch nicht klonbaren Funktion
EP2899714B1 (de) Gesichertes Bereitstellen eines Schlüssels
DE60313519T2 (de) Verfahren zur Erzeugung eines Schlüssels, Inhaltsbereitstellungsverfahren, Entschlüsselungsverfahren für verschlüsselte Inhalte, Verfahren zur Erkennung von illegalen Benutzern, System zum Bereitstellen von Inhalten, Benutzersystem, Verfahren zur Ablaufverfolgung, Verschlüsselungsgerät, Entschlüsselungsgerät, und Computerprogramm
DE102018216915A1 (de) System und Verfahren für sichere Kommunikationen zwischen Steuereinrichtungen in einem Fahrzeugnetzwerk
LU93024B1 (de) Verfahren und Anordnung zum Aufbauen einer sicheren Kommunikation zwischen einer ersten Netzwerkeinrichtung (Initiator) und einer zweiten Netzwerkeinrichtung (Responder)
DE112013002752T5 (de) System und Verfahren zur Verifikation von Nachrichten bei Broadcast und Multicast Netzwerken
DE102009001719B4 (de) Verfahren zur Erzeugung von asymmetrischen kryptografischen Schlüsselpaaren
DE10393847B4 (de) Verfahren und Vorrichtung zum Auffinden einer gemeinsam genutzten vertraulichen Information ohne Beeinträchtigung nicht-gemeinsam genutzter vertraulicher Informationen
DE112017007755B4 (de) Schlüsselverwaltungsvorrichtung und kommunikationsgerät
EP3157192A1 (de) Verfahren und system für eine asymmetrische schlüsselherleitung
DE102016210788B4 (de) Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
DE102018111081A1 (de) Verfahren zum Sichern eines Datenaustausches in einer verteilten Infrastruktur
DE102014210282A1 (de) Erzeugen eines kryptographischen Schlüssels
EP3387636B1 (de) Kryptoalgorithmus mit schlüsselabhängigem maskiertem rechenschritt (sbox-aufruf)
EP3629516B1 (de) Dezentralisierte identitätsmanagement-lösung
DE102020117552A1 (de) Sichere hybrid-boot-systeme und sichere boot-verfahren für hybridsysteme
DE102015208899A1 (de) Vorrichtung und Verfahren zur flexiblen Erzeugung von kryptographischen privaten Schlüsseln und Gerät mit flexibel erzeugten kryptographischen privaten Schlüsseln
DE102010045580A1 (de) Schaltungsanordnung und Verfahren zum Betreiben einer Schaltungsanordnung
WO2022120400A1 (de) Verfahren zum migrieren einer it-anwendung
DE102014213454A1 (de) Verfahren und System zur Erkennung einer Manipulation von Datensätzen
DE102015209368A1 (de) Ableiten eines kryptographischen Schlüssels einer vorgebbaren Schlüsselgeneration
EP3252990A1 (de) Verfahren und vorrichtung zum bereitstellen eines geheimnisses zum authentisieren eines systems und/oder komponenten des systems
EP3627755A1 (de) Verfahren für eine sichere kommunikation in einem kommunikationsnetzwerk mit einer vielzahl von einheiten mit unterschiedlichen sicherheitsniveaus
DE102015208176A1 (de) Gerät und Verfahren zur Autorisierung eines privaten kryptographischen Schlüssels in einem Gerät
EP3742319B1 (de) Seitenkanalsichere implementierung

Legal Events

Date Code Title Description
R163 Identified publications notified
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee