Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR GENERATING A DEVICE-SPECIFIC IDENTIFIER, AND DEVICES COMPRISING A PERSONALIZED PROGRAMMABLE CIRCUIT COMPONENT
Document Type and Number:
WIPO Patent Application WO/2017/009026
Kind Code:
A1
Abstract:
The invention relates to a method for generating a device-specific identifier in a device (200) which contains at least one programmable circuit component (210) and the circuit of which consists of individual components that are configured by loading a bitstream, having the following method steps: - displaying (11) the reference identifier (R-Id) as a bit sequence and assigning each bit of the reference identifier (R-Id) to a respective different component (Si) of the circuit component, - generating (12) a reference bitstream (B0) for a reference circuit (F0) of the circuit component (210), said bitstream containing at least the specified component (Si) of the reference identifier (R-Id), and - entering (13) the device-specific identifier (G-Id) as a binary sequence by overwriting the bits of the corresponding components of the reference identifier (R-Id) directly in the reference bitstream (B0). The device according to the invention has means for carrying out the method, and the device according to the invention has a programmable circuit component (210) and uses the method in order to generate a device-individual bitstream.

Inventors:
BUSSER JENS-UWE (DE)
MERLI DOMINIK (DE)
Application Number:
PCT/EP2016/064823
Publication Date:
January 19, 2017
Filing Date:
June 27, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
International Classes:
H03K19/177; H04L9/00
Foreign References:
US20120057704A12012-03-08
US20120045061A12012-02-23
DE102008023912A12009-11-19
Download PDF:
Claims:
Patentansprüche

1. Verfahren zur Erzeugung einer Geräte-spezifischen Kennung (G-Id) in einem Gerät (200), das mindestens einen program- mierbaren Schaltungsbaustein (210) enthält und dessen Schaltung aus einzelnen Komponenten besteht, die durch das Laden eines Bitstroms konfiguriert wird, mit den Schritten:

- Darstellen (11) einer Referenzkennung (R-Id) als Bitfolge und Zuordnen eines jeden Bits der Referenzkennung (R-Id) zu jeweils einer unterschiedlichen Komponente des Schaltungsbau¬ steins,

- Erzeugen (12) eines Referenz-Bitstroms (B0) für eine Refe¬ renz-Schaltung (F0) des Schaltungsbaustein (210), in der mindestens die vorbestimmten Komponenten der Referenzkennung (R- Id) enthalten sind, und

- Eintragen (13) der Geräte-spezifischen Kennung (G-Id) als binäre Folge durch Überschreiben der Bits der entsprechenden Komponenten der Referenzkennung (R-Id) direkt im Referenz- Bitstrom (B0) .

2. Verfahren nach Anspruch 1, wobei jede Komponente der Refe- renzkennung fest so konfiguriert wird, entweder einen Wert Null oder einen Wert Eins auszugeben. 3. Verfahren nach einem der vorangehenden Ansprüche, wobei eine vorhandene Prüfsumme (CRC) über den Referenz-Bitstrom (B0) durch eine neu berechnete Prüfsumme über den Geräte¬ spezifischen Bitstrom (B(G-Id)) ersetzt wird. 4. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Bits, durch die eine Komponente der Referenzkennung (R- Id) im Bitstrom kodiert ist, ermittelt werden durch die Ver¬ fahrensschritte :

(a) Erzeugen (21) eines Referenz-Bitstroms (B0) der Referenz- Schaltung (F0),

(b) Erzeugen (22) eines weiteren Bitstroms (Bi) für eine um mindestens ein Bit der vorgegebenen Referenzkennung (R-Id) geänderte weitere Schaltung (Fi) und (c) Ermitteln (23) von mindestens einer Position eines Bits (PFi) , das im erzeugten weiteren Bitstrom (Bi) gegenüber dem Referenz-Bitstrom (BO) verändert ist. 5. Verfahren nach einem der vorangehenden Ansprüche, wobei die vorgegebene Referenzkennung (R-Id) aus mehreren beliebig in der Referenz-Schaltung (FO) verteilten Teil- Referenzkennungen besteht. 6. Verfahren nach einem der Ansprüche 4 und 5, wobei ledig¬ lich für einen Teilbereich der Referenz-Schaltung (FO), der die Referenzkennung (R-Id) umfasst, der weitere Bitstrom (Bi) erzeugt wird. 7. Verfahren nach einem der Ansprüche 4 bis 6, wobei die um ein Bit geänderte Schaltung (Fi) als neue Referenz-Schaltung (RO) für die Ermittlung der Position eines nächsten Bits der Referenzkennung (R-Id) verwendet wird. 8. Verfahren nach einem der Ansprüche 4 bis 7, wobei in einer mehrfach geänderten Schaltung mehr als ein Bit der Referenz- kennung (R-Id) geändert werden und/oder durch Kombination mehrerer aus mehrfach geänderten Schaltungen erzeugten weiteren Bitströmen die Position der Bits im Bitstrom der geänder- ten Bits in der geänderten Schaltung ermittelt werden.

9. Verfahren nach einem der Ansprüche 4 bis 8, wobei eine Ta¬ belle erzeugt wird, in der jedem geänderten Bit der Referenz- Schaltung (F0) die mindestens eine Position (PFi) eines Bits, das im daraus erzeugten weiteren Bitstrom (Fi) gegenüber dem Referenz-Bitstrom (F0) verändert ist, zugeordnet wird.

10. Verfahren nach einem der vorangehenden Ansprüche, wobei die Geräte-spezifische Kennung (G-Id) ein kryptographischer Schlüssel oder eine Seriennummer ist.

Vorrichtung zur Erzeugung einer Geräte-spezifischen

(G-Id) in einem programmierbaren Schaltungsbaustein (210), dessen Schaltung aus einzelnen Komponenten besteht, die durch das Laden eines Bitstroms konfiguriert wird, umfas¬ send eine Zuordnungseinheit (150), die derart ausgebildet ist, eine Referenzkennung (R-Id) als Bitfolge darzustellen und jedem Bit der Referenzkennung (R-Id) jeweils einer unterschiedlichen Komponente des Schaltungsbausteins zuzuordnen, eine Erzeugungseinheit (110), die derart ausgebildet ist ei¬ nen Referenz-Bitstrom (B0) für eine Referenz-Schaltung (F0) des Schaltungsbaustein (210), in der mindestens die vorbe- stimmten Komponenten der Referenzkennung (R-Id) enthalten sind, zu erzeugen, und

eine Einfügeeinheit (120), die derart ausgebildet ist die Ge¬ räte-spezifischen Kennung (G-Id) als binäre Folge durch Überschreiben der Bits der entsprechenden Komponenten der Refe- renzkennung (R-Id) direkt im Referenz-Bitstrom (B0) einzufügen .

12. Vorrichtung nach Anspruch 11, zusätzlich enthaltend eine Ermittlungseinheit (130), die derart ausgebildet ist

