Erste Schritte mit elliptischen ECC-Kurven

Blockchain-Lernwebsite

https://web3study.club/

Einführung

ECC (Ellipse Curve Cryptography) ist auch als Elliptische-Kurven-Kryptosystem, Elliptische-Kurven-Verschlüsselungsalgorithmus usw. bekannt. Elliptische-Kurven-Verschlüsselungsalgorithmen sind in Bitcoin und Blockchain weit verbreitet.

Formel: y^2 = x^3 + ax + b

Hier stellen wir diesen Teil des Inhalts auf einfache und leicht verständliche Weise vor, damit jeder ein einfaches Verständnis haben kann

Prinzip Einführung

Inhalte zur Verschlüsselung öffentlicher und privater Schlüssel

Der öffentliche Schlüssel wird nicht offengelegt, und der private Schlüssel stellt einen Prozess dar, der nicht offengelegt werden kann. Die zu verschlüsselnden Informationen werden mit dem öffentlichen Schlüssel verschlüsselt und dann zur Entschlüsselung an den privaten Schlüssel gesendet, und nur der private Schlüssel kann verschlüsselt werden entschlüsselt. Hier gibt es zwei Probleme:

  1. Der Prozess der Public-Key-Verschlüsselung ist schnell und einfach
  2. Die verschlüsselte Information ist irreversibel und es ist schwierig, sie direkt zu entschlüsseln, das heißt, sie ist irreversibel.

Grafische Erklärung

Beispiel Elliptische Kurve:

  1. Die elliptische Kurve ist symmetrisch zur x-Achse, wenn Sie einen Punkt in positiver Richtung der y-Achse wählen, muss es einen symmetrischen Punkt in -y geben
  2. Finden Sie einfach zwei Punkte in der Grafik, verbinden Sie die beiden Punkte zu einer Linie und verlängern Sie sie dann durch den dritten Punkt (außer der vertikalen Linie).

Wie in der Abbildung gezeigt, suchen Sie nach der Verlängerungslinie von A und B nach dem Symmetriepunkt der y-Achse, und Sie erhalten Punkt C, was eine Operation ist, und AB erhält C. Einfach gesagt, es ist ein Punkt Operation (diese Punktoperation ist die Additionsoperation der elliptischen Kurve): A Punkt B = C

Verbinde AC, schneide sie in einem Punkt, finde ihren Symmetriepunkt D, das heißt: A Punkt C=D

Und so weiter, wie Punkt E, AE wieder verbinden, finden Sie weitere Punkte

Nehmen Sie eine Bedingung an: Es ist bekannt, dass der Startpunkt Punkt A und der Endpunkt Punkt F ist. Wie oft Punktberechnungen durchgeführt werden können, um Punkt F zu erhalten

Wenn Sie sich den Pfad ansehen, können Sie auf jeden Fall die Anzahl der Operationen bei Punkt F ermitteln, aber wenn Sie ihn nicht haben, wird es ziemlich schwierig. Wenn Sie beispielsweise Billard spielen, lassen Sie Ihren Freund den Startpunkt von sehen den weißen Ball, und schließen Sie dann die Augen. Fangen Sie an zu spielen, halten Sie an einer bestimmten Position an, sagen Sie Ihrem Freund, er soll die Augen öffnen, und fragen Sie ihn: Darf ich nach dem Weg des weißen Balls fragen, der definitiv unbekannt ist, einschließlich der Möglichkeit, dass du hast es selbst vergessen. Dies ist eines der Prinzipien: Vorwärts ist einfach, rückwärts ist schwierig (Verschlüsselung ist einfach, Entschlüsselung ist schwierig)

Aber es gibt einen Sonderfall, wie in der obigen Abbildung, Punkt P ist ein Tangentenpunkt, der Symmetriepunkt der Verlängerungslinie ist Punkt Q, der Tangentenpunkt kann als Koinzidenzpunkt zweier Punkte betrachtet werden, dh P-Punkt P=Q = 2P und dann den Schnittpunkt wieder verlängern Symmetrie: P-Punkt 2P=3P und dann kann die Symmetrie wiederum 6P-Punkt bekommen, 6P ist etwas ganz Besonderes, schau dir nur diese Definition an, es kann so sein: (3p)2 = 6P (2p)3 = 6p Multiplikationsproblem.

Prinzip des DH-Algorithmus

Um ein einfaches Beispiel für süß-saure Schweinerippchen zu geben, sowohl Alice als auch Bob haben ein einzigartiges Rezept, Alices Zucker, Bobs Essig, Cindy ist die Verbindung zwischen ihnen, aber Cindy will immer ihr Rezept stehlen Alice fügt hier nach der Verarbeitung der Rippen Zucker hinzu , wird es durch Cindy an Bob gesendet, und Bob wird es durch Cindy an Alice senden, nachdem er die Rippen mit Essig verarbeitet hat. Fügen Sie Zucker hinzu, und Bob fügt Essig hinzu, um das Rohmaterial für süß-saure Schweinerippchen zu bilden. Nach dem Kochen die Süße und saure Schweinerippchen können abgeholt und verkauft werden. Hier werden Sie feststellen, dass Cindy zwar alle angefasst hat, aber nicht die Kernrezepte hat, es gibt keine Möglichkeit, ihre Ergebnisse zu stehlen.

Darunter sind die Rippchen öffentlich, was mit dem öffentlichen Schlüssel vergleichbar ist: Da Cindy keine privaten Schlüssel anderer Personen hat, wird sie am Ende nicht in der Lage sein, an die süß-sauren Schweinerippchen zu gelangen.

Fügen Sie auf dieser Basis den Elliptische-Kurven-Algorithmus hinzu

  1. Alice generiert den privaten Schlüssel a, Bob generiert den privaten Schlüssel b,
  2. Sowohl Alice als auch Bob haben öffentliche Daten G, die offen sind und die jeder kennen kann, dann verwendet Alice den privaten Schlüssel, um den öffentlichen Schlüssel A durch eine Punktoperation zu generieren, und Bob verwendet auch den privaten Schlüssel, um den öffentlichen Schlüssel B zu generieren
  3. Dann tauschen Sie aus, die Operation von A und B ist die verwendete Elliptische-Kurven-Verschlüsselungsoperation, da A nach einer bestimmten Zeit generiert wird, diese Zahl schwer zu kennen und irreversibel ist, sodass A a nicht umgekehrt verlassen kann und dasselbe auch nicht kann B Umkehrausgangspunkt b
  4. Nach dem Austausch generiert Alice einen neuen Schlüssel, aB, und Bob generiert einen neuen Schlüssel, bA, und zerlegt dann aB und bA gemäß dem gerade beschriebenen (3p)2 = 6P-Problem:
    1. aB = a(bG)
    2. bA=b(aG) wobei a(bG) = b(aG) gesetzt werden kann, also aB = bA

ECDHE ist ein Schlüsselaustauschalgorithmus, der mit der obigen elliptischen Kurve und DH gemischt ist, was leicht weiterzuleiten und schwer rückgängig zu machen ist

Weiterlesen

Das Prinzip, Formelableitung, Beispiele, Python-Implementierung und Anwendung der ECC-Kryptographie mit elliptischen Kurven - Programmierer gesucht

[Analyse des Ethereum-Quellcodes] IV. Elliptische-Kurven-Kryptographie und Elliptische-Kurven-Digitalsignaturalgorithmus-Anwendung in Ethereum – Programmierer gesucht

Ausführliche Erklärung der elliptischen ECC-Kurve (mit spezifischen Beispielen) - Kalafinaian - 博客园

Supongo que te gusta

Origin blog.csdn.net/u013377003/article/details/127878386
Recomendado
Clasificación