-
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:
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.
→ 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.
-
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".