Slumptalsgenerator för hårdvara

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 4 december 2021; verifiering kräver 1 redigering .

En hårdvarugenerator för slumptal ( äkta slumptalsgenerator ) är en enhet som genererar en sekvens av slumptal baserat på uppmätta, kaotiskt föränderliga parametrar för en pågående fysisk process. Driften av sådana enheter är ofta baserad på användningen av pålitliga källor för entropi , såsom termiskt brus , skottbrus , fotoelektrisk effekt , kvantfenomen , etc. Dessa processer är absolut oförutsägbara i teorin, men i praktiken är de slumpmässiga siffrorna som erhålls från dem kontrolleras med speciella statistiska tester .

Slumptalsgeneratorer för hårdvara används främst för statistiska tester och i kryptografi , där de används för att generera kryptografiska nycklar för krypterad dataöverföring. Sådana enheter används också i stor utsträckning på onlinekasinon för att simulera till exempel roulette . Men på grund av komplexiteten i implementeringen och den relativa långsamheten beror användningen av sådana generatorer på behoven hos ett visst ämnesområde och på själva generatorns design.

Kort utvecklingshistorik

De enkla tärningarna , som användes flitigt i hasardspel förr och i brädspel idag, är den enklaste sanna slumptalsgeneratorn. År 1890 beskrev den engelske forskaren Francis Galton en metod för att använda tärningar för att generera slumpmässiga tal för vetenskapliga ändamål [1] .

En vidareutveckling av hårdvarugeneratorer för slumptal kan betraktas som speciella enheter - lotterimaskiner , som används för att generera nummer i lotto och keno . De består huvudsakligen av en trumma som rör om bollarna med siffror, och en anordning som tar bort dem från den en efter en. Denna genereringsmetod är dock mycket långsam och olämplig för automatisk generering av stora datamatriser [2] .

För tillämpade uppgifter behövdes stora mängder data. År 1939 byggde M. J. Kendall och B. Babington-Smith den första slumptalsgenererande maskinen för att konstruera en tabell 100 000 slumptal. Och efter 16 år byggde RAND- företaget , med hjälp av speciella enheter, en tabell med en miljon slumptal. Trots återupplivandet av den tabellformade metoden 1996 av J. Marsaglia , som byggde 650 MB slumpmässiga tal, är tillämpningsområdet för sådana tabeller mycket snävt [3] .

Mycket mer utbredda är slumptalsgeneratorer som genererar dem i realtid. 1951 inkluderades ett program i Ferranti Mark 1 -datorn som genererade slumpmässiga tal med hjälp av motståndsbrus . Idén att skapa detta program tillhörde A. Turing [4] . Och 1957 uppfanns maskinen ERNIE (Electronic Random Number Indicator Equipment) , vars fjärde version introducerades 2004. Denna enhet designades ursprungligen för att generera vinnande obligationsnummer i det brittiska lotteriet [5] .

Enhet

Slumptalsgeneratorer för maskinvara kan baseras på makroskopiska slumpmässiga processer med hjälp av objekt som ett mynt, en tärning eller ett roulettehjul. Förekomsten av oförutsägbarhet i data förklaras av teorin om instabila dynamiska system och kaosteori . Även makroskopiska system helt definierade av Newtons ekvationer i praktiken har en oförutsägbar effekt, eftersom den beror på de mikroskopiska detaljerna i de initiala förhållandena [6] .

Generatorer som använder fysiska slumpmässiga processer

Enheter baserade på makroskopiska slumpmässiga processer kan inte ge hastigheten för att erhålla slumptal som är tillräcklig för tillämpade problem. Därför är moderna AGNG:er baserade på en bruskälla från vilken slumpmässiga bitar extraheras . Bullerkällor delas in i två typer: har en kvantnatur och använder inte kvantfenomen [7] [8] .

En konsekvens av kvantfysikens lagar är det faktum att vissa naturfenomen (till exempel det radioaktiva sönderfallet av atomer) är absolut slumpmässiga och inte kan förutsägas i princip (ett av de första experimenten som bevisar den sannolikhetsmässiga naturen hos vissa fenomen kan övervägas Davisson-Germer-experimentet ). Det följer också av statistisk mekanik att vid en temperatur som inte är lika med absoluta nollpunkten har varje system slumpmässiga fluktuationer i sina parametrar.

Eftersom vissa kvantmekaniska processer är helt slumpmässiga är de "guldstandarden" för AGNG. Fenomen som används i generatorer inkluderar:

Icke-kvantfenomen är lättare att upptäcka, men AGNGs baserade på dem kommer att vara starkt beroende av temperaturen (till exempel är mängden termiskt brus proportionell mot omgivningstemperaturen). Bland processerna som används i AGNG kan man notera:

Det finns flera sätt att erhålla en sekvens av slumpmässiga bitar från en fysisk slumpmässig process . En av dem är att den mottagna signal-till-bruset förstärks, filtreras och matas till ingången på en höghastighetsspänningskomparator för att erhålla en logisk signal . Varaktigheterna för komparatortillstånden kommer att vara slumpmässiga, vilket gör att du kan skapa en sekvens av slumpmässiga tal genom att mäta varaktigheterna för dessa tillstånd. I sådana system måste det tas med i beräkningen att den, förutom den använda brusgeneratorn, kan introduceras av andra komponenter i systemet (till exempel fältlinjen ), vilket i hög grad kan påverka de statistiska parametrarna för den genererade biten sekvens [11] [8] .

