Öffentlicher Bitcoin-Schlüssel zu privatem Schlüssel

Ich habe viele Artikel durchgesehen, in denen es heißt: Es ist höchst unmöglich, den öffentlichen Bitcoin-Schlüssel zu knacken und daraus einen privaten Schlüssel zu erhalten. Ich verstehe, dass der öffentliche Schlüssel einige Informationen über den entsprechenden privaten Schlüssel enthält. Kann mir jemand einige Schritte zur manuellen Berechnung und Umkehrung der Skalarmultiplikation aus dem öffentlichen Schlüssel vorschlagen, damit ich den privaten Schlüssel erhalte? Ich suche keine Skripte dafür, aber ich suche nach mathematischen Schritten, um den öffentlichen Schlüssel in den privaten Schlüssel umzukehren.

Die mathematischen Schritte, die Sie verlangen, sind diejenigen, die zum Brechen des Public-Key-Kryptografiesystems erforderlich sind. Derzeit sind diese Schritte unbekannt.
Vielleicht möchten Sie den mathStack ausprobieren, dort gibt es LaTeX-Unterstützung anstelle von Code-Hervorhebung ... Nach dem, was ich gelesen habe, wenn Sie den Besitzer einer bestimmten Adresse dazu bringen können, Dinge falsch zu signieren, sehen Sie sich den Wiki - Signatur-Generierungsalgorithmus an (springen Sie zu . .. it is also crucial to select different k for different signatures... speziell), ist es dann möglich, ohne erschöpfende Suche nach dem privaten Schlüssel zu suchen. Nebenbei bemerkt, dies könnte zum Brennen von Daten über private Schlüssel verwendet werden, die absichtlich als letzte Transaktion offengelegt wurden.

Antworten (4)

  • Zunächst können Sie in diesem Forum sehen, wie Sie den öffentlichen Schlüssel aus dem privaten Schlüssel mithilfe der Elliptic Curve (EC)-Mathematik berechnen: How do you get a Bitcoin Public Key from a Private Key

    Der dort angegebene G-Punkt ist der „Basispunkt“ in EC und ein bekannter Parameter. Sie können alle von der in Bitcoin verwendeten EC verwendeten Parameter hier einsehen: https://en.bitcoin.it/wiki/Secp256k1

    Kurz gesagt, der EC für Bitcoin ist als secp256k1 bekannt : y^2 = x^3 + 7 , und der öffentliche Schlüssel wird durch wiederholte Punktverdopplung und Skalarpunktmultiplikationen gebildet .

    Wie Sie sehen, besteht das Problem darin, eine Reihe von modularen Multiplikationen umzukehren , oder was in der EC-Mathematik als Problem des diskreten Logarithmus bezeichnet wird (in Analogie zum echten Problem des diskreten Logarithmus in anderen Kryptosystemen wie DSA und DH): gegeben zwei Punkte P und Q (die zu einer Untergruppe eines EC gehören) ermitteln die ganze Zahl x, die die Gleichung Q = x·P erfüllt

  • Jetzt können Sie verschiedene Algorithmen verwenden, um zu versuchen, die Operation umzukehren: Die bekanntesten sind der Baby-Step-, der Giant-Step-Algorithmus und die Rho-Methode von Pollard .

    Eine schrittweise Beschreibung finden Sie hier: http://andrea.corbellini.name/2015/06/08/elliptic-curve-cryptography-breaking-security-and-a-comparison-with-rsa/

Ich denke, das kann als Ausgangspunkt dienen.

So finden Sie mindestens einen privaten Schlüssel aus einer großen Liste komprimierter öffentlicher Schlüssel secp256k1 Ich gehe davon aus, dass es dafür neue Methoden und Wege gibt. Bitte beschreiben Sie, wie dies geschehen kann. crypto.stackexchange.com/questions/70006/…
@Rozwrcd: Was Sie fragen, ist nicht machbar.

Das ist einfach praktisch nicht möglich ; Es ist eine der Grundvoraussetzungen der Public-Key-Kryptographie :

Die Stärke eines Public-Key-Kryptografiesystems beruht auf dem Rechenaufwand ( Arbeitsfaktor in der Kryptografie), der erforderlich ist, um den privaten Schlüssel aus seinem gepaarten öffentlichen Schlüssel zu finden. Wenn dies der Fall ist, erfordert eine wirksame Sicherheit lediglich die Geheimhaltung des privaten Schlüssels; der öffentliche Schlüssel kann offen verteilt werden, ohne die Sicherheit zu gefährden.

Sofern nicht jemand den kryptografischen Algorithmus bricht, der zum Generieren der Schlüssel verwendet wird, ist es am besten, einfach zufällige Schlüssel zu generieren und zu prüfen, ob der entsprechende öffentliche Schlüssel mit dem übereinstimmt, den Sie bereits haben. (Nun, das ist eine leichte Übertreibung, aber Sie verstehen, worauf es ankommt.)

Ja, Brute-Force-Angriff auf den privaten Schlüssel und Überprüfung, ob generierte öffentliche Schlüssel übereinstimmen, ist derzeit die einzig denkbare Methode.

Ich denke, es ist nicht möglich, den öffentlichen Schlüssel zurückzubekommen, jemand hätte Supercomputerleistung eingesetzt, um alle Bitcoins zurückzubekommen und superreich zu werden.

Ein öffentlicher Schlüssel wird von einem privaten Schlüssel abgeleitet. Um den öffentlichen Schlüssel abzuleiten, benötigen Sie eine elliptische Kurve, Bitcoin hat sich für die Verwendung von secp256k1 entschieden. Ihr öffentlicher Schlüssel ist Ihr privater Schlüssel multipliziert mit dem Generatorpunkt (der im secp256k1-Standard eine Konstante ist), also ein Punkt auf der Kurve