Ich lese mich in ECC-Kurven ein und auf vielen von ihnen sehe ich eine Illustration, die so aussieht
Wie sieht die vergleichbare Kurve bei Bitcoin aus, oder sind generell alle Kurven gleich?
Ich fürchte, Ihnen wird die Antwort nicht gefallen.
Diese Kurven - einschließlich der secp256k1
Kurve y 2 = x 3 + 7 - "sehen" gut aus, wenn sie in typischen Feldern (wie den reellen Zahlen) ausgewertet werden, aber secp256k1 ist über das endliche Feld Z 2 256 -2 32 -977 definiert , was bedeutet die X- und Y-Koordinaten sind 256-Bit-Ganzzahlen modulo einer großen Zahl. Kurven, die solche Koordinaten verwenden, haben kein Konzept von durchgehenden Linien.
Ich habe versucht, diese Kurve über ein ähnliches, aber viel kleineres Feld, Z 2 8 +1 , zu zeichnen . Die Koordinaten erstrecken sich von -128 bis 128.
Beachten Sie, dass es, obwohl es geometrisch vielleicht keinen Sinn mehr macht, immer noch alle Eigenschaften hat, die Sie brauchen. Eine Linie (dh eine Gruppe von Punkten mit der Gleichung ay + bx + c = 0 ), die 2 Punkte der Kurve „schneidet“, schneidet einen dritten. Die Tangente hat wieder keine geometrische Interpretation mehr, aber Sie können immer noch symbolisch eine Ableitung der Gleichung in einem bestimmten Punkt berechnen, die die Eigenschaft hat, die Kurve in einem zweiten Punkt zu schneiden.
Um Ihnen zu zeigen, was Sie erhalten würden, wenn dies über den reellen Zahlen läge, ist hier ein Diagramm derselben Kurvengleichung für diesen Fall. Einmal mit den Koordinaten -128 bis 128, einmal mit -8 bis 8.
Sie können das Bitcoin-Dokument https://en.bitcoin.it/wiki/Secp256k1 überprüfen , dort finden Sie einige technische Details über das in Bitcoin verwendete secp256k1.
Unten eine Illustration der elliptischen Kurve des secp256k1 y2 = x3 + 7 über den reellen Zahlen (Plot mit www.desmos.com/calculator/ialhd71we3 )
im Zusammenhang mit einem endlichen Feld Zp, das das ECC-Erscheinungsbild stark verändert, aber nicht seine zugrunde liegende Gleichung oder spezielle Eigenschaften. Das folgende Bild stellt dieselbe Gleichung in einem endlichen Feld F17 dar (die x- und y-Werte sind ganze Zahlen zwischen 0 und 17).
und hier über F59 :
Hier finden Sie ein Online-Opensource-Tool https://cdn.rawgit.com/andreacorbellini/ecc/920b29a/interactive/modk-add.html , das Ihnen hilft, den Graphen zu zeichnen und Additionen oder skalare Multiplikationen auf einem EC durchzuführen. ZB mit P+Q über F97 plotten.
Ein weiterer guter Artikel über ECDSA in Bitcoin ist https://github.com/bellaj/Bitcoin_Ethereum_docs/blob/6bffb47afae6a2a70903a26d215484cf8ff03859/ecdsa_bitcoin.pdf
secp256k1 wurde fast nie verwendet, bevor Bitcoin populär wurde, aber es gewinnt jetzt aufgrund seiner mehreren netten Eigenschaften an Popularität. Die am häufigsten verwendeten Kurven haben eine zufällige Struktur, aber secp256k1 wurde auf eine spezielle nicht zufällige Weise konstruiert, die eine besonders effiziente Berechnung ermöglicht. Dadurch ist sie bei ausreichend optimierter Umsetzung oft mehr als 30 % schneller als andere Kurven. Außerdem wurden die Konstanten von secp256k1 im Gegensatz zu den beliebten NIST-Kurven auf vorhersehbare Weise ausgewählt, was die Wahrscheinlichkeit erheblich verringert, dass der Ersteller der Kurve irgendeine Art von Hintertür in die Kurve eingefügt hat.
Da das zugrunde liegende Feld für die elliptische Kurve für secp256k1 F p ist , wobei p = 2 256 – 2 32 – 977 ist, und da p sehr nahe an einer Potenz von 2 liegt, ist es sinnvoll zu versuchen, die elliptische Kurve y 2 = x graphisch darzustellen 3 +7 über dem Feld von 2-adischen Zahlen oder verwandten Ringen. Da wir hier nur endlich Platz zum Posten haben, zeichnen wir einfach die elliptische Kurve über einen Ring der Form Z 2 n . Der Ring der 2-adischen ganzen Zahlen ist die inverse Grenze der Ringe der Form Z 2 n . Daher sind die Ringe Z 2 nkönnen als endliche Annäherungen für den Ring der 2-adischen ganzen Zahlen betrachtet werden. Nun wollen wir die elliptische Kurve so darstellen, dass zwei Punkte, die bezüglich der 2-adischen Metrik nahe beieinander liegen, auch auf der grafischen Darstellung der elliptischen Kurve nahe beieinander liegen.
Sei f:Z 2 n ->{0,...,2 n -1} die Funktion mit f(a 0 2 0 +...+a n-1 2 n-1 )= a n-1 2 0 +...+a 0 2 n-1 wenn a 0 ,...,a n-1 alle Elemente der Menge {0,1} sind. Mit anderen Worten, f kehrt einfach die Bits in der binären Darstellung eines Elements von Z 2 n um . Dann befinden sich die weißen Pixel im folgenden Diagramm genau an den Punkten mit den Koordinaten (f(x),f(y)) mit y 2 = x 3 +7 mod 2 nwobei n = 9. Dieses Bild ist eine Annäherung an das Bild der elliptischen Kurve über dem Ring von 2-adischen ganzen Zahlen.
Da der Körper der komplexen Zahlen isomorph zu jedem Ultraprodukt der algebraischen Abschlüsse endlicher Körper F p durch einen nicht-hauptsächlichen Ultrafilter auf der Menge aller Primzahlen ist, sollte man sich die endlichen Körper als Annäherung an die Menge aller Komplexen vorstellen Zahlen. Darüber hinaus bettet sich das Feld der p-adischen Zahlen in das Feld der komplexen Zahlen ein, sodass man sich die endlichen Felder als Objekte vorstellen kann, die sich einem Feld annähern, das das Feld der p-adischen Zahlen als Teilfeld enthält. Daher ist es angemessen, die Graphen der elliptischen Kurve y 2 = x 3 zu verwenden+7 über den reellen Zahlen, komplexen Zahlen oder sogar den p-adischen Zahlen als Visualisierung für die Felder, die in der Kryptografie mit elliptischen Kurven verwendet werden. Man muss sich nur bewusst machen, dass man zu Visualisierungszwecken in einem anderen Bereich arbeitet.
Macher7
Z subscript: 2^256-2^32-977
(Ich lerne das im Laufe der Zeit). Was bedeutet das ... vielleicht "nimm den Mod von ..." oder hat es etwas mit der Definition eines Feldes zu tun, das ich noch nicht verstehe.Pieter Wuille
Macher7
eldentyrell
Pieter Wuille
Macher7
Pieter Wuille
Karl Crott
Pieter Wuille
Jus12
Gewure
Prinz M
Pieter Wuille