Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
ENCRYPTING THE MEMORY CONTENT OF A MEMORY IN AN EMBEDDED SYSTEM
Document Type and Number:
WIPO Patent Application WO/2017/133939
Kind Code:
A1
Abstract:
A method for encrypting the memory content of a memory (MEM) in an embedded system, having the following steps: – the input generated, in the form of a first auxiliary data record, for a physical unclonable function (PUF) by a physical random number generator (TRNG) is a first random number (HD), – the response (R) of the physical unclonable function (PUF) is used as an input for a fuzzy key extractor (FKE), which generates a first key (K) from the response, – the first key (K) is used to encrypt a first data record (D), consisting of one or more successive data units (DU), and to store it in the memory (MEM), and – a second key (K) is generated for a second data record (D), consisting of one or more successive data units (DU) and following the first data record, from a second random number (HD) in the same way, and the second data record is encrypted using the second key generated in this manner and is stored in the memory (MEM).

Inventors:
HINTERSTOISSER THOMAS (AT)
MATSCHNIG MARTIN (AT)
Application Number:
PCT/EP2017/051501
Publication Date:
August 10, 2017
Filing Date:
January 25, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
International Classes:
G06F21/71; G06F12/14; H04L9/08
Domestic Patent References:
WO2015180867A12015-12-03
Foreign References:
US20100176920A12010-07-15
US20160364583A12016-12-15
US20150234751A12015-08-20
US20100199103A12010-08-05
Other References:
"Memory encryption: A survey of existing techniques", ACM COMPUT. SURV., vol. 46, no. 4, March 2014 (2014-03-01), pages 1 - 26
Y. DODIS; L. REYZIN; A. SMITH: "Fuzzy extractors: How to generate strong keys from biometrics and other noisy data", ADVANCES IN CRYPTOLOGY-EUROCRYPT 2004, 2004, pages 523 - 540
H. KANG; Y. HORI; T. KATASHITA; M. HAGIWARA; K. IWAMURA: "Ubiquitous Information Technologies and Applications, Springer", 2014, article "Performance Analysis for PUF Data Using Fuzzy Extractor", pages: 277 - 284
Attorney, Agent or Firm:
MAIER, Daniel (DE)
Download PDF:
Claims:
Patentansprüche

Verfahren zum Verschlüsseln des Speicherinhalts eines Speichers (MEM) in einem eingebetteten System, wobei unter Verwendung einer physikalischen unklonbaren

Funktion (PUF) sowie eines Fuzzy Key Extractors (FKE) des eingebetteten Systems ein geheimer Schlüssel (K) erzeugt wird, dadurch gekennzeichnet,

- dass als Eingabe, in Form eines ersten

Hilfsdatensatzes, für die physikalische unklonbare Funktion (PUF) eine erste Zufallszahl (HD) durch einen physikalischen Zufallsgenerator (TRNG) erzeugt wird,

- dass die Antwort (R) der physikalischen unklonbaren Funktion (PUF) als Eingabe für den Fuzzy Key Extractor (FKE) verwendet wird, der aus der Antwort einen ersten Schlüssel (K) erzeugt,

- dass mit dem ersten Schlüssel (K) ein erster Datensatz (D) , bestehend aus einer oder mehreren aufeinander folgenden Dateneinheiten (DU) , verschlüsselt und im Speicher (MEM) abgespeichert wird, und

- dass für einen zweiten Datensatz (D) , bestehend aus einer oder mehreren aufeinander folgenden Dateneinheiten (DU) und auf den ersten Datensatz folgend, auf die gleiche Weise ein zweiter Schlüssel (K) aus einer zweiten Zufallszahl (HD) erzeugt wird, und der zweite Datensatz mit dem so erzeugten zweiten Schlüssel verschlüsselt und im Speicher (MEM) abgespeichert wird.

Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Zufallszahlen (HD) im selben Speicher (MEM)

abgespeichert werden wie die verschlüsselten Datensätze.

3. Verfahren nach Anspruch 1 oder 2, dadurch

gekennzeichnet, dass eine Zufallszahl (HD) immer dem zugeordneten verschlüsselten Datensatz benachbart abgespeichert wird.

Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass eine Zufallszahl (HD) immer dem zugeordneten

verschlüsselten Datensatz unmittelbar vorangehend abgespeichert wird.