einen Referenz-Bitstroms (B0) der Referenzschaltung (F0) zu erzeugen,

einen weiteren Bitstrom (Bi) für eine um mindestens ein Bit der vorgegebenen Referenzkennung (R-Id) geänderte weitere Schaltung (Fi) zu erzeugen, und

mindestens eine Position eines Bits (PFi) , das im erzeugten weiteren Bitstrom (Bi) gegenüber dem Referenz-Bitstrom (B0) verändert ist, zu ermitteln.

13. Vorrichtung nach einem der Ansprüche 11 oder 12, zusätz- lieh umfassend eine Speichereinheit (140), die derart ausge¬ bildet ist

eine Tabelle zu speichern, in der jedem geänderten Bit der Referenz-Schaltung (F0) die mindestens eine Position (PFi) eines Bits, das im erzeugten weiteren Bitstrom (Bi) gegenüber dem Referenz-Bitstrom (B0) verändert ist, zugeordnet ist.

14. Erstes Gerät umfassend einen programmierbaren Schaltungs¬ baustein (210), wobei eine Geräte-spezifischen Kennung gemäß dem Verfahren nach Anspruch 1 bis 10 in den programmierbaren Schaltungsbaustein (210) eingebracht ist.

15. Zweites Gerät umfassend

einen programmierbaren Schaltungsbaustein (210),

eine Speichereinrichtung (220), die eine Geräte-spezifische Kennung (G-Id) , einen Referenz-Bitstrom (B0) einer Referenz- Schaltung (B0) des Schaltungsbausteins (210) sowie eine Ta¬ belle enthält, wobei in der Tabelle jedem geänderten Bit (Si) der Referenz-Schaltung (F0) die mindestens eine Position

(PFi) eines Bits, das im daraus erzeugten weiteren Bitstrom (Bi) gegenüber dem Referenz-Bitstrom (B0) verändert ist, zugeordnet ist, und

eine Kodiereinheit (240) die einen Geräte-spezifischen Bit- ström (B(G-Id)) unter Verwendung der Tabelle aus dem Refe¬ renz-Bitstrom (B0) und der Geräte-spezifischen Kennung (R-Id) erzeugt .

16. Drittes Gerät umfassend

einen programmierbaren Schaltungsbaustein (210),

eine Speichereinrichtung (220), die einen Referenz-Bitstrom (B0) einer Referenz-Schaltung (B0) des Schaltungsbausteins (210) sowie eine Tabelle enthält, wobei in der Tabelle jedem geänderten Bit (Si) der Referenz-Schaltung (F0) die mindes- tens eine Position (PFi) eines Bits, das im daraus erzeugten weiteren Bitstrom (Bi) gegenüber dem Referenz-Bitstrom (B0) verändert ist, zugeordnet ist, und

ein Zufallszahlengerator (230), der eine Geräte-spezifische Kennung (G-Id) erzeugt und

eine Codiereinheit (240) die einen Geräte-spezifischen Bit¬ strom (B(G-Id)) unter Verwendung der Tabelle aus dem Refe¬ renz-Bitstrom (B0) und der Geräte-spezifischen Kennung (R-Id) erzeugt . 17. Gerät nach Anspruch 16, wobei die Speichereinrichtung

(220) derart ausgebildet ist die Tabelle nach Erzeugung des Geräte-spezifischen Bitstroms (B(G-Id)) zu löschen.

18. Computerprogrammprodukt, das direkt in einen Speicher ei¬ nes digitalen Computers ladbar ist, umfassend Programmcode¬ teile, die dazu geeignet sind, die Schritte des Verfahrens nach einem der Ansprüche 1 bis 10 durchzuführen.

19. Datenträger, der das Computerprogrammprodukt nach An¬ spruch 18 speichert.

Description:
Beschreibung

Verfahren und Vorrichtung zur Erzeugung einer Geräte-spezifischen Kennung und Geräte umfassend einen personalisierten programmierbaren Schaltungsbaustein

Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Erzeugung einer Geräte-spezifischen Kennung durch Bitstrom- Personalisierung eines programmierbaren Schaltungsbausteins, ein Gerät umfassend einen programmierbaren Schaltungsbaustein sowie ein Computerprogrammprodukt, das die Schritte des Ver ¬ fahrens durchführt sowie einen Datenträger, der das Computerprogrammprodukt speichert. Programmierbare Schaltungsbausteine, auch als Field Program- mable Gate Arrays (FPGA) bezeichnet, sind integrierte Schalt ¬ kreise der Digitaltechnik, in denen logische Schaltungen programmiert werden können. FPGAs unterscheiden sich daher von Computer-Prozessoren (CPU) und speicherprogrammierbaren Steu- erungen (SPS) , bei denen die Funktionsstruktur vor der Fertigung festgelegt werden muss und nur der zeitliche Ablauf pro ¬ grammiert wird, dadurch, dass bei einem FPGA auch die Funkti ¬ onsstruktur nach der Produktion noch programmiert oder auch wieder verändert werden kann. Dies ist sogar vor Ort bei der Installation und während des Einsatzes möglich.

Bei der Programmierung eines FPGAs werden Funktionsstrukturen und somit verschiedene integrierte Komponenten, d.h. die ge ¬ wünschte Schaltung des FPGA festgelegt. Diese Schaltung kann in Form eines Schaltungsplans graphisch oder mittels einer

Hardwarebeschreibungssprache, auch als HDL bekannt, erstellt werden. Anschließend wird mit einem Synthesewerkzeug ein Bit ¬ strom der integrierten Komponenten, z.B. von Look-Up-Tables oder Flip-Flops, und zugehöriger Verbindungsstrukturen er- zeugt unter spezieller Berücksichtigung der Hardwareressourcen des Ziel-FPGAs. Dieser Bitstrom wird dann zur Laufzeit, d.h. beim Einschalten der Betriebsspannung am FPGA von einem zusätzlich notwendigen, persistenten Speicher in den nicht- persistenten FPGA geladen. Damit sind die Komponenten im FPGA, wie im Schaltungsplan festgelegt, realisiert. Der FPGA behält diese Schaltungsstruktur bis zum Ausschalten der Betriebsspannung oder bis zum Laden eines anderen Bitstroms bei .

Im Schaltungsplan, im Weiteren auch kurz als Schaltung bezeichnet, können auch Daten, beispielsweise als Konstanten, fest codiert enthalten sein. Diese können vom FPGA intern verwendet oder auch ausgegeben werden. Auch kryptographische Schlüssel können so im FPGA untergebracht werden. Fest co ¬ dierte Daten innerhalb einer Schaltung können sehr einfach, beispielsweise über die Hardwarebeschreibungssprache HDL ge ¬ ändert werden. Aus jeder Schaltung muss jedoch ein neuer Bit- ström mit dem Synthesewerkzeug erstellt werden, was typi ¬ scherweise viele Minuten dauert.

