[go: up one dir, main page]

DE102021105402A1 - Datenverarbeitungsvorrichtung und verfahren zum übermitteln von daten über einen bus - Google Patents

Datenverarbeitungsvorrichtung und verfahren zum übermitteln von daten über einen bus Download PDF

Info

Publication number
DE102021105402A1
DE102021105402A1 DE102021105402.8A DE102021105402A DE102021105402A1 DE 102021105402 A1 DE102021105402 A1 DE 102021105402A1 DE 102021105402 A DE102021105402 A DE 102021105402A DE 102021105402 A1 DE102021105402 A1 DE 102021105402A1
Authority
DE
Germany
Prior art keywords
bus
masking information
pair
masking
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021105402.8A
Other languages
English (en)
Inventor
Ning Chen
Jens Rosenbusch
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 DE102021105402.8A priority Critical patent/DE102021105402A1/de
Priority to US17/684,634 priority patent/US11995015B2/en
Publication of DE102021105402A1 publication Critical patent/DE102021105402A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • 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/3271Cryptographic 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 challenge-response
    • H04L9/3278Cryptographic 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 challenge-response using physically unclonable functions [PUF]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • 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/04Masking or blinding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

Gemäß einer Ausführungsform wird eine Datenverarbeitungsvorrichtung bereitgestellt, aufweisend eine PUF-Quelle, die eingerichtet ist, PUF-Werte zu erzeugen, einen Bus, eine Mehrzahl von Buszugriffskomponenten, die eingerichtet sind, auf den Bus zuzugreifen und eine Maskierungsinformationserzeugungsschaltung, die eingerichtet ist, unter Verwendung mindestens eines von der PUF-Quelle erzeugten PUF-Werts eine Maskierungsinformation für mindestens ein Paar von Buszugriffskomponenten zu erzeugen und an die Buszugriffskomponenten des mindestens einen Paars zu übermitteln. Das Paar ist derart eingerichtet, dass eine Buszugriffskomponente zum Senden von Daten an die andere Buszugriffskomponente des Paares die Daten vor ihrem Senden über den Bus gemäß der für das Paar erzeugten Maskierungsinformation maskiert und die andere Buszugriffskomponente die über den Bus empfangenen Daten gemäß der für das Paar erzeugten Maskierungsinformation demaskiert.

