DE102013223366A1 - Hardware-kryptomodul und system zur kommunikation mit einer externen umgebung - Google Patents

Hardware-kryptomodul und system zur kommunikation mit einer externen umgebung Download PDF

Info

Publication number
DE102013223366A1
DE102013223366A1 DE102013223366.3A DE102013223366A DE102013223366A1 DE 102013223366 A1 DE102013223366 A1 DE 102013223366A1 DE 102013223366 A DE102013223366 A DE 102013223366A DE 102013223366 A1 DE102013223366 A1 DE 102013223366A1
Authority
DE
Germany
Prior art keywords
key
encrypted
module
data
request
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
DE102013223366.3A
Other languages
English (en)
Inventor
Andreas Jakoby
Dimitri Helwig
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.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
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 Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority to DE102013223366.3A priority Critical patent/DE102013223366A1/de
Priority to US14/542,036 priority patent/US20160072777A1/en
Publication of DE102013223366A1 publication Critical patent/DE102013223366A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0471Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Ein Hardware-Kryptomodul (101) wird beschrieben, welches Daten von einem Gerät (300) verschlüsselt oder entschlüsselt, wobei das Gerät (300) entfernt und hardwaretechnisch getrennt von dem Kryptomodul (101) angeordnet ist. Das Kryptomodul (101) umfasst eine Schnittstelle (101.4) zur Kommunikation mit dem entfernt angeordneten Gerät (300), einen Speicher (102) und einen Kryptoprozessor (101.1). Der Kryptoprozessor (101.1) ist konfiguriert, um über die Schnittstelle (101.4) empfangene Daten unter Verwendung eines ersten Schlüssels zu verschlüsseln oder zu entschlüsseln, den ersten Schlüssel unter Verwendung eines in dem Speicher (102) abgelegten zweiten Schlüssels zu verschlüsseln, und den ersten Schlüssel ausschließlich in verschlüsselter Form über die Schnittstelle (101.4) auszugeben.

