Können Regenbogentabellen verwendet werden, um private Schlüssel aus öffentlichen Schlüsseln zu finden?

Ich verstehe, dass der öffentliche Schlüssel verborgen gehalten wird, bis eine Bitcoin-Transaktion durchgeführt wird. An diesem Punkt muss der öffentliche Schlüssel offengelegt werden, um zu beweisen, dass Sie die Transaktion mit Ihrem privaten Schlüssel erstellt haben. Bis dahin wird immer nur ein Hash Ihres öffentlichen Schlüssels geteilt, bekannt als Ihre Bitcoin-Adresse.

Sobald mein öffentlicher Schlüssel bekannt ist, wäre es möglich, dass jemand meinen privaten Schlüssel in einer Regenbogentabelle nachschlägt?

Eine solche Regenbogentabelle existiert bereits bei directory.io . ;) Sie werden jedoch feststellen, dass die Seite ein augenzwinkernder Witz ist, der durch Pieters Antwort unten erklärt wird.
Technisch gesehen ist directory.io keine Regenbogentabelle, da es die Schlüssel im laufenden Betrieb berechnet. Es ist nahezu unmöglich, alle Schlüssel in einer Tabelle zu speichern.

Antworten (4)

Nein.

Eine Regenbogentabelle ist einfach ein Speicher-CPU-Kompromiss, mit dem Sie Preimages einer Funktion schneller finden können, indem Sie eine vorberechnete Tabelle mit einigen der Einträge haben.

Um eine Regenbogentabelle für private/öffentliche Bitcoin-Schlüssel zu erstellen, müssen Sie zunächst alle Schlüssel mindestens einmal durchlaufen. Es spielt keine Rolle, dass nur ein Teil der Schlüsselpaare in Ihrer Regenbogentabelle landet - Sie müssen sie trotzdem alle durchgehen.

Das ist eine unmögliche Aufgabe. Es müssen 115.792.089.237.316.195.423.570.985.008.687.907.852.837.564.279.074.904.382.605.163.141.518.161.494.336 gültige private Schlüssel durchlaufen werden. Um das ins rechte Licht zu rücken: Wenn Sie auf jeden Quadratmikrometer der Erde (1/1600 des Querschnitts eines menschlichen Haares) einen Computer stellen würden, der so viele öffentliche Schlüssel pro Sekunde berechnen kann, wie das gesamte Bitcoin-Mining-Netzwerk Hashes pro Sekunde erzeugt Zum Zeitpunkt des Schreibens (4 Exahash / s) würden Sie das 120000-fache des Alters des Universums benötigen, um alle Schlüssel zu durchlaufen.

Und selbst wenn Sie irgendwie ein Orakel hätten, das Ihnen die Regenbogentabelle geben könnte, müsste es unmöglich groß sein, um das Knacken privater Schlüssel praktisch zu machen. Wenn Ihre Tabelle eine Billion Einträge hätte, würde das Cracken nur eine Billion Mal schneller werden. Das ist noch völlig unmöglich.

Hoch oben im Norden, im Land namens Svithjod, steht ein Felsen. Es ist hundert Meilen hoch und hundert Meilen breit. Alle tausend Jahre kommt ein kleiner Vogel zu diesem Felsen, um seinen Schnabel zu schärfen. Wenn der Fels also abgetragen ist , dann ist Pieters Berechnung abgeschlossen.
Ja, aber was ist, wenn Bitcoin 120000-mal so alt ist wie das Universum? Ich mache mir Sorgen, weil wir einen Tiefpunkt haben könnten.

Danke für den großen Bitcoin Collider (LBC) Link. Ich habe es mir lange angesehen, aber es geht mir zu weit. Scheint, dass sie regelmäßig private Schlüssel finden, die zu aktiven Konten mit einigen BTC passen. Das ist ein alarmierender Anblick. Zumal diese noch im Kleinen läuft.

Dann bin ich auf diesen hervorragenden Beitrag gestoßen: https://www.reddit.com/r/btc/comments/65mjm3/bitcoin_wallets_under_siege_from_collider_attack/dgbudsk/ Auf die Frage, warum die LBC anscheinend bereits private Schlüssel zu aktiven Konten gefunden hat, antwortete er:

Die Wallets, die sie bisher angegriffen haben, sind keine generischen Bitcoin-Wallets mit zufälligen privaten Schlüsseln wie die üblichen, sondern sie wurden speziell entwickelt, um gebrochen zu werden. Sie gehören hauptsächlich zur Puzzle-Transaktion, die viele "einfache" private Schlüssel enthält.

Was bedeutet das?

Ich bin mir nicht ganz sicher, ob alle über denselben Ansatz / dasselbe Problem sprechen, aber ich denke, es ist am Ende ähnlich: Wie schwer ist es, einen privaten Schlüssel zu einer bestimmten aktiven Bitcoin-Adresse oder einer der aktiven Bitcoin-Adressen zu finden? Ich hoffe, dyoniziz von reddit hat recht.

LBC findet immer nur Schlüssel, die mit unsicheren Zufallszahlengeneratoren generiert wurden. Alles andere erfordert astronomische Mengen an Rechenleistung, auf die die Technologie ausgelegt ist, also lassen Sie sich davon nicht abschrecken.
Können Sie das näher erläutern? Ich verstehe nicht, warum mit Zufallszahlengeneratoren generierte Schlüssel eher vom LBC gefunden werden? Ich dachte, LBC geht die möglichen Schlüssel nur methodisch durch, sozusagen von Anfang bis Ende?
Dinge, die mit unsicheren Zufallszahlengeneratoren generiert werden, sind leichter zu finden, indem versucht wird, den von ihnen verwendeten Algorithmus nachzuahmen. Ein guter Zufallszahlengenerator erzeugt Zahlen, die nicht von Zufallszahlen zu unterscheiden sind, sodass jedes Suchmuster so gut wie jedes andere ist. Und der Tastenraum ist so massiv groß, dass es unmöglich ist, jemals wieder zufällig einen zu treffen.
@PieterWuille „es wird nur immer “ – wenn sie lange genug rechnen, finden sie alles. Wir werden sehen, wie schnell das Rechnen in unserer Lebenszeit sein kann und ob Bitcoin darüber bricht. Ich fühle mich auch gerade recht wohl, aber das kann sich ändern, dem müssen wir uns stellen.
Viel Glück dann.

