Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 77 reacties

Een ontwikkelaar uit Nieuw-Zeeland werkt aan een geheel open hardware- en softwareplatform voor een betrouwbare toevalsgenerator. De OneRNG moet via een radio-ontvanger en een lawinediode voldoende entropie leveren bij het genereren van willekeurige getallen.

Volgens ontwikkelaar Paul Campbell is een toevalsgenerator waarbij de gebruiker volledig inzicht heeft in de gebruikte hardware en software noodzakelijk in het post-Snowden-tijdperk om zo zeker te zijn dat de gegenereerde getallen zo willekeurig mogelijk zijn. De OneRNG gebruikt voor het genereren van willekeurige getallen twee elementen: van een zogenaamde lawinediode wordt de gegenereerde ruis gebruikt, terwijl een radio-ontvanger de entropie vergroot op basis van opgevangen ruis.

De radiomodule filtert volgens de maker te sterke signalen weg om zo te voorkomen dat een aanvaller de werking van de OneRNG kan manipuleren. Ook is de rf-receiver met een deksel af te schermen tegen manipulatie van buitenaf en de ontvanger 'danst' willekeurig door frequenties. Via een zogeheten 'whitening'-optie kan er extra entropie worden gegenereerd. De OneRNG kan geprogrammeerd worden, maar de gebruiker moet daarvoor een adapter aanschaffen. Dit moet hardwarematige aanvallen via bijvoorbeeld een usb-aansluiting voorkomen.

De willekeurige getallen die de OneRNG genereert kunnen gebruikt worden voor bijvoorbeeld encryptiedoeleinden en zijn bijvoorbeeld in Linux toegankelijk via de rngd-deamon, verantwoordelijk voor het leveren van willekeurige getallen. Campbell laat aan The Register weten dat hij de OneRNG in december wil presenteren, waarna via een crowdfundingactie voldoende geld opgehaald moet worden voor een marktintroductie. Het apparaatje zal naar verwachting 50 dollar, ofwel 40 euro, kosten.

OneRNG to rule them all

Moderatie-faq Wijzig weergave

Reacties (77)

"en de ontvanger 'danst' willekeurig door frequenties"; de quote van de productpagina: "it randomly (in time and frequency) skips around channels in and around the 2.4GHz wifi band measuring RF signal levels and sampling just the least significant bit".
Wat ik me dan afvraag, hoe 'random' is random?

Verder is die ontvangen standaard uitgeschakeld omdat hij theoretisch een hoger risico heeft om van buitenaf benvloed te worden. Dit wordt ook vermeld op de productpagina:
"The default setting has the primary (avalanche diode) noise source enabled, and the secondary (RF source) disabled".
"This performance is better than the avalanche diode circuit, but RF is by definition theoretically more susceptible to outside manipulation".

[Reactie gewijzigd door Gody op 17 november 2014 11:43]

Random is niet hetzelfde als evenredig!
Een random bron die 90% van de tijd een 0 geeft en 10% een 1 is nog steeds random.
Wil je hier een evenredige random factor van maken, dan zul je bijvoorbeeld honderd bits moeten optellen, dan bepalen waar 50% van de waardes liggen en deze threshold gebruiken om n nieuwe, evenredige bit te berekenen.
Dat is dan ook wat die "whitening" optie doet. Dat heeft niks met het extra aanmaken van entropie te maken.
Dat was ook mijn eerste vraag: hoe random is dat dansen door de frequenties. Dit klinkt als de achilleshiel van het project.
Maakt dat uit dan? Het wordt nog altijd gecombineerd met de data van die lawinediode en de achtergrondruis op die frequentie.
Als je die band maar genoeg "verzuipt" in sterke signalen dan heb je geen achtergrondruis meer... de vraag is dus of een lawinediode op zich voldoende is om random te zijn ?
De 2.4 Ghz band is vrij beschikbaar omdat de kosmische straling ook in dat gebied zit.
De Radio astronomen zullen erg blij zijn dat hun waarnemingsruimte ook drastisch is afgenomen door het te "verlichten" met WiFi signalen ;-)
Overigens is hier nog een TRNG die volledig open source is en op het moment verkrijgbaar via Tindie:
https://github.com/waywardgeek/infnoise
https://www.tindie.com/products/WaywardGeek/infinite-noise/

