Hardware generátor náhodného čísla
Nejvíce takzvaný “náhodná čísla” vytvořený počítači být obvykle pseudonáhodná čísla vytvořený aritmetikou algoritmus.Tam je několik různých neformálních definic náhodnosti, obvykle umístěný na jeden nedostatek rozpoznatelných vzorů nebo jejich unpredictability. Ačkoli výstup od ' praktická zkouška ' generátory náhodných čísel je široce použitý, oni jsou skoro vždy více přesně nazvaní ' pseudonáhodné číselné generátory . Doposud, _ všichni _ počítač založil PRNGs, ie ty který vykonat nějaký algoritmus produkovat jejich výstup, být ne vlastně náhodný vůbec. Oni mohou se objevit postrádat rozpoznatelný vzor, oni mohou udělat rozmanité statistické testy hledat non-náhodnost (vidí Knuth, umění programování, vol 2, pro podrobnosti mnoha takových testů), oni mohou mít velmi velké opakované cykly v jejich výstupu a oni mohou vyvolat příjemný teplý a chmýřovitý cit v jejich uživatelích, ale oni vždy mají strukturu -- vzor daný algoritmem, který tvoří je, a jeho spouštěním ' stát '. Ani jsou oni nepředvídatelní. Daný originální stav generátoru a jeho algoritmu, oni jsou totálně předvídatelní, a daná dokonce i částečná znalost toho státu, oni jsou nejistí, jestliže ne úplně předvídatelný.
Jak John von Neumanna dát to, “někdo kdo zvažuje aritmetické metody výrobních náhodných číslic je, samozřejmě, ve stavu hříchu”.
Tento článek je o pokusech vytvářet a použití “náhodná čísla” vytvářela od zřejmě náhodných fyzikálních jevů. To je fundamentally složitý problém, a v praxi otázky o náhodnosti obecně degenerují na ' mohu používat toto ne opravdu náhodná série v mé aplikaci bez získávání příliš zle hořela? '. Toto je, opravdově, dokonce tvrdější problém.
Použití fyzicky tvořil “náhodná” čísla
' Nepředvídatelný ' náhodná čísla byla nejprve vyšetřována v souvislosti s hazardem, a mnoho zařízení randomizing takový jako kostka, míchající hrací kartya ruleta kola, byl nejprve vyvinut pro použití v hazardu.
' Náhodný ' čísla jsou také užitá na vážné účely takový jako loterie návrhu, kde “čestnost” je zaokrouhlená randomization, a ve výzkumu kde nějaké modelování a statistické metody vyžadují je. Oni mají jiná použití ve fyzice (takový jako šum resonance studia), inženýrství, a operační výzkum.
Více nedávně rozvinutá použití nepředvídatelných náhodných čísel zahrnují jejich použití v kryptografii.
Velké průmyslové použití skutečných náhodných čísel má dělat nepředvídatelná data, včetně klíčů, pro kryptografii. Pouze náhodná čísla nejsou dostatečná protože volba klíče (nebo jiné cryptographically vyžadovaly náhodnou hodnotu) muset být maximally obtížné pro útočníka předpovídat. Společně, některý publikoval náhodné pořadí je chabá volba jak jsou takové sekvence jako číslice v iracionálním čísle takové jak a phi; nebo dokonce v transcendentních číslech takový jak a pi;, nebo e. Protože většina klíčů je nemnoho kousků tisíce dlouho u nejvíce, pomalu generátory náhodného čísla slouží dobře -- jestliže oni jsou vlastně náhodní. Toto použití náhodných generátorů je důležité; mnoho informovaných pozorovatelů věří každý počítač by měl mít způsob, jak tvořit opravdová náhodná čísla.Opravdová náhodná čísla jsou absolutně vyžadována pro jediný provably nerozbitný šifrovací algoritmus -- bývalé vycpávky. Dále, ta náhodná pořadí nemohou být reused a muset nikdy stát se dostupný nějakému útočníkovi, který znamená nepřetržitě operable generátor. Vidět Venona pro příklad čeho se stane, když tyto požadavky jsou porušeny když používá bývalou vycpávku.
Levný sekvence náhodného čísla (jestliže některý může být dělán dostupný) být vhodný pro použití v trvale mazat soubory a podobné technické úlohy.
To je důležité rozumět (a tak já opakuji to) to, v kryptografii, náhodný kousek rozdělí potřebu být ne jen nepředvídatelný, ale také tajemství. Veřejné nebo odjinud pocházející zdroje náhodných hodnot nebo náhodných hodnot počítaných od veřejně pozorovatelných jevů, být téměř nikdy cryptographically přijatelný. Často použitý, ale nepřijatelný. Oni dovolí útoky, které by měly nikdy být povolené.
Časné pokusy tvořit opravdová náhodná čísla
Jeden časný způsob, jak produkovat náhodná čísla byl variací stejných strojů zvyklých na hru keno nebo vybrat loterijní čísla. V podstatě, tito se mísili počítal míče stolního tenisu se odfouknutým vzduchem, a používal nějakou metodu, aby stáhl míče ze rozprašovací komory. Tato metoda dává rozumné výsledky ale náhodná čísla vytvořená tímto prostředky jsou velmi drahé. Metoda je neodmyslitelně pomalu, a je nepoužitelný ve většině mechanizovaných situacích.
[brzy stoly náhodného čísla - být psán]
An důležitý 20. staletá práce byla Rand korporace milión stolu čísla. To bylo produkováno v 1950 elektronickou simulací rulety kolo se vázalo k počítači, výsledky kterého byly pak opatrně prosakovaly a testovaly předtím bytí tvořilo stůl. Rand stůl byl významný průlom v doručujících náhodných číslech protože takový velký a opatrně připravený stůl měl nikdy předtím been dostupný. To bylo užitečné pro simulace a modelování. Ale, mít been publikoval, to bylo ne užitečný pro nějaký důvěryhodný cryptographic účel.
Fyzikální jevy užité na generaci náhodného čísla
Mnoho moderního náhodného čísla generátory pokoušejí se používat nějakou formu quantum-mechanický hluk, široce zvážil to být zlatý standard pro náhodnost (ale ne přesto dokázal být tak).
- Osoby používaly zdroj záření (jak, například, od některých druhů komerčního kouře-obavy) řídit Geiger-Müllerovy počítače spojené s PC. Internetové místo HotBits prohlašuje, že doručí soukromá náhodná čísla na požádání od jen takový zdroj.
- Oni také změřili atmosférický šum s rozhlasovým přijímačem spojeným s PC, jak u random.org. Toto místo také prohlašuje, že doručí soukromá náhodná čísla na požádání.
- Optické kvantové náhodné číslo generátory byly prototyped. Skupina u Grafiky křemíku dokonce používala digitální kamery k hlídacím lávovým lampám (TM) tvořit náhodná čísla.
- Poněkud příhodnější forma hardwarového náhodného čísla použití generátoru jeden termální nebo quantum-mechanický hluk poskytovat náhodný napěťový zdroj. Protěžovaný zdroj quantum mechanický zvuk je zvuk Johnstona, obvykle vytvářel od zpáteční rychlosti-ovlivnil diodu zener. tepelný šum od odporník mohl také být zesílený a použitý. Žádné lávové lampy nebo barometry požadovaný!
V některých jednoduchých vzorech, tato logická hodnota je přeměněna k RS-232 signál úrovně a posílal přímo k počítačovému sériovému portu. Software pak vidí tuto sérii logických hodnot jako výbuchy “linkových šumových” charakterů na já/O port.
Více důmyslné systémy mohou formátovat hodnoty kousku předtím, než projde kolem nich do počítače. Protože problémů s zaujatostí (vidět dolů), obyčejný analogový k digitálním konvertorům být zřídka užitečný.
Kousek-potok od takových systémů je náchylný být ovlivněn, s 1s nebo 0s převládat. Jedna metoda opravit toto krmení couvají s vytvořeným bitovým potokem, prosakoval minimem-filtr povolení, nastavit zaujatost generátoru. centrálním limitovým teorémem, smyčka odezvy bude inklinovat být dobře-nastavený téměř celý čas. Krajní-mžikové náhodné číslo generátory použijí tuto metodu. Dokonce pak, čísla vytvářela být obvykle poněkud zaujatý.
Vyšší kvalitní zařízení by mohlo používat dvě diody a vylučovat signály, které jsou společné oběma - toto odklidí rušení z vnější strany elektrická a magnetická pole. Toto je doporučeno pro zařízení hazardu, předejít podvádění tím, že využívá zaujatost v ' náhodný kousek ' dělit.
Intel RNG (dodával v některých jejich tabule-čipové sady úrovně pro PC-počítače typu), použití nejvíce nahoře napálí a přidá jiného. Non-obyčejný-hluk režimu od dvou diod řídí napětí-kontrolovaný oscilátor, které kousky hodin od rychlého oscilátoru (nový trik), který pak projít von Neumann typ decorrelation krok.
Kompletně nespojená metoda používá dva odpojené oscilátory a události počtů v jednom od času-základ jiného. Tato metoda byla použitá na PC vytvářet čistý-software ' pravdivý-náhodný ' generátory čísla. To vyžaduje PC s dvěma hodinovými krystaly, jeden pro real-time hodiny, a jiný pro procesor. Smyčky programu, považovat čas za to jeden z kousků pultu real-time hodiny jsou 1. Nejméně významný kousek smyčky-pult může být docela ' náhodný '; se spoléhat na detaily implemetational (a na dnešním stavu / operaci hardwaru) moci dokonce i být náhodný ' dost ' pro některá použití.
Dokonce nakonec tyto míry byly zaujaté, kousek-potok by měl ještě být převzat obsahovat zaujatost a korelaci.
John von Neumanna vynalezl jednoduchý algoritmus opravit jednoduchou zaujatost, a redukovat korelaci: to zvažuje kousky dva v době. Když dva postupné kousky jsou stejné, oni nejsou použití jako náhodný kousek. Sekvence 1, 1 se stojí 1. Sekvence 0, 0 se stane nulou. Toto odklidí jednoduchou zaujatost, a jde snadno splnit jako počítačový program nebo v digitální logice. To redukuje dostupnou přenosovou rychlost faktorem čtyři, v průměru. Tato technika pracuje bez ohledu na to jak kousky byly vytvořené. To nemůže ujistit náhodnost v jeho výstupu nicméně.
Jeden z více populárních metod zlepšovat blízký náhodný kousek potok je k exkluzivní-nebo potok kousku s výstupem vysoce kvalitní cryptographically bezpečný pseudonáhodný číselný generátor takový jak Blum Blum Shub. Toto může levně zlepšit decorrelation a zaujatost číslice.
Další metoda “se zlepšit” náhodné pořadí má vykonávat kompresi dat na tom. Vysoká kvalita bezztrátový algoritmy komprese dat musí zvětšit entropii (tj. redukovat predictability) dat, jinde žádná komprimace mohla nastat. Toto znamená, hrubě, že stlačená data jsou ' více ' náhodný. Protože některá schémata komprimace a některé realizace jiných produkují předvídatelný výstup (eg, ve slovníku užitém na kódování Huffmana), používat komprimaci algoritmy na produkční náhodné kousky by měly být velmi opatrně promyšlené. Ačkoli matematicky robustní teoreticky, mnoho typů inženýrství najde tento přístup nevkusný a marnotratný.
Některé designy platí cryptographic funkce mřížky takový jako MD5, SHA-1, nebo RIPEMD-160 nebo dokonce CRC funkce ke všem nebo část kousku dělí, a pak používat ouptut jako náhodný bitový potok. Použití ostatních konstrukcí ' opravdové náhodné kousky je jako klíč pro vysokou kvalitu blokovat algoritmus kódu, brát zašifrovaný výstup jako náhodný bitový potok. Péče musí být použita v těchto případech vybrat vhodný blokový režim, nicméně.
Když vysokorychlostní zdroj nižší-quallity náhodné číslice je potřebován, někdy opravdový náhodný zdroj je používán tvořit semeno pro pseudo náhodné číslo generátor. PRNG je boj o fixované množství číslic, zatímco hardwarové zařízení tvoří nové semeno.
Odhadnutí velikosti kaluže entropie
být psán
Softwarová realizace generátorů náhodného čísla od sledovaných událostí
Inženýři softwaru bez pravdivých náhodných číselných generátorů často pokusí se vyvinout je měřícími fyzickými událostmi dostupnými softwaru. Klasika má měřit čas mezi klíčem-mrtvice, a pak vzít nejméně významný bit (nebo dva nebo tři) počtu jako náhodná číslice. Stejný přístup byl aplikovaný měřící úlohou-sepisovat, hity sítě, disk-hlava hledat časy a jiné vnitřní události.
Metoda je docela riskantní, když to pracuje s počítačem-řídil události protože chytrý, zlomyslný programátor by mohl být schopný předpovídat cryptographic klíč řízením vnějších událostí. Několik podvodů hazardu bylo odkryl kterého spoléhat se na manipulovat s (normálně skrytými) událostmi interní k operaci počítačů nebo sítí.
být psán -- zmínka:
/ dev/náhodný/ dev/urandom
Problémy
To jde velmi snadno mis-budovat zařízení, která tvoří náhodná čísla. Také, oni se zlomí ticho, často produkovat decreasingly náhodná čísla jak oni se kazí. Příklad by mohl být rychle klesající radioaktivita kouřových poplachů zmínila se dříve. Jak radioaktivní síla se snižuje, jeho senzor bude požadovaný kompenzovat, ne snadno provedená úloha. Režimy poruchy v takových zařízeních jsou hojné a jsou žádný snadný ani rychlý ani laciný objevit.
Protože oni jsou docela křehcí, a propadnout ticho, statistické testy na jejich výstupu by měly být vykonávány nepřetržitě. Mnoho takových zařízení zahrnuje některé takové testy do softwaru, který čte zařízení. Jiní, samozřejmě, dělat ne.
Kontrolovat výkon hardwaru generátory náhodného čísla
být psán
- zahrnovat odkaz na Gutmann kontroluje analýzu v doktorovi pro cryptlib
Sporné náhodné číselné jevy
#rquoteglobální projekt vědomí” tvrdí TRNGs v mnohých městech, a reportoval chi-čtvercový fluktuace během 9/11 zaútočí. Tato událost nebyla kontrolovaná pro kolísání výkonu a jako. Mnoho výzkumníků zapojených do nadpřirozeného výzkumu používá generátory náhodného čísla v jejich designech testu.
- Pseudorandom číselný generátor, Generátor náhodného čísla
- Ernie
- Stroj loterie
- RFC 1750 na doporučeních náhodnosti pro bezpečnost
- Peter Gutmann univerzity Auckland udělal kvalitní analýzu ' náhodné číslo ' generace na počítačích (a několik aktuálních designů) v dokumentaci pro cryptlib cryptographic nástrojovou sadu.
Externí odkazy
Služby náhodného čísla na síti
HotBits prohlašuje, že poskytuje soukromé radioactively-produkoval náhodná čísla. Oni přiznají se k “hromadit” je, tak v principu oni mohli být zachyceni jestliže jejich server byl proniknut. random.org prohlašuje, že doručí soukromá náhodná čísla tvořená od atmosferického atmosférického šumu.Výrobcové náhodných číselných generátorových zařízení
- ComScire (oblíbený u vojenského cryptographers, to říkalo, a velmi rychle)
- Náhodný HG324 (přesný a velmi rychle)
- Protego (levný, pomalu, ale skutečná náhodná čísla.)
- Intel RNG (vy byste mohli už vlastnit jednoho!)