Der Bitstrom enthält die Konfigurationsdaten, d.h. die Schaltung, in einem proprietären oft Hersteller- oder auch FPGA- spezifischen, unbekannten Format. Möchte man Geräte über

FPGAs mit individuellen Datenbitströmen, die beispielsweise individuelle Geräte-Seriennummern und/oder individuelle kryptographische Geräteschlüssel enthalten, versorgen, so muss mit Hilfe des Synthesewerkzeugs für jedes Gerät ein eigener Bitstrom neu erzeugt werden. Dies erfordert bereits bei ge ¬ ringer Stückzahl von Geräten einen sehr hohen Rechen- und Zeitaufwand zur Erzeugung der unterschiedlichen Bitstrom- Dateien und ist insbesondere dann kaum durchführbar, wenn die Geräte in hoher Frequenz produziert werden.

Aus der Internet-Veröffentlichung von Dirk Koch, Christian Beckhoff: Hierarchical Reconfiguration of FPGAs, FPL 2014, https : //www . fp!2014. tum. de/fileadmin/wO Obpo/www/gallery/W2a 0 1 FPL2014 Hierarchical Reconfiuration of FPGAs Koch- Beckhoff . pdf sind FPGAs bekannt, welche die Zerlegung der

FPGA-Programmierung in einzelne Module unterstützen, die getrennt erzeugt und als Teil-Bitstrom gespeichert und zur Laufzeit unabhängig voneinander geladen und ausgetauscht wer- den können. Auch kryptographische Schlüssel können als Module bereitgestellt werden. Allerdings wird dieses dynamische La ¬ den von Modulen bisher nur von wenigen neueren FPGAs unterstützt. Außerdem muss der auszutauschende Teil bereits beim Design des Schaltungsplans identifiziert, in einem eigenen Modul untergebracht und mit einem Interface versehen werden. Zusätzlich liegt ein entsprechend eingebrachter kryptographi- scher Schlüssel dann in einer separaten Datei auf dem Gerät vor und kann daher leicht identifiziert und ausgelesen wer- den.

Es ist somit die Aufgabe der vorliegenden Erfindung, Geräte ¬ spezifische Daten mit geringem Rechenaufwand in einen FPGA einbringen zu können und somit Geräte in großer Stückzahl schnell und einfach personalisieren zu können.

Die Aufgabe wird durch die in den unabhängigen Ansprüchen beschriebenen Maßnahmen gelöst. In den Unteransprüchen sind vorteilhafte Weiterbildungen der Erfindung dargestellt.

Das erfindungsgemäße Verfahren zur Erzeugung einer Geräte ¬ spezifischen Kennung in einem Gerät (200), das mindestens ei ¬ nen programmierbaren Schaltungsbaustein (210) enthält und dessen Schaltung aus einzelnen Komponenten besteht, die durch das Laden eines Bitstroms konfiguriert wird, umfasst die Schritte :

- Darstellen (11) der Referenzkennung (R-Id) als Bitfolge und Zuordnen eines jeden Bits der Referenzkennung (R-Id) zu jeweils einer unterschiedlichen Komponente des Schaltungsbau- Steins,

- Erzeugen (12) eines Referenz-Bitstroms (B0) für eine Refe ¬ renz-Schaltung (F0) des Schaltungsbaustein (210), in der mindestens die vorbestimmten Komponenten der Referenzkennung (R- Id) enthalten sind,

- Eintragen (13) der Geräte-spezifischen Kennung (G-Id) als binäre Folge durch Überschreiben der Bits der entsprechenden Komponenten der Referenzkennung (R-Id) direkt im Referenz- Bitstrom (B0) . Somit kann personalisierte Information in einem Bitstrom für einen programmierbaren Schaltungsbaustein untergebracht werden, ohne dass der Bitstrom von einem Synthesewerkzeug je- weils neu aus der Schaltung erzeugt werden muss. Durch die

Zuordnung und damit Bindung eines jeden Bits der Referenzken- nung an eine bestimmte Komponente des programmierbaren Schal ¬ tungsbausteins, z.B. an ein Flip-Flop, ein Look-Up-Table oder an einen BlockRAM, erreicht man eine klare, insbesondere li- neare Beziehung von Bits der Referenzkennung in der Schaltung zu Bits des daraus mit einem Synthesewerkzeug generierten Bitstroms. Jedes Bit der Referenzkennung wird also durch eine bestimmte Anzahl von Bits im Bitstrom repräsentiert, die spe ¬ zifisch für dieses Bit des Datenbitstroms sind. Sind für alle Bits der Referenzkennung, die für eine bestimmte Geräte-spe ¬ zifische Kennung codiert werden sollen, die entsprechenden Positionen im Bitstrom bekannt, kann eine Geräte-spezifische Kennung direkt durch Modifikation der Bits im Bitstrom eingebracht werden. Ein Übersetzen einer Schaltung mit Geräte- spezifischer Kennung auf einen Bitstrom ist nicht mehr notwendig. Somit verkürzt sich die Zeit zur Erzeugung eines per ¬ sonalisierten Bitstroms erheblich.

In einer vorteilhaften Ausführung wird jede Komponente der Referenzkennung konfiguriert, entweder einen Wert Null oder einen Wert Eins auszugeben.

Somit kann jede beliebige Kennung durch eine Anzahl von Komponenten, die die entsprechende Bitfolge ausgeben, darge- stellt werden.

In einer vorteilhaften Ausführungsform werden die Bits, durch die eine Komponente der Referenzkennung im Bitstrom kodiert ist, ermittelt durch die Verfahrensschritte:

(a) Erzeugen eines Referenz-Bitstroms der Referenzschaltung, (b) Erzeugen eines weiteren Bitstroms für eine um mindestens ein Bit der vorgegebenen Referenzkennung geänderte weitere Schaltung und (c) Ermitteln von mindestens einer Position eines Bits, das im erzeugten weiteren Bitstrom gegenüber dem Referenz- Bitstrom verändert ist. Enthält der Bitstrom die Schaltung in einem proprietären, unbekannten Format, so kann durch die Verfahrensschritte eine Art Übersetzungsvorschrift für jede Komponente der Referenz- kennung in die entsprechenden Bits im Bitstrom erzeugt werden. Ist die Übersetzungsvorschrift beispielsweise für jede einzelne Komponente der Referenzkennung bekannt, kann jede beliebige Geräte-spezifische Kennung mit einer Länge der Re- ferenzkennung direkt in den Bitstrom eingetragen werden.

In einer vorteilhaften Ausführungsform besteht die vorgegebe- ne Referenzkennung aus mehreren beliebig in der Referenz- Schaltung verteilten Teil-Referenzkennungen .

Dies erlaubt es, eine Geräte-spezifische Kennung verschlei ¬ ert, d.h. obfusziert im Bitstrom zu platzieren. Dies er- schwert es einem Angreifer, die Geräte-spezifische Kennung im Bitstrom zu allokieren und die Kennung zu ermitteln.

