nl.phhsnews.com


nl.phhsnews.com / Hoe computers willekeurige getallen genereren

Hoe computers willekeurige getallen genereren


Computers genereren een willekeurig nummer voor alles, van cryptografie tot videogames en gokken. Er zijn twee categorieën van willekeurige getallen - "echte" willekeurige getallen en pseudowillekeurige getallen - en het verschil is belangrijk voor de beveiliging van versleutelingssystemen.

Computers kunnen echt willekeurige getallen genereren door bepaalde externe gegevens te observeren, zoals muisbewegingen of ventilatorruis , wat niet voorspelbaar is en er gegevens van maken. Dit staat bekend als entropie. Op andere momenten genereren ze "pseudorandom" -nummers door een algoritme te gebruiken, zodat de resultaten willekeurig lijken, ook al zijn ze dat niet.

Dit onderwerp is recent controversiëler geworden, waarbij veel mensen zich afvroegen of Intel's ingebouwde hardware-generator voor willekeurige getallen chip is betrouwbaar. Om te begrijpen waarom het misschien niet betrouwbaar is, moet u eerst begrijpen hoe willekeurige getallen worden genereeerd en waarvoor ze worden gebruikt.

Welke willekeurige nummers worden gebruikt voor

willekeurige getallen zijn gebruikt voor vele duizenden jaren. Of het nu gaat om een ​​munt slaan of een dobbelsteen gooien, het doel is om het eindresultaat willekeurig te laten. Willekeurige nummergeneratoren in een computer zijn vergelijkbaar - ze zijn een poging om een ​​onvoorspelbaar, willekeurig resultaat te bereiken.

GERELATEERD: Wat is codering en hoe werkt het?

Willekeurige nummergeneratoren zijn nuttig voor veel verschillende doelen. Naast voor de hand liggende toepassingen zoals het genereren van willekeurige getallen met het oog op gokken of het maken van onvoorspelbare resultaten in een computerspel, is willekeur van belang voor cryptografie.

Cryptografie vereist getallen die aanvallers niet kunnen raden. We kunnen niet dezelfde nummers steeds opnieuw gebruiken. We willen deze nummers op een zeer onvoorspelbare manier genereren, dus aanvallers kunnen ze niet raden. Deze willekeurige getallen zijn essentieel voor veilige codering, of u nu uw eigen bestanden codeert of alleen een HTTPS website op internet gebruikt.

Ware willekeurige getallen

U vraagt ​​zich misschien af ​​hoe een computer kan eigenlijk een willekeurig nummer genereren. Waar komt deze "willekeur" vandaan? Als het gewoon een stukje computercode is, is het dan niet mogelijk dat de nummers die de computer genereert, voorspelbaar zijn?

We genereren de computers met willekeurige getallen in twee typen, afhankelijk van hoe ze worden gegenereerd: "True" willekeurige getallen en pseudo-willekeurige getallen.

Om een ​​"echt" willekeurig getal te genereren, meet de computer een soort fysiek fenomeen dat buiten de computer plaatsvindt. De computer kan bijvoorbeeld het radioactieve verval van een atoom meten. Volgens de kwantumtheorie is er geen manier om zeker te weten wanneer radioactief verval zal plaatsvinden, dus dit is in wezen "pure willekeur" van het universum. Een aanvaller zou niet kunnen voorspellen wanneer radioactief verval zou plaatsvinden, dus zouden ze de willekeurige waarde niet weten.

Voor een meer dagelijks voorbeeld kan de computer vertrouwen op atmosferische ruis of gewoon de exacte tijd dat u toetsen op uw toetsenbord indrukt als een bron van onvoorspelbare gegevens of entropie. Uw computer kan bijvoorbeeld merken dat u na 2 uur op een toets drukt op exact 0,23423523 seconden ... Grijp genoeg van de specifieke tijden die zijn gekoppeld aan deze toetsaanslagen en u hebt een bron van entropie die u kunt gebruiken om een ​​"echte" willekeurige te genereren aantal. Je bent geen voorspelbare machine, dus een aanvaller kan niet precies raden wanneer je op deze toetsen drukt. Het / dev / random-apparaat op Linux, dat willekeurige getallen genereert, "blokkeert" en retourneert geen resultaat totdat het voldoende entropie heeft verzameld om een ​​echt willekeurig getal te retourneren.

Pseudorandom Numbers

Pseudorandom-getallen zijn een alternatief voor "Echte" willekeurige getallen. Een computer kan een seed-waarde en een algoritme gebruiken om getallen te genereren die willekeurig lijken, maar die in feite voorspelbaar zijn. De computer verzamelt geen willekeurige gegevens uit de omgeving.

