Hardware-Zufallszahlengenerator

In der Computerwissenschaft ist ein Hardware-Zufallszahlengenerator ein Apparat, der Zufallszahlen von einem physischen Prozess erzeugt. Solche Geräte basieren häufig auf mikroskopischen Phänomenen, die ein auf niedriger Stufe, statistisch zufälliges "Geräusch"-Signal, wie Thermalgeräusch oder die fotoelektrische Wirkung oder anderen Quant-Phänomene erzeugen. Diese Prozesse, sind in der Theorie, völlig unvorhersehbar, und die Behauptungen der Theorie der Unvorhersehbarkeit sind dem experimentellen Test unterworfen. Ein Hardware-Zufallszahlengenerator besteht normalerweise aus einem Wandler, um etwas Aspekt der physischen Phänomene zu einem elektrischen Signal, einem Verstärker und anderem elektronischem Schaltsystem umzuwandeln, um den Umfang der zufälligen Schwankungen zu einem makroskopischen Niveau und einen Typ des Analogons zum Digitalkonverter zu vergrößern, um die Produktion in eine Digitalzahl, häufig eine einfache binäre Ziffer 0 oder 1 umzuwandeln. Durch die wiederholte Stichprobenerhebung des zufällig unterschiedlichen Signals wird eine Reihe von Zufallszahlen erhalten.

Der Hauptgebrauch für Hardware-Zufallszahlengeneratoren ist im Feld der Datenverschlüsselung, um zum Beispiel zufällige kryptografische Schlüssel zu encrypt Daten zu schaffen. Sie sind eine sicherere Alternative zu pseudozufälligen Zahlengeneratoren (PRNGs), in Computern allgemein verwendete Softwareprogramme, "um zufällige" Zahlen zu erzeugen. PRNGs verwenden einen deterministischen Algorithmus, um numerische Folgen zu erzeugen. Obwohl diese pseudozufälligen Folgen statistische Muster-Tests für die Zufälligkeit, durch das Wissen des Algorithmus bestehen und die Bedingungen gepflegt haben, es, genannt den "Samen" zu initialisieren, kann die Produktion vorausgesagt werden. Weil die Folge von durch einen PRNG erzeugten Zahlen voraussagbar ist, Daten encrypted mit Pseudozufallszahlen ist für cryptanalysis potenziell verwundbar. Hardware-Zufallszahlengeneratoren erzeugen Folgen von Zahlen, die nicht voraussagbar sind, und deshalb die größte Sicherheit, wenn verwendet, an encrypt Daten zur Verfügung stellen.

Zufallszahlengeneratoren können auch von "zufälligen" makroskopischen Prozessen, mit Geräten wie Münze schnipsend, Würfel, Roulette-Räder und Lotteriemaschinen gebaut werden. Die Anwesenheit der Unvorhersehbarkeit in diesen Phänomenen kann durch die Theorie von nicht stabilen dynamischen Systemen und Verwirrungstheorie gerechtfertigt werden. Wenn auch makroskopische Prozesse unter der Newtonischen Mechanik deterministisch sind, kann die Produktion eines gut bestimmten Geräts wie ein Roulette-Rad nicht in der Praxis vorausgesagt werden, weil es vom empfindlichen, den Mikrodetails der anfänglichen Bedingungen jedes Gebrauches abhängt.

Obwohl Würfel größtenteils im Spielen, und in neueren Zeiten als "randomizing" Elemente in Spielen verwendet worden sind (z.B Rolle-Spielen-Spiele), hat der viktorianische Wissenschaftler Francis Galton eine Weise beschrieben, Würfel zu verwenden, um Zufallszahlen zu wissenschaftlichen Zwecken 1890 ausführlich zu erzeugen.

Hardware-Zufallszahlengeneratoren sind häufig relativ langsam, der ist, erzeugen sie eine begrenzte Zahl von zufälligen Bit pro Sekunde. Um die Datenrate zu vergrößern, werden sie häufig verwendet, um den "Samen" für einen schnelleren kryptografischen PRNG zu erzeugen, der dann die Produktionsfolge erzeugt.

Gebrauch

Unvorhersehbare Zufallszahlen wurden zuerst im Zusammenhang des Spielens untersucht, und viele randomizing Geräte wie Würfel, Spielkarten und Roulette-Räder herschiebend, wurden zuerst für solchen Gebrauch entwickelt. Ziemlich erzeugte Zufallszahlen sind für das elektronische Spielen lebenswichtig, und Weisen, sie zu schaffen, werden manchmal von spielenden Regierungskommissionen geregelt.

