DE60006650T2 - Schneller zufallszahlengenerator - Google Patents

Schneller zufallszahlengenerator Download PDF

Info

Publication number
DE60006650T2
DE60006650T2 DE60006650T DE60006650T DE60006650T2 DE 60006650 T2 DE60006650 T2 DE 60006650T2 DE 60006650 T DE60006650 T DE 60006650T DE 60006650 T DE60006650 T DE 60006650T DE 60006650 T2 DE60006650 T2 DE 60006650T2
Authority
DE
Germany
Prior art keywords
generator
signal
random
physical
output
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
DE60006650T
Other languages
English (en)
Other versions
DE60006650D1 (de
Inventor
Patrick Le Quere
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.)
Bull Sa Les Clayes Sous Bois Fr
Original Assignee
Bull SA
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 Bull SA filed Critical Bull SA
Publication of DE60006650D1 publication Critical patent/DE60006650D1/de
Application granted granted Critical
Publication of DE60006650T2 publication Critical patent/DE60006650T2/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

Description

  • Die vorliegende Erfindung liegt im Gebiet der Chiffrierung, wobei sie insbesondere eine materielle Lösung (Hardware) für die Implementierung eines Zufallszahlgenerators betrifft, der vor allem für die Erzeugung von Chiffrierungsschlüsseln bestimmt ist.
  • Die gesteigerte Leistungsanforderung an die Kryptographie in Verbindung mit der Forderung nach Unverletzlichkeit bringt die Lieferanten von Sicherheitssystemen dazu, materielle Lösungen zu bevorzugen, die hinsichtlich der Datenrate und der Zufallsqualität immer leistungsfähiger werden. Der Generator gemäß der Erfindung, der auch Zufallsgenerator genannt wird, kann einer zusätzlichen PCI-Karte, nach der angelsächsischen Abkürzung für "Peripheral Component Interconnect" bezeichnet, zugeordnet werden, die ermöglicht, die Chiffrierungsfunktionen einer Maschine, eines Servers oder einer Station, zu beschleunigen.
  • Eine derartige Karte, die an einen Server gekoppelt ist, wird das materielle Sicherheitselement der Maschine bilden.
  • Es gibt zwei Typen von Zufallszahlgeneratoren, die in der Elektronik verwendet werden.
  • Der erste Generatortyp beruht auf einem zufälligen physikalischen Phänomen, wie etwa dem thermischen Rauschen in einer Diode, einer radioaktiven Strahlung usw. Er wird im weiteren Verlauf der Beschreibung "physikalischer Generator" genannt.
  • Der zweite Generatortyp beruht auf einem Algorithmus, der von einem später definierten "Keim" gespeist wird, der am Ausgang eine Reihe von Zufallszahlen mit einer mehr oder weniger großen Periode liefert. Er wird im weiteren Verlauf der Beschreibung als "pseudozufälliger Generator" bezeichnet.
  • Eine lange Periode, die einem Keim guter Qualität zugeordnet ist, als Ausdruck der Zufallsqualität, liefert am Ausgang eines derartigen Generators eine Reihe von quasi nicht voraussagbaren Zahlen.
  • Die physikalischen Generatoren sind selbstverständlich die einzigen wirklichen Zufallszahlquellen, da sie völlig unvoraussagbar sind, jedoch sind viele von ihnen nicht frei von Korrelationen auf Höhe ihres Ausgangs.
  • Außerdem ist ihre Datenrate im Allgemeinen verhältnismäßig gering, in der Größenordnung von einigen zehn Kilobits pro Sekunde.
  • Was die pseudozufälligen Generatoren anbelangt, so sind sie in Form einer Software einfach zu implementieren und ermöglichen, eine hohe Rate von Zufallszahlen, in der Größenordnung von einigen zehn Megabits pro Sekunde, zu liefern.
  • Jedoch leistet dieser Generatorentyp einem deterministischen Verfahren Folge und ist also vorhersagbar.
  • Die Qualität eines Zufallsgenerators ist schwer zu beurteilen, denn es gibt kein offizielles und genormtes Verfahren, das ermöglicht, den mehr oder weniger zufälligen Charakter einer Zahlenfolge zu verifizieren.
  • Es lassen sich jedoch zwei Testreihen finden, die ermöglichen, einen derartigen Generator zu "validieren".
  • Die erste Testreihe, die FIPS140-Tests genannt wird, ist in dem von der amerikanischen Institution NIST herausgegebenen Dokument FIPS140-1 mit dem Titel "Security requirements for cryptographic modules" beschrieben. Diese Tests stellen das Minimum dar, das für jede Sicherheitskomponente gefordert wird, die anstrebt, Anspruch auf das Qualitätszeichen "FIPS140 compliant" zu erheben, was eines der Ziele der vorliegenden Erfindung darstellt.
  • Die zweite Testreihe, die von Georges Marsaglia entwickelt worden ist und als DIEHARD-Tests bezeichnet wird, umfasst Tests, die viel anspruchsvoller als die FIPS-Tests sind und dem Generator, der sie alle erfolgreich besteht, ein bestimmtes, anerkanntes Qualitätsniveau bescheinigen.
  • Diese beiden Testreihen sind der vorliegenden Beschreibung als Anhang beigefügt.
  • Die Erfindung hat insbesondere zum Ziel, die erwähnten Nachteile zu beheben, und ermöglicht, sich von einer spezifischen physikalischen Schaltung, wie etwa einer Rauschdiode zu lösen, während sie gleichzeitig der zweifachen Forderung nach einer hohen Datenrate, höher als 100 Mbits/s, und einer sehr guten Qualität der gelieferten Zufälle genügt, wobei die Qualität dadurch gemessen wird, dass der Generator die oben erwähnten FIPS140- und DIEHARD-Testreihen erfolgreich bestehen muss.
  • Ein Zufallszahlgenerator, der einen ersten physikalischen Generator umfasst, der auf einem zufälligen elektronischen Phänomen beruht, das einen Keim liefert, der einen zweiten, pseudozufälligen Generator speist, ist aus dem Dokument WO-A-99/61 978 sowie aus dem Artikel mit dem Titel "Integrated Circuit Compatible Random Number Generator", veröffentlicht im IBM Technical Disclosure Bulletin, Bd. 30, Nr. 11, 1. April 1988 (1988-04-01), S. 333–335, XP000021682 ISSN: 0018-8689, bekannt. Die zwei Dokumente sind mehr oder weniger mit dem Oberbegriff des Anspruchs 1 in Übereinstimmung. Jedoch ist in dem ersten Dokument der Ausgang des Generators derjenige des physikalischen Generators, wobei der Keim an den Pseudozufallsgenerator geliefert wird, um die Abtastfrequenz mehrerer Ringoszillatoren zu steuern. In dem zweiten Dokument wird der Keim als Ausgangswert für den Pseudozufallsgenerator verwendet.
  • Ein Aspekt der Erfindung ist folglich ein Zufallszahlgenerator, wie er im Anspruch 1 definiert ist.
  • Ein zweiter Gegenstand der Erfindung wird von einem Mechanismus für die Erzeugung von Zufallszahlen auf Anforderung gebildet, dadurch gekennzeichnet, dass er einen Zufallszahlgenerator, wie er weiter oben definiert ist, und einen Dualport-Speicher, der einen Empfangspuffer aufweist und am Ausgang des Ge nerators mit dem Bus des Generators gekoppelt ist, umfasst und dass er einen Mikroprozessor umfasst, der über den Mikroprozessor-Bus mit dem Dualport-Speicher gekoppelt ist und mit dem Generator über den Dualport-Speicher kommuniziert und in dem Dualport-Speicher ein Steuerwort ablegt, das eine Adresse und einen Zählstand enthält, der einer maximale Anzahl zu speichernder Zufallswörter enthält, und dass der Puffer des Dualport-Speichers auf Anforderung des Mikroprozessors durch den internen Speicher des Generators versorgt wird, bis ein Zählstand ausgeschöpft ist, der einer bestimmten maximalen Anzahl von Zufallswörtern entspricht, und dann von dem Mikroprozessor genutzt wird.
  • Schließlich wird ein dritter Gegenstand der Erfindung von einer Karte für die Beschleunigung von Chiffrierungsfunktionen einer Datenverarbeitungsmaschine gebildet, dadurch gekennzeichnet, dass sie einen Zufallszahlgenerator oder einen Mechanismus wie oben definiert trägt.
  • Die Erfindung hat zum Vorteil, dass nur serienmäßige elektronische Schaltungen für die Verwirklichung eines "physikalischen" Generators verwendet werden und sich folglich die Komplexität und die Kosten eines derartigen Generators verringern.
  • Weitere Vorteile und Merkmale der vorliegenden Erfindung werden beim Lesen der folgenden Beschreibung deutlich, die auf die beigefügten Figuren Bezug nimmt. Es zeigen:
  • 1 das allgemeine Prinzip eines Mechanismus zur Erzeugung von Zufallszahlen auf Anforderung, in den ein Zufallsgenerator gemäß der Erfindung eingefügt ist;
  • 2 den Blockschaltplan eines Zufallsgenerators gemäß der Erfindung;
  • 3 eine Kippschaltung, die über ihre Eingänge jeweils die Taktsignale empfängt, die von zwei Oszillatoren verschiedener Frequenzen erzeugt werden, wobei die Figur dazu dient, das Phänomen der Metastabilität zu veranschaulichen;
  • 4a und 4b Zeitdiagramme der jeweils auf die Eingänge der Kippschaltung von 3 gegebenen Signale;
  • 4c das Zeitdiagramm des Ausgangssignals der Kippschaltung; und
  • 5 den Blockschaltplan eines physikalischen Generators gemäß der Erfindung.
  • Das allgemeine Prinzip eines Mechanismus zur Erzeugung von Zufallszahlen, in den der Zufallsgenerator gemäß der Erfindung eingefügt ist; ist in 1 veranschaulicht.
  • In dieser Figur sind die Verbindungen, die keinen Pfeil aufweisen, bidirektional.
  • Der Mechanismus ist in der Figur durch eine in sich geschlossene gestrichelte Linie abgegrenzt, die außerdem eine zuvor erwähnte PCI-Karte, die den Mechanismus trägt, abgrenzen kann.
  • Der Zufallsgenerator 1 ist ausgehend von einem Automaten mit programmierbarer Logik verwirklicht, der in einem programmierbaren elektronischen Bauteil, FPGA nach der angelsächsischen Abkürzung für "Field Programmable Gate Array", implementiert ist und der unter der Steuerung eines Mikroprozessors 2 auf dessen Anforderung hin Zufallszahlen mit einer hohen Datenrate (D > 100 Mbits/s) liefert.
  • Diese Zufallszahlen werden von verschiedenen Algorithmen und insbesondere von den Chiffrieralgorithmen für die Erzeugung von Chiffrierungsschlüsseln verwendet.
  • Ein Dualport-Speicher 3 vom DMA-Typ, nach der angelsächsischen Abkürzung für "Direct Memory Acces", ist über den Bus des Generators an den Ausgang des Zufallsgenerators 1 gekoppelt.
  • Der Mikroprozessor 2 ist über den Mikroprozessorbus an den Dualport-Speicher 3 gekoppelt.
  • Er kommuniziert mit dem Generator 1 über den Dualport-Speicher 3, der den Austausch von Daten und Befehlen/Zuständen zwischen dem Zufallsgenerator 1 und dem PCI-Bus der Maschine, an welche die Karte angeschlossen ist, über eine PCI-Schnittstelle 4 ermöglicht.
  • Der Mikroprozessor 2 legt in dem Dualport-Speicher 3 ein Steuerwort ab, das nur eine Adresse und einen Zählstand enthält.
  • Die Adresse zeigt auf einen Empfangspuffer 31 des Dualport-Speichers 3, in den der Generator 1 die Zufallswörter speichert.
  • Was den Zählstand anbelangt, so hält er die Anzahl der Zufallswörter fest, die von dem Generator 1 angefordert werden, bei einer maximalen Kapazität von beispielsweise 32 KBytes.
  • Der Mikroprozessor 2 schickt dann einen Aktivierungsbefehl vom Typ "chip select" an den Generator 1, der das Befehlswort im Dualport-Speicher 3 liest und dieses ausführt.
  • Die erzeugten Wörter werden dann in den Empfangspuffer 31 gespeichert, den der Mikroprozessor 2 angibt, bis die maximale Kapazität des Zählstands ausgeschöpft ist.
  • Der Automat des Zufallsgenerators 1 schickt dann einen Unterbrechungsbefehl "interrupt" an den Mikroprozessor 2, um ihm anzuzeigen, dass der Puffer 31 , der die Ergebnisse enthält, zum Lesen bereitsteht.
  • In 2 ist der Blockschaltplan eines Zufallsgenerators gemäß der Erfindung veranschaulicht.
  • Er umfasst insbesondere zwei Stufen 5 und 6.
  • Die erste Stufe 5 umfasst einen "physikalischen" Generator und die zweite Stufe 6, die mit der ersten gekoppelt ist, umfasst einen "pseudozufälligen" Generator.
  • Der "physikalische" Generator ist ein Zufallszahlgenerator auf der Grundlage physikalischer Phänomene der Metastabilität und des Phasenrauschens von Oszillatoren verschiedener Frequenz.
  • Der physikalische Generator 5 liefert dem Pseudozufallsgenerator 6 einen zufälligen Keim guter Qualität in dem Sinne, dass er den Tests FIPS140 genügt, wobei er außerdem eine Datenrate in der Größenordnung von 10 Kbits/s besitzt.
  • Der "Pseudozufallsgenerator" 6 implementiert ausgehend von dem Keim, den er von dem physikalischen Generator 5 erhalten hat, einen Algorithmus vom Typ Multiplikation mit Übertrag, der einerseits eine sehr gute Datenrate besitzt, denn er ist direkt als Hardware implementiert, und andererseits den beiden weiter oben eingeführten und im Anhang ausführlich beschriebenen Testreihen genügt.
  • In der beschriebenen Ausführungsform arbeiten die beiden Generatoren 5 und 6 im Rhythmus eines externen Taktgebers 7, der ein erstes "Hochfrequenz"-Taktsignal H mit einer Frequenz von 25 MHz erzeugt.
  • Ein Oszillator 8 gibt ein zweites "Hochfrequenz"-Signal H1 mit einer Frequenz von 33 MHz aus und bildet das Eingangssignal des physikalischen Generators 5.
  • Ein interner Speicher 9 vom Typ FIFO, nach der angelsächsischen Abkürzung für "First Input First Output", ist an den Ausgang des Pseudozufallsgenerators 6 gekoppelt.
  • Der FIFO-Speicher 9 dient folglich der Speicherung der Zufallszahlen, die sich aus der Verarbeitung ergeben, die durch die zwei Generatoren 5 und 6 ausgeführt wird, während darauf gewartet wird, dass der Mikroprozessor 2 ihre Übertragung in den Dualport-Speicher 3 anfordert.
  • Der physikalische Generator gemäß der Erfindung nutzt das Phänomen der so genannten Metastabilität, dessen Prinzip nachfolgend mit Bezug auf 3 sowie 4a bis 4c ausführlich erläutert wird.
  • Wenn zwei Oszillatoren OSC1 und OSC2 verschiedener Frequenz asynchron zueinander arbeiten, erzeugen sie jeweils ein anderes Taktsignal, und die Signale, die anhand dieser Taktsignale synchronisiert werden, gehören verschiedenen Taktgeberbereichen an, die vom funktionalen Standpunkt aus betrachtet im Prinzip unabhängig voneinander sind. Trotzdem tritt ein Zeitpunkt auf zu dem Signale zwischen den beiden Bereichen ausgetauscht werden. Diese Situation stellt in jedem Design, in dem sie auftritt, einen Nachteil dar, denn sie führt zum Phänomen der Metastabilität.
  • Die von verschiedenen Taktgeberbereichen stammenden Signale berücksichtigen nicht die Einschwingzeit, oder "set-up" in der angelsächsischen Terminologie, der Speicherelemente (Kippschaltungen oder Register) des anderen Bereichs, was dazu führt, dass die Ausgänge dieser anderen Elemente zufällige Werte annehmen.
  • In 3 ist eine Kippschaltung dargestellt, die über ihren Eingang D das von dem Oszillator OSC1 erzeugte Taktsignal H1 und über ihren Takteingang das von dem Oszillator OSC2 erzeugte Taktsignal H2 empfängt.
  • 4a und 4b veranschaulichen jeweils Beispiele für Zeitdiagramme, die den beiden Taktsignalen entsprechen.
  • 4c veranschaulicht ein Zeitdiagramm, das dem Signal des Ausgangs Q der Kippschaltung entspricht.
  • Der Ausgang einer Kippschaltung, deren "set-up" verletzt worden ist, bleibt in einem Zwischenzustand zwischen dem Zustand "0" und dem Zustand "1 ", der sich durch eine Metastabilität auszeichnet, bevor er sich im endgültigen Zustand "0" oder "1" stabilisiert.
  • Dieses Problem wird im Allgemeinen dadurch gelöst, dass zwei Kippschaltungen, eine nach der anderen, in Reihe geschaltet werden, um die Ausbreitung dieser unerwünschten Unsicherheit zu verhindern.
  • Im Gegensatz dazu wird diese Metastabilität von der vorliegenden Erfindung ausgenutzt und ihr Auftreten wird durch die Verwendung von zwei Oszillatoren sich stark unterscheidender Frequenzen verstärkt.
  • So wird vorzugsweise ein "Hochfrequenzsignal" H1 und ein "Niederfrequenzsignal" H2 gewählt.
  • Das "Hochfrequenzsignal" H1 wird von dem "Niederfrequenzsignal" H2 abgetastet.
  • Das angestrebte Phänomen wird somit durch zwei physikalische Phänomene verstärkt:
    • – das Phasenrauschen, das von dem "Hochfrequenzoszillator" erzeugt wird; und
    • – die erzwungene Schwankung der Periode des "Niederfrequenzoszillators", die durch die Verwendung eines Teils der Ausgangsbits des Pseudozufallsgenerators in dem Zähler-Teiler, der zur Erzeugung dieser Frequenz dient, herbeigeführt wird. Folglich wird ein veränderlicher Formfaktor erhalten.
  • 5 veranschaulicht den Blockschaltplan eines physikalischen Generators 5 gemäß der Erfindung, in dem die mit Bezug auf 3 zwecks Erklärung der Metastabilität beschriebene Kippschaltung 10 anzutreffen ist.
  • Das Eingangsmodul des physikalischen Generators 5 ist ein Zähler 11, der durch 1312 teilt.
  • Er wird von einem externen Taktsignal H gespeist, dessen Frequenz gleich 25 MHz ist, und erzeugt am Ausgang ein "Niederfrequenz"-Taktsignal H2, wel ches das "Hochfrequenz"-Taktsignal H1 vom Eingang des Generators 5, dessen Frequenz gleich 33 MHz ist, abtastet.
  • Das Taktsignal H2 wird dem Takteingang CLK der Kippschaltung 10 wieder zugeführt und das Signal H1 wird dem Eingang D der Kippschaltung 10 zugeführt.
  • Das Ausgangssignal, das am Ausgang Q der Kippschaltung 10 erhalten wird, wird durch eine Logikschaltung oder ein "Exklusiv-ODER" 12 mit einem Bit vom Ausgang des Pseudozufallsgenerators 6 kombiniert und zum Eingang D eines mit 13 bezeichneten 64-Bit-Schieberegisters geschickt.
  • Die Logikschaltung 12 ermöglicht folglich, eine mögliche Störung des physikalischen Generators 5 auszugleichen.
  • Das Schieberegister 13 bringt das von der Kippschaltung 10 ausgegebene Signal wieder in Form.
  • In der beschriebenen Ausführungsform erzeugt sie alle 32 × 100 μs, d. h. ungefähr alle 3,2 ms, zwei zufällige 32-Bit-Wörter.
  • Diese zwei Wörter bilden den "Keim", der von dem nachfolgend beschriebenen Pseudozufallsgenerator 6 verwendet wird.
  • Um insbesondere den Bedingungen der DIEHARD-Testreihen zu genügen, erfolgt die Erneuerung des Keims typisch alle 100 Millionen Bits.
  • So erzeugt ein Zähler bis 3750, 14, ein Signal LEN (Load Enable), das in der Tat etwa alle 375 ms einen neuen Keim in den Pseudozufallsgenerator 6 lädt.
  • Der physikalische Generator 5 umfasst außerdem ein Testmodul 15, das zwei Zähler und einen Komparator umfasst, die nicht dargestellt sind.
  • Die beiden Zähler empfangen jeweils am Eingang das Taktsignal H bzw. H1, von 25 MHz bzw. 33 MHz, und ihre Ausgangssignale speisen den Komparator, und im Fall einer Fehlfunktion (Blockierung) des Taktgebers von 33 MHz, dessen Signal als externes "Hochfrequenz"-Signal H1 verwendet wird, wird ein Fehlersignal erzeugt.
  • Dieser Test ermöglicht ständig zu verifizieren, dass der Wert des Signals, das zur Erzeugung des Zufallskeims dient, nicht auf "0" oder auf "1" blockiert ist.
  • Im Fall einer Blockierung macht das Fehlersignal das endgültige Ausgangssignal des physikalischen Generators 5 ungültig, indem es das Schreiben von Nullen in den internen Speicher 9 erzwingt.
  • Der Pseudozufallsgenerator 6 ist vom Typ Multiplikation mit Übertrag. Wegen der Schnelligkeit der Ausführung seines Algorithmus entspricht er besonders der Implementierung eines Generators gemäß der Erfindung, wobei er jedoch nicht der einzige ist, der von dem Pseudozufallsgenerator verwendet werden kann.
  • Der Algorithmus lässt sich folgendermaßen ausdrücken:
    Figure 00110001
    wobei
    X und Y 32-Bit-Variablen sind, die mit dem zuvor beschriebenen Keim initialisiert werden, A und B 16-Bit-Konstanten sind und PRN einem 32-Bit-Wort entspricht, das am Ausgang des Pseudozufallsgenerators 6 abgegeben wird.
  • Das Wort PRN wird als 32-Bit-Wort alle 120 ns an den internen Speicher 9 des Zufallsgenerators 1 geschickt, das entspricht einer Gesamtdatenrate von 266 Mbits/s. Der Ausgang des mit dem Dualport-Speicher 3 gekoppelten internen Speichers 9 speist den Empfangspuffer des Dualport-Speichers 3.
  • Das Lesen des internen Speichers 9 erfolgt im Rhythmus von einem 32-Bit-Wort alle 30 ns, um die interne Datenrate des Zufallsgenerators 1 selbst im Fall eines Zugriffskonflikts auf den Dualport-Speicher 3 nicht herabzusetzen.
  • Folglich erreicht die vorliegende Erfindung zwei Ziele.
  • Das erste Ziel ist die Verwirklichung einer kompakten, materiellen Implementierung eines Zufallszahlgenerators, der vollständig aus serienmäßigen Bauteilen hergestellt ist, wobei keine speziellen Rauschen erzeugenden Komponenten verwendet werden, und der außerdem von einer PCI-Karte getragen werden kann, welche die Verschlüsselungsbetriebsmittel einer Datenverarbeitungsmaschine beschleunigt.
  • Das zweite Ziel, das zu dem ersten hinzukommt, besteht darin, den angestrebten Bedingungen hinsichtlich der Datenrate und des Zufalls genügen zu können. Unter diesen Umständen ist ein "physikalischer" Zufallszahlgenerator allein nicht ausreichend.
  • Deshalb ordnet die vorliegende Erfindung einem physikalischen Generator, der das Phänomen der Metastabilität nutzt, das mit jenem des Phasenrauschens verbunden ist, um einen Keim guter Zufallsqualität zu gewährleisten, einen Pseudozufallsgenerator zu, der die Datenrate der von dem physikalischen Generator gelieferten Keime beschleunigt und der außerdem eventuelle Korrelationen am Ausgang des physikalischen Korrelators, der nicht ideal ist, beseitigt.
  • ANHANG
  • Anbei eine zusammenfassende Beschreibung der FIPS140- und DIEHARD-Tests, die von dem Zufallsgenerator gemäß der Erfindung mit Erfolg bestanden wurden.
  • 1. Die FIPS140-Tests
  • Die FIPS140-Tests wurden über einer Sequenz von 20000 Bits ausgeführt und umfassen:
    → einen Einzelbittest: Die Anzahl der Bits auf "1" muss gleich 9654 < N < 10346 sein.
    → einen sogenannten POKER-Test: ein Test, der den Strom von 20000 Bits in 5000 aneinander grenzende Folgen von 4 Bit unterteilt. Für jede Folge wird eine Funktion f(i) ausgewertet, die gleich der Häufigkeit ist, mit welcher der Wert 0 < i < 15 erschienen ist.
  • Dann wird die folgende Funktion ausgewertet:
    X = (16/5000) * (SUMME (f(i) * f(i))) – 5000 mit 0 < i < 15
  • Der Test ist positiv, wenn 1,03 < X < 57,4 gilt.
    → Die Lauf-Tests (Runs), die registrieren, wie oft Folgen 11 111 1111 00 000 0000 ... auftreten.
  • Der Test ist positiv, wenn für jede Lauflänge die Anzahl der Ergebnisse in dem entsprechenden Intervall enthalten ist.
    Figure 00130001
    → Der "Long Run"-Test, der die Abwesenheit der Sequenz von 34 "1" oder 34 "0" in der Folge der 20000 Bits verifiziert.
  • Für weiter Einzelheiten: siehe FIPS PUB 140-1: SECURITY REQUIRE-MENTS FOR CRYPTOGRAPHIC MODULE
  • 2) Die DIEHARD-Tests
  • Die Tests, deren Anzahl 15 beträgt, sind alle in diesem Anhang beschrieben. Um die Test durchzuführen ist eine Datei erforderlich, die 80 Mbits Zufallsvariablen enthält, wobei die Ergebnisse in Form von Zahlen 0 < p < 1 ausgegeben werden.
  • Das Ergebnis der Tests hängt von der Anzahl der angetroffenen Werte p = 1 oder p = 0 ab:
    → Kein Wert p = 1 oder p = 0 → Das Ergebnis der Tests ist positiv.
    → Einige Werte p = 1 oder p = 0 → Das Ergebnis der Tests ist positiv, jedoch sind die Zufälle von mittlerer Qualität.
    → Die Anzahl aufeinander folgender Werte p = 1 oder p = 0 ist in einem Test oder in mehreren Test ist > 5 → Das Ergebnis der Tests ist negativ.
    Figure 00140001
    Figure 00150001
    Figure 00160001
    Figure 00170001
    Figure 00180001
    Figure 00190001
  • NOTE: Most of the tests in DIEHARD return a p-value, which should be uniform on [0,1) if the input file contains truly independent random bits. Those pvalues are obtained by p = F(X), where F is the assumed distribution of the sample random variable X---often normal. But that assumed F is just an asymptotic approximation, for which the fit will be worst in the tails. Thus you should not be surprised with occasional p-values near 0 or 1, such as .0012 or .9983. When a bit stream really FAILS BIG, you will get p's of 0 or 1 to six or more places. By all means, do not, as a Statistician might, think that a p < .025 or p> .975 means that the RNG has "failed the test at the .05 level". Such p's happen among the hundreds that DIEHARD produces, even with good RNG's. So keep in mind that "p happens".

Claims (12)

  1. Zufallszahlgenerator (1) mit hohem Durchsatz, der einen physikalischen Zufallszahlengenerator (5) umfaßt und dessen Dateneingang dem Dateneingang des physikalischen Generators (5) entspricht, und einen Pseudozufallsgenerator (6) umfaßt, der mit dem Ausgang des physikalischen Generators (5) gekoppelt ist und an seinem Eingang einen von dem physikalischen Generator gelieferten Keim empfängt, wobei der physikalische Generator (5) eine Logikschaltung (10) umfaßt, die wenigstens einen Dateneingang D und einen Takteingang (CLK) aufweist, wobei der Dateneingang (D) ein "Hochfrequenz"-Taktsignal empfängt und der Takteingang (CLK) ein zweites "Niederfrequenz"-Taktsignal H2 empfängt, wobei das "Hochfrequenz"-Signal H1 durch das "Niederfrequenz"-Signal H2 abgetastet wird, wobei die zwei Taktsignale H1 und H2 mit verschiedenen Frequenzen von zwei entsprechenden, verschiedenen Oszillatoren (OSC1 und OSC2) stammen, die asynchron zueinander arbeiten und die Einschwingzeit der Logikschaltung (10) nicht berücksichtigen, wobei der Ausgang der Schaltung (10) ein Signal in einem Zwischenzustand liefert, der als metastabil zwischen "0" und "1" qualifiziert ist und aus einer Folge von Zufallszahlen gebildet ist, wobei die Metastabilität des am Ausgang der Schaltung (10) erhaltenen Signals durch das Phasenrauschen des Oszillators (OSC1), der das "Hochfrequenz"-Signal H1 erzeugt, verstärkt wird, wobei der Zufallszahlgenerator (1) dadurch gekennzeichnet ist, daß der Pseudozufallsgenerator (6) einen Teil seines Pseudozufallsausgangssignals wieder in den physikalischen Generator (5) einleitet, damit er mit dem Ausgangssignal der Logikschaltung (10) logisch kombiniert wird, um eine eventuelle Störung des physikalischen Generators (5) zu beheben, und daß er einen internen Speicher (9) umfaßt, der die am Ausgang des Pseudozufallsgenerators (6) erhaltenen Zufallszahlen speichert; wobei die zwei Generatoren (5) und (6) anhand eines zweiten, jeweils gleichen "Hochfrequenz"-Taktsignals H, das von einem externen Oszillator (7) erzeugt wird, arbeiten.
  2. Zufallszahlgenerator nach Anspruch 1, dadurch gekennzeichnet, daß der physikalische Generator (5) einen Block (11) umfaßt, der anhand des "Hochfrequenz"-Taktsignals H, das von dem externen Oszillator (7) erzeugt wird, das "Niederfrequenz"-Signal H2 erzeugt, das das Eingangssignal des physikalischen Generators (5) abtastet.
  3. Zufallszahlgenerator nach Anspruch 2, dadurch gekennzeichnet, daß ein Teil des Ausgangssignals des Pseudozufallsgenerators wieder in den das "Niederfrequenz"-Signal erzeugenden Block (11) eingeleitet wird, um die Schwankung der Periode des "Niederfrequenz"-Signals zu erzwingen.
  4. Zufallszahlgenerator nach Anspruch 3, dadurch gekennzeichnet, daß der physikalische Generator (5) ein Schieberegister (13) umfaßt, das an seinem Takteingang (CLK) das von dem Block (11) erzeugte "Niederfrequenz"-Signal H2 empfängt und an seinem Dateneingang das Ausgangssignal der Logikschaltung (10) des Kippschaltungstyps empfängt; wobei das Schieberegister (13) an seinem Ausgang den Keim ausgibt, mit dem der Pseudozufallsgenerator (6) versorgt wird.
  5. Zufallszahlgenerator nach Anspruch 4, dadurch gekennzeichnet, daß der physikalische Generator (5) außerdem ein "Exklusiv-ODER"-Logikgatter (12) umfaßt, das zwischen die Logikschaltung (10) des Kippschaltungstyps und das Schieberegister (13) geschaltet ist und an einem ersten Eingang das Ausgangssignal der Logikschaltung (10) und an einem zweiten Eingang ein Bit des Ausgangssignals des Pseudozufallsgenerators (6) empfängt, um eine eventuelle Störung des physikalischen Generators (5) zu beheben.
  6. Zufallszahlgenerator nach Anspruch 5, dadurch gekennzeichnet, daß der physikalische Generator (5) einen Zähler (14) umfaßt, der an seinem Eingang das "Niederfrequenz"-Taktsignal H2 empfängt und dessen Ausgangssignal den Auffrischungstakt des Keims in dem Pseudozufallsgenerator (6) steuert.
  7. Zufallszahlgenerator nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß er außerdem ein Testmodul (15) umfaßt, das mit dem Eingang des physikalischen Generators (5) gekoppelt ist und das an seinem Eingang die "Hochfrequenz"-Signale H und H1 empfängt und an seinem Ausgang ein Fehlersignal bei einer Fehlfunktion des das "Hochfrequenz"-Signal H1 liefernden Oszillators ausgibt, das den Ausgang des physikalischen Generators (5) ungültig macht, indem es das Schreiben von Nullen in den internen Speicher (9) erzwingt.
  8. Zufallszahlgenerator nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß der Zufallszahlgenerator (6) einen Algorithmus des Typs Multiplikation mit Übertrag implementiert.
  9. Zufallszahlgenerator nach einem der Ansprüche 2 bis 8, dadurch gekennzeichnet, daß er vollständig anhand einer FPGA-Komponente verwirklicht ist.
  10. Mechanismus für die Erzeugung von Zufallszahlen auf Anforderung, dadurch gekennzeichnet, daß er einen Zufallszahlgenerator (1) nach einem der Ansprüche 1 bis 9 und einen Dualport-Speicher (3), der einen Empfangspuffer (31) aufweist und am Ausgang des Generators (1) mit dem Bus des Generators (1) gekoppelt ist, und einen Mikroprozessor (2) umfaßt, der über den Mikroprozessor-Bus mit dem Dualport-Speicher (3) gekoppelt ist und mit dem Generator (1) über den Dualport-Speicher (3) kommuniziert und in dem Dualport-Speicher (3) ein Steuerwort ablegt, das eine Adresse und einen Zählstand enthält, der eine maximale Anzahl zu speichernder Zufallswörter enthält, und daß der Puffer (31) des Dualport-Speichers (3) auf Anforderung des Mikroprozessors (2) durch den internen Speicher (9) des Generators (1) versorgt wird, bis ein Zählstand ausgeschöpft ist, der einer bestimmten maximalen Anzahl von Zufallswörtern entspricht, und dann von dem Mikroprozessor (2) genutzt wird.
  11. Karte für die Beschleunigung von Chiffrierungsfunktionen einer Datenverarbeitungsmaschine, dadurch gekennzeichnet, daß sie einen Zufallsgenerator nach einem der Ansprüche 1 bis 9 trägt.
  12. Karte für die Beschleunigung von Chiffrierungsfunktionen einer Datenverarbeitungsmaschine, dadurch gekennzeichnet, daß sie einen Mechanismus nach Anspruch 10 trägt.
DE60006650T 1999-12-21 2000-12-07 Schneller zufallszahlengenerator Expired - Lifetime DE60006650T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9916123 1999-12-21
FR9916123A FR2802661B1 (fr) 1999-12-21 1999-12-21 Generateur de nombres aleatoires haut debit
PCT/FR2000/003422 WO2001046797A1 (fr) 1999-12-21 2000-12-07 Generateur de nombres aleatoires haut debit

Publications (2)

Publication Number Publication Date
DE60006650D1 DE60006650D1 (de) 2003-12-24
DE60006650T2 true DE60006650T2 (de) 2004-09-30

Family

ID=9553532

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60006650T Expired - Lifetime DE60006650T2 (de) 1999-12-21 2000-12-07 Schneller zufallszahlengenerator

Country Status (6)

Country Link
US (1) US6714955B2 (de)
EP (1) EP1159673B1 (de)
AT (1) ATE254775T1 (de)
DE (1) DE60006650T2 (de)
FR (1) FR2802661B1 (de)
WO (1) WO2001046797A1 (de)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324558B1 (en) 1995-02-14 2001-11-27 Scott A. Wilber Random number generator and generation method
DE10000502A1 (de) * 2000-01-08 2001-07-12 Philips Corp Intellectual Pty Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb
US6728893B1 (en) 2000-04-21 2004-04-27 Intel Corporation Power management system for a random number generator
JP2002268874A (ja) * 2001-03-07 2002-09-20 Toshiba Corp 乱数シード生成回路及びこれを備えたドライバ、並びに、sdメモリカードシステム
US7139397B2 (en) * 2001-07-20 2006-11-21 Stmicroelectronics S.R.L. Hybrid architecture for realizing a random numbers generator
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
US6862605B2 (en) * 2001-08-15 2005-03-01 Scott A. Wilber True random number generator and entropy calculation device and method
US7587439B1 (en) * 2001-08-31 2009-09-08 Intergrated Device Technology, Inc. Method and apparatus for generating a random bit stream in true random number generator fashion
US7136991B2 (en) * 2001-11-20 2006-11-14 Henry G Glenn Microprocessor including random number generator supporting operating system-independent multitasking operation
US20060064448A1 (en) * 2001-11-20 2006-03-23 Ip-First, Llc. Continuous multi-buffering random number generator
US7219112B2 (en) * 2001-11-20 2007-05-15 Ip-First, Llc Microprocessor with instruction translator for translating an instruction for storing random data bytes
US20030236802A1 (en) * 2002-06-20 2003-12-25 Koninklijke Philips Electronics N.V. Method and apparatus for generating a random number using the meta-stable behavior of latches
US7124155B2 (en) * 2002-07-25 2006-10-17 Koninklijke Philips Electronics N.V. Latching electronic circuit for random number generation
US7461111B2 (en) * 2002-09-30 2008-12-02 Fdk Corporation Method of uniforming physical random number and physical number generation device
US7233965B2 (en) * 2002-09-30 2007-06-19 Sun Microsystems, Inc. Continuous random number generation method and apparatus
US7188131B2 (en) * 2002-11-27 2007-03-06 Stmicroelectronics S.A. Random number generator
JP4248950B2 (ja) 2003-06-24 2009-04-02 株式会社ルネサステクノロジ 乱数発生装置
FR2860597B1 (fr) * 2003-10-03 2006-01-27 Essilor Int Materiau thermodur antiplastifie comportant des atomes de soufre et lentille ophtalmique comprenant un materiau thermodur antiplastifie
FR2871252B1 (fr) * 2004-06-06 2006-08-25 Univ Jean Monnet Procede pour generer des suites binaires aleatoires
KR20070042511A (ko) * 2004-06-14 2007-04-23 디 유니버시티 오브 노스 캐롤라이나 앳 그린스보로 디지털 콘텐트 보안 시스템 및 방법
US20060017656A1 (en) * 2004-07-26 2006-01-26 Visteon Global Technologies, Inc. Image intensity control in overland night vision systems
US8150900B2 (en) * 2004-08-09 2012-04-03 Telecom Italia S.P.A. Random number generation based on logic circuits with feedback
ATE484790T1 (de) * 2004-08-09 2010-10-15 Telecom Italia Spa Verfahren und vorrichtung zum erzeugen von zufallsdaten
EP1887460A3 (de) * 2004-10-15 2008-06-04 Nxp B.V. Integrierte Schaltung mit einem echten Zufallszahlengenerator
GB2422691A (en) * 2005-01-26 2006-08-02 Marconi Comm Ltd Pseudo-random number generator and method of operating thereof
US8619981B2 (en) * 2005-05-12 2013-12-31 Jds Uniphase Corporation Systems and methods for producing pseudo-random number distributions in devices having limited processing and storage capabilities
US7716100B2 (en) * 2005-12-02 2010-05-11 Kuberre Systems, Inc. Methods and systems for computing platform
DE102006030888B4 (de) * 2006-07-04 2009-06-25 Infineon Technologies Ag Verfahren und Vorrichtung zum Erzeugen eines Startwertes für einen Pseudo-Zufallszahlengenerator
DE102006037016B4 (de) * 2006-08-08 2009-04-23 Giesecke & Devrient Gmbh Pseudo-Zufallszahlengenerator für eine Chipkarte
US9367288B2 (en) * 2006-11-22 2016-06-14 Psigenics Corporation Device and method responsive to influences of mind
KR101127961B1 (ko) 2006-12-01 2012-04-12 한국전자통신연구원 오실레이터 샘플링 방법을 이용한 실난수 발생 장치
US20080304664A1 (en) * 2007-06-07 2008-12-11 Shanmugathasan Suthaharan System and a method for securing information
US8583712B2 (en) * 2007-09-18 2013-11-12 Seagate Technology Llc Multi-bit sampling of oscillator jitter for random number generation
US8312071B2 (en) * 2008-04-11 2012-11-13 International Business Machines Corporation Method and structure for provably fair random number generator
DE102008033162A1 (de) * 2008-07-15 2010-01-21 Feustel, Dietmar Physikalischer Zufallszahlengenerator
US9335971B1 (en) * 2009-02-27 2016-05-10 Calamp Corp. High entropy random bit source
US20100281088A1 (en) * 2009-04-29 2010-11-04 Psigenics Corporation Integrated true random number generator
US8971530B2 (en) 2009-06-24 2015-03-03 Intel Corporation Cryptographic key generation using a stored input value and a stored count value
US20110191129A1 (en) * 2010-02-04 2011-08-04 Netzer Moriya Random Number Generator Generating Random Numbers According to an Arbitrary Probability Density Function
CN102736890A (zh) * 2011-04-15 2012-10-17 深圳市证通电子股份有限公司 基于开环结构的高速随机数发生器
US9058228B2 (en) 2013-02-19 2015-06-16 Raytheon Company Random number generator for generating truly random numbers
WO2015013217A1 (en) * 2013-07-25 2015-01-29 Part It Device, system and method for capturing motor vehicle behavior
US9569176B2 (en) 2014-10-30 2017-02-14 Seagate Technology Llc Deriving entropy from multiple sources having different trust levels
KR101920190B1 (ko) * 2016-11-22 2019-02-08 한국인터넷진흥원 임의의 ip 생성 방법 및 그 장치
US10579339B2 (en) * 2017-04-05 2020-03-03 Intel Corporation Random number generator that includes physically unclonable circuits
US10536266B2 (en) 2017-05-02 2020-01-14 Seagate Technology Llc Cryptographically securing entropy for later use
CN109412561A (zh) * 2018-09-12 2019-03-01 上海华力集成电路制造有限公司 随机数发生器、随机序列产生电路及其工作过程
CN110928524B (zh) * 2019-12-06 2023-06-02 南方科技大学 伪随机信号发生器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4641102A (en) * 1984-08-17 1987-02-03 At&T Bell Laboratories Random number generator
US5034906A (en) * 1990-03-30 1991-07-23 Microwave Logic Pseudorandom Binary Sequence delay systems
US6065029A (en) * 1998-05-26 2000-05-16 N*Able Technologies, Inc. Method and system for providing a random number generator

Also Published As

Publication number Publication date
FR2802661B1 (fr) 2003-10-31
WO2001046797A1 (fr) 2001-06-28
ATE254775T1 (de) 2003-12-15
FR2802661A1 (fr) 2001-06-22
EP1159673B1 (de) 2003-11-19
DE60006650D1 (de) 2003-12-24
US6714955B2 (en) 2004-03-30
US20030014452A1 (en) 2003-01-16
EP1159673A1 (de) 2001-12-05

Similar Documents

Publication Publication Date Title
DE60006650T2 (de) Schneller zufallszahlengenerator
EP1249010B1 (de) Mikroprozessoranordnung mit verschlüsselung
DE2615861C3 (de) Schaltungsanordnung zur Prüfung von Programmen
WO2001040950A2 (de) Mikroprozessoranordnung mit verschlüsselung
DE112008000057B4 (de) Vorrichtung und Verfahren zur Erzeugung einer Zufallszahl
EP1643643A1 (de) Zufallszahlengenerator sowie Verfahren zur Erzeugung von Zufallszahlen
DE60013424T2 (de) Datenverarbeitungsvorrichtung und integrierter Schaltkreis
DE112004000821T5 (de) System mit einem Hauptrechner, der mit mehreren Speichermodulen über eine serielle Speicherverbindung verbunden ist
DE19649704A1 (de) Synchrone Halbleiterspeichereinrichtung mit einer Ausgabesteuerschaltung mit reduzierter belegter Fläche
EP1395910B1 (de) Elektronische schaltung mit asynchroner taktung von peripherieeinheiten
DE60004409T2 (de) Schaltung und Verfahren zur Zufallszahlerzeugung
DE102007004713A1 (de) Datenübergabeeinheit zum Übertragen von Daten zwischen unterschiedlichen Taktbereichen
EP1118924B1 (de) Verfahren zum betrieb einer mikroprozessoranordnung und mikroprozessoranordnung
DE102006012635B4 (de) Vorrichtung und Verfahren zum Erzeugen einer Zahl mit einer zufälligen Verteilung
WO2000019353A1 (de) Datenträger
EP3289685B1 (de) Verfahren und vorrichtung zur erzeugung einer geräte-spezifischen kennung und geräte umfassend einen personalisierten programmierbaren schaltungsbaustein
DE10333522B4 (de) Speicheranordnung zur Verarbeitung von Daten und Verfahren
EP1103104B1 (de) Akquisitionsverfahren und vorrichtung zur durchführung des verfahrens
DE60128608T2 (de) Regenerierungstaktschaltung
DE19546808C1 (de) Speichervorrichtung zum Verarbeiten eines digitalen Videosignals
DE10000502A1 (de) Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb
EP1488566A1 (de) Schaltungsanordnung zum sicheren informationsaustausch zwischen einem sender und einem empfanger
DE102021121234A1 (de) First-In First Out-Puffer mit Look-Ahead-Leistungsverstärker
DE4204448C2 (de) Halbleiterspeichereinrichtung zum Speichern von zwei Arten binärer Zahlen, Verwendung einer Halbleiterspeichereinrichtung und Betriebsverfahren dafür
DE19821783A1 (de) Kommunikationssteuervorrichtung

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: BULL S.A., LES CLAYES SOUS BOIS, FR

8364 No opposition during term of opposition