Saturday, December 3, 2016

Textual description of firstImageUrl

Hardware-Zufallszahlengenerator - Wikipedia


In der Datenverarbeitung ist ein Hardware-Zufallszahlengenerator ( HRNG ) oder ein echter Zufallszahlengenerator ( TRNG ) eine Vorrichtung, die erzeugt Zufallszahlen aus einem physischen Prozess und nicht mithilfe eines Algorithmus. Solche Vorrichtungen basieren oft auf mikroskopischen Phänomenen, die statistisch zufällige "Rausch" -Signale mit niedrigem Pegel erzeugen, wie thermisches Rauschen, den photoelektrischen Effekt, an dem ein Strahlteiler beteiligt ist, und andere Quantenphänomene. Diese stochastischen Prozesse sind theoretisch völlig unvorhersehbar, und die Behauptungen der Theorie der Unvorhersehbarkeit werden einem experimentellen Test unterzogen. Dies steht im Gegensatz zu dem gängigen Paradigma der Pseudozufallszahlenerzeugung, das üblicherweise in Computerprogrammen oder kryptografischer Hardware implementiert wird. Ein Hardware-Zufallszahlengenerator besteht typischerweise aus einem Wandler, um einige Aspekte der physikalischen Phänomene in ein elektrisches Signal umzuwandeln, einem Verstärker und anderen elektronischen Schaltungen, um die Amplitude der Zufallsfluktuationen auf einen messbaren Pegel zu erhöhen, und eine Art Analogon zu einem Digitalwandler, um den Ausgang in eine digitale Zahl umzuwandeln, oft eine einfache Binärziffer 0 oder 1. Durch wiederholtes Abtasten des zufällig variierenden Signals wird eine Reihe von Zufallszahlen erhalten.

Die Hauptanwendung für elektronische Hardware-Zufallszahlengeneratoren liegt in der Kryptographie, wo sie zum Erzeugen von zufälligen kryptographischen Schlüsseln verwendet werden, um Daten sicher zu übertragen. Sie werden häufig in Internet-Verschlüsselungsprotokollen wie Secure Sockets Layer (SSL) eingesetzt.

Zufallszahlengeneratoren können auch aus "zufälligen" makroskopischen Prozessen mit Geräten wie Münzwurf, Würfeln, Roulette-Rädern und Lotteriemaschinen aufgebaut werden. Das Vorhandensein von Unvorhersehbarkeit in diesen Phänomenen kann durch die Theorie instabiler dynamischer Systeme und der Chaostheorie begründet werden. Obwohl makroskopische Prozesse unter der Newtonschen Mechanik deterministisch sind, kann die Leistung eines gut entworfenen Geräts wie eines Roulette-Rads in der Praxis nicht vorhergesagt werden, da es von den empfindlichen Mikrodetails der Anfangsbedingungen jedes Einsatzes abhängt.

Obwohl Würfel hauptsächlich beim Glücksspiel verwendet wurden und als "randomisierende" Elemente in Spielen (z. B. Rollenspiele) verwendet wurden, beschrieb der viktorianische Wissenschaftler Francis Galton 1890 einen Weg, Würfel zu verwenden, um explizit Zufallszahlen für wissenschaftliche Zwecke zu generieren. [1]

Hardware-Zufallszahlengeneratoren erzeugen im Allgemeinen nur eine begrenzte Anzahl von Zufallsbits pro Sekunde. Um die verfügbare Ausgangsdatenrate zu erhöhen, werden sie häufig verwendet, um den "Keim" für einen schnelleren kryptographisch sicheren Pseudozufallszahlengenerator zu generieren, der dann eine Pseudozufallsausgangssequenz mit einer viel höheren Datenrate erzeugt.

Unvorhersehbare Zufallszahlen wurden zuerst im Zusammenhang mit Glücksspielen untersucht, und viele Randomisierungsgeräte wie Würfel, Mischen von Spielkarten und Roulette-Räder wurden zuerst für eine solche Verwendung entwickelt. Ziemlich produzierte Zufallszahlen sind für das elektronische Glücksspiel von entscheidender Bedeutung und die Art und Weise, wie sie erstellt werden, wird manchmal von staatlichen Glücksspielkommissionen geregelt.

Zufallszahlen werden auch für andere Zwecke als Glücksspiele verwendet, sowohl wenn ihre Verwendung mathematisch wichtig ist, beispielsweise für Meinungsumfragen, als auch in Situationen, in denen Fairness durch Randomisierung angenähert wird, wie z. B. militärische Lotterien und Auswahl von Juroren.

