Wie lange würde ein großer Computer brauchen, um einen privaten Schlüssel zu knacken?

Ich mache eine Präsentation über Bitcoins und suchte nach einigen Berechnungen, damit sich die Leute bei der Verschlüsselung mit privaten Schlüsseln sicher fühlen. Bitte antworten Sie zuerst, wie lang der private Schlüssel in Bytes ist, dann wie viele Zahlenkombinationen er enthalten wird, und dann, was der schnellste Computer oder das schnellste Netzwerk von Supercomputern ist und wie lange es dauern würde, einen privaten Schlüssel mit diesem Computer zu knacken. Ich denke, das Ergebnis wäre sehr lehrreich, basierend auf meinen eigenen Berechnungen. Vielen Dank.

Diese Antwort auf Security Stack Exchange ist relevant: security.stackexchange.com/a/25392/4647
Bitte erkläre das dann. directory.io Diese Leute behaupten, dass sie alle privaten Schlüssel haben ... Ich denke, sie sagen nicht die Wahrheit
Sie sagen die Wahrheit. Auf die gleiche Weise hat jeder, der die Ziffern von Pi erzeugen kann, alle Werke der Literatur, die jemals geschrieben werden.

Antworten (8)

wie lang der private Schlüssel in Bytes ist

32 Byte oder 256 Bit

dann, wie viele Zahlenkombinationen es enthalten wird

Es gibt 2^256 verschiedene private Schlüssel. Das ist etwas größer als eine 1 gefolgt von 77 Nullen.

Was ist der schnellste Computer oder das schnellste Netzwerk von Supercomputern?

Auf seinem Höhepunkt im August 2011 überprüfte das Bitcoin-Netzwerk 15 Billionen sha256-Hashes pro Sekunde. (Siehe http://bitcoin.sipa.be/ )

wie lange es dauern würde, einen privaten Schlüssel mit diesem Computer zu knacken

Wenn wir davon ausgehen, dass die Ausführung einer ECDSA-Operation genauso lange dauert wie die Überprüfung eines sha256-Hashs (es dauert viel länger) und wir eine Optimierung verwenden, die es uns ermöglicht, nur 2 ^ 128 ECDSA-Operationen zu benötigen, dann kann die benötigte Zeit berechnet werden:

>>> pow(2,128) / (15 * pow(2,40)) / 3600 / 24 / 365.25 / 1e9 / 1e9
0.6537992112229596

Es sind 0,65 Milliarden Milliarden Jahre.

Das ist eine sehr konservative Schätzung für die Zeit, die benötigt wird, um eine einzige Bitcoin-Adresse zu knacken.

Bearbeiten: Es wurde darauf hingewiesen, dass Computer gemäß dem Mooreschen Gesetz im Laufe der Zeit exponentiell schneller werden . Angenommen, die Rechengeschwindigkeit verdoppelt sich jedes Jahr (das Mooresche Gesetz sagt 2 Jahre, aber wir gehen auf Nummer sicher), dann dauert es in 59 Jahren nur 1,13 Jahre. Ihre Münzen sind also für die nächsten 60 Jahre sicher, ohne dass die Algorithmen zum Schutz der Blockchain geändert werden müssen. Ich würde jedoch erwarten, dass die Algorithmen geändert werden, lange bevor es möglich ist, den Schutz, den sie bieten, zu brechen.

Moores Gesetz (oder ähnliches) würde diese Zahl wahrscheinlich etwas senken, aber nicht genug, um eine Rolle zu spielen. Solange die Antwort irgendeine Form von "länger als es dauern würde, die an dieser Adresse gelagerten Coins abzubauen" ist, sollten wir sicher sein :)
Es ist wichtig, weil die Menschen es verdienen zu wissen, wie sicher ihr Geld ist.
Das setzt voraus, dass das Mooresche Gesetz noch weitere 6 Jahrzehnte gelten kann. Andererseits ist QC bis dahin vielleicht Mainstream.
Gute Antwort. Es ist erwähnenswert, dass die kumulative Leistung des Bitcoin-Netzwerks jetzt fast das 10-fache des Wertes beträgt, seit diese Antwort geschrieben wurde. Es sind also "nur" ~653 Millionen Rechenjahre wert.

Ein privater Bitcoin-Schlüssel ist eine zufällige 256-Bit-Zahl. Der öffentliche Schlüssel gibt jedoch einige Informationen über den privaten Schlüssel preis. Die bekanntesten Algorithmen zum Brechen von ECDSA erfordern O(sqrt(n))-Operationen. Das bedeutet, dass 2^128 Operationen erforderlich wären, um ein Bitcoin-Konto zu knacken.