Zufallszahlen werden auch verwendet, um Zwecke nichtzusetzen, sowohl wo ihr Gebrauch, wie Stichprobenerhebung für Meinungsumfragen, als auch in Situationen mathematisch wichtig ist, wo Schönheit durch randomization, wie das Auswählen von Geschworenen und militärischen Draftlotterien näher gekommen wird.

Zufallszahlen werden sowohl in der symmetrischen als auch in asymmetrischen Geheimschrift als eine Weise verwendet, Schlüssel und für die zufälligen in der Operation von einigen Algorithmen verwendeten Werte zu erzeugen. Da die Integrität der Kommunikation zwischen den zwei Parteien durch die fortlaufende Geheimhaltung dieser Schlüssel mit einem Zufallszahlengenerator bedingt ist, der entsprechende Zufälligkeit nicht hat, kann erwartet werden, die Sicherheit von Nachrichten in Verlegenheit zu bringen.

Gebrauch in der Parapsychologie

Hardware RNG, der auf der Quant-Zufälligkeit gestützt ist (hat auch zufällige Ereignis-Generatoren genannt), findet Gebrauch in der Parapsychologie als ein Mittel, die Möglichkeit von Bewusstsein-veranlassten im resultierenden Vertrieb, auch bekannt als Mikropsychokinese zu untersuchen. Meta-Analysen von verfügbaren Daten finden allgemein sehr kleine Abweichungen vom erwarteten Wahrscheinlichkeitsvertrieb, der, während anscheinend andeutend, eine direkte Wirkung des Bewusstseins, auch durch die Veröffentlichungsneigung erklärlich sein kann.

Frühe Arbeit

Eine frühe Weise, Zufallszahlen zu erzeugen, war durch eine Schwankung derselben Maschinen, die verwendet sind, um keno oder ausgesuchte Losnummern zu spielen. Grundsätzlich, diese numerierten Mischpingpong-Bälle mit geblasener Luft, die vielleicht mit der mechanischen Aufregung und dem Gebrauch eine Methode verbunden ist, Bälle vom sich vermischenden Raum zurückzuziehen. Diese Methode gibt angemessene Ergebnisse in einigen Sinnen, aber die dadurch erzeugten Zufallszahlen bedeuten sind teuer. Die Methode ist von Natur aus langsam, und ist in am meisten automatisierten Situationen (d. h., mit Computern) unbrauchbar.

Am 29. April 1947 hat RAND Corporation begonnen, zufällige Ziffern mit einem "elektronischen Roulette-Rad" zu erzeugen, aus einer zufälligen Frequenzpulsquelle von ungefähr 100,000 Pulsen pro Sekunde gated einmal pro Sekunde mit einem unveränderlichen Frequenzpuls bestehend, und hat in einen binären 5-Bit-Schalter gefressen. Douglas Aircraft hat die Ausrüstung gebaut, den Vorschlag von Cecil Hasting (RAND P-113) für eine Geräuschquelle (am wahrscheinlichsten das weithin bekannte Verhalten 6D4 Miniaturbenzin thyratron Tube, wenn gelegt, in ein magnetisches Feld) durchführend. Zwanzig der 32 möglichen Gegenwerte wurden auf die 10 dezimalen Ziffern kartografisch dargestellt, und die anderen 12 Gegenwerte wurden verworfen.

Die Ergebnisse eines langen Laufs von der RAND Maschine, sorgfältig gefiltert und geprüft, wurden in einen Tisch umgewandelt, der 1955 im Buch veröffentlicht wurde, das eine Million Zufällige Ziffern mit 100,000 Normalen Ablenken. Der RAND Tisch war ein bedeutender Durchbruch im Liefern von Zufallszahlen, weil solch ein großer und sorgfältig bereiter Tisch nie vorher verfügbar gewesen war. Es ist eine nützliche Quelle für Simulationen, das Modellieren gewesen, und sogar für die willkürlichen Konstanten in kryptografischen Algorithmen abzuleiten, um zu demonstrieren, dass die Konstanten für (in den Wörtern von B. Schneier) "schändlicher Zweck (E) nicht ausgewählt worden waren." Khufu und Khafre tun das zum Beispiel. Sieh: Nichts meine Ärmel-Zahlen.

Das RAND-Buch ist noch im Druck, und bleibt eine wichtige Quelle von Zufallszahlen.

Physische Phänomene mit mit dem Quant zufälligen Eigenschaften

Es gibt zwei grundsätzliche Quellen des praktischen Quants mechanische physische Zufälligkeit: Die Quant-Mechanik am atomaren oder subatomaren Niveau und Thermalgeräusch (von dem etwas Quant ist, das im Ursprung mechanisch ist). Quant-Mechanik sagt voraus, dass bestimmte physische Phänomene, wie der Kernzerfall von Atomen, im Wesentlichen zufällig sind und im Prinzip nicht vorausgesagt werden können (für eine Diskussion der empirischen Überprüfung der Quant-Unvorhersehbarkeit, sieh Testexperimente von Bell.) Und, weil wir bei einer begrenzten Nichtnulltemperatur leben, hat jedes System etwas zufällige Schwankung in seinem Staat; zum Beispiel springen Moleküle von Benzin, das Luft zusammensetzt, ständig von einander auf eine zufällige Weise (sieh statistische Mechanik.) Ist diese Zufälligkeit ein Quant-Phänomen ebenso (sieh phonon.)

Weil das Ergebnis von mit dem Quant mechanischen Ereignissen nicht im Prinzip vorausgesagt werden kann, sind sie die 'Goldwährung' für die Zufallszahl-Generation. Einige für die Zufallszahl-Generation verwendete Quant-Phänomene schließen ein:

  • Schuss-Geräusch, ein Quant mechanische Geräuschquelle in elektronischen Stromkreisen. Der Name 'hat geschossen Geräusch' bezieht sich auf den Ton von Schrotflinte-Kügelchen, fallen gelassen, eine gespannte Membran schlagend. Ein einfaches Beispiel ist eine Lampe, die auf einer Fotodiode scheint. Wegen des Unklarheitsgrundsatzes schaffen ankommende Fotonen Geräusch im Stromkreis. Das Sammeln des Geräusches für den Gebrauch wirft einige Probleme auf, aber das ist eine besonders einfache zufällige Geräuschquelle. Jedoch wird Schuss-Geräuschenergie überall in der Bandbreite von Interesse nicht immer gut verteilt. Gasdiode und thyratron Elektrontuben in einem kreuzweise magnetischen Feld können wesentliche Geräuschenergie (10 Volt oder mehr in hohe Scheinwiderstand-Lasten) erzeugen, aber einen sehr kulminierten Energievertrieb haben und verlangen, dass sorgfältige Entstörung Flachheit über ein breites Spektrum erreicht
  • Eine Kernzerfall-Strahlenquelle (als, zum Beispiel, von einigen Arten von kommerziellen Rauchmeldern), entdeckt durch einen Geigerzähler hat einem PC angehaftet.
  • Fotonen, die durch einen halbdurchsichtigen Spiegel, als im kommerziellen Produkt, Quantis von id Quantique reisen. Die gegenseitig exklusiven Ereignisse (Nachdenken — Übertragung) werden entdeckt und zu '0' oder '1' Bit-Werte beziehungsweise vereinigt.
  • Die Erweiterung des Signals auf der Basis eines rückvoreingenommenen Transistors erzeugt. Der Emitter wird mit Elektronen gesättigt, und gelegentlich werden sie Tunnel durch die Band-Lücke und den Ausgang über die Basis. Dieses Signal wird dann durch noch einige Transistoren und das in einen Abzug von Schmitt gefütterte Ergebnis verstärkt.

Physische Phänomene ohne mit dem Quant zufällige Eigenschaften

Thermalphänomene sind leichter zu entdecken. Sie sind (etwas) verwundbar, um anzugreifen, indem sie die Temperatur des Systems senken, obwohl die meisten Systeme aufhören werden, bei Temperaturen niedrig genug zu funktionieren, um Geräusch durch einen Faktor zwei (z.B, ~150 K) zu reduzieren. Einige der verwendeten Thermalphänomene schließen ein:

  • Thermalgeräusch von einem Widerstand, verstärkt, um eine zufällige Stromspannungsquelle zur Verfügung zu stellen.
  • Lawine-Geräusch, das von einer Lawine-Diode oder Durchbruchsgeräusch von Zener von einer rückvoreingenommenen Diode von Zener erzeugt ist.
  • Atmosphärisches Geräusch, das durch einen Radioempfänger entdeckt ist, hat einem PC angehaftet (obwohl viel davon, wie Blitzgeräusch, nicht richtig thermisches Geräusch, aber am wahrscheinlichsten ein chaotisches Phänomen ist).

Ein anderes variables physisches Phänomen, das leicht ist zu messen, ist Uhr-Antrieb.

