DE102016115551A1 - Configurable security modules - Google Patents

Configurable security modules Download PDF

Info

Publication number
DE102016115551A1
DE102016115551A1 DE102016115551.9A DE102016115551A DE102016115551A1 DE 102016115551 A1 DE102016115551 A1 DE 102016115551A1 DE 102016115551 A DE102016115551 A DE 102016115551A DE 102016115551 A1 DE102016115551 A1 DE 102016115551A1
Authority
DE
Germany
Prior art keywords
security module
electronic device
individualized
response
input
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
DE102016115551.9A
Other languages
German (de)
Inventor
Rainer Plaga
Ralph Breithaupt
Alexander Spenke
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.)
Bundesrepublik Deutschland Vertreten Durch Das Bundesministerium Des Innern Vertreten Durch Das Bund
Bundesamt fuer Sicherheit in der Informationstechnik
Original Assignee
Bundesrepublik Deutschland Vertreten Durch Das Bundesministerium Des Innern Vertreten Durch Das Bund
Bundesamt fuer Sicherheit in der Informationstechnik
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 Bundesrepublik Deutschland Vertreten Durch Das Bundesministerium Des Innern Vertreten Durch Das Bund, Bundesamt fuer Sicherheit in der Informationstechnik filed Critical Bundesrepublik Deutschland Vertreten Durch Das Bundesministerium Des Innern Vertreten Durch Das Bund
Priority to DE102016115551.9A priority Critical patent/DE102016115551A1/en
Publication of DE102016115551A1 publication Critical patent/DE102016115551A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]

Abstract

Die vorliegende Erfindung betrifft konfigurierbare Sicherheitsmodule. Angegeben ist ein Verfahren, welches ein Bereitstellen einer elektronischen Vorrichtung mit einem Sicherheitsmodul, auf dem eine Vielzahl von für die elektronische Vorrichtung individualisierten Funktionen realisierbar ist, ein Empfangen einer Anforderung zur Abfrage des Sicherheitsmoduls der elektronischen Vorrichtung, als Reaktion auf die Anforderung ein Senden von Konfigurationsdaten zur Realisierung einer individualisierten Funktion aus der Vielzahl von individualisierten Funktionen auf dem Sicherheitsmodul, ein Bereitstellen mindestens einer Eingabe für das Sicherheitsmodul und ein Empfangen mindestens einer Antwort der elektronischen Vorrichtung basierend auf einer Verarbeitung der mindestens einen Eingabe im Sicherheitsmodul, auf dem die individualisierte Funktion realisiert ist, umfasst. Ferner sind ein Server, eine Vorrichtung und ein System angegeben, welche eine sichere Konfiguration eines Sicherheitsmoduls und eine entsprechende Abfrage des Sicherheitsmoduls definieren.The present invention relates to configurable security modules. Disclosed is a method of providing an electronic device having a security module capable of implementing a plurality of functions customized to the electronic device, receiving a request to poll the security module of the electronic device, sending configuration data in response to the request for implementing an individualized function of the plurality of individualized functions on the security module, providing at least one input for the security module and receiving at least one response of the electronic device based on processing the at least one input in the security module on which the individualized function is implemented , includes. Furthermore, a server, a device and a system are specified, which define a secure configuration of a security module and a corresponding query of the security module.

Description

Die vorliegende Erfindung betrifft Verfahren, einen Server, eine Vorrichtung und ein System, welche eine sichere Konfiguration eines Sicherheitsmoduls und eine entsprechende Abfrage des Sicherheitsmoduls definieren.The present invention relates to methods, a server, a device, and a system that define a secure configuration of a security module and a corresponding polling of the security module.

In heutigen vernetzten elektronischen Systemen vertrauen Benutzer alltäglich auf eine sichere Kommunikation, auf intelligente Infrastrukturen und vertrauenswürdige digitale Dienstleistungen. Solche Systeme sind nicht nur bei vernetzten (mobilen) Computersystemen zu finden, sondern halten auch verstärkt Einzug bei alltäglichen „smarten” Gegenständen, Kraftfahrzeugen, diversen Zahlungsmitteln und elektronischen Dokumenten, um einige zu nennen. Hierbei werden integrierte Schaltungen für sicherheitskritische Aufgaben und zum Umgang mit sensiblen Informationen eingesetzt und müssen daher vor Angriffen, d. h. Missbrauch und Manipulationen geschützt werden, um einen unbefugten Zugriff auf sicherheitskritische Daten oder Identitäten zu unterbinden.In today's connected electronic systems, users rely on secure communications, intelligent infrastructures, and trusted digital services every day. Such systems are not only found in networked (mobile) computer systems, but are also increasingly finding their way into everyday "smart" items, automobiles, various forms of payment and electronic documents, to name a few. Here, integrated circuits are used for safety-critical tasks and for dealing with sensitive information and must therefore be protected against attacks, ie. H. Abuse and tampering are protected to prevent unauthorized access to security-critical data or identities.

Diese Ziele können mit Mitteln der Chipsicherheit erreicht werden. Beispielsweise kann eine sichere Kommunikation zwischen zwei Mikrochips durch kryptografische Algorithmen zuverlässig abgesichert werden. Ein Grundproblem besteht aber darin, dass die Kryptografie nur so sicher ist wie der verwendete Schlüssel selbst, der für die Realisierung gespeichert und vor unbefugten Zugriffen geschützt werden muss. Ein gespeicherter Schlüssel ist jedoch nur dann sicher, wenn ein Auslesen, Kopieren oder Erstellen eines Ersatzschlüssels verhindert werden kann.These goals can be achieved by means of chip security. For example, secure communication between two microchips can be reliably secured by cryptographic algorithms. A basic problem, however, is that cryptography is only as secure as the key itself, which must be stored for implementation and protected against unauthorized access. However, a stored key is safe only when reading, copying or creating a spare key can be prevented.

Ein weiterer Aspekt der Chipsicherheit besteht in der Authentifizierung, welche sicherstellen soll, dass an einer Kommunikation oder bei einer Verarbeitung nur berechtigte und vertrauenswürdige Vorrichtungen beteiligt sind. Hierzu kann ein Chip ein individuelles Geheimnis enthalten, das eine eindeutige Identifikation ermöglicht und das nicht klonbar oder simulierbar ist.Another aspect of chip security is authentication, which is to ensure that only legitimate and trusted devices are involved in communication or processing. For this purpose, a chip can contain an individual secret, which allows a unique identification and which is not clonable or simulatable.

Zur Lösung von Aufgaben der Chipsicherheit werden auf elektronischen Vorrichtungen Sicherheitsmodule mit einer für die elektronische Vorrichtung individualisierten Funktion oder Funktionalität verwendet, die durch zufällige Fluktuationen im Herstellungs- oder Konfigurationsprozess der elektronischen Vorrichtung oder des Sicherheitsmoduls derart bestimmt ist, dass das Sicherheitsmodul nicht physikalisch so dupliziert werden kann, dass das Duplikat die gleiche Funktion oder Funktionalität aufweist. Obwohl die Sicherheitsmodule (und die zugrunde liegende Hardware) und die in ihnen vorgesehene Funktionalität in allen elektronischen Vorrichtungen baugleich sind, liefern sie aufgrund der Fluktuationen und Variationen ein individualisiertes Verhalten. Die individualisierte Funktionalität kann hierbei eine sichere Speicherung von Informationen oder Daten, beispielsweise zur Schlüsselgenerierung oder zur Authentifizierung, eine Berechnung spezieller Funktionen mit einer höheren Geschwindigkeit als auf anderen verfügbaren Prozessoren für allgemeine Zwecke möglich oder eine beliebige andere individualisierte Funktionalität betreffen, welche für Sicherheitsaufgaben verwendet werden kann.In order to solve chip security tasks, electronic modules use security modules with a function or functionality individualized for the electronic device, which is determined by random fluctuations in the manufacturing or configuration process of the electronic device or security module such that the security module is not physically duplicated can make the duplicate have the same function or functionality. Although the security modules (and the underlying hardware) and functionality provided in them are identical in all electronic devices, they provide individualized behavior due to fluctuations and variations. The individualized functionality may involve secure storage of information or data, for example for key generation or authentication, calculation of specific functions at a higher speed than other available general-purpose processors, or any other individualized functionality used for security tasks can.

Solche individualisierten Funktionen oder Funktionalitäten von Sicherheitsmodulen sind im Zusammenhang mit Chipsicherheit auch unter dem Begriff „Physical Unclonable Funktion” (PUF) bekannt. Allgemein kann eine PUF als ein Modul definiert sein, das mit dem Sicherungsziel hergestellt ist, dass zufällige Fluktuationen im Herstellungs- oder Konfigurationsprozess seine Funktionalität so bestimmen, dass das Modul nicht physikalisch so dupliziert werden kann, dass das Duplikat die gleiche Funktionalität aufweist. Eine PUF kann als ein System gesehen werden, welches für eine Eingabe (Challenge) eine eindeutige, individuelle Antwort (Response) liefert. Die Antworten basieren dabei auf physikalischen Besonderheiten des Moduls, die durch intrinsische und zufällige Fluktuationen oder Variationen im Herstellungs- oder Konfigurationsprozess der jeweiligen zugrunde liegenden Hardware beeinflusst sind. Die Variationen können bei integrierten Schaltkreisen beispielsweise auf Schwankungen in der Konzentration von Dotierungen und in Gate-Längen von Transistoren zurückgeführt werden. Dadurch gibt es (auch bei gleicher Bauweise) von Schaltkreis zu Schaltkreis leichte Veränderungen. Entsprechend kann in jeder PUF für jede Eingabe eine individuelle Antwort generiert werden, die nicht vorhersehbar, jedoch jederzeit verlässlich wiederholbar ist, sodass eine individualisierte Funktionalität ermöglicht wird, die nicht klonbar sein soll.Such individualized functions or functionalities of security modules are also known by the term "physical unclonable function" (PUF) in connection with chip security. In general, a PUF may be defined as a module fabricated with the backup goal that random fluctuations in the manufacturing or configuration process determine its functionality such that the module can not be physically duplicated so that the duplicate has the same functionality. A PUF can be seen as a system that provides a unique, individual response (response) to a challenge. The answers are based on physical peculiarities of the module, which are influenced by intrinsic and random fluctuations or variations in the manufacturing or configuration process of the respective underlying hardware. The variations in integrated circuits can be attributed, for example, to variations in the concentration of dopants and in gate lengths of transistors. As a result, there are slight changes (even with the same design) from circuit to circuit. Accordingly, in each PUF an individual response can be generated for each input, which is unpredictable but reliably repeatable at any time, thus allowing an individualized functionality that should not be clonable.

Obwohl die Sicherheitsmodule auch auf baugleicher Hardware nicht geklont werden können, sind sie durch verschiedene Methoden des maschinellen Lernens und der Linearisierung angreifbar. Beispielsweise kann bei einem direkten Zugriff auf ein Sicherheitsmodul durch ausreichend viele Challenge-Response-Paare ihr Verhalten teilweise in kürzester Zeit erlernt werden. Beispielsweise können verschiedene Challenges mit jeweils einer Änderung von nur einem Bit systematisch getestet und kann so das Verhalten des Sicherheitsmoduls charakterisiert werden. Mit solchen Methoden können Software-Modelle von Sicherheitsmodulen erstellt werden, wodurch diese simulierbar werden und daher keine Sicherheit mehr gewährleisten.Although the security modules can not be cloned on identical hardware, they are vulnerable to various methods of machine learning and linearization. For example, in the case of direct access to a security module, a sufficient number of challenge-response pairs can partially learn their behavior in a very short time. For example, various challenges, each with a change of only one bit, can be systematically tested and thus the behavior of the security module can be characterized. With such methods, software models of security modules can be created, making them more easily simulated and therefore no longer secure.

Gehärtete PUFs versuchen durch die Einführung weiterer Nichtlinearitäten in der PUF und eine damit einhergehende Erhöhung der Anzahl von Verknüpfungen, solche Angriffe abzuwehren, indem die Vorhersagbarkeit von Challenge-Response-Paaren erschwert wird. Jedoch ist nicht auszuschließen, dass auch bei derartigen Erweiterungen Linearisierungen vorgenommen und durch Verfahren des maschinellen Lernens Modellbildungen in kurzer Zeit durchgeführt werden können, sodass auch hier keine ausreichend hohe Sicherheit mehr gegeben sein dürfte.Hardened PUFs try by introducing further nonlinearities in the PUF and a concomitant increase in the number of links to fend off such attacks, making the predictability of challenge-response pairs difficult. However, it can not be ruled out that even with such extensions, linearizations can be carried out and model-forming processes can be carried out in a short time by means of machine learning, so that here, too, no sufficiently high level of security is likely to be given.

Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, die Chipsicherheit weiter zu erhöhen.The present invention is therefore based on the object to further increase the chip security.

Die vorgenannte Aufgabe wird durch ein Verfahren gemäß dem Hauptanspruch und ein Verfahren, einen Server, eine Vorrichtung und ein System gemäß den nebengeordneten Ansprüchen gelöst. Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen definiert.The above object is achieved by a method according to the main claim and a method, a server, a device and a system according to the independent claims. Preferred embodiments are defined in the dependent claims.

Erfindungsgemäß ist ein Verfahren angegeben, das ein Bereitstellen einer elektronischen Vorrichtung mit einem Sicherheitsmodul, auf dem eine Vielzahl von für die elektronische Vorrichtung individualisierten Funktionen realisierbar ist, ein Empfangen einer Anforderung zur Abfrage des Sicherheitsmoduls der elektronischen Vorrichtung, als Reaktion auf die Anforderung ein Senden von Konfigurationsdaten zur Realisierung einer individualisierten Funktion aus der Vielzahl von individualisierten Funktionen auf dem Sicherheitsmodul, ein Bereitstellen mindestens einer Eingabe für das Sicherheitsmodul und ein Empfangen mindestens einer Antwort der elektronischen Vorrichtung basierend auf einer Verarbeitung der mindestens einen Eingabe im Sicherheitsmodul, auf dem die individualisierte Funktion realisiert ist, umfasst.According to the invention, there is provided a method of providing an electronic device having a security module capable of implementing a plurality of functions customized to the electronic device, receiving a request to poll the security module of the electronic device in response to the request Configuration data for implementing an individualized function of the plurality of individualized functions on the security module, providing at least one input for the security module and receiving at least one response of the electronic device based on processing the at least one input in the security module on which realizes the individualized function is included.

Das erfindungsgemäße Sicherheitsmodul ist daher frei konfigurierbar, indem eine Vielzahl von für die elektronische Vorrichtung individualisierten Funktionen auf dem Sicherheitsmodul realisierbar ist. Somit muss auf dem Sicherheitsmodul auch keine individualisierte Funktion vorab realisiert sein, sodass auch bei einer Analyse des Sicherheitsmoduls, beispielsweise durch maschinelles Lernen oder Linearisierungen, keine Rückschlüsse auf sein Verhalten gezogen werden können. Erst auf eine konkrete Anforderung zur Abfrage des Sicherheitsmoduls werden Konfigurationsdaten zur Realisierung einer der möglichen individualisierten Funktionen gesendet, um das Sicherheitsmodul zu konfigurieren. Erst mit diesen zunächst unbekannten Konfigurationsdaten kann die mindestens eine Antwort auf die mindestens eine Eingabe durch das Sicherheitsmodul berechnet werden. Die Realisierung oder Implementierung der individualisierten Funktion stellt somit einen Teil der Abfrage des Sicherheitsmoduls dar und kann nicht vorab ermittelt werden, wodurch gängige Angriffe wirkungsvoll abgewehrt werden und Sicherheitsmodule mit einem hohen Sicherheitsniveau bereitgestellt werden.The security module according to the invention is therefore freely configurable in that a multiplicity of functions that are individualized for the electronic device can be implemented on the security module. Thus, no individualized function must be implemented in advance on the security module, so that even in an analysis of the security module, for example by machine learning or linearizations, no conclusions can be drawn on its behavior. Only after a specific request to query the security module configuration data to implement one of the possible individualized functions are sent to configure the security module. Only with these initially unknown configuration data can the at least one response to the at least one input be calculated by the security module. The implementation or implementation of the individualized function thus forms part of the query of the security module and can not be determined in advance, which effectively avoids common attacks and security modules are provided with a high level of security.

Ein Sicherheitsmodul einer elektronischen Vorrichtung mit einer realisierten, für die elektronische Vorrichtung (oder das Sicherheitsmodul) individualisierten Funktion wird in dieser Beschreibung als ein Modul verstanden, das mit dem Sicherheitsziel bereitgestellt ist, dass zufällige Fluktuationen oder Variationen (der Hardware) im Herstellungs- oder einem Konfigurationsprozess seine Funktionalität so bestimmen, dass das Modul nicht physikalisch so dupliziert werden kann, dass ein Duplikat die gleiche Funktionalität aufweisen würde. Entsprechend ist durch die zufälligen Fluktuationen oder Variationen (der Hardware) der elektronischen Vorrichtung (oder des Sicherheitsmoduls) die Funktionalität für die elektronische Vorrichtung (oder das Sicherheitsmodul) individualisiert.A security module of an electronic device having a realized individualized function for the electronic device (or security module) is understood in this specification to be a module provided with the security objective of allowing random fluctuations or variations (of hardware) in the manufacturing or manufacturing process Configuration process determine its functionality so that the module can not be physically duplicated so that a duplicate would have the same functionality. Accordingly, due to the random fluctuations or variations (of the hardware) of the electronic device (or security module), the functionality for the electronic device (or security module) is individualized.