Der bisher größte gebrochene ECDSA-Schlüssel des Typs, den Bitcoin verwendet, war 112 Bit lang. Ein Bitcoin-Konto ist mehr als 4.000 Milliarden Milliarden Mal schwerer zu knacken.

Das einzig realistische Risiko wäre Quantencomputing.

Es sollte auch beachtet werden, dass selbst Quantencomputing voraussichtlich nur die Zeit von pow(2,N) zu pow(2,N/2) verkürzen wird, was zwar signifikant ist, es aber nicht weit aufreißt. Siehe en.wikipedia.org/wiki/Key_size
@GaryRowe Du liegst falsch. Für symmetrische Schlüssel gilt die Halbierung der Schlüssellänge. Die meisten asymmetrischen Chiffren (einschließlich ECDSA, das für Bitcoin verwendet wird) können dank Shors Algorithmus in polynomieller Zeit mit einem Quantencomputer gebrochen werden. Um diesen Wikipedia-Artikel zu zitieren: "Der allgemeine Konsens besteht darin, dass diese Public-Key-Algorithmen bei jeder Schlüsselgröße unsicher sind, wenn ausreichend große Quantencomputer verfügbar werden, die Shors Algorithmus ausführen können." Es gibt zwar quantensichere Signaturschemata, aber sie würden die Blockchain wahrscheinlich stark aufblähen .
@CodeInChaos Gute Punkte alle - tut mir leid, dass ich Verwirrung gestiftet habe.
Der O(sqrt(n))-Angriff ist der Geburtstagsangriff, der in jedem Verschlüsselungsschema möglich ist. Auf welche "Informationen über den privaten Schlüssel", die der öffentliche Schlüssel preisgibt, beziehen Sie sich?
@dionyziz Ich spreche nicht vom Geburtstagsangriff, ich spreche von der Umkehrung eines öffentlichen ECDSA-Schlüssels, um den entsprechenden privaten Schlüssel zu erhalten. Die "Information über den privaten Schlüssel", die der öffentliche Schlüssel preisgibt, ist der Punkt, der diesem privaten Schlüssel entspricht, multipliziert mit dem Generator. Dies ermöglicht die Verwendung von diskreten Logarithmus-Algorithmen wie Big Step, Little Step .
Nun, um genauer zu sein, sqrt(n) * ECDSA-Operationen. Und da viele Adressen nur Hashes des öffentlichen Schlüssels sind, müssen Sie möglicherweise sqrt(n) * ECDSA * Hashes-Operationen durchführen. Und die Hash-Operationen sind eine Mischung aus mehreren verketteten Hash-Funktionen. Dies erhöht die Komplexität in Bezug auf ganzzahlige Operationen oder den CPU-Zyklus linear, jedoch um einen nicht zu vernachlässigenden Faktor (sagen wir 2 ^ 16).

Ein privater Bitcoin-Schlüssel (ECC-Schlüssel) ist eine ganze Zahl zwischen eins und etwa 10^77. Dies mag nicht wie eine große Auswahl erscheinen, aber für praktische Zwecke ist es im Wesentlichen unendlich. Wenn Sie eine Billion private Schlüssel pro Sekunde verarbeiten könnten, würde es mehr als eine Million Mal das Alter des Universums dauern, um sie alle zu zählen. Schlimmer noch, allein das Aufzählen dieser Schlüssel würde mehr als die gesamte Energieabgabe der Sonne für 32 Jahre verbrauchen. Dieser riesige Schlüsselraum spielt eine grundlegende Rolle bei der Sicherung des Bitcoin-Netzwerks.

Chuck Norris hat zweimal bis unendlich gezählt.
Chuck Norris hat Satoshi Nakomoto gesagt, was er tun soll.

2^256 = 1,1x10^77 = Anzahl der Tastenkombinationen

2 ^ 128 = 3,4 x 10 ^ 38 = die durchschnittliche Anzahl der erforderlichen Vermutungen

Laut dieser Website: http://en.wikipedia.org/wiki/TOP500 ist der schnellste Supercomputer der K-Computer mit 10,51 Petaflops.

Ein Petaflop sind 10^15 FLOPS, Gleitkommabefehle pro Sekunde.

So weit so gut, aber ich muss wissen, wie viele FLOPS pro Rate benötigt werden?

[Ich wage eine Vermutung:]

Zwischen 1.000 und 10.000 FLOPS (oder ganzzahlige Äquivalente) pro Tipp.

10,51 x 10^15 Operationen/Sekunde / 1000 bis 10000 Operationen/Schätzung) = 10,51x10^12 bis 10,51x10^11 Schätzung/Sekunde.

3,4x10^38 Vermutungen/Crack / 10,51x10^12 Vermutungen/Sekunde = 3,2x10^25 Sekunden.

3,2x10^25 Sekunden / 60 Sekunden/Minute / 60 Minuten/Stunde / 24 Stunden/Tag / 365,25 Tage/Jahr = 1,01x10^18 Jahre

1,01x10^18 Jahre / 1x10^9 / 1x10^9 = 1,014 bis 10,014 Milliarden Milliarden Jahre.

Die Computer im Bitcoin-Netzwerk sind also doppelt so schnell wie der größte einzelne Laborcomputer.

Es sind genau 0 FLOPs erforderlich, um eine Kombination auszuprobieren, da ein FLOP eine Gleitkommaoperation ist und EC-Mathematik nur ganzzahlige Operationen erfordert.
Es gab noch nie einen Computer, an dem ich gearbeitet habe, der keine ganzzahlige Mathematik ausführen konnte. Ich würde also davon ausgehen, dass der südkoreanische K-Rechner das auch kann.
Ja, aber das Verhältnis zwischen der Geschwindigkeit von Ganzzahl- und Gleitkommaoperationen unterscheidet sich erheblich zwischen der Hardware. Bei einer bestimmten Verteilung von Hardwaretypen, die die Mining-Power von Bitcoin ausmachen, kann man eine Schätzung abgeben, aber die Antwort auf die Frage „wie viele FLOPS werden pro Rate benötigt“ lautet sicherlich 0.
Anzahl Tastenkombinationen = 2^256; durchschnittliche Anzahl der erforderlichen Vermutungen = 2^256 / 2 = 2^256 * 2^-1 = 2^255, niemand bemerkt? Nun, es ändert nichts an den Milliarden (von Milliarden) Jahren, die benötigt werden.

Es gibt ein vanitygenDienstprogramm ( sehen Sie sich die Version von Exploitagency an, die eine verbesserte Abzweigung der Version von samr7 ist ), das Ihnen die Schätzungen geben kann, wie lange es dauert, den privaten Schlüssel für das gegebene Muster zu finden (siehe: vg_output_timing_console()). Einige Sonderfälle (wie wiederholte Zeichen) sind schwieriger als die anderen.

Die Schwierigkeit, eine Vanity-Adresse zu finden, hängt von ihrer genauen Struktur (führende Buchstaben und Zahlen) ab und davon, wie wahrscheinlich eine solche Ausgabe angesichts der beteiligten Algorithmen ist, die aus mehreren Pivots bestehen können, bei denen sich die Schwierigkeit plötzlich ändert. Bitcoin-Wiki

Hier ist die Tabelle, die auf der Bitcoin-Wiki-Seite zu finden ist , die geschätzte Zeiten zum Knacken privater Schlüssel für die angegebenen Adressmuster enthält:

Bitcoin, Vanitygen, um zu versuchen, Adressen anzugreifen, Vanitygen, Keysearch Rates-Tabelle, Mkey/s, CPU/GPU, Tabelle, Dezillion Jahre, durchschnittliche Zeit

Die folgende Beispieltabelle zeigt, wie sich eine zunehmend komplexe Vanity auf die Schwierigkeit und die durchschnittliche Zeit auswirkt, die erforderlich ist, um eine Übereinstimmung nur für diese Vanity zu finden, ganz zu schweigen von der vollständigen Adresse, für eine Maschine, die 1 Million Schlüssel pro Sekunde durchsuchen kann.

Wenn Sie Vanitygen verwenden, könnten Sie denken, dass Sie den privaten Schlüssel für eine bestimmte Adresse finden könnten. In der Praxis wird dies als unmöglich angesehen.


Praxisbeispiel

Lassen Sie uns die folgende Bitcoin-Adresse erstellen :unspendable

$ unspendable.py 23456789A123456789A12345678
mainnet: 123456789A123456789A12345678Yr8Dxi

Dann vanitygenkann ich die Leistung auf meinem Computer berechnen (> 240 Kkey / s):

$ vanitygen -q -k -o/dev/null 1
[241.29 Kkey/s][total 2880199][Found 11618]

Hinweis: Obiges wurde auf einem MacBook Pro (2,3 GHz Intel Core i7, 16 GB 1600 MHz DDR3) getestet.

Darüber hinaus kann es die geschätzte Zeit berechnen, wenn nach bestimmten Mustern gesucht wird, z

  • um die ersten 5 Zeichen von 26-35 zu finden (wenige Sekunden):

    $ vanitygen -q -k -o/dev/null 12345
    [698.17 Kkey/s][total 8192][Prob 0.2%][50% in 4.5s]
    
  • 6 erste Zeichen von 26-35 (wenige Minuten):

    $ vanitygen -q -k -o/dev/null 123456
    [701.39 Kkey/s][total 51712][Prob 0.0%][50% in 4.3min]
    
  • 7 Zeichen von 26-35 (wenige Stunden):

    $ vanitygen -q -k -o/dev/null 1234567
    [471.87 Kkey/s][total 8192][Prob 0.0%][50% in 6.3h]
    
  • 8 Zeichen von 26-35 (wenige Wochen):

    $ vanitygen -q -k -o/dev/null 12345678
    [658.82 Kkey/s][total 2548480][Prob 0.0%][50% in 10.8d]
    
  • 9 Zeichen von 26-35 (wenige Jahre):

    $ vanitygen -q -k -o/dev/null 123456789
    [572.50 Kkey/s][total 1631744][Prob 0.0%][50% in 2.0y]
    
  • 10 Zeichen von 26-35 (ein Jahrhundert):

    $ vanitygen -q -k -o/dev/null 123456789A
    [630.48 Kkey/s][total 118528][Prob 0.0%][50% in 104.2y]
    
  • 11 Zeichen von 26-35 (wenige Jahrtausende)

    $ vanitygen -q -k -o/dev/null 123456789A1
    [579.78 Kkey/s][total 17348352][Prob 0.0%][50% in 6571.6y]
    
  • 12 Zeichen aus 26-35 (Hunderte von Jahrtausenden):

    vanitygen -q -k -o/dev/null 123456789A12
    [751.61 Kkey/s][total 6720512][Prob 0.0%][50% in 294013.9y]
    
  • 13 Zeichen von 26-35 (Tausende Jahrtausende, wenige Millionen Jahre):

    $ vanitygen -q -k -o/dev/null 123456789A123
    [666.93 Kkey/s][total 3886080][Prob 0.0%][50% in 1.921802e+07y]
    
  • 14 Zeichen aus 26-35 (Milliarden Jahre):

    $ vanitygen -q -k -o/dev/null 123456789A1234
    [817.44 Kkey/s][total 3994880][Prob 0.0%][50% in 9.094109e+08y]
    
  • 15 Zeichen von 26-35 (50 Milliarden Jahre):

    $ vanitygen -q -k -o/dev/null 123456789A12345
    [784.31 Kkey/s][total 4633856][Prob 0.0%][50% in 5.497420e+10y]
    
  • ... 28 Zeichen ( Dezillion von Jahren, wenn Sie Glück haben)

    $ vanitygen -q -k -o/dev/null 123456789A123456789A12345678
    [910.34 Kkey/s][total 2723072][Prob 0.0%][50% in 3.981113e+33y]
    

Es ist erwähnenswert, dass die oben generierte Adresse 34 Bytes hat, aber das erste Zeichen ist nur die Netzwerkkennung (für Bitcoin ist es normalerweise 1oder 3) und die letzten 4 Bytes sind nur eine Prüfsumme. Weitere Einzelheiten zur Adresse finden Sie auf dieser Bitcoin-Wiki-Seite .


Keysearch-Preise

Sicherlich kann die Keysearch-Rate durch die Verwendung einer besseren GPU oder mehrerer CPUs erhöht werden (siehe: -t), aber die Schätzungen können dennoch riesig sein.

Hier ist zum Beispiel die Tabelle der Keysearch-Raten auf der Bitcoin-Wiki-Seite :

Vanitygen, Keysearch Rates-Tabelle, Mkey/s, CPU/GPU

Und hier sind einige Berichte von Benutzern für verschiedene GPUs:

  • i7 8700K - ~3Mkey/c
  • GTX 980TI (v1.42) - ~73Mh
  • GTX 1050ti - ~23 Mkey/Z
  • GTX 1070 - ~50 Mhkey/s
  • GTX 1080ti - ~108 Mkey/c

Quelle: Liste der unterstützten GPUs (GH-46) .

Alle anderen haben sich entschieden, eine Frage wie zu beantworten

Wie lange würde ein großer Computer brauchen, um einen bestimmten privaten Schlüssel zu knacken?

Stattdessen beantworte ich die eigentlich gestellte Frage...

Wie lange würde ein großer Computer brauchen, um einen privaten Schlüssel zu knacken?