Dit is niet per se slecht in elke situatie. Als u bijvoorbeeld een videogame speelt, maakt het niet echt uit of de gebeurtenissen in dat spel worden gevat door 'echte' willekeurige getallen of pseudo-willekeurige nummers. Als u daarentegen codering gebruikt, wilt u geen pseudowillekeurige nummers gebruiken die een aanvaller zou kunnen raden.

Laten we bijvoorbeeld zeggen dat een aanvaller het algoritme en de seed-waarde kent die een pseudo-willekeurige nummergenerator gebruikt. En laten we zeggen dat een coderingsalgoritme een pseudorandomnummer krijgt van dit algoritme en het gebruikt om een ​​coderingssleutel te genereren zonder extra willekeur toe te voegen. Als een aanvaller genoeg weet, kunnen ze achterwaarts werken en het pseudo-willekeurige nummer bepalen dat het coderingsalgoritme in dat geval moet hebben gekozen, waarbij de codering is verbroken.

De NSA en de hardware-generator voor willekeurige getallen van Intel

Om het de ontwikkelaars en ontwikkelaars gemakkelijker te maken hulp bij het genereren van veilige willekeurige getallen, bevatten Intel-chips een op hardware gebaseerde willekeurige nummergenerator die bekend staat als RdRand. Deze chip maakt gebruik van een entropiebron op de processor en geeft willekeurige getallen aan software wanneer de software daarom vraagt.

Het probleem hierbij is dat de generator van willekeurige getallen in wezen een zwarte doos is en we weten niet wat erin gebeurt. Als RdRand een NSA-backdoor bevatte, zou de overheid coderingssleutels kunnen breken die werden gegenereerd met alleen gegevens die door die generator voor willekeurige getallen werden verstrekt.

Dit is een ernstige zorg. In december 2013 hebben de ontwikkelaars van FreeBSD de ondersteuning voor het gebruik van RdRand direct verwijderd als een bron van willekeur, waarbij ze zeiden dat ze het niet konden vertrouwen. [Bron] De uitvoer van het RdRand-apparaat zou worden ingevoerd in een ander algoritme dat extra entropie toevoegt, zodat elke achterdeur in de generator voor willekeurige getallen er niet toe doet. Linux werkte al op deze manier, verder randomiseren van de willekeurige gegevens afkomstig van RdRand zodat het niet voorspelbaar zou zijn, zelfs als er een achterdeur was. [Bron] In een recente AMA ("Ask Me Anything") op Reddit heeft Intel CEO Brian Krzanich geen vragen over deze zorgen beantwoord. [Source]

Natuurlijk is dit waarschijnlijk niet alleen een probleem met Intel-chips. De ontwikkelaars van FreeBSD hebben ook de namen van Via's chips bij naam genoemd. Deze controverse laat zien waarom het genereren van willekeurige getallen die echt willekeurig zijn en niet voorspelbaar zijn zo belangrijk is.


Voor het genereren van "echte" willekeurige getallen verzamelen willekeurige nummergeneratoren "entropie" of schijnbaar willekeurige gegevens uit de fysieke wereld om hen heen. Voor willekeurige getallen die niet echt willekeurig moeten zijn, kunnen ze gewoon een algoritme en een seed-waarde gebruiken.

Beeldcredits: rekre89 op Flickr, Lisa Brewster op Flickr, Ryan Somma op Flickr, huangjiahui op Flickr


De zoekgeschiedenis verwijderen in Windows Verkenner

De zoekgeschiedenis verwijderen in Windows Verkenner

Terwijl u typt in het vak Zoeken in Windows 'Verkenner, wordt een lijst met suggesties onder het vak weergegeven. Deze suggesties komen uit de geschiedenis van eerdere zoekopdrachten die u heeft getypt. Dit kan handig zijn om zoekopdrachten sneller en gemakkelijker te maken, maar soms wilt u die geschiedenis wissen.

(how-top)

De datumnotatie aanpassen op de taakbalk van Windows 7

De datumnotatie aanpassen op de taakbalk van Windows 7

Hebt u ooit gewenst dat Windows de volledige datum in plaats van de korte datumnotatie in de taakbalk van Windows 7 weergeeft? Met deze eenvoudige zelfstudie kunt u Windows de datum laten weergeven zoals u dat wilt. Klik op de rechterbenedenhoek van het scherm waar de tijd en datum in het systeemvak worden weergegeven.

(how-top)