Zum Inhalt springen

Private Key-Brute Force?


Empfohlene Beiträge

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

"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 zu diesem Kommentar
Auf anderen Seiten teilen

Du hast recht, man soll nicht alles glauben. Der Bitcoin.de blog ist auch keine hochwertige Quelle.

 

In diesem Fall stimmt es aber. Was im Bitcoin.de blog etwas unpräzise und umgangssprachlich formuliert wird, ist (leider auf englisch) hier im Detail nachzulesen: https://www.schneier.com/blog/archives/2009/09/the_doghouse_cr.html

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

@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

Bearbeitet von fyahfox
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

 

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.

Bearbeitet von fjvbit
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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.

Bearbeitet von fjvbit
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 :-)

Bearbeitet von fjvbit
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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.

Bearbeitet von fjvbit
Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.