sv.phhsnews.com


sv.phhsnews.com / Datorer genererar slumpmässiga nummer

Datorer genererar slumpmässiga nummer


Datorer genererar slumptal för allt från kryptografi till videospel och spel. Det finns två kategorier av slumpmässiga siffror - "sanna" slumptal och pseudorandomtal - och skillnaden är viktig för krypteringssystemens säkerhet.

Datorer kan generera verkliga slumpmässiga nummer genom att observera vissa externa data, som musrörelser eller fläktbuller , vilket inte är förutsägbart, och skapar data från den. Detta kallas entropi. Andra gånger genererar de "pseudorandom" -numren med hjälp av en algoritm så resultaten blir slumpmässiga, även om de inte är.

Detta ämne har blivit mer kontroversiellt för en tid sedan, med många människor ifrågasatte om Intels inbyggda hårdvara slumpmässig talgenerator chip är pålitligt. För att förstå varför det kanske inte är trovärdigt måste du förstå hur slumpmässiga nummer genereras i första hand och vad de används för.

Vilka slumpartar används för

Slumpmässiga nummer har använts i många tusen år. Oavsett om det vänder ett mynt eller rullar en tärning, är målet att lämna slutresultatet upp till slumpmässig chans. Slumpmässiga talgeneratorer i en dator är likartade - de är ett försök att uppnå ett oförutsägbart, slumpmässigt resultat.

RELATERAD: Vad är kryptering och hur fungerar det?

Slumpmässiga talgeneratorer är användbara för många olika syften. Bortsett från uppenbara applikationer som att generera slumpmässiga nummer i syfte att spela eller skapa oförutsägbara resultat i ett dataspel är slumpmässigt viktigt för kryptografi.

Kryptografi kräver nummer som angripare inte kan gissa. Vi kan inte bara använda samma nummer om och om igen. Vi vill skapa dessa nummer på ett mycket oförutsägbart sätt så att angripare inte kan gissa dem. Dessa slumpartier är viktiga för säker kryptering, oavsett om du krypterar dina egna filer eller bara använder en HTTPS webbplats på Internet.

Sann slumpmässiga nummer

Du kanske undrar hur en dator kan faktiskt generera ett slumptal. Var kommer denna "slump" från. Om det bara är en datorkod, är det inte möjligt att de siffror som genereras av datorn kan vara förutsägbara?

Vi brukar gruppera slumpmässiga siffror som datorer genererar i två typer, beroende på hur de genereras: "True" slumpmässig siffror och pseudoslumpmässiga tal.

För att skapa ett "sant" slumptal, mäter datorn någon typ av fysiskt fenomen som äger rum utanför datorn. Till exempel kan datorn mäta radioaktivt förfall av en atom. Enligt kvantteori finns det ingen väg att veta säkert när radioaktivt förfall kommer att inträffa, så detta är i grunden "ren slumpmässighet" från universum. En angripare skulle inte kunna förutsäga när radioaktivt förfall skulle inträffa, så att de inte skulle få veta slumpmässigt värde.

För ett mer dagligt exempel kan datorn lita på atmosfärstörningar eller helt enkelt använda exakt tid du trycker på tangenterna på ditt tangentbord som en källa till oförutsägbar data eller entropi. Till exempel kan datorn märka att du tryckte på en knapp vid exakt 0.23423523 sekunder efter 2 pm ... Ta tillräckligt med de specifika tiderna i samband med dessa tangenttryck och du kommer att få en entropi som du kan använda för att skapa en "sann" slumpmässig siffra. Du är inte en förutsägbar maskin, så en angripare kan inte gissa det exakta ögonblicket när du trycker på dessa tangenter. Den / dev / slumpmässiga enheten på Linux, som genererar slumptal, "block" och returnerar inte ett resultat förrän det samlar tillräckligt entropi för att returnera ett verkligt slumpmässigt tal.

Pseudorandom Numbers

Pseudorandom-nummer är ett alternativ till "Sanna" slumptal. En dator kan använda ett frövärde och en algoritm för att generera nummer som verkar vara slumpmässiga, men det är faktiskt förutsägbart. Datorn samlar inte några slumpmässiga data från miljön.