Description

  • Ausführungsbeispiele betreffen allgemein Datenverarbeitungsvorrichtungen und Verfahren zum Senden von Daten über einen Bus.
  • In einer elektronischen Datenverarbeitungsvorrichtung wie beispielsweise einem Mikrocontroller kommunizieren Komponenten typischerweise über einen gemeinsamen Bus. Da bei einem erfolgreichen Angriff auf den Bus durch einen Angreifer bei solch einer Architektur potentiell die Vertraulichkeit von innerhalb jedes Paars von Komponenten ausgetauschten Daten gefährdet ist, sind Mechanismen wünschenswert, die die Vertraulichkeit von über einen Bus ausgetauschten Daten sicherstellen, wenn ein Angreifer Zugriff auf den Bus erlangt.
  • Gemäß einer Ausführungsform wird eine Datenverarbeitungsvorrichtung bereitgestellt, aufweisend eine PUF(Physical Unclonable Function)-Quelle, die eingerichtet ist, PUF-Werte zu erzeugen (z.B. aus Anfangswerten eines SRAMs oder aus Abtastwerten eines Ringoszillators), einen Bus, eine Mehrzahl von Buszugriffskomponenten, die eingerichtet sind, auf den Bus zuzugreifen, und eine Maskierungsinformationserzeugungsschaltung, die eingerichtet ist, unter Verwendung mindestens eines von der PUF-Quelle erzeugten PUF-Werts eine Maskierungsinformation für mindestens ein Paar von Buszugriffskomponenten zu erzeugen und an die Buszugriffskomponenten des mindestens einen Paars zu übermitteln. Das mindestens eine Paar von Buszugriffskomponenten ist derart eingerichtet, dass eine Buszugriffskomponente zum Senden von Daten an die andere Buszugriffskomponente des Paares die Daten vor ihrem Senden über den Bus gemäß der für das Paar erzeugten Maskierungsinformation maskiert und die andere Buszugriffskomponente die über den Bus empfangenen Daten gemäß der für das Paar erzeugten Maskierungsinformation demaskiert.
  • Gemäß einer weiteren Ausführungsform wird ein Verfahren zum Übermitteln von Daten über einen Bus gemäß der oben beschriebenen Ausführungsform bereitgestellt.
  • Die Figuren geben nicht die tatsächlichen Größenverhältnisse wieder, sondern sollen dazu dienen, die Prinzipien der verschiedenen Ausführungsbeispiele zu illustrieren. Im Folgenden werden verschiedene Ausführungsbeispiele mit Bezug auf die folgenden Figuren beschrieben.
    • 1 zeigt eine Datenverarbeitungsvorrichtung.
    • 2 zeigt eine Datenverarbeitungsvorrichtung mit einer Busarchitektur gemäß einem ersten Ausführungsbeispiel.
    • 3 veranschaulich ein Scrambeln von zu sendenden Daten.
    • 4 zeigt eine Datenverarbeitungsvorrichtung mit einer Busarchitektur gemäß einem zweiten Ausführungsbeispiel.
    • 5 zeigt eine Datenverarbeitungsvorrichtung mit einer Busarchitektur gemäß einem dritten Ausführungsbeispiel.
    • 6 zeigt eine Datenverarbeitungsvorrichtung gemäß verschiedenen Ausführungsformen.
    • 7 zeigt ein Ablaufdiagramm, das ein Verfahren zum Senden von Daten über einen Bus veranschaulicht.
  • Die folgende detaillierte Beschreibung bezieht sich auf die beiliegenden Figuren, die Details und Ausführungsbeispiele zeigen. Diese Ausführungsbeispiele sind so detailliert beschrieben, dass der Fachmann die Erfindung ausführen kann. Andere Ausführungsformen sind auch möglich und die Ausführungsbeispiele können in struktureller, logischer und elektrischer Hinsicht geändert werden, ohne vom Gegenstand der Erfindung abzuweichen. Die verschiedenen Ausführungsbeispiele schließen sich nicht notwendig gegenseitig aus, sondern es können verschiedene Ausführungsformen miteinander kombiniert werden, so dass neue Ausführungsformen entstehen. Im Rahmen dieser Beschreibung werden die Begriffe „verbunden“, „angeschlossen“ sowie „gekoppelt“ verwendet zum Beschreiben sowohl einer direkten als auch einer indirekten Verbindung, eines direkten oder indirekten Anschlusses sowie einer direkten oder indirekten Kopplung.
  • 1 zeigt eine Datenverarbeitungsvorrichtung 100.
  • Die Datenverarbeitungsvorrichtung 100 ist beispielsweise ein Mikrocontroller, z.B. ein Mikrocontroller oder eine MCU (Microcontroller Unit) für den Automobilbereich, aber auch für andere Anwendungen wie Luftfahrt oder Industrie. Die Datenverarbeitungsvorrichtung 100 kann aber auch eine andere Art von Datenverarbeitungsvorrichtung sein, z.B. ein Computer wie z.B. ein Desktop-Computer oder ein Laptop-Computer oder auch ein Smartphone oder Tablet.
  • Die Datenverarbeitungsvorrichtung 100 weist mehrere Komponenten 101 auf. Beispiele für die Komponenten 101 sind eine CPU, ein oder mehrere Cache-Speicher (z.B. ein Daten-Cache-Speicher und ein Instruktions-Cache-Speicher), eine DMA(Direct Memory Access)-Einheit, ein Flash-Speicher, ein SRAM (Static Random Access Memory), ein Debug/Trace-Modul oder eine Bridge (z.B. zu einem Peripherie-Bus).
  • Die Datenverarbeitungsvorrichtung 100 weist einen Bus 102 auf und die Komponenten 101 sind eingerichtet, auf den Bus zuzugreifen, um Daten (in Form von Nachrichten) untereinander auszutauschen. Sie werden deshalb auch als Buszugriffskomponenten oder auch als jeweils als (Bus-)Endpunkt (EP) bezeichnet.
  • Gemäß einer Ausführungsform agiert bei einer Kommunikation zwischen zwei (also einem Paar von) Komponenten 101 über den Bus 102 eine der Komponenten als Master (Bus-Master) und die andere als Slave (Bus-Slave).
  • Bei vielen Anwendungen ist es wünschenswert, dass der Bus 102 sicher ist, sodass die Vertraulichkeit der über ihn ausgetauschten Daten geschützt ist.
  • Bilden die Komponenten 101 und der Bus 102 beispielsweise ein Bus-System (bzw. eine Bus-Architektur) mit gemeinsamen (shared) Bus mit M Master-Komponenten (i=[0...(M-1)]) und S Slave-Komponenten (j=[0...(S-1)]), so ist beispielsweise wünschenswert, dass jede Master-Komponente die Möglichkeit hat, die Vertraulichkeit von Daten zu schützen, wenn sie die Daten an eine bestimmte Untergruppe der Slave-Komponenten sendet und/oder von diesen empfängt.
  • Eine Gefahr für die Vertraulichkeit der Daten besteht beispielsweise darin, dass ein Angreifer den Bus hackt und Zugriff auf alle Businformationen erhält. Zum Schutz sollten die die vom Angreifer erbeuteten Informationen unbrauchbar sein oder die Daten verschleiert sein, z.B. mittels geeigneter Desinformationsmaßnahmen.
  • Eine Möglichkeit ist die kryptographische Verschlüsselung der auf dem Bus übertragenen Daten durch die sendende Komponente und die zugehörige kryptographische Entschlüsselung durch die empfangende Komponente. Dies ist unabhängig von der Busarchitektur und typischerweise nur auf bestimmte zu schützende Daten fokussiert. Die kryptographische Verschlüsselung und Entschlüsselung von Daten ist jedoch eine rechenintensive Aufgabe.
  • Gemäß verschiedenen Ausführungsformen werden zu sendende Daten vom Sender maskiert und vom Empfänger demaskiert. Die Maskierung und die Demaskierung (z.B. eine Exklusiv-ODER-Kombination mit einer Maske) können sehr schnell durchgeführt werden, z.B. ohne, dass sie eine zusätzliche Verzögerung des Busses (und damit ggf. eine entsprechende Änderung des Busprotokolls) verursachen.
  • Die Maske (oder allgemein die Maskierungsinformation) wird gemäß verschiedenen Ausführungsformen von einer Maskierungsinformationserzeugungsschaltung auf der Grundlage ein oder mehrerer PUF(Physical Unclonable Function)-Werten, die sie aus einer PUF-Quelle erhält (d.h. nicht-klonbarer Information) erzeugt. Die Maskierungsinformationserzeugungsschaltung kann die Maskierungsinformation beispielsweise individuell für jedes Master-Slave-Paar (d.h. Paar aus Master-Komponente und Slave-Komponente) oder auch individuell für jede Master-Komponente erzeugen und dient als in der Bus-Architektur globale Erzeugungs- und Verteilungsinstanz für die Maskierungsinformation. Die PUF-Quelle kann jegliche Art von PUF-Quelle für einen Chip sein, beispielsweise können die PUF-Werte aus Anfangszuständen des SRAMs nach einem Reset gegeben sein oder aus Abtastwerten eines Ringoszillators ermittelt werden.
  • Die Erzeugung der Maskierungsinformation auf der Grundlage von ein oder mehreren PUF-Werten bewirkt, dass die Maskierungsinformation individuell für den jeweiligen Mikrocontroller (z.B. Chip-individuell) ist und schützt davor, dass ein Angreifer den Maskierungsmechanismus hackt, wie es bei einem Maskierungsalgorithmus, der identisch auf mehreren Chips eingesetzt wird, der Fall sein kann.
  • Im Folgenden wird ein erstes Ausführungsbeispiel beschrieben, bei dem eine für alle Komponenten 101 gemeinsame Maskierungsinformation, im Folgenden auch als (Maskierungs-)Token bezeichnet, verwendet wird, das individuell für die Datenverarbeitungsvorrichtung (z.B. Mikrocontroller-individuell oder Chip-individuell) ist.
  • 2 zeigt eine Datenverarbeitungsvorrichtung 200 mit einer Busarchitektur gemäß einem ersten Ausführungsbeispiel.
  • Die Datenverarbeitungsvorrichtung 200 weist Datenverarbeitungskomponenten 201 (beispielsweise entsprechend den Datenverarbeitungskomponenten 101) und einen Bus 202 (beispielsweise entsprechend dem Bus 102) auf. Die Datenverarbeitungsvorrichtung 200 weist ferner eine Maskierungsinformationserzeugungsschaltung 203 auf.
  • Die Maskierungsinformationserzeugungsschaltung 203 empfängt PUF-Werte von einer PUF-Quelle 204 und erzeugt unter Verwendung der PUF-Werte Maskierungstoken, die individuell für die Datenverarbeitungsvorrichtung 200 ist.
  • Ein Maskierungstoken kann statisch sein und einmalig erzeugt werden und für die gesamte Lebensdauer einer Datenverarbeitungsvorrichtung (z.B. eines Chips) verwendet werden. Dies birgt jedoch das Risiko, dass ein Angreifer es durch Ausprobieren verschiedener Datenmuster in Erfahrung bringt.
  • Gemäß verschiedenen Ausführungsbeispielen erzeugt die Maskierungsinformationserzeugungsschaltung 203 deshalb dynamisch Maskierungstokens. Ein erzeugtes Maskierungstoken wird beispielsweise verwendet, bis es durch ein neu erzeugtes Maskierungstoken ersetzt wird. Beispielsweise kann die Maskierungsinformationserzeugungsschaltung 203 ein Maskierungstoken bei jedem Einschalt-Zurücksetzen (power-on reset) erzeugen. Maskierungsinformationserzeugungsschaltung 203 kann neue Maskierungstoken (die bestehende Maskierungstoken ersetzen) aber auch zwischen zwei Resets erzeugen, z.B. in zufälligen Zeitabständen, um zu verhindern, dass ein Angreifer durch statistische Analyse Information gewinnt.
  • Die Maskierungsinformationserzeugungsschaltung 203 verteilt ein erzeugtes Maskierungstoken an die Komponenten 201 über einen getrennten Kanal (z.B. eine getrennte Leitung) 205, d.h. sie verwendet nicht den Bus, um die Maskierungsinformation zu übertragen.
  • Gemäß einer Ausführungsform übermittelt die Maskierungsinformationserzeugungsschaltung 203 das Maskierungstoken individuell an jede Komponente.
  • Will eine der Komponenten 201 an eine andere der Komponenten 202 Daten senden, so scrambelt sie die Daten mittels des Maskierungstokens.
  • 3 veranschaulich ein Scrambeln von zu sendenden Daten.
  • Die sendende Komponente implementiert eine Transformationsfunktion (oder Maskierungsfunktion) 301, der sie das Maskierungstoken 302 und die zu sendenden (Roh-)Daten 303 zuführt und die gescrambelte Daten 304 daraus erzeugt. Dies erfolgt z.B. in der Datenübermittlungsphase des verwendeten Busprotokolls.
  • Ein Beispiel für die Transformationsfunktion ist eine Exklusiv-ODER-Kombination der Rohdaten 303 mit dem Maskierungstoken, wobei z.B. die Rohdaten in mehrere Worte zerlegt werden, die die Länge des Maskierungstokens (welches in diesem Fall ein Maskierungswort ist), haben. Es kann aber beispielsweise jegliche umkehrbare kombinatorische Logik für die Transformationsfunktion verwendet werden, die keine zusätzliche Verzögerung (von ein oder mehreren Bustakt-Zyklen) einfügt und somit das verwendete Bus-Protokoll nicht stört.
  • Erlangt ein Angreifer Zugriff auf den Bus, sieht er nur gescrambelte (d.h. maskierte) Daten. Kennt der Angreifer das Maskierungstoken nicht ist somit die Vertraulichkeit der Daten gewährleistet. Da das Maskierungstoken individuell für die Datenverarbeitungsvorrichtung ist und nicht klonbar ist, kann ein Angreifer das Maskierungstoken auch nicht für eine andere Datenverarbeitungsvorrichtung verwenden, selbst wenn es ihm gelingt, es auf einer Datenverarbeitungsvorrichtung herauszufinden.
  • In dem oben beschriebenen ersten Ausführungsbeispiel ist wie erläutert das Maskierungstoken für alle Buszugriffskomponenten gleich. Dies schafft, wie oben beschrieben, Schutz unter der Annahme, dass ein Angreifer alle Informationen direkt vom Bus abgreift. Allerdings ist der wahrscheinlichste Fall für einen erfolgreichen Angriff auf das Bussystem durch einen Angreifer der Fall, dass der Angreifer Zugriff, auf eine Komponente, z.B. ein Bus-Slave (d.h. eine Slave-Komponente) wie z.B. ein Debug/Trace-Modul. Ein Angreifer kann dann die Identifikation einer Master-Komponente verwenden, um Information auf dem Bus zu filtern (d.h. von dieser Master-Komponente gesendete Daten herausfiltern, da die Senderidentifikation typischerweise mitgeschickt wird). Ist die Transformationsfunktion transparent für das Busprotokoll zum DeScrambeln der empfangenen Daten in der Slave-Komponente ist die Vertraulichkeit der Daten verletzt, da die Daten zuerst descrambelt werden und dann in der Slave-Komponente (z.B. Debug/Trace-Modul) vorliegen.
  • Deshalb weist gemäß einer zweiten Ausführungsform die Maskierungsinformationserzeugungsschaltung 203 jedem Bus-Master (d.h. jeder Master-Komponente) ein anderes Maskierungstoken zu. Dies wird im Folgenden mit Bezug auf 4 erläutert.
  • 4 zeigt eine Datenverarbeitungsvorrichtung 400 mit einer Busarchitektur gemäß einem zweiten Ausführungsbeispiel.
  • Die Datenverarbeitungsvorrichtung 400 weist zwei Bus-Master 401 und einen Bus-Slave 402 (beispielsweise entsprechend den Datenverarbeitungskomponenten 101) und einen Bus 403 (beispielsweise entsprechend dem Bus 102) auf. Die Datenverarbeitungsvorrichtung 200 weist ferner eine Maskierungsinformationserzeugungsschaltung 404 und eine PUF-Quelle auf 405.
  • Wie mit Bezug auf 2 erläutert, erzeugt die Maskierungsinformationserzeugungsschaltung 404 Maskierungstoken aus PUF-Werten. Im Unterschied zum ersten Ausführungsbeispiel erzeugt die Maskierungsinformationserzeugungsschaltung 404 die Maskierungstoken jedoch individuell für die Bus-Master 401, d.h. versorgt die Bus-Master 401 mit unterschiedlichen Maskierungstokens. Soll der Bus-Slave 402 in der Lage sein, mit beiden Bus-Mastern 401 zu kommunizieren, so versorgt ihn die Maskierungsinformationserzeugungsschaltung 404 mit den Maskierungstoken beider Bus-Master.
  • Dies bedeutet, dass, um in der Lage zu sein, mit allen Bus-Mastern 401 zu kommunizieren (z.B. Daten von allen Bus-Mastern zu empfangen), der Bus-Slave 402 alle entsprechenden Maskierungstoken vorhalten muss. Dies kann je nach Bus eine beträchtliche Datenmenge sein. Beispielsweise können dies im schlimmsten Fall 64*64 bit für einen SRI(Shared Resource Interconnection Bus)-Slave und 64*32 bit für einen FPI (Flexible Peripheral Interconnect)-Slave sein, wenn angenommen wird, dass der Bus-Slave Kommunikation mit dem Maximum von 64 Bus-Mastern unterstützen soll. In der Praxis kann die Anzahl vorzuhaltender Maskierungstoken jedoch deutlich geringer sein, da oftmals nur bestimmte Bus-Master Zugriff auf bestimmte Bus-Slaves haben.
  • In Hinblick auf das oben beschriebene Szenario eines gehackten Debug/Trace-Moduls ist im Zusammenhang mit dem zweiten Ausführungsbeispiel zu beachten, dass wenn für einen bestimmten Bus-Master 401 kein Debugging durchzuführen ist, die Maskierungsinformationserzeugungsschaltung 404 auch das dem Bus-Master 401 zugeordnete (und von ihm zum Scrambeln von Daten verwendete) Maskierungstoken nicht an das Debug/Trace-Modul übermittelt. Damit ist das Debug/Trace-Modul nicht in der Lage, von diesem Bus-Master gesendete Daten zu descrambeln und der Angreifer hat keinen Zugriff auf vertrauliche Daten von diesem Bus-Master.
  • Im Allgemeinen kann die Maskierungsinformationserzeugungsschaltung 404 eingerichtet sein, ein einem Bus-Master zugeordnetes Maskierungstoken nicht an einen Bus-Slave zu senden, falls von dem Bus-Master keine Daten an den Bus-Slave zu senden sind. Die Maskierungsinformationserzeugungsschaltung 404 kann auch ein individuelles Maskierungstoken jedem Paar aus Bus-Master und Bus-Slave (oder allgemeiner jedes Paar von Buszugriffskomponenten) zuweisen. In diesem Fall kann die Maskierungsinformationserzeugungsschaltung 404 eingerichtet sein, das Maskierungstoken nur an die beiden Buszugriffskomponenten des Paars zu senden.
  • Damit kann ein Angreifer keine vertraulichen Informationen von einem Bus-Master empfangen, die nicht für den gehackten Bus-Slave bestimmt sind (selbst wenn der Angreifer beispielsweise die Identifikation des Bus-Masters manipuliert, für die der Bus-Slave Nachrichten vom Bus ausliest). Ebenso verhindert das einen Angriff, bei dem ein Angreifer durch Manipulation einer Zieladresse vertrauliche Daten an einen nicht vorgesehenen Empfänger (z.B. Bus-Slave) weiterleitet.
  • Wie im Zusammenhang mit dem ersten Ausführungsbeispiel erläutert kann die Maskierungsinformationserzeugungsschaltung 404 dynamisch (und insbesondere zwischen zwei Resets) neue Maskierungstoken erzeugen und verteilen und damit bestehende Maskierungstoken ersetzen. Dazu kann die Maskierungsinformationserzeugungsschaltung 404 dauerhaft in Betrieb sein und beispielsweise in zufälligen Zeitintervallen Maskierungstoken erzeugen und verteilen.
  • In einer solchen Ausführungsform ist die Maskierungsinformationserzeugungsschaltung 404 beispielsweise eingerichtet, die Maskierungstoken schnell zu verteilen (z.B. innerhalb eines Bus-Taktzyklus), damit gewährleistet ist, dass die Maskierungstoken für Paar von Buszugriffskomponenten den gleichen Stand haben (d.h. synchronisiert sind). Alternativ kann beispielsweise ein Mechanismus vorgesehen sein, der es einem Sender (d.h. einer sendenden Buszugriffskomponente) ermöglicht, den Empfänger (d.h. eine empfangenden Buszugriffskomponente) darüber zu informieren, dass der Sender ein neues Maskierungstoken verwendet hat.
  • Die Maskierungsinformationserzeugungsschaltung 404 braucht nicht gleichzeitig für alle Bus-Master Token zu erzeugen (wenn sie dies zwischen zwei Resets macht), sondern kann zufällig eine Teilmenge der Bus-Master auswählen, um einem Angreifer, der versucht, durch statistische Analysen Informationen zu gewinnen, Angriffe zu erschweren.
  • Die Verteilung von Maskierungstoken durch eine zentrale Maskierungsinformationserzeugungsschaltung 404 an Buszugriffskomponenten kann als Client/Server-Modell für die Verteilung von Maskierungstoken angesehen werden. Dies erfordert im Vergleich zu einem Peer-to-Peer-Modell für die Verteilung von Maskierungstoken weniger Verbindungen und Routing-Aufwand (linear im Vergleich zu quadratisch).
  • Bei der oben beschriebenen zweiten Ausführungsform können je nach Anwendungsfall folgende Merkmale störend sein:
    • • Viele Maskierungstoken (und damit eine hohe Datenmenge) werden verteilt und dynamisch aktualisiert und synchronisiert;
    • • Der Speicheraufwand in den Bus-Mastern und den Bus-Slaves kann wie oben beschrieben hoch sein (z.B. 64*64 bits bei 64 Bus-Mastern).
  • Die im Folgenden beschriebene dritte Ausführungsform basiert auf den Folgenden Beobachtungen:
    • • Es ist typischerweise nicht erforderlich, dass die gesamten gemäß dem Bus-Protokoll geschickten Datenworte verschlüsselt werden. Bei einem kryptographischen Schlüssel reicht es beispielsweise schon aus, ein einziges Bit zu invertieren, um den Schlüssel unbrauchbar zu machen. Für andere zu schützende Daten ist es auch eine Option, alle Bits bis auf ein bestimmtes Bit zu invertieren
    • • Es ist typischerweise nicht erforderlich, alle Bus-Master und alle Bus-Slaves zu jedem Zeitpunkt an dem Schutzmechanismus zu beteiligen.
  • Die dritte Ausführungsform basiert deswegen darauf, dass die Maskierungsinformationserzeugungsschaltung 404 hintereinander ein oder mehrere Bus-Master zufällig auswählt und jeweils ein oder mehrere zu invertierende Bitpositionen angibt (anstatt jedes Mal vollständige Maskierungswörter zu übermitteln).
  • 5 zeigt eine Datenverarbeitungsvorrichtung 500 mit einer Busarchitektur gemäß einem dritten Ausführungsbeispiel.
  • Die Datenverarbeitungsvorrichtung 500 weist zwei Bus-Master 501 und einen Bus-Slave 502 (beispielsweise entsprechend den Datenverarbeitungskomponenten 101) und einen Bus 503 (beispielsweise entsprechend dem Bus 102) auf. Die Datenverarbeitungsvorrichtung 500 weist ferner eine Maskierungsinformationserzeugungsschaltung 504 und eine PUF-Quelle 505 auf.
  • Die Maskierungsinformationserzeugungsschaltung 504 wählt zu einem Zeitpunkt zufällig einen Bus-Master 501 und eine zu invertierende Bit-Position (innerhalb der Nachrichten- oder Datenwortlänge des Bus-Protokolls) aus. Die zufällige Auswahl erfolgt abhängig von ein oder mehreren PUF-Werten (z.B. als Seed für einen Zufallszahlengenerator). Sie sendet dann als Maskierungstoken Token = = ( TAG_ID ,BIT_POSITION )
    Figure DE102021105402A1_0001

    an alle Buszugriffskomponenten (unabhängig ob Bus-Master oder Bus-Slave). Dabei ist TAG_ID die Identifikation des zufällig ausgewählten Bus-Masters und BIT_POSITION die zufällig ausgewählte Bitposition.
  • Ein sendender Bus-Master 501 reagiert auf den Empfang dieses Maskierungstokens derart, dass, wenn TAG_ID seine Identifikation ist, er in zu sendenden Datenwörtern das Bit an der BIT POSITION invertiert.
  • Ein Bus-Slave 502 reagiert auf den Empfang des Maskierungstokens derart, dass, wenn er eine Nachricht vom Bus 503 empfängt, und die TAG_ID aus dem Maskierungstoken mit der Senderidentifikation der Nachricht übereinstimmt, er die Nachricht (bzw. das darin enthaltene Datenwort oder die darin enthaltenden Datenwörter) an der BIT_POSITION invertiert.
  • Bei 64 Bus-Mastern in dem Bussystem und einer Datenwortlänge von 64Bit (aus denen das zu invertierende Bit ausgewählt werden kann) reichen zur Codierung des Tokens 12 bit.
  • Die Maskierungsinformationserzeugungsschaltung 504 erzeugt das Maskierungstoken wie oben beschrieben zufällig, so dass vermieden wird, dass ein Angreifer unter Verwendung statistischer Analyse Informationen gewinnen kann (z.B., wenn er Kenntnis darüber erlangt, welcher Bus-Master sendet).
  • Außerdem kann wie im zweiten Ausführungsbeispiel vermieden werden, dass ein Angreifer durch Hacken eines Bus-Slaves Zugriff auf Nachrichten (aller) Bus-Master bekommt, indem die Maskierungsinformationserzeugungsschaltung 504 entscheidet, an welche Bus-Slaves (oder allgemein welche Bus-Endpunkte) sie das Token sendet. Beispielsweise kann die Maskierungsinformationserzeugungsschaltung 504 eingerichtet sein, ein Maskierungstoken mit einer bestimmten TAG ID nicht an Bus-Slaves zu schicken, die nicht mit dem Bus-Master mit der TAG ID zu kommunizieren brauchen.
  • Die Maskierungsinformationserzeugungsschaltung 504 kann an diese Bus-Slaves (wie z.B. ein Debug/Trace-Modul, das für bestimmte Bus-Master kein Debugging durchzuführen braucht) absichtlich ungültige Token versenden (mit falscher Bit-Position für Bus-Master, die nicht mit dem Bus-Master mit der TAG_ID zu kommunizieren brauchen), sodass sie nicht in der Lage sind Daten von den Bus-Mastern zu demaskieren.
  • Bei der dritten Ausführungsform sind die Informationen auf dem Bus maskiert und bestimmte Bus-Slaves (wie z.B. ein Debug/Trace-Modul) können von der Demaskierung ausgeschlossen werden. Manipuliert ein Angreifer einen Bus-Slave, so dass er Nachrichten von einem bestimmten Bus-Master vom Bus liest, so hat der Bus-Slave (wenn er ausgeschlossen ist) nicht das korrekte Token, um die Nachrichten zu demaskieren. Ebenso kann ein Angreifer auch nicht Zugriff auf eine Nachricht erlangen, wenn er die Zieladresse einer Nachricht manipuliert.
  • In allen beschriebenen Ausführungsformen kann das Lesen von einem Bus-Slave durch einen Bus-Master (d.h. die Datenübertragung vom Bus-Slave zum Bus-Master) analog durchgeführt werden wie das Schreiben (d.h. die Datenübertragung vom Bus-Master zum Bus-Slave), wobei in der zweiten und der dritten Ausführungsform der Bus-Slave und der Bus-Master das Maskierungstoken verwenden, das dem Bus-Master zugeordnet ist. Die Maskierungsinformationserzeugungsschaltung 504 kann auch unterschiedliche Maskierungstoken für das Schreiben und das Lesen bereitstellen (und z.B. im Maskierungstoken angeben, ob es zum Schreiben oder zum Lesen anzuwenden ist). Die Maskierungsinformationserzeugungsschaltung 504 kann wie oben erläutert die Konsistenz und Synchronisation der Maskierungstoken im Sender und Empfänger sicherstellen.
  • Zusammenfassend wird gemäß verschiedenen Ausführungsformen eine Datenverarbeitungsvorrichtung bereitgestellt, wie sie in 6 dargestellt ist.
  • 6 zeigt eine Datenverarbeitungsvorrichtung 600 gemäß verschiedenen Ausführungsformen.
  • Die Datenverarbeitungsvorrichtung 600 weist eine PUF-Quelle 601 auf, die eingerichtet ist, PUF-Werte zu erzeugen.
  • Die Datenverarbeitungsvorrichtung 600 weist ferner einen Bus 602, eine Mehrzahl von Buszugriffskomponenten 603, die eingerichtet sind, auf den Bus 602 zuzugreifen, und eine Maskierungsinformationserzeugungsschaltung 604, auf die eingerichtet ist, unter Verwendung mindestens eines von der PUF-Quelle 601 erzeugten PUF-Werts eine Maskierungsinformation für mindestens ein Paar von Buszugriffskomponenten 603 zu erzeugen und an die Buszugriffskomponenten 603 des mindestens einen Paars zu übermitteln.
  • Für das mindestens eine Paar sind die Buszugriffskomponenten 603 derart eingerichtet, dass eine Buszugriffskomponente zum Senden von Daten an die andere Buszugriffskomponente des Paares die Daten vor ihrem Senden über den Bus gemäß der für das Paar erzeugten Maskierungsinformation maskiert und die andere Buszugriffskomponente die über den Bus empfangenen Daten gemäß der für das Paar erzeugten Maskierungsinformation demaskiert.
  • Gemäß verschiedenen Ausführungsformen wird in anderen Worten eine Information, die angibt, wie auf einem Bus zu übertragende Daten zu maskieren sind, von einer zentralen Einheit aus PUF-Werten ermittelt.
  • Gemäß verschiedenen Ausführungsformen wird so ein Chip-individuelles virtuelles privates Netzwerk zwischen Buszugriffs-Komponenten (Master-Komponenten und Slave-Komponenten) geschaffen.
  • Damit wird gemäß verschiedenen Ausführungsformen eine sichere Bus-Architektur ermöglicht, die gewährleistet, dass über den Bus übertragene Daten vertraulich bleiben, selbst wenn ein Angreifer Zugriff auf den Bus erlangt (d.h. selbst wenn er alle über den Bus übertragenen Information auslesen kann). Gemäß verschiedenen Ausführungsformen kann die Herangehensweise nahtlos in bestehende Bus-Protokolle integriert werden. Sie kann einfach implementiert wird und erfordert gemäß verschiedenen Ausführungsformen keine komplizierten Berechnungen.
  • 7 zeigt ein Ablaufdiagramm 700, das ein Verfahren zum Senden von Daten über einen Bus veranschaulicht.
  • In 701 werden ein oder mehrere PUF-Werte erzeugt.
  • In 702 wird unter Verwendung der ein oder mehreren PUF-Werte für mindestens ein Paar von Buszugriffskomponenten, die auf einen Bus zugreifen, Maskierungsinformation erzeugt.
  • In 703 wird die Maskierungsinformation an die Buszugriffskomponenten des mindestens einen Paars übermittelt.
  • In 704 werden Daten von einer Buszugriffskomponente des mindestens einen Paares an die andere Buszugriffskomponente des mindestens einen Paares gesendet, wobei die Buszugriffskomponenten die Daten vor ihrem Senden über den Bus gemäß der für das Paar erzeugten Maskierungsinformation maskiert und die andere Buszugriffskomponente die über den Bus empfangenen Daten gemäß der für das Paar erzeugten Maskierungsinformation demaskiert.
  • Im Folgenden werden verschiedene Ausführungsbeispiele angegeben.
  • Ausführungsbeispiel 1 ist eine Datenverarbeitungsvorrichtung wie oben mit Bezug auf 6 beschrieben.
  • Ausführungsbeispiel 2 ist die Datenverarbeitungsvorrichtung nach Ausführungsbeispiel 1, wobei die Maskierungsinformationserzeugungsschaltung eingerichtet ist, unter Verwendung mindestens eines von der PUF-Quelle erzeugten PUF-Werts eine Maskierungsinformation für jedes einer Vielzahl von Paaren von Buszugriffskomponenten zu erzeugen und für jedes Paar an die Buszugriffskomponenten des Paars zu übermitteln und wobei für jedes Paar die Buszugriffskomponenten derart eingerichtet sind, dass eine Buszugriffskomponente zum Senden von Daten an die andere Buszugriffskomponente des Paares die Daten vor ihrem Senden über den Bus gemäß der für das Paar erzeugten Maskierungsinformation maskiert und die andere Buszugriffskomponente die über den Bus empfangenen Daten gemäß der für das Paar erzeugten Maskierungsinformation demaskiert.
  • Ausführungsbeispiel 3 ist die Datenverarbeitungsvorrichtung nach Ausführungsbeispiel 2, wobei die für alle Paare der Vielzahl von Paaren erzeugte Maskierungsinformation identisch ist, wobei die für alle Paare der Vielzahl von Paaren erzeugte Maskierungsinformation unterschiedlich ist oder wobei die für zwei Paare erzeugte Maskierungsinformation identisch ist, wenn die zwei Paare in einer Buszugriffskomponente übereinstimmen und ansonsten unterschiedlich ist.
  • Ausführungsbeispiel 4 ist die Datenverarbeitungsvorrichtung nach Ausführungsbeispiel 2 oder 3, wobei jedes Paar aus einer Master-Bus-Komponente und aus einer Slave-Bus-Komponente besteht.
  • Ausführungsbeispiel 5 ist die Datenverarbeitungsvorrichtung nach einem der Ausführungsbeispiele 2 bis 4, wobei die für zwei Paare erzeugte Maskierungsinformation identisch ist, wenn die zwei Paare in der Bus-Master-Komponente übereinstimmen und ansonsten unterschiedlich ist.
  • Ausführungsbeispiel 6 ist die Datenverarbeitungsvorrichtung nach Ausführungsbeispiel 5, wobei die Maskierungsinformationserzeugungsschaltung eingerichtet ist, die Maskierungsinformation zusammen mit einer Identifikation der Bus-Master-Komponente rundzusenden, die anzeigt, dass die Maskierungsinformation für Paare erzeugt wurde, die die identifizierte Bus-Master-Komponente enthalten.
  • Ausführungsbeispiel 7 ist die Datenverarbeitungsvorrichtung nach Ausführungsbeispiel 5 oder 6, wobei jeder Bus-Slave eingerichtet ist, den Bus abzuhören, wenn ein Bus-Master Daten über den Bus sendet, eine Identifikation des Bus-Masters zu ermitteln und falls er über Maskierungsinformation verfügt, die für Paare von Buszugriffskomponenten erzeugt wurden, die den identifizierten Bus-Master enthalten, die Daten zu empfangen und gemäß der Maskierungsinformation zu demaskieren.
  • Ausführungsbeispiel 8 ist die Datenverarbeitungsvorrichtung nach einem der Ausführungsbeispiele 1 bis 7, wobei die Maskierungsinformationserzeugungsschaltung eingerichtet ist, die Maskierungsinformation über einem vom Bus gebildeten Kommunikationskanal separaten Kommunikationskanal zu übermitteln.
  • Ausführungsbeispiel 9 ist die Datenverarbeitungsvorrichtung nach einem der Ausführungsbeispiele 1 bis 8, wobei die Maskierungsinformationserzeugungsschaltung eingerichtet ist, die Maskierungsinformation über mindestens eine andere physikalische Leiterbahn als die für den Bus verwendeten Leiterbahnen zu übermitteln.
  • Ausführungsbeispiel 10 ist die Datenverarbeitungsvorrichtung nach einem der Ausführungsbeispiele 1 bis 9, wobei die Maskierungsinformation ein Maskierungswort aufweist.
  • Ausführungsbeispiel 11 ist die Datenverarbeitungsvorrichtung nach einem der Ausführungsbeispiele 1 bis 10, wobei Maskierungsinformation mindestens eine Datenwort-Bitposition angibt, die bei einer Maskierung und einer Demaskierung gemäß der Maskierungsinformation zu invertieren ist.
  • Ausführungsbeispiel 12 ist die Datenverarbeitungsvorrichtung nach Ausführungsbeispiel 11, wobei die Anzahl von Datenwort-Bitpositionen, die zu invertieren sind, für alle Paare von Buszugriffskomponenten gleich ist.
  • Ausführungsbeispiel 13 ist die Datenverarbeitungsvorrichtung nach Ausführungsbeispiel 11 oder 12, wobei die Maskierungsinformation genau eine Datenwort-Bitposition angibt, die bei einer Maskierung und einer Demaskierung gemäß der Maskierungsinformation zu invertieren ist.
  • Ausführungsbeispiel 14 ist ein Verfahren zum Übermitteln von Daten über einen Bus, wie mit Bezug auf 7 beschrieben.
  • Ausführungsbeispiel 15 ist das Verfahren nach Ausführungsbeispiel 14, wobei unter Verwendung mindestens eines erzeugten PUF-Werts eine Maskierungsinformation für jedes einer Vielzahl von Paaren von Buszugriffskomponenten erzeugt wird und für jedes Paar an die Buszugriffskomponenten des Paars übermittelt wird und wobei für jedes Paar eine Buszugriffskomponente zum Senden von Daten an die andere Buszugriffskomponente des Paares die Daten vor ihrem Senden über den Bus gemäß der für das Paar erzeugten Maskierungsinformation maskiert und die andere Buszugriffskomponente die über den Bus empfangenen Daten gemäß der für das Paar erzeugten Maskierungsinformation demaskiert.
  • Ausführungsbeispiel 16 ist das Verfahren nach Ausführungsbeispiel 15, wobei die für alle Paare der Vielzahl von Paaren erzeugte Maskierungsinformation identisch ist, wobei die für alle Paare der Vielzahl von Paaren erzeugte Maskierungsinformation unterschiedlich ist oder wobei die für zwei Paare erzeugte Maskierungsinformation identisch ist, wenn die zwei Paare in einer Buszugriffskomponente übereinstimmen und ansonsten unterschiedlich ist.
  • Ausführungsbeispiel 17 ist das Verfahren nach Ausführungsbeispiel 15 oder 16, wobei jedes Paar aus einer Master-Bus-Komponente und aus einer Slave-Bus-Komponente besteht.
  • Ausführungsbeispiel 18 ist das Verfahren nach einem der Ausführungsbeispiele 15 bis 17, wobei die für zwei Paare erzeugte Maskierungsinformation identisch ist, wenn die zwei Paare in der Bus-Master-Komponente übereinstimmen und ansonsten unterschiedlich ist.
  • Ausführungsbeispiel 19 ist das Verfahren nach Ausführungsbeispiel 18, wobei die Maskierungsinformation zusammen mit einer Identifikation der Bus-Master-Komponente rundgesendet wird, die anzeigt, dass die Maskierungsinformation für Paare erzeugt wurde, die die identifizierte Bus-Master-Komponente enthalten.
  • Ausführungsbeispiel 20 ist das Verfahren nach Ausführungsbeispiel 18 oder 19, wobei jeder Bus-Slave den Bus abhört, wenn ein Bus-Master Daten über den Bus sendet, eine Identifikation des Bus-Masters ermittelt und falls er über Maskierungsinformation verfügt, die für Paare von Buszugriffskomponenten erzeugt wurden, die den identifizierten Bus-Master enthalten, die Daten empfängt und gemäß der Maskierungsinformation demaskiert.
  • Ausführungsbeispiel 21 ist das Verfahren nach einem der Ausführungsbeispiele 14 bis 20, wobei die Maskierungsinformation über einem vom Bus gebildeten Kommunikationskanal separaten Kommunikationskanal übermittelt wird.
  • Ausführungsbeispiel 22 ist das Verfahren nach einem der Ausführungsbeispiele 14 bis 21, wobei die Maskierungsinformation über mindestens eine andere physikalische Leiterbahn als die für den Bus verwendeten Leiterbahnen übermittelt wird.
  • Ausführungsbeispiel 23 ist das Verfahren nach einem der Ausführungsbeispiele 14 bis 22, wobei die Maskierungsinformation ein Maskierungswort aufweist.
  • Ausführungsbeispiel 24 ist das Verfahren nach einem der Ausführungsbeispiele 14 bis 23, wobei Maskierungsinformation mindestens eine Datenwort-Bitposition angibt, die bei einer Maskierung und einer Demaskierung gemäß der Maskierungsinformation zu invertieren ist.
  • Ausführungsbeispiel 25 ist das Verfahren nach Ausführungsbeispiel 24, wobei die Anzahl von Datenwort-Bitpositionen, die zu invertieren sind, für alle Paare von Buszugriffskomponenten gleich ist.
  • Ausführungsbeispiel 26 ist das Verfahren nach Ausführungsbeispiel 24 oder 25, wobei die Maskierungsinformation genau eine Datenwort-Bitposition angibt, die bei einer Maskierung und einer Demaskierung gemäß der Maskierungsinformation zu invertieren ist.
  • Obwohl die Erfindung vor allem unter Bezugnahme auf bestimmte Ausführungsformen gezeigt und beschrieben wurde, sollte es von denjenigen, die mit dem Fachgebiet vertraut sind, verstanden werden, dass zahlreiche Änderungen bezüglich Ausgestaltung und Details daran vorgenommen werden können, ohne vom Wesen und Bereich der Erfindung, wie er durch die nachfolgenden Ansprüche definiert wird, abzuweichen. Der Bereich der Erfindung wird daher durch die angefügten Ansprüche bestimmt, und es ist beabsichtigt, dass sämtliche Änderungen, welche unter den Wortsinn oder den Äquivalenzbereich der Ansprüche fallen, umfasst werden.
  • Bezugszeichenliste
  • 100
    Datenverarbeitungsvorrichtung
    101
    Buszugriffskomponenten
    102
    Bus
    200
    Datenverarbeitungsvorrichtung
    201
    Buszugriffskomponenten
    202
    Bus
    203
    Maskierungsinformationserzeugungsschaltung
    204
    PUF-Quelle
    205
    vom Bus getrennter Kanal
    301
    Transformationsfunktion
    302
    Maskierungstoken
    303
    zu sendende Daten
    304
    gescrambelte Daten
    400
    Datenverarbeitungsvorrichtung
    401
    Bus-Master
    402
    Bus-Slave
    403
    Bus
    404
    Maskierungsinformationserzeugungsschaltung
    405
    PUF-Quelle
    500
    Datenverarbeitungsvorrichtung
    501
    Bus-Master
    502
    Bus-Slave
    503
    Bus
    504
    Maskierungsinformationserzeugungsschaltung
    505
    PUF-Quelle
    600
    Datenverarbeitungsvorrichtung
    601
    PUF-Quelle
    602
    Bus
    603
    Buszugriffskomponenten
    604
    Maskierungsinformationserzeugungsschaltung
    700
    Ablaufdiagramm
    701-704
    Verarbeitung

Claims (14)

  1. Datenverarbeitungsvorrichtung aufweisend: Eine PUF-Quelle, die eingerichtet ist, PUF-Werte zu erzeugen; Einen Bus; Eine Mehrzahl von Buszugriffskomponenten, die eingerichtet sind, auf den Bus zuzugreifen; Eine Maskierungsinformationserzeugungsschaltung, die eingerichtet ist, unter Verwendung mindestens eines von der PUF-Quelle erzeugten PUF-Werts eine Maskierungsinformation für mindestens ein Paar von Buszugriffskomponenten zu erzeugen und an die Buszugriffskomponenten des mindestens einen Paars zu übermitteln; wobei für das mindestens eine Paar die Buszugriffskomponenten derart eingerichtet sind, dass eine Buszugriffskomponente zum Senden von Daten an die andere Buszugriffskomponente des Paares die Daten vor ihrem Senden über den Bus gemäß der für das Paar erzeugten Maskierungsinformation maskiert und die andere Buszugriffskomponente die über den Bus empfangenen Daten gemäß der für das Paar erzeugten Maskierungsinformation demaskiert.
  2. Datenverarbeitungsvorrichtung nach Anspruch 1, wobei die Maskierungsinformationserzeugungsschaltung eingerichtet ist, unter Verwendung mindestens eines von der PUF-Quelle erzeugten PUF-Werts eine Maskierungsinformation für jedes einer Vielzahl von Paaren von Buszugriffskomponenten zu erzeugen und für jedes Paar an die Buszugriffskomponenten des Paars zu übermitteln; und wobei für jedes Paar die Buszugriffskomponenten derart eingerichtet sind, dass eine Buszugriffskomponente zum Senden von Daten an die andere Buszugriffskomponente des Paares die Daten vor ihrem Senden über den Bus gemäß der für das Paar erzeugten Maskierungsinformation maskiert und die andere Buszugriffskomponente die über den Bus empfangenen Daten gemäß der für das Paar erzeugten Maskierungsinformation demaskiert.
  3. Datenverarbeitungsvorrichtung nach Anspruch 2, wobei die für alle Paare der Vielzahl von Paaren erzeugte Maskierungsinformation identisch ist, wobei die für alle Paare der Vielzahl von Paaren erzeugte Maskierungsinformation unterschiedlich ist oder wobei die für zwei Paare erzeugte Maskierungsinformation identisch ist, wenn die zwei Paare in einer Buszugriffskomponente übereinstimmen und ansonsten unterschiedlich ist.
  4. Datenverarbeitungsvorrichtung nach Anspruch 2 oder 3, wobei jedes Paar aus einer Master-Bus-Komponente und aus einer Slave-Bus-Komponente besteht.
  5. Datenverarbeitungsvorrichtung nach einem der Ansprüche 2 bis 4, wobei die für zwei Paare erzeugte Maskierungsinformation identisch ist, wenn die zwei Paare in der Bus-Master-Komponente übereinstimmen und ansonsten unterschiedlich ist.
  6. Datenverarbeitungsvorrichtung nach Anspruch 5, wobei die Maskierungsinformationserzeugungsschaltung eingerichtet ist, die Maskierungsinformation zusammen mit einer Identifikation der Bus-Master-Komponente rundzusenden, die anzeigt, dass die Maskierungsinformation für Paare erzeugt wurde, die die identifizierte Bus-Master-Komponente enthalten.
  7. Datenverarbeitungsvorrichtung nach Anspruch 5 oder 6, wobei jeder Bus-Slave eingerichtet ist, den Bus abzuhören, wenn ein Bus-Master Daten über den Bus sendet, eine Identifikation des Bus-Masters zu ermitteln und falls er über Maskierungsinformation verfügt, die für Paare von Buszugriffskomponenten erzeugt wurden, die den identifizierten Bus-Master enthalten, die Daten zu empfangen und gemäß der Maskierungsinformation zu demaskieren.
  8. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1 bis 7, wobei die Maskierungsinformationserzeugungsschaltung eingerichtet ist, die Maskierungsinformation über einem vom Bus gebildeten Kommunikationskanal separaten Kommunikationskanal zu übermitteln.
  9. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1 bis 8, wobei die Maskierungsinformationserzeugungsschaltung eingerichtet ist, die Maskierungsinformation über mindestens eine andere physikalische Leiterbahn als die für den Bus verwendeten Leiterbahnen zu übermitteln.
  10. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1 bis 9, wobei die Maskierungsinformation ein Maskierungswort aufweist.
  11. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1 bis 10, wobei Maskierungsinformation mindestens eine Datenwort-Bitposition angibt, die bei einer Maskierung und einer Demaskierung gemäß der Maskierungsinformation zu invertieren ist.
  12. Datenverarbeitungsvorrichtung nach Anspruch 11, wobei die Anzahl von Datenwort-Bitpositionen, die zu invertieren sind, für alle Paare von Buszugriffskomponenten gleich ist.
  13. Datenverarbeitungsvorrichtung nach Anspruch 11 oder 12, wobei die Maskierungsinformation genau eine Datenwort-Bitposition angibt, die bei einer Maskierung und einer Demaskierung gemäß der Maskierungsinformation zu invertieren ist.
  14. Verfahren zum Übermitteln von Daten über einen Bus, aufweisend: Erzeugen von ein oder mehreren PUF-Werten; Erzeugen, unter Verwendung der ein oder mehreren PUF-Werts, einer Maskierungsinformation für mindestens ein Paar von Buszugriffskomponenten, die auf einen Bus zugreifen; Übermitteln der Maskierungsinformation an die Buszugriffskomponenten des mindestens einen Paars; Senden von Daten von einer Buszugriffskomponente des mindestens einen Paares an die andere Buszugriffskomponente des mindestens einen Paares, wobei die Buszugriffskomponenten die Daten vor ihrem Senden über den Bus gemäß der für das Paar erzeugten Maskierungsinformation maskiert und die andere Buszugriffskomponente die über den Bus empfangenen Daten gemäß der für das Paar erzeugten Maskierungsinformation demaskiert.
