DE60319002T2 - Verfahren und vorrichtung zur generierung von zufallszahlen mittels metastabiler flip-flops - Google Patents

Verfahren und vorrichtung zur generierung von zufallszahlen mittels metastabiler flip-flops Download PDF

Info

Publication number
DE60319002T2
DE60319002T2 DE60319002T DE60319002T DE60319002T2 DE 60319002 T2 DE60319002 T2 DE 60319002T2 DE 60319002 T DE60319002 T DE 60319002T DE 60319002 T DE60319002 T DE 60319002T DE 60319002 T2 DE60319002 T2 DE 60319002T2
Authority
DE
Germany
Prior art keywords
latches
random
latch
random number
output states
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60319002T
Other languages
English (en)
Other versions
DE60319002D1 (de
Inventor
Michael Briarcliff Manor EPSTEIN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP BV
Original Assignee
NXP BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NXP BV filed Critical NXP BV
Publication of DE60319002D1 publication Critical patent/DE60319002D1/de
Application granted granted Critical
Publication of DE60319002T2 publication Critical patent/DE60319002T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Manipulation Of Pulses (AREA)
  • Error Detection And Correction (AREA)
  • Control Of Stepping Motors (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Description

  • Die vorliegende Erfindung ist verwandt mit der dem Inhaber der vorliegenden Erfindung erteilten US 6,631,390 B1 mit dem Titel „Method and Apparatus for Genrating Random Numbers Using Flip-Flop Meta-Stability".
  • Die vorliegende Erfindung betrifft die Generation von Zufallszahlen, insbesondere ein Verfahren und eine Vorrichtung zur Generation von Zufallszahlen unter Nutzung des metastabilen Verhaltens von Latches.
  • Latches und Flipflops werden häufig in Rechnern und anderen elektronischen Geräten verwendet, zum Beispiel als Abtast-, Zähl- und Speicherelemente. In 1 ist ein herkömmliches RS-Latch 100 gezeigt. Wie in 1 dargestellt, ist das RS-Latch 100 zusammengesetzt aus zwei NOR-Gattern 110 und 120. Die Ausgänge der beiden NOR-Gatter 110, 120 sind über Kreuz mit einem jeweiligen Eingang des gegenüberliegenden NOR-Gatters verbunden. Somit empfängt NOR-Gatter 110 als Eingangssignale das Ausgangssignal von NOR-Gatter 120 und ein Rücksetzsignal R. Gleichermaßen empfangt NOR-Gatter 120 als Eingangssignale das Ausgangssignal von NOR-Gatter 110 und das Setzsignal S. Der Ausgangszustand des RS-Latches 100 ist für jede der verschiedenen Eingangskombinationen in der Tabelle 200 in 2 gezeigt.
  • Somit sind die in 1 gezeigten Latches 100 für Metastabilität anfällig, wenn beide Eingänge des Latches 100 auf einen hohen logischen Wert („11") gesetzt sind mit anschließendem Übergang in einen Zustand, in dem beide Eingänge einen niedrigen Wert („00") aufweisen. Dieser Übergang bewirkt mitunter, dass die Latch-Ausgangssignale auf eine statistisch bekannte Weise unvorhersagbar oszillieren. Zu einer ausführlichen Erörterung von Metastabilität siehe zum Beispiel Application Note, A Meta-Stability Primer, AN219, Philips Semiconductors (15. Nov. 1989), die durch Verweisung in das vorliegende Dokument aufgenommen ist. Theoretisch kann das Latch 100 unendlich oszillieren. Praktisch erreicht das Latch 100 jedoch zufällig einen Zufallsausgangswert mit entweder niedriger oder hoher Logik. Typischerweise werden diese metastabilen Werte anschließend von anderen Schaltungen in einer gegebenen Anwendung detektiert und können als unterschied liche Logikpegelzustände interpretiert werden oder einen Zwischenzustand annehmen, der von anderen Logikgattern fehlinterpretiert werden kann.
  • Zufallszahlen sind bei vielen Anwendungen und elektronischen Geräten erforderlich, einschließlich bei Glückspielen wie Poker, Roulette und Spielautomaten. Insbesondere hängen zahlreiche Verschlüsselungsalgorithmen und -protokolle von einer nicht vorhersagbaren Zufallszahlenquelle ab, um eine sichere elektronische Kommunikation und dergleichen zu implementieren. Ein Zufallszahlgenerator sollte jede mögliche Permutation in dem vorgesehenen Zahlenbereich generieren. Zusätzlich sollte der Zufallszahlgenerator nicht verzerrend sein und jede beliebige gegebene Zahl mit der gleichen Wahrscheinlichkeit wie andere Zahlen generieren. Darüber hinaus sollte der Zufallszahlgenerator Zufallszahlen generieren, die nicht vorhergesagt werden können, unabhängig von der Größe der Sammlung vorheriger Ergebnisse. Somit sollten die Zufallszahlen vollständig unvorhersagbar und nicht anfällig für äußere Einflüsse sein.
  • Das US-Patent 5,963,104 schlägt ein Verfahren zur Generation von Zufallszahlen unter Verwendung einer Mehrzahl von digitalen Oszillatoren vor, generiert durch Verwendung von Standardzellenkomponenten. Unterschiedliche von den Ringoszillatoren generierte Taktsignale werden unter Verwendung eines gemeinsamen Taktsignals durch eine Mehrzahl von D-Flipflops getaktet, sodass jedes Flipflop intermittierend in einen metastabilen Zustand eintritt. Das vorgeschlagene Verfahren basiert auf dem Umstand, dass die Takteigenschaften eines derartigen Ringoszillators von dem Herstellungsprozess, der Herstellungsumgebung und der Umgebungstemperatur abhängen, was zu einer nicht deterministischen Zufallszahlgeneration führt.
  • Die internationale Patentveröffentlichung WO 01/46797 A1 schlägt einen weiteren Zufallszahlgenerator vor, der auf dem Takten eines Taktsignals basiert. Das Ausgangssignal eines Oszillators wird dazu verwendet, das Ausgangssignal eines weiteren Oszillators zu takten, und zwar unter Verwendung eines D-Flipflops, das infolgedessen in einen metastabilen Zustand eintritt. Das Ausgangssignal des D-Flipflops, das zufällig ist, wird verwendet, um einen Zufalls-Bit-Strom zu generieren, der wiederum verwendet wird, um Zufallszahlen zu generieren.
  • Die WO 01/67231 A2 (= US 6,631,390 B1 ) mit dem Titel „Method and Apparatus for Genrating Random Numbers Using Flip-Flop Meta-Stability" offenbart ein Verfahren und eine Vorrichtung zur Generierung von Zufallszahlen unter Nutzung des metastabilen Verhaltens von D-Flipflops, umfassend inhärente in Reihe geschaltete Latches. Ein Flipflop wird mit einem Eingangssignal getaktet, das die Vorbereitungs- bzw. die Haltezeit (oder beides) des Flipflops bewusst stört, um metastabiles Verhalten sicherzustellen. Immer dann, wenn ein Fehler vorliegt, wird ein Bit gesammelt. Wenn Metastabilität bei einem Binärwert (entweder Null oder Eins) bei einer bestimmten Klasse von Flipflops häufiger auftritt, wird eine gleichmäßige Zufallszahlverteilung erreicht durch „Markieren" der Hälfte der Nullen als „Einsen" und der anderen Hälfte der Nullen als „Nullen". Zusätzlich wird die Hälfte der Einsen als „Einsen" und die andere Hälfte als „Nullen" markiert.
  • Es wurde gefunden, dass die Dauer und das Auftreten von Metastabilität durch Rauschen beeinflusst werden können. Somit kann Rauschen eingesetzt werden, um den Ausgang des Zufallszahlgenerators zu beeinflussen.
  • Während derartige auf dem metastabilen Verhalten von Flipflops basierende Zufallszahlgeneratoren einen wirksamen Mechanismus zur Generation von Zufallszahlen lediglich unter Verwendung von Digitaltechnologie bereitstellen, nutzen sie jeweils ein einzelnes Flipflop und müssen somit eine Vermutung über den Ausgangszustand anstellen. Wünschenswert wäre ein Zufallszahlgenerator, der lediglich Digitaltechnologie verwendet, jedoch keinerlei Vermutungen über den Ausgangzustand erfordert.
  • Im Allgemeinen werden ein Verfahren und eine Vorrichtung zur Generation von Zufallszahlen unter Nutzung des metastabilen Verhaltens von Latches offenbart. Jedes Mal, wenn ein Latch metastabil wird, ist das Ergebnis der Oszillation zufällig im Hinblick auf das Ergebnis oder den logischen Wert, das/der nach Beendigung der Oszillation erhalten wird. Wenn sich der Ausgangszustand eines Latches von dem Wert unterscheidet, der während eines korrekten Betreibens des Latches erhalten worden wäre (also ein „Fehler"), dann kann ein metastabiles Ereignis detektiert werden. Wenn zwei oder mehr im Wesentlichen identische Latches parallel betrieben werden, kann ein Fehler detektiert werden, wenn mindestens zwei der Latches unterschiedliche Ausgangszustände aufweisen. Die Detektion eines Fehlers kann genutzt werden, um die Generation eines Zufalls-Bits gemäß der vorliegenden Erfindung zu triggern.
  • Wie vorstehend angedeutet, ist ein Latch für Metastabilität anfällig, wenn beide Eingänge des Latches auf einen hohen logischen Wert („11") gesetzt sind mit anschließendem Übergang in einen Zustand, in dem beide Eingänge einen niedrigen Wert („00") aufweisen. Gemäß der vorliegenden Erfindung wird eine Anzahl von Latches parallel betrieben und an jeden Eingang jedes Latches der gleiche Binärwert angelegt. Somit wird davon ausgegangen, dass die Latches ihren vorherigen Zustand aufrechterhalten, wenn an jedem Latch ein Wert von „00" anliegt. Wenn jedoch einem Wert von „11” ein Zustand folgt, in dem beide Eingänge einen niedrigen Wert aufweisen („00"), kann der Zustand der Latches unbestimmt sein, was eine zufällige Verschiebung vor Stabilisierung auf einen zufälligen Ausgangswert mit entweder hoher oder niedriger Logik bewirkt. Wenn sich zwei Latches auf unterschiedliche Werte stabilisieren, kann somit ein Fehler identifiziert werden, wodurch die Generation eines Zufalls-Bits gemäß der vorliegenden Erfindung getriggert wird.
  • Ein Aspekt der vorliegenden Erfindung ist ein Verfahren nach Hauptanspruch 1. Ein weiterer Aspekt der Erfindung ist eine Vorrichtung nach Hauptanspruch 12. Weitere Ausführungsformen der Erfindung sind in den jeweiligen beigefügten Unteransprüchen angegeben.
  • Eine umfassendere Vorstellung von der Erfindung sowie weitere Merkmale und Vorteile der vorliegenden Erfindung vermitteln die folgende ausführliche Beschreibung und die Zeichnungen.
  • 1 veranschaulicht ein herkömmliches RS-Latch,
  • 2 ist eine Tabelle, welche die verschiedenen Ausgangswerte des RS-Latches von 1 für jede Kombination von Eingangszuständen angibt,
  • 3A und 3B veranschaulichen zusammen einen Zufallszahlgenerator gemäß der vorliegenden Erfindung,
  • 4 veranschaulicht eine Gruppe von Wellenformen, erzeugt durch die Schaltungen von 3A und 3B, und
  • 5 veranschaulicht eine Selektionsschaltung, die in einer Ausführungsform der vorliegenden Erfindung eingesetzt werden kann, um ein metastabiles Ereignis zu detektieren, wenn eine Mehrzahl von Latches eingesetzt wird.
  • 3A und 3B veranschaulichen zusammen einen Zufallszahlgenerator 300 gemäß der vorliegenden Erfindung. Wie in 3 gezeigt, schließt der beispielhafte Zufallszahlgenerator 300 ein Paar Latches 320-1, 320-2 ein, die in die metastabile Region getrieben werden. Wie nachstehend ausführlicher erörtert, werden die Ausgangszustände der Latches 320-1, 320-2 von einer Schaltung erfasst, welche die Matastabilität beseitigt und die Ausgangszustände vergleicht. Wenn die beiden Ausgangszustände der im Wesentlichen identischen Latch-Schaltungen unterschiedlich sind, wird ein „Fehler" detektiert und ein Zufalls-Bit generiert. Somit stellt der metastabile Betrieb eines der Latches 320-1, 320-2 einen Mechanismus zur Generation von Zufallszahlen bereit.
  • Wie in 3A gezeigt, wird von einem Taktoszillator 305 ein „Takt"-Signal generiert. Das Takt-Signal wird an die Eingänge eines Paars D-Flipflops 310-1, 310-2 angelegt, deren Qbar-Ausgänge zurück zu ihren D-Eingängen geführt werden. Die D-Flipflops 310 stellen einen Zweiteilungsmechanismus bereit. Der Takt-Eingang des Flipflops 310-1 wird durch einen Inverter 308 invertiert. Somit ist das von dem Flipflop 310-1 generierte Anregungssignal gegenüber dem von dem Flipflop 310-2 generierten Akquirierungssignal um 180 Grad phasenverschoben. Das Akquirierungsssignal schreitet voran, und LFSR 380 generiert einen Bit-Strom, der statistisch zur Hälfte Einsen und zur Hälfte Nullen aufweist. Es sei darauf hingewiesen, dass die verschiedenen in 4 gezeigten Wellenformen an den entsprechenden bezeichneten Abtastpunkten in 3A beziehungsweise 3B erhalten werden.
  • Wie in 3A und 4 gezeigt, werden die Latches 320-1 und 320-2 von dem von dem Flipflop 310-1 generierten Anregungssignal gesteuert. Wie vorstehend angedeutet, sind Latches wie beispielsweise die in 3A gezeigten Latches 320-1 und 320-2 für Metastabilität anfällig, wenn beide Eingänge des Latches 310 auf einen niedrigen logischen Wert („00") gesetzt sind mit anschließendem Übergang in einen Zustand, in dem beide Eingänge einen hohen Wert („11") aufweisen. Es sei darauf hingewiesen, dass die Latches 320-1 und 320-2 in 3A aus NAND-Gattern zusammengesetzt sind und anders arbeiten als das NOR-Gatter-Latch 100 von 1. Somit sind, wie in 4 gezeigt, die mit „Latch0" beziehungsweise „Latch1” bezeichneten Ausgangszustände der Latches 320-1 beziehungsweise 320-2 in 3A jedes Mal, wenn das Anregungssignal hoch ist, potenziell unbestimmt. Während zwar der Ausgang eines der NAND-Gatter in jedem Latch 320-1 und 320-2 als der Ausgang des Latches 320-1 und 320-2 festgelegt ist, kann jedoch der Ausgang eines jeden NAND-Gatters gewählt werden (da sie im Wesentlichen identisch sind), wie für den Fachmann ersichtlich sein dürfte. Infolge der ungleichmäßigen Verzögerung in jedem der Latches 320 und infolge der ungleichmäßigen Verzögerung durch das metastabile Verhalten kann ein potenziell unbestimmtes Signal generiert werden. Um den Zufallszahlgenerator 300 für synchrone Anwendungen fähig zu machen, ist in 3B daher ein veranschaulichender Mechanismus bereitgestellt, um die Wellenformen Latch0 und Latch1 miteinander zu synchronisieren. Es sei darauf hingewiesen, dass die Schaltungen von 3A und 3B durch die Kreise mit jeweils gleichen Buchstaben verbunden sind.
  • Die in 3B gezeigte Synchronisierungsschaltung schließt eine Anzahl von seriellen Flipflops 332-n, 334-n und 336-n auf, die jedem Latch 320 zugewiesen sind. Zusätzlich sollte, wenn eines dieser Flipflops 332, 334, 336 metastabil wird, die Periode des Taktsignals lang genug sein, damit sich der Ausgangszustand des metastabilen Flipflops auf einen festgelegten logischen Wert (entweder 0 oder 1) einstellt, sodass das Flipflop stabil ist, wenn das Signal an dem nächsten Flipflop 332, 334, 336 abgetastet wird. Auf diese Weise erhöht jedes Flipflop 332, 334, 336 die Wahrscheinlichkeit, den Ausgangzustand von Latch0 oder Latch1 miteinander zu synchronisieren, während gleichzeitig jeder unbestimmte logische Zustand beseitigt wird. Tatsächlich misst sich die Wahrscheinlichkeit eines fehlerhaften Verhaltens einer derartigen Schaltung in Jahrzehnten.
  • Das Exklusiv-OR-Gatter („XOR") 350 vergleicht die synchronisierte Version der Wellenformen Latch0 und Latch1. Da der Ausgangszustand des XOR-Gatters 350 genau dann hoch ist, wenn sich die beiden Eingangszustände unterscheiden, ist der Ausgangszustand des XOR-Gatters 350 („Fehler") hoch, wenn die Wellenform Latch0 nicht mit der Wellenform Latch1 übereinstimmt. Der Fehler kann dadurch entstehen, dass: (i) ein Latch 320 metastabil wird und das andere Latch 320 stabil bleibt, (ii) beide Latches 320 metastabil werden, jedoch unterschiedliche Endzustände erreichen oder (iii) die Flipflops 332, 334, 336 in den metastabilen Zustand getrieben werden. In jedem Fall sollte ein Fehler ein relativ seltenes Ereignis sein, abhängig beispielsweise von der Implementierungstechnologie und der Schaltungsanordnung. Es sei darauf hingewiesen, dass in einer alternativen Ausführungsform ein Fehler so definiert sein kann, dass die Wellenformen Latch0 und Latch1 miteinander übereinstimmen.
  • Das Ausgangssignal des XOR-Gatters 350 („Fehler") wird an den Schiebeeingang (Shift_in) eines Schieberegisters 360 angelegt, und das Schieberegister 360 verschiebt jedes Mal, wenn ein Fehler auftritt, ein Bit aus dem (nachstehend erörterten) LFSR-Signal. Das Schieberegister 360 ist durch das Akquirierungssignal getaktet. Somit sammelt die erste Ausführungsform der vorliegenden Erfindung immer dann ein Bit, wenn ein Fehler auftritt. Das Ausgangssignal des Schieberegisters 360 wird an eine Rechnerschnittstelle 370 angelegt.
  • Wie in 4 gezeigt, wird von dem XOR-Gatter 350 zum Zeitpunkt t0 ein Fehler detektiert, was bewirkt, dass ein Bit akquiriert wird, das gleich Eins ist (basierend auf dem LFSR-Signal). Auf ähnliche Weise wird von dem XOR-Gatter 350 zum Zeitpunkt t1 ein Fehler detektiert, was bewirkt, dass ein Bit akquiriert wird, das gleich Null ist (basierend auf dem LFSR-Signal).
  • Wie vorstehend angedeutet, bietet das Markieren von Eingangsbits auf die vorstehend im Zusammenhang mit 3A und 3B erörterte Weise zur Generation eines Ak quirierungssignals eine gleichmäßige Verteilung von Zufalls-Ausgangsbits. Es wurde jedoch gefunden, dass die Dauer und das Auftreten von Metastabilität durch Rauschen beeinflusst werden können. Somit ist also die Ausgabe des Zufallszahlgenerators nicht zufällig, wenn das Rauschen mit dem Akquirierungssignal korreliert ist.
  • Daher wird gemäß einer Ausführungsform der Erfindung als das Markierungssignal eine (im Hinblick auf Häufigkeit von Nullen und Einsen) nahezu nicht verzerrende Signalquelle verwendet. Das Markierungssignal ist mit einer hohen Wahrscheinlichkeit nicht mit Rauschen in dem System korreliert. Die vorliegende Erfindung setzt optional ein lineares Rückkopplungs-Schieberegister (LFSR) 380 ein, mit ausreichender Länge, um die Wahrscheinlichkeit einer Korrelation zu verringern und Verzerrungen im LFSR-Ausgangssignal zu reduzieren. Geeignete LFSR sind zum Beispiel in Bruce Schreier, Applied Cryptography, S. 369–388 (Wiley, 1994), beschrieben.
  • Das lineare Rückkopplungs-Schieberegister 380 erzeugt ein LFSR-Markierungssignal, gezeigt in 4, das etwas mehr als die Hälfte seiner Ausgangszustände als Nullen in der Wellenform erzeugt. Auf diese Weise ist das LFSR-Markierungssignal mit hoher Wahrscheinlichkeit nicht mit Rauschen korreliert.
  • Das lineare Rückkopplungs-Schieberegister 380 sollte eine ausreichende Anzahl von Bits bereitstellen, um die Wahrscheinlichkeit einer Korrelation zu verringern und Verzerrungen im LFSR-Ausgangssignal zu reduzieren. Bei einem aus n Flipflops zusammengesetzten linearen Rückkopplungs-Schieberegister 380 gibt es 2n – 1 Binärzahlen, bevor die Zahlen beginnen, sich zu wiederholen. Mit zunehmender Anzahl von Flipflops in dem linearen Rückkopplungs-Schieberegister 380 nimmt also die –1 in dem Binärausdruck 2n – 1 an Signifikanz ab. In jedem Fall kann, da die Richtung einer auf den Term –1 rückführbaren Verzerrung bekannt ist, die Verzerrung mit einer geeigneten Schaltung beseitigt oder korrigiert werden.
  • Das lineare Rückkopplungs-Schieberegister 380 stellt somit ein ausgehendes Markierungssignal, LFSR Mark, bereit, das pseudozufällig ist, wobei in etwa die Hälfte der Ausgangsbits Null ist und die andere Hälfte der Ausgangsbits Eins ist.
  • Es wurde beobachtet, dass, wenn das lineare Rückkopplungs-Schieberegister 380 unsicher ist, ein Teil des Ausgangs (sogar ein zufälliger Teil) möglicherweise zulässt, dass der Zustand des linearen Rückkopplungs-Schieberegisters 380 bekannt ist. Auf diese Weise wäre es möglich, den Ausgang des Zufallszahlgenerators 300 vorherzusagen.
  • Somit sollte ein lineares Rückkopplungs-Schieberegister 380 genutzt werden, das keine erkennbare Statistik aufweist, wodurch die Zustandsinformation des linearen Rückkopplungs-Schieberegisters 380 nutzlos wird. In einer weiteren Abwandlung wird zusätzliche Sicherheit erreicht, indem die gesammelten Bits aus dem Schieberegister 360 ausgegeben werden und indem zugelassen wird, dass einige der gesammelten Bits in jedem Sammelintervall verloren gehen.
  • Jedes Mal, wenn ein Fehler auftritt, verschiebt das Schieberegister 360 ein Bit aus dem LFSR-Markierungssignal. Auf diese Weise werden die Eingangszeiten der Fehler nicht erkannt, und es kann nicht vorhergesagt werden, welche Bits des linearen Rückkopplungsregisters 380 gewählt werden.
  • 5 veranschaulicht eine alternative Ausführungsform der vorliegenden Erfindung. 5 veranschaulicht Selektionsschaltung 500 zum Bestimmen, wann ein „Ereignis" (zum Beispiel ein Fehler) aufgetreten ist, wenn mindestens drei (3) Latches vorhanden sind. Die beispielhafte Selektionsschaltung 500 ist unter Verwendung von UND-Gattern implementiert. Die Ausgangssignale jedes der n Latches werden an dem Eingang der Selektionsschaltung 500 empfangen und als Zone n bezeichnet. In dem Ausführungsbeispiel ist n gleich Acht (8). Die jeweiligen Zoneneingangssignale und eine invertierte Version derselben werden jeweils an einen entsprechenden Multiplexer 510-n angelegt. Jeder Multiplexer 510 wird von einem Steuersignal, Control_M, gesteuert, welches den Zoneneingang oder die entsprechende invertierte Version desselben wählt.
  • Die Selektionsschaltung 500 schließt eine Anordnung von UND-Gattern 520-1 bis 520-n-1 ein, wobei jedes der n UND-Gatter zwischen 2 und n Eingangssignalen empfängt, wie in 5 gezeigt. Jedes UND-Gatter 520 generiert einen Binärwert Eins (1), wenn das angewendete Eingangsmuster von Nutzen ist. Zum Beispiel generiert das UND- Gatter 520-n-1 eine Eins (1) nur dann, wenn beide Eingangszustände (von Zone 0 und Zone 1) hoch sind (ein für im Wesentlichen identische Latches zu erwartender Zustand).
  • Durch Selektion des invertierten Eingangs bei Zone 0 und des nicht invertierten Eingangs bei Zone 1 (oder umgekehrt) und geeigneter Selektion des Control_M-Signals erzeugt das UND-Gatter 520-n-1 jedoch eine Eins (1) jedes Mal dann, wenn Zone 0 einen Wert von Eins aufweist und Zone 1 einen Wert von Null aufweist (das heißt sie sind unterschiedlich, was für im Wesentlichen identische Latches ein weniger wahrscheinlicher Zustand ist). Es sei wiederum darauf hingewiesen, dass es, da die Latches (in 5 nicht gezeigt) im Wesentlichen symmetrisch sind, gleichermaßen wahrscheinlich ist, dass ein nicht invertierter Ausgang beliebig als der Ausgang eines gegebenen Latches bestimmt werden könnte. Somit erlauben die Multiplexer 510 die Selektion der korrekten Konfiguration, bei der die Latches nur unter metastabilen Bedingungen nicht miteinander übereinstimmen. Zum Beispiel können verschiedene Kombinationen evaluiert werden, bis eine Kombination identifiziert ist, die metastabiles Verhalten nur gelegentlich aufweist (da eine Kombination, die stets oder nie metastabiles Verhalten aufweist, nicht wünschenswert wäre).
  • Das UND-Gatter 520-n-1 erzeugt jedoch keine Eins (1), wenn Zone 0 einen Wert von Null und Zone 1 einen Wert von Eins aufweist (was im Hinblick auf eine XOR-Implementierung zu einem Effizienzverlust führt). Auf ähnliche Weise erzeugt das UND-Gatter 520-n-1 keine Eins (1), wenn sowohl Zone 0 als auch Zone 1 einen Wert von Null oder Eins aufweisen (sie also übereinstimmen). Die beispielhafte Selektionsschaltung 500 erlaubt es, bis zu acht (8) Latches auf verschiedene Arten zu kombinieren, um ein „Ereignis" zu erzeugen, das die Generation eines Zufalls-Bits triggert.
  • Übersetzung der Zeichnungen
  • 2
    • input – Eingangszustand
    • output – Ausgangszustand
    • no change (same as previous state) – keine Veränderung (wie vorheriger Zustand)
    • indeterminate – unbestimmt
  • 4
    • clock – Takt
    • acquisition – Akquirierung
    • latch 0/1 – Latch 0/1
    • mistake – Fehler
    • capture a one – Erfassen einer Eins
    • capture a zero – Erfassen einer Null
  • 5
    • 8 bits – 8 Bits
    • 3 bits – 3 Bits

Claims (17)

  1. Verfahren zur Generierung einer Zufallszahl unter Verwendung eines Latches (320-1, 320-2), das für Metastabilität anfällig ist, aufweisend folgende Schritte: – Detektion eines metastabilen Zustands des genannten Latches (320-1, 320-2), – Generierung eines Zufalls-Bits auf Basis eines Auftreten des genannten metastabilen Zustands, dadurch gekennzeichnet, dass der genannte Detektionsschritt eines Schritt umfasst, bei dem eine Mehrzahl von Latches (320-1, 320-2) parallel betrieben wird und bei dem die Generierung eines Zufalls-Bits getriggert wird, wenn mindestens zwei der Latches (320-1, 320-2) unterschiedliche Ausgangszustände haben.
  2. Verfahren nach Anspruch 1, wobei der genannte Schritt des Detektierens eines unterschiedlichen Ausgangszustands der zwei oder mehr der Latches (320-1, 320-2) unter Verwendung eines Exklusiv-OR (XOR) Gatters (350) durchgeführt wird.
  3. Verfahren nach Anspruch 1, weiterhin aufweisend den Schritt einer Dekorrelation eines Markierungssignals von einem Rauschen.
  4. Verfahren nach Anspruch 3, wobei der genannte Dekorrelationsschritt mittels mindestens eines linearen Rückkopplungs-Schieberegisters (380) durchgeführt wird.
  5. Verfahren nach Anspruch 1, wobei der genannte Generierungsschritt weiterhin den Schritt einer Generierung eines Fehlersignals umfasst, wenn ein Ausgangszustand eines ersten Latches (320-1) nicht mit einem Ausgangszustand eines zweiten Latches (320-2) übereinstimmt.
  6. Verfahren nach Anspruch 5, wobei das Fehlersignal die Akquirierung eines Zufalls-Bits anhand des eingehenden Markierungs-Signals auslöst.
  7. Verfahren nach Anspruch 1, weiterhin aufweisend den Schritt eines Synchronisation der Ausgangszustände der Latches (320-1, 320-2) mit einem lokalen Takt (305).
  8. Verfahren nach Anspruch 1, weiterhin aufweisend den Schritt des Sammelns einer Mehrzahl der genannten Zufalls-Bits zur Erstellung einer Zufallszahl.
  9. Verfahren nach Anspruch 8, weiterhin aufweisend den Schritt einer Ausgabe von gesammelten Bits aus einem Schieberegister (360), um die genannte Zufallszahl zu generieren.
  10. Verfahren nach Anspruch 1, wobei der genannte Detektionsschritt weiterhin den Schritt eines Vergleichs der Ausgangszustände einer Mehrzahl von Latches (320-1, 320-2) in einer Sammlung von vordefinierten Ausgangszuständen und der Generierung eines Zufalls-Bits umfasst, wenn einer aus der genannten Sammlung von vordefinierten Ausgangszuständen detektiert wird.
  11. Verfahren nach Anspruch 1, wobei der genannte Detektionsschritt weiterhin den Schritt eines parallelen Betreibens einer Mehrzahl von Latches (320-1, 320-2) aufweist und wobei das genannte Verfahren weiterhin den Schritt einer Evaluierung einer Mehrzahl von Kombinationen von Selektionen und Kombinationen invertierter und nicht-invertierter Ausgangszustände der genannten Mehrzahl von Latches (320-1, 320-2) zum Auffinden einer geeigneten Kombination umfasst.
  12. Zufallszahlgenerator (300), aufweisend ein Latch (320-1, 320-2), das für Metastabilität anfällig ist und das in einem metastabilen Zustand betrieben wird, um basierend auf einem Auftreten des genannten metastabilen Zufalls eine Zufalls-Bit zu generieren, dadurch gekennzeichnet, dass das genannte Auftreten des genannten metastabilen Zustands durch ein Mittel (332-1, 332-2, 334-1, 334-2, 336-1, 336-2, 350) zur Detektion von unterschiedlichen Ausgangszuständen bei zwei oder mehr einer Mehrzahl von parallel betriebenen Latches (320-1, 320-2), und zur Triggerung einer Zufalls-Bit-Generierung, wenn mindestens zwei der Latches (320-1, 320-2) unterschiedliche Ausgangszustände haben, detektiert wird.
  13. Zufallszahlgenerator (300) nach Anspruch 12, worin die Ausgangszustände der genannten Latches (320-1, 320-2) mit einem lokalen Takt (305) synchronisiert werden.
  14. Zufallszahlgenerator (300) nach Anspruch 12, worin eine Mehrzahl der genannten Zufalls-Bits gesammelt wird, um eine Zufallszahl zu generieren.
  15. Zufallszahlgenerator (300) nach Anspruch 14, worin gesammelte Bits aus einem Schieberegister (360) ausgegeben werden, um die genannte Zufallszahl zu generieren.
  16. Zufallszahlgenerator (300) nach Anspruch 12, worin genanntes Auftreten des genannten metastabilen Zustands detektiert wird durch Vergleich von Ausgangszuständen in einer Sammlung von vordefinierten Ausgangszuständen und durch Generierung eines Zufalls-Bits, wenn einer aus der genannten Sammlung von vordefinierten Ausgangszuständen detektiert wird.
  17. Zufallszahlgenerator (300) nach Anspruch 12, weiterhin umfassend ein Exklusiv-GR (XOR) Gatter (350), um einen unterschiedlichen Ausgangszustand von mindestens zwei der genannten Latches (320-1, 320-2) zu detektieren.
DE60319002T 2002-06-20 2003-06-16 Verfahren und vorrichtung zur generierung von zufallszahlen mittels metastabiler flip-flops Expired - Lifetime DE60319002T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US176210 2002-06-20
US10/176,210 US20030236802A1 (en) 2002-06-20 2002-06-20 Method and apparatus for generating a random number using the meta-stable behavior of latches
PCT/IB2003/002755 WO2004001583A1 (en) 2002-06-20 2003-06-16 Method and apparatus for generating a random number using meta-stable latches

Publications (2)

Publication Number Publication Date
DE60319002D1 DE60319002D1 (de) 2008-03-20
DE60319002T2 true DE60319002T2 (de) 2009-01-29

Family

ID=29734089

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60319002T Expired - Lifetime DE60319002T2 (de) 2002-06-20 2003-06-16 Verfahren und vorrichtung zur generierung von zufallszahlen mittels metastabiler flip-flops

Country Status (8)

Country Link
US (1) US20030236802A1 (de)
EP (1) EP1518164B1 (de)
JP (1) JP2005530270A (de)
CN (1) CN100541418C (de)
AT (1) ATE385587T1 (de)
AU (1) AU2003237019A1 (de)
DE (1) DE60319002T2 (de)
WO (1) WO2004001583A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963888B2 (en) * 2001-11-29 2005-11-08 Koninklijke Philips Electronics N.V. Method and apparatus for preventing noise from influencing a random number generator based on flip-flop meta-stability
US7852162B2 (en) * 2005-10-27 2010-12-14 FortressGB Pseudo random noise device based on a random frequency modulated oscillator
US7319355B2 (en) * 2006-01-03 2008-01-15 Taiwan Semiconductor Manufacturing Co., Ltd. Pulse generator
US8346832B2 (en) * 2006-10-12 2013-01-01 The Regents Of The University Of Michigan Random number generator
WO2011117929A1 (ja) 2010-03-26 2011-09-29 富士通株式会社 乱数生成器、暗号化装置、及び認証装置
JP5839968B2 (ja) * 2011-12-01 2016-01-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation パルス幅延長回路および方法
US9047152B2 (en) * 2013-01-16 2015-06-02 Skymedi Corporation Delay device, method, and random number generator using the same
KR20140108362A (ko) 2013-02-25 2014-09-11 삼성전자주식회사 난수 발생기
CN104714774A (zh) * 2013-12-14 2015-06-17 中国航空工业集团公司第六三一研究所 一种基于数字电路的真随机数的产生方法
CN104899005B (zh) * 2015-06-15 2017-12-12 北京联想核芯科技有限公司 一种随机数采集装置及密码芯片
US9966953B2 (en) * 2016-06-02 2018-05-08 Qualcomm Incorporated Low clock power data-gated flip-flop
CN107025092B (zh) * 2017-06-16 2020-07-17 合肥工业大学 一种基于latch结构真随机数发生器的随机数提取方法
US11962305B2 (en) * 2021-06-09 2024-04-16 Nxp B.V. Ring oscillator based true random number generator and a method for generating a random number
CN113961171B (zh) * 2021-10-21 2022-08-19 无锡沐创集成电路设计有限公司 随机信号生成装置和物理不可克隆函数生成系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US23647A (en) * 1859-04-12 sigler
US5570307A (en) * 1995-01-06 1996-10-29 Vlsi Technology, Inc. Digital randomizer for on-chip generation and storage of random self-programming data block
US5963104A (en) * 1996-04-15 1999-10-05 Vlsi Technology, Inc. Standard cell ring oscillator of a non-deterministic randomizer circuit
FR2802661B1 (fr) * 1999-12-21 2003-10-31 Bull Sa Generateur de nombres aleatoires haut debit
US6631390B1 (en) * 2000-03-06 2003-10-07 Koninklijke Philips Electronics N.V. Method and apparatus for generating random numbers using flip-flop meta-stability
US7113966B2 (en) * 2001-07-25 2006-09-26 Koninklijke Philips Electronics N.V. Method and apparatus for decorrelating a random number generator using a pseudo-random sequence
US6963888B2 (en) * 2001-11-29 2005-11-08 Koninklijke Philips Electronics N.V. Method and apparatus for preventing noise from influencing a random number generator based on flip-flop meta-stability
US7302458B2 (en) * 2003-03-14 2007-11-27 Nxp B.V. Method and apparatus for choosing a combination of logic for generating random numbers using a difference signal

Also Published As

Publication number Publication date
DE60319002D1 (de) 2008-03-20
JP2005530270A (ja) 2005-10-06
CN1662875A (zh) 2005-08-31
WO2004001583A1 (en) 2003-12-31
US20030236802A1 (en) 2003-12-25
CN100541418C (zh) 2009-09-16
ATE385587T1 (de) 2008-02-15
AU2003237019A1 (en) 2004-01-06
EP1518164A1 (de) 2005-03-30
EP1518164B1 (de) 2008-02-06

Similar Documents

Publication Publication Date Title
DE60319002T2 (de) Verfahren und vorrichtung zur generierung von zufallszahlen mittels metastabiler flip-flops
EP1643643B1 (de) Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
DE69722367T2 (de) Pseudozufallsgenerator mit Taktauswahl
KR100847213B1 (ko) 난수 생성 방법 및 난수 생성기
DE69938045T2 (de) Verwendung von unvorhersagbarer Information zur Leckminimierung von Chipkarten und anderen Kryptosystemen
DE102008048292B4 (de) Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
DE202017104836U1 (de) Gehärteter Zufallszahlengenerator
EP1354264B1 (de) Zufallszahlengenerator und verfahren zum erzeugen einer zufallszahl
DE60319104T2 (de) Abtastschaltkreis zur zufallszahlengenerierung
EP1537474B1 (de) Verfahren und system zur zufallszahlengenerierung mit rückkopplung
US6963888B2 (en) Method and apparatus for preventing noise from influencing a random number generator based on flip-flop meta-stability
DE102009008224B4 (de) Invertierende Zelle
US7113966B2 (en) Method and apparatus for decorrelating a random number generator using a pseudo-random sequence
DE102013204274A1 (de) Verfahren zum Erkennen einer Korrelation
DE602004005959T2 (de) Vorrichtung zum Erzeugen einer Zufalls-Bitfolge
DE102012210361A1 (de) Verfahren zum Überwachen einer Ausgabe eines Zufallsgenerators
DE102006012635B4 (de) Vorrichtung und Verfahren zum Erzeugen einer Zahl mit einer zufälligen Verteilung
DE102013213385A1 (de) Verfahren zur Beurteilung einer Ausgabe eines Zufallsgenerators
US20040267846A1 (en) Method and apparatus for choosing a combination of logic for generating random numbers using a difference signal
WO2015000640A1 (de) Erzeugen von einer anzahl von zufallsbits
DE102016200850A1 (de) Verfahren zum Betreiben einer sicherheitsrelevanten Vorrichtung und Vorrichtung
DE102014226996A1 (de) Verfahren und Vorrichtung zum Erzeugen von Zufallsbits
WO2015043855A2 (de) Erzeugen von zufallsbits
DE102014216386A1 (de) Verfahren zum Testen eines Zufallsgenerators
DE10330328A1 (de) Verfahren und Vorrichtung zur Verarbeitung von Daten bei unterschiedlichen Taktsignalen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition