no.phhsnews.com


no.phhsnews.com / Hvordan datamaskiner genererer tilfeldige tall

Hvordan datamaskiner genererer tilfeldige tall


Datamaskiner genererer tilfeldig tall for alt fra kryptering til videospill og gambling. Det er to kategorier av tilfeldige tall - "ekte" tilfeldige tall og pseudorandom tall - og forskjellen er viktig for sikkerheten til krypteringssystemer.

Datamaskiner kan generere virkelig tilfeldige tall ved å observere noen eksterne data, som musebevegelser eller vifterlyd , som ikke er forutsigbar, og skaper data fra den. Dette er kjent som entropi. Andre ganger genererer de "pseudorandom" -numre ved å bruke en algoritme, slik at resultatene vises tilfeldig, selv om de ikke er.

Dette emnet har blitt mer kontroversielt nylig, med mange mennesker i tvil om hvorvidt Intels innebygde maskinvare slumptall generator chip er troverdig. For å forstå hvorfor det kanskje ikke er troverdig, må du forstå hvordan tilfeldige tall er genreated i utgangspunktet, og hva de er vant til.

Hvilke tilfeldige tall er brukt til

Tilfeldige tall er brukt i mange tusen år. Enten det vinner en mynt eller ruller en terning, er målet å legge sluttresultatet opp til tilfeldig tilfeldighet. Tilfeldige nummergeneratorer i en datamaskin er like - de er et forsøk på å oppnå et uforutsigbart, tilfeldig resultat.

RELATERT: Hva er kryptering, og hvordan virker det?

Tilfeldige nummergeneratorer er nyttige for mange forskjellige formål. Bortsett fra åpenbare applikasjoner som å generere tilfeldige tall for gambling eller å skape uforutsigbare resultater i et dataspill, er tilfeldighet viktig for kryptografi.

Kryptografi krever tall som angriperne ikke kan gjette. Vi kan ikke bare bruke de samme tallene om og om igjen. Vi ønsker å generere disse tallene på en svært uforutsigbar måte, slik at angripere ikke kan gjette dem. Disse tilfeldige tallene er avgjørende for sikker kryptering, uansett om du krypterer dine egne filer eller bare bruker et HTTPS -nettsted på Internett.

True Random Numbers

Du lurer kanskje på hvordan en datamaskin kan faktisk generere et tilfeldig tall. Hvor kommer denne "tilfeldigheten" fra. Hvis det bare er et stykke datakode, er det ikke mulig at tallene datamaskinen genererer, kan være forutsigbar?

Vi grupperer vanligvis de tilfeldige tallene datamaskiner genererer i to typer, avhengig av hvordan de genereres: "True" tilfeldig tall og pseudo-tilfeldige tall.

For å generere et "ekte" tilfeldig nummer, måler datamaskinen noen form for fysisk fenomen som foregår utenfor datamaskinen. For eksempel kan datamaskinen måle radioaktivt forfall av et atom. Ifølge kvanteteori er det ingen måte å vite sikkert når radioaktivt henfall vil forekomme, så dette er egentlig "ren tilfeldighet" fra universet. En angriper ville ikke kunne forutsi når radioaktivt henfall skulle forekomme, slik at de ikke ville vite tilfeldig verdi.

For et mer daglig eksempel kan datamaskinen stole på atmosfærisk støy eller bare bruke nøyaktig gang du trykker på tastene på tastaturet som kilde til uforutsigbare data eller entropi. For eksempel kan datamaskinen merke til at du trykket på en nøkkel på nøyaktig 0,233423523 sekunder etter klokken 14.00. Ta tak i de spesifikke tider som er knyttet til disse tastene, og du vil få en entropi som du kan bruke til å generere en "sann" tilfeldig Antall. Du er ikke en forutsigbar maskin, så en angriper kan ikke gjette det nøyaktige øyeblikket når du trykker på disse tastene. Den / dev / random-enheten på Linux, som genererer tilfeldige tall, "blokker" og returnerer ikke et resultat før det samler nok entropi til å returnere et virkelig tilfeldig tall.

Pseudorandom Tall

Pseudorandom tall er et alternativ til "Ekte" tilfeldige tall. En datamaskin kan bruke en frøverdi og en algoritme for å generere tall som ser ut til å være tilfeldig, men det er faktisk forutsigbar. Datamaskinen samler ikke tilfeldige data fra miljøet.

