DE102021117008A1 - Verfahren und steuergerät zum erzeugen eines zufallswerts unter verwendung eines microcontrollers - Google Patents

Verfahren und steuergerät zum erzeugen eines zufallswerts unter verwendung eines microcontrollers Download PDF

Info

Publication number
DE102021117008A1
DE102021117008A1 DE102021117008.7A DE102021117008A DE102021117008A1 DE 102021117008 A1 DE102021117008 A1 DE 102021117008A1 DE 102021117008 A DE102021117008 A DE 102021117008A DE 102021117008 A1 DE102021117008 A1 DE 102021117008A1
Authority
DE
Germany
Prior art keywords
value
binary
bits
random value
temperature
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
DE102021117008.7A
Other languages
English (en)
Inventor
Martin FRIEDBERGER
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.)
Lisa Draexlmaier GmbH
Original Assignee
Lisa Draexlmaier GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lisa Draexlmaier GmbH filed Critical Lisa Draexlmaier GmbH
Priority to DE102021117008.7A priority Critical patent/DE102021117008A1/de
Priority to PCT/EP2022/067337 priority patent/WO2023274872A1/de
Priority to CN202280045735.9A priority patent/CN117581219A/zh
Priority to EP22740788.9A priority patent/EP4363990A1/de
Publication of DE102021117008A1 publication Critical patent/DE102021117008A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Erzeugen eines Zufallswerts (100) unter Verwendung eines Microcontrollers (104), wobei ein analoges Analogtemperatursignal (110) eines internen Temperatursensors (106) des Microcontrollers (104) unter Verwendung eines internen Analog-Digital-Wandlers (108) des Microcontrollers (104) zu einem binären Binärtemperaturwert (112) digitalisiert wird, wobei der Zufallswert (100) aus dem Binärtemperaturwert (112) abgeleitet wird.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft ein Verfahren zum Erzeugen eines Zufallswerts unter Verwendung eines Microcontrollers sowie ein entsprechend konfiguriertes Steuergerät für ein Fahrzeug.
  • Stand der Technik
  • Die vorliegende Erfindung wird im Folgenden hauptsächlich in Verbindung mit Steuergeräten für Fahrzeuge beschrieben. Der hier vorgestellte Ansatz kann aber auch in jedem Bereich verwendet werden, in dem echte Zufallswerte benötigt werden.
  • Wenn ein Steuergerät mit einem Diagnosegerät verbunden wird, findet ein sogenannter Handshake statt. Während des Handshakes weist das Diagnosegerät beispielsweise unter Verwendung einer sogenannten Challenge und Response Routine seine Berechtigung zum Auslesen und/oder Konfigurieren des Steuergeräts nach, indem es auf eine zufällig gestellte Challenge des Steuergeräts eine korrekte Response zurücksendet. Um unzulässige Manipulationen zu verhindern, verweigert das Steuergerät Eingaben des Diagnosegeräts, wenn es eine inkorrekte Response erhält.
  • Wenn die Challenge aber unter Verwendung eines deterministisch erzeugten Zufallswerts generiert wird, ist die Challenge nicht vollkommen zufällig, da die deterministische Erzeugung des Zufallswerts bis zu einem gewissen Grad vorhersehbar ist.
  • Um tatsächlich zufällige Zufallswerte zu erzeugen, können Microcontroller eine spezialisierte Hardware aufweisen, die ausschließlich zum Zweck der Erzeugung von Zufallswerten verwendet wird.
  • Beschreibung der Erfindung
  • Eine Aufgabe der Erfindung ist es daher, ein verbessertes Verfahren zum Erzeugen eines Zufallswerts unter Verwendung eines Microcontrollers sowie ein verbessertes Steuergerät für ein Fahrzeug bereitzustellen. Eine Verbesserung kann hierbei beispielsweise eine Reduzierung von Kosten und eine erhöhte Zufälligkeit des Zufallswerts betreffen.
  • Die Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst. Vorteilhafte Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen, der Beschreibung und den begleitenden Figuren angegeben.
  • Eine deterministische Erzeugung von Zufallswerten kann nur pseudozufällig sein, da regelbasierte Algorithmen miteinander kombiniert werden, um die Zufallswerte durch mathematische Verknüpfung von Ergebnissen der Algorithmen zu generieren. Bis zu einem gewissen Grad sind die Ergebnisse daher vorhersehbar.
  • Bei dem hier vorgestellten Ansatz wird ein sich in geringem Maß ständig veränderndes zeitkontinuierliches und wertkontinuierliches analoges Signal digitalisiert. Da sich das analoge Signal ständig geringfügig ändert, springt auch der digitalisierte Wert mindestens jedes Mal, wenn die Änderung des analogen Signals größer als eine Digitalisierungsstufe der Digitalisierung ist. Der digitalisierte Wert springt damit zufällig.
  • Es wird ein Verfahren zum Erzeugen eines Zufallswerts unter Verwendung eines Microcontrollers vorgeschlagen, wobei ein analoges Analogtemperatursignal eines internen Temperatursensors des Microcontrollers unter Verwendung eines internen Analog-Digital-Wandlers des Microcontrollers zu einem binären Binärtemperaturwert digitalisiert wird, wobei der Zufallswert aus dem Binärtemperaturwert abgeleitet wird.
  • Weiterhin wird ein Steuergerät für ein Fahrzeug vorgeschlagen, wobei das Steuergerät einen Microcontroller mit einem internen Temperatursensor und einem internen Analog-Digital-Wandler aufweist, wobei das Steuergerät dazu konfiguriert ist, ein Verfahren gemäß dem hier vorgestellten Ansatz auszuführen.
  • Unter einem Zufallswert kann ein digitaler Wert verstanden werden. Der Zufallswert kann durch eine Abfolge von Bits repräsentiert sein. Der Zufallswert kann ein diskreter Wert mit festen Abstufungen sein. Der Zufallswert kann ein Binärwert sein. Ein Microcontroller kann als Chip beziehungsweise integrierte Schaltung bezeichnet werden. Der Microcontroller kann eine Vielzahl von Komponenten aufweisen, die in einem gemeinsamen Gehäuse vergossen sind. Dadurch sind die Komponenten vor Umwelteinflüssen geschützt. Ebenso sind die Komponenten vor Manipulationen geschützt. Unter den Komponenten kann ein regulärer Temperatursensor und ein Analog-Digital-Wandler für den Temperatursensor sein.
  • Der interne Temperatursensor kann eine Temperatur des Microcontrollers in einem analogen Analogtemperatursignal abbilden. Der Temperatursensor kann thermisch mit dem Gehäuse des Microcontrollers gekoppelt sein. Das Analogtemperatursignal kann ein elektrisches Signal sein. Beispielsweise kann eine von einem Thermoelement des Temperatursensors generierte elektrische Spannung die Temperatur repräsentieren. Ebenso kann ein elektrischer Stromfluss durch einen Heißleiter oder Kaltleiter des Temperatursensors die Temperatur repräsentieren. Der Temperatursensor kann ein normaler Bestandteil des Microcontrollers sein. Der Temperatursensor ist durch das Gehäuse des Microcontrollers vor Manipulationen geschützt.
  • Der Analog-Digital-Wandler kann das Analogtemperatursignal in einen Binärtemperaturwert digitalisieren, indem er das zeitkontinuierliche und wertkontinuierliche analoge Analogtemperatursignal in eine Folge von zeitdiskreten und wertdiskreten digitalen Binärtemperaturwerten umsetzt. Der Analog-Digital-Wandler kann ein normaler Bestandteil des Microcontrollers sein. Der Analog-Digital-Wandler ist durch das Gehäuse des Microcontrollers ebenfalls vor Manipulationen geschützt.
  • Der Binärtemperaturwert kann der Zufallswert sein, da sich der Binärtemperaturwert aufgrund des sich ständig geringfügig um einen Mittelwert ändernden Analogtemperatursignals ebenfalls ständig und nicht vorhersehbar ändert.
  • Der Zufallswert kann aus einem Rauschanteil des Binärtemperaturwerts abgeleitet werden. Der Temperatursensor kann aufgrund der chaotischen Wärmebewegung seiner Moleküle kein konstantes Analogtemperatursignal bereitstellen. Das Analogtemperatursignal ist also verrauscht. Durch die Digitalisierung weist der Binärtemperaturwert ein ebenso chaotisches Rauschen auf. Der Rauschanteil kann ein Änderungsumfang des Binärtemperaturwerts aufgrund des Rauschens des Analogtemperatursignals sein. Der Rauschanteil ist rein zufällig und nicht vorhersehbar.
  • Der Zufallswert kann aus Bits des Binärtemperaturwerts mit einer niedrigen Bitwertigkeit abgeleitet werden. Bits mit einer niedrigen Bitwertigkeit können als Least Significant Bits (LSB) bezeichnet werden und repräsentieren die kleinsten Sprünge der möglichen Auflösung eines Binärwerts. Da das Analogtemperatursignal sich ständig mit einem geringen Änderungsumfang um den Mittelwert ändert, ändern sich bei dem Binärtemperaturwert mit einer sehr hohen Wahrscheinlichkeit jeweils die Bits mit den niedrigen Bitwertigkeiten. Bits mit einer demgegenüber höheren Bitwertigkeit repräsentieren Sprünge der Auflösung, die größer als der Änderungsumfang des Analogtemperatursignals sind. Die Bits mit der höheren Bitwertigkeit ändern sich daher mit einer sehr viel geringeren Wahrscheinlichkeit.
  • Der Zufallswert kann aus den Bits mit den zwei niedrigsten Bitwertigkeiten abgeleitet werden. Die Sprünge der Auflösung der zwei Bits mit den niedrigsten Bitwertigkeiten liegen innerhalb des erwarteten Änderungsumfangs des Analogtemperatursignals. Die Bits mit den niedrigsten Bitwertigkeiten ändern sich damit mit einer sehr hohen Wahrscheinlichkeit völlig zufällig.
  • Der Zufallswert kann aus einer Abfolge von Binärtemperaturwerten abgeleitet werden. Die Binärtemperaturwerte unterscheiden sich mit einer hohen Wahrscheinlichkeit geringfügig voneinander. Die Unterschiede sind zufällig. Durch die Verwendung mehrerer Binärtemperaturwerte wird eine Vorhersagbarkeit des Zufallswerts reduziert, da sich die Zufälligkeiten kumulieren.
  • Pro Binärtemperaturwert kann je eine vorbestimmte Anzahl an Bits extrahiert werden. Der Zufallswert kann aus den extrahierten Bits zusammengesetzt werden. Die restlichen Bits der Binärtemperaturwerte können verworfen werden. Insbesondere können jeweils die Bits mit der niedrigen Bitwertigkeit extrahiert werden, da diese die höchste Zufälligkeit aufweisen. Die extrahierten Bits können aneinandergereiht werden und als die Bits des binären Zufallswerts verwendet werden.
  • Ein ältester Binärtemperaturwert der Abfolge von Binärtemperaturwerten kann verworfen werden, wenn ein neuer Binärtemperaturwert digitalisiert wird. Der neue Binärtemperaturwert kann zu der Abfolge hinzugefügt werden. Die extrahierten Bits des ältesten Binärtemperaturwerts können aus dem binären Zufallswert entfernt werden und an ihrer Stelle durch die extrahierten Bits des neuen Binärtemperaturwerts ersetzt werden. Alternativ können die Bits des neuen Binärtemperaturwerts immer an einer vordefinierten Stelle des binären Zufallswerts eingesetzt werden, wobei die verbleibenden Bits der anderen älteren Binärtemperaturwerte um entsprechend viele Stellen verschoben werden. Beispielsweise können die Bits des neuen Binärtemperaturwerts als die Bits mit den niedrigsten Bitwertigkeiten, die Bits mit den höchsten Bitwertigkeiten oder als Bits mit mittleren Bitwertigkeiten eingesetzt werden. Wenn die Bits des neuen Binärtemperaturwerts als die Bits mit mittleren Bitwertigkeiten eingesetzt werden, können die Bits der anderen älteren Binärtemperaturwerte jeweils in Richtung der höheren Bitwertigkeiten und in Richtung der niedrigeren Bitwertigkeiten verschoben werden. Dann werden jeweils zumindest das Bit mit der höchsten Bitwertigkeit und zumindest das Bit mit der niedrigsten Bitwertigkeit verworfen.
  • Der Zufallswert kann mit einer Wortlänge von 32 Bit bereitgestellt werden. Der Zufallswert kann beispielsweise aus je zwei Bits von 16 Binärtemperaturwerten zusammengesetzt werden. Alternativ können auch je vier Bits von acht Binärtemperaturwerten verwendet werden. Ebenso kann je ein Bit von 32 Binärtemperaturwerten verwendet werden.
  • Der Zufallswert kann unter Verwendung des Binärtemperaturwerts plausibilisiert werden. Wenn der Binärtemperaturwert auffällige Werte einnimmt, kann die Bereitstellung des Zufallswerts eingestellt werden, um eine Analyse der verwendeten Methode zum Erzeugen des Zufallswerts zu erschweren oder zu verhindern.
  • Der Zufallswert kann abgeleitet werden, wenn der Binärtemperaturwert innerhalb eines Temperaturtoleranzbereichs ist. Ein Temperaturtoleranzbereich kann zu tiefe Temperaturen und zu hohe Temperaturen ausschließen. Dadurch können Manipulationen beispielsweise durch ein Vereisen oder ein Überhitzen des Microcontrollers verhindert werden.
  • Mehrere Zufallswerte können zu einem Schlüssel zusammengesetzt werden. Ein Schlüssel kann zum Verschlüsseln und Entschlüsseln von Kommunikation verwendet werden. Ebenso kann der Schlüssel für die Challenge and Response Identifikation zwischen dem Steuergerät und dem Diagnosegerät verwendet werden. Der Schlüssel kann eine größere Wortlänge als der Zufallswert aufweisen, um eine unbefugte Entschlüsselung zu erschweren. Der Schlüssel kann beispielsweise mit einer Wortlänge von 128 Bit bereitgestellt werden. Durch 128 Bit Wortlänge kann ein unbefugtes Entschlüsseln stark erschwert werden.
  • Eine Identifikationsnummer des Microcontrollers kann in den Schlüssel integriert werden. Durch die Einbindung der Identifikationsnummer kann der Schlüssel dem Microcontroller zugewiesen werden. So kann beispielsweise das Diagnosegerät erkennen, welcher Microcontroller die Zufallswerte generiert hat und seine Antwort auf die Challenge and Response entsprechend anpassen.
  • Der Schlüssel kann zyklisch erneuert werden. Der Schlüssel kann regelmäßig erneuert werden. Durch Austauschen des Schlüssels kann die Kommunikation geschützt werden, auch wenn ein Schlüssel kompromittiert sein sollte.
  • Figurenliste
  • Nachfolgend wird ein vorteilhaftes Ausführungsbeispiel der Erfindung unter Bezugnahme auf die begleitende Figur erläutert. Es zeigt:
    • 1 ein Ablaufdiagramm eines Verfahrens zum Erzeugen eines Zufallswerts gemäß einem Ausführungsbeispiel.
  • Die Figur ist lediglich eine schematische Darstellung und dient nur der Erläuterung der Erfindung. Gleiche oder gleichwirkende Elemente sind durchgängig mit den gleichen Bezugszeichen versehen.
  • Detaillierte Beschreibung
  • 1 zeigt ein Ablaufdiagramm eines Verfahrens zum Erzeugen eines Zufallswerts 100 gemäß einem Ausführungsbeispiel. Das Verfahren wird in einem Steuergerät 102 eines Fahrzeugs ausgeführt. Das Steuergerät 102 weist einen Microcontroller 104 auf, der einen internen Temperatursensor 106 und einen internen Analog-Digital-Wandler 108 aufweist.
  • Der Temperatursensor 106 bildet eine Temperatur des Microcontrollers 104 in einem analogen elektrischen Signal ab. Das Signal wird hier als Analogtemperatursignal 110 bezeichnet. Das Analogtemperatursignal 110 kann als elektrischer Stromfluss und/oder elektrische Spannung vorliegen. Das Analogtemperatursignal 110 wird von dem Analog-Digital-Wandler 108 eingelesen. Der Analog-Digital-Wandler 108 digitalisiert das Analogtemperatursignal 110 und gibt einen binären Binärtemperaturwert 112 aus.
  • Die Temperatur des Microcontrollers 104 ändert sich je nach seiner Belastung. Dabei steigt oder fällt die Temperatur. Die Temperatur ist selten konstant. Selbst bei konstanter Temperatur schwankt das Analogtemperatursignal 110 mit einer sehr geringen Schwankungsbreite zufällig um einen Mittelwert. Anders ausgedrückt ist das Analogtemperatursignal verrauscht. Durch das sich im Wesentlichen andauernd ändernde Analogtemperatursignal 110 wird im Analog-Digital-Wandler 108 auch andauernd ein sich geringfügig, zufällig ändernder Binärtempertaturwert 112 digitalisiert. Der Zufallswert 100 wird bei dem hier vorgestellten Ansatz aus dem Binärtemperaturwert 112 abgeleitet.
  • In einem Ausführungsbeispiel wird nur ein Rauschanteil 114 des Binärtemperaturwerts 112 verwendet, um den Zufallswert 100 abzuleiten. Der Binärtemperaturwert 112 weist eine vordefinierte Wortlänge mit einer vorgegebenen Anzahl Bits 116 auf. Die Wortlänge bestimmt dabei eine Auflösung der Digitalisierung. Als Rauschanteil 114 werden in einem Ausführungsbeispiel die zwei Bits 116 mit der niedrigsten Bitwertigkeit verwendet. Diese zwei Bits 116 werden extrahiert und der Zufallswert 100 unter Verwendung der extrahierten Bits 116 abgeleitet.
  • In einem Ausführungsbeispiel wird eine Abfolge 118 von mehreren nacheinander digitalisierten Binärtemperaturwerten 112 verwendet, um den Zufallswert 100 zu generieren. Dazu wird aus jedem Binärtemperaturwert 112 jeweils zumindest ein Bit 116 des Binärtemperaturwerts 112 extrahiert. Die Bits 116 aller Binärtemperaturwerte 112 werden dann zu dem Zufallswert 100 zusammengesetzt.
  • In einem Ausführungsbeispiel werden pro Binärtemperaturwert 112 die zwei Bits 116 mit der niedrigsten Bitwertigkeit extrahiert und zu dem Zufallswert 100 zusammengesetzt. Dabei repräsentieren die Bits 116 in Abhängigkeit davon, an welcher Stelle des Zufallswerts 100 sie eingesetzt werden, mehrheitlich andere Bitwertigkeiten als in den zugrundeliegenden Binärtemperaturwerten 112.
  • In einem Ausführungsbeispiel werden von 16 Binärtemperaturwerten 112 je zwei Bits 116 extrahiert und zu einem 32-Bit Zufallswert 100 zusammengesetzt.
  • In einem Ausführungsbeispiel werden die Bits 116 der einzelnen Binärtemperaturwerte 112 nacheinander extrahiert. Wenn eine Anzahl neue Bits 116 aus einem neuen Binärtemperaturwert 112 extrahiert werden, wird eine entsprechende Anzahl alter Bits 116 aus dem vorherigen Zufallswert 100 entfernt und durch die neuen Bits 116 ersetzt. Damit ergibt sich bei jeder Extraktion von Bits 116 ein neuer Zufallswert 100.
  • In einem Ausführungsbeispiel werden jeweils die ältesten Bits 116 entfernt und durch die neuen Bits 116 ersetzt. Dabei können die neuen Bits 116 stellengleich eingesetzt werden, also an die gleiche Stelle des Zufallswerts 100, an der die ältesten Bits 116 entfernt worden sind. Alternativ können die Bits 116 in den Zufallswert 100 eingeschoben werden und ältere Bits 116 auf andere Stellen des Zufallswerts 100 verdrängen. Dabei werden die ältesten Bits 116 an einen Wortanfang und/oder ein Wortende des Zufallswerts 100 verdrängt und dort entfernt, wenn die neuen Bits 116 eingeschoben werden.
  • In einem Ausführungsbeispiel wird überwacht, ob sich der Binärtemperaturwert 112 innerhalb eines Toleranzbereichs befindet. Wenn der Binärtemperaturwert 112 den Toleranzbereich verlässt, beispielsweise wenn der Microcontroller 104 zu stark erwärmt oder abgekühlt wird, wird ein Fehlersignal 120 ausgegeben und die Ableitung des Zufallswerts 100 gestoppt. So können Manipulationen durch eine gezielte Wärmeeinwirkung oder Kälteeinwirkung verhindert werden.
  • In einem Ausführungsbeispiel wird der Zufallswert 100 plausibilisiert. Beispielsweise wird überwacht, ob sich der Zufallswert 100 über die Zeit ändert. Falls sich der Zufallswert 100 nicht ändert, wird das Fehlersignal 120 ausgegeben.
  • In einem Ausführungsbeispiel wird der Zufallswert zu einem Schlüssel 122 weiterverarbeitet. Der Schlüssel wird basierend auf dem Zufallswert 100 erzeugt. Dabei geht eine Seriennummer und/oder eine Identifikationsnummer 124 des Microcontrollers 104 in den Schlüssel 122 ein, um beispielsweise den erzeugten Schlüssel 122 zu dem Microcontroller 102 zuordnen zu können.
  • In einem Ausführungsbeispiel wird der Schlüssel 122 aus mehreren Zufallswerten 100 zusammengesetzt. Dabei kann beispielsweise für jeden abgeleiteten Zufallswert 100 ein neuer Schlüssel 122 erstellt werden, indem der jeweils älteste Zufallswert 100 durch den neuesten Zufallswert 100 ersetzt wird. Alternativ kann abgewartet werden, bis die erforderliche Anzahl an Zufallswerten 100 abgeleitet worden ist und dann der neue Schlüssel 122 erzeugt werden.
  • In einem Ausführungsbeispiel wird der Schlüssel 122 mit 128 Bit Wortlänge erzeugt. Dazu können beispielsweise die Identifikationsnummer 124 und zumindest ein Zufallswert 100 auf die 128 Bit komprimiert werden. Das Komprimieren kann beispielsweise unter Verwendung eines Miyaguchi-Preneel Algorithmus 130 erfolgen.
  • Der Schlüssel 122 kann dann weiterverwendet werden. Beispielsweise kann der Schlüssel 122 von einem Verschlüsselungsalgorithmus 128 verwendet werden, um eine zufällige Ausgabe 130 auszugeben. Dabei kann der Schlüssel 122 mit jeder Ausgabe 130 verändert werden. Der Schlüssel 122 kann auch unter Verwendung einer deterministisch erzeugten Zufallszahl 132 verändert werden. Die Zufallszahl 132 kann auch verwendet werden, um die Ausgabe 130 zu codieren. Wenn dann ein neuer Schlüssel 122 erzeugt worden ist, kann der alte Schlüssel 122 verworfen werden und durch den neuen Schlüssel 122 ersetzt werden.
  • Mit anderen Worten wird die Erzeugung von Zufallszahlen in Microcontrollern ohne dedizierter Hardware vorgestellt.
  • Für kryptografische Funktionen werden echte Zufallszahlen benötigt, beispielsweise als Seed für Challenge Response Verfahren. Üblicherweise werden diese in einem dedizierten Hardware-Modul erzeugt. Kleine Microcontroller bieten diese Funktion aus Kostengrunden nicht an, obwohl auch für deren Zielapplikationen ein immer höheres Maß an Sicherheit gefordert wird.
  • Bei dem hier vorgestellten Ansatz dient das thermische Rauschen des internen Temperatursensors als Entropiequelle für die Zufallszahlen. Dazu wird die Spannung an dem NTC (Heißleiter) über einen AD-Wandler digitalisiert, anschließend das Rauschen aus den Bits mit den niedrigen Bitwertigkeiten (LSBs) extrahiert und die Entropie durch eine Kompressionsfunktion erhöht.
  • Um die Datenrate zu erhöhen kann ein Pseudo Random Number Generator (PRNG) nachgeschaltet werden.
  • Das Verwenden der internen Temperatursensoren kann eine Manipulation von außen erschweren. Zwar kann die Temperatur von außen beeinflusst werden, was aber nicht eins zu eins auf das Rauschen übertragbar ist. Außerdem ist der Temperaturmesswert vorhanden und kann zur Plausibilisierung herangezogen werden.
  • Durch die Verwendung der internen Quelle wird die Manipulation von außen erschwert. Über den Analog-Digital-Converter (ADC) Treiber werden die Rohdaten der Microcontroller-Temperaturmessung sechzehn Mal in Folge ausgelesen und die zwei Least Significant Bits (LSBs) zu einem 32 Bit-Wert zusammengefügt. Mehrere 32 Bit-Werte werden zusammen mit einer Microcontroller (ECU)-individuellen ID (z.B. Seriennummer) mit Hilfe einer Miyaguchi-Preneel-Funktion komprimiert und so in einen 128 Bit Seed überführt.
  • Der Seed dient der Initialisierung eines Pseudo Random Number Generators (PRNG) auf Basis eines AES-128 Algorithmus, um höhere Datenraten zu erhalten. Der Integrity Monitor überwacht die Entropie der Quelle, um Fehler wie beispielsweise „stuck at low“ zu erkennen. Die Rückführung des internen Zustandes des Pseudo Random Number Generators (PRNG) ermöglicht ein zyklisches „Reseeden“, um die Entropie im Pseudo Random Number Generator (PRNG) aufrecht zu erhalten.
  • Da es sich bei der vorhergehend detailliert beschriebenen Vorrichtungen und Verfahren um Ausführungsbeispiele handelt, können sie in üblicher Weise vom Fachmann in einem weiten Umfang modifiziert werden, ohne den Bereich der Erfindung zu verlassen. Insbesondere sind die mechanischen Anordnungen und die Größenverhältnisse der einzelnen Elemente zueinander lediglich beispielhaft.
  • Bezugszeichenliste
  • 100
    Zufallswert
    102
    Steuergerät
    104
    Microcontroller
    106
    Temperatursensor
    108
    Analog-Digital-Wandler
    110
    Analogtemperatursignal
    112
    Bi närtem peraturwert
    114
    Rauschanteil
    116
    Bits
    118
    Abfolge
    120
    Fehlersignal
    122
    Schlüssel
    124
    Identifikationsnummer
    126
    Miyaguchi-Preneel Algorithmus
    128
    Verschlüsselungsalgorithmus
    130
    Ausgabe
    132
    Zufallszahl

