13Jul
Datori ģenerē izlases numuru visam, sākot no kriptogrāfijas līdz videospēļu un azartspēļu organizēšanai. Ir divas nejaušo skaitļu kategorijas - "patiesie" nejaušie skaitļi un pseidogadījuma skaitļi - un šī atšķirība ir svarīga šifrēšanas sistēmu drošībai.
Datori var radīt patiešām izlases skaitļus, novērojot dažus ārējos datus, piemēram, peles kustības vai ventilatora troksni, kas nav paredzams, un no tā izveidojot datus. To sauc par entropiju. Citiem vārdiem, viņi ģenerē "pseido-random" skaitļus, izmantojot algoritmu, lai rezultāti būtu nejauši, kaut arī tie nav.
Šis jautājums nesen ir kļuvis pretrunīgs, daudzi apšauba, vai Intel iebūvētais aparatūras nejaušu skaitļu ģeneratora mikroshēma ir uzticama. Lai saprastu, kāpēc tā var nebūt uzticama, jums ir jāsaprot, kā vispirms tiek izmantoti izlases numuri un kādi tie ir izmantoti.
Kādi izlases numuri tiek izmantoti
gadījuma skaitam ir izmantoti daudzus tūkstošus gadus. Neatkarīgi no tā, vai tas ir flipping monētas vai ritošā kauliņiem, mērķis ir atstāt gala rezultātu līdz nejaušības iespējai. Datora nejaušo skaitļu ģeneratori ir līdzīgi - tie ir mēģinājums panākt neparedzamu, nejaušošu rezultātu.
Nejaušo skaitļu ģeneratori ir noderīgi daudziem dažādiem mērķiem. Papildus acīmredzamām lietojumprogrammām, piemēram, radot nejaušus skaitļus azartspēļu nolūkos vai radot neparedzamus rezultātus datorspēlē, kriptogrāfijai ir svarīga nejaušība.
kriptogrāfija prasa numurus, kurus uzbrucēji nevar uzminēt. Mēs atkal nevaram izmantot vienādus numurus. Mēs gribam ģenerēt šos skaitļus ļoti neparedzamā veidā, lai uzbrucēji to nevarētu uzminēt.Šie izlases numuri ir būtiski drošai šifrēšanai, neatkarīgi no tā, vai šifrējat savus failus vai vienkārši izmantojat HTTPS vietni internetā.
True Random Numbers
Jums var būt jautājums, kā dators faktiski var ģenerēt izlases numuru. Kur šī "nejaušība" nāk no. Ja tas ir tikai datora kods, vai tas nav iespējams, ka datora radītie skaitļi varētu būt paredzami?
Mēs parasti grupējam nejaušos skaitļus, kurus datori ģenerē divos veidos atkarībā no tā, kā tie tiek ģenerēti: "patiesi" nejaušie skaitļi un pseidogadījuma skaitļi.
Lai radītu "patiesu" nejaušo skaitli, dators mēra kādu fizisku parādību, kas notiek ārpus datora. Piemēram, dators var izmērīt atomu radioaktīvo sabrukšanu. Saskaņā ar kvantu teoriju, nav iespējams precīzi zināt, kad notiks radioaktīvā sabrukšana, tāpēc tas būtībā ir "pilnīgs nejaušības princips" no Visuma. Uzbrucējs nevarēs paredzēt, kad notiks radioaktīvā sabrukšana, tāpēc viņi nezinātu nejaušības vērtību.
Lai iegūtu vairāk ikdienas ikdienas piemēru, dators varēja paļauties uz atmosfēras troksni vai vienkārši izmantot precīzu laiku, kad tastatūrā nospiežat taustiņus kā neparedzamu datu avotu vai entropiju. Piemēram, jūsu dators, iespējams, pamanīs, ka jūs nospiežat taustiņu tieši pēc 0,23423523 sekundēm pēc plkst. 14:00. Pielāgojiet pietiekami daudz laika, kas saistīti ar šo taustiņu nospiešanu, un jums būs entropijas avots, ko varat izmantot, lai ģenerētu "patiesu" nejaušībunumurs. Jūs neesat paredzama mašīna, tāpēc uzbrucējs nevar uzminēt precīzu brīdi, kad nospiežat šos taustiņus. /dev/ izlases ierīce Linux, kas rada nejaušus skaitļus, "bloki" un neatgriežas rezultātos, līdz tā iegūst pietiekami daudz entropijas, lai atgrieztu patiesu izlases numuru.
Pseudorandom numuri
Pseidorandom numuri ir alternatīva "patiesajiem" nejaušajiem skaitļiem. Dators var izmantot sēklu vērtību un algoritmu, lai ģenerētu skaitļus, kas izrādās nejauši, bet tie faktiski ir paredzami. Dators nevāc nekādus izlases datus no vides.
Tas katrā gadījumā nav obligāti slikts. Piemēram, ja jūs spēlējat videospēli, nav īsti svarīgi, vai šajā spēlē notiekošos notikumus ierobežo ar "patiesiem" nejaušajiem skaitļiem vai pseidogadījuma skaitļiem. No otras puses, ja jūs izmantojat šifrēšanu, jūs nevēlaties izmantot pseidogadījuma skaitļus, ko uzbrucējs varētu uzminēt.
Piemēram, pieņemsim, ka uzbrucējs zina algoritmu un sēklu vērtību, ko izmanto pseidogomātisko skaitļu ģenerators. Pieņemsim, ka šifrēšanas algoritms iegūst no šī algoritma pseidogadījuma skaitli un to izmanto, lai ģenerētu šifrēšanas atslēgu, nepievienojot nekādu papildu nejaušību. Ja uzbrucējs pietiekami zina, viņi varētu strādāt atpakaļ un noteikt pseido izlases numuru, kas šai gadījumā ir jāizvēlas, lai šifrētu šifrēšanas algoritmu.
NSA un Intel aparatūras nejaušu skaitļu ģenerators
Lai padarītu lietas vieglāk izstrādātājiem un palīdzētu radīt drošus izlases numurus, Intel mikroshēmās ir hardware-based random number generator, kas pazīstams kā RdRand.Šī mikroshēma procesora procesā izmanto entropijas avotu un programmatūrai piedāvā programmatūras gadījuma skaitļus, ja to pieprasa programmatūra.
Problēma ir tāda, ka nejaušo skaitļu ģenerators būtībā ir melna kaste, un mēs nezinām, kas notiek tajā.Ja RdRand satur NSA backdoor, valdība varētu pārtraukt šifrēšanas atslēgas, kas tika ģenerētas tikai ar datiem, ko sniedz šis nejaušu skaitļu ģenerators.
Šī ir nopietna bažas.2013. gada decembrī FreeBSD izstrādātāji noņēma atbalstu, lai izmantotu RdRand tieši kā nejaušības avotu, sakot, ka viņi nevar uzticēties.[Avots] RdRand ierīces izeja tiks ievadīta citā algoritmā, kas papildina papildu entropiju, nodrošinot to, ka jebkura nejaušo skaitļu ģeneratora aizmugurē nav nozīmes. Linux jau strādāja šādā veidā, tālāk randomizējot izlases datus, kas nāk no RdRand, lai tas nebūtu paredzams pat tad, ja būtu bojājums.[Avots] Nesenajā AMD( "Uzdodiet kaut ko kaut ko") par Reddit, Intel izpilddirektors Brian Krzanich neatbildēja uz jautājumiem par šīm bažām.[Avots]
Protams, tas, iespējams, nav tikai problēma ar Intel mikroshēmām. FreeBSD izstrādātāji arī izsauc Via mikroshēmas pēc nosaukuma.Šī neskaidrība parāda, kāpēc radīt gadījuma skaitļus, kas ir patiesi izlases veida un nav paredzami, ir tik svarīgi.
Lai radītu "patiesus" nejaušos skaitļus, nejaušo skaitļu ģeneratori apkopo "entropiju" vai šķietami nejauši datus no viņu apkārtējās fiziskās pasaules. Nejaušajiem skaitļiem, kuriem nav , tiešām jābūt nejaušām, tās var izmantot tikai algoritmu un sēklu vērtību.
attēla kredīts: rekre89 par Flickr, Lisa Brewster par Flickr, Ryan Somma par Flickr, huangjiahui par Flickr