Ohne Quant-Effekten oder Thermalgeräusch, andere Phänomene, die dazu neigen, zufällig zu sein, obwohl auf Weisen, die nicht leicht durch Gesetze der Physik charakterisiert sind, kann verwendet werden. Wenn solche mehreren Quellen sorgfältig verbunden werden (als in, zum Beispiel, der Schafgarbe-Algorithmus oder Fortuna CSPRNGs), kann genug Wärmegewicht für die Entwicklung von kryptografischen Schlüsseln und nonces, obwohl allgemein an eingeschränkten Raten gesammelt werden. Der Vorteil besteht darin, dass diese Annäherung, im Prinzip, keine spezielle Hardware braucht. Der Nachteil ist, dass ein genug kenntnisreicher Angreifer die Software oder seine Eingänge erschlichen modifizieren kann, so die Zufälligkeit der Produktion vielleicht wesentlich reduzierend. Die primäre Quelle der in solchen Annäherungen normalerweise verwendeten Zufälligkeit ist das genaue Timing der Unterbrechungen, die durch mechanische Geräte des Eingangs/Produktion, wie Tastaturen und Laufwerke, verschiedene Systeminformationsschalter usw. verursacht sind.

Diese letzte Annäherung muss sorgfältig durchgeführt werden und kann dem Angriff unterworfen sein, wenn es nicht ist. Zum Beispiel konnte die Vorwärtssicherheit des Generators in Linux 2.6.10 Kern mit 2- oder 2mal Kompliziertheit gebrochen werden. Der Zufallszahlengenerator, der zu kryptografischen Zwecken in einer frühen Version des Browsers von Netscape verwendet ist, war sicher verwundbar (und wurde schnell geändert).

Eine Annäherung im Verwenden der physischen Zufälligkeit soll eine Geräuschquelle in eine zufällige Bit-Folge in einem getrennten Gerät umwandeln, das dann mit dem Computer durch einen Eingabe/Ausgabe-Hafen verbunden wird. Das erworbene Geräuschsignal wird verstärkt, gefiltert, und dann eine Hochleistungsstromspannung comparator durchbohrt, um ein Logiksignal zu erzeugen, dass Stellvertreter aufs Geratewohl Zwischenräume festsetzen. Mindestens teilweise hängt die erzeugte Zufälligkeit von den spezifischen Details des 'getrennten Geräts' ab. Sorge muss auch immer genommen werden, wenn man auf niedriger Stufe Geräusch verstärkt, um unechte Signale, wie Starkstromleitungssummen und unerwünschte Sendungsübertragungen abzuhalten und zu vermeiden, Neigung während des Erwerbs und der Erweiterung hinzuzufügen. In einigen einfachen Designs wird der schwankende Logikwert zu einem Typ-Signal RS-232 umgewandelt und einem Serienhafen eines Computers präsentiert. Software sieht dann diese Reihe von Logikwerten als Ausbrüche "von" Liniengeräuschcharakteren auf einem Eingabe/Ausgabe-Hafen. Hoch entwickeltere Systeme können die Bit-Werte vor dem Übergang von ihnen in einen Computer formatieren.

Eine andere Annäherung soll ein analoges Geräuschsignal zu einem Analogon zum Digitalkonverter wie der in die meisten Personalcomputer eingebaute Audioeingang-Hafen füttern. Das digitalisierte Signal kann dann weiter in der Software bearbeitet werden, um Neigung zu entfernen. Jedoch ist digitization selbst häufig eine Quelle der Neigung, manchmal fein, so verlangt diese Annäherung beträchtliche Verwarnung und Sorge.

Einige haben vorgeschlagen, Digitalkameras wie Netzkameras zu verwenden, chaotische makroskopische Phänomene zu fotografieren. Eine Gruppe an der Silikongrafik hat Lava-Lampen dargestellt, um Zufallszahlen zu erzeugen. Ein Problem bestimmte, ob die chaotischen erzeugten Gestalten wirklich zufällig waren - hat die Mannschaft entschieden, dass sie in richtig Betriebslava-Lampen sind. Andere chaotische Szenen, konnten wie die Bewegung von Luftschlangen in einem Anhänger-Luftstrom oder wahrscheinlich verwendet werden, Luftblasen in einem Aquarium (angeln Sie fakultativ). Das digitalisierte Image wird allgemein zusätzliches Geräusch, vielleicht nicht sehr zufällig enthalten, sich aus dem Video zum Digitalumwandlungsprozess ergebend.

Ein höheres Qualitätsgerät könnte zwei Quellen verwenden und Signale beseitigen, die sowohl für - abhängig von den Quellen als auch für ihren physischen Positionen üblich sind, reduziert das oder beseitigt Einmischung von der Außenseite elektrischer und magnetischer Felder. Das wird häufig empfohlen, um Geräte zu setzen, Betrug zu reduzieren, indem es Angreifer verlangt wird, Neigung in mehrerem "zufälligem Bit" Ströme auszunutzen.

Uhr-Antrieb

Es gibt mehrere Weisen, Uhr-Antrieb als eine Quelle der Zufälligkeit zu messen und zu verwenden.