Description

  • Die vorliegende Erfindung bezieht sich auf das Gebiet der Datenkommunikation, insbesondere auf eine Übertragung von verschlüsselten Daten zwischen einem Gerät, wie beispielsweise einem Computer, und einer externen Umgebung, beispielsweise einem Netzwerk. Insbesondere bezieht sich die vorliegende Erfindung gemäß Ausführungsbeispielen auf ein Hardware-Kryptomodul zum Verschlüsseln oder Entschlüsseln von Daten, auf ein System zur Kommunikation mit einer externen Umgebung, welches ein solches Hardware-Kryptomodul aufweist, sowie auf das hierbei eingesetzte Schlüsselmanagementsystem.
  • Die Nutzung von mobilen Endgeräten nimmt einen immer größeren Stellenwert ein, wobei insbesondere leistungsstarke Endgeräte, welche einen unmittelbaren Zugriff auf das Internet oder das Intranet einer Organisation ermöglichen, eine zentrale Rolle spielen. Zu dieser Gruppe von Geräten gehören neben den Note- und Netbooks auch Tablet-Computer und Smart Phones. Die Sicherheit dieser Geräte ist ein wichtiger Aspekt bei der Kommunikation mit der Umgebung, wobei für die Gewährleistung der Sicherheit von Daten im Allgemeinen auf verschiedene Verfahren der Kryptographie zurückgegriffen wird. Die oben erwähnten Endgeräte dienen sowohl zur Eingabe als auch zur Ausgabe von Daten, beispielsweise über eine Nutzerschnittstelle, eine sogenannte Mensch-Maschine-Schnittstelle. Da die Daten einem Benutzer angezeigt werden müssen, ist es nicht möglich, die Daten auf dem Endgerät durchgehend verschlüsselt bereitzuhalten, so dass der Diebstahl einzelner Datensätze folglich nicht vollständig verhindert werden kann. Problematischer als der Verlust einzelner Datensätze ist jedoch der Verlust der Kontrolle über den Zugriff auf große Mengen von sensitiven Daten, was beispielsweise dann möglich ist, wenn die zur Verschlüsselung genutzten Schlüssel in die falschen Hände geraten.
  • Verschiedene Lösungsansätze, welche das oben beschriebene Problem adressieren, sind im Stand der Technik bekannt und basieren darauf, Daten mit Hilfe eines Software-Verfahrens zur Verschlüsselung oder eines Hardware-Verfahrens zur Verschlüsselung zu schützen. Diese, im Stand der Technik bekannten Ansätze, sind jedoch abhängig von der Geräteart, der Kommunikationsart und/oder dem Gerätebetriebssystem unterschiedlich spezifiziert, so dass bestimmte Lösungsansätze nur für Smart Phones aber nicht für Tablet-PCs oder nur für Notebooks aber nicht für Smart Phones einsetzbar sind. Ebenso werden unterschiedliche Ansätze für den Schutz von Telefongesprächen, SMS-Diensten oder E-Mails angeboten. Für unterschiedliche Gerätebetriebssysteme, wie beispielsweise das Android-Betriebssystem oder das iOS, werden unterschiedliche Lösungen vorgeschlagen.
  • Bekannte Lösungsansätze zur sicheren Verschlüsselung einer mobilen Kommunikation basieren auf einem reinen Softwareverfahren, auf einem reinen Hardwareverfahren oder auf einem Hybridverfahren.
  • Bei einem Softwareverfahren wird die Verschlüsselung der Daten, z. B. der Gesprächsinhalte, mittels einer speziellen Software durchgeführt. Da ein Angreifer in diesem Fall nur die Software oder das Betriebssystem des Endgeräts manipulieren muss, bieten diese Verfahren nur eine eingeschränkte Form der Sicherheit. Tatsächlich können entsprechend manipulierte Endgeräte herangezogen werden, um Informationen über die zur Verschlüsselung verwendeten Schlüssel zu erhalten, die anschließend hergezogen werden, um beliebige verschlüsselte Inhalte bzw. verschlüsselte Daten zu entschlüsseln oder zu manipulieren. Bei einigen bekannten Softwareverfahren wird eine Virtualisierung eingesetzt, welche dazu dient, die gerade erwähnten Schwächen, beispielsweise im Zusammenhang mit Hackerangriffen, Viren und Ähnlichem, zu reduzieren, indem die Daten innerhalb eines vorgegebenen Kontextes behalten werden. Insbesondere soll hierdurch ein unerwünschter Datenabfluss verhindert werden. Mittels der Virtualisierung können verschiedene Geräte informationsfrei und damit für den Informationsfluss von geschäftlichen Daten unbrauchbar gemacht werden. Um auf einem Endgerät sowohl den privaten als auch den dienstlichen Gebrauch zu erlauben, werden zwei virtuelle Maschinen implementiert. Eine dieser Maschinen, die für den dienstlichen Gebrauch, ist dabei stark reglementiert und vorgesehen, um dienstliche Daten und Anwendungsprogramme oder Apps zu verwenden, wohingegen die andere virtuelle Maschine weniger Einschränkungen aufweist, und privaten Dingen vorbehalten ist. Bekannte Ansätze sehen einen Hypervisor vor, der als Zwischenschicht zwischen der Hardware und den beiden virtuellen Systemen angeordnet ist.
  • Andere, im Stand der Technik bekannte Softwarelösungen verwenden, zur Erhöhung der Sicherheit, sogenannte Containerlösungen (Sandbox), welche derart arbeiten, dass einzelne Anwendungen nur in einer eigenen, vorbestimmten Umgebung (Container, Sandbox) ablaufen. Dies erlaubt aber nur einen eingeschränkten Zugriff. Die einzelnen Anwendungen sind innerhalb des Containers bzw. innerhalb der Sandbox voneinander abgeschottet, was dahingehend nachteilhaft ist, dass eine übergreifende Sicht und somit eine gemeinsame Schnittstelle zum Benutzer nicht vorgesehen ist, so dass beispielsweise im Fall eines dienstlichen Adressbuches und eines privaten Adressbuches, diese getrennt vorliegen und eine gemeinsame Funktion zum Durchsuchen eines Adressbuches über beide Adressbücher hinweg nicht vorgesehen und auch nicht möglich ist.
  • Ein weiterer, im Stand der Technik bekannter Ansatz zur sicheren Datenübertragung verwendet ein hybrides Verfahren, welches beispielsweise aus einer Smartcard sowie einer Anwendungssoftware besteht, welche zur Verschlüsselung und Entschlüsselung von beispielsweise Sprachdaten und SMS-Nachrichten eingesetzt werden kann. Der auf der Smartcard vorhandene Mikroprozessor initiiert einen sicheren Verbindungsaufbau und übernimmt die Verschlüsselung. Nach Einlegen der Smartcard in den Kartenschlitz eines Mobiltelefons und der Eingabe einer PIN übernimmt eine Public-Key-Infrastruktur-Umgebung die Authentifizierung und die Schlüsselübergabe, z. B. unter Verwendung eines PKI-Servers. Nachteilhaft an diesem hybriden Konzept ist, dass die verwendete Smartcard im Regelfall nur bestimmte Betriebssysteme unterstützt, so dass andere, bekannte Betriebssysteme nicht mit diesem System arbeiten können. Die Verwendung der Smartcard stellt ferner eine Hardwareerweiterung des ursprünglichen Geräts dar, was bei einigen Geräten zwar möglich ist, jedoch wird nicht immer die erforderliche Verarbeitungs- und Signallaufzeit ermöglicht, die eine ausreichend schnelle Verschlüsselung der Daten, beispielsweise die Verschlüsselung von Sprachdaten in Echtzeit, zulässt. Wird dieses Konzept ohne die der Smartcard in reiner Software implementiert, so führt dies, systembedingt, gegenüber der Kombination aus Software und Hardware zu einem deutlich reduzierten Sicherheitsniveau. Ein weiterer Nachteil dieses Ansatzes besteht darin, dass einer der Kartenslots des Endgeräts belegt wird, und somit nicht mehr für Speichererweiterungen nutzbar ist. Ferner unterstützen solche Hybridenansätze im Regelfall nur eine begrenzte Auswahl an Plattformen und ermöglichen somit nur einem eingeschränkten Nutzerkreis dessen Einsatz.
  • Ferner sind im Stand der Technik reine Hardwareansätze bekannt, bei denen das Endgerät, z. B. das Smart Phone, „gehärtet” wird. Alternative Ansätze verwenden eine zusätzliche Hardware zur Verschlüsselung.
  • Der Nachteil gehärteter Mobilgeräte besteht darin, dass diese nur durch bestimmte Anbieter angeboten werden, die bestimmte Betriebssysteme, die gehärtet wurden, einsetzen und die Kommunikation über ein proprietäres Protokoll sowie über herstellereigene Knotenpunkte abwickeln. Dies erfordert somit eine Investition in spezielle Endgeräte, um überhaupt eine Möglichkeit zur durchgängigen Ende-zu-Ende Verschlüsselung zu schaffen.
  • Eine andere Vorgehensweise ist der zusätzliche Einsatz von Hardware, beispielsweise in Form eines Kryptochips in dem Endgerät, der die Schlüssel so speichert, dass auch ein neuer Inhaber eines Geräts keinen weiteren Zugriff auf diese hat. Der Kryptochip übernimmt die Ver- und Entschlüsselungsvorgänge von Daten und Telefonaten, und bietet zusammen mit einer ausgewählten Software beim abgesicherten Hochfahren des Geräts eine ausreichende Sicherheit, um für eine Kommunikation von Staatsgeheimnissen freigegeben zu sein. Ein weiterer, bekannter Ansatz besteht darin, ein Verschlüsselungsmodul auf eine separate Hardware auszulagern, welche dann mit dem eigentlichen Endgerät über eine Schnittstelle, beispielsweise über eine Bluetooth-Schnittstelle oder eine USB-Schnittstelle, verbunden ist, um die Daten auszutauschen. Zur Datenverschlüsselung wird mit der Gegenstelle über ein Key-Agreement Protokoll ein Schlüssel generiert, welcher im Anschluss zur Verschlüsselung der Kommunikation verwendet wird. Der Nachteil der oben erwähnten, bekannten Hardware-basierten Ansätze besteht darin, dass diese nur für eine eingeschränkte Anzahl von Endgeräten einsetzbar sind und sich auch nur eingeschränkt auf zukünftige Entwicklungen in der Kryptografie anpassen lassen.
  • Ausgehend von diesem Stand der Technik liegt der vorliegenden Erfindung die Aufgabe zugrunde, einen verbesserten Ansatz zur verschlüsselten Kommunikation von Daten zu schaffen, welcher gleichzeitig die Transparenz, Modularität und sichere Kommunikation für verschiedene Kommunikationsarten bietet.
  • Diese Aufgabe wird durch ein Hardware-Kryptomodul nach Anspruch 1 und durch ein System nach Anspruch 9, welches das erfindungsgemäße Hardware-Kryptomodul aufweist, gelöst.
  • Die vorliegende Erfindung schafft ein Hardware-Kryptomodul zum Verschlüsseln oder Entschlüsseln von Daten von einem Gerät, das hardwaretechnisch entfernt und getrennt von dem Kryptomodul angeordnet ist, wobei das Kryptomodul folgende Merkmale aufweist:
    eine Schnittstelle zur Kommunikation mit dem entfernt angeordneten Gerät,
    einen Speicher,
    einen Kryptoprozessor, der konfiguriert ist, um
    über die Schnittstelle empfangene Daten unter Verwendung eines ersten Schlüssel zu verschlüsseln oder zu entschlüsseln,
    den ersten Schlüssel unter Verwendung eines in dem Speicher abgelegten zweiten Schlüssel zu verschlüsseln, und
    den ersten Schlüssel ausschließlich in verschlüsselter Form über die Schnittstelle auszugeben. Gemäß Ausführungsbeispielen wird auch der zweite Schlüssel ausschließlich in verschlüsselter Form über die Schnittstelle ausgegeben.
  • Die vorliegende Erfindung schafft ferner ein System zur Kommunikation mit einer externen Umgebung, mit:
    einem Gerät, das eine Schnittstelle zu der externen Umgebung umfasst, und
    einem erfindungsgemäßen Hardware-Kryptomodul, das hardwaretechnisch von dem Gerät getrennt ist und konfiguriert ist, um über seine Schnittstelle mit dem Gerät zu kommunizieren.
  • Der erfindungsgemäße Ansatz basiert auf einem modularen Aufbau mit austauschbaren Modulen, ein Ansatz, der bei herkömmlichen, bekannten Ansätzen, die oben erläutert wurden, nicht vorgesehen ist. Erfindungsgemäß wird der oben angesprochene, höchst problematische Verlust von Schlüsseln dadurch vermieden, dass die Schlüssel (der erste Schlüssel und/oder der zweite Schlüssel) durch eine weitere Verschlüsselung geschützt werden, und dass die unverschlüsselten Schlüssel nur noch in dem speziellen, hardwaretechnisch getrennten Kryptomodul vorliegen, wobei dieses Modul ferner die Verschlüsselung und die Entschlüsselung von Daten sowie die Verschlüsselung und Entschlüsselung von Schlüsseln durchführt. Das erfindungsgemäße Kryptomodul wird auch als Cypher-Gateway bezeichnet.
  • Gemäß Ausführungsbeispielen kann ferner ein Kommunikationsmodul vorgesehen sein, welches es ermöglicht, das Kryptomodul an unterschiedlichsten Endgeräten zu betreiben, so dass der erfindungsgemäße Ansatz dahingehend vorteilhaft ist, dass die oben beschriebenen Einschränkungen der Verwendung der einzelnen, bekannten Verschlüsselungsansätze nicht länger existieren, vielmehr wird ein universell einsetzbarer Ansatz offenbart, der eine sichere Verschlüsselung und eine sichere Verwaltung der Schlüssel an beliebigen Endgeräten ermöglicht. Das gerade erwähnte, integrierte Schlüsselmanagementsystem ist vorteilhaft, da es einem Benutzer erlaubt, über ein Endgerät direkt auf verschlüsselte Daten zuzugreifen, ohne dass hierbei ein aufwendiges Protokoll zum Schlüsselaustausch durchgeführt werden muss. Ein solcher Ansatz ist im Stand der Technik nicht bekannt, vielmehr erfordern bekannte Verfahren stets einen Rückgriff auf Verfahren der Public-Key-Kryptografie, wie z. B. auf das Diffie-Hellman-Verfahren zum Schlüsselaustausch.
  • Nachteilig an Ansätzen, wie sie im Stand der Technik bekannt sind, ist, dass der zur Verschlüsselung herangezogene Schlüssel zwischen den beteiligten Parteien bzw. Endgeräten immer wieder neu berechnet werden muss. Demgegenüber ist der erfindungsgemäß Ansatz vorteilhaft, da keine erneute Schlüsselberechnung beim Austausch der Schlüssel erforderlich ist.
  • Die vorliegende Erfindung basiert auf der Erkenntnis, dass zur Gewährleistung der Sicherheit der Daten in erster Linie die Sicherheit der Schlüssel gewährleistet werden muss, was erfindungsgemäß mittels des Hardware-Kryptomoduls bzw. des Cypher-Gateways geschieht. Das Kryptomodul stellt sicher, dass außerhalb des in Hardware realisierten Kryptomoduls die Schlüssel nur verschlüsselt verwendet, gespeichert oder versendet werden. Die außerhalb des Kryptomoduls eingesetzten Schlüssel werden mit Basisschlüsseln, die im Kryptomodul gespeichert sind, verschlüsselt, um so den verschlüsselten Schlüssel zu erzeugen. Durch diese Vorgehensweise wird sichergestellt, dass aus der Kenntnis des Basisschlüssels (des zur Verschlüsselung des Schlüssels herangezogenen Schlüssels) die Berechtigung abgeleitet werden kann, dass der Zugriff auf alle Daten gestattet ist, die mit diesem Schlüssel verschlüsselt sind. Stellt beispielsweise kj eine Gruppe von Basisschlüsseln dar, dann dürfen mit ki nur die Schlüssel ki verschlüsselt werden, auf die diese Gruppe zugreifen darf. Gemäß Ausführungsbeispielen kann die obige Eigenschaften über strikte Regeln bzw. über ein zentralisiertes Schlüsselmanagementsystem gewährleistet werden.
  • Gemäß Ausführungsbeispielen kann der zweite Schlüssel der oben erwähnte Basisschlüssel sein, wobei zu dem Begriff Basisschlüssel folgendes angemerkt wird. Eine strikte Trennung zwischen Basisschlüssel und Nicht-Basisschlüssel ist abhängig von der jeweiligen Anwendung. So kann es nötig sein, dass Schlüssel auch über die Reichweite eines Basisschlüssels hinaus weitergegeben werden müssen, z. B. wenn Datensätze über mehrere Bereiche (die sich jeweils überlappen) hinweg weitergereicht werden sollen. In solchen Fällen wird als zweiter Schlüssel kein Basisschlüssel eingesetzt, der ausschließlich in dem Kryptomodul vorliegt, sondern als zweiter Schlüssel wird ein Schlüssel eingesetzt, der verschlüsselt auch außerhalb des Kryptomoduls verwendet, gespeichert oder versendet werden kann.
  • Gemäß Ausführungsbeispielen umfasst der erfindungsgemäße Ansatz drei Module, nämlich das erfindungsgemäße Hardware-Kryptomodul sowie zusätzlich ein Kommunikationsmodul und ein Integrationsmodul, was ermöglicht, auf Entwicklungen bzgl. des Endgeräts, des Kommunikationsverfahrens und/oder des Verschlüsselungsverfahrens einzugehen, ohne dass das gesamte System betroffen ist. Ferner kann der erfindungsgemäße Ansatz auf unterschiedlichen Endgeräten, z. B. einem stationären PC, einem tragbaren Laptop, einem Smart Phone, eingesetzt werden. Je nach Kapazität des Endgeräts kann das Kommunikationsmodul auf dem Endgerät in Software oder als separates Hardware-Modul implementiert werden.
  • Der erfindungsgemäße Ansatz, dass Kryptomodul immer als separates Hardware-Modul zu implementieren, führt zu einer Maximierung der Sicherheit.
  • Das oben erwähnte integrierte Schlüsselmanagementsystem, welches beispielsweise sowohl im Kryptomodul als auch zum Teil im Kommunikationsmodul implementiert sein kann, ermöglicht eine Optimierung der Speicherressourcen ohne Reduzierung der Sicherheit. Beispielsweise kann beim Einsatz eines Kommunikationsmoduls eine Auslagerung von verschlüsselten Schlüsseln auf das Kommunikationsmodul durchgeführt werden, um zu ermöglichen, die knappen Hardware-Ressourcen des eigentlichen Kryptomoduls optimal zu nutzen.
  • Der erfindungsgemäße Ansatz ermöglicht die sichere Verschlüsselung von Daten, wobei sich Daten allgemein auf digitale Daten beziehen, und diese umfassen neben klassischen Textnachrichten und Dokumenten auch multimediale Daten wie Sprache, z. B. bei der Telefonie, digitale Fotos, Filme und Ähnliches.
  • Der erfindungsgemäße Ansatz kann in allen Bereichen eingesetzt werden, in denen Daten verschlüsselt über unsichere Kanäle gesendet oder auf unsicheren Speichersystemen abgelegt werden müssen. Bei derartigen Systemen ist in vielen Fällen der Schutz des Schlüssels wichtiger als der Schutz einzelner Dokumente, und der erfindungsgemäße Ansatz unterstützt aufgrund seines modularen Aufbaus den Austausch von Daten zwischen den unterschiedlichsten Endgeräten, ohne dass hierbei eine tiefgehende Modifikation der eigentlichen Endgeräte nötig ist. Vorteilhafterweise können somit effizient und sicher Daten, beispielsweise zwischen einem Smart Phone und einem Datenbankserver ausgetauscht werden, wobei der Schutz der Daten durch den Schutz des benutzten Schlüssels garantiert ist, und dieser Schlüssel aufgrund seiner Verschlüsselung auch in den Fällen geschützt bleibt, in denen das eigentliche Endgerät kompromittiert ist.
  • Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend anhand der beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 eine schematische Darstellung des Aufbaus des erfindungsgemäßen Systems, welches auch als Cypher-Gateway bezeichnet wird;
  • 2 eine Darstellung des Systems aus 1, in der weitere Details der einzelnen Module schematisch dargestellt sind;
  • 3 ein Diagramm der im Integrationsmodul im Falle einer Datenverschlüsselung anfallenden Schritte, die z. B. durch den Signalverarbeitungsprozessor des Integrationsmoduls durchgeführt werden;
  • 4 die im Integrationsmodul durchgeführten Schritte im Zusammenhang mit einer Datenentschlüsselung für eine Anzeige der entschlüsselten Daten auf der Benutzerschnittstelle des Endgeräts;
  • 5 Ablaufdiagramme betreffend die Anfrage nach einem Schlüssel an das System, z. B. durch einen Sender in der externen Umgebung (5(a)), sowie betreffend die Antwort des Systems an den Sender (siehe 5(b));
  • 6 die Funktionalität des Integrationsmoduls im Zusammenhang mit der Anfrage nach einem Schlüssel durch das System an einen Empfänger in der externen Umgebung (6(a)), sowie im Zusammenhang mit der Antwort des Empfängers an das System (siehe 6(b));
  • 7 die Funktionalität des Kommunikationsmoduls bei der Verschlüsselung von Daten, wobei 7(a) die Funktionalität des Kommunikationsmoduls im Zusammenhang mit der Verarbeitung der Verschlüsselungsanfrage zeigt, und 7(b) die Funktionalität des Kommunikationsmoduls im Zusammenhang mit der Verarbeitung der Verschlüsselungsantwort zeigt;
  • 8 die Funktionalität des Kommunikationsmoduls bei der Entschlüsselung von Daten, wobei 8(a) die Funktionalität des Kommunikationsmoduls im Zusammenhang mit der Verarbeitung der Entschlüsselungsanfrage zeigt, und 8(b) die Funktionalität des Kommunikationsmoduls im Zusammenhang mit der Verarbeitung der Entschlüsselungsantwort zeigt;
  • 9 die Funktionalität des Kommunikationsmoduls im Zusammenhang mit einer Anfrage nach einem Schlüssel durch die externe Umgebung aktiv ist;
  • 10 ein Beispiel der Funktionalität des Kommunikationsmoduls im Zusammenhang mit einer Anfrage des Systems aus 2 an die externe Umgebung nach einem Schlüssel;
  • 11 ein Ablaufdiagramm für eine modulinterne Schlüsselanfrage, z. B. eine Anfrage des Kryptomoduls beim Kommunikationsmodul nach einem bestimmten Schlüssel;
  • 12 die Funktionalität des Kommunikationsmoduls bei der Weiterleitung einer Antwort von der externen Umgebung auf eine Anfrage nach einem Schlüssel;
  • 13 die Funktionsabläufe innerhalb des Kommunikationsmoduls, wenn das Kryptomodul eine Antwort auf eine Anfrage von der externen Umgebung nach einem Schlüssel bereitgestellt;
  • 14 die Funktionalität des Kommunikationsmoduls zum Speichern eines verschlüsselten Schlüssels in dem Speicher des Kommunikationsmoduls;
  • 15 die Funktionalität des Kommunikationsmoduls zum Speichern von Daten in dem Speicher des Kommunikationsmoduls;
  • 16 die Funktionalität des Kryptomoduls im Zusammenhang mit der Verarbeitung einer Verschlüsselungsanforderung;
  • 17 die Funktionalität des Kryptomoduls im Zusammenhang mit der Verarbeitung einer Entschlüsselungsanforderung;
  • 18 die Funktionsabläufe innerhalb des Kryptomoduls zur internen Schlüsselbestimmung;
  • 19 die Funktionsabläufe innerhalb des Kryptomoduls zur externen Schlüsselbestimmung;
  • 20 die Funktionalität des Kryptomoduls im Zusammenhang mit der Abarbeitung einer Schlüsselanfrage bzw. dem Bereitstellen eines verschlüsselten Schlüssels an das Kommunikationsmodul; und
  • 21 die Funktionalität des Kryptomoduls im Zusammenhang mit der Abarbeitung einer Basisschlüsselanfrage bzw. dem Bereitstellen eines verschlüsselten Basisschlüssels an das Kommunikationsmodul.
  • Nachfolgend werden bevorzugte Ausführungsbeispiele des erfindungsgemäßen Hardware-Kryptomoduls und Ausführungsbeispiele des erfindungsgemäßen Systems, welches ein solches Hardware-Kryptomodul einsetzt, näher beschrieben. In der nachfolgenden Beschreibung sind gleiche oder gleichwirkende Elemente in den Figuren mit den gleichen Bezugszeichen bezeichnet.
  • 1 zeigt eine schematische Darstellung des Aufbaus des erfindungsgemäßen Systems, welches auch als Cypher-Gateway bezeichnet wird. Das erfindungsgemäße System 100 ist durch den schraffierten Bereich schematisch dargestellt und umfasst das Kryptomodul 101, das Kommunikationsmodul 201 und ein in einem Endgerät 300 implementiertes Integrationsmodul 301. Gemäß Ausführungsbeispielen ist das Integrationsmodul 301 eine Komponente, welche direkt auf dem Endgerät implementiert sein kann, wobei je nach Aufbau und Leistungsfähigkeit des Endgeräts 300 auch das Kommunikationsmodul 201 auf dem Endgerät 300 implementiert sein kann. Erfindungsgemäß ist das Kryptomodul 101 hardwaretechnisch von dem Endgerät 300 getrennt.
  • Das Kryptomodul 101 umfasst einen Speicher 102, z. B. in Form einer Datenbank oder eines Cache-Speichers, für unverschlüsselte Daten oder Schlüssel. Das Kommunikationsmodul 201 umfasst ebenfalls einen Speicher 202, z. B. in Form einer Datenbank oder eines Cache-Speichers, zum Speichern verschlüsselter Daten oder verschlüsselter Schlüssel innerhalb des Kommunikationsmoduls 201. Das Endgerät 300 umfasst neben dem Integrationsmodul 301 eine Benutzerschnittstelle 302, die auch als Mensch-Maschine-Schnittstelle bezeichnet wird.
  • Das System kann ferner mit einer externen Umgebung 400 kommunizieren, beispielsweise einem öffentlichen Netz, dem Internet, oder einem Intranet, wobei mit dem Bezugszeichen 401 allgemein gespeicherte Daten, externe Speicherorte oder externe Datenempfänger oder -sender bezeichnet werden, die über das öffentliche Netz, Internet oder Intranet zugänglich sind. Ferner kann die externe Umgebung 400 einen öffentlichen oder internen Speicher, ein Rechenzentrum oder eine Cloud umfassen.
  • Mit dem Bezugszeichen 501 ist schematisch eine Kommunikation zwischen dem Endgerät 300 und der externen Umgebung 400 dargestellt. Die Bezugszeichen 502 und 503 stellen schematisch eine Kommunikation zwischen dem Endgerät 300 und dem Kommunikationsmodul 201 bzw. zwischen dem Kommunikationsmodul 201 und dem Kryptomodul 101 dar.
  • Zur Beschreibung der funktionalen Zusammenhänge zwischen den anhand der 1 beschriebenen Elementen, wird nachfolgend auf die 2 zurückgegriffen, welche eine Darstellung des Systems aus 1 zeigt, in der weitere Details der einzelnen Module schematisch dargestellt sind. Ferner sind weitere Details im Hinblick auf die Kommunikation zwischen den einzelnen Modulen gezeigt. Das Kryptomodul 101 umfasst neben dem Speicher 102 eine aktive Komponente 101.1, beispielsweise einen Kryptoprozessor 101.1, und eine externe Schnittstelle 101.4 zum Senden/Empfangen von Daten. Der Kryptoprozessor 101.1 ist wirksam mit dem Speicher 102 und der Schnittstelle 101.4 verbunden, wobei die Pfeile 101.2 und 101.3 schematisch den Austausch von Nachrichten zwischen dem Kryptoprozessor 101.1 und dem Speicher 102 des Kryptomoduls 101 darstellen.
  • Das Kommunikationsmodul 201 umfasst neben dem Speicher 202 eine aktive Komponente, beispielsweise einen Kommunikationsmodulprozessor 201.1, sowie externe Schnittstellen 201.4 und 201.5 zur Kommunikation mit dem Kryptomodul 101 bzw. dem Integrationsmodul 301. Die Bezugszeichen 201.2 und 201.3 stellen eine interne Kommunikation zwischen dem Speicher 202 des Kommunikationsmoduls 201 und dem Kommunikationsmodulprozessor 201.1 dar.
  • Das Integrationsmodul 301 umfasst einen Signalverarbeitungsprozessor 301.1 sowie eine Schnittstelle 301.4 zur Kommunikation mit dem Kommunikationsmodul 201. Die Pfeile 301.2 und 301.3 stellen schematisch eine Kommunikation zwischen der Benutzerschnittstelle 302 des Endgeräts 300 und der Signalverarbeitungsvorrichtung 301.1 des Integrationsmoduls 301 dar.
  • In 2 bezeichnen die Pfeile 501.1 und 501.2 Nachrichten, die von der externen Umgebung 400, beispielsweise dem öffentlichen Netz, dem Internet oder einem Intranet, an das Endgerät 300 übertragen werden, bzw. Nachrichten, die von dem Gerät 300 an die externe Umgebung 400 übertragen werden. Ebenso zeigen die Pfeile 502.1 und 502.2 bzw. 503.1 und 503.2 den Austausch von Nachrichten zwischen dem Integrationsmodul 301 und dem Kommunikationsmodul 201 bzw. zwischen dem Kommunikationsmodul 201 und dem Kryptomodul 101 an.
  • Das Kryptomodul 101 hat gemäß dem dargestellten Ausführungsbeispiel die zentrale Aufgabe des Entschlüsselns und Verschlüsselns von Daten und des Entschlüsselns und Verschlüsselns von Schlüsseln, sowie das Generieren neuer Schlüssel und das Speichern bzw. Zwischenspeichern (Cachen) von unverschlüsselten Schlüsseln. Erfindungsgemäß ist vorgesehen, dass, beispielsweise durch eine protokolltechnische Realisierung, sichergestellt ist, dass kein Schlüssel das Kryptomodul 101 unverschlüsselt verlässt. Genauer gesagt wird sichergestellt, dass neben dem ersten Schlüssel auch der Basisschlüssel ausschließlich in verschlüsselter Form außerhalb des Kryptomoduls 101 bereitgestellt werden. Auf dem Kryptomodul 101 werden vorzugsweise nur die für die Anwendung benötigten Basisschlüssel fest hinterlegt, welche protokolltechnisch ergänzt werden können, sofern dies erwünscht ist. Alle anderen Schlüssel werden temporär auf dem Kryptomodul 101 gespeichert. Das Kryptomodul 101 und das Kommunikationsmodul 202 kommunizieren bei dem dargestellten Beispiel über die Schnittstellen 101.4 und 201.4, die beispielsweise als USB-Schnittstelle ausgebildet sein können.
  • Das Kommunikationsmodul 202 dient zum Aufbau und zur Übermittlung des Daten- und Schlüsseltransfers zwischen dem Endgerät 300 und dem Kryptomodul 101. Gemäß dem dargestellten Ausführungsbeispiel dient es ferner zum Speichern bzw. Zwischenspeichern von verschlüsselten Daten und verschlüsselten Schlüsseln. Das Kommunikationsmodul kann vorgesehen werden, wenn nicht sichergestellt ist, dass das Endgerät über die erforderliche Schnittstelle verfügt, um direkt mit dem Kryptomodul 101 zu kommunizieren. Bei einem solchen Ausführungsbeispiel ist das Kryptomodul 201 vorgesehen, um zwischen den jeweiligen Schnittstellen und Protokollen, die im Endgerät 300 bzw. im Kryptomodul 101 eingesetzt werden, zu übersetzen, wobei das Kommunikationsmodul 200 gemäß Ausführungsbeispielen auch die für die beteiligten Protokolle eingesetzten Verschlüsselungsverfahren bereitstellt. Bei dem in 2 gezeigten Ausführungsbeispiel kann vorgesehen sein, dass die Kommunikation mit dem Endgerät 300 über eine Bluetooth-Verbindung, beispielsweise unter Verwendung einer AES-Verschlüsselung durchgeführt wird, und dass eine Kommunikation mit dem Kryptomodul über eine USB-Schnittstelle erfolgt. Gemäß Ausführungsbeispielen ist das Kommunikationsmodul 201 ferner vorgesehen, um verschlüsselte Schlüssel und verschlüsselte Daten zwischenzuspeichern, da der Speicher 202 des Kommunikationsmoduls 201 um Größenordnungen größer ausgelegt werden kann als der Speicher 102 des Kryptomoduls 101, so dass regelmäßig genutzte Schlüssel für das Kryptomodul effizient erreichbar abgelegt werden können, aber gleichzeitig aufgrund der zusätzlichen verschlüsselten Abspeicherung gesichert sind.
  • Das Integrationsmodul 301 dient dazu, das Kryptomodul 101 und das Kommunikationsmodul 201, sofern vorhanden, in die Kommunikation zwischen dem Nutzer des Endgeräts 300 und der externen Umgebung 400 einzubinden. Ferner dient das Integrationsmodul gemäß Ausführungsbeispielen dazu, Schlüsselanfragen des Kryptomoduls an die externe Umgebung 400 weiterzuleiten.
  • Sollen Daten über ein Netzwerk, beispielsweise die externe Umgebung 400, versendet werden, so bewirkt das Integrationsmodul 301 vor dem eigentlichen Versenden der Daten über das Netz 400 zunächst ein Verschlüsseln dieser Daten, indem die Daten über das Kommunikationsmodul 201 an das Kryptomodul 101 versendet werden. Dort werden die Daten verschlüsselt und anschließend über das Kommunikationsmodul 201 und das Integrationsmodul 301 an das Gerät 300 übergeben. Zum Empfangen und Darstellen von verschlüsselten Daten auf dem Endgerät 300 wird dieser Weg umgekehrt durchlaufen, d. h., die verschlüsselten Daten werden von dem Gerät 300 über das Integrationsmodul 301 und das Kommunikationsmodul 201 an das Kryptomodul 101 weitergegeben, dort entschlüsselt und dann zur Darstellung auf der Benutzerschnittstelle 302 an das Endgerät 300 zurückgegeben.
  • In Situationen, in denen das Kryptomodul 101 feststellt, dass ein nicht im Kryptomodul 101 vorhandener Schlüssel erforderlich ist, wird gemäß Ausführungsbeispielen mittels des Kryptomoduls 101 eine Schlüsselanfrage erzeugt, die über das Kommunikationsmodul 201 und das Integrationsmodul 301 an einen Empfänger, beispielsweise einen Schlüsselserver im öffentlichen Netz 400, weitergeleitet wird.
  • Bei dem anhand der 2 im Detail beschriebenen System treten im Zusammenhang mit der Verschlüsselung/Entschlüsselung im Wesentlichen die folgenden Kommunikationstypen auf:
    • 1. Verschlüsselungsanfrage (Encryption-Request)
    • 2. Entschlüsselungsanfrage (Decryption-Request)
    • 3. Verschlüsselungsantwort (Encryption-Response)
    • 4. Entschlüsselungsantwort (Decryption-Response)
    • 5. Schlüsselanfrage (Key-Request)
    • 6. Schlüsselantwort (Key-Response)
    • 7. Speichere-Schlüssel (Speichere-Key)
    • 8. Daten
    • 9. Fehler
  • Das Integrationsmodul umfasst ferner anwendungsabhängige Schlüssel-Identifizierungen (Schlüssel-IDs) für die Schlüssel, welche zur Verschlüsselung einzelner Daten und Schlüssel verwendet werden sollen. Das Kryptomodul 101 umfasst spezifische Schlüssel-Identifizierungen (Schlüssel-IDs) der Basisschlüssel eines Nutzers und die dazugehörigen Basisschlüssel, die unverschlüsselt im Speicher 102 des Kryptomoduls 101 abgelegt sind. Anhand der nachfolgenden Figuren werden einzelne funktionale Abläufe näher erläutert. Gemäß einem Ausführungsbeispiel kann vorgesehen sein, dass sich beispielsweise das Endgerät 300 oder das Integrationsmodul 301, welche eine Verschlüsselungs- oder Entschlüsselungsanfrage auslösen können, gegenüber dem angeschlossenen Kryptomodul 101 identifizieren müssen, wobei die entsprechenden Schritte in den nachfolgenden Figuren nicht dargestellt sind. Gemäß Ausführungsbeispielen kann das Kryptomodul 101 zum Schutz vor einer Benutzung durch unberechtigte Personen ein Identifizierungsverfahrens aufweisen, gemäß dem sich ein Benutzer gegenüber dem Kryptomodul 101 durch Eingabe einer PIN (Personal Identification Number) unmittelbar am Modul selbst authentifizieren muss. Erst nach Eingabe der korrekten PIN wird das Kryptomodul 101 seine Funktionalität freischalten. Es kann ferner vorgesehen sein, dass nach mehrmaliger, fehlerhafter Eingabe der PIN die Funktionalität des Kryptomoduls 101 dauerhaft blockiert wird.
  • Anhand der 3 bis 6 wird nachfolgend die Funktionalität des Integrationsmoduls 301 gemäß dem in 2 gezeigten Ausführungsbeispiel näher erläutert. Die anhand der Figuren beschriebene Funktionalität wird z. B. durch den in der 2 gezeigten Signalverarbeitungsprozessor 301.1 bereitgestellt. In den nachfolgenden Figuren dargestellten Diagrammen werden folgende Bezeichnungen verwendet:
  • m
    unverschlüsselte Daten
    M
    verschlüsselte Daten
    ki
    Schlüssel, mit dem die Daten m verschlüsselt werden
    j
    Schlüssel-ID des Schlüssels ki
    K
    verschlüsselter Schlüssel ki
    ki
    Basisschlüssel, mit dem der Schlüssel ki verschlüsselt ist
    j
    Basisschlüssel-ID des Schlüssels kj
    I, J
    Mengen von Indizes von Schlüsseln in einer Schlüsselanfrage, wobei ein Schlüssel aus der Menge der Schlüssel-IDs „I” mit einem der Schlüssel aus der Menge der Schlüssel-IDs „J” verschlüsselt ist,
    D
    ein beliebiges Datenpaket.
  • 3 zeigt ein Diagramm der im Integrationsmodul 301 im Falle einer Datenverschlüsselung anfallenden Schritte, die z. B. durch den Signalverarbeitungsprozessor 301.1 durchgeführt werden. In einem ersten Schritt S300 empfängt das Integrationsmodul 301 von dem Endgerät 300, genauer gesagt über die Benutzerschnittstelle 302 und die Nachricht 301.3 die zur Verschlüsselung vorgesehenen Daten m. Das Integrationsmodul 301 bestimmt im Schritt S302 die Schlüssel-ID i des für die Verschlüsselung vorgesehenen Schlüssels ki. Im Schritt S304 generiert das Integrationsmodul 301 eine Verschlüsselungsanfrage für die Daten m unter Verwendung des Schlüssels ki mit der Schlüssel-ID i. Die im Schritt S304 erzeugte Verschlüsselungsanfrage wird im Schritt S306 über die Schnittstelle 301.4 ausgegeben, beispielsweise über die in 2 bei 502.1 schematisch dargestellte Nachricht. Das Integrationsmodul 301 empfängt im Schritt S308, nach erfolgreicher Verschlüsselung durch das System, die Verschlüsselungsantwort, beispielsweise über die in 2 schematisch dargestellte Nachricht 502.2. Die Verschlüsselungsnachricht enthält zusätzlich zu den nun verschlüsselten Daten M auch die Schlüssel-ID i des für die Verschlüsselung der Daten m herangezogenen Schlüssels ki. Nachfolgend zum Empfang der Verschlüsselungsantwort bewirkt das Integrationsmodul 301 im Schritt S310 das Übergeben der Verschlüsselungsantwort an das Gerät 300 zum Versenden an den Empfänger der verschlüsselten Daten, beispielsweise einen Empfänger, der in der externen Umgebung 400 angeordnet ist, über eine Nachricht, die in 2 schematisch bei 501.2 gezeigt ist.
  • Anhand der 4 werden die im Integrationsmodul 301 durchgeführten Schritte im Zusammenhang mit einer Datenentschlüsselung für eine Anzeige der entschlüsselten Daten auf der Benutzerschnittstelle 302 des Endgeräts 300 erläutert. Beim Schritt S400 empfängt das Integrationsmodul 301 von einem Sender in der externen Umgebung 400, beispielsweise über eine Nachricht 501.1, verschlüsselte Daten M und die Schlüssel-ID i für den zur Entschlüsselung der verschlüsselten Daten zu verwendenden Schlüssel ki. Im Schritt S402 generiert das Integrationsmodul 301 eine Entschlüsselungsanfrage, welche die verschlüsselten Daten M und die Schlüssel-ID i enthält. Die so generierte Entschlüsselungsanforderung wird im Schritt S404 von dem Integrationsmodul über dessen Schnittstelle 301.4, beispielsweise im Rahmen einer Nachricht 502.1, in Richtung des Kryptomoduls ausgegeben. Nach erfolgter Entschlüsselung empfängt das Integrationsmodul 301 im Schritt S406 eine Entschlüsselungsantwort, welche neben den entschlüsselten Daten m auch die Schlüssel-ID i des für die Verschlüsselung herangezogenen Schlüssels ki aufweist. Die Entschlüsselungsantwort wird beispielsweise über die Nachricht 502.2 am Integrationsmodul 301 empfangen, welches die in der Entschlüsselungsantwort enthaltenen, entschlüsselten Daten m im Schritt S408 unter Verwendung einer Nachricht 301.2 an die Benutzerschnittstelle 302 sendet.
  • Neben der oben, anhand der 3 und 4 beschriebenen Funktionalität des Integrationsmoduls 301 bei der Datenverschlüsselung und bei der Datenentschlüsselung, ist das Integrationsmodul 301 auch bei Schlüsselanfragen aktiv, was nachfolgend anhand der 5 und 6 näher erläutert wird. 5 beschreibt Ablaufdiagramme betreffend die Anfrage nach einem Schlüssel an das System, z. B. durch einen Sender in der externen Umgebung 400 (5(a)), sowie betreffend die Antwort des Systems an den Sender (siehe 5(b)). In 5(a) ist die Situation dargestellt, in der ein Sender in der externen Umgebung 400 eine Schlüsselanfrage an das System gemäß 2 richtet, die beim Schritt S500 durch das Integrationsmodul 301, beispielsweise über die Nachricht 501.1, von dem Sender empfangen wird. Die Schlüsselanforderung enthält die Parameter I und J, welche jeweils eine bestimmte Anzahl/Menge von möglichen Schlüssel-IDs für die Schlüssel ki und ki enthalten. Die durch das Integrationsmodul 301 empfangene Schlüsselanfrage wird im Schritt S502 von dem Integrationsmodul 301 in Richtung des Kommunikationsmoduls 201 weitergeleitet. Das Integrationsmodul 301 dient lediglich zum Weiterleiten der Anfrage und ist nicht in eine weitergehende Verarbeitung der Anfrage eingebunden. Ansprechend auf die Schlüsselanfrage, die an das System weitergeleitet wurde, empfängt das Integrationsmodul 301 im Schritt S504 (siehe 5(b)) eine Schlüsselantwort, welche zum einen den verschlüsselten Schlüssel K enthält, der basierend auf den Schlüsseln ki und kj (identifiziert über die Schlüssel-IDs i und j, die ebenfalls in der Antwort enthalten sind) erzeugt wurde. Die Schlüsselantwort wird beispielsweise über die Nachricht 502.2, die in 2 dargestellt ist, am Integrationsmodul 301 empfangen. Die so empfangene Antwort, enthaltend den verschlüsselten Schlüssel K und die Schlüssel-IDs i und j wird beispielsweise über die Nachricht 502.2 im Schritt S506 durch das Integrationsmodul 301 an den Empfänger in der externen Umgebung 400 weitergesendet.
  • Anhand der 6 wird die Funktionalität des Integrationsmoduls 301 im Zusammenhang mit der Anfrage durch das System (z. B. durch das Kryptomodul 101) nach einem Schlüssel bei einem Empfänger in der externen Umgebung näher erläutert. Wie in 6(a) dargestellt ist, empfängt das Integrationsmodul 301 beim Schritt S600 eine Schlüsselanforderung, die ähnlich der Schlüsselanforderung im Schritt S500 die Menge an Schlüssel-IDs I und J enthält. Die Schlüsselanforderung wird im Schritt S600 beispielsweise über die Nachricht 502.2 von dem Kommunikationsmodul 201 empfangen. Die empfangene Schlüsselanfrage wird im Schritt S602 durch das Integrationsmodul 301, beispielsweise über die Nachricht 501.2 an den Empfänger in der externen Umgebung 400 weitergeleitet. Der Empfänger in der externen Umgebung 400 erzeugt dann den Schlüssel, der nach dessen Erzeugung in verschlüsselter Form K an das in 2 gezeigte System zurückgegeben wird, was anhand der 6(b) erläutert wird. In 6(b) ist die Situation gezeigt, dass das Integrationsmodul 301 im Schritt S604 eine Schlüsselantwort von dem Empfänger in der externen Umgebung 400 empfängt, die zum einen den verschlüsselten Schlüssel K und die Identifizierungen (Schlüssel-IDs i und j) der Schlüssel ki und kj enthält. Die Schlüsselantwort wird beispielsweise über die Nachricht 501.1 am Gerät 300 bzw. am Integrationsmodul 301 empfangen. Die so empfangene Schlüsselantwort wird im Schritt S604 an das System weitergeleitet, beispielsweise über die Nachricht 502.1 an das Kommunikationsmodul 201.
  • Im Hinblick auf das Integrationsmodul wird darauf hingewiesen, dass dieses gemäß Ausführungsbeispielen vorgesehen sein kann, sofern das Endgerät 300 nicht die erforderliche Funktionalität für eine direkte Kommunikation mit dem Kommunikationsmodul 201 oder für eine direkte Kommunikation mit dem Kryptomodul 101 aufweist. Ferner wird darauf hingewiesen, dass die oben anhand der 4 bis 6 beschriebene Kommunikation mit dem Kommunikationsmodul 201 dann vorgesehen ist, wenn dieses zwischen das Endgerät 300 und das Kryptomodul 101 geschaltet ist. Bei Ausführungsbeispielen, bei denen eine direkte Kommunikation zwischen dem Endgerät 300 bzw. dem Integrationsmodul 301 und dem Kryptomodul 101 möglich ist, kann auf das Kommunikationsmodul 201 verzichtet werden. Mit anderen Worten kann die anhand der 4 bis 6 beschriebene Funktionalität entweder durch das Integrationsmodul 301 bereitgestellt werden oder, bei entsprechender Ausgestaltung des Endgeräts 300, durch das Endgerät selbst und die Kommunikation mit dem Kryptomodul 101 kann entweder direkt mit dem Kryptomodul 101 oder indirekt über das Kommunikationsmodul 201 erfolgen.
  • Nachfolgend wird anhand der 7 bis 15 die Funktionalität des Kommunikationsmoduls 201, welches gemäß Ausführungsbeispielen der Erfindung zwischen das Integrationsmodul 301 und das Kryptomodul 101 geschaltet ist, näher erläutert. Die anhand der Figuren beschriebene Funktionalität wird z. B. durch den in der 2 gezeigten Kommunikationsmodulprozessor 201.1 bereitgestellt.
  • Anhand der 7 wird zunächst die Funktionalität des Kommunikationsmoduls 201 bei der Verschlüsselung von Daten erläutert. 7(a) zeigt die Funktionalität des Kommunikationsmoduls 201 im Zusammenhang mit der Verarbeitung einer Verschlüsselungsanfrage, die im Schritt S700 von dem Integrationsmodul 301 empfangen wird, wobei die Verschlüsselungsanfrage, wie oben bereits erläutert wurde, die zu verschlüsselnden Daten m sowie eine Schlüssel-ID i enthält, über die ein Schlüssel ki identifiziert wird, der zur Verschlüsselung der Daten m einzusetzen ist. Die Verschlüsselungsanforderung kann im Schritt S700 von dem Integrationsmodul 301, beispielsweise über die Nachricht 502.1 (siehe 2), erhalten werden. Die so erhaltene Verschlüsselungsnachricht wird durch Kommunikationsmodul 201 im Schritt S702 ohne weitere Verarbeitung an das Kryptomodul 101 gesendet. Nach erfolgter Verschlüsselung wird, wie in 7(b) gezeigt ist, im Schritt S704 durch das Kommunikationsmodul 201 die Verschlüsselungsantwort von dem Kryptomodul 101 empfangen, wobei der Empfang beispielsweise über die Nachricht 503.2 in 2 erfolgt. Die Verschlüsselungsnachricht enthält, wie oben bereits erläutert, die verschlüsselten Daten M sowie die Schlüssel-ID i. Die empfangene Verschlüsselungsantwort wird im Schritt S706 durch das Kommunikationsmodul 201 an das Integrationsmodul 301, beispielsweise über die Nachricht 502.2, gesendet.
  • Anhand der 8 wird die Funktionalität des Kommunikationsmoduls 201 im Zusammenhang mit der Entschlüsselung von Daten näher erläutert. Wie anhand der 8(a) zu erkennen ist, empfängt das Kommunikationsmodul 201 im Schritt S800 von dem Integrationsmodul 301 eine Entschlüsselungsanforderung, beispielsweise über die Nachricht 502.1. Die Entschlüsselungsnachricht enthält neben den verschlüsselten Daten M auch die Schlüssel-ID i, welche den Schlüssel ki anzeigt, der zur Entschlüsselung der verschlüsselten Daten M zu verwenden ist. Die durch das Integrationsmodul 201 im Schritt S800 empfangene Entschlüsselungsanforderung wird im Schritt S802 über die Nachricht 503.1 an das Kryptomodul 101 gesendet. Nach erfolgter Entschlüsselung empfängt das Kommunikationsmodul, wie es in 8(b) gezeigt ist, im Schritt S804 eine Entschlüsselungsantwort von dem Kryptomodul 301, beispielsweise über die Nachricht 503.2. Die Entschlüsselungsantwort enthält die entschlüsselten Daten m sowie die Schlüssel-ID i. Die so erhaltene Entschlüsselungsantwort wird im Schritt S806 durch das Kommunikationsmodul 201 an das Integrationsmodul 301 gesendet.
  • Gemäß weiteren Ausführungsbeispielen ist das Kommunikationsmodul vorgesehen, um Anfragen nach Schlüsseln zu verarbeiten, wie es nun anhand der 9 bis 13 erläutert wird.
  • 9 zeigt ein Ausführungsbeispiel, bei dem das Kommunikationsmodul 201 im Zusammenhang mit einer Anfrage nach einem Schlüssel durch die externe Umgebung 400 aktiv ist. In Schritt S900 empfängt das Kommunikationsmodul 201 von dem Integrationsmodul 301 (siehe 5(a)) eine Schlüsselanfrage, die eine Menge von Schlüssel-IDs I und J enthält, beispielsweise über die Nachricht 502.1. Im Schritt S902 überprüft das Kommunikationsmodul 201, ob ein verschlüsselter Schlüssel K, dem eine Schlüssel-ID i zugeordnet ist, die Teil der Menge von Schlüssel-IDs I ist, verschlüsselt in dem Speicher 202 vorliegt, wobei der verschlüsselte Schlüssel K mit einem Schlüssel mit einer Schlüssel-ID j aus der Menge der Schlüssel-IDs J verschlüsselt wurde. An dieser Stelle sei darauf hingewiesen, dass der Schlüssel zur Verschlüsselung des Schlüssels K, der Schlüssel kj, nicht in der Datenbank 202 des Kommunikationsmoduls abgelegt sein muss, vielmehr handelt es sich hierbei um einen der oben erwähnten Schlüssel, der gemäß Ausführungsbeispielen ausschließlich im Kryptomodul, genauer gesagt in dessen Speicher 102, abgelegt sein kann. Wird beim Schritt S902 festgestellt, dass ein solcher Schlüssel K in der Datenbank 202 des Kommunikationsmoduls 201 vorliegt, so wird eine Schlüsselantwort im Schritt S904 erzeugt, welche den Schlüssel K (in verschlüsselter Form) und die Schlüssel-IDs i, j enthält. Die Schlüsselantwort wird über die Nachricht 502.2 an das Integrationsmodul 301 ausgegeben (siehe 5(b)). Wird im Schritt S902 festgestellt, dass kein verschlüsselter Schlüssel K entsprechend der Schlüsselanfrage in der Datenbank 202 des Kommunikationsmoduls 201 vorliegt, so wird die Schlüsselanfrage, die im Schritt S900 empfangen wurde, im Schritt S906 durch das Kommunikationsmodul 201 beispielsweise über die Nachricht 503.1, an das Kryptomodul 101 weitergeleitet, welches dann, wie später noch beschrieben wird, die Generierung des Schlüssels bewirkt.
  • Anhand der 10 wird ein Beispiel der Funktionalität des Kommunikationsmoduls 201 im Zusammenhang mit einer Anfrage des in 2 gezeigten Systems an die externe Umgebung 400 nach einem Schlüssel näher erläutert. Im Schritt S1000 empfängt das Kommunikationsmodul 201 von dem Kryptomodul 101 eine Schlüsselanfrage, beispielsweise über die Nachricht 503.2. Ähnlich wie in 9 enthält auch in 10 die Schlüsselanfrage eine Menge I, J von Schlüssel-IDs für den Schlüssel. Im Schritt S1002 erfolgt, ähnlich wie im Schritt S902, eine Überprüfung, inwieweit ein der Schlüsselanfrage entsprechender, verschlüsselter Schlüssel K in der Datenbank 202 des Kommunikationsmoduls 201 vorhanden ist. Ist ein solcher Schlüssel in der Datenbank 202 vorhanden, so wird im Schritt S1004 eine Schlüsselantwort erzeugt, die zum einen den verschlüsselten Schlüssel K und zum anderen die zugeordneten Schlüssel-IDs i und j, ähnlich wie im Schritt S904, enthält. Die Schlüsselantwort wird im Schritt S1004 über die Nachricht 503.1 an das Kryptomodul 101 gesendet. Enthält die Datenbank 202 keinen Schlüssel, so wird im Schritt S1006 die im Schritt S1000 empfangene Schlüsselanfrage, beispielsweise über die Nachricht 502.2, an das Integrationsmodul 301 weitergeleitet (siehe 6(a)), und von dort, wie oben beschrieben, an die externe Umgebung 400, die dann, wenn ein entsprechender Schlüssel dort vorliegt, den erwünschten Schlüssel in verschlüsselter Form an das System in 2 zurückgibt (siehe 6(b)).
  • Anstelle der gerade anhand der 10 beschriebenen Anfrage nach einem Schlüssel aus der externen Umgebung kann gemäß Ausführungsbeispielen auch vorgesehen sein, dass das Kryptomodul eine interne Schlüsselbestimmung durchführt (siehe die spätere Beschreibung), gemäß der keine Anfrage an die externe Umgebung gerichtet wird, sondern lediglich eine Anfrage an das Kommunikationsmodul. 11 zeigt ein Ablaufdiagramm, für eine sogenannte modulinterne Schlüsselanfrage, nämlich eine Anfrage des Kryptomoduls 101 beim Kommunikationsmodul 202 nach einem bestimmten Schlüssel. Wie in 11 gezeigt ist, empfängt das Kryptomodul 201 im Schritt S1100 eine Schlüsselanfrage, beispielsweise über die Nachricht 503.2 von dem Kryptomodul 101. Die Schlüsselanfrage enthält, ähnlich wie die in den Schritten S900 und S1000 enthaltenen Schlüsselanfragen, die Menge an Schlüssel-IDs I und J. Im Schritt S1102 wird überprüft, ob ein verschlüsselter Schlüssel K in der Datenbank 202 des Kommunikationsmoduls 201 vorliegt, wobei die Überprüfung entsprechend dem durchgeführt wird, was oben bereits anhand der 9 und 10 in den Schritten S902 und S1002 beschrieben wurde. Wird festgestellt, dass ein verschlüsselter Schlüssel K in der Datenbank 202 des Kommunikationsmoduls 201 vorliegt, so wird im Schritt S1104 eine Schlüsselantwort enthaltend den Schlüssel K und die Schlüssel-IDs i und j erzeugt und über die Nachricht 503.1 an das Kryptomodul 101 zurückgegeben. Wird jedoch im Schritt S1102 festgestellt, dass kein verschlüsselter Schlüssel K in der Datenbank 202 vorliegt, so wird im Schritt S1106 Schlüsselanforderungsfehler (Key-Request-Error), beispielsweise über die Nachricht 503.1, an das Kryptomodul 101 ausgegeben, welches dann, wie später noch näher beschrieben wird, ansprechend auf eine solche Fehlermeldung einen neuen Schlüssel generiert.
  • 12 zeigt die Funktionalität des Kommunikationsmoduls 201 im Falle der Weiterleitung einer Antwort von dem externen System 400 auf eine Anfrage nach einem Schlüssel durch das Kryptomodul 101. Im Schritt S1200 empfängt das Kommunikationsmodul 201 von dem Integrationsmodul 301 die Schlüsselantwort über die Nachricht 502.1 (siehe 6(b)), wobei die Schlüsselantwort den verschlüsselten Schlüssel K sowie die Schlüssel-IDs i und j enthält, die von dem externen System 400 empfangen wurden. Im Schritt S1202 speichert das Kommunikationsmodul 201 die empfangene Schlüsselantwort in der Datenbank 202, und im Schritt S1204 wir die empfangene Schlüsselantwort ferner über die Nachricht 503.1 an das Kryptomodul 101 weitergegeben.
  • 13 zeigt die Funktionsabläufe innerhalb des Kommunikationsmoduls 201 für eine Situation, in der durch das Kryptomodul 101 eine Antwort auf eine Anfrage nach einem Schlüssel, die von der externen Umgebung 400 stammt, bereitgestellt wird. Im Schritt S1300 empfängt das Kommunikationsmodul 201 über die Nachricht 503.2 die Schlüsselantwort von dem Kryptomodul 101, wobei die Schlüsselantwort, ähnlich wie die im Schritt S1200 empfangene Antwort, den verschlüsselten Schlüssel K sowie die Schlüssel-IDs i und j enthält. Im Schritt S1302 wird die empfangene Schlüsselantwort in der Datenbank 202 des Kommunikationsmoduls 201 abgelegt, und im Schritt S1304 wird die Schlüsselantwort zur Ausgabe an die externe Umgebung 400 an das Integrationsmodul 301 weitergegeben (siehe 6(b)).
  • Neben den anhand der 9 bis 13 beschriebenen Funktionsweisen kann das Kommunikationsmodul 201 weitere Funktionalitäten aufweisen, insbesondere weitere Funktionalitäten, um ansprechend auf Anweisungen Daten in der Datenbank 202 des Kommunikationsmoduls 201 zu speichern, nämlich einen verschlüsselten Schlüssel, wie es anhand der 14 beschrieben wird, oder Daten, wie es anhand der 15 beschrieben wird. Genauer gesagt wird in 14 die Funktionalität beschrieben, bei der das Kommunikationsmodul 201 von dem Kryptomodul 101 im Schritt S1400 über die Nachricht 503.2 die Nachricht „speichere Schlüssel” (speichere-key) empfängt, welche den verschlüsselten Schlüssel K sowie die Schlüssel-IDs i und j enthält. Die so empfangene Information wird im Schritt S1402 in der Datenbank 202 des Kommunikationsmoduls 201 abgelegt. Auf ähnliche Weise arbeitet das Kommunikationsmodul 201 im Falle der Speicherung von Daten in dessen Datenbank 202. In 15 ist die Situation dargestellt, dass das Kryptomodul 101 eine Speichere-Daten-Nachricht über die Nachricht 503.2 an das Kommunikationsmodul 201 sendet, welche dort im Schritt S1500 empfangen wird. Die so empfangene Nachricht enthält die Daten D, und im Schritt S1502 wird der in der Nachricht 502.2 enthaltende Datensatz D in der Datenbank 202 abgelegt.
  • Nachfolgend wird anhand der 16 bis 21 die Funktionalität des erfindungsgemäßen Kryptomoduls näher erläutert. Die anhand der Figuren beschriebene Funktionalität wird z. B. durch den in der 2 gezeigten Kryptoprozessor 101.1 bereitgestellt. An dieser Stelle sei darauf hingewiesen, dass die nachfolgende Beschreibung der Funktionalität des Kryptomoduls im Zusammenhang mit dem in 2 gezeigten System erfolgt, also ein System, welches zusätzlich zu dem Kryptomodul das optionale Integrationsmodul und das optionale Kommunikationsmodul aufweist. Wie oben bereits erwähnt, kann gemäß anderen Ausführungsbeispielen eine Kommunikation des Kryptomoduls auch direkt mit dem Endgerät 300 oder direkt mit einem Endgerät 300, welches das Integrationsmodul 301 aufweist, ohne Zwischenschaltung des Kommunikationsmoduls 201, erfolgen.
  • Anhand der 16 wird die Funktionalität des Kryptomoduls 101 im Zusammenhang mit der Verarbeitung einer Verschlüsselungsanforderung näher erläutert. Im Schritt S1600 empfängt das Kryptomodul 101 von dem Kommunikationsmodul 201 die Verschlüsselungsanforderung, welche die zu verschlüsselnden Daten m sowie die Schlüssel-ID i, welche den zur Verschlüsselung heranzuziehenden Schlüssel ki angibt, enthält. Die Verschlüsselungsanforderung wird im Schritt S1600 beispielsweise über die Schnittstelle 101.4 des Kryptomoduls 101 über die Nachricht 503.1 empfangen. Im Schritt S1602 wird bestimmt, inwieweit die Datenbank 102 des Kryptomoduls 101 den der Schlüssel-ID i zugeordneten Schlüssel ki aufweist. Enthält die Datenbank 102 den Schlüssel ki, so wird im Schritt S1604 eine Verschlüsselung der Daten m mit dem in der Datenbank 102 vorliegenden Schlüssel ki durchgeführt, und eine entsprechende Verschlüsselungsantwort wird generiert. Im Schritt S1606 wird die im Schritt S1604 generierte Verschlüsselungsantwort, welche die nunmehr verschlüsselten Daten M und die Schlüssel-ID i enthält, an das Kommunikationsmodul 201 gesendet, beispielsweise über die Nachricht 303.2 (siehe 7(a)).
  • Wird im Schritt S1602 festgestellt, dass der Schlüssel i, d. h. „ki” nicht in der Datenbank 102 enthalten ist, so wird im Schritt S1608 durch das Kryptomodul 101 bestimmt, inwieweit der Schlüssel i, d. h. „ki” in dem Kryptomodul 101 generiert werden soll oder nicht. Wird festgestellt, dass der Schlüssel intern innerhalb des Kryptomoduls 101 erzeugt werden soll, so wird im Schritt S1610 eine interne Schlüsselbestimmung durchgeführt, die nachfolgend noch näher erläutert wird. Wird festgestellt, dass der Schlüssel nicht innerhalb des Kryptomoduls generiert werden soll, so wird im Schritt S1612 eine externe Schlüsselbestimmung bewirkt, wie dies nachfolgend ebenfalls näher erläutert wird. Sowohl die interne als auch die externe Schlüsselbestimmung im Schritt S1610 und im Schritt S1612 ergeben einen Schlüssel ki mit zugeordneter Schlüssel-ID i, die beide im Schritt S1614 in der Datenbank 102 des Kryptomodul 101 abgelegt werden. Der in der Datenbank 102 abgelegte Schlüssel ki wird im Schritt S1616 mit jedem Basisschlüssel (Schlüssel mit den Identifizierungen j aus der Menge J), die in der Datenbank 102 abgelegt sind, verschlüsselt und ferner wird eine Speicherschlüssel-Nachricht erzeugt, die über die Nachricht 503.2 an das Kommunikationsmodul gesendet wird, um den verschlüsselten Schlüssel K in der Datenbank 202 des Kommunikationsmoduls 201 zu speichern (siehe 14). Die Mitteilung „speichere Schlüssel” enthält den verschlüsselten Schlüssel K sowie die Schlüssel-IDs i, j, welche den unverschlüsselten Schlüssel ki sowie den Schlüssel kj, der zur Verschlüsselung des Schlüssels ki herangezogen wurde, angeben. Der in den Schritten S1610 bis S1616 generierte Schlüssel ki wird im Schritt S1604 zur Verschlüsselung der unverschlüsselten Daten m und zur Erzeugung der Verschlüsselungsantwort herangezogen.
  • Anhand der 17 wird nachfolgend die Funktionalität des Kryptomoduls 101 im Zusammenhang mit der Verarbeitung einer Entschlüsselungsanforderung näher erläutert. Im Schritt S1700 empfängt das Kryptomodul 101 von dem Kommunikationsmodul 201 die Entschlüsselungsanforderung, beispielsweise über die Nachricht 503.1 in 2 (siehe 7(b)). Die Entschlüsselungsanforderung enthält die verschlüsselten Daten M sowie die Schlüssel-ID i, welche den Schlüssel anzeigt, mit dem die Daten M verschlüsselt wurden. Im Schritt S1702 wird bestimmt, ob der Schlüssel ki, dem die Schlüssel-ID i zugeordnet ist, in der Datenbank 102 des Kryptomoduls 101 enthalten ist. Falls der Schlüssel ki in der Datenbank 102 enthalten ist, wird im Schritt S1704 eine Entschlüsselung der verschlüsselten Daten M unter Verwendung des Schlüssels ki durchgeführt, und eine Entschlüsselungsantwort generiert, die im Schritt S1706 über die Nachricht 503.2 an das Kommunikationsmodul 201 zur Weitergabe an das Integrationsmodul 101 ausgegeben wird. Die Entschlüsselungsnachricht enthält die entschlüsselten Daten m sowie die Schlüssel-ID i. Wird im Schritt S1702 festgestellt, dass der Schlüssel ki nicht in der Datenbank 102 des Kryptomoduls enthalten ist, wird der Schlüssel entweder intern oder extern bestimmt, gespeichert, und in verschlüsselter Form an das Kommunikationsmodul 201 weitergegeben, wie dies anhand der Schritte S1708 bis S1716 dargelegt ist, die den Schritten 1608 bis 1616 aus 16 entsprechen, und die nicht erneut beschrieben werden.
  • Anhand der 18 wird nachfolgend ein Beispiel für die Funktionsabläufe innerhalb des Kryptomoduls 101 zur internen Schlüsselbestimmung (siehe Schritte S1610 in 16 und S1710 in 17) beschrieben. Ausgehend von den gerade genannten Schritten S1610 bzw. S1710 wird in einem ersten Schritt S1800 durch das Kryptomodul 101, beispielsweise durch den Kryptoprozessor 101.1, die Menge der Schlüssel-IDs J aller Schlüssel in der Datenbank 102 des Kryptomoduls 101 bestimmt. Im Schritt S1802 generiert das Kryptomodul 101 eine Schlüsselanfrage für die Schlüssel-IDs I, J, die im Schritt S1804, beispielsweise über die Nachricht 503.2, an das Kommunikationsmodul 201 gesendet wird, wobei das Kommunikationsmodul 201 entsprechend der Funktionalität, die anhand der 11 beschrieben wurde, eine Antwort auf die Anfrage erzeugt, die durch das Kryptomodul im Schritt S1806 empfangen wird. Genauer gesagt, wird beim Schritt S1806 entweder eine Schlüsselantwort enthaltend den verschlüsselten Schlüssel K, die die durch den Schritt S1104 in 11 erzeugt wird, oder die Fehlernachricht, die durch den Schritt S1106 in 11 erzeugt wird, am Kryptomodul 101 empfangen. Im Schritt S1810 wird bestimmt, ob die empfangene Nachricht eine Fehlernachricht war. Ist die empfangene Nachricht keine Fehlernachricht, so wird im Schritt S1812 der empfangene Schlüssel K unter Verwendung eines Schlüssels, der durch die Schlüssel-ID j aus der empfangenen Schlüsselantwort bestimmt ist, entschlüsselt und der so entschlüsselte Schlüssel ki wird im Schritt S1614 bzw. S1714 (in 16 bzw. 17) verwendet. Wurde im Schritt S1806 eine Fehlernachricht empfangen, so geht das Verfahren vom Schritt S1808 zum Schritt S1812, in dem das Kryptomodul, beispielsweise mittels des Kryptoprozessors, einen neuen Schlüssel ki erzeugt, und diesem die Schlüssel-ID i zuordnet. Der so erzeugte Schlüssel wird dann ebenfalls an die Schritte S1614 bzw. S1714 bereitgestellt.
  • 19 beschreibt die Funktionalität innerhalb des Kryptomoduls 101 im Zusammenhang mit einer externen Schlüsselbestimmung. Im Falle einer externen Schlüsselbestimmung bestimmt das Kryptomodul 101 im Schritt S1900, ähnlich wie im Schritt S1800 die Menge der Schlüssel-IDs J der Schlüssel, nämlich aller Schlüssel, die in der Datenbank 102 des Kryptomoduls 101 gespeichert sind. Im Schritt S1902 wird, ähnlich wie im Schritt S1802, eine Schlüsselanfrage erzeugt, die im Schritt S1904 an das Kommunikationsmodul, beispielsweise über die Nachricht 103.2 ausgegeben wird, und dort beispielsweise entsprechend der anhand der 10 beschriebenen Funktionalität verarbeitet wird. Im Schritt S1906 empfängt das Kryptomodul 101 von dem Kommunikationsmodul 201 den verschlüsselten Schlüssel K, der entweder in der Datenbank 202 des Kommunikationsmoduls 201 enthalten war, oder von der externen Umgebung erhalten wurde, wobei neben dem Schlüssel K auch die Schlüssel-IDs i und j über die Nachricht 103.1 empfangen werden. Basierend auf den empfangenen Daten wird im Schritt S1908 der Schlüssel K mit dem Schlüssel, der der Schlüssel-ID j aus der Datenbank 102 zugeordnet ist, entschlüsselt, und der entschlüsselte Schlüssel ki wird an den Schritt S1614 bzw. S1714 bereitgestellt.
  • Anhand der 20 und 21 wird nachfolgend die Funktionalität des Kryptomoduls im Zusammenhang mit der Abarbeitung einer Schlüsselanfrage bzw. dem Bereitstellen eines verschlüsselten Schlüssels an das Kommunikationsmodul 201 näher erläutert. Im Schritt S2000 wird durch das Kryptomodul 101 eine Schlüsselanfrage von dem Kommunikationsmodul 201 empfangen (siehe die anhand der 6(a) und 9 beschriebene Funktionalität des Integrationsmoduls bzw. des Kommunikationsmoduls). Die Schlüsselanfrage enthält eine Anfrage nach einem Schlüssel, der durch die Mengen von Schlüssel-IDs I und J definiert ist, wobei die Anfrage über die Nachricht 103.1 am Kryptomodul empfangen werden kann. Im Schritt S2002 wird bestimmt, inwieweit ein Schlüssel ki, der der Schlüssel-ID i aus der Menge I zugeordnet ist, in der Datenbank 202 des Kryptomoduls 101 enthalten ist. Ist dies der Fall, so geht das Verfahren zum Schritt S2004, wo ein zweiter Teil zur Abarbeitung der Schlüsselanfrage durchgeführt wird, der nachfolgend anhand der 21 erläutert wird. Wird im Schritt S2002 festgestellt, dass der Schlüssel ki nicht in der Datenbank 102 existiert, so wird in den nachfolgenden Schritten ein Schlüssel ki intern oder extern bestimmt, in der Datenbank 102 abgelegt und verschlüsselt, wobei der verschlüsselte Schlüssel dann auch an das Kommunikationsmodul 201 zum Speichern in dessen Datenbank weitergeleitet wird. Die diesbezüglichen Schritte S2008 bis S2016 entsprechen den anhand der Schritte S1608 bis S1616 bzw. S1708 bis S1716 beschriebenen Schritte in 16 und 17, und die Verfahren zur internen bzw. externen Schlüsselbestimmung in den Schritten S2010 und S2012 entsprechen den anhand der 18 und 19 beschriebenen Schritten, so dass auf eine erneute Beschreibung verzichtet wird. Im Schritt S2004 wird dann der entweder in der Datenbank enthaltende Schlüssel ki oder der neu generierte ki, der durch den Schritt S2016 bereitgestellt wird, verwendet.
  • Anhand der 21 wird die Funktionalität des Kryptomoduls im Zusammenhang mit dem zweiten Teil der Abarbeitung der Schlüsselanfrage erläutert. Der zweite Teil der Schlüsselanfrage betrifft die Feststellung, inwieweit ein Schlüssel zum Verschlüsseln des ersten Schlüssels verfügbar ist, nämlich ein Schlüssel kj, der durch die Schlüssel-ID j (aus der Menge von IDs J) identifiziert ist. Im Schritt S2100 wird zunächst bestimmt, ob ein Schlüssel ki in der Datenbank 102 des Kryptomoduls 101 enthalten ist. Ist dies der Fall, geht das Verfahren zum Schritt S2102, in dem der aus dem Schritt S2004 bekannte Schlüssel ki mit dem Schlüssel kj verschlüsselt wird, was den verschlüsselten Schlüssel K ergibt, der dann an den Schritt S2004 zurückgegeben wird. Wird im Schritt S2100 allerdings festgestellt, dass der Schlüssel ki nicht in der Datenbank vorliegt, so wird durch die Schritte S2108 bis S2116 ein neuer Schlüssel kj entweder intern und extern bestimmt, und verschlüsselt, wobei der verschlüsselte Schlüssel Ki an das Kommunikationsmodul 201 zur Speicherung in dessen Datenbank 202 ausgegeben wird. Die Schritte S2108 bis S2116 entsprechen den anhand der 16 und 17 beschriebenen Schritten S1608 bis S1616 bzw. S1708 bis S1716, mit Ausnahme der Tatsache, dass anstelle des Schlüssels ki nun der Schlüssel kj bestimmt wird; die Funktionalität ist dieselbe, und daher wird auch die oben beschriebene Vorgehensweise anhand der 16, 17, 18 und 19 hinsichtlich der Funktionalität der Schritte S2108 bis S2116 verwiesen.
  • Die oben beschriebenen Ausführungsbeispiele sind eine möglichen Implementierung von Regeln im Zusammenhang mit einem zentralen Schlüsselmanagementsystem, welches gewährleistet, dass Schlüssel immer nur verschlüsselt außerhalb des in Hardware realisierten Kryptomoduls vorkommen, und dass eine entsprechende Verschlüsselung des Schlüssels ki nur mit solchen Schlüsseln ki durchgeführt wird, aus denen sich die Berechtigung ableiten lässt, dass ein Zugriff auf die Daten gestattet ist. Diese Regeln werden insbesondere in den oben beschriebenen Abschnitten der Funktionsweise des Kryptomoduls, bei dem die Funktion „speichere Schlüssel” zum Speichern des Schlüssels in dem Kommunikationsmodul abgerufen werden, berücksichtigt. Ebenso werden diese Regeln, wie oben erläutert, auch bei der Implementierung der Schlüsselanfrage auf Seiten des Kryptomoduls berücksichtigt, und eine Schlüsselanfrage, welche gegen diese Regeln verstößt, wird, gemäß den Ausführungsbeispielen der Erfindung, nicht mit der dazugehörigen Schlüsselantwort beantwortet.
  • Obwohl manche Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, sodass ein Block oder ein Bauelement einer Vorrichtung auch als ein entsprechender Verfahrensschritt oder als ein Merkmal eines Verfahrensschrittes zu verstehen ist. Analog dazu stellen Aspekte, die im Zusammenhang mit einem oder als ein Verfahrensschritt beschrieben wurden, auch eine Beschreibung eines entsprechenden Blocks oder Details oder Merkmals einer entsprechenden Vorrichtung dar.
  • Je nach bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer Blu-ray Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, einer Festplatte oder eines anderen magnetischen oder optischen Speichers durchgeführt werden, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird. Deshalb kann das digitale Speichermedium computerlesbar sein. Manche Ausführungsbeispiele gemäß der Erfindung umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird.
  • Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode dahin gehend wirksam ist, eines der Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einem Computer abläuft. Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein.
  • Andere Ausführungsbeispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, wobei das Computerprogramm auf einem maschinenlesbaren Träger gespeichert ist.
  • Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren aufweist, wenn das Computerprogramm auf einem Computer abläuft. Ein weiteres Ausführungsbeispiel der erfindungsgemäßen Verfahren ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist.
  • Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist somit ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom oder die Sequenz von Signalen kann bzw. können beispielsweise dahin gehend konfiguriert sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, transferiert zu werden.
  • Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelement, die dahin gehend konfiguriert oder angepasst ist, eines der hierin beschriebenen Verfahren durchzuführen.
  • Ein weiteres Ausführungsbeispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren installiert ist.
  • Bei manchen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray, ein FPGA) dazu verwendet werden, manche oder alle Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei manchen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren bei einigen Ausführungsbeispielen seitens einer beliebigen Hardwarevorrichtung durchgeführt. Diese kann eine universell einsetzbare Hardware wie ein Computerprozessor (CPU) sein oder für das Verfahren spezifische Hardware, wie beispielsweise ein ASIC.
  • Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.

