-
TECHNISCHES GEBIET
-
Ausführungsformen der Erfindung betreffen im Allgemeinen das Gebiet von integrierten Schaltungen und insbesondere Systeme, Verfahren und Vorrichtungen für einen Zufallszahlengenerator auf der Basis von Oszillatorrauschen.
-
HINTERGRUND
-
Kryptographische Techniken im Allgemeinen erfordern die Erzeugung einer Zufallszahl, um einen Geheimwert bereitzustellen, der für einen Angreifer unbekannt ist. Zum Beispiel werden Zufallszahlen verwendet, um die öffentlichen/privaten Schlüsselpaare zu erzeugen, die in solchen Algorithmen wie RSA verwendet werden. Zufallszahlen werden für eine große Vielfalt von anderen kryptographischen Zwecken verwendet, die Abfragen, Zeitstempel und dergleichen umfassen.
-
Aus der Druckschrift
US 2003/0037079 A1 ist ein Zufallszahlengenerator mit einem Oszillator, der ein erstes Oszillatorsignal an einen Prozessor liefert, und einem zweite Oszillator, welcher ein Signal an einen Frequenzmultiplizierer liefert, bekannt. Der Frequenzmultiplizierer stellt dem Prozessor ein zweites Oszillatorsignal zur Verfügung. Der relative Jitter zwischen den zwei Oszillatorsignalen wird von dem Prozessor verwendet, um eine Folge von Zufallszahlen zu erzeugen.
-
Aus der
US 2004/0006580 A1 ist ferner ein Verfahren zum Erzeugen von Zufallsbitströmen basierend auf thermischem Rauschen eines CMOS-Bausteins bekannt. Dabei weist ein Schaltkreis zwei Vorrichtungen zum Erzeugen thermischen Rauschens auf, deren Ausgänge an einen Differenzverstärker angeschlossen sind. Darüber hinaus ist aus der Druckschrift
WO 2006/015624 A1 eine Vorrichtung zum Erzeugen einer zufälligen Binärfolge bekannt. Dabei wird eine Logikschaltung verwendet, welche Eingänge und Ausgänge aufweist, wobei die Ausgänge an die Eingänge rückgekoppelt sind.
-
Die Druckschrift
JP 2004280486 A offenbart ferner eine Vorrichtung zum Erzeugen einer Zufallszahlenfolge. Dabei wird eine Summe von Ausgangsgrößen einer Gruppe von Quellen, welche Rauschen erzeugen, mit der Summe einer anderen Gruppe von Quellen, die Rauschen erzeugen, verglichen. Ferner offenbart die
US 2007/0011217 A1 ein Verfahren zum Erzeugen eines Zufallbits. Dabei sind ein Verstärker, ein Komparator, ein Oszillator, ein Abtaster und ein Speicherschaltkreis vorgesehen. Der Verstärker verstärkt eine Differenz zwischen Eingangssignalen, welche basierend auf thermischem Rauschen erzeugt sind. Der Komparator vergleicht eine AC-Ausgangsgröße des Verstärkers mit einem DC-Signal, welches durch ein Filtern der AC-Ausgangsgröße erhalten wird.
-
KURZER ABRISS DER ERFINDUNG
-
Es ist die Aufgabe der Erfindung, eine Erzeugung von Zufallszahlen mit verbesserter stochastischer Verteilung zu ermöglichen. Diese Aufgabe wird durch eine integrierte Schaltung nach Anspruch 1, ein Verfahren nach Anspruch 7 sowie ein System nach Anspruch 12 gelöst.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Ausführungsformen der Erfindung sind in den Figuren der beiliegenden Zeichnungen, in welchen gleiche Bezugszeichen ähnliche Elemente bezeichnen, veranschaulichend und nicht einschränkend dargestellt.
-
1 ist ein übergeordnetes Blockdiagramm, das ausgewählte Aspekte einer integrierten Schaltung veranschaulicht, die gemäß einer Ausführungsform der Erfindung implementiert ist.
-
2 ist ein Blockdiagramm, das ausgewählte Aspekte eines Rechensystems veranschaulicht, das gemäß einer Ausführungsform der Erfindung implementiert ist.
-
3 ist ein Flussdiagramm, das ausgewählte Aspekte des Betriebs eines Zufallszahlengenerators veranschaulicht, der gemäß einer Ausführungsform der Erfindung implementiert ist.
-
4A und 4B sind Blockdiagramme, die ausgewählte Aspekte von Rechensystemen veranschaulichen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsformen der Erfindung betreffen im Allgemeinen Systeme, Verfahren und Vorrichtungen für einen Zufallszahlengenerator auf der Basis von Oszillatorrauschen. In einigen Ausführungsformen wird ein echter Zufallszahlengenerator (TRNG) ohne die Notwendigkeit einer dedizierten TRNG-Hardware bereitgestellt. Anstelle der dedizierten Hardware können Ausführungsformen bestehende Systemtaktgeber verwenden, um eine Entropiequelle bereitzustellen. Wie im Folgenden genauer beschrieben wird, setzt der TRNG in einigen Ausführungsformen eine Digitalsignalverarbeitung (DSP) ein, um zu gewährleisten, dass die Zufallsbits nur die Ausgabe der physikalischen stochastischen Natur eines Oszillators (z. B. der Systemtaktgeber) sind.
-
1 ist ein übergeordnetes Blockdiagramm, das ausgewählte Aspekte einer integrierten Schaltung veranschaulicht, die gemäß einer Ausführungsform der Erfindung implementiert ist. Die integrierte Schaltung (IC) 100 kann zum Beispiel Teil des Chipsatzes für ein Rechensystem sein. Die IC 100 umfasst unter anderem zwei Oszillatoren (102 und 104) und einen RNG 106. In einigen Ausführungsformen kann die IC 100 mehr Elemente, weniger Elemente und/oder andere Elemente als die in 1 dargestellten umfassen.
-
In einigen Ausführungsformen sind die Oszillatoren 102 und 104 Universaloszillatoren in dem Sinne, dass sie nicht ausschließlich für den RNG 106 reserviert sind. Zum Beispiel können die Oszillatoren 102 und 104 Systemtaktgeber für verschiedene Funktionseinheiten der IC 100 (z. B. Prozessor 110) bereitstellen. Die Oszillatoren 102 und 104 müssen unabhängig voneinander sein, weshalb sie durch eine unabhängige Hardware (wie beispielsweise unabhängige Kristalle) bereitgestellt werden können.
-
In einigen Ausführungsformen stellt der RNG 106 Zufallszahlen bereit, die als eindeutige private Zufallskennungen verwendet werden können. Die eindeutigen privaten Zufallskennungen können eine Anzahl von Funktionen unterstützen, welche kryptographische Merkmale wie beispielsweise öffentliche/private Schlüsselpaare (z. B. in RSA-Algorithmen) umfassen. Wie im Folgenden unter Bezugnahme auf 2 bis 3 genauer beschrieben wird, kann der RNG 106 einen zweistufigen Algorithmus einsetzen, um die eindeutigen privaten Zufallskennungen zu erzeugen. In einigen Ausführungsformen bezieht die erste Stufe ein Trennen der Differenz zwischen dem thermischen Rauschen der Oszillatoren von anderen Charakteristiken ein. Die zweite Stufe kann ein Umwandeln des thermischen Rauschens in eine stochastische Binärfolge einbeziehen.
-
In einigen Ausführungsformen sind ausgewählte Aspekte des RNG 106 in Firmware (z. B. Firmware 112) implementiert. Die Firmware kann durch einen Prozessor ausgeführt werden, der auf der IC 100 integriert ist (z. B. Prozessor 110). In alternativen Ausführungsformen können die Firmware 112, der Prozessor 110 und/oder die Oszillatoren 102 und 104 auf zwei oder mehr getrennten integrierten Schaltungen angeordnet sein. Die Firmware 112 kann in jedem beliebigen einer großen Vielfalt von nichtflüchtigen Speichern gespeichert sein, welche zum Beispiel Flash-Speicher, löschbare programmierbare Festwertspeicher (EPROM), elektrisch löschbare programmierbare Festwertspeicher (EEPROM) und dergleichen umfassen. Der Prozessor 110 kann jeder beliebige einer großen Vielfalt von Verarbeitungselementen sein, die eine Diensteprozessor, einen Managementprozessor, einen Universalprozessor und dergleichen umfassen.
-
2 ist ein Blockdiagramm, das ausgewählte Aspekte eines Rechensystems 200 veranschaulicht, das gemäß einer Ausführungsform der Erfindung implementiert ist. Das System 200 umfasst Oszillatoren 202 und 204 sowie einen Zufallszahlengenerator 210. In alternativen Ausführungsformen kann das System 200 mehr Elemente, weniger Elemente und/oder andere Elemente umfassen.
-
Die Differenz zwischen den Oszillatoren 202 und 204 liefert eine Entropiequelle für den Zufallszahlengenerator 210. Zum Beispiel können die Oszillatoren 202 und 204 eine Quelle thermischen Rauschens bereitstellen. In einigen Ausführungsformen dient ein Oszillator (z. B. 202) als Zeitgeber, um einen Zeitraum zu spezifizieren, während dessen die Anzahl von Schwingungen am anderen Oszillator (z. B. 204) gezählt wird. Die Oszillatoren 202 und 204 können Universaloszillatoren sein. Zum Beispiel können sie die Oszillatoren sein, die verschiedene Systemtaktgeber für verschiedene Elemente des Systems 200 bereitstellen. In einigen Ausführungsformen sind die Oszillatoren 202 und 204 unabhängig von der Hardwareebene. Die Oszillatoren 202 und 204 basieren auf unabhängigen Kristallen.
-
Der Zufallszahlengenerator 210 sammelt die Anzahlen der gezählten Schwingungen des Oszillators 204 im Puffer 212 (siehe z. B. Abschnitte 1 bis 3 des beispielhaften Codes, der im Folgenden dargestellt ist). Die Folge der zuvor erwähnten Anzahlen nennen wir gemessenes Rauschen. Das gemessene Rauschen kann eine Mischung aus einem echt stochastischen Prozess (z. B. thermisches Rauschen) und einem pseudostochastischen Prozess (z. B. „Diskretisierungsrauschen”, „Substratrauschen” usw.) umfassen. Der Zufallszahlengenerator 210 trennt das thermische Rauschen vom pseudostochastischen Prozess unter Verwendung der Digitalsignalverarbeitung (DSP). In einigen Ausführungsformen verwendet der Zufallszahlengenerator 210 ein DSP-Filter, um ein Frequenzband mit einem „hohen” Verhältnis von thermischer Rauschleistung zur Leistung des pseudostochastischen Prozesses zu erhalten (sagen wir, das Verhältnis = 100 ist hoch). Nennen wir dieses Frequenzband „thermisches Rauschband”. In der veranschaulichten Ausführungsform wird ein IIR-Filter 214 (Filter mit unendlicher Impulsantwort) verwendet, um das Leistungsspektrum des thermischen Rauschens zu verflachen und auf diese Weise seine Weiterverarbeitung zu vereinfachen. Abschnitt 4 des beispielhaften Codes, der im Folgenden dargestellt ist, stellt ein Beispiel des IIR-Filters 214 gemäß einigen Ausführungsformen bereit. In alternativen Ausführungsformen können andere Techniken verwendet werden, um das Spektrum des thermischen Rauschens zu verflachen. In einigen Ausführungsformen weist das gemessene Rausche die konstante Vorspannung auf, die von der Folge subtrahiert werden kann.
-
In einigen Ausführungsformen kann das thermische Rauschband unter Verwendung von DSP in N Teilbänder geteilt (oder getrennt) werden. Die N Teilbänder können eine geringe Überlappung aufweisen (z. B. weniger als 1% der Leistung). Demnach stellen die N Teilbänder N nichtkorrelierte komplexe gaußsche Kanäle bereit, die stochastisch unabhängig sind. In der veranschaulichten Ausführungsform teilt ein Filter mit endlicher Impulsantwort (FIR-Filter) 216 das thermische Rauschband in N (z. B. 4) Teilbänder. Obwohl 2 einen einzigen Block verwendet, um das FIR-Filter 216 zu veranschaulichen, ist zu erkennen, dass in einigen Ausführungsformen N FIR-Filter 216 vorhanden sein können. Abschnitt 5 des beispielhaften Codes, der im Folgenden dargestellt ist, stellt ein Beispiel eines FIR-Filters 216 gemäß einigen Ausführungsformen bereit. In alternativen Ausführungsformen können andere Techniken verwendet werden, um das thermische Rauschband zu teilen. In einigen Ausführungsformen werden die Elemente jedes Teilbandes in einem jeweiligen Puffer 218 gespeichert.
-
In einigen Ausführungsformen wandelt eine Vergleichslogik 220 die Teilbandelemente, die in den Puffer 218 gespeichert sind, in eine boolesche Folge um. Zum Beispiel kann die Vergleichslogik 220 die realen und imaginären Teile jedes Teilbandelements mit Null vergleichen, um die boolesche Folge zu erzeugen. In alternativen Ausführungsformen kann eine andere Operation verwendet werden, um die boolesche Folge zu erzeugen. Die Vergleichslogik 220 kann so lange laufen gelassen werden als nötig, um eine boolesche Folge von gewünschter Länge zu erzeugen, um eine eindeutige private Zufallskennung 222 zu erzeugen. Die Länge der eindeutigen privaten Zufallskennung 222 ist beliebig und kann bloß eine Funktion der Länge von Zeit sein, die die Vergleichslogik 220 laufen gelassen wird.
-
In einigen Ausführungsformen sind ausgewählte Aspekte des Zufallszahlengenerators
210 in Firmware (z. B. Firmware
112, die in
1 dargstellt ist) implementiert. In solchen Ausführungsformen können die in Firmware implementierten Merkmale durch einen Prozessor (z. B. Prozessor
110, der in
1 dargestellt ist) ausgeführt werden. Zum Beispiel können der Puffer
212, das IIR-Filter
214, das FIR-Filter
216, die Puffer
218 und/der die Vergleichslogik
220 als Firmware implementiert sein, die auf einem Prozessor ausgeführt wird. BEISPIELHAFTER CODE
-
3 ist ein Flussdiagramm, das ausgewählte Aspekte des Betriebs eines Zufallszahlengenerators veranschaulicht, der gemäß einer Ausführungsform der Erfindung implementiert ist. Unter Bezugnahme auf Prozessblock 302 wird das gemessene Rauschen gepuffert. In einigen Ausführungsformen stellt das gemessene Rauschen eine Entropiequelle bereit. Zum Beispiel umfasst das gemessene Rauschen in einigen Ausführungsformen eine Mischung aus einem echt stochastischen Prozess (z. B. thermisches Rauschen) und einem pseudostochastischen Prozess. Die Puffer können in Firmware (z. B. Abschnitt 1 des beispielhaften Codes) implementiert sein, die sich auf einem Prozessor (z. B. Prozessor 110, der in 1 dargestellt ist) ausführen lässt.
-
Unter Bezugnahme auf Prozessblock 304 wird das thermische Rauschen unter Verwendung von DSP vom pseudostochastischen Prozess getrennt. Zum Beispiel kann ein IIR-Filter das thermische Rauschen verflachen. In einigen Ausführungsformen kann das IIR-Filter (oder eine andere geeignete DSP-Operation) in Firmware (z. B. Abschnitt 1 des beispielhaften Codes) implementiert sein, die sich auf einem Prozessor (z. B. Prozessor 110, der in 1 dargestellt ist) ausführen lässt. Das thermische Rauschband kann (wenigstens teilweise) normalisiert sein, um das Signal (wenigstens teilweise) bei Null zu zentrieren.
-
Unter Bezugnahme auf Prozessblock 306 wird das thermische Rauschband in N Teilbänder geteilt. In einigen Ausführungsformen wird eine DSP-Operation, wie beispielsweise ein FIR-Filter, verwendet, um das thermische Rauschband in N Teilbänder zu teilen. Das FIR-Filter (oder eine andere geeignete DSP-Operation) kann in Firmware (z. B. Abschnitt 1 des beispielhaften Codes) implementiert sein, die sich auf einem Prozessor (z. B. Prozessor 110, der in 1 dargestellt ist) ausführen lässt. Elemente der N Teilbänder können in N entsprechenden Puffern (z. B. Puffer 218, die in 2 dargestellt sind) gespeichert werden.
-
Unter Bezugnahme auf Prozessblock 308 wird unter Verwendung der Elemente der N Teilbänder eine boolesche Folge erzeugt. In einigen Ausführungsformen werden die Elemente der N Teilbänder mit Null verglichen, um die boolesche Folge zu erzeugen. In alternativen Ausführungsformen kann eine andere Operation verwendet werden, um die boolesche Folge zu erzeugen. Die boolesche Folge wird auf eine gewünschte Länge wachsen gelassen, um eine eindeutige private Zufallskennung zu erzeugen. Die Länge ist willkürlich und eine Funktion der Länge der Zeit, die die Vergleichsoperation läuft.
-
4A und 4B sind Bockdiagramme, die ausgewählte Aspekte von Rechensystem 400 beziehungsweise 500 veranschaulichen. Das Rechensystem 400 umfasst einen Prozessor 410, der mit einer Zwischenverbindung 420 gekoppelt ist. In einigen Ausführungsformen können die Begriffe „Prozessor” und „zentrale Verarbeitungseinheit (CPU)” austauschbar verwendet werden. In einer Ausführungsform ist der Prozessor 410 ein Prozessor der XEON® Familie von Prozessoren, die von der Intel Corporation in Santa Clara, Kalifornien, erhältlich sind. In einer alternativen Ausführungsform können andere Prozessoren verwendet werden. In einigen Ausführungsformen kann der Prozessor 410 mehrere Prozessorkerne umfassen.
-
In einer Ausführungsform ist der Chip 430 eine Komponente eines Chipsatzes. Die Zwischenverbindung 420 kann eine Punkt-zu-Punkt-Zwischenverbindung sein, oder sie kann mit zwei oder mehr Chips (z. B. vom Chipsatz) verbunden sein. Der Chip 430 umfasst eine Speichersteuerung 440, die mit einem Hauptsystemspeicher (z. B. wie in 1 dargestellt) gekoppelt sein kann. In einer alternativen Ausführungsform kann die Speichersteuerung 440 auf demselben Chip wie der Prozessor 410 sein, wie in 4B dargestellt. Das Speichersystem 444 kann einen Hauptspeicher für das Rechensystem 400 (und das Rechensystem 500) bereitstellen. In der veranschaulichten Ausführungsform umfasst das Speichersystem 444 Speicherbauelemente 446.
-
Eine Eingabe/Ausgabe(I/O)-Steuerung 450 steuert den Fluss von Daten zwischen dem Prozessor 410 und einer oder mehr I/O-Schnittstellen (z. B. drahtgebundenen und drahtlosen Netzschnittstellen) und/oder I/O-Bauelementen. Zum Beispiel steuert die I/O-Steuerung 450 in der veranschaulichten Ausführungsform den Fluss von Daten zwischen dem Prozessor 410 und einem drahtlosen Sender und Empfänger 460. In einer alternativen Ausführungsform können die Speichersteuerung 440 und die I/O-Steuerung 450 in einer einzigen Steuerung integriert sein. In einigen Ausführungsformen umfasst die I/O-Steuerung 450 einen Zufallszahlengenerator 852. Der Zufallszahlengenerator 852 kann einen TRNG für Systeme mit zwei unabhängigen Oszillatoren bereitstellen, die zum Beispiel primäre und sekundäre Taktgeber bereitstellen.
-
Elemente von Ausführungsformen der vorliegenden Erfindung können auch als ein maschinenlesbares Medium zum Speichern der maschinell ausführbaren Anweisungen bereitgestellt werden. Das maschinenlesbare Medium kann Flash-Speicher, optische Platten, CD-ROM (Compact-Disk-Festwertspeicher), DVD-ROM (digitale vielseitige Scheibe/digitale Videoscheibe), Direktzugriffsspeicher (RAM), löschbare programmierbare Festwertspeicher (EPROM), elektrisch löschbare programmierbare Festwertspeicher (EEPROM), magnetische oder optische Karten, Ausbreitungsmedien oder eine andere Art von maschinenlesbaren Medien, die zum Speichern von elektronischen Anweisungen geeignet sind, umfassen, ohne darauf beschränkt zu sein. Zum Beispiel können Ausführungsformen der Erfindung heruntergeladen werden als ein Computerprogramm, das von einem entfernten Computer (z. B. einem Server) durch Datensignale, die in einer Trägerwelle oder einem anderen Ausbreitungsmedium eingebettet sind, über eine Verbindungsstrecke (z. B. ein Modem oder eine Netzverbindung) an einen anfordernden Computer (z. B. einem Client) übertragen werden kann.
-
Es sollte zu erkennen sein, dass während der gesamten Spezifikation die Bezugnahme auf „eine (bestimmte) Ausführungsform” oder „(irgend)eine Ausführungsform” bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Charakteristik, die in Verbindung mit der Ausführungsform beschrieben wird, in wenigstens einer Ausführungsform der vorlegenden Erfindung enthalten ist. Daher ist hervorzuheben und sollte zu erkennen sein, dass zwei oder mehr Bezugnahmen auf „(irgend)eine Ausführungsform” oder „eine (bestimmte) Ausführungsform” oder „(irgend)eine alternative Ausführungsform” in verschiedenen Teilen dieser Spezifikation sich nicht unbedingt alle auf dieselbe Ausführungsform beziehen. Außerdem können die bestimmten Merkmale, Strukturen oder Charakteristiken je nach Eignung in einer oder mehr Ausführungsformen der Erfindung kombiniert sein.
-
Ähnlich sollte zu erkennen sein, dass in der vorhergehenden Beschreibung von Ausführungsformen der Erfindung verschiedene Merkmale manchmal zusammen in einer einzigen Ausführungsform, Figur oder Beschreibung zusammengefasst wurden, um die Offenbarung zu straffen und einen oder mehr der verschiedenen erfinderischen Aspekte besser verständlich zu machen. Dieses Offenbarungsverfahren ist jedoch nicht dahingehend auszulegen, dass es die Absicht widerspiegelt, dass der beanspruchte Gegenstand mehr Merkmale als die in jedem Anspruch ausdrücklich angegebenen benötigt. Vielmehr liegen, wie die folgenden Ansprüche widerspiegeln, erfinderische Aspekte in weniger als allen Merkmalen einer einzelnen zuvor offenbarten Ausführungsform. Demnach werden die auf die ausführliche Beschreibung folgenden Ansprüche hiermit ausdrücklich in diese ausführliche Beschreibung aufgenommen.