Miten tietokoneet tuottavat satunnaisia numeroita

Sisällysluettelo:

Miten tietokoneet tuottavat satunnaisia numeroita
Miten tietokoneet tuottavat satunnaisia numeroita

Video: Miten tietokoneet tuottavat satunnaisia numeroita

Video: Miten tietokoneet tuottavat satunnaisia numeroita
Video: Chromecastin asennus ja käyttö | Tap5a Vinkkaa - YouTube 2024, Huhtikuu
Anonim
Tietokoneet tuottavat satunnaislukua kaikesta salauksesta videopeleihin ja rahapeleihin. Satunnaislukujen luokkia on kaksi - "tosi" satunnaisluku ja pseudosatunnaisluku - ja ero on tärkeä salausjärjestelmien turvallisuudelle.
Tietokoneet tuottavat satunnaislukua kaikesta salauksesta videopeleihin ja rahapeleihin. Satunnaislukujen luokkia on kaksi - "tosi" satunnaisluku ja pseudosatunnaisluku - ja ero on tärkeä salausjärjestelmien turvallisuudelle.

Tietokoneet voivat tuottaa todella satunnaisia numeroita havainnoimalla joitain ulkopuolisia tietoja, kuten hiiren liikkeitä tai tuulettimen melua, joka ei ole ennustettavissa ja siitä luodaan tietoja. Tätä kutsutaan entropiksi. Muina aikoina he tuottavat pseudosatunnaisia numeroita käyttämällä algoritmia, joten tulokset näyttävät satunnaisilta, vaikka ne eivät.

Tämä aihe on tullut kiistelty viime aikoina, ja monet ihmiset kyseenalaistavat, onko Intelin sisäänrakennettu laitteiston satunnaislukugeneraattoripiiri luotettava. Jotta ymmärtäisit, miksi se ei ehkä ole luotettava, sinun on ymmärrettävä, miten satunnaisia numeroita kehitetään ensisijaisesti ja mihin niitä käytetään.

Mitä satunnaisia numeroita käytetään

Satunnaisia lukuja on käytetty tuhansia vuosia. Olipa kyseessä kolikon vaihtaminen tai nopan rullaaminen, päämäärä on jättää lopputulos satunnaiselle mahdollisuudelle. Tietokoneen satunnaislukugeneraattorit ovat samanlaisia - ne pyrkivät saavuttamaan ennalta arvaamattoman, satunnaisen tuloksen.

Satunnaislukugeneraattorit ovat hyödyllisiä monissa eri tarkoituksissa. Ilmeisistä sovelluksista poiketen, kuten satunnaislukujen tuottaminen uhkapeleihin tai ennakoimattomien tulosten aikaansaaminen tietokonepelissä, satunnaisuus on tärkeä salausta varten.

Salaus vaatii lukuja, joita hyökkääjät eivät voi arvata. Emme voi käyttää samoja numeroita yhä uudelleen. Haluamme tuottaa nämä numerot hyvin arvaamattomalla tavalla, joten hyökkääjät eivät voi arvata heitä. Nämä satunnaisluvut ovat välttämättömiä turvallisen salauksen kannalta, olivatko sinä salatut omat tiedostot vai vain HTTPS-verkkosivustot Internetissä.

Image
Image

True Random Numerot

Saatat ihmetellä, miten tietokone voi itse asiassa tuottaa satunnaisluvun. Mistä tämä "satunnaisuus" tulee. Jos se on vain tietokonekoodi, eikö ole mahdollista, että tietokoneella syntyvät luvut olisivat ennustettavissa?

Yleisesti ryhmittelemme satunnaislukujen tietokoneet luodaan kahteen tyyppiin sen mukaan, miten ne generoidaan: "True" satunnaislukuja ja näennäissatunnaisia numeroita.

Todellisen satunnaislukeman luomiseksi tietokone mittaa tietynlaista fyysistä ilmiötä, joka tapahtuu tietokoneen ulkopuolella. Esimerkiksi tietokone voisi mitata atomin radioaktiivisen hajoamisen. Kvanttiteorian mukaan ei ole mahdollista tietää varmasti, milloin radioaktiivinen hajoaminen tapahtuu, joten tämä on olennaisesti "puhdasta satunnaisuutta" maailmankaikkeudesta. Hyökkääjä ei pysty ennustamaan, milloin radioaktiivinen hajoaminen tapahtuu, joten he eivät tiedä satunnaisarvoa.