Claims (14)

  1. Verfahren zum Erzeugen eines Zufallswerts (100) unter Verwendung eines Microcontrollers (104), wobei ein analoges Analogtemperatursignal (110) eines internen Temperatursensors (106) des Microcontrollers (104) unter Verwendung eines internen Analog-Digital-Wandlers (108) des Microcontrollers (104) zu einem binären Binärtemperaturwert (112) digitalisiert wird, wobei der Zufallswert (100) aus dem Binärtemperaturwert (112) abgeleitet wird.
  2. Verfahren gemäß Anspruch 1, bei dem der Zufallswert (100) aus einem Rauschanteil (114) des Binärtemperaturwerts (112) abgeleitet wird.
  3. Verfahren gemäß einem der vorhergehenden Ansprüche, bei dem der Zufallswert (100) aus Bits (116) des Binärtemperaturwerts (112) mit einer niedrigen Bitwertigkeit abgeleitet wird.
  4. Verfahren gemäß Anspruch 3, bei dem der Zufallswert (100) aus den Bits (116) mit den zwei niedrigsten Bitwertigkeiten abgeleitet wird.
  5. Verfahren gemäß einem der vorhergehenden Ansprüche, bei dem der Zufallswert (100) aus einer Abfolge (118) von Binärtemperaturwerten (112) abgeleitet wird.
  6. Verfahren gemäß Anspruch 5, bei dem pro Binärtemperaturwert (112) je eine Anzahl an Bits (116) extrahiert wird und der Zufallswert (100) aus den extrahierten Bits (116) zusammengesetzt wird.
  7. Verfahren gemäß einem der Ansprüche 5 bis 6, bei dem ein ältester Binärtemperaturwert (112) der Abfolge (118) von Binärtemperaturwerten (112) verworfen wird, wenn ein neuer Binärtemperaturwert (112) digitalisiert wird, wobei der neue Binärtemperaturwert (112) zu der Abfolge (118) hinzugefügt wird.
  8. Verfahren gemäß einem der vorhergehenden Ansprüche, bei dem der Zufallswert (100) mit einer Wortlänge von 32 Bit bereitgestellt wird.
  9. Verfahren gemäß einem der vorhergehenden Ansprüche, bei dem der Zufallswert (100) abgeleitet wird, wenn der Binärtemperaturwert (112) innerhalb eines Temperaturtoleranzbereichs ist.
  10. Verfahren gemäß einem der vorhergehenden Ansprüche, bei dem mehrere Zufallswerte (100) zu einem Schlüssel (122) zusammengesetzt werden.
  11. Verfahren gemäß Anspruch 10, bei dem eine Identifikationsnummer (124) des Microcontrollers (104) in den Schlüssel (122) integriert wird.
  12. Verfahren gemäß einem der Ansprüche 10 bis 11, bei dem der Schlüssel (122) zyklisch erneuert wird.
  13. Verfahren gemäß einem der Ansprüche 10 bis 12, bei dem der Schlüssel (122) mit einer Wortlänge von 128 Bit bereitgestellt wird.
  14. Steuergerät (102) für ein Fahrzeug, wobei das Steuergerät (102) einen Microcontroller (104) mit einem internen Temperatursensor (106) und einem internen Analog-Digital-Wandler (108) aufweist, wobei das Steuergerät (102) dazu konfiguriert ist, ein Verfahren gemäß einem der Ansprüche 1 bis 13 auszuführen.
