Fråga:
Är Arduino perfekt för att skapa en HRNG (hårdvaruslumpgenerator)?
Tim Post
2009-11-15 23:00:14 UTC
view on stackexchange narkive permalink

Jag sätter ihop en design för en slumpgenerator för hårdvara som använder flera entropikällor ( kombinerad ):

  • Omgivande ljus
  • Omgivningsljud (och ljudnivåer)
  • Omgivningstemperatur
  • Omgivande luftfuktighet
  • Placering av själva enheten (upp och ner, lutad åt vänster, med titeln höger, etc)
  • Andra källor i framtiden, eventuellt till och med GPS-data (markerade som möjliga eftersom två användare kan stå bredvid varandra, följaktligen avgörande om du känner till dem.)

Min idé är att göra en entropipool till "laddare" som människor kan bära med sig under dagen medan den fortsätter att skriva till en USB-enhet.

Efter några timmar har användaren en fin ~ 4 GB entropipool som kan anslutas till en dator och användas. Jag har inte råd med de riktigt dyra QRNG: erna baserade på lätt eller radioaktivt sönderfall, så jag försöker komma på något billigare.

Är Arduino det bästa valet för prototyping av detta enligt din åsikt? Om inte, vad skulle du rekommendera?

Nio svar:
todbot
2009-11-16 01:38:19 UTC
view on stackexchange narkive permalink

Jag tror att du vill gå längs vägen som busz föreslår. Sök efter begreppet "diodbrus". PN-korsningarna i dioder och transistorer kan producera nära perfekt gaussiskt vitt brus. Provtagning som ska vara en källa till entropi som är bättre än någon miljökälla.

Problemet med de flesta miljö- / omgivningsdata är att värdena inte ändras så mycket över tiden: temperatur, luftfuktighet, ljus och ljud har alla mindre än en storleksordning med stor variation lägen. En accelerometer för att mäta rörelse kan vara en bra variationskälla om den är monterad på en person, men du skulle sannolikt behöva göra lite signalbehandling för att ta bort de normala svängningslägena som finns i hur människor rör sig. En omgivningsljus &-ljudkälla kan ha ganska stor variation om den placeras i ett stadsområde med hög densitet, men återigen tror jag att det skulle bli mycket upprepning. Jag tror fortfarande att den bästa källan till entropi skulle vara att gå ner mot grundläggande fysiska egenskaper hos material som diodbrus än att gå upp i skala och titta på miljöfaktorer som kan läsas av en mikrokontroller.

bpijls
2009-11-16 00:15:32 UTC
view on stackexchange narkive permalink

Det finns några intressanta kretsar för HRNG utan behov av omgivande entropikällor: http://www.cryogenius.com/hardware/rng/ http://robseward.com/ itp / adv_tech / random_generator / och mer ...

Det är definitivt möjligt att anpassa en av dessa kretsar till en Arduino-sköld. Arduino skulle då fungera som en gateway mellan HRNG och en PC.

Om du verkligen behöver entropi från omgivningen har arduino 6 analoga ingångskanaler så att du kan läsa upp nästan vilken sensor du än kan tänka dig och använd informationen som en källa för ett slumpmässigt utsäde.

Jason S
2009-11-25 07:14:09 UTC
view on stackexchange narkive permalink

Två kommentarer:

  1. Titta på Bruce Schneiers Yarrow PRNG-algoritm. Huvudpoängen är att du kan ha en riktigt elak källa till "sann" slumpmässig information; så länge du ackumulerar tillräckligt med det över tiden kan den resulterande osäkerheten kombineras med pseudoslumpmässiga nummergenereringstekniker för att ge anständiga slumptal.

  2. Å andra sidan, Jag måste hålla med de flesta andra svarare. Långsamt föränderliga signaler från miljösensorer är elaka källor till entropi och kan lätt påverkas. Se till att du använder något som bygger på inneboende enhetsbrus, och det kommer att vara okänsligt för miljöförändringar.

Amos
2009-12-28 05:33:14 UTC
view on stackexchange narkive permalink

Jag har just upptäckt den här slumptalsgeneratorn:

Hourglass Random Number Generator http://makezineblog.files.wordpress.com/2009/12/usbsand. jpg? w = 600&h = 703

över på Make: Blog och trodde att du skulle vara intresserad.

Hänvisar du till ["USB Hourglass random number generator"] (http://blog.makezine.com/2009/12/23/usb-hourglass-random-number-generat/)?
Ja det var det. Den ursprungliga länken var till dess "hemsida på comcast som inte längre finns där. Tack. Fixade länkarna nu.
SiliconFarmer
2009-11-16 15:20:15 UTC
view on stackexchange narkive permalink

Jag instämmer i ovanstående två svar. Mänskliga aktiviteter och omgivande avläsningar kommer att göra en fruktansvärd slumpmässig pool. Men det låter som om du bara kommer att bli övertygad om detta genom att prova det och själv kontrollera den resulterande slumpmässigheten. Det kommer att bli en fantastisk inlärningsupplevelse för dig!

Arduino är bra för den här applikationen. Alla sensorer du är intresserad av kan kopplas till Arduino och det finns Arduino-bibliotek tillgängliga för dessa sensorer.

Kolla in dessa självstudier om hur du ansluter sensorer till Arduino: http: //www.ladyada .net / lär / sensorer /

Seidleroni
2009-11-21 23:16:07 UTC
view on stackexchange narkive permalink

Detta kan vara ett alternativ för dig. Det är från sparkfun och inte billigt, men det kommer förmodligen att vara utmärkt som en "sann" slumpgenerator. Den använder en geigercounter för att generera slumpmässiga siffror.

https://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=132

Det ser intressant ut.
jluciani
2009-12-16 05:50:53 UTC
view on stackexchange narkive permalink

Ett antal av de vita brusgeneratorerna i de analoga musiksynteserna (Moog och Arp) skulle kunna löpa en transistor. Om du frågar online efter Minimoog-schemat eller ARP4027 skulle du hitta schemat.

Jag gjorde en PCB-layout för ARP4027. Om du inte hittar schemat kan du skicka ett mejl till mig.

National hade skapat en digital slumpgenerator - MM5437. IIRC det fanns några program för en AT-liten som skulle göra det också. Kan vara ett roligt litet projekt.

wackyvorlon
2009-11-25 09:00:44 UTC
view on stackexchange narkive permalink

Jag har nyligen läst en mycket intressant diskussion om att använda motstånd för att generera slumpmässigt brus. På grund av kvanteffekter kommer ett motstånd att producera en mycket liten spänning. Detta kan förstärkas med en op-amp för att producera en högkvalitativ källa till slumpmässigt brus.

J. Polfer
2010-01-06 23:09:57 UTC
view on stackexchange narkive permalink

Du kan använda sensorinmatningen som frön till en pseudoslumpgenerator. Linux OS använder inmatning från tangentbordet / musen som frön till / dev / random. Bara en idé.



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 2.0-licensen som det distribueras under.
Loading...