-
Die Erfindung betrifft ein kryptographisches Modul, ein kryptographisches System, welches wenigstens zwei solcher Module umfasst, und ein kryptographisches Verfahren.
-
Heutzutage nutzen viele Systeme, zwischen denen Daten übertragen werden, Kryptographie, um einerseits Sicherheit und andererseits auch Funktionalität bereitzustellen. Ein wesentliches Element der Kryptographie ist hierbei die Verschlüsselung, welche genutzt werden kann, um andere kryptographische Basisverfahren zu konstruieren. Insbesondere, wenn sich die einzelnen Übertragungen auf verschiedene Funktionen des Systems beziehen, ist es günstig, dass für jede einzelne Funktion ein anderer Schlüssel verwendet wird. Bei der wachsenden Anzahl von Anwendungen, die dementsprechend Kryptographie benutzen, steigt bei herkömmlichen Systemen auch der Aufwand für die Speicherung und Verwaltung der vielen verschiedenen Schlüssel.
-
Weiterhin ist es erfahrungsgemäß wünschenswert, dass geheime Schlüssel so wenigen Stellen bekannt sind, wie nur möglich. Bei herkömmlichen Systemen ist es jedoch erforderlich, dass alle Teilnehmer, die den Schlüssel nutzen wollen, eine Kopie des Schlüssels besitzen. Dies gilt insbesondere für symmetrische Schlüssel beziehungsweise Verschlüsselungsverfahren.
-
Bei herkömmlichen Systemen, insbesondere bei eingebetteten Systemen oder Hardwarelösungen, ist die Zahl der Schlüssel bei der Entwicklung beziehungsweise der Produktion der Systeme festgelegt. Zudem kann es nötig sein, die begrenzte Anzahl von Schlüsseln bei einer Auslieferung des Systems bereits fest im System gespeichert zu haben. Beispielsweise lässt sich dementsprechend die Zahl der Schlüssel des Systems nach der Auslieferung nicht mehr verändern. Weiterhin ist es möglich, dass nur die gespeicherten Schlüssel verwendet werden können und ein Austausch beziehungsweise eine Änderung der Schlüssel nicht mehr möglich ist.
-
Eine zu lösende Aufgabe besteht darin, ein verbessertes Konzept für die Nutzung von kryptographischen Verfahren anzugeben.
-
Diese Aufgabe wird mit den Gegenständen der unabhängigen Patentansprüche gelöst. Weiterbildungen und Ausgestaltungsformen der Erfindung sind in den abhängigen Ansprüchen gekennzeichnet.
-
Das verbesserte Konzept basiert auf der Idee, dass unter Nutzung einer begrenzten Anzahl von geheimen Schlüsseln, sogenannten Masterschlüsseln, und einer bekannten Information für verschiedene Anwendungsfälle jeweils tatsächlich zu nutzende Schlüssel erzeugt werden, welche anschließend für eine kryptographische Operation wie eine Verschlüsselung oder eine Entschlüsselung genutzt werden. Die zu erzeugenden Schlüssel sind beliebig reproduzierbar, sodass jeder Kommunikationsteilnehmer, der den entsprechenden Masterschlüssel gespeichert und die bekannte Information vorliegen hat, an einer gesicherten Kommunikation teilnehmen kann. Dabei ist es nicht einmal erforderlich, dass der Kommunikationsteilnehmer den entsprechenden Masterschlüssel tatsächlich kennt, sondern es ist ausreichend, wenn der zu verwendende Masterschlüssel eindeutig identifizierbar ist. Somit kann der Kommunikationsteilnehmer einen Verschlüsselungsvorgang beziehungsweise Entschlüsselungsvorgang transparent, also ohne Kenntnis des Masterschlüssels, durchführen.
-
Beispielsweise umfasst ein kryptographisches Modul einen Eingangsblock, einen Schlüsselblock, einen Verschlüsselungsblock, einen Entschlüsselungsblock und einen Ausgangsblock. Der Eingangsblock ist eingerichtet zur Zuführung eines Eingangsparametersatzes, welcher zumindest einen Masterschlüsselindikator und einen Unterindikator umfasst. Der Schlüsselblock ist eingerichtet zum Speichern wenigstens eines Masterschlüssels und zum Bereitstellen eines internen Schlüssels auf der Basis des Unterindikators und eines gespeicherten, durch den Masterschlüsselindikator ausgewählten Masterschlüssels. Insbesondere lässt sich durch den Masterschlüsselindikator ein jeweiliger Masterschlüssel eindeutig auswählen. Der Verschlüsselungsblock ist eingerichtet zur Verschlüsselung einer Eingangsinformation mittels des bereitgestellten internen Schlüssels, um eine verschlüsselte Ausgangsinformation zu erzeugen. In ähnlicher Weise ist der Entschlüsselungsblock eingerichtet zur Entschlüsselung einer verschlüsselten Eingangsinformation mittels des bereitgestellten internen Schlüssels, um eine entschlüsselte Ausgangsinformation zu erzeugen. Der Ausgangsblock ist eingerichtet zur Abgabe eines Ausgangsparametersatzes, welcher zumindest die jeweilige Ausgangsinformation umfasst.
-
Beispielsweise werden also dem Eingangsblock des kryptographischen Moduls der Masterschlüsselindikator und der Unterindikator zugeführt. Diese Information wird vom Schlüsselblock dahingehend ausgewertet, dass ein spezieller interner Schlüssel, der durch den Masterschlüsselindikator beziehungsweise den dadurch ausgewählten Masterschlüssel, und den Unterindikator eindeutig definiert ist. Je nach Anwendungsfall kann dieser vom Schlüsselblock bereitgestellte interne Schlüssel für eine Entschlüsselung oder eine Verschlüsselung im entsprechenden Block verwendet werden.
-
In verschiedenen Ausführungsformen umfasst der Eingangsparametersatz auch die zuvor genannte Eingangsinformation. Beispielsweise ist die Eingangsinformation eine unverschlüsselte Eingangsinformation für den Verschlüsselungsblock, welche durch diesen verschlüsselt werden soll, und/oder eine verschlüsselte Eingangsinformation für den Entschlüsselungsblock, welche durch den Entschlüsselungsblock entschlüsselt werden soll. Weiterhin ist es möglich, dass der Eingangsparametersatz zusätzlich eine Kommandoinformation umfasst, auf deren Basis die jeweilige Eingangsinformation zur Verarbeitung an den Verschlüsselungsblock oder an den Entschlüsselungsblock zugeführt wird. Somit wird beispielsweise durch die Kommandoinformation die vom kryptographischen Modul auszuführende Funktion festgelegt.
-
Das kryptographische Modul ist dementsprechend in der Lage, Verschlüsselung, Entschlüsselung und Schlüsselerzeugung auf der Basis von Indexwerten durchzuführen. Dadurch wird es möglich, dass eine theoretisch unendlich große Zahl von Schlüsseln für die kryptographischen Funktionen zur Verfügung steht, die lediglich durch die Schlüssellänge des verwendeten Masterschlüssels und die Länge des Unterindikators begrenzt ist. Die internen Schlüssel können im Schlüsselblock zwischengespeichert werden, wobei dies nicht zwingend notwendig ist.
-
Beispielsweise ist der Schlüsselblock eingerichtet, den internen Schlüssel auf der Basis des Unterindikators und des ausgewählten Masterschlüssels zu erzeugen. Insbesondere erfolgt eine solche Erzeugung des internen Schlüssels beispielsweise bei Bedarf. Dementsprechend kann Speicherplatz für eine Vielzahl von internen Schlüsseln, die theoretisch verwendet werden können, eingespart werden.
-
Die Erzeugung des internen Schlüssels im Schlüsselblock erfolgt beispielsweise durch Anwendung einer Verschlüsselungsfunktion auf den Unterindikator auf der Basis des ausgewählten Masterschlüssels. Hierzu wird etwa eine deterministische kryptographische Funktion auf den Unterindikator angewendet, die vorzugsweise eine Einwegfunktion darstellt, so dass aus dem internen Schlüssel nicht auf den Masterschlüssel rückgeschlossen werden kann. Beispielsweise wird hierbei der Unterindikator mit dem ausgewählten Masterschlüssel verschlüsselt oder durch eine kryptologische Hash-Funktion mit dem ausgewählten Masterschlüssel erzeugt.
-
In verschiedenen Ausführungsformen umfasst der Schlüsselblock einen Schlüsselzwischenspeicher, englisch cache, der eingerichtet ist zum Zwischenspeichern erzeugter interner Schlüssel. Dabei ist der Schlüsselblock eingerichtet, den auf dem Unterindikator und dem Masterschlüsselindikator basierenden internen Schlüssel bereitzustellen, in dem dieser interne Schlüssel aus dem Schlüsselzwischenspeicher gelesen wird, wenn dieser interne Schlüssel im Schlüsselzwischenspeicher gespeichert ist, und dieser interne Schlüssel erzeugt wird, insbesondere bei Bedarf erzeugt wird, wenn dieser interne Schlüssel nicht im Schlüsselzwischenspeicher gespeichert ist. Der Schlüsselblock kann also bei einer entsprechenden Anfrage mit dem Masterschlüsselindikator und dem Unterindikator entsprechend auswählen, ob er den gewünschten internen Schlüssel erzeugt oder eine gespeicherte Version benutzt.
-
Dementsprechend kann beispielsweise ein interner Schlüssel, der mehrmals hintereinander für verschiedene Operationen benötigt wird, zwischengespeichert und dem entsprechenden Verschlüsselungsblock beziehungsweise Entschlüsselungsblock zur Verfügung gestellt werden, ohne dass jeweils eine Neugenerierung des internen Schlüssels notwendig wird. Dadurch kann der Rechenaufwand im Schlüsselblock reduziert werden. Andererseits kann aber auch der Speicherbedarf beziehungsweise die Speichermöglichkeit des Schlüsselblocks klein gehalten werden, ohne die theoretische Zahl benutzbarer Schlüssel einzuschränken.
-
Der Schlüsselzwischenspeicher weist beispielsweise einen temporären Speicher, insbesondere einen volatilen Speicher auf, dessen Inhalt etwa bei Abschaltung einer Energieversorgung gelöscht wird. Beispielsweise ist der Schlüsselzwischenspeicher zur Speicherung von weniger als zehn internen Schlüsseln, insbesondere von weniger als fünf internen Schlüsseln eingerichtet.
-
Die Schlüsselerzeugung im Schlüsselblock kann auch auf zusätzlichen Parametern basieren, welche bei der Schlüsselerzeugung berücksichtigt werden. Solche Parameter sind beispielsweise zusätzlich vom Eingangsparametersatz umfasst. Mögliche Parameter, die einzeln verwendet oder beliebig miteinander kombiniert werden können, sind: Ein Erzeugungsverfahren, eine Autorisierungsinformation, eine Exportierbarkeit des zu erzeugenden internen Schlüssels, eine Eignung zum Verschlüsseln des zu erzeugenden internen Schlüssels, eine Eignung zum Entschlüsseln des zu erzeugenden internen Schlüssels, eine Zwischenspeicherbarkeit des zu erzeugenden internen Schlüssels, eine Gültigkeitsdauer des zu erzeugenden internen Schlüssels.
-
Für das Erzeugungsverfahren kann beispielsweise angegeben werden, welcher Verschlüsselungsalgorithmus wie beispielsweise AES, DES, 3DES oder andere bekannte Verfahren verwendet werden soll, und ob eine besondere Betriebsart genutzt wird, wie beispielsweise eine verkettete Blockmethode, die im Englischen als cipher block chaining mode bezeichnet wird. Die genannten Verfahren sind lediglich beispielhaft ausgeführt und können durch andere beliebige bekannte kryptographische Verfahren beziehungsweise Algorithmen ersetzt werden.
-
Mit einer Autorisierungsinformation kann von dem Schlüsselblock festgestellt werden, ob derjenige, der die Erzeugung oder Bereitstellung des Schlüssels anfordert, hierzu auch berechtigt ist. Eine solche Überprüfung kann beispielsweise mittels zusätzlicher gespeicherter Autorisierungsinformationen erfolgen.
-
In einer weiteren Ausführungsform umfasst das kryptographische Modul ferner einen Exportblock, der eingerichtet ist zum Erzeugen einer Ausgangsinformation, die den auf dem Unterindikator und dem Masterschlüsselindikator basierenden internen Schlüssel umfasst. Dabei ist der Ausgangsblock eingerichtet zur Abgabe des Ausgangsparametersatzes mit dieser, den internen Schlüssel umfassenden Ausgangsinformation.
-
In bestimmten Fällen kann es zweckmäßig sein, den jeweils verwendeten internen Schlüssel unmittelbar an einen Kommunikationsteilnehmer zu übergeben, wenn dieser beispielsweise nicht in der Lage ist, den internen Schlüssel selbst zu erzeugen. Dies wird mit dem Exportieren des internen Schlüssels möglich gemacht.
-
Beispielsweise ist der Exportblock hierbei eingerichtet zum Erzeugen der Ausgangsinformation in Abhängigkeit einer vom Eingangsparametersatz umfassten Autorisierungsinformation. Damit wird verhindert, dass interne Schlüssel beliebig exportiert werden können. Beispielsweise ist die Autorisierungsinformation selbst mit einem kryptographischen Verfahren realisiert.
-
In verschiedenen Ausführungsformen können der Verschlüsselungsblock und der Entschlüsselungsblock auch direkt einen durch den Masterschlüsselindikator angegebenen Masterschlüssel zum Verschlüsseln beziehungsweise Entschlüsseln einer Information verwenden.
-
Die verschiedenen beschriebenen Ausführungsformen des kryptographischen Moduls können in Hardware, in Software oder als Kombination von Hardware und Software realisiert sein. Beispielsweise ist das kryptographische Modul mit einem Signalprozessor und entsprechender Programmierung oder durch einen ASIC realisiert.
-
Mehrere kryptographische Module gemäß einer der beschriebenen Ausführungsformen lassen sich beispielsweise in einem kryptographischen System mit Sender und Empfänger implementieren. Beispielsweise umfasst ein kryptographisches System einen Sender mit einem ersten kryptographischen Modul gemäß einer der beschriebenen Ausführungsformen und einen Empfänger mit einem zweiten kryptographischen Modul gemäß einer der beschriebenen Ausführungsformen. Damit kann in dem kryptographischen System eine verschlüsselte Informationsübertragung vom Sender zum Empfänger durchgeführt werden.
-
Bei einer zweiseitigen Kommunikation ist es möglich, dass beide Seiten jeweils einen Sender und einen Empfänger beziehungsweise einen sogenannten Transceiver aufweisen, und jeweils ein entsprechendes kryptographisches Modul, welches fallweise für Verschlüsselung oder Entschlüsselung eingesetzt wird.
-
In einer Ausführungsform eines kryptographischen Verfahrens wird ein Eingangsparametersatz zugeführt, welcher zumindest einen Masterschlüsselindikator und einen Unterindikator umfasst. Auf der Basis des Unterindikators und eines gespeicherten, durch den Masterschlüsselindikator ausgewählten Masterschlüssels wird ein interner Schlüssel bereitgestellt. Es wird eine kryptographische Operation mittels des bereitgestellten internen Schlüssels auf eine vom Eingangsparametersatz umfasste Eingangsinformation durchgeführt, um eine kryptographisch verarbeitete Ausgangsinformation zu erzeugen. Ein Ausgangsparametersatz wird abgegeben, welcher zumindest diese Ausgangsinformation umfasst.
-
Ausgestaltungsformen des Verfahrens, insbesondere bezüglich Erzeugung oder Zwischenspeicherung von internen Schlüsseln oder dem Exportieren interner Schlüssel ergeben sich unmittelbar aus den zuvor beschriebenen Ausführungsformen des kryptographischen Moduls.
-
Die Erfindung wird nachfolgend an mehreren Ausführungsbeispielen anhand von Figuren näher erläutert. Gleiche Bezugszeichen kennzeichnen hierbei Elemente oder Funktionsblöcke gleicher Funktion. So weit sich Elemente oder Funktionsblöcke in ihrer Funktion entsprechen, wird deren Beschreibung nicht in jeder der folgenden Figuren wiederholt.
-
Es zeigen:
-
1 eine Ausführungsform eines kryptographischen Moduls,
-
2 eine weitere Ausführungsform eines kryptographischen Moduls, und
-
3 eine Ausführungsform eines kryptographischen Systems.
-
1 zeigt eine Ausführungsform eines kryptographischen Moduls CM mit einem, Eingangsblock PRE, einem Schlüsselblock KB, einem Verschlüsselungsblock ENC, einem Entschlüsselungsblock DEC und einem Ausgangsblock POST. Dem Eingangsblock PRE kann eingangsseitig über einen Eingang IN ein Eingangsparametersatz zugeführt werden, welcher vom Eingangsblock PRE verarbeitet beziehungsweise zerlegt und an den Schlüsselblock KB und dem Verschlüsselungsblock ENC beziehungsweise dem Entschlüsselungsblock DEC weitergegeben wird. Dementsprechend ist der Schlüsselblock KB eingangsseitig mit dem Eingangsblock PRE und ausgangsseitig mit dem Verschlüsselungsblock ENC und dem Entschlüsselungsblock DEC verbunden. Ein jeweils weiterer Eingang des Verschlüsselungsblocks ENC und des Entschlüsselungsblocks DEC sind ebenfalls mit dem Eingangsblock PRE verbunden. Ausgangsseitig sind die Blocks ENC und DEC mit dem Ausgangsblock POST verbunden, welcher an seinem Ausgang einen Ausgangsparametersatz an einen Ausgang OUT des kryptographischen Moduls CM abgibt.
-
Der Schlüsselblock KB hat Zugriff auf wenigstens einen gespeicherten Masterschlüssel, der intern oder extern vom Schlüsselblock KB gespeichert sein kann. Der Schlüsselblock KB ist insbesondere in der Lage, aus einem gespeicherten Masterschlüssel und einem eingangsseitig zugeführten Unterindikator einen entsprechenden eindeutigen internen Schlüssel bereitzustellen, welcher dann den Verschlüsselungsblock ENC und/oder den Entschlüsselungsblock DEC für eine kryptographische Operation zur Verfügung steht.
-
Ein solcher interner Schlüssel kann vom Schlüsselblock KB basierend auf einem Masterschlüssel und dem Unterindikator generiert werden, sodass jeder interne Schlüssel beispielsweise bei Bedarf frisch erzeugt wird. In manchen Ausführungsformen können die generierten internen Schlüssel auch zwischengespeichert werden, sodass das Bereitstellen des jeweiligen internen Schlüssels auch durch Auslesen des passenden internen Schlüssels aus dem Zwischenspeicher erfolgen kann. Ein solcher Zwischenspeicher ist aber nicht in der Lage, sämtliche mögliche internen Schlüssel zu speichern.
-
Der Eingangsparametersatz, welcher dem Eingangsblock PRE zugeführt wird, umfasst beispielsweise einen Masterschlüsselindikator, welcher einen gespeicherten Masterschlüssel eindeutig identifiziert und auswählen kann. Ferner umfasst der Eingangsparametersatz beispielsweise den Unterindikator, der zur Erzeugung des jeweiligen internen Schlüssels im Schlüsselblock KB verwendet wird. Der Eingangsparametersatz kann auch weitere Parameter wie ein Erzeugungsverfahren für den internen Schlüssel, eine Autorisierungsinformation, eine Gültigkeitsdauer oder andere Statusindikatoren beziehungsweise Flags umfassen.
-
Beispielsweise wird mit dem Parameter bezüglich des Erzeugungsverfahrens angegeben, welches kryptographische Verfahren zum Erzeugen des internen Schlüssels verwendet wird, beispielsweise DES, 3DES, AES oder andere Verschlüsselungsverfahren, insbesondere Blockverschlüsselungsverfahren. Durch die Autorisierungsinformation kann festgelegt beziehungsweise überprüft werden, ob eine Berechtigung zum Erzeugen des internen Schlüssels vorliegt. Die weiteren Flags, welche im Eingangsparametersatz enthalten sein können, betreffen beispielsweise eine Exportierbarkeit des zu erzeugenden internen Schlüssels, eine Eignung zum Verschlüsseln beziehungsweise zum Entschlüsseln des zu erzeugenden internen Schlüssels, eine Zwischenspeicherbarkeit des zu erzeugenden internen Schlüssels oder ähnliche schlüsselspezifische Informationen.
-
Der Eingangsparametersatz kann weitere Parameter umfassen, deren Vorkommen von der jeweils gewünschten Funktion beziehungsweise Anwendung abhängt. Beispielsweise kann demnach im Eingangsparametersatz eine Kommandoinformation enthalten sein, welche beispielsweise festlegt, ob eine Verschlüsselung oder eine Entschlüsselung oder eine andere Operation durchgeführt werden soll.
-
Wenn beispielsweise im Verschlüsselungsblock ENC eine Verschlüsselung durchgeführt werden soll, kann der Eingangsparametersatz zusätzlich eine zu verschlüsselnde Eingangsinformation, im Folgenden Klartext genannt, umfassen, die verschlüsselt werden soll. Weiterhin kann für eine Verschlüsselung auch eine bestimmte Verschlüsselungsart wie ein bestimmtes Blockverschlüsselungsverfahren angegeben werden. Ohne Einschränkung sei hier lediglich beispielhaft ein verkettetes Blockverschlüsselungsverfahren genannt, das im Englischen auch als cipher block chaining bezeichnet wird. In Abhängigkeit des gewählten Verschlüsselungsverfahrens können zusätzlich auch weitere Parameter erforderlich sein, wie beispielsweise ein Initialisierungsvektor für das cipher block chaining.
-
Ähnliches gilt, wenn eine Entschlüsselung im Entschlüsselungsblock DEC durchgeführt werden soll. In diesem Fall kann der Eingangsparametersatz eine verschlüsselte Eingangsinformation umfassen, im Folgenden als Schlüsseltext bezeichnet. Dieser Schlüsseltext wird dann vom Entschlüsselungsblock DEC mittels des ausgewählten internen Schlüssels entschlüsselt, um eine entschlüsselte Ausgangsinformation, also wiederum einen Klartext zu erhalten. Für die Entschlüsselungsoperation kann es wiederum erforderlich sein, eine Verschlüsselungsart wie das cipher block chaining mit entsprechenden Parametern über den Eingangsparametersatz zu übergeben.
-
Der jeweilige Eingangsparametersatz wird vom Eingangsblock PRE verarbeitet beziehungsweise zerlegt, um die entsprechenden Parameter im richtigen Format an die jeweils verbundenen Blöcke KB und ENC beziehungsweise DEC weiter zu geben. Die einzelnen Blöcke des kryptographischen Moduls CM können sowohl in Hardware als auch in Software oder in einer Kombination aus Hardware und Software realisiert sein. Insbesondere bei einer programmtechnischen Implementierung des kryptographischen Moduls CM wird beispielsweise der Eingangsparametersatz passend für die jeweiligen Blöcke formatiert.
-
Wie zuvor beschrieben, führen der Verschlüsselungsblock ENC beziehungsweise der Entschlüsselungsblock DEC eine entsprechende kryptographische Operation auf den Klartext beziehungsweise den Schlüsseltext durch. Eine jeweilige Ausgangsinformation dieser Blöcke ENC, DEC wird an den Ausgangsblock POST übergeben, welcher daraus einen entsprechenden Ausgangsparamtersatz generiert, welcher über den Ausgang OUT abgegeben werden kann.
-
2 zeigt eine weitere Ausführungsform eines kryptographischen Moduls CM, die im Wesentlichen auf der in 1 dargestellten Ausführungsform basiert. Dementsprechend wird auf eine vollständige Erläuterung der enthaltenen Blöcke teilweise verzichtet, um Wiederholungen zu vermeiden.
-
Das kryptographische Modul CM der 2 umfasst zusätzlich ein Exportmodul EXP, welches funktionell parallel zum Verschlüsselungsblock ENC beziehungsweise Entschlüsselungsblock DEC geschaltet ist. Insbesondere ist der Exportblock EXP eingangsseitig mit dem Schlüsselblock KB sowie dem Eingangsblock PRE verbunden. Ausgangsseitig ist der Exportblock EXP an den Ausgangsblock POST angeschlossen.
-
Der Schlüsselblock KB umfasst in dieser Ausführungsform einen Masterschlüsselblock MK und einen Schlüsselzwischenspeicher KC.
-
Der Masterschlüsselblock MK ist eingerichtet, einen jeweils benötigten internen Schlüssel auf der Basis des Unterindikators und des Masterschlüsselindikators beziehungsweise des dadurch ausgewählten Masterschlüssels zu erzeugen. Die Erzeugung des internen Schlüssels kann bedarfsweise erfolgen. Bezüglich der Erzeugung des internen Schlüssels im Allgemeinen wird auf die Ausführungen zur 1 verwiesen. Beispielsweise wird der interne Schlüssel durch Anwendung einer Verschlüsselungsfunktion auf den Unterindikator auf der Basis des ausgewählten Masterschlüssels erzeugt. Beispielsweise wird hierfür der Unterindikator mit dem ausgewählten Masterschlüssel verschlüsselt. Der Unterindikator kann hierbei ein einfacher Zahlenwert oder ein mehrere Bit breiter Block sein, in dem der Unterindikator dargestellt ist. Die Verschlüsselungsfunktion kann auch eine kryptologische Hash-Funktion sein. Beispielsweise wird mit dem ausgewählten Masterschlüssel ein kryptologischer Hash für den Unterindikator erzeugt, welcher dann als interner Schlüssel verwendet wird. Bei der jeweiligen Schlüsselerzeugung kann auf die zuvor beschriebenen zusätzlichen Parameter zurückgegriffen werden.
-
In Abhängigkeit der zusätzlichen Parameter, insbesondere einer Zwischenspeicherbarkeit des erzeugten internen Schlüssels, kann ein so erzeugter interner Schlüssel in dem Schlüsselzwischenspeicher KC abgelegt werden. Der Schlüsselzwischenspeicher weist hierfür eine begrenzte Speicherkapazität auf, die beispielsweise bis zu zehn interne Schlüssel oder bis zu fünf interne Schlüssel speichern kann. Ein Bereitstellen des jeweiligen internen Schlüssels auf Basis des Masterschlüsselindikators und des Unterindikators kann dementsprechend auf folgendem Prinzip basieren: Wenn der durch den Unterindikator und den Masterschlüsselindikator bezeichnete interne Schlüssel nicht im Schlüsselzwischenspeicher KC gespeichert ist, wird der interne Schlüssel sozusagen frisch vom Masterschlüsselblock MK erzeugt und steht ausgangsseitig für kryptographische Operationen in den Blöcken ENC, DEC und EXP zur Verfügung. Zusätzlich kann der frisch erzeugte Schlüssel im Schlüsselzwischenspeicher abgelegt werden. Wenn jedoch der gewünschte interne Schlüssel bereits im Schlüsselzwischenspeicher gespeichert ist, kann der Erzeugungsvorgang ausgelassen werden und der interne Schlüssel unmittelbar aus dem Schlüsselzwischenspeicher ausgelesen werden, um ihn am Ausgang des Schlüsselblocks KB bereitzustellen.
-
Das beschriebene Prinzip lässt sich insbesondere vorteilhaft nutzen, wenn ein interner Schlüssel mehrmals hintereinander für verschiedene kryptographische Operationen benötigt wird, da dadurch der Aufwand der Schlüsselerzeugung wegfällt. Dies gilt auch, wenn ein bestimmter interner Schlüssel oft und regelmäßig benötigt wird. Hierfür ist aber ein Schlüsselzwischenspeicher KC mit geringer Speicherkapazität ausreichend. Insbesondere wird die Flexibilität des kryptographischen Moduls CM bezüglich der Anzahl verfügbarer interner Schlüssel nicht eingeschränkt. Die Anzahl der möglichen internen Schlüssel ist nämlich theoretisch unendlich groß und lediglich durch die Länge des Masterschlüssels beziehungsweise des Unterindikators rechnerisch begrenzt.
-
Der Exportblock EXP ist eingerichtet zum Erzeugen einer Ausgangsinformation, die den auf dem Unterindikator und dem Masterschlüsselindikator basierenden internen Schlüssel umfasst. Diese Ausgangsinformation wird an den Ausgangsblock POST übertragen, welcher daraus einen entsprechenden Ausgangsparametersatz erzeugt, der den internen Schlüssel enthält.
-
Der Exportblock EXP macht es möglich, dass bestimmte interne Schlüssel am Ausgang OUT des kryptographischen Moduls CM bereitgestellt werden, um diese einem anderen Kommunikationspartner beziehungsweise dessen kryptographischen Funktionen zur Verfügung zu stellen. Dadurch wird auch eine Kommunikation mit solchen Kommunikationspartnern möglich, welche keinen Zugriff auf ein kryptographisches Modul CM der beschriebenen Art aufweisen.
-
Das Exportieren der internen Schlüssel kann, ähnlich wie zuvor für die Erzeugung interner Schlüssel beschrieben, an eine Autorisierungsinformation gekoppelt sein, sodass sich interne Schlüssel nicht beliebig exportieren lassen. In verschiedenen Ausführungsformen ist es auch möglich, eine Verschlüsselung oder Entschlüsselung mit einem der gespeicherten Masterschlüssel durchzuführen.
-
Ebenso kann es in bestimmten Ausführungsformen möglich sein, dass auch ein Masterschlüssel über den Exportblock EXP exportiert werden kann. Der Export von Masterschlüsseln ist jedoch vorzugsweise an bestimmte Bedingungen gekoppelt. Dies hängt beispielsweise von der Verfügbarkeit beziehungsweise Geheimhaltungsstufe des Masterschlüssels ab. Beispielsweise ist ein Masterschlüssel ein an sich nach außen unbekannter Schlüssel, der lediglich bei der Fertigung des kryptographischen Moduls CM im Schlüsselblock KB gespeichert wird. Somit kann beispielsweise gewährleistet werden, dass nur der Hersteller des kryptographischen Moduls CM diesen Schlüssel kennt. Für die Nutzer des Masterschlüssels erfolgt eine Verschlüsselung mit dem Masterschlüssel beziehungsweise den daraus abgeleiteten. internen Schlüsseln transparent ab, also ohne Notwendigkeit der Kenntnis des tatsächlichen Schlüssels. Solche unbekannten Masterschlüssel sind dementsprechend beispielsweise als nichtexportierbar gekennzeichnet und können dementsprechend vom Exportblock EXP nicht exportiert werden.
-
Weiterhin kann ein Masterschlüssel aber auch ein vorverteilter Schlüssel, englisch preshared key, sein, der zwar an sich geheim ist, aber über sichere Wege an verschiedene kryptographische Module übertragen werden kann. Solche vorverteilten Schlüssel können beispielsweise auch als exportierbar markiert sein und dementsprechend vom Exportblock EXP exportiert werden. Es ist aber auch möglich, dass der Schlüsselblock KB bestimmte Speicherpositionen für Masterschlüssel definiert hat, die lediglich einmal beschreibbar sind, aber ansonsten nicht mehr über einen Export auslesbar sind. Beispielsweise wird in diesem Fall ein vorverteilter Schlüssel in den Schlüsselblock KB einmalig eingeschrieben und fest gespeichert.
-
Das kryptographische Modul CM ist dementsprechend beispielsweise eingerichtet, Masterschlüssel zu importieren und im Schlüsselblock KB abzuspeichern. Hierzu ist beispielsweise der zu importierende Masterschlüssel im Eingangsparametersatz mit einer entsprechenden Kommandoinformation enthalten.
-
Aus den verschiedenen beschriebenen Ausführungsformen ergeben sich auch unterschiedliche Möglichkeiten zur kryptographischen Kommunikation und der Nutzung des kryptographischen Moduls CM. Beispielsweise wird mit einem ersten kryptographischen Modul ein Klartext entsprechend verschlüsselt und auf einem Datenspeicher abgelegt.
-
Die abgelegten verschlüsselten Daten können dann beispielsweise zu einem späteren Zeitpunkt von dem ersten kryptographischen Modul wieder entschlüsselt werden, so dass eine sichere Speicherung implementiert werden kann. Insbesondere erfolgt eine Verschlüsselung beispielsweise derart, dass die Entschlüsselung nur von dem ersten kryptographischen Modul durchgeführt werden kann, etwa dadurch, dass der Masterschlüssel und der Unterindikator nur diesem kryptographischen Modul bekannt sind.
-
Die abgelegten verschlüsselten Daten werden in einer alternativen Ausgestaltung zu einem Empfänger übermittelt, beispielsweise durch physikalischen Transport des Datenträgers und mit dem am Empfänger vorhandenen kryptographischen Modul wieder entschlüsselt. Hierbei ist es vorteilhaft, wenn der entsprechend verwendete Masterschlüssel nicht exportierbar ist.
-
Weiterhin ist es beispielsweise bei einer Kommunikation zwischen zwei Steuergeräten möglich, dass ein vorverteilter Schlüssel als Masterschlüssel und ein Unterindikator verwendet werden, um Kommunikationsdaten verschlüsselt zu übertragen.
-
3 zeigt eine Ausführungsform eines kryptographischen Systems mit einer ersten Sende-Empfangseinrichtung TRX1 und einer zweiten Sende-Empfangseinrichtung TRX2, die über eine beliebige Datenschnittstelle TP miteinander verbunden sind. Die Sende-Empfangseinrichtungen TRX1, TRX2 umfassen jeweils ein Kommunikationsmodul MOD1, MOD2 und ein kryptographisches Modul CM1, CM2, welche nach einer der zuvor beschriebenen Ausführungsformen ausgeführt sind.
-
Beispielsweise arbeitet die erste Sende-Empfangseinrichtung TRX1 als Sender, wobei eine zu sendende Information zunächst mit Hilfe des kryptographischen Moduls CM1 verschlüsselt wird. Die verschlüsselte Information wird zur zweiten Sende-Empfangseinrichtung TRX2 übertragen, die in diesem Betriebszustand als Empfänger arbeitet und die verschlüsselte Information, den Schlüsseltext, mittels des zweiten kryptographischen Moduls CM2 zurück in den entsprechenden Klartext umwandelt. Für die Verschlüsselung beziehungsweise Entschlüsselung benötigen die Kommunikationsmodule MOD1, MOD2 lediglich die Information, welcher Masterschlüssel und welcher Unterindikator zu verwenden sind. Folglich werden im Wesentlichen lediglich zwei Indikatoren, nämlich der Masterschlüsselindikator und der Unterindikator für die kryptographischen Operationen benötigt. Der Verschlüsselungs- beziehungsweise Entschlüsselungsvorgang selbst läuft für die Kommunikationsmodule MOD1, MOD2 transparent ab, also ohne tatsächliche Kenntnis des verwendeten internen Schlüssels.
-
Falls ein interner Schlüssel kompromittiert sein sollte, also einen unberechtigten Dritten der tatsächliche interne Schlüssel bekannt wird, kann ohne großen Aufwand ein neuer interner Schlüssel gewählt werden, in dem beispielsweise lediglich der Unterindikator für die kryptographischen Operationen verändert wird.
-
Die verschiedenen beschriebenen Ausführungsformen des kryptographischen Moduls CM beziehungsweise des kryptographischen Systems ermöglichen eine hohe Flexibilität bei der Nutzung kryptographischer Operationen, da theoretisch eine unendlich hohe Zahl verschiedener interner Schlüssel verwendet werden kann. Zudem ist die Sicherheit der kryptographischen Funktionen dadurch erhöht, dass die kryptographischen Operationen wie Verschlüsselung und Entschlüsselung transparent für den Nutzer des kryptographischen Moduls erfolgen. Dies wird auch dadurch unterstützt, dass die tatsächlich verwendeten Schlüssel nicht oder nur in Ausnahmefällen das kryptographische Modul verlassen, beispielsweise durch eine bevorzugt autorisierte Exportfunktion.
-
Im Vergleich zu herkömmlichen kryptographischen Verfahren wird bei den vorliegend beschriebenen Ausführungsformen kein Speicherplatz oder nur geringer Speicherplatz für die zu verwendenden kryptographischen Schlüssel benötigt. Dadurch können der Produktionsaufwand und die entsprechenden Produktionskosten reduziert beziehungsweise gering gehalten werden. Die beschriebenen Ausführungsformen zeichnen sich zudem durch eine einfache Erweiterbarkeit aus, insbesondere, wenn die beschriebene Funktion der Beritstellung von internen Schlüsseln genutzt wird.
-
Bei den beschriebenen Ausführungsformen ist nur in geringem Maße auf die verwendeten kryptographischen Algorithmen eingegangen worden. Solche Algorithmen sind vielfach bekannt und können jeweils mit dem beschriebenen Prinzip verwendet werden. Beispielsweise lassen sich verschiedenartige kryptographische Basisroutinen, welche auch als kryptographische Primitive bezeichnet werden, für die jeweiligen kryptographischen Operationen verwenden. Beispielsweise basieren die kryptographischen Algorithmen auf Blockverschlüsselungsalgorithmen. Zudem werden vorzugsweise symmetrische Verschlüsselungsverfahren verwendet.
-
Bezugszeichenliste
-
-
- CM, CM1, CM2
- kryptographisches Modul
- PRE
- Eingangsblock
- POST
- Ausgangsblock
- IN
- Eingang
- OUT
- Ausgang
- KB
- Schlüsselblock
- MK
- Masterschlüsselblock
- KC
- Schlüsselzwischenspeicher
- ENC
- Verschlüsselungsblock
- DEC
- Entschlüsselungsblock
- EXP
- Exportblock
- MOD1, MOD2
- Kommunikationsmodul
- TRX1, TRX2
- Sende-Empfangseinrichtung
- TP
- Übertragungskanal