Hvordan datamaskiner genererer tilfeldige tall

Nov 4, 2024
Personvern og sikkerhet

Datamaskiner genererer tilfeldig tall for alt fra kryptografi til videospill og gambling. Det er to kategorier av tilfeldige tall - “sanne” tilfeldige tall og pseudorandomnumre - og forskjellen er viktig for sikkerheten til krypteringssystemer.

Datamaskiner kan generere helt tilfeldige tall ved å observere noen eksterne data, som musebevegelser eller viftestøy, som ikke er forutsigbar, og lage data fra den. Dette er kjent som entropi. Andre ganger genererer de "pseudorandom" tall ved å bruke en algoritme slik at resultatene virker tilfeldige, selv om de ikke er det.

Dette emnet har blitt mer kontroversielt den siste tiden, med mange som stiller spørsmålstegn ved om Intels innebygde chip for generatorer av tilfeldige tallgeneratorer er pålitelig. For å forstå hvorfor det kanskje ikke er pålitelig, må du forstå hvordan tilfeldige tall genereres i utgangspunktet, og hva de brukes til.

Hva tilfeldige tall brukes til

Tilfeldige tall har blitt brukt i mange tusen år. Enten det er å vende en mynt eller kaste terninger, er målet å la sluttresultatet være tilfeldig. Tilfeldige tallgeneratorer i en datamaskin er like - de er et forsøk på å oppnå et uforutsigbart, tilfeldig resultat.

I SLEKT: Hva er kryptering, og hvordan fungerer det?

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

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

Ekte tilfeldige tall

Du lurer kanskje på hvordan en datamaskin faktisk kan 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 forutsigbare?

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

For å generere et “sant” tilfeldig tall, måler datamaskinen en slags fysisk fenomen som foregår utenfor datamaskinen. For eksempel kan datamaskinen måle det radioaktive forfallet til et atom. I følge kvanteteorien er det ingen måte å vite sikkert når radioaktivt forfall vil forekomme, så dette er egentlig "ren tilfeldighet" fra universet. En angriper kunne ikke forutsi når radioaktivt forfall ville oppstå, så de ville ikke vite den tilfeldige verdien.

For et mer dagligdags eksempel kan datamaskinen stole på atmosfærisk støy eller bare bruke den nøyaktige tiden du trykker på tastene på tastaturet som en kilde til uforutsigbare data eller entropi. For eksempel kan datamaskinen legge merke til at du trykket på en tast nøyaktig 0,23423523 sekunder etter klokka 14. Ta tak i de spesifikke tidene som er knyttet til disse tastetrykkene, og du vil ha en kilde til entropi du kan bruke til å generere en "sann" tilfeldig Nummer. Du er ikke en forutsigbar maskin, så en angriper kan ikke gjette det nøyaktige øyeblikket når du trykker på disse tastene. De / dev / tilfeldig enhet på Linux , som genererer tilfeldige tall, "blokkerer" og ikke returnerer et resultat før den samler nok entropi til å returnere et virkelig tilfeldig tall.

Pseudorandom Numbers

Pseudorandom tall er et alternativ til "sanne" tilfeldige tall. En datamaskin kan bruke en såverdi og en algoritme til å generere tall som ser ut til å være tilfeldige, men som faktisk er forutsigbare. Datamaskinen samler ikke inn noen 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 oppstår i spillet er forårsaket av "sanne" tilfeldige tall eller pseudorandom-tall. På den annen side, hvis du bruker kryptering, vil du ikke bruke falske tilfeldigheter som en angriper kan gjette.

La oss for eksempel si at en angriper kjenner algoritmen og frøverdien en pseudorandom tallgenerator bruker. 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 ekstra tilfeldighet. Hvis en angriper vet nok, kan de jobbe bakover og bestemme det pseudorandomnummeret som krypteringsalgoritmen må ha valgt i så fall, og bryte krypteringen.

NSA og Intels Hardware Random Number Generator

For å gjøre ting lettere for utviklere og bidra til å generere sikre tilfeldige tall, inkluderer Intel-brikker en maskinvarebasert tilfeldig tallgenerator kjent som RdRand. Denne brikken bruker en entropikilde på prosessoren og gir tilfeldige tall til programvaren når programvaren ber om det.

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