Das Sicherheitsmodul (oder die darin realisierte individualisierte Funktionalität oder Funktion) kann somit als eine Physical Unclonable Function (PUF) aufgefasst werden. Vorzugsweise entspricht daher die Vielzahl von individualisierten Funktionen einer Vielzahl von Physical Unclonable Functions (PUFs). Jedoch sollte verständlich sein, dass die vorliegende Erfindung nicht auf eine bestimmte Implementierung eines Sicherheitsmoduls oder auf eine spezielle individualisierte Funktion oder Funktionalität beschränkt ist und eine PUF lediglich ein bevorzugtes Beispiel für eine derartige individualisierte Funktion oder Funktionalität darstellt. Ferner ist die vorliegende Erfindung nicht auf eine bestimmte realisierte Funktion oder Funktionalität beschränkt. Vielmehr kann die realisierte Funktionalität einer sicheren Speicherung von Informationen dienen, beispielsweise zur Generierung von Schlüsselmaterial oder zur Authentifizierung. Ferner kann die Funktionalität eine Berechnung spezieller Funktionen mit einer höheren Geschwindigkeit als auf einem gewöhnlichen PC, sogenannte public PUFs, oder eine andere Funktion oder Funktionalität betreffen und die vorliegende Erfindung ist hierdurch nicht beschränkt. Dem Fachmann ist vielmehr klar, dass die vorliegende Erfindung für eine beliebige individualisierte Funktion oder Funktionalität, welche unklonbar ist, da sie auf zufälligen Fluktuationen von physikalischen Eigenschaften der zugrunde liegenden elektronischen Vorrichtung oder des Sicherheitsmoduls beruht, dadurch definiert ist, dass die Realisierung der individualisierten Funktion oder Funktionalität nicht bereits bei der ursprünglichen Herstellung, Auslieferung oder Konfiguration erfolgt, sondern erst als Teil einer Anforderung zur Abfrage des Sicherheitsmoduls ermöglicht wird. Somit können auch bei einem zeitweiligen physikalischen Zugriff auf die elektronische Vorrichtung keine Rückschlüsse auf die darin realisierte individualisierte Funktion gezogen werden, wodurch solche Angriffe wirkungsvoll verhindert werden.The security module (or the individualized functionality or function implemented therein) can thus be understood as a Physical Unclonable Function (PUF). Preferably, therefore, the plurality of individualized functions corresponds to a plurality of Physical Unclonable Functions (PUFs). However, it should be understood that the present invention is not limited to any particular implementation of a security module or to a particular individualized function or functionality, and a PUF is merely one preferred example of such an individualized function or functionality. Furthermore, the present invention is not limited to any particular implemented function or functionality. Rather, the implemented functionality can be used for secure storage of information, for example for generating key material or for authentication. Further, the functionality may involve calculation of specific functions at a higher speed than on a common PC, so-called public PUFs, or other function or functionality, and the present invention is not limited thereby. Rather, it will be apparent to those skilled in the art that the present invention is defined for any individualized function or functionality that is unclonable because it relies on random fluctuations in physical characteristics of the underlying electronic device or security module, that the realization of the individualized function or functionality does not already take place during the original production, delivery or configuration, but is made possible only as part of a request to query the security module. Thus, even with a temporary physical access to the electronic device no conclusions on the realized therein individualized function, effectively preventing such attacks.

In einer bevorzugten Ausführungsform umfasst die Verarbeitung der mindestens einen Eingabe im Sicherheitsmodul eine Verarbeitung der mindestens einen Eingabe durch die realisierte individualisierte Funktion. Vorzugsweise ist die Verarbeitung der mindestens einen Eingabe durch die realisierte individualisierte Funktion durch individuelle physikalische Eigenschaften der elektronischen Vorrichtung bedingt. Die individuellen physikalischen Eigenschaften können zumindest teilweise den zufälligen Fluktuationen und Variationen des Herstellungs- oder des Konfigurationsprozesses der elektronischen Vorrichtung oder des Sicherheitsmoduls entsprechen. Hierdurch kann für unterschiedliche (jedoch baugleiche) elektronische Vorrichtungen oder Sicherheitsmodule auch bei identischen Konfigurationsdaten zur Realisierung derselben individualisierten Funktion die Verarbeitung der mindestens einen Eingabe in unterschiedlichen Sicherheitsmodulen zu unterschiedlichen Ergebnissen führen, welche auf die individuellen und daher möglicherweise unterschiedlichen physikalischen Eigenschaften der elektronischen Vorrichtungen zurückgeführt werden können.In a preferred embodiment, the processing of the at least one input in the security module comprises a processing of the at least one input by the realized individualized function. Preferably, the processing of the at least one input by the realized individualized function is conditioned by individual physical characteristics of the electronic device. The individual physical characteristics may correspond, at least in part, to the random fluctuations and variations in the manufacturing or configuration process of the electronic device or security module. As a result, for different (but identical) electronic devices or security modules even with identical configuration data to realize the same individualized function, the processing of at least one input in different security modules lead to different results, which are attributed to the individual and therefore possibly different physical properties of the electronic devices can.

In einer weiteren Ausführungsform definieren die Konfigurationsdaten eine Verschaltung von elektronischen Bauteilen im Sicherheitsmodul. Das Sicherheitsmodul kann beispielsweise durch ein Field Programmable Gate Array (FPGA) realisiert sein. Das FPGA kann eine Matrix aus programmierbaren Logikblöcken aufweisen, welche frei miteinander verschaltet werden können. Somit kann durch unterschiedliche Konfigurationen des FPGA eine Vielzahl von individualisierten Funktionen realisiert werden. Die Verschaltung des FPGA kann derart erfolgen, dass für jede Konfiguration die Verarbeitung von Eingaben durch Fluktuationen und Variationen von Eigenschaften (der Hardware) des FPGA bedingt ist, sodass entsprechende Antworten für das FPGA individualisiert sind und auf anderen (baugleichen) FPGAs trotz gleicher Konfiguration und Eingaben variieren.In a further embodiment, the configuration data define an interconnection of electronic components in the security module. The security module can be realized, for example, by a Field Programmable Gate Array (FPGA). The FPGA may comprise a matrix of programmable logic blocks which can be interconnected freely. Thus, a variety of individualized functions can be realized by different configurations of the FPGA. The interconnection of the FPGA may be such that for each configuration, the processing of inputs is due to fluctuations and variations in characteristics (of the hardware) of the FPGA, so that corresponding responses are individualized for the FPGA and on other (identical) FPGAs despite the same configuration and configuration Entries vary.

In einer weiteren Ausführungsform werden die verschalteten elektronischen Bauteile zumindest teilweise durch die mindestens eine Eingabe gesteuert und die Antwort ist zumindest teilweise durch Ermitteln mindestens einer Ausgabe der verschalteten elektronischen Bauteile definiert. Die Konfigurationsdaten können daher eine Verschaltung der elektronischen Bauteile definieren, welche zusätzlich durch die mindestens eine Eingabe angesteuert werden. Beispielsweise kann jeweils mindestens ein Bit der Eingabe zur Ansteuerung von mindestens einem der verschalteten elektronischen Bauteile im Sicherheitsmodul verwendet werden. Die verschalteten elektronischen Bauteile können mindestens ein Signal verarbeiten, um die mindestens eine Ausgabe zu erhalten. Das Signal kann zumindest teilweise auf der Eingabe basieren. Die Kombination von Konfigurationsdaten und der Eingabe kann daher auch als eine zweiteilige Challenge aufgefasst werden. Ein Angreifer kann jedoch ohne Kenntnis des ersten Teils der zweiteiligen Challenge keine Modellierung des Sicherheitsmoduls vornehmen, da die Anzahl der zu modellierenden individualisierten Funktionen, welche auf dem Sicherheitsmodul realisierbar sind, derart hoch sein kann, dass eine Modellierung nicht in einem praktikablen Zeitrahmen bewerkstelligt werden kann.In another embodiment, the interconnected electronic components are at least partially controlled by the at least one input, and the response is at least partially defined by determining at least one output of the interconnected electronic components. The configuration data can therefore define an interconnection of the electronic components, which are additionally controlled by the at least one input. For example, in each case at least one bit of the input can be used to control at least one of the interconnected electronic components in the security module. The interconnected electronic components may process at least one signal to obtain the at least one output. The signal may be based, at least in part, on the input. The combination of configuration data and input can therefore also be understood as a two-part challenge. However, an attacker can not model the security module without knowledge of the first part of the two-part challenge, since the number of individualized functions to be modeled that can be implemented on the security module can be so high that modeling can not be accomplished in a practical timeframe ,

Gemäß einer Ausführungsform definieren die Konfigurationsdaten eine Kette von Verzögerungsgliedern der elektronischen Vorrichtung. Die Verzögerungsglieder können aus einem oder mehreren Multiplexer aufgebaut sein. Beispielsweise kann jedes Verzögerungsglied zwei Multiplexer aufweisen. Die Kette von Verzögerungsgliedern kann zwei Signale auf zwei Wegen, entweder entlang eines oberen Pfads oder entlang eines unteren Pfads, durch das Sicherheitsmodul durchleiten. An jedem Verzögerungsglied können die Signale entweder direkt entlang ihrer Pfade durchgeleitet oder die Pfade der Signale können vertauscht werden.According to one embodiment, the configuration data defines a chain of delay elements of the electronic device. The delay elements may be constructed from one or more multiplexers. For example, each delay can have two multiplexers. The chain of delays may pass two signals through the security module in two ways, either along an upper path or along a lower path. At each delay element, the signals can either be passed directly along their paths or the paths of the signals can be reversed.

In einer vorteilhaften Ausführungsform konfiguriert die Eingabe zumindest teilweise einzelne Verzögerungsglieder der Kette und die Ausgabe beruht auf der Laufzeit von Signalen durch die Kette von Verzögerungsgliedern. Dementsprechend können die Verzögerungsglieder durch Teile der Eingabe, beispielsweise einzelne Bits der Eingabe, gesteuert werden und so ein Vertauschen oder Durchleiten der Signale bestimmen, woraus unterschiedliche Laufzeiten der Signale durch die Kette resultieren können. So können einzelne Bits der Eingabe (Challenge) einzelne Multiplexer der Verzögerungsglieder derart verschalten, dass sie bei einem Challenge-Bit von 0 das jeweilige Signal gerade durchleiten oder bei einem Challenge-Bit von 1 beide Signale vertauschen. Es sollte jedoch verständlich sein, dass eine beliebige (auch umgekehrte) Konfiguration der einzelnen Verzögerungsglieder erfolgen kann. Aufgrund von individuellen Prozessvariationen können die Multiplexer der Verzögerungsglieder leicht unterschiedliche, zufällige Verzögerungscharakteristiken aufweisen, wodurch es zu Unterschieden in den Laufzeiten der beiden Signale kommen kann, welche durch die angelegte Challenge charakterisiert werden. Wird das Sicherheitsmodul oder die individualisierte Funktion als eine PUF aufgefasst, so kann die konfigurierte Kette von Verzögerungsgliedern eine Arbiter-PUF darstellen.In an advantageous embodiment, the input at least partially configures individual delay elements of the chain and the output is based on the transit time of signals through the chain of delay elements. Accordingly, the delay elements may be controlled by portions of the input, for example, individual bits of the input, thus determining swapping or routing of the signals, which may result in different transit times of the signals through the chain. Thus, individual bits of the input (challenge) can interconnect individual multiplexers of the delay elements in such a way that they just pass through the respective signal in the case of a challenge bit of 0 or swap both signals in the case of a challenge bit of 1. However, it should be understood that any (even reverse) configuration of the individual delay elements can be made. Due to individual process variations, the multiplexers of the delay elements may have slightly different random delay characteristics, which may result in differences in the durations of the two signals that are characterized by the applied challenge. If the security module or the individualized function is understood as a PUF, then the configured chain of delay elements can represent an arbiter PUF.

Eine Arbiter-PUF definiert zwei gleich lange Wege durch eine Kette von Verzögerungsgliedern, über die ein Signal mit einer steigenden Flanke parallel geschickt wird. Diese Verzögerungsglieder können dabei Wechsel zwischen den beiden Ketten ausführen, wobei die Verzögerungsglieder je nach der gegebenen Challenge das Signal auf den zwei unterschiedlichen, aber üblicherweise im Hinblick auf das Layout identischen Wegen verschalten. Bei einer Arbiter-PUF mit n Verzögerungsgliedern können die Signale auf 2n verschiedenen Pfaden laufen, welche leicht unterschiedliche Verzögerungscharakteristiken aufweisen. Dadurch kommt es zu Unterschieden in den Laufzeiten der beiden Signale. Die Arbiter-PUF kann beispielsweise aus einer Kette von 64 Verzögerungsgliedern bestehen, sodass eine Challenge eine 64-Bit-Zahl zur Steuerung der Arbiter-PUF sein kann. Es sollte jedoch verständlich sein, dass die vorliegende Erfindung nicht auf eine bestimmte Länge der Arbiter-PUF beschränkt ist. Vielmehr sind andere Ketten mit einer kleineren oder einer größeren Anzahl von Gliedern denkbar, beispielsweise eine Kette mit 32, 128 oder 256 Verzögerungsgliedern. Die Verwendung einer Zweierpotenz von Verzögerungsgliedern ist vorteilhaft, da die Bits einer Challenge entsprechender Länge direkt auf die einzelnen Verzögerungsglieder abgebildet werden können. Jedoch sollte verständlich sein, dass die vorliegende Erfindung nicht auf eine bestimmte Granularität der Anzahl der Verzögerungsglieder beschränkt ist. Die Arbiter-PUF kann ferner einen Arbiter am Ende der Kette von Verzögerungsgliedern aufweisen, welcher entsprechend eine 0 oder eine 1 ausgeben kann, je nachdem, welches der beiden Signale zuerst durch die Kette von Verzögerungsgliedern ankommt. Die Ausgabe kann die Response der Arbiter-PUF sein, die je nach der Verschaltung der einzelnen Verzögerungsglieder in Abhängigkeit von der gegebenen Challenge unterschiedlich ausfällt. Die geringen Schwankungen in der Herstellung der zugrunde liegenden elektronischen Vorrichtung (oder des Sicherheitsmoduls) führen zu einem individuellen Challenge-Response-Verhalten und somit zu einer individualisierten Funktionalität der elektronischen Vorrichtung des Sicherheitsmoduls.An arbiter PUF defines two equally long paths through a chain of delay elements, via which a signal with a rising edge is sent in parallel. In this case, these delay elements can execute changes between the two chains, the delay elements, depending on the given challenge, interconnecting the signal on the two different paths, but usually identical with respect to the layout. For an arbiter PUF with n delay elements, the signals can run on 2 n different paths, which have slightly different delay characteristics. This results in differences in the transit times of the two signals. For example, the arbiter PUF may consist of a chain of 64 delays, so that a challenge may be a 64-bit number to control the arbiter PUF. It should be understood, however, that the present invention is not limited to any particular length of the arbiter PUF. Rather, other chains are conceivable with a smaller or a larger number of links, such as a chain with 32, 128 or 256 delay elements. The use of a power of two of delay elements is advantageous because the bits of a challenge of appropriate length can be mapped directly to the individual delay elements. However, it should be understood that the present invention is not limited to any particular granularity of the number of delay elements. The arbiter PUF may further comprise an arbiter at the end of the chain of delay elements, which may respectively output a 0 or a 1, depending on which of the two signals arrives first through the chain of delay elements. The output may be the response of the arbiter PUF, which varies depending on the interconnection of the individual delay elements depending on the given challenge. The small variations in the production of the underlying electronic device (or security module) lead to an individual challenge-response behavior and thus to an individualized functionality of the electronic device of the security module.

Obwohl Ausführungsformen der vorliegenden Erfindung in Bezug auf eine Arbiter-PUF beschrieben sind, sollte verständlich sein, dass die vorliegende Erfindung nicht auf eine PUF oder eine bestimmte Art einer PUF beschränkt ist. Vielmehr umfasst die vorliegende Erfindung beliebige individualisierte Funktionen, welche auf einem frei konfigurierbaren Sicherheitsmodul realisierbar sind. Beispielsweise können Ausführungsformen der vorliegenden Erfindung auf einer SRAM-PUF, einer Ring-Oszillator-PUF, einer bistabilen Ring-PUF oder einer anderen beliebigen individualisierten Funktionalität beruhen, welche in dem Sicherheitsmodul realisierbar sein kann.Although embodiments of the present invention are described with respect to an arbiter PUF, it should be understood that the present invention is not limited to a PUF or a particular type of PUF. Rather, the present invention includes any individualized functions that can be implemented on a freely configurable security module. For example, embodiments of the present invention may be based on a SRAM PUF, a ring oscillator PUF, a bistable ring PUF, or any other individualized functionality that may be practicable in the security module.