DE102021117008.7A 2021-07-01 2021-07-01 Verfahren und steuergerät zum erzeugen eines zufallswerts unter verwendung eines microcontrollers Pending DE102021117008A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102021117008.7A DE102021117008A1 (de) 2021-07-01 2021-07-01 Verfahren und steuergerät zum erzeugen eines zufallswerts unter verwendung eines microcontrollers
PCT/EP2022/067337 WO2023274872A1 (de) 2021-07-01 2022-06-24 Verfahren und steuergerät zum erzeugen eines zufallswerts unter verwendung eines microcontrollers
CN202280045735.9A CN117581219A (zh) 2021-07-01 2022-06-24 使用微控制器生成随机数的方法和控制装置
EP22740788.9A EP4363990A1 (de) 2021-07-01 2022-06-24 Verfahren und steuergerät zum erzeugen eines zufallswerts unter verwendung eines microcontrollers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021117008.7A DE102021117008A1 (de) 2021-07-01 2021-07-01 Verfahren und steuergerät zum erzeugen eines zufallswerts unter verwendung eines microcontrollers

Publications (1)

Publication Number Publication Date
DE102021117008A1 true DE102021117008A1 (de) 2023-01-05

Family

ID=82492830

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021117008.7A Pending DE102021117008A1 (de) 2021-07-01 2021-07-01 Verfahren und steuergerät zum erzeugen eines zufallswerts unter verwendung eines microcontrollers

