[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE112018003506T5 - Verfahren und Systeme zur linearen Schlüsselvereinbarung mit Forward Secrecy unter Verwendung eines unsicheren gemeinsam genutzten Kommunikationsmediums - Google Patents

Verfahren und Systeme zur linearen Schlüsselvereinbarung mit Forward Secrecy unter Verwendung eines unsicheren gemeinsam genutzten Kommunikationsmediums Download PDF

Info

Publication number
DE112018003506T5
DE112018003506T5 DE112018003506.9T DE112018003506T DE112018003506T5 DE 112018003506 T5 DE112018003506 T5 DE 112018003506T5 DE 112018003506 T DE112018003506 T DE 112018003506T DE 112018003506 T5 DE112018003506 T5 DE 112018003506T5
Authority
DE
Germany
Prior art keywords
node
shared
seed
controller
data
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
DE112018003506.9T
Other languages
English (en)
Inventor
Shalabh Jain
Jorge Guajardo Merchan
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
Publication of DE112018003506T5 publication Critical patent/DE112018003506T5/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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Lock And Its Accessories (AREA)
  • Storage Device Security (AREA)

Abstract

Ein Verfahren zur Vereinbarung gemeinsam genutzter Geheimnisse mit Forward Secrecy beinhaltet das Erzeugen einer ersten Vielzahl von Datenbits unter Verwendung eines kryptografisch sicheren Pseudozufallszahlengenerators, der auf einen Knotenstartwert und mindestens einen Indexwert angewendet wird, das Übertragen der ersten Vielzahl von Datenbits durch ein gemeinsam genutztes Kommunikationsmedium gleichzeitig mit dem Übertragen einer zweiten Vielzahl von Datenbits von einem zweiten Knoten, das Identifizieren mit dem zweiten Knoten gemeinsam genutzter geheimer Daten unter Verwendung eines Abschnitts der ersten Vielzahl von Datenbits, die logische Komplemente der zweiten Vielzahl von Datenbits sind, das Erzeugen eines gemeinsam genutzten Startwerts unter Verwendung einer kryptografisch sicheren Einwegfunktion, die auf die gemeinsam genutzten geheimen Daten angewendet wird, und das Erzeugen eines aktualisierten Knotenstartwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf den Knotenstartwert angewendet wird, um den Knotenstartwert zu ersetzen.

Description

  • INANSPRUCHNAHME DER PRIORITÄT
  • Die vorliegende Anmeldung beansprucht den Nutzen der vorläufigen U.S.-Anmeldung 62/551,609 , die den Titel „Method and System for Shared Key and Message Authentication Over an Insecure Shared Communication Medium“ trägt und am 29. August 2017 eingereicht wurde, deren gesamter Inhalt hiermit durch Bezugnahme aufgenommen wird.
  • GEBIET DER TECHNIK
  • Diese Offenbarung betrifft allgemein das Gebiet der Netzwerkkommunikation und insbesondere Systeme und Verfahren für die sichere Kommunikation, einschließlich Forward Secrecy unter Verwendung gemeinsam genutzter Kommunikationsmedien.
  • HINTERGRUND
  • Der Kommunikationsstandard des CAN-Bus (Controller Area Network) stellt eine robuste Kommunikationsschnittstelle bereit, die in einer Vielzahl von Anwendungen verwendet wird, einschließlich, aber nicht beschränkt auf Automobile und andere Transportfahrzeuge, Gebäudeautomation, industrielle Systeme, Robotik und andere Gebiete, in denen die Kommunikation zwischen eingebetteten digitalen Geräten unter Verwendung eines gemeinsam genutzten Kommunikationsmediums erforderlich ist. Viele CAN-Bus-Ausführungsformen nutzen zwei elektrisch leitende Drähte, die als CAN-High (CANH) und CAN-Low (CANL) bezeichnet werden, und elektronische Geräte, die als „Knoten“ bezeichnet werden, verwenden die CANH- und CANL-Drähte als gemeinsam genutztes Kommunikationsmedium zum Übertragen und Empfangen von Daten unter Verwendung eines standardisierten Datenrahmenformats. Der CAN-Bus verwendet normalerweise ein Paar abgeschirmter oder ein Paar ungeschirmter verdrillter Kabel als physisches Medium für die Signalübertragung.
  • Während des normalen Betriebs führen die Knoten einen Busarbitrierungsprozess durch, wenn ein oder mehrere Knoten einen Datenrahmen senden möchten, um sicherzustellen, dass jeweils nur ein Knoten zu einem bestimmten Zeitpunkt Daten auf der CAN-High- und CAN-Low-Leitung überträgt, um eine zuverlässige Kommunikation ohne „Kollisionen“ bereitzustellen, die auftreten, wenn zwei oder mehr Knoten gleichzeitig übertragen. Beim CAN-Bus-Standard werden beim Senden des dominanten Bits ,0' auf dem Bus die Ausgangspins CANH und CANL auf unterschiedliche Spannungspegel gesteuert, und der Unterschied zwischen CANH und CANL ist der Ausgang des CAN-Busses. Auf ähnliche Weise erfolgt die Übertragung eines rezessiven Bits 1', wenn CANH und CANL nicht angesteuert werden und ähnliche Spannungspegel aufweisen. Da der CAN-Bus ein gemeinsam genutztes Kommunikationsmedium ist, kann jeder Knoten, der mit einem CAN-Bus verbunden ist, jedes Bit von Daten lesen, das über den Bus übertragen wird. Diese Eigenschaft des CAN-Busses bereitet Probleme, wenn zwei Knoten Daten privat kommunizieren möchten, die von anderen mit dem Bus verbundenen Knoten nicht verstanden werden können.
  • Jüngste Fortschritte bei CAN-Bus-Implementierungen enthalten Konfigurationen, bei denen zwei mit dem CAN-Bus verbundene Knoten Datenbits gleichzeitig übertragen (zur absichtlichen Verursachung einer Kollision), um kryptografische Schlüsseldaten auf eine Weise auszutauschen, die Knoten von Drittanbietern daran hindert, bestimmen zu können, welcher der beiden übertragenden Knoten tatsächlich Informationen überträgt, die einen Teil des kryptografischen Schlüssels bilden. In einem Teil dieser Techniken für die Schlüsselvereinbarung übertragen zwei Knoten gleichzeitig ein logisches Signal 1 und ein logisches Signal 0, gefolgt von der gleichzeitigen Übertragung des logischen Komplements der ursprünglichen Bits von beiden Knoten, wodurch eine summierte Spannungsdifferenz zwischen den CANH- und CANL-Drähten erzeugt wird, die von jedem der angeschlossenen Knoten erkannt werden kann. Während jedoch alle an den CAN-Bus angeschlossenen Geräte die Übertragung eines dominanten Bits (die logische 0) durch den CAN-Bus erkennen können, können die anderen Knoten, die mit dem CAN-Bus verbunden sind, weil die beiden Knoten gleichzeitig übertagen, nicht bestimmen, welcher der beiden Knoten die dominante 0 oder die nicht dominante 1 zu einem beliebigen Zeitpunkt während der Übertragungssequenz des 0/1-Bits, gefolgt von dem logischen Komplement, überträgt, und nur die beiden übertragenden Knoten wissen, welches Bit übertragen wird. Die beiden Knoten übertragen das logische 0- und das 1-Bit und ihre logischen Komplemente auf zufällige Weise (wenn beide Knoten eine logische 00/11- Sequenz oder eine logische 11/00-Sequenz übertragen, wird die Übertragung ignoriert, da diese Signale es Dritten ermöglichen, die Daten zu bestimmen, die von jedem Knoten übertragen werden), wodurch verhindert wird, dass andere mit dem CAN-Bus verbundene Knoten die Identität des Knotens erkennen, der jedes Bit überträgt. Diese Operation bildet die Grundlage, damit zwei Knoten - und indirekt sogar größere Gruppen von Knoten - Daten austauschen können, die als Basis für gemeinsam genutzte kryptografische Schlüssel dienen. Nachdem die Knoten kryptografische Schlüssel ausgetauscht haben, werden diese gemeinsam genutzten Schlüssel verwendet, um Datenverschlüsselungs- und Authentifizierungs-/Überprüfungsoperationen unter Verwendung von Techniken durchzuführen, die auf dem Fachgebiet anderweitig bekannt sind und es verschiedenen Teilmengen der Knoten auf dem Bus ermöglichen, Daten auszutauschen, die nicht auf unentdeckbare Weise von anderen Knoten, die mit dem CAN-Bus verbunden sind, entschlüsselt oder verändert werden können.
  • Während der vorstehend beschriebene Prozess den sicheren Austausch geheimer Daten ermöglicht, um gemeinsam genutzte kryptografische Schlüssel in einem System, wie etwa dem CAN-Bus, zu erzeugen, das ein unsicheres gemeinsam genutztes Kommunikationsmedium verwendet, stellen die vorhandenen Prozesse keinen effizienten Prozess zum Implementieren von Forward Secrecy bereit, um neue kryptografische Schlüssel zu erzeugen, welche die Geheimhaltung zuvor verwendeter kryptografischer Schlüssel schützen. Wie auf dem Fachgebiet bekannt, ist Forward Secrecy eine Eigenschaft eines kryptografischen Systems, das die verschlüsselten Daten aus früheren Sitzungen vor künftigen Offenlegungen geheimer Schlüssel schützt. Während der vorstehend beschriebene Prozess unter Verwendung neuer Sätze zufällig erzeugter Daten wiederholt werden kann, um neue kryptografische Schlüssel zu erzeugen, die Forward Secrecy für ältere geheime Schlüssel bereitstellen, kann das Durchführen des vorstehend beschriebenen Schlüsselvereinbarungsprozesses mit einer großen Häufigkeit viel Zeit und Netzwerkkapazität in einem System verbrauchen, das ein gemeinsam genutztes Kommunikationsmedium verwendet, was ein ineffizienter Prozess ist. Folglich wären Verbesserungen an Verfahren und Systemen zum Erzeugen gemeinsam genutzter kryptografischer Schlüssel in einem System, das ein unsicheres gemeinsam genutztes Kommunikationsmedium verwendet, von Vorteil, um sowohl Forward Secrecy als auch effizienten Betrieb bereitzustellen.
  • ZUSAMMENFASSUNG
  • In einer Ausführungsform wurde ein Verfahren zur Vereinbarung gemeinsam genutzter Geheimnisse mit Forward Secrecy entwickelt. Das Verfahren beinhaltet das Erzeugen, mit einer Steuerung in einem ersten Knoten, einer ersten Vielzahl von Datenbits unter Verwendung eines kryptografisch sicheren Pseudozufallszahlengenerators (Pseudo-Random Number Generator, PRNG), der auf einen in einem Speicher gespeicherten ersten Knotenstartwert und mindestens einen Indexwert angewendet wird, das Übertragen, mit der Steuerung und einem Transceiver in dem ersten Knoten, von jedem Bit in der ersten Vielzahl von Datenbits durch ein gemeinsam genutztes Kommunikationsmedium gleichzeitig mit dem Übertragen einer zweiten Vielzahl von Datenbits von einem mit dem gemeinsam genutzten Kommunikationsmedium verbundenen zweiten Knoten, die durch den Transceiver in dem ersten Knoten empfangen werden, das Identifizieren, mit der Steuerung in dem ersten Knoten, von mit dem zweiten Knoten gemeinsam genutzten geheimen Daten unter Verwendung eines Abschnitts der ersten Vielzahl von Datenbits, die logische Komplemente der zweiten Vielzahl von Datenbits sind, die gleichzeitig von dem ersten Knoten und dem zweiten Knoten übertragen werden, das Erzeugen, mit der Steuerung in dem ersten Knoten, eines gemeinsam genutzten Startwerts unter Verwendung einer kryptografisch sicheren Einwegfunktion, die auf die gemeinsam genutzten geheimen Daten angewendet wird, wobei der gemeinsam genutzte Startwert in dem Speicher gespeichert wird, und das Erzeugen, mit der Steuerung in dem ersten Knoten, eines aktualisierten Knotenstartwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf den ersten Knotenstartwert angewendet wird, wobei der aktualisierte Knotenstartwert in dem Speicher gespeichert wird, um den ersten Knotenstartwert zu ersetzen.
  • In einer weiteren Ausführungsform beinhaltet das Verfahren das Erzeugen, mit der Steuerung in einem ersten Knoten, eines ersten gemeinsam genutzten geheimen kryptografischen Schlüssels unter Verwendung einer Schlüsselerzeugungsfunktion, die auf die gemeinsam genutzten geheimen Daten angewendet wird, wobei der erste gemeinsam genutzte geheime kryptografische Schlüssel in dem Speicher gespeichert wird.
  • In einer weiteren Ausführungsform beinhaltet das Verfahren das Erzeugen, mit der Steuerung in dem ersten Knoten, eines zweiten gemeinsam genutzten geheimen kryptografischen Schlüssels unter Verwendung der Schlüsselerzeugungsfunktion, die auf den gemeinsam genutzten Startwert angewendet wird, wobei der zweite gemeinsam genutzte geheime kryptografische Schlüssel in dem Speicher gespeichert wird, um den ersten gemeinsam genutzten geheimen kryptografischen Schlüssel zu ersetzen, das Erzeugen, mit der Steuerung in dem ersten Knoten, eines aktualisierten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf den gemeinsam genutzten Startwert angewendet wird, wobei der aktualisierte gemeinsam genutzte Startwert in dem Speicher gespeichert wird, um den gemeinsam genutzten Startwert zu ersetzen.
  • In einer weiteren Ausführungsform beinhaltet das Verfahren das Übertragen, mit dem Transceiver in dem ersten Knoten, jedes Bits in der ersten Vielzahl von Datenbits als eine Sequenz von zwei Übertragungen, wobei die erste Übertragung das Bit in der ersten Vielzahl von Datenbits ist und die zweite Übertragung ein logisches Komplement des Bits in der ersten Vielzahl von Datenbits ist.
  • In einer weiteren Ausführungsform ist die kryptografisch sichere Einwegfunktion des Verfahrens eine kryptografische Hashfunktion.
  • In einer weiteren Ausführungsform ist die Schlüsselerzeugungsfunktion des Verfahrens der kryptografisch sichere PRNG.
  • In einer weiteren Ausführungsform des Verfahrens überträgt der Transceiver in dem ersten Knoten jedes Bit in der ersten Vielzahl von Datenbits über ein gemeinsam genutztes CAN-Bus-Kommunikationsmedium.
  • In einer anderen Ausführungsform wurde ein Verfahren zur Vereinbarung gemeinsam genutzter Geheimnisse mit Forward Secrecy entwickelt. Das Verfahren beinhaltet das Erzeugen, mit einer Steuerung in einem zweiten Knoten, einer ersten Vielzahl von Datenbits unter Verwendung eines kryptografisch sicheren Pseudozufallszahlengenerators (PRNG), der auf einen in dem Speicher des zweiten Knotens gespeicherten ersten gemeinsam genutzten Startwert und mindestens einen Indexwert angewendet wird, wobei der erste gemeinsam genutzte Startwert von dem zweiten Knoten und einem ersten Knoten gemeinsam genutzt wird, die mit einem gemeinsam genutzten Kommunikationsmedium verbunden sind, das Übertragen, mit der Steuerung und einem Transceiver in dem zweiten Knoten, von jedem Bit in der ersten Vielzahl von Datenbits durch das gemeinsam genutzte Kommunikationsmedium gleichzeitig mit dem Übertragen einer zweiten Vielzahl von Datenbits von einem mit dem gemeinsam genutzten Kommunikationsmedium verbundenen dritten Knoten, die von dem Transceiver in dem zweiten Knoten empfangen werden, das Identifizieren, mit der Steuerung in dem zweiten Knoten, von gemeinsam genutzten ersten geheimen Daten mit dem dritten Knoten unter Verwendung eines Abschnitts der ersten Vielzahl von Datenbits, die logische Komplemente der zweiten Vielzahl von Datenbits sind, die gleichzeitig von dem zweiten Knoten und dem dritten Knoten übertragen werden, das Erzeugen, mit der Steuerung in dem zweiten Knoten, eines zweiten gemeinsam genutzten Startwerts unter Verwendung einer kryptografisch sicheren Einwegfunktion, die auf die ersten gemeinsam genutzten geheimen Daten angewendet wird, wobei der zweite gemeinsam genutzte Startwert in dem Speicher gespeichert wird, und das Erzeugen, mit der Steuerung in dem zweiten Knoten, eines aktualisierten ersten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf den ersten gemeinsam genutzten Startwert angewendet wird, wobei der aktualisierte erste gemeinsam genutzte Startwert in dem Speicher gespeichert wird, um den ersten gemeinsam genutzten Startwert zu ersetzen.
  • In einer weiteren Ausführungsform beinhaltet das Verfahren das Erzeugen, mit einer Steuerung in dem ersten Knoten, der ersten Vielzahl von Datenbits unter Verwendung des kryptografisch sicheren PRNG, der auf den in einem Speicher des ersten Knotens gespeicherten Startwert und den mindestens einen Indexwert angewendet wird, das Identifizieren, mit der Steuerung in dem ersten Knoten, der ersten gemeinsam genutzten geheimen Daten basierend auf der ersten Vielzahl von Datenbits und durch Empfangen der Übertragungen des zweiten Knotens und des dritten Knotens unter Verwendung des Transceivers in dem ersten Knoten, um den Abschnitt der ersten Vielzahl von Datenbits, die logische Komplemente der zweiten Vielzahl von Datenbits sind, zu identifizieren, das Erzeugen, mit der Steuerung in dem ersten Knoten, des zweiten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf die ersten gemeinsam genutzten geheimen Daten angewendet wird, wobei der zweite gemeinsam genutzte Startwert in dem Speicher gespeichert wird, und das Erzeugen, mit der Steuerung in dem ersten Knoten, des aktualisierten ersten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf den ersten gemeinsam genutzten Startwert angewendet wird, wobei der aktualisierte erste gemeinsam genutzte Startwert in dem Speicher des ersten Knotens gespeichert wird, um den ersten gemeinsam genutzten Startwert zu ersetzen.
  • In einer weiteren Ausführungsform beinhaltet das Verfahren das Erzeugen, mit der Steuerung in dem ersten Knoten, eines ersten gemeinsam genutzten geheimen kryptografischen Schlüssels in dem Speicher des ersten Knotens unter Verwendung einer Schlüsselerzeugungsfunktion, die auf die ersten gemeinsam genutzten geheimen Daten angewendet wird, und das Erzeugen, mit der Steuerung in dem zweiten Knoten, des ersten gemeinsam genutzten geheimen kryptografischen Schlüssels in dem Speicher des zweiten Knotens unter Verwendung der Schlüsselerzeugungsfunktion, die auf die ersten gemeinsam genutzten geheimen Daten angewendet wird.
  • In einer weiteren Ausführungsform beinhaltet das Verfahren das Erzeugen, mit der Steuerung in dem zweiten Knoten, eines zweiten gemeinsam genutzten geheimen kryptografischen Schlüssels unter Verwendung der Schlüsselerzeugungsfunktion, die auf den zweiten gemeinsam genutzten Startwert angewendet wird, wobei der zweite gemeinsam genutzte geheime kryptografische Schlüssel in dem Speicher gespeichert wird, um den ersten gemeinsam genutzten geheimen kryptografischen Schlüssel zu ersetzen, und das Erzeugen, mit der Steuerung in dem zweiten Knoten, eines aktualisierten zweiten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf den zweiten gemeinsam genutzten Startwert angewendet wird, wobei der aktualisierte zweite gemeinsam genutzten Startwert in dem Speicher des zweiten Knotens gespeichert wird, um den zweiten gemeinsam genutzten Startwert zu ersetzen.
  • In einer weiteren Ausführungsform beinhaltet das Verfahren das Erzeugen, mit der Steuerung in dem zweiten Knoten, einer dritten Vielzahl von Datenbits unter Verwendung des kryptografisch sicheren PRNG, der auf den zweiten gemeinsam genutzten Startwert und den mindestens einen Indexwert angewendet wird, das Übertragen, mit der Steuerung und dem Transceiver in dem zweiten Knoten, von jedem Bit in der dritten Vielzahl von Datenbits durch das gemeinsam genutzte Kommunikationsmedium gleichzeitig mit dem Übertragen einer vierten Vielzahl von Datenbits von dem mit dem gemeinsam genutzten Kommunikationsmedium verbundenen dritten Knoten, die von dem Transceiver in dem zweiten Knoten empfangen werden, das Identifizieren, mit der Steuerung in dem zweiten Knoten, von zweiten gemeinsam genutzten geheimen Daten mit dem dritten Knoten unter Verwendung eines Abschnitts der dritten Vielzahl von Datenbits, die logische Komplemente der vierten Vielzahl von Datenbits sind, die gleichzeitig von dem zweiten Knoten und dem dritten Knoten übertragen werden, das Erzeugen, mit der Steuerung in dem zweiten Knoten, eines zweiten gemeinsam genutzten geheimen kryptografischen Schlüssels in dem Speicher des zweiten Knotens unter Verwendung der Schlüsselerzeugungsfunktion, die auf die zweiten gemeinsam genutzten geheimen Daten angewendet wird, wobei der zweite gemeinsam genutzte geheime kryptografische Schlüssel den ersten gemeinsam genutzten geheimen kryptografischen Schlüssel in dem Speicher des zweiten Knotens ersetzt, und Erzeugen, mit der Steuerung in dem zweiten Knoten, eines aktualisierten zweiten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf die zweiten gemeinsam genutzten geheimen Daten angewendet wird, wobei der aktualisierte zweite gemeinsam genutzte Startwert in dem Speicher des zweiten Knotens gespeichert wird.
  • In einer weiteren Ausführungsform beinhaltet das Verfahren das Erzeugen, mit der Steuerung in dem dritten Knoten, der vierten Vielzahl von Datenbits unter Verwendung des kryptografisch sicheren PRNG, der auf einen in einem Speicher des dritten Knotens gespeicherten Knotenstartwert und den mindestens einen Indexwert angewendet wird, das Identifizieren, mit der Steuerung in dem dritten Knoten, der zweiten gemeinsam genutzten geheimen Daten unter Verwendung eines Abschnitts der dritten Vielzahl von Datenbits, die logische Komplemente der vierten Vielzahl von Datenbits sind, die gleichzeitig von dem zweiten Knoten und dem dritten Knoten übertragen werden, das Erzeugen, mit der Steuerung in dem dritten Knoten, des zweiten gemeinsam genutzten geheimen kryptografischen Schlüssels in dem Speicher des dritten Knotens unter Verwendung der Schlüsselerzeugungsfunktion, die auf die zweiten gemeinsam genutzten geheimen Daten angewendet wird, wobei der zweite gemeinsam genutzte geheime kryptografische Schlüssel den ersten gemeinsam genutzten geheimen kryptografischen Schlüssel in dem Speicher des dritten Knotens ersetzt, und Erzeugen, mit der Steuerung in dem dritten Knoten, eines aktualisierten gemeinsam genutzten Knotenstartwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf den Knotenstartwert angewendet wird, wobei der aktualisierte Knotenstartwert in dem Speicher des dritten Knotens gespeichert wird, um den Knotenstartwert zu ersetzen.
  • In einer weiteren Ausführungsform beinhaltet das Verfahren das Erzeugen, mit einer Steuerung in dem ersten Knoten, der dritten Vielzahl von Datenbits unter Verwendung des kryptografisch sicheren PRNG, der auf den zweiten gemeinsam genutzten Startwert und den mindestens einen Indexwert angewendet wird, das Identifizieren, mit der Steuerung in dem ersten Knoten, der zweiten gemeinsam genutzten geheimen Daten basierend auf der dritten Vielzahl von Datenbits und durch Empfangen der Übertragungen des zweiten Knotens und des dritten Knotens unter Verwendung des Transceivers in dem ersten Knoten, um den Abschnitt der dritten Vielzahl von Datenbits, die logische Komplemente der vierten Vielzahl von Datenbits sind, zu identifizieren, das Erzeugen, mit der Steuerung in dem ersten Knoten, des zweiten gemeinsam genutzten geheimen kryptografischen Schlüssels in dem Speicher des ersten Knotens unter Verwendung der Schlüsselerzeugungsfunktion, die auf die zweiten gemeinsam genutzten geheimen Daten angewendet wird, wobei der zweite gemeinsam genutzte geheime kryptografische Schlüssel den ersten gemeinsam genutzten geheimen kryptografischen Schlüssel in dem Speicher des ersten Knotens ersetzt, und das Erzeugen, mit der Steuerung in dem ersten Knoten, des aktualisierten zweiten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf die zweiten gemeinsam genutzten geheimen Daten angewendet wird, wobei der aktualisierte zweite gemeinsam genutzte Startwert in dem Speicher des ersten Knotens gespeichert wird, um den zweiten gemeinsam genutzten Startwert zu ersetzen.
  • In einer weiteren Ausführungsform beinhaltet das Verfahren das Erzeugen, mit einer Steuerung in dem dritten Knoten, einer dritten Vielzahl von Datenbits unter Verwendung des kryptografisch sicheren PRNG, der auf den in einem Speicher des dritten Knotens gespeicherten zweiten gemeinsam genutzten Startwert und den mindestens einen Indexwert angewendet wird, das Übertragen, mit der Steuerung und einem Transceiver in dem dritten Knoten, von jedem Bit in der dritten Vielzahl von Datenbits durch das gemeinsam genutzte Kommunikationsmedium gleichzeitig mit dem Übertragen einer vierten Vielzahl von Datenbits von einem mit dem gemeinsam genutzten Kommunikationsmedium verbundenen vierten Knoten, die von dem Transceiver in dem dritten Knoten empfangen werden, das Identifizieren, mit der Steuerung in dem dritten Knoten, von zweiten gemeinsam genutzten geheimen Daten mit dem vierten Knoten unter Verwendung eines Abschnitts der dritten Vielzahl von Datenbits, die logische Komplemente der vierten Vielzahl von Datenbits sind, die gleichzeitig von dem dritten Knoten und dem vierten Knoten übertragen werden, das Erzeugen, mit der Steuerung in dem dritten Knoten, eines dritten gemeinsam genutzten Startwerts in dem Speicher des dritten Knotens unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf die zweiten gemeinsam genutzten geheimen Daten angewendet wird, wobei der dritte gemeinsam genutzte Startwert in dem Speicher des dritten Knotens gespeichert wird, und das Erzeugen, mit der Steuerung in dem dritten Knoten, eines zweiten geheimen kryptografischen Schlüssels in dem Speicher des dritten Knotens unter Verwendung der Schlüsselerzeugungsfunktion, die auf die zweiten gemeinsam genutzten geheimen Daten angewendet wird, wobei der zweite gemeinsam genutzte geheime kryptografische Schlüssel den ersten gemeinsam genutzten geheimen kryptografischen Schlüssel in dem Speicher des dritten Knotens ersetzt.
  • In einer weiteren Ausführungsform beinhaltet das Verfahren das Erzeugen, mit der Steuerung in dem zweiten Knoten, einer fünften Vielzahl von Datenbits unter Verwendung des kryptografisch sicheren PRNG, der auf den aktualisierten ersten gemeinsam genutzten Startwert und den mindestens einen Indexwert in Reaktion darauf angewendet wird, dass der dritte Knoten die Gruppe verlässt, die den ersten Knoten, den zweiten Knoten, den dritten Knoten und den vierten Knoten enthält, das Übertragen, mit der Steuerung und dem Transceiver in dem zweiten Knoten, von jedem Bit in der fünften Vielzahl von Datenbits durch das gemeinsam genutzte Kommunikationsmedium gleichzeitig mit dem Übertragen einer sechsten Vielzahl von Datenbits von dem mit dem gemeinsam genutzten Kommunikationsmedium verbundenen vierten Knoten, die von dem Transceiver in dem zweiten Knoten empfangen werden, in Reaktion darauf, dass der dritte Knoten die Gruppe verlässt, die den ersten Knoten, den zweiten Knoten, den dritten Knoten und den vierten Knoten enthält, das Identifizieren, mit der Steuerung in dem zweiten Knoten, von dritten gemeinsam genutzten geheimen Daten mit dem vierten Knoten unter Verwendung eines Abschnitts der fünften Vielzahl von Datenbits, die logische Komplemente der sechsten Vielzahl von Datenbits sind, die gleichzeitig von dem zweiten Knoten und dem vierten Knoten übertragen werden, das Erzeugen, mit der Steuerung in dem zweiten Knoten, eines aktualisierten zweiten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf die dritten gemeinsam genutzten geheimen Daten angewendet wird, wobei der aktualisierte zweite gemeinsam genutzten Startwert in dem Speicher des zweiten Knotens gespeichert wird, und das Erzeugen, mit der Steuerung in dem zweiten Knoten, eines dritten gemeinsam genutzten geheimen kryptografischen Schlüssels in dem Speicher des zweiten Knotens unter Verwendung der Schlüsselerzeugungsfunktion, die auf die dritten gemeinsam genutzten geheimen Daten angewendet wird, um eine verschlüsselte Kommunikation zwischen dem ersten Knoten, dem zweiten Knoten und dem vierten Knoten, jedoch nicht dem dritten Knoten, durch das gemeinsam genutzte Kommunikationsmedium zu ermöglichen.
  • In einer weiteren Ausführungsform beinhaltet das Verfahren das Erzeugen, mit der Steuerung in dem ersten Knoten, der fünften Vielzahl von Datenbits basierend auf dem aktualisierten ersten gemeinsam genutzten Startwert und dem mindestens einen Indexwert unter Verwendung des kryptografisch sicheren PRNG in Reaktion darauf, dass der dritte Knoten die Gruppe verlässt, die den ersten Knoten, den zweiten Knoten, den dritten Knoten und den vierten Knoten enthält, das Identifizieren, mit der Steuerung in dem ersten Knoten, der dritten gemeinsam genutzten geheimen Daten basierend auf der fünften Vielzahl von Datenbits durch Empfangen der Übertragungen des zweiten Knotens und des vierten Knotens unter Verwendung des Transceivers in dem ersten Knoten, um den Abschnitt der fünften Vielzahl von Datenbits zu identifizieren, die logische Komplemente der sechsten Vielzahl von Datenbits sind, das Erzeugen, mit der Steuerung in dem ersten Knoten, des aktualisierten zweiten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf die dritten gemeinsam genutzten geheimen Daten angewendet wird, wobei der aktualisierte zweite gemeinsam genutzte Startwert in dem Speicher des ersten Knotens gespeichert wird, und das Erzeugen, mit der Steuerung in dem ersten Knoten, des dritten gemeinsam genutzten geheimen kryptografischen Schlüssels in dem Speicher des ersten Knotens unter Verwendung der Schlüsselerzeugungsfunktion, die auf die dritten gemeinsam genutzten geheimen Daten angewendet wird, um eine verschlüsselte Kommunikation zwischen dem ersten Knoten, dem zweiten Knoten und dem vierten Knoten, jedoch nicht dem dritten Knoten, durch das gemeinsam genutzte Kommunikationsmedium zu ermöglichen.
  • In einer weiteren Ausführungsform ist die kryptografisch sichere Einwegfunktion des Verfahrens eine kryptografische Hashfunktion.
  • In einer weiteren Ausführungsform ist die Schlüsselerzeugungsfunktion des Verfahrens der kryptografisch sichere PRNG.
  • In einer weiteren Ausführungsform überträgt der Transceiver in dem zweiten Knoten jedes Bit in der ersten Vielzahl von Datenbits durch ein gemeinsam genutztes CAN-Bus-Kommunikationsmedium.
  • Figurenliste
    • 1 ist ein schematisches Diagramm eines Kommunikationssystems, das ein unsicheres gemeinsam genutztes Kommunikationsmedium verwendet.
    • 2 ist ein Blockdiagramm eines Prozesses einer Runde zur Erzeugung eines sicheren gemeinsam genutzten geheimen kryptografischen Schlüssels mit Forward Secrecy für zwei Knoten in dem System von 1.
    • 3 ist ein Blockdiagramm eines Prozesses zur Erzeugung eines sicheren gemeinsam genutzten geheimen kryptografischen Schlüssels mit Forward Secrecy für drei oder mehr Knoten in dem System von 1.
    • 4 ist ein Blockdiagramm eines Prozesses für einen interaktiven Neuverschlüsselungsprozesses, der einen neuen gemeinsam genutzten geheimen kryptografischen Schlüssel in dem System von 1 erzeugt.
    • 5 ist ein Blockdiagramm eines Prozesses zum Entfernen eines Knotens aus einer Gruppe von Knoten, die einen geheimen kryptografischen Schlüssel in dem System von 1 gemeinsam nutzen.
    • 6 ist ein Blockdiagramm eines Prozesses für einen nicht interaktiven Neuverschlüsselungsprozesses, der einen neuen gemeinsam genutzten geheimen kryptografischen Schlüssel in dem System von 1 erzeugt.
  • DETAILLIERTE BESCHREIBUNG
  • Zu Zwecken des Förderns eines Verständnisses der Prinzipien der hierin offenbarten Ausführungsformen wird nun auf die Zeichnungen und Beschreibungen der folgenden schriftlichen Spezifikation Bezug genommen. Durch die Bezugnahme wird keine Einschränkung des Umfangs des Gegenstands beabsichtigt. Diese Offenbarung beinhaltet auch jegliche Änderungen und Modifikationen der veranschaulichen Ausführungsformen und beinhaltet weitere Anwendungen der Prinzipien der offenbarten Ausführungsformen, wie sie Fachleuten auf dem Gebiet, auf das sich diese Offenlegung bezieht, normalerweise in den Sinn kommen würden.
  • Wie hier verwendet, bezieht sich der Begriff „Bit“ auf einen Binärwert, der einen von zwei diskreten Werten aufweisen kann, die im Text typischerweise als „0“ oder „1“ dargestellt werden. Kommunikationssysteme erzeugen Signale mit unterschiedlichen Spannungspegeln, Phasen oder anderen Signaleigenschaften, die die beiden Werte eines Binärbits während der Datenübertragung darstellen. Wie auf dem Fachgebiet bekannt ist, beinhalten digitale Daten eine Reihe von einem oder mehreren Bits, die Zahlen, Buchstaben oder irgendeine andere Form von Daten darstellen können, und insbesondere kann ein Satz von Bits einen kryptografischen Schlüssel bilden. Wie hierin verwendet, sind die Begriffe „logisches Komplement“ oder „Umkehrwert“, wie sie auf Binärwerte angewendet werden, austauschbar und beziehen sich auf einen Datensatz oder eine Operation, die die Werte jedes Bits von Binärdaten ändert (z. B. ist die Binärsequenz „101“ das logische Komplement von „010“). Wie nachstehend ausführlicher beschrieben wird, hinterlässt ein Protokoll zur sicheren Schlüsselvereinbarung verschiedene Knoten mit Sätzen entsprechender Bits für gemeinsam genutzte Schlüssel, die logische Komplemente voneinander sind. Ausgewählte Knotensätze führen eine Umkehroperation durch, sodass alle Knoten denselben gemeinsam genutzten Schlüssel aufweisen.
  • Wie hierin verwendet, bezieht sich der Begriff „Schlüssel“ oder „kryptografischer Schlüssel“ auf eine Sequenz von Bits, die von zwei oder mehr Knoten in einem Kommunikationsnetz verwendet werden, um kryptografische Operationen durchzuführen, einschließlich der Verschlüsselung und Entschlüsselung von Daten und der Authentifizierung übertragener Daten. Ein „gemeinsam genutzter Schlüssel“ bezieht sich auf einen Schlüssel, der zwei oder mehr Knoten bekannt ist, die miteinander kommunizieren, der gemeinsam genutzte Schlüssel ist jedoch Dritten, einschließlich Angreifern, nicht bekannt. Die hierin beschriebenen Verfahren und Systeme ermöglichen es zwei oder mehr Knoten in einem Kommunikationsnetzwerk, gemeinsam genutzte Schlüssel zu erzeugen und zu aktualisieren, um Forward Secrecy bereitzustellen, wodurch ein Angreifer daran gehindert wird, auf ältere gemeinsam genutzte Schlüssel aus früheren Kommunikationsrunden zuzugreifen, falls der Angreifer einen gemeinsam genutzten Schlüssel aus einer späteren Kommunikationsrunde erhält.
  • Wie hierin verwendet, bezieht sich der Begriff „gemeinsam genutztes Kommunikationsmedium“ auf eine physische Netzwerkverbindung und ein Netzwerkkommunikationsprotokoll, in dem mehrere Knoten Daten auf eine Weise übertragen und empfangen, bei der jede Übertragung von einem einzelnen Knoten von allen anderen Knoten empfangen wird, die mit dem gemeinsam genutzten Kommunikationsmedium verbunden sind. In einem gemeinsam genutzten Kommunikationsmedium können zwei oder mehr Knoten Daten gleichzeitig übertragen. Das gemeinsam genutzte Kommunikationsmedium wird als „unsicherer“ oder „nicht vertrauenswürdiger“ Kommunikationskanal betrachtet, da angenommen wird, dass ein Angreifer in der Lage ist, alle Kommunikationen zu überwachen, die über das gemeinsam genutzte Kommunikationsmedium stattfinden.
  • Zwei nicht einschränkende Beispiele für gemeinsam genutzte Kommunikationsmedien umfassen den Kommunikationsbus und das Protokoll des CAN (Controller Area Network)-Busses und des I2C-Busses. In diesen beiden Ausführungsformen können alle Knoten, die kommunikativ mit dem gemeinsam genutzten Kommunikationsmedium verbunden sind, alle Signale beobachten, die durch das Kommunikationsmedium übertragen werden, einschließlich der Signale, die nicht für den Empfang durch einen bestimmten Knoten vorgesehen sind. Wie nachfolgend ausführlicher beschrieben, ist jeder Knoten eine Computervorrichtung, die einen Transceiver enthält, der konfiguriert ist, um Signale über das gemeinsam genutzte Kommunikationsmedium an einen oder mehrere zusätzliche Knoten sowohl zu übertragen als auch zu empfangen.
  • Das CAN-Bussystem verwendet Differenzspannung für Signale, bei denen in zwei Knoten, die gleichzeitig eine logische 0 (hohe Spannung) und eine logische 1 (niedrige Spannung) übertragen, nur einer der Knoten eine Änderung der Spannungsdifferenz auf den CANH- und CANL-Leitern hervorruft. In den meisten CAN-Ausführungsformen werden sowohl der CANH- als auch der CANL-Leiter standardmäßig auf einen vorbestimmten Spannungspegel (z. B. 2,5 V) betrieben, und wenn die Differenz zwischen den Spannungen an CANH und CANL null ist oder innerhalb eines vorbestimmten Betriebsschwellenwerts von null liegt, dann wird eine Übertragung als „rezessiv“ bezeichnet, was einer logischen 1 entspricht, und die mit dem CAN-Bus verbundenen Knoten erkennen die logische 1 anhand der Null- oder Niederspannungsdifferenz. Wenn jedoch ein Knoten eine logische 0 überträgt, betreibt der Knoten den CANH-Leiter auf einem höheren Spannungspegel über 2,5 V und die CANL-Leitung auf einen niedrigeren Spannungspegel unter 2,5 V. Die Spannungsdifferenz zwischen den CANH- und CANL-Leitern kann leicht von anderen Knoten erkannt werden, die mit dem CAN-Bus verbunden sind, um die logischen Signale 1 und 0 zu erkennen.
  • Wie hierin verwendet, beziehen sich die Begriffe „kryptografisch sichere Einwegfunktion“, oder einfacher „Einwegfunktion“, auf eine Art von Berechnungsfunktion, die von einer Computervorrichtung durchgeführt wird, die einen rechnerisch effizienten Prozess zum Erzeugen eines Ausgabewerts für einen gegebenen Eingabewert bereitstellt, bei dem jedoch die umgekehrte Operation des Ableitens des ursprünglichen Eingabewerts, wenn dieser mit dem Ausgabewert bereitgestellt wird, rechnerisch unmöglich ist, vorausgesetzt, der Eingabewert wird zufällig aus einem ausreichend großen Bereich möglicher Eingaben ausgewählt. Eine kryptografisch sichere Einwegfunktion verlangt es einem polynomial begrenzten Angreifer ab, eine rechnerisch unmögliche Anzahl von Brute-Force-Einwegfunktionsoperationen über einen größeren Bereich möglicher Eingaben durchzuführen, um die ursprüngliche Eingabe zu identifizieren. Die hierin beschriebenen Einwegfunktionen verwenden die Notation y = g(r), wobei y die Ausgabe der Einwegfunktion g ist und r die Eingabe der Einwegfunktion g ist. Da die kryptografisch sichere Einwegfunktion deterministisch ist, kann ein konsistenter Ausgabewert durch einen oder mehrere Knoten erneut erzeugt werden, die jeweils die Einwegfunktion g auf eine einzelne Eingabe r anwenden. Beispiele für die kryptografisch sichere Einwegfunktionen g enthalten kryptografische Hashfunktionen, wie etwa die kryptografischen Hashfunktionen SHA-256 und SHA-3.
  • Wie hierin verwendet, beziehen sich die Ausdrücke „kryptografisch sichere Pseudozufallsfunktion“, oder einfacher „Pseudozufallsfunktion“ (Pseudo-Random Number Generator, PRNG), auf eine Art von Berechnungsfunktion, die von einer Computervorrichtung durchgeführt wird, die eine Ausgabe erzeugt, die für einen polynomial begrenzten Angreifer nicht von einem Zufallswert unterscheidbar ist, wenn der kryptografisch sichere PRNG mit zwei Eingabewerten, k und ind, bereitgestellt wird, wobei k selbst ein zufällig oder scheinbar zufällig ausgewählter Wert ist, der einem Angreifer zuvor nicht bekannt ist, und ind ein beliebiger Wert sein kann, einschließlich eines nicht zufälligen Indexwerts, der nachstehend ausführlicher beschrieben wird. Die kryptografisch sichere PRNG-Funktion f wird mathematisch beschrieben als y = f(k,ind). Der Wert von k kann ein zuvor erzeugter kryptografischer Schlüsselwert, ein Satz zufällig erzeugter Daten oder die Ausgabe der vorstehend beschriebenen kryptografisch sicheren Einwegfunktion sein. Der kryptografisch sichere PRNG ermöglicht das Erzeugen mehrerer Ausgaben, die von echten Zufallsausgabewerten für einen einzelnen Startwert k nicht zu unterscheiden sind, indem verschiedene Indexwerte ind verwendet werden, ohne einem Angreifer den Wert von k offenzulegen, selbst wenn angenommen wird, dass der Wert von ind dem Angreifer bekannt ist. Da der kryptografisch sichere PRNG deterministisch ist, kann dieselbe Zufallsausgabe unter Verwendung des Startwerts k und des Indexwerts ind erneut erzeugt werden. Die hierin beschriebenen kryptografisch sicheren PRNGs sind ebenfalls Arten von kryptografisch sicheren Einwegfunktionen, aber nicht alle kryptografisch sicheren Einwegfunktionen sind kryptografisch sichere PRNGs. Beispiele für Pseudozufallsfunktionen sind HMAC-Funktionen (Keyed-Hashed Message Authentication Code), die HMAC-SHA256 oder eine Blockchiffre umfassen, wie etwa die Blockchiffreimplementierung des Advanced Encryption System (AES). Während HMAC-Funktionen für die Authentifizierung einer Nachricht (wobei der Index ind die Nachricht ist) durch Parteien, die einen geheimen Schlüssel k gemeinsam nutzen, auf dem Fachgebiet allgemein bekannt sind, sind in den hierin beschriebenen Ausführungsformen die HMAC-Funktionen stattdessen Ausführungsformen eines PRNG und werden nicht zur Authentifizierung von Daten verwendet.
  • Wie hierin verwendet, bezieht sich der Begriff „Schlüsselerzeugungsfunktion“ K auf eine Funktion, die einen gemeinsam genutzten kryptografischen Schlüssel erzeugen kann, wenn ein Eingabewert bereitgestellt wird. Die Schlüsselerzeugungsfunktion K ist eine andere Art von Einwegfunktion, die die ursprüngliche Eingabe nicht offenlegt, wenn einem Angreifer der Ausgabewert des gemeinsam genutzten kryptografischen Schlüssels bereitgestellt wird. In einigen hierin beschriebenen Ausführungsformen dient die kryptografisch sichere PRNG-Funktion f auch als Schlüsselerzeugungsfunktion K, es können jedoch auch andere Schlüsselerzeugungsfunktionen verwendet werden.
  • 1 zeigt ein System 100, das mehrere Computervorrichtungen enthält, die als „Knoten“ bezeichnet werden, die unter Verwendung eines unsicheren gemeinsam genutzten Kommunikationsmediums miteinander kommunizieren. Das System 100 enthält eine Vielzahl von Knoten 104A, 104B, 104C und 104D, die jeweils mit einem gemeinsam genutzten Kommunikationsmedium 102 kommunikativ verbunden sind. Während 1 vier Knoten 104A-104D zu Veranschaulichungszwecken zeigt, enthalten andere Ausführungsformen des Systems 100 mindestens zwei Knoten oder eine größere Anzahl von fünf oder mehr Knoten. In der beispielhaften Ausführungsform von 1 verwendet das System 100 einen CAN-Bus und das gemeinsam genutzte Kommunikationsmedium 102 implementiert die elektrischen CANH- und CANL-Leiter, aber alternative Ausführungsformen können andere Ausführungsformen eines gemeinsam genutzten Kommunikationsmediums verwenden, die es allen verbundenen Knoten ermöglichen, die Signale zu beobachten, die durch das gemeinsam genutzte Kommunikationsmedium übertragen werden. 1 zeigt auch einen Angreifer 150. Der Angreifer 150 ist nicht Teil des Systems 100, es wird jedoch angenommen, dass der Angreifer 150 alle Kommunikationen beobachten kann, die über das gemeinsam genutzte Kommunikationsmedium 102 stattfinden. Zusätzlich kann der Angreifer 150 in einigen Fällen den gegenwärtigen kryptografischen Schlüssel und andere Daten aus dem Speicher eines der Knoten 104A-104D extrahieren. Wie nachstehend ausführlicher beschrieben, implementiert das System 100 ein System für die Vereinbarung und Aktualisierung gemeinsam genutzter Schlüssel, das Forward Secrecy bereitstellt, um den Angreifer 150 daran zu hindern, ältere Nachrichten zu entschlüsseln, die unter Verwendung älterer kryptografischer Schlüssel verschlüsselt wurden, selbst wenn der Angreifer 150 einen später erzeugten kryptografischen Schlüssel wiederherstellt.
  • 1 zeigt den Knoten 104A des Systems 100 mit mehr Einzelheiten, und die anderen Knoten 104B-104D weisen eine ähnliche Konfiguration wie der Knoten 104A auf. Der Knoten 104A enthält eine Steuerung 108, die operativ mit einem CAN-Transceiver 112 und einem Speicher 120 verbunden ist. Der CAN-Transceiver 112 enthält Verbindungen zu den CANH- und CANL-Leitern in dem gemeinsam genutzten Kommunikationsmedium 102, um es dem Knoten 104A zu ermöglichen, Daten zu den anderen Knoten 104A-104D zu senden und zu empfangen.
  • In dem Knoten 104A ist die Steuerung 108 eine digitale Logikvorrichtung, die ein oder mehrere Elemente, wie etwa einen Mikroprozessor, einen Mikrocontroller, ein feldprogrammierbares Gate-Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC) und dergleichen, enthält. In einigen Ausführungsformen umfasst die Steuerung 108 einen Hardware-Zufallszahlengenerator oder ist operativ mit einem externen Hardware-Zufallszahlengenerator oder einer Entropiequelle zur Erzeugung von Zufallsdaten verbunden. Die Steuerung 108 führt gespeicherte Anweisungsdaten 124 aus, die in dem Speicher 120 gespeichert sind, um die hierin beschriebenen Operationen zu implementieren. Insbesondere steuert die Steuerung 108 den CAN-Transceiver 112, um Daten über das gemeinsam genutzte Kommunikationsmedium 102 zu empfangen und zu übertragen. Die Steuerung 108 steuert auch den CAN-Transceiver 112, um einen sicheren Datenaustauschprozess mit einem anderen Knoten in dem System 100 zu implementieren, und erzeugt kryptografische Schlüssel mit Forward Secrecy, wie hierin beschrieben.
  • In dem Knoten 104A ist der Speicher 120 eine digitale Datenspeichervorrichtung, die sowohl flüchtige Speichervorrichtungen, wie etwa einen Direktzugriffsspeicher (RAM), als auch nichtflüchtige Speichervorrichtungen, wie etwa eine magnetische Festplatte oder ein Solid-State-Datenspeicherlaufwerk, enthält. Der Speicher 120 speichert die Anweisungsdaten 124, einen Knotenstartwert 130, einen Indexwert 132, einen oder mehrere gemeinsam genutzte Startwerte 134, ein Rundenzähler 136 für Ausführungsformen, die Gruppenschlüssel unter drei oder mehr Knoten gemeinsam nutzen, den gemeinsam genutzten geheimen kryptografischen Schlüssel 140 und die Pseudozufallsdaten 144. Der Knotenstartwert 130 ist ein Wert, der einzeln von jedem Knoten unter Verwendung eines Generators für echte oder Pseudozufallszahlen erzeugt wird, wobei der Knotenstartwert 130 nicht mit anderen Knoten in dem System 100 gemeinsam genutzt wird. Die gemeinsam genutzten Startwerte 134 enthalten einen oder mehrere Startwerte, die von mindestens zwei Knoten in dem System 100 unter Verwendung eines Kommunikationsprozesses gemeinsam genutzt werden, der verhindert, dass der Angreifer 150 auf die gemeinsam genutzten Startwerte 134 zugreift. Wie nachstehend ausführlicher beschrieben, wendet die Steuerung 108 während des Betriebs die kryptografisch sichere Einwegfunktion g an, um die Werte des Knotenstartwerts 130 und der gemeinsam genutzten Startwerte 134 als Teil eines Prozesses zur Aufrechterhaltung von Forward Secrecy für den gemeinsam genutzten geheimen kryptografischen Schlüssel 140 zu aktualisieren. Die Pseudozufallsdaten 144 werden entweder basierend auf dem Knotenstartwert 130 oder einem gemeinsam genutzten Startwert 134 sowie dem Indexwert 132 unter Verwendung eines kryptografisch sicheren PRNG erzeugt. In der Ausführungsform von 1 enthalten die gespeicherten Anweisungsdaten 124 die programmierten Anweisungen, die die Steuerung 108 ausführt, um die hierin beschriebenen Funktionen zu implementieren, einschließlich der kryptografisch sicheren Einwegfunktion und des kryptografisch sicheren PRNG.
  • In dem Knoten 104A ist der CAN-Transceiver 112 ein kommerziell verfügbarer Sender und Empfänger, der eine elektrische Verbindung zu sowohl der CANH- als auch der CANL-Leitung in dem gemeinsam genutzten Kommunikationsmedium 102 bereitstellt. Der CAN-Transceiver 112 sendet die Signale für die nicht dominanten Bits (die logische 1) und die dominanten Bits (die logische 0) während des Betriebs des Knotens 104A aus. Der CAN-Transceiver 112 empfängt auch Signale, die über die CANH- und CANL-Leitungen übertragen werden, und kann sowohl wenn der CAN-Transceiver 112 im Leerlauf ist (keine Übertragung) als auch wenn er aktiv Daten sendet, Signale erkennen, die von anderen Knoten übertragen werden. In einigen Ausführungsformen ist der CAN-Transceiver 112 mit der Steuerung 108 in eine einzelne Solid-State-Vorrichtung in einer System-on-Chip (SoC)-Konfiguration integriert. Der CAN-Transceiver 112 ist eine Ausführungsform einer allgemeineren Netzwerkschnittstellenvorrichtung, die es dem Knoten 104A ermöglicht, Daten über das gemeinsam genutzte Kommunikationsmedium 102 zu senden und zu empfangen. In anderen Ausführungsformen ist die Netzwerkschnittstellenvorrichtung ein Transceiver für den I2C-Bus oder ein anderer Transceiver, der Kommunikationen durch ein gemeinsam genutztes Kommunikationsmedium bereitstellt.
  • In 1 ist der Angreifer 150 eine andere Computervorrichtung, die mit den CANH- und CANL-Leitungen in dem gemeinsam genutzten Kommunikationsmedium 102 verbunden ist. Es wird angenommen, dass der Angreifer 150 in der Lage ist, alle Übertragungen zu überwachen, die über das gemeinsam genutzte Kommunikationsmedium 102 erfolgen, weshalb das gemeinsam genutzte Kommunikationsmedium 102 hierin als „unsicher“ bezeichnet wird. In einigen Fällen ist der Angreifer 150 über einen externen Schnittstellenanschluss, wie etwa einen On-Board-Diagnose-II-Anschluss (OBD-II) oder eine andere elektrische Verbindung, mit einem CAN-Bussystem verbunden. In anderen Fällen ist der Angreifer 150 ein anderer Knoten in dem System 100, der von einem Angreifer aufgedeckt wurde. Die hierin beschriebenen Ausführungsformen stellen Forward Secrecy bereit, um ältere kryptografische Schlüssel und die entsprechenden verschlüsselten Übertragungen von den Knoten 104A-104D vor dem Angreifer 150 zu schützen, selbst wenn der Angreifer 150 in der Lage ist, einen neueren kryptografischen Schlüssel in dem System 100 aufzudecken.
  • 2 zeigt einen Prozess 200, der für den Betrieb eines Paares von Knoten, die mit einem gemeinsam genutzten Kommunikationsmedium verbunden sind, eine Runde eines Austauschprozesses geheimer Daten mit Forward Secrecy durchführt. Der Prozess 200 kann von einem einzelnen Knotenpaar ausgeführt werden, um einen gemeinsam genutzten kryptografischen Schlüssel zwischen zwei Knoten oder einem Knotenpaar in einer größeren Gruppe von drei oder mehr Knoten als Teil eines Prozesses zum Austauschen gemeinsam genutzter geheimer Daten und zum Erzeugen eines gemeinsam genutzten geheimen kryptografischen Schlüssels zwischen größeren Gruppen von Knoten zu erzeugen, wie dies nachstehend in 3 ausführlicher beschrieben wird. In der nachfolgenden Beschreibung bezieht sich eine Beschreibung des Prozesses 200, der eine Funktion oder Aktion durchführt, auf den Betrieb einer oder mehrerer Steuerungen, um gespeicherte Programmanweisungen auszuführen, um die Funktion oder Aktion in Verbindung mit anderen Komponenten in einem Kommunikationssystem durchzuführen. Der Prozess 200 wird in Verbindung mit dem System 100 von 1 zu Veranschaulichungszwecken beschrieben.
  • Der Prozess 200 beginnt, indem jeder von zwei Knoten, wie etwa die Knoten 104A und 104B in 1, einen Startwert und einen anfänglichen Indexwert erzeugt, um einen Prozess zum Austauschen von n Bits gemeinsam genutzter geheimer Daten einzuleiten (Block 204). Nimmt man Knoten 104A als Beispiel, so erzeugt die Steuerung 108 einen zufälligen Knotenstartwert 130 unter Verwendung eines Hardware- oder Software-Zufallszahlengenerators, wobei es sich um den kryptografisch sicheren PRNG oder einen anderen beliebigen Zufallszahlengenerator handeln kann, der einen Wert erzeugt, der durch den Angreifer 150 nicht vorhergesagt werden kann. Der Knotenstartwert 130 in dem Speicher 120 von jedem der Knoten 104A-104D wird niemals direkt mit anderen Knoten in dem System 100 gemeinsam genutzt. Wie nachstehend ausführlicher beschrieben, verwendet ein Knoten in nachfolgenden Kommunikationsrunden einen zuvor erzeugten gemeinsam genutzten Startwert 134 als Anfangswert, nachdem eine Gruppe von mindestens zwei Knoten gemeinsam genutzte geheime Daten erstellt hat, jedoch verwendet jeder Knoten in dem ersten Knotenpaar in einer Gruppe den einzelnen Knotenstartwert 130 für eine erste Runde, um einen ersten Satz gemeinsam genutzter geheimer Daten zu erstellen. Die Steuerung 108 erzeugt auch einen anfänglichen Indexwert 132, der null, ein anderer vorbestimmter Wert oder ein anderer zufällig erzeugter Indexwert sein kann. Die n Bits entsprechen einer Menge gemeinsam genutzter geheimer Daten, die einen ausreichenden Zahlenraum bereitstellen, um es den Knoten 104A und 104B zu ermöglichen, einen gemeinsam genutzten geheimen kryptografischen Schlüssel zu erzeugen, ohne den Angreifer 150 in die Lage zu versetzen, den geheimen Schlüssel auf praktische Weise zu erraten. Nicht einschränkende Beispiele für n sind 64, 80 oder 128 Bits.
  • Der Prozess 200 wird fortgesetzt, während jeder Knoten den kryptografisch sicheren PRNG verwendet, um einen Satz von 1 pseudozufälligen Datenbits 144 basierend auf dem Knotenstartwert 130 und dem Indexwert 132 zu erzeugen (Block 208). Wie vorstehend beschrieben, erzeugt der kryptografisch sichere PRNG f eine Ausgabe y = f (k,ind), wobei k der Knotenstartwert 130 ist, wenn ein Knoten anfänglich zu einer Gruppe oder einem der gemeinsam genutzten Startwerte 134 hinzugefügt wird, wenn ein Knoten bereits in einer Gruppe ist und mit einem anderen Knoten kommuniziert, der der Gruppe hinzugefügt wird. Der Begriff ind ist der Indexwert 132. Die Steuerung 108 führt eine oder mehrere Operationen mit dem PRNG durch, um die Ausgabe y mit einer Länge von 1 Bits von Pseudozufallsdaten 144 zu erzeugen. In einigen Ausführungsformen erzeugt jede Operation des PRNG die Pseudozufallsausgabe y mit 1 = 2n Datenbits, da die Knoten im Durchschnitt Übertragungen mit 2n eindeutigen Paaren von komplementären Bits durchführen müssen, um n Datenbits auf sichere Weise erfolgreich auszutauschen, obwohl dies keine Voraussetzung für den Betrieb des Prozesses 200 ist. Wie vorstehend beschrieben, stellt das Erzeugen der Pseudozufallsdaten 144 dem Angreifer 150 keine nützlichen Informationen über die ursprünglichen Startwerte 130 oder 134 bereit, selbst wenn angenommen wird, dass der Angreifer alle 1 Bits in den Pseudozufallsdaten 144 beobachten kann und den Indexwert 132 kennt.
  • Der Prozess 200 fährt fort, indem die zwei Knoten einen sicheren Datenaustausch unter Verwendung des unsicheren gemeinsam genutzten Kommunikationsmediums 102 durch gleichzeitige Übertragung der l Bits der Pseudozufallsdaten durchführen (Block 212). Im Einzelnen überträgt die Steuerung 108 in jedem der Knoten 104A und 104B ein Bit der Pseudozufallsdaten 144, das entweder eine logische 0 oder eine logische 1 ist, gleichzeitig für eine vorbestimmte Bitübertragungszeit durch das gemeinsam genutzte Kommunikationsmedium 102 unter Verwendung des CAN-Transceivers 112. Jeder Knoten überträgt anschließend das logische Komplement des Bitwerts zu der vorbestimmten Bitübertragungszeit. Somit überträgt jeder Knoten jedes Bit der Pseudozufallsdaten 144 als eine Sequenz von zwei Übertragungen des Bits und des logischen Komplements des Bits. Da jeder Knoten einen von zwei logischen Werten übertragen kann, gibt es vier mögliche gleichzeitige Übertragungssequenzen für jeden Satz von Bits: 1. Der Knoten 104A überträgt eine 0,1-Sequenz, während der Knoten 104B auch eine 0,1-Sequenz überträgt. 2. Der Knoten 104A überträgt eine 0,1-Sequenz, während der Knoten 104B eine 1,0-Sequenz überträgt. 3. Der Knoten 104A überträgt eine 1,0-Sequenz, während der Knoten 104B eine 0,1-Sequenz überträgt. Und 4. Der Knoten 104A überträgt eine 1,0-Sequenz, während der Knoten 104B auch eine 1,0-Sequenz überträgt.
  • Wie vorstehend beschrieben, erzeugt in dem CAN-Bussystem eine Übertragung einer logischen 0 eine dominante Spannung zwischen den CANL- und CANH-Leitungen, während eine Übertragung einer logischen 1 eine rezessive Spannung zwischen den CANL- und CANH-Leitungen in dem gemeinsam genutzten Kommunikationsmedium 102 erzeugt. Falls somit beide Knoten das gleiche Bit (entweder eine logische 0 oder eine logische 1) gleichzeitig übertragen, kann der Angreifer 150 durch Messen des Spannungspegels in den CANH- und CANL-Leitungen bestimmen, dass beide Knoten das gleiche Bit senden. Somit verwerfen in den vorstehenden Situationen 1 und 4, in denen beide Knoten die 0,1/0,1-Sequenz oder die 1,0/1,0-Sequenz übertragen, die beiden Knoten 104A und 104B die übertragenen Bits, von denen keines Teil der gemeinsam genutzten geheimen Daten wird. In den Situationen 2 und 3 kann der Angreifer 150 jedoch, wenn die beiden Knoten 104A und 104B logische komplementäre Sequenzen der Bits 0,1/1,0 oder 1,0/0,1 übertragen, die Identität des Knotens 104A oder 104B nicht bestimmen, die die logische 0 oder logische 1 übertragen haben. Die Steuerung 108 in jedem der übertragenden Knoten 104A und 104B kann jedoch die Sequenz bestimmen, da die Steuerung 108 eine a priori-Information bezüglich der von dem CAN-Transceiver 112 übertragenen Bits besitzt, und der CAN-Transceiver 112 erkennt auch den Gesamtspannungspegel in den CANH- und CANL-Leitungen, um es der Steuerung 108 zu ermöglichen, das von dem zweiten Knoten während der gleichzeitigen Übertragungssequenz übertragene Bit zu erkennen.
  • Während des Prozesses 200 führen die beiden Knoten 104A und 104B die Übertragung des Blocks 212 durch, um G Datenbits sicher auszutauschen, wobei die Gesamtzahl der Bits aufgrund der Zufälligkeit der Übertragung schwankt, da im Durchschnitt die Hälfte der Übertragungen wie vorstehend beschrieben verworfen werden. Wenn die zwei Knoten G Bits der Pseudozufallsdaten 144 erfolgreich austauschen, wobei G <n, und den aktuellen Satz von Pseudozufallsdaten aufbrauchen, was bedeutet, dass die zwei Knoten die n Bits von geheimen Daten noch nicht auf sichere Weise ausgetauscht haben (z. B. G = 48 Bits, während n = 80 Bits) (Block 216), dann fährt der Prozess 200 mit dem Datenaustausch fort, indem jeder Knoten den Indexwert 132 ändert (Block 220), jeder Knoten einen neuen Satz von Pseudozufallsdaten 144 unter Verwendung des geänderten Indexwerts 132 und des gleichen Startwerts 134 erneut erzeugt (Block 208) und die beiden Knoten den gleichzeitigen Übertragungsprozess erneut unter Verwendung der neu erzeugten Pseudozufallsdaten durchführen (Block 212). In einer Ausführungsform erhöht jeder Knoten den Indexwert 132 um eins oder einen anderen vorbestimmten Wert, um einen geänderten Index zu erzeugen, der es dem kryptografisch sicheren PRNG ermöglicht, neue Pseudozufallsdaten 144 zu erzeugen.
  • Der Prozess 200 fährt wie vorstehend beschrieben fort, bis die zwei Knoten 104A und 104B n Bits gemeinsam genutzter geheimen Daten ausgetauscht haben (Block 216). Da der vorstehend beschriebene Prozess nur dann ein Datenbit erfolgreich austauscht, wenn beide Knoten Sätze von pseudozufällig erzeugten Bits übertragen, die logische Komplemente voneinander sind (z. B. überträgt der Knoten 104A eine 0, während der Knoten 104B eine 1 überträgt und umgekehrt), führt der zweite Knoten 104B gemäß Konvention eine logische Bitumkehr durch, um einen einheitlichen Satz von gemeinsam genutzten geheimen Daten mit dem ersten Knoten 104A zu erzeugen (z. B. werden die Bits „0110“ in „1001“ umgekehrt), obwohl in einer anderen Ausführungsform der erste Knoten 104A die logische Bitumkehr durchführt.
  • In einer Ausführungsform des Prozesses 200 verwenden sowohl der Knoten 104A als auch 104B die gemeinsam genutzten n Datenbits als Grundlage für das Erzeugen eines neuen Wertes für die gemeinsam genutzten Startwerte 134 unter Verwendung der kryptografisch sicheren Einwegfunktion, und einer oder beide Knoten, die den Knotenstartwert 130 als Grundlage für das Erzeugen der Pseudozufallsdaten 144 verwendet haben, wenden die kryptografisch sichere Einwegfunktion auf den Knotenstartwert 130 an, um einen aktualisierten Knotenstartwert zu erzeugen (Block 224). In der ersten Runde des Austauschs der geheimen Daten zwischen zwei Knoten 104A und 104B, bei der weder der Knoten 104A noch der Knoten 104B an einer vorherigen Runde des sicheren Datenaustauschs teilgenommen haben, wendet die Steuerung 108 in sowohl dem Knoten 104A als auch 104B die kryptografisch sichere Einwegfunktion auf die n gemeinsam genutzten Bits an, um einen neuen Startwert s zu erzeugen, der mit den gemeinsam genutzten Startwerten 134 in dem Speicher 120 gespeichert ist: s = g(gemeinsam genutzte Bits), für die n gemeinsam genutzten Datenbits. In dem Prozess 200 verwenden mindestens einer und möglicherweise beide Knoten den Knotenstartwert 130 als die ursprüngliche Grundlage für die Erzeugung der Pseudozufallsdaten 144, und die Steuerung 108 wendet die kryptografisch sichere Einwegfunktion auf den Knotenstartwert 130 an, um einen aktualisierten Knotenstartwert 130 zu erzeugen, der den ursprünglichen Knotenstartwert 130 in dem Speicher 120 ersetzt: sKnoten = g(sKnoten). Jeder Knoten verwendet den aktualisierten Knotenstartwert 130 für weitere Iterationen des Prozesses 200 in Situationen, in denen der Knoten keinen zuvor erzeugten gemeinsam genutzten Startwert 134 für die Erzeugung der Pseudozufallsdaten 144 verwendet. In zukünftigen Kommunikationsrunden verwendet ein Knoten den gemeinsam genutzten Startwert 134 als Grundlage für das Erzeugen der Pseudozufallsdaten 144 oder eines neuen gemeinsam genutzten geheimen kryptografischen Schlüssels 140, und die Steuerung 108 in jedem Knoten, der den Startwert 134 gemeinsam nutzt, wendet die kryptografisch sichere Einwegfunktion g auf den gemeinsam genutzten Startwert 134 an, um den gemeinsam genutzten Startwert 134 nach Beendigung eines weiteren Austauschs von Pseudozufallsdaten 144 zu aktualisieren, um sicherzustellen, dass der alte gemeinsam genutzte Startwert 134 nicht in dem Speicher 120 gespeichert wird. Wie hierin verwendet, beziehen sich die Bezugnahme auf „Aktualisierung“ oder das Erzeugen eines „aktualisierten Wertes“ für entweder einen Knotenstartwert 130 oder einen gemeinsam genutzten Startwert 134 auf einen Prozess, der den älteren Knotenstartwert 130 oder den gemeinsam genutzten Startwert 134 löscht und den alten Wert mit einem neueren aktualisierten Wert ersetzt, der aufgrund der Eigenschaften der im System 100 verwendeten Einwegfunktion nicht zum Ableiten des älteren Werts verwendet werden kann. Das Löschen eines älteren Knotenstartwerts 130 oder eines gemeinsam genutzten Startwerts 134 aus dem Speicher 120 des Knotens 104A oder eines anderen Knotens in dem System 100 stellt Forward Secrecy zum Schutz älterer verschlüsselter Nachrichten bereit, da der Angreifer 150 gelöschte Sätze von Startwerten, die verwendet wurden, um ältere gemeinsam genutzte geheime kryptografische Schlüssel zu erzeugen, die aus dem Speicher 120 gelöscht wurden, nicht wiederherstellen kann.
  • Wenn sich während des Prozesses 200 nur zwei Knoten in der letzten Gruppe befinden, dann gibt es nur einen einzigen gemeinsam genutzten Startwert, aber in Ausführungsformen, die drei oder mehr Knoten enthalten, wird jeder Startwert zwischen dem Paar von Knoten, die die n Datenbits austauschen, und beliebigen anderen Knoten gemeinsam genutzt, die sich zuvor in der Gruppe befanden, wie nachstehend ausführlicher beschrieben. Wenn zusätzliche Knoten während zusätzlicher Runden des Austauschs geheimer Daten zwischen Knotenpaaren hinzugefügt werden, wird der gemeinsam genutzte Startwert 134 für jede Runde separat in Verbindung mit einem neuen Rundenzählerwert 136 gespeichert, um eine Aufzeichnung der gemeinsam genutzten Startwerte 134 zu führen, die über eine Reihe von Runden in den Knoten, die die Startwerte erhalten haben, erzeugt werden.
  • Wenn während des Prozesses 200 die zwei Knoten in dem Prozess 200 das letzte Knotenpaar in der Gruppe sind (Block 228), dann erzeugt jeder der Knoten auch einen gemeinsam genutzten geheimen kryptografischen Schlüssel 140 durch Anwenden der Schlüsselerzeugungsfunktion auf die n Bits von gemeinsam genutzten geheimen Daten (Block 232). In dem vorstehenden Beispiel sind die Knoten 104A und 104B das letzte und einzige Paar von Knoten in einer Gruppe mit zwei Knoten, und die Steuerung 108 in jedem Knoten wendet eine Schlüsselerzeugungsfunktion, wie etwa den kryptografisch sicheren PRNG, auf die n Bits von gemeinsam genutzten geheimen Daten an, um den gemeinsam genutzten geheimen kryptografischen Schlüssel 140 zu erzeugen. Der neu erzeugte gemeinsam genutzte geheime kryptografische Schlüssel 140 ersetzt ältere gemeinsam genutzte geheime kryptografische Schlüssel 140 in dem Speicher 120, sofern welche vorhanden sind, aus früheren verschlüsselten Kommunikationssitzungen, um Forward Secrecy für die verschlüsselten Daten aus älteren verschlüsselten Kommunikationssitzungen zwischen zwei oder mehr gemeinsam genutzten Knoten bereitzustellen, die den gemeinsam genutzten geheimen kryptografischen Schlüssel 140 gemeinsam nutzen. Die Erzeugung des gemeinsam genutzten geheimen Startwerts 134, die Aktualisierung des Knotenstartwerts 130 und die Erzeugung des gemeinsam genutzten geheimen kryptografischen Schlüssels 140, sofern einer erzeugt wird, können in beliebiger Reihenfolge oder gleichzeitig erfolgen, wenn die beiden Knoten in dem Paar die n Bits der gemeinsam genutzten geheimen Daten austauschen. Zusätzlich löscht die Steuerung 108 in jedem der Knoten in dem Paar die n Bits von gemeinsam genutzten geheimen Daten aus dem Speicher 120, nachdem der gemeinsam genutzte geheime Startwert 134 und der gemeinsam genutzte geheime kryptografischen Schlüssel 140, sofern einer erzeugt wird, erzeugt wurden.
  • Wie vorstehend beschrieben, wird der gemeinsam genutzte Startwert 134 für eine Kommunikationsrunde unter Verwendung der kryptografisch sicheren Einwegfunktion erzeugt, die auf die n gemeinsam genutzten geheimen Bits (s = g(gemeinsam genutzte Bits)) angewendet wird, während der gemeinsam genutzte geheime kryptografische Schlüssel 140 unter Verwendung des kryptografisch sicheren PRNG erzeugt wird, der auf die n gemeinsam genutzten geheimen Bits (k = f(gemeinsam genutzte Bits, 0)) angewendet wird. Somit unterscheiden sich, während der gemeinsam genutzte Startwert 134 und der gemeinsam genutzte geheime kryptografische Schlüssel 140 beide basierend auf den gleichen n Bits gemeinsam genutzter geheimer Daten erzeugt werden, der Startwert und der gemeinsam genutzte geheime kryptografische Schlüssel voneinander, und der Angreifer 150 kann den gemeinsam genutzten geheimen kryptografischen Schlüssel 140 nicht reproduzieren, wenn dieser mit dem gemeinsam genutzten Startwert 134 bereitgestellt wird oder umgekehrt. Darüber hinaus löscht die Steuerung 108 in jedem der Knoten die n Bits gemeinsam genutzter geheimen Daten, und jeder Knoten, der den Knotenstartwert 130 zur Erzeugung der Pseudozufallsdaten 144 verwendet, aktualisiert den Knotenstartwert 130 unter Verwendung der kryptografisch sicheren Einwegfunktion. Somit enthält der Speicher 120 jedes Knotens keine Informationen, die von einem Angreifer verwendet werden können, um den geheimen kryptografischen Schlüssel 140 zu berechnen, sobald der geheime kryptografische Schlüssel 140 während einer nachfolgenden Iteration des Prozesses 200 durch einen neueren Schlüssel in dem Speicher 120 ersetzt wurde, wodurch Forward Secrecy für das System 100 bereitgestellt wird.
  • Nach Abschluss des Prozesses 200 verwenden zwei oder mehr Knoten den gemeinsam genutzten geheimen kryptografischen Schlüssel 140, um eine verschlüsselte Kommunikationssitzung unter Verwendung eines oder mehrerer Schemata mit symmetrischem kryptografischem Schlüssel durchzuführen, die auf dem Fachgebiet anderweitig bekannt sind. Beispielsweise kann der gemeinsam genutzte geheime kryptografische Schlüssel 140 mit verschiedenen Block- oder Stromchiffrenverschlüsselungsschemata verwendet werden, einschließlich, aber nicht beschränkt auf AES, um es jedem Knoten zu ermöglichen, Nachrichten zur Übertragung durch das gemeinsam genutzte Kommunikationsmedium 102 zu verschlüsseln und Nachrichten von dem anderen Knoten, die von dem gemeinsam genutzten Kommunikationsmedium 102 empfangen werden, zu entschlüsseln, während der Angreifer 150 nur verschlüsselte Daten beobachten kann und den Klartextinhalt der ursprünglichen Nachrichten praktisch nicht wiederherstellen kann. Der gemeinsam genutzte geheime Schlüssel 140 wird für eine einzelne verschlüsselte Kommunikationssitzung verwendet, wobei die Datenmenge, die zwischen den Knoten 104A-104B und anderen Knoten, die den gemeinsam genutzten geheimen kryptografischen Schlüssel 140 während der verschlüsselten Kommunikationssitzung verwenden, ausgetauscht wird, von den Sicherheitsbeschränkungen des Systems 100 und den kryptografischen Eigenschaften des kryptografischen Schemas, das den geheimen Schlüssel 140 verwendet, abhängen kann. In einigen Ausführungsformen erzeugen die Knoten in dem System 100 einen neuen gemeinsam genutzten kryptografischen Schlüssel, wenn die vorhandene verschlüsselte Kommunikationssitzung nach einer vorbestimmten Anzahl von verschlüsselten Übertragungen oder einer vorbestimmten Zeitdauer abläuft. Nach der verschlüsselten Kommunikationssitzung aktualisieren die beiden Knoten 104 und 104B den kryptografischen Schlüssel, um die Forward Secrecy aufrechtzuerhalten, die den älteren gemeinsam genutzten Schlüssel und die verschlüsselten Daten schützt, wie nachstehend ausführlicher beschrieben wird.
  • Der Prozess 200 von 2 beschreibt den Betrieb eines Paares von zwei Knoten in dem System 100, um eine einzelne Kommunikationsrunde durchzuführen, die gemeinsam genutzte geheime Daten erzeugt, und eine Gruppe, die zwei Knoten enthält, kann den Prozess 200 auch durchführen, um einen gemeinsam genutzten geheimen kryptografischen Schlüssel zu erzeugen. In einigen Fällen müssen Gruppen von drei oder mehr Knoten unter Verwendung eines gemeinsam genutzten geheimen kryptografischen Schlüssels mit Forward Secrecy kommunizieren. In diesen Ausführungsformen finden mehrere Kommunikationsrunden (N-1 Runden für N Knoten in der Gruppe) statt, um den gemeinsam genutzten geheimen kryptografischen Schlüssel zwischen drei oder mehr Knoten zu erstellen, während Forward Secrecy bereitgestellt wird. 3 zeigt einen Prozess 300 für einen sicheren gemeinsam genutzten geheimen kryptografischen Schlüsselvereinbarungsprozess mit Forward Secrecy mit Gruppen von drei oder mehr Knoten, die mit einem gemeinsam genutzten Kommunikationsmedium verbunden sind. In der nachfolgenden Beschreibung bezieht sich eine Beschreibung des Prozesses 300, der eine Funktion oder Aktion durchführt, auf den Betrieb einer oder mehrerer Steuerungen, um gespeicherte Programmanweisungen auszuführen, um die Funktion oder Aktion in Verbindung mit anderen Komponenten in einem Kommunikationssystem durchzuführen. Der Prozess 300 verwendet Elemente des Prozesses 200 von 2, die vorstehend beschrieben wurden, und enthält zusätzliche Operationen, die einen effizienten kryptografischen Schlüsselerzeugungsprozess mit Forward Secrecy für Gruppen von drei oder mehr Knoten ermöglichen. Der Prozess 300 wird in Verbindung mit dem System 100 von 1 zu Veranschaulichungszwecken beschrieben. In dem nachstehend beschriebenen Beispiel erzeugen die Knoten 104A, 104B und 104C einen gemeinsam genutzten gemeinsam genutzten kryptografischen Schlüssel, der dem Angreifer 150 oder anderen Knoten in dem System 100 nicht zur Verfügung steht.
  • Der Prozess 300 beginnt damit, dass jeder der N Knoten in der Gruppe, die einen kryptografischen Schlüssel gemeinsam nutzen (z. B. die Knoten 104A, 104B, 104C), einen anfänglichen Knotenstartwert 130, einen Indexwert 132 und einen Rundenzähler 136 erzeugt (Block 304). Nimmt man Knoten 104A als Beispiel, so erzeugt die Steuerung 108 einen zufälligen Knotenstartwert 130 unter Verwendung eines Hardware- oder Software-Zufallszahlengenerators, wobei es sich um den kryptografisch sicheren PRNG oder einen anderen beliebigen Zufallszahlengenerator handeln kann, der einen Wert erzeugt, der durch den Angreifer 150 nicht vorhergesagt werden kann. Die Steuerung 108 erzeugt auch einen anfänglichen Indexwert 132, der null, ein anderer vorbestimmter Wert oder ein anderer zufällig erzeugter Indexwert sein kann. Die n Bits entsprechen einer Menge gemeinsam genutzter geheimer Daten, die einen ausreichenden Zahlenraum bereitstellen, um es den Knoten 104A, 104B und 104C zu ermöglichen, einen gemeinsam genutzten geheimen kryptografischen Schlüssel zu erzeugen, ohne den Angreifer in die Lage zu versetzen, den geheimen Schlüssel auf praktische Weise zu erraten. Wie bei dem Prozess 200 sind nicht einschränkende Beispiele für n 64, 80 oder 128 Bits. Der Rundenzähler 136 wird auf null oder einen anderen vorbestimmten numerischen Wert initialisiert und wird in dem Prozess 300 verwendet, um festzustellen, ob die Runden des paarweisen Austauschs von Daten zwischen Knoten stattgefunden haben und den gemeinsam genutzten Startwert 134 nachzuverfolgen, der für jede Runde erzeugt wird, da frühere Knotenpaare in der Sequenz einen oder mehrere Startwerte 134 aus früheren Runden in dem Speicher 120 speichern. Der Rundenzähler 136 verfolgt einen oder mehrere Startwerte, die die Gruppe von Knoten während des Prozesses 300 austauscht, um einen gemeinsam genutzten geheimen kryptografischen Schlüssel der Gruppe zu erzeugen.
  • Der Prozess 300 fährt fort, indem das erste Knotenpaar (Knoten 104A und 104B in diesem Beispiel) die gemeinsam genutzten geheimen Daten auf sichere Weise erstellt (Block 308). Die Knoten 104A und 104B tauschen die geheimen Pseudozufallsdaten auf die gleiche Weise aus, die vorstehend unter Bezugnahme auf die Verarbeitung der Blöcke 208-224 in 2 beschrieben wurde, einschließlich der gleichzeitigen Übertragung von Pseudozufallsbits, gefolgt von den logischen Komplementen der Bits, um den sicheren Datenaustausch zwischen den Knoten 104A und 104B über das unsichere gemeinsam genutzte Kommunikationsmedium 102 zu ermöglichen. In einer Ausführungsform erstellt das erste Knotenpaar einen gemeinsam genutzten Startwert 134 der ersten Runde, der der ersten Runde des Prozesses 300 zugeordnet ist, indem die kryptografisch sichere Einwegfunktion auf die n Bits gemeinsam genutzter Daten angewendet wird (Block 312). Beispielsweise erzeugt die Steuerung 108 in dem Knoten 104A einen Startwert s 1 1 = g
    Figure DE112018003506T5_0001
    (gemeinsam genutzte BitsRundel). In ähnlicher Weise erzeugt der Knoten 104B s 2 1 = g
    Figure DE112018003506T5_0002
    (gemeinsam genutzte BitsRundel) und beide Knoten 104A und 104B erzeugen den gleichen gemeinsam genutzten Startwert 134, der dem Rundenzählerwert 136 in dem Speicher 120 zugeordnet ist ( s 1 1 = s 2 1 )
    Figure DE112018003506T5_0003
    . Die Notation s 1 1
    Figure DE112018003506T5_0004
    und s 2 1
    Figure DE112018003506T5_0005
    wird allgemeiner als s R u n d e n K e n n u n g R u n d e
    Figure DE112018003506T5_0006
    ausgedrückt, wobei jeder Startwert sowohl einer Knotenkennung des Knotens, der den Startwert erzeugt hat, als auch der dem Rundenzähler 136 entsprechenden numerischen Runde zugeordnet ist. Die Verwendung der Einwegfunktion bei der Verarbeitung von Block 312 stellt für beide Knoten 104A und 104B einen einheitlichen gemeinsam genutzten Startwert bereit und stellt sicher, dass der zweite Knoten 104B, der in einer anschließenden Austauschoperation geheimer Daten der erste Knoten wird, die n Bits gemeinsam genutzter Daten von dem vorherigen Datenaustausch mit dem Knoten 104A nicht erneut überträgt. In einer anderen Ausführungsform verwenden die Knoten 104A und 104B und andere Knotenpaare mit Ausnahme des letzten Knotenpaares in der Gruppe die n Bits gemeinsam genutzter geheimer Daten direkt für den gemeinsam genutzten Startwert 134 und wenden die kryptografisch sichere Einwegfunktion nur für spätere Aktualisierungen des gemeinsam genutzten Startwerts 134 an, falls dies in einer zukünftigen Runde zum Hinzufügen eines weiteren Knotens oder in einer weiteren zukünftigen Operation, die den gemeinsam genutzten Startwert 134 aktualisiert, erforderlich ist, nachdem der zuvor erzeugte gemeinsam genutzte Startwert 134 als Eingabe für den PRNG verwendet wurde, um zusätzliche Pseudozufallsdaten 144 zu erzeugen. In dieser Ausführungsform können die n Bits gemeinsam genutzter geheimer Daten als Grundlage für zusätzliche Kommunikation verwendet werden, da die Knoten 104A und 104B die Pseudozufallsdaten 144 unter Verwendung des kryptografisch sicheren PRNG erzeugen, der eine andere Einwegfunktion ist, die die n Bits von gemeinsam genutzten geheimen Daten nicht offenlegt. Jedoch verwendet der gemeinsam genutzte Startwert 134 für mindestens das letzte Knotenpaar in der Gruppe, der von allen Knoten in der Gruppe gemeinsam genutzt wird, die die Erzeugung des letzten gemeinsam genutzten Startwerts beobachten, die Einwegfunktion ( ( s 1 n N 1 = g ( g e m e i n s a m   g e n u t z t e   B i t s , n 1 ) ) ,
    Figure DE112018003506T5_0007
    (gemeinsam genutzte Bits,N-1)), wobei N-1 die letzte Runde darstellt, da die gemeinsam genutzten Bits aus der letzten Runde sowohl als Grundlage für einen gemeinsam genutzten Startwert 134 als auch für den gemeinsam genutzten geheimen kryptografischen Schlüssel 140 dienen. Zusätzlich wendet, wie vorstehend beschrieben, jeder der Knoten 104A und 104B die kryptografisch sichere Einwegfunktion auf den Knotenstartwert 130 an, der niemals mit anderen Knoten in dem System 100 gemeinsam genutzt wird, um Forward Secrecy für nachfolgende Iterationen des Prozesses 300 bereitzustellen.
  • Der Prozess 300 fährt fort, indem jeder der Knoten den Rundenzähler 136 aktualisiert und der zweite Knoten aus der vorherigen Runde zum ersten Knoten für die nächste Runde wird (Block 316). In dem Beispiel von 1 wird der zweite Knoten 104B aus der ersten Runde zum ersten Knoten für die nächste Runde, der den Knoten 104C als den zweiten Knoten in der zweiten Runde beinhaltet. Die Beschreibung der Verwendung des „zweiten“ Knotens aus einer vorherigen Runde als den ersten Knoten in der nächsten Runde wird zur Veranschaulichung als Konvention verwendet. Im weiteren Sinne kann der „zweite“ Knoten, der in einer nachfolgenden Runde zum „ersten“ Knoten wird, einer der beiden Knoten sein, die an der neuesten Runde teilgenommen haben, wie etwa einer der Knoten 104A und 104B in dem Beispiel von 1.
  • Der Prozess 300 fährt fort, indem das nächste Knotenpaar (z. B. die Knoten 104B und 104C) einen weiteren gemeinsam genutzten geheimen Startwert für die nächste Runde des Prozesses 300 erstellt, in der der erste Knoten (in diesem Beispiel der Knoten 104B) den gemeinsam genutzten Startwert aus der vorherigen Runde als Grundlage für die Eingabe in die kryptografisch sichere PRNG-Funktion verwendet (Block 320). Der erste Knoten 104B verwendet auch einen Indexwert 132 (ind), der entweder bei einem vorbestimmten Wert (z. B. 0) oder einem anderen numerischen Wert beginnt, der an alle Knoten in dem System 100 übertragen wird, sodass jeder Knoten aus einer vorhergehenden Runde denselben Satz von 1 Bits von Pseudozufallsdaten berechnen kann, die von dem ersten Knoten 104B verwendet werden: l = f ( s 2 1 , i n d ) .
    Figure DE112018003506T5_0008
    Die Steuerung 108 in dem zweiten Knoten, der zu der Gruppe hinzugefügt wird (z. B. der Knoten 104C, der zu der Gruppe der Knoten 104A und 104B hinzugefügt wird), verwendet den zufällig erzeugten Knotenstartwert 130, um weitere 1 Bits von Pseudozufallsdaten 144 zu erzeugen, und die Pseudozufallsdaten 144 in dem neuen Knoten, der der Gruppe hinzugefügt wird, sind den vorhandenen Knoten in der Gruppe erst dann bekannt, wenn die Knoten 104B und 104C den vorstehend beschriebenen gleichzeitigen Übertragungsprozess durchführen. Somit können alle Knoten, die zuvor einen Satz geheimer Daten gemeinsam genutzt haben (z. B. der Knoten 104A), die CAN-Transceiver 112 verwenden, um den nächsten Austausch von n Bits zwischen dem nächsten Knotenpaar 104B und 104C zu beobachten, da die Steuerungen 108 in Knoten aus der vorherigen Gruppe eine a priori-Kenntnis der Daten haben, die von dem ersten Knoten 104B übertragen werden, und den nächsten Satz von n ausgetauschten Bits, einschließlich der zu verwerfenden Bits und der Bits, die von dem nächsten Knotenpaar behalten werden, durch Beobachten der gleichzeitigen Übertragungen der Knoten 104B und 104C durch das gemeinsam genutzte Kommunikationsmedium 102 bestimmen können.
  • Der Prozess 300 fährt fort, indem das nächste Knotenpaar und alle Knoten in der Gruppe, die an vorherigen Runden teilgenommen haben, einen gemeinsam genutzten Startwert 134 für die nächste Runde unter Verwendung der kryptografisch sicheren Einwegfunktion erstellen (Block 324). Insbesondere wird der Satz von n Bits für die neueste Runde zwischen den Knoten 104B und 104C von jedem der Knoten 104A-104C gemeinsam genutzt, und die Steuerung 108 erzeugt in jedem Knoten einen gemeinsam genutzten Startwert 134 für die nächste Runde unter Verwendung von n Bits als Eingabe für eine Einwegfunktion g. Wie vorstehend beschrieben, wendet der zweite Knoten in der nächsten Runde (z. B. der Knoten 104C) auch die kryptografisch sichere Einwegfunktion auf den Knotenstartwert 130 an, um den Knotenstartwert 130 zu aktualisieren. Bei jeder zusätzlichen Runde für das Hinzufügen eines weiteren Knotens zu der Gruppe speichern alle Knoten, die an einer oder mehreren vorhergehenden Runden teilgenommen haben, den Startwert 134 der nächsten Runde in dem Speicher 120 in Verbindung mit einem Rundenzähler 136, um eine Aufzeichnung der Startwerte zu führen, die für jede Runde verwendet wurden, während jeder zusätzliche Knoten der Gruppe hinzugefügt wird. Wie vorstehend beschrieben, speichern die Knoten 104A und 104B aus der Anfangsrunde auch einen einzelnen gemeinsam genutzten Startwert 134 in Verbindung mit dem Rundenindex 136 für die erste Runde in dem Speicher 120, wobei der Startwert für jede Runde die Ausgabe der einen kryptografischen Einwegfunktion ist, die auf die gemeinsam genutzten geheimen Daten für diese bestimmte Runde angewendet wird (z. B. s 1 1 = g ( g e m e i n s a m   g e n u t z t e   B i t s R u n d e 1 )
    Figure DE112018003506T5_0009
    ) und s 2 1 = g ( g e m e i n s a m   g e n u t z t e   B i t s R u n d e 1 )
    Figure DE112018003506T5_0010
    für die n Bits gemeinsam genutzter geheimer Daten, die von den Knoten 104A und 104B in der ersten Runde gemeinsam genutzt werden). Die Steuerung 108 des neu hinzugefügten Knotens 104C speichert jedoch nur den gemeinsam genutzten Startwert 134 aus dem neuesten Rundenindex 136 in dem Speicher 120 des Knotens 104C (z. B. s 3 2 = g ( g e m e i n s a m   g e n u t z t e   B i t s R u n d e 2 )
    Figure DE112018003506T5_0011
    oder s 3 2 = ( g e m e i n s a m   g e n u t z t e   B i t s R u n d e 2 )
    Figure DE112018003506T5_0012
    ) und empfängt nicht den früheren gemeinsam genutzten Startwert, der durch den Datenaustausch zwischen den Knoten 104A und 104B erzeugt wurde. Wie nachstehend ausführlicher beschrieben, speichern die Speicher 120 der Knoten einen Verlauf der gemeinsam genutzten Startwerte 134 in Verbindung mit dem Rundenzähler 136, um einen effizienten Prozess zum Entfernen eines Knotens aus der Gruppe zu einem späteren Zeitpunkt bereitzustellen. Für den gemeinsam genutzten Startwert 134 aus der vorherigen Runde, der als Grundlage für den ersten Knoten zum Erzeugen der Pseudozufallsdaten 144 (z. B. der gemeinsam genutzte Startwert s 2 1
    Figure DE112018003506T5_0013
    in dem Knoten 104B) verwendet wurde, wenden die Steuerungen 108 in allen Knoten, die Zugriff auf den gemeinsam genutzten Startwert 134 der vorherigen Runde (z. B. die Knoten 104A und 104B) haben, die kryptografisch sichere Einwegfunktion g auf den gemeinsam genutzten Startwert 134 der vorherigen Runde an, um den gemeinsam genutzten Startwert 134 der vorherigen Runde nach Abschluss eines weiteren Austausches von Pseudozufallsdaten 144 zu aktualisieren, um sicherzustellen, dass der alte gemeinsam genutzte Startwert 134 nicht in dem Speicher 120 eines beliebigen Knotens ( s 1 1 = g ( s 1 1 )
    Figure DE112018003506T5_0014
    in dem Knoten 104A und s 2 1 = g ( s 2 1 )
    Figure DE112018003506T5_0015
    in dem Knoten 104B) gespeichert ist.
  • Der Prozess 300 fährt mit dem Hinzufügen zusätzlicher Knoten fort, wie vorstehend in den Blöcken 316-324 für beliebige zusätzliche Knoten beschrieben ist, die der Gruppe beitreten (Block 328). Sobald es keine zusätzlichen Knoten mehr gibt (Block 328), erzeugt jeder der Knoten in der Gruppe einen gemeinsam genutzten geheimen Schlüssel basierend auf dem Satz gemeinsam genutzter geheimer Daten aus der letzten Runde zwischen dem letzten Knotenpaar in der Gruppe, der von allen Knoten in der Gruppe beobachtet wird (Block 332). Jeder Knoten führt die Verarbeitung von Block 332 auf ähnliche Weise wie die Verarbeitung von Block 232 durch, die vorstehend in dem Prozess 200 beschrieben wurde. In einer Ausführungsform wendet die Steuerung 108 in jedem der Knoten eine Schlüsselerzeugungsfunktion auf die gemeinsam genutzten geheimen Daten gemeinsam genutzte BitsRundeN-1 an, die zwischen dem letzten Knotenpaar (z. B. die Knoten 104B und 104C) in der letzten Runde mit der Nummer N-1 ausgetauscht werden. In einer Ausführungsform ist die Schlüsselerzeugungsfunktion der kryptografisch sichere PRNG, der auf die gemeinsam genutzten geheimen Daten gemeinsam genutzte BitsRundeN-1 und einen vorbestimmten Indexwert (z. B. 0 oder einen anderen von allen Knoten verwendeten Wert) angewendet wird, um den letzten gemeinsam genutzten geheimen kryptografischen Schlüssel 140 zu erzeugen. Die Steuerung 108 in jedem Knoten der Gruppe erzeugt den ersten gemeinsam genutzten kryptografischen Schlüssel 140 unter Verwendung der gesamten Ausgabe k = f (gemeinsam genutzte BitsRundeN-1, 0) oder eines Abschnitts davon als den anfänglichen geheimen Schlüssel 140 für die erste verschlüsselte Kommunikationssitzung zwischen jedem der Knoten 104A-104C.
  • Nachdem die Knoten in einer Gruppe den vorstehend beschriebenen Prozess 300 durchgeführt haben, beinhaltet das Hinzufügen eines neuen Knotens zur Gruppe das Verwenden des zuletzt hinzugefügten Knotens in der Gruppe (z. B. der Knoten 104C) als ersten Knoten in einem zusätzlichen Paar unter Verwendung desselben Prozesses, der vorstehend unter Bezugnahme auf die Blöcke 316-328 beschrieben wurde, und das Erzeugen eines neuen gemeinsam genutzten kryptografischen Schlüssels für alle Knoten unter Verwendung des Prozesses, der mit Bezugnahme auf Block 332 beschrieben ist. Beispielsweise kann in dem System 100 der Knoten 104D zu der Gruppe von Knoten 104A-104C hinzugefügt werden, nachdem die Knoten 104A-104C einen gemeinsam genutzten geheimen Schlüssel erzeugt haben. Der Startwert 134 der neuesten Runde in dem Knoten 104C, der dem Rundenzähler 136 zugeordnet ist, der von allen Knoten 104A-104C in dem Speicher gespeichert wird, dient als der anfängliche Startwert für die Erzeugung zusätzlicher PRNG-Daten für den sicheren Datenaustauschprozess, der den neuen Knoten 104D hinzufügt. Die Knoten 104A-104B speichern nun einen Verlauf von mehreren Runden von Startwerten 134 in Verbindung mit dem Rundenzähler 136 für die erste Runde (Knoten 104A-104B), die zweite Runde (Knoten 104B-104C) und die dritte Runde (Knoten 104C-104D). Der Knoten 104C speichert die Startwerte 134 in Verbindung mit dem Rundenzähler 136 nur für die zweite Runde (Knoten 104B-104C) und die dritte Runde (Knoten 104C-104D). Der Knoten 104D speichert die Startwerte 134 in Verbindung mit dem Rundenzähler 136 nur für die dritte Runde (die Knoten der dritten Runde 104C-104D). Alle Knoten 104A-104D erzeugen einen neuen gemeinsam genutzten geheimen kryptografischen Schlüssel 140 unter Verwendung des kryptografisch sicheren PRNG, der auf die n Datenbits angewendet wird, die zwischen den Knoten 104C-104D ausgetauscht werden, um einen gemeinsam genutzten kryptografischen Schlüssel für alle Knoten 104A-104C zu erzeugen.
  • Nachdem eine Gruppe von drei oder mehr Knoten die Prozesse von 2 und 3 durchgeführt hat, führen in einigen Situationen die Knoten in der Gruppe einen interaktiven Neuverschlüsselungsprozess durch, der einen neuen gemeinsam genutzten geheimen kryptografischen Schlüssel 140 für alle Knoten in der Gruppe erzeugt. Dieser Prozess unterscheidet sich von dem Prozess 300, weil in dem interaktiven Prozess einige der Knoten in der Gruppe Bits durch das gemeinsam genutzte Kommunikationsmedium 102 übertragen, aber in Gruppen von drei oder mehr Knoten der interaktive Neuerzeugungsprozess nicht alle Knoten in der Gruppe benötigt, um Daten wie in dem ursprünglichen Prozess 300 zu übertragen. 4 zeigt den interaktiven Neuerzeugungsprozess 400. Der Prozess 400 ermöglicht es allen Knoten in einer Gruppe, einen neuen gemeinsam genutzten Startwert und einen gemeinsam genutzten kryptografischen Schlüssel der letzten Runde neu zu erzeugen, ohne dass alle Knoten in der Gruppe den Prozess 300 wiederholen müssen. In der nachfolgenden Beschreibung bezieht sich eine Beschreibung des Prozesses 400, der eine Funktion oder Aktion durchführt, auf den Betrieb einer oder mehrerer Steuerungen, um gespeicherte Programmanweisungen auszuführen, um die Funktion oder Aktion in Verbindung mit anderen Komponenten in einem Kommunikationssystem durchzuführen. Der Prozess 400 wird in Verbindung mit dem System 100 von 1 zu Veranschaulichungszwecken beschrieben.
  • Der Prozess 400 beginnt damit, dass der erste Knoten des letzten Knotenpaares, das der Gruppe während des Prozesses 300 hinzugefügt wurde, und alle anderen Knoten in der Gruppe mit Ausnahme des letzten Knotens den gemeinsam genutzten Startwert 134 für die letzte Runde des Prozesses 300 als eine Grundlage zum Erzeugen eines neuen Satzes von Pseudozufallsdaten 144 verwenden, während der zweite Knoten in dem letzten Paar den zuvor aktualisierten Knotenstartwert 130 als Grundlage zum Erzeugen neuer Sätze von Pseudozufallsdaten 144 für einen weiteren Austausch von gemeinsam genutzten geheimen Daten verwendet (Block 404). Beispielsweise ist in dem System 100 von 1, wenn eine Gruppe jeden der Knoten 104A-104D enthält, die als Paare in der Reihenfolge 104A-104B, 104B-104C, 104C-104D hinzugefügt wurden, dann der Knoten 104C der erste Knoten des letzten Paares und der Knoten 104D ist der zweite Knoten des letzten Paares. Die Steuerung 108 in jedem der Knoten 104A-104C verwendet den Startwert der letzten Runde s K n o t e n n u m m e r l e t z e   R u n d e
    Figure DE112018003506T5_0016
    als die Eingabe in den kryptografisch sicheren PRNG mit einem vorbestimmten Zählerwert, während die Steuerung 108 in dem Knoten 104D den Knotenstartwert 130 verwendet, der zuvor unter Verwendung der kryptografisch sicheren Einwegfunktion aus der letzten Runde des Prozesses 300 aktualisiert wurde, wie vorstehend beschrieben. Somit verwendet der Prozess 400 Eingaben in den kryptografisch sicheren PRNG für die interaktive Neuverschlüsselung, die Forward Secrecy bereitstellt, da die Knoten Pseudozufallsdaten erzeugen, die nicht mit den Pseudozufallsdaten zusammenhängen, die während früherer Runden verwendet wurden, wodurch die gemeinsam genutzten geheimen kryptografischen Schlüssel aus früheren Runden vor dem Angreifer 150 geschützt werden.
  • Der Prozess 400 fährt fort, indem die Knoten 104C und 104D den vorstehend in dem Prozess 300 beschriebenen sicheren Datenaustauschprozess durchführen, um n Bits basierend auf den Pseudozufallsdaten 144 auszutauschen, die die Steuerung 108 in jedem Knoten unter Verwendung der Ausgaben des kryptografisch sicheren PRNG mit den eingegebenen Startwerten und Indexwerten erzeugt (Block 408). Wie vorstehend in 3 beschrieben, verwendet der erste Knoten 104C den Startwert 134 der letzten Runde, der den anderen Knoten 104A-104B bekannt ist, und verwendet einen Indexwert 132, der entweder den anderen Knoten 104A-104B im Voraus bekannt ist oder an die anderen Knoten 104A-104B während des Prozesses 400 übertragen wird. Die Steuerung 108 in jedem der Knoten 104A-104B erzeugt die gleichen Pseudozufallsdaten wie die Steuerung 108 des Knotens 104C, und alle drei Knoten empfangen während des Austauschprozesses mit dem letzten Knoten 104D den gleichen Satz von n Bits. Da der Knoten 104D den Knotenstartwert 130 verwendet, der zuvor nicht als Eingabe in den PRNG verwendet wurde, um Pseudozufallsdaten zu erzeugen, bilden die neu ausgetauschten n Bits die Grundlage für einen neuen gemeinsam genutzten Startwert 134 der letzten Runde und einen gemeinsam genutzten geheimen kryptografischen Schlüssel 140 in allen Knoten 104A-104D, der sich nicht auf die älteren Startwerte und kryptografischen Schlüssel bezieht.
  • Der Prozess 400 fährt fort, indem jeder der Knoten 104A-104D in der Gruppe einen neuen gemeinsam genutzten geheimen kryptografischen Schlüssel 140 basierend auf den n gemeinsam genutzten Bits erzeugt und einen aktualisierten Startwert erzeugt, um Forward Secrecy während zusätzlicher Kommunikationsrunden bereitzustellen (Block 412). Die Steuerung 108 in jedem Knoten der Gruppe erzeugt den nächsten gemeinsam genutzten kryptografischen Schlüssel 140 unter Verwendung einer Schlüsselerzeugungsfunktion, die in einer Ausführungsform die gesamte Ausgabe oder einen Abschnitt der Ausgabe k = f(gemeinsam genutzte Bits,0) des kryptografisch sicheren PRNG darstellt, um den aktualisierten geheimen kryptografischen Schlüssel 140 für die nächste Runde der verschlüsselten Kommunikation zwischen jedem der Knoten 104A-104D zu erzeugen. Als Teil des Aktualisierungsprozesses für den gemeinsam genutzten geheimen kryptografischen Schlüssel 140 löscht die Steuerung 108 in jedem der Knoten 104A-104D auch den älteren gemeinsam genutzten kryptografischen Schlüssel 140, der vor dem Durchführen des Prozesses 400 verwendet wurde, um Forward Secrecy für die zuvor verschlüsselte Kommunikationssitzung zwischen den Knoten 104A-104D bereitzustellen. Die Steuerung 108 in jedem der Knoten aktualisiert auch den Startwert 134 der letzten Runde in Verbindung mit dem letzten Rundenzähler 136 unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf den Satz von n gemeinsam genutzten Bits angewendet wird, um Forward Secrecy für zusätzliche Kommunikationsrunden s K n o t e n l e t z e = g ( g e m e i n s a m   g e n u t z t e   B i t s )  
    Figure DE112018003506T5_0017
    aufrechtzuerhalten, wodurch der ältere gemeinsam genutzte Startwert 134 der letzten Runde gelöscht wird, um Forward Secrecy für die vorherige verschlüsselte Kommunikationssitzung bereitzustellen. Der zweite Knoten in dem letzten Paar (z. B. Knoten 104D) aktualisiert auch den Knotenstartwert 130 sKnoten = g(sKnoten). Wie vorstehend beschrieben, ermöglicht der Prozess 400 allen Knoten in der Gruppe, einen neuen gemeinsam genutzten geheimen kryptografischen Schlüssel und Startwert für Forward Secrecy in zukünftigen verschlüsselten Kommunikationssitzungen zu erzeugen, während es nur erforderlich ist, dass ein einzelnes Paar der Knoten Daten über das gemeinsam genutzte Kommunikationsmedium 102 überträgt. Der Prozess 400 kann auch von einer Gruppe ausgeführt werden, die nur zwei Knoten enthält, und bietet den zusätzlichen Vorteilen von Forward Secrecy für die zwei Knoten, die den gemeinsam genutzten Startwert 134 unter Verwendung der kryptografisch sicheren Einwegfunktion aktualisieren.
  • Nachdem eine Gruppe von drei oder mehr Knoten den Prozess 300 durchgeführt hat, kann ein Knoten die Gruppe von Knoten verlassen, die den geheimen kryptografischen Schlüssel gemeinsam genutzt haben. 5 zeigt einen Prozess 500 für die verbleibenden Knoten in der Gruppe, um einen neuen gemeinsam genutzten kryptografischen Schlüssel auf eine Weise neu zu erzeugen, die Forward Secrecy bereitstellt und die den ausgeschiedenen Knoten, von dem angenommen wird, dass er die gemeinsam genutzten Startwerte 134 und den gemeinsam genutzten geheimen kryptografischen Schlüssel 140 in dem Speicher 120 beibehält, daran hindert, künftige verschlüsselte Übertragungen zwischen den verbleibenden Knoten in der Gruppe entschlüsseln zu können. In der nachfolgenden Beschreibung bezieht sich eine Beschreibung des Prozesses 500, der eine Funktion oder Aktion durchführt, auf den Betrieb einer oder mehrerer Steuerungen, um gespeicherte Programmanweisungen auszuführen, um die Funktion oder Aktion in Verbindung mit anderen Komponenten in einem Kommunikationssystem durchzuführen. Der Prozess 500 wird in Verbindung mit dem System 100 von 1 zu Veranschaulichungszwecken beschrieben.
  • Der Prozess 500 beginnt damit, dass ein Knoten eine Gruppe von Knoten verlässt, die zuvor einen geheimen kryptografischen Schlüssel gemeinsam genutzt haben (Block 504). In der beispielhaften Ausführungsform von 1 nutzt eine Gruppe von Knoten 104A-104D einen geheimen kryptografischen Schlüssel 140 gemeinsam und ein Knoten 104C verlässt die Gruppe. In dem Beispiel von 1 enthält die Gruppe jeden der Knoten 104A-104D, die als Paare in der folgenden Reihenfolge hinzugefügt wurden: 104A-104B, 104B-104C, 104C-104D. Somit wird der Knoten 104C nach den Knoten 104A-104B und vor dem Knoten 104D in dem vorstehend beschriebenen Prozess 300 zu der Gruppe hinzugefügt. Wenn ein Knoten eine Gruppe verlässt, löschen alle verbleibenden Knoten (z. B. die Knoten 104A, 104B und 104D) den gemeinsam genutzten geheimen kryptografischen Schlüssel 140, da der alte gemeinsam genutzte geheime kryptografische Schlüssel nicht für zusätzliche kryptografische Operationen verwendet wird, nachdem der Knoten 104C die Gruppe verlässt. Zusätzlich löschen die vorherigen Knoten (z. B. die Knoten 104A und 104B) alle den Rundenzählerwerten 136 entsprechenden gemeinsam genutzten Startwerte 134, die den Knoten, der die Gruppe verlassen hat, und alle späteren Knoten aus dem Prozess 300 enthalten. In diesem Beispiel löschen die Knoten 104A und 104B beide die gemeinsam genutzten Startwerte s 1 2 , s 2 2
    Figure DE112018003506T5_0018
    für die zweite Runde, die den Knoten 104C hinzugefügt hat, und die gemeinsam genutzten Startwerte s 1 3 , s 2 3
    Figure DE112018003506T5_0019
    für die dritte Runde, die den Knoten 104D hinzugefügt hat. Zusätzlich löschen Knoten, die nach dem Knoten hinzugefügt wurden, der die Gruppe verlassen hat (z. B. der Knoten 104D), alle gemeinsam genutzten Startwerte 134, da der Prozess 500 diese Werte durch neue gemeinsam genutzte Startwerte ersetzt, die dem Knoten, der die Gruppe verlassen hat, nicht bekannt sind.
  • Der Prozess 500 fährt fort, indem die verbleibenden Knoten die Knoten in der Gruppe, die ungültig gemacht wurden, aber immer noch Mitglied der Gruppe sind, der Gruppe wieder hinzufügen, beginnend mit dem letzten Knoten in der verbleibenden Gruppe von Knoten (z. B. der Knoten 104B) (Block 508). In dem vorstehenden Beispiel wird der Knoten 104B der erste Knoten in einem neuen Paar, der den ungültig gemachten Knoten 104D enthält, jedoch den Knoten 104C ausschließt, der die Gruppe verlassen hat. Da der Knoten 104B einen gemeinsam genutzten Startwert 134 (Startwert s 2 1
    Figure DE112018003506T5_0020
    ) verwendet, der während des Prozesses 300 aktualisiert wurde, nachdem der Knoten 104C der Gruppe hinzugefügt wurde, wurde der aktualisierte gemeinsam genutzte Startwert 134 niemals verwendet, um Pseudozufallsdaten 144 für die Kommunikation mit dem Knoten 104C zu erzeugen. Daher erzeugt der Knoten 104B Pseudozufallsdaten für den Datenaustauschprozess mit dem Knoten 104D, die von dem Knoten 104C oder von dem Angreifer 150 nicht beobachtet werden können, die aber vom Knoten 104A beobachtet werden können, der in der Gruppe verbleibt. Der Knoten 104D fungiert als der zweite Knoten und verwendet den zuvor aktualisierten Knotenstartwert 130 als Grundlage zum Erzeugen von Pseudozufallsdaten 144, die sich nicht auf zuvor erzeugte Pseudozufallsdaten beziehen, auf dieselbe Weise wie beim Hinzufügen des Knotens 104D zu der Gruppe in dem Prozess 300. Sobald alle verbleibenden Knoten aktualisierte gemeinsam genutzte Startwerte 134 erstellt haben, kehren die verbleibenden Knoten 104A-104B und 104D in der Gruppe zur Verarbeitung von Block 332 in 3 zurück, um einen neuen gemeinsam genutzten geheimen kryptografischen Schlüssel 140 zu erzeugen, der Daten verschlüsselt und entschlüsselt, ohne die verschlüsselten Daten dem Knoten 104C offenzulegen, der die Gruppe verlassen hat.
  • In dem Prozess 500 führt das System 100 verschiedene Operationen durch, um eine Situation handzuhaben, in der ein Knoten in dem ersten Knotenpaar die Gruppe verlässt oder der letzte Knoten, der der Gruppe hinzugefügt werden soll, die Gruppe verlässt. In Situationen, in denen einer der Knoten in dem ersten Knotenpaar in der Gruppe (z. B. einer der Knoten 104A oder 104B) die Gruppe verlässt, wird die gesamte Gruppe ungültig gemacht, und das System 100 führt stattdessen den vorstehend beschriebenen Prozess 300 unter ausschließlicher Verwendung der verbleibenden Knoten durch, um den Abgang der Knoten des ersten Paares in der Gruppe handzuhaben. In einer Situation, in der der letzte Knoten, der der Gruppe hinzugefügt werden soll, die Gruppe verlässt (z. B. wenn der Knoten 104D die Gruppe anstelle des Knotens 104C verlassen hat), können die verbleibenden Knoten in der Gruppe einen neuen gemeinsam genutzten geheimen Schlüssel 140 unter Verwendung des gemeinsam genutzten Startwerts 134, der dem Rundenzähler 136 entspricht, vor der letzten Runde erzeugen (z. B. jeweils die Startwerte s 1 2 , s 2 2  und  s 3 2
    Figure DE112018003506T5_0021
    für die Knoten 104A-104C) und die endgültigen Startwertwerte (die Startwerte s 1 3 , s 2 3  und  s 3 3
    Figure DE112018003506T5_0022
    ) ungültig machen. Die verbleibenden Knoten können eine nicht interaktive Neuverschlüsselungsoperation durchführen, die nachfolgend unter Verwendung der aktualisierten gemeinsam genutzten Startwerte 134 ausführlicher beschrieben wird. Wie vorstehend beschrieben, stellt der Prozess 500 in einer Situation, in der ein Knoten eine Gruppe verlässt, die sich nicht in dem ersten Knotenpaar befindet, das der Gruppe hinzugefügt wurde, einen effizienteren Prozess zum Erstellen eines neuen gemeinsam genutzten geheimen kryptografischen Schlüssels 140 in den verbleibenden Knoten der Gruppe bereit, da jegliche Knoten, die der Gruppe vor dem Knoten, der die Gruppe verlassen hat, beigetreten sind (z. B. die Knoten 104A und 104B), den Startwert 134 aus der vorherigen Runde vor dem Hinzufügen des entfernten Knotens 104C aktualisieren können und keine zusätzlichen Daten miteinander austauschen müssen, um den neuen gemeinsam genutzten kryptografischen Schlüssel mit Forward Secrecy zu erzeugen.
  • In einigen Ausführungsformen erzeugt ein Satz von Knoten in einer Gruppe einen neuen gemeinsam genutzten kryptografischen Schlüssel 140 in einer nicht interaktiven Neuverschlüsselungsoperation, die nicht erfordert, dass ein oder mehrere Knotenpaare neue gemeinsam genutzte geheime Daten austauschen, wenn alle Knoten bereits gemeinsam genutzte Startwerte unter Verwendung der Prozesse von 2 und 3 erstellt haben. 6 zeigt den nicht interaktiven Neuverschlüsselungsprozess 600 mit mehr Einzelheiten. In der nachfolgenden Beschreibung bezieht sich eine Beschreibung des Prozesses 600, der eine Funktion oder Aktion durchführt, auf den Betrieb einer oder mehrerer Steuerungen, um gespeicherte Programmanweisungen auszuführen, um die Funktion oder Aktion in Verbindung mit anderen Komponenten in einem Kommunikationssystem durchzuführen. Der Prozess 600 wird in Verbindung mit dem System 100 von 1 zu Veranschaulichungszwecken beschrieben.
  • Der Prozess 600 beginnt damit, dass jeder Knoten in der Gruppe einen neuen gemeinsam genutzten geheimen kryptografischen Schlüssel 140 unter Verwendung der Schlüsselerzeugungsfunktion erzeugt, die auf den gemeinsam genutzten Startwert 134 der ersten Runde angewendet wird, und jeder Knoten den alten gemeinsam genutzten geheimen kryptografischen Schlüssel 140 löscht (Block 604). Wenn sich beispielsweise in dem System 100 die Knoten 104A, 104B und 104C in einer Gruppe befinden, erzeugt die Steuerung 108 in jedem Knoten einen neuen gemeinsam genutzten geheimen kryptografischen Schlüssel 140, um den alten Schlüssel durch Anwenden des kryptografisch sicheren PRNG mit einem vorbestimmten Indexwert auf den gemeinsam genutzten Startwert 134 der letzten Runde anzuwenden: k K n o t e n 1 = f ( s 1 2 ,0 ) ;
    Figure DE112018003506T5_0023
    k K n o t e n 2 = f ( s 2 2 ,0 ) ;
    Figure DE112018003506T5_0024
    k K n o t e n 3 = f ( s 3 2 ,0 ) ;
    Figure DE112018003506T5_0025
    kKnoten1 = kKnoten2 = kKnoten3. Alternative Ausführungsformen können eine andere Schlüsselerzeugungsfunktion verwenden, um neue gemeinsam genutzte geheime kryptografische Schlüssel zu erzeugen. Dieselbe Operation kann für jede Gruppe ausgeführt werden, die zwei oder mehr Knoten enthält. Wie vorstehend in 2 und 3 beschrieben, wird der gemeinsam genutzte Startwert 134 der letzten Runde unter Verwendung der kryptografisch sicheren Einwegfunktion erzeugt, die auf die gemeinsam genutzten geheimen Daten der letzten Runde angewendet wird, und der neu erzeugte gemeinsam genutzte geheime kryptografische Schlüssel 140 kann aufgrund der Eigenschaften der kryptografisch sicheren Einwegfunktion, die Forward Secrecy für den älteren gemeinsam genutzten geheimen kryptografischen Schlüssel bereitstellt, nicht verwendet werden, um den älteren gemeinsam genutzten geheimen kryptografischen Schlüssel 140 zu reproduzieren, wenn der neu erzeugte gemeinsam genutzte geheime kryptografische Schlüssel 140 dem Angreifer 150 offengelegt wird.
  • Der Prozess 600 fährt fort, indem jeder Knoten in der Gruppe den Startwert der letzten Runde unter Verwendung der kryptografisch sicheren Einwegfunktion aktualisiert, die auf den Startwert der letzten Runde angewendet wird, um Forward Secrecy für zusätzliche Operationen unter Verwendung des gemeinsam genutzten Startwerts bereitzustellen (Block 608). In dem vorstehenden Beispiel erzeugt die Steuerung 108 in jedem der Knoten 104A-104C einen aktualisierten gemeinsam genutzten Startwert 134 für die letzte Runde, der den vorherigen gemeinsam genutzten Startwert unter Verwendung der kryptografisch sicheren Einwegfunktion g ersetzt: s 1 2 = g ( s 1 2 ) ;
    Figure DE112018003506T5_0026
    s 2 2 = g ( s 2 2 ) ;
    Figure DE112018003506T5_0027
    s 3 2 = g ( s 3 2 ) ;
    Figure DE112018003506T5_0028
    s 1 2 = s 2 2 = s 3 2 .
    Figure DE112018003506T5_0029
    Diese Operation stellt auch Forward Secrecy bereit, da der Angreifer 150 den aktualisierten gemeinsam genutzten Startwert 134 nicht verwenden kann, um den Wert des neuen gemeinsam genutzten geheimen kryptografischen Schlüssels 140 oder des älteren gemeinsam genutzten geheimen kryptografischen Schlüssels abzuleiten.
  • Es lässt sich nachvollziehen, dass Varianten der vorstehend offenbarten und anderen Merkmale und Funktionen oder Alternativen davon wünschenswerterweise in vielen anderen unterschiedlichen Systemen, Anwendungen oder Verfahren kombiniert werden können. Verschiedene gegenwärtig unvorhergesehene oder unerwartete Alternativen, Modifikationen, Variationen oder Verbesserungen können anschließend von Fachleuten auf dem Gebiet vorgenommen werden, die auch von den nachfolgenden Ansprüchen umfasst sein sollen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62551609 [0001]

Claims (20)

  1. Verfahren zur Vereinbarung gemeinsam genutzter Geheimnisse mit Forward Secrecy, umfassend: Erzeugen, mit einer Steuerung in einem ersten Knoten, einer ersten Vielzahl von Datenbits unter Verwendung eines kryptografisch sicheren Pseudozufallszahlengenerators (Pseudo-Random Number Generator, PRNG), der auf einen in einem Speicher gespeicherten ersten Knotenstartwert und mindestens einen Indexwert angewendet wird; Übertragen, mit der Steuerung und einem Transceiver in dem ersten Knoten, von jedem Bit in der ersten Vielzahl von Datenbits durch ein gemeinsam genutztes Kommunikationsmedium gleichzeitig mit dem Übertragen einer zweiten Vielzahl von Datenbits von einem mit dem gemeinsam genutzten Kommunikationsmedium verbundenen zweiten Knoten, die durch den Transceiver in dem ersten Knoten empfangen werden; Identifizieren, mit der Steuerung in dem ersten Knoten, von mit dem zweiten Knoten gemeinsam genutzten geheimen Daten unter Verwendung eines Abschnitts der ersten Vielzahl von Datenbits, die logische Komplemente der zweiten Vielzahl von Datenbits sind, die gleichzeitig von dem ersten Knoten und dem zweiten Knoten übertragen werden; Erzeugen, mit der Steuerung in dem ersten Knoten, eines gemeinsam genutzten Startwerts unter Verwendung einer kryptografisch sicheren Einwegfunktion, die auf die gemeinsam genutzten geheimen Daten angewendet wird, wobei der gemeinsam genutzte Startwert in dem Speicher gespeichert wird; und Erzeugen, mit der Steuerung in dem ersten Knoten, eines aktualisierten Knotenstartwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf den ersten Knotenstartwert angewendet wird, wobei der aktualisierte Knotenstartwert in dem Speicher gespeichert wird, um den ersten Knotenstartwert zu ersetzen.
  2. Verfahren nach Anspruch 1, ferner umfassend: Erzeugen, mit der Steuerung in einem ersten Knoten, eines ersten gemeinsam genutzten geheimen kryptografischen Schlüssels unter Verwendung einer Schlüsselerzeugungsfunktion, die auf die gemeinsam genutzten geheimen Daten angewendet wird, wobei der erste gemeinsam genutzte geheime kryptografische Schlüssel in dem Speicher gespeichert wird.
  3. Verfahren nach Anspruch 2, ferner umfassend: Erzeugen, mit der Steuerung in dem ersten Knoten, eines zweiten gemeinsam genutzten geheimen kryptografischen Schlüssels unter Verwendung der Schlüsselerzeugungsfunktion, die auf den gemeinsam genutzten Startwert angewendet wird, wobei der zweite gemeinsam genutzte geheime kryptografische Schlüssel in dem Speicher gespeichert wird, um den ersten gemeinsam genutzten geheimen kryptografischen Schlüssel zu ersetzen; und Erzeugen, mit der Steuerung in dem ersten Knoten, eines aktualisierten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf den gemeinsam genutzten Startwert angewendet wird, wobei der aktualisierte gemeinsam genutzte Startwert in dem Speicher gespeichert wird, um den gemeinsam genutzten Startwert zu ersetzen.
  4. Verfahren nach Anspruch 1, wobei die Übertragung der ersten Vielzahl von Datenbits ferner umfasst: Übertragen, mit dem Transceiver in dem ersten Knoten, jedes Bits in der ersten Vielzahl von Datenbits als eine Sequenz von zwei Übertragungen, wobei die erste Übertragung das Bit in der ersten Vielzahl von Datenbits ist und die zweite Übertragung ein logisches Komplement des Bits in der ersten Vielzahl von Datenbits ist.
  5. Verfahren nach Anspruch 1, wobei die kryptografisch sichere Einwegfunktion eine kryptografische Hashfunktion ist.
  6. Verfahren nach Anspruch 2, wobei die Schlüsselerzeugungsfunktion der kryptografisch sichere PRNG ist.
  7. Verfahren nach Anspruch 1, wobei der Transceiver in dem ersten Knoten jedes Bit in der ersten Vielzahl von Datenbits über ein gemeinsam genutztes CAN-Bus-Kommunikationsmedium überträgt.
  8. Verfahren zur Vereinbarung gemeinsam genutzter Geheimnisse mit Forward Secrecy, umfassend: Erzeugen, mit einer Steuerung in einem zweiten Knoten, einer ersten Vielzahl von Datenbits unter Verwendung eines kryptografisch sicheren Pseudozufallszahlengenerators (PRNG), der auf einen in dem Speicher des zweiten Knotens gespeicherten ersten gemeinsam genutzten Startwert und mindestens einen Indexwert angewendet wird, wobei der erste gemeinsam genutzte Startwert von dem zweiten Knoten und einem ersten Knoten gemeinsam genutzt wird, die mit einem gemeinsam genutzten Kommunikationsmedium verbunden sind; Übertragen, mit der Steuerung und einem Transceiver in dem zweiten Knoten, von jedem Bit in der ersten Vielzahl von Datenbits durch das gemeinsam genutzte Kommunikationsmedium gleichzeitig mit dem Übertragen einer zweiten Vielzahl von Datenbits von einem mit dem gemeinsam genutzten Kommunikationsmedium verbundenen dritten Knoten, die von dem Transceiver in dem zweiten Knoten empfangen werden; Identifizieren, mit der Steuerung in dem zweiten Knoten, von mit dem dritten Knoten gemeinsam genutzten ersten geheimen Daten unter Verwendung eines Abschnitts der ersten Vielzahl von Datenbits, die logische Komplemente der zweiten Vielzahl von Datenbits sind, die gleichzeitig von dem zweiten Knoten und dem dritten Knoten übertragen werden; Erzeugen, mit der Steuerung in dem zweiten Knoten, eines zweiten gemeinsam genutzten Startwerts unter Verwendung einer kryptografisch sicheren Einwegfunktion, die auf die ersten gemeinsam genutzten geheimen Daten angewendet wird, wobei der zweite gemeinsam genutzte Startwert in dem Speicher gespeichert wird; und Erzeugen, mit der Steuerung in dem zweiten Knoten, eines aktualisierten ersten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf den ersten gemeinsam genutzten Startwert angewendet wird, wobei der aktualisierte erste gemeinsam genutzte Startwert in dem Speicher gespeichert wird, um den ersten gemeinsam genutzten Startwert zu ersetzen.
  9. Verfahren nach Anspruch 8, ferner umfassend: Erzeugen, mit einer Steuerung in dem ersten Knoten, der ersten Vielzahl von Datenbits unter Verwendung des kryptografisch sicheren PRNG, der auf den in einem Speicher des ersten Knotens gespeicherten ersten gemeinsam genutzten Startwert und den mindestens einen Indexwert angewendet wird; Identifizieren, mit der Steuerung in dem ersten Knoten, der ersten gemeinsam genutzten geheimen Daten basierend auf der ersten Vielzahl von Datenbits und durch Empfangen der Übertragungen des zweiten Knotens und des dritten Knotens unter Verwendung des Transceivers in dem ersten Knoten, um den Abschnitt der ersten Vielzahl von Datenbits, die logische Komplemente der zweiten Vielzahl von Datenbits sind, zu identifizieren; Erzeugen, mit der Steuerung in dem ersten Knoten, des zweiten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf die ersten gemeinsam genutzten geheimen Daten angewendet wird, wobei der zweite gemeinsam genutzte Startwert in dem Speicher gespeichert wird; und Erzeugen, mit der Steuerung in dem ersten Knoten, des aktualisierten ersten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf den ersten gemeinsam genutzten Startwert angewendet wird, wobei der aktualisierte erste gemeinsam genutzte Startwert in dem Speicher des ersten Knotens gespeichert wird, um den ersten gemeinsam genutzten Startwert zu ersetzen.
  10. Verfahren nach Anspruch 9, ferner umfassend: Erzeugen, mit der Steuerung in dem ersten Knoten, eines ersten gemeinsam genutzten geheimen kryptografischen Schlüssels in dem Speicher des ersten Knotens unter Verwendung einer Schlüsselerzeugungsfunktion, die auf die ersten gemeinsam genutzten geheimen Daten angewendet wird; und Erzeugen, mit der Steuerung in dem zweiten Knoten, des ersten gemeinsam genutzten geheimen kryptografischen Schlüssels in dem Speicher des zweiten Knotens unter Verwendung der Schlüsselerzeugungsfunktion, die auf die ersten gemeinsam genutzten geheimen Daten angewendet wird.
  11. Verfahren nach Anspruch 10, ferner umfassend: Erzeugen, mit der Steuerung in dem zweiten Knoten, eines zweiten gemeinsam genutzten geheimen kryptografischen Schlüssels unter Verwendung der Schlüsselerzeugungsfunktion, die auf den zweiten gemeinsam genutzten Startwert angewendet wird, wobei der zweite gemeinsam genutzte geheime kryptografische Schlüssel in dem Speicher gespeichert wird, um den ersten gemeinsam genutzten geheimen kryptografischen Schlüssel zu ersetzen; und Erzeugen, mit der Steuerung in dem zweiten Knoten, eines aktualisierten zweiten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf den zweiten gemeinsam genutzten Startwert angewendet wird, wobei der aktualisierte zweite gemeinsam genutzte Startwert in dem Speicher des zweiten Knotens gespeichert wird, um den zweiten gemeinsam genutzten Startwert zu ersetzen.
  12. Verfahren nach Anspruch 10, ferner umfassend: Erzeugen, mit der Steuerung in dem zweiten Knoten, einer dritten Vielzahl von Datenbits unter Verwendung des kryptografisch sicheren PRNG, der auf den zweiten gemeinsam genutzten Startwert und den mindestens einen Indexwert angewendet wird; Übertragen, mit der Steuerung und dem Transceiver in dem zweiten Knoten, von jedem Bit in der dritten Vielzahl von Datenbits durch das gemeinsam genutzte Kommunikationsmedium gleichzeitig mit dem Übertragen einer vierten Vielzahl von Datenbits von dem mit dem gemeinsam genutzten Kommunikationsmedium verbundenen dritten Knoten, die von dem Transceiver in dem zweiten Knoten empfangen werden; Identifizieren, mit der Steuerung in dem zweiten Knoten, von mit dem dritten Knoten gemeinsam genutzten zweiten geheimen Daten unter Verwendung eines Abschnitts der dritten Vielzahl von Datenbits, die logische Komplemente der vierten Vielzahl von Datenbits sind, die gleichzeitig von dem zweiten Knoten und dem dritten Knoten übertragen werden; Erzeugen, mit der Steuerung in dem zweiten Knoten, eines zweiten gemeinsam genutzten geheimen kryptografischen Schlüssels in dem Speicher des zweiten Knotens unter Verwendung der Schlüsselerzeugungsfunktion, die auf die zweiten gemeinsam genutzten geheimen Daten angewendet wird, wobei der zweite gemeinsam genutzte geheime kryptografische Schlüssel den ersten gemeinsam genutzten geheimen kryptografischen Schlüssel in dem Speicher des zweiten Knotens ersetzt; und Erzeugen, mit der Steuerung in dem zweiten Knoten, eines aktualisierten zweiten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf die zweiten gemeinsam genutzten geheimen Daten angewendet wird, wobei der aktualisierte zweite gemeinsam genutzte Startwert in dem Speicher des zweiten Knotens gespeichert wird.
  13. Verfahren nach Anspruch 12, ferner umfassend: Erzeugen, mit der Steuerung in dem dritten Knoten, der vierten Vielzahl von Datenbits unter Verwendung des kryptografisch sicheren PRNG, der auf einen in einem Speicher des dritten Knotens gespeicherten Knotenstartwert und den mindestens einen Indexwert angewendet wird; Identifizieren, mit der Steuerung in dem dritten Knoten, der zweiten gemeinsam genutzten geheimen Daten unter Verwendung des Abschnitts der dritten Vielzahl von Datenbits, die logische Komplemente der vierten Vielzahl von Datenbits sind, die gleichzeitig von dem zweiten Knoten und dem dritten Knoten übertragen werden; Erzeugen, mit der Steuerung in dem dritten Knoten, des zweiten gemeinsam genutzten geheimen kryptografischen Schlüssels in dem Speicher des dritten Knotens unter Verwendung der Schlüsselerzeugungsfunktion, die auf die zweiten gemeinsam genutzten geheimen Daten angewendet wird, wobei der zweite gemeinsam genutzte geheime kryptografische Schlüssel den ersten gemeinsam genutzten geheimen kryptografischen Schlüssel in dem Speicher des dritten Knotens ersetzt; und Erzeugen, mit der Steuerung in dem dritten Knoten, eines aktualisierten Knotenstartwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf den Knotenstartwert angewendet wird, wobei der aktualisierte Knotenstartwert in dem Speicher des dritten Knotens gespeichert wird, um den Knotenstartwert zu ersetzen.
  14. Verfahren nach Anspruch 12, ferner umfassend: Erzeugen, mit einer Steuerung in dem ersten Knoten, der dritten Vielzahl von Datenbits unter Verwendung des kryptografisch sicheren PRNG, der auf den zweiten gemeinsam genutzten Startwert und den mindestens einen Indexwert angewendet wird; Identifizieren, mit der Steuerung in dem ersten Knoten, der zweiten gemeinsam genutzten geheimen Daten basierend auf der dritten Vielzahl von Datenbits und durch Empfangen der Übertragungen des zweiten Knotens und des dritten Knotens unter Verwendung des Transceivers in dem ersten Knoten, um den Abschnitt der dritten Vielzahl von Datenbits, die logische Komplemente der vierten Vielzahl von Datenbits sind, zu identifizieren; Erzeugen, mit der Steuerung in dem ersten Knoten, des zweiten gemeinsam genutzten geheimen kryptografischen Schlüssels in dem Speicher des ersten Knotens unter Verwendung der Schlüsselerzeugungsfunktion, die auf die zweiten gemeinsam genutzten geheimen Daten angewendet wird, wobei der zweite gemeinsam genutzte geheime kryptografische Schlüssel den ersten gemeinsam genutzten geheimen kryptografischen Schlüssel in dem Speicher des ersten Knotens ersetzt; und Erzeugen, mit der Steuerung in dem ersten Knoten, des aktualisierten zweiten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf die zweiten gemeinsam genutzten geheimen Daten angewendet wird, wobei der aktualisierte zweite gemeinsam genutzte Startwert in dem Speicher des ersten Knotens gespeichert wird, um den zweiten gemeinsam genutzten Startwert zu ersetzen.
  15. Verfahren nach Anspruch 10, ferner umfassend: Erzeugen, mit einer Steuerung in dem dritten Knoten, einer dritten Vielzahl von Datenbits unter Verwendung des kryptografisch sicheren PRNG, der auf den in einem Speicher des dritten Knotens gespeicherten zweiten gemeinsam genutzten Startwert und den mindestens einen Indexwert angewendet wird; Übertragen, mit der Steuerung und einem Transceiver in dem dritten Knoten, von jedem Bit in der dritten Vielzahl von Datenbits durch das gemeinsam genutzte Kommunikationsmedium gleichzeitig mit dem Übertragen einer vierten Vielzahl von Datenbits von einem mit dem gemeinsam genutzten Kommunikationsmedium verbundenen vierten Knoten, die von dem Transceiver in dem dritten Knoten empfangen werden; Identifizieren, mit der Steuerung in dem dritten Knoten, von mit dem vierten Knoten gemeinsam genutzten zweiten geheimen Daten unter Verwendung eines Abschnitts der dritten Vielzahl von Datenbits, die logische Komplemente der vierten Vielzahl von Datenbits sind, die gleichzeitig von dem dritten Knoten und dem vierten Knoten übertragen werden; Erzeugen, mit der Steuerung in dem dritten Knoten, eines dritten gemeinsam genutzten Startwerts in dem Speicher des dritten Knotens unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf die zweiten gemeinsam genutzten geheimen Daten angewendet wird, wobei der dritte gemeinsam genutzte Startwert in dem Speicher des dritten Knotens gespeichert wird; und Erzeugen, mit der Steuerung in dem dritten Knoten, eines zweiten gemeinsam genutzten geheimen kryptografischen Schlüssels in dem Speicher des dritten Knotens unter Verwendung der Schlüsselerzeugungsfunktion, die auf die zweiten gemeinsam genutzten geheimen Daten angewendet wird, wobei der zweite gemeinsam genutzte geheime kryptografische Schlüssel den ersten gemeinsam genutzten geheimen kryptografischen Schlüssel in dem Speicher des dritten Knotens ersetzt.
  16. Verfahren nach Anspruch 15, ferner umfassend: Erzeugen, mit der Steuerung in dem zweiten Knoten, einer fünften Vielzahl von Datenbits unter Verwendung des kryptografisch sicheren PRNG, der auf den aktualisierten ersten gemeinsam genutzten Startwert und den mindestens einen Indexwert in Reaktion darauf angewendet wird, dass der dritte Knoten die Gruppe verlässt, die den ersten Knoten, den zweiten Knoten, den dritten Knoten und den vierten Knoten enthält; Übertragen, mit der Steuerung und dem Transceiver in dem zweiten Knoten, von jedem Bit in der fünften Vielzahl von Datenbits durch das gemeinsam genutzte Kommunikationsmedium gleichzeitig mit dem Übertragen einer sechsten Vielzahl von Datenbits von dem mit dem gemeinsam genutzten Kommunikationsmedium verbundenen vierten Knoten, die von dem Transceiver in dem zweiten Knoten empfangen werden, in Reaktion darauf, dass der dritte Knoten die Gruppe verlässt, die den ersten Knoten, den zweiten Knoten, den dritten Knoten und den vierten Knoten enthält; Identifizieren, mit der Steuerung in dem zweiten Knoten, von mit dem vierten Knoten gemeinsam genutzten dritten geheimen Daten unter Verwendung eines Abschnitts der fünften Vielzahl von Datenbits, die logische Komplemente der sechsten Vielzahl von Datenbits sind, die gleichzeitig von dem zweiten Knoten und dem vierten Knoten übertragen werden; Erzeugen, mit der Steuerung in dem zweiten Knoten, eines aktualisierten zweiten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf die dritten gemeinsam genutzten geheimen Daten angewendet wird, wobei der aktualisierte zweite gemeinsam genutzte Startwert in dem Speicher des zweiten Knotens gespeichert wird; und Erzeugen, mit der Steuerung in dem zweiten Knoten, eines dritten gemeinsam genutzten geheimen kryptografischen Schlüssels in dem Speicher des zweiten Knotens unter Verwendung der Schlüsselerzeugungsfunktion, die auf die dritten gemeinsam genutzten geheimen Daten angewendet wird, um eine verschlüsselte Kommunikation zwischen dem ersten Knoten, dem zweiten Knoten und dem vierten Knoten, jedoch nicht dem dritten Knoten, durch das gemeinsam genutzte Kommunikationsmedium zu ermöglichen.
  17. Verfahren nach Anspruch 16, ferner umfassend: Erzeugen, mit der Steuerung in dem ersten Knoten, der fünften Vielzahl von Datenbits basierend auf dem aktualisierten ersten gemeinsam genutzten Startwert und dem mindestens einen Indexwert unter Verwendung des kryptografisch sicheren PRNG in Reaktion darauf, dass der dritte Knoten die Gruppe verlässt, die den ersten Knoten, den zweiten Knoten, den dritten Knoten und den vierten Knoten enthält; Identifizieren, mit der Steuerung in dem ersten Knoten, der dritten gemeinsam genutzten geheimen Daten basierend auf der fünften Vielzahl von Datenbits und durch Empfangen der Übertragungen des zweiten Knotens und des vierten Knotens unter Verwendung des Transceivers in dem ersten Knoten, um den Abschnitt der fünften Vielzahl von Datenbits zu identifizieren, die logische Komplemente der sechsten Vielzahl von Datenbits sind; Erzeugen, mit der Steuerung in dem ersten Knoten, des aktualisierten zweiten gemeinsam genutzten Startwerts unter Verwendung der kryptografisch sicheren Einwegfunktion, die auf die dritten gemeinsam genutzten geheimen Daten angewendet wird, wobei der aktualisierte zweite gemeinsam genutzte Startwert in dem Speicher des ersten Knotens gespeichert wird; und Erzeugen, mit der Steuerung in dem ersten Knoten, des dritten gemeinsam genutzten geheimen kryptografischen Schlüssels in dem Speicher des ersten Knotens unter Verwendung der Schlüsselerzeugungsfunktion, die auf die dritten gemeinsam genutzten geheimen Daten angewendet wird, um eine verschlüsselte Kommunikation zwischen dem ersten Knoten, dem zweiten Knoten und dem vierten Knoten, jedoch nicht dem dritten Knoten, durch das gemeinsam genutzte Kommunikationsmedium zu ermöglichen.
  18. Verfahren nach Anspruch 8, wobei die kryptografisch sichere Einwegfunktion eine kryptografische Hashfunktion ist.
  19. Verfahren nach Anspruch 9, wobei die Schlüsselerzeugungsfunktion der kryptografisch sichere PRNG ist.
  20. Verfahren nach Anspruch 8, wobei der Transceiver in dem zweiten Knoten jedes Bit der ersten Vielzahl von Datenbits durch ein gemeinsam genutztes CAN-Bus-Kommunikationsmedium überträgt.