Let wel dat het op andere principes berust - staat allemaal heel netjes uitgelegd in de github repo;
without knowing the current amplitude of the noise source, there is no signal an attacker can add to our noise source to control the output. He may be able to flip the output bit, but since it was already random, his signal injection fails to control the result, which is still random. In fact, an attacker's injected signal causes the output to be more random, since an attacker is a nice unpredictable source of entropy! Infinite Noise Multipliers add entropy from all noise sources, even those from an attacker.
De maker ervan raadt overigens wel de OneRNG aan als je veel van deze dingen nodig hebt - hij heeft de productiecapaciteit niet; wellicht ook weer op te lossen met wat crowdfunding, maar dat is aan hem :)

[Reactie gewijzigd door Kamiquasi op 17 november 2014 13:46]

Een andere interessante RNG is deze gebaseerd op CPU en scheduling jitter:
http://www.chronox.de/jent/doc/CPU-Jitter-NPTRNG.html

Is volledig in software te doen en werkt zowel in kernel mode als in usermode.
Het is de vraag of dit echt nodig is natuurlijk en of je niet de wifi-adapter kan gebruiken voor random-input gecombineerd met andere bronnen, internet latency, of zo.
Het hele punt is hier dat sommige random-bronnen gemanipuleerd kunnen worden zodat de output voorspelbaar wordt. Met genoeg kennis van het systeem zou dit kunnen leiden tot situaties waarbij een man-in-the-middle attack mogelijk wordt, SSL-certificaten achterhaald kunnen worden, gecodeerde gegevens gedecodeerd kunnen worden, of de uitkomst van een loterij kan worden vastgesteld.

Natuurlijk is de waarschijnlijkheid dat zoiets uitgebuit wordt heel klein, waardoor dit voor dagelijks gebruik wellicht overkill is. Er zijn echter situaties waar goede randomwaarden erg belangrijk zijn, bijvoorbeeld om betrouwbare codering van gegevens te waarborgen of bij lotingen.

Afgezien daarvan biedt een apparaat zoals dit natuurlijk ook best wat gemak. Het uitlezen van diverse bronnen op een server om entropie te krijgen vereist mogelijk processorkracht (en is niet altijd even eenvoudig in te regelen). Als dit nu uitbesteed kan worden aan een apparaat zoals dit heb je altijd voldoende randomness beschikbaar, en het is nog betrouwbaarder ook.
Het hele punt is hier dat sommige random-bronnen gemanipuleerd kunnen worden zodat de output voorspelbaar wordt. Met genoeg kennis van het systeem zou dit kunnen leiden tot situaties waarbij een man-in-the-middle attack mogelijk wordt
Een leuk voorbeeld is misschien wel tweakers.net zelf :P. Als je inlogt krijg je een cookie met een sessie-id terug waardoor het systeem weet dat je ingelogd bent. Een sessie-id is 128 bits, bestaande uit 32 hexadecimale karakters. Deze 32 karakters werden gegenereerd door een mersenne twister. Nou zou je kunnen zeggen dat je ds 128 bits aan entropie hebt en sessie-id's daardoor moeilijk zijn te raden. Echter, een MT is een deterministisch proces, en hij werd geseed door PHP op basis van de huidige tijd (in microseconde oid) en het huidige process id (dit is uit de broncode van PHP op te maken). De hoeveelheid bits aan bron-entropie is dus gelimiteerd - in ieder geval 16 bits aan process id, en dan nog een aantal bits afhankelijk van de tijdsspanne. Als je weet dat een sessie in een bepaalde minuut is gegenereerd, dan hoef je dus maar 216 * 60.000.000 mogelijkheden af te lopen om een werkend sessie-id te vinden - een koud kunstje voor de meeste PC's :)

Inmiddels gebruiken ze geloof ik /dev/urandom als entropiebron.

.edit @ hieronder: dan was dev/urandom, niet /dev/random :)

[Reactie gewijzigd door .oisyn op 17 november 2014 13:57]

Volgens het bronartikel kan /dev/random kan maar een paar bytes per seconde opleveren. Dat is voor tweakers misschien genoeg, maar voor serieuze encryptie natuurlijk veel te weinig.
Well spoken sir.

Ter aanvulling: bandbreedte is ook een issue. Dat ding levert 64kb per seconde, als je dat met alleen interne hardware wil genereren heb je te weinig bronnen. Plus dat het CPU kost.
Het hele punt van random is dat je bronnen niet alleen willekeurige getallen opleveren, maar dat die ook netjes evenredig verdeeld moeten zijn over het hele bereik. Ik kan me voorstellen dat netwerk latency een meer Gaussische verdeling heeft, en dus ongeschikt is.
Een ander punt is dat een waarde ook volledig onafhankelijk moet zijn van de vorige en volgende. Bij latency is een vorige meting zeker van invloed op de volgende. Als je nu een lage ping hebt is het erg onwaarschijnlijk dat de volgende hoog is en andersom.

Het vinden van de juiste bronnen is dus extreem lastig, en vooral het bewijzen / aantonen / annemelijk maken van je 'witheid'
Als de verdeling bekend is kan een witte bron berekend worden.
1) Bepaal de 50% drempel van je bron.
2) Neem N samples en tel ze op
3) Genereer n bit door te bepalen of de som boven of onder de 50% drempel ligt.
Ja, maar dat werkt natuurlijk alleen als de verdeling stabiel is in de tijd. En dat is nou net het probleem met latency, wifi, etc.
Linux developers kennende zullen ze er ook gewoon voor pleiten om deze entropie gewoon toe te voegen in de entropie-pool, samen met alle andere entropie die ze al ter beschikking hebben.

Het zou wel zeer interessant zijn om at bootup de random number pool te seeden in omgevingen waar weinig entropie beschikbaar is, hoewel dit meestal embedded stuff is waar je dan beter zo'n circuit zelf integreert.
Zou tof zijn als je dan tevens een range kan instellen (bijvoorbeeld dat het signaal omgezet wordt naar waarden in de range 2-12) (wordt niet duidelijk uit het artikel). Gevoel van controle bij Monopoly ("God, ik vraag u niet veel, maar ik wil niet landen op de kalverstraat dus alles behalve 9, aight?") is dan helemaal weg. :+

[Reactie gewijzigd door draytek2950 op 17 november 2014 11:35]

Uhm.. je bedoeld
  • Het getal uit het device doe je met een rekensom verkleinen naar een getal tussen de 0 en 1. Dus als het hoogste getal 100 is, random getal is 64 -> 64 / 100 = 0.64
  • Daarna dit random getal (tussen 0 en 1) -> 0,64 * 10 + 2 = 8,4
Dan heb je altijd een getal tussen 2 en 12.

Voor met dobbelstenen waarbij round voor afronden staat:
  • dobbelsteen 1 = round(random getal *5 +1)
  • dobbelsteen 2 = round(random getal *5 +1)
Even optellen en klaar!

ik vergat dat het over dobbelstenen ging, aangepast.

[Reactie gewijzigd door Mic2000 op 17 november 2014 13:28]

2 dobbelstenen zijn natuurlijk niet uniform verdeeld tussen 2 en 12, maar vooruit.
eerst een dobbelsteen en dan nog een dobbelsteen en optellen is inderdaad een beter model. En afronden op gehele getallen zal ook nodig zijn per dobbelsteen.....
Dat is een beter model om de kansenspreiding zoals met twee fysieke dobbelstenen na te bootsen. Het is van de toepassing afhankelijk of je dat ook daadwerkelijk wilt.

