Hogyan működik a rand függvény a gép szintjén - verem túlcsordulás orosz

Véletlenszám-generátor a generátor, és hogy ő nem kap valahonnan valódi véletlen számokat minden alkalommal. Éppen ellenkezőleg, vagy inicializálás néhány igazán véletlen számot, vagy ő ezt automatikusan, ha az első használat.







Ez már önmagában is nagy, mert akkor írj egy kiszámítható programot, amikor szükség van rá, mert a sorszámok által kibocsátott ilyen generátor egyértelműen határozza meg az eredeti szám (mag).

Másrészt, ha járulni a generátor ad elég véletlen számot (például az aktuális idő másodpercekben), melyeket a támadók kitalálni, mit várnak a bajt.

Ha a jogot, hogy az „igazi” véletlen számokat (valós olyan mértékben, hogy senki sem tudja kitalálni őket) - szintű probléma. Jobb, ha nem kitalálni, és ezeket a számokat az operációs rendszer szabványos mechanizmusok megszerzésére entrópia. A Linux, ez a / dev / urandom és a rendszer hívás getrandom. Más operációs rendszerek saját konkrét módszerek megszerzésének véletlen számokat.







Külön problémát jelent mindenféle szoftver, amely nem használja a rendszer entrópia források miatt a lustaság Fejlesztő e a hiba oka. Egy ilyen probléma, amivel, és ssh a Debian. és PHP uniqid (bár szerepel a dokumentációban) és szúrja át a Sony cég. és így tovább, és így tovább.

Mint tudod kitalálni, a szisztémás források entrópia is pótolni valahonnan. A Linux az elsődleges forrásai az entrópia mindenféle véletlenszerű események, mint például az egér mozgását felhasználó vagy késedelmes hozzáférés a lemezeket. Ezen kívül nincs semmi gond, hogy az „vas” forrás entrópia, ami már vagy eladták külön eszközöket. vagy beágyazott TPM. jelen van sok modern laptopok.