Dette er ikke nødvendigvis en dårlig ting i alle situasjoner. For eksempel, hvis du spiller et videospill, spiller det ingen rolle om hendelsene som forekommer i det spillet er forankret av "ekte" tilfeldige tall eller pseudorandom tall. På den annen side, hvis du bruker kryptering, vil du ikke bruke pseudorandomnumre som en angriper kan gjette.

For eksempel, la oss si at en angriper vet at algoritmen og frøverdien bruker en pseudorandom-nummergenerator. Og la oss si at en krypteringsalgoritme får et pseudorandomnummer fra denne algoritmen og bruker den til å generere en krypteringsnøkkel uten å legge til noen tilfeldig tilfeldighet. Hvis en angriper vet nok, kan de jobbe bakover og bestemme det pseudorandomnummeret krypteringsalgoritmen må ha valgt i det tilfellet, bryte krypteringen.

NSA og Intels maskinvare Random Number Generator

For å gjøre det enklere for utviklere og Hjelpe å generere sikre tilfeldige tall, Intel-sjetonger inkluderer en maskinvarebasert tilfeldig talgenerator kjent som RdRand. Denne brikken bruker en entropi kilde på prosessoren og gir tilfeldige tall til programvare når programvaren ber om dem.

Problemet her er at tilfeldig talgeneratoren egentlig er en svart boks, og vi vet ikke hva som skjer i den. Hvis RdRand inneholdt en NSA bakdør, kunne regjeringen bryte krypteringsnøkler som ble generert med bare data som ble levert av den tilfeldige tallgeneratoren.

Dette er et alvorlig problem. I desember 2013 fjernet FreeBSDs utviklere støtte for å bruke RdRand direkte som en kilde til tilfeldighet, og sa at de ikke kunne stole på det. [Kilde] Utgangen av RdRand-enheten vil bli matet inn i en annen algoritme som legger til ytterligere entropi, noe som sikrer at eventuelle bakdører i tilfeldig talgeneratoren ikke ville ha betydning. Linux har allerede jobbet på denne måten, og randomiserer tilfeldige data fra RdRand slik at det ikke ville være forutsigbart, selv om det var en bakdør. [Source] I en nylig AMA ("Ask Me Anything") på Reddit, svarte Intels administrerende direktør Brian Krzanich ikke spørsmål om disse bekymringene. [Kilde]

Selvfølgelig er dette sannsynligvis ikke bare et problem med Intel-chips. FreeBSDs utviklere kalt ut Via's chips ved navn også. Denne kontroversen viser hvorfor å generere tilfeldige tall som virkelig er tilfeldige og ikke er forutsigbare, er så viktig.


For å generere "ekte" tilfeldige tall, samler tilfeldige nummergeneratorer "entropi" eller tilsynelatende tilfeldige data fra den fysiske verden rundt dem. For tilfeldige tall som ikke trenger å være tilfeldig, må de kanskje bare bruke en algoritme og en frøverdi. Bilde Kreditt: rekre89 på Flickr, Lisa Brewster på Flickr, Ryan Somma på Flickr, huangjiahui på Flickr


Slik justerer du kolonneformat i Microsoft Word

Slik justerer du kolonneformat i Microsoft Word

Når du oppretter flere kolonner i Word, standardiseres de til en angitt bredde. Det er enkelt å endre denne standardbredden for hver kolonne. La oss se på to måter du kan gjøre. Konfigurer kolonnebredde akkurat med kolonnedialogen Når du angir et Word-dokument for å bruke flere kolonner, tilordner Word en standard kolonnebredde som avhenger av antall kolonner du velger.

(how-top)

Hva er forskjellen mellom Bash, Zsh og andre Linux-skjell?

Hva er forskjellen mellom Bash, Zsh og andre Linux-skjell?

De fleste Linux-distribusjoner inkluderer bash-skallet som standard, men du kan også bytte til et annet skallmiljø. Zsh er et spesielt populært alternativ, og det finnes andre skall, som aske, dash, fisk og tcsh. Men hva er forskjellen, og hvorfor er det så mange? Hva gjør skjell? Når du logger på kommandolinjen eller starter et terminalvindu på Linux, starter systemet shellprogrammet.

(how-top)

Interessante Artikler