Claims (23)

  1. Hardware-Kryptomodul (101) zum Verschlüsseln oder Entschlüsseln von Daten (m, M) von einem Gerät (300, 400), das hardwaretechnisch entfernt und getrennt von dem Kryptomodul (101) angeordnet ist, wobei das Kryptomodul (101) folgende Merkmale aufweist: eine Schnittstelle (101.4) zur Kommunikation mit dem entfernt angeordneten Gerät (300, 400), einen Speicher (102), einen Kryptoprozessor (101.1), der konfiguriert ist, um über die Schnittstelle (101.4) empfangene Daten (m, M) unter Verwendung eines ersten Schlüssel (ki) zu verschlüsseln oder zu entschlüsseln, den ersten Schlüssel (ki) unter Verwendung eines in dem Speicher (102) abgelegten zweiten Schlüssel (kj) zu verschlüsseln, und den ersten Schlüssel (ki) ausschließlich in verschlüsselter Form (K) über die Schnittstelle (101.4) auszugeben.
  2. Kryptomodul (101) nach Anspruch 1, bei dem der Kryptoprozessor (101.1), ansprechend auf den Empfang von zu verschlüsselnden Daten (m) und einer ersten Schlüssel-ID (i) des ersten Schlüssels (ki) über die Schnittstelle (101.4), konfiguriert ist, um basierend auf der empfangenen ersten Schlüssel-ID (i) zu bestimmen, ob der erste Schlüssel (ki) in dem Speicher (102) enthalten ist, falls der erste Schlüssel (ki) in dem Speicher (102) enthalten ist, die zu verschlüsselnden Daten (m) mit dem ersten Schlüssel (ki) zu verschlüsseln, und die verschlüsselten Daten (M) und die erste Schlüssel-ID (i) des ersten Schlüssels (ki) über die Schnittstelle (104.4) auszugeben, und falls der erste Schlüssel (ki) nicht in dem Speicher (102) enthalten ist, den ersten Schlüssel (ki) zu generieren.
  3. Kryptomodul (101) nach Anspruch 1 oder 2, bei dem der Kryptoprozessor (101.1), ansprechend auf den Empfang von zu entschlüsselnden Daten (M) und einer ersten Schlüssel-ID (i) des ersten Schlüssels (ki) über die Schnittstelle (101.4), konfiguriert ist, um basierend auf der empfangenen ersten Schlüssel-ID (i) zu bestimmen, ob der erste Schlüssel (ki) in dem Speicher (102) enthalten ist, falls der erste Schlüssel (ki) in dem Speicher (102) enthalten ist, die zu entschlüsselnden Daten (M) mit dem ersten Schlüssel (ki) zu entschlüsseln, und die entschlüsselten Daten (m) und die erste Schlüssel-ID (i) des ersten Schlüssel (ki) über die Schnittstelle (101.4) auszugeben, und falls der erste Schlüssel (ki) nicht in dem Speicher (102) enthalten ist, den ersten Schlüssel (ki) zu generieren.
  4. Kryptomodul (101) nach einem der Ansprüche 1 bis 3, bei dem der Kryptoprozessor (101.1), ansprechend auf den Empfang einer Anfrage nach einem ersten Schlüssel, konfiguriert ist, um basierend auf einer ersten Schlüssel-ID (i) des ersten Schlüssels (ki) und basierend auf einer zweiten Schlüssel-ID (j) des zweiten Schlüssel (ki), die in der Anfrage enthalten sind, zu bestimmen, ob der erste Schlüssel (ki) und der zweite Schlüssel (kj) in dem Speicher (102) enthalten sind, falls beide Schlüssel (ki, kj) in dem Speicher enthalten sind, den ersten Schlüssel (ki) mit dem zweiten Schlüssel (kj) zu verschlüsseln und den verschlüsselten ersten Schlüssel (K), die erste Schlüssel-ID (i) und die zweite Schlüssel-ID (j) über die Schnittstelle (101.4) auszugeben, und falls einer oder beide Schlüssel (ki, kj) nicht in dem Speicher (102) enthalten sind, den ersten und/oder zweiten Schlüssel (ki, kj) zu generieren, den ersten Schlüssel (ki) mit dem zweiten Schlüssel (kj) zu verschlüsseln, und den verschlüsselten ersten Schlüssel (K), die erste Schlüssel-ID (i) und die zweite Schlüssel-ID (j) über die Schnittstelle (101.4) auszugeben.
  5. Kryptomodul (101) nach einem der Ansprüche 2 bis 4, bei der der Kryptoprozessor (101.1) zum Generieren des ersten Schlüssels (ki) konfiguriert ist, um basierend auf der ersten Schlüssel-ID (i) und der zweiten Schlüssel-ID (j) eine Anfrage bezüglich des ersten Schlüssels zu erzeugen und über die Schnittstelle (101.4) auszugeben, ansprechend auf den Empfang des verschlüsselten ersten Schlüssels (K), der dem ersten Schlüssel (ki) zugeordneten ersten Schlüssel-ID (i) und der dem zweiten Schlüssel (kj) zugeordneten zweiten Schlüssel-ID (j), den verschlüsselten ersten Schlüssel (K) basierend auf dem durch die zweite Schlüssel-ID (j) angegebenen zweiten Schlüssel (kj) zu entschlüsseln, und ansprechend auf den Empfang einer Fehlernachricht, einen neuen ersten Schlüssel (ki) zu generieren, und dem neu generierten ersten Schlüssel (ki) die erste Schlüssel-ID (i) zuzuordnen.
  6. Kryptomodul (101) nach einem der Ansprüche 2 bis 5, bei dem der Kryptoprozessor (101.1) konfiguriert ist, um nach dem Generieren des ersten Schlüssels (ki) den ersten Schlüssel (ki) in dem Speicher (102) zu speichern, den ersten Schlüssel (ki) mit dem zweiten Schlüssel (kj) zu verschlüsseln, und den verschlüsselten ersten Schlüssel (K) über die Schnittstelle (101.4) auszugeben.
  7. Kryptomodul nach Anspruch 6, bei dem der Speicher (102) eine Mehrzahl von zweiten Schlüsseln (kj) speichert, und bei dem der Kryptoprozessor (101.1) konfiguriert ist, um mehrere Versionen des verschlüsselten ersten Schlüssel (ki) durch Verschlüsseln des ersten Schlüssels mit mehreren der zweiten Schlüssel (kj) aus dem Speicher (102) zu erzeugen, und um die Versionen des verschlüsselten ersten Schlüssels (K) über die Schnittstelle (101.4) auszugeben.
  8. Kryptomodul (101) nach Anspruch 7, bei dem der Kryptoprozessor (101.1) konfiguriert ist, um zusammen mit den Versionen des verschlüsselten ersten Schlüssels (K) die erste Schlüssel-ID (i) des ersten Schlüssel (ki) und die zweite Schlüssel-ID (j) der Version des verschlüsselten ersten Schlüssels (K) auszugeben, wobei die zweite Schlüssel-ID (j) anzeigt, mit welchen der zweiten Schlüssel (kj) die entsprechende Version des verschlüsselten ersten Schlüssels (K) erzeugt wurde.
  9. System zur Kommunikation mit einer externen Umgebung (400), mit: einem Gerät (300, 201), das eine Schnittstelle zu der externen Umgebung (400) umfasst, und einem Hardware-Kryptomodul nach einem der Ansprüche 1 bis 8, das hardwaretechnisch von dem Gerät (300, 201) getrennt ist und konfiguriert ist, um über seine Schnittstelle (101.4) mit dem Gerät (300, 201) zu kommunizieren.
  10. System nach Anspruch 9, bei dem das Gerät (300, 201) konfiguriert ist, um an die externe Umgebung (400) zu sendende Daten (m) an das Kryptomodul (101) zu senden, die verschlüsselten Daten (M) von dem Kryptomodul (101) zu empfangen und über seine Schnittstelle die verschlüsselten Daten (M) an die externe Umgebung (400) zu senden.
  11. System nach Anspruch 10, bei dem das Gerät (300, 201) konfiguriert ist, um eine Verschlüsselungsanfrage, die die zu verschlüsselnden Daten (m) und die erste Schlüssel-ID (i) für den ersten Schlüssel umfasst, zu generieren und an das Kryptomodul (101) zu senden, und eine Antwort von dem Kryptomodul (101) zu empfangen und an eine externe Umgebung (400) zu senden, wobei die Antwort die verschlüsselten Daten (M) und die Schlüssel-ID (i) des ersten Schlüssel (ki) umfasst.
  12. System nach einem der Ansprüche 9 bis 11, bei dem das Gerät (300, 201) konfiguriert ist, um von der externen Umgebung (400) empfangene, verschlüsselte Daten (M) zum Entschlüsseln an das Kryptomodul (101) zu senden, die entschlüsselten Daten (m) von dem Kryptomodul (101) zu empfangen, und über das Gerät (300, 201) bereitzustellen.
  13. System nach Anspruch 12, bei dem das Gerät (300, 201) konfiguriert ist, um eine Entschlüsselungsanfrage, die die verschlüsselten Daten (M) und die erste Schlüssel-ID (i) für den ersten Schlüssel (ki) umfasst, zu generieren und an das Kryptomodul zu senden, und eine Antwort, die die entschlüsselten Daten (m) und die Schlüssel-ID (i) des ersten Schlüssels (ki) umfasst, von dem Kryptomodul (101) zu empfangen, und die in der empfangenen Antwort enthaltenen, entschlüsselten Daten (m) bereitzustellen.
  14. System nach einem der Ansprüche 9 bis 13, bei dem das Gerät (300, 201) konfiguriert ist, um eine Schlüsselanfrage von der externen Umgebung (400) an das Kryptomodul (101) zu richten, um eine Schlüsselanfrage des Kryptomoduls (101) an die externe Umgebung (400) zu richten, und um die jeweilige Antwort an die externe Umgebung oder an das Kryptomodul(101) weiterzuleiten.
  15. System nach einem der Ansprüche 9 bis 14, bei dem das Gerät ein Kommunikationsmodul (201) umfasst, das folgende Merkmale aufweist: eine Schnittstelle (201.4), die für eine Kommunikation mit dem Kryptomodul (101) konfiguriert ist, einen Speicher (202), und einen Kommunikationsprozessor (201.1), der wirksam mit der Schnittstelle (201.4) und dem Speicher (202) verbunden ist.
  16. System nach Anspruch 15, bei dem der Kommunikationsprozessor (201.1) konfiguriert ist, um die Verschlüsselungsanfrage und die Entschlüsselungsanfrage an das Kryptomodul (101) über seine Schnittstelle (201.4) weiterzuleiten, und die Antwort von dem Kryptomodul (101) zu empfangen.
  17. System nach Anspruch 15 oder 16, bei dem der Kommunikationsprozessor (201.1) konfiguriert ist, um ansprechend auf eine Schlüsselanfrage, die die erste Schlüssel-ID (i) des ersten Schlüssels (ki) und die zweite Schlüssel-ID (j) des zweiten Schlüssels (kj) enthält, zu bestimmen, ob in dem Speicher (202) des Kommunikationsmoduls (201) eine verschlüsselte Version (K) des ersten Schlüssels (ki) enthalten ist, die durch Verschlüsselung des ersten Schlüssels (ki) mit dem zweiten Schlüssel (kj) erzeugt wurde, falls der Speicher (202) den verschlüsselten ersten Schlüssel (K) enthält, den verschlüsselten ersten Schlüssel (K), die erste Schlüssel-ID (i) und die zweite Schlüssel-ID (j) auszugeben, und falls der Speicher den verschlüsselten ersten Schlüssel (K) nicht enthält, die Schlüsselanfrage an das Kryptomodul (101) weiterzuleiten, wenn die Schlüsselanfrage von der externen Umgebung (400) stammt, die Schlüsselanfrage an die externe Umgebung weiterzuleiten, wenn die Schlüsselanfrage von dem Kryptomodul (101) stammt und eine externe Schlüsselbestimmung zugelassen ist, und eine Fehlernachricht an das Kryptomodul (101) zu senden, wenn die Schlüsselanfrage von dem Kryptomodul (101) stammt und eine externe Schlüsselbestimmung nicht zugelassen ist.
  18. System nach einem der Ansprüche 15 bis 17, bei dem der Kommunikationsprozessor (201.1) konfiguriert ist, um ansprechend auf den Empfang einer verschlüsselten Version (K) des ersten Schlüssels (ki) den verschlüsselten ersten Schlüssel (K) zusammen mit der ersten und zweiten Schlüssel-ID (i, j) in dem Speicher (202) zu speichern.
  19. System nach einem der Ansprüche 15 bis 18, bei dem das Gerät ferner ein Integrationsmodul (301) umfasst, das eine Schnittstelle (301.4), die für eine Kommunikation mit dem Kommunikationsmodul (201) konfiguriert ist, eine Benutzerschnittstelle (302) und einen Signalverarbeitungsprozessor (301.1), der wirksam mit der Schnittstelle (301.4) und der Benutzerschnittstelle (302) verbunden ist, aufweist.
  20. System nach Anspruch 19, bei dem der Signalverarbeitungsprozessor (301.1) des Integrationsmoduls (301) konfiguriert ist, um ansprechend auf den Empfang zu verschlüsselnder Daten (m) von der Benutzerschnittstelle (302), die Verschlüsselungsanfrage zu generieren, die Verschlüsselungsanfrage an das Kommunikationsmodul (201) weiterzuleiten, und die Antwort von dem Kommunikationsmodul (201) auszugeben, und um ansprechend auf den Empfang von verschlüsselten Daten (M), die Entschlüsselungsanfrage zu generieren, die Entschlüsselungsanfrage an das Kommunikationsmodul (201) weiterzuleiten und die Antwort von dem Kommunikationsmodul (201) über die Benutzerschnittstelle (302) auszugeben.
  21. System nach Anspruch 19 oder 20, bei dem der Signalverarbeitungsprozessor (301.1) konfiguriert ist, um eine Schlüsselanfrage und eine Antwort auf die Schlüsselanfrage an die externe Umgebung (400) bzw. an das Kommunikationsmodul (201) weiterzuleiten.
  22. System nach einem der Ansprüche 9 bis 21, bei dem das Kommunikationsmodul (201) und/oder das Integrationsmodul (301) als Software-Modul in dem Gerät oder als separates Hardware-Modul für das Gerät (300) realisiert sind.
  23. System nach einem der Ansprüche 9 bis 22, bei dem das Gerät (300) einen Computer, einen Laptop, ein Notebook, einen Tablet-Computer, oder ein Smart Phone umfasst, und bei dem die externe Umgebung (400) ein öffentliches oder internes Netzwerk oder einen öffentlichen oder internen Speicher, Rechenzentrum oder Cloud umfasst.