Verfahren nach einem der vorgehenden Ansprüche, dadurch gekennzeichnet, dass vorab, noch bevor ein zu

verschlüsselnder Datensatz (D) vorliegt, ein oder mehrere Schlüssel (K) auf einmal erzeugt und gemeinsam mit der jeweils zugehörigen Zufallszahl (HD) in einem dynamischen Zwischenspeicher abgespeichert werden.

Verfahren nach einem der vorgehenden Ansprüche, dadurch gekennzeichnet, dass zum Entschlüsseln der

verschlüsselten Daten die gespeicherten Zufallszahlen

(HD) verwendet werden, um den zugehörigen Schlüssel (K) zu rekonstruieren, indem die gespeicherte Zufallszahl

(HD) als Eingabe für die physikalische unklonbare

Funktion (PUF) verwendet wird und die Antwort der physikalischen unklonbaren Funktion (PUF) als Eingabe für den Fuzzy Key Extractor (FKE) verwendet wird.

Computersystem zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 6, umfassend zumindest einen Speicher (MEM) , eine physikalische unklonbare Funktion

(PUF) sowie einen Fuzzy Key Extractor (FKE) , dadurch gekennzeichnet, dass ein physikalischer Zufallsgenerator

(TRNG) mit der physikalischen unklonbaren Funktion (PUF) und dem Fuzzy Key Extractor (FKE) verbunden ist, wobei der physikalische Zufallsgenerator (TRNG) , die

physikalische unklonbare Funktion (PUF) und der Fuzzy Key Extractor (FKE) so ausgestaltet sind, - dass als Eingabe, in Form eines ersten

Hilfsdatensatzes, für die physikalische unklonbare Funktion (PUF) eine erste Zufallszahl (HD) durch einen physikalischen Zufallsgenerator (TRNG) erzeugt wird,

- dass die Antwort der physikalischen unklonbaren

Funktion (PUF) als Eingabe für den Fuzzy Key Extractor (FKE) verwendet wird, der aus der Antwort einen ersten Schlüssel (K) erzeugt,

- dass mit dem ersten Schlüssel (K) ein erster Datensatz (D) , bestehend aus einer oder mehreren aufeinander folgenden Dateneinheiten (DU) , verschlüsselt und im Speicher (MEM) abgespeichert wird, und

- dass für einen zweiten Datensatz (D) , bestehend aus einer oder mehreren aufeinander folgenden Dateneinheiten (DU) und auf den ersten Datensatz folgend, auf die gleiche Weise ein zweiter Schlüssel (K) aus einer zweiten Zufallszahl (HD) erzeugt wird, und der zweite Datensatz mit dem so erzeugten zweiten Schlüssel verschlüsselt und im Speicher (MEM) abgespeichert wird. 8. Computerprogrammprodukt, welches ein Programm umfasst, das direkt in einen Prozessor (CC) eines eingebetteten Systems ladbar ist, mit Programm-Mitteln, um alle

Schritte des Verfahrens nach einem der Ansprüche 1 bis 6 auszuführen, wenn das Programm vom Prozessor (CC) ausgeführt wird.

Description:
Beschreibung

Verschlüsseln des Speicherinhalts eines Speichers in einem eingebetteten System

Technisches Gebiet

Die Erfindung bezieht sich auf ein Verfahren zum

Verschlüsseln des Speicherinhalts eines Speichers in einem eingebetteten System, wobei unter Verwendung einer

physikalischen unklonbaren Funktion sowie eines Fuzzy Key Extractors des eingebetteten Systems ein geheimer Schlüssel erzeugt wird. Weiters umfasst die Erfindung ein

entsprechendes Computersystem sowie ein entsprechendes

Computerprogrammprodukt .

Das erfindungsgemäße Verfahren ist dazu geeignet, in

sicherheitsrelevanten eingebetteten Systemen (embedded

Systems) eingesetzt zu werden. Ein eingebettetes System bezeichnet einen elektronischen Rechner oder Computer, der in einen technischen Kontext eingebunden (eingebettet) ist.

Dabei übernimmt der Rechner etwa Überwachungs- , Steuerungsoder Regelfunktionen oder ist für eine Form der Daten- bzw. Signalverarbeitung zuständig. Meist wird dabei eine gemischte Hardware-Software-Implementierung gewählt, welche die große Flexibilität von Software mit der Leistungsfähigkeit der Hardware vereint. Die Software dient dabei sowohl zur

Steuerung des eingebetteten Systems selbst als auch

gegebenenfalls zur Interaktion des eingebetteten Systems mit der Außenwelt über definierte Schnittstellen oder Protokolle.

Stand der Technik

In modernen sicherheitskritischen Anwendungen stellen sogenannte Seitenkanalattacken (SCA, Side Channel Attacks) , bzw. Differential Power Analysis (DPA) Angriffe eine immer größere Gefahr dar. Im Prinzip wird dabei die

Leistungsaufnahme eines Computersystems über eine große Anzahl von Zyklen aufgezeichnet, um daraus Rückschlüsse auf den inneren Ablauf zu ziehen. Durch diese Vorgangsweise können z.B. kryptografische Schlüssel gefunden werden. Ob, bzw. wie leicht ein Angreifer mit SCA zum Ziel kommen kann, ist abhängig von der physikalischen Implementierung einer kryptographischen Funktion.

Nicht nur in diesem Zusammenhang gibt es einen wachsenden Bedarf für den Schutz von vertraulichem Speicherinhalt in eingebetteten Systemen. Andererseits begrenzen die

Leistungsanforderungen an das eingebettete System, bzw. eine begrenzte, für das eingebettete System zur Verfügung stehende Leistung die Verwendung einer starken Verschlüsselung für den Schutz des Speicherinhalts.

Einen Überblick über bestehende Mechanismen zur

Verschlüsselung von Speicherinhalt findet sich in „Memory encryption: A survey of existing techniques", ACM Comput. Surv., Vol. 46, Nr. 4, März 2014, Seiten 1-26. Die meisten Mechanismen sind darauf ausgerichtet, die Stärke der

Verschlüsselung zu steigern. Dabei muss in der Regel ein Kompromiss eingegangen werden zwischen effektivem

Speicherschutz und dem sogenannten Overhead für diesen

Speicherschutz (also etwa Hardware, Software, Rechenzeit) .

Die vorliegende Erfindung nutzt die bekannte Verwendung einer physikalischen unklonbaren Funktion gemeinsam mit einem sogenannten Fuzzy (Key) Extractor zur Erzeugung eines geheimen Schlüssels. Die Funktion von Fuzzy Extractors ist beschrieben in „Fuzzy extractors: How to generate strong keys from biometrics and other noisy data", Y. Dodis, L. Reyzin, A. Smith, "Advances in cryptology-Eurocrypt 2004, 2004, Seiten 523-540. Die gemeinsame Anwendung von PUF und einem Fuzzy Extractor ist beschrieben in "Performance Analysis for PUF Data Using Fuzzy Extractor", H. Kang, Y. Hori, T.

Katashita, M. Hagiwara, K. Iwamura, Ubiquitous Information Technologies and Applications, Springer, 2014, Seiten 277- 284.

Die Kombination einer PUF und eines Fuzzy Key Extractors ist auch in der WO 2015/180867 AI gezeigt und betrifft das

Erzeugen eines kryptographischen Schlüssels, eine

Schlüsselerzeugungsvorrichtung sowie ein eingebettetes System zum Erzeugen eines kryptographischen Schlüssels unter

Verwendung einer physikalisch unklonbaren Funktion.

Physikalisch unklonbare Funktionen, sogenannte Physical Unclonable Functions (PUFs) , sind bekannt, um Objekte zuverlässig anhand ihrer intrinsischen physikalischen

Eigenschaften zu identifizieren. Eine physikalische

Eigenschaft eines Gegenstandes, beispielsweise eines

Halbleiter-Schaltkreises, wird dabei als individueller

Fingerabdruck verwendet. Eine physikalisch unklonbare

Funktion wird mit einer Eingabe (Challenge) beaufschlagt und liefert eine Antwort (Response) , welche bei einem Nachbau des Gerätes bei Beaufschlagen mit der gleichen Challenge nicht generierbar ist. Eine Response ist nicht vorhersehbar und kann somit nicht - insbesondere auch nicht bei Kenntnis der Challenge - auf einem anderen oder nachgebautem Schaltkreis erzeugt werden. Somit kann eine Authentifizierung mittels der physikalisch unklonbaren Funktion erreicht werden, indem beispielsweise eine Response oder ein daraus abgeleiteter Wert, wie beispielsweise ein kryptographischer Schlüssel, nur generiert werden kann, falls ein Zugriff auf den vorgesehenen korrekten, unveränderten oder nicht manipulierten Schaltkreis mit der darauf implementierten physikalisch unklonbaren Funktion vorhanden ist.

Im Umfeld kryptographischer Security-Mechanismen ist die Verwendung physikalisch unklonbarer Funktionen vorgesehen, um ein Abspeichern eines kryptographischen Schlüssels in einem Speicher oder ein manuelles Eingeben des Schlüssels zu vermeiden. Das Erzeugen eines kryptographischen Schlüssels durch Beaufschlagen einer physikalisch unklonbaren Funktion mit einer Challenge stellt einen sicheren Schlüsselspeicher dar. Es ist bekannt, mittels eines Fuzzy Key Extractors unter Verwendung einer physikalisch unklonbaren Funktion einen kryptographischen Schlüssel zu extrahieren. Ein Fuzzy Key Extractor benötigt dafür Hilfsdaten, sogenannte Helper Data, welche beim Speichern eines Schlüssels erzeugt werden müssen. Die Hilfsdaten sind dabei auf dem Gerät hinterlegt, auf welchem ein Schlüssel unter Verwendung einer physikalisch unklonbaren Funktion erzeugt werden soll, also etwa im eingebetteten System. Die Hilfsdaten stellen dabei sicher, dass auch bei Bitfehlern, welche aufgrund von Alterung der Hardware oder aufgrund von schwankenden Umgebungsbedingungen oder aufgrund von statistischen Schwankungen kaum vermeidbar sind, immer der ursprünglich erzeugte Schlüssel

reproduzierbar ist. Kryptographische Schlüssel, welche im eingebetteten System zur Freischaltung einer Funktionalität oder zum Entschlüsseln einer Firmware oder zum Absichern einer Kommunikation mit einem weiteren Gerät von dem Gerät verwendet werden sollen, werden im Klartext oder

verschlüsselt oder obfusziert auf dem Gerät abgelegt.

Darstellung der Erfindung

Es ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren zum Verschlüsseln des Speicherinhalts eines Speichers in einem eingebetteten System unter Verwendung einer

physikalischen unklonbaren Funktion sowie eines Fuzzy Key Extractors anzugeben.

Die gestellte Aufgabe wird durch ein Verfahren mit den

Merkmalen des Patentanspruchs 1 durch die folgenden Schritte gelöst :

- dass als Eingabe, in Form eines ersten Hilfsdatensatzes, für die physikalische unklonbare Funktion eine erste

Zufallszahl durch einen physikalischen Zufallsgenerator erzeugt wird,

- dass die Antwort der physikalischen unklonbaren Funktion als Eingabe für den Fuzzy Key Extractor verwendet wird, der aus der Antwort einen ersten Schlüssel erzeugt,

- dass mit dem ersten Schlüssel ein erster Datensatz, bestehend aus einer oder mehreren aufeinander folgenden Dateneinheiten, verschlüsselt und im Speicher abgespeichert wird, und

- dass für einen zweiten Datensatz, bestehend aus einer oder mehreren aufeinander folgenden Dateneinheiten und auf den ersten Datensatz folgend, auf die gleiche Weise ein zweiter Schlüssel aus einer zweiten Zufallszahl erzeugt wird, und der zweite Datensatz mit dem so erzeugten zweiten Schlüssel verschlüsselt und im Speicher abgespeichert wird.

Physikalisch unklonbare Funktionen sind ein Pendant zum biometrischen Fingerabdruck, aber für ein physikalisches Gerät (meist eine integrierte Schaltung bzw. einen Teil davon) . Das Gerät verarbeitet Eingaben und berechnet daraus Ausgaben, wobei die Berechnung hochgradig von den

physikalischen Eigenschaften des konkreten Exemplars des Gerätes abhängt, indem Fertigungsschwankungen sowie zufälli Unterschiede auf atomarer Ebene einbezogen werden. Die

Berechnung ist daher nur mit demselben Gerät reproduzierbar Dadurch sind physikalisch unklonbare Funktionen (PUFs) effizient verifizierbar, eindeutig und fälschungssicher.

Mit anderen Worten wird also erfindungsgemäß für jeden von mehreren zu verschlüsselnden Datensätzen ein eigener