Country Status (4)

Country Link
EP (1) EP4363990A1 (de)
CN (1) CN117581219A (de)
DE (1) DE102021117008A1 (de)
WO (1) WO2023274872A1 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69824792T2 (de) 1997-05-20 2004-11-04 Any Co., Ltd., Hiratuka Kommunikationssystem mit Verschlüsselung zum Erzeugen von Kennwörtern auf der Basis von Anfangsinformationen auf beiden Kommunikationsseiten
DE102013004795A1 (de) 2012-03-21 2013-09-26 Gabriele Trinkel System und Verfahren zum erzeugen von thermische Hot Spot zur Generierung von Zufallszahlen mit thermischen Rauschquellen im Cloud Computing
DE112014002419T5 (de) 2013-05-15 2016-03-31 Synopsys, Inc. Automatisches Steuersystem und Verfahren für einen echten Zufallsgenerator
DE102018100357A1 (de) 2018-01-09 2019-07-11 Infineon Technologies Ag Chip und verfahren zum sicheren speichern von geheimen daten

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8015224B1 (en) * 2006-12-27 2011-09-06 Marvell International Ltd. Entropy source for random number generation
US9780798B1 (en) * 2016-11-01 2017-10-03 Texas Instruments Incorporated Digital modulator entropy source

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69824792T2 (de) 1997-05-20 2004-11-04 Any Co., Ltd., Hiratuka Kommunikationssystem mit Verschlüsselung zum Erzeugen von Kennwörtern auf der Basis von Anfangsinformationen auf beiden Kommunikationsseiten
DE102013004795A1 (de) 2012-03-21 2013-09-26 Gabriele Trinkel System und Verfahren zum erzeugen von thermische Hot Spot zur Generierung von Zufallszahlen mit thermischen Rauschquellen im Cloud Computing
DE112014002419T5 (de) 2013-05-15 2016-03-31 Synopsys, Inc. Automatisches Steuersystem und Verfahren für einen echten Zufallsgenerator
DE102018100357A1 (de) 2018-01-09 2019-07-11 Infineon Technologies Ag Chip und verfahren zum sicheren speichern von geheimen daten

