DE102020213611A1 - Verfahren zur Anwendung kryptographischer Funktionen auf Daten unter Verwendung verschiedener Schlüssel - Google Patents

Verfahren zur Anwendung kryptographischer Funktionen auf Daten unter Verwendung verschiedener Schlüssel Download PDF

Info

Publication number
DE102020213611A1
DE102020213611A1 DE102020213611.4A DE102020213611A DE102020213611A1 DE 102020213611 A1 DE102020213611 A1 DE 102020213611A1 DE 102020213611 A DE102020213611 A DE 102020213611A DE 102020213611 A1 DE102020213611 A1 DE 102020213611A1
Authority
DE
Germany
Prior art keywords
data
encrypted
host system
keys
module
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.)
Pending
Application number
DE102020213611.4A
Other languages
English (en)
Inventor
Peter Poinstingl
Klaus Boeswart
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102020213611.4A priority Critical patent/DE102020213611A1/de
Publication of DE102020213611A1 publication Critical patent/DE102020213611A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Lock And Its Accessories (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Anwendung kryptographischer Funktionen auf Daten unter Verwendung verschiedener Schlüssel in einer Recheneinheit, die ein Hostsystem (4), ein Hardware-Sicherheits-Modul, Hardware-Sicherheits-Modul (6), und ein Beschleunigermodul (8), das eingerichtet ist, kryptographische Funktionen durchzuführen umfasst, umfassend ein Bereitstellen, in dem Hostsystem (4), verschlüsselter Schlüssel, wobei die verschlüsselten Schlüssel aus den verschiedenen Schlüsseln durch Verschlüsseln mit einem Hauptschlüssel gebildet sind, der vom Hardware-Sicherheits-Modul (6) gespeichert wird, ein Laden, durch das Hardware-Sicherheits-Modul (6), des Hauptschlüssels in das Beschleunigermodul (8), wobei beim Anwenden einer kryptographischen Funktion auf Daten jeweils durchgeführt wird: ein Laden, durch das Hostsystem (4), eines den Daten zugeordneten verschlüsselten Schlüssels in das Beschleunigermodul (8), ein Entschlüssen, durch das Beschleunigermodul (8), des verschlüsselten Schlüssels mit dem Hauptschlüssel, ein Laden, durch das Hostsystem (4), der Daten in das Beschleunigermodul (8), ein Anwenden, durch das Beschleunigermodul (8), der kryptographischen Funktion auf die Daten unter Verwendung des entschlüsselten Schlüssels, um ein entsprechendes Ergebnis zu erhalten und ein Lesen, durch das Hostsystem (4), des Ergebnisses aus dem Beschleunigermodul (8).

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zur Anwendung kryptographischer Funktionen auf Daten unter Verwendung verschiedener Schlüssel sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
  • Hintergrund der Erfindung
  • In Maschinen und Fahrzeugen werden programmierbare Steuergeräte eingesetzt, um diese oder auch Komponenten davon, zu steuern. Beispielsweise kann ein Kraftfahrzeug Steuergeräte für die Motorsteuerung, für das Bremssystem usw. enthalten. Die Steuergeräte umfassen üblicherweise mindestens einen Prozessor mit einem oder mehreren Prozessor-Kernen. In diesen Prozessorkernen wird eine Steuerungssoftware ausgeführt (vereinfacht auch als Host bzw. Hostsystem bezeichnet), d.h. es werden einem Speicher gespeicherte Anwendungsprogramme ausführt, um die Steuerungsfunktion des Steuergeräts zu erzielen.
  • Die Steuergeräte eines Fahrzeugs oder einer Maschine können miteinander und oftmals auch mit externen Recheneinheiten vernetzt sein, d.h. zur Datenkommunikation verbunden sein. Aus Sicherheitsgründen wird diese Kommunikation kryptografisch abgesichert. Dabei kann beispielsweise eine Verschlüsselung und/oder Signierung von Botschaften, mit denen Daten übermittelt werden, vorgesehen sein. Zur Implementierung der kryptografischen Absicherung können Steuergeräte mit einem Hardware-Sicherheits-Modul (HSM) ausgestattet, das als Vertrauensanker im Steuergerät dient, d.h. aus Sicht des Hostsystems (bzw. der darin ausgeführten Anwendungsprogramme) werden Informationen vom HSM bzw. von im HSM ausgeführten Programmen als korrekt, nicht kompromittiert, erachtet. Das HSM kann ein dezidierter Prozessor oder ein dezidierter Prozessorkern sein, der auf einen eigenen Datenspeicher und einen eigenen Programmspeicher zugreift, auf die andere Prozessorkerne, d.h. Prozessorkerne des Hosts, nicht zugreifen können. Zur Beschleunigung der Ausführung kryptografischer Funktionen können diese in einem entsprechenden Beschleunigermodul, das als Hardwaremodul ausgeführt ist, realisiert sein.
  • Offenbarung der Erfindung
  • Erfindungsgemäß werden ein Verfahren zur Anwendung kryptographischer Funktionen auf Daten unter Verwendung verschiedener Schlüssel sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
  • Die Erfindung ermöglicht die Verwendung einer hohen, skalierbaren Anzahl voneinander verschiedener Schlüssel, da die Anzahl nicht durch den Speicherplatz, der in der sicheren Umgebung (HSM, Beschleunigermodul) zur Verfügung steht, begrenzt wird. Daraus resultiert eine Verringerung der Angriffsfläche, wenn ein Anwendungsprogramm in einer Recheneinheit kompromittiert ist, so dass die Sicherheit eines darauf basierenden Systems erhöht werden kann.
  • Erfindungsgemäß werden dazu ein Verfahren zur Anwendung kryptographischer Funktionen auf Daten unter Verwendung verschiedener Schlüssel und eine Recheneinheit, die ein Hostsystem, ein Hardware-Sicherheits-Modul, HSM, und ein Beschleunigermodul umfasst, vorgeschlagen. Um zu gewährleisten, dass die Schlüssel selbst dem möglicherweise kompromittierten Hostsystem bzw. einem darin ausgeführten Anwendungsprogramm nicht bekannt werden, werden die Schlüssel dem Hostsystem als verschlüsselte Schlüssel bereitgestellt, wobei die verschlüsselten Schlüssel aus den verschiedenen Schlüsseln durch Verschlüsseln mit einem Hauptschlüssel gebildet sind, der vom HSM gespeichert wird. Das HSM lädt den Hauptschlüssel in das Beschleunigermodul, so dass dieses jeweils im weiteren Verfahren empfangene verschlüsselte Schlüssel entschlüsseln kann. Beim Anwenden einer kryptographischen Funktion auf Daten wird jeweils ein den Daten zugeordneter verschlüsselter Schlüssel in das Beschleunigermodul geladen und mit dem Hauptschlüssel entschlüsselt. Ebenso werden die Daten in das Beschleunigermodul geladen und durch das Beschleunigermodul die kryptographische Funktion auf die Daten unter Verwendung des entschlüsselten Schlüssels angewendet, um ein entsprechendes Ergebnis zu erhalten. Das Ergebnis wird dann aus dem Beschleunigermodul gelesen.
  • Das Hostsystem bildet im Prinzip eine Umgebung, in der die eigentliche Funktion der Recheneinheit, z.B. Steuerungsfunktionen eines Kraftfahrzeugs oder einer Maschine, mittels entsprechender Anwendungssoftware implementiert wird. Das Hostsystem umfasst einen oder mehrere Prozessorkerne, die dazu eingerichtet sind, Anwendungsprogramme auszuführen. Die Anwendungsprogramme und Daten werden vom Hostsystem in einem Speicher gespeichert. Der Speicher umfasst typischerweise einen flüchtigen und/oder einen nichtflüchtigen Speicher. In dem Speicher können insbesondere auch die verschlüsselten Schlüssel gespeichert werden, vorzugsweise in einem nichtflüchtigen Speicher, so dass sie nicht mit jedem Neustart der Recheneinheit erneut übermittelt werden müssen. Die verschlüsselten Schlüssel können, etwa nach Neustart der Recheneinheit, selbstverständlich auch durch das Hostsystem aus dem nichtflüchtigen in einen flüchtigen Speicher (Arbeitsspeicher) geladen werden, um darauf schneller zugreifen zu können.
  • Das Hostsystem ist üblicherweise weiterhin über eine Kommunikationsverbindung der Recheneinheit mit anderen Recheneinheiten verbunden. Diese Verbindung kann drahtlos oder drahtgebunden sein, etwa ein CAN-Bus in einem Kraftfahrzeug. Daten, die von den Anwendungsprogrammen in Form von Botschaften bzw. Nachrichten über die Kommunikationsverbindung gesendet oder empfangen werden, werden aus Sicherheitsgründen kryptographisch abgesichert, d.h. verschlüsselt und/oder mittels eines Nachrichtenauthentifizierungsverfahrens abgesichert. Um kryptographische Verfahren zu beschleunigen, werden diese unter Verwendung des Beschleunigermoduls durchgeführt.
  • Das Beschleunigermodul ist dazu eingerichtet, kryptographische Funktionen durchzuführen. Dabei werden von einer aufrufenden Einheit (hier Hostsystem oder HSM) dem Beschleunigermodul ein Schlüssel und Daten übermittelt, bzw. in das Beschleunigermodul geladen, etwa an jeweils dafür vorgesehene Adressen des Beschleunigermoduls. Das Beschleunigermodul führt dann für die Daten die kryptographische Funktion unter Verwendung des Schlüssels durch, d.h. das Beschleunigermodul wendet die kryptographische Funktion auf die Daten an, wobei der Schlüssel verwendet wird. Das Ergebnis dieser Anwendung kann dann von der aufrufenden Einheit wieder aus dem Beschleunigermodul gelesen werden. Die Form des Ergebnisses hängt von der kryptographischen Funktion ab. Handelt es sich beispielweise um eine Verschlüsselungsfunktion, werden die Daten mit dem Schlüssel verschlüsselt und das Ergebnis sind die verschlüsselten Daten; umgekehrt, wenn die Daten verschlüsselte Daten sind und es sich um eine Entschlüsselungsfunktion handelt, werden die verschlüsselten Daten mit dem Schlüssel in entschlüsselte Daten gewandelt, welche das Ergebnis der Entschlüsselung sind. Bei einem Nachrichtenauthentifizierungsverfahren wird aus den Daten der Nachrichtenauthentifizierungscode (MAC, Message Authentication Code) als Ergebnis bestimmt oder, wenn die Daten eine Nachricht und einen zugehörigen MAC enthalten, geprüft, ob dieser korrekt oder nicht korrekt ist, was dann das Ergebnis darstellt. Im Allgemeinen kann lediglich das Ergebnis aus dem Beschleunigermodul gelesen werden, zum Beschleunigermodul übertragene Daten und Schlüssel können nicht ausgelesen werden, insbesondere der Hauptschlüssel kann also nicht durch das Hostsystem aus dem Beschleunigermodul gelesen werden.
  • Das Beschleunigermodul, das insbesondere ein Hardwaremodul ist, ist dazu eingerichtet, kryptographische Funktion entsprechend bestimmter, an sich bekannter Verfahren durchzuführen. Dies können insbesondere sein: AES (Advanced Encryption Standard), DES (Data Encryption Standard), CMAC (Cipher-Based Message Authentication Code, d.h. ein Nachrichtenauthentifizierungscode, der unter Verwendung eines Blockverschlüsselungsverfahrens, insbesondere AES oder DES, implementiert ist).
  • Das Hardware-Sicherheits-Modul (HSM) umfasst einen eigenen Speicher, auf den nur das HSM, bzw. ein Prozessorkern des HSM, zugreifen kann. In diesem kann der Hauptschlüssel gespeichert werden. Dem Hostsystem (oder anderen Recheneinheiten) bzw. darin ausgeführten, möglicherweise kompromittierten Anwendungsprogrammen ist es nicht möglich, auf den Speicher des HSM zuzugreifen, so dass diese nicht in Kenntnis des Hauptschlüssels gelangen können. Das HSM stellt eine sichere Umgebung der Recheneinheit dar, d.h. Information bzw. im HSM ausgeführte Prozessen werden, insbesondere durch das Hostsystem, als vertrauenswürdig erachtet. Ein Zugriff bzw. eine Änderung von Daten und/oder Programmen im HSM ist nur mit entsprechender Authentifizierung möglich, insbesondere das Hostsystem kann (im Regelbetrieb) solche Zugriffe bzw. Änderungen nicht durchführen.
  • Die Erfindung entfaltet besondere Vorteile in Fällen, in denen zahlreiche Schlüssel verwendet werden sollen und dafür ggf. nicht genügend sicherer Speicherplatz im HSM zur Verfügung steht. Um beispielsweise zu verhindern, dass die gesamte Kommunikation zwischen den Steuergeräten des Fahrzeugs bzw. der Maschine oder zumindest die gesamte Kommunikation mit dem kompromittierten Steuergerät kompromittiert wird, wenn ein Angreifer in Kenntnis eines Schlüssels gelangt, etwa wenn eines der Steuergeräte kompromittiert wurde, können Botschaften in Botschaftsgruppen mit gleichen Sendern und Empfängern eingeteilt werden, wobei jede Botschaftsgruppe einen eigenen Schlüssel erhält, so dass eine Vielzahl verschiedener Schlüssel verwendet wird. Auf diese Weise kann die Angriffsfläche, die durch Kenntnis eines Schlüssels bzw. durch ein kompromittiertes Steuergerät ausgenutzt werden kann, verringert werden. Insbesondere muss durch die Erfindung beim Design bzw. der Herstellung des HSM die Anzahl der später benötigten Schlüssel noch gar nicht bekannt sein.
  • Vorteilhafterweise umfasst der Schritt des Bereitstellens der verschlüsselten Schlüssel ein Verschlüsseln, durch das HSM, eines oder mehrerer der verschiedenen Schlüssel unter Verwendung des Hauptschlüssels und ein Übertragen, durch das HSM, der verschlüsselten Schlüssel an das Hostsystem.
  • Bevorzugt werden der eine oder die mehreren der verschiedenen Schlüssel von dem HSM generiert oder von dem HSM über eine verschlüsselte Kommunikation empfangen. Wenn die Schlüssel vom HSM generiert werden, können diese über eine sichere, verschlüsselte Kommunikationsverbindung anderen Recheneinheiten, die Botschaften unter Verwendung dieser Schlüssel von dem System (Hostsystem, HSM, Beschleunigermodul) empfangen und/oder zu diesem senden, übermittelt werden. Die (nicht verschlüsselten) Schlüssel sind somit nur in jeweils sicheren Umgebungen bekannt.
  • Bevorzugt umfasst das Verfahren weiterhin ein Bestimmen, durch das Hostsystem, des den Daten zugeordneten verschlüsselten Schlüssels. Weiter bevorzugt sind Zuordnungskennzeichnungen für die verschlüsselten Schlüssel vorgesehen, auf Grundlage derer der den Daten zugeordnete verschlüsselte Schlüssel bestimmt wird. Es kann sich dabei beispielsweise um eine Nummerierung handeln. Solche Zuordnungskennzeichnungen ermöglichen es der Recheneinheit selbst und auch anderen Recheneinheiten, die jeweiligen Daten den richtigen (zugeordneten) Schlüssel zu verwenden.
  • Zweckmäßigerweise sind die kryptographischen Funktionen eine oder mehrere von einem symmetrischen Verschlüsselungsverfahren, insbesondere Verschlüsselung und/oder Entschlüsselung von Botschaften, und einem Nachrichtenauthentifizierungsverfahren, insbesondere Berechnung eines Nachrichtenauthentifizierungscodes. Solche Verfahren sind dem Fachmann an sich bekannt, so dass diese in bereits vorhandenen Beschleunigermodulen implementiert sein können, was die Anwendung des erfindungsgemäßen Verfahrens bei bereits vorhandenen Recheneinheiten ermöglicht.
  • Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs oder ein in einem solchen umfasster Mikrocontroller, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
  • Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
  • Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
  • Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
  • Figurenliste
    • 1 zeigt eine Recheneinheit gemäß einer bevorzugten Ausführungsform, die zur Durchführung eines erfindungsgemäßen Verfahrens verwendet werden kann;und
    • 2 zeigt ein Ablaufdiagramm gemäß einer bevorzugten Ausführungsform der Erfindung.
  • Ausführungsform(en) der Erfindung
  • 1 stellt eine Recheneinheit 2 gemäß einer bevorzugten Ausführungsform dar, die zur Durchführung eines erfindungsgemäßen Verfahrens verwendet werden kann. Die Recheneinheit 2, z.B. ein Mikrocontroller, z.B. eines Steuergeräts, weist ein Hostsystem 4, ein Hardware-Sicherheits-Modul (HSM) 6 und ein Beschleunigermodul 8 auf. Weiter weist die Recheneinheit 2 eine Schnittstelle 10, die dem Datenaustausch mit anderen Recheneinheiten dient, etwa über eine Verbindungsleitung 12 auf. Die Schnittstelle 10 kann eine beliebige drahtlose oder drahtgebundene Schnittstelle sein; sie kann beispielsweise eine serielle oder parallele Schnittstelle sein. Beispiele sind insbesondere Feldbusse, z.B. ein CAN-Bus (Controller Area Network), eine Ethernet-Schnittstelle, eine SPI-Schnittstelle (Serial Peripheral Interface), eine WLAN-Schnittstelle (Wireless Local Area Network) oder ähnliches.
  • Das Hostsystem 4, das HSM 6, das Beschleunigermodul 8 und die Schnittstelle 10 sind zumindest teilweise untereinander mit Verbindungen bzw. Leitungen 14 zum Datenaustausch verbunden. Diese Verbindungen können seriell oder parallel sein. Es sind Punkt-zu-Punkt-Verbindungen und/oder Stern-Verbindungen und/oder Bus-Verbindungen (ähnlich wie dargestellt) möglich.
  • Weiterhin können weitere Bauelemente 16, z.B. ein Speicher, in der Recheneinheit enthalten sein, die ebenfalls mit dem Hostsystem, dem HSM, dem Beschleunigermodul und der Schnittstelle zum Datenaustausch verbunden sein können.
  • Das Hostsystem 4 und das HSM 6 weisen jeweils mindestens einen Prozessorkern, in dem Programme ausgeführt werden, um die Funktion des Hostsystems bzw. HSM zu implementieren, auf. Die Prozessorkerne des Hostsystems und des HSM können in verschiedenen Prozessormodulen oder auch in einem gemeinsamen Prozessormodul enthalten sein, wobei das Hostsystem, d.h. insbesondere dessen Prozessorkerne, keinen Zugriff auf das HSM, insbesondere dessen Prozessorkerne, hat. Das Hostsystem 4 und das HSM 6 können weitere Elemente umfassen, insbesondere jeweils einen flüchtigen (Arbeits-)Speicher und/oder einen nichtflüchtigen Speicher, z.B. Flash.
  • Das Beschleunigermodul 8 ist als Hardwaremodul ausgeführt und dazu eingerichtet, kryptographische Funktionen durchzuführen, wobei dazu ein Schlüssel und Daten von einer aufrufenden Einheit (Hostsystem und/oder HSM) in das Hardwaremodul geladen werden, das Hardwaremodul dann eine entsprechend spezifizierte kryptographische Funktion unter Benutzung des geladen Schlüssels auf die geladenen Daten anwendet, und das Ergebnis dieser Anwendung der kryptographischen Funktion dann von der aufrufenden Einheit ausgelesen werden kann und/oder auch in dem Hardwarebeschleuniger weiterverwendet werden kann.
  • Das Hostsystem 4, das HSM 6, das Beschleunigermodul 8, die Schnittstelle 10 und gegebenenfalls weitere Bauelemente 16 können zumindest teilweise miteinander integriert ausgebildet sein, z.B. in einem gemeinsamen Chip (integrierte Schaltung, IC).
  • 2 stellt den Ablauf eines Verfahrens gemäß einer bevorzugten Ausführungsform der Erfindung dar, die auch optionale Verfahrensschritte einschließt.
  • In Schritt 22 empfängt, etwa über eine abgesicherte Verbindung, das HSM Schlüssel, die bei der Anwendung kryptographischer Funktionen auf Daten (etwa Nachrichten an andere oder von anderen Recheneinheiten oder zu speichernde oder gespeicherte Daten) verwendet werden sollen, oder generiert diese Schlüssel selbst. Im zweiten Fall können die generierten Schlüssel außerdem, über eine abgesicherte Verbindung, zu anderen Recheneinheiten übertragen werden, da diese die generierten Schlüssel für die Implementierung einer kryptographisch abgesicherten Kommunikation gegebenenfalls ebenfalls kennen müssen. Diese anderen Recheneinheiten empfangen dann also die Schlüssel, wie in der ersten Möglichkeit von Schritt 22 genannt. Die Schlüssel können natürlich auch von einer dritten Stelle generiert werden, die an der späteren Kommunikation zwischen den Recheneinheiten nicht beteiligt ist, und dann zu Recheneinheiten über die abgesicherte Verbindung gesendet werden. Die Schlüssel können weiterhin mittels einer Zuordnungskennzeichnung, z.B. einem Index, versehen werden, so dass eine spätere Zuordnung möglich ist.
  • Die Zuordnungskennzeichnung kann ein einfacher Index sein (etwa eine Nummerierung oder die Nummer eines Listeneintrags, wenn die Schlüssel in einer Liste enthalten sind), anhand dessen bestimmt werden kann (z.B. über eine Zuordnungstabelle), für welche Datentypen und/oder für welche kryptographischen Funktionen und/oder für welche Kommunikationspartner der jeweilige Schlüssel verwendet werden soll. Weitergehend kann die Zuordnungskennzeichnung eine solche Verwendung direkt spezifizieren. Die Zuordnungskennzeichnung ermöglicht es also, bestimmten (zu sendenden oder empfangenen) Daten, auf die eine kryptographische Funktion angewendet werden soll, den Schlüssel bzw. verschlüsselten Schlüssel, der dafür verwendet werden soll, zuzuordnen. Es ist auch möglich, eine Zuordnungskennzeichnung nur für die verschlüsselten Schlüssel zu erzeugen.
  • Die in Schritt 22 empfangenen oder generierten Schlüssel werden in Schritt 24 durch das HSM verschlüsselt. Diese Verschlüsselung erfolgt unter Verwendung eines Hauptschlüssels, der vom HSM verwaltet wird, so dass andere Elemente der Recheneinheit, z.B. das Hostsystem, (oder anderer Recheneinheiten) keinen Zugriff darauf haben und nicht in Kenntnis dieses Hauptschlüssels gelangen können. Auf diese Weise werden verschlüsselte Schlüssel erhalten. Den verschlüsselten Schlüsseln kann wieder eine Zuordnungskennzeichnung (Index) zugewiesen werden, der z.B. mit der Zuordnungskennzeichnung der Schlüssel übereinstimmt oder zu diesen in eindeutiger Weise korrespondiert.
  • Die verschlüsselten Schlüssel werden in Schritt 26 vom HSM zum Hostsystem übertragen, welches diese in Schritt 28 empfängt und speichert. Eine etwaige Zuordnungskennzeichnung (Index) wird mit übernommen und gespeichert, so dass eine eindeutige Identifizierung der verschlüsselten Schlüssel möglich ist.
  • Alternativ zu den Schritten 22 bis 24 ist es auch möglich, bereits verschlüsselte Schlüssel zum HSM zu übertragen, welches diese dann entsprechend Schritt 26 zum Hostsystem überträgt. Das Hostsystem empfängt und speichert dann die verschlüsselten Schlüssel wieder entsprechend Schritt 28. Eine Zuordnungskennzeichnung (Index) der verschlüsselten Schlüssel wird dabei jeweils mit übertragen und gespeichert.
  • Weiter ist es alternativ zu den Schritten 22 bis 26 auch möglich, bereits verschlüsselte Schlüssel zum Hostsystem zu übertragen, welches diese dann entsprechend der Schritt 28 empfängt und speichert. Eine Zuordnungskennzeichnung (Index) der verschlüsselten Schlüssel wird dabei jeweils mit übertragen und gespeichert.
  • Die Schritte 22 bis 26 bilden zusammengenommen einen Bereitstellungsschritt der verschlüsselten Schlüssel in dem Hostsystem. Sie werden einmalig vor Verwendung der Schlüssel ausgeführt. Falls weitere Schlüssel benötigt werden und/oder die Schlüssel durch andere Schlüssel ersetzt werden sollen, können diese Schritte erneut durchgeführt werden.
  • In Schritt 30 lädt das HSM den Hauptschlüssel in das Beschleunigermodul. Dieser Schritt wird ebenfalls vor Verwendung der verschlüsselten Schlüssel ausgeführt, etwa im Rahmen einer Initialisierung nach Start der Recheneinheit.
  • Wenn im Hostsystem, d.h. in einem Anwendungsprogramm, das im Hostsystem ausgeführt wird, Daten vorliegen, auf die eine kryptographische Funktion angewendet werden soll, wird in Schritt 32 bestimmt, welcher der verschlüsselten Schlüssel verwendet werden soll. Wenn nicht bekannt ist, welcher der verschlüsselten Schlüssel verwendet werden soll, kann mittels der Zuordnungskennzeichnung der verschlüsselten Schlüssel festgestellt werden, welcher verschlüsselte Schlüssel den Daten zugeordnet ist und verwendet werden soll. Die Daten können z.B. eine Nachricht sein, die an eine andere Recheneinheit gesendet werden soll oder die von einer anderen Recheneinheit empfangen wurde, oder Daten, die in verschlüsselter Form gespeichert werden sollen bzw. sind, etwa in einem externen Speicher.
  • Prinzipiell ist es auch möglich (z.B. bei zu sendenden Daten oder bei in einem Speicher verschlüsselt zu speichernden Daten), zunächst eine beliebigen der verschlüsselten Schlüssel zu verwenden und eine entsprechende Zuordnungskennzeichnung erst anschließend zu bestimmen und gegebenenfalls zu speichern. Handelt es sich um Daten, die zu einer anderen Recheneinheit gesendet werden, muss dann der empfangenden Recheneinheit diese Zuordnungskennzeichnung mitgeteilt werden (etwa über eine gesonderte abgesicherte Verbindung).
  • In Schritt 34 wird der in Schritt 32 bestimmte verschlüsselte Schlüssel vom Hostsystem in das Beschleunigermodul geladen. Durch das Beschleunigermodul wird der geladene verschlüsselte Schlüssel unter Verwendung des in Schritt 30 geladenen Hauptschlüssels entschlüsselt.
  • In Schritt 36 werden vom Hostsystem die Daten, auf die die kryptographische Funktion angewendet werden soll, in das Beschleunigermodul geladen. Wenn das Beschleunigermodul eingerichtet ist, verschiedene kryptographisch Funktionen durchzuführen, wird dem Beschleunigermodul vom Hostsystem mitgeteilt, welche zu verwenden ist, dies kann auch erst später, spätestens vor Schritt 40, erfolgen.
  • Schritt 34 (Laden des verschlüsselten Schlüssels in Beschleunigermodul) und/oder Schritt 36 (Entschlüsseln des verschlüsselten Schlüssels) können, anders als dargestellt, nach und/oder gleichzeitig mit Schritt 38 (Laden der Daten) durchgeführt werden. Bevorzugt wird insbesondere Schritt 36 gleichzeitig mit Schritt 38 durchgeführt, um das Verfahren zu beschleunigen.
  • In Schritt 40 wird vom Beschleunigermodul die kryptographische Funktion auf die geladenen Daten unter Verwendung des in Schritt 36 entschlüsselten verschlüsselten Schlüssels angewandt, um ein entsprechendes Ergebnis zu erhalten. Die Art des Ergebnisses ist abhängig von der kryptographischen Funktion. Bei einer Verschlüsselung oder Entschlüsselung von Daten (etwa mit AES) handelt es sich um die verschlüsselten bzw. entschlüsselten Daten. Bei einem Nachrichtenauthentifizierungsverfahren (etwa CMAC) kann das Ergebnis ein Nachrichtenauthentifizierungscode sein und/oder, wenn vom Beschleunigermodul die Authentizität der Daten mittels des Nachrichtenauthentifizierungscodes geprüft wird, das Ergebnis dieser Prüfung.
  • Das Ergebnis des Anwendens der kryptographischen Funktion kann dann in Schritt 42 vom Hostsystem aus dem Beschleunigermodul ausgelesen werden. Anschließend kann das Ergebnis im Hostsystem, bzw. von einem im Hostsystem ausgeführten Anwendungsprogramm, verwendet werden. Z.B. kann mit entschlüsselten Daten weitergearbeitet werden oder verschlüsselte Daten können an andere Recheneinheiten gesendet oder in einem Speicher gespeichert werden. In einem Nachrichtenauthentifizierungsverfahren kann ein Nachrichtenauthentifizierungscode zusammen mit den entsprechenden Daten gesendet werden oder, falls nicht bereits im Beschleunigermodul erfolgt, empfangene Daten anhand des Nachrichtenauthentifizierungscodes auf ihre Authentizität geprüft werden. Abhängig vom Resultat einer solchen Authentizitätsprüfung, oder wenn das Ergebnis bereits ein solches Resultat ist, können empfangende Daten z.B. verwendet werden oder verworfen werden.
  • Nach Schritt 42 (Lesen des Ergebnisses) kann für neue Daten wieder zu Schritt 32 (Bestimmen des verschlüsselten Schlüssels) gesprungen werden (Pfeil 44) und für diese neuen Daten ausgehend davon wie vorstehend beschrieben verfahren werden.

Claims (9)

  1. Verfahren zur Anwendung kryptographischer Funktionen auf Daten unter Verwendung verschiedener Schlüssel in einer Recheneinheit, die ein Hostsystem (4), ein Hardware-Sicherheits-Modul (6) und ein Beschleunigermodul (8), das dazu eingerichtet ist, kryptographische Funktionen durchzuführen, umfasst, umfassend Bereitstellen (22), in dem Hostsystem (4), verschlüsselter Schlüssel, wobei die verschlüsselten Schlüssel aus den verschiedenen Schlüsseln durch Verschlüsseln mit einem Hauptschlüssel gebildet sind, der vom Hardware-Sicherheits-Modul (6) gespeichert wird; Laden (30), durch das Hardware-Sicherheits-Modul (6), des Hauptschlüssels in das Beschleunigermodul (8); wobei beim Anwenden einer kryptographischen Funktion auf Daten jeweils durchgeführt wird: Laden (34), durch das Hostsystem (4), eines den Daten zugeordneten verschlüsselten Schlüssels in das Beschleunigermodul (8); Entschlüssen (36), durch das Beschleunigermodul (8), des verschlüsselten Schlüssels mit dem Hauptschlüssel; Laden (38), durch das Hostsystem (4), der Daten in das Beschleunigermodul (8); Anwenden (40), durch das Beschleunigermodul (8), der kryptographischen Funktion auf die Daten unter Verwendung des entschlüsselten Schlüssels, um ein entsprechendes Ergebnis zu erhalten; und Lesen (42), durch das Hostsystem (4), des Ergebnisses aus dem Beschleunigermodul (8).
  2. Verfahren nach Anspruch 1, wobei der Schritt des Bereitstellens der verschlüsselten Schlüssel ein Verschlüsseln (24), durch das Hardware-Sicherheits-Modul (6), eines oder mehrerer der verschiedenen Schlüssel unter Verwendung des Hauptschlüssels und ein Übertragen (26), durch das Hardware-Sicherheits-Modul (6), der verschlüsselten Schlüssel an das Hostsystem (4) umfasst.
  3. Verfahren nach Anspruch 2, wobei der eine oder die mehreren der verschiedenen Schlüssel von dem Hardware-Sicherheits-Modul (6) generiert werden (22) oder von dem Hardware-Sicherheits-Modul (6) über eine verschlüsselte Kommunikation empfangen werden (22).
  4. Verfahren nach einem der vorstehenden Ansprüche, weiterhin umfassend Bestimmen (32), durch das Hostsystem (4), des den Daten zugeordneten verschlüsselten Schlüssels.
  5. Verfahren nach Anspruch 4, wobei Zuordnungskennzeichnungen für die verschlüsselten Schlüssel vorgesehen sind, auf Grundlage derer der den Daten zugeordnete verschlüsselte Schlüssel bestimmt wird.
  6. Verfahren nach einem der vorstehenden Ansprüche, wobei die kryptographischen Funktionen eines oder mehreres umfassen von: einem symmetrischen Verschlüsselungsverfahren, insbesondere Verschlüsselung und/oder Entschlüsselung von Botschaften, und einem Nachrichtenauthentifizierungsverfahren, insbesondere Berechnung eines Nachrichtenauthentifizierungscodes.
  7. Recheneinheit (2), die dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der vorstehenden Ansprüche durchzuführen.
  8. Computerprogramm, das eine Recheneinheit dazu veranlasst, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 6 durchzuführen, wenn es auf der Recheneinheit ausgeführt wird.
  9. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 8.
DE102020213611.4A 2020-10-29 2020-10-29 Verfahren zur Anwendung kryptographischer Funktionen auf Daten unter Verwendung verschiedener Schlüssel Pending DE102020213611A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102020213611.4A DE102020213611A1 (de) 2020-10-29 2020-10-29 Verfahren zur Anwendung kryptographischer Funktionen auf Daten unter Verwendung verschiedener Schlüssel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020213611.4A DE102020213611A1 (de) 2020-10-29 2020-10-29 Verfahren zur Anwendung kryptographischer Funktionen auf Daten unter Verwendung verschiedener Schlüssel

Publications (1)

Publication Number Publication Date
DE102020213611A1 true DE102020213611A1 (de) 2022-05-05

Family

ID=81184470

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020213611.4A Pending DE102020213611A1 (de) 2020-10-29 2020-10-29 Verfahren zur Anwendung kryptographischer Funktionen auf Daten unter Verwendung verschiedener Schlüssel

Country Status (1)

Country Link
DE (1) DE102020213611A1 (de)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9172532B1 (en) 2013-11-19 2015-10-27 Amazon Technologies, Inc. Multi-tiered encryption system for efficiently regulating use of encryption keys
US20150310219A1 (en) 2014-04-28 2015-10-29 Topia Technology, Inc. Systems and methods for security hardening of data in transit and at rest via segmentation, shuffling and multi-key encryption
US9866375B2 (en) 2010-05-27 2018-01-09 Bladelogic, Inc. Multi-level key management
US20180109508A1 (en) 2016-10-19 2018-04-19 Index Systems, Inc. Systems and methods for data management and the use of salts and keys in data encryption/decryption
US20190081775A1 (en) 2015-05-01 2019-03-14 Microsoft Technology Licensing, Llc Securely storing data in a data storage system
US20200053065A1 (en) 2018-08-13 2020-02-13 Salesforce.Com, Inc. Key encryption key rotation
US10719567B2 (en) 2016-05-25 2020-07-21 Microsoft Technology Licensing, Llc Database query processing on encrypted data

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9866375B2 (en) 2010-05-27 2018-01-09 Bladelogic, Inc. Multi-level key management
US9172532B1 (en) 2013-11-19 2015-10-27 Amazon Technologies, Inc. Multi-tiered encryption system for efficiently regulating use of encryption keys
US20150310219A1 (en) 2014-04-28 2015-10-29 Topia Technology, Inc. Systems and methods for security hardening of data in transit and at rest via segmentation, shuffling and multi-key encryption
US20190081775A1 (en) 2015-05-01 2019-03-14 Microsoft Technology Licensing, Llc Securely storing data in a data storage system
US10719567B2 (en) 2016-05-25 2020-07-21 Microsoft Technology Licensing, Llc Database query processing on encrypted data
US20180109508A1 (en) 2016-10-19 2018-04-19 Index Systems, Inc. Systems and methods for data management and the use of salts and keys in data encryption/decryption
US20200053065A1 (en) 2018-08-13 2020-02-13 Salesforce.Com, Inc. Key encryption key rotation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Hardware security module. In: Wikipedia, The Free Encyclopedia. Bearbeitungsstand: 27. Oktober 2020. URL: https://en.wikipedia.org/w/index.php?title=Hardware_security_module&oldid=985784016 [abgerufen am 12. Mai 2021]

Similar Documents

Publication Publication Date Title
EP1959606B1 (de) Sicherheitseinheit
DE112005001672B4 (de) Verfahren zum Liefern eines geheimen Direktnachweisschlüssels an Vorrichtungen unter Verwendung eines Onlinedienstes
DE102017125826A1 (de) Nachrichtenauthentifizierung über controller area network
DE102011081804B4 (de) Verfahren und System zum Bereitstellen von gerätespezifischen Betreiberdaten, welche an ein Authentisierungs-Credential gebunden werden, für ein Automatisierungsgerät einer Automatisierungsanlage
EP2689553B1 (de) Kraftwagen-steuergerät mit kryptographischer einrichtung
DE102014114607A1 (de) Programmierung von Fahrzeugmodulen mit Remotevorrichtungen und zugehörige Methoden und Systeme
DE112005001666T5 (de) Verfahren zum Bereitstellen von privaten Direktbeweis-Schlüsseln in signierten Gruppen für Vorrichtungen mit Hilfe einer Verteilungs-CD
DE112017007755B4 (de) Schlüsselverwaltungsvorrichtung und kommunikationsgerät
DE112017007431T5 (de) Schlüsselverwaltungssystem, Kommunikationsvorrichtung und Schlüsselteilungsverfahren
EP3157192B1 (de) Verfahren und system für eine asymmetrische schlüsselherleitung
DE202014010905U1 (de) Operationen von nichtflüchtigen Speichern
EP3595237A1 (de) Nachladen kryptographischer programminstruktionen
WO2019242970A1 (de) Kryptografiemodul und betriebsverfahren hierfür
DE102018211597A1 (de) Verfahren zur Einrichtung eines Berechtigungsnachweises für ein erstes Gerät
DE102020213611A1 (de) Verfahren zur Anwendung kryptographischer Funktionen auf Daten unter Verwendung verschiedener Schlüssel
DE102016002508A1 (de) Verfahren zum Laden einer Subskription in ein eingebettetes Sicherheitselement eines mobilen Endgeräts
EP3686763B1 (de) Computer-implementierte vorrichtung und verfahren zum verarbeiten von daten
DE102014222181A1 (de) Verfahren zum Betreiben eines Steuergeräts
DE102020214499A1 (de) Verfahren zum Erzeugen von Schlüsseln und Ersetzen von Teilnehmern in einem Netzwerk
DE102018221954A1 (de) Recheneinrichtung und Verfahren zum Betreiben einer Recheneinrichtung
DE102020214515A1 (de) Verfahren zum Speichern eines digitalen Schlüssels in einem Steuergerät
DE102009053230A1 (de) Verfahren zur Autorisierung eines externen Systems auf einem Steuergerät eines Fahrzeugs, insbesondere eines Kraftfahrzeugs
DE102020214508A1 (de) Verfahren zum Speichern eines digitalen Schlüssels in einem Steuergerät
DE102012021719A1 (de) Übermittlung von Datenelementen von einem entfernten Server an einen Endgeräte Chip
EP3881486B1 (de) Verfahren zur bereitstellung eines herkunftsortnachweises für ein digitales schlüsselpaar

Legal Events

Date Code Title Description
R163 Identified publications notified