DE102021105402.8A 2021-03-05 2021-03-05 Datenverarbeitungsvorrichtung und verfahren zum übermitteln von daten über einen bus Pending DE102021105402A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102021105402.8A DE102021105402A1 (de) 2021-03-05 2021-03-05 Datenverarbeitungsvorrichtung und verfahren zum übermitteln von daten über einen bus
US17/684,634 US11995015B2 (en) 2021-03-05 2022-03-02 Data processing device and method for transmitting data over a bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021105402.8A DE102021105402A1 (de) 2021-03-05 2021-03-05 Datenverarbeitungsvorrichtung und verfahren zum übermitteln von daten über einen bus

Publications (1)

Publication Number Publication Date
DE102021105402A1 true DE102021105402A1 (de) 2022-09-08

Family

ID=82898103

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021105402.8A Pending DE102021105402A1 (de) 2021-03-05 2021-03-05 Datenverarbeitungsvorrichtung und verfahren zum übermitteln von daten über einen bus

Country Status (2)

Country Link
US (1) US11995015B2 (de)
DE (1) DE102021105402A1 (de)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006053918A1 (de) 2006-11-15 2008-05-21 Qimonda Ag Senden und Empfangen von Informationen
US20130061006A1 (en) 2011-09-01 2013-03-07 Elpida Memory, Inc. Data mask encoding in data bit inversion scheme
US20150195258A1 (en) 2012-09-28 2015-07-09 Fujitsu Limited Information processing apparatus and semiconductor apparatus
US20160323736A1 (en) 2015-04-15 2016-11-03 Melrok, Llc Secure broadcast systems and methods for internet of things devices
US20190306136A1 (en) 2017-12-07 2019-10-03 Karamba Security Ltd. End-to-end communication security
US20200007319A1 (en) 2018-06-27 2020-01-02 Karamba Security Cryptographic key management for end-to-end communication security

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5003593A (en) * 1989-06-05 1991-03-26 Motorola, Inc. Teleconferencing method for a secure key management system
US5367695A (en) * 1991-09-27 1994-11-22 Sun Microsystems, Inc. Bus-to-bus interface for preventing data incoherence in a multiple processor computer system
ATE192618T1 (de) * 1994-05-24 2000-05-15 Sony Corp Datenbuskommunikation
WO1996007256A1 (fr) * 1994-08-30 1996-03-07 Kokusai Denshin Denwa Co., Ltd. Systeme de certification
US7069590B1 (en) * 2000-02-17 2006-06-27 Microsoft Corporation System and method for protecting data streams in hardware components
US6703923B2 (en) * 2001-04-18 2004-03-09 Thomson Licensing S.A. Apparatus for providing security on a powerline-modem network
US7743115B2 (en) * 2002-02-27 2010-06-22 Motorola, Inc. Software content downloading methods in radio communication networks
WO2005004385A1 (ja) * 2003-06-30 2005-01-13 Fujitsu Limited 無線通信認証プログラムおよび無線通信プログラム
WO2006071380A2 (en) * 2004-11-12 2006-07-06 Pufco, Inc. Securely field configurable device
WO2006071741A2 (en) * 2004-12-23 2006-07-06 Conexant Systems, Inc. Systems and methods for the connection and remote configuration of wireless clients
WO2008033590A2 (en) * 2006-06-09 2008-03-20 Verisign, Inc. A method and apparatus to provide authentication and privacy with low complexity devices
US20080028226A1 (en) * 2006-07-31 2008-01-31 Brocker Matthew W System-on-a-chip and method for securely transferring data on a system-on-a-chip
US20080175190A1 (en) * 2007-01-08 2008-07-24 Freesystems Pte., Ltd. Multi-node media content distribution system
US8290150B2 (en) * 2007-05-11 2012-10-16 Validity Sensors, Inc. Method and system for electronically securing an electronic device using physically unclonable functions
US8379856B2 (en) * 2009-06-17 2013-02-19 Empire Technology Development Llc Hardware based cryptography
DE102009059893A1 (de) * 2009-12-21 2011-06-22 Siemens Aktiengesellschaft, 80333 Vorrichtung und Verfahren zum Absichern eines Aushandelns von mindestens einem kryptographischen Schlüssel zwischen Geräten
US8848905B1 (en) * 2010-07-28 2014-09-30 Sandia Corporation Deterrence of device counterfeiting, cloning, and subversion by substitution using hardware fingerprinting
US8516269B1 (en) * 2010-07-28 2013-08-20 Sandia Corporation Hardware device to physical structure binding and authentication
US8667265B1 (en) * 2010-07-28 2014-03-04 Sandia Corporation Hardware device binding and mutual authentication
US8711656B1 (en) * 2010-08-27 2014-04-29 Verifone Systems, Inc. Sonic fast-sync system and method for bluetooth
US8386990B1 (en) * 2010-12-07 2013-02-26 Xilinx, Inc. Unique identifier derived from an intrinsic characteristic of an integrated circuit
DE102011054410B4 (de) * 2011-10-12 2014-09-25 Infineon Technologies Ag Vorrichtung und Verfahren zur Erzeugung einer Bitfolge
US20130298211A1 (en) * 2012-04-03 2013-11-07 Verayo, Inc. Authentication token
US9742563B2 (en) * 2012-09-28 2017-08-22 Intel Corporation Secure provisioning of secret keys during integrated circuit manufacturing
US9197422B2 (en) * 2013-01-24 2015-11-24 Raytheon Company System and method for differential encryption
US20140270177A1 (en) * 2013-03-15 2014-09-18 Ernie Brickell Hardening inter-device secure communication using physically unclonable functions
KR102038964B1 (ko) * 2013-03-18 2019-11-26 삼성전자주식회사 어플리케이션 간의 상호 인증 방법 및 장치
US9225512B1 (en) * 2013-05-01 2015-12-29 Xilinx, Inc. Encryption and decryption using a physically unclonable function
EP2999156B1 (de) * 2013-05-15 2019-07-31 Mitsubishi Electric Corporation Vorrichtungsauthentizitätsbestimmungssystem und vorrichtungsauthentizitätsbestimmungsverfahren
JP6203093B2 (ja) * 2014-03-19 2017-09-27 株式会社東芝 通信システム、通信装置、通信方法およびプログラム
US9646178B2 (en) * 2014-10-15 2017-05-09 Empire Technology Development Llc Secure data storage based on physically unclonable functions
KR102201642B1 (ko) * 2014-11-28 2021-01-13 삼성전자주식회사 Puf 회로 및 그것의 키 등록 방법
US9722774B2 (en) * 2015-04-29 2017-08-01 Samsung Electronics Co., Ltd. Non-leaky helper data: extracting unique cryptographic key from noisy F-PUF fingerprint
US9875378B2 (en) * 2015-06-12 2018-01-23 QUALCOMOM Incorporated Physically unclonable function assisted memory encryption device techniques
US10044514B1 (en) * 2015-09-25 2018-08-07 Xilinx, Inc. Secure external key storage for programmable ICS
DE102015220224A1 (de) * 2015-10-16 2017-04-20 Volkswagen Aktiengesellschaft Verfahren zur geschützten Kommunikation eines Fahrzeugs
US20170132434A1 (en) * 2015-11-06 2017-05-11 Mentor Graphics Corporation Measure variation tolerant physical unclonable function device
US9495627B1 (en) * 2015-12-15 2016-11-15 International Business Machines Corporation Magnetic tunnel junction based chip identification
DE102018123103A1 (de) * 2017-10-13 2019-04-18 Samsung Electronics Co., Ltd. Halbleitervorrichtung, die Sicherheitsschlüssel erzeugt, Verfahren zum Erzeugen eines Sicherheitsschlüssels und Verfahren zum Registrieren des Sicherheitsschlüssels
US10868669B2 (en) * 2017-10-16 2020-12-15 Taiwan Semiconductor Manufacturing Company Ltd. Method for role-based data transmission using physically unclonable function (PUF)-based keys
US11044107B2 (en) * 2018-05-01 2021-06-22 Analog Devices, Inc. Device authentication based on analog characteristics without error correction
US10742406B2 (en) * 2018-05-03 2020-08-11 Micron Technology, Inc. Key generation and secure storage in a noisy environment
US20200195446A1 (en) * 2018-12-18 2020-06-18 Sri International System and method for ensuring forward & backward secrecy using physically unclonable functions
US11316687B2 (en) * 2019-03-04 2022-04-26 Cypress Semiconductor Corporation Encrypted gang programming
US11743058B2 (en) * 2020-03-05 2023-08-29 International Business Machines Corporation NVDIMM security with physically unclonable functions
JP7410771B2 (ja) * 2020-03-24 2024-01-10 株式会社東海理化電機製作所 認証システム及び認証方法
US11734459B2 (en) * 2020-08-05 2023-08-22 Analog Devices International Unlimited Company Monitoring a physical unclonable function
US20220292203A1 (en) * 2022-05-27 2022-09-15 Intel Corporation Technologies for device attestation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006053918A1 (de) 2006-11-15 2008-05-21 Qimonda Ag Senden und Empfangen von Informationen
US20130061006A1 (en) 2011-09-01 2013-03-07 Elpida Memory, Inc. Data mask encoding in data bit inversion scheme
US20150195258A1 (en) 2012-09-28 2015-07-09 Fujitsu Limited Information processing apparatus and semiconductor apparatus
US20160323736A1 (en) 2015-04-15 2016-11-03 Melrok, Llc Secure broadcast systems and methods for internet of things devices
US20190306136A1 (en) 2017-12-07 2019-10-03 Karamba Security Ltd. End-to-end communication security
US20200007319A1 (en) 2018-06-27 2020-01-02 Karamba Security Cryptographic key management for end-to-end communication security