In einer bevorzugten Ausführungsform umfasst das Verfahren als Reaktion auf eine weitere Anforderung zur Abfrage des Sicherheitsmoduls der elektronischen Vorrichtung ferner ein Senden von weiteren Konfigurationsdaten zur Realisierung einer weiteren individualisierten Funktion aus der Vielzahl von individualisierten Funktionen auf dem Sicherheitsmodul. Vorzugsweise kann das Verfahren ein Ermitteln der Anzahl vorhergehender Anforderungen umfassen, wobei die weiteren Konfigurationsdaten nur dann gesendet werden, wenn die Anzahl der Anforderungen einen Schwellwert übersteigt. Über den Schwellwert kann gesteuert werden, ob bei einer nachfolgenden Abfrage des Sicherheitsmoduls neue Konfigurationsdaten gesendet werden. Beispielsweise wird bei einem Schwellwert von 0 das Sicherheitsmodul bei jeder Anforderung neu konfiguriert. Eine Wiederverwendung von Konfigurationsdaten für eine Anzahl von Abfragen des Sicherheitsmoduls kann die Menge an zu übermittelnden Daten reduzieren. Ein höherer Schwellwert muss jedoch auf ein gewünschtes Sicherheitsniveau angepasst werden, da durchaus die Möglichkeit besteht, ein Sicherheitsmodul mit einer bestehenden Konfiguration (zumindest für einige nachfolgende Abfragen) zu brechen. Je nach Sicherheitsniveau kann somit eine effiziente, jedoch ausreichend sichere Konfiguration des Sicherheitsmoduls gegeben sein. Die Anzahl vorhergehender Anforderungen kann entweder auf der elektronischen Vorrichtung selbst zwischengespeichert sein, sodass die Anforderung mindestens einen Parameter aufweisen kann, der die Anzahl der vorhergehenden Anforderungen angibt. Die Anzahl der vorhergehenden Anforderungen kann jedoch auch auf einem Client oder einem Server ermittelt und gespeichert werden, der die Abfrage des Sicherheitsmoduls steuert. Durch ein Hinterlegen eines entsprechenden Parameters auf dem Server kann eine dynamische und individuelle Festlegung eines Sicherheitsniveaus für einzelne elektronische Vorrichtungen erfolgen.In a preferred embodiment, in response to a further request to query the security module of the electronic device, the method further comprises sending further configuration data to realize another individualized function of the plurality of individualized functions on the security module. Preferably, the method may include determining the number of previous requests, wherein the further configuration data is sent only if the number of requests exceeds a threshold. The threshold value can be used to control whether new configuration data is sent during a subsequent polling of the security module. For example, with a threshold of 0, the security module will be reconfigured on every request. Reusing configuration data for a number of security module queries can reduce the amount of data to be submitted. However, a higher threshold must be adjusted to a desired level of security because it is quite possible to break a security module with an existing configuration (at least for some subsequent queries). Depending on the level of security, an efficient but sufficiently secure configuration of the security module can thus be provided. The number of previous requests may either be cached on the electronic device itself, so that the request may have at least one parameter indicating the number of previous requests. However, the number of previous requests can also be discovered and stored on a client or server controlling the security module's query. By depositing a corresponding parameter on the server, a dynamic and individual determination of a security level for individual electronic devices can take place.

Bei einer weiteren Ausführungsform umfasst das Verfahren ferner ein Abgleichen der mindestens einen Antwort mit Referenzdaten. Vorzugsweise kann das Abgleichen ein Ermitteln einer Distanz zwischen der mindestens einen Antwort und den Referenzdaten aufweisen. Die Referenzdaten können den zur Erzeugung der Antwort verwendeten Konfigurationsdaten und der Eingabe zugeordnet sein. Die mindestens eine Eingabe kann einen oder mehrere Werte oder Zahlen umfassen, beispielsweise 100, 200, 300 oder mehr oder weniger Werte, welche als Eingabe für die auf dem Sicherheitsmodul realisierte individualisierte Funktion verwendet werden, wobei die jeweiligen Antworten für jeden Wert die mindestens eine Antwort bilden können. So kann für 100 Eingabewerte mit einem 1-Bit-Ergebnis pro Eingabewert die mindestens eine Antwort einen 100-Bit-Wert umfassen, der dann mit einem entsprechenden 100-Bit-Referenzwert verglichen werden kann. Hierzu kann eine Hamming-Distanz zwischen der mindestens einen Antwort und dem Referenzwert bestimmt werden. Wenn die Hamming-Distanz kleiner als ein Schwellwert ist, kann der Abgleich erfolgreich sein. Es sollte jedoch verständlich sein, dass die vorliegende Erfindung nicht auf eine Bestimmung eines bestimmten Abstands beschränkt ist. Vielmehr kann jeder beliebige Ansatz zum Abgleich zwischen einer Antwort und entsprechenden Referenzdaten verwendet werden.In another embodiment, the method further comprises matching the at least one response to reference data. Preferably, the matching may include determining a distance between the at least one response and the reference data. The reference data may be associated with the configuration data used to generate the response and the input. The at least one input may include one or more values or numbers, for example, 100, 200, 300 or more or fewer values used as input for the individualized function implemented on the security module, the respective responses for each value being the at least one response can form. Thus, for 100 input values with a 1-bit result per input value, the at least one response may comprise a 100-bit value, which may then be compared to a corresponding 100-bit reference value. For this purpose can determining a Hamming distance between the at least one response and the reference value. If the Hamming distance is less than a threshold, the balance can be successful. It should be understood, however, that the present invention is not limited to a determination of a particular distance. Rather, any approach for matching between a response and corresponding reference data can be used.

In einer bevorzugten Ausführungsform wird das Sicherheitsmodul zur Authentifizierung der elektronischen Vorrichtung abgefragt. Die zufällige individuelle Fluktuation und Variation der physikalischen Eigenschaften der elektronischen Vorrichtung (oder des Sicherheitsmoduls) kann ein elektronisches biometrisches Merkmal der elektronischen Vorrichtung (oder des Sicherheitsmoduls) darstellen, welches als ein elektronischer Fingerabdruck der elektronischen Vorrichtung (oder des Sicherheitsmoduls) definiert sein kann. Durch die Konfiguration des Sicherheitsmoduls mit einer bestimmten individualisierten Funktion und die Verwendung von Eingabewerten zur Verarbeitung auf dem Sicherheitsmodul kann das elektronische biometrische Merkmal oder der elektronische Fingerabdruck des Sicherheitsmoduls ermittelt werden. Dieser kann nur auf dem Sicherheitsmodul und nicht auf einer auch baugleichen Kopie des Sicherheitsmoduls erzeugt werden, wodurch die Authentizität des Sicherheitsmoduls ermittelt werden kann. Da die Konfiguration des Sicherheitsmoduls mit einer individualisierten Funktion vor der eigentlichen Anforderung der Authentifizierung unbekannt ist, kann der elektronische Fingerabdruck des Sicherheitsmoduls nicht vorab modelliert oder anderweitig nachgebildet werden. Hierdurch wird ein Authentifizierungsverfahren mit einem besonders hohen Sicherheitsniveau bereitgestellt, welches mit fest konfigurierten elektronischen Vorrichtungen nicht erreicht werden kann.In a preferred embodiment, the security module is requested for authentication of the electronic device. The random individual fluctuation and variation in the physical characteristics of the electronic device (or security module) may represent an electronic biometric feature of the electronic device (or security module) that may be defined as an electronic fingerprint of the electronic device (or security module). By configuring the security module with a particular individualized function and using input values for processing on the security module, the electronic biometric feature or the electronic fingerprint of the security module can be determined. This can only be generated on the security module and not on an identical copy of the security module, whereby the authenticity of the security module can be determined. Since the configuration of the security module with an individualized function prior to the actual request for authentication is unknown, the security module's electronic fingerprint can not be modeled in advance or otherwise replicated. This provides an authentication method with a particularly high level of security, which can not be achieved with permanently configured electronic devices.

In einer weiteren Ausführungsform umfasst das Verfahren ein Senden einer Bestätigung der Authentizität der elektronischen Vorrichtung, wenn ein Abgleich der mindestens einen Antwort mit Referenzdaten erfolgreich ist. Es kann ferner ein mehrstufiges Verfahren vorgesehen sein. Fällt der berechnete Abstand zwischen der mindestens einen Antwort und entsprechenden Referenzdaten in einen Konfidenzintervall, kann eine erneute Authentifizierung, beispielsweise mit weiteren Konfigurationsdaten und mit einem weiteren Satz von Eingabedaten, in mehreren Stufen erfolgen. Dies kann bevorzugt verwendet werden, wenn die Berechnung der individualisierten Funktion mit einer statistischen Streuung versehen ist.In a further embodiment, the method includes sending confirmation of the authenticity of the electronic device when alignment of the at least one response with reference data is successful. It can also be provided a multi-stage process. If the calculated distance between the at least one response and corresponding reference data falls within a confidence interval, a renewed authentication, for example with further configuration data and with a further set of input data, can take place in several stages. This can preferably be used if the calculation of the individualized function is provided with a statistical variance.

In einer bevorzugten Ausführungsform umfasst das Verfahren ferner ein Vermessen der elektronischen Vorrichtung zur Ermittlung von Referenzdaten jeweils für einen Satz von Konfigurationsdaten und einen Satz entsprechender Eingaben. Vor einer Auslieferung einer Vielzahl von elektronischen Vorrichtungen kann jede elektronische Vorrichtung mit einem Satz von Konfigurationsdaten konfiguriert werden, wodurch die jeweiligen individualisierten Funktionen auf dem Sicherheitsmodul der elektronischen Vorrichtung realisiert werden. Nachfolgend kann einen Vielzahl von Antworten auf eine Vielzahl von Eingaben auf der so konfigurierten elektronischen Vorrichtung bestimmt werden, um entsprechende Referenzdaten zu gewinnen. Die Referenzdaten können in einem abgesicherten Speicher hinterlegt werden und bei nachfolgenden Abfragen der jeweiligen Sicherheitsmodule auf der Grundlage der verwendeten Konfigurationsdaten und der verwendeten Eingabe abgerufen und zum Abgleich mit der mindestens einen Ausgabe herangezogen werden. Obwohl das Sicherheitsmodul zur Implementierung einer großen Anzahl von individualisierten Funktionen eingerichtet ist, kann für eine spätere Abfrage des Sicherheitsmoduls lediglich eine Teilmenge der möglichen individualisierten Funktionen und eine Teilmenge der Eingaben vorgesehen sein. Hiermit kann das Sicherheitsniveau weiter erhöht werden, da ein Angreifer nicht wissen kann, welche Auswahl von Konfigurationen und Eingaben zum Einsatz kommt.In a preferred embodiment, the method further comprises measuring the electronic device for determining reference data for each of a set of configuration data and a set of corresponding inputs. Prior to delivery of a plurality of electronic devices, each electronic device may be configured with a set of configuration data, thereby realizing the respective individualized functions on the security module of the electronic device. Subsequently, a plurality of responses to a plurality of inputs on the thus configured electronic device may be determined to obtain corresponding reference data. The reference data can be stored in a secure memory and retrieved in subsequent queries of the respective security modules on the basis of the configuration data used and the input used and used to compare with the at least one output. Although the security module is set up to implement a large number of individualized functions, for a subsequent query of the security module only a subset of the possible individualized functions and a subset of the inputs can be provided. This can further increase the security level because an attacker can not know which selection of configurations and inputs to use.

Erfindungsgemäß ist ferner ein Verfahren zur Ermittlung einer Vielzahl von Physical Unclonable Functions (PUFs) zur Realisierung auf Sicherheitsmodulen von elektronischen Vorrichtungen angegeben. Hierzu kann eine Referenzvorrichtung vermessen werden, welche baugleich mit der elektronischen Vorrichtung ist. Das Vermessen der Referenzvorrichtung kann ein Bestimmen eines Satzes von PUFs und eines Satzes von Eingaben umfassen, welche zur Abfrage der Sicherheitsmodule der baugleichen elektronischen Vorrichtungen verwendet werden. Das Verfahren zur Ermittlung einer Vielzahl von PUFs kann mit beliebigen Verfahrensschritten eines Verfahrens zur Abfrage eines Sicherheitsmoduls gemäß Ausführungsformen der vorliegenden Erfindung kombiniert werden. Umgekehrt kann ein Verfahren zur Abfrage eines Sicherheitsmoduls mit Verfahrensschritten des Verfahrens zur Ermittlung einer Vielzahl von PUFs beliebig kombiniert werden. Das erfindungsgemäße Verfahren ermöglicht eine Realisierung einer Vielzahl von PUFs auf einem Sicherheitsmodul, welches auf eine Anforderung zur Abfrage des Sicherheitsmoduls frei konfigurierbar ist. Vorzugsweise weist die elektronische Vorrichtung oder das Sicherheitsmodul ein FPGA zur Realisierung der Vielzahl von PUFs auf.According to the invention, a method is also specified for determining a multiplicity of physical unclonable functions (PUFs) for implementation on security modules of electronic devices. For this purpose, a reference device can be measured, which is identical to the electronic device. The surveying of the reference device may include determining a set of PUFs and a set of inputs used to query the security modules of the identically constructed electronic devices. The method for determining a plurality of PUFs may be combined with any method steps of a method for polling a security module according to embodiments of the present invention. Conversely, a method for querying a security module with method steps of the method for determining a plurality of PUFs can be combined as desired. The inventive method allows a realization of a plurality of PUFs on a security module, which is freely configurable to a request for polling the security module. The electronic device or the security module preferably has an FPGA for realizing the multiplicity of PUFs.

In einer bevorzugten Ausführungsform weist der Satz von Eingaben Eingaben mit einem definierten Verhalten auf der Referenzvorrichtung auf. Obwohl FPGAs einfach zur Realisierung einer Vielzahl von PUFs verwendet werden können, beispielsweise zur Realisierung von Arbiter-PUFs, kann bei einem FPGA nur in einem geringen Umfang die genaue Verschaltung der Elemente des FPGA gesteuert werden. Bei einer Realisierung von Arbiter-PUFs auf einem FPGA kann beispielsweise durch eine ungünstige Verschaltung der Elemente die Laufzeit zwischen zwei Verzögerungsstufen oder -gliedern allein durch den Abstand der Elemente voneinander so stark beeinflusst werden, dass diese viel größer als die durch individuelle Variationen der FPGA-Chips hervorgerufenen Laufzeiten ist. Die Chips verhalten sich dann alle fast gleich, sodass sie keine PUFs mehr sind. Dies kann durch eine Auswahl von geeigneten Eingaben verhindert werden, da die Eingaben die einzelnen Verzögerungsglieder und somit den Verlauf der Signalpfade in der Arbiter-PUF steuern. Für eine realisierte PUF auf der Referenzvorrichtung kann das definierte (erwünschte) Verhalten der Eingabe ein metastabiles Verhalten sein. Eine Eingabe weist ein metastabiles Verhalten auf, wenn die ermittelte Antwort auf dieselbe Eingabe zwischen zwei oder mehreren Werten mit derselben oder mit einer hohen Wahrscheinlichkeit schwankt. Bei einer binären Antwort kann diese beispielsweise für dieselbe Eingabe zwischen einer 0 und einer 1 schwanken. Aus diesem Verhalten auf der Referenzvorrichtung kann abgeleitet werden, dass die realisierte PUF für diese Eingabe eine Balance zwischen den Routing- und Herstellungsvarianzen aufweist. Für von der Referenzvorrichtung abweichende (jedoch baugleiche) elektronische Vorrichtungen, welche zufälligen Fluktuationen des Herstellungs- oder Konfigurationsprozesses unterliegen, ist zu erwarten, dass die Verarbeitung derselben Eingabe mit derselben Konfiguration der PUF zu eindeutigen, d. h. unterscheidbaren Antworten führt. Die Auswahl der Eingaben für mögliche PUFs auf einer Referenzvorrichtung ermöglicht somit eine Definition eines Satzes von PUFs mit einer Anzahl von Eingaben, welche ein stabiles, aber unterscheidbares Verhalten auf einer Vielzahl baugleicher elektronischer Vorrichtungen aufweisen.In a preferred embodiment, the set of inputs comprises inputs having a defined behavior on the reference device. Although FPGAs can be easily used to implement a variety of PUFs, For example, to implement arbiter PUFs, the FPGA can only be controlled to a limited extent the exact interconnection of the elements of the FPGA. For example, if arbiter PUFs are implemented on an FPGA, the unfavorable interconnection of the elements can influence the propagation delay between two delay stages or elements solely by the spacing of the elements from each other so much greater than that caused by individual variations of the FPGAs. Chips is caused runtimes. The chips then all behave almost the same, so they are no longer PUFs. This can be prevented by a choice of suitable inputs, since the inputs control the individual delay elements and thus the course of the signal paths in the arbiter PUF. For a realized PUF on the reference device, the defined (desired) behavior of the input may be a metastable behavior. An input has metastable behavior if the determined response to the same input varies between two or more values with the same or a high probability. For a binary response, for example, this may vary between 0 and 1 for the same input. From this behavior on the reference device it can be deduced that the realized PUF has a balance between the routing and manufacturing variances for this input. For electronic devices deviating from the reference device (but identical in construction), which are subject to random fluctuations of the manufacturing or configuration process, it is to be expected that the processing of the same input with the same configuration of the PUF leads to unique, ie distinguishable, responses. The selection of inputs for possible PUFs on a reference device thus allows definition of a set of PUFs with a number of inputs having stable but distinguishable behavior on a variety of identical electronic devices.