Ett annat tillvägagångssätt är att en slumpmässig signal matas till ingången på en analog-till-digital-omvandlare (både specialenheter och datorljudingång kan användas), som ett resultat kommer den digitaliserade signalen att vara en sekvens av slumptal som kan användas bearbetas programmatiskt . Det finns också metoder för att kombinera en snabb pseudo-slumptalsgenerator med en långsam hårdvarugenerator [11] [8] .

Generatorer som använder andra fenomen

Slumptalsgeneratorer som använder fysiska slumpmässiga processer producerar bra slumptal, men deras produktion är relativt svår och dyr (särskilt för AGNGs baserade på radioaktivt sönderfall ), men det finns mer tillgängliga källor till slumpmässighet [12] :

De mest ovanliga generatorerna inkluderar verk som använder digitala videokameror som registrerar makroskopiska fenomen . Teamet på Silicon Graphics använde till exempel bilder av en lavalampa för att generera slumpmässiga siffror, eftersom vaxet i lampan ändrar sin form slumpmässigt. Dessutom kan bubblor i ett akvarium eller band i luftflödet från en fläkt användas som motiv för fotografering [13] .

Problem

Huvudproblemet med slumptalsgeneratorer för hårdvara är deras relativt långsamma drift jämfört med pseudo-slumpsekvensgeneratorer . Många av dem bryts också ned gradvis (till exempel på grund av att ämnets radioaktivitet minskar med tiden), så de måste testas för statistisk slumpmässighet före varje användning (många av dem testas i realtid ) [8] .

Ett annat problem som är förknippat med slumptalsgeneratorer för hårdvara är förskjutningen av den matematiska förväntan av utmatningsbitsekvensen (när det finns fler tal i sekvensen än andra, till exempel, finns det fler ettor än nollor i det binära systemet ). Det orsakas av särdragen hos de fysiska processer som används i brusgeneratorer. Detta problem löses med hjälp av speciella algoritmer som låter dig jämna ut antalet nollor och ettor i genomsnitt i ett tillräckligt långt urval av siffror [14] [8] .

J. Neumann var en av de första som föreslog en enkel algoritm för att korrigera de sneda förväntningarna i en sekvens. Algoritmen är att bitarna betraktas i par: om det finns två identiska värden i paret kasseras paret; om bitarna är olika skrivs bara den första biten i detta par istället för paret. Nackdelen med denna algoritm är att cirka 75 % av bitarna kasseras, och som ett resultat sjunker hastigheten för slumpmässig bitgenerering avsevärt [14] .

En annan metod är att använda kryptografiska hashfunktioner (t.ex. SHA-1 ) eftersom de uppfyller de strikta kraven på kryptografisk styrka . Men trots den relativa hastigheten för denna metod är de svåra att reproducera i hårdvara på grund av hashfunktionernas olinjäritet och på grund av det starka beroendet av en sådan generator av kvaliteten på själva hashfunktionen [14] .

För att minska förspänningen hos den matematiska förväntan används också kryptografiskt starka pseudoslumpsekvensgeneratorer , vars bitström, med användning av XOR- operationen, adderas till bitströmmen från hårdvarugeneratorn. Den största fördelen med denna metod är att den kan implementeras helt i hårdvara, till exempel på en FPGA [14] .

Professor i biofysik Shnol Simon Elievich upptäckte i studierna 1985-2002 en regelbunden förändring i den fina strukturen för statistiska fördelningar, vilket återspeglar resultaten av mätningar som erhållits vid studiet av processer av olika karaktär. Han visade att formen på motsvarande histogram vid samma lokal tid med stor sannolikhet är likartad när man mäter processer av olika karaktär på olika geografiska platser och att den förändras med en period lika med en siderisk dag (23 timmar 56 minuter), från och med som han drog slutsatsen att detta fenomens grundläggande kosmofysiska natur.

Se även

Anteckningar

  1. Galton F. "Tärningar för statistiska experiment" Nature magazine . - 1890. - S. 13-14. — 43 s.
  2. "Patent "Slumptalsgenerator""
  3. Knut D. E. Konsten att programmera. Volym 2. Härledda algoritmer. - 2011. - S. 12-14. — 832 sid. - ISBN 978-5-8459-0081-4 .
  4. 1 2 Turing A. Programmerarhandbok för Manchester Electronic Computer Mark II. - 1952. - S. 25. - 110 sid.
  5. "History of ERNIE"  (otillgänglig länk)
  6. Pankratov S. Lagar är oförutsägbara "Journal" Science and Life. - M . : Pravda, 1988. - S. 75-77. — 172 sid.
  7. 1 2 3 Bobnev, 1966 , sid. 7-14.
  8. 1 2 3 4 5 Henk, 2005 .
  9. Marandi A., Leindecker NC, Vodopyanov KL, Byer. Heloptisk kvantumslumpgenerering från i sig binär fas av parametriska oscillatorer . - 2012. - Vol. 20. - doi : 10.1364/OE.20.019322 .
  10. Velichko S. Slumptalsgenerator föredrar imperfekta klockor . — 1996.
  11. 1 2 Shcindler, 2001 , sid. 103.
  12. Callas J. Använda och skapa slumptal med kryptografisk kvalitet (engelska) (länk ej tillgänglig) (3 juni 1996). Hämtad 9 oktober 2014. Arkiverad från originalet 14 mars 2015.   
  13. "Patent "Metod för att se en pseudo-slumptalsgenerator med en kryptografisk hash av en digitalisering av ett kaotiskt system""
  14. 1 2 3 4 Claudio A. Ardagna, Jianying Zhou, 2011 .

Litteratur