Also Published As

Publication number Publication date
WO2023274872A1 (de) 2023-01-05
CN117581219A (zh) 2024-02-20
EP4363990A1 (de) 2024-05-08

Similar Documents

Publication Publication Date Title
DE102013203415B4 (de) Erstellen eines abgeleiteten Schlüssels aus einem kryptographischen Schlüssel mittels einer physikalisch nicht klonbaren Funktion
EP2899714B1 (de) Gesichertes Bereitstellen eines Schlüssels
DE60122994T2 (de) Erzeugung von kryptographisch starken Zufallszahlen unter Verwendung von MISR - Registern
DE19744961A1 (de) Erzeugen eindeutiger und unvorhersagbarer Werte
DE102013206202A1 (de) Sensormodul und Verfahren zum Betreiben eines Sensorsmoduls
DE102009000869A1 (de) Verfahren und Vorrichtung zur manipulationssicheren Übertragung von Daten
DE102012110499A1 (de) Sicherheitszugangsverfahren für elektronische Automobil-Steuergeräte
DE102012209404A1 (de) Vorrichtung zur Ausführung eines kryptographischen Verfahrens und Betriebsverfahren hierfür
EP2891266A1 (de) Verfahren und anordnung zur sicheren kommunikation zwischen netzwerkeinrichtungen in einem kommunikationsnetzwerk
DE102012217716A1 (de) Selbst-Test einer Physical Unclonable Function
EP3709516B1 (de) Vorrichtung und verfahren zur hardware-basierten datenverschlüsselung mit komplementären widerstandsschaltern
DE102021117008A1 (de) Verfahren und steuergerät zum erzeugen eines zufallswerts unter verwendung eines microcontrollers
DE102013205542A1 (de) Vorrichtung und Verfahren zur Verarbeitung von Daten
DE102015001847A1 (de) Einmalverschlüsselung von Zählerdaten
CN113919012A (zh) 基于序列密码的强puf抗机器学习攻击方法及电路
DE102013202322A1 (de) Verfahren zur verschlüsselten Datenübertragung zwischen zwei Komponenten eines Steuergeräts
EP4059204B1 (de) Vorrichtungen, system, verfahren und computerprogramm zur hardware-basierten datenverschlüsselung mit impedanzschalter
EP3371733B1 (de) Verschlüsseln des speicherinhalts eines speichers in einem eingebetteten system
EP2288073B1 (de) Vorrichtung zur Verschlüsselung von Daten
DE102017215622A1 (de) Vorrichtungen und verfahren zum erhalten von bitsequenzen
DE19735922A1 (de) Kryptographisches Verfahren, das auf dem bekannten Verfahren der synchronen Stromchiffrierung mittels One-Time-Pad aufbaut und dieses in einem wesentlichen Punkt verbessert
DE102017108128B4 (de) Hardwarebasiertes Sicherheitsmodul
WO2012028391A1 (de) Verfahren zum bereitstellen von informationen für ein steuergerät
DE102018100357A1 (de) Chip und verfahren zum sicheren speichern von geheimen daten
EP1455312A1 (de) Verfahren und Einrichtung zur Wartung von sicherheitsrelevanten Programmcode eines Kraftfahrzeuges

Legal Events

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