Intel 82802 Firmware Hub (FWH) Span hat eine Hardware RNG das Verwenden zwei freier laufender Oszillatoren, eines schnellen und eines langsamen eingeschlossen. Eine Thermalgeräuschquelle (non-commonmode Geräusch von zwei Dioden) wird verwendet, um die Frequenz des langsamen Oszillators abzustimmen, der dann ein Maß des schnellen Oszillators auslöst. Diese Produktion ist dann debiased das Verwenden eines Typs von von Neumann decorrelation Schritt (sieh unten). Die Produktionsrate dieses Geräts ist etwas weniger als 100,000 bit/s. Dieser Span war ein fakultativer Bestandteil der 840 chipset Familie, die einen früheren Bus von Intel unterstützt hat. Es wird in moderne PCs nicht eingeschlossen.

Alle ÜBER C3 Mikroprozessoren haben eine Hardware RNG auf dem Verarbeiter-Span seit 2003 eingeschlossen. Anstatt Thermalgeräusch zu verwenden, werden rohe Bit durch das Verwenden vier freischwingender Oszillatoren erzeugt, die entworfen werden, um an verschiedenen Raten zu laufen. Die Produktion zwei ist XORed, um die Neigung auf einem dritten Oszillator zu kontrollieren, dessen Produktion die Produktion des vierten Oszillators abstoppt, um das rohe Bit zu erzeugen. Geringe Schwankungen in der Temperatur, den Silikoneigenschaften und der lokalen elektrischen Bedingungsursache, die Oszillator-Geschwindigkeitsschwankungen fortsetzt, und erzeugen so das Wärmegewicht der rohen Bit. Um weiter Zufälligkeit zu sichern, gibt es wirklich zwei solche RNGs auf jedem Span, jeder, der in verschiedenen Umgebungen eingestellt ist und auf dem Silikon rotieren gelassen ist. Die Endproduktion ist eine Mischung dieser zwei Generatoren. Die rohe Produktionsrate ist Zehnen zu Hunderten von Megabits pro Sekunde, und die weiß gemachte Rate ist einige Megabits pro Sekunde. Anwendungssoftware kann auf den erzeugten zufälligen Bit-Strom mit neuen nichtprivilegierten Maschinensprachinstruktionen zugreifen.

Eine Softwaredurchführung einer zusammenhängenden Idee auf der gewöhnlichen Hardware wird in CryptoLib, eine kryptografische alltägliche Bibliothek eingeschlossen (JB Spitzenartig, DP Mitchell, WM Schell, CryptoLib: Geheimschrift in der Software, Proc 4. USENIX Sicherheit Symp, pg 1-17, 1993). Der Algorithmus wird truerand genannt. Die meisten modernen Computer haben zwei Kristalloszillatoren, ein für die Realzeituhr und ein für die primäre Zentraleinheitsuhr; truerand nutzt diese Tatsache aus. Es verwendet einen Betriebssystemdienst, der einen Wecker einstellt, von der Realzeituhr herunterlaufend. Ein Unterprogramm stellt diesen Wecker ein, um in einer Uhr-Zecke (gewöhnlich 1/60. einer Sekunde) abzugehen. Ein anderer geht dann in eine Weile Schleife ein, die auf die Warnung wartet, um auszulösen. Da die Warnung in genau einer Zecke nicht immer auslösen wird, werden sich die am wenigsten bedeutenden Bit einer Zählung von Schleife-Wiederholungen, zwischen Einstellen des Weckers und seinem Abzug, zufällig vielleicht genug für etwas Gebrauch ändern. Truerand verlangt zusätzliche Hardware nicht, aber in einem stark mehrbeanspruchenden System muss große Sorge genommen werden, um non-randomizing Einmischung von anderen Prozessen zu vermeiden (z.B, in der Suspendierung des Zählen-Schleife-Prozesses, weil der Betriebssystemplaner anfängt und Halt Prozesse sortiert hat).

Sich mit Neigung befassend

Der Bit-Strom von solchen Systemen ist anfällig, um beeinflusst zu werden, entweder mit 1s oder mit das 0s-Vorherrschen. Es gibt zwei Annäherungen daran, sich mit Neigung und anderen Kunsterzeugnissen zu befassen. Das erste soll den RNG entwerfen, um der Operation des Generators innewohnende Neigung zu minimieren. Eine Methode, das zu korrigieren, füttert zurück den erzeugten Bit-Strom, der durch einen Filter des niedrigen Passes gefiltert ist, um die Neigung des Generators anzupassen. Durch den Hauptgrenzwertsatz wird die Feed-Back-Schleife dazu neigen, 'fast die ganze Zeit' ausgeglichen zu sein. Ultrahohe Geschwindigkeitszufallszahlengeneratoren verwenden häufig diese Methode. Sogar dann werden die erzeugten Zahlen gewöhnlich etwas beeinflusst.