In einem vorteilhaften Ausführungsbeispiel wird lediglich für einen Teilbereich der Referenz-Schaltung, der die Referenz- kennung umfasst, der weitere Bitstrom erzeugt.

Somit ist es nicht notwendig, jeweils die ganze Schaltung, d.h. den gesamten Referenz-Bitstrom zu analysieren. Damit kann die Rechenzeit zur Ermittlung der Bits im Bitstrom, die einer Komponente der Referenzkennung entsprechen, weiter reduziert werden.

In einer vorteilhaften Ausführungsform wird die um mindestens ein Bit geänderte Schaltung als neue Referenz-Schaltung für die Ermittlung der Position eines nächsten Bits der Referenz- kennung verwendet. Dies ermöglicht eine effiziente Ermittlung der zu einem Bit der Referenz-Schaltung gehörenden Bitstrom-Bits. Ein erneutes Laden der Referenz-Schaltung zur Ermittlung der Bitstrom-Bits einer weiteren Komponente der Referenzkennung wird somit um- gangen. Die im vorherigen Ermittlungsschritt verwendete

Schaltung kann als neue Referenz-Schaltung genutzt werden. Es wird nun der Unterschied zwischen Bitströmen aufeinanderfol ¬ gender Referenz-Schaltungen ermittelt. In einer vorteilhaften Ausführungsform werden in einer mehrfach geänderten Schaltung mehr als ein Bit der Referenzken- nung geändert.

Somit können häufig vorkommende Bitkombinationen in der Gerä- te-spezifischen Kennung durch den entsprechend geänderten Bitstrom als Ganzes ermittelt und verwendet werden.

In einer vorteilhaften Ausführungsform werden durch Kombination mehrerer aus mehrfach geänderten Schaltungen erzeugten weiteren Bitströmen die Position der Bits im Bitstrom für mehrere der geänderten Bits in der geänderten Schaltung ermittelt .

Dabei ist jedoch darauf zu achten, dass die Kombinationen der mehrfach geänderten Schaltungen den ganzen Raum der Datenbits der gewünschten Referenzkennung aufspannen, damit beliebige Geräte-spezifische Kennungen im Bitstrom codiert werden können . In einer vorteilhaften Ausführungsform wird eine Tabelle erzeugt, in der jedem geänderten Bit der Referenz-Schaltung mindestens eine Position eines Bits, das im daraus erzeugten weiteren Bitstrom gegenüber dem Referenz-Bitstrom verändert ist, zugeordnet wird.

Die Tabelle enthält somit die Information, welche Bits im Bitstrom gegenüber dem Referenz-Bitstrom geändert werden müssen, um Bits der Referenzkennung gegenüber der Referenz- Schaltung zu ändern. Mit dieser Tabelle kann in einfacher Weise jedes Gerät mit einem eigenen individuellen Bitstrom und damit mit einer eigenen Geräte-spezifischen Kennung versorgt werden, ohne jeweils ausgehend von einer individuellen Schaltung über ein Synthesewerkzeug den individuellen Bitstrom erstellen zu müssen.

In einer vorteilhaften Ausführungsform ist die Geräte-spezifische Kennung ein kryptographischer Schlüssel oder eine Se- riennummer.

Üblicherweise wird vom Synthesewerkzeug bei Erstellung eines Bitstroms eine Prüfsumme über den Bitstrom erstellt und dem Bitstrom beigefügt. Damit wird der resultierende Bitstrom gegen unbeabsichtigte Änderungen, wie beispielsweise Übertra ¬ gungsfehler, geschützt. In einer vorteilhaften Ausführungsform wird diese Prüfsumme über den Geräte-spezifischen Bitstrom nach dem Verändern des Geräte-spezifischen Bitstroms gegenüber dem Referenz-Bitstrom entsprechend angepasst.

Eine erfindungsgemäße Vorrichtung zur Erzeugung einer Gerätespezifischen Kennung in einem programmierbaren Schaltungsbaustein, dessen Schaltung aus einzelnen Komponenten besteht, die durch das Laden eines Bitstroms konfiguriert wird, um- fasst eine Zuordnungseinheit, die derart ausgebildet ist, ei ¬ ne Referenzkennung als Bitfolge darzustellen und jedem Bit der Referenzkennung jeweils einer unterschiedlichen Komponente des Schaltungsbausteins zuzuordnen,

eine Erzeugungseinheit, die derart ausgebildet ist, einen Re- ferenz-Bitstrom für eine Referenz-Schaltung des Schaltungsbaustein, in der mindestens die vorbestimmten Komponenten der Referenzkennung enthalten sind, zu erzeugen, und

eine Einfügeeinheit, die derart ausgebildet ist, die Geräte ¬ spezifischen Kennung als binäre Folge durch Überschreiben der Bits der entsprechenden Komponenten der Referenzkennung direkt im Referenz-Bitstrom einzufügen. Somit kann die Vorrichtung eine Bitstrom-Personalisierung eines programmierbaren Schaltungsbausteins durchführen, ohne dass aus einer individuellen Schaltung über ein Synthesewerkzeug der entsprechende Bitstrom neu erstellt werden muss.

In einer vorteilhaften Ausführungsform umfasst die Vorrichtung zusätzlich eine Ermittlungseinheit, die derart ausgebil ¬ det ist, einen Referenz-Bitstrom der Referenzschaltung zu erzeugen, einen weiteren Bitstrom für eine um mindestens ein Bit der vorgegebenen Referenzkennung geänderte weitere Schaltung zu erzeugen, und mindestens eine Position eines Bits, das im erzeugten weiteren Bitstrom gegenüber dem Referenz- Bitstrom verändert ist, zu ermitteln. Somit kann die Vorrichtung auch bei nicht offengelegter Kodierung der Komponenten einer Schaltung diese Kodierung ermitteln .

In einer vorteilhaften Ausführungsform umfasst die Vorrich- tung zusätzlich eine Speichereinheit, die derart ausgebildet ist, eine Tabelle zu speichern, in der jedem geänderten Bit der Referenz-Schaltung die mindestens eine Position eines Bits, das im daraus erzeugten weiteren Bitstrom gegenüber dem Referenz-Bitstrom verändert ist, zugeordnet wird.

Somit kann jede beliebige Geräte-spezifische Kennung direkt im Bitstrom eincodiert werden, ohne dass aus einer Schaltung, die die Geräte-spezifische Kennung enthält, über ein Synthe ¬ sewerkzeug ein entsprechender Bitstrom erstellt werden muss. Dies führt zu einer erheblichen Reduzierung der zur Erzeugung des Bitstroms benötigten Zeit.