individueller Schlüssel erzeugt, in dem für jeden Datensatz eine eigene Zufallszahl generiert wird, diese als Eingabe (Challenge) an die gleiche physikalische unklonbare Funktion gesendet wird, die Antwort der physikalischen unklonbaren Funktion als Eingabe für den Fuzzy Key Extractor verwendet wird und dieser daraus den Schlüssel für den betreffenden Datensatz erstellt. Mit diesem Schlüssel wird dann dieser Datensatz verschlüsselt und in verschlüsselter Form

abgespeichert. Für jeden zu verschlüsselnden Datensatz wird dieser Ablauf wiederholt. Der jeweilige generierte Schlüssel wird aber nicht

abgespeichert, da dies ja ein Sicherheitsrisiko darstellen würde. Stattdessen wird die jeweilige Zufallszahl, mit welcher der Schlüssel berechnet wurde, gespeichert, um den Schlüssel für die Entschlüsselung des jeweiligen Datensatzes wieder regenerieren zu können. Die Zufallszahl lässt keine Rückschlüsse auf die verschlüsselten Datensätze zu, deshalb muss die Zufallszahl nicht geschützt abgespeichert werden.

Ein zu verschlüsselnder Datensatz kann dabei nur eine

Dateneinheit, wie ein Bit, ein Byte, ein Wort, enthalten, oder auch mehrere dieser aufeinanderfolgenden Dateneinheiten.

Zur Vereinfachung der Datenoperationen beim Verschlüsseln und Entschlüsseln der Datensätze kann vorgesehen sein, dass die Zufallszahlen im selben Speicher abgespeichert werden wie die verschlüsselten Datensätze.

Zum geordneten Abspeichern der Zufallszahlen kann vorgesehen sein, dass eine Zufallszahl immer dem zugeordneten

verschlüsselten Datensatz benachbart abgespeichert wird. Beim Entschlüsseln der einzelnen Datensätze ist daher die

Zufallszahl (als Helper Data = Hilfsdatensatz für die physikalische unklonbare Funktion) zur Regenerierung des notwendigen Schlüssels leicht verfügbar.

Insbesondere kann eine Zufallszahl immer dem zugeordneten verschlüsselten Datensatz unmittelbar vorangehend

abgespeichert sein, sodass keine Daten über den Speicherort der jeweiligen Zufallszahl abgespeichert werden müssen, sondern eine einzige Angabe zum Speicherort aussagt, wo sich Zufallszahl und zugehöriger verschlüsselter Datensatz befinden .

Es kann vorgesehen sein, dass zum Beschleunigen des

Verschlüsselungsverfahrens vorab, also noch bevor ein zu verschlüsselnder Datensatz vorliegt, ein oder mehrere

Schlüssel auf einmal erzeugt und gemeinsam mit der jeweils zugehörigen Zufallszahl in einem dynamischen

Zwischenspeicher, z.B. in einer Cache-Tabelle, abgespeichert werden. Trifft dann ein zu verschlüsselnder Datensatz ein, kann dieser sofort mit einem Schlüssel aus dem

Zwischenspeicher verschlüsselt und gemeinsam mit der

zugehörigen Zufallszahl abgespeichert werden.

Zum Entschlüsseln der verschlüsselten Daten werden die gespeicherten Zufallszahlen verwendet, um den zugehörigen Schlüssel zu rekonstruieren, indem die gespeicherte

Zufallszahl als Eingabe für die physikalische unklonbare Funktion verwendet wird und die Antwort der physikalischen unklonbaren Funktion als Eingabe für den Fuzzy Key Extractor verwendet wird. Die Ausgabe des Fuzzy Key Extractors stellt dann den wiederhergestellten Schlüssel dar, mit dem der Datensatz entschlüsselt werden kann.

Ein Computersystem zur Durchführung des erfindungsgemäßen Verfahrens umfasst zumindest einen Speicher, eine

physikalische unklonbare Funktion sowie einen Fuzzy Key Extractor, und einen Zufallsgenerator, wobei der

physikalische Zufallsgenerator mit der physikalischen unklonbaren Funktion und dem Fuzzy Key Extractor verbunden ist, und wobei der physikalische Zufallsgenerator, die physikalische unklonbare Funktion und der Fuzzy Key Extractor so ausgestaltet sind,

- dass als Eingabe, in Form eines ersten Hilfsdatensatzes, für die physikalische unklonbare Funktion eine erste

Zufallszahl durch einen physikalischen Zufallsgenerator erzeugt wird,

- dass die Antwort der physikalischen unklonbaren Funktion als Eingabe für den Fuzzy Key Extractor verwendet wird, der aus der Antwort einen ersten Schlüssel erzeugt,

- dass mit dem ersten Schlüssel ein erster Datensatz, bestehend aus einer oder mehreren aufeinander folgenden

Dateneinheiten, verschlüsselt und im Speicher abgespeichert wird, und

- dass für einen zweiten Datensatz, bestehend aus einer oder mehreren aufeinander folgenden Dateneinheiten und auf den ersten Datensatz folgend, auf die gleiche Weise ein zweiter Schlüssel aus einer zweiten Zufallszahl erzeugt wird, und der zweite Datensatz mit dem so erzeugten zweiten Schlüssel verschlüsselt und im Speicher abgespeichert wird.

Das erfindungsgemäße Computersystem kann als

anwendungsspezifische, integrierte Schaltung (ASIC)

ausgeführt sein. Es kann aber auch als sogenanntes Field Programmable Gate Array (FPGA) ausgeführt sein, also als integrierter Schaltkreis (IC) der Digitaltechnik, in den eine logische Schaltung programmiert werden kann. In beiden Fällen kann das erfindungsgemäße Computersystem als Ein-Chip-System oder System-on-Chip (SoC) hergestellt werden.

Da zur Durchführung des erfindungsgemäßen Verfahrens

Anweisungen an einen Prozessor des eingebetteten Systems notwendig sind, umfasst die gegenständliche Erfindung auch ein Computerprogrammprodukt, welches ein Programm umfasst, das direkt in einen Prozessor eines eingebetteten Systems ladbar ist, mit Programm-Mitteln, um alle Schritte des erfindungsgemäßen Verfahrens auszuführen, wenn das Programm vom Prozessor ausgeführt wird.

Das erfindungsgemäße Verfahren stellt einen sehr wirksamen Schutzmechanismus auf Basis physikalischer unklonbarer

Funktionen zur Verfügung, der zur Verschlüsselung besonders wichtiger Informationen verwendet werden kann, die

gespeichert werden sollen. Das Verfahren benötigt selbst aber jedenfalls Rechenzeit, sodass es am besten nur zur

Verschlüsselung von solchen Speicherbereichen verwendet werden soll, die hochsensible Information enthalten.

Mit dem erfindungsgemäßen Verfahren kann eine sehr starke, nur für das spezifische eingebettete System geltende

Verschlüsselung von Speicherinhalt zur Verfügung gestellt werden. Jeder Datensatz wird mit einem einzigartigen

Schlüssel verschlüsselt, der aus einer Zufallszahl und einer für dieses eingebettete System spezifischen PUF-Signatur gebildet wird. Für eine etwaige Seitenkanalattacke, wie eine Differential Power Analysis (DPA) , sind der Mess- und

Rechenaufwand sehr hoch, weil selbst durch die erfolgreiche Berechnung eines Schlüssels nur ein Datensatz des Speichers entschlüsselt werden kann, und nicht der gesamte

Speicherinhalt .

Kurzbeschreibung der Figuren

Zur weiteren Erläuterung der Erfindung wird im nachfolgenden Teil der Beschreibung auf die Figuren Bezug genommen, aus denen weitere vorteilhafte Ausgestaltungen, Einzelheiten und Weiterbildungen der Erfindung zu entnehmen sind. Die Figuren sind beispielhaft zu verstehen und sollen den

Erfindungscharakter zwar darlegen, ihn aber keinesfalls einengen oder gar abschließend wiedergeben. Es zeigt Fig. 1 ein Blockdiagramm eines Teils eines

erfindungsgemäßen Computersystems ,

Fig. 2 die Datenstruktur der erfindungsgemäß zur

verarbeitenden Daten.

Ausführung der Erfindung

Fig. 1 zeigt ein Blockdiagramm eines Teils eines