Beschränkung: Diese Neigung wird nur im Falle des gleichförmigen Typ-Zufallszahlengenerators beobachtet. Es gibt andere Typen der Zufallszahl-Generationsmethode, und der allgemeinste Weg ist Exponentialvertrieb. Dieser Vertrieb wurde in der Diskussion von Würfeln rollings dichtgemacht. Einmal die Zahl von Würfeln, die zwischen derselben Würfel-Zahl rollen, kann gemessen werden, es ist der Exponentialvertrieb: P (x) = (1/6) * (5/6) ^x

In solchem Fall ist die erzeugte Zufallszahl vom Neigungsproblem frei.

Das Softwareweißen

Eine zweite Annäherung daran, mit Neigung fertig zu werden, soll es nach der Generation (in der Software oder Hardware) reduzieren. Selbst wenn die obengenannten Hardware-Neigungsverminderungsschritte gemacht worden sind, wie man noch annehmen sollte, enthält der Bit-Strom Neigung und Korrelation. Es gibt mehrere Techniken, um Neigung und Korrelation, häufig genannt "weiß werdende" Algorithmen analog mit dem zusammenhängenden Problem zu reduzieren, weißes Geräusch von einem aufeinander bezogenen Signal zu erzeugen.

Es gibt einen anderen Weg, den Test der dynamischen Statik, der ein Statik-Zufälligkeitscheck-In jedes Zufallszahl-Blocks dynamisch macht. Das kann verwendbar in Kürze, 1 Gigabyte pro Sekunde oder mehr getan werden.

In dieser Methode, wenn ein Block als ein zweifelhafter bestimmt werden soll, wird der Block ignoriert und annulliert.

Diese Methode wird im Entwurf von ANSI (X9F1) gebeten.

John von Neumann hat einen einfachen Algorithmus erfunden, um einfache Neigung zu befestigen, und Korrelation zu reduzieren. Es denkt Bit zwei auf einmal, eine von drei Handlungen nehmend: Wenn zwei aufeinander folgende Bit gleich sind, werden sie als ein zufälliges Bit nicht verwendet; eine Folge 1,0 wird 1; und eine Folge 0,1 wird eine Null. Das beseitigt einfache Neigung und ist leicht, als ein Computerprogramm oder in der Digitallogik durchzuführen. Diese Technik arbeitet, egal wie die Bit erzeugt worden sind. Es kann Zufälligkeit in seiner Produktion jedoch nicht sichern. Was es tun kann (mit bedeutenden Anzahlen von verworfenen Bit) ist gestalten einen voreingenommenen zufälligen Bit-Strom in einen unvoreingenommenen um.

Eine andere Technik, für einen fast zufälligen Bit-Strom zu verbessern, ist zum exklusiven - oder der Bit-Strom mit der Produktion eines pseudozufälligen kryptografisch sicheren Qualitätszahlengenerators wie Blum Blum Shub oder eine starke Strom-Ziffer. Das kann decorrelation und Ziffer-Neigung an niedrigen Kosten verbessern; es kann durch die Hardware wie ein FPGA getan werden, der schneller ist als das Tun davon durch die Software.

Eine zusammenhängende Methode, die Neigung in einem fast zufälligen Bit-Strom reduziert, soll zwei oder mehr unkorrelierte nahe zufällige Bit-Ströme, und exklusiv oder sie zusammen nehmen. Lassen Sie die Wahrscheinlichkeit von wenig Strom, der 0 erzeugt 1/2 + e, wo-1/2  e  1/2 sein. Dann ist e die Neigung des bitstream. Wenn zwei unkorrelierte Bit-Ströme mit der Neigung e exclusive-ed zusammen sind, dann wird die Neigung des Ergebnisses 2e ² sein. Das kann mit mehr Bit-Strömen wiederholt werden (sieh auch das sich Anhäufende Lemma).

Einige Designs wenden kryptografische Kuddelmuddel-Funktionen wie MD5, SHA-1, oder RIPEMD-160 oder sogar eine CRC-Funktion zu allen oder einem Teil des Bit-Stroms an, und verwenden dann die Produktion als der zufällige Bit-Strom. Das ist teilweise attraktiv, weil es im Vergleich zu einigen anderen Methoden relativ schnell ist, aber völlig von Qualitäten in der Kuddelmuddel-Produktion abhängt, für die es wenig theoretische Basis geben kann.

Viele physische Phänomene können verwendet werden, um Bit zu erzeugen, die hoch beeinflusst werden, aber jedes Bit ist von anderen unabhängig.