Dette er en alvorlig bekymring. 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 fra RdRand-enheten blir matet inn i en annen algoritme som legger til ekstra entropi, og sørger for at eventuelle bakdører i tilfeldige tallgenerator ikke har betydning. Linux arbeidet allerede på denne måten, og randomiserte ytterligere tilfeldige data fra RdRand, slik at det ikke ville være forutsigbart selv om det var en bakdør. [ Kilde ] I en nylig AMA (“Ask Me Anything”) på Reddit, svarte ikke Intel-sjef Brian Krzanich på spørsmål om disse bekymringene. [ Kilde ]

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


For å generere "sanne" tilfeldige tall, samler tilfeldige tallgeneratorer "entropi", eller tilsynelatende tilfeldige data fra den fysiske verden rundt dem. For tilfeldige tall som ikke gjør det egentlig må være tilfeldig, kan de bare bruke en algoritme og en frøverdi.

Bildekreditt: rekre89 på Flickr , Lisa Brewster på Flickr , Ryan Somma på Flickr , Huangjiahuion Flickr

.post-innhold .inngangs-bunntekst

How Do Computers Generate Random Numbers?

Why Computers Can't Generate Random Numbers

Can Computers Generate True Random Numbers | CodeinVeins

How Do Computers Generate Random Numbers? #shorts

How Machines Generate Random Numbers With Time

Can Computers Generate Random Numbers?! | Tech Shorts

How Computers Generate Random Numbers | Quantum, ITER, COVID Mutations

How Random Numbers Are Generated

Random Numbers - Numberphile

Almost All Random Numbers Are Actually Fake

Random Numbers (How Software Works)

How To Generate Pseudorandom Numbers | Infinite Series

Lecture 16 - Generation Of Random Numbers

What Is Random?

Pseudo Random Numbers And Stream Ciphers (CSS322, L9, Y14)

Is Anything Truly Random?

How Random Is A Computer Generator Actually?


Personvern og sikkerhet - Mest populære artikler

Slik importerer du LinkedIn-kontakter mens du holder e-posten din privat

Personvern og sikkerhet Nov 5, 2024

Når du bruker LinkedIn, handler det om hvem du kjenner. For å importere kontakter må du imidlertid normalt la tjenesten få tilgang til e-posten din og gi opp litt personvern. Sl..


Slik gjør du om en ekkoknapp til en hjemmelåseknapp

Personvern og sikkerhet Nov 21, 2024

UCACHED INNHOLD Ekkoknapper er enkle Bluetooth-enheter som kobles til en Amazon Echo . Til nå har de blitt henvist til enkle summerlignende knapper for bruk i spil..


Hvordan fungerer Windows Defenders nye utnyttelsesbeskyttelse (og hvordan du konfigurerer den)

Personvern og sikkerhet Oct 20, 2025

UCACHED INNHOLD Microsofts Fall Creators Update endelig legger til integrert utnyttelsesbeskyttelse til Windows. Du måtte tidligere oppsøke dette i form av Micros..


Slik blokkerer du automatisk søppelsamtaler på en iPhone

Personvern og sikkerhet Sep 23, 2025

UCACHED INNHOLD Ingenting er like irriterende som å motta spam-samtaler, spesielt når du ikke vet at det er en spam-samtale i utgangspunktet. Men takket være en gratis app, kan..


Hvordan åpner du en Windows-brannmurmelding?

Personvern og sikkerhet Dec 13, 2024

Hvis du setter opp et nytt program som trenger nettverkstilgang, men ikke følger nøye med, kan det hende at du ved et uhell får Windows-brannmuren til å blokkere programmet. Hvo..


Sikre dine private Word 2007-dokumenter

Personvern og sikkerhet May 28, 2025

Microsoft Office lar deg kryptere Office-dokumenter og PDF-filer, slik at ingen selv kan se filen med mindre de har passordet. Moderne versjoner av Office bruker sikre krypt..


Slik bruker du den gamle Wi-Fi-ruteren din som en nettverksbryter

Personvern og sikkerhet Jul 5, 2025

Bare fordi den gamle Wi-Fi-ruteren din er blitt erstattet av en nyere modell, betyr det ikke at den trenger å samle støv i skapet. Les videre når vi viser deg hvordan du tar en g..


Endre eller tilbakestill Windows-passord fra en Ubuntu Live CD

Personvern og sikkerhet Jul 11, 2025

Hvis du ikke kan logge på selv etter å ha prøvd de tolv passordene dine, eller hvis du har arvet en datamaskin med passordbeskyttede profiler, må du ikke bekymre deg - du trenger ikke å ..


Kategorier