Detta är inte nödvändigtvis en dålig sak i varje situation. Om du till exempel spelar ett videospel spelar det ingen roll om händelserna som inträffar i det spelet är förkroppsliga av "sanna" slumpmässiga tal eller pseudorandom-nummer. Å andra sidan, om du använder kryptering, vill du inte använda pseudorandom nummer som en angripare kan gissa.

Låt oss till exempel säga att en angripare vet att algoritmen och frösvärdet använder en pseudorandom-nummergenerator. Och låt oss säga att en krypteringsalgoritm får ett pseudorandomtal från denna algoritm och använder den för att generera en krypteringsnyckel utan att lägga till ytterligare slumpmässighet. Om en angripare vet tillräckligt kan de arbeta bakåt och bestämma det pseudorandomnummer som krypteringsalgoritmen måste ha valt i det fallet, bryta krypteringen.

NSA och Intels maskinvaru Random Number Generator

För att underlätta för utvecklare och hjälper till att skapa säkra slumptal, Intel-chips inkluderar en hårdvarubaserad slumptalsgenerator som kallas RdRand. Detta chip använder en entropi-källa på processorn och ger slumpmässiga siffror till programvaran när programvaran begär dem.

Problemet här är att slumptalgenerern är väsentligen en svart låda och vi vet inte vad som händer inom den. Om RdRand innehöll en NSA-bakdörr skulle regeringen kunna bryta krypteringsnycklar som genererades med endast data som levererades av den slumptalsgeneratorn.

Detta är ett allvarligt problem. I december 2013 avlägsnade FreeBSDs utvecklare stöd för att använda RdRand direkt som en slumpmässig källa och sa att de inte kunde lita på det. [Source] Utgången från RdRand-enheten skulle matas in i en annan algoritm som lägger till ytterligare entropi, vilket säkerställer att eventuella bakdörrar i slumptalsgeneratorn inte spelar någon roll. Linux har redan arbetat på detta sätt, ytterligare randomisering av de slumpmässiga data som kommer från RdRand så att det inte skulle vara förutsägbart även om det fanns en bakdörr. [Source] I en nyligen AMA ("Ask Me Anything") på Reddit svarade inte Intel VD Brian Krzanich frågor om dessa problem. [Source]

Det här är troligtvis inte bara ett problem med Intel-chips. FreeBSDs utvecklare ropade Via's chips med namn också. Denna kontrovers visar att det är så viktigt att generera slumptal som är verkligt slumpmässiga och inte förutsägbara.


För att generera "sanna" slumptal samlar slumptalsgeneratorer "entropi" eller till synes slumpmässiga data från den fysiska världen runt dem. För slumpmässiga nummer som inte verkligen behöver vara slumpmässiga, kan de bara använda en algoritm och ett frövärde.

Bildkrediter: rekre89 på Flickr, Lisa Brewster på Flickr, Ryan Somma på Flickr, huangjiahui på Flickr


Varför ser hemknappen på min iPhone 7 känns konstig?

Varför ser hemknappen på min iPhone 7 känns konstig?

Om du just har köpt en iPhone 7 är en av de första sakerna du märker att Home Button känner en lite annorlunda. IPhone 7s hemknapp är inte som någon som har kommit förut: det är inte ens en riktig knapp. Problemet med den gamla hemknappen RELATED: Hur man använder en iPhone med en bruten Hemknapp Hemknappen var alltid en av iPhone: s svaga punkter.

(how-top)

Så här stoppar du din Nintendo-switch från att ta över TV: n medan du laddar upp

Så här stoppar du din Nintendo-switch från att ta över TV: n medan du laddar upp

Med Nintendo-omkopplaren kan du docka din konsol och gå direkt från handenheten till TV på några sekunder. Det är en bra funktion, men om du bara vill docka din konsol för att ladda den, kommer den att störa alla som tittar på TV. Så här slutar du att hända. RELATED: Så här aktiverar du HDMI-CEC på din TV och varför du borde Växeln använder en funktion som heter HDMI-CEC för att ta över din TV när du dockar Det.

(how-top)