Ein Geigerzähler (mit einer Beispielzeit, die länger ist als die Tube-Wiederherstellungszeit) oder ein halbdurchsichtiger Spiegelfoton-Entdecker beide, erzeugt Bit-Ströme, die größtenteils "0" (still oder Übertragung) mit dem gelegentlichen "1" (Klick oder Nachdenken) sind.

Wenn jedes Bit von anderen unabhängig ist, erzeugt die Strategie von Von Neumann ein zufälliges, unvoreingenommenes Produktionsbit für jeden der seltenen "1" Bit in solch einem hoch voreingenommenen Bit-Strom.

Das Weißen von Techniken wie Advanced Multi-Level Strategy (AMLS) kann mehr Produktionsbit - Produktionsbit herausziehen, die so zufällig und - von solch einem hoch voreingenommenen Bit-Strom unvoreingenommen sind.

PRNG mit dem regelmäßig erfrischten zufälligen Schlüssel

Andere Designs verwenden, was, wie man glaubt, wahre zufällige Bit als der Schlüssel für einen hohen Qualitätsblock-Ziffer-Algorithmus ist, die encrypted Produktion als der zufällige Bit-Strom nehmend. Sorge muss in diesen Fällen genommen werden, um eine passende Block-Weise jedoch auszuwählen. In einigen Durchführungen wird der PRNG für eine begrenzte Zahl von Ziffern geführt, während das Hardware-Erzeugen-Gerät einen neuen Samen erzeugt.

Das Verwenden von beobachteten Ereignissen

Softwareingenieure ohne wahre Zufallszahlengeneratoren versuchen häufig, sie zu entwickeln, indem sie physische für die Software verfügbare Ereignisse messen. Ein Beispiel misst die Zeit zwischen Benutzeranschlägen, und nimmt dann das am wenigsten bedeutende Bit (oder zwei oder drei) der Zählung als eine zufällige Ziffer. Eine ähnliche Annäherung misst Aufgabe-Terminplanung, Netzerfolge, Plattenzugriffszeiten und andere innere Ereignisse. Ein Design von Microsoft schließt eine sehr lange Liste solcher inneren Werte ein (sieh den Artikel CSPRNG).

Die Methode ist unsicher, wenn sie computergesteuerte Ereignisse verwendet, weil ein kluger, böswilliger Angreifer im Stande sein könnte, einen kryptografischen Schlüssel vorauszusagen, indem er die Außenereignisse kontrolliert hat. Es ist auch unsicher, weil das angenommene benutzererzeugte Ereignis (z.B, Anschläge) spoofed durch einen genug genialen Angreifer sein kann, Kontrolle der "zufälligen Werte erlaubend, die" durch die Geheimschrift verwendet sind.

Jedoch, mit der genügend Sorge, kann ein System entworfen werden, der kryptografisch sichere Zufallszahlen von den Quellen der in einem modernen Computer verfügbaren Zufälligkeit erzeugt. Das grundlegende Design soll eine "Wärmegewicht-Lache" von zufälligen Bit aufrechterhalten, die, wie man annimmt, einem Angreifer unbekannt sind. Neue Zufälligkeit wird hinzugefügt, wann auch immer verfügbar (zum Beispiel, wenn der Benutzer einen Schlüssel schlägt) und eine Schätzung der Zahl von Bit in der Lache, die einem Angreifer nicht bekannt sein kann, behalten wird. Einige der Strategien im Gebrauch schließen ein:

  • Wenn zufällige Bit gebeten werden, geben Sie das zurück viele Bit sind auf die Wärmegewicht-Lache zurückzuführen gewesen (nach einer kryptografischen Kuddelmuddel-Funktion, sagen Sie), und Verminderung die Schätzung der Zahl von zufälligen Bit, die in der Lache bleiben. Wenn nicht genug unbekannte Bit sind verfügbar, warten bis genug sind verfügbar. Das ist das Design auf höchster Ebene des "/dev/random" Geräts in Linux, der von Theodore Ts'o geschrieben ist und in vielen anderen Unix ähnlichen Betriebssystemen verwendet ist. Es stellt Qualitätszufallszahlen zur Verfügung, so lange die Schätzungen der Eingangszufälligkeit genug vorsichtig sind. Das Gerät von Linux "/dev/urandom" ist eine einfache Modifizierung, die Schätzungen der Eingangszufälligkeit ignoriert, und deshalb eher mit geringerer Wahrscheinlichkeit hohes Wärmegewicht infolgedessen haben wird.
  • Erhalten Sie eine Strom-Ziffer mit einem Schlüssel und Initialisierungsvektoren (IV) erhalten bei einer Wärmegewicht-Lache aufrecht. Als genug Bit des Wärmegewichtes gesammelt worden sind, sowohl Schlüssel als auch IV mit neuen zufälligen Werten ersetzen und das geschätzte Wärmegewicht vermindern, das in der Lache bleibt. Das ist die von der Schafgarbe-Bibliothek genommene Annäherung. Es stellt Widerstand gegen einige Angriffe zur Verfügung und erhält hard-obtain Wärmegewicht.

