PRNG entrópiával forrás vagy RNG jogok, a megfelelő forráskód
Kriptográfiai véletlenszám-generátor véletlenszámokat használt kriptográfiai alkalmazásokban, például - olyan kulcsokat.
Hagyományos véletlenszám-generátor kapható számos programozási nyelvek és szoftver környezet nem alkalmas az igényeinek kriptográfia (ők hozták létre annak érdekében, hogy statisztikailag véletlenszerű eloszlás, cryptanalysts lehet megjósolni a viselkedését ilyen random generátor).
Helyes végrehajtását aszimmetrikus titkosítási algoritmusokat, például az RSA, szükség úgy, hogy minden részét a nyílt szöveg néhány véletlenszerű bájt.
Ellentétben a véletlenszám-generátor (PRNG) a véletlenszám-generátor (RNG)
A használt források felhalmozni entrópia entrópia majd megszerzéséhez szükséges egy kezdeti értékről (kezdeti érték, vetőmag), a szükséges véletlenszám-generátor (RNG) generál véletlen számokat. PRNG használja csak a kezdeti érték, ami azt jelenti, hogy pseudorandomness és mindig RNG egy véletlen számot generál, utalva az elején egy jó minőségű véletlen értéket, amelyet különböző forrásokból az entrópia. Entrópia - intézkedés a betegség. Információ entrópia - intézkedés bizonytalanság, illetve kiszámíthatatlansága információkat. Azt lehet mondani, hogy az RNG = + PRNG entrópia forrást.
Kiszámítható száma közötti.
Kiszámítható kezdeti érték generátort.
Sekély hosszúságú időszak szekvencia által generált véletlenszám-generátor, amely után a hurok.
Lineáris kongruencia PRNG (LCPRNG)
Szokásos eljárás generál véletlen számokat, amelyek nem rendelkeznek kriptográfiai ellenállás. Lineáris kongruencia generátor, hogy kiszámolja tagok lineáris rekurzív sorozat modulo néhány egész m, ahol egy (szorzó), c (összeadandó), m (maszk) - valamilyen egész együtthatós. Az így kapott szekvenciát függ a választott kiindulási (mag) X0 és annak különböző értékeket úgy kapjuk, a különböző szekvenciákat, a véletlen számok. Hagyja, hogy a generátor néhány véletlen számok X0, X1, X2, X3. A egyenletrendszert
Tegyük fel, hogy szeretnénk, hogy egy nyomtávú exponenciális eloszlású valószínűségi változók. Ebben az esetben, az F (x) = 1 - exp (lambda * x). Ezután egyenlet megoldásai y = 1 - exp (lambda * x) kapjuk az x = -log (1-y) / lambda. Látható, hogy a kifejezés a logaritmusa az utóbbi képletben a egyenletes eloszlás intervallum [0,1), amely lehetővé teszi, hogy kapjunk egy másik, de hasonló módon elosztott szekvenciát az alábbi képlet szerint: x = -log (y) / lambda, ahol az y a valószínűségi változó (rand ()).
Pszeudo véletlenszám-generátor (PRNG Engl Pseudorandomnumbergenerator, PRNG ..) - generáló algoritmus egy számsorozat, melynek elemei szinte független egymástól, és alá egy előre meghatározott elosztó (általában egyenletes).
A modern információs technológia széles körben használják pszeudo-véletlen számok a különböző alkalmazáshoz - a Monte Carlo szimuláció kriptográfia. Így a minőség a PRNG közvetlenül felhasználható minőségétől függ az eredmények. Ez a tény alátámasztja a mondása Robert R. Kavyu a ORNL: «A véletlen számok generálása túl fontos, hogy hagyja a véletlenre.”
Nem determinisztikus algoritmus generál teljesen véletlenszerű számok, csak akkor lehet közelíteni azok egyes tulajdonságait. Mint John Neumann „bárki, akinek van egy gyengéje számtani előállítási módszereinek véletlen számok, a bűnös nem kétséges.”
Bármilyen PRNG korlátozott erőforrásokkal, előbb-utóbb hurkok - kezdi megismételni ugyanazt a számsort. PRNG ciklus hossza függ a generátor, és körülbelül 2 n / 2. ahol n - a méret a belső állapotát a bit, bár a lineáris kongruencia generátor, és a LFSR-maximális ciklus sorrendben 2 N. Ha generált PRNG szekvencia konvergál egy túl rövid ciklus olyan PRNG válik kiszámítható és megfelelő gyakorlati alkalmazások.
A legtöbb egyszerű számtani generátorok ellenére, hogy nagy sebességgel, de szenved számos komoly hátránya van:
Túl rövid időszak / időszakok.
Az egymást követő értékek nem független egymástól.
Egyes darabok „kevésbé véletlenszerű”, mint mások.
Az egyenetlen eloszlása egydimenziós.
Különösen Randu alkalmazott algoritmus a mainframe évtizedek óta nagyon rossz [2] [3]. hogy kétségek merültek fel a megbízhatóságát az eredmények számos tanulmány ezt az algoritmust.
A leggyakoribb a lineáris kongruencia generátor, késleltetett Fibonacci generátor, lineárisan visszacsatolt shiftregiszter léptető regiszter általánosított visszacsatolással.
Együtt a létrehozásának szükségességét a jelenlegi könnyen megismételhető sorozata véletlen számokat, ott is szükség van, hogy létrehoz teljesen kiszámíthatatlan, vagy egyszerűen csak abszolút véletlen számokat. Az ilyen generátorok nevezzük véletlenszám-generátor (RNG - Angol randomnumbergenerator, RNG.). Mivel az ilyen generátorok többnyire használt generálásához egy egyedi szimmetrikus és aszimmetrikus a titkosításra, gyakran épített egy kombinációja kriptográfiailag erős PRNG és a külső forrásból az entrópia (és csak egy ilyen kombináció most általánosan érthető RNG).
Szinte az összes nagy gyártó mikrocsipek szállított hardver RNG különböző forrásokból az entrópia, különböző módszerekkel, hogy tisztítsa meg az elkerülhetetlen kiszámíthatóságát. Jelenleg azonban az arány gyűjtemény véletlen számokat az összes létező microarray (több ezer bit másodpercenként) nem egyezik meg a sebességet a modern processzorok.
A legfrissebb vizsgálatok végzett kísérletek méréseket használ fizikai objektumok tulajdonságait (például hőmérséklet), vagy akár egy vákuum kvantum fluktuáció forrásként entrópia SFG. [4]
Egy példa egy egyszerű RNG egy forrás entrópia [szerkesztés | szerkesztés eredeti szöveg]
Amikor a forrás entrópia használni az aktuális időt, így egy természetes szám 0 és N elegendő kiszámítani a fennmaradó részlege az aktuális időt vmillisekundah száma N +1. Ennek az a hátránya, hogy RNG során egy milliszekundum termel ugyanazt a számot.
Biztonságosan titkosított pszeudo-véletlen szám generátor
Biztonságosan titkosított pszeudo-véletlen szám generátor (Engl biztonságosan titkosított pszeudo-véletlen szám generátor CSPRNG ..) - a generátor áivéietlen vésők bizonyos tulajdonságokkal, amelyek lehetővé teszik annak a kriptográfia. Sok alkalmazott kriptográfiai feladatok megkövetelik véletlen számokat, például:
Eldobható véletlen számok (Engl. Nonces)
Só a rendszerek a digitális aláírás, így ECDSA
Kötelező „minőség” véletlenszerűség változik feladatról feladatra. Például a generáció egy véletlen szám az egyes protokollok előírják csak egyedisége, mivel a termelés a mester kulcsot vagy eldobható shifrobloknota igényel magas entrópia. Ideális esetben a véletlen számok generálása a KSGPSCH használ megbízható forrás entrópia, ami lehet egy hardveres véletlenszám-generátor vagy kiszámíthatatlan során folyamatok a rendszerben - bár mindkét eset lehetséges váratlanul sebezhetővé [1] [2]. Szemszögéből az információ-elmélet, a balesetek száma - entrópia, ami lehet beszerezni, egyenlő az entrópia a rendszer által biztosított. De gyakran a valós helyzet megköveteli több véletlenszerű mint nyerhető az aktuális entrópia. Ezen kívül a megszerzésére irányuló eljárás esély a rendszer maga igényel sok erőforrást (memória és idő). Ilyen esetekben ez indokolja a KSGPSCH - lehetővé teszi, hogy „nyúlik” a rendelkezésre álló entrópia egy nagyobb számú bit. Amikor az összes entrópia elérhető a végrehajtása egy kriptográfiai algoritmus kapunk rejtjelfolyam [3]. Azonban néhány titkosítási rendszer lehetővé teszi, hogy adjunk entrópia a munka mértékét, ilyen esetben, az algoritmus nem egyenértékű a rejtjelfolyam és nem használható ebben a minőségében. Így a tervezési Áramlási titkosításokról és KSGPSCH szorosan összefügg.