DE102013223366.3A 2013-11-15 2013-11-15 Hardware-kryptomodul und system zur kommunikation mit einer externen umgebung Withdrawn DE102013223366A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102013223366.3A DE102013223366A1 (de) 2013-11-15 2013-11-15 Hardware-kryptomodul und system zur kommunikation mit einer externen umgebung
US14/542,036 US20160072777A1 (en) 2013-11-15 2014-11-14 Hardware crypto module and system for communicating with an external environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013223366.3A DE102013223366A1 (de) 2013-11-15 2013-11-15 Hardware-kryptomodul und system zur kommunikation mit einer externen umgebung

Publications (1)

Publication Number Publication Date
DE102013223366A1 true DE102013223366A1 (de) 2015-05-21

Family

ID=53184315

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013223366.3A Withdrawn DE102013223366A1 (de) 2013-11-15 2013-11-15 Hardware-kryptomodul und system zur kommunikation mit einer externen umgebung

Country Status (2)

Country Link
US (1) US20160072777A1 (de)
DE (1) DE102013223366A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170163614A1 (en) * 2015-12-03 2017-06-08 Xxlsec Oy Method, a Device, a Dedicated Device and a System for Encrypting Communication
US11228575B2 (en) * 2019-07-26 2022-01-18 International Business Machines Corporation Enterprise workspaces

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10255081A1 (de) * 2002-11-20 2004-06-17 Fetin Canoglu Verfahren und Vorrichtung zur sicheren Übertragung von Daten
US20120131354A1 (en) * 2009-06-22 2012-05-24 Barclays Bank Plc Method and system for provision of cryptographic services

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10255081A1 (de) * 2002-11-20 2004-06-17 Fetin Canoglu Verfahren und Vorrichtung zur sicheren Übertragung von Daten
US20120131354A1 (en) * 2009-06-22 2012-05-24 Barclays Bank Plc Method and system for provision of cryptographic services

Also Published As

Publication number Publication date
US20160072777A1 (en) 2016-03-10

Similar Documents

Publication Publication Date Title
EP3033855B1 (de) Unterstützung einer entschlüsselung von verschlüsselten daten
DE112010003149B4 (de) Gemeinschaftliche Verschlüsselung und Entschlüsselung durch Agenten
EP3031226B1 (de) Unterstützung der nutzung eines geheimen schlüssels
DE112016004274B4 (de) Systeme und Verfahren zur Datenverlustvermeidung unter Wahrung von Vertraulichkeit
US20140281520A1 (en) Secure cloud data sharing
EP1300842B1 (de) Verfahren und System zur autorisierten Entschlüsselung von verschlüsselten Daten mit mindestens zwei Zertifikaten
DE102016112552A1 (de) Datenchiffrierung und -dechiffrierung auf der Grundlage einer Vorrichtungs- und Datenauthentifizierung
DE102009037469A1 (de) Aktualisierung und Verteilung von Verschlüsselungsschlüsseln
DE112021006229T5 (de) Hybride schlüsselableitung zum sichern von daten
EP3910875A1 (de) Konzept zum austausch von kryptographischen schlüsselinformationen
EP3248324B1 (de) Verteiltes bearbeiten eines produkts auf grund von zentral verschlüsselt gespeicherten daten
EP1027784A1 (de) Verfahren zum digitalen signieren einer nachricht
DE102013223366A1 (de) Hardware-kryptomodul und system zur kommunikation mit einer externen umgebung
DE602005001155T2 (de) Vorrichtung und Verfahren zum Versenden verschlüsselter Nachrichten an Verteilerlisten
CN107317819A (zh) 基于可信数据格式的通用数据的加密方法、解密方法及其装置
WO2015135579A1 (de) Schlüsselvorrichtung sowie ver- und entschlüsselungsverfahren
EP2759089B1 (de) System und verfahren zur sicheren spontanen übermittlung vertraulicher daten über unsichere verbindungen und vermittlungsrechner
EP0983663B1 (de) Verschlüsselungsverfahren und -vorrichtung
EP2685682A2 (de) Verfarhen und System zur sicheren Nachrichtenübertragung
CN106972928A (zh) 一种堡垒机私钥管理方法、装置及系统
DE112021004459T5 (de) Informationsverifizierungsvorrichtung, elektronische steuervorrichtung und informationsverifizierungsverfahren
EP2613491B1 (de) Ausführung von kryptografischen Operationen mit Daten eines Nutzerendgeräts
DE102013101611B3 (de) Verschlüsselungsverfahren für e-mails
EP3669508B1 (de) Geschützte nachrichtenübertragung
DE102012020987A1 (de) Verfahren zum sicheren Verwalten von Teilnehmeridentitätsdaten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee