Author

Topic: Echte zufaellige Bitcoinschluesselpaare erzeugen (Read 907 times)

legendary
Activity: 2618
Merit: 1252
Wenn nicht ein Fehler im Algorithmus zur eigentlichen Berechnung am Ende wieder alles zunichte macht, ja. Falls der Algorithmus ordentlich arbeitet, ist der Aufwand wiederum nicht notwendig.
legendary
Activity: 1778
Merit: 1070
Wichtig ist, möglichst viel komplexen (nicht vorhersagbaren und unabhängigen) Input aus unterschiedlichen Quellen für den Entropiepool zu bekommen. Selbst der Intel (P)RNG ist als Futter für den Pool zu gebrauchen, auch wenn er verdächtigt wird, vorhersagbar zu sein und daher nicht alleine genutzt werden sollte.

Es scheint ja einige kleine Tools zu geben welche auf die Hardware aufsetzen und den Entropiepool fuellen.

D.h. also, dass man mehrere von den Dingern laufen lassen muesste und man waere auf der noch sichereren Seite.
legendary
Activity: 2618
Merit: 1252
Wichtig ist, möglichst viel komplexen (nicht vorhersagbaren und unabhängigen) Input aus unterschiedlichen Quellen für den Entropiepool zu bekommen. Selbst der Intel (P)RNG ist als Futter für den Pool zu gebrauchen, auch wenn er verdächtigt wird, vorhersagbar zu sein und daher nicht alleine genutzt werden sollte.
copper member
Activity: 1498
Merit: 1499
No I dont escrow anymore.
-snip-
Zu [2]: Unter der Annahme, dass der Entropiepool immer voll ist, dann wuerde doch gelten:

/dev/random = /dev/urandom

Richtig?

Das ist richtig. Also, die Werte werden nicht identisch sein, aber ich interpretier das "=" mal als "gleichwertig" und nicht als "identisch".

D.h., wenn man paranoid ist, so sollte das Ziel sein den Entropiepool immer moeglichst voll zu halten?

Naja, das ist ja genau die Krux. Entropie zu messen ist ein bisschen Hexenwerk. Das wird geschätzt, weil man Entropie nicht einfach zählen oder messen kann. Wenn sich der Algorithmus dafür also verschätzt hast Du effektiv sowieso /dev/urandom. Es gibt dafür Modelle die das einschätzen und die sind wohl auch relativ gut, aber die Zufallszahlen die aus dev/urandom rausfallen wenn wenig Entropie übrig ist sind deswegen nicht auf einmal schlecht. Wichtig ist lediglich das anfänglich ausreichend Entropie verhanden war um den CPRNG zu initialisieren.

Wenn Du was für den eigenen Bedarf schreibst und zur Paranoiafraktion gehörst, dann nimm /dev/random und warte ggf. ein bisschen. Es schadet nicht. Das größte Problem beim benutzen von /dev/urandom ist wenn Du für jemand anderen schreibst.
Ich war mal auf ner Cryptoparty mit jemandem der sich ein frisches Ubuntu auf nen Laptop mit SSD gezogen hat. Der musste 15 Minuten auf dem touchpad schrubbeln, wild tippen und im Hintergrund Videos laden um seinen 4096 bit key zu bekommen. Das hällt im schlimmsten Fall Menschen davon ab überhaupt zu verschlüsseln oder sie generieren sich einen 1024 bit key (geht ja schneller). Der Sicherheitsgewinn dabei ist minimal, wenn überhaupt vorhanden.

Im Endeffekt ist mein Wissen zu dem Thema auch ziemlich beschränkt, aber was ich so von Menschen wie djb[1] (ist glaub ich im Artikel auch zitiert) lese reicht mir um immer /dev/urandom zu benutzen und weniger Zeit mit warten zu verbringen Wink


[1] http://cr.yp.to/
legendary
Activity: 1778
Merit: 1070
/dev/urandom und /dev/random benutzen den selben Zufallszahlengenerator. Dieser Mythos hällt sich wegen der manpage so hartnäckig, ist aber unfug. Keiner von beiden erzeugt "echten" Zufall[1], beide benutzen einen PSEUDO random number generator.

Wer mehr dazu lesen will und englisch kann, hier[2] hat das mal jemand zusammengefasst der irgendwann keine Lust mehr hatte den selben Kram immer und immer wieder zu wiederlegen


[1] es ist mathematisch eindeutig nicht mal geklärt was das überhaupt sein soll
[2] http://www.2uo.de/myths-about-urandom/

Zu [2]: Unter der Annahme, dass der Entropiepool immer voll ist, dann wuerde doch gelten:

/dev/random = /dev/urandom

Richtig?

D.h., wenn man paranoid ist, so sollte das Ziel sein den Entropiepool immer moeglichst voll zu halten?
legendary
Activity: 2618
Merit: 1252
Deshalb sollte man das ganze auswürfeln.


Übrigens bietet https://bitaddress.org/ dafür seit einiger Zeit eine Unterstützung an. Einfach 99 mal würfeln und schon hat man ein Key-Paar (B6 Key) aus echten Zufallszahlen.  Wink
copper member
Activity: 1498
Merit: 1499
No I dont escrow anymore.
/dev/urandom und /dev/random benutzen den selben Zufallszahlengenerator. Dieser Mythos hällt sich wegen der manpage so hartnäckig, ist aber unfug. Keiner von beiden erzeugt "echten" Zufall[1], beide benutzen einen PSEUDO random number generator.

Wer mehr dazu lesen will und englisch kann, hier[2] hat das mal jemand zusammengefasst der irgendwann keine Lust mehr hatte den selben Kram immer und immer wieder zu wiederlegen


[1] es ist mathematisch eindeutig nicht mal geklärt was das überhaupt sein soll
[2] http://www.2uo.de/myths-about-urandom/
legendary
Activity: 2909
Merit: 1307
/dev/urandom gibt ebenfalls "echte" Zufallszahlen zurück, solange der Entropiepool nicht erschöpft ist. Selbst danach ist die Rückgabe schwer zu berechnen, da der Seed sozusagen auf dem Entropiepool basiert.


ich würde lieber "/dev/urandom sollte \"echte\" Zufallszahlen zurückgeben" schreiben
es gab auch hier schon schlechte Implementierungen...


Insgesamt gesehen ist das aber schon recht sicher. Und ich vertraue auch auf der Implementierung von urandom.
aber man weiss ja nie.
Zufall ist eben fast nie wirklich Zufall.

 
legendary
Activity: 2618
Merit: 1252
/dev/urandom gibt ebenfalls "echte" Zufallszahlen zurück, solange der Entropiepool nicht erschöpft ist. Selbst danach ist die Rückgabe schwer zu berechnen, da der Seed sozusagen auf dem Entropiepool basiert.

Insgesammt ist es aber von Vorteil, darauf zu achten, dass man keine Schadsoftware oder schlecht programmierte Software am laufen hat, die den Entropiepool leersaugt.
legendary
Activity: 1778
Merit: 1070
Hallo,

ich habe mich gefragt ob es mit dem Bitcoin-Originalclienten moeglich ist echte zufaellige Bitcoinschluesselpaare zu erzeugen.

Als Linux-Nutzer weiss ich, dass /dev/random im Gegensatz zu /dev/urandom echte Zufallszahlen erzeugt (im Sinne vom Einbeziehen der physischen Welt auf die moegliche Hacker keinen Zugriff haben). Jedoch ist die Erzeugung dieser Zahlen ohne Tricks anzuwenden recht langsam. Bitcoin-qt erzeugt so schnell eine neue Wallet, dass ich davon ausgehen muss, dass, wenn ueberhaupt /dev/(u)random benutzt wird, dann auf /dev/urandom zurueckgegriffen wird, es sich also um Pseudozufallszahlen handelt.

Gibt es einen Paramter o.ae. bei bitcoin-qt/bitcoind, welcher explizit die Nutzung von /dev/random anweisst?

Ich weiss, dass man per Kommandozeile entsprechende Schluesselpaare generieren lassen kann:

https://bitcointalksearch.org/topic/generate-address-through-shell-using-devrandom-133350

Im oberen Thread bei den Beispielen einfach /dev/urandom durch /dev/random austauschen.

Mir waere aber eine bequemere Loesung in Form vom Originalclienten lieber.

Gruss,
cu
Jump to: