Paano Bumubuo ang Mga Computer ng Mga Random na Numero

Bumubuo ang mga computer ng random na numero para sa lahat mula sa cryptography hanggang sa mga video game at pagsusugal. Mayroong dalawang kategorya ng mga random na numero - "totoong" mga random na numero at mga numero ng pseudorandom - at ang pagkakaiba ay mahalaga para sa seguridad ng mga system ng pag-encrypt.

Maaaring makabuo ng mga tunay na random na numero ang mga computer sa pamamagitan ng pagmamasid sa ilang data sa labas, tulad ng paggalaw ng mouse o ingay ng fan, na hindi mahuhulaan, at lumilikha ng data mula rito. Kilala ito bilang entropy. Iba pang mga oras, bumubuo sila ng mga "pseudorandom" na numero sa pamamagitan ng paggamit ng isang algorithm upang ang mga resulta ay lilitaw na sapalaran, kahit na hindi.

Ang paksang ito ay naging mas kontrobersyal kamakailan, na maraming tao ang nagtatanong kung ang built-in na hardware ng chip ng random na generator ng Intel ay mapagkakatiwalaan. Upang maunawaan kung bakit maaaring hindi ito mapagkakatiwalaan, kakailanganin mong maunawaan kung paano nabuo ang mga random na numero sa una, at kung ano ang ginagamit nila.

Ano ang Ginagamit Para sa Mga Random na Numero

Ang mga random na numero ay ginamit sa loob ng libu-libong taon. Kung ito man ay pag-flip ng isang barya o pagliligid ng isang dice, ang layunin ay iwanan ang resulta na hanggang sa random na pagkakataon. Ang mga gumagawa ng random na numero sa isang computer ay magkatulad - sila ay isang pagtatangka upang makamit ang isang hindi mahuhulaan, random na resulta.

KAUGNAYAN:Ano ang Encryption, at Paano Ito Gumagana?

Ang mga generator ng random na numero ay kapaki-pakinabang para sa maraming iba't ibang mga layunin. Bukod sa halatang mga application tulad ng pagbuo ng mga random na numero para sa mga layunin ng pagsusugal o paglikha ng hindi mahuhulaan na mga resulta sa isang laro sa computer, mahalaga ang randomness para sa cryptography.

Nangangailangan ang Cryptography ng mga numero na hindi nahuhulaan ng mga umaatake. Hindi lamang namin maaaring gamitin ang parehong mga numero nang paulit-ulit. Nais naming mabuo ang mga numerong ito sa isang hindi mahuhulaan na paraan upang hindi hulaan sila ng mga magsasalakay. Ang mga random na numero na ito ay mahalaga para sa ligtas na pag-encrypt, kung naka-encrypt ka man ng iyong sariling mga file o gumagamit lamang ng isang HTTPS website sa Internet.

Totoong Mga Random na Numero

Maaari kang nagtataka kung paano ang isang computer ay maaaring makabuo ng isang random na numero. Saan nagmula ang "randomness" na ito. Kung ito ay isang piraso lamang ng computer code, hindi posible ang mga numero na nabuo ng computer ay maaaring mahulaan?

Karaniwan naming pinagsasama ang mga random na numero na nabubuo ng mga computer sa dalawang uri, depende sa kung paano ito nabuo: "Tunay" na mga random na numero at mga pseudo-random na numero.

Upang makabuo ng isang "totoong" random na numero, sumusukat ang computer ng ilang uri ng pisikal na kababalaghan na nagaganap sa labas ng computer. Halimbawa, maaaring sukatin ng computer ang pagkabulok ng radioactive ng isang atom. Ayon sa teorya ng kabuuan, walang paraan upang malaman sigurado kung kailan magaganap ang pagkabulok ng radioaktif, kaya't ito ay mahalagang "purong randomness" mula sa uniberso. Hindi mahuhulaan ng isang umaatake kung kailan magaganap ang pagkabulok ng radioactive, kaya't hindi nila malalaman ang random na halaga.

Para sa isang mas pang-araw-araw na halimbawa, ang computer ay maaaring umasa sa ingay ng atmospera o simpleng gamitin ang eksaktong oras na pinindot mo ang mga key sa iyong keyboard bilang isang mapagkukunan ng hindi mahuhulaan na data, o entropy. Halimbawa, maaaring mapansin ng iyong computer na pinindot mo ang isang susi nang eksakto sa 0.23423523 segundo pagkalipas ng 2 pm. Kumuha ng sapat sa mga tukoy na oras na nauugnay sa mga key press at magkakaroon ka ng mapagkukunan ng entropy na maaari mong gamitin upang makabuo ng isang "totoong" random numero Hindi ka isang hinuhulaan na makina, kaya't hindi mahulaan ng isang magsasalakay ang tumpak na sandali kapag pinindot mo ang mga key na ito. Ang / dev / random na aparato sa Linux, na bumubuo ng mga random na numero, "mga bloke" at hindi nagbabalik ng isang resulta hanggang sa makalikom ito ng sapat na entropy upang ibalik ang isang tunay na random na numero.