Kryptographie [ edit ]

Die Hauptanwendung für Hardware-Zufallszahlengeneratoren liegt im Bereich der Datenverschlüsselung, beispielsweise zum Erstellen zufälliger kryptographischer Schlüssel zum Verschlüsseln von Daten. Sie sind eine sicherere Alternative zu Pseudozufallszahlengeneratoren (PRNGs), Softwareprogrammen, die üblicherweise in Computern verwendet werden, um "Zufallszahlen" zu generieren. PRNGs verwenden einen deterministischen Algorithmus, um numerische Sequenzen zu erzeugen. Obwohl diese pseudozufälligen Sequenzen statistische Mustertests auf Zufälligkeit bestehen, kann durch Kenntnis des Algorithmus und der zum Initialisieren verwendeten Bedingungen, der als "Startwert" bezeichnet wird, die Ausgabe vorhergesagt werden. Da die von einem PRNG erzeugte Zahlenfolge prinzipiell vorhersagbar ist, sind mit Pseudozufallszahlen verschlüsselte Daten potentiell anfällig für die Kryptoanalyse. Hardware-Zufallszahlengeneratoren erzeugen Zahlenfolgen, von denen angenommen wird, dass sie nicht vorhersagbar sind und daher die größte Sicherheit bieten, wenn sie zum Verschlüsseln von Daten verwendet werden.

Frühe Arbeit [ edit ]

Eine frühe Methode zur Erzeugung von Zufallszahlen bestand in einer Variation derselben Maschinen, die zum Spielen von Keno oder zum Auswählen von Lottozahlen verwendet wurden. Diese vermischten nummerierten Ping-Pong-Bälle mit geblasener Luft, möglicherweise kombiniert mit mechanischer Bewegung, und verwendeten ein Verfahren, um Bälle aus der Mischkammer zu ziehen ( US-Patent 4,786,056 ). Diese Methode liefert in mancher Hinsicht vernünftige Ergebnisse, aber die dadurch erzeugten Zufallszahlen sind teuer. Die Methode ist von Natur aus langsam und für die meisten Computeranwendungen unbrauchbar.

Am 29. April 1947 begann die RAND Corporation mit dem Erzeugen von Zufallszahlen mit einem "elektronischen Roulette-Rad", das aus einer Zufallsfrequenz-Impulsquelle von etwa 100.000 Impulsen pro Sekunde besteht, die einmal pro Sekunde mit einem konstanten Frequenzimpuls angesteuert und in einen Fünf-Kanal-Impuls eingespeist wird. bit binärer Zähler. Douglas Aircraft baute die Ausrüstung und realisierte den Vorschlag von Cecil Hasting (RAND P-113) [2] für eine Geräuschquelle (höchstwahrscheinlich das bekannte Verhalten der 6D4-Miniatur-Gasstyratronröhre, wenn sie in einem Magnetfeld angeordnet ist [3]). Zwanzig der 32 möglichen Zählerwerte wurden auf die 10 Dezimalstellen abgebildet und die anderen 12 Zählerwerte wurden verworfen. [4]

Die Ergebnisse eines langen Laufs der RAND-Maschine, gefiltert und getestet, wurden in eine Tabelle umgewandelt, die 1955 in dem Buch A Million Random Digits mit 100.000 Normal Deviates veröffentlicht wurde. Der RAND-Tisch war ein entscheidender Durchbruch bei der Bereitstellung von Zufallszahlen, da ein derart großer und sorgfältig vorbereiteter Tisch noch nie verfügbar war. Es war eine nützliche Quelle für Simulationen, Modellierungen und zum Ableiten beliebiger Konstanten in kryptographischen Algorithmen, um zu zeigen, dass die Konstanten nicht böswillig ausgewählt wurden. Die Blockchiffren Khufu und Khafre gehören zu den Anwendungen, die die RAND-Tabelle verwenden. [5] Siehe: Meine Ärmelnummern sind durch nichts zu bemerken.

Physikalische Phänomene mit zufälligen Eigenschaften [ edit ]

Quantum-Zufallseigenschaften [ edit

.

Es gibt zwei grundlegende Quellen für praktikable quantenmechanische Physische Zufälligkeit: Quantenmechanik auf atomarer oder subatomarer Ebene und thermisches Rauschen (von denen einige quantenmechanisch sind). Die Quantenmechanik sagt voraus, dass bestimmte physikalische Phänomene, wie der Atomzerfall von Atomen [6] grundsätzlich zufällig sind und im Prinzip nicht vorhergesagt werden können (für eine Diskussion der empirischen Verifizierung der Quantenunvorhersagbarkeit siehe Bell-Experimente). Und weil wir bei einer Temperatur über dem absoluten Nullpunkt leben, hat jedes System eine zufällige Variation in seinem Zustand. Zum Beispiel prallen die Gasmoleküle, aus denen die Luft besteht, in zufälliger Weise voneinander ab ( siehe statistische Mechanik).] Diese Zufälligkeit ist ebenfalls ein Quantenphänomen ( siehe phonon).

Da das Ergebnis quantenmechanischer Ereignisse nicht einmal prinzipiell vorhergesagt werden kann, sind sie der „Goldstandard“ für die Zufallszahlengenerierung. Einige Quantenphänomene, die zur Erzeugung von Zufallszahlen verwendet werden, umfassen:

Klassische Zufallseigenschaften [ edit ]

Thermische Phänomene sind leichter zu erkennen. Sie sind etwas anfällig für Angriffe, indem sie die Temperatur des Systems senken [11] obwohl die meisten Systeme den Betrieb bei Temperaturen einstellen, die niedrig genug sind, um das Rauschen um einen Faktor von zwei (z. B. ~ 150 K) zu reduzieren. Einige der verwendeten thermischen Phänomene sind:

In Abwesenheit von Quanteneffekten oder thermischem Rauschen können andere Phänomene verwendet werden, die eher zufällig sind, obwohl sie auf physikalische Weise nicht ohne weiteres charakterisiert werden können. Wenn mehrere solcher Quellen sorgfältig kombiniert werden (wie z. B. der Yarrow-Algorithmus oder Fortuna CSPRNGs), kann ausreichend Entropie für die Erstellung kryptographischer Schlüssel und Nonces gesammelt werden, allerdings im Allgemeinen mit eingeschränkten Raten. Der Vorteil ist, dass dieser Ansatz grundsätzlich keine spezielle Hardware benötigt. Der Nachteil besteht darin, dass ein ausreichend kenntnisreicher Angreifer die Software oder ihre Eingaben heimlich modifizieren kann, wodurch die Zufälligkeit der Ausgabe möglicherweise erheblich verringert wird. Die Hauptquelle der Zufälligkeit, die typischerweise in solchen Ansätzen verwendet wird, ist das genaue Timing der Interrupts, die durch mechanische Eingabe- / Ausgabegeräte wie Tastaturen und Plattenlaufwerke, verschiedene Systeminformationszähler usw. verursacht werden.

Dieser letzte Ansatz muss sorgfältig implementiert werden und kann angegriffen werden, wenn dies nicht der Fall ist. Zum Beispiel konnte die Vorwärtssicherheit des Generators in Linux 2.6.10 mit der Zeitkomplexität von 2 64 oder 2 96 gebrochen werden. [12]

Clock Drift edit ]

Ein anderes variables physikalisches Phänomen, das leicht zu messen ist, ist die Uhrendrift. Es gibt mehrere Möglichkeiten, die Uhrendrift als Zufallsquelle zu messen und zu verwenden.

Der Intel 82802 Firmware Hub (FWH) -Chip enthielt einen Hardware-RNG [13] mit zwei frei laufenden Oszillatoren, einem schnellen und einem langsamen. Eine Quelle für thermisches Rauschen (Nicht-Common-Mode-Rauschen von zwei Dioden) wird verwendet, um die Frequenz des langsamen Oszillators zu modulieren, der dann eine Messung des schnellen Oszillators auslöst. Diese Ausgabe wird dann mit einem Dekorrelationsschritt von von Neumann (siehe unten) debasiert. Die Ausgaberate dieses Geräts liegt etwas unter 100.000 Bit / s. Dieser Chip war eine optionale Komponente der 840-Chipsatzfamilie, die einen früheren Intel-Bus unterstützt hat. Es ist nicht in modernen PCs enthalten.

Alle VIA C3-Mikroprozessoren enthalten seit 2003 einen Hardware-RNG auf dem Prozessorchip. Anstelle von thermischem Rauschen werden Roh-Bits mit vier frei laufenden Oszillatoren erzeugt, die für unterschiedliche Geschwindigkeiten ausgelegt sind. Die Ausgänge von zwei sind XOR-gesteuert, um die Vorspannung eines dritten Oszillators zu steuern, dessen Ausgang den Ausgang des vierten Oszillators taktet, um das Rohbit zu erzeugen. Geringfügige Schwankungen in Temperatur, Siliziumcharakteristik und lokalen elektrischen Bedingungen verursachen anhaltende Schwankungen der Oszillatorgeschwindigkeit und erzeugen somit die Entropie der Rohbits. Um die Zufälligkeit weiter sicherzustellen, gibt es tatsächlich zwei solcher RNGs auf jedem Chip, die jeweils in unterschiedlichen Umgebungen angeordnet und auf dem Silizium gedreht sind. Die endgültige Ausgabe ist eine Mischung aus diesen beiden Generatoren. Die Rohausgaberate beträgt Dutzende bis Hunderte Megabits pro Sekunde und die Weißrate beträgt einige Megabits pro Sekunde. Die Anwendersoftware kann mit neuen nicht privilegierten Maschinensprachenanweisungen auf den erzeugten Zufallsbitstrom zugreifen.

Eine Software-Implementierung einer verwandten Idee auf gewöhnlicher Hardware ist in CryptoLib enthalten, [14] einer kryptographischen Routinenbibliothek. Der Algorithmus wird als truerand bezeichnet. Die meisten modernen Computer verfügen über zwei Quarzoszillatoren, einen für die Echtzeituhr und einen für die primäre CPU-Uhr. truerand nutzt diese Tatsache aus. Es verwendet einen Betriebssystemdienst, der einen Alarm auslöst und die Echtzeituhr abläuft. Bei einem Unterprogramm wird der Alarm in einem Takt (normalerweise 1/60 Sekunde) ausgelöst. Eine andere geht dann in eine while-Schleife und wartet auf den Alarm. Da der Alarm nicht immer in genau einem Tick ausgelöst wird, variieren die niedrigstwertigen Bits einer Anzahl von Schleifeniterationen zwischen dem Setzen des Alarms und seines Auslösers zufällig, möglicherweise genug für einige Verwendungszwecke. Truerand erfordert keine zusätzliche Hardware, aber in einem Multitasking-System muss sehr sorgfältig darauf geachtet werden, dass keine zufälligen Interferenzen von anderen Prozessen auftreten (z. B. beim Aussetzen des Zählschleifenprozesses, wenn der Scheduler des Betriebssystems verschiedene Prozesse startet und stoppt.) ).

Der RdRand-Opcode gibt Werte von einem Onboard-Hardware-Zufallszahlengenerator zurück. Es ist in Intel-Ivy-Bridge-Prozessoren und AMD64-Prozessoren seit 2015 vorhanden. [15]