Probleme

Es ist zur misconstruct Hardware oder den Softwaregeräten sehr leicht, die versuchen, Zufallszahlen zu erzeugen. Außerdem der grösste Teil der 'Brechung' still, häufig immer weniger Zufallszahlen erzeugend, wie sie sich abbauen. Ein physisches Beispiel könnte die schnell abnehmende Radioaktivität der Rauchmelder erwähnt früher sein. Misserfolg-Weisen in solchen Geräten sind reichlich und werden kompliziert, verlangsamen sich, und hart zu entdecken.

Weil viele Wärmegewicht-Quellen häufig ziemlich zerbrechlich sind, und still scheitern, sollten statistische Tests auf ihrer Produktion unaufhörlich durchgeführt werden. Viele, aber nicht alle, solche Geräte schließen einige solche Tests in die Software ein, die das Gerät liest.

Ebenso mit anderen Bestandteilen eines cryptosystem sollte ein Softwarezufallszahlengenerator entworfen werden, um bestimmten Angriffen zu widerstehen. Das Verteidigen gegen diese Angriffe ist schwierig. Sieh: Zufallszahlengenerator-Angriff.

Das Schätzen des Wärmegewichtes

Es gibt mathematische Techniken, für das Wärmegewicht einer Folge von Symbolen zu schätzen. Niemand ist so zuverlässig, dass ihre Schätzungen völlig darauf gebaut werden können; es gibt immer Annahmen, die sehr schwierig sein können zu bestätigen. Diese sind nützlich, um zu bestimmen, ob es genug Wärmegewicht in einer Samen-Lache zum Beispiel gibt, aber sie können im Allgemeinen zwischen einer wahren zufälligen Quelle und einem pseudozufälligen Generator nicht unterscheiden.

Leistungstest

Hardware-Zufallszahlengeneratoren sollten ständig für die richtige Operation kontrolliert werden. RFC 4086 und FIPS Bar 140-2 schließen Tests ein, die dafür verwendet werden können. Siehe auch die Dokumentation für Neuseeland kryptografische Softwarebibliothek cryptlib.

Da sich viele praktische Designs auf eine Hardware-Quelle als ein Eingang verlassen, wird es nützlich sein, mindestens zu überprüfen, dass die Quelle noch funktioniert. Statistische Tests können häufig Misserfolg einer Geräuschquelle wie ein Radiostationsübertragen auf einem Kanal entdecken, der vorgehabt ist, zum Beispiel leer zu sein. Geräuschgenerator-Produktion sollte probiert werden, um zu prüfen, bevor sie durch ein "Schuhweiß" passiert wird. Einige Schuhweiß-Designs können statistische Tests ohne zufälligen Eingang bestehen. Während das Ermitteln einer großen Abweichung von der Vollkommenheit ein Zeichen sein würde, dass eine wahre zufällige Geräuschquelle erniedrigt geworden ist, kleine Abweichungen normal sind und eine Anzeige der richtigen Operation sein können. Die Korrelation der Neigung in den Eingängen zu einem Generator-Design mit anderen Rahmen (z.B, innere Temperatur, Busstromspannung) könnte als eine weitere Kontrolle zusätzlich nützlich sein. Leider, mit dem zurzeit verfügbaren (und vorausgesehen) Tests, ist das Bestehen solcher Tests nicht genug, um sicher zu sein, dass die Produktionsfolgen zufällig sind. Ein sorgfältig gewähltes Design, Überprüfung, die das verfertigte Gerät dieses Design und dauernde physische Sicherheit durchführt, um gegen das Herumbasteln zu versichern, kann alles zusätzlich zur Prüfung für den hohen Wertgebrauch erforderlich sein.

Siehe auch

  • Vergleich von Hardware-Zufallszahlengeneratoren
  • Pseudozufallszahlengenerator
  • Zufallszahlengenerator
  • Liste von Zufallszahlengeneratoren
  • /dev/random
  • Zufälligkeitsex-Traktor
  • Glockentest experimentiert
  • ERNIE
  • Lotteriemaschine

Referenzen

. . . . . .

Links

. . . . .

Code

. . .
  • ein Modul von Perl, das behauptet, wirkliche Zufallszahlen von Unterbrechungstiming-Diskrepanzen zu erzeugen.
.

Sehr niedrige Frequenz / Provinzen Koreas
Impressum & Datenschutz