Erfindungsgemäß ist ferner ein Server vorgesehen, der zur Bearbeitung von Anforderungen zur Abfrage eines Sicherheitsmoduls einer elektronischen Vorrichtung eingerichtet ist. Entsprechend kann das Verfahren gemäß einer Ausführungsform der vorliegenden Erfindung zur Konfiguration des Servers vorgesehen sein. Beispielsweise kann der Server eingerichtet sein, eine Anforderung zur Abfrage eines Sicherheitsmoduls einer elektronischen Vorrichtung zu empfangen, wobei auf dem Sicherheitsmodul der elektronischen Vorrichtung eine Vielzahl von für die elektronische Vorrichtung individualisierten Funktionen realisierbar ist. Als Reaktion auf die Anforderung kann der Server eingerichtet sein, Konfigurationsdaten zur Realisierung einer individualisierten Funktion aus der Vielzahl von individualisierten Funktionen auf dem Sicherheitsmodul zu senden. Der Server kann eingerichtet sein, mindestens eine Eingabe für das Sicherheitsmodul bereitzustellen. Der Server kann ebenfalls eingerichtet sein, mindestens eine Antwort der elektronischen Vorrichtung zu empfangen, wobei die mindestens eine Antwort auf einer Verarbeitung der mindestens einen Eingabe im Sicherheitsmodul basiert, auf dem die individualisierte Funktion realisiert ist.According to the invention, a server is also provided, which is set up to process requests for querying a security module of an electronic device. Accordingly, the method according to an embodiment of the present invention may be provided for configuring the server. For example, the server may be set up to receive a request to query a security module of an electronic device, wherein a plurality of functions individualized for the electronic device can be implemented on the security module of the electronic device. In response to the request, the server may be configured to send configuration data for realizing an individualized function from the plurality of individualized functions on the security module. The server may be configured to provide at least one input to the security module. The server may also be configured to receive at least one response from the electronic device, wherein the at least one response is based on processing the at least one input in the security module on which the individualized function is implemented.

In einer bevorzugten Ausführungsform kann der Server zur Authentifizierung der elektronischen Vorrichtung eingerichtet sein. Es sollte jedoch verständlich sein, dass die vorliegende Erfindung nicht auf eine Authentifizierung beschränkt ist, sondern eine beliebige Funktionalität anstoßen kann, welche durch die individualisierte Funktion auf dem Sicherheitsmodul bereitgestellt ist, wie vorstehend erläutert.In a preferred embodiment, the server may be configured to authenticate the electronic device. It should be understood, however, that the present invention is not limited to authentication but may initiate any functionality provided by the customized function on the security module, as discussed above.

Gemäß einer weiteren Ausführungsform umfasst der Server mindestens eine Berechnungseinheit und einen Speicher, wobei der Speicher Befehle aufweist, welche, wenn sie von der Berechnungseinheit ausgeführt werden, den Server einrichten, das Verfahren gemäß einer Ausführungsform der vorliegenden Erfindung durchzuführen.According to another embodiment, the server comprises at least one computing unit and a memory, the memory having instructions which, when executed by the computing unit, set up the server to perform the method according to an embodiment of the present invention.

Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist ein Verfahren zur Abfrage eines Sicherheitsmoduls einer elektronischen Vorrichtung definiert, wobei auf dem Sicherheitsmodul eine Vielzahl von für die elektronische Vorrichtung individualisierten Funktionen realisierbar ist. Das Verfahren umfasst ein Senden einer Anforderung zur Abfrage des Sicherheitsmoduls der elektronischen Vorrichtung, ein Empfangen von Konfigurationsdaten für die elektronische Vorrichtung als Antwort auf die Anforderung, ein Konfigurieren der elektronischen Vorrichtung mit den Konfigurationsdaten zur Realisierung einer individualisierten Funktion aus der Vielzahl von individualisierten Funktionen auf dem Sicherheitsmodul, ein Empfangen mindestens einer Eingabe für das Sicherheitsmodul und ein Bereitstellen mindestens einer Antwort der elektronischen Vorrichtung basierend auf einer Verarbeitung der mindestens einen Eingabe im Sicherheitsmodul, auf dem die individualisierte Funktion realisiert ist.According to a further aspect of the present invention, a method for querying a security module of an electronic device is defined, wherein a multiplicity of functions individualized for the electronic device can be implemented on the security module. The method comprises sending a request to query the security module of the electronic device, receiving configuration data for the electronic device in response to the request, configuring the electronic device with the configuration data to realize an individualized function of the plurality of individualized functions on the Security module, receiving at least one input for the security module and providing at least one response of the electronic device based on processing the at least one input in the security module on which the individualized function is realized.

In einer bevorzugten Ausführungsform umfasst das Verfahren ferner ein Senden einer weiteren Anforderung zur Abfrage des Sicherheitsmoduls der elektronischen Vorrichtung und ein Empfangen von weiteren Konfigurationsdaten für die elektronische Vorrichtung als Antwort auf die Anforderung. Die Abfrage des Sicherheitsmoduls beruht somit auf einem Empfang von Konfigurationsdaten, welche zur Einrichtung und/oder Konfiguration des Sicherheitsmoduls verwendet werden, um eine aus der Vielzahl von individualisierten Funktionen auf dem Sicherheitsmodul zu realisieren. Ein derart konfiguriertes Sicherheitsmodul wird anschließend zur Bearbeitung der mindestens einen Eingabe zur Bereitstellung der mindestens einen Antwort herangezogen. Eine genaue Konfiguration des Sicherheitsmoduls ist daher vor der eigentlichen Anforderung der Abfrage des Sicherheitsmoduls nicht bekannt. Zwar kann eine vorhergehende Konfiguration des Sicherheitsmoduls zur Berechnung der mindestens einen Antwort verwendet werden, jedoch können auf eine erneute Anforderung zur Abfrage des Sicherheitsmoduls jederzeit neue Konfigurationsdaten erhalten werden, sodass das Verhalten des Sicherheitsmoduls nicht vorab modellierbar oder lernbar ist. Je nach erforderlichem Sicherheitsniveau können zudem für jede weitere Anforderung der Abfrage des Sicherheitsmoduls zwingend weitere Konfigurationsdaten gesendet werden, um sicherzustellen, dass jede Anforderung mit einer Neukonfiguration des Sicherheitsmoduls verbunden ist.In a preferred embodiment, the method further comprises sending another request to query the security module of the electronic device and receiving further configuration data for the electronic device in response to the request. The query of the security module is thus based on a reception of configuration data, which are used for setting up and / or configuration of the security module to realize one of the plurality of individualized functions on the security module. A security module configured in this way is then used to process the at least one input for Providing the at least one answer. An exact configuration of the security module is therefore not known before the actual request of the query of the security module. Although a previous configuration of the security module may be used to compute the at least one response, new configuration data may be obtained at any time upon a new request to poll the security module so that the behavior of the security module is not pre-modelable or learnable. Depending on the required security level, further configuration data may be sent for each further request of the security module query in order to ensure that each request is associated with a reconfiguration of the security module.

In einer weiteren Ausführungsform umfasst das Verfahren ferner ein Senden der mindestens einen Antwort und ein Empfangen eines Ergebnisses eines Abgleichs der mindestens einen Antwort mit Referenzdaten.In another embodiment, the method further comprises transmitting the at least one response and receiving a result of matching the at least one response to reference data.

Gemäß einer Ausführungsform der vorliegenden Erfindung wird das Konfigurieren des Sicherheitsmoduls in der elektronischen Vorrichtung selbst durchgeführt. Somit kann ein Zugriff auf das Sicherheitsmodul von außen unterbunden werden. Ferner kann die elektronische Vorrichtung eingerichtet sein, eine Neukonfiguration des Sicherheitsmoduls nur im Zusammenhang mit einer Anforderung der Abfrage des Sicherheitsmoduls bereitzustellen.According to one embodiment of the present invention, the configuration of the security module is performed in the electronic device itself. Thus, access to the security module can be prevented from the outside. Furthermore, the electronic device may be configured to provide a reconfiguration of the security module only in connection with a request of the query of the security module.

Das Verfahren zur Abfrage des Sicherheitsmoduls der elektronischen Vorrichtung kann auf einer Client-Vorrichtung, beispielsweise einem Lesegerät oder einer beliebigen anderen Rechenvorrichtung, welche mit der elektronischen Vorrichtung zumindest zeitweise koppelbar ist, durchgeführt werden. Es sollte verständlich sein, dass das auf der Client-Vorrichtung ausgeführte Verfahren Schritte aufweisen kann, welche Verfahrensschritten eines auf einem Server ausgeführten Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung entsprechen. Ferner kann das auf dem Server ausgeführte Verfahren Schritte in beliebiger Kombination aufweisen, welche Schritten des auf einer Client-Vorrichtung ausgeführten Verfahrens gemäß Ausführungsformen der vorliegenden Erfindung entsprechen.The method for polling the security module of the electronic device may be performed on a client device, such as a reader or any other computing device that is at least temporarily connectable to the electronic device. It should be understood that the method performed on the client device may include steps that correspond to method steps of a method executed on a server according to an embodiment of the present invention. Further, the method performed on the server may include steps in any combination that correspond to steps of the method performed on a client device according to embodiments of the present invention.

Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist eine Client-Vorrichtung definiert, auf der das Verfahren zur Abfrage eines Sicherheitsmoduls einer elektronischen Vorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung ausgeführt werden kann. Vorzugsweise kann die Client-Vorrichtung eingerichtet sein, ein solches Verfahren auszuführen. Die Client-Vorrichtung kann eine beliebige Hardware-Einheit sein, welche zumindest zeitweise mit einer elektronischen Vorrichtung mit einem frei konfigurierbaren Sicherheitsmodul koppelbar ist. Beispielsweise kann die Client-Vorrichtung ein Lesegerät sein, welches mit einer Rechenvorrichtung koppelbar ist, die die Abfrage des Sicherheitsmoduls anstoßen kann, wobei die Client-Vorrichtung mit der Rechenvorrichtung kommunizieren kann, um die Anforderung zur Abfrage des Sicherheitsmoduls an einen Server zu senden und entsprechende Konfigurationsdaten und die mindestens eine Eingabe für das Sicherheitsmodul von dem Server zu empfangen.According to another aspect of the present invention, there is defined a client device on which the method for polling a security module of an electronic device according to an embodiment of the present invention may be performed. Preferably, the client device may be configured to perform such a method. The client device can be any hardware unit that can be coupled at least temporarily to an electronic device with a freely configurable security module. For example, the client device may be a reader that may be coupled to a computing device that can initiate the interrogation of the security module, wherein the client device may communicate with the computing device to send the request for interrogation of the security module to a server, and the like Receive configuration data and the at least one input for the security module from the server.

Erfindungsgemäß ist ferner mindestens ein Datenträger definiert, der Befehle speichert, welche bei einer Ausführung auf einer Rechenvorrichtung die Rechenvorrichtung einrichten, ein Verfahren nach einer Ausführungsform der vorliegenden Erfindung durchzuführen. Beispielsweise kann die Rechenvorrichtung ein Server oder eine Client-Vorrichtung nach einer oder mehreren Ausführungsformen der vorliegenden Erfindung sein.According to the invention, at least one data carrier is further defined which stores instructions which, when executed on a computing device, set up the computing device to perform a method according to an embodiment of the present invention. For example, the computing device may be a server or a client device according to one or more embodiments of the present invention.

Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist eine Vorrichtung definiert, welche ein Sicherheitsmodul, einen Eingang, eine Steuereinheit und einen Ausgang umfasst. Auf dem Sicherheitsmodul ist eine Vielzahl von für die elektronische Vorrichtung individualisierten Funktionen realisierbar. Der Eingang ist zum Empfangen von Konfigurationsdaten und mindestens einer Eingabe eingerichtet. Die Steuereinheit ist zum Konfigurieren des Sicherheitsmoduls mit den Konfigurationsdaten zur Realisierung einer individualisierten Funktion aus der Vielzahl von individualisierten Funktionen gemäß den Konfigurationsdaten eingerichtet. Über den Ausgang wird mindestens eine Antwort basierend auf der Verarbeitung der mindestens einen Eingabe im Sicherheitsmodul, auf dem die individualisierte Funktion realisiert ist, ausgegeben.In accordance with another aspect of the present invention, a device is defined that includes a security module, an input, a controller, and an output. On the security module a variety of individualized for the electronic device functions can be realized. The input is set up to receive configuration data and at least one input. The control unit is configured to configure the security module with the configuration data for realizing an individualized function from the plurality of individualized functions according to the configuration data. At least one response based on the processing of the at least one input in the security module on which the individualized function is implemented is output via the output.

Die Vorrichtung kann eine Vorrichtung für einen sicherheitskritischen Bereich sein. Beispielsweise kann die Vorrichtung ein Authentifizierungschip oder ein Chip zur sicheren Speicherung von Informationen sein. Ferner kann die Vorrichtung auf einer beliebigen elektronischen Vorrichtung oder einem elektronischen Dokument angeordnet sein, welche zur sicheren elektronischen Kommunikation und/oder Interaktion vorgesehen sein können. Beispielsweise kann die Vorrichtung auf einer Smartcard oder einem Chip, einem elektronischen Dokument, einem hoheitlichen oder amtlichen Dokument oder einem elektronischen Zahlungsmittel angeordnet sein, beispielsweise auf einer Kreditkarte oder dergleichen. Das Sicherheitsmodul kann eine Vielzahl von für die elektronische Vorrichtung individualisierten Funktionen mit einem oder mehreren elektronischen Schaltkreisen, beispielsweise mittels einer integrierten Schaltung, realisieren. Ferner kann vorzugsweise die Vielzahl von individualisierten Funktionen mittels eines Field Programmable Gate Array (FPGA) realisiert sein.The device may be a device for a safety-critical area. For example, the device may be an authentication chip or a chip for secure storage of information. Furthermore, the device may be arranged on any electronic device or electronic document which may be provided for secure electronic communication and / or interaction. For example, the device may be arranged on a smart card or a chip, an electronic document, a governmental or official document or an electronic means of payment, for example on a credit card or the like. The security module can realize a multiplicity of functions which are individualized for the electronic device with one or more electronic circuits, for example by means of an integrated circuit. Furthermore, preferably the plurality be realized by individualized functions by means of a Field Programmable Gate Array (FPGA).

In einer bevorzugten Ausführungsform entspricht die Vielzahl von individualisierten Funktionen einer Vielzahl von Physical Unclonable Functions (PUFs).In a preferred embodiment, the plurality of individualized functions corresponds to a plurality of Physical Unclonable Functions (PUFs).

Gemäß einer weiteren Ausführungsform kann das FPGA zur Realisierung der Vielzahl von PUFs eingerichtet sein. Vorzugsweise kann das FPGA zur Realisierung einer Vielzahl von Arbiter-PUFs eingerichtet sein.According to a further embodiment, the FPGA can be set up to implement the plurality of PUFs. Preferably, the FPGA may be configured to implement a plurality of arbiter PUFs.

Die vorliegende Erfindung ist jedoch nicht auf eine bestimmte individualisierte Funktion, beispielsweise eine Realisierung einer PUF, beschränkt. Vielmehr kann jede individualisierte Funktion gemäß der Definition der vorliegenden Erfindung auf einem Sicherheitsmodul realisierbar sein. Beispielsweise kann die Vorrichtung zusätzlich oder alternativ einen statischen Direktzugriffsspeicher (Static Random Access Memory, SRAM) umfassen, wobei der Speicher zur Realisierung mindestens einer SRAM-PUF eingerichtet sein kann. Vorzugsweise kann alternativ oder zusätzlich das Sicherheitsmodul mindestens eine Ring-Oszillator-PUF oder mindestens eine bistabile Ring-PUF realisieren. Entsprechend sind beliebige andere Konzepte zur Realisierung individualisierter Funktionen auf einem Sicherheitsmodul von der Erfindung umfasst, sofern das Sicherheitsmodul frei konfigurierbar eingerichtet ist, eine Vielzahl von für die elektronische Vorrichtung individualisierten Funktionen zu realisieren, wobei erst auf eine Anforderung zur Abfrage des Sicherheitsmoduls Konfigurationsdaten bereitgestellt werden, welche zur Realisierung einer individualisierten Funktion aus der Vielzahl von realisierbaren individualisierten Funktionen auf dem Sicherheitsmodul verwendet werden, um die mindestens eine Antwort auf die mindestens eine Eingabe im Sicherheitsmodul zu berechnen.However, the present invention is not limited to a particular individualized function, such as a realization of a PUF. Rather, each individualized function according to the definition of the present invention can be realized on a security module. By way of example, the device may additionally or alternatively comprise a static random access memory (SRAM), wherein the memory may be set up to implement at least one SRAM PUF. Preferably, alternatively or additionally, the security module can realize at least one ring oscillator PUF or at least one bistable ring PUF. Accordingly, any other concepts for realizing individualized functions on a security module are encompassed by the invention, provided that the security module is configured in a freely configurable manner to realize a multiplicity of functions individualized for the electronic device, configuration data only being provided upon request for requesting the security module, which are used to implement an individualized function of the plurality of realizable individualized functions on the security module to calculate the at least one response to the at least one input in the security module.

Erfindungsgemäß ist ferner ein System definiert, das einen Server und mindestens eine Client-Vorrichtung umfasst, die mit einer Vielzahl von elektronischen Vorrichtungen und zumindest zeitweise mit dem mindestens einen Server kommunikativ verbindbar ist. Der Server ist darüber hinaus zur Abfrage einer mit der mindestens einen Client-Vorrichtung verbundenen elektronischen Vorrichtung gemäß einem Verfahren nach einer Ausführungsform der vorliegenden Erfindung eingerichtet.According to the invention, a system is further defined that comprises a server and at least one client device that can be communicatively connected to a plurality of electronic devices and at least temporarily to the at least one server. The server is further configured to query an electronic device connected to the at least one client device according to a method of one embodiment of the present invention.

Gemäß einer weiteren Ausführungsform umfasst das System ferner eine abgesicherte Datenbank zur Speicherung von Konfigurationsdaten der auf der elektronischen Vorrichtung realisierbaren individualisierten Funktionen, von Eingaben und von Referenzdaten für jede aus der Vielzahl von elektronischen Vorrichtungen.According to another embodiment, the system further comprises a secure database for storing configuration data of the individualized functions realizable on the electronic device, inputs and reference data for each of the plurality of electronic devices.