Mga Pseudorandom na Numero

Ang mga numero ng pseudorandom ay isang kahalili sa "totoong" mga random na numero. Ang isang computer ay maaaring gumamit ng halaga ng binhi at isang algorithm upang makabuo ng mga bilang na lilitaw na sapalaran, ngunit sa katotohanan ito ay mahuhulaan. Ang computer ay hindi nagtitipon ng anumang random na data mula sa kapaligiran.

Hindi ito kinakailangang isang masamang bagay sa bawat sitwasyon. Halimbawa, kung naglalaro ka ng isang video game, hindi mahalaga kung ang mga kaganapan na naganap sa larong iyon ay sanhi ng "totoong" mga random na numero o mga pseudorandom na numero. Sa kabilang banda, kung gumagamit ka ng pag-encrypt, ayaw mong gumamit ng mga numero ng pseudorandom na mahuhulaan ng isang umaatake.

Halimbawa, sabihin nating alam ng isang umaatake ang algorithm at halaga ng binhi na ginagamit ng isang pseudorandom na numero ng generator. At sabihin nating ang isang naka-encrypt na algorithm ay nakakakuha ng isang pseudorandom na numero mula sa algorithm na ito at ginagamit ito upang makabuo ng isang susi sa pag-encrypt nang hindi nagdaragdag ng anumang karagdagang pagiging random. Kung may sapat na nalalaman ang isang magsasalakay, maaari silang gumana paatras at matukoy ang numero ng pseudorandom na dapat napili ng algorithm ng pag-encrypt sa kasong iyon, sinira ang pag-encrypt.

Ang NSA at Intel's Hardware Random Number Generator

Upang gawing mas madali ang mga bagay para sa mga developer at makakatulong na makabuo ng mga secure na random na numero, nagsasama ang Intel chips ng isang generator na batay sa hardware na random na generator na kilala bilang RdRand. Gumagamit ang chip na ito ng isang mapagkukunan ng entropy sa processor at nagbibigay ng mga random na numero sa software kapag hiniling sila ng software.

Ang problema dito ay ang random generator ng numero ay mahalagang isang itim na kahon at hindi namin alam kung ano ang nangyayari sa loob nito. Kung ang RdRand ay naglalaman ng isang backside ng NSA, magagawang sirain ng gobyerno ang mga key ng pag-encrypt na nabuo na may lamang data na ibinibigay ng random na generator ng numero.

Ito ay isang seryosong pag-aalala. Noong Disyembre 2013, inalis ng mga developer ng FreeBSD ang suporta para sa direktang paggamit ng RdRand bilang mapagkukunan ng pagiging random, sinasabing hindi nila ito mapagtiwalaan. [Pinagmulan] Ang output ng aparato ng RDRand ay bibigyan ng feed sa isa pang algorithm na nagdaragdag ng karagdagang entropy, na tinitiyak na ang anumang mga backdoors sa random na generator ng numero ay hindi mahalaga. Gumana na ang Linux sa ganitong paraan, karagdagang pag-random sa random data na nagmumula sa RdRand upang hindi ito mahulaan kahit na mayroong backdoor. [Pinagmulan] Sa isang kamakailang AMA ("Ask Me Anything") sa Reddit, ang Intel CEO na si Brian Krzanich ay hindi sumagot ng mga katanungan tungkol sa mga alalahanin na ito. [Pinagmulan]

Siyempre, malamang na hindi ito isang problema lamang sa mga Intel chips. Tinawag din ng mga developer ng FreeBSD ang mga chip ni Via sa pamamagitan ng kanilang pangalan. Ipinapakita ng kontrobersya na ito kung bakit napakahalaga ng pagbuo ng mga random na numero na tunay na random at hindi mahuhulaan.

Upang makabuo ng "totoong" mga random na numero, ang mga tagabuo ng random na numero ay nagtitipon ng "entropy," o tila random na data mula sa pisikal na mundo sa paligid nila. Para sa mga random na numero na hindi Talaga kailangang maging random, maaari lamang silang gumamit ng isang algorithm at isang halaga ng binhi.

Credit ng Larawan: rekre89 sa Flickr, Lisa Brewster sa Flickr, Ryan Somma sa Flickr, huangjiahui sa Flickr


$config[zx-auto] not found$config[zx-overlay] not found