Simuleringar av elliptiska kurvor för elliptisk...

73
Simuleringar av elliptiska kurvor för elliptisk kryptografi Matematiska institutionen, Linköpings universitet Eric Felding LiTH - MAT - EX - - 2019/02 - - SE Högskolepoäng: 16 Nivå: G2 Handledare: Milagros Izquierdo, Matematiska institutionen, Linköpings universitet Examinator: Göran Bergqvist, Matematiska institutionen, Linköpings universitet Linköping: Juni 2019

Transcript of Simuleringar av elliptiska kurvor för elliptisk...

Page 1: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

Simuleringar av elliptiska kurvor för elliptiskkryptografi

Matematiska institutionen, Linköpings universitet

Eric Felding

LiTH - MAT - EX - - 2019/02 - - SE

Högskolepoäng: 16

Nivå: G2

Handledare: Milagros Izquierdo,Matematiska institutionen, Linköpings universitet

Examinator: Göran Bergqvist,Matematiska institutionen, Linköpings universitet

Linköping: Juni 2019

Page 2: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund
Page 3: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

Abstract

This thesis describes the theory behind elliptic-curve Diffie-Hellman key ex-changes. All the way from the definition of a group until how the operator overan elliptic curve forms an abelian group. This is illustrated with clear examples.After that a smaller study is made to determine if there is a connection betweenthe size of the underlying field, the amount of points on the curve and the orderof the points to determine how hard it is to find out the secret key in elliptic-curve Diffie-Hellman key exchanges. No clear connection is found. Since ellipticcurves over extension fields have more computational heavy operations, it is con-cluded that these curves serve no practical use in elliptic-curve Diffie-Hellmankey exchange.

Keywords:Diffie-Hellman, elliptic curves, cryptography, ECDH, ECC

URL for electronic version:

Felding, 2019. iii

Page 4: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund
Page 5: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

Sammanfattning

Denna rapport går igenom teorin bakom Diffie-Hellmans nyckelutbyte över el-liptiska kurvor. Från definitionen av en grupp hela vägen till hur operatorn överen elliptisk kurva utgör en abelsk grupp gås igenom och görs tydligt med kon-struktiva exempel. Sedan görs en mindre undersökning av sambandet mellanstorleken av den underliggande kroppen, antal punkter på kurvan och ordningav punkterna på kurvan, det vill säga svårigheten att hitta den hemliga nyckelnframtagen med Diffie-Hellmans nyckelutbyte för elliptiska kurvor. Ingen tydligkoppling hittas. Då elliptiska kurvor över utvidgade kroppar har mer beräk-ningstunga operationer dras slutsatsen att dessa kurvor inte är praktiska inomDiffie-Hellman nyckelutbyte över elliptiska kurvor.

Nyckelord:Diffie-Hellman, elliptiska kurvor, kryptografi, ECDH, ECC

URL för elektronisk version:

Felding, 2019. v

Page 6: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund
Page 7: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

Tack

Jag skulle vilja tacka min handledare Milagros Izquierdo för att ha lett migmed en stadig hand genom detta arbete. Jag vill även tacka Sam Olsson som dåvi suttit tillsammans och skrivit våra separata rapporter ofta har kommit medinsiktsfulla kommentarer och stöttat mig moraliskt då det varit som tyngst. Jagvill även rikta ett tack till min opponent Olivia Linder.

Felding, 2019. vii

Page 8: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund
Page 9: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

Nomenklatur

N De naturliga heltalenZ HeltalenZ+ De positiva heltalenZn Heltalen modulo nQ De rationella talenR De reella talenC De komplexa talenG GruppR RingR× Den multiplikativa gruppen till RR[x] Polynomring i en variabelR[x1, . . . , xn] Polynomring i n variablerI Ideal〈A〉 Ideal genererat av mängden AF,K KropparFn Ändlig kropp med n elementFn Affina rummet av dimension n över FFP2 Det projektiva planet över FC KurvaE Elliptisk kurva

Felding, 2019. ix

Page 10: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund
Page 11: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

Innehåll

1 Introduktion 11.1 Historisk bakgrund . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 Algebraiska strukturer 32.1 Grupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Ringar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3 Kroppar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 Geometri 193.1 Affin geometri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.2 Projektiva planet . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.3 Bezouts sats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4 Elliptiska kurvor 29

5 Diffie-Hellman för elliptiska kurvor 375.1 Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.2 Undersökning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.3 Nästa steg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Litteraturförteckning 42

A Kod för elliptisk kurvor på normalform 45

B Kod för generella ellitpiska kurvor 51

Felding, 2019. xi

Page 12: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund
Page 13: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

Kapitel 1

Introduktion

1.1 Historisk bakgrundSå länge det har funnits penna och papper har människan försökt att skickameddelanden som ingen obehörig skulle kunna läsa. Ett av de tidigaste exemplenär Ceasarchiffret där alla bokstäver i alfabetet förskjuts några steg [2]. Underandra världskriget hade en del krypteringssystem blivit så svåra att det integick att lösa dem utan att testa alla möjliga kombinationer. Alan Turing ochkollegorna vid Bletchley Park byggde en maskin som med vissa startvärdenkunde räkna ut krypteringsnyckeln. Startvärderna kom bland annat ifrån atttyskarna varje morgon skickade ut en krypterad väderleksrapport som avslutademed "Heil Hitler". Detta var en nackdel för det var endast ett lösenord per dagsom användes. Lösenorden var tryckta i böcker som aldrig fick komma i fiendeshänder.

Hur skickas ett hemligt medelande utan att skicka lösenordet, nyckeln, i van-lig text, fysiskt eller digitalt? Whitfield Diffie och Martin Hellman publicerade år1976 ett system för att bestämma en gemensamm nyckel, kallat Diffie-Hellmansnyckelutbyte [2]. Det bygger på att

(ga)b ≡ (gb)a 6≡ gagb mod p

för hemliga tal a, b. Nu finns det en nyckel att kryptera med för parterna Aoch B. Året efter publicerade Ron Rivest, Adi Shamir och Leonard Adlemanett system kallat RSA som bygger på samma idé men som kan liknas vid attvarje person har en hemlig nyckel och ett hänglås som vem som helst kan låsakring ett meddelande. År 1997 kom det fram att brittiska GCHQ som bedriversignalspaning under MI5 hade kommit på liknande system som både Diffie-Hellman och RSA år 1969 respektive 1973.

Felding, 2019. 1

Page 14: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

2 Kapitel 1. Introduktion

Neal Koblitz och Victor Miller kom oberoende av varandra på hur elliptis-ka kurvor skulle kunna användas inom kryptografi 1985 [2]. En elliptisk kur-va är ingen ellips! Namnet kommer ifrån att ekvationen för en elliptisk kurvaär kopplat till bågländen av ellipser som studeras med integraler i det kom-plexa planet [1]. Giulio Fagnano (1682-1766) och Leonhard Euler (1707-1783)studerade bågländen av en ellips med elliptiska integraler. Niels Henrik Abel(1802-1829) studerade abelska integraler som är en generallissering av elliptiskaintegraler. Teorin utvecklades av Carl Gustav Jacobi (1804-1851). En rigorösforskning gjordes senare av Karl Weierstrass (1815-1897) och Hermann Schwarz(1843-1921) som fokuserade på elliptiska funktioner. Elliptiska kurvor är en sortselliptisk funktion så det är därifrån namnet kommer. Bernhard Riemann (1826-1866) studerade också ellliptiska funktioner. Svensken Anders Wiman (1865-1959) studerade hyperelliptiska kurvor. Elliptiska kurvor användes av AndrewWiles 1994 för att bevisa Fermats stora sats. Elliptiska kurvor används helatiden av datorer som med Diffie-Hellman kan bestämma en gemensam nyckel,de används även för att verifiera identiteter för att kunna ha en digital signaturbland annat inom blockkedjeteknologin där Bitcoin är framträddande.

Page 15: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

Kapitel 2

Algebraiska strukturer

Algebraiska strukturer är mängder tillsammans med en eller flera slutna ope-ratorer. Vi ska fokusera på de resultat för grupper, ringar och kroppar somär nödvändiga för att kunna definiera elliptiska kurvor och tillämpa dem inomkryptografi. Satser och definitioner i detta kapitel finns främst i [3].

2.1 Grupper

Definition 2.1. 1. Låt G vara en mängd och låt • vara en binär operator.Det ordnade paret (G, •) är grupp om:

(a) a • b ∈ G,∀a, b ∈ G, sluten,

(b) ∃ Id ∈ G så att ∀a ∈ G gäller att a • Id = Id • a = a, identitet,

(c) ∀a ∈ G∃ a−1 så att a • a−1 = a−1 • a = Id, invers,

(d) (a • b) • c = a • (b • c) gäller ∀a, b, c ∈ G, associativ.

2. Gruppen (G, •) kallas abelsk om a • b = b • a ∀a, b ∈ G, kommutativ.

Vi säger att G är en grupp under • om (G, •) är en grupp.

Exempel 2.1. Exempel på några grupper är:

1. Z,Q,R samt C med vanlig addition,+.

2. Q \ {0},R \ {0} samt C \ {0} med vanlig multiplikation,*.

Felding, 2019. 3

Page 16: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

4 Kapitel 2. Algebraiska strukturer

3. Heltalen mod n, Zn = {0, 1, . . . , n− 1} där a = {a + kn : k ∈ Z} är engrupp under addition mod n. Addition för gruppen definieras som a+ b =a+ b, där a+ b är klassen {a+ b+ kn : k ∈ Z}. Vi passar på att definieramultiplikation mod n som ab = ab, där ab är klassen {ab+ kn : k ∈ Z}. Ifortsättningen kommer vi enbart att skriva a istället för a.

4. Transformationer på Rubiks kub består av rotationer i det 3 dimensionelarummet. Det är permutationer av de 48 sidorna på kuben. Transforma-tionerna är elementen i en grupp tillsammans med en operator som utförtransformationerna i ordning. Det är lätt att se att om en transformationsker så är vi kvar i kuben, alltså sluten. Identiteten är ingen rotation alls.Inversen till en transformation fås genom att snurra tillbaks. Associati-vitet kan vara svår att föreställa sig, för hur utvärderas transformationerinnan de utförs? Speciellt då operatorn inte är kommutativ. Bevis för as-sociativitet finns i [4].

Det gäller även för grupper att [3]

1. Identiteten är unik,

2. ∀a ∈ G så är a−1 ∈ G unikt bestämd,

3. ∀a, b ∈ G så är (a • b)−1 = (b−1) • (a−1),

4. om a • u = a • v eller u • a = v • a så är u = v,∀a, u, v ∈ G, kancellering.

Exempel 2.2. Betrakta grupperna (R+, ∗) och (R,+). Låt f : R → R+ somdefinieras av f(a) = ea. Då gäller att f(a+ b) = ea+b = eaeb = f(a)f(b). Dettaär ett exempel på en grupphomomorfi. Det gäller även att f−1 : R+ → R ärväldefinerad så f är en bijektiv funktion. En bijektiv grupphomomorfi kallas fören isomorfi. Två grupper som är isomorfa är grupper med samma struktur ochlika många element så de kan slarvigt sägas vara samma grupp.

Det kan även vara intressant att ha ett begrepp för ”storleken” av elementsamt för grupper.

Definition 2.2. LåtG vara en grupp samt låt x ∈ G. Ordningen av x, |x|, är detminsta heltalet n så att xn = Id där xn betecknar gruppoperationen upprepadn gånger. Om det inte finns något sådant n sägs ordningen vara oändlig.

Exempel 2.3. 1. Kleins fyrgrupp, V4, är gruppen

• 1 a b c1 1 a b ca a 1 c bb b c 1 ac c b a 1

Page 17: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

2.2. Ringar 5

där 1 = Id har ordning 1 och elementen a, b, c har ordningen 2.

2. Elementet 1 ∈ (R,+) har oändlig ordning.

Definition 2.3. Låt G vara en grupp. Ordningen av G är antalet element i Goch betecknas |G|.

Exempel 2.4. 1. Gruppen V4 har ordning 4.

2. Ordningen av Zn är n.

3. Ordningen av (Z,+) är oändlig.

Sats 2.1. [3] Låt G vara en ändlig grupp och låt x ∈ G. Det gäller då att |x|delar |G|.

Definition 2.4. En grupp G är cyklisk om ∃x ∈ G så att G = {xn : n ∈ Z}.Vi skriver gruppen G som genereras av x som G = 〈x〉.

Elementet som genererar en grupp, generatorn, behöver inte heller vara unik.Det gäller även att cykliska grupper är abelska. Cykliska gruppen av ordning nbetecknas Cn. Det gäller att för gruppen G genererade av x att |x| = |G|

Exempel 2.5. 1. Gruppen (Z,+) är cyklisk ty alla element kan skrivas påformen 1+· · ·+1 = n, n ∈ Z. Det är lätt att se att även -1 är en generator.