Das System kann vorteilhaft als ein verteiltes System eingerichtet sein, in dem der Server und die Client-Vorrichtungen über ein abgesichertes Netzwerk oder über ein öffentliches Netzwerk kommunizieren, welches zur sicheren Kommunikation eingerichtet sein kann. Ferner können die abgesicherte Datenbank und der Server in einer abgesicherten Umgebung einer vertrauenswürdigen Instanz oder des Herausgebers der elektronischen Vorrichtungen realisiert sein, welche die vorteilhafte Abfrage der elektronischen Vorrichtungen gemäß Ausführungsformen der vorliegenden Erfindung bereitstellt.The system may be advantageously arranged as a distributed system in which the server and the client devices communicate over a secure network or over a public network that may be configured for secure communication. Further, the secure database and the server may be implemented in a trusted environment of a trusted entity or the publisher of the electronic devices that provides the advantageous query of the electronic devices according to embodiments of the present invention.

Erfindungsgemäß ist vorgesehen, dass strukturelle Merkmale oder eine funktionale Konfiguration einer Vorrichtung, eines Servers oder eines Systems gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung als einzelne Verfahrensschritte von Verfahren gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung vorgesehen sein können. Ferner können Verfahrensschritte eines Verfahrens gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung als eine funktionale Konfiguration von strukturellen Merkmalen einer Vorrichtung, eines Servers oder eines Systems gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung in beliebiger Kombination vorgesehen sein.According to the invention, structural features or a functional configuration of a device, a server or a system according to one or more embodiments of the present invention may be provided as individual method steps of methods according to one or more embodiments of the present invention. Further, method steps of a method according to one or more embodiments of the present invention may be provided as a functional configuration of structural features of a device, server, or system according to one or more embodiments of the present invention in any combination.

Weitere Vorteile der erfindungsgemäßen Verfahren, des Servers, der Client-Vorrichtung, der Vorrichtung und des Systems ergeben sich aus der folgenden Beschreibung, in der die Erfindung anhand von Ausführungsbeispielen unter Bezugnahme auf die beigefügten Zeichnungen näher erläutert wird. Darin zeigen:Further advantages of the inventive method, the server, the client device, the device and the system will become apparent from the following description in which the invention with reference to embodiments with reference to the accompanying drawings is explained in more detail. Show:

1 eine schematische Darstellung eines Systems, welches zur Abfrage eines Sicherheitsmoduls einer elektronischen Vorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung eingerichtet ist, 1 a schematic representation of a system which is adapted to query a security module of an electronic device according to an embodiment of the present invention,

2 ein Flussdiagramm eines Verfahrens zur Abfrage eines Sicherheitsmoduls einer elektronischen Vorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung, 2 a flowchart of a method for polling a security module of an electronic device according to an embodiment of the present invention,

3 ein Flussdiagramm eines Verfahrens zur Abfrage eines Sicherheitsmoduls einer elektronischen Vorrichtung gemäß einer weiteren Ausführungsform der vorliegenden Erfindung, 3 a flowchart of a method for polling a security module of an electronic device according to another embodiment of the present invention,

4 eine schematische Darstellung einer Physical Unclonable Function zur Verwendung in einem Sicherheitsmodul gemäß einer Ausführungsform der vorliegenden Erfindung, 4 1 is a schematic representation of a physical unclonable function for use in a security module according to an embodiment of the present invention;

5 eine Illustration einer Arbiter-PUF zur Verwendung in einem Sicherheitsmodul gemäß einer Ausführungsform der vorliegenden Erfindung, 5 an illustration of an arbiter PUF for use in a security module according to an embodiment of the present invention,

6 ein Schema zur Abfrage eines Sicherheitsmoduls einer elektronischen Vorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung, 6 a scheme for polling a security module of an electronic device according to an embodiment of the present invention,

7 eine schematische Darstellung einer Realisierung einer Arbiter-PUF auf einem FPGA gemäß einer Ausführungsform der vorliegenden Erfindung und 7 a schematic representation of an implementation of an arbiter PUF on a FPGA according to an embodiment of the present invention and

8A und 8B Beispiele von Verzögerungszeiten auf einzelnen Verzögerungsstufen einzelner Arbiter-PUFs auf demselben bzw. auf unterschiedlichen Chips gemäß Ausführungsformen der vorliegenden Erfindung. 8A and 8B Examples of delay times on individual delay stages of individual arbiter PUFs on the same or on different chips according to embodiments of the present invention.

In dieser Beschreibung wird die Konjunktion „oder” als eine nicht ausschließende Disjunktion verstanden, sodass der Ausdruck „A oder B” entweder „A” oder „B” oder „A und B” bedeuten kann. Ferner nimmt die vorliegende Erfindung auf ein Sicherheitsmodul Bezug, auf dem eine Vielzahl von individualisierten Funktionen realisierbar ist. Das Sicherheitsmodul (oder die individualisierte Funktion) stellen hierbei funktionale Hardware dar, welche mit dem Sicherheitsziel bereitgestellt ist, dass zufällige Fluktuationen im Herstellungs- oder Konfigurationsprozess der funktionalen Hardware-Einheit ihre Funktionalität so bestimmen, dass die funktionale Hardware-Einheit nicht physikalisch so dupliziert werden kann, dass ein Duplikat die gleiche Funktionalität aufweist. Dementsprechend stellen sowohl das Sicherheitsmodul als auch seine Konfiguration mit einer aus der Vielzahl von individualisierten Funktionen Hardware dar, welche durch die realisierte individualisierte Funktion derart konfiguriert ist, dass die individualisierte Funktion bereitgestellt ist. Ein baugleiches Sicherheitsmodul, welches funktional identisch konfiguriert ist, weist somit aufgrund der zufälligen Fluktuationen ein anderes Verhalten und daher eine andere individualisierte Funktionalität auf, sodass beide Sicherheitsmodule voneinander unterscheidbar sind. Auf das Sicherheitsmodul oder die entsprechend realisierte individualisierte Funktion gemäß Ausführungsformen der vorliegenden Erfindung kann ebenfalls als eine Physical Unclonable Function (PUF) Bezug genommen werden.In this specification, the conjunction "or" is understood to be a non-exclusive disjunction so that the term "A or B" may mean either "A" or "B" or "A and B". Furthermore, the present invention relates to a security module on which a plurality of individualized functions can be realized. The security module (or the individualized function) hereby represent functional hardware provided with the security objective that random fluctuations in the manufacturing or configuration process of the functional hardware unit determine its functionality so that the functional hardware unit is not physically duplicated can make a duplicate have the same functionality. Accordingly, both the security module and its configuration with one of the plurality of individualized functions represent hardware that is configured by the implemented individualized function to provide the individualized function. A structurally identical security module, which is functionally identically configured, thus has a different behavior due to the random fluctuations and therefore a different individualized functionality, so that both security modules can be distinguished from one another. The security module or correspondingly implemented individualized function according to embodiments of the present invention may also be referred to as a Physical Unclonable Function (PUF).

1 zeigt eine schematische Darstellung eines Systems zur Abfrage eines Sicherheitsmoduls einer elektronischen Vorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung. Das System 100 kann eine Client-Vorrichtung 102 und einen Server 104 umfassen, welche zumindest zeitweise über ein Netzwerk 106 miteinander kommunizieren können. Die Client-Vorrichtung 102 kann eine Rechenvorrichtung sein, welche mit einem Lesegerät 108 verbunden sein kann. Es sollte jedoch verständlich sein, dass die Client-Vorrichtung 102 auch das Lesegerät 108 selbst sein kann und keine bestimmte Hardware-Konfiguration, beispielsweise einen Monitor oder eine Tastatur, erfordert. Das Lesegerät 108 kann eingerichtet sein, mit einer Vorrichtung 110 zumindest zeitweise zu kommunizieren. Die Lesevorrichtung 108 kann hierbei mit der Vorrichtung 110 drahtlos verbindbar sein oder eine direkte physikalische Verbindung von Lesegerät 108 und Vorrichtung 110 erfordern, beispielsweise indem die Vorrichtung 110 in das Lesegerät 108 eingesetzt oder auf das Lesegerät 108 aufgelegt wird. Die Vorrichtung 110 kann ein Sicherheitsmodul 112 aufweisen. Das Sicherheitsmodul 112 kann eingerichtet sein, eine Vielzahl von für die Vorrichtung 110 individualisierten Funktionen zu realisieren. Beispielsweise kann das Sicherheitsmodul 112 eine Vielzahl von PUFs realisieren. 1 shows a schematic representation of a system for polling a security module of an electronic device according to an embodiment of the present invention. The system 100 can be a client device 102 and a server 104 include, at least temporarily, over a network 106 can communicate with each other. The client device 102 may be a computing device connected to a reader 108 can be connected. It should be understood, however, that the client device 102 also the reader 108 itself and does not require a particular hardware configuration, such as a monitor or keyboard. The reader 108 can be set up with a device 110 at least temporarily communicate. The reading device 108 can do this with the device 110 be connected wirelessly or a direct physical connection of the reader 108 and device 110 require, for example, by the device 110 in the reader 108 inserted or on the reader 108 is hung up. The device 110 can be a security module 112 exhibit. The security module 112 can be set up a variety of for the device 110 to realize individualized functions. For example, the security module 112 realize a variety of PUFs.

Die Client-Vorrichtung 102 kann mit der Vorrichtung 110 interagieren, um eine Sicherheitsfunktionalität bereitzustellen. Beispielsweise kann die Sicherheitsfunktionalität in der Authentifizierung der Vorrichtung 110 oder in einer Bestimmung von Schlüsseln für eine kryptografische Operation liegen. Ferner kann die Sicherheitsfunktionalität in einer Berechnung einer speziellen Funktion auf der Vorrichtung 110 oder der Client-Vorrichtung 102 liegen. Die Bereitstellung der Sicherheitsfunktionalität umfasst eine Abfrage des Sicherheitsmoduls 112 der Vorrichtung 110 durch die Client-Vorrichtung 102.The client device 102 can with the device 110 interact to provide security functionality. For example, the security functionality may be in the authentication of the device 110 or in a determination of keys for a cryptographic operation. Further, the security functionality may be in a calculation of a particular function on the device 110 or the client device 102 lie. The provision of security functionality includes a query of the security module 112 the device 110 through the client device 102 ,

Zur Abfrage des Sicherheitsmoduls 112 kann die Client-Vorrichtung 102 eine Anforderung erstellen und an den Server 104 senden. Die Anforderung kann eine Identifikation der Vorrichtung 110 umfassen. Der Server 104 kann die Anforderung empfangen und als Reaktion auf die Anforderung Konfigurationsdaten aus einer Vielzahl von Konfigurationsdaten auswählen und an die Client-Vorrichtung 102 senden. Die Client-Vorrichtung 102 kann die Konfigurationsdaten entweder an die Vorrichtung 110 weitergeben oder selbst verwenden, um auf dem Sicherheitsmodul 112 eine individualisierte Funktion aus der Vielzahl von individualisierten Funktionen zu realisieren. Zeitgleich oder mit einer Verzögerung kann der Server 104 einen Satz von Eingabedaten für das Sicherheitsmodul 112 an die Client-Vorrichtung 102 senden, welche die Eingabedaten an die Vorrichtung 110 weitergeben kann. Die Vorrichtung 110 kann mit den Eingabedaten im Sicherheitsmodul 112 mindestens eine Antwort generieren.To query the security module 112 can be the client device 102 create a request and send it to the server 104 send. The request may be an identification of the device 110 include. The server 104 may receive the request and, in response to the request, select configuration data from a plurality of configuration data and send it to the client device 102 send. The client device 102 can either send the configuration data to the device 110 pass it on or use it yourself on the security module 112 to realize an individualized function from the multitude of individualized functions. At the same time or with a delay, the server can 104 a set of input data for the security module 112 to the client device 102 send the input data to the device 110 can pass on. The device 110 can with the input data in the security module 112 generate at least one answer.

Die mindestens eine Antwort kann die Sicherheitsfunktionalität der Vorrichtung 110 bereitstellen oder ein Teil der Sicherheitsfunktionalität sein. Beispielsweise kann die Client-Vorrichtung die mindestens eine Antwort an den Server 104 zurückgeben, welcher einen Abgleich mit Referenzdaten durchführen kann, um die Authentizität der Vorrichtung 110 (oder des Sicherheitsmoduls 112) zu bestätigen. Ferner kann die mindestens eine Antwort eine Grundlage für eine Berechnung von Schlüsselmaterial sein oder dieses selbst darstellen. Hierzu kann die Vorrichtung 110 über geeignete Mittel, beispielsweise Fehlerkorrekturdaten, verfügen, welche mit der mindestens einen Antwort kombinierbar sind, um das Schlüsselmaterial zu berechnen. Wie oben bereits ausgeführt, kann die Sicherheitsfunktionalität auch in einer Berechnung einer speziellen Funktion liegen, welche auf der Antwort und/oder den Eingabedaten basieren kann.The at least one response may be the security functionality of the device 110 or be part of the security functionality. For example, the client device may provide the at least one response to the server 104 which match a reference data can perform to the authenticity of the device 110 (or the security module 112 ) to confirm. Further, the at least one response may be or may be a basis for calculation of key material. For this purpose, the device 110 have suitable means, such as error correction data, which can be combined with the at least one response to calculate the key material. As stated above, the security functionality may also be in a calculation of a particular function, which may be based on the response and / or the input data.

Obwohl 1 nur eine einzelne Vorrichtung 110 mit einem Sicherheitsmodul 112 zeigt, sollte verständlich sein, dass die Client-Vorrichtung 102 zur Kommunikation mit einer Vielzahl von Vorrichtungen mit Sicherheitsmodulen eingerichtet ist. Diese Vorrichtungen können durch eine Instanz 114 ausgegeben werden, welche vor der Auslieferung sowohl die einzelnen auf der Vorrichtung 110 realisierbaren individualisierten Funktionen als auch Referenzdaten zum Abgleich mit den in der Vorrichtung 110 generierten Antworten ermitteln und speichern kann. Hierzu kann der Server 104 auf einen abgesicherten Speicher oder eine Datenbank mit den entsprechenden Daten zugreifen, um die Abfrage des Sicherheitsmoduls 112 zu steuern und einen Abgleich der generierten Antwort mit den Referenzdaten zu ermöglichen.Even though 1 only a single device 110 with a security module 112 shows, it should be understood that the client device 102 is configured for communication with a variety of devices with security modules. These devices can be replaced by an instance 114 issued, which prior to delivery both the individual on the device 110 realizable individualized functions as well as reference data for comparison with those in the device 110 determine and store generated responses. This can be done by the server 104 to access a secure storage or database with the appropriate data to query the security module 112 to control and to allow a comparison of the generated response with the reference data.

Das System 100 stellt einen hochgradig sicheren Mechanismus bereit, der effektiv verhindert, dass ein Angreifer, der einen temporären Zugriff auf die Vorrichtung 110 hat, das Sicherheitsmodul 112 und sein Verhalten modellieren oder lernen kann, da die Konfigurationsdaten (z. B. ein Bauplan in Form von Programmierdaten) zur Realisierung der individualisierten Funktion erst als Reaktion auf die Anforderung zur Abfrage des Sicherheitsmoduls 112 durch den Server 104 bereitgestellt werden und somit dem Angreifer vor der eigentlichen Abfrage nicht bekannt sein können.The system 100 provides a highly secure mechanism that effectively prevents an attacker from having temporary access to the device 110 has, the security module 112 and be able to model or learn its behavior, since the configuration data (eg a construction plan in the form of programming data) for realizing the individualized function is only in response to the request to query the security module 112 through the server 104 be provided and thus the attacker before the actual query can not be known.

2 zeigt ein Verfahren zur Abfrage eines Sicherheitsmoduls einer elektronischen Vorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung. Das Verfahren 200 kann auf einem Server ausgeführt werden, beispielsweise auf dem Server 104 aus 1. 2 shows a method for polling a security module of an electronic device according to an embodiment of the present invention. The procedure 200 can be run on a server, for example on the server 104 out 1 ,

