So generieren Sie einen öffentlichen Schlüssel aus einem privaten Schlüssel mit dem Elliptic Curve Digital Signature Algorithm

Ich versuche, die grafische Grundlage zu verstehen, die dem diskreten logarithmischen Elliptic Curve Digital Signature Algorithm (ECDSA) zugrunde liegt, der in Kapitel 4 von „Mastering Bitcoin“ von Andreas Antonopolous vorgestellt wurde: https://github.com/aantonop/bitcoinbook/blob/develop /ch04.asciidoc

Andreas sagt, dass ein Punkt in einer elliptischen Kurve zu sich selbst hinzugefügt werden kann, indem man eine Tangente zeichnet, den Schnittpunkt findet und dann den neuen Punkt auf der x-Achse spiegelt. Das ergibt für mich keinen Sinn, aber im Moment glaube ich einfach blind. Dann ist K = k * G, wobei k der private Schlüssel, G ein konstanter "Generatorpunkt" und K der öffentliche Schlüssel ist.

Dann zeigt er die beigefügte Abbildung, die grafisch zeigt, wie man von G zu 8G kommt.

  1. Ist „8“ in diesem Beispiel der private Schlüssel?
  2. Angesichts von K und G scheint diese Funktion nicht irreversibel zu sein. Übersehe ich etwas oder wird es nur im diskreten logarithmischen Äquivalent irreversibel?Geben Sie hier die Bildbeschreibung ein
Wie stellen Sie sich den Wechsel von 2G zu G vor?

Antworten (3)

  1. Ja.
  2. Stellen Sie sich vor, Sie sehen nur den Punkt bei G und den Punkt bei 8G. Sie versuchen festzustellen, wie oft der Punkt hinzugefügt wurde. Und die Zahl ist nicht 8, sondern irgendwo zwischen 1 und 2^256.

Übersehe ich etwas oder wird es nur im diskreten logarithmischen Äquivalent irreversibel?

Ich habe keine Ahnung was das heißt; Die Antwort überlasse ich jemand anderem.

Technisch gesehen ist es nicht irreversibel. Der blinde Brute-Force-Algorithmus (wähle privaten Schlüssel = 1, teste, wenn nicht der richtige öffentliche Schlüssel, dann erhöhe den privaten Schlüssel und versuche es erneut) würde funktionieren, obwohl der bekannteste Algorithmus zur Lösung des Elliptic Curve DLP ungefähr O(n^(1 /2)) Schritte, wobei n die Ordnung der Elliptic Curve Group ist. Für Secp256k1 bedeutet das ungefähr 2^128 Schritte, was einfach völlig unmöglich ist (bis Quantencomputer Realität werden).
Sicher, es ist eigentlich nur die generische Baby-Step-Riesenschritt- oder Pollards-Rho-Methode, die Kollisionsalgorithmen sind. Pollard Rho ist etwas langsamer, aber viel weniger speicherintensiv. Sie können diese entweder nachschlagen, oder ich kann Ihnen meine Abschlussarbeit zusenden, die ich über ECC geschrieben habe.
@WizardOfOzzie Gut zu lesen! Ich denke, Sie wollten auf royalforkblog.com/2014/09/04/ecc verlinken
Ich bin auf Android, kann also nicht bearbeiten, aber Sie können den falschen Link löschen oder bearbeiten, wenn ich dies nicht zuerst tue!

Tatsächlich ist k nach dem, was ich über ECDSA beim Lesen dieses Blogs verstanden habe , in K = k * G nicht der Primärschlüssel, sondern nur eine Zufallszahl. und die x-Koordinate von K ist bekannt als R und unter Verwendung von R, k und dem privaten Schlüssel bestimmen wir S.

R = x-Koordinate (k*G)

S = k^-1 (z + dA * R) mod p

wobei dA der private Schlüssel ist

Bitte lesen Sie diesen Blog, um ECDSA besser zu verstehen.

Um nun k aus K und G zu bestimmen, gibt es keine Punktsubtraktion oder Punktdivision, also können wir die Zufallszahl k nicht direkt von K und G durch K/G erhalten. Aber wie @StephenM347 im Kommentar erwähnt, ist ein Brute-Force-Angriff möglich, aber mit der aktuellen Rechenleistung nicht möglich

Ist „8“ in diesem Beispiel der private Schlüssel?

Antwort: Ja.

Angesichts von K und G scheint diese Funktion nicht irreversibel zu sein. Übersehe ich etwas oder wird es nur im diskreten logarithmischen Äquivalent irreversibel?

Um tiefere technische Informationen zu vermeiden, ist diese Funktion reversibel. Die Annahme seiner Sicherheit basiert auf der Tatsache, dass die Zeit zum Berechnen der Rückwärtsoperation viel zu lang ist, um mit der aktuellen Verarbeitungsleistungstechnologie praktisch ausgeführt zu werden.

Jedenfalls könnte jeder Gewichtungsfortschritt im Quantum Computing einen weiteren Schritt in Richtung Schwächung der auf der elliptischen Kurve basierenden ECDSA-Verschlüsselung darstellen.

Wie bekannt ist, würde jeder Verschlüsselungsalgorithmus, der auf dem zuvor erwähnten Verfahren basiert, plötzlich verwundbar werden, wenn QC in Bezug auf die Ausrüstung Realität werden würde, ohne dass so viel Aufwand aufgewendet werden müsste.

Aus diesem Grund unterstütze ich nachdrücklich Kryptowährungsprojekte, die XMSS-Signaturen anstelle von ECDSA für die langfristige Quantenresilienz unterstützen. Ein gutes Beispiel für die letztgenannte Technologie ist QRL https://theqrl.org