erfindungsgemäßen Computersystems. Für das Computersystem sind in der Figur für die Erfindung wesentliche Einheiten dargestellt, nämlich eine physikalische unklonbare Funktion PUF, ein Fuzzy Key Extractor FKE, ein Zufallszahlengenerator TRNG und ein Prozessor CC . Es kann und wird in der Regel darüber hinaus weitere Einheiten, wie weitere Prozessoren, Ein-/Ausgabeeinheiten, Controller, zusätzliche

Schnittstellen, Speicher, etc. enthalten. Zumindest ist im erfindungsgemäßen Computersystem ein Speicher MEM (siehe Fig. 2) vorhanden, wo die verschlüsselten Datensätze abgespeichert werden .

Der Zufallszahlengenerator TRNG (True Random Number

Generator) ist ein physikalischer Zufallszahlengenerator und benutzt dafür physikalische Prozesse. Hierbei werden

beispielsweise Impulsschwankungen elektronischer Schaltungen (z. B. thermisches Rauschen eines Widerstands) ausgenutzt. Generell können alle natürlichen Quellen verwendet werden, die auf physikalischen Effekten basieren und eine recht hohe Güte liefern, aber auch andere asynchrone Quellen, wie z. B. Atmosphärenrauschen, CCD-Sensorrauschen, die Schwankung der tatsächlichen Zeitdauer einer mit einem Zeitgeber („Timer") gemessenen Zeitdauer oder Spannungsschwankungen an einer Zenerdiode .

Der zu verschlüsselnde Datenstrom gelangt nun unverschlüsselt in den Prozessor CC, der hier als sogenannter Crypto Core ausgebildet ist, also als besonders gegen äußere Angriffe abgesicherter Prozessor. Statt eines so abgesicherten

Prozessors CC kann aber ein Crypto Core auch einfach durch ein Hardware-Modul verwirklicht sein, welches nur eine Ver- oder Entschlüsselung ausführen kann. Wenn der zu

verschlüsselnde Datenstrom in den Crypto Core gelangt, wird der Datenstrom in einzelne Datensätze zerlegt, und immer ein Datensatz wird mit dem gleichen Schlüssel auf einmal, also alle Dateneinheiten des Datensatzes gemeinsam, verschlüsselt. Für den ersten zu verschlüsselnden Datensatz wird durch den Zufallszahlengenerator TRNG eine erste Zufallszahl HD erstellt, die als Hilfsdatensatz (Helper Data) als Eingabe (Challenge) an die physikalische unklonbare Funktion PUF gesendet wird. Die Antwort (Response) R der physikalischen unklonbaren Funktion PUF, also der sogenannte Fingerprint des entsprechenden Schaltkreises, wird als Eingabe an den Fuzzy Key Extractor FKE gesendet, der aus der Antwort einen ersten Schlüssel K erzeugt und zum Verschlüsseln des ersten

Datensatzes an den Prozessor CC sendet. Dabei werden neben dem Schlüssel K und dem zu verschlüsselnden Datensatz D auch die zugehörige Zufallszahl HD an den Prozessor CC gesendet, wie dies in Fig. 2

dargestellt ist. Es gelangt somit ein um die Zufallszahl HD erweiterter Datensatz in den Prozessor CC, wobei nur der zu verschlüsselnden Datensatz D mit dem Verschlüsselungsprogramm ENCR verschlüsselt wird. Im vorliegenden Beispiel umfasst die Zufallszahl HD 6 Bit an Dateneinheiten DU, der zu

verschlüsselnde Datensatz D 8 Bit, also 8 Dateneinheiten DU. Die verschlüsselten Daten werden gemeinsam mit der nicht verschlüsselten Zufallszahl HD, sozusagen wieder als

erweiterter Datensatz, wo Zufallszahl HD und verschlüsselte Daten unmittelbar aufeinander folgen, nun in einen Speicher MEM des eingebetteten Systems geschrieben. Zum Entschlüsseln wird der verschlüsselte Datensatz gemeinsam mit der nicht verschlüsselten Zufallszahl HD wieder aus dem Speicher MEM in den Prozessor CC geladen und der verschlüsselte Datensatz wird mittels Entschlüsselungsprogramm DECR entschlüsselt. Dazu wird die Zufallszahl HD an die physikalische unklonbare Funktion PUF als Eingabe gesendet und aus der Antwort der physikalischen unklonbaren Funktion PUF wird mittels Fuzzy Key Extractor FKE der Schlüssel K regeneriert, der für die Entschlüsselung benötigt wird. Das Ergebnis nach dieser Operation ist wieder ein erweiterter Datensatz, bestehend aus der Zufallszahl HD und dem auf die Zufallszahl folgenden Datensatz D.

Für den zweiten (und jeden weiteren) Datensatz wird durch den Zufallszahlengenerator TRNG eine weitere Zufallszahl HD erstellt, die sich in der Regel von der ersten Zufallszahl unterscheidet. Die zweite Zufallszahl HD wird wieder als Hilfsdatensatz (Helper Data) als Eingabe (Challenge) an die physikalische unklonbare Funktion PUF gesendet wird. Die Antwort (Response) R der physikalischen unklonbaren Funktion PUF wird als Eingabe an den Fuzzy Key Extractor FKE gesendet, der aus der Antwort einen zweiten Schlüssel K erzeugt und zum Verschlüsseln des zweiten Datensatzes an den Prozessor CC sendet. Dabei werden neben dem Schlüssel K und dem zu verschlüsselnden zweiten Datensatz D auch die zugehörige zweite Zufallszahl HD an den Prozessor CC gesendet, siehe wieder Fig. 2. Es gelangt somit ein um die zweite Zufallszahl HD erweiterter Datensatz in den Prozessor CC, wobei nur der zu verschlüsselnden zweite Datensatz D mit dem

Verschlüsselungsprogramm ENCR verschlüsselt wird. Die verschlüsselten Daten werden gemeinsam mit der nicht

verschlüsselten zweiten Zufallszahl HD, sozusagen wieder als erweiterter Datensatz, nun ebenfalls im Speicher MEM des eingebetteten Systems abgespeichert. Zum Entschlüsseln wird der verschlüsselte zweite Datensatz gemeinsam mit der nicht verschlüsselten zweiten Zufallszahl HD wieder aus dem

Speicher MEM in den Prozessor CC geladen und der

verschlüsselte Datensatz wird mittels

Entschlüsselungsprogramm DECR entschlüsselt. Dazu wird die zweite Zufallszahl HD an die physikalische unklonbare

Funktion PUF als Eingabe gesendet und aus der Antwort der physikalischen unklonbaren Funktion PUF wird mittels Fuzzy Key Extractor FKE der zweite Schlüssel K regeneriert, der für die Entschlüsselung benötigt wird. Das Ergebnis nach dieser Operation ist wieder ein erweiterter Datensatz, bestehend aus der zweiten Zufallszahl HD und dem zweiten Datensatz D.

Für jeden weiteren zu verschlüsselnden Datensatz werden wieder eine eigene Zufallszahl und ein eigener Schlüssel erzeugt, wie für den ersten und den zweiten Datensatz beschrieben. Um im Falle einer Verschlüsselung bereits einen Schlüssel zur Verfügung zu haben, können Schlüssel K aus Zufallszahlen HD bereits auf Vorrat berechnet werden, etwa, wenn der Prozessor CC gerade nicht ausgelastet ist. Die so erzeugten Schlüssel-Zufallszahlenpaare können dabei in einem eigenen (abgesicherten) Cache in Form einer Tabelle

abgespeichert werden und sofort, wenn ein zu verschlüsselnder Datensatz einlangt, wird ein abgespeichertes Schlüssel- Zufallszahlenpaar gemeinsam mit dem zu verschlüsselnden Datensatz an den Prozessor CC gesendet, der sofort das

Verschlüsselungsprogramm ENCR starten kann, ohne auf die Erstellung eines Schlüssels durch die physikalische unklonbare Funktion PUF und den Fuzzy Key Extractor FKE warten zu müssen.

Selbstverständlich können im Zuge der Schlüsselerstellung und/oder beim Verschlüsseln und/oder beim Entschlüsseln die Schlüssel und/oder Daten einer Fehlerkorrektur unterzogen werden .

Bezugszeichenliste cc Prozessor (Crypto Core)

D Datensatz

DU Dateneinheit

DECR Entschlüsselungsprogramm ( Decryption)

ENCR Verschlüsselungsprogramm (Encryption)

FKE Fuzzy Key Extractor

HD Zufallszahl (=Hilfsdatensatz = Helper

K Schlüssel

MEM Speicher

PUF physikalisch unklonbare Funktion

R Antwort

TRNG Zufallszahlengenerator