-
Die
vorliegende Erfindung bezieht sich auf eine Vorrichtung zum Liefern
eines Zufallsbitstroms und insbesondere auf eine Vorrichtung, die
auf Jitter-basierter Oszillatorabtastung basiert.
-
Symmetrische
und asymmetrische Verschlüsselungsalgorithmen
erfordern eine Verfügbarkeit
einer qualitativ hochwertigen Zufallszahlquelle für Schlüsselerzeugung.
Zufallszahlen werden auch verwendet zum Erzeugen von Herausforderungen
in Authentifizierungsprotokollen, zum Erzeugen von Auffüllbytes
und Ausblendwerten für
Zufallsmaskierung.
-
Selbst
wenn Pseudozufallszahlengeneratoren (PRNG; PRNG = pseudo random
number generator) basierend auf kryptographischen sicheren deterministischen
Algorithmen für
diese Zwecke verwendet werden können,
wird eine physikalische Quelle von wahrer Zufälligkeit benötigt zur
Algorithmus-Startwerteinstellung.
Zu diesem Zweck muss ein kryptographisches Token, wie z.B. eine
Chipkarte, auch einen wahren Zufallsgenerator (RNG; RNG = Zufallszahlengenerator)
unter seinen Peripheriegeräten
aufweisen.
-
Das
Hauptmerkmal einer qualitativ hochwertigen Zufallsquelle ist die
Unvorhersagbarkeit des erzeugten Bitstroms. Ein Beobachter oder
sogar ein Angreifer darf nicht in der Lage sein, eine sinnvolle Vorhersage über die
Ausgabe des wahren RNG auszuführen,
selbst wenn der Entwurf des RNG bekannt ist.
-
Ein
wahrer RNG erzeugt einen Zufallsbitstrom von einer nicht-deterministischen
natürlichen Quelle,
wie einem elektronischen Rauschen oder einem radioaktiven Zerfall.
In der Tat sind bei einer integrierten Implementierung elektronische
Rauschquellen, wie thermisches oder Schrotrauschen die einzigen
stochaischen Prozesse, die ausgenutzt werden können.
-
Gemäß dem Stand
der Technik können
drei unterschiedliche Techniken zum Erzeugen von Zufallsbitströmen betrachtet
werden: Direktverstärkung einer
Rauschquelle, Jitter-basierte
Oszillatorabtastung und zeitdiskrete chaotische Abbildungen.
-
Die
erste Technik, eine direkte Verstärkung einer Rauschquelle nutzt
eine Verstärkung
einer Quelle von weißem
Rauschen, das normalerweise thermisches Rauschen von einem integrierten
Widerstand oder ein Schrotrauschen von aktiven Vorrichtungen ist.
Ein Hochleistungsverstärker
ist erforderlich, um ein Rauschsignal zu erhalten, dessen Amplitude
groß genug
ist für
weiter Verarbeitung, wie einen Vergleich mit einer Spannungsreferenz
und Abtastung. Das Hauptproblem beim Entwurf eines verstärkungsbasierten
RNG ist eine Versatzspannung nach dem Rauschverstärker. Ein
Versatz, der sehr viel kleiner ist als eine Rauschstandardabweichung,
wird benötigt,
um einen qualitativ hochwertigen Zufallsbitstrom zu erhalten. Eine
Rauschverstärkerbandbreite ist
auch ein Thema, falls eine schnelle Abtastfrequenz erforderlich
ist. Ein weiterer Nachteil ist das Vorliegen einer internen Störung von
einer Leistungsversorgung, einem Substrat oder einer Kreuzkopplung,
und einer externen Störung,
deren Leistungsebene höher
sein kann als der Zufallsrauschpegel an dem Verstärkereingang,
falls keine ordnungsgemäßen Entwurfstechniken
verwendet werden. Als Folge können
periodische Strukturen in die Ausgabe des wahren RNG gezwungen werden,
die somit seine statistische Qualität und Unvorhersagbarkeit beeinträchtigen.
Periodische Strukturen sind ein Hauptproblem bei einer Chipkarten-Implementierung
eines RNG, da keine adäquate
externe Abschirmung nutzbar ist und der RNG auf einem allgemeinen
Siliziumsubstrat nahe zu rauschbehafteten digitalen Schaltungen
integriert ist. Um das Versatzproblem zu adressieren, wird bei W.
T. Holman, J. A. Connelly und A. B. Downlatabadi, „An integrated analog/digital random
noise source", IEEE
Trans. Circuits and Syst. I, Band 44, Nr. 6, Seiten 521–528, Juni
1997, ein einfaches Tiefpassfilter verwendet, um die Versatzspannung
an dem Verstärkerausgang
aufzuheben. Die vorgeschlagene Lösung
erfordert eine Chipfläche, die
zu groß ist
und darüber
hinaus wird der Komparatorversatz nicht ausreichend entfernt. In
M. Bucci, L. Germani, R. Luzzi, P. Tommasino, A. Trifiletti, M.
Varanonuovo, "A
high speed truly IC random number source for Smart Card microcontrollers", Proc. 9th IEEE International Conf. on Electronics,
Circuits and Systems (ICECS 2002), Seiten 239–242, Sept. 2002, und M. Bucci,
L. Germani, R. Luzzi, P. Tommasino, A. Trifiletti, M. Varanonuovo, „A high
speed IC random number source for Smart Card microcontrollers", IEEE Trans. Circuits
and Syst. I, Band 50, Nr. 11, Seiten 1.377–1.380, Nov. 2003, wird ein
verstärkungsbasierter
wahrer RNG beschrieben, der ein genaues Versatz-Nullpunkteinstellung-System aufweist,
ohne externe Komponenten und große Kondensatoren zu verwenden.
-
Ein
wahrer RNG, der auf der zweiten Technik basiert, der Jitter-basierten
Oszillatorabtastung, umfasst grundsätzlich zwei freilaufende Oszillatoren
und ein Abtastelement, wie ein einzelnes D-Typ-Flip-Flop. Ein Ausgangssignal
von einem langsameren der beiden Oszillatoren tastet eine Ausgabe
des schnelleren der beiden Oszillatoren ab und erzeugt somit einen
Bitstrom. Die resultierende Bitsequenz leitet sich von der Oszillatormittelfrequenzverhältnis und
deren Zyklus-zu-Zyklus-Jitter ab. Ordnungsgemäß gewählte Frequenzverhältnisse
führen zu
Bitströmen,
die zufälliger
erscheinen, wenn statistische Zufallstests angewendet werden. Trotzdem liegt
die Ausgangsbitentropie daran, dass der Jitter des Oszillators die
einzige Zufallsquelle in einem solchen System ist. Falls das Abtastsignal
des schnellen Oszillators einen unsymmetrischen Mittelwert aufweist,
gibt dies wiederum Anlass zu einem unsymmetrischen Mittelwert auf
dem Ausgangsbitstrom oder zu einem Anstieg in seiner Bit-zu-Bit-Korrelation
gemäß dem angenommenen
Abtastele ment. Dies ist jedoch nicht der Hauptnachteil, den es zu
berücksichtigen
gilt. Darüber
hinaus können
periodische Störungen
wie ein Systemtakt den Abtastoszillator synchronisieren, und somit
seinen Jitter dramatisch reduzieren. In M. Bucci, L. Germani, R.
Luzzi, A. Trifiletti, M. Varanonuovo, "A high-speed oscillator-based truly random
number source for Cryptographic Applications on a Smart Card IC", IEEE Trans. Computers, Band
52, Nr. 4, Seiten 403–490,
April 2003, wird ein oszillatorbasierter wahrer RNG beschrieben,
wo der Abtastoszillator eine verstärkte Rauschquelle innerhalb
aufweist und somit ein sehr hohes Jitter-zu-Mittelperiodenverhältnis von
etwa 10 % erreicht. Dies erhöht
die Zufallsbitstromqualität
auf Kosten eines Anstiegs bei den Flächen- und Leistungsanforderungen.
-
1 zeigt
eine schematische Ansicht eines gejitterten Oszillatorabtast-basierten
RNG gemäß dem Stand
der Technik. Eine RNG-Quelle 100 umfasst einen Hochfrequenzoszillator 102,
einen Niederfrequenzoszillator 104, einen Vorskalierer 106 und
einen Abtaster 108. Der Abtaster 108 ist ein D-Flip-Flop. Der Hochfrequenzoszillator 102 erzeugt ein
schnelles Taktsignal 110, das ein Dateneingangssignal in
den Abtaster 108 ist. Der Niederfrequenzoszillator 104 erzeugt
ein langsames Taktsignal 112, das durch den Vorskalierer 106 vorskaliert
wird. Der Vorskalierer 106 gibt ein Abtastsignal 114 aus,
das ein Eingangssignal in einen Takteingang des Abtasters 108 ist.
Der Abtaster 108 tastet das schnelle Taktsignal 110 auf
einer ansteigenden Flanke des Abtastsignals 114 ab und
gibt ein Zufallsbit 116 aus, das von einem Abtastzustand
des schnellen Taktsignals 110 abhängt, während dasselbe abgetastet wird. Hier
sind aufeinanderfolgende Zufallbits 116 eine Eingabe in
einen digitalen Post-Prozessor 120, der einen Zufallsbitstrom 122 ausgibt.
-
2 zeigt
Charakteristika des schnellen Taktsignals 110, des langsamen
Taktsignals 112 und des Abtastsignals 114, wie
sie in 1 gezeigt sind, Das schnelle Taktsignal 110 weist
eine Periode TFAST und ein Tastverhältnis d
auf. Das langsame Taktsignal 112 weist eine Periode TSLOW auf. Flanken des langsamen Taktsignals 112 umfassen
einen Jitter. Das Abtastsignal 114 wird von dem langsamen
Taktsignal 112 erzeugt, durch Vorskalieren des Abtastsignals 112 um
einen Faktor, der in dem Vorskalierer definiert ist. Hier wird das
langsame Taktsignal 112 um einen Faktor von 4 vorskaliert.
Während
das Abtastsignal 114 von dem langsamen Taktsignal 112 erzeugt
wird, umfasst die Flanke des Abtastsignals 114 ebenfalls
einen Jitter. Eine Periode des Abtastsignals 114 ist TSAMPLE und eine Standardabweichung des Jitters
des Abtastsignals 114 ist σ (TSAMPLE) • Flanken des
Abtastsignals 114 und des schnellen Taktsignals 110 sind
nicht synchronisiert. Hier tritt die Flanke des schnellen Taktsignals 110 um
eine Zeitperiode t0 später auf als die Flanke des
Abtastsignals 114. Frequenzschwebung der beiden freilaufenden
Oszillatoren 102, 104 (in 1 gezeigt)
erzeugt ein nicht-weißes
Rauschsignal. Dies ist insbesondere ein Problem bei einem standardzellenbasierten
RNG, wo der Jitter typischerweise eine geringe Intensität aufweist.
Darüber
hinaus wird ein unsymmetrischer Zufallsbitstrom 122 erhalten,
falls das Tastverhältnis
d des schnellen Taktsignals 110 unsymmetrisch ist. Ein relativer
Jitter bezüglich
des schnellen Taktsignals ist hilfreich.
-
Die
letzte erwähnte
Technik nutzt basierend auf zeitdiskreten chaotischen Abbildungen
eine Abtastung eines chaotischen Systems, um eine Zufallsbitsequenz
zu erzeugen. Nicht-lineare oder stückweise lineare Systeme können ein
chaotisches Verhalten zeigen, unter ordnungsgemäßen Bedingungen für ihre internen
Parameter. Unter chaotischen Bedingungen führen zwei beliebig nahe Anfangszustände zu zwei
vollständig
unterschiedlichen Systementwicklungen. Daher sind die Quellen der
Zufälligkeit der
Fehler oder das Rauschen über
der Messung des Anfangszustands und der Rauschbeitrag während den
Zustandsübergängen. Wenn
ein chaotisches System in einem physikalischen Gerät implementiert wird,
bewirken Umgebungs- und Prozessschwankungen leider Parameterschwankungen,
die das System zwingen können,
sein chaotisches Verhalten zu verlassen und sich somit gemäß einer
periodischen Bahn zu entwickeln. Verweise auf chaos-basierte wahre
RNGs finden sich in T. Stojanovski and L. Kocarev, „Chaos-based
random number generators – Part
I: Analysis", IEEE
Trans. Circuits and Syst. I, Band 48, Nr. 3, Seiten 281–288, März 2001,
und T. Stojanovski, J. Pihl, und L. Kocarev, „Chaos-based random number
generators – Part
II: Practical realization",
IEEE Trans. Circuits and Syst. I, Band 48, Nr. 3, Seiten 382–385, März 2001.
-
Da
verschiedene Techniken verschiedene Vorteile aufweisen zum Erhöhen der
Qualität
der Gesamtquelle, wird in C. S. Petrie, J. A. Connelly, „A noise-based
IC random number generator for applications in cryptography", IEEE Trans. Circuits
and Systems I, Band 47, Nr. 5, Seiten 615–621, Mai 2000, ein wahrer
RNG präsentiert,
der eine Mischung der drei oben erwähnten RNG-Techniken annimmt.
Eine Quelle, die gegenüber
deterministischen Störungen ziemlich
widerstandsfähig
ist, wird erreicht, selbst wenn es aufgrund des Mischens der unterschiedlichen
Techniken schwierig ist, ein statistisches Modell für das System
zu liefern, das es ermöglicht,
seinen Betrieb zu zertifizieren. Eine effektivere Lösung, ein Nachverarbeiten
des gesamten Bitstroms von der Quelle mit einem sorgfältig entworfenen
Korrektur- oder Dekorrelationsalgorithmus, der auch eine gewisse
Komprimierung aufweist, kann verwendet werden. Ein langsamerer Bitstrom
mit erhöhter
statistischer Qualität
wird von einem Hochgeschwindigkeits-Beinahezufallseingabestrom erzeugt,
durch Auswählen
der Entropieabschnitte desselben.
-
Aus
dem Obigen folgt, dass jede Zufallsquelle, selbst wenn sie gut entworfen
ist, einen Bitstrom erzeugt, der normalerweise einen bestimmten
Korrelationspegel anzeigt, unter anderem aufgrund von Bandbreitenbegrenzung,
Herstellungstoleranzen, Alterung und Temperaturschwankungen oder
deterministischen Störungen.
-
Die
US-B-6,631,390 zeigt einen Zufallszahlgenerator, der einen Taktoszillator
zum Liefern eines Taktsignals und ein Dividieren-Durch-Zwei-Flip-Flops zum
Liefern eines Eingangssignals umfasst. Das Taktsignal und das Eingangssignal
sind über
Verzögerungen
mit einem Flip-Flop verbunden. Aufgrund einer metastabilen Operation
des Flip-Flops werden Zufallszahlen erzeugt. Die Verzögerungen
können eingestellt
werden, um die Anzahl von Fehlern zu erhöhen.
-
„Design
on an On-Shift Random Number Generator using Meta-Stability" by D. J. Kinninent
beschreibt einen Zufallszahlgenerator, der ein geschaltetes Kondensatornetzwerk
umfasst, das sicherstellt, dass eine bistabile Vorrichtung anfangs
an einem meta-stabilen Punkt gehalten wird. Eine Rückkopplungsschleife
ist vorgesehen, die die Ausgangsspannung mittelt, um sicherzustellen,
dass sich der Ausgang 50 % von hohen und 50 % von niedrigen Werten
nähert.
-
Die
WO-A-03081417 offenbart einen Zufallszahlgenerator, der eine Geschlossene-Schleife-Inverterkette,
eine Verarbeitungsvorrichtung zum Verarbeiten eines Signals zwischen
zwei aufeinanderfolgenden Inverterketten der Inverter, die in Reihe
geschaltet sind, und eine Ausgabevorrichtung umfasst zum Ausgeben
einer Zufallszahl. Durch spezifisches Beeinflussen der Geschlossene-Schleife-Inverterkette
ist die Gefahr einer periodischen Abtastung durch die Ausgabevorrichtung
reduziert.
-
Es
ist die Aufgabe der vorliegenden Erfindung, eine Vorrichtung zum
Liefern eines qualitativ hochwertigen Zufallsbitstroms zu schaffen.
Diese Aufgabe wird durch eine Vorrichtung zum Liefern eines Zufallsbitstroms
gemäß Anspruch
1 gelöst.
-
Die
vorliegende Erfindung basiert auf der Erkenntnis, dass eine Synchronisation
der Abtastflanke des Abtastsignals zu einer Flanke des abgetasteten Taktsignals
eine Erzeugung eines qualitativ hochwertigen Zufallsbitstroms ermöglicht, Gemäß der erfindungsgemäßen Anordnung
werden das Taktsignal und das Abtastsignal synchronisiert durch
die Einrichtung zum Aktivieren der Einrichtung zum Liefern des Taktsignals
und der Einrichtung zum Liefern des Abtastsignals. Dies ermöglicht es,
einen qualitativ hochwertigen Zufallsbitstrom zu erhalten, selbst wenn
die Einrichtung zum Liefern eines Taktsignals und die Einrichtung
zum Liefern eines Abtastsignals einen sehr geringen Jitterpegel
aufweisen. Darüber hinaus
kann das gesamte System in einem vollständig digitalen Entwurf implementiert
werden. Dies ermöglicht
eine leichtere integrierte Implementierung. Eine solche Implementierung
kann vorteilhafterweise für
eine Chipkartensteuerung verwendet werden. Der erfindungsgemäße Lösungsansatz
ermöglicht
ferner das Liefern eines synchronisierten Zufallsbitstroms durch
Synchronisieren der Einrichtung zum Aktivieren mit einem Systemtakt.
Dies ermöglicht
das Kompensieren jeglicher Störungen
des Systemtakts.
-
Da
die erfindungsgemäße Vorrichtung
zum Liefern eines Zufallsbitstroms implementiert werden kann unter
Verwendung von nur digitalen Gattern, die in jeden Standardzellenbibliotheken
verfügbar
sind, ohne eine analoge Schaltung zu benötigen, werden eine kürzere Entwurfszeit,
höhere
Erträge
und eine höhere Übertragbarkeit
auf unterschiedliche Technologien erreicht.
-
Gemäß einem
bevorzugten Ausführungsbeispiel
umfassen die Einrichtung zum Liefern eines Taktsignals und die Einrichtung
zum Liefern eines Abtastsignals einen digitalen Ringoszillator und
die Einrichtung für
die Synchronisation umfasst eine Verzögerungsleitung, die beide durch
Verwenden digitaler Gatter implementierbar sind.
-
Gemäß einem
weiteren bevorzugten Ausführungsbeispiel
wird die Ausrichtung der Abtastflanke des Abtastsignals mit der
Flanke des Taktsignals eingestellt durch eine Rückkopplungsschleife und Verzögerungsleitungen.
Dies ermöglicht es,
einen symmetrischen Zufallsbitstrom zu liefern, selbst wenn das
Abtastsignal mit Bezugnahme auf das Taktsignal einen geringen Jitter
aufweist. Ferner ermöglicht
die Rückkopplungsschleife
eine Kompensation jeder Asymmetrie zwischen den Signalwegen des
Taktsignals und des Abtastsignals. Da die Abtastung um eine Flanke
des Taktsignals ausgeführt
wird, beeinträchtigt
ein unsymmetrisches Tastverhältnis
des Taktsignals nicht die Symmetrierung des gelieferten Zufallsbitstroms.
Ein weiterer Vorteil der vorgeschlagenen Erfindung basiert auf der
Einrichtung zum Deaktivieren der Einrichtung zum Liefern eines Taktsignals
und der Einrichtung zum Liefern eines Abtastsignals nach dem Erzeugen
eines Zufallsbits, was garantiert, dass es in dem gelieferten Zufallsbitstrom keinen Übergang
gibt, aufgrund einer Schwebung des Taktsignals und des Abtastsignals.
Dies wiederum ermöglicht
die Verwendung einer Übergangszählung als
einfachen Laufzeittest, um die Qualität des Zufallsbitstroms zu erfassen,
wie es vorgeschlagen ist in V. Bagini and M. Bucci, „A design
of a reliable true random number generator for cryptographic applications", Proc. Workshop
on Cryptographic Hardware Embedded Systems (CHES 99), Lecture Notes in
Computer Science 1717, Springer-Verlag, Heidelberg, Germany, 1999,
Seiten 204–218
und in E. Trichina, M. Bucci, D. De Seta, und R. Luzzi, „Supplemental
cryptographic hardware for Smart Cards", IEEE Micro, Band 21, Nr. 6, Seiten
26–35,
Nov. 2001, und in NIST FIPS 140-2, Security requirements for cryptographic
modules", Mai 2001.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden hierin nachfolgend mit Bezugnahme
auf die angehängten
Zeichnungen beschrieben.
-
1 zeigt
eine Zufallszahlgeneratorquelle gemäß dem Stand der Technik;
-
2 zeigt
eine Charakteristik von Signalen der Zufallszahlgeneratorquelle
gemäß dem Stand der
Technik;
-
3 zeigt
eine schematische Ansicht einer Vorrichtung zum Liefern eines Zufallbitstroms
gemäß der vorliegenden
Erfindung;
-
4 zeigt
eine Charakteristik von Signalen der Vorrichtung zum Liefern eines
Zufallbitstroms gemäß der vorliegenden
Erfindung;
-
5 zeigt
eine schematische Ansicht einer Vorrichtung zum Liefern eines Zufallbitstroms
gemäß einem
weiteren Ausführungsbeispiel
der vorliegenden Erfindung;
-
6 zeigt
eine schematische Ansicht einer Vorrichtung zum Liefern eines Zufallbitstroms
gemäß einem
weiteren Ausführungsbeispiel
der vorliegenden Erfindung; und
-
7 zeigt
eine schematische Ansicht eines Zufallszahlgenerators basierend
auf einer Vorrichtung zum Liefern eines Zufallbitstroms gemäß der vorliegenden
Erfindung.
-
3 zeigt
eine schematische Ansicht eines bevorzugten Ausführungsbeispiels eines wahren
Zufallszahlgenerators, basierend auf einer Vorrichtung 300 zum
Liefern eines Zufallsbitstroms gemäß der vorliegenden Erfindung.
Die Vorrichtung 300 zum Liefern eines Zufallsbitstroms
umfasst eine Einrichtung 302 zum Liefern eines Taktsignals,
eine Einrichtung 306 zum Liefern eines Abtastsignals und
eine Einrichtung 308 zum Abtasten. Die Einrichtung 302 zum
Liefern eines Taktsignals erzeugt ein schnelles Taktsignal 310,
das mit der Einrichtung 308 zum Abtasten verbunden ist.
Die Einrichtung 306 zum Liefern eines Abtastsignals erzeugt
ein Abtastsignal 314, das mit der Einrichtung 308 zum
Abtasten verbunden ist. Ansprechend auf das Abtastsignal 314 tastet
die Einrichtung 308 zum Abtasten das schnelle Taktsignal 310 ab
und gibt ein Zufallsbit 316 aus, abhängig von dem Abtastergebnis.
Aufeinanderfolgende Zufallsbits 316 bilden einen Zufallsbitstrom.
-
Der
gezeigte Zufallszahlgenerator umfasst ferner eine Einrichtung 322 zum
Aktivieren, eine Einrichtung 328 zum Deaktivieren und eine
Einrichtung 330 zum Bestimmen eines Mittelwerts. Die Einrichtung 322 zum
Aktivieren steuert die Einrichtung 302 zum Liefern eines
Taktsignals und die Einrichtung 306 zum Liefern eines Abtastsignals.
Die Einrichtung 322 zum Aktivieren gibt ein Startsignal 340 und
dann ein Freigabesignal 342 aus. Das Startsignal 340 ist mit
der Einrichtung 306 zum Liefern eines Abtastsignals verbunden,
und das Freigabesignal 342 ist mit der Einrichtung 302 zum
Liefern eines Taktsignals verbunden. Die Einrichtung 302, 306 startet
das Erzeugen des schnellen Taktsignals 310 und des Abtastsignals 314 ansprechend
auf das Freigabesignal 342 und das Startsignal 340.
Die Einrichtung 302 zum Liefern eines Taktsignals und die
Einrichtung 306 zum Liefern eines Abtastsignals werden
durch die Einrichtung 328 zum Deaktivieren deaktiviert.
Daher ist die Einrichtung 328 zum Deaktivieren mit dem Abtastsignal 314 verbunden.
Ansprechend auf das Abtastsignal 314 erzeugt die Einrichtung 328 zum Deaktivieren
ein Stoppsignal 346, das mit der Einrichtung 302, 306 verbunden
ist. Ansprechend auf das Stoppsignal 346 stoppen die Einrichtung 302, 306 das
Erzeugen des schnellen Taktsignals 310 und des Abtastsignals 314.
-
Gemäß einem
weiteren Ausführungsbeispiel können das
Startsignal 340 und das Freigabesignal 342 eingestellt
werden. Daher ist die Einrichtung 330 zum Bestimmen eines
Mittelwerts mit dem Zufallsbitstrom 316 verbunden. Die
Einrichtung 330 zum Bestimmen eines Mittelwerts bestimmt
einen Mittelwert von aufeinanderfolgenden Zufallbits 316.
Die Einrichtung 330 gibt ein Steuersignal 348 aus,
das die Einrichtung 322 zum Aktivieren einstellt, abhängig von dem
bestimmten Mittelwert von aufeinanderfolgenden Zufallbits 316.
-
4 zeigt
Charakteristika des Startsignals 340, des schnellen Taktsignals 310 und
des Abtastsignals 314, wie dieselben in 3 gezeigt
sind, und eines Fertig-Signals, wie es in 5 bis 7 gezeigt
ist. Wie es von 4 ersichtlich ist, spricht das Abtastsignal 314 auf
das Startsignal 314 an. Das Abtastsignal 314 weist
eine Zeitperiode von TSAMPLE auf. Nach einer
halben Zeitperiode TSAMPLE/2 tritt eine
Abtastflanke 470 auf. Die Abtastflanke 470, die
eine erste ansteigende Flanke des Abtastsignals 314 ist,
ist mit einer Flanke 472 des schnellen Taktsignals 310 ausgerichtet,
die periodisch zwischen einem ersten Zustand und einem zweiten Zustand
schaltet. Die Ausrichtung der Abtastflanke 470 und der
Flanke 472 des schnellen Taktsignals 310 wird
durch eine Verzögerungszeit 474 erreicht.
Die Verzögerungszeit 472 wird
durch die Einrichtung 322 zum Aktivieren (in 3 gezeigt)
gesteuert, und ist die Zeit, die die Einrichtung 302 zum
Liefern eines Taktsignals aktiviert ist, nach der Einrichtung 306 zum
Verarbeiten eines Abtastsignals. Somit wird eine Ausrichtung der
Flanken 470, 472 erreicht.
-
Die
Ausrichtung der Abtastflanke 470 und der Flanke 472 des
Taktsignals vermeidet Frequenzschwebung und maximiert die Zufallsbitstromdatenqualität, insbesondere
beim Vorliegen eines Niedrig-Jitter-behafteten Abtasttaktsignals.
Außerdem
beeinträchtigt
ein unsymmetrisches Tastverhältnis
d eine Symmetrierung des erzeugten Zufallsbitstroms 316 (in 3 gezeigt)
nicht. Das Fertig-Signal 417 wird ansprechend auf die Abtastflanke 470 aktiviert und
zeigt eine Erzeugung eines Zufallsbits 316 an.
-
5 zeigt
ein weiteres bevorzugtes Ausführungsbeispiel
einer Vorrichtung zum Liefern eines Zufallsbitstroms. Die Vorrichtung 500 zum
Liefern eines Zufallbitstroms umfasst eine Einrichtung zum Liefern
eines Taktsignals, das durch einen Hochfrequenzringoszillator 502 gebildet
wird, eine Einrichtung zum Liefern eines Abtastsignals, das durch
einen Niederfrequenzringoszillator 504 und einen konfigurierbaren
Vorskalierer 506 gebildet wird, eine Einrichtung zum Abtasten,
die durch ein Abtastelement oder einen Abtaster 508 gebildet
wird. Der Hochfrequenzoszillator 502 erzeugt ein schnelles
Taktsignal 510, wie das schnelle Taktsignal 310,
das in 4 gezeigt ist. Das schnelle Taktsignal 510 ist
mit dem Abtaster 508 verbunden. Der Niederfrequenzoszillator 510 erzeugt
ein langsames Taktsignal 512, wie das in 2 gezeigte
langsame Taktsignal 112. Das langsame Taktsignal 512 ist
mit dem Vorskalierer 506 verbunden. Der Vorskalierer 506 skaliert
das Niedrigtaktsignal 512 vor und gibt ein Abtastsignal 514 aus, wie
das in 4 gezeigte Abtastsignal 314. Das Abtastsignal 514 ist
mit dem Abtaster 508 verbunden. Der Abtaster 508 tastet
das schnelle Taktsignal 510 ansprechend auf die Abtastflanke
des Abtastsignals 514 ab. Entsprechend einem Abtastergebnis
gibt der Abtaster 508 ein Zufallsbit 516 und ein
Fertigsignal 517 aus. Das Fertigsignal 517 zeigt
eine Erzeugung eines neuen Zufallsbits 516 an und wird
verwendet, um die Oszillatoren 502, 504 zu deaktivieren.
Die Vorrichtung 500 umfasst ferner eine Einrichtung 524 zum
Verzögern
eines Startsignals 540 und zum Ausgeben eines Freigabesignals 542.
Die Einrichtung 524 zum Verzögern ist Teil der Einrichtung 322 zum Aktivieren,
wie es in 3 gezeigt ist. Das Startsignal 540 aktiviert
den Niederfrequenzoszillator 504. Das Freigabesignal 542 aktiviert
den Hochfrequenzoszillator 502. Die Einrichtung 524 zum
Verzögern verzögert das
Startsignal 540 um eine Verzögerungszeit, wie es in 4 gezeigt
ist, und richtet somit die Abtastflanke und eine Flanke des schnellen
Taktsignals 510 aus. Die Einrichtung 524 zum Verzögern spricht
auf ein Steuersignal 548 an.
-
Das
Steuersignal 548 ist Teil einer Rückkopplungsschleife, wie es
in 3 gezeigt ist, zum Synchronisieren der Abtastflanke
des Abtastsignals mit einer Flanke des schnellen Taktsignals. Als
Folge wird der Zufallsbitstrom, der aus aufeinanderfolgenden Zufallbits 516 gebildet
ist, symmetrisch, selbst wenn der Niederfrequenzoszillator 504 und
der Vorskalierer 506 bezüglich einer Periode des schnellen Taktsignals 510 einen
niedrigen Jitter aufweisen.
-
Ein
Vorskalierungsfaktor des Vorskalierers 506 kann eingestellt
werden, um die Standardabweichung σ' (TSAMPLE) des
Jitters der Abtastflanke einzustellen.
-
6 zeigt
eine schematische Ansicht eines weiteren Ausführungsbeispiels einer Vorrichtung 600 zum
Liefern eines Zufallsbitstroms. Die Elemente, die bereits in 5 gezeigt
und beschrieben wurden, sind mit den gleichen Bezugszeichen bezeichnet
und hierin nachfolgend nicht beschrieben. Bei diesem Ausführungsbeispiel
umfasst der Niederfrequenzringoszillator 504 einen Niederfrequenzringoszillator 604 und
ein lineares Rückkopplungsschieberegister 605 (LFSR;
LFSR = linear feedback shift register). Der Niederfrequenzringoszillator 604 und
das LFSR 605 sind mit dem Startsignal 540 verbunden.
Für das LFSR 605 ist
das Startsignal 540 ein Rücksetzsignal. Das LFSR 605 ist
mit dem langsamen Taktsignal 512 verbunden und getaktet.
Das LFSR 605 ist mit dem Niederfrequenzringoszillator 604 verbunden,
um eine mittlere Periode des Niederfrequenzringoszillators 604 zu
stören.
-
Die
Einrichtung 524 zum Verzögern des Startsignals 514 umfasst
eine erste Verzögerungsleitung 624 und
eine zweite Verzögerungsleitung 625. Die
erste Verzögerungsleitung 624 ist
eine Grobverzögerungsleitung
und die zweite Verzögerungsleitung 625 ist
eine Feinverzögerungsleitung.
Um die beiden Verzögerungsleitungen 624, 625 einzustellen, umfasst
das Steuersignal 548, wie es in 5 gezeigt
ist, ein Grobsteuersignal 648 und ein Feinsteuersignal 649.
-
In
diesem Ausführungsbeispiel
ist eine Einrichtung zum Deaktivieren durch ein Stoppsignal 646 gebildet.
Das Stoppsignal 646 ist gleich dem Abtastsignal 514 und
ist mit dem Hochfrequenzoszillator 502 und dem Niederfrequenzoszillator 604 verbunden.
Um die Abtastflanke des Abtastsignals 514 und eine Flanke
des schnellen Taktsignals 510 zu synchronisieren, werden
die Oszillatoren 502, 604 nach jedem Abtastschritt
angehalten und erneut gestartet, gemäß einem externen Befehl, der
durch das Startsignal 540 geliefert wird. Der schnelle
Ringoszillator 502 beginnt nach einer Verzögerungszeit
bezüglich des
Niederfrequenzringoszillators. Wie es in 3 beschrieben
ist, kann die Verzögerungszeit
eingestellt werden durch eine Rückkopplungsschleife
gemäß einem
Mittelwert des Zufallsbits 516 des Ausgangsstroms und erhöht dadurch
eine Flankensynchronisation. Die Verzögerungszeit wird durch die Grobverzögerungsleitung 624 eingestellt,
die durch das Grobsteuersignal 648 gesteuert wird, und
die Feinverzögerungsleitung 625,
die durch das Feinsteuersignal 649 gesteuert wird. Die
einstellbare Einrichtung 524 zum Verzögern ist mit zwei unterschiedlich
gekörnten
Verzögerungsleitungen 624, 625 implementiert,
um die Übergangsantwort
der Rückkopplungsschleife
zu beschleunigen. Die Rückkopplungsschleife
kompensiert jede Asymmetrie zwischen dem Signalweg des schnellen
Taktsignals 510 und dem Signalweg des langsamen Taktsignals 512 und
des Abtastsignals 514 von dem Startsignal 540 zu
dem Abtaster 508, einschließlich Drahtausbreitungsverzögerungszeiten
und einer Abtastereinrichtungszeit.
-
Um
eine Synchronisation des Niederfrequenzoszillators 604 mit
einer periodischen Störung zu
vermeiden, wird ein Pseudozufalls-Verwürfen der mittleren Periode
des langsamen Taktsignals 512 verwendet. Daher umfasst
der Niederfrequenzoszillator 504 das LFSR 605,
um ein Pseudozufalls-Verwürfen zu
implementieren und dadurch eine Synchronisation mit einer periodischen
Störung
zu vermeiden. Am Anfang eines neuen Erzeugungszyklusses beginnt
das LFSR 605 an sprechend auf das Startsignal 540 erneut
von seinem Rücksetzwert.
Somit wird die gleiche Pseudozufallssequenz jedes Mal wiederholt,
wenn die Vorrichtung 600 damit beginnt, ein neues Zufallsbit 516 zu
erzeugen. Als eine Folge liegt nach dem Vorskalierer 506 eine
Schwankung bei der Periode des Abtastsignals 514 an einem
Jitter des Niederfrequenzoszillators 604 selbst, und keine Pseudozufallsmodulation
ist sichtbar, wodurch das Synchronisationsproblem adressiert wird,
ohne eine künstliche
Pseudozufälligkeit
in den Zufallsbitstrom 516 einzuführen.
-
Bei
den oben beschriebenen Ausführungsbeispielen
werden die Niederfrequenzoszillatoren auf der abfallenden Flanke
eines Anfangspulses des Startsignals aktiviert, und die schnellen
Oszillatoren werden nach einer Verzögerung aktiviert, die durch eine
Rückkopplungsschleife
eingestellt wird. Nach einer Abtastung des Taktsignals auf einer
ersten ansteigenden Flanke des Abtastsignals wird ein Fertigpuls
erzeugt, beide Oszillatoren werden angehalten und ein neuer Zyklus
kann wieder beginnen. Alternativ zu dem Fertigsignal werden die
Oszillatoren mit dem Abtastsignal verbunden und durch die Abtastflanke
deaktiviert. Da der Anfangspuls synchron ist mit dem Systemtakt,
ist anzumerken, dass, die Zufallsbiterzeugung ebenfalls synchron
sein wird. Als Folge ist jede Störung
von dem Takt während
jedes Erzeugungszyklus gleich, und wird durch die Rückkopplungsschleife
kompensiert. Es ist klar, dass die beschriebenen Signale bezüglich Tastverhältnissen und Übergängen unterschiedliche
Charakteristika aufweisen können.
-
7 zeigt
eine Architektur oberer Ebene eines wahren Zufallszahlgenerators,
der die vorgeschlagene Vorrichtung 600 zum Liefern einer
Zufallsbitquelle verwendet, wie es in 6 gezeigt
ist. Der wahre Zufallszahlgenerator umfasst vier Hauptfunktionsblöcke, einschließlich der
Vorrichtung 600 zum Liefern eines Zufallsbitstroms, einer
Steuerung oberer Ebene (RNGP-CTRL) 750, einer Verzögerungsleitungssteuerung 752 und
eines Nachverarbeitungsregisters 754. Das Nachverarbeitungsregister 754 ist mit
dem Zufallsbitstrom 516 verbunden, der durch aufeinanderfolgende
Zufallbits gebildet ist, die durch die Vorrichtung 600 und
das Fertig-Signal 517 erzeugt
werden, und gibt ein 32-Bit-breites Zufallsbitausgabewort 760 aus.
Die Verzögerungsleitungssteuerung 752 ist
mit dem Zufallsbitstrom 560 und dem Fertig-Signal 517 verbunden
und erzeugt das Grobsteuersignal 648 und das Feinsteuersignal 649. Die
Steuerung oberer Ebene 750 ist mit dem Fertig-Signal 517,
dem Zufallsbitstrom 516 und dem Ausgangssignal 760 verbunden.
Darüber
hinaus gibt die Steuerung oberer Ebene 750 ein Anforderungssignal 762 ein
und gibt ein Bestätigungssignal 764,
ein Warnsignal 766 und ein Fehlersignal 768 aus.
-
Wenn
eine Anforderung für
ein neues Zufallswort 760 über das Anforderungssignal 762 empfangen
wird, werden Zufallsbits 516 durch die Vorrichtung 600 erzeugt
und durch das Nachverarbeitungsregister 754 verarbeitet.
Die Steuerung oberer Ebene 750 steuert die Erzeugung von
Zufallsbits 516 durch das Startsignal 540, bis
eine gewünschte Übergangszahl
auf dem Zufallsbitstrom 516 erreicht ist. Dann wird das
Bestätigungssignal 764 erhöht, oder falls
nach einem maximalen Komprimierungsverhältnis zu wenige Übergänge erfasst
werden, wird das Warnsignal 766 aktiviert. Daher wird ein
Komprimierungsverhältnis
des Zufallsbitstroms dynamisch geändert, gemäß einer statistischen Qualität des Zufallsbitstroms 516.
Eine solche adaptive Nachverarbeitung des Zufallsbitstroms 516 ist
ein weiterer Vorteil der vorgeschlagenen Vorrichtung 600 zum
Liefern eines Zufallsbitstroms.
-
Bei
den obigen Ausführungsbeispielen
kann eine Kette von Invertern oder eine Kette von Puffern anstatt
einer Verzögerungsleitung
verwendet werden. Gemäß einem
weiteren Ausführungsbeispiel
ist die zweite Einrichtung angeordnet, um bezüglich einer Abtastfrequenz
steuerbar zu sein, so dass ein Kompromiss zwischen einem Durchsatz
und einer Zufallszahlqualität
erhalten werden kann. Dies ermöglicht es,
die Vorrichtung zum Liefern eines Zufallsbitstroms an unterschiedliche
Anwendungen anzupassen.
-
- 100
- Zufallszahlgeneratorquelle
- 102
- Hochfrequenzoszillator
- 104
- Vorskalierer
- 108
- Abtaster
- 110
- schnelles
Taktsignal
- 112
- langsames
Taktsignal
- 114
- Abtastsignal
- 116
- Zufallsbitsignal
- 120
- digitaler
Nachverarbeiter
- 122
- Zufallsbitstrom
- 300
- Vorrichtung
zum Liefern eines Zufallsbitstroms
- 302
- Einrichtung
zum Liefern eines Taktsignals
- 306
- Einrichtung
zum Liefern eines Abtastsignals
- 308
- Einrichtung
zum Abtasten
- 310
- schnelles
Taktsignal
- 314
- Abtastsignal
- 316
- Zufallsbit
- 322
- Einrichtung
zum Aktivieren
- 328
- Einrichtung
zum Deaktivieren
- 330
- Einrichtung
zum Bestimmen eines Mittelwerts
- 340
- Startsignal
- 342
- Freigabesignal
- 346
- Stoppsignal
- 348
- Steuersignal
- 417
- Fertigsignal
- 470
- Abtastflanke
- 472
- Flanke
des schnellen Taktsignals
- 474
- Verzögerungszeit
- 500
- Vorrichtung
zum Liefern eines Zufallsbitstroms
- 502
- Hochfrequenzoszillator
- 504
- Niederfrequenzoszillator
- 506
- Vorskalierer
- 508
- Abtaster
- 510
- schnelles
Taktsignal
- 512
- langsames
Taktsignal
- 514
- Abtastsignal
- 516
- Zufallsbit
- 517
- Fertigsignal
- 524
- Einrichtung
zum Verzögern
- 540
- Startsignal
- 548
- Steuersignal
- 600
- Vorrichtung
zum Liefern eines Zufallsbitsignals
- 604
- Niederfrequenzoszillator
- 605
- lineares
Rückkopplungsschieberegister
- 624
- Grobverzögerungsleitung
- 625
- Feinverzögerungsleitung
- 646
- Stoppsignal
- 648
- Grobsteuersignal
- 649
- Feinsteuersignal
- 750
- Steuerung
- 752
- Verzögerungsleitungssteuerung
- 754
- Nachverarbeitungsregister
- 760
- Zufallswort
- 762
- Anforderungssignal
- 764
- Bestätigungssignal
- 766
- Warnsignal
- 768
- Fehlersignal