Dank Large Bitcoin Collider ist dies eine empirische Frage. Es dauerte ungefähr ein Jahr, um ungefähr ein Dutzend private Schlüssel zu finden ...

https://lbc.cryptoguru.org/trophies

Beachten Sie, dass jeder dieser geknackten Schlüssel für eine Bitcoin-Adresse war, die ein Guthaben hatte, sodass der Cracker das Guthaben hätte ausgeben können, wenn er wollte.

Viele werden viele Ausreden dafür anführen, warum dies nicht relevant ist, aber Tatsache ist, dass die Parteilinie „Es ist praktisch unmöglich, private Bitcoin-Schlüssel zu knacken“ eine nachweislich falsche Aussage ist. Schlüssel wurden geknackt, und das seit Milliarden von Milliarden Jahren nicht.

Her mit den Downvotes!

(Wenn Sie versucht sind, abzustimmen, kommentieren Sie zumindest, warum Sie abgelehnt haben. „Ich möchte nicht, dass dies wahr ist“ oder „Andere Leute haben mir gesagt, dass dies nicht wahr ist“ oder „Ich möchte sicherstellen, dass diese Antwort nicht die erste ist Seite mit Antworten" sind keine Gründe, auf die Sie stolz sein sollten.)

Das einzig realistische Risiko wäre Quantencomputing.

Oder die Entdeckung eines Fehlers oder Fehlers in den BTC-Softwarealgorithmen. Dann kann das Reißen je nach Art des Fehlers eine Sache von Sekunden sein.

Hallo und willkommen bei StackExchange. Sind Sie sicher, dass Sie dies nicht zu einem Kommentar zu einer anderen Antwort machen wollten, sondern zu einer eigenständigen Antwort?
@ ThePiachu, danke. Wie Sie vielleicht wissen, können neue Benutzer keine Kommentare posten, sondern nur Antworten. Der Moderator kann dies gerne beheben. (Ich kann nur meine eigenen Antworten kommentieren)
Oh, Sie sind Moderator. Mir ist eben grade aufgefallen. :-)

Der schnellste Computer hat 150 Petraflops FPC pro Sekunde, nicht 10 ... Versuchen Sie, mit der Zeit Schritt zu halten (NV Link und Volta HCP-Karten auf IBM Power-Prozessoren) ... Sie können mehr auf der Website von Team Green oder der Konferenz 2015 lesen oder sehen Videos auf U-Rohr. Da die allgemeine Antwort auf 10 Petraflops als dem schnellsten Computer der Welt zu beruhen scheint ... Sie sollten deutlich sehen können, wie schnell sich die FPC pro Sekunde ändern kann. Das Energieministerium plant bereits ein 300P-System, das auf derselben Technologie basiert .

Der Punkt ist, dass Ihre Bitcoin-Leute, die Ihnen sagen, wie sicher es auf 10P basiert, bereits die grundlegende Mathematik 15-30 Mal falsch liegen, weil sie offensichtlich nicht so viel wissen, wie sie denken. Die Verbesserungen hängen auch nicht vom Mooreschen Gesetz ab, die jüngsten Fortschritte und derzeitigen Einschränkungen haben mit einem völlig anderen Gesetz zu tun, das NV Link so gut wie möglich gelöst und die Rechenzeit so gut verbessert hat. Dies ist nur das heutige Beispiel dafür, wie ihre Theorie von einer Milliarde Milliarden Jahren ist bereits um den Faktor 15-30 falsch und wird jedes Jahr mit einer viel höheren Rate falsch werden, als sie annehmen. In 30 Jahren oder weniger wird Bitcoin auf seinem gegenwärtigen Niveau leicht von jedem geknackt werden, der 40 bis 50.000 Dollar auszugeben hat (nach heutigem Geld) oder eine beliebige Anzahl von Universitäts- oder Unternehmens-Supercomputern verwenden kann.

Jeder, der wirklich glaubt, dass 50 Jahre alte Technologie 50 Jahre später etwas digital sicher halten wird, ist ehrlich gesagt nicht die Art von Person, der Sie überhaupt Aufmerksamkeit schenken sollten ... Bedeutet das, dass Bitcoin heute gefährlich ist? Nicht wirklich, aber wenn die gleichen Leute in 30 Jahren für die Sicherheit verantwortlich sind, sind es die gleichen ahnungslosen Leute, die jetzt hier sind.

NVLink ist eine Technologie zur Ermöglichung einer schnelleren und energieeffizienteren Kommunikation zwischen Knoten in einem Supercomputer. Keines davon ist wirklich ein Problem, wenn Sie einen verteilten Schlüsselknacker bauen.