Ist eine Seed Phrase mit 12 Wörtern sicher genug?

Ist eine Seed Phrase mit 12 Wörtern (wie sie beispielsweise von Electrum verwendet wird) sicher genug, um eine Offline-Wallet zu erstellen?

Mein Verständnis ist folgendes: Ein Pool von 2048 Wörtern macht 11 Bits Entropie pro Wort. 12 Wörter im Seed ergeben insgesamt 132 Bits Entropie.

Wird dies als sicher genug angesehen?

Ich spreche nicht davon, Quantencomputing-resistent zu sein, sondern angesichts der erwarteten Rechenleistung in absehbarer Zeit nicht mit Brute Force zu knacken.

Antworten (4)

128 Bit werden im Allgemeinen als mehr als ausreichend angesehen – 132 Bit sind sicherlich ausreichend.

Wird dies als sicher genug angesehen?

Nichts ist „sicher genug“, wenn wir die Kosten nicht kennen.

OK, wenn Sie 100.000 $ in Bitcoins haben, ist der 12-Wörter-Satz sicher genug.

Wenn die 12-Wörter-Phrase der Keim für die "Methode zur Zerstörung des Universums" ist, würde ich empfehlen, mindestens 11 Entropiebits hinzuzufügen und 13 Wörter zu verwenden.

Sagen wir also, ich habe 100.000 Dollar. Können Sie erklären, warum dies als sicher gilt?
Weil der Angreifer viel mehr Geld ausgeben muss, um Ihren Schlüssel brutal zu erzwingen. Niemand wird dich angreifen.
Um erschöpfende Suchen ins rechte Licht zu rücken, hat das Bitcoin-Netzwerk bis heute ungefähr 83 Bit Arbeit geleistet. Dies mit Investitionen im Wert von Hunderten Millionen Dollar, wahrscheinlich Millionen produzierter ASIC-Chips und derzeit über 150 Megawatt Energieaufwand.
@Bitcoin Ihr Kommentar ist die Antwort, nach der ich gesucht habe. Vielen Dank.
+1 Verdammt, ich habe bereits die Methode zur Zerstörung des Universums in der Bitcoin-Kette mit 128 Bit gepostet. wir werden sehen.

Kurz gesagt: 12-Wörter-Seed hat genug Entropie, um gegen Brute-Force-Angriffe sicher zu sein.

Zunächst einmal sind nicht alle 132 Bits zufällig. Seed verwendet eine Art Kontrollsumme.

Reden wir über 128 Bit Entropie.

Stellen wir uns den folgenden Angriff vor:

Wir werden 2017 eine Milliarde (10^9) der leistungsstärksten Mining-Hardware (jeweils 13 TH/s) einnehmen. Wir werden einen 1000-jährigen Brute-Force-Angriff durchführen, um eine der bestehenden Milliarden (10 ^ 9) Brieftaschen mit darin befindlichen Münzen zu kompromittieren.

Dieser Angriff überprüft die folgende Anzahl von Seed-Kombinationen:

10^9 * (13 * 10^12) * (1000 * 365 * 24 * 3600) = ~ 10^33 geprüfte Kombinationen

128 Bit Entropie entsprechen ~ 10 ^ 38 Gesamtkombinationen

Dies bedeutet, dass der gegebene Angriff die folgende Chance hat, eine oder mehrere von 10^9 Brieftaschen zu brechen :

1/10^5 = 0,001 %

PS: Vergessen Sie nicht, dass es eine besonders komplizierte Aufgabe ist, herauszufinden, ob dieser oder jener Samen Geld enthält. Hash-Mining-Hardware hat eine viel einfachere Aufgabe. Wir haben keine Hardware, um Seeds mit der gleichen Geschwindigkeit wie moderne ASICs zu überprüfen.

Nun, der Angriff müsste tatsächlich private/öffentliche Schlüssel angreifen, was mindestens 1000-mal langsamer ist als Hashing. aber nah.

Die Sicherheit in Bit einer 12-Wort-Mnemonik mit gültiger Prüfsumme nach BIP39 beträgt nicht 132 Bit, sondern 128 Bit, da die letzten 4 Bit anhand der ersten 128 Bit ermittelt werden – der anfänglichen „Entropie“.

  • Obwohl der Bereich von 2^132 aller möglichen mnemonischen Zeichen 16-mal größer ist als 2^128 (wobei (2^128)*16 = 2^132), kann die Prüfsumme nicht vorhergesagt werden, es sei denn, ein Angreifer kann SHA256 knacken, da die Prüfsumme basierend auf dem Hash-Digest der führenden 128 Bits berechnet wird als Byte-Array formatiert.

Die Idee mit der Prüfsumme war also, einen Angreifer daran zu hindern, alle möglichen 12-Wort-Mnemoniken zu durchsuchen, von denen es 2 ^ 132 gibt, obwohl die Anzahl der gültigen 2 ^ 128 in Bezug auf eine gültige Prüfsumme beträgt (als ob Reduzieren der Stärke von 12 Wörtern auf 11.6363636364 Wörter, da die Prüfsumme einen Teil des letzten Wortes vervollständigt), da ein Angreifer jedes Mal den SHA256-Algorithmus ausführen müsste, was seine Brute-Force-Suche verlangsamt.

  • Während also 2048^12 = 2^132 ist, bedeutet die Prüfsumme, dass der Bereich der für die Prüfsumme gültigen Mnemoniken 2048^11.6363636364 == 2^128 ist.

Zusammenfassend denke ich, dass eine Mnemonik mit einer gültigen Prüfsumme sicherer wäre als eine ohne Prüfsumme, da es wahrscheinlich weniger wahrscheinlich ist, dass SHA256 bald geknackt wird, was sonst eine potenzielle Brute-Force-Suche aller Mnemoniken beschleunigen würde.

  • Das bedeutet, dass ein Angreifer immer noch im Bereich von 2^132 suchen muss, um einen der 2^128 gültigen zu finden (dh es gibt keine Möglichkeit, nur den Bereich der gültigen zu durchsuchen, es sei denn, SHA256 ist kaputt).

Hinweis: Wenn Sie Ihre Sicherheit quadrieren möchten (dh sie mit 2 potenzieren), wäre eine 24-Wort-Mnemonik, die 264 Bit (minus einer 8-Bit-Prüfsumme) darstellt, das Quadrat von zwei 12-Wort-Mnemoniken in Bezug auf Bitsicherheit als 2^128*2^128 == 2^256.

Ein solch großer Sicherheitssprung könnte dazu beitragen, einen Benutzer später vor Grovers Algorithmus zu schützen, der auf einem ausreichend schnellen Quantencomputer ausgeführt wird, der eine solche n-malige Brute-Force-Suche im "Quadrat von n-Zeiten" durchführen könnte, verglichen mit klassischen Computern, die n benötigen -Zeit.

Von: https://en.wikipedia.org/wiki/Grover%27s_algorithm :

Der Algorithmus von Grover könnte einen 128-Bit-symmetrischen kryptografischen Schlüssel in etwa 2^64 Iterationen oder einen 256-Bit-Schlüssel in etwa 2^128 Iterationen brutal erzwingen

Mit anderen Worten, die Sicherheit einer 12-Wort-Mnemonik würde in Bezug auf die klassische Computersicherheit auf 64 Bit reduziert (als unsicher angesehen), während eine 24-Wort-Mnemonik im gleichen Szenario nur auf 128 Bit reduziert würde.