Das Verfahren 200 kann damit beginnen, dass für eine elektronische Vorrichtung mit einem Sicherheitsmodul, auf dem eine Vielzahl von für die elektronische Vorrichtung individualisierten Funktionen realisierbar ist, in Schritt 202 eine Anforderung zur Abfrage des Sicherheitsmoduls empfangen wird. Als Reaktion auf die Anforderung kann in Schritt 204 eine Challenge (Eingabe) für das Sicherheitsmodul generiert werden. Die Challenge kann Konfigurationsdaten 206 zur Realisierung einer individualisierten Funktion aus der Vielzahl von individualisierten Funktionen auf dem Sicherheitsmodul und mindestens eine Eingabe 208 umfassen. In Schritt 210 können die Konfigurationsdaten 206 an die elektronische Vorrichtung oder eine mit der elektronischen Vorrichtung gekoppelte Client-Vorrichtung, beispielsweise die Client-Vorrichtung 102 aus 1, gesendet werden. Parallel oder zeitversetzt kann in Schritt 212 die mindestens eine Eingabe 208 an die elektronische Vorrichtung oder die Client-Vorrichtung gesendet werden. In Schritt 214 kann mindestens eine Antwort der elektronischen Vorrichtung empfangen werden, welche auf einer Verarbeitung der mindestens einen Eingabe im Sicherheitsmodul beruht, auf dem die durch die gesendeten Konfigurationsdaten 206 definierte individualisierte Funktion realisiert ist. Die mindestens eine Antwort kann optional in Schritt 216 mit Referenzdaten verglichen werden. Im Schritt 218 kann ein Ergebnis des Vergleichs generiert werden. Falls das Verfahren 200 zur Authentifizierung der elektronischen Vorrichtung verwendet wird, kann als Ergebnis eine Bestätigung der Authentizität der elektronischen Vorrichtung gesendet werden, falls der Vergleich in Schritt 216 erfolgreich war.The procedure 200 may begin with the step in step 12 for an electronic device having a security module on which a plurality of functions individualized for the electronic device can be realized 202 a request is received for polling the security module. In response to the request, in step 204 a challenge (input) is generated for the security module. The challenge can be configuration data 206 to realize an individualized function of the plurality of individualized functions on the security module and at least one input 208 include. In step 210 can the configuration data 206 to the electronic device or a client device coupled to the electronic device, such as the client device 102 out 1 to be sent. Parallel or delayed can be in step 212 the at least one input 208 sent to the electronic device or the client device. In step 214 At least one response of the electronic device can be received, which is based on a processing of the at least one input in the security module, on which the by the sent configuration data 206 defined individualized function is realized. The at least one answer may be optional in step 216 be compared with reference data. In step 218 a result of the comparison can be generated. If the procedure 200 As a result, confirmation of the authenticity of the electronic device may be sent if the comparison in step 216 was successful.

3 zeigt ein Flussdiagramm eines Verfahrens zur Abfrage eines Sicherheitsmoduls einer elektronischen Vorrichtung. Das Verfahren 300 kann auf einer Client-Vorrichtung, beispielsweise der Client-Vorrichtung 102 aus 1, ausgeführt werden. Ferner kann das Verfahren 300 jeweils zu den Verfahrensschritten des Verfahrens 200 aus 2 reziproke Verfahrensschritte aufweisen. Die einzelnen Verfahrensschritte der Verfahren 200 und 300 können daher beliebig getauscht und kombiniert werden. 3 shows a flowchart of a method for polling a security module of an electronic device. The procedure 300 may be on a client device, such as the client device 102 out 1 to be executed. Furthermore, the method can 300 each to the process steps of the process 200 out 2 have reciprocal process steps. The individual process steps of the process 200 and 300 can therefore be exchanged and combined as required.

Das Verfahren 300 kann in Schritt 302 eine Anforderung zur Abfrage eines Sicherheitsmoduls einer elektronischen Vorrichtung senden. Das Sicherheitsmodul der elektronischen Vorrichtung kann eingerichtet sein, eine Vielzahl von für die elektronische Vorrichtung individualisierten Funktionen zu realisieren.The procedure 300 can in step 302 send a request to query a security module of an electronic device. The security module of the electronic device may be configured to implement a plurality of functions customized for the electronic device.

In Schritt 304 können Konfigurationsdaten für die elektronische Vorrichtung als Antwort auf die Anforderung empfangen werden, welche dann in Schritt 306 verwendet werden, um die elektronische Vorrichtung mit den Konfigurationsdaten zur Realisierung einer der individualisierten Funktionen auf dem Sicherheitsmodul zu konfigurieren. Die Konfigurationsdaten können den Konfigurationsdaten 206 aus 2 entsprechen.In step 304 For example, configuration data for the electronic device may be received in response to the request, which may then be sent in step 306 be used to configure the electronic device with the configuration data to implement one of the customized functions on the security module. The configuration data can be the configuration data 206 out 2 correspond.

Das Verfahren 300 kann in Schritt 308 mindestens eine Eingabe für das Sicherheitsmodul empfangen. Die mindestens eine Eingabe kann an die elektronische Vorrichtung gesendet oder anderweitig eingegeben werden, sodass die elektronische Vorrichtung die mindestens eine Eingabe zumindest teilweise im entsprechend konfigurierten Sicherheitsmodul verarbeiten kann. Die Antwort der elektronischen Vorrichtung kann in Schritt 310 bereitgestellt werden. Beispielsweise kann die mindestens eine Antwort an einen Server gesendet werden, der die Konfigurationsdaten und die mindestens eine Eingabe bereitgestellt hat, beispielsweise den Server 104 aus 1.The procedure 300 can in step 308 receive at least one input for the security module. The at least one input may be sent to the electronic device or otherwise input, so that the electronic Device which can process at least one input at least partially in the correspondingly configured security module. The response of the electronic device may be in step 310 to be provided. For example, the at least one response may be sent to a server that provided the configuration data and the at least one input, such as the server 104 out 1 ,

Wie in 4 gezeigt, kann ein Sicherheitsmodul gemäß einer Ausführungsform der vorliegenden Erfindung als eine Physical Unclonable Function (PUF) 400 implementiert sein. Eine PUF liefert für jede Eingabe (Challenge) 402 eine eindeutige, individuelle Antwort (Response) 404. Die Challenge 402 als Eingang einer PUF 400 bestimmt eine Konfiguration 406 der jeweils zur Berechnung der PUF 400 verwendeten Schaltung. Auf der PUF 400 kann dann eine Messung 408 mindestens einer physikalischen Größe durchgeführt werden, aus der sich anschließend die Response 404 generieren lässt. Eine PUF 400 kann daher als eine individualisierte Funktion im Sinne der vorliegenden Erfindung aufgefasst werden. Zu den vorteilhaften Eigenschaften einer PUF 400 können Einzigartigkeit, Zuverlässigkeit und Unvorhersehbarkeit oder Zufälligkeit gehören. Aufgrund minimaler physikalischer Unterschiede im Herstellungs- oder Konfigurationsprozess kann angenommen werden, dass es keine zwei absolut identischen PUFs gibt. Zwei Instanzen einer sonst baugleichen elektronischen Vorrichtung, welche die PUF 400 implementiert, können aufgrund der zufälligen Fluktuationen für gleiche Challenges 402 klar unterscheidbare Responses 404 ergeben (Einzigartigkeit). Ferner können einzelne Challenge-Response-Paare konsistent und reproduzierbar sein (Zuverlässigkeit). Zudem sollen sich vorzugsweise aus bekannten Challenge-Response-Paaren keine Rückschlüsse auf weitere Challenge-Response-Paare ziehen lassen (Zufälligkeit).As in 4 A security module according to one embodiment of the present invention may be shown as a Physical Unclonable Function (PUF). 400 be implemented. A PUF provides for each input (Challenge) 402 a clear, individual answer (response) 404 , The challenge 402 as input of a PUF 400 determines a configuration 406 each for the calculation of the PUF 400 used circuit. On the PUF 400 can then take a measurement 408 at least one physical quantity are carried out, from which then the response 404 generate. A PUF 400 Therefore, it can be understood as an individualized function within the meaning of the present invention. Among the advantageous properties of a PUF 400 may include uniqueness, reliability and unpredictability or randomness. Due to minimal physical differences in the manufacturing or configuration process, it can be assumed that there are no two absolutely identical PUFs. Two instances of an otherwise identical electronic device, the PUF 400 can be implemented due to the random fluctuations for equal challenges 402 clearly distinguishable responses 404 result (uniqueness). Furthermore, individual challenge-response pairs can be consistent and reproducible (reliability). In addition, it should preferably not be possible to draw any conclusions about further challenge-response pairs from known challenge-response pairs (randomness).

Eine mögliche Realisierung einer PUF stellt eine Arbiter-PUF dar, welche schematisch in 5 gezeigt ist. Die Arbiter-PUF 500 ist derart aufgebaut, dass zwei Signale 502 parallel durch zwei Pfade einer Kette von Verzögerungsgliedern 504a, ..., 504n geschickt werden. Die Verzögerungsglieder 504a, ..., 504n können je nach gegebener Challenge X Wechsel zwischen den beiden Pfaden ausführen. Wie in 5 gezeigt, können beispielsweise die einzelnen Verzögerungsglieder als Multiplexer aufgebaut sein, die die Wege der beiden Signale durch die PUF bestimmen. Die Kette kann 128 Glieder 504a, ..., 504n aufweisen und die Challenge X kann eine 128-Bit-Challenge sein, die die Verschaltung der Multiplexer und damit den Weg, den die beiden Signale 502 durch die Multiplexer nehmen, steuert. Bei einem Challenge-Bit von 0 können die beiden Signale 502 gerade durchgeleitet werden und bei einem Challenge-Bit von 1 können beide Signale 502 vertauscht werden, wobei jedes Bit der Challenge eine Stufe der Verzögerungskette ansteuern kann. Bei einer Arbiter-PUB 500 mit n Gliedern können die Signale also auf 2n verschiedenen Pfaden laufen. Da die Verzögerungen durch Fluktuationen der Eigenschaften der Verzögerungsglieder Schwankungen aufweisen, ergeben sich leicht unterschiedliche Verzögerungscharakteristiken, wodurch es zu Unterschieden in den Laufzeiten der beiden Signale kommt. Ein Arbiter 506 am Ende der Verzögerungskette kann eine 0 oder eine 1 ausgeben, je nachdem, welches der beiden Signale 502 zuerst am Arbiter 506 ankommt. Die Ausgabe kann die Response der PUF auf die Challenge X darstellen.One possible implementation of a PUF is an arbiter PUF, which is shown schematically in FIG 5 is shown. The Arbiter PUF 500 is constructed such that two signals 502 parallel through two paths of a chain of delay elements 504a , ..., 504n sent. The delay elements 504a , ..., 504n Depending on the given challenge, X can perform bills between the two paths. As in 5 For example, the individual delay elements may be constructed as multiplexers which determine the paths of the two signals through the PUF. The chain can be 128 links 504a , ..., 504n and Challenge X can be a 128-bit challenge involving the interconnection of the multiplexers and thus the path that the two signals 502 through the multiplexers take control. With a challenge bit of 0, the two signals can 502 can be passed straight through and with a challenge bit of 1 both signals can be passed 502 be reversed, each bit of the challenge can control one stage of the delay chain. For an arbiter PUB 500 with n terms, the signals can thus run on 2 n different paths. Since the delays due to fluctuations in the characteristics of the delay elements have variations, slightly different delay characteristics result, which results in differences in the propagation times of the two signals. An arbiter 506 At the end of the delay chain, a 0 or a 1 may be output, depending on which of the two signals 502 first at the arbiter 506 arrives. The output can represent the response of the PUF to the Challenge X.

Es sollte jedoch verständlich sein, dass die in 5 gezeigte Arbiter-PUF 500 ein Beispiel für eine mögliche Implementierung einer individualisierten Funktion darstellt und dass die vorliegende Erfindung nicht auf eine bestimmte Implementierung beschränkt ist. Vielmehr können andere PUFs oder andere Implementierungen von beliebigen individualisierten Funktionen vorgesehen sein.It should be understood, however, that the in 5 shown arbiter PUF 500 represents an example of a possible implementation of an individualized function, and that the present invention is not limited to any particular implementation. Rather, other PUFs or other implementations of any individualized functions may be provided.

In einem Ausführungsbeispiel kann eine SRAM-PUF auf der Grundlage eines statischen Direktzugriffsspeichers definiert sein, welche ein individuelles Startverhalten von SRAM-Zellen nutzt, bevor der Speicher beschrieben wird. Beim Start einer SRAM-Zelle bewegt sich die SRAM-PUF aufgrund unterschiedlicher Charakteristiken von Inverter-Prozessvariationen in einer realen Implementierung entweder in den Zustand einer logischen 1 oder einer logischen 0. Diesen Effekt nutzt die SRAM-PUF, um je nach Challenge verschiedene SRAM-Zellen auszuwählen und aus ihrem Startverhalten IC-spezifische Response-Bits zu generieren.In one embodiment, an SRAM PUF may be defined based on a static random access memory that utilizes an individual boot behavior of SRAM cells before the memory is written. At the start of an SRAM cell, the SRAM PUF moves to either logical 1 or logic 0 state due to different characteristics of inverter process variations in a real implementation. This effect is used by the SRAM PUF to generate different SRAMs depending on the challenge. Select cells and generate IC-specific response bits from their startup behavior.

In einem anderen bevorzugten Ausführungsbeispiel kann eine Ring-Oszillator-PUF vorgesehen sein, welche mehrere Ringe umfassen kann, die aus einer ungeraden Anzahl von Invertern aufgebaut sein können und folglich anfangen zu schwingen, wenn sie aktiviert werden. Aufgrund von Prozessschwankungen in der Herstellung können die verwendeten Inverter leicht unterschiedliche Verzögerungscharakteristiken aufweisen, was zu individuellen Frequenzen für jeden Ring führt. Durch die eingehende Challenge werden zwei solcher Ringe ausgewählt und ihre Frequenz verglichen. Je nach dem Ergebnis des Vergleichs wird damit eine Response von 0 oder 1 ausgegeben.In another preferred embodiment, a ring oscillator PUF may be provided which may comprise a plurality of rings which may be constructed of an odd number of inverters and thus begin to oscillate when activated. Due to process variations in manufacturing, the inverters used may have slightly different delay characteristics, resulting in individual frequencies for each ring. The incoming challenge selects two such rings and compares their frequency. Depending on the result of the comparison, a response of 0 or 1 is output.

Gemäß einem weiteren Beispiel kann eine bistabile Ring-PUF vorgesehen sein, welche ähnlich einer Ring-Oszillator-PUF aus einem Ring von Invertern aufgebaut sein kann. Der Ring kann jedoch aus einer geraden Anzahl von Invertern aufgebaut sein, weshalb die PUF nicht oszilliert, sondern in einen stabilen Zustand übergehen kann, aus dem eine Response resultieren kann. Um unterschiedliche Antworten generieren zu können, können die Inverter-Glieder jeweils aus einer speziellen Basis-Komponente, in der je nach Challenge eines von zwei NOR-Gattern mit individueller Charakteristik auswählbar ist, aufgebaut sein. Dadurch können die Challenges einen Einfluss auf den Zustand haben, der sich in dem verwendeten Ring einstellt, woraus die entsprechende Response abgelesen werden kann.As another example, a bistable ring PUF may be provided which may be constructed of a ring of inverters similar to a ring oscillator PUF. However, the ring can be made up of an even number of inverters, which is why the PUF does not oscillate, but can transition to a stable state, which may result in a response. To different In order to be able to generate responses, the inverter elements can each be constructed from a special base component in which, depending on the challenge, one of two NOR gates with an individual characteristic can be selected. This allows the challenges to have an effect on the state that sets in the ring used, from which the corresponding response can be read.

Um eine Vielzahl von individualisierten Funktionen auf einem Sicherheitsmodul zu realisieren, kann in Ausführungsformen der vorliegenden Erfindung eine konfigurierbare Schaltung vorgesehen sein. Beispielsweise kann die Schaltung ein Field Programmable Gate Array (FPGA) sein. Weitere mögliche Implementierungen können auf der Grundlage von anwendungsspezifischen integrierten Schaltungen (Application-Specific Integrated Circuits, ASICs), CPLDs (Complex Programmable Logic Devices) oder feldprogrammierbaren Analoganordnungen (Field Programmable Analog Devices, FPAAs) erfolgen.In order to realize a plurality of individualized functions on a security module, a configurable circuit may be provided in embodiments of the present invention. For example, the circuit may be a Field Programmable Gate Array (FPGA). Other possible implementations may be based on Application Specific Integrated Circuits (ASICs), Complex Programmable Logic Devices (CPLDs) or Field Programmable Analog Devices (FPAAs).

Weitere Implementierungen von individualisierten Funktionen auf einem Sicherheitsmodul sind denkbar und vom Schutzbereich der vorliegenden Erfindung abgedeckt, wie er durch die beigefügten Ansprüche definiert ist.Other implementations of individualized functions on a security module are conceivable and covered by the scope of the present invention as defined by the appended claims.

6 zeigt den schematischen Aufbau einer Vorrichtung mit einem konfigurierbaren Sicherheitsmodul gemäß Ausführungsformen der vorliegenden Erfindung. Die Vorrichtung 602 kann eine Verarbeitungseinheit 604 und einen System-Controller 606 umfassen, welche auf ein FPGA 608 zugreifen können. Die Vorrichtung 602 kann direkt oder indirekt über ein Lesegerät oder eine weitere Rechenvorrichtung von einem entfernt angeordneten Sicherheitsserver 610 angesprochen werden. 6 shows the schematic structure of a device with a configurable security module according to embodiments of the present invention. The device 602 can be a processing unit 604 and a system controller 606 include on an FPGA 608 can access. The device 602 can be directly or indirectly via a reader or other computing device from a remote security server 610 be addressed.

Zur Abfrage des Sicherheitsmoduls 602 kann, anders als bei einer üblichen PUF-Challenge, zuerst eine Konfiguration an die Vorrichtung 602 gesendet werden, wie es durch die Linie 612a dargestellt ist. Die Konfiguration kann eine Programmierdatei zur Konfiguration des FPGA 608 aufweisen. Die Konfiguration kann die Konstruktion einer PUF definieren, die auf dem FPGA 608 mittels der Verarbeitungseinheit 604 vorgenommen werden kann. Hierbei können unterschiedliche Konfigurationen unterschiedliche Gatter des FPGA 608 verschalten. Nach der Konfiguration oder Programmierung der PUF auf dem FPGA 608 werden die Eingaben (vergleichbar mit den üblichen PUF-Challenges) an die Vorrichtung 602 gesendet (Linie 612b), mit denen individuelle Responses (Linie 614) generiert und an den Server 610 übertragen werden können.To query the security module 602 may, unlike a conventional PUF challenge, first configure the device 602 be sent as it is through the line 612a is shown. The configuration can be a programming file for configuring the FPGA 608 exhibit. The configuration can define the construction of a PUF running on the FPGA 608 by means of the processing unit 604 can be made. Different configurations can use different gates of the FPGA 608 boarded. After configuration or programming of the PUF on the FPGA 608 The inputs (comparable to the usual PUF challenges) are sent to the device 602 sent (line 612b ) with which individual Responses (line 614 ) and sent to the server 610 can be transmitted.

