DE102014007820A1 - Datenrahmen für geschützte Datenübertragungen - Google Patents

Datenrahmen für geschützte Datenübertragungen Download PDF

Info

Publication number
DE102014007820A1
DE102014007820A1 DE102014007820.5A DE102014007820A DE102014007820A1 DE 102014007820 A1 DE102014007820 A1 DE 102014007820A1 DE 102014007820 A DE102014007820 A DE 102014007820A DE 102014007820 A1 DE102014007820 A1 DE 102014007820A1
Authority
DE
Germany
Prior art keywords
message
codeword
mac
data frame
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.)
Granted
Application number
DE102014007820.5A
Other languages
English (en)
Other versions
DE102014007820B4 (de
Inventor
Albrecht Mayer
Wieland Fischer
Gerd Dirscherl
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
Priority to DE102014007820.5A priority Critical patent/DE102014007820B4/de
Priority to US14/728,323 priority patent/US10009357B2/en
Publication of DE102014007820A1 publication Critical patent/DE102014007820A1/de
Application granted granted Critical
Publication of DE102014007820B4 publication Critical patent/DE102014007820B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • 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/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Small-Scale Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

Es wird ein Verfahren zum Erzeugen eines Datenrahmens offenbart, der einen Nutzdatenblock mit der Nachricht und einen Codeblock enthält. Zur Erzeugung des Codeblocks wird zunächst ein erster Datensatz mittels eines ersten Kodieralgorithmus kodiert, um ein erstes Codewort zu berechnen. Anschließend wird die Nachricht transformiert. Unter Verwendung des so erzeugten ersten Codewortes und der transformierten Nachricht wird anschließend unter Verwendung eines zweiten Kodieralgorithmus ein zweites Codewort berechnet. Der Datenrahmen umfasst das zweite Codewort, aber nicht das erste Codewort.

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung betrifft ein Verfahren zum Erzeugen eines Datenrahmens, einen Sender zum Senden des erzeugten Datenrahmen, ein Bussystem mit einem Sender und einem Empfänger sowie einen Mikroprozessor insbesondere für Anwendungen im Automobil.
  • HINTERGRUND DER ERFINDUNG
  • Die sichere Übertragung von Daten ist insbesondere in Automobilen von großer Bedeutung, denn die Steuerung von sicherheitsrelevanten Systemen wie Airbags oder automatischen Bremssysteme muss sicher funktionieren.
  • Die in modernen Automobilen zu übertragenen Daten liegen in der Regel in digitaler Form vor und ihre Übertragung wird von Mikrocontrollern gesteuert und überwacht. Die digitalen Daten werden üblicherweise über Bussysteme von einem Sender zu einem oder mehreren Empfängern transportiert, die die verschiedenen Systeme im Auto miteinander vernetzen. Es kommen zum Beispiel der CAN-Bus (Controller Area Network) bzw. der TTCAN-bus (Time Triggered CAN), LIN-bus (Local Interconnect Network), Ethernet oder der FlexRay-Bus zum Einsatz.
  • Neben der Betriebssicherheit, die z. B. darauf gerichtet ist, dass die von einem Sender zu übertragenden Daten nicht durch unbeabsichtigte Störungen, z. B. Kurzschlüsse auf der Übertragungsleitung, verändert werden und deshalb nicht fehlerfrei beim Empfänger empfangen werden, ist auch der Schutz vor böswilligen Angriffen sicherzustellen.
  • Ein Beispiel für einen böswilligen Angriff durch einen Hacker könnte beim Auto darin bestehen, in das interne Bussystem des Fahrzeugs einzugreifen und die übertragenen Daten zu verfälschen. Ein Angriff könnte auch darin bestehen, nicht die Daten selbst zu verändern, sondern den Datenverkehr auf dem Bussystem zu unterbrechen, zu verzögern oder für spätere Zwecke aufzuzeichnen.
  • Eine Übertragung von digital vorliegenden Nutzdaten von einem Sender zu einem Empfänger wird beispielsweise in Form von Datenblöcken bzw. Datenrahmen vorgenommen, die neben den Nutzdaten weitere Daten enthalten, die unter anderem dazu beitragen, Störungen bei der Übertragung zu entdecken und/oder zu korrigieren. Diese weiteren Daten werden durch Kodierer erzeugt, die auf Basis der ihnen zugeführten Eingabedaten in einer bestimmten Zeit Codeworte zum Schutz der Nutzdaten generieren. Die Codeworte werden in Form von Codeblöcken zusätzlich zu den Nutzdatenblöcken übertragen.
  • Die Datenrahmen, die aus Nutzdatenblöcken und Codeblöcken entstehen dürfen keine beliebige Länge aufweisen, da die maximale Block- bzw. Rahmenlänge durch die verschiedenen Kommunikationsstandards bzw. Bus-Systeme festgelegt ist. Darüber hinaus dürfen Nutzdatenblöcke und Codeblöcke nicht derartig modifiziert werden, dass ein solcher böswilliger Eingriff nicht erkennbar ist.
  • Die deutsche Patentschrift DE 10 2010 042 539 B4 zeigt einen Datensender zum Senden von Blöcken von Nutzdaten, der eine Verschlüsselungseinrichtung und einen Extrahierer verwendet. Dabei wird den Nutzdaten vor der Übertragung nur ein Teil des Verschlüsselungsergebnis angehangen.
  • Die internationale Patentanmeldung WO 2013/128317 zeigt ein Verfahren und ein System für Maßnahmen gegen ein wiederholtes Senden von aufgezeichneten Nachrichten bei einem CAN-Bus durch den Einsatz von Zählwerten. Diese Zählwerte zeigen die Anzahl bisher übertragener Nachrichten an.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein Verfahren und ein System bereitzustellen, mit dem ein hohes Maß an Datensicherheit bei der Datenübertragung insbesondere im Automobil erreicht wird.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es wird ein Verfahren zum Erzeugen eines Datenrahmens offenbart, der einen Nutzdatenblock mit der Nachricht und einen Codeblock enthält. Zur Erzeugung des Codeblocks wird zunächst einer erster Datensatz mittels eines ersten Kodieralgorithmus kodiert, um ein erstes Codewort zu berechnen. Unter Verwendung des so erzeugten ersten Codewortes und der transformierten Nachricht wird anschließend unter Verwendung eines zweiten Kodieralgorithmus ein zweites Codewort berechnet. Der Datenrahmen umfasst das zweite Codewort, aber nicht das erste Codewort.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein bekanntes System zur Datenübertragung, das als Datenrahmen einen Nutzdatenblock und einen Codeblock über einen Bus überträgt.
  • 2 zeigt ein weiteres bekanntes System zur Datenübertragung, das als Datenrahmen einen Nutzdatenblock und zwei Codeblöcke über einen Bus überträgt.
  • 3 zeigt einen bekannten Sender zum Berechnen von Codewörtern.
  • 4 zeigt ein Ausführungsbeispiel für ein Übertragungssystem, bei dem ein kurzer Datenrahmen übertragen wird.
  • 5 zeigt ein Ausführungsbeispiel für einen Sender, der einen Nutzdatenblock und einen Codeblock bereitstellt, wobei die Nachricht transformiert wird.
  • 6 zeigt ein weiteres Ausführungsbeispiel für einen Sender, der einen Nutzdatenblock und einen Codeblock bereitstellt, wobei die Nachricht transformiert wird.
  • 7 zeigt ein Ausführungsbeispiel für einen Sender, der einen Nutzdatenblock und einen Codeblock bereitstellt, wobei die Nachricht transformiert wird und der zweite Kodierer einen CRC Block und ein Umsortierungsmodul enthält.
  • 8 zeigt ein Ausführungsbeispiel für einen Sender, wobei der zweite Kodierer einen CRC Block, ein Umsortierungsmodul und einen XOR-Block enthält.
  • 9 zeigt ein Ausführungsbeispiel für ein Übertragungssystem, bei dem ein kurzer Datenrahmen übertragen wird, der einen Teil eines Zählwertes enthält.
  • 10 zeigt ein Bussystem zur Datenübertragung, bei dem kurze Datenrahmen übertragen werden.
  • 11 zeigt ein Ausführungsbeispiel für ein Verfahren zur geschützten Datenübertragung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die nachfolgende ausführliche Beschreibung nimmt Bezug auf die beigefügten Zeichnungen, die einen Teil der Offenbarung der Erfindung bilden und in denen zur Illustration spezielle Ausführungsbeispiele dargestellt sind, durch welche sich die Erfindung beispielhaft praktisch umsetzten lässt. Es ist selbstverständlich, dass andere Ausführungsbeispiele Verwendung finden und strukturelle oder andere Veränderungen vorgenommen werden können, ohne dass der Schutzbereich der vorliegenden Erfindung verlassen wird. Insbesondere ist die dokumentierte Reihenfolge von beschriebenen Verfahrensschritten nicht zwingend, d. h. die Reihenfolge von Verfahrensschritten kann verändert werden, um das beschrieben Verfahren zu realisieren bzw. das Ergebnis des Verfahrens zu erhalten. Die nachfolgende ausführliche Beschreibung ist daher nicht in beschränkender Weise zu verstehen. Vielmehr ist der Schutzbereich der vorliegenden Erfindung lediglich durch die beigefügten Patentansprüche definiert.
  • Ausführungsformen der Erfindung betreffen Übertragungssysteme, die bei der Berechnung von Codewörtern, zum Beispiel durch Verschlüsselungsalgorithmen, nicht nur die Nutzdaten, sondern auch berechnete Codewörter, zum Beispiel redundante Paritätsbits, verwenden.
  • Ein Schutzmechanismus gegen die beschriebene Art der ”Zeit-Angriffe” besteht darin, die zu übertragenden Daten mit einem ”Zeitstempel” zu versehen. Ein Datum ist für einen Empfänger nur dann ein gültiges Datum, wenn eine vordefinierte Zeitspanne seit Versendung des Datum noch nicht abgelaufen ist. Die von einem Sender über einen Bus gesendeten Daten werden also zum Schutz vor Angriffen mit einer Zeitinformation versehen, die es dem Empfänger erlaubt festzustellen, ob die empfangenen Daten noch gültig sind oder nicht. Zusätzlich zu dieser Sicherung können Methoden zur Fehlerkennung und Fehlerkorrektur eingesetzt werden.
  • Die Übertragung von digital vorliegenden Nutzdaten von einem Sender zu einem Empfänger wird mit Hilfe von Datenrahmen vorgenommen, die neben den Nutzdaten weitere Daten enthalten. Diese weiteren Daten werden durch Kodierer erzeugt, die auf Basis der ihnen zugeführten Eingabedaten Codeworte generieren. In die Berechnung der Codeworte kann nun die beschriebene Zeitinformation bzw. die Maßnahmen zur Fehlererkennung und Fehlerkorrektur integriert werden.
  • 1 zeigt ein bekanntes Übertragungssystem 100 mit einem Sender 102 und einem Empfänger 103. Der Sender und der Empfänger sind über einen Übertragungskanal 106 miteinander verbunden. Der Sender 102 überträgt an den Empfänger 103 über den Übertragungskanal 106 einen Datenrahmen 104.
  • Der Sender 102 liest eine Nachricht M und berechnet aus der gelesenen Nachricht M ein Codewort R. Die Nachricht M, die auch als Nutzdaten oder ”payload” bezeichnet wird, kann zum Beispiel eine Folge von Bits sein, die in Form eines Nachrichtendatenrahmens 101 vom Sender 102 gelesen wird. Der Nachrichtendatenrahmen 101 hat zum Beispiel eine Länge, die gleich der Anzahl der Folge von Bits ist. Der Sender erzeugt einen Nutzdatenrahmen 104a und einen Codeblock 104b, die z. B. aneinander gehangen werden und als Datenrahmen 104 über den Bus 106 übertragen werden.
  • Das unter Verwendung der Nachricht M berechnete Codewort R dient der Übertragungssicherheit und kann in einer Ausführungsform ein einfaches Paritätsbit sein. Dabei wird beispielsweise die Anzahl von zu übertragenden Einsen oder Nullen der Nachricht M entweder um eine Eins oder um eine Null ergänzt, so dass insgesamt als Datenrahmen 104 eine gerade Anzahl von Einsen über den Bus 106 übertragen wird.
  • Das Codewort R kann auch mehrere Bits umfassen und für die Nachricht M redundante Information darstellen. Ein Beispiel für einen entsprechenden Kodieralgorithmus ist ein Hamming-Code. Beim Hamming-Code handelt es sich um eine Klasse von Blockcodes unterschiedlicher Länge. Diese generierten Bits ergänzen jeweils unterschiedliche Gruppen von den die Information tragenden Nutzdatenbits. Ein weiteres Beispiel für solche Bitfolgen sind zyklische Redundanzkodes (CRC), bei der die Berechnung des Codewortes auf einer Polynomdivision beruht.
  • Der Datenrahmen 104 wird über den Übertragungskanal 106 übertragen. Der Übertragungskanal 106 kann zu Beispiel ein Bus sein, wie z. B. ein CAN-Bus, TTCAN-Bus, Ethernet oder ein FlexRay-Bus. Der Übertragungskanal kann aber auch eine physikalische Punkt-zu-Punkt Verbindung zwischen einem Sender und einem Empfänger sein.
  • Der Empfänger 103 empfängt den Datenrahmen 105, der den empfangenen Nutzdatenblock 105a und den empfangenen Codeblock 105b enthält. Der empfangene Datenrahmen 105 kann vom gesendeten Datenrahmen 104 abweichen, wenn die gesendete Nachricht M bzw. das Codewort R verändert wurden. Der Empfänger 103 extrahiert aus dem empfangenen Nutzdatenblock 105a eine Nachricht M' und berechnet daraus zunächst ein Codewort R'' 103b. Der dazu eingesetzte Algorithmus entspricht dem Algorithmus, den der Sender 102 bei der Berechnung des Codewortes R verwendet hat. Für den Fall, dass das berechnete Codewort R'' 103b mit dem Codewort R des empfangenen Codeblocks 105b identisch ist, wird der empfangene Nutzdatenblock 105a als korrekt übertragen und die damit übertragende Nachricht M als unverändert interpretiert. Die Nachricht M wird dann an den Rahmen 107 zur weiteren Verarbeitung weitergereicht.
  • Bei der Übertragung des Datenrahmens 104 über den Übertragungskanal 106 können die im Datenrahmen enthaltenen Daten verändert werden. Eine Ursache für unbeabsichtigte Änderungen können Störungen zum Beispiel durch erhöhte elektromagnetische Strahlung sein. Eine solche Änderung wird über die Berechnung des Codewortes R'' und den Vergleich mit dem empfangenen Codewort R' detektiert. Die Veränderung der Daten kann aber auch durch beabsichtigte Manipulation erfolgen. So kann zum Beispiel der Nutzdatenblock 104a so verändert werden, dass dasselbe Codewort wie bei unveränderten Nutzdaten generiert würde, so dass die Veränderung beim Empfänger 103 nicht erkannt würde.
  • Mit Blockcodes wie dem Hamming-Code lässt sich aber nur überprüfen, ob es bei der Übertragung zu Fehlern gekommen ist (Integrität). Eine Manipulation der Nutzdaten z. B. in der Form, dass ein gültiges Codewort R berechnet wurde, lässt sich mit bekannten Hamming-Codes nicht ausschließen.
  • 2 ist eine Weiterführung des Übertragungssystems der 1. Im Unterschied zur 1 erzeugt der Sender 202 nun einen Datenrahmen 204, der auch einen MAC(Message Authentication Code)-Block 204c enthält. Der MAC kann unter Verwendung der zu übertragenden Nachricht M und unter Zuhilfenahme eines in 2 nicht dargestellten Schlüssels erzeugt werden. Der MAC wird in einer Ausführungsform unter Verwendung von Nutzdaten und einem Zeitwert oder auch nur unter Verwendung eines Zeitwertes berechnet, wobei der Zeitwert jeweils beispielsweise in einem Sender erzeugt wird und eine gültige Zeitdauer für die Nutzdaten bzw. die Nachricht definiert.
  • Dem Fachmann bekannte Beispiele für die Berechnung eines MAC sind insbesondere CMACs (cipher based MACs) oder HMACs (hash function based MACs). Ein CMAC basiert auf einem symmetrischen Schlüsselcode wie zum Beispiel AES (Advanced Encryption Services). Weitere Beispiele für einen MAC sind MD5 (Message Digest 5) oder SHA1 (Secure Hash Algorithm).
  • Der Datenrahmen 204 besteht aus dem Nutzdatenblock 104a dem berechneten MAC 204c und einem weiteren Block 204b zur Absicherung von Übertragungsfehlern, der beispielsweise einen zyklischen Blockcode enthält. Dieser wird zum Beispiel über eine Schieberegisterlogik erzeugt und kann ein CRC Code sein (cyclic redundancy check), der über die Nachricht M und den erzeugten MAC berechnet wird. Der berechnete Blockcode R wird als Teil des Datenrahmens 204 übertragen. Zur Bildung des Datenrahmens 204 wird zum Beispiel an den Nutzdatenblock 104a der MAC-Block (204c) angehangen. Anschließend wird der zweite Codeblock 204b angehangen. Der Datenrahmen 204 wird über den Übertragungskanal 106 an den Empfänger 203 übermittelt.
  • Der Empfänger 203 empfängt den Rahmen 205, der nur für den Fall, dass keine Störungen oder Veränderung der übertragenden Daten bei der Übertragung aufgetreten sind, dem Rahmen 204 entspricht. Unter Verwendung der aus dem empfangenen Nutzdatenblocks 105a extrahierten Nachricht M' und einem dem Empfänger bekannten entsprechenden Schlüssel, wird zunächst im Empfänger ein MAC'' 203c berechnet und mit dem aus dem empfangenen MAC-Block 205c extrahierten MAC' verglichen. Wenn der MAC'' 203c mit dem MAC' übereinstimmt, gilt die Authentizität der Nachricht M' als nachgewiesen, d. h. es wird davon ausgegangen, dass die Nachricht vom Sender 202 stammt.
  • Anschließend wird unter Verwendung der empfangenen Nachricht M' und des berechneten MAC'' 203c das zweite Codewort R'' 203b berechnet, das beispielsweise einen zyklischen Redundanzkode darstellt. Wenn nun auch R'' 203b mit dem aus dem Codeblock 205b extrahierten empfangenen R' übereinstimmt, ist auch die Integrität der Nachricht sichergestellt, d. h. dass bei der Datenübertragung keine Fehler aufgetreten sind.
  • Die Gesamtlänge des zu übertragenden Datenrahmens 204 ergibt sich damit aus der Anzahl der Nutzdatenbits zuzüglich der Anzahl der Bits für den ersten und zweiten Codeblock. Der zu übertragende Datenrahmen 204 kann dadurch eine Länge bekommen, die über die maximal zulässige Länge des entsprechenden Kommunikationsprotokolls hinausgeht. Im ”extended format” entsprechend dem CAN Standard 2.0b sind zum Beispiel maximal nur 154 Bits pro Rahmen zulässig.
  • Um diese Grenze nicht zu überschreiten wird in der DE 10 2010 042 539 B4 vorgeschlagen, nur einen Teil des Verschlüsselungsergebnisses, also nur einen Teil des ersten Codewortes, an den Empfänger zu übertragen. Ein Nachteil dieser Vorgehensweise ist, dass damit nicht zweifelsfrei die Integrität und die Authentizität der empfangenen Nachricht sichergestellt ist.
  • Wird der MAC nicht über die Nachricht M berechnet, sondern nur unter Verwendung eines Zeitwertes Ts gebildet, hat das den Vorteil, dass die MAC Berechnungseinheit auf Sender- und Empfängerseite eine Liste von MACs im Vorhinein berechnen kann. Damit kann die MAC Berechnungseinheit effizient genutzt werden und die MAC Berechnung ist insbesondere nicht mehr im Echtzeitpfad zwischen gültigen Nutzdaten und Beginn des Sendens (beim Sender) bzw. empfangenen Nutzdaten und abgeschlossener Prüfung (beim Empfänger). Diese Vorberechnung wäre auch möglich, wenn die MAC Berechnung nicht auf dem Zeitwert Ts, sondern auf einer anderen bekannten Nummernfolge basiert, z. B. einem Zählerwert für die übertragenen Nutzdatenblöcke.
  • 3 zeigt einen Sender 302 mit einem ersten Kodierer 330 und einem zweiten Kodierer 331. Der erste Kodierer 330 kodiert einen Zeitwert Ts unter Verwendung eines ersten Kodieralgorithmus. Dieser erste Kodieralgorithmus ist beispielsweise ein Algorithmus zur Erzeugung eines CMAC, AES oder ein Algorithmus zur Erzeugung eines MD5-Code. Das durch den ersten Kodieralgorithmus erzeugte erste Codewort MAC und die Nachricht M werden anschließend vom zweiten Kodierer 331 gelesen, der unter Verwendung eines zweiten Kodieralgorithmus, zum Beispiel eines Algorithmus zur Berechnung eines Hamming-Codes oder eines CRC(Cyclic Redundancy Code)Codes, ein zweites Codewort R berechnet.
  • Der Sender 302 erzeugt intern einen sendeseitigen Zeitwert (Ts), der mit der Nachricht M eindeutig logisch verbunden ist. Der sendeseitige Zeitwert 220 (Ts) kann zum Beispiel im Sender 302 erzeugt werden, indem in bestimmten Abständen die Zeit eines internen, nicht dargestellten Zeitgebers, z. B. einer Uhr, abgelesen wird. Entsprechend der gewählten zeitlichen Abstände beschreibt der Zeitwert Ts damit einen Zeitraum, der mit seiner Zuordnung zur Nachricht die Gültigkeit der Nachricht definiert.
  • 4 zeigt als ein Ausführungsbeispiel ein Übertragungssystem 400, das aus einem Sender 302, einem Datenbus 106 und einen Empfänger 403 besteht. Der Sender 302 erzeugt einen verkürzten Datenrahmen 404, der über den Bus 106 an den Empfänger 403 übertragen wird. Der Datenrahmen 404 besteht aus einem Nutzdatenblock 104a und einem Codeblock 304b, wobei das Codewort R des Codeblocks 304 entsprechend dem gezeigten Sender 302 der 3 gebildet wird. Der vom Sender 302 erzeugte Datenrahmen enthält neben der Nachricht M bzw. den Nutzdaten in Block 104a somit eine implizite Zeitinformation über die Gültigkeit der Nutzdaten, die im zweiten Block 304b in kodierter Form enthalten ist.
  • Der Empfänger 403 extrahiert aus dem empfangenen Datenrahmen 405 zunächst die Nachricht M' und berechnet daraus unter Verwendung des entsprechenden Schlüssels zunächst das erste Codewort MAC''. Der hierzu verwendete Algorithmus entspricht dem, der im Sender verwendet wurde, beispielsweise ein Algorithmus zur Erzeugung eines CMAC. Für den Fall, dass das erste Codewort im Sender unter Verwendung eines Datensatzes berechnet wurde, der einen sendeseitigen Zeitwert Ts enthält, erzeugt der Empfänger einen empfangsseitigen Zeitwert Tr, der zur Berechnung des MAC' herangezogen wird.
  • Aus dem berechneten MAC' und der Nachricht M' kann dann das zweite Codewort R'' berechnet werden. Der hierzu verwendete Algorithmus entspricht dem, der im Sender verwendet wurde und ist beispielsweise ein Algorithmus zur Erzeugung eines zyklischen Redundanzkodes (CRC). Das so erhaltene Codewort R'' wird mit dem aus dem empfangenen Codeblock 405b extrahierten Codewort R' verglichen. Wenn R' und R'' übereinstimmen, ist implizit auch die Richtigkeit des berechneten MAC'' sichergestellt.
  • Für die empfangene Nachricht M' ist mit dem beschriebenen Verfahren sowohl die Authentizität als auch die Integrität bewiesen, wobei ein relativ kurzer Datenrahmen 404 übertragen wurde. In einem nicht gezeigten Beispiel dieser Ausführungsform kann der Datenrahmen 404 wiederum Teil eines zu übertragenen übergeordneten, nicht gezeigten Datenrahmens sein, der den Datenrahmen 404 umfasst. So könnte zum Beispiel eine untere Protokollschicht dem Datenrahmen 404 weitere Daten hinzufügen und damit einen übergeordneten Datenrahmen größerer Länge erzeugen.
  • Wenn im zweiten Kodierer 331 ein zweiter Kodieralgorithmus zum Verbinden von Nachricht M und MAC benutzt wird, aber der MAC selber nicht von der Nachricht M abhängt, ist es möglich, die Nachricht zu modifizieren und anschließend das Codewort R, z. B. den CRC, entsprechend anzupassen, ohne den MAC zu kennen.
  • Um diese Sicherheitslücke zu schließen, wird die Nachricht M vor der CRC Berechnung transformiert. Diese Transformation der Nachricht M in eine transformierte Nachricht TM wird unter Auswertung des MACs durchgeführt, der ja einem potentiellen Angreifer nicht bekannt ist. Ein Angreifer könnte allenfalls versuchen, den MAC zu erraten. Für die Transformation der Nachricht M soll folgendes gelten:
    • • Die Eigenschaft eines CRC, dass einzelne Bitfehler vom Empfänger sicher erkannt werden können, muss beibehalten werden. Der Empfänger nutzt zur CRC Berechnung nur den empfangenen Datenblock 405 und den lokal berechneten MAC''.
    • • Die Transformation der Nachricht M kann einen oder mehrere „bit-lineare” Transformationsschritte enthalten, da „bit-lineare” Transformationen, z. B. XOR (Exclusive OR), die vorher genannte CRC Eigenschaft erhalten.
    • • Die transformierte Nachricht TM muss sich immer ändern, wenn sich ein einzelnes Bit der Nachricht M ändert. Das bedeutet, dass alle Bits der ursprünglichen Nachricht M in der transformierten Nachricht TM repräsentiert sein müssen.
    • • Die Transformation kann Bits hinzufügen, wenn dadurch die Berechnung vereinfacht wird.
    • • Der Transformationsalgorithmus muss einfach in Software und Hardware implementierbar sein.
  • Eine Transformation der Nachricht M, die die genannten Eigenschaften aufweist, ist zum Beispiel ein beliebige Umsortierung der Bits der Nachricht M. Eine besondere Form einer Umsortierung ist ein Verschieben von Bits um eine bestimmte Anzahl von Stellen. Dabei kann das Verschieben der Bits bezogen auf die Nachricht als gespeichertes Nachrichtendatenwort sowohl linksseitig als auch rechtzeitig umgesetzt werden. Linksseitig heißt, dass eine gewisse Anzahl von MSB (Most Significant Bits) aus dem Nachrichtendatenwort herausgeschoben werden. Bei einem zirkulären Verschieben, werden die an einem Ende des Nachrichtendatenwort herausgeschobenen Bits am anderen Ende des Nachrichtendatenworts als LSB (Least Significant Bits) wieder eingefügt. Ein zirkuläres Verschieben wird auch als Rotieren bzw. als Rotation bezeichnet. Falls in einem Ausführungsbeispiel ein Prozessor keine Rotation unterstützt, ist es auch möglich, diese mit Verschiebeoperationen und Bitoperationen nachzubilden,
  • Ein weiteres Beispiel für eine Transformation der Nachricht M nutzt ein erweitertes Nachrichtendatenwort. Bei dieser Art der Transformation wird nicht nur die Länge der Nachricht M, z. B. 32 Bits, für das Umsortieren der Bits verwendet. Beispielsweise kann ein erweitertes Nachrichtendatenwort im Vergleich zur Nachricht doppelt so viele Bitstellen aufweisen, z. B. 64 Bits. In diesem Fall kann z. B. ein linksseitiges Verschieben innerhalb des erweiterten Nachrichtendatenworts stattfinden, so dass die MSB der Nachricht M nach links verschoben werden und eine bekannte Folge von Datenbits in das Nachrichtendatenwort von Seiten des LSB (Least Significant Bits) eingefügt werden.
  • Damit die Umsortierung der Bits nicht leicht durch einen Angreifer nachgestellt werden kann, wird die Vorschrift für die Umsortierung durch den erzeugten MAC bestimmt. Für eine Nachricht M mit einer Länge von 32 Bits gibt es 32! = 2,6·1035 Möglichkeiten, die Bits der Nachricht M umzusortieren.
  • 5 zeigt einen Sender 502, der einen ersten Kodierer 330, ein Transformationselement 550 und einen zweiten Kodierer 331 umfasst. Der erste Kodierer 330 verwendet beispielsweise den im Sender 502 erzeugten Zeitwert Ts und einen nicht gezeigten Schlüssel, um mit einem ersten Kodieralgorithmus den MAC zu berechnen. Das Transformationselement 550 transformiert die Nachricht M zu einer transformierten Nachricht TM und ist zum Beispiel ein XOR (Exklusives OR), das die Nachricht M mit einem ersten Teil des erzeugten MAC (MAC_1) verbindet. Der erste Teil des erzeugten MAC (MAC_1) besteht beispielsweise aus den ersten 32 Bit des erzeugten MAC. Der zweite Kodierer 331 berechnet aus dem erzeugten MAC und der transformierten Nachricht TM mithilfe eines zweiten Kodieralgorithmus das Codewort R.
  • 6 zeigt einen Sender 600 mit einem ersten Kodierer 330, einem Transformationselement 650 und einem zweiten Kodierer 331. Der erste Kodierer liest den im Sender 600 erzeugten Zeitwert Ts und berechnet daraus unter Zuhilfenahme eine Schlüssels einen MAC. Das Transformationselement 650 transformiert die Nachricht M zu einer transformierten Nachricht TM. Das Transformationselement 650 enthält ein kombinatorische Element 651, zum Beispiel ein XOR, das die Nachricht M mit einem ersten Teil des MACs (MAC_1) verbindet und ein erstes Zwischenergebnis ZE1 erzeugt. In einem Beispiel dieser Ausführungsform weist die Nachricht M eine Länge von 32 Bits auf. Entsprechend ist der erste Teil des MACs (MAC_1) 32 Bit lang. Des Weiteren enthält das Transformationselement 650 ein Umsortierungsmodul 652, das ein Umsortieren der Bits des Zwischenergebnis ZE1 durchführt.
  • Die in 6 gezeigte Reihenfolge der Operationen, d. h. zunächst Durchführen der Funktion des kombinatorischen Elements 651 und anschließendes Durchführen der Funktion des Umsortierungsmoduls 652, ist nicht als einschränkend zu verstehen. So wirkt in einem weiteren Beispiel dieser Ausführungsform zunächst die Umsortierung auf die Nachricht M. Da Ergebnis wird dann dem kombinatorischen Element 651 zugeführt.
  • Die Nachricht M ist in einem Beispiel dieser Ausführungsform als eine Bitfolge mit einer Länge von 32 Bits dargestellt. Ein linksseitiges Verschieben um 5 Stellen führt dazu, dass die 5 MSB (Most Significant Bits) aus einem nicht dargestellten Nachrichtendatenwort geschoben werden und alle anderen Bits um 5 Positionen nach links verschoben werden. An die Stelle der 5 LSB (Least Significant Bits) werden die aus dem Nachrichtendatenwort herausgeschobenen 5 MSB entsprechend eingefügt. Dies ist eine Rotation oder zirkuläre Verschiebung. Die andere Möglichkeit besteht darin, ein z. B. 64 Bit breites Schieberegister mit der Nachricht M und weiteren 32 bekannten Bits zu initialisieren Wenn die Nachricht M auf der LSB Seite mit dem Schieberegister ausgerichtet ist, dann muss nach links geschoben werden. Bei diesem Schieben gehen 5 MSBs der Initialisierungsbits verloren, aber keine Bits der Nachricht M. Auf der LSB Seite werden entsprechend 5 Bits hinzugefügt.
  • Ein zweiter Teil des erzeugten MACs (MAC_2) bestimmt die Anzahl der Bits, um die das Zwischenergebnis ZE1 verschoben werden soll. In einem Beispiel dieser Ausführungsform ist MAC_2 4 Bits lang und definiert ein Verschieben des Zwischenergebnis ZE1 um beispielsweise 12 Bit. Die transformierte Nachricht TM und der aus dem Zeitwert Ts berechnete MAC werden anschließend vom zweiten Kodierer 331 mithilfe des zweiten Kodieralgorithmus zu einem Codewort R verarbeitet. Der zweite Kodieralgorithmus ist beispielsweise ein CRC.
  • Weitere Möglichkeiten für einfach in Software implementierbare Umsortieroperationen sind das Vertauschen von Bytes oder spezielle Bitoperationen. Zum Vertauschen von Bytes werden z. B. von Prozessoren zur Umrechnung von Little Endian zu Big Endian bzw. umgekehrt angeboten. Für spezielle Bitoperationen können die BSPLIT/BMERGE Instruktionen von Infineons TriCore Architektur als Beispiel dienen. Bei der BSPLIT Instruktion wird ein 32 Bit Wort in zwei 16 Bit Datenworte umgesetzt. Das eine 16 Bit Wort enthält alle ungeraden Bits des 32 Bit Worts, das andere die geraden. BMERGE ist die umgekehrte Operation.
  • Es ist insbesondere auch möglich, diese Operationen schrittweise hintereinander auszuführen, wobei die Operationen durch den MAC Wert gesteuert werden. Die 32 Bit Daten werden in einem weiteren Beispile in einem ersten Schritt – durch 5 MAC Bits gesteuert – um N Bits zirkulär geschoben. Danach erfolgt ein BSPLIT, und es wird durch ein weiteres MAC Bit gesteuert, in welcher Reihenfolge die geraden und die ungeraden Bits in einem 32 Bit Wort als Zwischenergebnis angeordnet werden. Diese 32 Bit Wort kann wiederum durch weitere 5 MAC Bits gesteuert zirkulär geschoben werden. Durch das Umsortieren in mehreren Schritten kann die Anzahl der möglichen Umsortierergebnisse stark erhöht werden. Beim zirkulären Schieben von 32 Bit Daten gibt es nur 32 Möglichkeiten, durch den BSPLIT Zwischenschritt und weiteres Schieben ergeben sich im vorhergehenden Beispiel 2048 Möglichkeiten.
  • In diesem Beispiel für schrittweises Umsortieren wurde darauf geachtet, dass keine Operation die Umsortierung einer vorhergehenden Operation wieder rückgängig macht. Wenn zum Beispiel in zwei Schritten geschoben wird, ohne den Zwischenschritt BSPLIT, dann gibt es auch weiterhin nur 32 Möglichkeiten, wie die Bits nach beiden Operationen angeordnet sind. Diese Anforderung hat für alle möglichen Ergebnisse einer Operation zu gelten. Im beschriebenen Beispiel wird deshalb nicht gesteuert, ob ein BSPLIT erfolgt, sondern wie die Daten nach dem BSPLIT wieder zu 32 Bit zusammengefügt werden. Wenn die Umsortierung durch Hardware erfolgt, können noch sehr viel mächtigere Umsortieralgorithmen umgesetzt werden.
  • 7 zeigt einen Sender 700, der gegenüber dem Sender 600 der 6 im zweiten Kodierer 331 ein CRC-Modul 653 und ein weiteres Umsortierungsmodul 654 enthält, das zum Beispiel ein Verschieben realisiert. Der zweite Kodierer 331 liest die transformierte Nachricht TM und den erzeugten MAC und berechnet zunächst mithilfe des CRC ein zweites Zwischenergebnis ZE2. Das zweite Zwischenergebnis ZE2 wird dann dem Umsortierungsmodul 654 zugeführt. Das Umsortierungsmodul 654 verschiebt beispielsweise das zweite Zwischenergebnis ZE2 um eine bestimmte Anzahl von Bits, die durch einen dritten Teil des MACs (MAC_3) bestimmt ist. In einem Beispiel dieser Ausführungsform ist MAC_3 4 Bits lang und definiert eine Verschiebung des zweiten Zwischenergebnisses ZE2 um 15 Bit. Das Resultat des zweiten Kodierer 331 ist das zweite Codewort R.
  • 8 zeigt einen Sender 800, der gegenüber dem Sender 700 der 7 einen erweiterten zweiten Kodierer 331 aufweist. Der zweite Kodierer 331 umfasst neben dem CRC-Modul 653 und dem Umsortierungsmodul 654 ein weiteres kombinatorische Element 655, das beispielsweise ein XOR (Exclusive-OR) sein kann. Der zweite Kodierer 331 liest die transformierte Nachricht TM und den erzeugten MAC und berechnet zunächst mithilfe des CRC-Moduls 653 ein zweites Zwischenergebnis ZE2. Das zweite Zwischenergebnis ZE2 wird dann beispielsweise um eine bestimmte Anzahl von Bits verschoben. Die Anzahl der zu verschiebenden Bits ist über den dritten Teil des MACs (MAC_3) bestimmt. Das Ergebnis des Umsortierungsmoduls 654 ist ein Zwischenergebnis ZE3, das durch das XOR-Element 655 mit einem vierten Teil des erzeugten MACs (MAC_4) verbunden wird.
  • Die in 8 gezeigte Reihenfolge der Operationen, z. B. zunächst das Durchführen der Transformation mit dem Transformationselement 650 durch die Funktion des kombinatorischen Elements 651 und anschließendes Durchführen der Funktion des Umsortierungsmoduls 652, ist nicht als einschränkend zu verstehen. Genauso ist auch die Reihenfolge der Funktionen im zweiten Kodierer 331 veränderbar. So könnte zum Beispiel erst eine Umsortierung durch ein Umsortierungsmodul 654 und eine anschließende CRC Berechnung durch einen CRC Block 653 durchgeführt werden.
  • Statt des in 8 gezeigten Zeitwerts Ts kann auch ein Zählerwert C verwendet werden. Der Empfänger 403 verfügt über eine Vorrichtung, zum Beispiel einen Zähler, der genau denselben Zählerwert C generieren kann, der im Sender 800 zur Berechnung des MAC verwendet wurde. Der Startwert des Zählers, der im Sender 800 zur Berechnung des MACs verwendet wird, kann beispielsweise dem Empfänger bekannt sein. Der Startwert kann in einem Beispiel dieser Ausführungsform auch im Sender 800 erzeugt werden und dem Empfänger am Anfang einer Serie von zu übertragenden Datenrahmen durch eine entsprechende Nachricht mitgeteilt werden.
  • Um nach größeren Übertragungsfehlern, wie z. B. nach vollständig verloren gegangene Datenrahmen, die Verbindung ohne Zurücksetzung des Gesamtsystems wieder aufzunehmen, wird der Zählerwert C zwischen Sender und Empfänger synchronisiert. Für einfache Sender ohne Rückkanal kann der Zählerwert zum Beispiel nicht nur am Anfang, sondern in bestimmten Abständen übertragen werden. Falls ein Rückkanal vorhanden ist, kann der Empfänger den Zählerstand wieder explizit anfordern.
  • 9 zeigt ein Übertragungssystem 900, das den Sender 800, einen Übertragungskanal 106 und einen Empfänger 903 aufweist. Der zu übertragende Datenrahmen 904 besteht nur aus dem Nutzdatenrahmen 904a und dem zweiten Codeblock 904b und weist somit gegenüber den bekannten Datenrahmen eine kleinere Länge auf. Der Vorteil der Übertragung eines Teiles des verwendeten Zählerwerts liegt darin, dass bei Verlust eines Datenrahmens, z. B. durch massive Störungen bei der Übertragung, der Empfänger 903 in der Lage ist, sich wieder mit dem Sender 800 zu synchronisieren. Wenn beispielsweise beim Empfang zweier aufeinanderfolgender Datenrahmen zwei Teile des Zählerwertes extrahiert werden, die sich um mehr als eins unterscheiden, z. B. c1 = 0101 und c2 = 0111, ist ein Datenrahmen verloren gegangen, wenn der im Sender 800 generierte Zählerwert C pro Datenrahmen um eins hochzählt. Diese Störsicherheit wird umso größer, je mehr Bits des Zählerwertes in den Nutzdatenblock aufgenommen werden.
  • Es sind auch Mischformen mit Zeit- und Zählerwert möglich, d. h. innerhalb eines bestimmten Zeitabschnitts ist der Zeitwert konstant, es wird aber ein zusätzlicher Zählerwert verwendet um verschiedene Datenrahmen innerhalb dieses Zeitabschnitts zu unterscheiden.
  • Es kann auch sinnvoll sein Teile des Zeitwerts zu übertragen, wenn die Uhren in Sender und Empfänger nicht genau synchronisiert sind und/oder es nicht ausgeschlossen werden kann, dass der Sender einen Datenrahmen erst so spät sendet, dass er beim Empfänger nicht mehr im Zeitabschnitt mit dem gleichen Zeitwert ankommt. Für diesen einfachen Fall ist es ausreichend, wenn das niederwertigste Zeitwertbit übertragen wird, damit der Empfänger entscheiden kann, ob der Datenrahmen im aktuellen oder im vorhergehenden Zeitabschnitt gesendet wurde.
  • Mit Hilfe der aus dem empfangenen Datenrahmen 905 extrahierten Nachricht M' und des selbst generierten Zählerwertes C berechnet der Empfänger 903 unter Verwendung des entsprechenden Schlüssels zunächst das erste Codewort MAC''. Aus dem berechneten MAC'', dem Zählerwert C und der Nachricht M' kann dann das zweite Codewort R' berechnet werden. Der hierzu verwendete Algorithmus entspricht dem, der im Sender 800 verwendet wurde. Das so erhaltene Codewort R'' wird mit dem aus dem empfangenen Codeblock 905b extrahierten Codewort R' verglichen. Wenn R' und R'' übereinstimmen, ist implizit auch die Richtigkeit des berechneten MAC' sichergestellt. Für die empfangene Nachricht M' ist mit dem beschriebenen Verfahren sowohl die Authentizität als auch die Integrität bewiesen, wobei ein relativ kurzer Datenrahmen 904 übertragen wurde.
  • Die Verwendung eines eindeutigen Zählerwerts C bei der Berechnung von MAC hat den Vorteil, dass ein böswilliger Angreifer, nicht einfach den Verkehr auf dem Übertragungskanal bzw. auf dem Bus 106 abhört und anschließend derartig manipuliert, dass ein abgehörter Datenrahmen immer wieder auf den Bus ausgegeben wird. Durch die Verwendung eines sich von Datenrahmen zu Datenrahmen ändernden Zählwertes C sind zwei aufeinanderfolgende Datenrahmen stets unterschiedlich.
  • 10 zeigt ein Bussystem 1000 als Beispiel für eine mögliche Implementierung des Systems zur Datenübertragung. Das Bussystem besteht aus einem Sender 800, der einen Datenrahmen 904 generiert, einem Bus 106 zum Übertragen des Datenrahmens 904 und einem Empfänger 903.
  • Der Sender 800 besteht aus einer ersten Einheit 1002a und einer Hardware-Schnittstelle 1002b. Die erste Einheit 1002a kann zum Beispiel eine Recheneinheit (CPU) sein, auf der ein Programm abläuft. Die Einheit 1002a berechnet zum Beispiel das erste Codewort MAC und zweite Codewort R. Die Einheit 1002a und/oder die Hardware-Schnittstelle 1002b generiert aus der Nachricht M und den Codewörtern MAC und R sowie ggf. des Zählerwertes C einen Datenrahmen 904. Die Hardware-Schnittstelle 1002b ist mit einem Bus 106 verbunden.
  • In einem nicht dargestelltes Ausführungsbeispiel wird ein DMA-Controllers (Direct Memory Access Controller) verwendet, der mit dem Bus verbunden ist und Daten unabhängig von einer CPU (Central Processing Unit) über den Bus transferieren kann. Wenn die Kodierungsalgorithmen blockbasiert arbeiten, ermöglicht die Verwendung eines DMA-Controllers eine besonders effiziente Implementierung.
  • Der Bus 106 ist beispielsweise ein CAN-Bus. Der Sender 800 überträgt einen Datenrahmen 904 über den Bus 106 an einen Empfänger 903.
  • Der Empfänger 903 kann ebenfalls aus zwei Einheiten 1003a und 1003b, bestehen. Die Einheit 1003a ist beispielsweise eine Recheneinheit (CPU) und die Einheit 1003b ist beispielsweise ein Hardware-Interface. Der Empfänger liest den empfangenen Datenblock 905 und berechnet daraus wieder die Nachricht M. Wenn zur Erzeugung des Codeblocks 904b ein CRC verwendet wird, dann ist ein Maß für die Unterschiedlichkeit zweier erzeugter Datenrahmen über die Hamming-Distanz mathematisch bestimmbar. Damit sind typische Sicherheitsanforderungen bei der Datenübertragung, z. B. bei der Übertragung über einen CAN-Bus im Kraftfahrzeug, erfüllt.
  • 11 zeigt die wesentlichen Schritte des beschriebenen Verfahrens zur Erzeugung eines relativ kurzen Datenrahmens. Nachdem im ersten Schritt 1101 einen Nutzdatenblock erzeugt wird, wird im darauffolgenden Schritt 1102 eine Codeblock erzeugt, bevor im Schritt 1103 aus dem Nutzdatenblock und dem Codeblock einen Datenrahmen erzeugt wird.
  • Das vorgestellte Verfahren kann auf einem Mikroprozessor implementiert werden. Der auf dem Prozessorkern (CPU) ablaufende Programmcode kann von Debuggern bzw. mit dem Mikroprozessor verbundenen Analysewerkzeugen untersucht werden. Das beschriebene Verfahren zur Erzeugung von Datenrahmen minimiert die erforderliche Übertragungsbandbreite insbesondere bei Netzen im Automobil. Es ermöglicht eine variable Datenrahmenlänge in Abhängigkeit der notwendigen Sicherheit. Damit lassen sich sowohl Anwendungen in einem kleinen Netzwerk, z. B. im Bereich eines On-Board-Netzwerks, als auch in einem größeren Netzwerk realisieren, wie es beispielsweise bei der Fahrzeug-zu-Fahrzeug-Kommunikation eingesetzt wird.
  • 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
    • DE 102010042539 B4 [0008, 0041]
    • WO 2013/128317 [0009]
  • Zitierte Nicht-Patentliteratur
    • CAN Standard 2.0b [0040]

Claims (18)

  1. Verfahren zum Erzeugen eines Datenrahmens (404), der einen Nutzdatenblock und einen Codeblock enthält, mit folgenden Schritten: Erzeugen des Nutzdatenblocks (104a), wobei der Nutzdatenblock eine Nachricht (M) umfasst, Erzeugen des Codeblocks (304b) umfassend Berechnen eines ersten Codewortes (MAC) durch Kodieren eines ersten Datensatzes mittels eines ersten Kodieralgorithmus, Transformieren der Nachricht (M) in eine transformierte Nachricht (TM) unter Verwendung des ersten Codewortes (MAC), Berechnen eines zweiten Codewortes (R), wobei zur Berechnung des zweiten Codewortes (R) das erste Codewortes (MAC) und die transformierte Nachricht (TM) verwendet wird, wobei zur Berechnung des zweiten Codewortes ein zweiter Kodieralgorithmus verwendet wird dadurch gekennzeichnet, dass der Datenrahmen (404) das zweite Codewort aber nicht das erste Codewort umfasst.
  2. Verfahren nach Anspruch 1, wobei der erste Datensatz die Nachricht (M) umfasst.
  3. Verfahren nach Anspruch 1 oder 2, wobei der erste Datensatz einen Zählerwert (C) oder einen Zeitwert (Ts) umfasst
  4. Verfahren nach Anspruch 1–3, wobei das Erzeugen der transformierten Nachricht (TM) durch kombinatorische Verknüpfung der Nachricht (M) mit einem ersten Teil des ersten Kodeworts (MAC_1) realisiert wird.
  5. Verfahren nach Anspruch 1–3, wobei das Erzeugen der transformierten Nachricht (TM) folgende Schritte umfasst: Berechnen eines ersten Zwischenergebnisses durch kombinatorische Verknüpfung der Nachricht (M) mit einem ersten Teil des ersten Codeworts (MAC_1) und Umsortieren der Bits des ersten Zwischenergebnisses, wobei das Umsortieren durch einen zweiten Teil des ersten Codeworts (MAC_2) bestimmt wird und das Resultat der transformierten Nachricht (TM) entspricht.
  6. Verfahren nach Anspruch 5, wobei das Umsortieren durch eine Rotation erfolgt.
  7. Verfahren nach Anspruch 4–6, wobei die kombinatorische Verknüpfung eine XOR Verknüpfung ist.
  8. Verfahren nach Anspruch 1–7, wobei der zweite Kodieralgorithmus (321) eine CRC Berechnung beinhaltet.
  9. Verfahren nach Anspruch 8, wobei zur Berechnung des zweiten Codewortes der berechnete CRC umsortiert wird, wobei das Umsortieren durch einen dritten Teil des ersten Codeworts (MAC_3) bestimmt wird.
  10. Verfahren nach Anspruch 1–7, wobei die Berechnung des zweiten Codewortes (R) folgende Schritte umfasst: Berechnen eines zweiten Zwischenergebnisses (ZE2) durch Erzeugen eines CRC Codes auf Basis der transformierten Nachricht (TM) und des ersten Codeworts, Umsortieren des berechneten CRC zur Erzeugung eines dritten Zwischenergebnisses ZE3 und kombinatorisches Verknüpfen des dritten Zwischenergebnisses ZE3 mit einem vierten Teil des ersten Codeworts (MAC_4).
  11. Verfahren nach Anspruch 1–10, wobei das erste Codewort (MAC) ein CMAC oder AES oder MD5-Code ist.
  12. Verfahren zum Erzeugen eines übergeordneten Datenrahmens, der mindestens einen Datenrahmen (904) umfasst, der gemäß Anspruch 1–11 erzeugt ist.
  13. Sender, der dazu eingerichtet ist, einen Datenrahmen (904) zu erzeugen, der einen Nutzdatenrahmen und genau einen Codeblock enthält, umfassend Mittel zum Erzeugen des Nutzdatenblocks (904a), wobei der Nutzdatenblock eine Nachricht (M) umfasst, Mittel zum Erzeugen des Codeblocks (904b) umfassend, erste Kodiermittel (330) zum Erzeugen eines ersten Codewortes (MAC), die dazu eingerichtet sind, einen ersten Datensatzes zu verwenden, ein Transformationselement (650) zum Transformieren der Nachricht (M), zweite Kodiermittel (331) zum Erzeugen eines zweiten Codewortes (R), die dazu eingerichtet sind, das erste Codeworte und die transformierte Nachricht (TM) zu verwenden, dadurch gekennzeichnet, dass der Codeblock (904b) das zweite Codewort (R), aber nicht das erste Codewort (MAC) umfasst
  14. Sender gemäß Anspruch 13, wobei der erste Datensatz die Nachricht (M) und/oder einem Zähler- oder Zeitwert (C) umfasst.
  15. Sender gemäß Anspruch 14, wobei der Nutzdatenblock (904a) den Zähler- oder Zeitwert oder einen Teil des Zähler- oder Zeitwertes (c) enthält.
  16. Empfänger, der dazu eingerichtet ist, eine Nachricht (M) bereitzustellen, umfassend Mittel zum Empfangen eines Datenrahmens (905), wobei der Datenrahmen aus einem Nutzdatenblock (905a) und einem Codeblock (905b) besteht, wobei der Nutzdatenblock eine Nachricht (M) enthält, die aus dem Nutzdatenblock extrahierbar ist und der Codeblock ein extrahierbares zweites Codewort (R') enthält, Mittel zum Erzeugen eines ersten Codewortes (MAC'') unter Verwendung eines ersten Datensatzes, wobei zur Berechnung des ersten Codewortes (MAC'') ein erster Kodieralgorithmus (330) verwendet wird, Mittel (650) zum Transformieren der Nachricht (M) zu einer transformierten Nachricht (TM), Mittel zum Erzeugen eines internen zweiten Codewortes (R'') unter Verwendung des ersten Codewortes und der transformierten Nachricht (TM), wobei zur Berechnung des internen zweiten Codewortes ein zweiter Kodieralgorithmus (331) verwendet wird, dadurch gekennzeichnet, dass die Nachricht (M) als authentisch und integer gilt, wenn das interne zweite Codewortes mit dem extrahierbaren zweiten Codeworte übereinstimmt.
  17. Bussystem umfassend, einen Sender gemäß Anspruch 13–15 zum Senden eines Datenrahmens über einen Bus, wobei der Datenrahmen eine zu übertragene Nachricht (M) umfasst und einen Empfänger gemäß Anspruch 16 zum Empfangen des Datenrahmens.
  18. Mikroprozessor, der dazu eingerichtet ist, ein Verfahren gemäß Anspruch 1–12 durchzuführen.
DE102014007820.5A 2014-06-02 2014-06-02 Datenrahmen für geschützte Datenübertragungen Active DE102014007820B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102014007820.5A DE102014007820B4 (de) 2014-06-02 2014-06-02 Datenrahmen für geschützte Datenübertragungen
US14/728,323 US10009357B2 (en) 2014-06-02 2015-06-02 Data frame for protected data transmissions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014007820.5A DE102014007820B4 (de) 2014-06-02 2014-06-02 Datenrahmen für geschützte Datenübertragungen

Publications (2)

Publication Number Publication Date
DE102014007820A1 true DE102014007820A1 (de) 2015-12-03
DE102014007820B4 DE102014007820B4 (de) 2017-03-02

Family

ID=54480990

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014007820.5A Active DE102014007820B4 (de) 2014-06-02 2014-06-02 Datenrahmen für geschützte Datenübertragungen

Country Status (2)

Country Link
US (1) US10009357B2 (de)
DE (1) DE102014007820B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020083960A1 (de) * 2018-10-26 2020-04-30 Robert Bosch Gmbh Teilnehmerstation für ein serielles bussystem und verfahren zur übertragung von daten mit manipulationsschutz in einem seriellen bussystem

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101572935B1 (ko) * 2014-10-02 2015-12-11 현대자동차주식회사 메시지 인증 코드 혼합을 통한 can 패킷 인증 방법 및 그 장치
KR101596753B1 (ko) * 2014-10-02 2016-02-23 현대자동차주식회사 메시지 인증 코드 분할을 통한 순차적 can 패킷 인증 방법 및 그 장치
US9756024B2 (en) * 2015-09-18 2017-09-05 Trillium Incorporated Computer-implemented cryptographic method for improving a computer network, and terminal, system and computer-readable medium for the same
FR3060148B1 (fr) * 2016-12-09 2021-07-23 Thales Sa Procede d'emission d'un message, procede de reception, dispositif d'emission, dispositif de reception et systeme de communication associes
CN111030962B (zh) * 2018-10-09 2023-03-24 厦门雅迅网络股份有限公司 车载网络入侵检测方法及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010042539B4 (de) 2010-10-15 2013-03-14 Infineon Technologies Ag Datensender mit einer sicheren, aber effizienten Signatur
WO2013128317A1 (en) 2012-03-01 2013-09-06 Nds Limited Anti-replay counter measures

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305084B2 (en) * 2002-07-24 2007-12-04 Qualcomm Incorporated Fast encryption and authentication for data processing systems
US7243289B1 (en) * 2003-01-25 2007-07-10 Novell, Inc. Method and system for efficiently computing cyclic redundancy checks
US20130077641A1 (en) * 2011-09-22 2013-03-28 Harley F. Burger, Jr. Systems, Circuits and Methods for Time Stamp Based One-Way Communications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010042539B4 (de) 2010-10-15 2013-03-14 Infineon Technologies Ag Datensender mit einer sicheren, aber effizienten Signatur
WO2013128317A1 (en) 2012-03-01 2013-09-06 Nds Limited Anti-replay counter measures

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CAN Standard 2.0b

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020083960A1 (de) * 2018-10-26 2020-04-30 Robert Bosch Gmbh Teilnehmerstation für ein serielles bussystem und verfahren zur übertragung von daten mit manipulationsschutz in einem seriellen bussystem
CN112913188A (zh) * 2018-10-26 2021-06-04 罗伯特·博世有限公司 用于串行总线系统的用户站和用于在串行总线系统中防操纵地传输数据的方法
US11876640B2 (en) 2018-10-26 2024-01-16 Robert Bosch Gmbh User station for a serial bus system, and method for transferring data with manipulation protection in a serial bus system
CN112913188B (zh) * 2018-10-26 2024-05-31 罗伯特·博世有限公司 用于串行总线系统的用户站和用于在串行总线系统中防操纵地传输数据的方法

Also Published As

Publication number Publication date
DE102014007820B4 (de) 2017-03-02
US20150350241A1 (en) 2015-12-03
US10009357B2 (en) 2018-06-26

Similar Documents

Publication Publication Date Title
DE102014007820B4 (de) Datenrahmen für geschützte Datenübertragungen
DE102010042539B4 (de) Datensender mit einer sicheren, aber effizienten Signatur
DE102020101358A1 (de) Selektive Echtzeit-Kryptographie in einem Fahrzeugkommunikationsnetz
EP3189629B1 (de) Verfahren zur seriellen übertragung eines rahmens über ein bussystem von einem sender zu mindestens einem empfänger und teilnehmerstation für ein bussystem
DE102009000869A1 (de) Verfahren und Vorrichtung zur manipulationssicheren Übertragung von Daten
DE102009002396A1 (de) Verfahren zum Manipulationsschutz eines Sensors und von Sensordaten des Sensors und einen Sensor hierzu
DE102016220895A1 (de) Erkennung von Manipulationen in einem CAN-Netzwerk
EP1686732B1 (de) Verfahren und System zur Übertragung von Telegrammen
EP3412018B1 (de) Verfahren zum austausch von nachrichten zwischen sicherheitsrelevanten vorrichtungen
EP3949263A1 (de) Vorrichtungen und verfahren zum erzeugen und zur authentisierungsprüfung mindestens eines in einem bus-system (bu) insbesondere eines kraftfahrzeugs zu übertragenden datenpakets
DE102012210327A1 (de) Verfahren zum Übertragen von Nachrichten in einem Kommunikationssystem, insbesondere eines Fahrzeugs
DE102014001270A1 (de) Verfahren und System zur Berechnung von Codewörtern für geschützte Datenübertragungen
EP2695324B1 (de) Verfahren zum aussenden von nachrichten mit integritätsschutz
EP2396983B1 (de) Verfahren und System zum sicheren Übertragen einer Nachricht
DE102012208836A1 (de) Verfahren und Vorrichtung zur Erzeugung kryptographisch geschützter redundanter Datenpakete
DE102018203072A1 (de) Verfahren und Anordnung zum gesicherten Übertragen einer Nachricht von einer Sendeeinrichtung zu einer Empfangseinrichtung
EP3744021B1 (de) Teilnehmerstation für ein serielles kommunikationsnetzwerk und verfahren zur korrektur von einzelfehlern in einer nachricht eines seriellen kommunikationsnetzwerks
DE102016225436A1 (de) Sensor zum Erfassen von Messwerten, Verfahren, Vorrichtung und computerlesbares Speichermedium mit Instruktionen zur Verarbeitung von Messwerten eines Sensors
DE102004033393B4 (de) Verfahren zur Authentifizierung wenigstens einer ersten mobilen Sende- und Empfangseinrichtung an wenigstens einer Basisstation
WO2019020549A1 (de) Verfahren und vorrichtung zum schützen eines feldbusses
WO2018091703A1 (de) Verfahren und vorrichtung zum sichern einer elektronischen datenübertragung
DE102016222599A1 (de) Verfahren zur Absicherung der Datenübertragung in einem Datenbus
DE10223217A1 (de) Verfahren und Anordnung zur Verschlüsselung bzw. Entschlüsselung von Datenpaketen in drahtlosen Netzwerken
DE102015217735A1 (de) Verfahren zum Betreiben einer primären Einheit
WO2021018697A1 (de) Übertragungsvorrichtung zum übertragen von daten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final