Jotta päivittäinen esimerkki voisi olla, tietokone voi luottaa ilmakehään tai käyttää vain tarkkaa aikaa, kun painat näppäimistön näppäimiä ennalta arvaamattomien tietojen tai entropian lähteenä. Esimerkiksi tietokoneesi saattaa huomata, että olet painanut näppäintä täsmälleen 0,23423523 sekuntia kello 14 jälkeen. Tartu tarpeeksi näihin näppäimiin liittyviin tiettyihin aikoihin ja sinulla on entropia lähde, jota voit käyttää "todellisen" satunnaisen määrä. Et ole ennustettavissa oleva kone, joten hyökkääjä ei voi arvata tarkkaa hetkeä, kun painat näitä näppäimiä. Linux / dev / random-laite Linuxissa, joka luo satunnaisia numeroita, "lukee" ja ei palauta tulosta, ennen kuin se kerää tarpeeksi entropia palauttaa todella satunnaisluku.

Image
Image

Pseudorandom-numerot

Pseudosandom-numerot ovat vaihtoehto "todellisille" satunnaislukuille. Tietokone voi käyttää siementen arvoa ja algoritmia numeroiden luomiseen, jotka näyttävät olevan satunnaisia, mutta jotka ovat itse asiassa ennustettavissa. Tietokone ei kerää satunnaisia tietoja ympäristöstä.

Tämä ei välttämättä ole huono asia kaikissa tilanteissa. Esimerkiksi jos pelaat videopeliä, ei ole väliä, ovatko kyseisessä pelissä esiintyvät tapahtumat "todellisia" satunnaislukuja tai pseudosatunnaisia numeroita. Toisaalta, jos käytät salausta, et halua käyttää pseudosatunnaisia numeroita, joita hyökkääjä voisi arvata.

Esimerkiksi sanotaan, että hyökkääjä tuntee algoritmin ja siemenarvon, jota käytetään pseudosatunnaislukugeneraattorina. Ja sanotaan, että salausalgoritmi saa pseudosatunnaisen numeron tästä algoritmista ja käyttää sitä generoimaan salausavain lisäämättä lisää satunnaisuutta. Jos hyökkääjä tuntee tarpeeksi, he voivat työskennellä taaksepäin ja määrittää pseudosatunnaisen numeron, jonka salausalgoritmi on valinnut siinä tapauksessa, salauksen rikkomisen.

NSA ja Intelin satunnaislukugeneraattori

Jotta asioista helpotettaisiin kehittäjiä ja auttaisiin luomaan turvallisia satunnaislukuja, Intelin siruihin kuuluu laitteistopohjainen satunnaislukugeneraattori, joka tunnetaan nimellä RdRand. Tämä siru käyttää prosessorin entropia-lähdettä ja tarjoaa satunnaisia numeroita ohjelmistoihin, kun ohjelmisto pyytää niitä.

Ongelma tässä on, että satunnaislukugeneraattori on oleellisesti musta laatikko, emmekä tiedä, mitä sen sisällä tapahtuu.Jos RdRand sisälsi NSA: n takaoven, hallitus voisi murtaa salausavainta, joka syntyi vain satunnaislukugeneraattorin toimittamien tietojen avulla.

Tämä on vakava huolenaihe. Joulukuussa 2013 FreeBSD: n kehittäjät poistivat tuen RdRandin käyttämisestä suoraan satunnaisuuden lähteenä sanoen, että he eivät voineet luottaa siihen. [Lähde] RdRand-laitteen ulostulo syötetään toiseen algoritmiin, joka lisää ylimääräistä entropiaa varmistaen, että satunnaislukugeneraattorissa ei olisi väliä. Linux jo työskennellyt tällä tavalla, lisäksi satunnaistamalla RdRandista tulevan satunnaisen datan, jotta se ei olisi ennustettavissa vaikka takapihalla olisikaan. [Lähde] Intelin toimitusjohtaja Brian Krzanich ei vastannut kysymyksiin näistä huolenaiheista äskettäisessä AMD: ssä ("Kysy minulta mitään") Redditista. [Lähde]

Tietenkin tämä ei todennäköisesti ole pelkkä Intelin pelimerkkien ongelma. FreeBSD: n kehittäjät kehottivat Via-pelimerkkejä nimen mukaan. Tämä kiista osoittaa, miksi satunnaislukujen tuottaminen, jotka ovat todella satunnaisia ja joita ei ole ennustettavissa, on niin tärkeä.

Image
Image

Todellisten satunnaislukujen tuottamiseksi satunnaislukugeneraattorit keräävät "entropian" tai näennäisesti satunnaiset tiedot ympäröivästä fyysisestä maailmasta. Satunnaislukuihin, jotka eivät Todella täytyy olla satunnaisia, ne voivat vain käyttää algoritmia ja siemenarvoa.

Suositeltava: