Jump to content

Private Key-Brute Force?


 Share

Recommended Posts

Hallo,

vllt ist es eine dumme Frage, aber was genau hindert mich daran, mir genügend Rechenkapazität zu besorgen

und einfach brute force private keys zu generieren und nach matches in der blockchain zu suchen, bei denen Beträge hinterlegt sind?

Insbesondere im Hinblick auf die Zukunft, da sich die Rechengeschwindigkeit der Prozessoren ja alle paar Jahre verzehntfacht?

Link to comment
Share on other sites

Hallo,

vllt ist es eine dumme Frage, aber was genau hindert mich daran, mir genügend Rechenkapazität zu besorgen

und einfach brute force private keys zu generieren und nach matches in der blockchain zu suchen, bei denen Beträge hinterlegt sind?

Insbesondere im Hinblick auf die Zukunft, da sich die Rechengeschwindigkeit der Prozessoren ja alle paar Jahre verzehntfacht?

 

Nichts, probiere es :)

Link to comment
Share on other sites

Okay, ich habe ein bisschen rum gerechnet :D Und ich bin zur Einsicht gekommen.

Ich halte es in der Zukunft immer noch nicht für unmöglich, aber für die nächsten 10 Jahre

sollte so etwas nicht lukrativ machbar sein.

 

Bei einer mehr oder weniger willkürlich angesetzten Generierrate von einer Milliarden Keys pro Sekunde würde es

mehr als 10 ^60 Jahre dauern alle Keys zu ermitteln.

 

Allein um den kompletten Datensatz zu speichern würde man Speicherplatz in der Größenordnung von 10^66 Terrabyte benötigen.

 

Dabei muss man aber beachten das selbst ein winziger Bruchteil des Datensatzes schon reichen würde,

wenn man davon ausgeht, dass in Zukunft jeder das Bitcoin-Netzwerk nutzen wird.

Link to comment
Share on other sites

"Mal angenommen, man würde alle Atome des Sonnensystems in einem Superrechner verbauen, der das thermodynamische Limit der Informationsverarbeitung ausschöpft – nur mal angenommen! – selbst dann würde es zu lange dauern, um energetisch möglich zu sein."

https://blog.bitcoin.de/mit-sicherheit

 

:D Man darf aber auch nicht alles glauben, was geschrieben wird ;) Die Rechnung dazu würde ich gerne mal sehen, sonst ist das für mich nur eine leere Floskel um dem Benutzer das Gefühl von absoluter Sicherheit zu geben.

 

Mein Ansatz war ja auch viel simplerer Natur. Warum einen bestimmten Key knacken? Totaler Schwachsinn.

Sobald man schnell genug keys generieren kann, sodass die Wahrscheinlichkeit einen schon benutzen zu finden hoch genug ist, lohnt es sich.

Und mit der Zeit sollten beide kritische Faktoren exponentiell steigen:

1. Die Rechenkapazität

2. Die Anzahl von benutzten Keys

 

Wie gesagt, ich will nicht behaupten, dass das heute schon möglich ist.

Aber so unantastbar wie es dargestellt wird, ist es mit Sicherheit nicht ;)

Link to comment
Share on other sites

Die wichtigsten Fakten mal kurz zusammen gefasst:

Würde man die Energie, die unsere Sonne abstrahlt, vollständig und verlustfrei dazu benutzen, um einen maximal effizienten Computer (maximal effizient nach den Gesetzen der Thermodynamik), der bei 3,2° über dem absoluten Temperaturnullpunkt arbeitet (das ist die Temperatur im Weltraum; kälter wäre noch effizienter, aber ein weiteres Abkühlen würde wiederum Energie kosten), eine Bruteforceattacke durchführen zu lassen, dann würde er bei 187-bit ein Jahr brauchen, um alle Möglichkeiten auszuprobieren. Für 192-bit (nur 5 bit mehr!) bräuchte er unter diesen Bedingungen 32 Jahre. Würde man die gesamte Energie einer Supernova einfangen, könnte man schon 219-bit vollständig bruteforcen.

 

Reicht das?

Link to comment
Share on other sites

Die wichtigsten Fakten mal kurz zusammen gefasst:

Würde man die Energie, die unsere Sonne abstrahlt, vollständig und verlustfrei dazu benutzen, um einen maximal effizienten Computer (maximal effizient nach den Gesetzen der Thermodynamik), der bei 3,2° über dem absoluten Temperaturnullpunkt arbeitet (das ist die Temperatur im Weltraum; kälter wäre noch effizienter, aber ein weiteres Abkühlen würde wiederum Energie kosten), eine Bruteforceattacke durchführen zu lassen, dann würde er bei 187-bit ein Jahr brauchen, um alle Möglichkeiten auszuprobieren. Für 192-bit (nur 5 bit mehr!) bräuchte er unter diesen Bedingungen 32 Jahre. Würde man die gesamte Energie einer Supernova einfangen, könnte man schon 219-bit vollständig bruteforcen.

 

Reicht das?

 

Ja das reicht ;) Ist echt schon gewaltig. Danke für den Link.

Aber auch du gehst wieder davon aus, man müsse einen einzigen Schlüssel unter 2^256 treffen.

10 Milliarden unter diesen 2^256 sind zwar immer noch extrem wenige Schlüssel, aber die Wahrscheinlichkeit einen davon schon nach einem winzigen Bruchteil der Schlüssel zu finden ist schon viel höher.

Link to comment
Share on other sites

@fjvbit: Das ist auch absolut sinnvoll, denn es gibt außer Bruteforce ja noch andere Risiken. Ein private key könnte verloren gehen; jemand hat deine wallet.dat schon geklaut bevor du sie verschlüsselt hast; jemand hat zum Fenster reingeguckt und den Zettel mit dem private key im paper wallet abfotografiert... :D

 

Wie auch immer, in diesem Thread ging es um Bruteforceangriffe. Und man kann es noch weiter treiben:

 

Wenn wir die Energie außen vor lassen (es könnte ja sein, dass ich morgen 1 Mio. Sonnen im Keller finde und Energie nicht das Problem ist), gibt es noch ein weiteres Problem: Die Planck-Zeit. Sie beschreibt das kleinstmögliche Zeitintervall (http://de.wikipedia.org/wiki/Planck-Zeit).

Für einen Rechenschritt braucht ein Computer also mindestens diese Zeit. Unterstellen wir mal, dass für einen Bruteforceversuch nur ein Rechenschritt erforderlich ist, dann kann man ausrechnen, wieviele Rechenschritte pro Jahr möglich sind.

 

- Planck-Zeit: 5,3*10^(-44) das entspricht ca. 2^(-143,7588)

- Ein Jahr in Sekunden: 31.536.000 das entspricht ca. 2^24,9105

-> Maximal mögliche Rechenschritte pro Jahr: 5,95019*10^50 das entspricht ca. 2^168,669

 

Also knapp 169 bit. Für 170 bit bräuchte er 2 Jahre, für 171 bit 3 Jahre usw.

Für 256 bit also 87 Jahre.

 

Ok, jetzt könnte man natürlich hingehen und das Problem auf mehrere dieser maximal schnellen Rechner aufteilen... :D

Edited by fyahfox
Link to comment
Share on other sites

Aber auch du gehst wieder davon aus, man müsse einen einzigen Schlüssel unter 2^256 treffen.

10 Milliarden unter diesen 2^256 sind zwar immer noch extrem wenige Schlüssel, aber die Wahrscheinlichkeit einen davon schon nach einem winzigen Bruchteil der Schlüssel zu finden ist schon viel höher.

Ach Quark... 10 Milliarden sind 0,(hier 65 Nullen einsetzen)863617 % der Gesamtmenge. Das ist ein Tropfen auf dem heißen Stein.

Link to comment
Share on other sites

 

Also knapp 169 bit. Für 170 bit bräuchte er 2 Jahre, für 171 bit 3 Jahre usw.

Für 256 bit also 87 Jahre.

 

 

Nunja, ich glaube Deine Quelle ist falsch. Bitcoins werden erst sha256 und dann noch ripemd160 verschlüsselt (Hash Wert berechnet)

 

=>Also ist der effektive Schlüssel "nur" etwa 160 Bit lang.

 

Wenn ich mal kurz rechne: 2^160 * 5,3*10^(-44) = 77459 Sekunden

 

= 21 Stunden

 

Dein Supercomputer würde nach meiner überschlägigen "Berechnung" nach etwa einem Tag alle Schlüssel durchrechnen ;)

 

Ich hab mich aber möglicherweise verrechnet :)

 

Das spielt in der Realität natürlich keine Rolle, da so ein "Computer" nie gebaut werden könnte.

Edited by fjvbit
Link to comment
Share on other sites

Nunja, ich glaube Deine Quelle ist falsch. Bitcoins werden erst sha256 und dann noch ripemd160 verschlüsselt (Hash Wert berechnet)

 

=>Also ist der effektive Schlüssel "nur" etwa 160 Bit lang.

Es existieren nahezu 2^256 private keys. Was hat die Verwendung von Hash-Algorithmen damit zu tun?

 

Wenn ich alle private keys probieren will, ist es doch völlig wurscht welche Hash-Algorithmen verwendet werden, um eine Transaktion zu signieren...?

Link to comment
Share on other sites

Es existieren nahezu 2^256 private keys. Was hat die Verwendung von Hash-Algorithmen damit zu tun?

 

Wenn ich alle private keys probieren will, ist es doch völlig wurscht welche Hash-Algorithmen verwendet werden, um eine Transaktion zu signieren...?

 

es existieren nur etwa 2^160 offentliche Schluessel. Also braucht man auch maximal etwa 2^160 passende private Schluessel zu finden, oder?

Link to comment
Share on other sites

es existieren nur etwa 2^160 offentliche Schluessel.

Ist das so? Kannst du es genau erklären?

 

Aber selbst wenn: Es ging hier nicht um die Rückrechnung von public key in private key, sondern um Bruteforce! Das ist sind völlig verschiedene Angriffsmethoden. Bruteforce heißt private key erraten, nicht irgendwie aus etwas (zB public key) berechnen. Also bleibts bei 2^256 durchzuprobierenden Möglichkeiten...

Link to comment
Share on other sites

Ist das so? Kannst du es genau erklären?

 

Aber selbst wenn: Es ging hier nicht um die Rückrechnung von public key in private key, sondern um Bruteforce! Das ist sind völlig verschiedene Angriffsmethoden. Bruteforce heißt private key erraten, nicht irgendwie aus etwas (zB public key) berechnen. Also bleibts bei 2^256 durchzuprobierenden Möglichkeiten...

 

 

 

Der öffentlich Schlüssel wird ja generiert indem 2 Hashalgrithmen nacheinander angewendet werden:

 

Erst SHA-256 und dann noch ripemd-160.

 

ripemd-160 hat aber ein 160 Bit Ergebnis, also kann es theoretisch maximal 2^160 verschiedene Schlüssel geben kann.

 

http://upload.wikimedia.org/wikipedia/commons/8/8e/Bitcoin_Address.png

 

Ich gehe persönlich davon aus, das es zu einer öffentlichen Adresse 2 und mehr gültige private Schlüssel geben kann. Ich habe aber noch keine Quelle dazu gefunden.

 

Diese sind nur extrem schwer, bis unmöglich zu finden.

 

Trotzdem ich gehe ich davon aus, das die Schlüsselstärke bei bitcoin "nur" 2^160 ist, was natürlich mehr aus ausreichend ist.

Edited by fjvbit
Link to comment
Share on other sites

Ok, klingt logisch. Es gibt "nur" 2^160 public keys. Führt man eine Bruteforceattacke durch, muss man trotzdem nahezu 2^256 private keys erzeugen. Die Kollisionen, die es anscheinend gibt ("das es zu einer öffentlichen Adresse 2 und mehr gültige private Schlüssel geben kann"), sind ja unbekannt und soweit ich weiß nicht berechenbar.

 

Trotzdem interessanter Hinweis mit den 2^160 public keys. Man lernt nie aus... Vielleicht gibt es hier ja auch jemanden, der das soweit schon durchschaut hat und genauer erklären könnte?

Link to comment
Share on other sites

Ok, klingt logisch. Es gibt "nur" 2^160 public keys. Führt man eine Bruteforceattacke durch, muss man trotzdem nahezu 2^256 private keys erzeugen. Die Kollisionen, die es anscheinend gibt ("das es zu einer öffentlichen Adresse 2 und mehr gültige private Schlüssel geben kann"), sind ja unbekannt und soweit ich weiß nicht berechenbar.

 

Trotzdem interessanter Hinweis mit den 2^160 public keys. Man lernt nie aus... Vielleicht gibt es hier ja auch jemanden, der das soweit schon durchschaut hat und genauer erklären könnte?

 

Soweit ich weiß ist alles ab 2^80 sicher im Moment. Aus dem Kopf, keine Quelle parat.

Es kann uns also niemand ein Beispiel 'besorgen' ;-)

2^160 ist noch ein ganz andere Welt als 2^80

 

Aber trotzdem vermute ich mal, nach 2^162 Versuchen hättest du "schon" fast alle möglichen öffentliche Schlüssel, private Schlüssel gefunden :-)

Edited by fjvbit
Link to comment
Share on other sites

Wie kommst du auf 2^162 anstatt 2^160?

 

Wie auch immer... Du irrst dich gewaltig, denn du unterschätzt die Potenz...

2^162 sind gerade mal 0,(hier 28 Nullen einsetzen)5... % von 2^256 private keys...

 

2^162 hab ich geraten, keine Ahnung...

 

Aber ich unterschätze Potenz kein bisschen.

2^161 ist doppelt so sicher wie 2^160

 

Ich denke nur, je nach Verteilung kann es möglich sein, "etwas" mehr als 2^160 zu berechnen. Aber auf keinen Fall 2^256...

Link to comment
Share on other sites

Bei 0,00000000000000000000000000005... % der Gesamtmenge muss man aber schon SEHR viel Glück bei der Verteilung haben, um "fast alle möglichen öffentlichen Schlüssel" berechnet zu haben...

 

Ne, es gibt nur 2^160 öffentliche Schlüssel..

 

Ich würde 400% der Gesamtmenge berechnen bei 2^162, da sollten nicht viele Lücken bleiben.

Edited by fjvbit
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.