DE102021105895A1 - Controller Area Network Schlüsselaustausch - Google Patents

Controller Area Network Schlüsselaustausch Download PDF

Info

Publication number
DE102021105895A1
DE102021105895A1 DE102021105895.3A DE102021105895A DE102021105895A1 DE 102021105895 A1 DE102021105895 A1 DE 102021105895A1 DE 102021105895 A DE102021105895 A DE 102021105895A DE 102021105895 A1 DE102021105895 A1 DE 102021105895A1
Authority
DE
Germany
Prior art keywords
node
bus
private key
modular exponentiation
communication system
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
DE102021105895.3A
Other languages
English (en)
Inventor
Alexander Zeh
Anjana Ramamoorthy
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102021105895A1 publication Critical patent/DE102021105895A1/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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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
    • H04L9/0841Key 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 involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

Abstract

Ein busbasiertes Kommunikationssystem kann einen Kommunikationsbus aufweisen, der eine Vielzahl von Knoten verbindet. Ein erster Knoten der Vielzahl von Knoten kann eine erste Nachricht auf dem Kommunikationsbus empfangen, wobei die erste Nachricht von einem zweiten Knoten der Vielzahl von Knoten auf dem Kommunikationsbus übertragen wurde. Die erste Nachricht kann eine modulare Potenzierung assoziiert mit einem privaten Schlüssel des zweiten Knotens enthalten. Der erste Knoten kann einen gemeinsamen geheimen Schlüssel berechnen, der mit der Vielzahl von Knoten assoziiert ist, basierend zumindest teilweise auf der modularen Potenzierung und einem privaten Schlüssel des ersten Knotens.