Da die Konfiguration des FPGA 608 einem potenziellen Angreifer vorab nicht bekannt ist, kann die auf der Vorrichtung 602 implementierte individualisierte Funktion nicht modelliert oder maschinell gelernt werden. Um das Sicherheitskonzept der vorliegenden Erfindung anzugreifen, müsste ein Angreifer alle PUFs, die auf dem FPGA 608 realisierbar sind, und ferner alle relevanten Gatter im FPGA 608 ausmessen. Der hierfür erforderliche Aufwand ist im Vergleich zu einem Angriff auf eine Vorrichtung mit einer fest konfigurierten PUF derart hoch, dass ein Angriff nicht durchgeführt werden kann. Ferner könnte eine Messung voraussichtlich nur durch einen direkten Eingriff in Hardware der Vorrichtung 602 gelingen, der eine Zerstörung der Vorrichtung 602 nach sich ziehen könnte. Ein Angreifer müsste zudem zunächst ein Modell des FPGA 608 mit allen Details der Verschaltung und den daraus resultierenden Laufzeiten entwickeln. Ferner müsste eine Rekonstruktion der vorgegebenen Gatter für die PUF aus den gesendeten Konfigurationsdaten gelingen. Darüber hinaus kann ein FPGA nur eine begrenzte Anzahl von Malen umkonfiguriert werden, wobei diese Anzahl typischerweise viel kleiner als die mögliche Anzahl von PUF-Konstruktionen ist. Dementsprechend sind solche Angriffe nicht praktikabel.Because the configuration of the FPGA 608 If a potential attacker is not aware in advance, that may be on the device 602 implemented individualized function can not be modeled or learned by machine. To attack the security concept of the present invention, an attacker would need all the PUFs on the FPGA 608 can be realized, and further all relevant gates in the FPGA 608 measure. The effort required for this is so high in comparison to an attack on a device with a firmly configured PUF that an attack can not be performed. Furthermore, a measurement is likely to be possible only through a direct intervention in hardware of the device 602 succeed in destroying the device 602 could entail. An attacker would also first have a model of the FPGA 608 develop with all the details of the interconnection and the resulting maturities. Furthermore, a reconstruction of the given gates for the PUF would have to succeed from the sent configuration data. In addition, an FPGA can only be reconfigured a limited number of times, which number is typically much smaller than the possible number of PUF designs. Accordingly, such attacks are impractical.

Auch wenn unter einem sehr hohen Zeitaufwand ein Angriff gelingen sollte, kann damit nur der tatsächlich angegriffene einzelne Chip anvisiert werden. Ein anderes FPGA besitzt aufgrund der Schwankungen im zugrunde liegenden Material vollkommen andere Charakteristiken und Laufzeiten, weshalb ein Modell nicht auf einen anderen Chip übertragbar ist. Dementsprechend stellt die Vorrichtung 602 gemäß einer Ausführungsform der vorliegenden Erfindung eine Sicherheitsfunktionalität auf einem sehr hohen Sicherheitsniveau zur Verfügung.Even if an attack should succeed under a very high expenditure of time, only the actually attacked individual chip can be targeted. Another FPGA has completely different characteristics and run times due to variations in the underlying material, so one model can not be transferred to another chip. Accordingly, the device provides 602 According to one embodiment of the present invention, security functionality at a very high security level is available.

Ausführungsformen der vorliegenden Erfindung definieren ferner einen Ansatz zur Konfiguration eines FPGA mit einer Vielzahl von realisierbaren und unterscheidbaren Arbiter-PUFs.Embodiments of the present invention further define an approach to configuring an FPGA having a plurality of feasible and distinguishable arbiter PUFs.

Um eine Vielzahl von unterscheidbaren Arbiter-PUFs auf einem FPGA zu realisieren, müssen Bedingungen bei der Platzierung einzelner Verzögerungsglieder eingehalten werden, damit eine Distanz zwischen zwei Verzögerungsgliedern der Kette nicht die tatsächliche, auf Fluktuationen und Variationen des FPGA basierende Berechnung der Response überlagert.In order to realize a plurality of distinguishable arbiter PUFs on an FPGA, conditions must be met in the placement of individual delay elements so that a distance between two delays of the chain is not superimposed on the actual calculation of the response based on fluctuations and variations of the FPGA.

Zunächst kann ein bestimmter Bereich der logischen Elemente des FPGA als eine Region für die Platzierung einzelner PUF-Elemente definiert werden. Hierdurch kann erreicht werden, dass die einzelnen Verzögerungsglieder der Arbiter-PUF nicht zu weit über den Chip des FPGA verstreut sind, sodass die Routing-Laufzeiten bei der Generierung der Response nicht zu dominant werden. Hierdurch kann ferner ausreichend Raum für andere Funktionalitäten auf dem FPGA verbleiben.First, a particular range of the FPGA's logic elements can be defined as a region for the placement of individual PUF elements. This makes it possible to ensure that the individual delay elements of the arbiter PUF are not scattered too far over the chip of the FPGA, so that the routing propagation times do not become too dominant in generating the response. This can Furthermore, sufficient space for other functionalities remain on the FPGA.

Neben der räumlichen Einschränkung auf den Bereich des FPGA können für verschiedene PUFs zufällige x-y-Koordinaten innerhalb dieses Bereichs generiert und für die Positionierung vorgegeben werden. Eine solche Platzierung mit zufälligen Koordinaten ist beispielhaft in 7 dargestellt. 7 zeigt schematisch insgesamt 1.428 Look-up Tables (LUTs), in die beispielsweise 128 Verzögerungsglieder (Multiplexer) sowie ein Arbiter der Arbiter-PUF in beliebiger Kombination und Reihenfolge gesetzt werden können. Gezeigt sind Positionen einzelner Elemente 702 des FPGA, ausgewählte Verzögerungsglieder 704 und ihre Verbindungen 706 untereinander. Der ausgewählte Bereich mit 1.428 Elementen führt zu ca. 4,7 × 10158 Möglichkeiten, eine Arbiter-PUF mit 128 Verzögerungsgliedern zu realisieren. Folglich wird es einem Angreifer niemals möglich sein, alle auf dem FPGA konstruierten Arbiter-PUFs zu vermessen oder zu modellieren. Auch wenn man außer Acht lässt, dass das FPGA nur eine begrenzte Anzahl von Malen umkonfigurierbar ist, welche deutlich unter der Anzahl der Möglichkeiten zur Realisierung einer Arbiter-PUF liegt, würde ein solcher Angriff unter der Annahme, dass ein Angreifer zur Rekonfiguration des FPGA nur eine Picosekunde benötigt, insgesamt 1,6 × 10166 Jahre dauern, was schlicht nicht durchführbar wäre.In addition to the spatial restriction to the area of the FPGA, arbitrary xy coordinates within this area can be generated for different PUFs and given for the positioning. Such a placement with random coordinates is exemplary in 7 shown. 7 schematically shows a total of 1,428 look-up tables (LUTs), in which, for example, 128 delay elements (multiplexer) and an arbiter of the arbiter PUF can be set in any combination and order. Shown are positions of individual elements 702 of the FPGA, selected delay elements 704 and their connections 706 among themselves. The selected area with 1,428 elements leads to approximately 4.7 × 10 158 possibilities to realize an arbiter PUF with 128 delay elements. Consequently, an attacker would never be able to measure or model all arbiter PUFs constructed on the FPGA. Even ignoring the fact that the FPGA is reconfigurable only a limited number of times, which is well below the number of ways to implement an arbiter PUF, such an attack would only happen on the assumption that an attacker had reconfigured the FPGA a picosecond takes a total of 1.6 × 10 166 years last, which simply would not be feasible.

7 kann entnommen werden, dass die Verbindungswege von unterschiedlicher Länge sein können, sodass ein Einfluss auf die Routing-Laufzeiten der Arbiter-PUF gegeben sein kann. Dieser störende Einfluss kann jedoch durch eine gezielte Auswahl von Eingaben mit einem bestimmten Verhalten beschränkt werden, welche somit unterscheidbare Antworten in den entsprechenden Arbiter-PUFs gewährleisten. Es sollte jedoch verständlich sein, dass die vorliegende Erfindung nicht auf ein bestimmtes Auswahlverfahren beschränkt ist, um eine Vielzahl von PUFs auf einem Sicherheitsmodul zu implementieren. Vielmehr kann auch ein Sicherheitsmodul vorab vermessen werden, um eine Vielzahl von individualisierten Funktionen anzugeben, welche auf dem Sicherheitsmodul realisierbar sind. 7 It can be seen that the connection paths can be of different lengths, so that an influence on the routing times of the arbiter PUF can be given. However, this disturbing influence can be limited by a specific selection of inputs with a certain behavior, which thus ensure distinguishable responses in the corresponding arbiter PUFs. It should be understood, however, that the present invention is not limited to any particular selection method for implementing a plurality of PUFs on a security module. Rather, a security module can also be measured in advance in order to specify a multiplicity of individualized functions that can be implemented on the security module.

Das automatisierte Verfahren zur Auswahl geeigneter Eingaben für unterschiedliche auf einem FPGA realisierbare Arbiter-PUFs kann eine Auswahl von Eingaben mit einem metastabilen Verhalten aufweisen, welche ebenfalls als metastabile Eingaben bezeichnet werden können. Zur Ermittlung der metastabilen Eingaben kann ein zu nachfolgend ausgelieferten Sicherheitsmodulen baugleicher Referenzchip verwendet werden, der jedoch nach der Ermittlung der metastabilen Eingaben unter Verschluss gehalten wird. Für eine realisierte Arbiter-PUF werden auf dem Referenzchip diejenigen Eingaben ermittelt, deren Antworten mit gleicher Wahrscheinlichkeit zwischen einer 0 und einer 1 schwanken und daher nicht stabil sind. Für diese Eingaben ist daher auf dem Referenzchip die Routing-Varianz annähernd gleich, was als eine annähernd gleiche Länge der Pfade durch die einzelnen Verzögerungsglieder aufgefasst werden kann. Es kann daher davon ausgegangen werden, dass auf weiteren (baugleichen) Chips die ausgewählten Eingaben zu Antworten führen werden, die nicht durch die Pfadlänge dominiert sind und vielmehr aufgrund der Herstellungsvarianz dieser Chips zu unterscheidbaren Ergebnissen führen. Daher können für jede Arbiter-PUF auf einem FPGA metastabile Eingaben ausgewählt werden, welche zur Ansteuerung der jeweiligen auf dem FPGA realisierten Arbiter-PUFs verwendet werden können.The automated method of selecting appropriate inputs for different arbiter PUFs implementable on a FPGA may include a selection of inputs with metastable behavior, which may also be referred to as metastable inputs. In order to determine the metastable inputs, a reference chip identical in design to those delivered subsequently can be used, but it is kept locked after the determination of the metastable inputs. For a realized arbiter PUF, those inputs are determined on the reference chip whose responses with equal probability vary between a 0 and a 1 and are therefore not stable. For these inputs, therefore, the routing variance on the reference chip is approximately the same, which can be understood as an approximately equal length of the paths through the individual delay elements. It can therefore be assumed that on further (identical) chips, the selected inputs will lead to responses that are not dominated by the path length and rather lead to discernible results due to the manufacturing variability of these chips. Therefore, metastable inputs can be selected for each arbiter PUF on an FPGA, which can be used to drive the respective arbiter PUFs realized on the FPGA.

Gemäß einer Ausführungsform kann in einer Auslieferungsphase ein Satz von Templates ermittelt und gespeichert werden, der einen Satz von zufälligen Arbiter-PUF-Layouts als Konfigurationsdaten und eine Anzahl von möglichen Eingaben, vorzugsweise mit einem metastabilen Verhalten, aufweist. Sowohl die Challenge-Response-Paare als auch die Konfigurationsdaten der Arbiter-PUFs können geheim gehalten werden. Die Anzahl von Konfigurationsdaten und Eingaben muss für die beabsichtigte Sicherheitsanwendung groß genug sein. Wenn nun die Sicherheitsfunktionalität eines Chips angesprochen werden soll, beispielsweise wenn ein Chip authentifiziert werden soll, werden auf eine Anforderung sowohl die Konfigurationsdaten als auch die Eingaben gesendet.According to one embodiment, in a delivery phase, a set of templates may be identified and stored having a set of random arbiter PUF layouts as configuration data and a number of possible inputs, preferably with metastable behavior. Both the challenge-response pairs and the configuration data of the arbiter PUFs can be kept secret. The number of configuration data and inputs must be large enough for the intended security application. Now, if the security functionality of a chip is to be addressed, for example, when a chip is to be authenticated, both the configuration data and the inputs are sent to a request.

Auf einem Test-System mit einem SmartFusion2 SoC von Microsemi Corp, mit einem 166-MHz-ARM-Cortex-M3-Mikroprozessor, einem System-Controller und einem FPGA können die Konfigurationsdaten beispielsweise einen kompilierten VHDL-Code umfassen, der die Konfiguration des FPGA bestimmen kann. Die Konfigurationsdaten können eine festgelegte Größe, beispielsweise 556 kB, umfassen, die zu dem Mikroprozessor übertragen werden können, der sie dann an den System-Controller übertragen kann, um das FPGA zu programmieren. Eine solche Programmierung kann beispielsweise innerhalb von wenigen Sekunden oder Millisekunden erfolgen. Nachfolgend können Eingaben gesendet werden, welche für eine Arbiter-PUF mit 64 Verzögerungsgliedern aus 64 Bit langen metastabilen Eingaben bestehen können, welche die Verzögerungsglieder der Arbiter-PUF steuern können. Beispielsweise können 100 Eingaben gesendet werden.For example, on a Microsemi Corp SmartFusion2 SoC test system with a 166 MHz ARM Cortex-M3 microprocessor, a system controller, and an FPGA, the configuration data may include a compiled VHDL code representing the configuration of the FPGA can determine. The configuration data may include a fixed size, for example, 556 kb, which may be transmitted to the microprocessor, which may then transmit it to the system controller to program the FPGA. Such programming can take place, for example, within a few seconds or milliseconds. Subsequently, inputs may be sent, which for an arbiter PUF with 64 delays may consist of 64-bit long metastable inputs that can control the delay elements of the arbiter PUF. For example, 100 inputs can be sent.

Ergebnisse der erfindungsgemäßen Konfiguration eines Sicherheitsmoduls gemäß Ausführungsformen der vorliegenden Erfindung auf der Grundlage des Test-Systems sind in den 8A und 8B gezeigt.Results of the inventive configuration of a security module according to embodiments of the present invention based on the test system are described in FIGS 8A and 8B shown.

8A zeigt eine Charakterisierung von Eigenschaften von 10 unterschiedlichen zufällig konfigurierten Arbiter-PUFs auf einem FPGA, welche unterschiedlichen Umwelteinflüssen ausgesetzt wurden. Hierbei wurde getestet, ob die metastabilen Eingaben, welche zu metastabilen Antworten auf dem Referenzchip führten, auch unterscheidbare Ergebnisse auf baugleichen Chips ergeben. 8A zeigt die Unterschiede der Verzögerungsunterschiede für 64 Verzögerungsstufen von 10 zufälligen Arbiter-PUFs. Wie gezeigt, führen die Unterschiede auf der letzten Verzögerungsstufe zu klar unterscheidbaren Ergebnissen. 8B zeigt die Unterschiede der Verzögerungsunterschiede von 64 Verzögerungsstufen von zufällig platzierten Arbiter-PUFs auf drei unterschiedlichen Chips. Auch hier führten statistische Untersuchungen zu einer klaren Unterscheidbarkeit der einzelnen Chips. 8A shows a characterization of properties of 10 different randomly configured Arbiter PUFs on an FPGA which have been exposed to different environmental influences. It was tested whether the metastable inputs, which led to metastable responses on the reference chip, also give distinguishable results on identical chips. 8A Figure 14 shows the differences in delay differences for 64 delay stages of 10 random arbiter PUFs. As shown, the differences in the last delay stage lead to clearly distinguishable results. 8B Figure 12 shows the differences in delay differences of 64 delay stages of randomly placed arbiter PUFs on three different chips. Again, statistical studies led to a clear distinction between the individual chips.

Obwohl ein konkretes Test-System beschrieben ist, sollte verständlich sein, dass die vorliegende Erfindung weder auf die dort genannte Harware noch die realisierten individualisierten Funktionen noch auf eine bestimmte Konfiguration beschränkt ist. Vielmehr sind erfindungsgemäß beliebige Sicherheitsmodule mit beliebigen individualisierten Funktionen vorgesehen.Although a concrete test system is described, it should be understood that the present invention is not limited to either the hardware referred to there or the individualized functions implemented nor to any particular configuration. Rather, any security modules are provided with arbitrary individualized functions according to the invention.