Also Published As

Publication number Publication date
US20220283970A1 (en) 2022-09-08
US11995015B2 (en) 2024-05-28

Similar Documents

Publication Publication Date Title
DE102012209249B4 (de) Sicherheitsvorrichtung und Host-Vorrichtung zum Austausch gescrambelter Verschlüsselungsdaten
DE60217260T2 (de) Datenverarbeitungs- und Verschlüsselungseinheit
DE102013204530B4 (de) Einrichtung und Verfahren zum Verschlüsseln von Daten
EP1246043A2 (de) Verfahren zur Übertragung von Daten über einen Datenbus
DE10025626A1 (de) Verschlüsseln von abzuspeichernden Daten in einem IV-System
DE112005001654B4 (de) Verfahren zum Übermitteln von Direct-Proof-Privatschlüsseln an Geräte mittels einer Verteilungs-CD
DE102018202176B4 (de) Master-Slave-System zur Kommunikation über eine Bluetooth-Low-Energy-Verbindung
DE102017118164A1 (de) Kryptographische schaltung und datenverarbeitung
DE112018003506T5 (de) Verfahren und Systeme zur linearen Schlüsselvereinbarung mit Forward Secrecy unter Verwendung eines unsicheren gemeinsam genutzten Kommunikationsmediums
DE102015103251B4 (de) Verfahren und System zum Verwalten von Nutzerdaten eines Nutzerendgeräts
DE112020001061T5 (de) Verschlüsselte gang-programmierung
DE102019119831A1 (de) Verschlüsselungsschaltung zum Durchführen von virtuellen Verschlüsselungsoperationen
DE102016222523A1 (de) Verfahren und Vorrichtung zum Übertragen von Daten in einem Topic-basierten Publish-Subscribe-System
DE112021002864T5 (de) Sicheres laden von eingebetteten mikrosteuereinheiten-images
EP1290905A2 (de) Verfahren zur kryptografischen identifikation einer physikalischen einheit in einem drahtlosen telekommunikationsnetzwerk
EP3791534A2 (de) Verfahren zum sichern eines datenaustausches in einer verteilten infrastruktur
DE10232348A1 (de) Integrierte Halbleiterschaltung mit interner Busdatenübertragung und zugehöriges Datenübertragungsverfahren
DE102013101709A1 (de) Schaltkreis-Anordnung, Verfahren zum Bilden einer Schaltkreis-Anordnung und Verfahren zum Prüfen der Integrität
DE102021105402A1 (de) Datenverarbeitungsvorrichtung und verfahren zum übermitteln von daten über einen bus
DE102010009458A1 (de) Hardware-Einrichtung
DE102006011699B4 (de) Systeme und Verfahren zum Erzeugen von Zufallszahlverteilungen bei Vorrichtungen, die begrenzte Verarbeitungs- und Speicherfähigkeiten aufweisen
DE102011016106B4 (de) Verfahren zur vertraulichen Kommunikation zwischen und zur Authentifizierung von Knoten in Automatisierungsnetzen
DE112022000479T5 (de) Verschlüsselte datenübertragung durch verwenden von zählermodus-verschlüsselung und geheimschlüsseln
DE19914225A1 (de) Vorrichtung und Verfahren für die sichere elektronische Datenübertragung
EP2187282B1 (de) Verfahren zum Betreiben einer Anlage unter Verwendung von gegen unberechtigte Verwendung gesicherten Daten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication