Kryptographisch sicherer Zufallszahlengenerator
Ein kryptographisch sicherer Zufallszahlengenerator (auch kryptographisch geeigneter Zufallszahlengenerator, bzw. {{#invoke:Vorlage:lang|full|CODE=en|SCRIPTING=Latn|SERVICE=englisch}} (CSPRNG)) ist ein für die Kryptologie geeigneter Generator für Pseudozufallszahlen. Solche Zufallszahlen werden in vielen Bereichen der Kryptologie benötigt, wie zum Beispiel bei:
- der Schlüsselgenerierung
- einmal genutzten Nonces (zufällige Bytefolgen)
- Stromverschlüsselung
- Salt
Die Qualitätsanforderungen für die Zufälligkeit solcher Zahlen sind sehr unterschiedlich. Für Nonces genügt es, die Einmaligkeit der Zahl im Zufallsexperiment zu garantieren; für die Erstellung eines Hauptschlüssels oder sogar eines One-Time-Pads sind die Anforderungen an die Zahl ungleich höher. So bleibt ein One-Time-Pad in der Theorie nur unknackbar, wenn er aus natürlichen Zufallszahlen erstellt wurde.
Grundsätzlich sind für einen CSPRNG dieselben Voraussetzungen wie für einen normalen Pseudozufallszahlengenerator vonnöten, allerdings müssen für die Sicherheit noch einige zusätzliche Bedingungen erfüllt sein. Zum einen darf die von ihm erzeugte Zahlenfolge nicht von einer echten Zufallszahlenfolge unterscheidbar sein. Zum anderen darf es nicht möglich sein, anhand der Ausgabe des Generators auf seinen internen Zustand zu schließen, auch wenn die genaue Funktionsweise bekannt ist.
Das BSI spezifiziert Anforderungen an Zufallszahlengeneratoren zur Verwendung in Projekten der Bundesregierung in der technischen Richtlinie BSI TR-03116 und teilt diese in Funktionsklassen ein.<ref>Matthias Peter, Werner Schindler: A proposal for: Functionality classes for random number generators. Version 2.35 Bundesamt für Sicherheit in der Informationstechnik (BSI), 2022. (online)</ref> Im Wesentlichen werden dort physikalische echte (Klassen PTG.2, PTG.3) und nicht-physikalische echte Zufallszahlengeneratoren (Klasse NTG.1) von deterministischen bzw. pseudo Zufallszahlengeneratoren (Klassen DRG.2, DRG.3) unterschieden. Jene in den Klassen PTG.3 und NTG.1 verarbeiten die gewonnene Entropie wiederum mit einem deterministischen Zufallszahlengenerator der Klasse DRG.3 und sind somit als hybride Zufallszahlengeneratoren anzusehen. Die ehemaligen Klassen PTG.1 und DRG.1 finden seit 2022 keine Beachtung mehr.
Nichtdeterministische CSRNG
Im Idealfall wird die Erstellung von Zufallszahlen durch eine nicht deterministische Entropiequelle gespeist. Das kann zum Beispiel ein hardwarebasierter Zufallsgenerator sein oder auch ein hybrider Generator. Für kryptologische Anwendungen sollten nicht-deterministische Generatoren verwendet werden, denn nur bei diesen kann garantiert werden, dass sie nicht reproduzierbar oder vorhersagbar sind.
Eine Herausforderung bei virtualisierten Umgebungen ist die Verfügbarkeit von Entropiequellen, mit denen Zufallszahlen von ausreichender Qualität für kryptographische Anwendungen bereitgestellt werden können. Prinzipiell ist in virtualisierten Umgebungen eine Entropieversorgung mit denselben Methoden wie auf physischen Maschinen möglich, allerdings gibt es Qualitätsunterschiede je nach verwendeter Entropiequelle. Ein mögliches Problem ist die Qualität der Zufallszahlen kurz nach dem Systemstart.<ref>{{#if:|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:|{{{autor}}}: }}{{#if:|{{#if:Zufallszahlenerzeugung in virtualisierten Umgebungen|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1={{{archiv-url}}}}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=Zufallszahlenerzeugung in virtualisierten Umgebungen}}]{{#if:| ({{{format}}})}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}|{{#if:https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7C}}%7C{{#invoke:Vorlage:Internetquelle%7CTitelFormat%7Ctitel={{#invoke:WLink%7CgetEscapedTitle%7C1=Zufallszahlenerzeugung in virtualisierten Umgebungen}}}}|[{{#invoke:URLutil|getNormalized|1=https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1=Zufallszahlenerzeugung in virtualisierten Umgebungen}}}}]}}{{#if:| ({{{format}}}{{#if:{{#if: 2023-06-19 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
| )
| {{#if:{{#ifeq:de|de||{{#if:de|1}}}}| ;
| )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646}}%7C%7C}}}}{{#if:Zufallszahlenerzeugung in virtualisierten Umgebungen|{{#if:{{#invoke:WLink|isValidLinktext|1=Zufallszahlenerzeugung in virtualisierten Umgebungen|lines=0}}||}}}}{{#if: | In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{{werk}}}}}}}{{#if: | {{{hrsg}}}{{#if: |,|{{#if: 2023-06-19 | {{#if:{{#invoke:TemplUtl|faculty|}}||,}}}}}}}}{{#if: | {{#if:{{#invoke:DateTime|format|{{{datum}}}|noerror=1}}
|{{#invoke:DateTime|format|{{{datum}}}|T._Monat JJJJ}}
|{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum={{{datum}}}|class=Zitationswartung}} }}{{#if: |,|{{#if: 2023-06-19 | {{#if:{{#invoke:TemplUtl|faculty|}}||,}}}}}}}}{{#if: | S. {{{seiten}}}{{#if: |,|{{#if: 2023-06-19 | {{#if:{{#invoke:TemplUtl|faculty|}}||,}}}}}}}}{{#if: {{#invoke:TemplUtl|faculty|}}| {{#if:|{{#if:|archiviert|ehemals}}|{{#if:|Archiviert|Ehemals}}}} {{#if:|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|}}| (nicht mehr online verfügbar)}}{{#if: | am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|{{{archiv-datum}}}{{#if:472482||(?)}}}}}}{{#if: 2023-06-19|;}}}}{{#if: 2023-06-19| {{#if:{{#invoke:TemplUtl|faculty|}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2023-06-19 |ISO|noerror=1}} }}
|4=im Jahr
|7=im
|10=am
|#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2023-06-19|class=Zitationswartung}} }} {{#invoke:DateTime|format|2023-06-19|T._Monat JJJJ}}
| {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:de|de||{{#if:de|1}}}}|{{#if:{{#if: 2023-06-19 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
| (
| {{#if: | | (}}
}}{{#ifeq:{{#if:de|de|de}}|de||
{{#invoke:Multilingual|format|de|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:de|de|de}}|de||, }}{{{kommentar}}}}})}}{{#if: {{#if: 2023-06-19 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}de|{{#if: |: {{
#if:
| „{{
#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
| Vorlage:Str trim
| {{#invoke:Vorlage:lang|flat}}
}}“
| {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
| „Vorlage:Str trim“
| {{#invoke:Text|quote
|1={{#if:
| {{#invoke:Vorlage:lang|flat}}
| {{#invoke:Vorlage:lang|flat}} }}
|2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
|3=1}} }}
}}{{#if:
| (<templatestyles src="Person/styles.css" />{{#if: | : }}{{#if: | , deutsch: „“ }})
| {{#if:
| ({{#if: | , deutsch: „“ }})
| {{#if: | (deutsch: „“) }}
}}
}}{{#if: {{{zitat}}}
| {{#if:
| {{#if: {{{zitat}}}
| Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
| Vorlage:": Text= fehlt }}{{#if: | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
| Vorlage:": Ungültiger Wert: ref=
| {{{ref}}} }}
}}|.{{#if:{{#invoke:TemplUtl|faculty|}}|{{#if:||{{#ifeq: | JaKeinHinweis |{{#switch:
|0|=Vorlage:Toter Link/Core{{#if: https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646 | {{#if: | [1] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }} }} | (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.) }}{{#switch: |no|0|= |#default={{#if: || }} }}{{#invoke:TemplatePar|check |opt = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646 | {{#if:{{#invoke:URLutil|isWebURL|https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646}} || {{#if: || }} }} | {{#if: | {{#if: || }} | {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: deadurl |checked|deadurl|= |#default= {{#if: || }} }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646 Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. ) {{#if: | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }} }}Vorlage:Toter Link/Core{{#switch: |no|0|= |#default= {{#if: || }} }}{{#invoke:TemplatePar|check |all = inline= url= |opt = datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646 | {{#if:{{#invoke:URLutil|isWebURL|https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646}} || {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: deadurl |checked|deadurl|= |#default= {{#if: || }} }}[https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646 }}|{{#switch: |0|=Vorlage:Toter Link/Core{{#if: https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646 | {{#if: | [2] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: | {{#if: | | Vorlage:Toter Link/archivebot }} }} | (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.) }}{{#switch: |no|0|= |#default={{#if: || }} }}{{#invoke:TemplatePar|check |opt = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646 | {{#if:{{#invoke:URLutil|isWebURL|https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646}} || {{#if: || }} }} | {{#if: | {{#if: || }} | {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646 Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. ) {{#if: | {{#if: | | Vorlage:Toter Link/archivebot }} }}Vorlage:Toter Link/Core{{#switch: |no|0|= |#default= {{#if: || }} }}{{#invoke:TemplatePar|check |all = inline= url= |opt = datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646 | {{#if:{{#invoke:URLutil|isWebURL|https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646}} || {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}[https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ZufallinVMS/zufall-in-vms.html?nn=132646 }} }}}}}}}}}}{{#if:| {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:|Vorlage:Webarchiv/archiv-bot}}
}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}</ref>
{{#invoke:Vorlage:Siehe auch|f}}
Deterministische CS(P)RNG
In der Regel ist der Einsatz eines nichtdeterministischen Generators nicht möglich oder zu ineffizient. Dessen Datenstrom wäre auch nicht wiederholbar, was je nach Anwendung erforderlich sein kann. Darum nutzt man häufig einen deterministischen, kryptologisch sicheren Pseudozufallszahlengenerator. Ein solcher basiert entweder auf einem kryptographischen Primitiv wie einer Block- oder Stromverschlüsselung oder einer sicheren Hash-Funktion, oder auf mathematisch schwierigen, also nach aktuellem Kenntnisstand nicht in realistischer Zeit lösbaren Problemen.
Auf kryptographischen Primitiven basierende Generatoren
Ein kryptographisches Primitiv, also eine Verschlüsselungs- oder Hashfunktion, wird entweder im Counter- oder im Output-Feedback-Modus betrieben. Hierbei darf es nicht möglich sein, den Anfangszustand des Generators herauszufinden. Den internen Zustand des Generators zu ermitteln, ist dann gleichbedeutend damit, das zugrundeliegende Primitiv selbst zu brechen.<ref name="nist_sp800_90a" />
Der hierbei generierte Datenstrom ist kryptologisch sicher und pseudozufällig (soweit es auch das verwendete Primitiv garantiert). Generatoren, die auf bewährten Funktionen, wie z. B. AES oder SHA-1 basieren, bestehen alle gängigen statistischen Tests auf Zufälligkeit.<ref name="testu01_paper" />
Auf zahlentheoretischen Problemen basierende Generatoren
Die Sicherheit des Blum-Blum-Shub-Generators beruht auf der Annahme, dass die Primfaktorzerlegung von natürlichen Zahlen ein schwieriges Problem ist, das nicht in Polynomialzeit gelöst werden kann.
Tests auf Zufälligkeit
FIPS 140
In diesem US-Standard ist eine Test-Suite für CSPRNG aufgeführt. Dazu werden 20000 Ausgabebits verschiedenen statistischen Tests unterworfen:
- Monobit-Test
- Pokertest
- Run-Test
- Long-Run-Test (ein Run mit >34 Bits fällt durch)
Maurers Universaltest
Die Idee hinter diesem Test ist, dass es nicht möglich sein sollte, eine Zufallszahlenfolge signifikant zu komprimieren.
Diehard-Tests
{{#if: Diehard|{{#ifexist:Diehard|
|{{#if: |{{#ifexist:{{{2}}}|
|{{#if: |{{#ifexist:{{{3}}}|
|}}|}}|}}|}}|}}|Einbindungsfehler: Die Vorlage Hauptartikel benötigt immer mindestens ein Argument.}}
Umfangreiche Testsuite, u. a.:
- Birthday Spacings Test (Geburtstagsabstände)
- wählt zufällige Punkte auf einem Intervall. Diese sollten Poisson-verteilt sein. Das Prinzip des Tests ist verwandt mit dem Geburtstagsparadox.
- Overlapping Permutations (überlappende Permutationen)
- untersucht jeweils fünf aufeinanderfolgende (Integer-)Zahlen auf Gleichverteilung. Diese können 5!=120 verschiedene Anordnungen haben, die gleich wahrscheinlich sind.
- Binary Rank Test (binärer Rangtest)
- bildet aus den Bits der zu testenden Zahlenfolge zufällige Matrizen, berechnet deren Ränge. Darauf wird ein Chi-Quadrat-Test angewandt.
- Bitstream Test (Bitfolgen-Test)
- betrachtet die zu testende Zahlenfolge als Bitfolgen aus jeweils 20-Bit-„Worten“, die sich überlappen. Es gibt 221 sich überlappende 20-Bit-Worte und 220 mögliche 20-Bit-Worte. Der Test zählt die fehlenden 20-Bit-Worte. Diese sollten annähernd normalverteilt sein.
- Count-The-1s Test (Zähle die Einsen)
- untersucht Bytefolgen. Er zählt die „1“-Bits in den Bytefolgen und vergleicht die erhaltenen Werte mit den statistisch zu erwartenden Werten.
- Parking Lot Test (Parkplatztest)
- platziert zufällig Einheitskreise in ein 100×100-Quadrat. Ein Kreis gilt als erfolgreich geparkt, wenn es keine Überlappung mit einem bereits erfolgreich geparkten Kreis gibt. Die Anzahl der erfolgreich geparkten Kreise nach n=12000 Versuchen sollte annähernd normalverteilt sein.
- Minimum Distance Test (Minimaler Abstand)
- platziert n=8000 Punkte in ein 10000×10000-Punkte-Quadrat. Dann wird der kleinste Abstand zwischen den Punktepaaren bestimmt. Das Quadrat dieser Abstände sollte exponentialverteilt sein.
- 3D Spheres Test (3D-Kugel-Test)
- platziert n=4000 Punkte in einen Würfel der Kantenlänge 1000. Danach wird um jeden Punkt eine Kugel gebildet. Der Radius dieser Kugeln ist der Abstand zwischen dem Mittelpunkt und dem jeweils nächstgelegenen Punkt. Die sich so ergebenden Kugelvolumen sollten einer Exponentialverteilung folgen.
- Runs Test
- entnimmt n Kugeln aus einer Urne mit zwei verschiedenen Kugelsorten. Gleichfarbige nacheinanderfolgend gezogene Kugeln werden zu einem Zug („Run“) zusammengefasst. Die Anzahl der übriggebliebenen Züge soll der einer echten Zufallsziehung zur gegebenen Länge n entsprechen.
- Craps Test
- wendet eine Teststatistik auf 200000 Craps-Spiele an.
Standards
Viele Designs von CSPRNGs wurden standardisiert und sind dokumentiert in:
- FIPS 186-2 (veraltet)<ref>{{#invoke:Vorlage:Literatur|f}} <templatestyles src="Webarchiv/styles.css" />{{#if:20090518185707
| {{#ifeq: 20090518185707 | *
| {{#if: Digital Signature Standard (DSS) | {{#invoke:WLink|getEscapedTitle|Digital Signature Standard (DSS)}} | {{#invoke:Webarchiv|getdomain|http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20090518185707}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: Digital Signature Standard (DSS) | {{#invoke:WLink|getEscapedTitle|Digital Signature Standard (DSS)}} | {{#invoke:Webarchiv|getdomain|http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20090518185707}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: Digital Signature Standard (DSS) | {{#invoke:WLink|getEscapedTitle|Digital Signature Standard (DSS)}} | {{#invoke:Webarchiv|getdomain|http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: Digital Signature Standard (DSS) | {{#invoke:WLink|getEscapedTitle|Digital Signature Standard (DSS)}} | {{#invoke:Webarchiv|getdomain|http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: Digital Signature Standard (DSS) | {{#invoke:WLink|getEscapedTitle|Digital Signature Standard (DSS)}} | {{#invoke:Webarchiv|getdomain|http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf}} }} ({{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: Digital Signature Standard (DSS) | {{#invoke:WLink|getEscapedTitle|Digital Signature Standard (DSS)}} | {{#invoke:Webarchiv|getdomain|http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf}} }}
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20090518185707|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf}}
|| {{#if: || }}
}}{{#if: Digital Signature Standard (DSS)
| {{#if: {{#invoke:WLink|isBracketedLink|Digital Signature Standard (DSS)}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}</ref>
Siehe auch
Literatur
- Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone: Handbook of Applied Cryptography. CRC Press, Boca Raton FL u. a. 1997, ISBN 0-8493-8523-7 (CRC Press Series on Discrete Mathematics and its Applications), Kapitel 5.
Weblinks
- Random Number Generation. NIST Computer Security Division (englisch) – Referenz für CSPRNG
- Testsuite
- Diehard Testsuite
- {{#switch:
|0|=Vorlage:Toter Link/Core{{#if: http://users.telenet.be/d.rijmenants/en/numbersgen.htm | {{#if: Zufallszahlengenerator zur Erzeugung von One-Time-Pads (englisch) | Zufallszahlengenerator zur Erzeugung von One-Time-Pads (englisch) }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if: 2024-08-16 | , festgestellt im {{#invoke:DateTime|format|2024-08-16|F Y}} }}. Suche im Internet Archive ){{#if: | {{#if: | | Vorlage:Toter Link/archivebot }} }} | (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if: 2024-08-16 | , festgestellt im {{#invoke:DateTime|format|2024-08-16|F Y}} }}.) }}{{#switch: |no|0|= |#default={{#if: || }} }}{{#invoke:TemplatePar|check |opt = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: http://users.telenet.be/d.rijmenants/en/numbersgen.htm | {{#if:{{#invoke:URLutil|isWebURL|http://users.telenet.be/d.rijmenants/en/numbersgen.htm}} || {{#if: || }} }} | {{#if: Zufallszahlengenerator zur Erzeugung von One-Time-Pads (englisch) | {{#if: || }} | {{#if: || }} }} }}{{#if: 2024-08-16 | {{#if:{{#invoke:DateTime|format|2024-08-16|F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://users.telenet.be/d.rijmenants/en/numbersgen.htm Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if: 2024-08-16 | , festgestellt im {{#invoke:DateTime|format|2024-08-16|F Y}} }}. (Suche im Internet Archive. ) {{#if: | {{#if: | | Vorlage:Toter Link/archivebot }} }}Vorlage:Toter Link/Core{{#switch: |no|0|= |#default= {{#if: || }} }}{{#invoke:TemplatePar|check |all = inline= url= |opt = datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: http://users.telenet.be/d.rijmenants/en/numbersgen.htm | {{#if:{{#invoke:URLutil|isWebURL|http://users.telenet.be/d.rijmenants/en/numbersgen.htm}} || {{#if: || }} }} }}{{#if: 2024-08-16 | {{#if:{{#invoke:DateTime|format|2024-08-16|F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}[http://users.telenet.be/d.rijmenants/en/numbersgen.htm }}
Einzelnachweise
<references> <ref name="nist_sp800_90a"> NIST 800-20 (PDF; 3,1 MB) </ref> <ref name="testu01_paper"> Pierre L’Ecuyer, Richard Simard: TestU01 Paper </ref> </references>
- Wikipedia:Vorlagenfehler/Parameter:URL
- Wikipedia:Vorlagenfehler/Parameter:Linktext
- Wikipedia:Vorlagenfehler/Parameter:Datum
- Wikipedia:Vorlagenfehler/Vorlage:"
- Wikipedia:Weblink offline fix-attempted
- Wikipedia:Vorlagenfehler/Vorlage:Toter Link
- Wikipedia:Vorlagenfehler/Vorlage:Toter Link/URL fehlt
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Archiv-URL
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Linktext fehlt
- Kryptologisches Verfahren
- Pseudozufallszahlengenerator