Description

  • Hintergrund
  • Ein busbasiertes Kommunikationssystem, wie z.B. ein Controller Area Network (CAN), ist ein Netzwerk aus einem oder mehreren Kommunikationsbussen, die Knoten eines bestimmten Systems miteinander verbinden. Ein einzelner Knoten kann z.B. einen Sensor, einen Aktuator, einen Controller, und/oder eine andere Vorrichtung umfassen, die von dem System zur Ausführung einer Funktion verwendet wird. In einem Fahrzeugsystem kann ein Knoten einem Sensor, einem Aktuator, und/oder einer ECU (Electronic Control Unit) entsprechen (z.B. einem ECM (Engine Control Module), einem PCM (Powertrain Control Module), einem TCM (Transmission Control Module), einem BCM (Brake Control Module), einem CCM (Central Control Module), einem CTM (Central Timing Module), einem GEM (General Electronic Module), einem BCM (Body Control Module), einem SCM (Suspension Control Module), und/oder ähnlichem), das mit einer Funktion eines Fahrzeugs assoziiert ist. Knoten innerhalb eines busbasierten Kommunikationssystems kommunizieren miteinander über den Kommunikationsbus unter Verwendung eines String von Bits, oder Rahmen, die gemäß einem nachrichtenbasierten Kommunikationsprotokoll seriell übertragen und/oder empfangen werden. Ein CAN-System wird häufig in Fahrzeugen (z.B. Straßenfahrzeugen, Geländefahrzeugen, Seefahrzeugen, Luftfahrzeugen, und/oder ähnlichem) verwendet und kann auch für andere Anwendungen (z.B. industrielle Systeme, medizinische Systeme, Robotersysteme, und/oder ähnlichem) eingesetzt werden.
  • Kurzdarstellung
  • Gemäß einigen möglichen Implementierungen kann ein busbasiertes Kommunikationssystem aufweisen einen Kommunikationsbus, der eine Vielzahl von Knoten verbindet; und einen ersten Knoten der Vielzahl von Knoten, der dazu ausgelegt ist, eine Nachricht auf dem Kommunikationsbus zu empfangen, wobei die Nachricht auf dem Kommunikationsbus von einem zweiten Knoten der Vielzahl von Knoten übertragen wurde, wobei die Nachricht eine modulare Potenzierung enthält, die mit einem privaten Schlüssel des zweiten Knotens und zumindest einem privaten Schlüssel eines dritten Knotens der Vielzahl von Knoten assoziiert ist; und einen gemeinsamen geheimen Schlüssel zu berechnen, der mit der Vielzahl von Knoten assoziiert ist, zumindest teilweise basierend auf der modularen Potenzierung und einem privaten Schlüssel des ersten Knotens.
  • Gemäß einigen möglichen Implementierungen kann ein erster Knoten eines busbasierten Kommunikationssystems einen oder mehrere Prozessoren enthalten, die dazu ausgelegt sind, eine Nachricht auf einem Kommunikationsbus des busbasierten Kommunikationssystems zu empfangen, wobei die Nachricht von einem zweiten Knoten des busbasierten Kommunikationssystems auf dem Kommunikationsbus übertragen wurde, wobei die Nachricht eine modulare Potenzierung enthält, die mit einem privaten Schlüssel des zweiten Knotens und zumindest einem privaten Schlüssel eines dritten Knotens des busbasierten Kommunikationssystems assoziiert ist; und einen gemeinsamen geheimen Schlüssel zu berechnen, der mit einer Vielzahl von Knoten des busbasierten Kommunikationssystems assoziiert ist, zumindest teilweise basierend auf der modularen Potenzierung und einem privaten Schlüssel des ersten Knotens, wobei die Vielzahl von Knoten den ersten Knoten, den zweiten Knoten und den dritten Knoten aufweist.
  • Gemäß einigen möglichen Implementierungen kann ein Verfahren ein Empfangen, durch einen ersten Knoten in einem busbasierten Kommunikationssystem, einer Nachricht auf einem Kommunikationsbus des busbasierten Kommunikationssystems aufweisen, wobei die Nachricht von einem zweiten Knoten des busbasierten Kommunikationssystems auf dem Kommunikationsbus übertragen wurde, und die Nachricht eine modulare Potenzierung enthält, die mit einem privaten Schlüssel des zweiten Knotens und zumindest einem privaten Schlüssel eines dritten Knotens des busbasierten Kommunikationssystems assoziiert ist; und Berechnen, durch den ersten Knoten und zumindest teilweise basierend auf der modularen Potenzierung und einem privaten Schlüssel des ersten Knotens, eines gemeinsamen geheimen Schlüssels, der mit dem busbasierten Kommunikationssystem assoziiert ist.
  • Figurenliste
    • 1A und 1B sind Diagramme, die Beispiele assoziiert mit einem busbasierten Kommunikationssystem gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulichen.
    • 2A-2E sind Diagramme, die ein Beispiel eines Schlüsselaustauschs in einem busbasierten Kommunikationssystem gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulichen.
    • 3A-3E sind Diagramme, die mit einer Anzahl von Nachrichten assoziiert sind, die erforderlich sind, um einen Schlüsselaustausch in einem busbasierten Kommunikationssystem gemäß verschiedenen Aspekten der vorliegenden Offenbarung zu erreichen.
    • 4 ist ein Diagramm eines Beispiels eines Knotens eines busbasierten Kommunikationssystems, bei dem die hier beschriebenen Systeme und/oder Verfahren implementiert werden können.
    • 5 ist ein Flussdiagramm eines Beispielprozesses, der mit einem Bereitstellen eines Schlüsselaustauschs in einem busbasierten Kommunikationssystem gemäß verschiedenen Aspekten der vorliegenden Offenbarung assoziiert ist.
  • Detaillierte Beschreibung
  • Die folgende detaillierte Beschreibung der Beispielimplementierungen bezieht sich auf die beigefügten Zeichnungen. Dieselben Bezugszeichen in verschiedenen Zeichnungen können gleiche oder ähnliche Elemente kennzeichnen.
  • Wie oben beschrieben, kann ein busbasiertes Kommunikationssystem, wie ein CAN, ein Netzwerk aus einem oder mehreren Kommunikationsbussen aufweisen, die Knoten eines Systems (z.B. eines Fahrzeugsystems, eines industriellen Systems, eines medizinischen Systems, eines Robotersystems, und/oder ähnlichem) miteinander verbinden. Ein Knoten kann einen Sensor, einen Aktuator, einen Controller, und/oder eine andere Vorrichtung aufweisen, die zum Ausführen einer Funktion des zugehörigen Systems verwendet wird. In einem Fahrzeug kann ein Knoten beispielsweise einem Sensor, einem Aktuator, und/oder einer ECU entsprechen, die mit einer Drosselfunktion, einer Lenkfunktion, einer Bremsfunktion, einer Gangwahlfunktion, und/oder einer anderen Funktion des Fahrzeugs assoziiert ist.
  • Im Allgemeinen kann ein Knoten eines busbasierten Kommunikationssystems mit anderen Knoten auf einem Kommunikationsbus über Rahmen (z.B. Strings von Bits) kommunizieren, die gemäß einem nachrichtenbasierten Kommunikationsprotokoll seriell übertragen und/oder empfangen werden. Beispielsweise kann ein Knoten einen Rahmen aus dominanten und/oder rezessiven Bits übertragen, die von einem anderen Knoten als Informationen interpretiert werden können, die über einen Sensor bereitgestellt werden, als Informationen zum Steuern eines Aktuators, als Betriebsparameter, als Betriebszustand, und/oder ähnliches.
  • 1A ist ein Diagramm, das ein Beispiel für ein busbasiertes Kommunikationssystem gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht. 1A veranschaulicht ein Beispiel für ein busbasiertes Kommunikationssystem 100, das eine Gruppe von Knoten 102 verbindet (z.B. Knoten 102-1 bis Knoten 102-n (n > 1)). Im Beispiel von 1A ist ein Kommunikationsbus 104 als Zwei-Leitungs-Bussystem dargestellt, das als zwei differentielle Leitungen implementiert sein kann. Insbesondere sind auch andere Implementierungen eines Kommunikationsbusses möglich. Im busbasierten Kommunikationssystem 100 kann ein Knoten 102 selektiv ein Gleichstrom(DC)-Spannungssignal über die Busklemmen anlegen, um ein dominantes Bit oder ein rezessives Bit zu übertragen. Zum Beispiel kann ein Knoten 102 ein dominantes Bit (z.B. ein logisches „0“-Bit) übertragen, durch Treiben des hohen Busanschlusses auf eine hohe Spannung (z.B. 5 VDC) und durch Treiben des niedrigen Busanschlusses auf eine niedrige Spannung (z.B. 0 VDC), und kann ein rezessives Bit (z.B. ein logisches „1“-Bit) übertragen, durch Treiben keines der beiden Busanschlüsse. Die Busklemmen können sich zwischen den Knoten 102 erstrecken und den Austausch von Informationen (z.B. Informationen, die über einen Sensor bereitgestellt werden, Informationen zur Steuerung eines Aktuators, eines Betriebsparameters, eines Betriebszustands, und/oder ähnliches) zwischen den Knoten 102 ermöglichen. Wie in der 1A ferner dargestellt, kann das busbasierte Kommunikationssystem 100 mit (optionalen) Abschlusswiderständen 106-1 und 106-2 abgeschlossen sein, die dazu dienen können, Reflexionen auf dem Kommunikationsbus 104 zu reduzieren, die andernfalls die Signalqualität auf dem Kommunikationsbus 104 beeinträchtigen könnten. In einigen Fällen können die Knoten 102 des busbasierten Kommunikationssystems 100 gemäß einem nachrichtenbasierten Kommunikationsprotokoll miteinander kommunizieren. Zum Beispiel kann Knoten 102-1 eine Nachricht als einen Rahmen von Bits übertragen, die seriell in den Kommunikationsbus 104 eingeführt und seriell vom Knoten 102-2 empfangen werden. Ein Rahmen kann im Allgemeinen ein oder mehrere designierte Felder enthalten, die verschiedene Arten von Informationen bezüglich der im Rahmen enthaltenen Nachricht bereitstellen. Insbesondere im busbasierten Kommunikationssystem 100 wird eine von einem beliebigen Knoten 102 übertragene Nachricht auf dem Kommunikationsbus 104 übertragen, was bedeutet, dass jeder andere Knoten 102 die Nachricht auf dem Kommunikationsbus 104 empfangen kann.
  • Beispiele busbasierter Kommunikationssysteme in einem Fahrzeug beinhalten CAN, CAN FD (CAN with Flexible Data Rate), CAN XL (CAN extra large), und LIN (Local Interconnect Network). Während die hier beschriebenen Implementierungen im Zusammenhang mit CAN-Varianten, wie CAN XL, beschrieben werden, können die hier beschriebenen Techniken auch auf andere Arten busbasierter Kommunikationssysteme angewendet werden.
  • Ein bordeigenes busbasiertes Kommunikationssystem, wie das in der 1A gezeigte, kann bestimmte Eigenschaften aufweisen, welche die Anforderungen an bordeigene Netzwerke widerspiegeln. Beispielsweise kann ein bordeigenes busbasiertes Kommunikationssystemnetzwerk die Kommunikation von Sensordaten an eine Steuereinheit unterstützen, indem Datenrahmen vom Sensor oder einer Steuereinheit des Sensors an eine Steuereinheit auf einer höheren Ebene übertragen werden. Für die Datenrahmen oder Protokollrahmen, die zwischen einzelnen Knoten oder Teilnehmern des busbasierten Kommunikationssystems kommuniziert werden, kann ein bestimmtes Protokoll verwendet werden. Im Gegenzug oder in Antwort auf den Empfang von Sensordaten kann die Steuereinheit des Sensors oder die Steuereinheit auf der höheren Ebene Informationen, die mit einer Handlung assoziiert sind, an ein mit dem Bus gekoppelten Aktuator kommunizieren. Als besonderes Beispiel kann unter Bezugnahme auf die 1A Knoten 102-1 einen Winkelsensor darstellen, der einen Winkel eines Bremspedals misst. Knoten 102-1 kann Informationen, die den gemessenen Winkel in einem oder mehreren Protokollrahmen anzeigen, an Knoten 102-2, bei dem es sich um eine Steuervorrichtung handeln kann, übertragen. In Antwort auf das Empfangen der mit dem Winkel assoziierten Informationen kann Knoten 102-2 einen oder mehrere Busrahmen an Knoten 102-n übertragen, bei dem es sich um ein Bremsaktuator handeln kann. Diese übertragenen Rahmen können, wenn sie vom Knoten 102-n empfangen werden, eine Bremshandlung verursachen. Busbasierte Kommunikationen im Zusammenhang mit einer solchen Handlung sind zeitkritisch und sollten daher schnell übertragen, empfangen, und verarbeitet werden (z.B. in Echtzeit oder nahezu in Echtzeit). Solche Zeitanforderungen sind in einem typischen Kommunikationsnetzwerk nicht üblich.
  • Darüber hinaus haben bordeigene Kommunikationsnetze in der Regel eine genau definierte Anzahl von Knoten, die im Allgemeinen über die gesamte Lebensdauer eines Fahrzeugs konstant bleiben. Ebenso werden bestehende Verbindungen zwischen einzelnen Knoten über die Lebensdauer des Fahrzeugs wahrscheinlich nicht verändert, so dass eine Topologie des busbasierten Kommunikationssystems wahrscheinlich konstant bleibt. In einem Standard-Computernetzwerk ist eine solche Situation unwahrscheinlich.
  • Im busbasierten Kommunikationssystem 100 kann die Authentizität eines über den Kommunikationsbus 104 des busbasierten Kommunikationssystems 100 übertragenen Protokollrahmens wünschenswert sein, insbesondere in Verbindung mit der Steuerung einer Funktion eines Fahrzeugs. Am Beispiel einer Bremsung sollte ein Befehl, der eine Notbremsung auslöst, nicht mit einem sanften Bremsen verwechselt werden, wenn das Fahrzeug kontrolliert geparkt wird. Zu diesem Zweck ist eine Angabe der Authentizität eines Rahmens, der zwischen Teilnehmern des busbasierten Kommunikationssystems kommuniziert wird, von Vorteil. In einigen Fällen kann die Authentizität eines Rahmens bei einer Datenverbindungsschicht (Schicht 2) eines bestimmten Knotens 102 bereitgestellt werden. Im Allgemeinen eliminiert die Angabe der Authentizität eines Protokollrahmens auf einer Datenverbindungsschicht die Beteiligung höherer Schichten an der Authentifizierung von (zeitkritischen) Befehlen, die zwischen Teilnehmern des busbasierten Kommunikationssystems kommuniziert werden.
  • Mit immer leistungsfähigeren Unterhaltungssystemen und zunehmender Fahrzeug-zu-Fahrzeug-Kommunikation steigt ferner die Anfälligkeit dafür, dass böswillige Befehle oder Protokollrahmen in ein busbasiertes Kommunikationssystem eingespeist werden. Daher kann das busbasierte Kommunikationssystem 100 Datensicherheit für Rahmen bereitstellen (z.B. um das Einspeisen der böswilligen Rahmen zu verhindern). In einigen Fällen kann die Datensicherheit bei der Datenverbindungsschicht oder bei einer Transportschicht (Schicht 3) bereitgestellt werden. In einigen Fällen kann die Datensicherheit auf einer oder mehreren anderen Schichten (z.B. einer oder mehreren oberen oder unteren Schichten) außer der Transportschicht und der Datenverbindungsschicht bereitgestellt werden.
  • Die in der 1A gezeigte Anzahl und Anordnung von Vorrichtungen sind als Beispiele bereitgestellt. In der Praxis kann es zusätzliche Vorrichtungen, weniger Vorrichtungen, andere Vorrichtungen, oder anders angeordnete Vorrichtungen als die in der 1A gezeigten geben. Darüber hinaus können zwei oder mehr der in der 1AA gezeigten Vorrichtungen in einer einzigen Vorrichtung implementiert werden, oder eine einzelne Vorrichtung der 1A kann als mehrere, verteilte Vorrichtungen implementiert werden. Zusätzlich oder alternativ kann ein Satz von Vorrichtungen (z.B. eine oder mehrere Vorrichtungen) der 1A eine oder mehrere Funktionen ausführen, die von einem anderen Satz von Vorrichtungen der 1A ausgeführt werden. Während zum Beispiel das busbasierte Kommunikationssystem 100 mit zwei Busklemmen dargestellt ist, kann der Kommunikationsbus 104 die Knoten 102 unter Verwendung einer anderen Anzahl von Busklemmen und/oder unter Verwendung einer anderen Anordnung von Busklemmen, die eine andere Anordnung von Knoten 102 miteinander verbinden, miteinander verbinden. Als weiteres Beispiel kann der Kommunikationsbus 104 in einer anderen Topologie, wie einer Ringtopologie, angeordnet sein (z.B. in der Enden des Kommunikationsbusses elektrisch an eine einzelne Master-Einheit gekoppelt sind). Als weiteres Beispiel kann der Kommunikationsbus 104 eine Vielzahl von Kommunikationsbussen 104 umfassen und/oder in selektiver Kommunikation mit einem oder mehreren zusätzlichen Kommunikationsbussen 104 stehen.
  • 1B veranschaulicht ein Beispiel eines Kommunikationsstapels und virtuelle Kanäle zwischen einem Knotenpaar des busbasierten Kommunikationssystems 100, wobei Knoten 102-1 und Knoten 102-2 als Beispiel gezeigt werden. Wie in der 1B dargestellt, verläuft die Kommunikation zwischen Knoten 102-1 und Knoten 102-2 in Schichten, die zum Beispiel nach dem OSI-ISO-Schichtenmodell kategorisiert werden können. Die Schicht der untersten Ebene (Schicht 1) wird als physikalische Schicht bezeichnet. Jede Schicht im Modell kann einen Auftrag von einer höheren Schicht annehmen, eine Handlung auf ihrer Ebene ausführen, und eine Aufgabe in einer unteren Schicht auslösen, indem sie eine Anforderung an die untere Schicht weiterleitet. Beispielsweise kann ein Befehl an die Datenverbindungsschicht (Schicht 2) von der Transportschicht (Schicht 3) empfangen werden, was durch den Abwärtspfeil zwischen der Transportschicht und der Datenverbindungsschicht angezeigt wird. In ähnlicher Weise kann ein Befehl an die physikalische Schicht (Schicht 1) von der Datenverbindungsschicht empfangen werden, was durch den Abwärtspfeil zwischen der physikalischen Schicht und der Datenverbindungsschicht angezeigt wird. Die physikalische Schicht von Knoten 102-1 kann eine Verbindung oder Verknüpfung zu Knoten 102-2 verwenden, um Daten auf der physikalischen Schicht an Knoten 102-2 zu übermitteln. In ähnlicher Weise kann Knoten 102-1 Daten von Knoten 102-2 über die physikalische Verbindung zwischen Knoten 102-1 und Knoten 102-2 empfangen. Hier kann die physikalische Schicht von Knoten 102-1 die empfangenen Daten an die Datenverbindungsschicht weiterleiten und, nach der Verarbeitung bei der Datenverbindungsschicht, kann die Datenverbindungsschicht die Daten an die Transportschicht weiterleiten. Diese Weiterleitung wird durch den Aufwärtspfeil zwischen der physikalischen Schicht und der Datenverbindungsschicht von Knoten 102-1 und den Aufwärtspfeil zwischen der Datenverbindungsschicht und der Transportschicht von Knoten 102-1 angezeigt. Der Protokollablauf in Knoten 102-2 ist ähnlich wie der von Knoten 102-1. Insbesondere folgen einige bestehende bordeigene busbasierte Kommunikationsnetze nicht der Trennung von physikalischer Schicht und Datenverbindungsschicht, wie sie im OSI-ISO-Modell vorgeschlagen wird. Um dies widerzuspiegeln, sind in der 1B ein Spezialsender S und ein Empfänger R dargestellt, die sich über die physikalische Schicht und die Datenverbindungsschicht erstrecken.
  • In einigen Fällen werden Techniken zur Gewährleistung der Authentizität der Datenkommunikation in Fahrzeugen in der Anwendungsschicht (Schicht 7) unter Verwendung eines Softwarestapels implementiert, der in der 1B als App@1 und App@2 gekennzeichnet ist. Darüber hinaus kann es sinnvoll sein, ein Konzept virtueller Kanäle zwischen Knoten 102-1 und Knoten 102-2 einzuführen, um eine authentifizierte und/oder geschützte Kommunikation zwischen zwei oder mehr Teilnehmern unter Verwendung der Softwarestapel App@1 und App@2 anzuzeigen. Ein Beispiel assoziiert mit einem Bereitstellen von Sicherheit für Bordnetze in einem Fahrzeug unter Verwendung von Softwarestapeln ist die sichere On-Board-Kommunikation (SEC OC) gemäß dem Standard für automotive offene Systemarchitekturen (AUTOSAR).
  • Im Allgemeinen kann es für Erstausrüster zweckmäßig sein, die Softwarestapel-Anwendung für Knoten 102-1 und Knoten 102-2 zu spezifizieren (z.B. App@1, App@2), was Freiheiten bei der Hardware-Implementierung von Knoten 102-1 und Knoten 102-2 bietet. Als Kompromiss kann es vorkommen, dass die Implementierung von Authentizität und/oder Datensicherheit unter Verwendung eines Softwarestapels eine Zeitanforderung nicht erfüllt, zum Beispiel dass ein erster Knoten (z.B. ein Aktuator) in einem busbasierten Kommunikationssystem auf einen Befehl von einem zweiten Knoten (z.B. einer ECU) in dem busbasierten Kommunikationssystem reagiert. Man betrachte zum Beispiel einen Bremsbefehl, der als Protokollrahmen vom zweiten Knoten zum ersten Knoten übertragen wird. Wenn hier eine solche Kommunikation über den Softwarestapel authentifiziert und gesichert werden soll, wären alle Schichten für jeden Knoten beteiligt, was für einen zuverlässigen Bremsvorgang zu lange dauern kann. Ein weiterer Nachteil einer Softwarestapel-Authentifizierungs- und/oder Datensicherheitslösung kann die Tatsache sein, dass die Softwarestapel möglicherweise nicht richtig entworfen sind, so dass die Authentizitäts- und/oder Sicherheitsfunktionalität beeinträchtigt oder sogar kompromittiert wird. Daher kann es in einigen Fällen wünschenswert sein, die Funktionalität in Bezug auf Authentizität und/oder Datensicherheit auf eine oder zwei untere Schichten eines einzelnen Teilnehmers am busbasierten Kommunikationssystem zu beschränken. Die Beschränkung der Authentizitäts- und/oder Datensicherheitsfunktionalität zum Beispiel auf die Datenverbindungsschicht und/oder die Transportschicht kann dazu führen, dass höhere Protokollschichten nicht mehr an Datenintegritäts- und/oder Datensicherheitsoperationen beteiligt sein müssen, wodurch die für den Empfang, die Übertragung, oder die Verarbeitung einer bestimmten Kommunikation über das busbasierte Kommunikationssystem erforderliche Zeit verringert wird.
  • Die in der 1B gezeigte Anzahl und Anordnung der Schichten sind als ein oder mehrere Beispiele bereitgestellt. In der Praxis kann es zusätzliche Schichten, weniger Schichten, andere Schichten, oder anders angeordnete Schichten als die in der 1B gezeigten geben. Darüber hinaus können zwei oder mehr der in der 1B gezeigten Schichten innerhalb einer einzelnen Schicht implementiert werden, oder eine einzelne Schicht in der 1B kann als mehrere, verteilte Schichten implementiert werden. Zusätzlich oder alternativ kann ein Satz von Schichten (z.B. eine oder mehrere Schichten) der 1B eine oder mehrere Funktionen ausführen, die von einem anderen Satz von Schichten der 1B ausgeführt werden.
  • Ein gemeinsamer geheimer Schlüssel kann zur Bereitstellung von Datensicherheit in einem busbasierten Kommunikationssystem verwendet werden. Der gemeinsame geheime Schlüssel sollte jedem Knoten des busbasierten Kommunikationssystems bekannt sein, um es einem gegebenen Knoten zu ermöglichen, Nachrichten zu verschlüsseln, die von dem gegebenen Knoten auf einem Kommunikationsbus des busbasierten Kommunikationssystems übertragen werden sollen, sowie um es dem gegebenen Knoten zu ermöglichen, Nachrichten zu entschlüsseln, die von dem gegebenen Knoten auf dem Kommunikationsbus empfangen werden (d.h. Nachrichten, die von anderen Knoten des busbasierten Kommunikationssystems übertragen werden). Konventionell wird ein gemeinsamer geheimer Schlüssel auf Knoten eines busbasierten Kommunikationssystems vorkonfiguriert (z.B. während der Herstellung oder Konfiguration des Systems), um eine symmetrische Kryptographie zwischen den Knoten des busbasierten Kommunikationssystems zu ermöglichen.
  • Ein vorkonfigurierter gemeinsamer geheimer Schlüssel kann jedoch aus einer Reihe von Gründen unerwünscht sein. Zum Beispiel muss in einem Fall, in dem der gemeinsame geheime Schlüssel geändert werden muss (z.B. weil er kompromittiert wurde), der gemeinsame geheime Schlüssel auf allen Knoten des busbasierten Kommunikationssystems rekonfiguriert werden, was einen komplexen und/oder ressourcenintensiven Prozess erfordern kann. Da der gemeinsam genutzte geheime Schlüssel nicht ohne weiteres geändert werden kann, hat die Datensicherheit in einem busbasierten Kommunikationssystem, das einen vorkonfigurierten gemeinsam genutzten geheimen Schlüssel verwendet, ein höheres Ausfallrisiko als zum Beispiel in einem busbasierten Kommunikationssystem, in dem ein gemeinsam genutzter geheimer Schlüssel zu einem bestimmten Zeitpunkt geändert wird oder geändert werden kann (z.B. auf Anforderung, für jede Sitzung, oder ähnliches).
  • Einige der hierin beschriebenen Implementierungen stellen Techniken und Vorrichtungen für den Schlüsselaustausch in einem busbasierten Kommunikationssystem bereit. In einigen Implementierungen ermöglicht der hier beschriebene Schlüsselaustauschmechanismus den Knoten 102 eines busbasierten Kommunikationssystems 100, zu einem bestimmten Zeitpunkt einen gemeinsamen geheimen Schlüssel abzuleiten, wodurch die Datensicherheit verbessert und gleichzeitig eine einfachere Schlüsselkonfiguration oder Rekonfiguration ermöglicht wird (z.B. im Vergleich zu einem busbasierten Kommunikationssystem, das einen vorkonfigurierten gemeinsamen geheimen Schlüssel verwendet).
  • In einigen Aspekten, wie unten beschrieben, kann der Schlüsselaustausch in einem busbasierten Kommunikationssystem 100 unter Verwendung der Prinzipien eines Diffie-Hellman (DH)-Schlüsselaustauschs erreicht werden, aber mit einer geringeren Anzahl benötigter Nachrichten (z.B. im Vergleich zu einem herkömmlichen DH-Schlüsselaustausch). Daher werden der Ressourcenverbrauch und die Überlastung des Kommunikationsbusses 104 des busbasierten Kommunikationssystems 100 durch die Verwendung der hier beschriebenen Techniken für den Schlüsselaustausch reduziert.
  • In einigen Implementierungen kann der Schlüsselaustausch im busbasierten Kommunikationssystem 100 auf einer Schicht durchgeführt werden, welche die Übertragung relativ großer Nutzlasten erlaubt, wie einer Transportschicht (manchmal bezeichnet als TPsec-Schicht in, zum Beispiel, einem CAN-XL-System). In einigen Implementierungen ist ein Schlüsselaustausch auf der Transportschicht wünschenswert, da die größeren Nutzlasten der Transportschicht den Austausch längerer Nachrichten ermöglichen, was bedeutet, dass längere gemeinsam genutzte geheime Schlüssel abgeleitet werden können, was die Datensicherheit verbessert. In einigen Implementierungen kann der gemeinsame geheime Schlüssel für kryptographische Operationen auf der Datenverbindungsschicht verwendet werden (die zum Beispiel in einem CAN XL-System als CADsec-Schicht bezeichnet werden kann).
  • 2A-2E sind Diagramme, die ein Beispiel 200 für ein Bereitstellen eines Schlüsselaustauschs in einem busbasierten Kommunikationssystem gemäß verschiedener Aspekte der vorliegenden Offenbarung veranschaulichen. In dem in den 2A-2E gezeigten Beispiel beinhaltet ein busbasiertes Kommunikationssystem 100 eine Gruppe von Knoten 102, die als Knoten A, Knoten B, und Knoten C identifiziert werden. Wie gezeigt, sind die Gruppe von Knoten 102 über einen Kommunikationsbus 104 des busbasierten Kommunikationssystems 100 verbunden. Das busbasierte Kommunikationssystem 100 der 2A-2E kann zum Beispiel das CAN XL-Protokoll, das CAN FD-Protokoll, das CAN-Protokoll, und/oder ähnliches verwenden. In dem in der 2A-2E gezeigten Beispiel muss die Gruppe von Knoten 102 jeweils einen gemeinsamen geheimen Schlüssel ableiten (z.B. so dass die Datensicherheit für die Kommunikation zwischen der Gruppe von Knoten 102 bereitgestellt ist).
  • Wie in der 2A gezeigt, und durch Bezugszeichen 202, kann Knoten A einen privaten Schlüssel a erzeugen, der mit dem Knoten A assoziiert ist. In ähnlicher Weise kann Knoten B, wie durch Bezugszeichen 204 gezeigt, einen privaten Schlüssel b erzeugen, der mit dem Knoten B assoziiert ist, und Knoten C kann, wie durch Bezugszeichen 206 gezeigt, einen privaten Schlüssel c erzeugen, der mit dem Knoten C assoziiert ist. Ein privater Schlüssel kann, zum Beispiel, ein zufälliger ganzzahliger Wert sein, der von Knoten 102 erzeugt oder ausgewählt ist (z.B. so dass der private Schlüssel innerhalb eines konfigurierten Bereichs ganzzahliger Werte ist). Beispielsweise kann Knoten A den privaten Schlüssel a durch Auswahl eines zufälligen ganzzahligen Wertes aus einem konfigurierten Bereich ganzzahliger Werte erzeugen, Knoten B kann den privaten Schlüssel b durch Auswahl eines zufälligen ganzzahligen Wertes aus dem konfigurierten Bereich ganzzahliger Werte erzeugen, und Knoten C kann den privaten Schlüssel c durch Auswahl eines zufälligen ganzzahligen Wertes aus dem konfigurierten Bereich ganzzahliger Werte erzeugen.
  • Wie in Bezugszeichen 208 gezeigt, kann Knoten A eine modulare Potenzierung Pa berechnen, die mit dem privaten Schlüssel a assoziiert ist. In einigen Implementierungen kann Knoten A die modulare Potenzierung Pa zumindest teilweise basierend auf einem Parametersatz berechnen. Der Parametersatz kann einen oder mehrere Parameter enthalten, die jedem Knoten 102 im busbasierten Kommunikationssystem 100 bekannt sind. Zum Beispiel kann der Parametersatz eine Primzahl g und eine Primzahl p enthalten, wobei p groß ist (z.B. zumindest 512 Bits) und g eine Primitivwurzel modulo p ist. Insbesondere muss der Parametersatz (z.B. Primzahl p und Primzahl g) nicht geheim gehalten werden.
  • In einigen Implementierungen kann Knoten A die modulare Potenzierung Pa zumindest teilweise basierend auf dem Parametersatz und dem privaten Schlüssel a berechnen. Wenn der Parametersatz beispielsweise die Primzahl g und die Primzahl p enthält, kann Knoten A die modulare Potenzierung Pa unter Verwendung der folgenden Formel berechnen: Pa = g a  mod p
    Figure DE102021105895A1_0001
  • Wie durch Bezugszeichen 210 gezeigt, kann Knoten A nach dem Berechnen der modularen Potenzierung Pa eine Nachricht einschließlich der modularen Potenzierung Pa auf dem Kommunikationsbus 104 übertragen. Da der Kommunikationsbus 104 hier jeden Knoten 102 des busbasierten Kommunikationssystems 100 verbindet, wird die von Knoten A übertragene Nachricht tatsächlich auf dem Kommunikationsbus 104 übertragen, was bedeutet, dass jeder andere Knoten 102 (einschließlich sowohl Knoten B als auch Knoten C) des busbasierten Kommunikationssystems 100 die Nachricht einschließlich der modularen Potenzierung Pa empfangen kann. Daher können, wie durch Bezugszeichen 212 gezeigt, sowohl Knoten B als auch Knoten C die Nachricht einschließlich der modularen Potenzierung Pa empfangen. In einigen Implementierungen kann die Nachricht mit der modularen Potenzierung Pa auf der Transportschicht bereitgestellt werden (z.B. um den Austausch längerer Nachrichten zu ermöglichen für die Bereitstellung erhöhter Sicherheit, wie oben beschrieben).
  • Wie in der 2B durch Bezugszeichen 214 dargestellt, kann Knoten B eine modulare Potenzierung Pab assoziiert mit dem privaten Schlüssel a und dem privaten Schlüssel b berechnen.
  • In einigen Implementierungen kann Knoten B die modulare Potenzierung Pab zumindest teilweise basierend auf dem Parametersatz, der modularen Potenzierung Pa und dem privaten Schlüssel b berechnen. Wenn der Parametersatz beispielsweise die Primzahl g und die Primzahl p enthält, kann Knoten B die modulare Potenzierung Pab wie folgt berechnen: P ab = ( P a ) b  mod p
    Figure DE102021105895A1_0002
  • Wie durch Bezugszeichen 216 gezeigt, kann Knoten B nach dem Berechnen der modularen Potenzierung Pab eine Nachricht einschließlich der modularen Potenzierung Pab auf dem Kommunikationsbus 104 übertragen. Da der Kommunikationsbus 104 wiederum jeden Knoten 102 des busbasierten Kommunikationssystems 100 verbindet, wird die von Knoten B übertragene Nachricht tatsächlich auf dem Kommunikationsbus 104 übertragen, was bedeutet, dass jeder andere Knoten 102 (einschließlich Knoten A und C) des busbasierten Kommunikationssystems 100 die Nachricht einschließlich der modularen Potenzierung Pab empfangen kann. Daher können, wie durch Bezugszeichen 218 gezeigt, sowohl Knoten A als auch Knoten C die Nachricht einschließlich der modularen Potenzierung Pab empfangen. In einigen Implementierungen kann die Nachricht einschließlich der modularen Potenzierung Pab auf der Transportschicht bereitgestellt werden.
  • Wie durch Bezugszeichen 220 gezeigt, kann Knoten C die Nachricht einschließlich der modularen Potenzierung Pab (d.h. die modulare Potenzierung, die mit dem privaten Schlüssel a und dem privaten Schlüssel b assoziiert ist) empfangen und kann einen gemeinsamen geheimen Schlüssel K berechnen, der zumindest teilweise auf der modularen Potenzierung Pab basiert, wobei der gemeinsame geheime Schlüssel K die modulare Potenzierung Pcab ist. In einigen Implementierungen kann Knoten C die modulare Potenzierung Pcab zumindest teilweise basierend auf dem Parametersatz, der modularen Potenzierung Pab und dem privaten Schlüssel c berechnen. Wenn der Parametersatz beispielsweise die Primzahl g und die Primzahl p enthält, kann Knoten C die modulare Potenzierung Pcab wie folgt berechnen: K = P cab = ( P ab ) c  mod p
    Figure DE102021105895A1_0003
    Wie durch das Häkchen in der 2B angedeutet, hat Knoten C den gemeinsamen geheimen Schlüssel K bei dem Bezugszeichen 220 abgeleitet.
  • Wie in der 2C durch Bezugszeichen 222 gezeigt, kann Knoten C als nächstes eine modulare Potenzierung Pc berechnen, die mit dem privaten Schlüssel c assoziiert ist. In einigen Implementierungen kann Knoten C die modulare Potenzierung Pc zumindest teilweise basierend auf dem Parametersatz und dem privaten Schlüssel c berechnen. Wenn der Parametersatz beispielsweise die Primzahl g und die Primzahl p enthält, kann Knoten C die modulare Potenzierung Pc anhand der folgenden Formel berechnen: P c = g c  mod p
    Figure DE102021105895A1_0004
  • Wie durch Bezugszeichen 224 gezeigt, kann Knoten C nach dem Berechnen der modularen Potenzierung Pc eine Nachricht einschließlich der modularen Potenzierung Pc auf dem Kommunikationsbus 104 übertragen. Da der Kommunikationsbus 104 hier jeden Knoten 102 des busbasierten Kommunikationssystems 100 verbindet, wird die von Knoten C übertragene Nachricht tatsächlich auf dem Kommunikationsbus 104 übertragen, was bedeutet, dass jeder andere Knoten 102 (einschließlich sowohl Knoten B als auch Knoten A) des busbasierten Kommunikationssystems 100 die Nachricht einschließlich der modularen Potenzierung Pc empfangen kann. Daher können, wie durch Bezugszeichen 226 gezeigt, sowohl Knoten B als auch Knoten A die Nachricht einschließlich der modularen Potenzierung Pc empfangen. In einigen Implementierungen kann die Nachricht einschließlich der modularen Potenzierung Pc auf der Transportschicht bereitgestellt werden.
  • Wie in der 2D durch Bezugszeichen 228 dargestellt, kann Knoten B eine modulare Potenzierung Pbc berechnen, die mit dem privaten Schlüssel b und dem privaten Schlüssel c assoziiert ist.
  • In einigen Implementierungen kann Knoten B die modulare Potenzierung Pbc zumindest teilweise basierend auf dem Parametersatz, der modularen Potenzierung Pc und dem privaten Schlüssel b berechnen. Wenn der Parametersatz beispielsweise die Primzahl g und die Primzahl p enthält, kann Knoten B die modulare Potenzierung Pbc wie folgt berechnen: P bc = ( P c ) b  mod p
    Figure DE102021105895A1_0005
  • Wie durch Bezugszeichen 230 gezeigt, kann Knoten B nach dem Berechnen der modularen Potenzierung Pbc eine Nachricht einschließlich der modularen Potenzierung Pbc auf dem Kommunikationsbus 104 übertragen. Da der Kommunikationsbus 104 wiederum jeden Knoten 102 des busbasierten Kommunikationssystems 100 verbindet, wird die von Knoten B übertragene Nachricht tatsächlich auf dem Kommunikationsbus 104 übertragen, was bedeutet, dass jeder andere Knoten 102 (einschließlich Knoten A und Knoten C) des busbasierten Kommunikationssystems 100 die Nachricht einschließlich der modularen Potenzierung Pbc empfangen kann. Daher können, wie durch Bezugszeichen 232 gezeigt, sowohl Knoten A als auch Knoten C die Nachricht einschließlich der modularen Potenzierung Pbc empfangen. In einigen Implementierungen kann die Nachricht einschließlich der modularen Potenzierung Pbc auf der Transportschicht bereitgestellt werden.
  • Wie durch Bezugszeichen 234 gezeigt, kann Knoten A die Nachricht einschließlich der modularen Potenzierung Pbc (d.h. die modulare Potenzierung assoziiert mit dem privaten Schlüssel b und dem privaten Schlüssel c) empfangen und einen gemeinsamen geheimen Schlüssel K berechnen, basierend zumindest teilweise auf der modularen Potenzierung Pbc, wobei der gemeinsame geheime Schlüssel K die modulare Potenzierung Pabc ist. In einigen Implementierungen kann Knoten A die modulare Potenzierung Pabc zumindest teilweise basierend auf dem Parametersatz, der modularen Potenzierung Pbc und dem privaten Schlüssel a berechnen. Wenn der Parametersatz beispielsweise die Primzahl g und die Primzahl p enthält, kann Knoten A die modulare Potenzierung Pabc wie folgt berechnen: K = P abc = ( P bc ) a  mod p
    Figure DE102021105895A1_0006
  • Wie durch das Häkchen in der 2D angezeigt, hat Knoten A den gemeinsamen geheimen Schlüssel K bei Bezugszeichen 234 abgeleitet. Insbesondere ist der von dem Knoten A abgeleitete gemeinsame geheime Schlüssel K mit dem von dem Knoten C abgeleiteten identisch, da die folgende Beziehung zutrifft: P cab = ( ( ( g a  mod p ) b  mod p ) c mod p ) = ( ( ( g c  mod p ) b  mod p ) a  mod p ) = P abc
    Figure DE102021105895A1_0007
  • Als nächstes kann Knoten A, wie in der 2E durch Bezugszeichen 236 gezeigt, eine modulare Potenzierung Pac berechnen, die mit dem privaten Schlüssel a und dem privaten Schlüssel c assoziiert ist.
  • In einigen Implementierungen kann Knoten A die modulare Potenzierung Pac zumindest teilweise basierend auf dem Parametersatz, der modularen Potenzierung Pc und dem privaten Schlüssel a berechnen. Wenn der Parametersatz beispielsweise die Primzahl g und die Primzahl p enthält, kann Knoten A die modulare Potenzierung Pac wie folgt berechnen: P ac = ( P c ) a  mod p
    Figure DE102021105895A1_0008
    Da Knoten C bereits die Nachricht einschließlich der modularen Potenzierung Pc auf dem Kommunikationsbus 104 übertragen hat, hat Knoten A bereits Wissen über die modulare Potenzierung Pc, so dass Knoten C keine weitere Nachricht einschließlich der modularen Potenzierung Pc übertragen muss.
  • Wie durch Bezugszeichen 238 gezeigt, kann Knoten A nach dem Berechnen der modularen Potenzierung Pac eine Nachricht einschließlich der modularen Potenzierung Pac auf dem Kommunikationsbus 104 übertragen. Da der Kommunikationsbus 104 wiederum jeden Knoten 102 des busbasierten Kommunikationssystems 100 verbindet, wird die von Knoten A übertragene Nachricht tatsächlich auf dem Kommunikationsbus 104 übertragen, was bedeutet, dass jeder andere Knoten 102 (einschließlich Knoten A und C) des busbasierten Kommunikationssystems 100 die Nachricht einschließlich der modularen Potenzierung Pac empfangen kann. Daher können, wie durch Bezugszeichen 240 gezeigt, sowohl Knoten B als auch Knoten C die Nachricht einschließlich der modularen Potenzierung Pac empfangen. In einigen Implementierungen kann die Nachricht einschließlich der modularen Potenzierung Pac auf der Transportschicht bereitgestellt werden.
  • Wie durch Bezugszeichen 242 gezeigt, kann Knoten B die Nachricht einschließlich der modularen Potenzierung Pac (d.h. die modulare Potenzierung assoziiert mit dem privaten Schlüssel a und dem privaten Schlüssel c) empfangen und einen gemeinsamen geheimen Schlüssel K berechnen, der zumindest teilweise auf der modularen Potenzierung Pac basiert, wobei der gemeinsame geheime Schlüssel K die modulare Potenzierung Pbac ist. In einigen Implementierungen kann Knoten B die modulare Potenzierung Pbac zumindest teilweise basierend auf dem Parametersatz, der modularen Potenzierung Pac und dem privaten Schlüssel b berechnen. Wenn zum Beispiel der Parametersatz Primzahl g und Primzahl p enthält, kann Knoten B die modulare Potenzierung Pbac wie folgt berechnen: K = P bac = ( P ac ) b  mod p
    Figure DE102021105895A1_0009
  • Wie durch das Häkchen in der 2E angezeigt, hat Knoten B den gemeinsamen geheimen Schlüssel K bei dem Bezugszeichen 242 abgeleitet. Insbesondere ist der von Knoten B abgeleitete gemeinsame geheime Schlüssel K mit dem von Knoten B und C abgeleiteten identisch, da die folgende Beziehung zutrifft: P bac = ( ( ( g c  mod p ) a mod p ) b mod p ) = P cab = P abc
    Figure DE102021105895A1_0010
  • In diesem Beispiel kann ein Lauschangreifer, der den Kommunikationsbus 104 abhört, zwar die Nachrichten mit den modularen Potenzierungen Pa, Pab, Pc, Pbc und/oder Pac erhalten, aber er kann keine Kombination dieser Werte verwenden, um den gemeinsamen geheimen Schlüssel K (d.h. Pbac Pcab oder Pabc effizient zu reproduzieren.
  • Insbesondere sind in dem in den 2A-2E gezeigten Beispiel nur fünf Nachrichten erforderlich, um die Knoten A, B und C in die Lage zu versetzen, den gemeinsamen geheimen Schlüssel K abzuleiten (die fünf Nachrichten sind in den 2A-2E in grauen Kreisen nummeriert). Bei einem herkömmlichen DH-Schlüsselaustausch mit drei Parteien wären sechs Nachrichten erforderlich. Die Verringerung der Anzahl der Nachrichten wird durch die Struktur des busbasierten Kommunikationssystems 100 ermöglicht, das die Übertragung einer gegebenen Nachricht auf dem Kommunikationsbus 104 bereitstellt. Wie unten beschrieben, nimmt die Verringerung der Anzahl der Nachrichten zu, wenn die Anzahl von Knoten 102 im busbasierten Kommunikationssystem 100 zunimmt.
  • Wie oben angegeben, dienen die 2A-2E lediglich als Beispiele. Andere Beispiele können sich von der Beschreibung in Bezug auf die 2A-2E unterscheiden.
  • Bei den 3A-3C handelt es sich um Diagramme, die Beispiele für eine Anzahl von Nachrichten darstellen, die erforderlich sind, um den Schlüsselaustausch in busbasierten Kommunikationssystemen 100 mit mehreren Knoten 102 zu erreichen. In den 3A-3C zeigt jede „Transfer“-Spalte eine Nachrichtenübertragung auf dem Kommunikationsbus 104 an, und eine hervorgehobene Zeile in einer bestimmten „Transfer“-Spalte zeigt den Knoten 102 an, der eine gegebene Nachricht überträgt.
  • 3A ist ein Diagramm, das ein Beispiel für die Anzahl der Nachrichten darstellt, die erforderlich sind, um den Schlüsselaustausch in einem busbasierten Kommunikationssystem 100 mit drei Knoten 102 zu erreichen. Das in der 3A gezeigte Beispiel entspricht dem in den 2A-2E gezeigten Beispiel. Wie in der 3A dargestellt (und wie in den 2A-2E), sind fünf Nachrichtenübertragungen erforderlich, damit alle drei Knoten 102 des busbasierten Kommunikationssystems 100 den gemeinsamen geheimen Schlüssel K ableiten können. Wie oben beschrieben, wären in einem herkömmlichen DH-Schlüsselaustausch mit drei Parteien sechs Nachrichten erforderlich.
  • 3B ist ein Diagramm, das ein Beispiel für die Anzahl der Nachrichten darstellt, die erforderlich sind, um den Schlüsselaustausch in einem busbasierten Kommunikationssystem 100 mit vier Knoten 102 zu erreichen. Der Schlüsselaustausch in dem in der 3B gezeigten Beispiel kann in ähnlicher Weise durchgeführt werden wie oben in Verbindung mit den 2A-2E beschrieben. Wie in der 3B dargestellt, sind acht Nachrichtenübertragungen erforderlich, damit alle vier Knoten 102 des busbasierten Kommunikationssystems 100 den gemeinsamen geheimen Schlüssel K ableiten können. In einem herkömmlichen DH-Schlüsselaustausch mit vier Parteien wären 12 Nachrichten erforderlich.
  • 3C ist ein Diagramm, das ein Beispiel für die Anzahl der Nachrichten darstellt, die erforderlich sind, um den Schlüsselaustausch in einem busbasierten Kommunikationssystem 100 mit fünf Knoten 102 zu erreichen. Der Schlüsselaustausch in dem in der 3C gezeigten Beispiel kann in ähnlicher Weise durchgeführt werden wie oben in Verbindung mit den 2A-2E beschrieben. Wie in der 3C dargestellt, sind 12 Nachrichtenübertragungen erforderlich, damit alle fünf Knoten 102 des busbasierten Kommunikationssystems 100 den gemeinsamen geheimen Schlüssel K ableiten können. In einem herkömmlichen DH-Schlüsselaustausch mit fünf Teilnehmern wären 20 Nachrichten erforderlich.
  • Wie oben erwähnt, wird die Verringerung der Nachrichtenzahl durch die Struktur des busbasierten Kommunikationssystems 100 ermöglicht, das die Übertragung einer bestimmten Nachricht auf dem Kommunikationsbus 104 bereitstellt. Die durch die hier beschriebenen Techniken ermöglichte Nachrichtenreduzierung besteht insbesondere auch im Falle der Verwendung eines sogenannten Divide-and-Conquer-Ansatzes für einen Schlüsselaustausch im busbasierten Kommunikationssystem 100 (z.B. im Vergleich zur Verwendung des Divide-and-Conquer-Ansatzes für einen herkömmlichen DH-Schlüsselaustausch).
  • Ein allgemeiner Algorithmus zum Durchführen des Schlüsselaustauschs im busbasierten Kommunikationssystem 100 sieht folgendermaßen aus: Jeder Knoten i (i = 1,..., n) hat einen entsprechenden privaten Schlüssel (z.B. N1 = a, N2 = b, N3 = c, .... Nn = z), P ist ein Generatorpolynom, Q ist ein Zwischenergebnis, das öffentlich sein kann, und Qs ist der gemeinsame geheime Schlüssel. In einem ersten Schritt berechnet Knoten i, für i = 1...n, Q = N1 × Q und überträgt ein Ergebnis (so dass Knoten n und Knoten n-1 den gemeinsamen geheimen Schlüssel Qs ableiten können). In einem zweiten Schritt berechnet Knoten i, für i = n .... 1, Q = N1 × Q und überträgt ein Ergebnis (so dass Knoten 1 und Knoten 2 den gemeinsamen geheimen Schlüssel Qs ableiten können). In einem dritten Schritt berechnet Knoten i, für i = 1...n-4, Q = Ni,n,n-1 × Q und überträgt ein Ergebnis (so dass Knoten n-2 und Knoten n-3 den gemeinsamen geheimen Schlüssel Qs ableiten können). Wenn als nächstes eine Anzahl von Knoten übrig bleibt, um den gemeinsamen geheimen Schlüssel zu erhalten, dann sind zwei weitere Nachrichten erforderlich, um den gemeinsamen geheimen Schlüssel Qs zu ermitteln. Dies kann der Fall sein, nachdem der zweite Schritt zum Beispiel in einem Szenario mit fünf Knoten (n = 5) durchgeführt wurde. Wenn alternativ dazu die Anzahl der verbleibenden Knoten zum Erhalt des gemeinsamen Geheimschlüssels größer als eins ist, kann der dritte Schritt für die verbleibenden Knoten wiederholt werden.
  • 3D ist ein Diagramm, das eine Anzahl von Nachrichten veranschaulicht, die erforderlich sind, um den Schlüsselaustausch in busbasierten Kommunikationssystemen 100 verschiedener Größen auf die oben beschriebene Weise zu erreichen. Wie in der 3D dargestellt, kann die Anzahl der Nachrichten, die zum Erreichen des Schlüsselaustauschs in einem gegebenen busbasierten Kommunikationssystem 100 erforderlich sind, basierend auf der Anzahl der Knoten 102 (in der 3D als n gekennzeichnet) bestimmt werden, die in dem busbasierten Kommunikationssystem 100 enthalten sind.
  • 3E ist ein Diagramm, das einen Vergleich veranschaulicht zwischen einer Anzahl von Nachrichten, die zum Erreichen des Schlüsselaustauschs unter Verwendung eines herkömmlichen DH-Schlüsselaustauschs erforderlich sind, und einer Anzahl von Nachrichten, die zum Erreichen des Schlüsselaustauschs für ein busbasiertes Kommunikationssystem 100 (in der 3E als CAN-Schlüsselaustausch (CAKE) identifiziert) unter Verwendung der hier beschriebenen Techniken erforderlich sind.
  • Wie in der 3E dargestellt, erhöht sich mit zunehmender Anzahl der Knoten die Anzahl der Nachrichten, die bei Verwendung des herkömmlichen DH-Schlüsselaustauschs benötigt werden, ebenso wie die Anzahl der Nachrichten, die bei Verwendung der hier beschriebenen Techniken benötigt werden. Die Anzahl der Nachrichten, die bei der Verwendung der hier beschriebenen Techniken benötigt werden, steigt jedoch in geringerem Maße, was bedeutet, dass die hier beschriebenen Techniken die Anzahl der Nachrichten reduzieren, die für den Schlüsselaustausch im busbasierten Kommunikationssystem 100 benötigt werden, wodurch der Netzwerkverkehr reduziert und gleichzeitig Ressourcen geschont werden.
  • Wie oben angegeben, dienen die 3A-3E lediglich als Beispiele. Andere Beispiele können sich von der Beschreibung in Bezug auf die 3A-3E unterscheiden.
  • Auf diese Weise kann in einem busbasierten Kommunikationssystem 100 ein Schlüsselaustausch auf eine Weise erreicht werden, die es Knoten 102 des busbasierten Kommunikationssystems 100 ermöglicht, zu einem bestimmten Zeitpunkt einen gemeinsamen geheimen Schlüssel abzuleiten, wodurch die Datensicherheit verbessert und gleichzeitig eine einfachere Schlüsselkonfiguration oder Rekonfiguration ermöglicht wird (z.B. im Vergleich zu einem busbasierten Kommunikationssystem, das einen vorkonfigurierten gemeinsamen geheimen Schlüssel verwendet).
  • Darüber hinaus reduziert ein Schlüsselaustausch im busbasierten Kommunikationssystem 100 in der hierin beschriebenen Weise eine Anzahl von Nachrichten, die für Knoten 102 des busbasierten Kommunikationssystems 100 erforderlich sind, um den gemeinsamen geheimen Schlüssel K abzuleiten (z.B. im Vergleich zu einem herkömmlichen DH-Schlüsselaustausch). Dadurch wird der Ressourcenverbrauch und die Überlastung auf dem Kommunikationsbus 104 des busbasierten Kommunikationssystems 100 reduziert.
  • In einigen Implementierungen kann, wie oben erwähnt, der Schlüsselaustausch im busbasierten Kommunikationssystem 100 auf einer Schicht durchgeführt werden, welche die Übertragung relativ großer Nutzlasten erlaubt, wie einer Transportschicht (manchmal als TPsec-Schicht bezeichnet, zum Beispiel in einem CAN-XL-System), was bedeutet, dass längere gemeinsam genutzte geheime Schlüssel abgeleitet werden können, was die Datensicherheit verbessert.
  • 4 ist ein Diagramm eines Beispiels für einen Knoten 102, bei dem die hierin beschriebenen Systeme und/oder Verfahren implementiert werden können. Wie in der 4 dargestellt, kann Knoten 102 einen Prozessor 404 und einen Sendeempfänger 406 (z.B. Tx/Rx) enthalten, die an einen Kommunikationsbus 104 (z.B. einen CAN-Bus) angeschlossen sind.
  • Knoten 102 enthält eine oder mehrere Vorrichtungen, die mit der Steuerung eines oder mehrerer elektrischer Systeme und/oder elektrischer Untersysteme assoziiert sind, zum Beispiel basierend auf Sensordaten, die von Sensoren bereitgestellt werden, die über eine Sensorschnittstellenkomponente von Knoten 102 (nicht dargestellt) an Knoten 102 angeschlossen sind, von Steuerdaten zur Steuerung von Aktuatoren, die über eine Aktuatorschnittstellenkomponente von Knoten 102 (nicht dargestellt) an Knoten 102 angeschlossen sind, und/oder ähnlichem. In einem Fahrzeugsystem kann Knoten 102 zum Beispiel eine ECU, ein ECM, ein PCM, ein TCM, ein BCM, ein CCM, ein CTM, ein GEM, ein BCM, ein SCM, oder eine andere Art von elektrischem System oder elektrischem Untersystem eines Fahrzeugs umfassen.
  • Der Prozessor 404 enthält eine Vorrichtung (z.B. eine oder mehrere integrierte Schaltungen), die als eingebettetes System arbeitet, um die mit Knoten 102 assoziierte Steuerfunktionalität bereitzustellen. Zum Beispiel enthält der Prozessor 404 eine oder mehrere CPUs (Central Processing Units), Speicher, und/oder programmierbare Ein-/Ausgabe (I/O)-Peripherievorrichtungen, die es dem Prozessor 404 ermöglichen, als eingebettetes System zu arbeiten. In einigen Beispielen kann der Prozessor 404 Informationen an den Sendeempfänger 406 übertragen und/oder Informationen von diesem empfangen.
  • Sendeempfänger 406 enthält eine Komponente, über die Knoten 102 Informationen übertragen und empfangen kann. Zum Beispiel kann der Sendeempfänger 406 einen Differentialleitungs-Sendeempfänger oder eine ähnliche Art von Komponente enthalten. In einigen Beispielen enthält der Sendeempfänger 406 eine Sende-(Tx)-Komponente, die es Knoten 102 ermöglicht, Informationen (z.B. an einen anderen Knoten) über den Kommunikationsbus 104 zu übertragen, und/oder eine Empfangs-(Rx)-Komponente, die es Knoten 102 ermöglicht, Informationen (z.B. von einem anderen Knoten, der dem Knoten 102 ähnlich ist) über den Kommunikationsbus 104 zu empfangen. In einigen Beispielen kann der Sendeempfänger 406 einen Leitungstreiber enthalten, um die Tx-Komponente (zum Übertragen von Informationen) oder die Rx-Komponente (zum Empfangen von Informationen) zu einem bestimmten Zeitpunkt zu aktivieren. In einigen Beispielen kann der Sendeempfänger 406 ein LIN-Sendeempfänger, ein CAN-Sendeempfänger, ein FlexRay-Sendeempfänger, ein Ethernet-Sendeempfänger, oder ein anderer Typ von Sendeempfänger sein, der mit einem anderen Typ von Kommunikationsbussystem assoziiert ist. In einigen Beispielen kann Knoten 102 mehrere Sendeempfänger 406 unterschiedlicher Typen enthalten.
  • Der Kommunikationsbus 104 enthält einen Bus zur Übertragung von Informationen von oder zu Knoten 102. In einigen Beispielen kann der Kommunikationsbus 104 eine Verbindung (z.B. mit einem oder mehreren Anschlüssen, Drähten, und/oder Verbindern) umfassen, über die mehrere Knoten 102 miteinander verbunden sind. In einigen Beispielen kann der Kommunikationsbus 104 eine Reihe von Verbindungen aufweisen, von denen jede mit einem oder mehreren Knoten 102 assoziiert ist. In einigen Beispielen kann der Kommunikationsbus 104 ein CAN-Bus, ein CAN-FD-Bus, ein CAN-XL-Bus, ein LIN-Bus, ein FlexRay-Bus, ein Ethernet-Bus, und/oder ein anderer Bustyp sein. In einigen Beispielen kann jeder Sendeempfänger 406 von Knoten 102 mit einem assoziierten Kommunikationsbus 104 verbunden sein.
  • Die in der 4 gezeigte Anzahl und Anordnung von Vorrichtungen und Komponenten ist als ein Beispiel bereitgestellt. In der Praxis kann es zusätzliche Vorrichtungen und/oder Komponenten, weniger Vorrichtungen und/oder Komponenten, andere Vorrichtungen und/oder Komponenten, oder anders angeordnete Vorrichtungen und/oder Komponenten als die in der 4 gezeigten geben. Darüber hinaus können zwei oder mehr der in der 4 dargestellten Vorrichtungen und/oder Komponenten in einer einzigen Vorrichtung und/oder Komponente, oder eine einzige Vorrichtung und/oder Komponente der 4 als mehrere, verteilte Vorrichtungen und/oder Komponenten ausgeführt sein. Zusätzlich oder alternativ kann ein Satz von Vorrichtungen und/oder Komponenten (z.B. eine oder mehrere Vorrichtungen und/oder Komponenten) der 4 eine oder mehrere Funktionen durchführen, die von einem anderen Satz von Vorrichtungen und/oder Komponenten der 4 durchgeführt werden.
  • 5 ist ein Flussdiagramm eines Beispielprozesses 500, der mit der Bereitstellung des CAN-Schlüsselaustauschs assoziiert ist. In einigen Implementierungen können ein oder mehrere Prozessblöcke der 5 von einem ersten Knoten in einem busbasierten Kommunikationssystem durchgeführt werden (z.B. Knoten 102 in einem busbasierten Kommunikationssystem 100, und/oder ähnliches).
  • Wie in der 5 dargestellt, kann der Prozess 500 den Empfang einer Nachricht auf einem Kommunikationsbus des busbasierten Kommunikationssystems beinhalten, wobei die Nachricht von einem zweiten Knoten des busbasierten Kommunikationssystems auf dem Kommunikationsbus übertragen wurde, und die Nachricht eine modulare Potenzierung enthält, die zumindest mit einem privaten Schlüssel des zweiten Knotens (Block 510) assoziiert ist. Zum Beispiel kann der erste Knoten (z.B. unter Verwendung von Prozessor 404, Sendeempfänger 406, und/oder ähnlichem) eine Nachricht auf einem Kommunikationsbus (z.B. Kommunikationsbus 104) des busbasierten Kommunikationssystems, wie oben beschrieben, empfangen. In einigen Implementierungen kann die Nachricht auf dem Kommunikationsbus von einem zweiten Knoten (z.B. einem anderen Knoten 102 des busbasierten Kommunikationssystems 100) übertragen worden sein. In einigen Implementierungen kann die Nachricht eine modulare Potenzierung enthalten, die zumindest mit einem privaten Schlüssel des zweiten Knotens assoziiert ist. Zum Beispiel kann in einigen Implementierungen die modulare Potenzierung ferner mit einem privaten Schlüssel eines oder mehrerer anderer Knoten des busbasierten Kommunikationssystems assoziiert sein, wie einem privaten Schlüssel eines dritten Knotens des busbasierten Kommunikationssystems (z.B. noch ein weiterer Knoten 102 des busbasierten Kommunikationssystems 100) .
  • Wie in der 5 ferner dargestellt, kann der Prozess 500 ein Berechnen, zumindest teilweise basierend auf der modularen Potenzierung und einem privaten Schlüssel des ersten Knotens, eines gemeinsamen geheimen Schlüssels enthalten, der mit dem busbasierten Kommunikationssystem (Block 520) assoziiert ist. Zum Beispiel kann der erste Knoten (z.B. unter Verwendung von Prozessor 404, Sendeempfänger 406, und/oder ähnlichem) zumindest teilweise basierend auf der modularen Potenzierung und einem privaten Schlüssel des ersten Knotens einen gemeinsamen geheimen Schlüssel berechnen, der mit dem busbasierten Kommunikationssystem assoziiert ist, wie oben beschrieben.
  • Der Prozess 500 kann zusätzliche Implementierungen enthalten, wie jede einzelne Implementierung oder jede Kombination von Implementierungen, die unten beschrieben sind und/oder in Verbindung mit einem oder mehreren anderen Prozessen, die hierin an anderer Stelle beschrieben sind.
  • In einigen Implementierungen schließt Prozess 500 den Empfang einer Nachricht ein, die eine modulare Potenzierung assoziiert mit einem privaten Schlüssel des zweiten Knotens enthält, wobei die Nachricht die modulare Potenzierung assoziiert mit dem privaten Schlüssel des zweiten Knotens enthält, der vom zweiten Knoten auf dem Kommunikationsbus übertragen wurde.
  • In einigen Implementierungen umfasst der Prozess 500, zumindest teilweise basierend auf der modularen Potenzierung, die mit dem privaten Schlüssel des zweiten Knotens assoziiert ist, ein Berechnen einer modularen Potenzierung, die mit dem privaten Schlüssel des ersten Knotens und dem privaten Schlüssel des zweiten Knotens assoziiert ist, und ein Übertragen einer Nachricht auf dem Kommunikationsbus, welche die modulare Potenzierung enthält, die mit dem privaten Schlüssel des ersten Knotens und dem privaten Schlüssel des zweiten Knotens assoziiert ist.
  • In einigen Implementierungen schließt der Prozess 500 den Empfang einer Nachricht ein, die eine modulare Potenzierung enthält, die zumindest mit dem privaten Schlüssel des dritten Knotens assoziiert ist; die Nachricht enthält die modulare Potenzierung, die zumindest mit dem privaten Schlüssel des dritten Knotens assoziiert ist, der von dem dritten Knoten auf den Kommunikationsbus übertragen wurde.
  • In einigen Implementierungen beinhaltet der Prozess 500 ein Berechnen, basierend zumindest teilweise auf der modularen Potenzierung, die mit zumindest dem privaten Schlüssel des dritten Knotens assoziiert ist, einer modularen Potenzierung, die mit dem privaten Schlüssel des ersten Knotens und zumindest dem privaten Schlüssel des dritten Knotens assoziiert ist; und ein Übertragen einer Nachricht auf dem Kommunikationsbus, einschließlich der modularen Potenzierung, die mit dem privaten Schlüssel des ersten Knotens und zumindest dem privaten Schlüssel des dritten Knotens assoziiert ist.
  • In einigen Implementierungen beinhaltet der Prozess 500 ein Berechnen einer modularen Potenzierung, die mit einem privaten Schlüssel des ersten Knotens assoziiert ist; und ein Übertragen einer Nachricht auf dem Kommunikationsbus, welche die modulare Potenzierung enthält, die mit dem privaten Schlüssel des ersten Knotens assoziiert ist.
  • In einigen Implementierungen verwendet das busbasierte Kommunikationssystem ein CAN-Protokoll; ein CAN-FD-Protokoll; oder ein CAN-XL-Protokoll.
  • Obwohl die 5 Beispielblöcke des Prozesses 500 zeigt, kann der Prozess 500 in einigen Implementierungen zusätzliche Blöcke, weniger Blöcke, andere Blöcke, oder anders angeordnete Blöcke als die in der 5 dargestellten enthalten. Zusätzlich oder alternativ können zwei oder mehr der Blöcke des Prozesses 500 parallel ausgeführt werden.
  • Die vorstehende Offenbarung stellt eine Veranschaulichung und Beschreibung bereit, soll aber weder erschöpfend sein noch die Implementierungen auf die genau offenbarte Form beschränken. Modifikationen und Variationen sind im Lichte der vorstehenden Offenbarung möglich oder können aus der Praxis der Implementierungen gewonnen werden.
  • Wie hier verwendet, soll der Begriff Komponente im weiten Sinne als Hardware, Firmware, oder eine Kombination aus Hardware und Software verstanden werden.
  • Es ist offensichtlich, dass die hierin beschriebenen Systeme und/oder Verfahren in verschiedenen Formen von Hardware, Firmware, oder einer Kombination von Hardware und Software implementiert werden können. Die tatsächliche spezialisierte Steuerungs-Hardware oder der Software-Code, der zur Implementierung dieser Systeme und/oder Verfahren verwendet wird, stellt keine Einschränkung der Implementierungen dar. Somit wurden der Betrieb und das Verhalten der hierin beschriebenen Systeme und/oder Verfahren ohne Bezugnahme auf spezifischen Software-Code beschrieben, wobei davon ausgegangen wird, dass Software und Hardware so entworfen werden können, dass sie die Systeme und/oder Verfahren basierend auf der hierin enthaltenen Beschreibung implementieren.
  • Auch wenn bestimmte Kombinationen von Merkmalen in den Ansprüchen vorgetragen und/oder in der Beschreibung offenbart werden, sind diese Kombinationen nicht dazu gedacht, die Offenbarung möglicher Implementierungen einzuschränken. Tatsächlich können viele dieser Merkmale auf eine Art und Weise kombiniert werden, die in den Ansprüchen nicht ausdrücklich erwähnt und/oder in der Beschreibung offenbart wird. Obwohl jeder unten aufgeführte abhängige Anspruch direkt von nur einem Anspruch abhängen kann, umfasst die Offenbarung möglicher Implementierungen jeden abhängigen Anspruch in Kombination mit jedem anderen Anspruch im Anspruchssatz.
  • Kein Element, Handlung, oder Anweisung, die hier verwendet werden, sollte als kritisch oder wesentlich ausgelegt werden, es sei denn, sie sind ausdrücklich als solche beschrieben. Auch die hier verwendeten Artikel „ein“ und „eine“ sollen ein oder mehrere Elemente enthalten und können austauschbar mit „einem oder mehreren“ verwendet werden. Darüber hinaus soll der Begriff „Satz“, wie er hier verwendet wird, einen oder mehrere Artikel umfassen (z.B. verwandte Artikel, nicht verwandte Artikel, eine Kombination von verwandten und nicht verwandten Artikeln, usw.) und kann austauschbar mit „einem oder mehreren“ verwendet werden. Wenn nur ein Gegenstand beabsichtigt ist, wird der Begriff „nur ein“ oder eine ähnliche Sprache verwendet. Auch die hier verwendeten Begriffe „hat“, „haben“, „mit“, oder ähnliches sind als offene Begriffe gedacht. Ferner soll der Ausdruck „basierend auf“ bedeuten „zumindest teilweise basierend auf“, sofern nicht ausdrücklich anders angegeben.

Claims (20)

  1. Busbasiertes Kommunikationssystem, umfassend: einen Kommunikationsbus, der eine Vielzahl von Knoten verbindet; und einen ersten Knoten, der Vielzahl von Knoten, der dazu ausgelegt ist: eine erste Nachricht auf dem Kommunikationsbus zu empfangen, wobei die erste Nachricht auf dem Kommunikationsbus von einem zweiten Knoten der Vielzahl von Knoten übertragen wurde, wobei die erste Nachricht eine modulare Potenzierung enthält, die mit zumindest einem privaten Schlüssel des zweiten Knotens assoziiert ist; und einen gemeinsamen geheimen Schlüssel zu berechnen, der mit der Vielzahl von Knoten assoziiert ist, basierend zumindest teilweise auf der modularen Potenzierung und einem privaten Schlüssel des ersten Knotens.
  2. Busbasiertes Kommunikationssystem nach Anspruch 1, wobei die modulare Potenzierung ferner mit zumindest einem privaten Schlüssel eines dritten Knotens der Vielzahl von Knoten assoziiert ist.
  3. Busbasiertes Kommunikationssystem nach Anspruch 1 oder 2, wobei der erste Knoten ferner dazu ausgelegt ist: eine zweite Nachricht zu empfangen, die eine modulare Potenzierung enthält, die mit einem privaten Schlüssel des zweiten Knotens assoziiert ist, wobei die zweite Nachricht einschließlich der modularen Potenzierung, die mit dem privaten Schlüssel des zweiten Knotens assoziiert ist, von dem zweiten Knoten auf dem Kommunikationsbus übertragen wurde.
  4. Busbasiertes Kommunikationssystem nach Anspruch 3, wobei der erste Knoten ferner dazu ausgelegt ist: basierend zumindest teilweise auf der modularen Potenzierung, die mit dem privaten Schlüssel des zweiten Knotens assoziiert ist, eine modulare Potenzierung zu berechnen, die mit dem privaten Schlüssel des ersten Knotens und dem privaten Schlüssel des zweiten Knotens assoziiert ist; und eine dritte Nachricht einschließlich der modularen Potenzierung, die mit dem privaten Schlüssel des ersten Knotens und dem privaten Schlüssel des zweiten Knotens assoziiert ist auf dem Kommunikationsbus zu übertragen.
  5. Busbasiertes Kommunikationssystem nach Anspruch 1, wobei der erste Knoten ferner dazu ausgelegt ist: eine zweite Nachricht zu empfangen, die eine modulare Potenzierung enthält, die mit zumindest einem privaten Schlüssel eines dritten Knotens der Vielzahl von Knoten assoziiert ist, wobei die zweite Nachricht einschließlich der modularen Potenzierung, die mit zumindest dem privaten Schlüssel des dritten Knotens assoziiert ist, auf dem Kommunikationsbus von dem dritten Knoten übertragen wurde.
  6. Busbasiertes Kommunikationssystem nach Anspruch 5, wobei der erste Knoten ferner dazu ausgelegt ist: basierend zumindest teilweise auf der modularen Potenzierung, die mit zumindest dem privaten Schlüssel des dritten Knotens assoziiert ist, eine modulare Potenzierung zu berechnen, die mit dem privaten Schlüssel des ersten Knotens und zumindest dem privaten Schlüssel des dritten Knotens assoziiert ist; und auf dem Kommunikationsbus eine dritte Nachricht zu übertragen, einschließlich der modularen Potenzierung, die mit dem privaten Schlüssel des ersten Knotens und zumindest dem privaten Schlüssel des dritten Knotens assoziiert ist.
  7. Busbasiertes Kommunikationssystem nach einem der vorhergehenden Ansprüche, wobei der erste Knoten ferner dazu ausgelegt ist: eine modulare Potenzierung zu berechnen, die mit einem privaten Schlüssel des ersten Knotens assoziiert ist; und auf dem Kommunikationsbus eine zweite Nachricht zu übertragen, einschließlich der modularen Potenzierung, die mit dem privaten Schlüssel des ersten Knotens assoziiert ist.
  8. Busbasiertes Kommunikationssystem nach einem der vorhergehenden Ansprüche, wobei das busbasierte Kommunikationssystem eines verwendet von: einem Controller Area Network (CAN)-Protokoll; einem CAN-Protokoll mit flexibler Datenrate (CAN FD); oder einem CAN extra large (CAN XL) Protokoll.
  9. Erster Knoten eines busbasierten Kommunikationssystems, umfassend: einen oder mehrere Prozessoren, die dazu ausgelegt sind: eine erste Nachricht auf einem Kommunikationsbus des busbasierten Kommunikationssystems zu empfangen, wobei die erste Nachricht von einem zweiten Knoten des busbasierten Kommunikationssystems auf dem Kommunikationsbus übertragen wurde, wobei die erste Nachricht eine modulare Potenzierung enthält, die mit zumindest einem privaten Schlüssel des zweiten Knotens assoziiert ist; und einen gemeinsamen geheimen Schlüssel zu berechnen, der mit einer Vielzahl von Knoten des busbasierten Kommunikationssystems assoziiert ist, basierend zumindest teilweise auf der modularen Potenzierung und einem privaten Schlüssel des ersten Knotens, wobei die Vielzahl von Knoten den ersten Knoten, den zweiten Knoten, und den dritten Knoten enthält.
  10. Erster Knoten nach Anspruch 9, wobei die modulare Potenzierung ferner mit zumindest einem privaten Schlüssel eines dritten Knotens der Vielzahl von Knoten assoziiert ist.
  11. Erster Knoten nach Anspruch 9 oder 10, wobei der eine oder die mehreren Prozessoren ferner dazu ausgelegt sind: eine zweite Nachricht zu empfangen, die eine modulare Potenzierung assoziiert mit einem privaten Schlüssel des zweiten Knotens enthält, wobei die zweite Nachricht einschließlich der modularen Potenzierung, die mit dem privaten Schlüssel des zweiten Knotens assoziiert ist, von dem zweiten Knoten auf dem Kommunikationsbus übertragen wurde.
  12. Erster Knoten nach Anspruch 11, wobei der eine oder die mehreren Prozessoren ferner dazu ausgelegt sind: basierend zumindest teilweise auf der modularen Potenzierung, die mit dem privaten Schlüssel des zweiten Knotens assoziiert ist, eine modulare Potenzierung zu berechnen, die mit dem privaten Schlüssel des ersten Knotens und dem privaten Schlüssel des zweiten Knotens assoziiert ist; und eine dritte Nachricht auf dem Kommunikationsbus zu übertragen, einschließlich der modularen Potenzierung, die mit dem privaten Schlüssel des ersten Knotens und dem privaten Schlüssel des zweiten Knotens assoziiert ist.
  13. Erster Knoten nach Anspruch 9, wobei der eine oder die mehreren Prozessoren ferner dazu ausgelegt sind: eine zweite Nachricht zu empfangen, die eine modulare Potenzierung enthält, die mit zumindest einem privaten Schlüssel eines dritten Knotens der Vielzahl von Knoten assoziiert ist, wobei die zweite Nachricht einschließlich der modularen Potenzierung, die mit zumindest dem privaten Schlüssel des dritten Knotens assoziiert ist von dem dritten Knoten auf dem Kommunikationsbus übertragen wurde.
  14. Erster Knoten nach Anspruch 13, wobei der eine oder die mehreren Prozessoren ferner dazu ausgelegt sind: basierend zumindest teilweise auf der modularen Potenzierung, die zumindest mit dem privaten Schlüssel des dritten Knotens assoziiert ist, eine modulare Potenzierung zu berechnen, die mit dem privaten Schlüssel des ersten Knotens und zumindest dem privaten Schlüssel des dritten Knotens assoziiert ist; und eine dritte Nachricht auf dem Kommunikationsbus zu übertragen, einschließlich der modularen Potenzierung, die mit dem privaten Schlüssel des ersten Knotens und zumindest dem privaten Schlüssel des dritten Knotens assoziiert ist.
  15. Erster Knoten nach einem der Ansprüche 9 bis 14, wobei der eine oder die mehreren Prozessoren ferner dazu ausgelegt sind: eine modulare Potenzierung zu berechnen, die mit einem privaten Schlüssel des ersten Knotens assoziiert ist; und auf dem Kommunikationsbus eine zweite Nachricht einschließlich der modularen Potenzierung assoziiert mit dem privaten Schlüssel des ersten Knotens zu übertragen.
  16. Erster Knoten nach einem der Ansprüche 9 bis 15, wobei das busbasierte Kommunikationssystem eines verwendet von: einem Controller Area Network (CAN)-Protokoll; einem CAN-Protokoll mit flexibler Datenrate (CAN FD); oder einem CAN extra large (CAN XL) Protokoll.
  17. Verfahren, umfassend: Empfangen, durch einen ersten Knoten in einem busbasierten Kommunikationssystem, einer ersten Nachricht auf einem Kommunikationsbus des busbasierten Kommunikationssystems, wobei die erste Nachricht von einem zweiten Knoten des busbasierten Kommunikationssystems auf dem Kommunikationsbus übertragen wurde, und wobei die erste Nachricht eine modulare Potenzierung enthält, die mit zumindest einem privaten Schlüssel des zweiten Knotens assoziiert ist; und Berechnen, durch den ersten Knoten und basierend zumindest teilweise auf der modularen Potenzierung und einem privaten Schlüssel des ersten Knotens, eines gemeinsamen geheimen Schlüssels, der mit dem busbasierten Kommunikationssystem assoziiert ist.
  18. Verfahren nach Anspruch 17, wobei die modulare Potenzierung ferner mit zumindest einem privaten Schlüssel eines dritten Knotens des busbasierten Kommunikationssystems assoziiert ist.
  19. Verfahren nach Anspruch 17 oder 18, ferner umfassend: Empfangen einer zweiten Nachricht einschließlich einer modularen Potenzierung, die mit einem privaten Schlüssel des zweiten Knotens assoziiert ist, wobei die zweite Nachricht einschließlich der modularen Potenzierung, die mit dem privaten Schlüssel des zweiten Knotens assoziiert ist, von dem zweiten Knoten auf dem Kommunikationsbus übertragen wurde; Berechnen, basierend zumindest teilweise auf der modularen Potenzierung, die mit dem privaten Schlüssel des zweiten Knotens assoziiert ist, einer modularen Potenzierung, die mit dem privaten Schlüssel des ersten Knotens und dem privaten Schlüssel des zweiten Knotens assoziiert ist; und Übertragen, auf dem Kommunikationsbus, einer dritten Nachricht einschließlich der modularen Potenzierung, die mit dem privaten Schlüssel des ersten Knotens und dem privaten Schlüssel des zweiten Knotens assoziiert ist.
  20. Verfahren nach Anspruch 17, ferner umfassend: Empfangen einer zweiten Nachricht einschließlich einer modularen Potenzierung, die mit zumindest dem privaten Schlüssel des dritten Knotens assoziiert ist, wobei die zweite Nachricht einschließlich der modularen Potenzierung, die mit zumindest dem privaten Schlüssel des dritten Knotens assoziiert ist auf dem Kommunikationsbus durch den dritten Knoten übertragen wurde; Berechnen, basierend zumindest teilweise auf der modularen Potenzierung, die mit zumindest dem privaten Schlüssel des dritten Knotens assoziiert ist, einer modularen Potenzierung, die mit dem privaten Schlüssel des ersten Knotens und zumindest dem privaten Schlüssel des dritten Knotens assoziiert ist; und Übertragen, auf dem Kommunikationsbus, einer dritten Nachricht einschließlich der modularen Potenzierung, die mit dem privaten Schlüssel des ersten Knotens und zumindest dem privaten Schlüssel des dritten Knotens assoziiert ist.
DE102021105895.3A 2020-03-13 2021-03-11 Controller Area Network Schlüsselaustausch Pending DE102021105895A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/818,830 US11374740B2 (en) 2020-03-13 2020-03-13 Controller area network key exchange
US16/818,830 2020-03-13

Publications (1)

Publication Number Publication Date
DE102021105895A1 true DE102021105895A1 (de) 2021-09-16

Family

ID=77457475

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021105895.3A Pending DE102021105895A1 (de) 2020-03-13 2021-03-11 Controller Area Network Schlüsselaustausch

Country Status (3)

Country Link
US (1) US11374740B2 (de)
CN (1) CN113395196B (de)
DE (1) DE102021105895A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3910880A1 (de) * 2020-05-14 2021-11-17 Nokia Technologies Oy Blockchain-basierte vorrichtungsüberwachung
US11611431B2 (en) * 2020-07-01 2023-03-21 Red Hat, Inc. Network bound encryption for recovery of trusted execution environments

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080039052A1 (en) * 1999-06-02 2008-02-14 Knowles Andrew T Digital Message Processing System
US8009615B2 (en) * 2006-11-09 2011-08-30 Avaya Inc. Multi-hop ad-hoc wireless networks that support non-multi-hop wireless terminals
US9338273B2 (en) * 2009-09-22 2016-05-10 Avaya Inc. Method for telephony client synchronization in telephone virtualization
CN103825733A (zh) 2014-02-28 2014-05-28 华为技术有限公司 基于组合公钥密码体制的通信方法、装置及系统
JP6559774B2 (ja) * 2014-09-04 2019-08-14 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 鍵共有のために設けられた暗号システム
EP3326322B1 (de) * 2015-07-17 2019-12-18 Robert Bosch GmbH Verfahren und system zur sicheren schlüsselgenerierung über ein unsicheres gemeinsames kommunikationsmedium
JP6288219B1 (ja) * 2016-11-18 2018-03-07 Kddi株式会社 通信システム
US10355859B2 (en) 2017-03-27 2019-07-16 Certicom Corp. Method and system for selecting a secure prime for finite field diffie-hellman
EP3402118A1 (de) 2017-05-10 2018-11-14 Koninklijke Philips N.V. Schlüsselvereinbarungsvorrichtungen und verfahren
US20190044721A1 (en) * 2017-08-02 2019-02-07 Rubicon Labs, Inc. Device authorization using symmetric key systems and methods
GB201720753D0 (en) * 2017-12-13 2018-01-24 Nchain Holdings Ltd Computer-implemented system and method

Also Published As

Publication number Publication date
CN113395196A (zh) 2021-09-14
CN113395196B (zh) 2022-11-04
US20210288792A1 (en) 2021-09-16
US11374740B2 (en) 2022-06-28

Similar Documents

Publication Publication Date Title
EP2087646B1 (de) Vorrichtung und verfahren zur manipulation von kommunikations-botschaften
DE102021105895A1 (de) Controller Area Network Schlüsselaustausch
DE102018120915A1 (de) Fahrzeuginterne Gruppenschlüsselverteilung
DE112009001668B4 (de) Weiterleitungsvorrichtung, Kommunikationssystem und Kommunikationsverfahren
DE112009001525B4 (de) Vermittlungsvorrichtung, Kommunikationssystem und Kommunikationsverfahren
DE102015213378A1 (de) Verfahren und Gerät zum Diagnostizieren eines Netzes
DE102015204714A1 (de) Teilnehmerstation für ein Bussystem und Verfahren zur Datenübertragung in einem Bussystem
DE102017123251A1 (de) Betriebsverfahren eines Kommunikationsknotens für selektives Aufwecken im Fahrzeugnetzwerk
EP2087647B1 (de) Vorrichtung und verfahren zur manipulation von kommunikations-botschaften
DE102017129751B4 (de) Fahrzeugnetzwerksystem für Hochgeschwindigkeits-Datenverarbeitung
DE112006002202B4 (de) Optimierungs-Controller und Verfahren zum Übertragen einer Mehrzahl von Nachrichten
DE102019005608A1 (de) Transportschichtauthentizität und Sicherheit für Automobilkommunikation
DE102020125262A1 (de) Warnsystem für Controller Area Networks
DE102018215706A1 (de) Fahrzeug-Netzwerk-Vorrichtung
DE102021104502A1 (de) Controller Area Network Verkehrsfluss-Vertraulichkeit
DE102019213322A1 (de) Ethernet Physical Layer Transceiver für Zweidraht-Bustopologie
DE102016211066A1 (de) Repeater
DE102017202239A1 (de) Verfahren und Vorrichtung zum Vereinbaren eines gemeinsamen Schlüssels zwischen einem ersten Knoten und einem zweiten Knoten eines Rechnernetzes
DE102007049044A1 (de) Vorrichtung und Verfahren zum Datenaustausch zwischen mindestens zwei Funktionsmodulen einer integrierten Schaltung
DE102020125267A1 (de) Synchronisationssystem für Controller Area Networks
DE102019125545B3 (de) Datenübertragungsverfahren, segment-telegramm und automatisierungskommunikationsnetzwerk
DE60317541T2 (de) Verfahren zur bestimmung eines übergeordneten portals in einem drahtlosen netzwerk und entsprechende portaleinrichtung
WO2021099186A2 (de) Verfahren zur überwachung der kommunikation auf einem kommunikationsbus, elektronische vorrichtung zum anschluss an einen kommunikationsbus, sowie zentrale überwachungsvorrichtung zum anschluss an einen kommunikationsbus
EP3363146B1 (de) Verfahren zur erzeugung eines schlüssels in einer schaltungsanordnung
DE102019218061A1 (de) Weiterleitungsgerät

Legal Events

Date Code Title Description
R012 Request for examination validly filed