Reihenfolge der Punktgruppe von secp256k1

Punkte auf der Kurve secp256k1 bilden eine Gruppe E(Fp) über dem Feld Fp.

p = 2^256 - 2^32 - 2^9 - 2^8 - 2^7 - 2^6 - 2^4 - 1 ist eine Primzahl.

n ist die Ordnung der Gruppe E, n=115792089237316195423570985008687907852837564279074904382605163141518161494337

Ist n auch eine Primzahl?

Ist E(Fp) eine zyklische Gruppe?

Satz. Über einem endlichen Körper arbeitend, ist die Punktgruppe E(Fp) immer entweder eine zyklische Gruppe oder das Produkt zweier zyklischer Gruppen.

nmuss eine Primzahl sein, so dass (Gx, Gy) * n = slope is infinity. Hoffentlich kann jemand den anderen Teil beantworten

Antworten (2)

Der Kommentar n„muss Primzahl sein“ ist etwas verwirrend.

Die Reihenfolge der Basispunkte „muss“ in dem Sinne prim sein, dass dies eine Anforderung in den bestimmten Dokumenten ist, die Standardkurven definieren – zum Beispiel in SECG , das secp256k1 enthält. Die Basispunktreihenfolge von Bitcoin rist Primzahl.

In SECG wird auch angegeben, dass der Cofaktor der secp256k1-Kurve 1 ist, was n = r × 1wiederum prim macht. Eine Gruppe erster Ordnung ist offensichtlich zyklisch.

Vielen Dank für Ihre Antwort! Also ist E(K) eine zyklische Gruppe, r = n ist eine Primzahl und dann hat jedes Element von E(K)* die Ordnung n --> jedes Element hätte der Basispunkt sein können. Gibt es einen Grund, warum SEC G = 02 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 als Basispunkt gewählt hat?
@arulbero bezüglich SEC definiertes G: tolle Frage. Weiß jemand warum? Warum nicht bei beginnen x=0?
@Wizard Of Ozzie Der Punkt "O" ist der einzige, der nicht ausgewählt werden kann, da die Ordnung von O 1 ist. Um einen öffentlichen Schlüssel ab G sicher zu generieren, muss die Ordnung von G eine möglichst große Primzahl sein. in unserem Fall hat jedes Element außer O die gleiche Ordnung, n.
@WizardOfOzzie@arulbero Es ist wahrscheinlich, dass die Basispunkte in SECG zufällig ausgewählt wurden. Es ist auch wahrscheinlich, dass dies seitdem zu einigen Kontroversen geführt hat. Referenzen sind nicht ganz einfach zu finden, sorry.

xG ( x des Generatorpunkts G) ist eine sorgfältig ausgewählte 256-Bit-Zahl, die durch die Elemente 0001, 0010, 0011, 0100, 0101, 0110, 0111 (1 bis 7) teilbar ist, dh

0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 =

55066263022277343669578718895168534326250603453777594175500187360389116729240 Mod 1, Mod 2, Mod 3 bis Mod 7 haben alle das gleiche Ergebnis = 0

Dies bedeutet, dass für die Elemente 1 bis 7, die die kleinste Untergruppe der Ordnung n bilden, keine Residuen vorhanden sind, die Informationen als Ergebnis der Operation von G unter Addition oder Multiplikation (was eine sukzessive Addition ist) seit allen Punkten auf der Kurve preisgeben könnten muss dieselbe Gleichung y^2=x^3+7 erfüllen, die zum Konstruieren der kleinsten Untergruppe verwendet wird.

Es ist mir eine Freude, meine erste Interaktion mit einer Bitcoin-Community auf Bitcoin.Stackexchange zu haben

Das klingt alles sehr wirr. Die Ordnung des Generators ist n, genauso wie die Ordnung der Kurve (per Definition, da es sich um einen Generator handelt). Es ist eine interessante Beobachtung, dass seine X-Koordinate ein Vielfaches von so vielen kleinen Zahlen ist, aber ich bin nicht davon überzeugt, dass dies Absicht oder Zufall ist. Es trifft nicht auf Y zu, und ich sehe nicht, welchen Vorteil das haben könnte.
Die Ordnung "n" (eine Primzahl) ist die maximale Anzahl von Malen, mit denen ein einzelnes Element G (eine X-, Y-Koordinate, bei der sowohl x als auch y ebenfalls ganze Zahlen sind) geometrisch zu sich selbst hinzugefügt werden kann. Da x & y im Wesentlichen auch ganze Zahlen sind, ist die geometrische Struktur nichts anderes als die Beziehung zwischen diesen ganzen Zahlen x und y, die die Gleichung „y^2=x^3+7“ erfüllt, die die Form des EC ist. Wenn die Gleichung erfüllt ist, werden sie zu "Punkten" (x,y) auf dem EC. Außerdem ist nur x wichtig, da wir nicht nach Y auflösen, sondern um die geometrische Beziehung zu definieren, weshalb wir komprimierte Pub-Schlüssel verwenden können
x und y sind ganze Zahlen modulo p, aber die Reihenfolge von G bezieht sich auf die Additionsoperationen für elliptische Kurvenpunkte, und dies hat meines Wissens nichts mit der ganzzahligen Faktorisierung der Koordinaten zu tun.
Die Verdopplungs- und Additionsoperationen erfolgen über die x- und y-Koordinaten von G, wobei x bei G, definiert durch SEC, bereits eine 256-Bit-Zahl ist. Wenn Sie nur G + G + G durch die 3. Addition ausführen, ist der x-Wert bereits größer als den 256-Bit-Prime-Modulus, wenn Sie nur 3*G ausgeführt haben. Deshalb haben wir die 2 Mods, einen, um die ganzzahligen Koordinaten innerhalb des Bereichs zu halten, und der andere, der einfach angibt, wie viele Operationen wir ausführen können
In beiden Fällen befinden sich die Koordinaten und die Anzahl der zulässigen Operationen schließlich in einem ganzzahligen Feld, eines größer als das andere, wobei ein Kofaktor h = 1 sicherstellt, dass eine Faktorisierung nicht möglich wäre
Ich hasse es, wenn Wiki besser erklärt als ich :( hehe (lass es einen Link geben) en.wikipedia.org/wiki/Quotient_group
Die Additionsoperation für elliptische Kurvengruppen ist nicht nur das Addieren der Koordinaten, sondern eine viel kompliziertere Operation: Siehe zum Beispiel "Point Addition" auf en.m.wikipedia.org/wiki/Elliptic_curve_point_multiplication .
Natürlich haben wir es mit abstrakter Mathematik zu tun. Irgendwelche Foren, die Sie empfehlen, wo wir weiter diskutieren können? bin neu hier, also verzeiht mir
Dann verstehe ich nicht, wovon du redest. Die X- und Y-Koordinaten sind keine Mitglieder des ganzzahligen Rings, sondern Feldelemente. Ihre additive Ordnung ist p. Ihre multiplikative Ordnung ist p-1 (da p eine Primzahl ist). Sie haben keine nicht-trivialen Untergruppen. Darüber hinaus spielt dies für die von ihnen definierte elliptische Kurve keine Rolle, deren Punkte die Ordnung n haben und deren Gruppe auch keine nicht-trivialen Untergruppen hat.