Verfahren zur Erzeugung und/oder Einprägung eines wiedergewinnbaren kryptographischen Schlüssels bei der
Herstellung einer topographischen Struktur
Technisches Anwendungsgebiet Die vorliegende Erfindung betrifft ein Verfahren zur Erzeugung und/oder Einprägung eines wiedergewinnbaren kryptographischen Schlüssels bei der Herstellung einer topographischen Struktur, insbesondere für mikroelektronische oder mikromechanische Bauteile, sowie einen Chip oder eine Chipkarte, in die ein derartiger kryptographischer Schlüssel eingeprägt ist.
Für kryptographische Anwendungen werden geheime Schlüssel benötigt, die in einigen Anwendungsfällen an ein physikalisches Medium, beispielsweise einen Chip oder eine Chipkarte, gebunden sein sollen. Derartige geheime Schlüssel dürfen von einem Angreifer auch mit Methoden des so genannten Reverse Engineering nicht oder nur sehr schwer berechnet oder eingesehen werden können .
Stand der Technik
Bei klassischen Methoden wird der geheime Schlüssel über einen Zufallsgenerator erzeugt und in einem Teil des physikalischen Mediums, beispielsweise auf einer Festplatte oder in einem EEPROM, gespeichert. Die derart gespeicherten Kopien des geheimen Schlüssels können allerdings mit relativ geringem Aufwand durch Analyseverfahren des Reverse Engineering rekonstruiert werden.
Für die Generierung des geheimen Schlüssels werden in der Praxis häufig Zufallsgeneratoren eingesetzt, die wiederum einen zufälligen Startwert benötigen. Dieser Startwert kann aus der Interaktion mit dem Benutzer erzeugt werden, beispielsweise durch eine willkürliche Eingabe des Benutzers mit einem Eingabegerät an einem Computersystem. Weiterhin sind Techniken bekannt, bei denen der radioaktive Zerfall eines Isotops ausgenutzt wird, um daraus einen Startwert für den Zufallsgenerator zu erzeugen. Derartige Vorrichtungen sind allerdings in der Regel groß und teuer.
Aus der EP 1 465 254 Al ist eine Technik zur Speicherung einer Identifikationsnummer in einem
Halbleiter-Chip bekannt, bei der in die topographische Struktur des Halbleiter-Chips Bit-Generierungs- schaltungen integriert werden, von denen jede ein bestimmtes Bit der Identifikationsnummer erzeugt. Jede der Bit-Generierungsschaltungen besteht aus einer elektrischen Leitung, die sich über mehrere Ebenen der topographischen Struktur erstreckt . Die Bitwerte werden hierbei durch das Vorhandensein oder NichtVorhandensein von Unterbrechungen in der elektrischen Leitung festgelegt. Dies erfolgt durch Vorgabe eines geeigneten
Layouts bei der Erzeugung der topographischen Struktur mit den Bit-Generierungsschaltungen. Die Nutzung dieser Technik für die Einprägung eines geheimen Schlüssels für kryptographische Anwendungen hat jedoch den Nachteil, dass die über die Bit-Generierungsschaltungen eingeprägte Information relativ leicht durch Analyseverfahren extrahiert werden kann.
Die US 6047068 A zeigt ein Verfahren zur Bestimmung eines kryptographisehen Schlüssels, der einer integrierten Schaltung zugeordnet ist, bei dem zufällig schwankende Materialeigenschaften zur Erzeugung des Schlüssels genutzt werden. Hierzu muss bei dem Verfahren dieser Druckschrift auf ein Raster von elektrischen Kontakten eine zusätzliche spezielle Schicht aufgebracht werden, die einen zufällig örtlich variierenden elektrischen Widerstand aufweist. Aus der Messung dieses Widerstandes zwischen unterschiedlichen Kombinationen von elektrischen Kontakten wird dann der kryptographische Schlüssel abgeleitet .
Die US 2002/0188857 Al offenbart ein Verfahren zum Schutz zumindest eines Datenwertes in einem inte- grierten Schaltkreis, bei dem eine Kombination dieses Datenwertes mit einem zweiten Datenwert vorgenommen wird, der sich aus einem Netzwerk physikalischer Parameter des integrierten Schaltkreises ergibt. Nur das Ergebnis der Kombination wird dann im Speicher des integrierten Schaltkreises abgespeichert. Der zweite Datenwert ist durch das Netzwerk physikalischer Parameter, die bei der Fertigung des integrierten Schaltkreises zufälligen Variationen unterliegen, festgelegt . Die US 2003/0103629 Al beschreibt ein Verfahren zur Erzeugung eines geheimen Datenwertes, bspw. eines Schlüssels, in einem integrierten Schaltkreis, wobei der Datenwert nur schwer von Dritten ermittelbar sein soll. Dieses Verfahren nutzt ähnlich wie bei dem Verfahren der US 2002/0188857 Al ein Netzwerk physikalischer Parameter des IC's zur Speicherung des Datenwertes .
Die WO 01/84767 Al beschreibt ein Verfahren zur Erzeugung von kryptographisehen Schlüsseln, bei dem die Ladungsniveaus der Speicherzellen eines EEPROMS zur Erzeugung eines Schlüssels genutzt werden. Die US 2004/0136529 Al befasst sich mit einem elektronischen Bauteil, das seine kryptographischen Schlüssel selbst erzeugt . Die Erzeugung erfolgt über Messeinrichtungen, die physikalische Parameter des Bauteils messen, die bei der Herstellung zufällig variieren. Als eines der Beispiele werden hierbei Inverter zur Messung dieser Parameter eingesetzt.
Die US 5818738 A befasst sich mit einem Verfahren zur Prüfung der Authentizität eines integrierten Schaltkreises unter Nutzung der durch den Herstel- lungsprozess zufällig variierenden physikalischen Parameter.
Die US 6233339 Bl befasst sich mit der Kryptographie auf Basis physikalischer Eigenschaften. Hierbei werden Materialeigenschaften eines in einem versiegelten Volumen in einem ICs enthaltenen
Materials, bspw. die Eigenschaften einer Flüssigkeit, für die Erzeugung des kryptographischen Schlüssels genutzt .
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren zur Einprägung eines wiedergewinnbaren kryptographischen Schlüssels in ein physikalisches Medium anzugeben, das ein Auslesen des geheimen Schlüssels aus dem physikalischen Medium für einen Dritten erheblich erschwert. Weiterhin soll ein physikalisches Medium in Form eines Chips oder einer Chipkarte bereitgestellt werden, dass einen schwer auslesbaren geheimen Schlüssel enthält.
Darstellung der Erfindung
Die Aufgabe wird mit den Verfahren gemäß den Patentansprüchen 1 und 4 sowie dem physikalischem Medium gemäß Patentanspruch 9 gelöst . Vorteilhafte Ausgestaltungen der Verfahren sind Gegenstand der Unteransprüche oder lassen sich der nachfolgenden Beschreibung sowie den Ausführungsbeispielen entnehmen.
Die beiden gemäß der vorliegenden Erfindung vorgeschlagenen Verfahrensvarianten unterscheiden sich darin, dass gemäß dem Verfahren des Patentanspruches 1 der geheime Schlüssel bei der Erzeugung der topographischen Struktur zufällig generiert wird, während dieser Schlüssel bei dem Verfahren gemäß Patentanspruch 4 vor der Erzeugung der topographischen Struktur vorgegeben ist. Mit dem ersten Verfahren lassen sich somit physikalische Medien mit einer topographischen Struktur versehen, von denen jedes automatisch einen individuellen geheimen Schlüssel trägt. Das Verfahren des Patentanspruches 4 ist hingegen dafür geeignet, eine Vielzahl von physikalischen Medien mit dem gleichen geheimen Schlüssel zu versehen.
Bei dem Verfahren gemäß Patentanspruch 1 werden zur Erzeugung und Einprägung des wiedergewinnbaren kryptographischen Schlüssels mehrere Messschaltungen bei der Herstellung der topographischen Struktur in der topographischen Struktur erzeugt, die jeweils abhängig von einer Größe zumindest einer elektrischen oder physikalischen Eigenschaft in der topographischen Struktur einen Messwert erzeugen. Bei der elektrischen oder physikalischen Eigenschaft, deren Größe für die
Erzeugung des Messwertes maßgeblich ist, handelt es sich um eine Eigenschaft, deren Größe bei der Herstellung der topographischen Struktur mit den Messschaltungen zufälligen Schwankungen unterworfen ist. Der kryptographische Schlüssel wird schließlich aus den Messwerten der MessSchaltungen gebildet oder von diesen abgeleitet. Hierbei handelt es sich vorzugsweise um die Bits einer Bitfolge. Es können allerdings auch Schlüssel in einem anderen Zahlensystem generiert werden.
Bei diesem Verfahren wird ausgenutzt, dass ein physikalischer Herstellungsprozess für die Herstellung einer topographischen Struktur, beispielsweise ein Lithographie-Prozess in der Halbleiterindustrie, einen natürlichen Zufallsgenerator darstellt. Der Zufallswert ergibt sich aus physikalischen Eigenschaften des hergestellten Produkts, die von Produkt zu Produkt statistischen Schwankungen und damit dem Zufall unterworfen sind. Der Zufallswert ist daher von außerhalb des Produkts schwer einsehbar, messbar oder simulierbar. Auf der anderen Seite ist er im fertiggestellten Produkt aufgrund der Unveränderlichkeit der physikalischen Eigenschaften fest eingeprägt und kann daher jederzeit wiedergewonnen werden. Dies wird bei dem Verfahren gemäß Patentanspruch 1 ausgenutzt, in dem gezielt physikalische oder elektrische Eigenschaften in der topographischen Struktur, die bei dem gewählten Herstellungsprozess von Produkt zu Produkt Schwankungen unterworfen sind, über geeignet eingebrachte Mess- schaltungen genutzt werden, um den krytographischen Schlüssel zu erzeugen. Dieser kryptographische Schlüssel bleibt aufgrund der Unveränderlichkeit der
gewählten Eigenschaften der topographischen Struktur erhalten und kann daher über die Messschaltungen jederzeit reproduziert und ausgelesen werden. Hierbei werden parasitäre elektrische Eigenschaften in der topographischen Struktur gewählt, die unabhängig von den Betriebsparametern, beispielsweise einer Verstärkungsspannung, der Temperatur usw., sind.
Die Messschaltungen werden derart erzeugt, dass sie komplexe dreidimensionale elektrische
Leitungsstrukturen in der topographischen Struktur umfassen, deren parasitäre Eigenschaften in der Messschaltung zur Erzeugung des Messwertes genutzt werden. Für die Erzeugung und Einprägung einer Bitfolge kann dabei für jedes Bit der Bitfolge des krypto- graphischen Schlüssels eine separate Messschaltung in der topographischen Struktur erzeugt werden. Dies ist jedoch nicht in jedem Falle erforderlich, wie in Zusammenhang mit der beispielhaften Messschaltung der Figur 11 erläutert. Der jeweilige Bitwert kann dann beispielsweise durch Vergleich der Größe einer mit der Messschaltung gemessenen elektrischen oder physikalischen Eigenschaft mit einem vorgegebenen Wert erhalten werden.
Auf diese Weise werden die unveränderlichen parasitären Eigenschaften der topographischen Struktur, insbesondere einer Halbleitertopographie, über die Messschaltungen in ein Bitmuster überführt, aus dem der geheime Schlüssel entsteht. Als parasitäre elektrische Eigenschaften können hierbei beispielsweise die Kapazitäten zwischen Leiterbahnen, parasitäre Induktivitäten oder auch ein Übersprechen zwischen Leiter-
bahnen genutzt werden. Diese sind Schwankungen von Topographie zu Topographie unterworfen, jedoch für sich betrachtet konstant und von Betriebsparametern unabhängig. Aus den statistischen Schwankungen dieser Eigenschaften und der Schwierigkeit, diese ex posteriori auch durch Einsatz von Hilfswerkzeugen der elektronischen Design-Automation mit der erforderlichen Genauigkeit zu bestimmen, ergibt sich die gewünschte Unbestimmtheit bezüglich des Bitmusters.
Auf einem Chip stellen die elektrischen Leitungen aus Aluminium oder Kupfer geeignete Leitungsstrukturen dar. Diese werden zwar in der Regel zum Austausch von Signalen bzw. Informationen zwischen funktionellen Einheiten wie einzelnen Transistoren oder Logikgattern eingesetzt, können jedoch auch zur Realisierung von passiven Bauteilen wie Spulen oder Kondensatoren dienen. Dazu werden im Normalfall wohl definierte Regeln beim geometrischen Entwurf der Metallstrukturen eingehalten, so dass die elektrische Kapazität bzw.
Induktivität möglichst genau kontrolliert werden kann.
Einem völlig anderen Einsatzzweck dienen jedoch die komplexen Leitungsstrukturen, im Folgenden auch als Kapazitätscluster bezeichnet, für die parasitären
Kapazitäten der vorliegenden Messschaltungen. Zwar wird auch hier die elektrische Kapazität schaltungstechnisch ausgenutzt, jedoch soll ihr genauer Wert für einen Außenstehenden möglichst schwer ermittelbar sein. Dadurch soll das Verhalten der Messschaltung in starker Weise unvorhersehbar und letztlich uneinsehbar gemacht werden .
- S -
Die komplexe dreidimensionale Leitungsstruktur wird hierbei, wie auch bei dem nachfolgend beschriebenen alternativen Verfahren zur Einprägung eines geheimen Schlüssels, durch Vorgabe eines zufälligen dreidimensionalen Designs der Leitungs- struktur erhalten, das für die Erzeugung der Leitungsstruktur in der topographischen Struktur genutzt wird. Diese Erzeugung einer zufällig verlaufenden, komplexen dreidimensionalen Leitungs- struktur erschwert es einem Angreifer, eine zugehörige parasitäre elektrische Eigenschaft zu berechnen. Auf der anderen Seite kann diese Eigenschaft aufgrund des vorher erzeugten zufälligen Designs, das nur dem Nutzer bekannt ist, vom Nutzer des Verfahrens genau berechnet werden.
Die Erzeugung der Designs erfolgt vorzugsweise mit einem Algorithmus, der den Aufbau der Leitungs- strukturen, bspw. Breite, Länge und Richtung von Abschnitten der Leitungsstrukturen in jeder Ebene der Leitungsstrukturen sowie Verbindungen zwischen unterschiedlichen Ebenen der Leitungsstrukturen, zufällig wählt.
In einer besonders vorteilhaften Ausgestaltung des Verfahrens werden je Messschaltung zwei derart erhaltene Leitungsstrukturen erzeugt und die Größe der parasitären Eigenschaft dieser beiden Leitungsstrukturen durch eine Vergleichsschaltung verglichen. Abhängig vom Ergebnis dieses Vergleichs erzeugt die Messschaltung dann einen Bitwert von 0 oder 1. Dieser Bitwert kann davon abhängen, welcher der beiden Größen der parasitären Eigenschaft der beiden Leitungs-
strukturen größer oder kleiner oder ob beide innerhalb eines vorgebbaren Bereiches gleich sind. Bei dem Verfahren gemäß Patentanspruch 1 wird hierbei für die beiden Leitungsstrukturen jeder Messschaltung das identische, zufällig erhaltene Design verwendet.
Unterschiedliche Messschaltungen weisen hierbei jedoch unterschiedliche Designs auf. Aufgrund des Herstellungsprozesses schwanken die parasitären elektrischen Eigenschaften der beiden Leitungsstrukturen jeder Messschaltung jedoch trotz des identischen Designs, so dass sich der gewünschte zufällige Bitwert für unterschiedliche Messschaltungen ergibt.
Bei dem Verfahren gemäß Patentanspruch 4 werden hingegen die beiden Leitungsstrukturen jeder Mess- schaltung so unterschiedlich gewählt, dass sich für die einzelne Messschaltung in jedem Falle trotz der Schwankungen des Herstellungsprozesses der gewünschte vorgegebene Bitwert ergibt. Diese unterschiedliche Wahl kann aufgrund der Möglichkeit der Vorberechnung der
Größe der parasitären Eigenschaften der Leitungs- strukturen aus den vorab erzeugten zufälligen Designs erfolgen. Für einen Angreifer können hingegen aus den komplexen Leitungsstrukturen nur sehr schwer Informationen über den geheimen Schlüssel abgeleitet werden .
Die beiden alternativen Verfahren nutzen elektrische oder physikalische Eigenschaften der topographischen Struktur, die während der Herstellung
Schwankungen unterworfen sind, um den geheimen Schlüssel einzuprägen. Beide Verfahren setzen komplexe Leitungsstrukturen der Messschaltungen ein, die aus
zufälligen Designs der Leitungsstrukturen resultieren. Beim ersten Verfahren werden die Schwankungen des Herstellungsprozesses genutzt, um den geheimen Schlüssel zu erzeugen. Beim zweiten Verfahren wird die Kenntnis dieser Schwankungen genutzt, um vorgegebene Bitwerte für die einzelnen Messschaltungen festzulegen.
Das vorliegende Verfahren wird nachfolgend anhand eines Ausführungsbeispiels in Verbindung mit den Zeichnungen ohne Beschränkung des durch die Patentansprüche vorgegebenen Schutzbereichs nochmals näher erläutert. Hierbei zeigen:
Fig. 1 ein Beispiel für den Aufbau einer Mess- Schaltung, wie sie beim vorliegenden Verfahren zum Einsatz kommen kann;
Fig. 2 eine beispielhafte schematische Darstellung einer komplexen Leitungsstruktur gemäß dem vorliegenden Verfahren;
Fig. 3 ein Beispiel für den ersten Teil eines
Algorithmus zur Erzeugung eines zufälligen Designs einer Leitungsstruktur gemäß dem vorliegenden Verfahren;
Fig. 4 ein Beispiel für den zweiten Teil eines
Algorithmus zur Erzeugung eines zufälligen Designs einer Leitungsstruktur gemäß dem vorliegenden Verfahren;
Fig. 5 ein Beispiel für eine Entwurfsansicht einer Leitungsstruktur gemäß der vorliegenden
Erfindung, nach der die Leitungsstruktur in der Topographie erzeugt wird;
Fig. 6 eine 3D-Visualisierung einer Leitungsstruktur gemäß der Entwurfsansicht der Figur 5;
1
Fig. 7 eine erste Beispielanwendung in einem elektronischen Schlüssel für PKW;
Fig. 8 eine zweite Beispielanwendung zur Übertragung und Verteilung von MuIti-Media-Inhalten;
Fig. 9 eine dritte Beispielanwendung für den Schutz von Software ;
Fig. 10 eine vierte Beispielanwendung für den Schutz von Software;
Fig. 11 ein weiteres Beispiel für den Aufbau einer Messschaltung, wie sie beim vorliegenden
Verfahren zum Einsatz kommen kann; und
Fig. 12 einen Teil der Messschaltung der Figur 11 im
Detail.
Wege zur Ausführung der Erfindung
Im vorliegenden Ausführungsbeispiel wird das erfindungsgemäße Verfahren bei der Herstellung der Topographie eines Halbleiterchips eingesetzt. Hierbei werden die Messschaltungen als mikroelektronische
Schaltungen auf dem Chip ausgeführt, die parasitäre Kapazitäten zwischen bestimmten Bereichen der
Topographie des Chips in ein Bitmuster überführen, aus dem der geheime Schlüssel abgeleitet wird.
Die Messschaltung 11 der Figur 1 ist im vor- liegenden Beispiel so ausgelegt, dass dieses Bitmuster sehr sensibel auf Schwankungen der Kapazitäten reagiert. Eine geringe Differenz in der Kapazität der Messschaltungen zwischen zwei beliebigen Chips soll hierbei ein anderes Bitmuster erzeugen. Dies ist aufgrund der unvermeidbaren statistischen Prozessschwankungen bei der Herstellung der Chips gegeben und wird beim vorliegenden Verfahren nutzbar gemacht.
Sollen hingegen, gemäß der zweiten Variante des vorliegenden Verfahrens, für alle Chips immer dieselben Schlüssel erzeugt werden, dann werden die Kapazitäten der Messschaltung so ausgelegt, dass die Schaltung nicht auf die Prozessschwankungen reagiert. Die jederzeit mögliche Wiedergewinnbarkeit bzw. Ausles- barkeit des Schlüssels aus den einzelnen Chips ergibt sich aus der Unveränderlichkeit der einzelnen Kapazitäten über die Nutzungsdauer und der Unabhängigkeit dieser Kapazitäten von VersorgungsSpannung, Temperatur, Alter und Beanspruchung.
Im vorliegenden Beispiel erfolgt die Überführung der parasitären Kapazitäten in ein Bitmuster durch ein Schaltungsprinzip, wie es in der Figur 1 dargestellt ist. Hierbei werden zwei Kapazitäten 5, 6 in der Halbleitertopographie erzeugt. Auf die Herstellung dieser Kapazitäten wird im Folgenden noch näher eingegangen. Die beiden Kapazitäten 5, 6 werden nacheinander über einen konstanten Strom I einer
Stromquelle 1 für eine bestimmte Dauer T aufgeladen. Die elektrische Spannung V über den Kapazitäten 5, 6 ist dabei abhängig vom Ladestrom I, der Ladezeit T und der Kapazität C- V = I*T*l/C. Da der Strom und die Ladezeit konstant sind, ist die Spannung proportional zum Kehrwert der Kapazität: V ~ 1/C. Über einen Komparator 7 wird die Differenz zwischen den erreichten Spannungswerten gebildet und in ein digitales 0/1- Ergebnis am Ausgang 8 überführt. Mit den Schaltern 2 bis 4 wird über eine geeignete Schaltsequenz sichergestellt, dass beide Kapazitäten aufgeladen werden und dann die Spannung festgehalten wird. Hierzu können bspw. Schalter 2 geöffnet und Schalter 3 für die Dauer des Ladevorgangs der Kapazität 5 geschlossen werden. Durch Schließen des Schalters 4 der anderen Kapazität 6 wird diese ebenfalls aufgeladen. Werden die Schalter 3, 4 wieder geöffnet, bleibt die Spannung über den Kapazitäten 5, 6 konstant. Zu diesem Zeitpunkt ist das Ergebnis des Vergleichs durch den Komparator 7 gültig. Es gibt an, ob die Kapazität 5 größer oder kleiner als die Kapazität 6 ist. Durch Schließen des Schalters 2 können die Kapazitäten wieder entladen werden. Die gesamte Messschaltung 11 wird bei der Erzeugung der Halbleitertopographie über ein geeignetes Layout bei der lithographischen Herstellung dieser Topographie erzeugt. Für einen kryptographischen Schlüssel von n Bit werden hierbei n dieser Messschaltungen 11 in der Halbleitertopographie erzeugt .
Die Layouts der beiden parasitären Kapazitäten 5,
6 werden im vorliegenden Beispiel möglichst komplex gewählt, um eine Vorhersage des eingeprägten geheimen Schlüssels durch einen Angreifer zusätzlich zu er-
schweren. Weiterhin werden zu diesem Zweck die Layouts der parasitären Kapazitäten 5, 6 für je zwei beliebige Bits bzw. Messschaltungen schon zur Entwurfszeit so gewählt, dass sich ihre dreidimensionale Struktur möglichst stark unterscheidet.
Figur 2 veranschaulicht schematisch an einem Beispiel eine derartige parasitäre Kapazität, die aus einer komplexen dreidimensionalen Leitungsstruktur besteht. Die einzelnen Leiterbahnen 9 der Leitungsstruktur verzweigen hierbei häufig, erstrecken sich in unterschiedliche Richtungen und über entsprechende Durchkontaktierungen 10 auch über verschiedene Ebenen der topographischen Struktur. Aus dem Beispiel der Figur 2 ist deutlich die Irregularität dieser Leitungsstruktur hinsichtlich Breite, Länge und Richtung der einzelnen Leitungsabschnitte erkennbar, die bei ihrem Entwurf zufällig gewählt werden.
Grundsätzlich hängt die Wahl des Designs bzw.
Layouts der beiden Kapazitäten 5, 6 davon ab, ob für jeden einzelnen Chip ein individueller Schlüssel erzeugt werden soll, im Folgenden als Single-Chip-Key bezeichnet, oder ob alle Chips über den selben Schlüssel verfügen sollen, im Folgenden als All-Chips- Key bezeichnet . Im ersten Fall werden für die Kapazitäten 5, 6 in einer Messschaltung die gleichen Layouts gewählt, so dass ihre dreidimensionale Struktur abgesehen von den Schwankungen beim Herstellungsprozess identisch ist. Diese Strukturen weisen dennoch aus dem obigen Grund einen zufälligen und ungeordneten Aufbau auf, bei dem die Leiterbahnbreiten und -längen stark variieren.
Im zweiten Fall werden unterschiedliche Designs bzw. Layouts für die Kapazitäten 5, 6 einer Mess- schaltung gewählt, so dass sich ihr dreidimensionaler Aufbau innerhalb der MessSchaltung deutlich unterscheidet. Weiterhin ist es von Vorteil, wenn sich auch der dreidimensionale Aufbau der Kapazitäten 5, 6 unterschiedlicher Messschaltungen entsprechend stark unterscheidet . Die Leiterbahnstrukturen der Kapazitäten 5, S werden in diesem Fall so gewählt, dass sich ihre elektrischen Kapazitätswerte stärker unterscheiden als diese aufgrund prozesstechnischer Schwankungen von Chip zu Chip variieren.
In beiden Fällen wird das dreidimensionale Design der Leitungsstrukturen für die parasitären Kapazitäten 5, 6 mit einem Zufallsgenerator erzeugt. Da für jedes Bit zwei derartige Strukturen benötigt werden, ist zur Entwurfszeit die Vorbereitung einer großen Zahl an Layouts erforderlich, deren elektrische Kapazität bekannt ist. Die Kapazität kann hierbei aus dem Layout berechnet werden.
Figur 3 zeigt ein Beispiel für die Erzeugung von Layouts der LeitungsStrukturen mit einem zufälligen dreidimensionalen Design. Alle Schritte sind automatisiert und werden vollständig von einem Rechner ausgeführt, so dass nach einer Laufzeit von wenigen Stunden eine große Zahl an Layouts zur Verfügung steht, die für die Herstellung der topographischen Struktur eingesetzt werden können. Der in Figur 3 beispielhaft dargestellte Algorithmus beruht auf einem iterativen Zufallsverfahren, im Folgenden auch als Random-Walk-
Algorithmus bezeichnet. Seine Aufgabe ist es, innerhalb einer vorgegebenen Fläche komplexe, dreidimensionale Verbindungsstrukturen zu erzeugen. Diese Strukturen sollen über eine möglichst ungenau bekannte oder schwer berechenbare elektrische Kapazität verfügen.
Für diesen Zweck wird absichtlich gegen die Entwurfsregeln für Kondensatoren verstoßen, so dass es sich bei den Kapazitätsclustern nicht mehr um „herkömmliche" Kondensatoren handelt. Es kommen keine Metallplatten mehr zum Einsatz, sondern eine Vielzahl mehr oder weniger dünner Metallleitungen, die zu einer komplexen, irregulären und zufälligen Struktur zusammengesetzt sind, wie bereits in Zusammenhang mit Figur 2 erläutert . Die elektrische Kapazität ist im Normalfall schaltungstechnisch ungewollt oder sogar nachteilig, man spricht daher von der parasitären Kapazität. Eben diese parasitäre Kapazität von Metallleitungen soll innerhalb der Kapazitätscluster dem Einsatzzweck entsprechend optimiert und schaltungstechnisch nutzbar gemacht werden. Da eine große Zahl an Kapazitätsclustern benötigt wird, soll der Entwurf automatisiert werden. Hierzu wurde ein Random-Walk Algorithmus entwickelt und in der Skriptsprache SKILL umgesetzt, die eine Nutzung sog. Electronic Design Automation (EDA) Werkzeuge bei der Herstellung der Schaltungen ermöglicht.
Ein wichtiges Kriterium für den Einsatz der parasitären Kapazitätscluster ist die vollständige Automatisierbarkeit des Entwurfsvorganges. Die Erstellung des geometrischen Aufbaus bzw. Designs (Maskenlayout) jedes einzelnen Clusters soll ohne
wiederholten Eingriff oder manuelle Steuerung möglich sein. Die einzige Form der Benutzerinteraktion besteht in der Festlegung von gewissen Startparametern oder Einstellungen, die nur zu Beginn des automatischen EntwurfVorgangs vorgenommen werden. Der Grund für diese Anforderung liegt in der hohen Zahl an Clustern, die für einen geheimen Schlüssel mit einer realistischen Anzahl Bits erforderlich sind: Für kryptographische Verfahren mit öffentlichen Schlüsseln werden in der Regel 1024 Bit und mehr benötigt. Da für jedes zusätzliche Bit zwei weitere Cluster benötigt werden, ist die Zahl an Clustern bereits so hoch, dass die manuelle Erstellung des Layouts jedes einzelnen Clusters aus Zeitaufwandsgründen ausscheidet .
Das Erfordernis der Komplexität ergibt sich direkt aus der wichtigsten Eigenschaft der Kapazitätscluster : Der hohe Grad an Informationsgehalt jedes einzelnen Clusters. Diese informationstheoretische Aussage bedeutet, in einfache Worte übersetzt, dass jeder
Cluster ein hohes Maß an unbekannten Informationen in sich tragen soll. In diesem Fall ist dies die elektrische Kapazität. Je weniger über den genauen Wert bekannt ist, desto mehr Informationen sind in ihm enthalten. Eben diese Information stellt die Grundlage für die Erzeugung des geheimen Schlüssels mit der beschriebenen schaltungstechnischen Realisierung dar. Die in den Clustern enthaltene Information stellt den geheimen Schlüssel in „Rohform" dar. Wäre die elektrische Kapazität aller Cluster eines Chips für
Außenstehende mit hoher Genauigkeit bekannt, so könnte der geheime Schlüssel daraus abgeleitet werden.
Ein möglichst zufälliger struktureller Aufbau der Kapazitätscluster ist ebenfalls aus Gründen des Informationsgehaltes nötig. Die Zufälligkeit stellt sicher, dass kein systematischer „Bias" vorhanden ist, d.h. keine Bevorzugung bestimmter Strukturen oder regelmäßiger Muster. Im Idealfall ist die Wahrscheinlichkeit für das Auftreten einer bestimmten Struktur gleich wahrscheinlich wie für das Auftreten einer völlig anderen Struktur, d.h. die Wahrscheinlichkeits- dichte ist gleichverteilt. Diese Gleichverteilung kann sich freilich nur innerhalb der Grenzen bewegen, die durch Flächenvorgabe, schaltungstechnischen Einsatz oder prozesstechnischen Einschränkungen vorgegeben sind - kurz alle Randbedingungen, die von vornherein bekannt sind. Mathematisch gesprochen verkleinern sie den Suchraum der möglichen Strukturen und damit den Informationsgehalt der Cluster.
Eine dritte Einflussgröße für den Informations- gehalt der Kapazitätscluster ist der Verwandtschaftsgrad von jeweils zwei beliebigen Clustern auf einem Chip, d.h. die Kreuzkorrelation. Eine geringe Korrelation bedeutet, dass nicht von einem Cluster auf die anderen geschlossen werden kann, d.h. dass kein Angreifer aus der Kenntnis der Kapazität eines Clusters
Informationen über die Kapazität der anderen Cluster ableiten kann.
Der im vorliegenden Beispiel eingesetzte Algorithmus basiert auf einem iterativen „trial-and- error" Verfahren, bei dem zufällig Leiterbahnen und Durchkontaktierungen gesetzt werden, die anschließend auf Verletzungen der Entwurfsregeln (DRC-Fehler)
überprüft werden. Ergibt sich ein Fehler, so wird die letzte Änderung rückgängig gemacht und eine andere Variante ausprobiert .
Der Algorithmus beginnt mit der Erzeugung der
Leiterbahnen auf einer bestimmten Metallisierungsebene (metal layer) und an einem vorgegebenen Startpunkt . Das Flussdiagramm in Figur 3 zeigt den funktionellen Ablauf . Der Startpunkt und Startlayer sind für den Anschluss des Kapazitätsclusters an die Auswerteelektronik nötig, die aus dem Kapazitätswert der Cluster die Bits des Schlüssels generiert. Der nächste Schritt steht am Anfang jeder Iteration des Algorithmus: Die zufällige Wahl geeigneter Parameter für die Erzeugung eines Metallstückes. Hierunter fällt die Breite, Länge und Richtung der Leiterbahn. Gewisse Mindestbreiten und -längen, sowie die Beschränkung auf Winkel von 45 Grad sind dabei prozesstechnisch bedingt vorgegeben. Bei der zufälligen Auswahl der Parameter werden idealerweise diese prozesstechnischen Vorgaben (sog. design rules) berücksichtigt, um die Fehlerwahrscheinlichkeit bei der späteren Abstandsregel- prüfung zu minimieren. Diese Prüfung auf Abstands- regelverletzung, Design-Rule Check (DRC) genannt, wird nach jedem Neusetzen eines Leitungsstückes durchgeführt. Im Falle eines Regelverstoßes wird die Leitung entfernt und eine andere Parameterkombination getestet, der Algorithmus kehrt zurück zur Parameterwahl . Wurde ein Metallstück fehlerfrei gesetzt, so repräsentiert das Ende der Leitung den Anfangspunkt für das nächste
Metallstück. Entsprechend wird der Startpunkt für die nächste Leitung neu gesetzt. Diese Start- und Endpunkte stellen gleichzeitig ideale Positionen dar, an denen
ein Wechsel der Metallisierungsebene über eine Durchkontaktierung (Via) nach oben oder unten möglich ist. Sie werden deshalb in eine spezielle Vialiste eingetragen, die bei der Erzeugung der Vias in einer Unterroutine verwendet wird. Diese Unterroutine wird immer dann aufgerufen, wenn eine Metallisierungsebene komplett - bezogen auf die Zielfläche- abgearbeitet wurde, d.h. mit Leitungsstücken zufälliger Größe und Orientierung gefüllt wurde. Die Fläche gilt dann als gefüllt, wenn die maximale Anzahl an Schritten ausgeführt wurde bzw. die maximale Anzahl Metallstücke erzeugt wurde . Nach der Erzeugung der Vias verfügt der aktuelle Layer über ein oder mehrere Durchkontak- tierungen nach oben oder unten. Eines dieser Vias stellt somit einen geeigneten Ausgangspunkt für die nächste Metallisierungsebene dar, auf der erneut Metallstücke auf dieselbe Art und Weise erzeugt werden sollen. Aus diesem Grund wird die neue Startposition auf die Koordinaten eines der Vias gesetzt, z.B. das letzte erzeugte Via. Ebenso wird die Metalllage, zur der die Durchkontaktierung wechselt, als neuer Start- layer gesetzt. Die Anzahl der Wechsel der Metallisierungsebene kann über die Angabe eines Maximalwertes gesteuert werden. Er muss nicht gleich der Anzahl der zur Verfügung stehenden Metalllagen eines
Prozesses sein, sondern sollte darüber liegen. Dadurch wird sichergestellt, dass der Algorithmus mit der Generierung von Metallstücken zu einem Layer zurückkehrt, auf dem bereits Metallstücke erzeugt wurden. Auf diese Weise wird verhindert, dass der Algorithmus nur
Strukturen erzeugt, die in der Vertikalen keine Richtungsänderung aufweisen, d.h. einem Turm oder Stapel gleich aufgebaut sind. Wurde die maximale Anzahl
an Lagenwechsel also noch nicht erreicht, so kehrt der Algorithmus an den Anfang des Programmflusses zurück, um im aktuellen Layer erneut Metallstücke zu generieren. Der Algorithmus wird beendet, wenn die Maximalzahl erreicht wurde.
Die Erzeugung der Durchkontaktierungen ist in Fig. 4 schematisch dargestellt. Der Routine wird zu Beginn der aktuelle Layer mitgeteilt, die maximale Anzahl zu erzeugender Vias festgelegt und die Liste mit gültigen Viapositionen übergeben. Die darauf folgenden Schritte befinden sich im Inneren einer Programmschleife, die solange ausgeführt wird, bis die maximale Anzahl an erzeugten Durchkontaktierungen erreicht wurde. Zunächst wird der erste Eintrag in der Vialiste aus der Liste entfernt, er stellt die Position des nächsten zu erzeugenden Vias dar. Das Via kann sodann einen Kontakt zur nächsten, darüberllegenden Metalllage herstellen, oder zur darunterliegenden Ebene. Dies ist nur möglich, wenn es sich nicht um die unterste Metallisierungsebene handelt, in diesem Fall ist nur ein Wechsel nach oben möglich. Das Gleiche gilt in umgekehrter Weise für die oberste Lage. Aus diesem Grund überprüft der Algorithmus die aktuelle Metalllage und entscheidet, ob das zu erzeugende Via eine Durchkontaktierung nach oben oder nach unten darstellen soll . Sind beide Richtungen möglich, so wird mit gleicher Wahrscheinlichkeit zufällig eine der beiden Möglichkeiten gewählt. Daraufhin wird das Via erzeugt und der Abstandsregel- prüfung unterzogen. Besteht die Änderung den Test, so wurde das Via regelkonform erzeugt . Wurde die maximale Anzahl an Durchkontaktierungen noch nicht erreicht, so springt der Algorithmus an den Beginn der Schleife
zurück. Die Bearbeitung des nächsten Element der Vialiste beginnt, d.h. ein weiteres Via wird erzeugt. War die Generierung des Vias nicht regelkonform, beispielsweise weil der DRC-Check eine Verletzung des Mindestabstands zwischen dem Via und einem benachbarten Metallstück festgestellt hat, so wird das soeben erzeugte Via entfernt. Der Programmfluss kehrt nun ebenfalls an den Schleifenanfang zurück und bearbeitet die nächste Position in der Positionsliste.
Nach der Erzeugung eines Clusters liegt seine Geometrie in Form einer zweidimensionalen Entwurfsansicht im Layout-Editor vor. Fig. 5 zeigt eine solche Ansicht (hier schwarz-weiß, die einzelnen Ebenen werden im Editor farblich unterschieden) . Der Cluster wird als eigenständige Entwurfseinheit (Zelle) in einer Bibliothek abgespeichert und einer Kapazitätsanalyse (Extraktion) unterzogen. Zu diesem Zweck und zur externen Weiterverarbeitung mit Werkzeugen anderer EDA- Plattformen wird das Layout in ein Standardformat konvertiert (sog. GDSII- oder Stream-Format) .
Für den mit dem Layout der Fig. 5 erzeugten Kapazitätscluster wurde eine dreidimensionale Schrägansicht erstellt, um den strukturellen Aufbau besser erkennen zu können. Die zweidimensionale Entwurfsansicht, die typisch ist für alle Layout- Editoren, bietet bei den Kapazitätsclustern dagegen wenig Anschaulichkeit, da sie für die manuelle Eingabe geometrischer Formen gedacht ist und eher bei regelmäßigen Strukturen Vorteile aufweist . Die 3D- Ansicht in Fig. 6 wurde mit einem Raytracing- und Rendering-Programm erstellt, mit dem dreidimensionale
Szenen unter Berücksichtigung von Lichtausbreitung, Schattenwurf und Reflektion berechnet werden können. Dadurch erzeugen Licht- und Schatteneffekte einen räumlichen Tiefeneindruck, der dem Betrachter die Dreidimensionalität der betrachteten Objekte vermittelt. In der linken, hinteren Ecke des Clusters der Fig. 6 ist die Anschlussstelle für die Auswerteelektronik zu sehen, ein kleiner, rechteckiger Bereich auf der obersten Metalllage. Neben den typischerweise horizontal und vertikal verlaufenden Strukturen, erstrecken sich einige Leitungsstücke in schräger Richtung. Der grundsätzliche Aufbau ist völlig willkürlich und die einzelnen Metallfragmente in ihrer Größe und Lage zufällig. Als besonderes Merkmal sind schließlich noch die kleinen Ecken und Ausbuchtungen zu nennen. Es sind in erster Linie diese letzten drei Eigenschaften der Kapazitätscluster, die sie von herkömmlichen, regelmäßigen Strukturen wie sie aus der Hand eines Ingenieurs stammen oder von Verdrahtungs- Werkzeugen (Router) erzeugt werden, unterscheidet.
Bei der Nutzung des vorliegenden Verfahrens sind keinerlei lokale Kopien des geheimen Schlüssels erforderlich. Das Verfahren eröffnet ein sehr weites Einsatzfeld und stellt ein einfaches Prinzip zur Einprägung sowie gegebenenfalls Erzeugung eines geheimen Schlüssels dar, der fest mit einem physikalischen Medium verbunden ist. Der geheime Schlüssel ist auch mit vollständiger Kenntnis des Generierungsverfahrens nur mit sehr hohem Aufwand zu ermitteln.
Die Figuren 11 und 12 zeigen ein weiteres Beispiel für eine Messschaltung zur Durchführung des erfindungsgemäßen Verfahrens. Diese Messschaltung nutzt eine auf Ladungspumpen basierende Technik, um die parasitären Kapazitäten von zwei komplexen Leitungsstrukturen miteinander zu vergleichen. Mit dieser Technik wird eine sehr hohe Genauigkeit bei geringem Flächenbedarf der Messschaltung erreicht. Die Messschaltung kommt ohne externe Messgeräte aus und verfügt über eine spezielle Vorkehrung, die den von der Schwellwert- dispersion der in der Messschaltung eingesetzten Transistoren herrührenden Messfehler minimiert .
Auf Ladungspumpen basierende Techniken zur Messung kleiner Kapazitäten in integrierten Schaltungen sind bekannt. Die Kapazität wird bei den bekannten Techniken aus einem linearen Fit durch eine Anzahl von Messpunkten bestimmt. Jeder Messpunkt gibt den mittleren Strom an, der bei einer bestimmten Frequenz und Spannung in den zu vermessenden Kondensator gepumpt wird. Beim Ladungspumpen dienen zwei nicht überlappende Taktpulse als Schaltsignale zum Laden bzw. Entladen des Kondensators. Der resultierende mittlere Strom, der in einem vorgegebenen Zeitintervall durch den ladenden Transistor in den Kondensator fließt, wird hierbei mit einem externen Amperemeter gemessen.
In der vorliegenden Anwendung wird diese Technik modifiziert, um die gesamte Messschaltung ohne externe Messgeräte in einen integrierten Schaltkreis zu integrieren. Eine derartige Messschaltung ist in Figur 11 dargestellt, in der die Zelle mit den zu vergleichenden Kapazitäten lediglich durch das Rechteck
repräsentiert ist. Ein Beispiel für eine derartige Zelle ist in der Figur 12 im Detail dargestellt.
Bei der vorgeschlagenen Messschaltung wird nicht der mittlere Strom gemessen. Vielmehr ist ein großer Kondensator Cioad auf dem Chip integriert, der zunächst durch ein Ladesignal „ load" vorgeladen und anschließend durch ein Entladungssignal QinJ durch Pumpen von Elektronen in die gerade zu vermessende Kapazität, bspw. Cl (vgl. Figur 12), stufenweise entladen wird.
Auf diese Weise verringert sich die Anfangsspannung VQin mit jedem Taktpuls um einen Betrag, der von der zu vermessenden Kapazität Cl bzw. C2 abhängt. Nach mehreren Taktzyklen wird die Spannung am Lade- kondensator Cioad/ die durch einen PMOS Source-Folger verstärkt wird, mit einem Sample-and-Hold Element abgetastet . Diese Prozedur wird mit der zweiten zu vermessenden Kapazität C2 wiederholt. Die Umschaltung zwischen den beiden Kapazitäten Cl, C2 erfolgt hierbei über die Schaltsignale swCl und swC2. Die Entladung der jeweiligen Kapazitäten Cl, C2 wird durch das „clear"- Signal ausgelöst. Die durch das Sample-and-Hold Element für die beiden Kapazitäten Cl, C2 abgetasteten Spannungen werden in einem Komparator verglichen, der in Abhängigkeit vom Vergleich den Bitwert 0 oder 1 ausgibt. Diese Prozedur wird für alle Paare von Clustern bzw. Leitungsstrukturen wiederholt, bis die gewünschte Anzahl an Bits ausgelesen ist . Hierzu kann die Zelle der Figur 11 auch mehr als zwei zu vermessende Cluster enthalten. Bei zwei Clustern ergibt sich ein mögliches Vergleichspaar (1 Bit) , bei drei Clustern 3 Paare (3 Bit) , bei vier Clustern 6 Paare (6
Bit) usw. Alternativ kann für jedes Clusterpaar auch eine gesonderte Messschaltung vorgesehen sein.
Figur 12 zeigt ein Beispiel der Zelle mit lediglich einem Paar von Kapazitätsclustern entsprechend den zu vermessenden Kapazitäten Cl, C2. In dieser Figur ist auch die bereits angesprochene Vorkehrung zur Messfehlerminimierung dargestellt, die die den Kapazitäten Cl bzw. C2 zugeordneten NMOS- Transistoren umfasst, die durch das Signal „clear" eingeschaltet werden.
Selbstverständlich können in der Messschaltung der Figuren 11 und 12 anstelle der PMOS und NMOS Transistoren auch andere Arten von Transistoren eingesetzt werden, die die gleichen Sehaltfunktionen erfüllen.
Die folgenden Beispiele zeigen unterschiedliche Anwendungen, bei denen ein Chip oder eine Chipkarte mit einem kryptographisehen Schlüssel, der gemäß dem vorliegenden Verfahren eingeprägt wurde, einsetzbar ist.
Eine erste Beispielanwendung ist ein elektronischer Schlüssel für PKW in Form einer Fernbedienung (Figur 7) . Der Schlüsselgenerator (KeyGen) , der das vorliegende Verfahren nutzt, erzeugt auf allen Chips denselben geheimen Schlüssel (PrivKey) . Dieser wird mit einer Seriennummer versehen, so dass sich für jedes
Paar aus Schloss und Fernbedienung jeweils ein eigener geheimer Schlüssel ergibt, den Schloss und Fernbedienung jedoch gemeinsam haben. Dieser Schlüssel
dient nun dazu, eine zufällige Bitfolge im Schloss und in der Fernbedienung zu verschlüsseln. Diese Bitfolge wird bei jedem Öffnen und Schließen von Neuem erzeugt und zwischen Schloss und Schlüssel ausgetauscht . Durch den Vergleich (Cmp) zwischen den Ergebnissen der
Verschlüsselung in Fernbedienung und Schloss wird die Autorisierung realisiert: Nur wenn beide, Schloss und Fernbedienung, über denselben Schlüssel (PrivKey) verfügen, ist die verschlüsselte Bitfolge exakt gleich. Ohne die Kenntnis des geheimen Schlüssels ist es einem Angreifer nicht möglich, die Fernbedienung so nachzubauen oder zu imitieren, dass sie die gleiche verschlüsselte Bitsequenz erzeugt wie das Schloss oder die Originalfernbedienung.
Grundsätzlich lässt sich das vorliegende Verfahren oder ein damit erhaltener Chip für alle Anwendungen einsetzen, in denen eine Autorisationsprüfung bzw. Zugangskontrolle realisiert werden soll (Smart-Card Anwendungen) . Auch hier kann analog zum oben genannten Prinzip verfahren werden, d.h. durch Einsatz eines All- Chips-Key die Echtheit von Smart-Cards überprüft werden.
Ein weiteres Anwendungsbeispiel betrifft die Übertragung und Verteilung von Multimedia-Inhalten unter Nutzung eines Single-Chip-Key. In diesem Anwendungsfall geht es um die sichere Übertragung und Verteilung von Multimedia-Inhalten, z.B. Musik oder Videoströmen. In einem Gerät (Handy, Walkman, Computer, DVDPlayer, etc.) soll Multimedia-Inhalt (Cont) abgespielt werden, der von einem Anbieter (MMProvider) z.B. aus dem Internet nach Bedarf (On-Demand) bezogen
wird. Der Multimedia-Inhalt soll auf dem Gerät unendlich oft abspielbar sein und Sicherheitskopien (z.B. auf DVD) möglich sein, jedoch soll er nicht auf dem Gerät eines Dritten zu gebrauchen sein.
Durch die in Figur 8 dargestellte Verfahrensweise wird eine solche Anwendung möglich. Angenommen, Käufer A besitze N Multimedia-Geräte, für die er den Inhalt kaufen möchte. Jedes dieser Geräte besitzt seinen eigenen öffentlichen Schlüssel, PubKeyl bis PubKeyN. Diese werden bei einem Kauf dem Multimedia-Anbieter übermittelt. Der Anbieter erzeugt daraufhin (auf herkömmliche Weise) einen neuen geheimen Schlüssel (DESKeyA) pro Kunde, den er N-mal (d.h. für jedes MM- Gerät des Käufers) mit den Schlüsseln PubKeyl bis
PubKeyN verschlüsselt. Die verschlüsselten Schlüssel DESKeySecl bis DESKeySecN können dann von den Multimedia-Geräten des Käufers A entschlüsselt werden, nicht jedoch von den Geräten einer anderen Person B. Aufgrund dieser Eigenschaft ist es nun möglich, den
Multimedia-Inhalt über einen offen, nicht gesicherten Kanal (Internet, UMTS, etc.) zu verschicken, wenn dieser zuvor beim Anbieter mit dem geheimen Schlüssel DESKeyA des Käufers A verschlüsselt wurde. Die Geräte des Käufers A sind schließlich in der Lage, mithilfe des geheimen Schlüssels DESKeyA den Multimedia-Inhalt zu entschlüsseln. Da nur diese Geräte über ihren eigenen geheimen Schlüssel SecKeyl bis SecKeyN verfügen, kann keines der Geräte einer anderen Person an den Schlüssel DESKeyA des Käufers A gelangen um dessen Multimedia-Inhalt zu entschlüsseln.
Auch in diesem Anwendungsfall ist es sinnvoll, eine Authentizitätsprüfung zu implementieren, um sicherzustellen, dass alle öffentlichen Schlüssel aus dem Multimedia-Gerät stammen und nicht vom Anwender selbst erstellt wurden. Dazu kann ein All-Chips Key
(nicht dargestellt) verwendet werden, der in jedem MM- Gerät und bei den MM-Anbietern vorhanden ist und immer gleich ist. Dieser wird nun vom MM-Gerät benutzt, um die öffentlichen Schlüssel PubKeyl bis PubKeyN zu verschlüsseln. Nur wenn MM-Gerät und MM-Anbieter über denselben Schlüssel verfügen, ist ein korrekter Austausch der Schlüssel PubKeyl bis PubKeyN möglich.
Das hier diskutierte Problem der Schlüssel- authentizität ist ein grundsätzliches Problem bei allen Public-Key Verfahren. Es wird gegenwärtig dadurch gelöst, dass ein öffentlicher Schlüssel nur dann als authentisch deklariert wird, wenn er zuvor von vertrauenswürdigen Stellen überprüft wurde. In der Regel wird der Schlüssel dann auf einen öffentlich zugänglichen Server gelegt. Analog dazu könnte in dem hier vorgestellten Anwendungsfall jeder öffentliche Schlüssel aller MM-Gerät beim Hersteller vor dem Verkauf der Geräte ausgelesen werden, veröffentlicht werden und dadurch authentifiziert werden.
Ein weiteres Beispiel betrifft den Schutz von Software unter Einsatz von All-Chips Key und Single- Chip Keys. Mit dem allgemeinen Begriff „Schutz von Software" sind Aspekte gemeint, die auch im Rahmen der Trusted-Computing-Initiative behandelt werden. Dabei geht es in erster Linie darum, Software auf einem System nur dann auszuführen, wenn dies autorisiert
wurde. Eine gegenwärtig angewandte Form ist die Produktaktivierung eines bekannten Betriebssystems. Die Stelle des geheimen Schlüssels nimmt dabei eine individuelle Zahlenfolge ein, die sich aus den Hardwarekomponenten eines Rechners durch Anwendung eines geheim gehaltenen Verfahrens ableitet . Hierbei handelt es sich ausschließlich um einen Kopierschutz.
Mit dem in der vorliegenden Erfindung vorge- schlagenen Single-Chip Key kann ein solcher Kopierschutz ebenfalls realisiert werden, die folgenden Nachteile jedoch vermieden werden:
1. Eingeschränkte Reproduzierbarkeit. Die Produktaktivierung ist jedesmal von Neuem nötig, wenn sich mehr als eine bestimmte Zahl an Hardwarekomponenten eines Rechners ändern bzw. ausgetauscht werden, da die Zahlenfolge, die sich aus diesen Komponenten ergibt, eine andere ist. 2. Implementierung in schwach geschützter
Software .
Das Verfahren zur Produktaktivierung bzw. der Vergleich zwischen einem Freischaltcode und der Zahlenfolge der Hardwarekomponenten ist im Betriebssystem selbst implementiert, d.h. erfolgt in Software. Durch Reverse- Engineering (Disassemblierung bzw. Debugging) kann der verwendete Algorithmus abgeleitet werden, um für die individuelle Zahlenfolge der jeweiligen Nutzer den dazugehörigen Freischaltcode zu berechnen. Durch Kenntnis dieses Algorithmus ist es nun jeder Person möglich, für jede Hardwarezusammenstellung eigenständig einen Freischaltcode zu erzeugen und sein Betriebssystem zu aktivieren.
Die Liste ähnlicher Fälle lässt sich fortsetzen. Immer dann, wenn es um die Verarbeitung von sicherheitsrelevanten Informationen geht, ist es nötig, die entsprechenden Verarbeitungsroutinen zu schützen, d.h. zu verschlüsseln. Einzig und allein im Prozessor selbst und unmittelbar vor der Ausführung der Befehle sollten die Anweisungen entschlüsselt werden. In allen anderen Teilen des Rechners, insbesondere auf externen Daten- träger, sollten die sensiblen Programmteile ausschließlich verschlüsselt vorliegen.
Das Schema in Figur 9 zeigt einen entsprechenden Lösungsansatz. Jeder Prozessor einer bestimmten Baureihe (für alle Baureihen) verfügt über denselben geheimen Schlüssel PrivKey (All-Chip Key) . Mit diesem lassen sich sicherheitskritische Befehle (CodeSec) im Prozessor entschlüsseln. Außerhalb des Prozessors sind die Befehlsfolgen immer verschlüsselt. Damit ein Softwarehersteller seine sicherheitskritischen
Programmteile verschlüsseln kann, aktiviert er die Verschlüsselungseinheit (Encrypt) und übergibt ihr die Routinen zur Verschlüsselung (Code) . Die verschlüsselten Programmteile sind dadurch geschützt und können zusammen mit dem ungeschützten Teil der Software vertrieben bzw. verkauft werden (Vertrieb) . Die Aktivierung der Verschlüsselungseinheit kann wiederum durch verschlüsselte Softwareroutinen realisiert werden, so dass z.B. eine Autorisationsprüfung eingebunden werden kann. Dies würde sicherstellen, dass nicht jeder Anwender beliebig oft große Datenmengen verschlüsseln kann, um über einen Vergleich zwischen den unverschlüsselten und den verschlüsselten Daten den
geheimen Schlüssel zu errechnen (DES gilt diesem Angriff gegenüber als sehr sicher) .
Der Idealfall bezüglich Flexibilität und Sicherheit ist die Kombination aus den in Figuren 8 und 9 dargestellten Verfahren, d.h. der Einsatz eines AlI- Chips Key und von Single-Chip Keys. Letztere kennzeichnen jeden Prozessor in eindeutiger Weise, so dass Programme und insbesondere Multimedia-Inhalte nur auf den autorisierten Prozessoren lauffähig sind. Der All- Chips Key stellt dagegen die Authentizität des Prozessors (d.h. seines Single-Chip Keys) sicher und ermöglicht es, Softwareteile vor dem Anwender geheim zu halten und damit vor Reverse-Engineering und Manipulationen zu schützen.
Figur 10 stellt eine solche Architektur schematisch dar. Jeder der N Prozessoren der Person A hat sein eigenes, individuelles Schlüsselpaar PrivKeyXA und PubKeyXA, alle anderen Funktions- Prozessoreinheiten sind identisch. Der Schlüssel DESKeyB stellt den persönlichen Schlüssel für Person B dar, mit dem Multimedia-Inhalte, aber auch sicherheitskritische Programmteile für jeden der M Prozessoren von B verschlüsselt werden. Er wird von A für B individuell erzeugt (auf herkömmliche Weise) und mit den öffentlichen Schlüsseln PubKeylB ... PubKeyMB von B verschlüsselt. Um die Authentizität dieser Schlüssel sicherzustellen, wurden sie von B mit dem All-Chips Key PrivKey verschlüsselt, so dass diese nur von den
Prozessoren selbst stammen können, nicht jedoch von Person A, B oder einer anderen. Auf diese Weise können Personen sicherheitskritische Daten austauschen, ohne
dass der Empfänger oder ein unberechtigter Dritter an die unverschlüsselten Daten selbst gelangen kann. Die verschlüsselten Daten sind jedoch frei verfügbar, so dass Kopien der Daten geschützt sind, seien es lokale Kopien im Arbeitsspeicher bzw. auf Festplatte oder Sicherheitskopien.
Ein weiteres Anwendungsbeispiel stellt die Konfiguration in FPGAs dar. Die Programmierung bzw. Konfiguration einiger FPGAs wird vor Einsichtnahme geschützt, so dass die in ihnen realisierten Schaltungen nicht zugänglich sind. Wichtigstes Ziel ist hierbei, das den Schaltungen zugrunde liegende geistige Eigentum vor Diebstahl zu schützen. Eine Verschlüs- seiung der Konfiguration, basierend auf einem All-Chip Key und Public-Key Kryptographie, könnte die Sicherheit bisheriger Ansätze weiter erhöhen. Die Programmierung eines FPGA wäre im Konfigurationsspeicher immer nur verschlüsselt hinterlegt und würde erst im FPGA selbst entschlüsselt werden. Als PlatzSparmaßnahme könnte die RSA-Einheit auf dem FPGA aus den ohnehin vorhandenen programmierbaren Gattern des FPGA bestehen, die immer dann eingesetzt werden, wenn der FPGA neu konfiguriert werden soll. Sie stellen damit die Reset-Konfiguration dar und werden nach erfolgreicher Entschlüsselung und
Programmierung mit den neuen Schaltungen überschrieben. Soll der FPGA erneut programmiert werden, so kehrt die Konfiguration der Gatter in den Reset-Zustand zurück, in dem die Gatter zur RSA-Einheit verschaltet sind.
Bezugszeichenliste
1 Stromquelle
2-4 Schalter
5 parasitäre Kapazität
6 parasitäre Kapazität
7 Komparator
8 Ausgang der Messschaltung elektrische Leitungen
10 Durchkontaktierungen
11 MessSchaltung