Umgang mit Voreingenommenheit [ edit

Der Bitstrom von solchen Systemen neigt dazu, mit einem der beiden Systeme voreingenommen zu sein 1s oder 0s vorherrschend. [ Zitat benötigt ] Es gibt zwei Ansätze im Umgang mit Voreingenommenheit und anderen Artefakten. Die erste besteht darin, den RNG so zu gestalten, dass die dem Betrieb des Generators innewohnende Vorspannung minimiert wird. Eine Methode, um dies zu korrigieren, gibt den erzeugten Bitstrom zurück, gefiltert durch einen Tiefpassfilter, um die Vorspannung des Generators einzustellen. Durch den zentralen Grenzwertsatz neigt die Rückkopplungsschleife dazu, "fast immer" gut eingestellt zu sein. Zufallszahlengeneratoren mit ultrahoher Geschwindigkeit verwenden häufig diese Methode. Selbst dann sind die erzeugten Zahlen normalerweise etwas voreingenommen.

Software-Whitening [ edit ]

Ein zweiter Ansatz, um mit Vorurteilen fertig zu werden, besteht darin, sie nach der Generierung (in Software oder Hardware) zu reduzieren. Selbst wenn die obigen Schritte zur Reduzierung der Hardware-Vorspannung durchgeführt wurden, sollte angenommen werden, dass der Bitstrom Vorspannung und Korrelation enthält. Es gibt verschiedene Techniken zum Reduzieren von Vorspannung und Korrelation, die häufig als "Weiß" -Algorithmen bezeichnet werden, und zwar in Analogie zu dem verwandten Problem der Erzeugung von weißem Rauschen aus einem korrelierten Signal. Es gibt einen anderen Weg, den Dynamic-Statics-Test, der eine statische Zufallsüberprüfung in jedem Zufallszahlenblock dynamisch durchführt. Dies kann in kurzer Zeit, 1 Gigabyte pro Sekunde oder mehr, sinnvoll durchgeführt werden. Wenn bei dieser Methode ein Block als zweifelhaft bestimmt werden soll, wird der Block ignoriert und aufgehoben. Diese Methode wird im Entwurf von ANSI (X9F1) angefordert.

John von Neumann erfand einen einfachen Algorithmus, um einfache Vorurteile zu beheben und die Korrelation zu reduzieren. Es berücksichtigt jeweils zwei Bits (nicht überlappend) und führt eine von drei Aktionen aus: Wenn zwei aufeinanderfolgende Bits gleich sind, werden sie verworfen. eine Folge von 1,0 wird eine 1; und eine Folge von 0,1 wird eine Null. Es stellt somit eine fallende Flanke mit einer 1 und eine steigende Flanke mit einer 0 dar. Dies eliminiert eine einfache Vorspannung und ist leicht als Computerprogramm oder in digitaler Logik zu implementieren. Diese Technik funktioniert unabhängig davon, wie die Bits generiert wurden. Es kann jedoch keine Zufälligkeit in seiner Ausgabe gewährleisten. Was es tun kann (mit einer großen Anzahl von verworfenen Bits), ist die Umwandlung eines verzerrten Zufallsbitstroms in einen unverzerrten.

Eine andere Technik zum Verbessern eines nahezu zufälligen Bitstroms besteht darin, den Bitstrom mit dem Ausgang eines qualitativ hochwertigen kryptographisch sicheren Pseudozufallszahlengenerators, wie Blum Blum Shub oder einer starken Stromverschlüsselung, auszuschließen. Dies kann die Dekorrelation und die Vorurteile bei niedrigen Kosten verbessern. Dies kann mit Hardware wie einem FPGA erfolgen, was schneller ist als mit Software.

Ein verwandtes Verfahren, das die Verzerrung in einem nahezu zufälligen Bitstrom reduziert, besteht darin, zwei oder mehr unkorrelierte nahe zufällige Bitströme zu verwenden, und zwar exklusiv oder zusammen. Die Wahrscheinlichkeit, dass ein Bitstrom eine 0 erzeugt, ist 1/2 + e wobei -1/2 ≤ e ≤ 1/2 ist. Dann ist e die Neigung des Bitstroms. Wenn zwei unkorrelierte Bitströme mit Vorurteilen e zusammen exklusiv oder -ed sind, dann wird der Vorurteil des Ergebnisses 2 e ² sein. Dies kann mit mehreren Bitströmen wiederholt werden (siehe auch das Anhäufungs-Lemma).

Einige Konstruktionen wenden kryptographische Hash-Funktionen wie MD5, SHA-1 oder RIPEMD-160 oder sogar eine CRC-Funktion auf den gesamten Bitstrom oder einen Teil davon an und verwenden die Ausgabe dann als Zufallsbitstrom. Dies ist attraktiv, zum Teil weil es im Vergleich zu einigen anderen Methoden relativ schnell ist, es hängt jedoch wesentlich von den Qualitäten der Hash-Ausgabe ab, für die möglicherweise nur wenige theoretische Grundlagen vorliegen.

Viele physikalische Phänomene können verwendet werden, um Bits mit starker Verzerrung zu erzeugen, aber jedes Bit ist unabhängig von den anderen. Ein Geigerzähler (mit einer Abtastzeit länger als die Röhrenwiederherstellungszeit) oder ein halbdurchlässiger Spiegel-Photonendetektor erzeugt beide Bitströme, die meistens "0" sind (stumm oder Übertragung), gelegentlich "1" (Klick oder Reflexion). Wenn jedes Bit unabhängig von den anderen ist, generiert die Von-Neumann-Strategie für jedes der seltenen "1" -Bits in einem solchen stark vorgespannten Bitstrom ein zufälliges, unverzerrtes Ausgangsbit. Whitening-Techniken wie die Advanced Multi-Level-Strategie (AMLS) [16] können mehr Ausgabebits - ebenso zufällige und unverzerrte Ausgabebits - aus einem derart stark verzerrten Bitstrom extrahieren. [17]

PRNG mit periodisch aktualisiertem Zufallsschlüssel [19659010] [ edit ]

Andere Konstruktionen verwenden, was als echte Zufallsbits angesehen wird, als Schlüssel für einen hochwertigen Blockverschlüsselungsalgorithmus, wobei die verschlüsselte Ausgabe als Zufallsbitstrom verwendet wird. In diesen Fällen muss jedoch darauf geachtet werden, einen geeigneten Blockmodus auszuwählen. In einigen Implementierungen wird der PRNG für eine begrenzte Anzahl von Stellen ausgeführt, während die Hardwareerzeugungsvorrichtung einen neuen Startwert erzeugt.

Verwenden von beobachteten Ereignissen [ edit ]

Software-Ingenieure ohne echte Zufallszahlengeneratoren versuchen oft, diese durch Messung physikalischer Ereignisse zu entwickeln, die der Software zur Verfügung stehen. Ein Beispiel ist das Messen der Zeit zwischen den Tastenanschlägen des Benutzers und das anschließende Verwenden des niedrigstwertigen Bits (oder zwei oder drei) der Zählung als zufällige Ziffer. Ein ähnlicher Ansatz misst die Aufgabenplanung, Netzwerktreffer, Suchzeiten und andere interne Ereignisse. Ein Microsoft-Design enthält eine sehr lange Liste solcher internen Werte (siehe CSPRNG-Artikel). Sogar Lavalampen wurden als zu überwachende physikalische Geräte verwendet (siehe Lavarand).

Die Methode ist riskant, wenn computergesteuerte Ereignisse verwendet werden, da ein cleverer böswilliger Angreifer möglicherweise einen kryptographischen Schlüssel durch Steuern der externen Ereignisse vorhersagen kann. Es ist auch riskant, da das angebliche vom Benutzer erzeugte Ereignis (z. B. Tastatureingaben) von einem ausreichend genialen Angreifer manipuliert werden kann, wodurch die von der Kryptographie verwendeten "Zufallswerte" gesteuert werden können.

Mit ausreichender Sorgfalt kann jedoch ein System entworfen werden, das kryptografisch sichere Zufallszahlen aus den Zufallsquellen erzeugt, die in einem modernen Computer verfügbar sind. Der grundlegende Entwurf besteht darin, einen "Entropie-Pool" von Zufallsbits zu unterhalten, von denen angenommen wird, dass sie einem Angreifer unbekannt sind. Neue Zufälligkeiten werden immer dann hinzugefügt, wenn sie verfügbar sind (z. B. wenn der Benutzer eine Taste drückt), und es wird eine Schätzung der Anzahl der Bits im Pool gespeichert, die einem Angreifer nicht bekannt sind. Einige der verwendeten Strategien sind:

  • Wenn Zufallsbits angefordert werden, geben Sie so viele aus dem Entropiepool abgeleitete Bits zurück (z. B. durch eine kryptografische Hashfunktion), und verringern Sie die Schätzung der Anzahl der im Pool verbleibenden Zufallsbits. Wenn nicht genügend unbekannte Bits verfügbar sind, warten Sie, bis genügend verfügbar sind. Dies ist das Top-Level-Design des "/ dev / random" -Geräts in Linux, das von Theodore Ts'o geschrieben und in vielen anderen Unix-ähnlichen Betriebssystemen verwendet wird. Es liefert qualitativ hochwertige Zufallszahlen, solange die Einschätzung der Eingabezufriedenheit ausreichend vorsichtig ist. Das Linux-Gerät "/ dev / urandom" ist eine einfache Modifikation, bei der Schätzungen der Zufallszahlen nicht beachtet werden, und es ist daher weniger wahrscheinlich, dass sie eine hohe Entropie aufweist.
  • Pflegen einer Stream-Chiffrierung mit einem Schlüssel und einem Initialisierungsvektor (IV) aus einem Entropiepool erhalten. Wenn genügend Entropiestücke gesammelt wurden, ersetzen Sie sowohl Schlüssel als auch IV durch neue Zufallswerte, und verringern Sie die geschätzte Entropie, die im Pool verbleibt. Dies ist der Ansatz der Schafgarbenbibliothek. Es gibt Widerstand gegen einige Angriffe und konserviert schwer erhältliche Entropie.

Probleme [ edit ]

Es ist sehr einfach, Hardware- oder Software-Geräte, die versuchen, Zufallszahlen zu erzeugen, falsch zu konstruieren . Die meisten "brechen" auch leise ab und erzeugen bei ihrem Abbau häufig abnehmend zufällige Zahlen. Ein physikalisches Beispiel könnte die rapide abnehmende Radioaktivität der zuvor erwähnten Rauchmelder sein. Fehlerzustände in solchen Geräten sind reichlich vorhanden und kompliziert, langsam und schwer zu erkennen.

Da viele Entropiequellen oft ziemlich brüchig sind und im stillen Fall versagen, sollten statistische Tests ihrer Ausgabe kontinuierlich durchgeführt werden. Viele, aber nicht alle, enthalten solche Tests in der Software, die das Gerät liest.

Angriffe [ edit ]

Wie bei anderen Komponenten eines Kryptographiesystems sollte ein Software-Zufallszahlengenerator entwickelt werden, um bestimmten Angriffen zu widerstehen. Die Verteidigung gegen diese Angriffe ist schwierig.

Der Zufallszahlengenerator, der in Version 1.1 des Netscape-Browsers zu kryptografischen Zwecken verwendet wurde, war anfällig und wurde in Version 2.0 umgehend behoben.

Schätzen der Entropie [ edit ]

Es gibt mathematische Techniken zum Schätzen der Entropie einer Folge von Symbolen. Keine ist so zuverlässig, dass man sich voll auf ihre Schätzungen verlassen kann. Es gibt immer Annahmen, die nur schwer zu bestätigen sind. Diese sind nützlich, um festzustellen, ob in einem Seedpool ausreichend Entropie vorhanden ist, sie können jedoch im Allgemeinen nicht zwischen einer echten Zufallsquelle und einem Pseudozufallsgenerator unterscheiden.

Leistungstest [ edit ]

Hardware-Zufallszahlengeneratoren sollten ständig auf ordnungsgemäße Funktion überwacht werden. RFC 4086, FIPS Pub 140-2 und NIST Special Publication 800-90b [18] enthalten Tests, die hierfür verwendet werden können. Weitere Informationen finden Sie in der Dokumentation zur neuseeländischen Kryptografiesoftware-Bibliothek cryptlib.

Da viele praktische Designs auf einer Hardwarequelle als Eingabe basieren, ist es sinnvoll, zumindest zu überprüfen, ob die Quelle noch in Betrieb ist. Statistische Tests können häufig einen Ausfall einer Rauschquelle erkennen, wie zum Beispiel einer Funkstation, die auf einem Kanal sendet, der als leer angesehen wird. Die Geräuschgeneratorausgabe sollte zu Testzwecken abgetastet werden, bevor sie durch einen "Weißmacher" geleitet wird. Einige Whitener-Designs können statistische Tests ohne zufällige Eingabe bestehen. Das Erkennen einer großen Abweichung von der Perfektion wäre zwar ein Zeichen dafür, dass sich eine echte Zufallsrauschquelle verschlechtert hat, kleine Abweichungen sind normal und können ein Hinweis auf einen ordnungsgemäßen Betrieb sein. Die Korrelation der Vorspannung in den Eingängen mit einer Generatorkonstruktion mit anderen Parametern (z. B. Innentemperatur, Busspannung) kann als weitere Überprüfung zusätzlich nützlich sein. Mit derzeit verfügbaren (und vorgesehenen) Tests reicht das Bestehen solcher Tests leider nicht aus, um sicherzustellen, dass die Ausgabesequenzen zufällig sind. Ein sorgfältig ausgewähltes Design, eine Verifizierung, dass das hergestellte Gerät dieses Design implementiert, und permanente physische Sicherheit, um Manipulationen zu verhindern, kann neben der Prüfung auf hochwertige Anwendungen erforderlich sein.

Siehe auch [ edit ]

Referenzen [ edit

  1. Galton, Francis (1890). "Würfel für statistische Experimente" (PDF) . Nature . 42 : 13–14. Bibcode: 1890Natur..42 ... 13G. doi: 10.1038 / 042013a0 . 14. Mai 2014 2014
  2. ^ P-113 Papers, Rand Corporation .
  3. Cobine, Curry (1947) erhalten. "Elektrische Geräuschgeneratoren", Verfahren des IRE (September 1947): 875–19
  4. ^ Monograph-Bericht Rand Corporation
  5. Schneier, Bruce. Msgstr "Andere Stream - Chiffren und echte Zufallssequenzgeneratoren". Applied Cryptography (2. Aufl.). John Wiley & Sons, Inc. p. 423. ISBN 0-471-11709-9.
  6. ^ "Jeder Kern zerfällt nach dem Zufallsprinzip spontan und willkürlich." Q für Quantum John Gribbin 6D4-Elektronenröhrenreferenz Sylvania
  7. Marandi, A .; N. C. Leindecker; K. L. Vodopyanov; R. L. Byer (2012). "Volloptische Quanten-Zufallsbit-Generierung aus intrinsisch binärer Phase von parametrischen Oszillatoren". Opt. Express . 20 : 19322–19330. arXiv: 1206.0815 . Bibcode: 2012OExpr..2019322M. doi: 10.1364 / OE.20.019322.
  8. ^ Leuchs, Gerd; Marquardt, Christoph; Andersen, Ulrik L .; Mauerer, Wolfgang; Dong, Ruifang; Sych, Denis; Wittmann, Christoffer; Gabriel, Christian (2010). "Ein Generator für eindeutige Quantenzufallszahlen basierend auf Vakuumzuständen". Nature Photonics . 4 (10): 711–715. Doi: 10.1038 / nphoton.2010.197. ISSN 1749-4893.
  9. ^ Symul, T .; S. M. Assad; P. K. Lam (2011). "Echtzeit-Demonstration der Erzeugung von Quantenzufallszahlen mit hoher Bitrate mit kohärentem Laserlicht". Appl. Phys. Lett . 98 . arXiv: 1107.4438 . Bibcode: 2011ApPhL..98w1103S. doi: 10.1063 / 1.3597793.
  10. ^ a b Roger R. Dube (2008). "Hardwareschlüsselgenerierung". Hardware-basierte Computersicherheitstechniken zur Bekämpfung von Hackern: Von der Biometrie zur Quantenkryptographie . John Wiley & Sons. S. 47–50. ISBN 978-0-470-42547-3. Das thermische Rauschen hat seinen Ursprung nicht in einem quantenmechanischen Prozess.
  11. Analyse des Linux-Zufallszahlengenerators (PDF) IACR
  12. Intel Corporation Entwurfshandbuch für Intel® 810 Chipset, Juni 1999 Kap. 1.3.5, p. 1-10
  13. ^ Lacy, John B .; Donald P. Mitchell; William M. Schell (1993). "CryptoLib: Kryptographie in Software" (PDF) . Proc. 4. USENIX-Sicherheitssymp. : 1–17. Archiviert aus dem Original (PDF) am 29.06.2017.
  14. ^ "Handbuch für den AMD64-Architekturprogrammierer Band 3: Allzweck- und Systemanweisungen" (PDF) . AMD-Entwicklerhandbücher, Handbücher und ISA-Dokumente . Juni 2015 . 16. Oktober 2015 .
  15. ^ Peres, Yuval (März 1992), "Iteration von Neumanns Verfahren zur Gewinnung zufälliger Bits", Annalen of Statistics 20 (1): 590–97, doi: 10.1214 / aos / 1176348543 .
  16. ^ Crowley, Paul, Erzeugung zufälliger binärer Daten von Geiger counters Cipher Goth .
  17. ^ Elaine Barker und John Kelsey, Empfehlung für die Entropiequellen für die Zufallsbitgenerierung, NIST SP 800-90b

Allgemeine Hinweise [ edit ]

  • Brown, George W. (Juni 1949), Die Geschichte von Rands Million Digits Papiere (P-113), RAND Corporation
  • Brown, Bernice (Oktober 1948), Einige Tests der Zufälligkeit von Millionen Ziffern Papers (P-44), RAND Corporation
  • [19456572] ] "Tube type 6D4", Electron Tube Data-Handbuch Sylvania, 1957 .
  • Eine Million zufällige Ziffern mit 100.000 normalen Abweichungen RAND Corporation
  • [19456512]. Galton, Francis (1890), "Würfel für statistische Experimente", Nature 42 : 13–4, Bibcode: 1890Natur..42 ... 13G, doi: 10.1038 / 042013a0 .
  • Zufallsgenerator für Zufallszahlen und echte Zufallszahlen mit Selbsttestfunktionen (PDF) Japan: LE Tech RNG edit ]
    • RFC 4086 über Zufallsempfehlungen für die Sicherheit (ersetzt den früheren RFC 1750) IETF .
    • Der Intel-Zufallszahlengenerator [19659115] (PDF) Intel .
    • Entropy Key Simtec verwendet PN-Halbleiterkontakte, die mit einer ausreichend hohen Spannung in die Nähe gebracht werden , aber nicht weiter, Zusammenbruch, um Geräusche zu erzeugen .
    • Download Random Numbers Zufallsserver, verwendet einen TRNG9803-Hardware-Zufallszahlengenerator . ProtegoST SG100, ProtegoST, "Hardware Random Number Generator" Basierend auf Quantenphysik-Zufallszahlenquellen von einer Zenerdiode ".

No comments:

Post a Comment