Slumptalsgenerator

Från Wikipedia
Hoppa till: navigering, sök

En slumptalsgenerator är en algoritm eller fysisk enhet som är avsedd att generera en sekvens av element (ofta tal) som kan användas som en slumpmässig sekvens. Det har funnits metoder för att generera slumpmässiga resultat i tusentals år, i form av tärningskast eller myntkast, blandande av spelkort, och liknande. Ett vanligt test för slumpmässighet för sådana sekvenser är att försöka förvissa sig om att sekvensen inte har några mönster, eller mindre rigoröst att sekvensen inte har några enkelt skönjbara mönster.

"Riktiga" slumptal kontra pseudoslumptal[redigera | redigera wikitext]

Det är svårt att skilja en "riktig" slumptalssekvens från något annat eftersom själva konceptet slumpmässighet är svårdefinierat. Vad som är allmänt känt är att varje "slumptalsgenerator" som enbart använder sig av deterministiska algoritmer inte kan betraktas som en "riktig" slumptalsgenerator, eftersom dess slumptalssekvens alltid är förutsägbar. John von Neumann sade "Den som använder aritmetiska metoder för att producera slumptal är en syndare", vilket sammanfattar situationen koncist.

Dock kan, i några fall, noggrant utvalda pseudoslumptalsgeneratorer användas instället för riktiga slumptal i några tillämpningar. Noggrann numerisk analys behövs ofta för att få ett mått på hur "slumpmässig" sekvensen egentligen är.

Slumptal i datorvärlden[redigera | redigera wikitext]

De flesta programspråk har funktioner, inbyggda eller i programbibliotek som utsäger sig för att vara slumptalsgeneratorer. De är ofta utformade så att de ger ett flyttal jämnt fördelat mellan 0 och 1.

Sådana funktioner är deterministiska till sin natur, och därför inte verkligt slumpmässiga; dessutom har de ofta usla statistiska egenskaper och kan ibland upprepa mönster efter bara några tiotusentals anrop. Dessa funktioner initieras ibland med datorns realtidsklocka som kanske kan ge tillräcklig slumpmässighet för datorspel, men de får aldrig användas för många andra tillämpningar, framför allt kryptografiska sådana. Bättre slumptal kan erhållas från mätningar på hur realtidsklockan "drar sig". Ännu bättre slumptalskvalitet kan erhållas på flera operativsystem; se till exempel /dev/random på flera varianter av BSD Unix, Linux, Mac OS X och Solaris, eller motsvarandeMicrosoft Windows.

Slumptalsalstring från fysikaliska processer[redigera | redigera wikitext]

Det råder allmän överenskommelse om att om det finns sådana saker som "riktiga" slumptal kommer de sannolikast att hittas i fysikaliska processer som är, såvitt vi vet, oförutsägbara.

En fysikalisk slumptalsgenerator baseras på i princip slumpmässiga atomiska eller subatomiska fysikaliska processer som resulterar från kvantmekanikens osäkerhetsprincip. Några exempel är radioaktivt sönderfall och vitt brus. Fysikaliska slumptalsgeneratorer som baserar sig på kvantmekaniska processer har fördelen att de genererar sekvenser som är fullständigt oförutsägbara

För att uppnå en slumpmässighet som ligger mellan den från specialiserad hårdvara och den från deterministiska algoritmer, kräver några säkerhets- och krypteringsrelaterade program att användaren gör en lång följd av musrörelser och/eller tangentbordsnedslag så "slumpmässigt" som möjligt.

Användningsområden[redigera | redigera wikitext]

Slumptalsgeneratorer förekommer i tillämpningar som hasardspel, datorsimulering, kryptografi och liknande områden där ett oförutsägbart resultat är önskvärt.

Hårdvarubaserade slumptalsgeneratorer är särskilt användbara i sammanhang där det är av stor vikt att den använda slumptalsgeneratorn producerar ett resultat som är oförutsägbart för en utomstående. Ett exempel är tillämpningar som kräver skydd mot intrång, fusk eller bedrägerier.

Pseudoslumptalsgeneratorer har, som nämnts, egenskapen att samma frö (startvärde) ger upphov till samma följd av slumptal. Detta är användbart i sammanhang där man behöver generera samma följd av tal upprepade gånger. En vanlig teknik vid kryptering är att sändare och mottagare kommer överens om en hemlig krypteringsnyckel och sedan använder en pseudoslumptalsgenerator med denna nyckel som frö för att kryptera och dekryptera information.

Kvasislumptal som alternativ[redigera | redigera wikitext]

Några beräkningar som använder sig av en slumptalsgenerator kan sammanfattas som beräkningen av ett totalvärde eller genomsnittsvärde, som till exempel integralberäkningar med hjälp av Monte Carlometoden. För sådana problem kan det vara möjligt att hitta en mer noggrann lösning genom att använda sig av så kallade lågdiskrepanssekvenser, även kallade kvasislumptal. Sådana sekvenser har tydliga mönster som fyller igen gap jämnt; en "riktig" slumptalsekvens kan lämna större gap (och gör så ofta i praktiken).

Se även[redigera | redigera wikitext]

Externa länkar[redigera | redigera wikitext]

Slumptal tillgängliga på Internet från källor som är okända, och inte verifierade av användaren, bör aldrig används för kryptografiska syften.


Venn A intersect B.svg Matematikportalen – portalen för matematik på svenskspråkiga Wikipedia.