Nehmen wir an, ich habe 101 private Schlüssel, die von einem Pseudo-RNG generiert wurden, aber ich habe einen verloren. Theoretisch denke ich, dass es möglich ist, 100 private/öffentliche Paare zu verwenden, um das fehlende zu knacken. Denn während der tatsächliche Zahlenraum verrückt groß ist, ist der Pseudo-RNG-Zahlenraum durch den Gleitkommaraum der Hardware selbst begrenzt. Ich denke auch, dass es möglich ist, aus den 100 einen Regenbogentisch zu erstellen, der ihn zugänglicher macht. Wenn ich falsch liege, bitte jemand erklären.

Ich habe abgelehnt. Diese Antwort ist völlig falsch. Ein richtig gestalteter PRNG lässt niemanden Informationen über den Zustand oder andere Ausgaben bei bekannten Ausgaben ableiten; es wäre komplett kaputt, wenn das der Fall wäre. Es wird nirgendwo ein Fließkomma verwendet. Regenbogentabellen sind völlig nutzlos, wie ich in meiner eigenen Antwort unten erkläre.
Ich habe ein College-Lehrbuch, "Making and Breaking Codes", geschrieben von Paul Garrett, und es ist ein Text im vierten Jahr in mathematischer Verschlüsselung, der etwas anderes sagt. Einige alte sind knackbar. Es gibt auch PRNG-Cracking-Software wie Mandarino, die es einigen Leuten ermöglicht hat, Geld zu verdienen, indem sie Online-Casinos betrügen. Der interne Zustand des PRNG kann angeblich entdeckt werden, da es sich tatsächlich um einen deterministischen Algorithmus handelt. Ein richtiges Design würde also einige zufällige Daten wie CPU-Temperatur, Lüftergeschwindigkeit, Mausbewegungen usw. enthalten. Aber PRNG aus dem Jahr 2000 hätte das möglicherweise nicht enthalten.

tatsächlich wäre das theoretisch möglich. ein solcher Tisch ist zum Glück sehr groß. für mehr lesen sie zB über den großen bitcoin collider . Wenn eine aktive Adresse bedeutet, dass sie Geld ausgibt, wird der Pubkey offengelegt, was den Angriff erleichtert. Solange eine Adresse nur Geld erhalten hat, ist sie durch die 2. Hashing-Schicht besser geschützt.

lbc kann ignoriert werden, aber sie gehen systematisch durch den Schlüsselraum von kleinen Schwierigkeiten zu großen nach Entropie. leicht zu findende Schlüssel sind nur ein Köder, um mehr Leute einzubeziehen. @Pieter: Natürlich ist schwaches RNG ein Problem, aber das stand nicht in Frage; Wir sollten uns besser einige offene Hardwarestandards für TRNG besorgen.

Interessanterweise stimmen die Leute dies ab. wir müssen uns dem stellen: es gibt neben der skalierbarkeit auch probleme bei der implementierung von bitcoin. das Hashing war nicht durchdacht und der ecc algo (Secp256k1: T=(p,a,b,G,n,h); a=0 , b=7 … h=1. siehe Folie von ruedi ) bekam den Parameter eine Nullung ohne triftigen Grund (Leistung ist überhaupt kein gutes Argument in Sachen Krypto). Kryptografie würdigt keine Schwächen, so klein sie auch sein mögen.

Keine Änderung am Hashing-Algorithmus würde Schlüssel, die mit einem unsicheren RNG generiert wurden, sicher machen. Ich habe keine Ahnung, von welchen ECC-Parametern du sprichst.
@PieterWuille 1. hat niemand behauptet, wenn ja, zeig mich dorthin, PLZ, und 2. weißt du es hoffentlich. Mathe ist kein Geheimnis: Ruedi auf 31c3 ; Sekp256k1: T=(p,a,b,G,n,h); a=0 , b=7 … h=1.
Ja, a=0 ist eine bewusste Wahl, die bestimmte Operationen schneller macht. Es sind keine Angriffe gegen diese Wahl bekannt.
Ich weiß, weißt du, aber ist trotzdem kein gutes Argument. Fragen Sie die Kryptographen herum, sie werden es Ihnen sagen, wenn sie gesund sind. Das Ändern der Krypto-Implementierung für die Leistung ist einfach eines der Dinge, die Sie nicht tun sollten, wenn Sie die Wahl haben.
Es wurde nichts verändert. Secp256k1 war eine elliptische Kurve, die von der SECG standardisiert wurde, bevor Bitcoin existierte. Satoshi wählte nur eine Kurve, bevor EC cool war, und wählte schließlich einen anderen Standard als der Rest der Welt. Es war im schlimmsten Fall eine ungewöhnliche Wahl, aber keine schlechte
Ich habe abgelehnt, weil diese Antwort keine nützlichen Informationen liefert. „Theoretisch möglich“ sollte angemessen beziffert und „Probleme bei der Implementierung von Bitcoin“ mit glaubwürdigen Beweisen untermauert werden, da der hier präsentierte Beitrag die tatsächliche Möglichkeit eines solchen Angriffs völlig überzeichnet und uninformierte Leser alarmieren könnte.