Ein erfindungsgemäßes erstes Gerät umfasst einen programmier ¬ baren Schaltungsbaustein, wobei eine Geräte-spezifischen Ken- nung gemäß dem erfindungsgemäßen Verfahren in den programmierbaren Schaltungsbaustein eingebracht ist. Solche ersten Geräte sind einfach und kostengünstig mit Gerä ¬ te-spezifischen Kennungen in FPGAs zu fertigen.

Ein erfindungsgemäßes zweites Gerät umfasst einen program- mierbaren Schaltungsbaustein, eine Speichereinrichtung, die eine Geräte-spezifische Kennung, einen Referenz-Bitstrom einer Referenz-Schaltung des Schaltungsbausteins sowie eine Ta ¬ belle enthält, wobei in der Tabelle jedem geänderten Bit der Referenz-Schaltung die mindestens eine Position eines Bits, das im daraus erzeugten weiteren Bitstrom gegenüber dem Referenz-Bitstrom verändert ist, zugeordnet ist. Es umfasst des Weiteren einen Zufallszahlengerator, der eine Geräte-spezifische Kennung erzeugt und eine Codiereinheit die einen Gerä ¬ te-spezifischen Bitstrom unter Verwendung der Tabelle aus dem Referenz-Bitstrom und der Geräte-spezifischen Kennung erzeugt .

Ein zweites Gerät kann beispielsweise selbst Seriennummern im FPGA erzeugen und anderen Funktionen als Eingabewert bereit- stellen.

Ein erfindungsgemäßes drittes Gerät umfasst einen program ¬ mierbaren Schaltungsbaustein, eine Speichereinrichtung, die einen Referenz-Bitstrom einer Referenz-Schaltung des Schal- tungsbausteins sowie eine Tabelle enthält, wobei in der Ta ¬ belle jedem geänderten Bit der Referenz-Schaltung die mindestens eine Position eines Bits, das im daraus erzeugten weite ¬ ren Bitstrom gegenüber dem Referenz-Bitstrom verändert ist, zugeordnet ist, einen Zufallszahlengerator, der eine Geräte- spezifische Kennung erzeugt und eine Codiereinheit, die einen Geräte-spezifischen Bitstrom unter Verwendung der Tabelle aus dem Referenz-Bitstrom und der Geräte-spezifischen Kennung erzeugt . Bei einem solchen Gerät wird beispielsweise ein geheimer Schlüssel, der eine Geräte-spezifische Kennung darstellt, niemals außerhalb des Gerätes bekannt und ist somit besonders sicher gegenüber Manipulation und unerlaubtem Zugriff. In einer vorteilhaften Ausführungsform ist die Speichereinrichtung derart ausgebildet, die Tabelle nach Erzeugung des Geräte-spezifischen Bitstroms zu löschen.

Somit kann auch ein Auslesen der Tabelle im späteren Betrieb verhindert werden. Über die Tabelle könnte wiederum auf die erzeugte Geräte-spezifische Kennung geschlossen werden. Ein erfindungsgemäßes Computerprogrammprodukt, das direkt in einen Speicher eines digitalen Computers ladbar ist, umfasst Programmcodeteile, die dazu geeignet sind, die Schritte des Verfahrens nach einem der Ansprüche 1 bis 10 durchzuführen. Ein erfindungsgemäßer Datenträger speichert das erfindungsge- mäße Computerprogrammprodukt.

Ausführungsbeispiel des erfindungsgemäßen Verfahrens, der er ¬ findungsgemäßen Vorrichtung sowie des erfindungsgemäßen Gerätes sind in den Zeichnungen beispielhaft dargestellt und wer- den anhand der nachfolgenden Beschreibung näher erläutert. Es zeigen : ein beispielhaftes Ausführungsbeispiel einer Kompo ¬ nente eines programmierbaren Schaltungsbausteins, die einen Wert 0 bzw. 1 ausgibt, in schematischer Darstellung; ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens als Ablaufdiagramm; ein Ausführungsbeispiel der Ermittlung der Position von Bits im Bitstrom für jeweils ein Bit in einer Referenz-Schaltung in schematischer Darstellung; Figur 4 ein Beispiel einer Geräte-spezifischen Schaltung und eines resultierenden Geräte-spezifischen Bitstroms in schematischer Darstellung; Figur 5 ein zweites Ausführungsbeispiel des erfindungsgemä ¬ ßen Verfahrens in schematischer Darstellung;

Figur 6 ein Ausführungsbeispiel einer erfindungsgemäßen

Vorrichtung in Blockdarstellung; und

Figur 7 ein Ausführungsbeispiel eines erfindungsgemäßen Ge ¬ rätes in Blockdarstellung.

Einander entsprechende Teile sind in allen Figuren mit den gleichen Bezugszeichen versehen.

Um in einem Gerät, das programmierbare Schaltungsbausteine umfasst, eine Geräte-spezifische Kennungen einzubringen, kann dies durch Bitstrom-Personalisierung eines programmierbaren Schaltungsbausteins erfolgen. Dazu wird eine Geräte-spezifi ¬ sche Schaltung, die die Geräte-spezifische Kennung sowie wei ¬ tere Komponenten des programmierbaren Schaltungsbausteins umfasst, erzeugt und beispielsweise mittels eines Synthesewerk ¬ zeugs daraus ein Geräte-spezifischer Bitstrom erzeugt, der in den programmierbaren Schaltungsbaustein eingespielt wird. Da die Erzeugung des Geräte-spezifischen Bitstroms BK durch ein Synthesewerkzeug sehr zeitaufwendig ist, wird nun anhand ei ¬ nes Ablaufdiagramms , siehe Figur 2, das erfindungsgemäße Ver ¬ fahren erläutert.

Ausgehend vom Startzustand 10 wird in einem ersten Verfah ¬ rensschritt 11 eine Referenzkennung als Bitfolge dargestellt und jedem Bit der Referenzkennung jeweils einer unterschiedlichen Komponente des Schaltungsbausteins zugeordnet. Die Schaltung ist dabei derart strukturiert, dass jedes Bit der Referenzkennung, im Weiteren auch als Datenbit bezeichnet, fest an eine bestimmte Komponente des programmierbaren Schal ¬ tungsbausteins gebunden ist.

Dabei wird jedes Datenbit durch eine Komponente der Schaltung repräsentiert. Die Komponente ist dabei so konfiguriert, dass sie entweder den Wert Null oder den Wert Eins ausgibt. Eine solche Komponente 30, 31, siehe Figur 1, kann beispielsweise als Look-Up-Table konfiguriert sein. Die Komponente 30 ist derart konfiguriert, dass unabhängig vom anliegenden Eingangssignal 32 kein Signal 33 am Ausgang ausgegeben wird und damit der Wert Null repräsentiert wird. Die Komponente 31 ist hingegen derart konfiguriert, unabhängig vom anliegenden Eingangssignal 32 immer ein Signal am Ausgang 34 auszugeben, das als Wert Eins interpretiert wird. Somit kann jeder konstante Datenwert durch eine Anzahl von derartigen Komponenten wie beispielsweise 30, 31 von einem Schaltungsbaustein eincodiert und ausgegeben werden.

Im Verfahrensschritt 12 wird ein Referenz-Bitstrom für eine Referenz-Schaltung des Schaltungsbaustein, in der mindestens die vorbestimmten Komponenten der Referenzkennung enthalten sind, erzeugt. Die Referenz-Schaltung kann neben den Komponenten der Referenzkennung noch weitere Komponenten umfassen, wenn der Schaltungsbaustein weitere Funktionen ausführen soll. Dabei sind insbesondere immer die gleichen vorbestimm- ten Komponenten zur Darstellung der Bits der Referenzkennung zu verwenden.

Im Verfahrensschritt 13 wird die Geräte-spezifischen Kennung als binäre Folge durch Überschreiben der Bits der entspre- chenden Komponenten der Referenzkennung direkt im Referenz- Bitstrom eingetragen. Durch ein Laden des Bitstroms in den Schaltungsbaustein wird die Geräte-spezifische Kennung im Schaltungsbaustein aktiv und kann von dort in das Gerät, das den Schaltungsbaustein enthält, ausgelesen werden.

Dies ist insbesondere dann einfach möglich, wenn die Kodie ¬ rung der entsprechenden Komponente im Bitstrom bekannt ist. Ist die Kodierung der einzelnen Komponenten im Bitstrom nicht bekannt, so kann durch die zusätzlichen Verfahrensschritte 21, 22, 23, die in Figur 2 gestrichelt als ein optionaler Verfahrensschritt dargestellt sind. Dazu wird im Verfahrensschritt 21 ein Referenz-Bitstrom BO der Referenzschaltung FO erzeugt. Nachfolgend wird ein weite ¬ rer Bitstrom für eine um mindestens ein Bit der vorgegebenen Referenzkennung geänderte weitere Schaltung erzeugt, siehe Verfahrensschritt 22. Durch Vergleich 23 des weiteren Bit ¬ stroms mit dem Referenz-Bitstrom BO wird mindestens eine Po ¬ sition eines Bits, das im erzeugten weiteren Bitstrom gegenüber dem Referenz-Bitstrom BO verändert ist, ermittelt. Dies wird solange wiederholt, bis die Positionen und Werte aller Bits der Referenzkennung im Bitstrom bekannt sind. Es können aber auch nur die Positionen und Werte eine Teilmenge der Bits der Referenzkennung ermittelt werden, insbesondere wenn einzucodierende Geräte-spezifische Kennungen weniger Bits zur Darstellung benötigen.

Das Einfügen des Bits der gewünschten Geräte-spezifischen Kennung in den Referenz-Bitstrom BO kann entweder direkt nach dem Ermitteln der Position eines einzelnen oder mehrerer eines Datenbits im Bitstrom durchgeführt werden. Es kann aber auch erst für den Teil der Bits, die für die Gerätespezifische Kennung benötigt werden, oder auch für alle Bits der Re- ferenzkennung R-Id die Kodierung im Bitstrom ermittelt werden. Anschließend wird dann ein Geräte-spezifischer Bitstrom mit allen Bits der Geräte-spezifischen Kennung in den Refe- renz-Bitstrom B0 eincodiert.

Figur 3 zeigt ein Ausführungsbeispiel für die Durchführung der Schritte 21 bis 23. Die Referenz-Schaltung F0 umfasst ei ¬ ne Vielzahl von Komponenten, wobei die Komponenten Sl, .., SN, fest je einem Datenbit einer N-Bit langen Referenzkennung R-Id zugeordnet sind. Die weiteren Komponenten, die sonstige Funktionen S der Referenz-Schaltung F0 ausführen, sind beispielhaft als durch zwei Teilbereiche von Komponenten in Fi ¬ gur 3 dargestellt. Die Funktionen S können auch als ein zu- sammenhängender Block oder aber in mehreren Teilbereichen der Referenz-Schaltung F0 eincodiert sein. Die Referenzkennung R- Id kann ebenfalls in einem Block oder aber als mehrere nicht zusammenhängende Blöcken, hier nicht dargestellt, in der Re- ferenz-Schaltung FO angeordnet sein. Aus dieser Referenz- Schaltung FO wird nun beispielsweise durch ein Synthesewerkzeug ein Referenz-Bitstrom BO erzeugt. Die Referenzkennung R- Id besteht im dargestellten Beispiel aus ausschließlich Nul- len .

Anschließend wird nun eine weitere Schaltung Fl erstellt, bei der eine Komponente Sl, die ein erstes, beispielsweise nie- derwertigstes Bit der Referenzkennung R-Id darstellt, gegen- über der Referenzschaltung FO verändert, hier als Eins statt einer Null codiert. Die weitere Schaltung Fl wird mittels des Synthesewerkzeugs in einen entsprechenden weiteren Bitstrom Bl übergeführt, siehe Verfahrensschritt 12. Durch Vergleich des weiteren Bitstroms Bl mit dem Referenz-Bitstrom BO werden die Positionen PF1 der im Bitstrom Bl veränderten Bits und damit die Bits der Komponente Sl im Bitstrom ermittelt. Ent ¬ sprechend wird eine zweite weitere Schaltung F2 erzeugt, in der das zweite Bit bzw. die zweite Komponente S2 der Refe- renzkennung R-Id auf Eins gesetzt wird, erzeugt und anschlie- ßend daraus ein zugehöriger zweiter Bitstrom B2 erzeugt.

Durch einen Vergleich des zweiten weiteren Bitstroms B2 mit dem Referenz-Bitstrom B0 werden wiederum die geänderten Bits PF2 des zweiten Bitstroms und somit die Kodierung des geän ¬ derten zweiten Bits S2 der Referenzkennung ermittelt. Eine Zuordnung der geänderten Bits PF1, PF2 zu den entsprechenden Komponenten Sl, S2 bzw. Bits der Referenzkennung R-Id werden beispielsweise in einer Tabelle gespeichert. Dies wird für jedes Bit der Referenzkennung R-Id wiederholt. Der im letzten, hier N-ten Bit der Referenzkennung geänderte Datenbit- ström FN sowie das daraus erzeugte Bitstrom BN mit den geän ¬ derten Bits PFN sind hier ebenfalls dargestellt.

Die geänderten Bits PF1, .., PFN werden im Bitstrom Bl,.., BN nicht notwendigerweise in der gleichen Reihenfolge erscheinen wie die geänderten Bits Sl, .., SN in der Referenzkennung R- Id in der Schaltung Fl bis FN. Bereiche mit geänderten Bits PFi in dem erzeugten weiteren Bitstrom Bi für verschiedene geänderte Bits Sl,.., SN in der Schaltung F1,..FN können auch überlappen. Für ein geändertes Bit Si in der Schaltung können insbesondere mehrere Bits PFi im Bitstrom geändert sein.

Die vorgegebene Referenzkennung R-Id muss dabei nicht, wie dargestellt, aus ausschließlich Nullen bestehen, sondern kann eine beliebige binäre Folge sein.

Es ist ebenso möglich, zur Ermittlung der Bits PFi im Bitstrom für das geänderte zweite Bit Si der Referenzkennung R- Id den Bitstrom Bi mit dem Bitstrom Bi-1 anstatt mit dem Referenzbitstrom BO zu vergleichen. Als Referenz-Bitstrom kann jeder Bitstrom dienen, zu dem die zugehörige Referenzkennung bekannt ist. Es ist nicht notwendig, jeweils die gesamte weitere Schaltung Fi in einen weiteren Bitstrom Bi zu übersetzen. Es kann - wenn der Schaltungsbaustein bzw. das zugehörige Synthesewerkzeug dies unterstützen - auch mit einem Teilbereich der weiteren Schaltung Fi gearbeitet werden, welcher aber die Refe- renzkennung enthalten muss. Damit kann die Rechenzeit zur Erzeugung des Bitstroms Bi und somit die Ermittlung der Kodie ¬ rung, d.h. Bits PFi der Datenbits Si im Bitstrom Bi weiter reduziert werden. Die so ermittelten Positionen für die einzelnen geänderten

Bits Si der Referenzkennung R-Id werden beispielsweise in ei ¬ ne Tabelle eingetragen. Nachfolgend kann die Kodierung eines Datenbits bzw. einer Komponente aus der Tabelle ermittelt und direkt in den Referenz-Bitstrom B0 eingetragen werden.

Es ist ebenfalls möglich, mehrere Bits Si der Referenzkennung R-Id zu ändern und einen als mehrfach geändert bezeichneten Datenbitstrom dann mittels Synthesewerkzeug in einen weiteren Bitstrom zu überführen. Die geänderten Bits gegenüber dem Re- ferenzbitstrom B0 können dann durch Kombination verschiedener mehrfach geänderten Datenbitströme ermittelt werden. Es können in der Tabelle aber auch zu einer Kombination von geänderten Bits in der Schaltung die resultierenden geänderten Bits im Bitstrom eingetragen werden und anschließend für die Codierung einer Geräte-spezifischen Kennung G-Id im Referenz- Bitstrom BO verwendet werden. Dabei ist darauf zu achten, dass die Kombination der mehrfach geänderten Datenbitströme den ganzen Raum der gewünschten Referenzkennung R-Id aufspannen, da ansonsten nicht alle beliebigen Geräte-spezifischen Kennungen im Bitstrom erzeugt werden können.

In Figur 4 ist eine Schaltung F(G-Id) mit einer Geräte- spezifischen Kennung G-Id dargestellt. Hier ist die Geräte ¬ spezifische Kennung G-Id auf Komponenten in zwei Teilblöcken SB1, SB2 über die Schaltung verteilt. Um einen so erzeugten Geräte-spezifische Bitstrom B(G-Id) gegen unbeabsichtigte Veränderungen, wie beispielsweise Übertragungsfehler, zu schützen bzw. diese erkennen zu können, wird über den Bitstrom B(G-Id) eine Prüfsumme CRC gebildet. Diese Prüfsumme CRC wird üblicherweise an den Geräte-spezifischen Bitstrom angehängt . In Figur 5 wird die Erzeugung von personalisierten Bitströmen, d.h. einem Bitstrom, der eine Geräte-spezifische Kennung wie bspw. einen kryptographische Schlüssel enthält, darge ¬ stellt. Baugleiche Geräte erhalten durch einen solchen perso ¬ nalisierten Bitstrom eine Geräte-spezifische Kennung.

Ausgehend von einer Schaltung S, die die sonstigen Funktionen eines programmierbaren Schaltungsbausteins bildet, wird zur Vorbereitung der Personalisierung ein Referenz-Datenstrom F0 erzeugt, indem in vorbestimmte Komponenten eine Referenzken- nung R-Id mit einer Länge von beispielsweise N Bits eingefügt wird. Aus dieser Referenz-Schaltung F0 werden nun N+l Bitströme B0, BN erzeugt. Bl, BN werden dabei beispiels ¬ weise aus einer jeweils um ein Bit der Referenzkennung geänderten Schaltung Fl bis FN erzeugt.

Aus einem Vergleich jeweils eines Bitstroms Bi mit dem Refe ¬ renz-Bitstrom B0 wird die Codierung des geänderten Bits Si der Schaltung Fi ermittelt. In einer Tabelle T werden diese ermittelten Bits im Bitstrom dem entsprechend geänderten Bit

51 in der Schaltung Fi zugeordnet. In der resultierenden Tabelle T gibt es so beispielsweise für jedes auf den Wert Eins gesetzte Bit der Referenzkennung R-Id einen Eintrag mit der entsprechenden Codierung im Bitstrom. Ein Geräte-spezifischer Bitstrom kann somit aus einem Referenz-Bitstrom BO und der gewünschten Geräte-spezifischen Kennung G-Id unter Verwendung der Tabelle T direkt im Bitstrom erstellt werden. Zur Erzeugung von Bitströmen mit fortlaufender Seriennummer beginnt man vorzugsweise mit einer Referenz-Schaltung FO bzw. dem dazugehörigen Referenz-Bitstrom BO . Dann ändert man zunächst das niederwertigste Bit Sl im Referenz-Datenbitstrom und erzeugt das entsprechende weitere Bitstrom Bl . Daraus kann eine erste Seriennummer 0 sowie die Seriennummer 1 als Geräte-spezifischer Bitstrom gebildet werden. Erst anschließend wird eine weitere Schaltung F2 mit einem geänderten Bit

52 gebildet und der entsprechende Bitstrom B2 ermittelt. Da ¬ raus werden nun alle Geräte-spezifischen Bitströme, die mit den bis dahin geänderten Bits der Referenzkennung gebildet werden können, erstellt. Dies sind die Seriennummern 0 bis 3. Erst zur Erzeugung des Geräte-spezifischen Bitstroms für die Seriennummer 4 wird eine geänderte Schaltung F3 mit einem auf den Wert 1 gesetzten nachfolgenden Bit S3 erzeugt und der zu- gehörige weitere Bitstrom B3 gebildet. Es können nun alle Ge ¬ räte-spezifischen Bitströme, die mit den Bits 1 bis 3 der Re- ferenzkennung gebildet werden können, d.h. Seriennummern 4 bis 7 erzeugt werden. Somit wird die Anzahl der durchgeführten Ermittlungen der Kodierung der Referenzbits minimiert.

Die in Figur 6 dargestellte Vorrichtung 100 zur Erzeugung einer Geräte-spezifischen Programmierung eines Gerätes mit programmierbarem Schaltungsbaustein 210 weist eine Erzeugungseinheit 110, eine Einfügeeinheit 120 sowie eine Zuordnungs- einheit 150 auf. Die Zuordnungseinheit 150 ist derart ausge ¬ bildet, eine Referenzkennung R-Id als Bitfolge darzustellen und jedem Bit der Referenzkennung R-Id jeweils einer unterschiedlichen Komponente des Schaltungsbausteins zuzuordnen. Die Erzeugungseinheit 110 ist derart ausgebildet, einen Refe ¬ renz-Bitstrom BO für eine Referenz-Schaltung FO des Schaltungsbaustein 210, in der mindestens die vorbestimmten Komponenten der Referenzkennung R-Id enthalten sind, zu erzeugen. Die Einfügeeinheit 120 ermöglicht es, die Geräte-spezifischen Kennung G-Id als binäre Folge durch Überschreiben der Bits der entsprechenden Komponenten der Referenzkennung R-Id direkt im Referenz-Bitstrom B0 einzufügen und eine gegebenenfalls vorhandene Prüfsumme anzupassen.

Die Vorrichtung 100 umfasst zusätzlich eine Speichereinheit 140, die eine Tabelle T mit einer Zuordnung jeweils eines Bits der Referenzkennung in einer Schaltung zu ihrer Kodierung im Bitstrom zu speichern. Die Tabelle T kann bereits in der Vorrichtung verfügbar sein oder durch eine Ermittlungseinheit 130 ermittelt werden.

Die Ermittlungseinheit 130 ist derart ausgebildet, einen Re ¬ ferenz-Bitstrom B0 der Referenzschaltung F0 zu erzeugen, einen weiteren Bitstrom Bi für eine um mindestens ein Bit der vorgegebenen Referenzkennung R-Id geänderte weitere Schaltung Fi zu erzeugen, und mindestens ein Bit PFi, das im erzeugten weiteren Bitstrom Bi gegenüber dem Referenz-Bitstrom B0 verändert ist, zu ermitteln. In der Tabelle werden die ermittel- ten Bits PFi dem veränderten Bit der Referenzkennung R-Id zugeordnet und gespeichert.

Die Einfügeeinheit 120 weist eine Schnittstelle 160 auf, über die ein entsprechend gebildeter Geräte-spezifischer Bitstrom in den programmierbaren Schaltungsbaustein 210 einspielbar ist .

Figur 7 zeigt ein Gerät 200, das einen programmierbaren

Schaltungsbaustein 210 umfasst. Das Gerät 200 kann als ein erstes Gerät ausgebildet sein. Ein erstes Gerät umfasst zwin ¬ gend lediglich den Schaltungsbaustein 210, auf dem eine Geräte-spezifischen Kennung gemäß dem beschriebenen Verfahren bzw. unter Verwendung der Vorrichtung 100 eingebracht ist. Das Gerät 200 kann auch als zweites Gerät ausgebildet sein. Dann umfasst es einen programmierbaren Schaltungsbaustein 210 und zusätzlich eine Speichereinrichtung 220 sowie eine Co- diereinheit 240. Die Speichereinrichtung 220 enthält eine Ge ¬ räte-spezifische Kennung G-Id, einen Referenz-Bitstrom B0 einer Referenz-Schaltung B0 des Schaltungsbausteins 210 sowie eine Tabelle. In der Tabelle sind jedem geänderten Bit Si der Referenz-Schaltung F0 die mindestens eine Position PFi eines Bits, das im daraus erzeugten weiteren Bitstrom Bi gegenüber dem Referenz-Bitstrom B0 verändert ist, zugeordnet. Die Co ¬ diereinheit 240 erzeugt einen Geräte-spezifischen Bitstrom B(G-Id) unter Verwendung der Tabelle aus dem Referenz-Bit ¬ strom B0 und der Geräte-spezifischen Kennung R-Id.

Das Gerät 200 kann auch als drittes Gerät ausgebildet sein. Das dritte Gerät 200 umfasst zusätzlich zu den Komponenten des zweiten Gerätes einen Zufallsgenerator 230, der beispielsweise echte Zufallszahlen für einen zufällig gebildeten Schlüssel erzeugt. Das Gerät umfasst des Weiteren eine Co ¬ diereinheit 240, die einen Geräte-spezifischen Bitstrom B (G- Id) unter Verwendung der Tabelle T aus der Referenz-Schaltung und der Geräte-spezifischen Kennung G-Id erzeugt und in den programmierbaren Schaltungsbausteins 210 überträgt.

Das Verfahren, die Vorrichtung und das Gerät können die Geräte-spezifische Kennung G-Id auch maskiert oder obfuskiert er ¬ zeugen bzw. auf dem Gerät 200 speichern. Die Bits der Gerätespezifische Kennung G-Id sind dann beispielsweise anders ver- teilt oder in vertauschter Reihenfolge in der Schaltung enthalten oder werden zur Laufzeit durch eine Funktion verarbeitet, bevor sie als Schlüssel benutzt werden können.

Mit dem beschriebenen Verfahren ist es insbesondere möglich, Geräte mit einem programmierbaren Schaltungsbaustein in der Fertigung mit einem individuellen Bitstrom zu versorgen. Das Verfahren funktioniert mit allen erhältlichen programmierba ¬ ren Schaltungsbausteinen, auch mit solchen, die ein Nachladen von Modulen nicht unterstützen. Damit können Geräte einfach mit Geräte-spezifischen Schlüsseln oder mit individuellen Seriennummern versorgt werden. Enthält ein Gerät keinen Zufallszahlengenerator 230, so kann eine individuelle Entropie- Datei in gleicher Weise in den programmierbaren Schaltungsbaustein eingebracht werden. Die Entropie-Datei kann dann als Grundlage zur Bildung von kryptographischen Schlüsseln verwendet werden. Angreifer erlangen bei erfolgreicher Kompromittierung eines Gerätes nur Zugriff auf den individuellen Schlüssel eines einzigen Schaltungsbausteins und nicht auf einen systemweiten Schlüssel.

Muss eine Kodierung für jedes Bit entsprechend der Schlüssel ¬ länge ermittelt werden, so eignet sich das Verfahren insbe- sondere zum Einbringen von symmetrischen Schlüsseln oder elliptischen Kurvenschlüsseln. Längere Schlüssel wie beispiels ¬ weise RSA-Schlüssel sind mit dem erfindungsgemäßen Verfahren auch realisierbar, erfordern aber einen deutlich höheren Aufwand bei der Erstellung der Zuordnungstabelle T. Ist die Zu- Ordnung der Kodierung zu den Referenzbits bekannt, ist das Verfahren für jede Art von kryptographischen Schlüsseln und anderen Daten wie Seriennummern usw. geeignet.

Alle beschriebenen und/oder gezeichneten Merkmale können im Rahmen der Erfindung vorteilhaft miteinander kombiniert werden. Die Erfindung ist nicht auf die beschriebenen Ausführungsbeispiele beschränkt.