Voor Monopoly kan je trouwens niet anders, want het 'dubbel' gooien speelt ook een grote rol in dat spel.
Daarom zou het dan handig zijn om 2x 1-6 te genereren en deze bij elkaar op te tellen.
Op de lange duur wel als de dobbelstenen geen afwijking bevatten, gooi 1000 keer en het zal redelijk hetzelfde worden. TENZIJ :) je de volgorde niet meerekent. Dan alle combinaties die geen dubbele getallen bevatten 2x zo vaak aanwezig dan tov de dubbele getallen.
Nee.
Je hebt 2x zoveel kans om 7 te gooien dan 4 of 10.
Eeehm je hebt helemaal gelijk, ik had niet goed gelezen. Ik ging niet uit van de som. Het ging mij erom de combinaties van de getallen dus je gooit een 1,2 of 2,1 of een 2,2. De kans daarop is evenredig groot.
Het is makkelijk in te zien dat de kans op een getalwaarde niet gelijk is bij het gooien van twee dobbelstenen.
  • 1 mogelijkheid om 2 of 12 te gooien (nl. dubbel 6 / dubbel 1)
  • 2 mogelijkheden om 3 of 11 te gooien (nl 1+2 of 2+1 / 5+6 of 6+5)
  • 3 mogelijkheden om 4 of 10 te gooien (nl 1+3, 3+1 of 2+2)
  • 4 mogelijkheden om 5 of 9 te gooiden (1+4, 2+3, 4+1 of 3+2)
  • 5 mogelijkheden om 6 of 8 te gooien (1+5, 2+4, 3+3, 5+1 of 4+2)
  • 6 mogelijkheden om 7 te gooien (1+6, 2+5, 3+4, 6+1, 5+2 of 6+1)
Als je Catan speelt, zul je hiermee bekend zijn.

Dit betekent uiteraard niet dat de toevalsgenerator onbruikbaar is. Simpelweg de range voor getalwaarde 7 dan 6 maal zo groot maken als die voor getalwaarde 2.
Als je Catan speelt, zul je hiermee bekend zijn.
Inderdaad ;).

[Reactie gewijzigd door Ruudjah op 17 november 2014 13:38]

D = floor(RNG * 6 +1)
lijkt me veel beter dan
D = round(RNG * 5 + 1)
Het probleem met de laatste is dat getallen de ranges
[0.0 .. 0.1) => 1
[0.1 .. 0.3) => 2
[0.3 .. 0.5) => 3
[0.5 .. 0.7) => 4
[0.7 .. 0.9) => 5
[0.9 .. 1.0) => 6
opleveren. Zoals je ziet is de range telkens 0.2, behalve bij 1 en 6!
De kans dat je een 2 gooit is dus tweemaal zo groot als dat je een 1 gooit. Slechte dobbelsteen dus.
Goed punt! Alleen kan je met jouw formule een zeven gooien als RNG = 1
Ik ga er van uit dat het bereik van de RNG [0 .. 1) is, dus tot 1, niet tot en met 1.
De enige manier om dat op te lossen is door de formule
D = floor(RNG * 6 + 0.999999999999999999999999999999...)
te nemen.
Mathematisch is 0.99... gelijk aan 1, dus is de formule ongewijzigd.
Aan de andere kant, de kans dat je exact 1 uit je RNG krijgt is 1 op de 10000000000000000, ofwel 0.000000000000000...1, wat weer gelijk is aan 0.
Als je met floating point gaat werken terwijl je discrete cijfers nodig hebt ben je meestal al verloren. Je krijgt dan vervelende afrondingsverschillen enzo. Als je grote getallen nodig hebt gaat de vlieger al helemaal niet meer op natuurlijk.

Je kan beter een byte RNG, dus een waarde van 0..255. Als je dan een getal van 1 tot 6 wil genereren dan moet je modulus 6 doen. Echter, de boventste getalletjes mag je niet meerekenen want die gaan niet van 0 tot 5 maar van 0 tot 3 (42 * 6 = 252). Dus mits gelijk of hoger dan 252, weg ermee en een nieuwe byte pakken. Dan doe je daarna gewoon mod 6 en je hebt een keurig getal van 0 tot 5. Voor een dobbelsteen tel je er dan 1 bij op.

Natuurlijk kan je ook wat meer of minder bitjes van de RNG nemen, dat kan je een beetje tweaken. Dit is nou eenmaal tweakers :)
Als je had gelezen: manipulatie van de waarde is nu juist niet mogelijk, en dat is de bedoeling..
Wat je in de aanroepende programmatuur doet met de willekeurige input moet je zelf weten.. Als jij dat naar 2-12 wilt mappen dan kan dat..
Manipulatie lijkt wel mogelijk te zijn door bewust bepaalde radio signalen uit te zenden.
@Maniak In het stukje staat dus dat 'sterke' signalen uitgefilterd zullen worden, dus een radiozender vlakbij 'valt niet op'.
Waarmee niet gezegd is dat je met een veelvoud aan zwakke signalen op verschillende frequenties het maaiveld in de achtergrondruis niet een beetje kunt omploegen natuurlijk. Of je daar genoeg mee bewerkstelligt om voorspelbare uitkomsten te genereren durf ik echter te betwijfelen, dat zou iemand moeten testen. En het mooie aan de markt voor security gadgets is natuurlijk: iemand gaat dat binnenkort vast en zeker doen :)
Het lijkt me sterk dat dit genoeg op levert om voorspelbaar te worden.

Ik heb niet exact gelezen wat hij gemaakt heeft, alleen dit artikel op tweakers. Daarin staat echter wel dat hij ook lawinediodes gebruikt. Dus ik verwacht dat hij de random noise uit de diode's xor-ed tegen de radio ruis. Die laatste kan je theoretisch beinvloeden, maar die eerst word heel moeilijk (warmte en elektrische slijtage beinvloeden het).
Het is even afwachten, maar in principe als hij enkel uit 2 externe signalen een random waarde genereert dan lijkt het mij perfect mogelijk om die externe signalen te beinvloeden.

De sterkste ertussenuit filteren lees ik dan ook meer als : Als ik mijn signalen op 1.5 wil inschieten (waarbij 1.0 regulier is) dan heb ik enkel een 2e signaalgenerator nodig die op 2.5 gaat broadcasten.
2.5 wordt eruit gefilterd en mijn 1.5 blijft het sterkste signaal.

Het band-hoppen valt ook wel te voorspellen (computers zijn slecht in random getallen maken daarom komen dit soort apparaten uit, dus of hij eet zijn eigen output om bandhopping te bepalen (wat dus beinvloedbaar is met een ander signaal) of het werkt gewoon met een algoritme)
Lawinediodes zijn geen externe signalen.

Deze diodes hebben een bepaalde ruis waarde waarbij ze stroom doorlaten mits deze zwak genoeg is. De hoveel die ze door laten verschilt contant en is compleet random. Deze lek stroom word opgevangen en versterkt naar een meetbaar signaal.

Hij gebruikt dus maar 1 externe bron en die andere is intern. De interne bron is hoogstens te beinvloeden door temperatuur, als kan je daar heel makkelijk voor compenseren als je er rekening mee houd.
Je kan met interferentie toch het signaal doven en tegelijkertijd er een ander signaal ingooien?

Ik zou graag meer willen weten van deze techniek m.b.t. het bovenstaande
Het is de vraag of je daar wat mee opschiet. Als de output net zo random blijft als het "ongemanipuleerde" signaal, is er met de integriteit van de generator niets aan de hand. Het zou pas interessant worden als je het spectrum zo kunt beinvloeden dat de generator een voorspelbare output gaat geven en dat is een heel ander verhaal.
Sorry hoor, ik heb ook maar zeer gelimiteerde technische kennis. Dat heeft niets met 'gebrek aan lezen' te maken. Als je mijn post leest, snap je namelijk dat ik het randomprincipe wel snap.

Goed om te weten dat je de random bitstream in ieder geval zelf kan koppelen aan bepaalde uitgangswaarden. De meest frustrerende monopolydobbelsteen is geboren. :+
Je kunt een randomwaarde principieel altijd omrekenen naar een getal waar je iets mee kunt doen. Natuurlijk zitten daar wel valkuilen in, jouw rekenmethode kan bijvoorbeeld een bias hebben, maar als je claimt dat je het randomprincipe snapt volgt automatisch dat je dat ook snapt.
Randomwaardes zijn meestal 0 tot 1. Dan doe je die waarde * 10 en dan heb je 0 tot 10.
Dat doe je in software. De hardware levert in de basis random bits. Een reeks daarvan kan je mappen op een integer of floating point bereik als je wil.