DE112018003506.9T 2017-08-29 2018-08-29 Verfahren und Systeme zur linearen Schlüsselvereinbarung mit Forward Secrecy unter Verwendung eines unsicheren gemeinsam genutzten Kommunikationsmediums Pending DE112018003506T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762551609P 2017-08-29 2017-08-29
US62/551,609 2017-08-29
PCT/US2018/048535 WO2019046420A1 (en) 2017-08-29 2018-08-29 METHODS AND SYSTEMS FOR TRANSFER SECRET LINEAR KEY AGREEMENT USING UNSECURED SHARED COMMUNICATION MEDIUM

Publications (1)

Publication Number Publication Date
DE112018003506T5 true DE112018003506T5 (de) 2020-04-02

Family

ID=65438084

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018003506.9T Pending DE112018003506T5 (de) 2017-08-29 2018-08-29 Verfahren und Systeme zur linearen Schlüsselvereinbarung mit Forward Secrecy unter Verwendung eines unsicheren gemeinsam genutzten Kommunikationsmediums

Country Status (6)

Country Link
US (1) US10833851B2 (de)
JP (1) JP6903223B2 (de)
CN (1) CN111247769B (de)
DE (1) DE112018003506T5 (de)
GB (1) GB2578408B (de)
WO (1) WO2019046420A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3788530A4 (de) * 2018-05-04 2022-01-19 Crypto4A Technologies Inc. Digitaler datenvergleichsfilter, system und verfahren sowie anwendungen dafür
US11032271B2 (en) * 2019-02-01 2021-06-08 Rsa Security Llc Authentication based on shared secret seed updates for one-time passcode generation
US11223473B2 (en) 2019-02-01 2022-01-11 EMC IP Holding Company LLC Client-driven shared secret updates for client authentication
KR102372682B1 (ko) * 2019-10-23 2022-03-10 한국과학기술원 주기적 시더 계승을 이용한 p2p 네트워크 기반 검증 가능한 난수 생성 방법 및 시스템
EP3917087B1 (de) * 2020-05-26 2023-04-19 Nxp B.V. Steuergerät und sendeempfänger
US12003635B2 (en) * 2021-12-02 2024-06-04 Salesforce, Inc. Centrally rotating private/public encryption keys in a large scale system

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440524A (en) 1994-02-01 1995-08-08 Integrated Device Technology, Inc. Method and apparatus for simuilataneous long writes of multiple cells of a row in a static ram
US6021203A (en) * 1996-12-11 2000-02-01 Microsoft Corporation Coercion resistant one-time-pad cryptosystem that facilitates transmission of messages having different levels of security
GB2365153A (en) 2000-01-28 2002-02-13 Simon William Moore Microprocessor resistant to power analysis with an alarm state
DE10128573A1 (de) 2001-06-13 2003-01-02 Infineon Technologies Ag Verhindern der unerwünschten externen Erfassung von Operationen in integrierten Digitalschaltungen
US7424615B1 (en) 2001-07-30 2008-09-09 Apple Inc. Mutually authenticated secure key exchange (MASKE)
US7113759B2 (en) 2002-08-28 2006-09-26 Texas Instruments Incorporated Controller area network transceiver having capacitive balancing circuit for improved receiver common-mode rejection
CA2413690A1 (en) 2002-12-06 2004-06-06 Ibm Canada Limited-Ibm Canada Limitee Zero knowledge document comparison between mutually distrustful parties
US7532104B2 (en) 2003-05-06 2009-05-12 Rsa Security, Inc. Low-complexity cryptographic techniques for use with radio frequency identification devices
EP1673898A1 (de) * 2003-09-22 2006-06-28 Impsys Digital Security AB Datenkommunikations-sicherheitsanordnung und -verfahren
CN100493247C (zh) * 2004-02-27 2009-05-27 北京三星通信技术研究有限公司 高速分组数据网中接入认证方法
US7444380B1 (en) * 2004-07-13 2008-10-28 Marc Diamond Method and system for dispensing and verification of permissions for delivery of electronic messages
DE102005009491A1 (de) 2005-02-24 2006-08-31 Volkswagen Ag Transceiver für ein Steuergerät
US8670564B1 (en) * 2006-08-14 2014-03-11 Key Holdings, LLC Data encryption system and method
US8649336B2 (en) 2008-01-14 2014-02-11 Power-One Italy S.P.A. Method for assigning addresses to a plurality of electronic devices connected to a communication channel
KR20090126166A (ko) 2008-06-03 2009-12-08 엘지전자 주식회사 트래픽 암호화 키 생성 방법 및 갱신 방법
CA2722186C (en) * 2008-06-06 2015-09-15 Telefonaktiebolaget L M Ericsson (Publ) Cryptographic key generation
US20100042841A1 (en) * 2008-08-15 2010-02-18 Neal King Updating and Distributing Encryption Keys
US8072284B2 (en) 2009-03-30 2011-12-06 Ricoh Co., Ltd. Split delay-line oscillator for secure data transmission
CN102142961B (zh) 2010-06-30 2014-10-08 华为技术有限公司 一种网关、节点和服务器进行鉴权的方法、装置及系统
EP2541427A1 (de) 2011-07-01 2013-01-02 Siemens Aktiengesellschaft Abschluss für Broadcast-Serienanschluss
JP5435513B2 (ja) * 2012-01-27 2014-03-05 トヨタ自動車株式会社 暗号通信システム、鍵配布装置、暗号通信方法
US9232024B2 (en) * 2012-02-29 2016-01-05 Blackberry Limited Communicating an identity to a server
US8955157B2 (en) 2012-07-03 2015-02-10 Honeywell International Inc. Method and apparatus for differential power analysis protection
EP2712123A1 (de) 2012-09-20 2014-03-26 Robert Bosch Gmbh Standard CAN Implementierung toleriert CAN FD Rahmen
US8983069B2 (en) 2013-03-14 2015-03-17 Robert Bosch Gmbh System and method for counter mode encrypted communication with reduced bandwidth
US9141823B2 (en) * 2013-03-15 2015-09-22 Veridicom, Sa De Cv Abstraction layer for default encryption with orthogonal encryption logic session object; and automated authentication, with a method for online litigation
US9502889B2 (en) 2013-07-29 2016-11-22 Myson Century, Inc. Controller area network node transceiver
US9288048B2 (en) 2013-09-24 2016-03-15 The Regents Of The University Of Michigan Real-time frame authentication using ID anonymization in automotive networks
US10452504B2 (en) 2013-10-02 2019-10-22 Nxp B.V. Controller area network (CAN) device and method for emulating classic CAN error management
JP2015138456A (ja) * 2014-01-23 2015-07-30 アプリックスIpホールディングス株式会社 通信システム、ビーコン装置、および、通信方法
US10027476B2 (en) * 2014-04-28 2018-07-17 Robert Bosch Gmbh Method for generating a secret or a key in a network
DE102014212228A1 (de) 2014-06-25 2015-12-31 Robert Bosch Gmbh Verfahren und Vorrichtung zum Erzeugen eines geheimen Schlüssels
US10211990B2 (en) 2014-07-25 2019-02-19 GM Global Technology Operations LLC Authenticating messages sent over a vehicle bus that include message authentication codes
EP3605943B1 (de) 2014-11-13 2021-02-17 Panasonic Intellectual Property Corporation of America Schlüsselverwaltungsverfahren, fahrzeugmontiertes netzwerksystem und schlüsselverwaltungsvorrichtung
US9621160B2 (en) 2015-03-05 2017-04-11 Micron Technology, Inc. Circuits for impedance adjustment having multiple termination devices with switchable resistances and methods of adjusting impedance
DE102015220038A1 (de) 2015-05-22 2016-11-24 Robert Bosch Gmbh Verfahren zur Erzeugung eines Geheimnisses oder Schlüssels in einem Netzwerk
US10095634B2 (en) 2015-05-22 2018-10-09 Nxp B.V. In-vehicle network (IVN) device and method for operating an IVN device
DE102015209496A1 (de) * 2015-05-22 2016-11-24 Robert Bosch Gmbh Verfahren zur Erzeugung eines Geheimnisses oder Schlüssels in einem Netzwerk
US9807618B2 (en) * 2015-06-03 2017-10-31 Qualcomm Incorporated Performance enhancements for frequency reuse and time division multiplexing in a licensed assisted access system
US10104048B2 (en) * 2015-07-17 2018-10-16 Robert Bosch Gmbh Method and system for secure key generation over an insecure shared communication medium
KR101989950B1 (ko) * 2017-04-28 2019-06-17 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법