2. Gruppen av enhetsrötter ({z : z ∈ C, zn = 1}, ∗) är en cyklisk grupp, Cn.Det är lätt att se att z = e

2πn i är en generator och att e0 = 1 = Id.

3. Vi kommer i avsnittet om kroppar se att utvidgade kroppar är cykliskagrupper med hjälp av Sats 2.12.

2.2 Ringar

Då vi ska utforska kroppar som är en viss typ av kommutativa ringar så kom-mer vi inte att fokusera så mycket på generella ringar. Vi är även intresseradeav att konstruera ändliga kroppar med hjälp av polynomringar. Den särskiltintresserade kan läsa mer om icke-kommutativa ringar i [3].

Definition 2.5. 1. En ring (R,+, ∗) är en mängd R tillsammans med tvåbinära operationer, +, ∗, som kallas addition och multiplikation, som upp-fyller följande:

(a) (R,+) är en abelsk grupp, identiteten för + betecknas 0R,

Page 18: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

6 Kapitel 2. Algebraiska strukturer

(b) ∗ är associativ: (a ∗ b) ∗ c = a ∗ (b ∗ c),(c) Den distrubitiva lagen håller i R

(a+ b) ∗ c = (a ∗ c) + (b ∗ c) och a ∗ (b+ c) = (a ∗ b) + (a ∗ c).

2. R kallas kommutativ om * är kommutativ.

3. R säges ha en etta om det finns ett element, 1R ∈ R, som ∀a ∈ R ⇒a ∗ 1R = 1R ∗ a = a.

För att förkorta notationen kommer vi att skriva a∗b som ab. På samma sätt somför grupper kommer notationen R att användas för ringen istället för (R,+, ∗)om det är givet vilka operatorer vi arbetar med.

Exempel 2.6. 1. Med vanlig addition samt multiplikation så är (Z,+, ∗), (R,+, ∗)och (C,+, ∗) ringar med etta.

2. Alla jämna tal, 2Z = {2x : x ∈ Z}, bildar en ring med addition ochmultiplikation som vanligt. Denna ring saknar etta.

Definition 2.6. Låt R vara en ring. En underring I till R är en ring medsamma addition och multiplikation som R samt att I är en delmängd till R.

Exempel 2.7. Ringen 2Z är en underring till Z som i sin tur är en underringtill ringen R.

Definition 2.7. Låt R vara en kommutativ ring och I vara en underring. Dåär I ett ideal om ∀r ∈ R så gäller att givet i ∈ I så gäller att ri ∈ I.

Exempel 2.8. 1. Till ringen R så är R och {0R} alltid ideal. Dessa är gans-ka tråkiga ideal men i vissa fall de enda som finns. Det gäller speciellt förkroppar som vi kommer till senare att de bara har två ideal [3].

2. (2Z,+, ∗) är ett ideal till (Z,+, ∗). Det är lätt att se ty ett jämnt talmultiplicerat med ett annat heltal blir jämnt.

Definition 2.8. Låt R vara en ring och låt A vara en delmängd till R

1. Låt 〈A〉 beteckna de minsta idealet till R innehållande A, kallat idealetgenererat av A. Om R är kommutativ så gäller att

〈A〉 =

∑1≤i≤|A|

airi : ai ∈ A, ri ∈ R

.

Page 19: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

2.2. Ringar 7

2. Ett ideal genererat av ett enda element kallas principalideal.

3. Ett primideal P är ett ideal så att om ab ∈ P så gäller att a ∈ P eller b ∈P .

Exempel 2.9. Ett principalideal till (Z,+, ∗) är (2Z,+, ∗) = 〈2〉 som är idealetgenerat av 2. Det är även ett primideal.

Exempel 2.10. Ett ideal till Z är 〈2, 3〉 = {2a + 3b : a, b ∈ Z}. Det gäller att1 = (−2) + 3 ∈ 〈2, 3〉 vilket ger att 〈2, 3〉 ∼= Z.

Definition 2.9. Låt R vara en ring. Ett ideal M till R kallas maximala idealetom M 6= R och de enda ideal som innehåller M är M och R.

Exempel 2.11. Ringarna 〈2〉 och 〈3〉 är två maximala ideal till (Z,+, ∗). 〈4〉 ärinte ett maximalt ideal till (Z,+, ∗) ty 〈4〉 ⊂ 〈2〉. 〈4〉 är inte heller ett primidealty 2 ∗ 2 ∈ 〈4〉 men 2 /∈ 〈4〉.

Sats 2.2. [3] Antag R en kommutativ ring med etta. Varje maximalt ideal tillR är ett primideal.

Definition 2.10. Låt R vara en ring och låt I vara ett ideal till R. En kvotringR/I är en ring där elementen är ekvivalensklasser {a : a + i ∈ I, a ∈ R, i ∈ I}.Addition och multiplikation för a, b ∈ R/I är

1. a+ b = a+ b

2. ab = ab

där a+ b är klassen {a+ b : a+ b+ i ∈ I, a, b ∈ R, i ∈ I} och på samma sätt ärab klassen {ab : ab+ i ∈ I, a, b ∈ R, i ∈ I}.

Observera att det är olika operationer för addition och multiplikation i R ochR/I men det använder samma symbol. Definitionen bör kännas igen från Ex-empel 2.1 då vi definierade Zn på ett liknande vis.

Definition 2.11. Låt R vara en kommutativ ring med etta.

1. Ett element a ∈ R, a 6= 0R kallas nolldelare om ∃ b 6= 0R, b ∈ R så attab = 0R.

2. En enhet är ett element a ∈ R så att ∃ b ∈ R, ab = ba = 1R. Mängden avenheter till R betecknas R×, kallas den multiplikativa gruppen till R.

Exempel 2.12. I Z8 = {0, 1, 2, 3, 4, 5, 6, 7} med addition och multiplikationmod 8 så är 2∗4 = 0, 6∗4 = 0 så 2, 4 och 6 är nolldelare. Det gäller även att denmultiplikativa gruppen Z×8 = {1, 3, 5, 7} ty 1∗1 = 1, 3∗3 = 1, 5∗5 = 1, 7∗7 = 1.Ordningen av 1, 3, 5 och7 är alltså 2. Det är inte så svårt sen att visa att Z×8är isomorf med V4, som sågs i Exempel 2.3.

Page 20: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

8 Kapitel 2. Algebraiska strukturer

Exempel 2.13. För Zp gäller där p är ett primtal att Z×p = Zp \ {0}. I Zn sågäller det att elementen u för vilka u och n är relativt prima är enheter. I Zpär alla element förutom 0 relativt prima n. I annat fall om, a 6= 0 är ett heltalinte relativt prima n så låter vi d vara största gemensamma delare till a och noch låt b = n

d . Så d > 1 och således 0 < b < n, b 6= 0. Men konstruktionen göratt n delar ab, ab = 0. Alltså a är en nolldelare. Således är alla element i Znnolldelare eller enheter. Speciellt gäller då n är ett primtal att Z×p = Zp \ {0}.

Definition 2.12. Låt R vara en kommutativ ring med etta så att 1R 6= 0R, dåkallas R för ett integritetsområde om R saknar nolldelare.

Exempel 2.14. Några olika integritetsområden är Z, C och de gaussiska hel-talen {a+ bi : a, b ∈ Z}.

Definition 2.13. Låt R vara en kommutativ ring med etta. PolynomringenR[x] över R är mängden

{p(x) =

∞∑i=0

aixi : ai ∈ R, ai = 0∀i > i0}

tillsammans med additionen∞∑i=0

aixi +

∞∑i=0

bixi =

∞∑i=0

(ai + bi)xi

samt multiplikationen

(

∞∑i=0

aixi)(

∞∑i=0

bixi) =

∞∑i=0

cixi där ck =

∑i+j=k

aibj .

Polynomringen i variablerna x1, x2, . . . , xn med koefficienter i R, betecknadR[x1, x2, . . . , xn], definieras rekursivt som

R[x1, x2, . . . , xn] = R[x1, x2, . . . , xn−1][xn].

Läsaren har säkerligen arbetat i exempelvis R[x] och C[x, y] utan att ha funderatpå ringteorin.

Exempel 2.15. 1. x3 + 2x+√

34 ∈ R[x]

2. x3 + 3x2 + y2 + 4xy3 ∈ Z[x, y]

Exempel 2.16. 1. Betrakta R[x] och polynomet x2 + 10. Det gäller då att〈x2 + 10〉 är ett ideal till R[x].

Page 21: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

2.2. Ringar 9

2. Ett ideal till R[x, y] är 〈(x+ 1), (y+ 1)〉 vilket är ett maximalt och såledesprimideal enligt Sats 2.2. Idealet I = 〈xy+x+ y+ 1〉 är inte ett primidealty (x+ 1)(y + 1) ∈ I men (x+ 1), (y + 1) /∈ I.

Sats 2.3. Låt R vara ett integritetsområde, då är R[x] ett integritetsområde.

Definition 2.14. Låt R vara ett integritetsområde. Antag att r ∈ R inte ärnoll och inte en enhet, då kallas r för reducibelt i R om r kan skrivas på formenr = ab, a, b ∈ R och varken a eller b är en enhet, a, b /∈ R×. Annars säges r varairreducibelt.

Exempel 2.17. I Z utgör primtalen alla irreducibla element.

Exempel 2.18. Låt r = ab = x2 − 2 ∈ Q[x]. Då är r irreducibelt i Q[x] tyx2 − 2 = (x −

√2)(x +

√2)men ±

√2 /∈ Q. Exempel på värden till a och b är:

a = x2

2 − 1 samt b = 2, en enhet.

Exempel 2.19. Integritetsområdet Z2 = {0, 1} ger att ett irreducibelt poly-nom, p(x) ∈ Z2[x], av grad två är på formen p(x) = x2 + αx+ β därα, β ∈ Z2.Skulle p(x) kunna skrivas på formen p(x) = r = ab så skulle a och b vara irre-ducibla polynom av grad 1 alltså x + γ, γ ∈ Z2[x] det vill säga antingen rötter

i x eller x − 1 = x + 1 i Z2[x], så vi söker{p(0) = 1p(1) = 1

, vilket ger den unika

lösningen r = p(x) = x2 + x+ 1 som är irreducibelt i Z2[x].

Exempel 2.20. För att finna ett irreducibelt polynom av grad tre i Z2[x] detvill säga p(x) = x3 + αx2 + βx+ γ ∈ Z2[x] så räcker det att kontrollera att detinte finns några faktorer av grad 1{p(0) = 1p(1) = 1 + 1 + 1 = 1

Vi finner då att x3 + x2 + 1 samt x3 + x+ 1 är irreducibla.

Exempel 2.21. För att finna ett irreducibelt polynom av grad fyra i Z2[x] detvill säga p(x) = x4 +αx3 +βx2 + γx+ δ ∈ Z2[x] så ska alla faktorer av grad ettsamt faktorer av grad 2 kontrolleras.

Inga faktorer av grad 1 ger{α+ β + γ = 0δ = 1

Inga faktorer av grad 2 ger att (x2+x+1)2 = x4+2x3+3x2+2x+1 = x4+x2+1även kan uteslutas. De irredubibla polynomen av grad 4 i Z2[x] är:x4 + x+ 1,x4 + x3 + 1,x4 + x3 + x2 + x+ 1.

Page 22: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

10 Kapitel 2. Algebraiska strukturer

Detta argument kan generaliseras för att hitta irreducibla polynom. Alla irredu-cibla faktorer av lägre grad måste kontrolleras så att de inte är faktorer. Dettakan bli omständigt att göra för hand så datorer är bra. Det räcker dock att kollaalla faktorer av grad högst bn2 c.

För vissa ringar har vi ett effektivt kriterium:

Sats 2.4. [3] Eisensteins kriteriumLåt P vara ett primideal till integritetsområdet R och låt f(x) = xn+an−1x

n−1+· · ·+a1x+a0 vara ett polynom av grad ≥ 1 i R[x]. Antag att an−1, . . . , a1, a0 ∈ Poch antag att a0 /∈ P 2. Då är f(x) irreducibel i R[x].

Exempel 2.22. x4 + 10x + 5 ∈ Z[x] irreducibelt, följer då P = 〈5〉 används iEisensteins kriterium.

Definition 2.15. Låt R vara en ring och låt I vara ett ideal till R.

1. Radikalen till I, betecknad rad I, defineras som

rad I = {r ∈ R : rk ∈ I för något k ≥ 1}.

2. Ett ideal säges vara radikalt om I = rad I.

Det är inte ovanligt att rad I betecknas√I.

Exempel 2.23. 1. Betrakta integritetsområdet Z och dess ideal I = 6Z.Ett element är på formen x = 6y. Det följer att om xk = (6y)k ∈ I så ärx = 6y ∈ I. Så 6Z är ett radikalt ideal.

2. Idealet I = 〈x2〉 till R[x] är inte radikalt ty x /∈ I men x2 ∈ I.

Sats 2.5. [3] Prim och således maximala ideal är radikala.

Definition 2.16. Låt F vara en ring med etta, 1F 6= 0F . Om ∀a ∈ F, a 6=0F ,∃ b ∈ F så att ab = ba = 1F så kallas F för en divisionsring.

Med andra ord gäller att (F \ {0F }) = F× är en grupp med multiplikation.

Exempel 2.24. 1. Q,R och C med vanlig addition och multiplikation är di-visionsringar.

2. Låt H = {a + bi + cj + dk : a, b, c, d ∈ R} vara kvarterionerna. Additiondefinieras

(a+bi+cj+dk)+(a′+b′i+c′j+d′k) = (a+a′)+(b+b′)i+(c+c′)j+(d+d′)k.

Page 23: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

2.2. Ringar 11

Multiplikation definieras genom att expandera (a+ bi+ cj+dk)(a′+ b′i+c′j + d′k) med den distrubutiva lagen och använda relationerna

i2 = j2 = k2 = −1, ij = −ji = k, jk = −kj = i, ki = −ik = j.

Exempelvis så är (1 + i+ 2j)(j + k) = −2 + 2i+ 2k. Kvarterionerna är enav de första upptäckta ickekommutativa divisionsringarna och upptäcktes1843 av William Hamilton. De spelar en viktig roll i vissa områden avmatematik och fysik [3].

Definition 2.17. En kommutativ divisionsring kallas för en kropp.

Vi kommer hädanefter att sluta använda beteckningarna 0F och 1F för attistället använda 0 och 1.

Exempel 2.25. Zp där p är ett primtal är en kropp. Vi identifierar Zp med Fp,kroppen med p stycken element. Vi noterar även att följande sats är applicerar-bar på Zp.

Sats 2.6. [3] Ett ändligt integritetsområde F är en kropp.

Bevis. Låt F vara ett ändligt integritetsområde och låt a ∈ F, a 6= 0. Medkancellering så har vi att avbildningen x 7→ ax är en injektiv funktion. Då Fär ändlig gäller det även att den avbildning är surjektiv. Speciellt så ∃ b ∈ F såatt ab = 1. Då multiplikation är kommutativ i ett integritetsområde så gälleratt ab = ba = 1 så F är en kommutativ divisionsring, en kropp.

Följande sats angående maximala ideal kommer att användas flitigt, för attdet är ett sätt att konstruera kroppar.

Sats 2.7. [3] Antag R en kommutativ ring med etta. Idealet M är maximalt omoch endast om kvotringen R/M är en kropp.

Definition 2.18. Låt R vara en kommutativ ring med etta. Då kallas R för enNoethersk ring om det för varje kedja med växande ideal till R, I1 ⊆ I2 ⊆ I3 ⊆. . . finns m ∈ Z, Ik = Im ∀k ≥ m.

Detta garanterar att det finns ett maximalt ideal, I, och således är R/I enkropp. Det gäller även att kroppar är Noetherska ty de enbart har två ideal.

Sats 2.8. [3] Hilberts bassatsLåt R vara en Noethersk ring. Då är R[x] också en Noethersk ring.

Page 24: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

12 Kapitel 2. Algebraiska strukturer

Vi har nu olika sätt för att hitta kroppar. Antingen som en kommutativdivisionsring eller som en kvotring R/I där R är en kommutativ ring med ettaoch idealet I = 〈q(x)〉 är maximalt. Det är inte säkert att exempelvis integri-tetsområdet Z[x]/〈q(x)〉 är ändligt. Senare i Sats 2.12 kommer vi få en sats somger upphov till större kroppar givet ett irreducibelt polynom och kan ses somen utökning av Sats 2.7.

2.3 KropparKroppar är mängder tillsammans med addition och multiplikation som uppförsig så som vi är vana vid. Detta då vi vill kunna arbeta med kurvor över kroppar.

Definition 2.19. Låt F vara en kropp. Karakteristiken av kroppen F är detminsta positiva heltalet p så att p∗1 = 0 om sådant p existerar, annars definieraskarakteristiken till 0. Vi betecknar karakteristiken av en kropp som ch(F ).

Sats 2.9. [3] Låt F vara en kropp. Om ch(F ) = p > 0 så gäller ∀x ∈ F,

p ∗ x = p(1 ∗ x) = (p ∗ 1)x = 0.

Det följer att karakteristiken för en kropp antingen är ett primtal, p, eller 0. Detgäller även i en kropp av karakteristik p att (x+y)p = xp+yp och (xy)p = xpyp,kallat Frobenius homomorfin. Detta då

(pn

)= p!

n!(p−n)! är delbart med p ∀n, 0 <n < p.

Exempel 2.26. Detta är ett illustrativt exempel till varför det inte finns krop-par av karakteristik 6. Antag att (F,+, ∗) är en kropp med 6 element. Då är(F,+) en abelsk grupp. Eftersom Z6 är den enda abelska gruppen med 6 elementså måste (F,+) vara Z6. Så låt F = {0, 1, 2, 3, 4, 5} och + att vara addition mod6. Operationen * är ännu inte definierad men vi vet att 2∗3 = (1+1)∗(1+1+1) =1∗1+1∗1+1∗1+1∗1+1∗1+1∗1 = i+ i+ i+ i+ i+ i = /6i/ = 0. Men dettakan inte hända i en kropp ty ab = 0 ⇒ a = 0 eller b = 0 men i detta exempelså är a = 2 och b = 3. Så det finns inget sätt att definiera * så att (F,+, ∗) ären kropp.

Nedan följer några definitioner som säger hur kroppar kan förhålla sig tillvarandra.

Definition 2.20. Låt K vara en kropp. Om F är en kropp med samma opera-torer samt att F ⊆ K så säges F vara en underkropp till K.

Definition 2.21. Den primära underkroppen till en kropp F är underkroppentill F genererad av den multiplikativa identiteten 1 till F . Den är isomorf till Qom ch(F ) = 0 annars Fp.

Page 25: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

2.3. Kroppar 13

Definition 2.22. Om K är en kropp innehållande underkroppen F , då sä-ges K vara en utvidgning av F , som betecknas K/F . Graden av utvidgningenbetecknas [K : F ].

Definition 2.23. Den utvidgade kroppen K till F kallas en delandekropp förpolynomet f(x) ∈ F [x] om f(x) faktoriseras komplett i linjära faktorer i K[x]och f(x) inte kan faktoriseras i linjära faktorer i någon underkropp E till K såatt F ⊆ E ⊂ K.

Exempel 2.27. Polynomet x2−2 ∈ Q[x] kan inte faktoriseras i linjära faktoreröver Q men om Q utvidgas med

√2 så fås att (x −

√2), (x +

√2) ∈ Q(

√2)[x]

där Q(√

2) = {a+ b√

2 : a, b ∈ Q} och [Q(√

2) : Q] = 2.

Addition iK definieras som vanlig polynomaddition mod ch(F ). Låt a(x), b(x) ∈K[x] och låt a(x)b(x) = p(x)h(x)+r(x) där h(x), r(x) ∈ K[x] och deg r(x) < n.Multiplikation i K definieras då som

a(x)b(x) = r(x),

där r(x) är resten (av grad < n) som fås efter att dividera polynomet a(x)b(x)med p(x) i F [x].

Definition 2.24. Låt F vara en kropp och låt K vara en utvidgning av F . Ettelement a ∈ K är algebraiskt över F om f(a) = 0 ∈ F [x].

Definition 2.25. Låt F vara en kropp. Kroppen F̄ kallas det algebraiska höljettill F om F̄ är algebraisk över F och om alla polynom f(x) ∈ F [x] delas överF̄ (så F̄ kan sägas innehålla alla element som är algebraiska över F .

Definition 2.26. En kropp F säges vara algebraisk sluten om ∀f(x) ∈ F [x]∃ a ∈F så att f(a) = 0.

Exempel 2.28. Höljet till R är C ty alla polynom med koefficienter i R harkomplexa nollställen enligt algebrans fundementalsats. Således är R(i) = R̄ = C.

Sats 2.10. [3] Låt F vara en kropp. Det algebraiska höljet till F , F̄ , är alge-braiskt slutet.

Då C är höljet till R så är C en algebraiskt sluten kropp.

Sats 2.11. [3] Låt p(x) ∈ F [x] vara ett irreducibelt polynom av grad n överkroppen F och låt K vara kroppen F [x]/〈p(x)〉. Låt θ = x+ 〈p(x)〉 ∈ K. Då ärelementen

1, θ, θ2, . . . , θn−1

Page 26: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

14 Kapitel 2. Algebraiska strukturer

en bas för K som ett vektorrum över F , så graden av utvidgningen är n, [K :F ] = n. Således är

K = {a0 + a1θ + a2θ2 + · · ·+ an−1θ

n−1 : a0, a1, . . . , an−1 ∈ F}

som består av alla polynom i θ av grad < n.

Exempel 2.29. [3] Det irreducibla polynomet x2 + 1 ∈ R[x] ger upphov tillkroppen R[x]/〈x2 + 1〉. Detta är en utvidgning av grad 2 i R i vilken x2 + 1har en rot. Således är elementen på formen a + bθ, a, b ∈ R. Addition ges av(a + bθ) + (c + dθ) = (a + c) + (b + d)θ. För multiplikation använder vi attθ2+1 = 0 alltså att θ2 = −1. Detta ger (a+bθ)(c+dθ) = ac+(ad+bc)θ+bdθ2 =ac+ (ad+ bc)θ+ bd(−1) = (ac− bd) + (ad+ bc)θ. Om vi inför noteringen θ = iså ser vi att det är samma välbekanta addition och multiplikation som vi lärtoss för C.

Exempel 2.30. Med samma metod som i exemplet ovan fast med kroppen Qså finnes att Q[x]/〈x2 + 1〉 = {a+ bi : a, b ∈ Q}, inte så förvånande. Vi har dockmed a, b, c, d ∈ Z att a+bi

c+di = (a+bi)(c−di)c2+d2 = ac+db

c2+d2 + i bc−adc2+d2 = e+ fi, e, f ∈ Q. Viser alltså att på samma sätt som Q är en fraktionskropp till Z, Q = {ab : a, b ∈Z, b 6= 0} så är Q[x]/〈x2 + 1〉 = {ab : a, b ∈ G, b 6= 0} där G är de Gaussiskaheltalen {a+ bi : a, b ∈ Z} som vi såg i Exempel 2.14.

Sats 2.12. [3] Låt F vara en kropp och låt p(x) ∈ F [x] vara ett irreducibeltpolynom av grad n. Antag att K är en utvidgandekropp till F innehållande enrot α till p(x) : p(α) = 0. Låt F (α) = 〈α〉 beteckna underkroppen till K genereradöver F av α. Då är

F (α) ∼= F [x]/〈p(x)〉.

Det gäller även att

F (α) = {a0 + a1α+ a2α2 + · · ·+ an−1α

n−1 : a0, a1, . . . , an−1 ∈ F} ⊆ K.

Det följer att om Fp utvidgas så får vi Fpn .

Exempel 2.31. Kvotringen F2[x]/〈x2 +x+1〉 = F4 är en kropp ty x2 +x+1 ärirreducibelt i F2[x]. Låt α vara en rot till x2 + x+ 1, α1 = α, α2 = −(α+ 1) =α + 1 ty α2 + α + 1 = 0 och addition och subtraktion är desamma i en kroppav karakteristik 2, α3 = 1 ty α(α + 1) = α2 + α = 2α + 1 = 1 så elementen iF2[x]/(x2 + x+ 1) är 0, 1, α, α+ 1.

Nedan följer additions- och multiplikationstabell för F4. Vi känner igen ad-ditionen som V4 från Exempel 2.3. Vi ser även att F×4 ∼= C3.

Page 27: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

2.3. Kroppar 15

+ 0 1 α α+ 10 0 1 α α+ 11 1 0 α+ 1 αα α α+ 1 0 1

α+ 1 α+ 1 α 1 0

∗ 0 1 α α+ 10 0 0 0 01 0 1 α α+ 1α 0 α α+ 1 1

α+ 1 0 α+ 1 1 α

Additionen är lätt att förstå, till exempel är α + (α + 1) = 2α + 1 = 1, detvill säga addition mod 2. Multiplikation är lite klurigare men för exempelvisα(α + 1) = α2 + α = (α2 + α + 1) + 1 = 1 då vi är i en kvotring. Annars kanα2 + α + 1 = 0 ⇐⇒ α2 = α + 1 användas ty −1 = 1 mod 2 så α(α + 1) =α2 + α = α+ 1 + α = 2α+ 1 = 1. Om beteckningen α = 2 införs så fås att

+ 0 1 2 30 0 1 2 31 1 0 3 22 2 3 0 13 3 2 1 0

∗ 0 1 2 30 0 0 0 01 0 1 2 32 0 2 3 13 0 3 1 2

.

Skulle vi istället jobba i Fp där p primtal så sammanfaller addition ochmultiplikation med den ”vanliga” mod p, som vi såg i Exempel 2.1.

Exempel 2.32. Nedan följer additions- och multiplikationsmatriserna för krop-pen F8 genererad med det irreducibla polynomet p(x) = x3 + x+ 1. Additions-matrisen är samma oavsett genererande polynom. Multiplikationsmatrisen blirdock olika för olika polynom. Det gäller att den ena är en permutation av denandra.

Page 28: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

16 Kapitel 2. Algebraiska strukturer

+ 0 1 α α+ 10 0 1 α α+ 11 1 0 α+ 1 αα α α+ 1 0 1

α+ 1 α+ 1 α 1 0α2 α2 α2 + 1 α2 + α α2 + α+ 1

α2 + 1 α2 + 1 α2 α2 + α+ 1 α2 + αα2 + α α2 + α α2 + α+ 1 α2 α2 + 1

α2 + α+ 1 α2 + α+ 1 α2 + α α2 + 1 α2

+ α2 α2 + 1 α2 + α α2 + α+ 10 α2 α2 + 1 α2 + α α2 + α+ 11 α2 + 1 α2 α2 + α+ 1 α2 + αα α2 + α αα + α+ 1 α2 + 1 α2

α+ 1 α2 + α+ 1 α2 + α α2 + 1 α2

α2 0 1 α α+ 1α2 + 1 1 0 α+ 1 αα2 + α α α+ 1 0 1

α2 + α+ 1 α+ 1 α 1 0

∗ 0 1 α α+ 10 0 0 0 01 0 1 α α+ 1α 0 α α2 α2 + α

α+ 1 0 α+ 1 α2 + α α2 + 1α2 0 α2 α+ 1 α2 + α+ 1

α2 + 1 0 α2 + 1 1 α2

α2 + α 0 α2 + α α2 + α+ 1 1α2 + α+ 1 0 α2 + α+ 1 α2 + 1 α

∗ α2 α2 + 1 α2 + α α2 + α+ 10 0 0 0 01 α2 α2 + 1 α2 + α α2 + α+ 1α α+ 1 1 α2 + α+ 1 α2

α+ 1 α2 + α+ 1 α2 1 αα2 α2 + α α α2 + 1 1

α2 + 1 α α2 + α+ 1 α+ 1 α2 + αα2 + α α2 + 1 α+ 1 α α2

α2 + α+ 1 1 α2 + α α2 α+ 1

Page 29: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

2.3. Kroppar 17

Exempel 2.33. Nedan följer additions- och multiplikationsmatriserna för F9 =F3[x]/〈x2 + x+ 2〉.

+ 0 1 2 α α+ 1 α+ 2 2α 2α+ 1 2α+ 20 0 1 2 α α+ 1 α+ 2 2α 2α+ 1 2α+ 21 1 2 0 α+ 1 α+ 2 α 2α+ 1 2α+ 2 2α2 2 0 1 α+ 2 α α+ 1 2α+ 2 2α 2α+ 1α α α+ 1 α+ 2 2α 2α+ 1 2α+ 2 0 1 2

α+ 1 α+ 1 α+ 2 α 2α+ 1 2α+ 2 2α 1 2 0α+ 2 α+ 2 α α+ 1 2α+ 2 2α 2α+ 1 2 0 12α 2α 2α+ 1 2α+ 2 0 1 2 α α+ 1 α+ 2

2α+ 1 2α+ 1 2α+ 2 2α 1 2 0 α+ 1 α+ 22α+ 2 2α+ 2 2α 2α+ 1 2 0 1 α+ 2 α α+ 1

∗ 0 1 2 α α+ 1 α+ 2 2α 2α+ 1 2α+ 20 0 0 0 0 0 0 0 0 01 0 1 2 α α+ 1 α+ 2 2α 2α+ 1 2α+ 22 0 2 1 2α 2α+ 2 2α+ 1 α α+ 2 α+ 1α 0 α 2α 2α+ 1 1 α+ 1 α+ 2 2α+ 2 2

α+ 1 0 α+ 1 2α+ 2 1 α+ 2 2α 2 α 2α+ 1α+ 2 0 α+ 2 2α+ 1 α+ 1 2α 2 2α+ 2 1 α2α 0 2α α α+ 2 2 2α+ 2 2α+ 1 α+ 1 1

2α+ 1 0 2α+ 1 α+ 2 2α+ 2 α 1 α+ 1 2 2α2α+ 2 0 2α+ 2 α+ 1 2 2α+ 1 α 1 2α α+ 2

Vi ser även att F×9 = C8 = {α0, . . . , α8} = {1, α, 2α+ 1, 2α+ 2, 2, 2α, α+ 2, 1 + α}.

Page 30: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund
Page 31: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

Kapitel 3

Geometri

Följande kapitel kommer att behandla affin och projektiv geometri. Affin geo-metri är ”som vanligt” medan i projektiv geomtri lägger vid till extra punkter vioändligheten för varje klass av parallella linjer. En liknelse är ett rakt tågspårdär rälsen ser ut att gå mot samma punkt i fjärran. Detta kapitel kommer ävenatt behandla Bezouts sats som säger i hur många punkter två kurvor möts. Den-na sats är nödvändig för gruppoperatorn som vi senare kommer att definieraför elliptiska kurvor. Bra källor är för detta område är [5], [6], och en stor delåterfinns även [3].

3.1 Affin geometri

Definition 3.1. Låt F vara en kropp och låt n ∈ Z+. Det affina rummet avdimension n över F är mängden

Fn = {(a1, . . . , an) : a1, a2, . . . , an ∈ F}.

Vi kallar F 1 = F den affina linjen och F 2 det affina planet.

Läsaren har arbetat i Rn samt Cn inom linjära algebra.

Exempel 3.1. Hörnen på en hyperkub i n dimensioner är Fn2 . Det kan sessom grafen med hörn i (x1, . . . , xn), xi ∈ F2 och det är en kant mellan hörnen(x1, . . . , xn) och (y1, . . . , yn) om givet i0 så gäller xi = yi och xi0 6= yi0 ,∀ i, 1 ≤i ≤ n, i 6= i0.

Vi kommer att arbeta mest i planen F2q, q = pm, p primtal ,m ∈ Z+.

Felding, 2019. 19

Page 32: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

20 Kapitel 3. Geometri

Definition 3.2. Låt F vara en kropp, och låt f1, . . . , fs vara polynom i F [x1, . . . , xn].Då definieras mängden

V(f1, . . . , fs) = {(a1, . . . , an) ∈ Fn : fi(a1, . . . , an) = 0,∀1 ≤ i ≤ s}.

Vi kallar V(f1, . . . , fs) den affina varieteten definierad av f1, . . . , fs.

Så om I är ett ideal till F [x1, . . . , xn] så består I av polynom. Det gäller då attV(I) är en affin varietet genererad av alla polynom i I.

Det gäller att V(〈0〉) är det hela affina rummet Fn. Detta då 〈0〉 endastbestår av nollpolynom, f ∈ Fn[x1, . . . , xn] så f(a1, . . . , an) = 0 ∀(a1, . . . , an) ∈Fn.

Definition 3.3. Låt V ⊆ Fn vara en affin varietet. Då sätter vi

I(V ) = {f ∈ F [x1, . . . , xn] : f(a1, . . . , an) = 0,∀(a1, . . . , an) ∈ V }.

Sats 3.1. [5] Om V ⊆ Fn är en affin varietet, då är I(V ) ⊆ F [x1, . . . , xn] ettideal. Vi kommer att kalla I(V ) idealet till V.

Den viktiga observationen är att I(V ) är ett ideal som är ändligt genererat.Detta eftersom kroppar är Noetheriska som följer från Definition 2.18.

Definition 3.4. Låt f ∈ F [x, y] vara ett polynom. Då är V(〈f〉) en affin kurva.

Vi definierar alltså en kurva som en varietet bestående av nollställen till ettprincipal ideal i F [x, y].

Exempel 3.2. Låt f = x2 − y ∈ F3/〈α2 + α + 2〉. Vi finner att V(〈f〉) ={(0, 0), (1, 1), (2, 1), (α, 2α+1), (α+2, 2), (2α, 2α+1), (2α+1, 2), (2α+2, α+2)}.Detta illustreras med α = 2 i Figur 3.1.

Exempel 3.3. I Exempel 2.16 hade vi I = 〈(x + 1), (y + 1)〉 ⊂ R[x, y]. Dettager V = V(I) = {(x, y) : x = −1 och y = −1}. Vi ser att I(V ) = I genomatt ansätta f = h1(x + 1) + h2(y + 1) + r där h1, h2 ∈ R[x, y] och r ∈ R.Detta då om f är ett monomial, ett polynom med endast en term, så gällerf = xαyβ = (−1 +x+ 1)α(−1 + y+ 1)β = (−1)α+h1(x+ 1) + (−1)β + (y+ 1)β .Då ett godtyckligt f ∈ R[x, y] är en R-linjär kombination av monomial så gällerdet att f alltid är på formen h1(x+ 1) +h2(y+ 1) + r. För att visa att I(V ) = Iså ser vi att I ⊆ I(V ). För att visa likhet noterar vi att 0 = f(−1,−1) så detmåste vara så att r = 0. Så det gäller att I = I(V(I)).

I(V(f1, . . . , fs)) behöver inte vara samma som 〈f1, . . . , fn〉. Ett exempel ärJ = 〈x2, y2〉. Det gäller att V(J) = {(0, 0)} = V(〈xn, yn〉), speciellt så är{(0, 0)} = V(〈x, y〉). Det gäller att I({0, 0)}) = 〈x, y〉. Det gäller även att J ⊂〈x, y〉 så I(V(J)) 6= J . En naturlig fråga som uppkommer är när de är desamma.

Page 33: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

3.1. Affin geometri 21

x

y

1 2 3 4

(8)

−1

(7)

−2

(6)

−3

(5)

−4

1

2

3

4

(8) −1

(7) −2

(6) −3

(5) −4

Figur 3.1: x2 = y över F3[x]/〈x2 + x+ 2〉 = F9

Page 34: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

22 Kapitel 3. Geometri

(−1,−1)

x

y

Figur 3.2: V = V(〈(x + 1), (y + 1)〉) = {(−1,−1)}, i blått V1 = V(〈x + 1〉), irött V2 = V(〈y + 1〉), V1 ∩ V2 = V , V1 ∪ V2 = V3 = V(〈xy + x+ y + 1〉)

Definition 3.5. Låt V vara en affin varietet. V säges vara reducibel om V =V1 ∪ V2, där V1, V2 är affina varieter och V1 6= V , V2 6= V . Annars säges V varairreducibel.

Exempel 3.4. Betrakta f1 = x + 1, f2 = y + 1 ∈ R[x, y] som genererar V1 =V(〈f1〉) = {(−1, a) : a ∈ R} och V2 = V(〈f2〉) = {(a,−1) : a ∈ R}. LåtV3 = V(〈(x + 1)(y + 1)〉) = {(a, b) : a, b ∈ R, a = −1 eller b = −1}. Det ärtämligen enkelt att se att V3 = V1 ∪ V2 så V3 är reducibel. Se Figur 3.2.

Sats 3.2. [5] Låt V vara en affin varietet. Då är V irreducibel om och endastom I(V ) är ett primideal.

Sats 3.3. [3], [5], [6] Hilberts NullstellensatzLåt F vara en algebraiskt sluten kropp. Då är I(V(I)) = rad I för alla ideal I tillF [x1, . . . , xn]. Dessutom så definierar avbildningarna I och V inversa bijektioner

{affina algebraiska mänder}I�V{radikala ideal}.

Då radikalen av ett primideal är primidealet så har vi funnit en hel klass avideal som har egenskapen att I(V(I)) = I.

Exempel 3.5. För att illustrera varför kroppen måste vara sluten betraktaf = x2 +x+x2y+xy2 + 1 ∈ F2[x, y] och I = 〈f〉. Vi har att f(0, 0) = f(1, 0) =f(0, 1) = f(1, 1) = 1 och således är V = V(I) = ∅. Så I(V ) = F2[x, y]. Det

Page 35: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

3.2. Projektiva planet 23

gäller att V är irreducibel varietet och således är I ett primideal. Det gäller attprimideal är radikala så radI = I. För att se att I 6= F2[x, y] noterar vi att x /∈ I.Ytterligare ett exempel på varför kroppen måste vara sluten är 〈x2 + 1〉 ⊂ R[x].

Definition 3.6. Låt V ⊆ Fn vara en affin varietet. Då kallas kvotringenFn/I(V ) för koordinatringen till V och betecknas F [V ].

Då vi har en kurva C med genererande polynom f så är F [C] = {a : a +bf, a, b ∈ F [x, y]}. Det är alltså en mängd ekvivalensklasser av polynom. Detgäller att detta är en ring [5]. Om vi inför funktionerna x = x + 〈f〉, y =y + 〈f〉 så gäller det att x, y : C 7→ F vars värden vid en punkt p ∈ C ärkoordinaterna till p. Vi kallar x för x-koordinatfunktionen på C. På sammasätt är y, y-koordinatfunktionen på C. Det gäller då att koordinatfunktionernagenererar F [C] då något polynom i F [C] är en linjärkombination av x och y. Detär därifrån namnet koordinatring kommer.

3.2 Projektiva planet

Då vi vill kunna beskriva elliptiska kurvor, som är kurvor i planet så kommer vii följande avsnitt att arbeta i 2 dimensioner. Definitionerna går med fördel attgeneralisera och det är ofta så de är beskrivna, se [5].

Definition 3.7. Låt F vara en kropp och låt (X,Y, Z) ∈ F 3. Det projektivaplanet FP2 = {ekvivalensklasser [X : Y : Z]} = (F 3 \ {0, 0, 0})/ ∼ där [X : Y :Z] ∼ [λX : λY : λZ] om λ ∈ F×, det vill säga ekvivalensklasser.

Med andra ord, så är varje punkt i det projektiva planet FP2 en linje i F 3 genomorigo.

Definition 3.8. En linje i FP2 är L : {[X : Y : Z] : aX+ bY + cZ = 0, a, b, c ∈F}.

Linjen L skär {Z = 0} vid X = −b, Y = a så [−b : a : 0] är linjenspunkt vid oändligheten, ∞L. Punkter till FP2 med Z = 0 motsvarar kvoter[X : Y : 0], dessa punkter bildar linjen som är FP1 ∼= F ∪ {∞} kallat ideellalinjen alternativt linjen vid oändligheten. Ett sätt att se det är att då parallellalinjer möts i en punkt vid oändligheten så bildas det ekvivalensklasser för linjer iF 2. Varje klass har en punkt vid oändligheten associerad med den. Mängden avpunkter vid oändligheten bildar en egen projektiv linje, linjen vid oändligheten,[X : Y : 0].

Mängderna Ux, Uy, Uz betecknar mängderna där Uz = {[X : Y : Z] : Z 6=0} = {(XZ ,

YZ , 1)} så Uz ∼= F 2 och på liknande sätt för Ux, Uy. Vi har att FP2 =

Page 36: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

24 Kapitel 3. Geometri

Figur 3.3: F3P2

Ux ∪ Uy ∪ Uz = Uz ∪ {Z = 0}. Beroende på vilken mängd Ui som vi arbetari så blir det olika punkter vid oändligheten. Vi väljer att hädanefter arbetamed {Z = 0} som de punkter vid oändligheten. Vi har att då Z 6= 0 att[X : Y : Z] = [X/Z : Y/Z : 1] som kan identifieras med (x = X

Z , y = YZ ) ∈ F 2.

Exempel 3.6. Se Figur 3.3 och 3.4 för hur det affina planet och det projektivaplanet hör ihop.

Definition 3.9. Låt f(x, y, z) ∈ F [x, y, z]. Polynomet f säges vara ett homogentpolynom om summan av exponenterna i varje term är densamma.

Det är ekvivalent med att säga att för ett homogent polynom g(X,Y, Z) ∈F [X,Y, Z] av grad d så gäller g(λX, λY, λZ) = λdg(X,Y, Z),∀λ ∈ F×.Definition 3.10. Låt F vara en kropp och låt f1, . . . , fs ∈ F [x, y, z] vara ho-mogena polynom. Då definieras mängden

V(f1, . . . , fs) = {(x, y, z) ∈ FP2 : fi(x, y, z) = 0∀1 ≤ i ≤ s}.

Vi kallar V(f1, . . . , fs) den projektiva varieteten i FP2 definierad av f1, . . . , fs.

Sats 3.4. [5] Låt V = V(f1, . . . , fs) vara en projektiv varietet. Då kanW = V ∩Uz identifieras med den affina varieteten V (g1, . . . , gs) ⊂ Fn, där gi(x, y, z) =fi(x, y, z)∀1 ≤ i ≤ s.

Page 37: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

3.2. Projektiva planet 25

x

z

y

Figur 3.4: RP2 = Uz ∪ {Z = 0}. Punkten [1 : 1 : 2] är markerad ⇐⇒ linjex + y + 2z = 0 ∈ R3 . Skärningen med det affina planet R2 är även markerad.Vi ser även att två parallella linjer går mot samma punkt.

Detta för att om vi bara har kvar punkter på formen (XZ ,YZ , 1) i en projektiv

varietet så kan de identifieras med affina punkter i en affin varietet.

Exempel 3.7. Låt f(x, y) = x3 + 3x3y2 + y4 + 2 ∈ F [x, y]. Vi kan notera attf = 15(x3 + 3x3y2 + y4 + 2). För att homogenisera f kan vi se det som attf ∈ F [x, y, 1] som ger med insättning av Z: Z5((XZ )3 + 3(XZ )3(YZ )2 + (YZ )4 +( 2Z )5) = X3Z2 + 3X3Y 2 + Y 4Z + Z5 = g(X,Y, Z).

Exempel 3.8. Betrakta den projektiva varieteten V = V(X2 − Y Z) ⊂ RP2.Vi betraktar skärningen mellan V och Uz som ger den affina V(x2 − y) ⊂ R2.Vi kan även betrakta den affina varieteten som ges av V ∩UX , (y = Y

X , z = ZX ),

som är V(1− yz) ⊂ R2.

För att gå från en affin varietet till en projektiv räcker det ibland att homo-genisera varieteten medan i vissa fall krävs lite mer för att finna en projektivvarietet. Då vi i fortsättningen kommer att vara försiktiga och arbeta med välvalda varieter som enbart kräver homogenisering så lämnas detaljerna till [5].

Definition 3.11. Låt F vara en kropp och låt g ∈ F [X,Y, Z] vara ett homogentpolynom. Då är en planprojektiv kurva C = V(〈g〉) = {p ∈ FP2 : g(p) = 0}. Visäger även att en punkt p är rationell om g(p) = 0 och således p ∈ C.

Notera igen att p är en linje i F 3 så det kan vara svårt att visualisera sigkurvan. Det som görs är att vi betraktar Uz och sedan vid behov punkterna vidoändligheten.

Page 38: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

26 Kapitel 3. Geometri

Definition 3.12. Låt F vara en kropp och låt I vara ett ideal till F [x, y, z].Idealet I säges vara ett homogent ideal om ∀f ∈ I, så gäller att fi ∈ I, där fiär de homogena komponeterna till f .

Exempel 3.9. Låt I = 〈y − x2〉. De homogena komponenterna till f = y − x2är f1 = y samt f2 = −x2. Det gäller att f1, f2 /∈ I då ingen av de är en multipelav y − x2 och således är I inte ett homogent ideal.

Sats 3.5. [5] Låt I vara ett ideal. Det gäller att I är ett homogent ideal ⇐⇒I = 〈f1, . . . , fs〉 där fi är ett homogent polynom.

Sats 3.6. [5] Projektiva NullenstellensatzLåt F vara en sluten kropp och låt I vara ett homogent ideal i F [X,Y, Z]. OmV = V(I) 6= ∅ är en projektiv varietet i FP2 så gäller det att

I(V(I)) = rad I.

För att sammanfatta:

affint projektivtf(x, y) g(X,Y, Z)homogent

C = {p : f(p) = 0, p ∈ F 2} C = {p : g(p) = 0, p ∈ FP2}V(f) V(g)

〈f〉 ideal till F [x, y] 〈g〉 homogent ideal till F [X,Y, Z]Nullenstellensatz Nullenstellensatz

Det går att definiera en projektiv koordinatring som en kvotring men denkommer inte att ha samma fina egenskap att den genereras av koordinatfunk-tionerna. Detta på grund av att ett icke-konstant element p är ju faktiskt enlinje i F 3, inte en funktion!

3.3 Bezouts sats

Vi är nu intresserade av att finna snittet av kurvor. Speciellt då en av kurvornaär en linje.

Definition 3.13. Låt f, g ∈ F [x] vara polynom av grad > 0 på formen

f = a0xl + · · ·+ al, a0 6= 0,

g = b0xm + · · ·+ bm, b0 6= 0.

Page 39: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

3.3. Bezouts sats 27

Då är Sylvestermatrisen av f och g med avsende på x, betecknad Syl(f, g, x),följande matris

Syl(f, g, x) =

a0a1 a0

a2 a1. . .

.... . . a0

... a1al

al...

. . .al︸ ︷︷ ︸

mkolumner

b0b1 b0

b2 b1. . .

.... . . b0

... b1bm

bm...

. . .bm

︸ ︷︷ ︸

l kolumner

.

Vi definierar även resultanten av f och g med avseende på x, betecknatRes(f, g, x)som:

Res(f, g, x) = det(Syl(f, g, x)).

Exempel 3.10. 1. Polynomen f = x2 + x och g = x + 2 ger upphov till

Syl(f, g, x) =

1 1 01 2 10 0 2

. Vi finner att Res(f, g, x) = 2.

2. Om vi låter f = xy−1, g = x2+y2−4 och betraktar dem som polynom i x,

alltså i kroppen F (y)[x], så finner viRes(f, g, x) = det

y 0 1−1 y 00 −1 y2 − 4

=

y4 − 4y2 + 1.

Hur många skärningspunkter har y = x2 och x = c? En vid (c, c2). Vadhänder om vi går över till det projektiva planet och betraktar skärningspunk-terna mellan Y Z = X2 och X = cZ? Vi löser ut X och får då Y Z = c2Z2.Lösningarna blir då [X : Y : Z] = [0 : 1 : 0] eller [c : c2 : 1]. Detta är sammasom innan samt en skärning vid oändligheten.

Vi har även att Res(Y Z − X2, cZ − X,Z) = det

(Y c−X2 −X

)= (cX2 −

XY ) = X1(cX − Y )1. Resultanten blir 0 för samma punkter! Exponenten tillvarje faktor ger även multipliciteten av skärningen i den punkten. Detta exempelillustrerade följande sats:

Page 40: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

28 Kapitel 3. Geometri

Sats 3.7. [5], [6] Bezouts satsLåt C = V(〈g〉) och D = V(〈h〉) vara två planprojektiva kurvor över FP2 av gradm respektive n utan gemensam komponent. Då är antalet skärningspunkter överen algebraisk sluten kropp, F , mn räknat med multiplicitet.

Det är fullt möjligt att två kurvor aldrig skär varandra i en kropp men har allaskärningspunkter i kroppens hölje. Det är inte säkert att resultanten ger rättmultiplicitet direkt, utan ett variabelbyte kan vara nödvändig. Se detaljer i [5].

Exempel 3.11. För att illustrera varför kroppen ska vara sluten så betraktaskärningen mellan två cirklar på formen (x−a)2+(y−b)2−r2 = 0 som projektivtär (x−az)2 + (y− bz)2− r2z2. Det gäller för alla cirklar att punkterna [1 : i : 0]och [1 : −i : 0] vid oändligheten alltid ligger på cirkeln. Vad händer om cirklarnaligger i RP2? Punkterna vid oändligheten finns inte och således skär cirklarnavarandra i högst 2 punkter.

Page 41: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

Kapitel 4

Elliptiska kurvor

Elliptiska kurvor är en typ av kurvor som redan innan deras bruk inom kryp-tografi var av särskilt intresse. Bland annat så är en elliptisk kurva över C entorus. Fokus kommer dock att ligga på elliptiska kurvor över ändliga kroppar.Det mesta i detta kapital kommer från [6] och [2].

Definition 4.1. En elliptisk kurva är en irreducibel plankurva av grad tre överen kropp, F , med ekvation Y 2Z+ a1XY Z+ a3Y Z

2 = X3 + a2X2Z+ a4XZ

2 +a6Z

3 betecknat E .

Affint är kurvan y2 + a1xy + a3y = x3 + a2x2 + a4x + a6 tillsammans med

tre extra punkter vid oändligheten för att det alltid ska finnas tre punkter därkurvan möter en linje, detta från Bezouts sats.

Att en elliptisk kurva inte är singulär innebär att {(x, y) : ∂f(x,y)∂x = ∂f(x,y)∂y =

0} = ∅. Detta krav kan även skrivas med diskriminanten, ∆, med kravet att∆ 6= 0 som kan skrivas som

b2 = a214a2, b4 = 2a4 + a1a3, b6 = a23 + 4a6,

b8 = a21a6 + 4a2a6 − a1a3a4 + a2a23 − a24,

∆ = −b22b8 − 8b34 − 27b26 + 9b2b4b6.

Det gäller även att varje elliptisk kurva över en kropp av karakteristik > 3eller 0 kan sättas i (Weierstrass) normalformen

E : Y 2Z = X3 + aXZ2 + bZ3.

Den affina formen äry2 = x3 + ax+ b

Felding, 2019. 29

Page 42: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

30 Kapitel 4. Elliptiska kurvor

tillsammans med en punkt vid oändligheten av ordning 3, O = [0 : 1 : 0] [6].Detta då linjen vid oändligheten, Z = 0, ger att 0 = X3 och således att X = 0så Y är den enda fria koordinaten. Att den inte ska vara singulär kan även nuskrivas med diskriminanten

∆ = −16(4a3 + 27b2) 6= 0.

En elliptisk kurva över R har två huvudsakliga utseenden, se Figur 4.1 och4.2. Utseendet beror på om determinanten är positiv eller negativ.

y2 = x3 − 4x+ 1

x

y

Figur 4.1: y2 = x3 − 4x+ 1 över R

För att kunna tillämpa elliptiska kurvor till kryptering måste vi ha någongruppoperator. Tillämpningar av elliptisk kryptering bygger på att elliptiskakurvor är abelska grupper, se Definition 2.1.

Definition 4.2. Låt E vara en elliptisk kurva. Låt ⊕ vara en operator sådanatt P ⊕Q = R. Där P,Q,R är de 3 punkter, räknat med multiplicitet, på linjenPQ som skär E . Låt sedan R vara en punkt med samma x-koordinat som R ochom möjligt annan y-koordinat.

I R så gäller det att samma x-koordinat är en spegling i x-axeln för (−a)2 =a2. I andra kroppar så är det lite svårare att hitta speglingen men från Exempel2.33 så ser vi i F9 att (2α+ 2) + (α+ 1) = 0, så (2α+ 2)2 = (α+ 1)2 = α+ 2.

Sats 4.1. [6] Låt E vara en elliptisk kurva på normalform och ⊕ som ovan. Detgäller då ∀P,Q,R ∈ E :

1. P ⊕Q⊕R = R⊕R = O ⇐⇒ P,Q,R är kolinjära ,

Page 43: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

31

y2 = x3 − 4x+ 1

x

y

Figur 4.2: y2 = x3 − x+ 1 över R

2. Identiteten är Id = O = [0 : 1 : 0],

3. Inversen ges av linjen OP ∩ E = {O, P, P},

4. Operatorn är assosiativ, P ⊕ (Q⊕R) = (P ⊕Q)⊕R,

5. Operatorn är även kommutativ P ⊕Q = Q⊕ P .

Skiss av beviset: Det är alltså en abelsk grupp. Identiteten O⊕O = O är linjenvid oändligheten och en punkt av ordning 3, O ⊕ R = R är den lodräta linjensom går igenom R,R samt O och sen speglas R till R. Inversen är liknande attR⊕R ger den lodräta linjen i riktning mot O som sen speglas till sig själv. Attoperatorn är kommutativ är lätt att se för det finns bara en linje mellan tvåpunkter. Att operatorn är associativ är inget som följer direkt utan det krävsett väldigt tekniskt bevis med flertalet falluppdelningar.

Exempel 4.1. Betrakta den elliptiska kurvan E : y2 = x3−4x+1 över R. Vi hardå de rationella punkterna P = (−2, 1), Q = (3, 4). Vi söker P ⊕Q = R. Förstså drar vi linjen mellan P och Q. Lutningen är λ = 4−1

3−(−2) = 35 så linjen är då

L : y = 35x+ 11

5 . Detta ger(35x+ 11

5

)2= x3−4x+1 ⇐⇒ 0 = x3−

(35x+ 11

5

)2−4x+1 = x3− 9

25x2− 166

25 x−9625 = (x+2)(x−3)(x+16/25) där vi använda att P,Q ∈

L ∩ E . Detta ger R =(− 16

25 ,3∗(−16)5∗25 + 11

5

)= (− 16

25 ,227125 ). Spegling i x-axeln ger

R = (− 1625 ,−

227125 ). Vi kan se att det stämmer med resultanten och Bezouts sats

Res(z3−4xz2−y2z+x3, 11/5z+3/5x−y, z) = (4x−3y)(x+2y)(− 227125x−

1625y).

Page 44: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

32 Kapitel 4. Elliptiska kurvor

0 20 40 60 80 100 120 1400

20

40

60

80

100

120

140

Figur 4.3: y2 = x3 + 4x över F125

Page 45: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

33

y2 = x3 − 4x+ 1

P

Q

R

2P = O

x

y

Figur 4.4: Gruppopperatorn för en elliptisk kurva

y2 = x3 − 4x+ 1

P

QR

P ⊕Q

Q⊕R

P ⊕Q⊕R x

y

Figur 4.5: Assosiativitet för en elliptisk kurva

Page 46: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

34 Kapitel 4. Elliptiska kurvor

Exempel 4.2. Betrakta den elliptiska kurvan E : y2 = x3 − 4x+ 1 över R ochP = (−2, 1) som ovan. Vi söker P ⊕ P = R. Lutningen vid P fås genom attimplicit derivera E , så 2y dydx = 3x2 − 4, som borde vara bekant från en kurs iflervariabel analys. Så dy

dx = 3x2−42y . I punkten P har vi således λ = 3∗(−2)2−4

2∗1 =82 = 4. Vi får då linjen y = 4x+ 9 som P uppfyller 1 = 4(−2) + 9. Insättning ikurvans ekvation ger (4x+ 9)

2= x3−4x+1 ⇐⇒ 0 = x3−4x+1− (4x+9)2 =

(x − 20)(x + 2)2. På linjen får vi y = 89 = 4 ∗ 20 + 9. Spegling i x-axeln gerR = (20,−89).

Följande sats ger en algoritm för gruppoperatorn ⊕, som definieras i Sats4.1. Det är denna metod som används i kommande beräknar.

Sats 4.2. [2] Låt E vara en elliptisk kurva på normalform och låt P,Q ∈ E.

1. Om P = Q = O, då P ⊕Q = O,

2. Om P = O, då P ⊕Q = Q,

3. Om Q = O, då P ⊕Q = P ,

4. Annars låt P = (x1, y1), Q = (x2, y2),

5. Om x1 = x2 och y1 6= y2, då P ⊕Q = O,

6. Annars låt

λ =

{y2−y1x2−x1

P 6= Q3x2

1+a2y1

P = Q

och låtx3 = λ2 − x1 − x2 och y3 = λ(x1 − x3)− y1.

Då är P ⊕Q = (x3, y3).

Bevis. Använd koordinater.

Följande sats generaliserar gruppoperatorn till alla elliptiska kurvor. Den ärsnarlik den för normalform med den största skillnanden att speglingen ges av(x, y) 7→ (x,−y − a1 − a3).

Sats 4.3. [2] Låt E vara en elliptiska kurva över kroppen F på formen

y2 + a1xy + a3y = x3 + a2x2 + a4x+ a6.

Låt P1 = (x1, y1) och P2 = (x2, y2) vara punkter på E.

Page 47: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

35

1. Om x1 = x2 och y1 + y2 + a1x2 + a3 = 0, då är P1 ⊕ P2 = O,

2. Om x1 6= x2 definiera λ = y2−y1x2−x1

och ν = y1x2−y2x1

x2−x1,

3. Om x1 = x2 definiera λ =3x2

1+2a2+a4−a1y12y1+a1x1+a3

och ν =−x3

1+a4x1+2a6−a3y12y1+a1x1+a3

,

4. P3 = P1 ⊕ P2 = (λ2 + a1λ− a2 − x1 − x2,−(λ+ a1)x3 − ν − a3).

Det kan vara intressant att veta hur många rationella punkter en elliptiskkurva har. Följande sats ger en undre och övre gräns.

Sats 4.4. [2] Hasse-WeilLåt E vara en elliptisk kurva över Fq och låt #E beteckna antalet rationellapunkter. Då gäller att

|#E − (q + 1)| ≤ 2√q.

Det gäller alltså att antalet punkter på kurvan växer i samma storleksordningsom antalet punkter på kroppen. Det gör att om en kurva med många punktersöks så krävs en kropp med många punkter.

Exempel 4.3. Den elliptiska kurvan y2 = x3 + x+ 1 över F25 är {(0, 1), (0, 4),(1, 19), (1, 11), (5, 19), (5, 11), (23, 18), (23, 12), (17, 23), (17, 7), (24, 19), (24, 11),(2, 1), (2, 4), (9, 10), (9, 15), (4, 2), (4, 3), (20, 2), (20, 3), (6, 2), (6, 3), (3, 1),(3, 4), (14, 9), (14, 21),O}. Vi ser även att |27 − 26| = 1 ≤ 10 = 2

√25 så vi har

inte funnit ett motexempel till Hasse-Weils sats. Vi har att (5, 19) ⊕ (5, 19) ⊕(5, 19)⊕ (5, 19)⊕ (5, 19)⊕ (5, 19)⊕ (5, 19)⊕ (5, 19)⊕ (5, 19) = O, så ordningenav (5,19) är 9. Då (5, 19) ⊕ (5, 19) ⊕ (5, 19) = (2, 4) så finner vi att ordningenav (2,4) är 3.

Definition 4.3. Låt C vara en kurva. P ∈ C säges vara en inflexionspunkt omP är en icke-singulär punkt där tangentlinjen har 3 eller fler skärningar med C.

Sats 4.5. [7] Låt C = 〈f〉 vara en kurva. Inflexionspunkterna är dess icke-singulära punkter som skär kurvan

H = |C| = 0.

Där |C(x)| är determinaten av hessian matrisen(

∂2C∂Xi∂Xj

)0≤i,j≤2

, X0 = X,X1 =

Y,X2 = Z. Denna kurva kallas Hessianen av C.

Exempel 4.4. I normalform så har vi E(X,Y, Z) = Y 2Z−X3−aXZ2−bZ3 =

0. Vi finner att H = det

−6X 0 −2aZ0 4Z 2y

−2aZ 2Y −6bZ

. Det följer att O samt de

punkter där YZ = y = 0 är inflexionspunkterna till E .

Page 48: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

36 Kapitel 4. Elliptiska kurvor

Definition 4.4. Låt E vara en elliptisk kurva och låt b2 och b4 vara som i Sats4.1. Vi definierar då j-invarianten, j, som

j = (b22 − 24b4)3/∆.

Det visar sig även att om E är en elliptisk kurva på normalform så gäller detatt j = −1728(4a)2/∆.

Sats 4.6. [8] Låt E1 och E2 vara elliptiska kurvor över den slutna kroppen F .E1 och E2 har samma j-invariant ⇐⇒ det finns ett linjärt variabelbyte mellandem på formen

(x, y) = (u2x′ + r, u3y′ + u2sx′ + t)

med u, r, s, t ∈ F, u 6= 0. Om kurvorna är på normalform är bytet av variablerpå formen

(x, y) = (u2x′, u3y′).

Kurvorna säges vara ekvivalenta då de har samma j-invariant.

Exempel 4.5. Betrakta de elliptiska kurvorna E1 : y2 = x3 + 3x + 2, E2 :y2 = x3 + 3x + 3 över F5. Vi har för de båda kurvorna att ∆ = 1. Då detär samma värde på a för de båda kurvorna finner vi att j1 = j2 = 3 dåvi är i kroppen F5. Vi har att E1 = {(1, 1), (1, 4), (2, 1), (2, 4),O} och E2 ={(3, 3), (3, 2), (4, 3), (4, 2),O}. För att gå från E1 till E2 använder vi u = 3. Föratt gå åt andra hållet använder vi u−1 = 2.

Page 49: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

Kapitel 5

Diffie-Hellman för elliptiskakurvor

Som nämnts i inledningen är Diffie-Hellman en metod för att bestämma engemensam nyckel över en osäker kommunikationslinje. Detta kapitel kommergå igenom hur ett nyckelutbyte sker samt undersöka om det går att säga vilkaelliptiska kurvor som lämpar sig bra för tillämpningar beroende på vilken kroppkurvan är över. Beräkningar utförs i MATLAB medan information är hämtatfrån [2].

5.1 Diffie-Hellman

Diffie-Hellmans nyckelutbyte ger ett sätt att kunna bestämma en gemensamnyckel som sedan kan användas i ett symmetriskt krypteringssystem. Ett sym-metriskt krypteringssystem är ett system där det är samma nyckel som krypterarsom låser upp. Det enklaste exemplet är ett Ceasarchiffer där alla bokstäver ialfabetet förskjuts n steg. För att avkryptera är det bara att skjuta tillbakaalla bokstäver n steg. Ett asymmetriskt krypteringsprotokoll går ut på att detär olika nycklar för att kryptera och avkryptera. En liknelse är ett hånglås.Det är allmänt känt hur ett hänglås låses men nyckeln som krävs för att låsaupp är hemlig. Det går även att ha flera lås till samma nyckel. Ett exempel ärRSA-kryptering.

Fördelar med symmetriska protokoll är att nyckelstorleken är mindre än förett asymmetriskt protokoll. Nackdelen är att det kan vara svårt att bestämmaden gemensamma nyckeln över en osäker kommunikationslinje. Det är här Diffie-Hellman kommer in i bilden.

Felding, 2019. 37

Page 50: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

38 Kapitel 5. Diffie-Hellman för elliptiska kurvor

Säg att det är tre aktörer A,B och C. A och B vill kunna kommunicera ävenom C lyssnar. För att bestämma en nyckel med Diffie-Hellman så bestämmerA och B en elliptisk kurva E och en punkt P på kurvan. Detta sker så att Cvet om vilken kurva och punkt det handlar om. I verkligheten är det svårt attveta vilka kurvor som är bra så det finns redan etablerade kurvor som användsi standarder. Sedan bestämmer A och B varsitt hemligt tal nA samt nB . Deberäknar sedan nAP = QA och nBP = QB . De skickar sedan QA och QB tillvarandra och det är här C kan avlyssna. A beräknar nAQB = nAnBP = Hoch B beräknar nBQA = nBnAP = H. Då operatorn är abelsk blir det sammapunkt H som kan användas som nyckel i ett symmetriskt krypteringsprotokoll.Det räcker att använda x-koordinaten till H då y-koordinaten knappt ger någonny information, det finns ju som mest 2 y-värden till varje x. Informationen somden lyssnande aktörer C är given är P,QA, QB och QA ⊕QB = (nA + nB)P 6=nAnBP.

A A,B och C BnA E , P nB

nA, nAP = QA E , P nB , nBP = QB

nA E , P,QA, QB nB

nA, nAQB = H P, E , QA, QB nB , nBQA = H

Tabell 5.1: Vem som känner till vilken information i varje tidssteg.

Exempel 5.1. Med den elliptiska kurvan y2 = x3 + x + 1 över F125 och P =(25, 109) med ordning 54. Med nA = 10, nB = 16 fås QA = (34, 26) och QB =(57, 109). Vi finner även att H = 16QA = 10QB = 160P = 52P = (79, 82).Observera att varken A eller B känner till att H = 160P som då ordningen avP är 54 är kongruent med 52P . Det gäller som tur attQA⊕QB = 26P = (39, 43).

För att detta protokoll ska vara säkert måste nA och nB förbli hemliga. FörC att lista ut vad nA är givet att nAP = QA kallas för det diskreta problemetför elliptiska kurvor. Det krävs som mest nA stycken ⊕ operationer för att lösaproblemet. Än så länge är det lika många operationer som det krävs för A attberäkna QA så därför inför vi:

Definition 5.1. Låt E vara en elliptisk kurva och P ∈ E . Givet n ≥ 1 så ärdubbla och addera algoritmen:1. Låt R = O och Q = P .

Page 51: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

5.2. Undersökning 39

2. Medan n > 0 :3. Om n ≡ 1 mod 2, sätt R = R⊕ P .4. Sätt P = P ⊕ P och n = bn/2c.5. Om n > 0 gå till 2.6. Returnera R = nP .

Algoritmen använder att n ∈ Z+ kan skrivas på formen n = a020 + a121 +· · · + am2m, ai = {0, 1}. Denna algoritm liknar kvadrera och multiplicera somanvänds för att beräkna gn mod p som läsaren känner igen sedan innan. Vihar alltså nu en metod som kräver färre operationer än vad som krävs för attnaivt knäcka det diskreta problemet. I värsta fall om n = 2k− 1 så krävs det 2koperationer, k dubbleringar och k additioner. Men hur är det om någon smartförsöker knäcka det diskreta problemet?

Den snabbaste kända algoritmen för att lösa det diskreta problemet för el-liptiska kurvor över Fpm tar O(

√p) steg [2]. Det gäller alltså att om säkrare

kryptering önskas så krävs en elliptisk kurva över en större kropp.Kroppar över F2m har binära egenskaper som lämpar sig för beräkning med

datorer. Standardkurvor är ofta kurvor på formen y2 = x3−3x+b över Fp, y2 +xy = x3+x2+b över F2m ellerKoblitzkurvor på formen y2+xy = x3+ax2+1, a ∈F2 dessa också över F2m [9]. Det finns även kurvor som Curve25519 som är y2 =x3+486662x2+x, enMontgomerykurva över Fp2 , p = 2255−19,med genererandepunkt x = 9 vars ordning är 2252 + 27742317777372353535851937790883648493[10].

En nackdel med Diffie-Hellman är att protokollet kan utsättas för man-in-the-middle attacker. Alltså om QA och QB inte kommer fram till B respektive Aför att C utför en attack så kan C agera som motpart med nC . Det kommer dåatt skapas två nycklar, HAC och HBC , som används för att skicka meddelandevia C som C antingen enbart lyssnar på eller manipulerar. Detta kan undvikasgenom signering av meddelandena, QA och QB . Detta går enkelt att göra medRSA men det finns metoder som bygger på elliptiska kurvor kallat ECDSA.

Skulle läsaren vilja kolla upp vilket protokoll webläsaren eller mejlen använ-der så står det ofta något i stil med TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,där vi först har elliptisk Diffie-Hellman med RSA som verifiering. Sen är detvilket kryperingssystem som används och sist är SHA en hash algoritm somtrunkerar meddelanden för att verifiera att meddelandet inte ändrats.

5.2 UndersökningHär undersöks om det finns något tydligt samband mellan en elliptisk kurvasantal punkter, största ordningen på ett element på den här kurvan och antaletelement i den underliggande kroppen. Vi kommer undersöka kurvor på formen

Page 52: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

40 Kapitel 5. Diffie-Hellman för elliptiska kurvor

y2 = x3 + ax + b då kurvan är över Fp, om karakteristiken är > 3 betraktaskurvan på normal form och a, b ∈ Fp, annars betraktas kurvan på Weierstrassform med ai ∈ Fp. Den minsta ordningen av en punkt är 1 för O men den räknarvi inte med.

pm kurva punkter medel största minsta79 y2 = x3 + x+ 6 97 97 97 9779 y2 = x3 + x+ 2 64 21,7 32 281 y2 = x3 + x2 + 1 96 13,5 24 281 y2 + xy = x3 + 2x2 + 2x 63 6,9 8 283 y2 = x3 + x+ 23 100 58,9 100 283 y2 = x3 + x+ 33 68 44,8 68 2

Tabell 5.2: Kurvor med ungefär 80 element i den underliggande kroppen.

pm kurva punkter medel största minsta121 y2 = x3 + 2x 144 9,6 12 2121 y2 = x3 + x+ 3 108 12,2 18 2125 y2 = x3 + x+ 2 148 99,8 148 2125 y2 = x3 + 4x 104 35,0 52 2127 y2 = x3 + x+ 33 150 73,4 150 2127 y2 = x3 + x+ 12 106 78,8 106 2128 y2 + y = x3 + x2 + x 145 118,6 145 5128 y2 + y + x3 + x2 + x+ 1 113 113 113 113

Tabell 5.3: Kurvor med ungefär 125 element i den underliggande kroppen.

pm kurva punkter medel största minsta167 y2 = x3 + x+ 18 192 50,1 96 2167 y2 = x3 + x+ 1 144 72,8 144 2169 y2 = x3 + x+ 4 196 12,1 14 2169 y2 = x3 + x 160 24.2 40 2173 y2 = x3 + x 198 103.1 198 2173 y2 = x3 + x 148 63,5 74 2

Tabell 5.4: Kurvor med ungefär 169 element i den underliggande kroppen.

Page 53: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

5.3. Nästa steg 41

pm kurva punkter medel största minsta241 y2 = x3 + x+ 9 270 43,8 90 2241 y2 = x3 + x+ 23 216 37,4 72 2243 y2 = x3 + 2x+ 2 271 271 271 271243 y2 = x3 + 2x+ 1 217 185,3 217 7

Tabell 5.5: Kurvor med ungefär 245 element i den underliggande kroppen.

Vi ser inget tydligt samband mellan antalet punkter i den underliggandekroppen och ordningen av element på en elliptisk kurva. Det intressantaste ärdå antalet punkter på kurvan är ett primtal, då är ordningen av alla punkter likavilket följer från Sats 2.1. Då finns det inget sämsta element, i bemärkelsen atten liten ordning skulle gör att det är färre punkter som nP kan anta och såledeslättare att gissa, om punkten P väljes slumpmässigt medan de flesta andraundersökta kurvor har ett affint element av ordning 2, som om det slumpmässigtskulle väljas vore dåligt att ha som punkt P . Vi ser även att vissa kurvor äri princip värdelösa för kryptering för att elementet med störst ordning är sålåg, relativt sett, se Tabell 5.4, att det diskreta logaritm problemet för elliptiskakurvor går att lösa snabbt.

Slutsatsen som går att dra är att det inte spelar någon roll över vilkenkurva den elliptiska kurvan är definierad över för praktiska tillämpningar. Då detberäkningar över en utvidgad kurva är tyngre än för den primära underkroppenså är alltså kurvor över kroppar på formen Fp att föredra. Kroppar på formenF2m är dock undantaget då de har vissa beräkningsmässiga fördelar. Det är inteenbart enklare att utföra beräkningar i Fp utan ytterliggare en fördel är attbehövet av att finna ett irreducibelt polynom elimineras.

Från tabellerna såg vi även att det är stor skillnad i ordningen av punkter,oavsett över vilken kropp kurvan är över. Det är alltså viktigt att testa attpunkten P har stor ordning innan någon tillämpning.

5.3 Nästa steg

Vill läsaren förstsätta med elliptiska kurvor så kan andra elliptiska kryptosystemstuderas som möjliggör andra saker än att bara byta nycklar, exempelvis digitalasignaturer.

Elliptisk Diffie-Hellman som beskrivet i denna rapport är sårbart mot kvant-datorer och kommer att behöva ersättas i framtiden. Det finns metoder som inteär sårbara mot kvantdatorer. En av dessa metoder bygger på supersingulära el-liptiska kurvor. Hyperelliptisk kryptering är ett område som forskas på somverkar lovande men inget är ännu bevisat som skulle klara av en kvantdator.

Page 54: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

42 Kapitel 5. Diffie-Hellman för elliptiska kurvor

Andra tillämpningsområden för elliptiska kurvor är primtalsfaktoriseringsamt primtalstest. Ett av millenieproblemen, Birch-Swinnerton-Dyers förmo-dan, handlar om elliptiska kurvor och den som kommer med ett bevis belönasmed en miljon dollar. Förutom dessa konkreta förslag så finns det otroligt myc-ket att lära sig om elliptiska kurvor, ett ämne som aldrig slutar att ge.

Page 55: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

Litteraturförteckning

[1] A. Rice & E. Brown . Why Ellipses Are Not Elliptic Curves. Mathema-tical Association of America Hämtad hos https://www.maa.org/sites/default/files/pdf/upload_library/2/Rice-2013.pdf [26 Juni 2019].

[2] J. Hoffstein, J. Pipher & J.H. Silverman. 2008. An Introduction toMathematical Cryptography. New York: Springer. Hämtad hos: ProQuestEbook Central. [29 Maj 2019].

[3] D. S. Dummit & R. M. Foote. 2004. Abstract algebra, Hoboken: JohnWiley and Sons, Inc.,

[4] J. Chang. Group Theory and the Rubik’s Cube, Harvard Universi-ty, Hämtad hos http://www.math.harvard.edu/~jjchen/docs/Group%20Theory%20and%20the%20Rubik%27s%20Cube.pdf [29 maj 2019]

[5] D. Cox, J. Little & D. O’Shea. 2004. Ideals, varieties, and algorithms.3 uppl. New York: Springer

[6] M. Reid. 1988. Undergraduate Algebraic Geometry,Cambridge: Campbri-de University Press

[7] R. Walker. 1978. Algebraic Curves. New York: Springer-Verlag

[8] R. Rahman. Elliptic Curves, The Group Law, And The J Invariant.University of Chicago. Hämtad hos http://math.uchicago.edu/~may/REU2016/REUPapers/Rahman.pdf [29 maj 2019].

[9] National Institute of Standards and Technology. Digital Sig-nature Standard (DSS). FIBS 186-4. Juli 2013. Hämtad hos https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf [29 maj2019].

Felding, 2019. 43

Page 56: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

44 Litteraturförteckning

[10] D. J. Bernstein. Curve25519: new Dffie-Hellman speed records. Hämtadhos https://cr.yp.to/ecdh/curve25519-20060209.pdf [29 Maj 2019].

Page 57: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

Bilaga A

Kod för elliptisk kurvor pånormalform

p=241;m=1;primipolynomial = gfprimdf(m,p)field = gftuple((-1:p^m-2)',primipolynomial,p)% gfprimfd(m,'all',p)U=[]pmax=0pmin=Infa=1;b=6;

[~,indx4]=ismember([4 zeros(1,size(field,2)-1)],field,'rows');[~,indx27]=ismember([mod(27,p) ...zeros(1,size(field,2)-1)],field,'rows');indx27=indx27-2;indx4=indx4-2;% for a=0:p-1for b=1:241

ab[~,indxa]=ismember([a zeros(1,size(field,2)-1)],field,'rows');[~,indxb]=ismember([b zeros(1,size(field,2)-1)],field,'rows');

Felding, 2019. 45

Page 58: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

46 Bilaga A. Kod för elliptisk kurvor på normalform

indxa=indxa-2;indxb=indxb-2;

a3 = gfmul(indx4,gfmul(indxa,gfmul(indxa,indxa,field), ...field),field);b2 = gfmul(indx27,gfmul(indxb,indxb,field),field);

if -Inf==gfadd(a3,b2,field)continue

error('Kurvan är singulär!')end

X=[];Y=[];for x = -1:p^m-2

for y= -1:p^m-2

if 1==pointoncurve(indxa,indxb,x,y,field)X = [X x];Y = [Y y];if length(Y)>1

if Y(end -1)==ybreak;

endend

endend

endpcur=size(X,2);if pcur<pmin

pmin=pcuramin=a;bmin=b;

elseif pcur>pmaxpmax=pcuramax = a;bmax=b;

endU=[U pcur];

Page 59: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

47

% end

endU;plot(X,Y,'x')Z=[X;Y]

abs(p^m-length(Z))<=2*sqrt(p^m);p^m-length(Z);V=[];for n=1:length(Z)

V=[V order(Z(1,n),Z(2,n),indxa,indxb,field)];endVmax(V)min(V)mean(V)

A=flip(field,2);Z(Z ==-1)=-Inf;for n = 1:p^m

c(n)=polyval(A(n,:),p);end

for n = 0:p^m-2Z(Z == n)= -c(n+2);

endZ(Z ==-Inf)=-0;Z=-Z

function [bool] = pointoncurve(a,b,x,y,field)

y2=gfmul(y,y,field);x2=gfmul(x,x,field);x3=gfmul(x,x2,field);

Page 60: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

48 Bilaga A. Kod för elliptisk kurvor på normalform

ax= gfmul(x,a,field);axb=gfadd(ax , b, field);

if y2==gfadd(x3,axb, field)bool=1;

elsebool=0;

end

function [xout,yout] = ellipticmult(x,y,xcur,ycur,a,b,field,n)

if n == 2[xout,yout] = ellipticadd(a,b,x,y,xcur,ycur, field)else

[xcur,ycur] =ellipticadd(a,b,x,y,xcur,ycur, field)[xout,yout] = ellipticmult(x,y,xcur,ycur,a,b,field,n-1)

endend

function [rx,ry] = doubleandadd(px,py,n,a,b,field)if 0==pointoncurve(a,b,px,py,field)

error('fel')end

rx=nan;ry=nan;while n>0

if mod(n,2)==1[rx ry]=ellipticadd(a,b,rx,ry,px,py, field);

end[px py]=ellipticadd(a,b,px,py,px,py, field);n = floor(n/2);

endend

Page 61: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

49

function [n] = order(px,py,a,b,field)n=1;qx=px;qy=py;while ~isnan(qx)

[qx, qy]=ellipticadd(a,b,px,py,qx,qy, field);n=n+1;

endend

Page 62: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund
Page 63: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

Bilaga B

Kod för generella ellitpiskakurvor

p=3;m=5;primipolynomial = gfprimdf(m,p)field = gftuple((-1:p^m-2)',primipolynomial,p)% gfprimfd(m,'all',p)U=[]pmax=0pmin=Infa1=1;a2=2;a3=0;a4=2;a6=0;[~,indx2]=ismember([mod(2,p) ...zeros(1,size(field,2)-1)],field,'rows');[~,indx4]=ismember([mod(4,p) ...zeros(1,size(field,2)-1)],field,'rows');[~,indx8]=ismember([mod(8,p) ...zeros(1,size(field,2)-1)],field,'rows');[~,indx9]=ismember([mod(9,p) ...zeros(1,size(field,2)-1)],field,'rows');[~,indx27]=ismember([mod(27,p) ...zeros(1,size(field,2)-1)],field,'rows');

Felding, 2019. 51

Page 64: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

52 Bilaga B. Kod för generella ellitpiska kurvor

indx4=indx4-2;indx8=indx8-2;indx9=indx9-2;indx27=indx27-2;

for a1=0:0for a2=0:0

for a3=0:0for a4=2:2

for a6=2:2

[~,indxa1]=ismember([a1 ...zeros(1,size(field,2)-1)],field,'rows');[~,indxa2]=ismember([a2 ...zeros(1,size(field,2)-1)],field,'rows');[~,indxa3]=ismember([a3 ...zeros(1,size(field,2)-1)],field,'rows');[~,indxa4]=ismember([a4 ...zeros(1,size(field,2)-1)],field,'rows');[~,indxa6]=ismember([a6 ...zeros(1,size(field,2)-1)],field,'rows');indxa1=indxa1-2;indxa2=indxa2-2;indxa3=indxa3-2;indxa4=indxa4-2;indxa6=indxa6-2;

b2=gfadd(gfmul(indxa1,indxa1,field), ...gfmul(indx4,indxa2,field),field);b4=gfadd(gfmul(indx2,indxa4,field), ...gfmul(indxa1,indxa2,field),field);b6=gfadd(gfmul(indxa3,indxa3,field), ...gfmul(indx4,indxa6,field),field);b8help1=gfadd(gfmul(indxa1, ...gfmul(indxa1,indxa6,field),field), ...gfmul(indx4,gfmul(indxa2,indxa6,field), ...field),field);b8help2=gfsub(gfmul(indxa2, ...gfmul(indxa3,indxa3,field),field), ...

Page 65: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

53

gfmul(indxa4,indxa4,field),field);b8=gfadd(gfsub(b8help1, ...gfmul(indxa1,gfmul(indxa3,indxa4,field), ...field),field),b8help2,field);

delta1=gfmul(b8,gfmul(b2,b2,field),field);delta2=gfmul(indx8,gfmul(b4, ...gfmul(b4,b4,field),field),field);delta3=gfmul(indx27,gfmul(b6,b6,field),field);delta4=gfmul(indx9,gfmul(b2, ...gfmul(b4,b6,field),field),field);if -Inf==gfsub(delta4, ...gfadd(delta1,gfadd(delta2, ...delta3,field),field),field)

continueerror('Kurvan är singulär!')

end

X=[];Y=[];for x = -1:p^m-2

for y= -1:p^m-2

if 1==genpointoncurve(x,y, ...indxa1,indxa2,indxa3,indxa4, ...indxa6,field)

X = [X x];Y = [Y y];

if length(Y)>1if Y(end -1)==y

break;end

end

endend

endpcur=size(X,2);if pcur<pmin

pmin=pcura1min=a1;

Page 66: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

54 Bilaga B. Kod för generella ellitpiska kurvor

a2min=a2;a3min=a3;a4min=a4;a6min=a6;

elseif pcur>pmaxpmax=pcura1max=a1;a2max=a2;a3max=a3;a4max=a4;a6max=a6;

endpcurU=[U pcur];

endend

endend

end

plot(X,Y,'x')Z=[X;Y]% [x1 y1]=ellipticadd(indxa,indxb,2,16,7,5, field)% line([2 7],[16 5])

abs(p^m+1-length(Z))<=2*sqrt(p^m); %kanske ska använda floor...p^m+1-length(Z);% U=[];% for n=1:length(Z)% U=[U order(Z(1,n),Z(2,n),indxa,indxb,field)];% end

V=[];for n=1:length(Z)

nV=[V genorder(Z(1,n),Z(2,n),indxa1,indxa2,indxa3, ...indxa4,indxa6,p,field)];

end

Page 67: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

55

Vmax(V)min(V)mean(V)

A=flip(field,2);Z(Z ==-1)=-Inf;for n = 1:p^m

c(n)=polyval(A(n,:),p);end

for n = 0:p^m-2Z(Z == n)= -c(n+2);

endZ(Z ==-Inf)=-0;Z=-Z;

function [x,y] = genellipticadd(x1,y1,x2,y2,a1,a2,a3,a4,a6,p, ...field)

if x1 < 0 && x2 < 0x1 = x2;

% för att -1 ska vara lika -Infend

if isnan(x1)if isnan(x2)

x =x2;y =y2;

endx =x2;y =y2;

elseif isnan(x2)x =x1;y =y1;

Page 68: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

56 Bilaga B. Kod för generella ellitpiska kurvor

elseif x1==x2 && gfadd(y1,gfadd(y2,gfadd(a3,gfmul(a1,x2, ...field), field),field),field) == -Inf

x=nan;y=nan;

elseif x1 ~= x2

lambda=gfdiv(gfsub(y2,y1,field),gfsub(x2,x1,field),field);

nu=gfdiv(gfsub(gfmul(y1,x2,field),gfmul(y2,x1,field), ...field), gfsub(x2,x1,field),field);

else

[~,indx2]=ismember([mod(2,p) ...zeros(1,size(field,2)-1)],field,'rows');[~,indx3]=ismember([mod(3,p) ...zeros(1,size(field,2)-1)],field,'rows');indx2=indx2-2;indx3=indx3-2;

x12=gfmul(x1,x1,field);denominator=gfadd( gfmul(indx2,y1,field) , ...gfadd( a3, gfmul(a1,x1,field),field),field);lambda=gfdiv( gfadd( gfmul(indx3,x12,field), ...gfadd(gfmul(indx2,gfmul(a2,x1,field),field), ...gfsub(a4, gfmul(a1,y1,field),field),field),field), ...denominator,field);nu=gfdiv( gfadd(gfsub(gfmul(a4,x1,field), ...gfmul(x12,x1,field),field),gfsub(gfmul(indx2,a6, ...field),gfmul(a3,y1,field),field),field), ...denominator, field);

end

Page 69: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

57

x=gfsub(gfadd( gfmul(lambda,lambda,field), ...gfmul(a1,lambda,field),field), ...gfadd(a2,gfadd(x1,x2,field),field),field);

y=gfsub( -Inf, gfadd( gfmul( gfadd(a1,lambda,field), ...x,field),gfadd(nu,a3,field),field),field);

if ~genpointoncurve(x,y,a1,a2,a3,a4,a6,field)error('fel')

endendend

function [n] = genorder(px,py,a1,a2,a3,a4,a6,p,field)

n=1;qx=px;qy=py;while ~isnan(qx)

[qx,qy] = genellipticadd(px,py,qx,qy,a1,a2,a3,a4,a6,p,field);n=n+1;

endend

function [rx,ry] = gendoubleandadd(px,py,n,a1,a2,a3,a4,a6,p,field)if 0==genpointoncurve(px,py,a1,a2,a3,a4,a6,field)

error('fel')end

rx=nan;ry=nan;while n>0

if mod(n,2)==1[rx,ry] = genellipticadd(rx,ry,px,py,a1,a2,a3,a4,a6, ...p, field);

end[px,py] = genellipticadd(px,py,px,py,a1,a2,a3,a4,a6, ...p, field);n = floor(n/2);

Page 70: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

58 Bilaga B. Kod för generella ellitpiska kurvor

endend

function [bool] = genpointoncurve(x,y,a1,a2,a3,a4,a6,field)%UNTITLED3 Summary of this function goes here% Detailed explanation goes here

rhs=gfadd(gfmul(y,y,field),gfadd(gfmul(a1, ...gfmul(x,y,field),field),gfmul(a3,y,field),field),field);x2=gfmul(x,x,field);lhs=gfadd(gfadd(gfmul(x2,x,field),gfmul(a2,x2,field), ...field),gfadd(gfmul(a4,x,field),a6,field),field);if lhs==rhs

bool=1;else

bool=0;

end

Page 71: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund
Page 72: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund
Page 73: Simuleringar av elliptiska kurvor för elliptisk kryptografiliu.diva-portal.org/smash/get/diva2:1330916/FULLTEXT01.pdf · 2019-06-26 · Kapitel 1 Introduktion 1.1 Historiskbakgrund

Linköping University Electronic Press

UpphovsrättDetta dokument hålls tillgängligt på Internet – eller dess framtida ersättare –från publiceringsdatum under förutsättning att inga extraordinära omständig-heter uppstår.

Tillgång till dokumentet innebär tillstånd för var och en att läsa, laddaner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat förickekommersiell forskning och för undervisning. Överföring av upphovsrätten viden senare tidpunkt kan inte upphäva detta tillstånd. All annan användning avdokumentet kräver upphovsmannens medgivande. För att garantera äktheten,säkerheten och tillgängligheten finns lösningar av teknisk och administrativ art.

Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsmani den omfattning som god sed kräver vid användning av dokumentet på ovanbeskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådanform eller i sådant sammanhang som är kränkande för upphovsmannens litteräraeller konstnärliga anseende eller egenart.

För ytterligare information om Linköping University Electronic Press se för-lagets hemsida http://www.ep.liu.se/.

CopyrightThe publishers will keep this document online on the Internet – or its possiblereplacement – from the date of publication barring exceptional circumstances.

The online availability of the document implies permanent permission foranyone to read, to download, or to print out single copies for his/her own useand to use it unchanged for non-commercial research and educational purpose.Subsequent transfers of copyright cannot revoke this permission. All other usesof the document are conditional upon the consent of the copyright owner. Thepublisher has taken technical and administrative measures to assure authentic-ity, security and accessibility.

According to intellectual property law the author has the right to be men-tioned when his/her work is accessed as described above and to be protectedagainst infringement.

For additional information about the Linköping University Electronic Pressand its procedures for publication and for assurance of document integrity,please refer to its www home page: http://www.ep.liu.se/.

© 2019, Eric Felding