Mit dem Verfahren zur Bestimmung von metastabilen Eingaben kann eine hohe Anzahl von geeigneten Arbiter-PUFs auf einem FPGA automatisch ermittelt und realisiert werden, welche zur Umsetzung eines Sicherheitsmoduls in einer elektronischen Vorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung genutzt werden kann. Durch die freie Konfigurierbarkeit des Sicherheitsmoduls zur Implementierung einer Vielzahl von individualisierten Funktionen, welche erst als Reaktion auf die Abfrage des Sicherheitsmoduls auf dem Sicherheitsmodul realisiert werden, wird die Sicherheit deutlich erhöht, da weder Modellierungsangriffe noch Analysen des Sicherheitsmoduls in einer ausreichend kurzen Zeit durchgeführt werden können. Angriffe bleiben höchstens auf ein einzelnes Sicherheitsmodul beschränkt und sind nicht auf die Vielzahl baugleicher Sicherheitsmodule übertragbar.With the method for determining metastable inputs, a large number of suitable arbiter PUFs can be automatically detected and implemented on an FPGA, which can be used to implement a security module in an electronic device according to an embodiment of the present invention. The free configurability of the security module for implementing a plurality of individualized functions, which are implemented only in response to the query of the security module on the security module, the security is significantly increased because neither modeling attacks nor analysis of the security module can be performed in a sufficiently short time , Attacks are limited to at most one single security module and are not transferable to the large number of identical security modules.

Die in der vorstehenden Beschreibung, den Ansprüchen und den Figuren offenbarten Merkmale können sowohl einzeln als auch in beliebiger Kombination für die Verwirklichung der Erfindung in ihren verschiedenen Ausführungsformen von Bedeutung sein.The features disclosed in the foregoing description, the claims and the figures may be important both individually and in any combination for the realization of the invention in its various embodiments.

Claims (20)

Verfahren, das die folgenden Schritte umfasst: Bereitstellen einer elektronischen Vorrichtung mit einem Sicherheitsmodul, auf dem eine Vielzahl von für die elektronische Vorrichtung individualisierten Funktionen realisierbar ist; Empfangen (202) einer Anforderung zur Abfrage des Sicherheitsmoduls der elektronischen Vorrichtung; als Reaktion auf die Anforderung Senden (210) von Konfigurationsdaten (206) zur Realisierung einer individualisierten Funktion aus der Vielzahl von individualisierten Funktionen auf dem Sicherheitsmodul; Bereitstellen (212) mindestens einer Eingabe (208) für das Sicherheitsmodul; und Empfangen (214) mindestens einer Antwort der elektronischen Vorrichtung basierend auf einer Verarbeitung der mindestens einen Eingabe (208) im Sicherheitsmodul, auf dem die individualisierte Funktion realisiert ist.A method comprising the steps of: providing an electronic device having a security module capable of realizing a plurality of functions customized to the electronic device; Receive ( 202 ) a request to poll the security module of the electronic device; in response to the request send ( 210 ) of configuration data ( 206 to realize an individualized function from the plurality of individualized functions on the security module; Provide ( 212 ) at least one input ( 208 ) for the security module; and receiving ( 214 ) at least one response of the electronic device based on a processing of the at least one input ( 208 ) in the security module on which the individualized function is realized. Verfahren nach Anspruch 1, wobei die Verarbeitung der mindestens einen Eingabe (208) im Sicherheitsmodul eine Verarbeitung der mindestens einen Eingabe durch die realisierte individualisierte Funktion umfasst, welche durch individuelle physikalische Eigenschaften der elektronischen Vorrichtung beeinflusst ist.The method of claim 1, wherein the processing of the at least one input ( 208 ) in the security module comprises processing the at least one input by the implemented individualized function, which is influenced by individual physical properties of the electronic device. Verfahren nach Anspruch 1 oder 2, wobei die Konfigurationsdaten (206) eine Verschaltung von elektronischen Bauteilen im Sicherheitsmodul definieren und die verschalteten elektronischen Bauteile zumindest teilweise durch die mindestens eine Eingabe (208) gesteuert werden und die Antwort zumindest teilweise durch Ermitteln mindestens einer Ausgabe der verschalteten elektronischen Bauteile definiert ist.Method according to claim 1 or 2, wherein the configuration data ( 206 ) define an interconnection of electronic components in the security module and the interconnected electronic components at least partially by the at least one input ( 208 ) and the response is at least partially defined by determining at least one output of the interconnected electronic components. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Konfigurationsdaten (206) eine Kette von Verzögerungsgliedern der elektronischen Vorrichtung definieren und die Eingabe zumindest teilweise einzelne Verzögerungsglieder der Kette konfiguriert und die Ausgabe auf der Laufzeit von Signalen durch die Kette von Verzögerungsgliedern beruht.Method according to one of the preceding claims, wherein the configuration data ( 206 ) define a chain of delay elements of the electronic device and the input at least partially configures individual delay elements of the chain and the output is based on the transit time of signals through the chain of delay elements. Verfahren nach einem der vorhergehenden Ansprüche, das ferner als Reaktion auf eine weitere Anforderung zur Abfrage des Sicherheitsmoduls der elektronischen Vorrichtung ein Senden von weiteren Konfigurationsdaten zur Realisierung einer weiteren individualisierten Funktion aus der Vielzahl von individualisierten Funktionen auf dem Sicherheitsmodul umfasst.Method according to one of the preceding claims, further comprising, in response to a further request to query the security module of the electronic device, sending further configuration data for realizing a further individualized function of the plurality of individualized functions on the security module. Verfahren nach Anspruch 5, das ferner ein Ermitteln der Anzahl vorhergehender Anforderungen umfasst, wobei die weiteren Konfigurationsdaten nur dann gesendet werden, wenn die Anzahl der Anforderungen einen Schwellwert übersteigt.The method of claim 5, further comprising determining the number of previous requests, wherein the further configuration data is sent only if the number of requests exceeds a threshold. Verfahren nach einem der vorhergehenden Ansprüche, das ferner ein Abgleichen (216) der mindestens einen Antwort mit Referenzdaten umfasst, wobei das Abgleichen ein Ermitteln einer Distanz zwischen der mindestens einen Antwort und den Referenzdaten aufweist.Method according to one of the preceding claims, further comprising matching ( 216 ) of the comprises at least one response with reference data, wherein the matching comprises determining a distance between the at least one response and the reference data. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Abfrage des Sicherheitsmoduls zur Authentifizierung der elektronischen Vorrichtung vorgesehen ist und das Verfahren ein Senden einer Bestätigung der Authentizität der elektronischen Vorrichtung umfasst, wenn ein Abgleich der mindestens einen Antwort mit Referenzdaten erfolgreich ist.The method of any one of the preceding claims, wherein the interrogation of the security module is for authenticating the electronic device, and the method comprises sending an acknowledgment of the authenticity of the electronic device if reconciliation of the at least one response with reference data is successful. Verfahren nach einem der vorhergehenden Ansprüche, das ferner ein Vermessen der elektronischen Vorrichtung zur Ermittlung von Referenzdaten jeweils für einen Satz von Konfigurationsdaten und einen Satz entsprechender Eingaben umfasst.The method of any one of the preceding claims, further comprising surveying the electronic device for determining reference data for each of a set of configuration data and a set of corresponding inputs. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Vielzahl von individualisierten Funktionen einer Vielzahl von Physical Unclonable Functions (PUFs) entspricht.Method according to one of the preceding claims, wherein the plurality of individualized functions corresponding to a plurality of Physical Unclonable Functions (PUFs). Verfahren nach Anspruch 10, das ferner ein Vermessen einer der elektronischen Vorrichtung entsprechenden Referenzvorrichtung umfasst, zur Bestimmung eines Satzes von PUFs aus der Vielzahl von PUFs und eines Satzes von Eingaben, aus denen die Konfigurationsdaten und die Eingaben als Reaktion auf die Anforderung ausgewählt werden.The method of claim 10, further comprising surveying a reference device corresponding to the electronic device to determine a set of PUFs from the plurality of PUFs and a set of inputs from which the configuration data and the inputs are selected in response to the request. Verfahren nach Anspruch 11, wobei der Satz von Eingaben Eingaben mit einem definierten Verhalten auf der Referenzvorrichtung aufweist.The method of claim 11, wherein the set of inputs comprises inputs having a defined behavior on the reference device. Verfahren zur Abfrage eines Sicherheitsmoduls einer elektronischen Vorrichtung, auf dem eine Vielzahl von für die elektronische Vorrichtung individualisierten Funktionen realisierbar ist, wobei das Verfahren folgende Schritte umfasst: Senden (302) einer Anforderung zur Abfrage des Sicherheitsmoduls der elektronischen Vorrichtung; Empfangen (304) von Konfigurationsdaten für die elektronische Vorrichtung als Antwort auf die Anforderung; Konfigurieren (306) der elektronischen Vorrichtung mit den Konfigurationsdaten zur Realisierung einer individualisierten Funktion aus der Vielzahl von individualisierten Funktionen auf dem Sicherheitsmodul; Empfangen (308) mindestens einer Eingabe für das Sicherheitsmodul; und Bereitstellen (310) mindestens einer Antwort der elektronischen Vorrichtung basierend auf einer Verarbeitung der mindestens einen Eingabe im Sicherheitsmodul, auf dem die individualisierte Funktion realisiert ist.Method for requesting a security module of an electronic device on which a multiplicity of functions which are individualized for the electronic device can be realized, the method comprising the following steps: sending ( 302 ) a request to poll the security module of the electronic device; Receive ( 304 ) configuration data for the electronic device in response to the request; Configure ( 306 ) the electronic device with the configuration data for realizing an individualized function of the plurality of individualized functions on the security module; Receive ( 308 ) at least one input for the security module; and deploy ( 310 ) at least one response of the electronic device based on a processing of the at least one input in the security module on which the individualized function is implemented. Verfahren nach Anspruch 13, das ferner ein Senden einer weiteren Anforderung zur Abfrage des Sicherheitsmoduls der elektronischen Vorrichtung und ein Empfangen von weiteren Konfigurationsdaten für die elektronische Vorrichtung als Antwort auf die Anforderung umfasst.The method of claim 13, further comprising sending another request to query the security module of the electronic device and receiving further configuration data for the electronic device in response to the request. Vorrichtung, die Folgendes umfasst: ein Sicherheitsmodul, auf dem eine Vielzahl von für die elektronische Vorrichtung individualisierten Funktionen realisierbar ist; einen Eingang zum Empfangen von Konfigurationsdaten und mindestens einer Eingabe; eine Steuereinheit zum Konfigurieren des Sicherheitsmoduls mit den Konfigurationsdaten zur Realisierung einer individualisierten Funktion aus der Vielzahl von individualisierten Funktionen; und einen Ausgang zur Ausgabe mindestens einer Antwort basierend auf der Verarbeitung der mindestens einen Eingabe im Sicherheitsmodul, auf dem die individualisierte Funktion realisiert ist.Apparatus comprising: a security module on which a plurality of functions customized for the electronic device can be realized; an input for receiving configuration data and at least one input; a control unit for configuring the security module with the configuration data to realize an individualized function from the plurality of individualized functions; and an output for outputting at least one response based on the processing of the at least one input in the security module on which the individualized function is implemented. Vorrichtung nach Anspruch 15, wobei die Vielzahl von individualisierten Funktionen einer Vielzahl von Physical Unclonable Functions (PUFs) entspricht.The apparatus of claim 15, wherein the plurality of individualized functions corresponds to a plurality of Physical Unclonable Functions (PUFs). Vorrichtung nach Anspruch 15 oder 16, die ferner ein Field Programmable Gate Array (FPGA) zur Realisierung der Vielzahl von individualisierten Funktionen umfasst, wobei das FPGA zur Realisierung einer Vielzahl von Arbiter-PUFs eingerichtet ist.Apparatus according to claim 15 or 16, further comprising a Field Programmable Gate Array (FPGA) for implementing the plurality of individualized functions, wherein the FPGA is adapted to implement a plurality of Arbiter PUFs. Vorrichtung nach einem der Ansprüche 15 bis 17, wobei die Vorrichtung ein Authentifizierungschip ist und/oder wobei die Vorrichtung auf einer Smartcard, einen Dokument oder einem Zahlungsmittel angeordnet ist.Device according to one of claims 15 to 17, wherein the device is an authentication chip and / or wherein the device is arranged on a smart card, a document or a means of payment. System, das Folgendes umfasst: mindestens einen Server (104); und mindestens eine Client-Vorrichtung (102), welche mit einer Vielzahl von elektronischen Vorrichtungen (110) und zumindest zeitweise mit dem mindestens einen Server (104) kommunikativ verbindbar ist, wobei der mindestens eine Server (104) eingerichtet ist, zur Abfrage einer mit der mindestens einen Client-Vorrichtung (102) verbundenen elektronischen Vorrichtung (110) ein Verfahren nach einem der Ansprüche 1 bis 12 auszuführen.A system comprising: at least one server ( 104 ); and at least one client device ( 102 ), which are connected to a plurality of electronic devices ( 110 ) and at least temporarily with the at least one server ( 104 ) is communicatively connectable, wherein the at least one server ( 104 ) is arranged to query one with the at least one client device ( 102 ) connected electronic device ( 110 ) to carry out a method according to one of claims 1 to 12. System nach Anspruch 19, das ferner eine abgesicherte Datenbank zur Speicherung der Konfigurationsdaten der auf der elektronischen Vorrichtung (110) realisierbaren individualisierten Funktionen, der Eingaben und entsprechender Referenzdaten für jede aus der Vielzahl von elektronischen Vorrichtungen umfasst.The system of claim 19, further comprising a secure database for storing the configuration data of the electronic device (16). 110 ) realizable individualized functions comprising inputs and corresponding reference data for each of the plurality of electronic devices.
DE102016115551.9A 2016-08-22 2016-08-22 Configurable security modules Pending DE102016115551A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102016115551.9A DE102016115551A1 (en) 2016-08-22 2016-08-22 Configurable security modules

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016115551.9A DE102016115551A1 (en) 2016-08-22 2016-08-22 Configurable security modules

Publications (1)

Publication Number Publication Date
DE102016115551A1 true DE102016115551A1 (en) 2018-02-22

Family

ID=61082600

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016115551.9A Pending DE102016115551A1 (en) 2016-08-22 2016-08-22 Configurable security modules

Country Status (1)

Country Link
DE (1) DE102016115551A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020109446A1 (en) 2020-04-03 2021-10-07 Bundesdruckerei Gmbh Test object with time window-related response function

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083833A1 (en) * 2007-09-19 2009-03-26 Verayo, Inc. Authentication with physical unclonable functions
EP2779067A1 (en) * 2013-03-15 2014-09-17 Maxim Integrated Products, Inc. Secure authentication based on physically unclonable functions
US20150171870A1 (en) * 2013-12-18 2015-06-18 Rachael J. Parker Secret operations using reconfigurable logics
US20160065379A1 (en) * 2014-08-28 2016-03-03 The Regents Of The University Of Michigan Physical unclonable function using augmented memory for challenge-response hashing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083833A1 (en) * 2007-09-19 2009-03-26 Verayo, Inc. Authentication with physical unclonable functions
EP2779067A1 (en) * 2013-03-15 2014-09-17 Maxim Integrated Products, Inc. Secure authentication based on physically unclonable functions
US20150171870A1 (en) * 2013-12-18 2015-06-18 Rachael J. Parker Secret operations using reconfigurable logics
US20160065379A1 (en) * 2014-08-28 2016-03-03 The Regents Of The University Of Michigan Physical unclonable function using augmented memory for challenge-response hashing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020109446A1 (en) 2020-04-03 2021-10-07 Bundesdruckerei Gmbh Test object with time window-related response function

Similar Documents

Publication Publication Date Title
EP2899714B1 (en) Secure provision of a key
EP2727277B1 (en) System and method for the secure transmission of data
DE102013224104B4 (en) SYSTEM AND METHOD FOR PROVIDING A REFERENCE SERVICE OF A CHIP
EP2240848B1 (en) Circuit and method for generating a true, circuit-specific and time-invariant random number
WO2014131539A1 (en) Generating a key derived from a cryptographic key using a physically unclonable function
EP3388994A1 (en) Method and apparatus for computer-assisted testing of a blockchain
DE102009051201B4 (en) Authentication and data integrity protection of a token
EP3136285B1 (en) Method and memory module for security protected write and/or read operations on the memory module
DE112013002752T5 (en) System and method for verification of messages in broadcast and multicast networks
DE102008006759A1 (en) Processor arrangements, processor, method for operating a processor arrangement
DE10026326A1 (en) Method for the cryptographically verifiable identification of a physical unit in an open wireless telecommunications network
EP3337085B1 (en) Reloading cryptographic program instructions
DE102016210788B4 (en) Component for processing data worthy of protection and method for implementing a security function for protecting data worthy of protection in such a component
WO2017097909A1 (en) Chaotic circuit having variable dynamic states as secure information memory
DE102008057907A1 (en) Control a pseudo-random number generator and a consumer circuit coupled thereto
EP2610773A1 (en) Method for manufacturing a hardware device and hardware device
DE102016115551A1 (en) Configurable security modules
EP3373545A1 (en) Safety unit, in particular for an iot device and method for executing one or more applications for secure data exchange with one or more servers providing web services
DE102008042582A1 (en) Method for storing data for managing digital identity of user, involves writing data from provider computer system to token via connection to store data in token, and providing connections with connection-oriented protocol
EP3819804A1 (en) Integrity check of a register content
EP3136268A1 (en) Method for analyzing the security of a logic circuit
EP3244331A1 (en) Method for reading attributes from an id token
DE102014115736B4 (en) Secure Information Store
EP3244332B1 (en) Method for reading attributes from an id token
DE102019101213A1 (en) Authentication and decryption of programmable devices

Legal Events

Date Code Title Description
R012 Request for examination validly filed