Merk op dat je voor een spelletje als monopolie juist niet direct wil mappen op een range 2-12, omdat de kans op 2 of 12 veel lager hoort te zijn dan de kans op 7. Als je dobbelstenen wil emuleren, dan moet je ook gewoon twee keer een getal mappen op 1-6 en de waardes daarvan optellen (tenzij je een n-zijdige dobbelsteen wil emuleren, met n<>6. Die worden wel gebruikt in wat meer exotische spellen dan monopolie).
Ah, inderdaad, ook een leuke: de statistische kans op bepaalde waarden (bijvoorbeeld 6,7,8) is hoger dan andere waarden. Het principe waar Kolonisten van Catan op draait. Of "Crabs" (dat is dat ding met die dobbelstenen in Casino, toch?)

In ieder geval iets wat ik niet in elkaar ga kunnen programmeren _O- Maar tof voor de echte tweaker.

[Reactie gewijzigd door draytek2950 op 17 november 2014 11:42]

De statistische kans op 6,7,8 is inderdaad hoger bij borspellen etc… omdat je met 2 dobbelstenen werkt. 6,7,8 kun je op meer manieren maken dan 12.

Bij echte Random Number Generators zou de kans op elk getal precies hetzelfde moeten zijn.
Bij echte Random Number Generators zou de kans op elk getal precies hetzelfde moeten zijn.
Net zoals bij dobbelstenen dus. Je moet echter om 2 dobbelstenen te simuleren ook 2x de RNG aanroepen
Zo heel moeilijk is dat niet. Gewoon 2x een nummer laten genereren, dit mappen naar 1-6 en dan de verkregen getallen bij elkaar optellen.
Dan heb je precies dezelfde kansen als met dobbelstenen (er van uitgaande dat dobbelstenen helemaal random zijn).
quote: draytek2950
Of "Crabs" (dat is dat ding met die dobbelstenen in Casino, toch?)
http://en.wikipedia.org/wiki/Craps
Zou tof zijn als je dan tevens een range kan instellen
Zo'n ding levert een random bitstream, als je dit vervolgens wil omzetten in een bepaalde range dan kan je dat natuurlijk in je app regelen.
Ha! Je gebed klopt van geen kant! Als je 9 moet gooien om op de kalverstraat te komen dan sta je op het hoekje en moet je naar de gevangenis... :P

Wat ik me wel afvraag is hoe willekeurig het dansen door de frequenties dan is... Als daar geen goede willekeur in zit dan is de hele generator toch ook niet willekeurig?

EDIT: ok, na verder te lezen in de comments is deze vraag al vaker gesteld :)

[Reactie gewijzigd door CounterDesk op 17 november 2014 14:12]

In de meeste programmeertalen worden random getalen gegenereerd tussen de (inclusief) 0 en (exclusief) 1.
Je kunt dus eenvoudig een dobbelsteen maken door dan dit te doen:
floor(rand * 11) + 2 = uitkomst

Echter zijn 2 dobbelstenen niet lineair, je hebt immers veel meer kans om 7 te gooien dan om 2 te gooien. (Daarom is bij Catan de 7 ook de struikrover) Je zou 2 random output kunnen gebruiken en dan die bij elkaar op kunnen tellen of door middel van een probability mapping (sorry, kom even niet op de Nederlandse naam, ben geen wiskundige) 1 output gebruiken.
Bedenk dan wel dat het spelverloop anders wordt.. tenslotte is de kans dat je 2 of 12 gooit met twee dobbelstenen een stuk kleiner dan de kans dat je 7 gooit.. bij een willekeurig getal tussen 2 en 12 zal dit niet uitmaken..

..of je moet natuurlijk twee van die generatoren hebben die elk een waarde tussen 1 en 6 geven..
Of als je veel meer geld heb laat je 'random' over aan quantumeffecten:
http://www.idquantique.com/
Of je downloadt ze van random.org ;)

(seriously though, slecht idee want dat is natuurlijk behoorlijk manipuleerbaar dmv een MITM attack)
random.org wordt vaak genoemd, maar daar je niet weet wie er op een bepaald moment achter de site zit en omdat je nooit weet of de site beschikbaar is wordt het door cryptografen zeker niet als een alternatief gezien. Je kan met SSL misschien wat entropie er vandaan halen en dat mee mixen. Dan moet eerst je SSL veilig zijn en daar heb je randoms voor nodig, dus voor de eerste random waarde...
Dat is inderdaad een flinke hoeveelheid euro's meer, die bedragen komen ook zeker uit zo'n random generator ;)
Wij hebben dit reeds in onze intel cpu's:
Intel heeft sinds Ivy bridge ook reeds een hardware random number generator ingebakken,
is uit te lezen met de assembler instructie RDRAND

Bron:
http://spectrum.ieee.org/...ew-randomnumber-generator
http://electronicdesign.c...e-random-number-generator
Het zijn juist deze generators die mensen niet vertrouwen.
Met het risico een domme vraag te stellen; wat is de toepasbaarheid van zo'n generator?
(behalve bordspellen zoals hierboven besproken wordt :))
Met het risico een domme vraag te stellen; wat is de toepasbaarheid van zo'n generator?
(behalve bordspellen zoals hierboven besproken wordt :))
Binnen Linux kan dit device als random generator gebruikt worden.
OneRNG Project Documentation
Open Hardware Random Number Generator
Ja het is best wel logisch dat een random generator als random generator wordt gebruikt.

Volgens mij vraagt hij zich af waarvoor een random generator wordt gebruikt. 1 antwoord: Encryptie.
en online casino's?
Ze zijn nodig voor de hele encryptie gebeuren. Des te onvoorspelbaarder de terug gegeven waardes zijn, des te "veiliger" is een encryptie.
Een computer is niet in staat om zelf goede random getallen te genereren. Elke berekening die een computer maakt is uiteindelijk te voorspellen, waardoor de getallen die uit de random-generator komen te voorspellen zijn. Daarmee kan een hacker een encryptie kraken.

Om dit probleem te omzeilen wordt extra "randomness" gehaald uit andere zaken die op de CPU zijn aangesloten, bijvoorbeeld een klok (aantal nanoseconden op een bepaald moment), het binnenkomen van interrupts of disk-activiteit.

Deze extra "randomness" (entropy) kan, theoretisch gezien, ook worden gebruikt door de hacker om achter de volgorde van de random getallen te komen. Bovendien kan de entropy snel op raken als heel veel encryptie wordt uitgevoerd op een systeem (denk aan SSL versleuteling op HTTPS websites).

Hoe onvoorspelbaarder de random getallen zijn, hoe moeilijker het voor een hacker wordt om een encryptie te kraken. Om dit op te lossen heb je eigenlijk een apparaat nodig dat heel snel echt willekeurige waarden kan genereren. Hiervoor wordt vaak gebruik gemaakt van electronische circuits die compleet willekeurig een 0 of een 1 teruggeven. Dit zorgt voor hele goede beveiliging en kan encryptie ook sneller maken, doordat je niet hoeft te wachten tot er voldoende willekeur (entropie) in de random-generator beschikbaar is.

Ik heb zelf al gewerkt met de EntropyKey, voornamelijk om HTTPS versleuteling sneller te maken. Werkt uitstekend! Zie ook: http://www.entropykey.co.uk/
Ik heb wel eens gewerkt met een soortgelijk ding http://www.entropykey.co.uk/. Wat mij betreft echt een aanrader als je met virtuele machines enzo gaat werken die van nature geen goede entropy hebben (al zijn er ook wel andere alternatieven)
One RiNG to rule them all
Het is beter om het apparaatje dicht te maken, tegen stof e.d. :)
Stof levert toch juist extra entropie?
Op de gelinkte pagina staat dat je hem open kan maken om te controleren of er met de hardware gerommeld is, niet om iets te veranderen aan het ontvangst. Bij gebruik dint hij dicht te zijn.
De maker suggereert zelfs om het deksel (en de programming pads op de onderkant) dicht te lijmen tegen manipulatie.
Wow wat een serieuze opmerking op zo'n luchtige grap.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True