Elliptiska kurvor
Det rationella fallet
Låt oss börja med att kort studera en elliptisk kurva över kroppen .Elliptic Curve defined by y^2 = x^3 - 3/2*x + 7/4 over Rational Field
Det är enkelt att rita kurvan.
Illustration av addiion över en elliptisk kurva.
(, , )
Ellitpiska kurvor över ändliga kroppar
Det är lika enkelt att definiera en elliptisk kurva över kroppen .Elliptic Curve defined by y^2 = x^3 + 2*x + 1 over Finite Field of size 1213
Hur många punkter innehåller ?
Låt vara en punkt i med vilken vi kan genererar samtliga punkter i .
Notera att punkten lagras med så kallade projektiva koordinater enligt förhållandet . Oändlighetspunkten representeras av .
(, )
Med hjälp av kan vi genererar andra punkter på .
Vi får samma punkt om vi multiplicerar med 8.
Antag att vi vill välja ut en punkt på med ett givet -värde, t.ex. , under förutsättning att en sådan punkt finns. Med hjälp av Pari/GP kan vi bestämma motsvarande -koordinat.
[, ]
Funktionen reurnerar två -värden. Notera att gp.ellordinate returnerar en Pari/GP-lista, därför omvandlar vi den med funktionen list till en datatyp som Sage förstår. Vi väljer den första av dem när vi definierar en punkt . För att undvika eventuella problem då vi längre fram ska utföra beräkningar typomvandlar vi utdata från Pari/GP till en datatyp som passar Sage.
PARI/GP interpreter
Integer Ring
Addition av punkter över den elliptiska kurvan är implemeterad.
Hur många kopior av måste vi addera för att nå oändlighetspunkten?
Låt oss kontrollera att det stämmer genom att verifiera att för alla $k [removed]
Eftersom är en generator för , så är ordningen för lika med antal element i .
Den diskreta logaritmen är det minsta positiva heltal sådant att .
Svaret ovan stämmer med vår definition av . Men även kan erhållas med hjälp av .
En illustration av additionen .
Vi kan även markera alla punkter , där , och rita en linje mellan varje par och .
Punktera .
Samtliga punkter (vi bestämmer alla punkter utom oändlighetspunkten för att undvika programkörningsfel).
Försök följa polygontåget om du kan!