Also Published As

Publication number Publication date
JP6903223B2 (ja) 2021-07-14
US10833851B2 (en) 2020-11-10
WO2019046420A1 (en) 2019-03-07
GB2578408A (en) 2020-05-06
GB202001958D0 (en) 2020-04-01
JP2020532910A (ja) 2020-11-12
GB2578408B (en) 2022-04-20
CN111247769A (zh) 2020-06-05
US20190068366A1 (en) 2019-02-28
CN111247769B (zh) 2023-04-28

Similar Documents

Publication Publication Date Title
DE112018003506T5 (de) Verfahren und Systeme zur linearen Schlüsselvereinbarung mit Forward Secrecy unter Verwendung eines unsicheren gemeinsam genutzten Kommunikationsmediums
DE102011120968B4 (de) Erzeugen von sicheren Schlüsseln auf Anforderung
DE3883287T2 (de) Steuerung der Anwendung von Geheimübertragungsschlüsseln durch in einer Erzeugungsstelle hergestellte Steuerwerte.
DE102009024604B4 (de) Erzeugung eines Session-Schlüssels zur Authentisierung und sicheren Datenübertragung
DE69028254T2 (de) Verfahren zur Verwendung eines verschlüsselten Schlüssels als Schlüsselidentifizierer in einem Datenpaket eines Rechnernetzes
DE102019113026A1 (de) Automobile nonce-missbrauchs-widerstandsfähige authentifizierte verschlüsselung
DE112015002508B4 (de) Schlüsselaustauschsystem, Schlüsselaustauschverfahren, Schlüsselaustauschvorrichtung, Steuerverfahren dafür und Aufzeichnungsmedium zum Speichern von Steuerprogramm
DE102016112552A1 (de) Datenchiffrierung und -dechiffrierung auf der Grundlage einer Vorrichtungs- und Datenauthentifizierung
DE2231835B2 (de) Verfahren zur in mehreren Stufen erfolgenden Ver- und Entschlüsselung binärer Daten
DE19924986A1 (de) Verschlüsselungs-Konversionsvorrichtung, Entschlüsselungs-Konversionsvorrichtung, kryptografisches Kommunikationssystem und elektronische Gebühren-Sammelvorrichtung
EP0903027B1 (de) Verfahren zum gruppenbasierten kryptographischen schlüsselmanagement zwischen einer ersten computereinheit und gruppencomputereinheiten
DE112017007755B4 (de) Schlüsselverwaltungsvorrichtung und kommunikationsgerät
EP3157192A1 (de) Verfahren und system für eine asymmetrische schlüsselherleitung
WO2016188859A1 (de) Verfahren zur sicherstellung der informationssicherheit von über einen datenbus übertragenen daten sowie datenbussystem
DE102013202322A1 (de) Verfahren zur verschlüsselten Datenübertragung zwischen zwei Komponenten eines Steuergeräts
DE112022000479T5 (de) Verschlüsselte datenübertragung durch verwenden von zählermodus-verschlüsselung und geheimschlüsseln
EP3050244B1 (de) Bereitstellung und verwendung pseudonymer schlüssel bei hybrider verschlüsselung
EP0400362A2 (de) Verfahren zur hierarchischen Schlüsselverwaltung mit Teilschlüsseln zur Übermittlung digitalisierter Information
EP3439228B1 (de) Verfahren und vorrichtungen zum erreichen einer sicherheitsfunktion, insbesondere im umfeld einer geräte- und/oder anlagensteuerung
DE102012204611A1 (de) Kryptographisches Modul, kryptographisches System und kryptographisches Verfahren
DE102015219989A1 (de) Verfahren und Vorrichtung zur Auffrischung eines gemeinsamen Geheimnisses, insbesondere eines symmetrischen kryptographischen Schlüssels, zwischen einem ersten Knoten und einem zweiten Knoten eines Kommunikationssystems
DE102022127502A1 (de) Verfahren zum Aktualisieren eines Schlüssels zum verschlüsselten Kommunizieren zwischen einem Sender und einem Empfänger eines Fahrzeugs unter Verwendung eines mithilfe eines öffentlichen Schlüssels des Empfängers verschlüsselten neuen Schlüssel
WO2017064122A1 (de) Verfahren zur generierung eines geheimnisses in einem netzwerk mit wenigstens zwei durch eine vermittlungsstelle getrennten teilnehmern
DE102024110874A1 (de) Nonce-vorverarbeitung für ein sicherheitsschema
DE102015220083A1 (de) Schaltungsanordnung zur Erzeugung eines Geheimnisses oder Schlüssels in einem Netzwerk

Legal Events

Date Code Title Description
R012 Request for examination validly filed