Hardware -Zufallszahlengenerator

Im Computer, a Hardware -Zufallszahlengenerator (HRNG) oder True Random Zahlengenerator (Trng) ist ein Gerät, das generiert zufällige Zahlen von einem physischer Prozesseher und nicht mit einem Algorithmus. Solche Geräte basieren häufig auf mikroskopischen Phänomenen, die niedrigem Niveau erzeugen. statistisch zufällig "Lärm"Signale wie z. Thermisches Rauschen, das photoelektrischer Effekt, mit a Strahlteiler, und andere Quanten Phänomene. Diese stochastisch Die Prozesse sind theoretisch völlig unvorhersehbar, solange eine Gleichung, die solche Phänomene regiert Versuchstest. Dies steht im Gegensatz zu dem Paradigma der pseudo-randomischen Zahlengenerierung, die üblicherweise in implementiert ist Computerprogramme.
Ein Hardware -Zufallszahlengenerator besteht normalerweise aus a Wandler Um einige Aspekte der physikalischen Phänomene in ein elektrisches Signal umzuwandeln, umzuwandeln Verstärker und andere elektronische Schaltkreise, um die Amplitude der zufälligen Schwankungen auf einen messbaren Niveau und irgendeine Art von Art zu erhöhen Analog-Digital-Wandler Um die Ausgabe in eine digitale Zahl zu konvertieren, wird häufig eine einfache binäre Ziffer 0 oder 1. durch wiederholtes Stichproben des zufällig variierenden Signals eine Reihe von Zufallszahlen erhalten.
Die Hauptanwendung für elektronische Hardware -Zufallszahlengeneratoren ist in Kryptographie, wo sie verwendet werden, um zufällig zu erzeugen Kryptografische Schlüssel Daten sicher übertragen. Sie werden häufig in Internetverschlüsselungsprotokollen verwendet, wie sie Transportschichtsicherheit (TLS).
Zufallszahlengeneratoren können auch aus "zufälligen" makroskopischen Prozessen unter Verwendung von Geräten wie z. B. erstellt werden Münzen umdrehen, Würfel, Roulette Räder und Lotteriemaschinen. Das Vorhandensein von Unvorhersehbarkeit in diesen Phänomenen kann durch die Theorie von gerechtfertigt werden instabil Dynamische Systeme und Chaostheorie. Obwohl makroskopische Prozesse deterministisch sind Newtonsche MechanikDie Ausgabe eines gut gestalteten Geräts wie ein Roulette-Rad kann in der Praxis nicht vorhergesagt werden, da es von den empfindlichen Mikrodetails des Anfangsbedingungen von jeder Verwendung.
Obwohl Würfel hauptsächlich in verwendet wurden in Glücksspielund als "randomisierende" Elemente in Spielen (z. Rollenspiele), das viktorianisch Wissenschaftler Francis Galton beschrieben einen Weg, um Würfel zu verwenden, um 1890 explizit zufällige Zahlen 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 das zu generieren "Samen"Für einen schnelleren Kryptographisch sichere Pseudorandom -Zahlengenerator, was dann a erzeugt Pseudorandom Ausgabesequenz mit einer viel höheren Datenrate.
Verwendet
Unvorhersehbare Zufallszahlen wurden erstmals im Kontext von untersucht Glücksspielund viele randomisierende Geräte wie z. Würfel, Mischung Karten, und Roulette Räder wurden zuerst für eine solche Verwendung entwickelt. Fair produzierte Zufallszahlen sind für elektronische Glücksspiele von entscheidender Bedeutung, und die Möglichkeiten, sie zu schaffen, werden manchmal durch staatliche Gaming -Kommissionen reguliert.
Zufällige Zahlen werden auch für nicht-gamblessene Zwecke verwendet, bei denen sowohl ihre Verwendung mathematisch wichtig ist, z. B. die Stichprobe für Meinungsumfragenund in Situationen, in denen Fairness von angenähert wird von Randomisierung, wie zum Beispiel Militärische Entwurfslotterien und Auswahl Juroren.
Kryptographie
Die Hauptverwendung für Hardware -Zufallszahlengeneratoren ist im Bereich von DatenverschlüsselungZum Beispiel, um zufällig zu erstellen Kryptografische Schlüssel und Nonces benötigt, um Daten zu verschlüsseln und zu unterschreiben. Sie sind eine sicherere Alternative zu Pseudorandom -Zahlengeneratoren (PRNGs), Softwareprogramme, die üblicherweise in Computern verwendet werden, um "zufällige" Zahlen zu generieren. PRNGs verwenden a deterministischer Algorithmus numerische Sequenzen erzeugen. Obwohl diese Pseudorandomsequenzen passieren Statistische Mustertests für ZufälligkeitDurch das Wissen des Algorithmus und die Bedingungen, die zur Initialisierung von "Samen" verwendet werden, kann der Ausgang vorhergesagt werden. Da die Folge der von einem PRNG erzeugten Zahlen im Prinzip vorhersehbar ist, sind Daten, die mit Pseudorandom -Zahlen verschlüsselt sind Kryptanalyse. Hardware -Zufallszahlengeneratoren produzieren Sequenzen von Zahlen, die nicht vorhersehbar sind, und bieten daher die größte Sicherheit, wenn sie zum Verschlüsselungsdaten verwendet werden.
Frühe Arbeit
Eine frühe Methode, um zufällige Zahlen zu erzeugen, war die Variation der gleichen Maschinen, die zum Spielen verwendet wurden Keno oder auswählen Lotterie Zahlen. Diese beteiligten gemischte, nummerierte Ping-Pong-Kugeln mit geblasener Luft, möglicherweise kombiniert mit mechanischer Rühre, und verwendeten eine Methode, um Bälle aus der Mischkammer zurückzuziehen (US -Patent 4.786.056). Diese Methode liefert in einigen Sinnen vernünftige Ergebnisse, aber die auf diese Weise generierten Zufallszahlen sind teuer. Die Methode ist von Natur aus langsam und für die meisten Computeranwendungen unbrauchbar.
Am 29. April 1947, Rand Corporation begann, zufällige Ziffern mit einem "elektronischen Roulette-Rad" zu erzeugen, das aus einer Zufallsfrequenzimpulsquelle von etwa 100.000 Impulsen pro Sekunde pro Sekunde mit einem konstanten Frequenzimpuls bestand und in einen Binärzähler mit fünf Bit einspeichert wurde. Douglas Aircraft baute die Ausrüstung und implementierte den Vorschlag von Cecil Hasting (Rand P-113)[2] für eine Geräuschquelle (höchstwahrscheinlich das bekannte Verhalten des 6D4 -Miniaturgases Thyratron Rohr, wenn er in einem Magnetfeld platziert wird[3]). Zwanzig der 32 möglichen Zählerwerte wurden auf die 10 Dezimalstellen und die anderen 12 Zählerwerte verworfen.[4]
Die Ergebnisse eines langfristigen Rand -Geräts, filtriert und getestet, wurden in eine Tabelle umgewandelt, die 1955 im Buch veröffentlicht wurde Eine Million zufällige Ziffern mit 100.000 normalen Abweichungen. Die Rand -Tabelle war ein signifikanter Durchbruch bei der Bereitstellung von Zufallszahlen, da eine so große und sorgfältig vorbereitete Tabelle noch nie zuvor verfügbar war. Es war eine nützliche Quelle für Simulationen, Modellierung und zur Ableitung der willkürlichen Konstanten in kryptografischen Algorithmen, um zu zeigen, dass die Konstanten nicht böswillig ausgewählt wurden. Die Blockveränderungen Khufu und Khafre gehören zu den Anwendungen, die die Rand -Tabelle verwenden.[5] Sehen: Nichts meine Ärmelzahlen.
Physikalische Phänomene mit zufälligen Eigenschaften
Quanten -Zufallseigenschaften
Es gibt zwei grundlegende Quellen praktischer Quantenmechanik Physikalische Zufälligkeit: Quantenmechanik auf atomarer oder subatomarer Ebene und Thermisches Rauschen (Einige davon sind quantenmechanische Herkunft). Quantenmechanik sagt vor, dass bestimmte physikalische Phänomene wie die Nuklearverfall von Atomen,[6] sind grundsätzlich zufällig[7] und kann im Prinzip nicht vorhergesagt werden (für eine Diskussion über die empirische Überprüfung der Quantenkonzernfähigkeit siehe Glocken -Test -Experimente). Und weil die Welt über eine Temperatur oben existiert Absoluter NullpunktJedes System hat eine zufällige Abweichung in seinem Zustand; Zum Beispiel hüpfen Moleküle von Gasen, die Luft zusammensetzen, die ständig auf zufällige Weise voneinander abprallen (sehen Statistische Mechanik.) Diese Zufälligkeit ist auch ein Quantenphänomen (sehen Phonon).
Da das Ergebnis von quantenmechanischen Ereignissen auch im Prinzip nicht vorhergesagt werden kann, sind sie der „Goldstandard“ für die Zufallszahlenerzeugung. Einige Quantenphänomene, die für die Erzeugung der Zufallszahl verwendet werden, umfassen:
- Schuss Lärm, eine quantenmechanische Rauschquelle in elektronischen Schaltungen. Ein einfaches Beispiel ist eine Lampe, die auf einer Photodiode leuchtet. Aufgrund der Unschärferelation, ankommende Photonen erzeugen Geräusche in der Schaltung. Das Sammeln des Rauschens zur Verwendung hat einige Probleme, aber dies ist eine besonders einfache Zufallsgeräuschquelle. Schussgeräuschenergie ist jedoch nicht immer gut verteilt in der gesamten Bandbreite von Interesse. Gasdiode und Thyratron -Elektronenrohre in einem kreuzweise Magnetfeld können erhebliche Rauschenergie (10 Volt oder mehr in hohe Impedanzlasten) erzeugen, haben jedoch eine sehr Peak -Energieverteilung und erfordern eine sorgfältige Filterung, um eine Flachheit über ein breites Spektrum zu erzielen.[8]
- A Nuklearverfall Strahlungsquelle, von a erkannt Geigerzähler an einen PC angeschlossen.
- Photonen Reisen durch a Halbtransparenter Spiegel. Das gegenseitig ausschließende Ereignisse (Reflexion/Übertragung) werden erkannt und mit "0" bzw. "1" -Bitwerten verbunden.
- Verstärkung des auf der Basis von a erzeugten Signal reverse vorgespannt Transistor. Der Emitter ist mit Elektronen gesättigt und gelegentlich werden sie es tun Tunnel durch die Bandabstand und beenden Sie über die Basis. Dieses Signal ist dann verstärkt durch ein paar mehr Transistoren und das Ergebnis in a Schmitt-Trigger.
- Spontane parametrische Down-Conversion führt zu einer Binärphasenzustandsauswahl in einem entarteten optischer parametrischer Oszillator.[9]
- Schwankungen in Vakuumenergie gemessen durch Homodyne -Erkennung.[10][11]
Klassische zufällige Eigenschaften
Thermische Phänomene sind leichter zu erkennen. Sie sind etwas anfällig für Angriffe, indem sie die Temperatur des Systems senken.[12] Obwohl die meisten Systeme bei Temperaturen nicht mehr trepp genug arbeiten, um das Rauschen um den Faktor zwei zu verringern (z. B. ~ 150 K). Einige der verwendeten thermischen Phänomene umfassen:
- Thermisches Rauschen von einem Widerstand, verstärkt, um eine Zufallsspannungsquelle bereitzustellen.[12]
- Lawinengeräusch generiert von an Lawinendiode, oder Zener -Zusammenbruch Rauschen aus einem umgekehrten vorgespannt Zenerdiode.
- Atmospheric noise, erkannt von einem an einem PC befestigten Funkempfänger (obwohl viel davon, wie Blitzgeräusche, ist nicht richtig thermisches Rauschen, sondern höchstwahrscheinlich a chaotisch Phänomen).
In Abwesenheit von Quanteneffekten oder thermischem Rauschen können andere Phänomene, die in der Regel zufällig sind, wenn auch nicht leicht durch Gesetze der Physik gekennzeichnet sind, verwendet werden. Wenn mehrere solcher Quellen sorgfältig kombiniert werden (wie beispielsweise die Scharrow -Algorithmus oder Fortuna CSprngs), genug Entropie kann für die Schaffung von kryptografischen Schlüssel gesammelt werden und Nonces, wenn auch im Allgemeinen zu eingeschränkten Preisen. Der Vorteil ist, dass dieser Ansatz im Prinzip keine spezielle Hardware benötigt. Der Nachteil ist, dass ein ausreichend sachkundiger Angreifer die Software oder ihre Eingaben heimlich verändern kann, wodurch die Zufälligkeit des Ausgangs möglicherweise wesentlich verringert wird. Die primäre Quelle der Zufälligkeit, die typischerweise bei solchen Ansätzen verwendet wird, ist der genaue Zeitpunkt der Interrupts verursacht durch mechanische Eingangs-/Ausgangsgeräte, wie z. B. Tastaturen und Laufwerke, verschiedene Systeminformationszähler usw.
Dieser letzte Ansatz muss sorgfältig umgesetzt werden und kann angegriffen werden, wenn dies nicht der Fall ist. Zum Beispiel könnte die Vorwärtssicherheit des Generators in Linux 2.6.10 Kernel mit 2 gebrochen werden64 oder 296 Zeitkomplexität.[13]
Uhrdrift
Ein weiteres variables physikalisches Phänomen, das leicht zu messen ist, ist die Uhrdrift. Es gibt verschiedene Möglichkeiten, um die Takt -Drift als Quelle der Zufälligkeit zu messen und zu verwenden.
Das Intel 82802 Firmware Hub (FWH) -Schip beinhaltete eine Hardware -RNG[14] Mit zwei frei laufenden Oszillatoren, eine schnelle und eine langsam. Eine thermische Rauschquelle (Nicht-Commonmode-Rauschen aus 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 a debiaturiert von Neumann Geben Sie Dekorrelationsschritt ein (siehe unten). Die Ausgangsrate dieses Geräts beträgt etwas weniger als 100.000 Bit/s. Dieser Chip war eine optionale Komponente der 840 Chipsatzfamilie, die einen früheren Intel -Bus unterstützte. Es ist nicht in modernen PCs enthalten.
Alle Via c3 Mikroprozessoren haben seit 2003 einen Hardware -RNG auf dem Prozessorchip aufgenommen. Anstatt thermische Rauschen zu verwenden, werden Rohbits mit vier Freerunning -Oszillatoren erzeugt, die für den Lauf mit unterschiedlichen Raten ausgelegt sind. Der Ausgang von zwei wird XORed, um die Verzerrung eines dritten Oszillators zu steuern, dessen Ausgang den Ausgang des vierten Oszillators zur Erzeugung des Rohbits taktet. Kleinere Temperaturschwankungen, Siliziummerkmale und lokale elektrische Bedingungen verursachen anhaltende Schwankungen der Schwankungen der Oszillatorgeschwindigkeit und erzeugen somit die Entropie der Rohbits. Um die Zufälligkeit weiter zu gewährleisten, gibt es tatsächlich zwei solcher RNGs an jedem Chip, die jeweils in verschiedenen Umgebungen positioniert und am Silizium gedreht werden. Die endgültige Ausgabe ist eine Mischung dieser beiden Generatoren. Die Rohausgangsrate beträgt zehn bis Hunderte von Megabit pro Sekunde und die weiße Rate beträgt einige Megabit pro Sekunde. Benutzersoftware kann mit neuen Anweisungen für nicht privilegierte Sprachanweisungen auf den generierten zufälligen Bitstrom zugreifen.
Eine Software -Implementierung einer verwandten Idee zu normaler Hardware ist in Cryptolib enthalten.[15] Eine kryptografische Routinebibliothek. Der Algorithmus heißt Truerand. Die meisten modernen Computer haben zwei Kristalloszillatoren, eine für die Echtzeituhr und eine für die primäre CPU-Uhr; Truerand nutzt diese Tatsache. Es verwendet einen Betriebssystemdienst, der einen Alarm festlegt und die Echtzeituhr abfällt. Ein Unterprogramm setzt diesen Alarm für eine Uhr Tick (normalerweise 1/60 Sekunden). Ein anderer tritt dann eine Weile ein, die auf die Auslöser des Alarms warten. Da der Alarm nicht immer in genau einer Zecke ausgelöst wird, variieren die am wenigsten signifikanten Bits einer Anzahl von Schleifen -Iterationen zwischen dem Einstellen des Alarms und seinem Auslöser zufällig, möglicherweise genug für einige Verwendungen. Truerand benötigt keine zusätzliche Hardware, aber in einem Multitasking-System muss jedoch große Sorgfalt aufgenommen werden, um nicht randomisierende Störungen durch andere Prozesse zu vermeiden (z. B. bei der Aufhängung des Zählschleifsprozesses, wenn der Bediensystem Scheduler startet und stoppt ).
Das Rdrand
OPCODE gibt Werte von einem integrierten Hardware -Zufallszahlengenerator zurück. Es ist in Intel vorhanden Ivy Bridge Prozessoren und AMD64 -Prozessoren seit 2015.[16]
Umgang mit Voreingenommenheit
Der Bitstrom aus solchen Systemen ist anfällig für verzerrt, wobei entweder 1s oder 0s vorherrschen. Es gibt zwei Ansätze für den Umgang mit Voreingenommenheit und anderen Artefakten. Das erste besteht darin, die RNG zu entwerfen, um die dem Betrieb des Generators innewohnende Verzerrungen zu minimieren. Eine Methode, um diese zu korrigieren, füttert der erzeugte Bitstrom, der durch einen Tiefpassfilter gefiltert wird, die Verzerrung des Generators an. Bis zum Zentralgrenze TheoremDie Rückkopplungsschleife wird in der Regel gut angepasst.fast die ganze Zeit'. Ultrahohe Geschwindigkeits-Zufallszahlengeneratoren verwenden diese Methode häufig. Selbst dann sind die generierten Zahlen normalerweise etwas voreingenommen.
Software -Whitening
Ein zweiter Ansatz für die Bewältigung von Voreingenommenheit besteht darin, es nach der Generation (in Software oder Hardware) zu reduzieren. Es gibt verschiedene Techniken zur Reduzierung von Verzerrungen und Korrelationen, die oft bezeichnet werden. "Whitening"Algorithmen analog mit dem damit verbundenen Problem der Erzeugung weißer Rauschen aus einem korrelierten Signal.
John von Neumann erfand einen einfachen Algorithmus, um einfache Verzerrungen zu beheben und die Korrelation zu verringern. Es berücksichtigt zwei Bits gleichzeitig (nicht überlappend) und ergriffen eines von drei Aktionen: Wenn zwei aufeinanderfolgende Bits gleich sind, werden sie verworfen; Eine Sequenz von 1,0 wird 1; und eine Sequenz von 0,1 wird zu einer Null. Es repräsentiert somit a fallende Flanke mit einer 1 und a steigende Flanke Mit einer 0 beseitigt dies eine einfache Verzerrung und ist einfach als Computerprogramm oder in digitaler Logik implementiert. Diese Technik funktioniert unabhängig davon, wie die Bits erzeugt wurden. Es kann jedoch nicht die Zufälligkeit in seiner Ausgabe sicherstellen. Was es tun kann (mit einer erheblichen Anzahl von weggeworfenen Bits) ist ein verzerrtes Zufallsbitstrom in einen unvoreingenommenen.
Eine weitere Technik zur Verbesserung eines nahezu zufälligen Bitstroms ist zu Exklusiv oder Der Bitstrom mit der Ausgabe einer hohen Qualität Kryptographisch sichere Pseudorandom -Zahlengenerator wie zum Beispiel Blum Blum Shub oder eine starke Stream Chiffre. Dies kann die Dekorrelation und die Ziffernverzerrung zu niedrigen Kosten verbessern. Es kann durch Hardware wie a erfolgen Feldprogrammierbares Gate-Array, was schneller ist als durch Software.
Eine verwandte Methode, die die Verzerrung in einem nahezu zufälligen Bitstrom reduziert Exklusiv oder Sie zusammen. Lassen Sie die Wahrscheinlichkeit eines Bitstroms, der eine 0 erzeugt, 1/2+ seine, wobei –1/2 ≤e≤ 1/2. Dann e ist die Tendenz des Bitstreams. Wenn zwei unkorrelierte Bitströme mit Verzerrung e sind exklusiv oder zusammen, dann wird die Tendenz des Ergebnisses 2 seine2. Dies kann mit mehr Bitströmen wiederholt werden (siehe auch die Lemma aufpacken).
Einige Designs bewerben sich kryptografisch Hash Funktionen wie zum Beispiel MD5, SHA-1, oder RIPEMD-160 oder sogar a CRC Funktionieren Sie zum gesamten oder Teil des Bitstroms und verwenden Sie dann die Ausgabe als Zufallsbitstrom. Dies ist attraktiv, teilweise, weil es relativ schnell ist.
Viele physikalische Phänomene können verwendet werden, um hochvoreingenommene Bits zu erzeugen, aber jedes Bit ist unabhängig von den anderen. Ein Geigerschalter (mit einer Stichprobenzeit länger als der Rohrrückgewinnungszeit) oder einem halbtransparenten Spiegel-Photon-Detektor erzeugen beide Bitströme, die größtenteils "0" (still oder Getriebe) mit gelegentlichem "1" (Klick oder Reflexion) sind. Wenn jedes Bit von den anderen unabhängig ist, generiert die von Neumann -Strategie für jedes der seltenen "1" -Bits in einem so stark voreingenommenen Bitstrom ein zufälliges, unvoreingenommenes Ausgangsbit. Whitening-Techniken wie die Advanced Multi-Level Strategy (AMLS)[17] Kann mehr Ausgangsbits extrahieren - Ausgangsbits, die genauso zufällig und unvoreingenommen sind - aus einem so stark voreingenommenen Bitstrom.[18]
PRNG mit periodisch aktualisierter Zufallsschlüssel
Andere Designs verwenden das, was als echte zufällige Bits als die angesehen wird Schlüssel für eine hohe Qualität Cipher Block Algorithmus, die verschlüsselte Ausgabe als Zufallsbitstrom nimmt. In diesen Fällen muss darauf geachtet werden, eine angemessene Auswahl zu erhalten Blockmodus, jedoch. In einigen Implementierungen wird das PRNG für eine begrenzte Anzahl von Ziffern ausgeführt, während das Hardware -Generierungsgerät einen neuen Saatgut erzeugt.
Mit beobachteten Ereignissen
Software -Ingenieure ohne echte Zufallszahlengeneratoren versuchen häufig, sie zu entwickeln, indem sie die für die Software verfügbare physische Ereignisse messen. Ein Beispiel ist die Messung der Zeit zwischen Benutzer -Tastenanschlägen und dann das am wenigsten signifikante Bit (oder zwei oder drei) der Anzahl als zufällige Ziffer. Ein ähnlicher Ansatz misst Aufgabenplanung, Netzwerk-Hits, Scheibenkopf-Suchzeiten und andere interne Ereignisse. Ein Microsoft -Design enthält eine sehr lange Liste solcher internen Werte, eine Form von Kryptographisch sichere Pseudorandom -Zahlengenerator. Lavalampen wurden auch als physikalische Geräte verwendet, die überwacht werden sollen, wie in der Lavarand System.
Die Methode ist riskant, wenn sie computergesteuerte Ereignisse verwendet, da ein cleverer, böswilliger Angreifer möglicherweise einen kryptografischen Schlüssel vorhersagen kann, indem sie die externen Ereignisse kontrollieren. Es ist auch riskant, weil das vermeintliche Benutzer erstellte Ereignis (z. B. Tastenanschläge) sein kann gefälscht durch einen ausreichend genialen Angreifer, der die Kontrolle der "zufälligen Werte" ermöglicht, die von der Kryptographie verwendet werden.
Mit ausreichender Pflege kann jedoch ein System ausgelegt werden, das kryptografisch zufällige Zahlen aus den in einem modernen Computer verfügbaren Zufälligkeitsquellen erzeugt. Das grundlegende Design besteht darin, einen "Entropiepool" von zufälligen Bits aufrechtzuerhalten, von denen angenommen wird, dass sie einem Angreifer unbekannt sind. Es wird nach verfügbarem (z. B. wenn der Benutzer einen Schlüssel erreicht), und eine Schätzung der Anzahl der Bits im Pool, die einem Angreifer nicht bekannt sein kann, wird eine neue Zufälligkeit hinzugefügt. Einige der verwendeten Strategien umfassen:
- Wenn zufällige Bits angefordert werden, geben Sie zurück, dass viele Bits aus dem Entropiepool (durch eine kryptografische Hash -Funktion, sagen wir) und die Schätzung der Anzahl der im Pool verbleibenden zufälligen Bits verringern. Wenn nicht genug unbekannte Bits verfügbar sind, warten Sie, bis genug verfügbar ist. Dies ist das oberste Design des "/dev/random"Gerät in Linux, geschrieben von Theodore Ts'o und in vielen anderen Unix-ähnlichen Betriebssystemen verwendet. Es liefert qualitativ hochwertige Zufallszahlen, solange die Schätzungen der Zufälligkeit der Eingabe ausreichend vorsichtig sind. Das Linux "/dev/urandom" -Gerät ist eine einfache Modifikation, die Schätzungen der Zufälligkeit des Eingangs missachtet und daher mit geringerer Wahrscheinlichkeit eine hohe Entropie aufweist.
- Pflegen a Stream Chiffre mit einem Schlüssel und Initialisierungsvektor (Iv) Aus einem Entropiepool erhalten. Wenn genügend Entropie -Bits gesammelt wurden, ersetzen Sie sowohl Schlüssel als auch IV durch neue Zufallswerte und verringern Sie die im Pool verbleibende geschätzte Entropie. Dies ist der Ansatz der von der Schafgarbe Bibliothek. Es bietet Widerstand gegen einige Angriffe und konserviert schwer zu addainer Entropie.
(DE) Zentralisierte Systeme
Ein echter Zufallszahlengenerator kann ein (DE) Zentraldienst sein. Ein Beispiel für ein zentrales System, bei dem eine Zufallszahl erworben werden kann, ist die Zufälligkeitsbeacon -Service von dem Nationales Institut für Standards und Technologie; Ein anderes Beispiel ist Random.org, ein Dienst, der atmosphärisches Rauschen verwendet, um zufällig zu erzeugen Binär-Zahlen (Bits).
Als Beispiel für ein dezentrales System verwendet die Cardano -Plattform die Teilnehmer ihrer dezentralen Beweis Protokoll zur Erzeugung von Zufallszahlen.[19]
Probleme
Es ist sehr einfach, Hardware- oder Softwaregeräte zu fehlzulegen, die versuchen, Zufallszahlen zu generieren. Außerdem brechen die meisten lautlos und erzeugen oft abnehmend zufällige Zahlen, wenn sie sich verschlechtern. Ein physisches Beispiel könnte die schnell abnehmende Radioaktivität der zuvor genannten Rauchdetektoren sein, wenn diese Quelle direkt verwendet würde. Ausfallmodi in solchen Geräten sind reichlich und kompliziert, langsam und schwer zu erkennen. Methoden, die mehrere Entropiequellen kombinieren, sind robuster.
Da viele Entropiequellen oft ziemlich zerbrechlich sind und schweigend schweigend versagen, sollten statistische Tests ihrer Ausgabe kontinuierlich durchgeführt werden. Viele, aber nicht alle solche Geräte enthalten einige solche Tests in die Software, die das Gerät liest.
Anschläge
Genau wie bei anderen Komponenten eines Kryptografie -Systems sollte ein Software -Zufallszahlengenerator so ausgelegt sein, dass sie widerstehen Bestimmte Angriffe. Die Verteidigung gegen diese Angriffe ist ohne eine Hardware -Entropiequelle schwierig.
Schätzung der Entropie
Es gibt mathematische Techniken zur Schätzung der Schätzung der Entropie einer Abfolge von Symbolen. Keiner ist so zuverlässig, dass ihre Schätzungen vollständig angewiesen werden können; Es gibt immer Annahmen, die sehr schwer zu bestätigen sind. Diese sind nützlich, um zu bestimmen, ob beispielsweise in einem Samenpool genügend Entropie vorhanden ist, aber im Allgemeinen können sie nicht zwischen einer echten Zufallsquelle und einem Pseudorandomgenerator unterscheiden. Dieses Problem wird durch die konservative Verwendung von Hardware -Entropiequellen vermieden.
Leistungstest
Hardware -Zufallszahlengeneratoren sollten ständig für den ordnungsgemäßen Betrieb überwacht werden. RFC 4086, FIPS Pub 140-2 und NIST Spezielle Veröffentlichung 800-90b[20] Fügen Sie dafür Tests hinzu. Sehen Sie sich auch die Dokumentation für die neuseeländische kryptografische Software -Bibliothek an Cryptlib.
Da viele praktische Designs als Eingabe auf eine Hardwarequelle angewiesen sind, ist es nützlich, zumindest zu überprüfen, ob die Quelle noch arbeitet. Statistische Tests können häufig einen Ausfall einer Rauschquelle erkennen, z. Der Rauschgeneratorausgang sollte zum Testen abgetastet werden, bevor ein "Whitener" weitergeleitet wird. Einige Whitener -Designs können statistische Tests ohne zufällige Eingabe bestehen. Während das Erkennen einer großen Abweichung von der Perfektion ein Vorzeichen dafür wäre, dass eine echte zufällige Rauschquelle abgebaut wurde, sind kleine Abweichungen normal und können ein Hinweis auf einen ordnungsgemäßen Betrieb sein. Die Korrelation der Verzerrung der Eingänge zu einem Generatorkonstruktion mit anderen Parametern (z. B. interne Temperatur, Busspannung) kann zusätzlich als weitere Überprüfung nützlich sein. Leider reicht bei derzeit verfügbaren (und vorgesehenen) Tests nicht aus, um sicherzustellen, dass die Ausgangssequenzen zufällig sind. Eine sorgfältig ausgewählte Konstruktion, die Überprüfung, ob das hergestellte Gerät diese Entwurf und kontinuierliche physische Sicherheit implementiert, um sie gegen Manipulationen zu versichern, kann zusätzlich zum Testen auf hohe Wertnutzungen benötigt werden.
Siehe auch
- AN/CYZ-9
- Glocken -Test -Experimente
- /dev/random
- ERNIE
- Liste der Zufallszahlengeneratoren
- Lotteriemaschine
- Zufälligkeit Extraktor
- Rdrand
- Vertrauenswürdiges Plattformmodul
Verweise
- ^ Galton, Francis (1890). "Würfel für statistische Experimente" (PDF). Natur. 42 (1070): 13–14. Bibcode:1890natur..42 ... 13g. doi:10.1038/042013a0. S2CID 4038609. Abgerufen 14. Mai 2014.
- ^ Brown, George W. (Januar 1949), P-113, Papiere, Rand Corporation.
- ^ Cobine, Curry (1947), "Elektrische Geräuschgeneratoren", Verfahren des I.R.E. (September 1947): 875–9
- ^ Monographiebericht, Rand Corporation, Januar 2001.
- ^ Schneier, Bruce (1995-11-01). "Andere Stream-Chiffren und echte Zufallssequenzgeneratoren". Angewandte Kryptographie (Zweite Ausgabe). John Wiley & Sons, Inc. p. 423. ISBN 978-0-471-11709-4.
- ^ "Jeder Kern zerfällt nach dem Zufallsprinzip in Übereinstimmung mit den blinden Zufallsarbeiten." Q für Quanten, John Gribbin
- ^ Ananthaswamy, Anil (19. Juni 2019). "Wie man einen Quantencomputer in den ultimativen Zufälligkeitsgenerator verwandelt". Quantenmagazin. Abgerufen 2019-06-22.
- ^ 6D4 -Elektronenrohrreferenz, Sylvania.
- ^ Marandi, a.; N. C. Leidecker; K. L. Vodopyanov; R. L. Byer (2012). "All-optische Quanten-Zufallsbitgenerierung aus intrinsisch binärer Phase parametrischer Oszillatoren". Opt. Äußern. 20 (17): 19322–19330. Arxiv:1206.0815. Bibcode:2012oexpr..2019322m. Citeseerx 10.1.1.758.4608. doi:10.1364/oe.20.019322. PMID 23038574. S2CID 8254138.
- ^ Leuchs, Gerd; Marquardt, Christoph; Andersen, Ulrik L.; Mauerer, Wolfgang; Dong, Ruifang; Sych, Denis; Wittmann, Christoffer; Gabriel, Christian (2010). "Ein Generator für eindeutige Quanten -Zufallszahlen basierend auf Vakuumzuständen". Naturphotonik. 4 (10): 711–715. Bibcode:2010napho ... 4..711g. doi:10.1038/nphoton.2010.197. ISSN 1749-4893.
- ^ Symul, T.; S. M. Assad; P. K. Lam (2011). "Echtzeitdemonstration einer hohen Bitrate -Quanten -Zufallszahlenerzeugung mit kohärentem Laserlicht". Appl. Phys. Lette. 98 (23): 231103. Arxiv:1107.4438. Bibcode:2011APPHL..98W1103S. doi:10.1063/1.3597793. S2CID 31596249.
- ^ a b Roger R. Dube (2008). "Hardware -Schlüsselgeneration". Hardware-basierte Computersicherheitstechniken zur Besiege von Hackern: von Biometrie bis Quantenkryptographie. John Wiley & Sons. S. 47–50. ISBN 978-0-470-42547-3.
Wärmelgeräusch hat keinen Ursprung in einem quantenmechanischen Prozess
- ^ Analyse des Linux -Zufallszahlengenerators (PDF), IACR
- ^ Intel Corporation Intel® 810 Chipsatz Design Guide, Juni 1999 CH. 1.3.5, p. 1-10.
- ^ Lacy, John B.; Donald P. Mitchell; William M. Schell (1993). "Cryptolib: Kryptographie in Software" (PDF). Proc. 4. Usenix Security Symp.: 1–17. Archiviert von das Original (PDF) Am 2017-06-29.
- ^ "Handbuch des Architekturprogrammierers AMD64: Allgemeine und Systemanweisungen" (PDF). AMD -Entwicklerführer, Handbücher und ISA -Dokumente. Juni 2015. Abgerufen 16. Oktober 2015.
- ^ Peres, Yuval (März 1992), "Iterating von Neumanns Verfahren zum Extrahieren zufälliger Bits", Annals of Statistics, 20 (1): 590–97, doi:10.1214/aoS/1176348543.
- ^ Crowley, Paul, Generieren von zufälligen Binärdaten von Geiger -ZählerCipher Goth.
- ^ "Eine Lösung für skalierbare Zufälligkeit". iohk.io. 6. Juni 2017. Abgerufen 14. September, 2020.
- ^ Elaine Barker und John Kelsey, Empfehlung für die Entropiequellen, die für die zufällige Bitgenerierung verwendet werden, NIST SP 800-90B
Allgemeine Referenzen
- Brown, George W (Juni 1949), Geschichte von Rands Millionen Ziffern, Papiere, Rand Corporation.
- Brown, Bernice (Oktober 1948), Einige Tests der Zufälligkeit von einer Million Ziffern, Papiere, Rand Corporation.
- "Rohr Typ 6D4", Handbuch für Elektronenrohrdaten, Sylvania, 1957.
- Eine Million zufällige Ziffern mit 100.000 normalen Abweichungen, Rand Corporation, Januar 2001.
- Galton, Francis (1890), "Würfel für statistische Experimente", Natur, 42 (1070): 13–4, Bibcode:1890natur..42 ... 13g, doi:10.1038/042013a0.
- Zufälligkeit und echte Zufallszahlengenerator mit Selbsttestfunktionen (PDF), Japan: Le Tech Rng, archiviert von das Original (PDF) Am 2018-03-01, abgerufen 2015-04-20.
Externe Links
- RFC 4086 über Zufälligkeitsempfehlungen für die Sicherheitsversicherung (ersetzt frühere RFC 1750), Ietf.
- Der Intel -Zufallszahlengenerator (PDF), Intel, 22. April 1999.
- Protegost SG100, Protegost, "Hardware -Zufallszahlengenerator" basierend auf der Quantum Physics Zufallszahlquelle aus einer Zenerdiode ".