• No results found

Elliptische-krommecryptografie

N/A
N/A
Protected

Academic year: 2021

Share "Elliptische-krommecryptografie"

Copied!
50
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Elliptische-krommecryptografie

Melvin Seitner

28 juni 2020

Bachelorscriptie Wiskunde en Informatica

Begeleiding: dr. Raf Bocklandt, dr. Karst Koymans, drs. Mees de Vries

Instituut voor Informatica

Korteweg-de Vries Instituut voor Wiskunde

(2)

Samenvatting

Elliptische krommen zijn algebra¨ısche krommen gegeven door specifieke derdegraads vergelijkingen. In deze scriptie geven we een introductie in deze krommen en hun toe-passingen in de cryptografie, een gebied dat zich bezighoudt met het veilig versturen van informatie. We bouwen eerst een basis op voor de wiskunde achter elliptische krommen, en geven een bewijs voor de Stelling van Hasse, over de grootte van elliptische krom-men over eindige lichakrom-men. Verder behandelen we enkele cryptografische protocollen die gebruik maken van elliptische krommen. Daarbij bekijken we ook enkele aanvallen op die protocollen, en bespreken hoe de juiste keuze van kromme, en andere variabelen, ervoor kan zorgen dat het protocol bestendig is tegen die aanvallen. Tenslotte behan-delen we het begrip van twistveiligheid voor specifieke elliptische krommen genaamd Montgomery-krommen.

Titel: Elliptische-krommecryptografie

Auteur: Melvin Seitner, melvin.seitner@student.uva.nl, 11868171 Begeleiding: dr. Raf Bocklandt, dr. Karst Koymans, drs. Mees de Vries Einddatum: 28 juni 2020

Instituut voor Informatica Universiteit van Amsterdam

Science Park 904, 1098 XH Amsterdam http://www.ivi.uva.nl

Korteweg-de Vries Instituut voor Wiskunde Universiteit van Amsterdam

(3)

Inhoudsopgave

Inleiding 4

1 Introductie in elliptische krommen 6

2 Endomorfismen 10 2.1 Endomorfismen . . . 10 2.2 Graad en separabiliteit . . . 12 2.3 Het Frobeniusendomorfisme . . . 15 3 Torsiepunten 17 3.1 Torsiepunten . . . 17 3.2 De Weilparing . . . 19

4 Ordes van eindige elliptische krommen 22 4.1 De Stelling van Hasse . . . 22

4.2 Het algoritme van Schoof . . . 23

5 Discrete-logaritmeprobleem 26 5.1 Het ECDLP . . . 26 5.2 Baby-step giant-step . . . 27 5.3 Pollards ρ-algoritme. . . 28 5.4 Het Pohlig-Hellman-algoritme . . . 30 6 Elliptische-krommecryptografie 33 6.1 Introductie in de cryptografie . . . 33 6.2 Diffie-Hellman-sleuteluitwisseling . . . 34 6.3 Het ElGamal-protocol . . . 35 6.4 Het Massey-Omura-protocol . . . 36 7 Twistveiligheid en Montgomery-ladders 38 7.1 De ongeldige-krommeaanval . . . 38 7.1.1 De kleine-ondergroepaanval . . . 38 7.1.2 De ongeldige-krommeaanval . . . 39 7.2 Montgomery-ladders . . . 40 7.3 Twistveiligheid . . . 43 Conclusie 46 Populaire samenvatting 47 Bibliografie 50

(4)

Inleiding

Elliptische krommen zijn algebra¨ısche krommen gegeven door bepaalde derdegraadsver-gelijkingen. Gebruikelijk worden ze gegeven door vergelijkingen van de volgende vorm, genaamd de Weierstrassvorm.

y2= x3+ Ax + B

In figuur 0.1 staan enkele voorbeelden van hoe deze krommen eruit kunnen zien over R. Oorspronkelijk werden deze elliptische krommen vooral onderzocht door wiskundi-gen omdat ze interessante en mooie eiwiskundi-genschappen hadden. Maar sindsdien zijn er ook toepassingen van elliptische krommen gevonden in verschillende gebieden, zoals de getal-theorie. Het eerste voorbeeld hiervan werd in 1984 ge¨ıntroduceert door Hendrik Lenstra, die een algoritme bedacht voor het ontbinden van getallen in factoren, dat gebruik maakt van elliptische krommen.

Figuur 0.1: Enkele voorbeelden van Elliptische krommen over R.

Een andere richting waarin elliptische krommen veel worden toegepast is de crypto-grafie, een gebied dat zich bezig houdt met de beveiliging van informatie. In 1985, het jaar nadat Lenstra zijn algoritme introduceerde, ontdekten Neal Koblitz en Victor Miller toepassingen voor elliptische krommen in de publieke-sleutelcryptografie. Tegenwoordig worden elliptische krommen in een groot aantal cryptografische systemen toegepast.

Deze scriptie dient als introductie tot de cryptografische toepassingen van elliptische krommen. Daarbij hebben we twee voornamelijke doelen. Het eerste doel is het geven van een bewijs voor de Stelling van Hasse, over de grootte van elliptische krommen over eindige lichamen. Het tweede doel is het bespreken van toepassingen van elliptische krommen in de cryptografie, om het begrip van twistveiligheid uit te kunnen leggen.

(5)

De scriptie kan als volgt worden opgedeeld.

• Deel I, bestaande uit hoofdstuk 1, dient als introductie in het onderwerp van elliptische krommen.

• Deel II, bestaande uit hoofdstukken 2, 3 en 4, behandelt enkele stellingen en definities uit de wiskunde achter elliptische krommen, met als doel de Stelling van Hasse te bewijzen.

• Deel III, bestaande uit hoofdstukken 5, 6 en 7, bespreekt de toepassingen van elliptische krommen in de cryptografie.

De scriptie is zodanig opgesteld dat deel III gelezen kan worden zonder het lezen van deel II. Verder zal worden aangenomen dat de lezer al bekend is met enkele basisconcepten uit de algebra, zoals lichamen.

(6)

1 Introductie in elliptische krommen

In de inleiding gaven we de Weierstrassvorm van vergelijkingen voor Elliptische krom-men. Dit is echter niet de enige vorm van vergelijkingen voor elliptische kromkrom-men. De algemenere vorm is als volgt gegeven.

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

Als we deze vergelijking bekijken over een lichaam met een karakteristiek groter dan 3, dan kunnen we hem met een co¨ordinaatverandering omzetten tot de Weierstrassvorm genoemd in de inleiding.

y2= x3+ Ax + B

In de komende hoofdstukken is L een lichaam, en nemen we van lichamen aan dat ze niet karakteristiek 2 of 3 hebben. We maken gebruik van de vergelijking in Weierstrass-vorm, en laten de algemenere vorm achterwege.

Definitie 1.1. Een elliptische kromme E(L) over een lichaam L bestaat uit de punten in L × L die voldoen aan een vergelijking in Weierstrassvorm. Verder voegen we aan die verzameling een punt ∞ toe.

E(L) = {(x, y) ∈ L × L | y2 = x3+ Ax + B} ∪ {∞}

We kunnen het punt ∞ interpreteren als een punt aan de oneindige uiteinden van de grafiek. Het is hier van belang dat we de co¨effici¨enten A en B zo kiezen dat x3+ Ax + B geen meervoudige nulpunten heeft. Dat houdt in dat

4A3+ 27B2 6= 0.

Definitie 1.2. Voor deze verzameling E(L) defini¨eren we een groepsoperatie, die we simpelweg zullen schrijven als +, op basis van de volgende eigenschappen.

• Het punt ∞ dient als het neutrale element.

• De inverse van een punt (x, y) op de kromme wordt gegeven door −(x, y) = (x, −y). • Als 3 verschillende punten P, Q en R op ´e´en lijn liggen, geldt

P + Q + R = ∞.

• Als, voor de punten P en R, de lijn door P en R een raaklijn is voor de elliptische kromme in P , dan geldt

(7)

(a) (b)

Figuur 1.1: Voorbeelden van de groepsoperatie

Bijvoorbeeld, in figuur 1.1a geldt P + Q = −R, en in figuur 1.1b geldt P + P = −R. Voor de optelling van twee niet-oneindige punten P1 en P2 op E(L) kunnen we, in plaats

van de meetkundige omschrijvingen uit definitie 1.2, ook de volgende formules worden gebruiken.

Definitie 1.3. Schrijf P1 = (x1, y1), P2 = (x2, y2). Dan is P1+ P2 = P3 = (x3, y3) als

volgt gegeven. 1. Als x1 6= x2, geldt x3= m2− x1− x2, y3 = m(x1− x3) − y1 waarbij m = y2− y1 x2− x1 .

2. Als x1 = x2, maar y1 6= y2, dan geldt P3 = ∞.

3. Als P1 = P2 en y1 6= 0, dan geldt

x3 = m2− 2x1, y3 = m(x1− x3) − y1 waarbij m =

3x21+ A 2y1

.

4. Als P1 = P2 en y1 = 0, dan geldt P3 = ∞.

Deze operatie voldoet duidelijk aan de meeste eigenschappen van een Abelse groeps-operatie, op ´e´en na: associativiteit. Het is niet gelijk intu¨ıtief duidelijk waarom voor alle P1, P2, P3 ∈ E(L) geldt dat

(P1+ P2) + P3 = P1+ (P2+ P3).

Het bewijs van de associativiteit van deze operatie valt buiten de omvang van deze scriptie. Een bewijs hiervan staat gegeven in [13].

(8)

Voorbeeld 1.4. In de cryptografie werken we voornamelijk met elliptische krommen over eindige lichamen. Als voorbeeld hiervan bekijken we de kromme E(F7) over het

eindige lichaam F7, gegeven door de volgende vergelijking.

y2 = x3+ x + 4 De kromme E(F7) bevat dan de volgende punten.

E(F7) = {∞, (0, 2), (0, 5), (2, 0), (4, 3), (4, 4), (5, 1), (5, 6), (6, 3), (6, 4)}

Figuur 1.2: De elliptische kromme over F7 gegeven door y2= x3+ x + 4.

Deze punten, behalve ∞, staan ook weergeven in figuur 1.2. Omdat er maar ´e´en abelse groep bestaat met 10 elementen, geldt E(F7) ∼= Z/10Z. Met de formules uit definitie 1.3

kunnen we een groepstabel opstellen voor E(F7). Deze staat weergeven in tabel 1.3.

+ ∞ (0,2) (0,5) (2,0) (4,3) (4,4) (5,1) (5,6) (6,3) (6,4) ∞ ∞ (0,2) (0,5) (2,0) (4,3) (4,4) (5,1) (5,6) (6,3) (6,4) (0,2) (0,2) (4,4) ∞ (6,4) (0,5) (5,6) (4,3) (6,3) (2,0) (5,1) (0,5) (0,5) ∞ (4,3) (6,3) (5,1) (0,2) (6,4) (4,4) (5,6) (2,0) (2,0) (2,0) (6,4) (6,3) ∞ (5,6) (5,1) (4,4) (4,3) (0,5) (0,2) (4,3) (4,3) (0,5) (5,1) (5,6) (6,4) ∞ (2,0) (0,2) (4,4) (6,3) (4,4) (4,4) (5,6) (0,2) (5,1) ∞ (6,3) (0,5) (2,0) (6,4) (4,3) (5,1) (5,1) (4,3) (6,4) (4,4) (2,0) (0,5) (6,3) ∞ (0,2) (5,6) (5,6) (5,6) (6,3) (4,4) (4,3) (0,2) (2,0) ∞ (6,4) (5,1) (0,5) (6,3) (6,3) (2,0) (5,6) (0,5) (4,4) (6,4) (0,2) (5,1) (4,3) ∞ (6,4) (6,4) (5,1) (2,0) (0,2) (6,3) (4,3) (5,6) (0,5) ∞ (4,4)

(9)

Zij M een lichaamsuitbreiding van L. Als we een elliptische kromme E(L) hebben over L, gegeven door y2= x3+Ax+B, dan drukken we met E(M ) de elliptische kromme over M gegeven door dezelfde vergelijking uit. Vooral belangrijk is E(L), waarbij L de algebra¨ısche afsluiting van L is.

Omdat E(L) een Abelse groep is, kunnen we hem als Z-module beschouwen. Definitie 1.5. Zij n ∈ N+, en P ∈ E(L). Dan defini¨eren we

nP =

n maal

z }| {

P + P + . . . + P , (−n)P = n(−P ) en 0P = ∞.

Met deze definitie kunnen we twee problemen opstellen voor elliptische krommen over eindige lichamen Fq, die beide een belangrijke rol spelen in de cryptografische

toepassin-gen van elliptische krommen.

Probleem 1.6. Gegeven een elliptische kromme E(Fq) over een eindig lichaam Fq, een

punt P ∈ E(Fq), en een n ∈ N+. Bereken de waarde van nP .

Probleem 1.7. Gegeven een elliptische kromme E(Fq) over een eindig lichaam Fq, en

twee punten P, Q ∈ E(Fq), waarbij bekend is dat Q een veelvoud is van P . Bepaal

n ∈ N+ zodat

nP = Q.

We kunnen probleem 1.6 en 1.7 als tegengestelden zien. Bij probleem 1.6 vermenig-vuldigen we, bij probleem 1.7 ‘delen’ we. Probleem 1.6 is voor een computer relatief makkelijk op te lossen. Probleem 1.7, daarentegen, is erg complex, en is een voorbeeld van een discrete-logaritmeprobleem. Dit onderbouwen we verder in hoofdstuk 5. Lezers bekend met cryptografie weten mogelijk al hoe nuttig dit kan zijn in de cryptografie.

In de volgende paar hoofdstukken, hoofdstuk 2 tot en met 4, bespreken we wiskunde uit de elliptische-krommetheorie die relevant is voor de cryptografische toepassingen. Ons belangrijkste doel daarin is het bewijzen van de Stelling van Hasse, een stelling over de orde van elliptische krommen van eindige lichamen. Deze hoofdstukken zijn grotendeels gebaseerd op [13]. Lezers die niet ge¨ınteresseerd zijn in de wiskundige achtergrond kunnen deze hoofdstukken overslaan en verder lezen vanaf hoofdstuk 5.

(10)

2 Endomorfismen

Nu we de elliptische kromme als groep hebben ge¨ıntroduceerd, is een logische stap om te kijken naar morfismen tussen elliptische krommen. In dit hoofdstuk bekijken we en-domorfismen: morfismen van een elliptische kromme naar zichzelf. Over endomorfismen behandelen we een aantal belangrijke stellingen die we later zullen gebruiken. Ook intro-duceren we een belangrijk voorbeeld van een endomorfisme: het Frobeniusendomorfisme.

2.1 Endomorfismen

We beginnen met de definitie van een morfisme tussen twee elliptische krommen over hetzelfde lichaam.

Definitie 2.1. Zijn E(L) en D(L) elliptische krommen over het lichaam L. Een mor-fisme van E(L) naar D(L) is een homomormor-fisme α : E(L) → D(L) gegeven door een rationale functie over L. Dat α een homomorfisme is houdt in dat voor elke P1, P2 ∈ E(L)

geldt dat

α(P1+ P2) = α(P1) + α(P2).

Een rationale functie is een quoti¨ent van twee polynomen. Met ‘gegeven door een rati-onale functie’, bedoelen we dat er ratirati-onale functies R1 en R2 bestaan zodat voor elke

(x, y) ∈ E(L), waarvoor α(x, y) 6= ∞, geldt dat

α(x, y) = (R1(x, y), R2(x, y)) .

Definitie 2.2. Een endomorfisme is een morfisme van een elliptische kromme E(L) naar zichzelf.

Voorbeeld 2.3. Een simpel voorbeeld van een endomorfisme op een kromme E(L) is de afbeelding f : P 7→ 2P . Uit definitie 1.3 kunnen we deze afbeelding als volgt uitdrukken in rationale functies. f (x, y) =  3x 2+ A 2y 2 − 2x, 3x 2+ A 2y 3x −  3x2+ A 2y 2! − y !

Ons eerste doel in dit hoofdstuk is het opstellen van een vorm voor endomorfismen op E(L), waar makkelijker mee te werken is.

Stelling 2.4. Voor elk endomorfisme α op E(L) bestaan rationale functies r1 en r2

(11)

Bewijs. Bekijk een willekeurig polynoom p(x, y) op L. Per definitie geldt voor alle punten (x, y) ∈ E(L) dat

y2 = x3+ Ax + B.

Dus kunnen we in het polynoom p(x, y) elk geval van y2 vervangen door x3+ Ax + B, zonder dat de waarde van het polynoom op E(L) verandert. Dit kunnen we herhalen tot er geen y-machten van 2 of groter zijn. Zo vinden we polynomen p1(x), p2(x) zodat

op E(L) geldt dat

p(x, y) = p1(x) + p2(x)y.

Dit betekent dat we voor elke rationale functie R(x, y) polynomen p1(x), p2(x), p3(x)

en p4(x) kunnen vinden zodat op E(L) geldt dat

R(x, y) = p1(x) + p2(x)y p3(x) + p4(x)y

.

We kunnen deze rationale afbeelding verder herschrijven, door de teller en noemer te vermenigvuldigen met (p3(x) − p4(x)y).

p1(x) + p2(x)y

p3(x) + p4(x)y

= (p1(x) + p2(x)y) (p3(x) − p4(x)y) p3(x)2− p4(x)2y2

Door nu nogmaals y2 te vervangen door x3+ Ax + B, vinden we polynomen q1, q2 en q3

zodat op E(L) geldt dat

R(x, y) = q1(x) + q2(x)y q3(x)

. (2.1)

Zij α een endomorfisme, gegeven door

α(x, y) = (R1(x, y), R2(x, y)),

waarbij R1 en R2 rationale functies zijn. Omdat α een endomorfisme is, geldt voor elke

(x, y) ∈ E(L) dat

α(x, −y) = α(−(x, y)) = −α(x, y)

= (R1(x, y), −R2(x, y)).

Hieruit volgt dat

R1(x, −y) = R1(x, y) en R2(x, −y) = −R2(x, y).

Als we nu R1 herschrijven in de vorm uit vergelijking (2.1), dan volgt hieruit dat q2 = 0.

(12)

We concluderen dat rationale functies r1 en r2 bestaan zodat

α(x, y) = (R1(x, y), R2(x, y)) = (r1(x), r2(x)y).

Voorbeeld 2.5. We herschrijven het endomorfisme f uit voorbeeld 2.3 in de vorm omschreven in Stelling 2.4. We nemen R1, R2 zodanig dat f (x, y) = (R1(x, y), R2(x, y)),

en herschrijven deze afbeeldingen door y2 te vervangen door x3+ Ax + B. R1(x, y) = (3x2+ A)2 4y2 − 2x = (3x 2+ A)2 4(x3+ Ax + B)− 2x = x 4− 2Ax2+ A2− 8Bx 4(x3+ Ax + B) R2(x, y) = 3x2+ A 2y 3x −  3x2+ A 2y 2! − y = (3x 2+ A)y 2y2  3x −(3x 2+ A)2 4y2  − y = (3x 2+ A)y 2(x3+ Ax + B)  3x − (3x 2+ A)2 4(x3+ Ax + B)  − y =  3x2+ A 2(x3+ Ax + B)  3x − (3x 2+ A)2 4(x3+ Ax + B)  − 1  y

2.2 Graad en separabiliteit

Rationale functies zijn niet altijd overal op de kromme gedefini¨eerd. Zoals we in definitie 2.1 noemden, wordt een endomorfisme α alleen gegeven door een rationale functie op die punten (x, y) ∈ E(L) waarvoor α(x, y) 6= ∞.

Wegens Stelling 2.4 kunnen we een endomorfisme α volledig omschrijven met twee rationale functies r1 = p1/q1, en r2= p2/q2, waarbij p1 geen nulpunten deelt met q1, en

p2 geen nulpunten deelt met q2, door af te spreken dat

α(x, y) = ∞ ⇐⇒ q1(x) = 0.

We hoeven geen extra rekening te houden met het geval waarin q2(x) = 0, wegens de

volgende stelling. Stelling 2.6. Zij α(x, y) =  p1(x) q1(x), p2(x) q2(x)y 

een endomorfisme op een elliptische kromme E(L), zodat p1 geen nulpunten deelt met q1, en p2 niet met q2. Dan zijn alle nulpunten

(13)

Bewijs. Neem (x, y) ∈ E(L). Dan geldt α(x, y) ∈ E(L), en dus geldt y2 p2(x) q2(x) 2 = p1(x) q1(x) 3 + Ap1(x) q1(x) + B.

Omdat (x, y) ∈ E(L) kunnen we y2 in deze uitdrukking vervangen door x3+ Ax + B. Dit geeft ons

(x3+ Ax + B)p2(x) 2 q2(x)2 = p1(x) 3 q1(x)3 + Ap1(x) q1(x) + B = p1(x) 3+ A p 1(x)q1(x)2+ Bq1(x)3 q1(x)3 .

We defini¨eren u(x) = p1(x)3 + A p1(x)q1(x)2 + Bq1(x)3, en herschrijven daarmee de

vergelijking tot

(x3+ Ax + B) · p2(x)2· q1(x)3= u(x) · q2(x)2. (2.2)

Zij x0 een nulpunt van q2. Dan is x0 een nulpunt van u(x) · q2(x)2 met een multipliciteit

van 2 of hoger. Uit vergelijking (2.2) achterhalen we dat x0 ook een meervoudig nulpunt

is van (x3+ Ax + B) · p2(x)2· q1(x)3.

Zoals genoemd werd in definitie 1.2, zijn A en B zo gekozen dat (x3+ Ax + B) geen meervoudige nulpunten heeft. Specifiek kan x0 dus geen meervoudig nulpunt zijn van

(x3 + Ax + B). Bovendien kan het geen nulpunt zijn van p2, omdat p2 en q2 geen

nulpunten delen. We concluderen dat x0 ook een nulpunt moet zijn van q1.

Als we kijken naar de kern van α, bestaande uit de punten P ∈ E(L) waarvoor α(P ) = ∞, dan is het dus voldoende om alleen te kijken naar r1. Daarom defini¨eren we

de graad en separabiliteit van een endomorfisme als volgt. Definitie 2.7. Zij α een endomorfisme gegeven door

α(x, y) = (r1(x), r2(x)y) =  p1(x) q1(x) , r2(x)y  ,

waarbij p1 en q1 onderling ondeelbare polynomen zijn. De graad van α defini¨eren we

dan als volgt.

deg(α) = deg(r1)

= max{deg(p1), deg(q1)}

Definitie 2.8. Neem α zoals in de vorige definitie. Dan heet α separabel als r10 6= 0. Deze definities gebruiken we in de volgende stelling over de kern van een endomorfisme, die we later zullen gebruiken in het bewijs van de Stelling van Hasse.

(14)

Stelling 2.9. Zij α een endomorfisme op E(L). Als α separabel is, dan geldt deg(α) = # ker α.

Bewijs. Zij α gegeven door α(x, y) = (r1(x), r2(x)y), waar r1 en r2 rationale functies

zijn. We schrijven r1(x) = p(x)/q(x). Omdat α separabel is weten we dat r01 6= 0,

waaruit volgt dat p0q − pq0 6= 0. Wel bekijken de verzameling S, gegeven door S := {x ∈ L | (pq0− p0q)(x) q(x) = 0}.

Voor het bewijs hebben we een punt (a, b) ∈ E(L) nodig, dat voldoet aan de volgende eisen.

1. (a, b) ∈ α(E(L)) 2. a 6= 0, b 6= 0,

3. deg(p(x) − aq(x)) = max{deg(p), deg(q)} = deg(α), en 4. a 6∈ r1(S).

Zo een (a, b) ∈ E(L) bestaat altijd, om de volgende redenen. Omdat L, per definitie, algebra¨ısch afgesloten is, bestaat voor elke x ∈ L een y zodat (x, y) ∈ E(L). Hieruit volgt dat oneindig veel punten voldoen aan eis 1. Omdat pq0− p0q niet het nulpolynoom is, is S een eindige verzameling. Dat betekent dat er slechts eindig veel punten zijn op E(L) die niet voldoen aan eis 4. Ook eisen 2 en 3 worden door slechts een eindig aantal punten op E(L) niet vervuld. Dit betekent dat we altijd een punt (a, b) ∈ E(L) kunnen vinden dat aan al deze eisen voldoet.

Uit eigenschap 3 van (a, b), weten we dat p(x) − aq(x) precies deg(α) nulpunten heeft als we multipliciteiten meetellen. We willen aantonen dat er precies deg(α) verschillende punten zijn waarvoor r1(x) = p(x)/q(x) = a, door aan te tonen dat p(x) − aq(x) geen

nulpunten heeft met een multipliciteit groter dan 1. Stel dat zo een nulpunt x0, met een

multipliciteit van 2 of hoger, wel bestaat. In dit geval zou gelden dat p(x0) − aq(x0) = 0 en p0(x0) − aq0(x0) = 0.

Door de vergelijkingen p(x0) = aq(x0) en aq0(x0) = p0(x0) te vermenigvuldigen vinden

we dan dat

ap(x0)q0(x0) = ap0(x0)q(x0).

Omdat a 6= 0, volgt hieruit dat (pq0 − p0q)(x

0) = 0, dus x0 ∈ S en a ∈ r1(S). Dit is

echter in tegenspraak met onze eerdere conclusie dat p0q − pq0 6= 0. We concluderen dat er deg(α) verschillende waarden xi zijn waarvoor r1(xi) = a.

Omdat b 6= 0, geeft yi = b/r2(xi) ons deg(α) verschillende punten (xi, yi) waarvoor

(15)

2.3 Het Frobeniusendomorfisme

E´en van de belangrijkste endomorfismen in de elliptische-krommetheorie is het Frobeni-usendomorfisme. Dit endomorfisme speelt ook een rol bij het bewijzen van de Stelling van Hasse.

Propositie 2.10. Zij E(Fq) een elliptische kromme over Fq, gegeven door de vergelijking

y2= x3+ Ax + B. Dan geldt voor alle (x, y) ∈ E(F q) dat

(xq, yq) ∈ E(Fq).

Bewijs. Voor het bewijs van deze stelling zullen we gebruik maken van het bekende resultaat uit de algebra, dat voor alle x, y ∈ Fq geldt dat

xq+ yq = (x + y)q. (2.3) Neem (x, y) ∈ E(Fq). Dan geldt y2 = x3+ Ax + B. Met behulp van vergelijking (2.3)

vinden we dat

y2q = (x3+ Ax + B)q = x3q+ Aqxq+ Bq.

Omdat E gedefinieerd is over Fq, geldt A, B ∈ Fq. Dit vertelt ons dat Aq = A en

Bq = B, dus

(yq)2 = (xq)3+ Axq+ B. We concluderen dat (xq, yq) ∈ E(Fq).

Met deze propositie kunnen we het Frobeniusendomorfisme defini¨eren.

Stelling 2.11 (Frobeniusendomorfisme). Zij E(Fq) een elliptische kromme over Fq.

De afbeelding φq: E(Fq) → E(Fq) gegeven door

φq(x, y) = (xq, yq) en φq(∞) = ∞

vormt een endomorfisme op E(Fq) genaamd het Frobeniusendomorfisme.

Bewijs. Uit de definitie van φq is direct te zien dat het gegeven is door een rationale

functie. We moeten dus bewijzen dat φq een homomorfisme is op E(Fq).

Neem P1, P2∈ E(Fq). We willen bewijzen dat

φq(P1+ P2) = φq(P1) + φq(P2).

Daarbij maken we een gevalsonderscheiding op basis van de gevallen uit definitie 1.3. De gevallen 2 en 4 zijn triviaal, dus resteren gevallen 1 en 3. Uit vergelijking (2.3), en het feit dat xq = x voor alle x ∈ Fq, volgt dat voor elke rationale functie p(x1, x2, . . . xi)

over Fq geldt dat

(p(x1, x2, . . . xi))q = p(xq1, x q 2, . . . x

q i).

(16)

Omdat A, 2, 3 ∈ Fq, zijn de uitdrukkingen voor x3 en y3 gegeven in definitie 1.3 ook

rationale functies over Fq met als variabelen x1, x2, y1 en y2. Dus geldt ook in die

gevallen dat (P1+ P2)q = P1q+ P q 2.

Omdat voor elke x ∈ Fq geldt dat xq = x, is het Frobeniusendomorfisme beperkt tot

E(Fq) hetzelfde als de identiteitsafbeelding. Verder heeft het Frobeniusendomorfisme de

volgende eigenschappen.

Propositie 2.12. Het Frobeniusendomorfisme is niet separabel.

Bewijs. Omdat in Fq geldt dat q = 0, is de afgeleide van x 7→ xq gelijk aan 0. Dus is φq

niet separabel.

Stelling 2.13. Voor alle n ∈ N+ is φnq − Id separabel. Hierbij is Id de identiteitsafbeel-ding.

Een bewijs voor Stelling 2.13 staat omschreven in [13]. Dit bewijs zal hier niet worden behandeld.

(17)

3 Torsiepunten

De torsiepunten van een groep zijn alle punten in de groep met een eindige orde. Deze punten kunnen we verder opdelen op basis van hun orde. Zo krijgen we de n-torsiepunten. Het bestuderen van de n-torsiepunten is vooral van belang voor elliptische krommen over eindige lichamen, waar elk punt een torsiepunt is. In dit hoofdstuk behandelen we enkele eigenschappen van de n-torsiepunten, met als doel het bewijzen van Stelling 3.11. Deze stelling gebruiken we later in het bewijs van de Stelling van Hasse.

3.1 Torsiepunten

Definitie 3.1. Zij E(L) een elliptische kromme over L. Voor n ∈ N+ defini¨eren we de verzameling E[n] als de verzameling

E[n] := {P ∈ E(L) | nP = ∞}.

Hierbij is vermenigvuldiging met n zoals omschreven in definitie 1.5. De elementen van E[n] worden ook wel de n-torsiepunten van E(L) genoemd.

Propositie 3.2. De verzameling E[n] vormt een ondergroep van E(L). Bewijs. Neem P1, P2∈ E[n]. Dan geldt

n(P1− P2) = nP1− nP2

= ∞ − ∞ = ∞. Dus geldt (P1− P2) ∈ E[n].

Voorbeeld 3.3. Zij E(L) een kromme over een lichaam L met een karakteristiek anders dan 2 of 3. We bekijken E[2]. Dat bestaat uit alle P ∈ E(L) waarvoor P = −P . Dat geeft de volgende mogelijkheden.

• Het punt P is het neutrale element ∞. • De y-co¨ordinaat van P is 0.

In het tweede geval geldt P = (x, 0) voor een x voldoet aan de volgende vergelijking. x3+ Ax + B = 0

Omdat A en B zo gekozen zijn dat x3 + Ax + B geen meervoudige nulpunten heeft, zijn er 3 punten op E(L) die hieraan voldoen. Dus is E[2] een groep met 4 elementen,

(18)

waaronder het neutrale element, en 3 elementen van orde 2. We concluderen dat E[2] ∼= V4 ∼= Z/2Z ⊕ Z/2Z.

Een belangrijke stelling voor het bestuderen van de n-torsiepunten is de volgende, die ons meer inzicht geeft in de vorm van E[n] als groep.

Stelling 3.4. Zij E(L) een elliptische kromme over L, en zij n een natuurlijk getal zodat char(L), de karakteristiek van L, geen deler is van n. Dan geldt

E[n] ∼= Z/nZ ⊕ Z/nZ.

Een bewijs voor deze stelling staat uitgewerkt in [12]. Dit bewijs zal hier niet worden behandeld. Een belangrijk gevolg van dit resultaat is dat we, voor elke n waarvoor char(L) - n, een basis {B1, B2} kunnen vinden voor E[n]. Deze eigenschap kunnen we

gebruiken om endomorfismen op E(L) te bestuderen.

Propositie 3.5. Zij α : E(L) → E(L) een endomorfisme. Dan geldt α(E[n]) ⊆ E[n] Bewijs. Neem P ∈ E[n]. Omdat α een endomorfisme is geldt

n(α(P )) = α(nP ) = α(∞) = ∞. Dus is α(P ) ook een n-torsiepunt van E(L).

Met deze propositie kunnen we de volgende definitie opstellen.

Definitie 3.6. Zij E(L) een elliptische kromme op het lichaam L, en n een natuurlijk getal zodat char(L) - n. Wegens Stelling 3.4 kunnen we een basis {B1, B2} van E[n]

kunnen vinden. Verder, wegens Propositie 3.5 kunnen we voor elk endomorfisme α op E(L) spreken over het homomorfisme

α

E[n]: E[n] → E[n].

Dit homomorfisme kunnen we in matrixvorm uitdrukken, aan de hand van basis {B1, B2}.

Zo vinden we voor elk endomorfisme α op E(L) een 2 × 2 matrix αn, die de werking van

α op E[n] weergeeft.

αn=

a b c d



Merk op dat αn afhangt van de keuze van de basis {B1, B2} voor E[n].

Een belangrijke eigenschap van deze matrices, is dat compositie overeenkomt met matrixvermenigvuldiging.

(α ◦ β)n= αn· βn

(19)

3.2 De Weilparing

In deze paragraaf introduceren we de Weilparing. Dit is een belangrijk hulpmiddel in de elliptische-krommetheorie. Ons doel is het bewijzen van Stelling 3.11, die later een belangrijke rol speelt in het bewijs van de Stelling van Hasse. De Weilparing verbindt de n-torsiepunten met de nde-machts eenheidswortels.

Definitie 3.7. We defini¨eren µn als de verzameling nde-machts eenheidswortels in L.

µn= {x ∈ L | xn= 1}

Als de karakteristiek van L geen deler van n is, heeft xn−1 geen meervoudige nulpunten. Dus is µn een groep van orde n. We noemen een ζ ∈ µn primitief als

ord(ζ) = n.

Met deze nde-machts eenheidswortels defini¨eren we de Weilparing als volgt.

Definitie 3.8 (Weilparing). Zij E(L) een elliptische kromme over L, gegeven door de vergelijking

y2 = x3+ Ax + B.

Verder, zij n een natuurlijk getal zodat char(L) - n. Dan bestaat een afbeelding en: E[n] × E[n] → µn,

genaamd de Weilparing, die voldoet aan de volgende eigenschappen.

1. De afbeelding enis bilineair. Dat wil zeggen dat voor elke S ∈ E[n] de afbeeldingen

T 7→ en(S, T ) en T 7→ en(T, S)

groepshomomorfismes zijn.

2. Voor een S ∈ E[n] geldt dat en(S, T ) = 1 voor alle T ∈ E[n] dan, en slechts dan,

als S = ∞.

3. en(T, T ) = 1 voor alle T ∈ E[n].

4. en(T, S) = en(S, T )−1 voor alle S, T ∈ E[n].

5. Voor elk automorfisme σ : L → L, waarvoor geldt dat σ(A) = A en σ(B) = B, geldt voor S, T ∈ E(L)

en(σ(S), σ(T )) = σ(en(S, T )).

6. Voor elk endomorfisme α op E(L) geldt voor S, T ∈ E(L) en(α(S), α(T )) = en(S, T )deg(α).

(20)

Een bewijs van het bestaan van de Weilparing staat gegeven in [12]. Dit bewijs valt buiten de omvang van deze scriptie. We bekijken echter wel een aantal gevolgen van het bestaan van de Weilparing.

Propositie 3.9. Neem E(L) en n zoals in de vorige definitie. Met Stelling 3.4 weten we dat een basis {B1, B2} bestaat voor E[n]. Dan is en(B1, B2) een primitieve nde-machts

eenheidswortel.

Bewijs. We schrijven ζ = en(B1, B2). Neem k ∈ N+ zodat ζk= 1. Dan geldt

ζk= en(B1, kB2) = 1.

Bovendien, per eigenschap 3 van de Weilparing en, geldt

en(B2, kB2) = 1k = 1.

Neem nu S ∈ E[n]. Omdat {B1, B2} een basis is van E[n], bestaan α en β zodat

S = αB1+ βB2. Dit betekent dat

en(S, kB2) = en(αB1+ βB2, kB2)

= en(B1, kB2)α· en(B2, kB2)β

= 1α· 1β = 1.

Dit geldt voor alle S ∈ E[n]. Wegens eigenschap 2 van de Weilparing en, betekent dit

dat kB2 = ∞. Dit is zo, dan, en slechts dan, als n | k. We concluderen dat ζ een

primitieve nde-machts eenheidswortel is.

Stelling 3.10. Zij α een endomorfisme op E(L), en n ∈ N+ zodat char(L) - n. Dan geldt

det(αn) ≡ deg(α) (mod n),

met αn uit definitie 3.6.

Bewijs. Uit Propositie 3.9 weten we dat ζ := en(B1, B2) een primitieve nde-machts

eenheidswortel is. Met eigenschap 6 van de Weilparing en uit definitie 3.8, vinden we

dan dat ζdeg α= en(α(B1), α(B2)) = en(aB1+ cB2, bB1+ dB2) = en(aB1, bB1) · en(aB1, dB2) · en(cB2, bB1) · en(cB2, dB2) = en(B1, B1)ab· en(B1, B2)ad· en(B2, B1)cb· en(B2, B2)cd = 1 · ζad· ζ−bc· 1 = ζad−bc.

(21)

Omdat ζ een primitieve nde-machts eenheidswortel is, kunnen we hieruit concluderen dat

deg(α) ≡ ad − bc (mod n).

Met Stelling 3.10 kunnen we de volgende stelling bewijzen, die ons meer inzicht geeft in de graden van endomorfismen, en een rol speelt in het bewijzen van de Stelling van Hasse.

Stelling 3.11. Zij α en β twee endomorfismen op een elliptische kromme E(L), en r, s ∈ Z Dan geldt

deg(rα + sβ) = r2deg(α) + s2deg(β) + rs(deg(α + β) − deg(α) − deg(β)). Bewijs. Schrijf γ = rα + sβ. Dan geldt, voor elke n ∈ N+ waarvoor char(L) - n, dat

γn= rαn+ sβn.

Met Stelling 3.10 achterhalen we dat deg(γ) ≡ det(γn)

≡ det(rαn+ sβn)

≡ r2det(αn) + s2det(βn) + rs(det(αn+ βn) − det(αn) − det(βn))

≡ r2deg(α) + s2deg(β) + rs(deg(α + β) − deg(α) − deg(β)) (mod n).

Omdat dit voor oneindig veel n ∈ N+ geldt, concluderen we dat

(22)

4 Ordes van eindige elliptische krommen

In de cryptografie wordt voornamelijk gebruik gemaakt van elliptische krommen E(Fq)

over eindige lichamen Fq. In dit hoofdstuk behandelen we resultaten over de orde van

elliptische krommen over eindige lichamen. Ons belangrijkste resultaat hierbij zal de Stelling van Hasse zijn.

4.1 De Stelling van Hasse

De Stelling van Hasse is al een aantal keer genoemd in de voorafgaande hoofdstukken. Deze stelling geeft ons waardevolle informatie over de orde van elliptische krommen over eindige lichamen. Het grootste deel van het werk om deze stelling te bewijzen is al gedaan in de voorafgaande hoofdstukken. Voor we de Stelling van Hasse introduceren, behandelen we nog ´e´en propositie die we zullen gebruiken in het bewijs.

Propositie 4.1. Voor een elliptische kromme E(Fq) over Fq, geldt

#E(Fqn) = deg(φnq − Id).

Bewijs. Een bekend resultaat uit de algebra vertelt ons dat Fqn = {x ∈ Fq | x(q

n)

= x}. Hierdoor weten we dat

E(Fqn) = ker(φnq − Id).

Uit Stelling 2.13 weten we dat φn

q− Id separabel is. Omdat φnq− Id separabel is, kunnen

we Stelling 2.9 gebruiken om te zeggen dat

# ker (φnq − Id) = deg(φnq − Id). We concluderen dat #E(Fqn) = deg(φnq − Id).

Met deze propositie, en Stelling 3.11, kunnen we een bewijs geven van de Stelling van Hasse. Deze stelling geeft ons waardevolle informatie over #(Fq).

Stelling 4.2 (Hasse). Zij E(Fq) een elliptische kromme over Fq. Dan geldt voor de

orde van E(Fq) dat

#E(Fq) = q + 1 − a waarbij |a| ≤ 2

√ q.

(23)

Bewijs. Uit Propositie 4.1 weten we dat #E(Fq) = deg(φq− Id). Dus geldt

a = (q + 1) − deg(φq− Id). (4.1)

Zijn r en s gehele getallen met ggd(r, s) = 1. Uit Stelling 3.11 volgt dat

deg(rφ − sId) = r2deg(φq) + s2deg(Id) + rs(deg(φq− Id) − deg(φq) − deg(Id)).

Omdat deg(Id) = 1, en deg(φq) = q, geldt

deg(rφ − sId) = r2q + s2+ rs(deg(φq− Id) − (q + 1))

= r2q + s2− rsa.

De graad van elk endomorfisme is niet-negatief. Specifiek geldt dat deg(rφ − sId) ≥ 0. Dit impliceert dat

r s 2 q −r s  a + 1 ≥ 0. Omdat r en s willekeurig gekozen waren, geldt dat

qx2+ ax + 1 ≥ 0, (4.2) voor alle x ∈ Q, en daarmee ook voor alle x ∈ R omdat Q dicht ligt in R. De determinant van het polynoom (4.2) kan dus niet positief zijn. We concluderen dat a2− 4q ≤ 0, en dus

|a| ≤ 2√q.

Hoewel hij ons niet de exacte waarde van #E(Fq) vertelt, geeft de Stelling van Hasse

ons een beperkt aantal mogelijkheden ervoor. Veel algoritmen voor het vinden van #E(Fq) berusten hierop. Bovendien geeft hij ons de volgende propositie, die nuttig is

voor het achterhalen van de complexiteit van toepassingen van elliptische krommen. Propositie 4.3. Zij E(Fq) een elliptische kromme over Fq. Dan geldt dat

#E(Fq) ∈ O(q).

4.2 Het algoritme van Schoof

Het algoritme van Schoof is een algoritme voor het achterhalen van #E(Fq), dat gebruik

maakt van de Stelling van Hasse. Het algoritme berust op de volgende stelling over de waarde a ge¨ıntroduceerd in de Stelling van Hasse.

Stelling 4.4. Zij E(Fq) een elliptische kromme over Fq. Neem a zoals omschreven in

de Stelling van Hasse (Stelling 4.2). Dan geldt dat φ2q− aφq+ qId = 0.

(24)

Bewijs. Neem n ∈ N+zodat ggd(n, q) = 1. Definitie 3.6 geeft ons een 2 × 2 matrixvoor-stelling van de werking van φq op E[n].

(φq)n=

m11 m12

m21 m22



Omdat φnq − Id separabel is (Stelling 2.13), kunnen we met Stelling 2.9 en Stelling 3.10 achterhalen dat

# ker(φq− 1) ≡ deg(φq− Id)

≡ det((φq)n− Id)

≡ m11m22− m12m21− (m11+ m22) + 1 (mod n).

Uit Stelling 3.10 kunnen we verder achterhalen dat q ≡ deg(φq)

≡ det((φq)n)

≡ m11m22− m12m21 (mod n). (4.3)

Dit betekent dat

# ker(φq− 1) ≡ q − (m11+ m22) + 1 (mod n).

Vergelijking (4.1) uit het bewijs van de Stelling van Hasse vertelt ons dat deg(φq− Id) =

(q + 1) − a. Dus geldt dat

m11+ m22≡ a (mod n). (4.4)

Om het bewijs af te maken gebruiken we het volgende resultaat uit de lineaire algebra. Stelling 4.5 (Cayley-Hamilton). Zij A een n × n matrix, en f het karakteristieke polynoom van A. Dat betekent dat f gegeven is door f (λ) = det(A − λId). Als we de matrix A invullen in f , dan geeft dit de n × n nulmatrix.

f (A) = 0.

Het karakteristieke polynoom van (φq)m is gegeven door

det((φq)n− λId) = m11m22− m12m21− (m11+ m22)λ + λ2.

Met vergelijkingen (4.3) en (4.4), vinden we dan dat

(25)

De Stelling van Cayley-Hamilton vertelt ons nu dat

qI − a(φq)n+ (φq)2n≡ 0 (mod n).

Dit betekent dat (φ2q−aφq+qId)(E[n]) = {0}. Uit het feit dat dit geldt voor elke n ∈ N+

waarvoor ggd(n, q) = 1, achterhalen we dat φ2q− aφq+ qId oneindig veel nulpunten heeft. We concluderen dat φ2q− aφq+ qId = 0.

Deze stelling is belangrijk in het algoritme van Schoof. Dit algoritme voor het achter-halen van #E(Fq) werd in 1985 ge¨ıntroduceerd door de Nederlandse wiskundige Ren´e

Schoof [11], en heeft een looptijd van O(log(q)8). We geven hier een schets van de werking van het algoritme.

Algoritme 4.6 (Schoof ). Zij p de karakteristiek van Fq. Neem een verzameling

priem-getallen S zodat 2, p 6∈ S, en zodat Y

s∈S

s > 4√q.

De Stelling van Hasse vertelt ons dat −2√q ≤ a ≤ 2√q. Dus als we (a mod s) achter-halen voor elke s ∈ S, dan kunnen we de Chinese Reststelling gebruiken om de waarde van a te vinden, en daarmee de waarde van #E(Fq).

Om voor een s ∈ S de waarde (a mod s) te achterhalen, gebruiken we een punt (x, y) ∈ E(L) met orde s. Stelling 4.4 vertelt ons dat

φ2q(x, y) + q(x, y) = aφq(x, y).

Uit Propositie 3.5 volgt dat φq(x, y) ook een punt van orde s is. Als we as∈ {1, 2 . . . , s}

kunnen vinden zodat

φ2q(x, y) + q(x, y) = asφq(x, y),

dan geldt dat

a ≡ as (mod s).

De specifieke methoden die in het algoritme gebruikt worden om de waarden as te

achterhalen staan omschreven in [11].

Later werd op het algoritme van Schoof voortgeborduurd door Noam Elkies, en daarna door Arhur O.L. Atkin. Het resultaat hiervan Schoof-Elkies-Atkin-algoritme, met een looptijd van O(log(q)4).

In de komende hoofdstukken bespreken we cryptografische toepassingen van eindige elliptische krommen. Daarbij zullen regelmatig de ordes van punten een rol spelen in de veiligheid. Omdat de ordes van punten op een kromme altijd delers zijn van de orde van de kromme zelf, is het belangrijk dat de orde van een kromme bepaald kan worden, bijvoorbeeld met het algoritme van Schoof.

(26)

5 Discrete-logaritmeprobleem

Het discrete-logaritmeprobleem ligt ten grondslag aan veel van de cryptografische toe-passingen van elliptische krommen. In dit hoofdstuk bespreken we het probleem, en behandelen we enkele algoritmen om het probleem mee op te lossen. De stof van dit hoofdstuk en het volgende hoofdstuk is grotendeels gebaseerd op [2] en [13].

5.1 Het ECDLP

Aan het einde van hoofdstuk 1 bespraken we kort het discrete-logaritmeprobleem op elliptische krommen. Dit probleem is als volgt gegeven.

Probleem 5.1 (ECDLP). Gegeven een elliptische kromme E(Fq) over een lichaam Fq,

een punt P ∈ E(Fq) met orde n, en een punt Q ∈ E(Fq), waarbij bekend is dat er een

m ∈ Z bestaat zodat mP = Q. Deze m is uniek (mod n). Bereken de waarde van m. Dit is een voorbeeld van een discrete-logaritmeprobleem; problemen waarbij, gegeven een a en een b uit een bepaalde groep, een m moet worden gezocht zodat ma = b. Het geval waarin deze groep een elliptische kromme is noemen we het ECDLP (Elliptic Curve Discrete Logarithm Problem).

Het ECDLP is een NP-probleem. Gegeven een P ∈ E(Fq) en een k ∈ N+ kunnen

we in polynomiale tijd kP berekenen. In plaats van simpelweg herhaaldelijk P op te tellen, achterhalen we kP met het volgende algoritme, dat gebruik maakt van de binaire ontwikkeling van k.

Algoritme 5.2. Zij de binaire ontwikkeling van k als volgt gegeven. k = (ks−1ks−2. . . k2k1k0)2

Begin met de waarden R = P en S = 0P = ∞. Vervolgens voeren we voor elke i van 0 tot en met s − 1 het volgende uit.

• Als ki = 1, voer dan S ← S + R uit. • Voer R ← 2R uit.

Aan het einde hiervan geven we S als output.

Door gebruik te maken van de binaire ontwikkeling, kunnen we dus kP berekenen in een looptijd van O(log(k)). Dat betekent ook dat we de correctheid van een antwoord op het ECDLP kunnen berekenen in polynomiale tijd.

(27)

Van het ECDLP wordt vermoed dat het buiten complexiteitsklasse P valt. In hoofd-stuk 6 zullen we enkele cryptografische toepassingen van elliptische krommen bespreken. De veiligheid van deze toepassingen is gebaseerd op de aanname dat het ECDLP moeilijk is om op te lossen.

Dit hoofdstuk behandelt een aantal technieken waarmee men kan proberen een ECDLP op te lossen. Daarbij bekijken we de algoritmen ook door de lens van computationele complexiteitstheorie, onder de aanname dat we geen toegang hebben tot een kwantum-computer. We bespreken waar de effici¨entie van die algoritmen vanaf hangt, en waaraan onze variabelen moeten voldoen zodat het ECDLP bestendig is tegen deze aanvallen.

De aanvallen op het ECDLP die we hier bespreken zijn niet specifiek voor elliptische krommen, maar werken in het algemeen voor discrete-logaritmeproblemen. De eerste hiervan is de simpelste manier om het probleem aan te vallen; de brute-force methode. Algoritme 5.3 (Brute-force). Bereken de waarden P , 2P , 3P , 4P , . . . door telkens P bij de vorige waarde op te tellen. Uiteindelijk komt hier de waarde Q uit.

We nemen n als de orde van P . Met deze methode vinden we het antwoord altijd binnen n berekeningen, gemiddeld in n/2. Om te garanderen dat het ECDLP bestendig is tegen deze aanval, is het dus belangrijk om P zo te kiezen dat zijn orde een onrealistische hoeveelheid berekeningen geeft.

5.2 Baby-step giant-step

De brute-force methode, waarbij we simpelweg ´e´en voor ´e´en alle mogelijkheden langs-gaan, is niet erg snel. Voor een betere methode kijken we eerst naar de baby-step giant-step methode. Deze methode berust op het feit dat, voor elke k ∈ N+, een uniek paar p ∈ N0, r ∈ {0, 1, . . . , k − 1} bestaat, waarvoor

m = p · k + r.

Dit gebruiken we om een algoritme op te stellen dat ECDLP op kan lossen in O(√n). Algoritme 5.4 (Baby-step giant-step).

1. Neem k ∈ N+ zo klein mogelijk dat k ≥√n.

2. Bereken iP voor elke i ∈ {0, 1, . . . k − 1}, en sla deze op. We berekenen deze waarden in volgorde, en berekenen telkens (i + 1)P door

(i + 1)P = iP + P. 3. Bereken kP = (k − 1)P + P .

4. Bereken de punten Q − jkP , voor j ∈ {0, 1, . . . k − 1} in volgorde, met Q − (j + 1)kP = (Q − jkP ) − kP.

(28)

Vergelijk daarbij telkens Q − jkP met alle eerder berekende waarden iP , tot er een overeenkomst is.

5. Als we een i en j hebben gevonden zodat iP = Q − jkP , dan geldt m = jk + i. Deze methode is vernoemd naar de kleine sprongen die in stap 2 worden gemaakt, en de grote sprongen die in stap 4 worden gemaakt. Eerst babystapjes, dan reuzestappen. Voorbeeld 5.5. Als voorbeeld nemen we de kromme E(F101) over F101, gegeven door

y2= x3+ 10x + 17. Zij P = (88, 66) en Q = (66, 11). Punt P heeft dan orde 97, dus we nemen k = 10. Dan berekenen we eerst de volgende waarden.

P = (88, 66) 2P = (21, 87) 3P = (22, 52) 4P = (76, 10) 5P = (71, 47) 6P = (10, 39) 7P = (46, 34) 8P = (64, 10) 9P = (33, 96)

Verder berekenen we 10P = (2, 34), en vinden daarmee de volgende waarden. Q − 0P = (66, 11) Q − 10P = (89, 47) Q − 20P = (78, 12) Q − 30P = (42, 47) Q − 40P = (32, 49) Q − 50P = (31, 11) Q − 60P = (10, 39)

We merken op dat Q − 60P = (10, 39) = 6P , en concluderen dat Q = 66P .

Hoewel het een verbetering is op brute-force, heeft dit algoritme twee grote nadelen. Allereerst, naast een O(√n) looptijd heeft dit algoritme ook O(√n) opslag ruimte nodig voor stap 2. Verder is er het probleem dat bij zowel stap 2 als 4 alles in volgorde berekend moet worden. Dit betekent dat we weinig winst in effici¨entie kunnen maken door berekeningen in parallel uit te voeren.

5.3 Pollards ρ-algoritme.

Het volgende algoritme, Pollards ρ-algoritme, heeft, net als baby-step giant-step, een O(√n) looptijd, maar behaalt deze zonder de grote hoeveelheid geheugen die baby-step giant-step nodig heeft. Dit algoritme is bedacht door, en vernoemd naar, John Pollard. Het berust op het volgende idee: Neem de eindige verzameling X = hP i, een afbeelding f : X → X, en een punt x0 ∈ X. Definieer dan de rij {xi}i∈N0 door

xi+1= f (xi).

Omdat X een eindige verzameling is, bestaan t ∈ N0 en s ∈ N+ zodat xt= xt+s. Dan

geldt voor elke i ∈ N0 dat xt+i= xt+s+i. De rij {xi}i∈N0 belandt dus uiteindelijk in een

(29)

xt xt+s xt+s−1 xt+s−2 xt+1 xt+2 x0 x1 xt+s+1 xt+s+2 x2 xt−1

Figuur 5.1: De voortgang van xi

Neem t ∈ N0 en s ∈ N+ zo klein mogelijk dat xt = xt+s. De waarde s heet dan

cycluslengte van {xi}i∈N0, en de waarde t de staartlengte. Als de afbeelding f willekeurig

gekozen is, dan geldt het volgende.

E(s) = E(t) =r π 8(#X)

Een bewijs hiervoor staat gegeven in [3]. Omdat #X = #hP i = n, betekent dit dat de verwachte waarden van s en t beide O(√n) zijn.

Als onderdeel van Pollards ρ-algoritme moeten we het volgende probleem oplossen. Probleem 5.6. Vind i1, i2∈ N0 zo dat xi1 = xi2 en i1 < i2.

Een voor de hand liggende oplossing zou zijn om te zoeken naar s en s + t, door simpelweg x1, x2, x3, . . . te berekenen en te onthouden, tot we een waarde vinden die al

eerder is voorgekomen. Omdat E(s) en E(t) in O(√n) vallen, heeft dit algoritme een looptijd van O(√n). Helaas vereist dit ook O(√n) aan opslagruimte. Daarom gebruiken we in plaats daarvan het volgende algoritme.

Algoritme 5.7. Bereken, voor k = 1, 2, 3, . . . de waarden xi en x2i. Dit doen we in

volgorde, met

xi+1= f (xi) en x2(i+1)= f (f (x2i)).

Herhaal dit tot we een i vinden waarvoor xi = x2i. Geef dan als output het paar

(i1, i2) = (i, 2i).

De waarde voor i die we in dit algoritme vinden is de laagste waarde zodat i > t en s | i. Dit betekent dat dit algoritme ook een looptijd heeft van O(√n), zonder

(30)

O(√n) aan opslagruimte te vereisen. Voor Pollards ρ-algoritme kiezen we f en x0 op

een slimme manier, zodat we s kunnen gebruiken om m te achterhalen. Daarbij moet f zich willekeurig gedragen, zodat E(s) en E(t) in O(√n) vallen.

Algoritme 5.8 (Pollards ρ-algoritme). Verdeel E(Fq) in partities S1, S2, . . . , Sk.

Voor k wordt gebruikelijk de waarde 16 of 32 gekozen. Kies voor elke j ∈ {1, 2, . . . k} de waarden aj en bj willekeurig uit {1, 2, . . . , n}. Bereken Mj = ajP + bjQ, en definieer

f (s) = s + Mj voor s ∈ Sj.

Kies nog twee waarden a0 en b0 willekeurig uit {1, 2, . . . , n}, en neem x0 = a0P + b0Q.

Gebruik dan algoritme 5.7 om i1, i2 te vinden zodat i1 < i2en xi1 = xi2, en houd bij het

uitvoeren van algoritme 5.7 bij hoe de xi zijn uitgedrukt in P en Q. Per constructie is

x0 te schrijven als a0P + b0Q, en als xi gegeven is door xi = uiP + viQ, dan kan xi+1

geschreven worden als

xi+1= ui+1P + vi+1Q waarbij ui+1= ui+ aj en vi+1= vi+ bj als xi ∈ Sj.

Hiermee vinden we xi1 = ui1P + vi1Q en xi2 = ui2P + vi2Q waarvoor xi1 = xi2, dus

(ui1− ui2)P = (vi2 − vi1)Q.

Neem d = ggd{(vi2 − vi1), n}. We concluderen dat

m ≡ (vi2 − vi1)

−1(u

i1− ui2) (mod

n d).

Dit geeft d mogelijkheden voor m. Meestal is d hier klein, en kunnen we alle d moge-lijkheden na gaan. Mocht d niet klein zijn, dan kunnen we het algoritme herhalen met een nieuwe afbeelding f .

5.4 Het Pohlig-Hellman-algoritme

Om het berekenen van (m mod n) te versimpelen kunnen we gebruik maken van de priemontbinding van n. Zij de priemontbinding van n als volgt gegeven.

n = pe1 1 · p e2 2 · . . . · p es s

Als we voor alle i ∈ {1, . . . s} de waarde

(m mod pei

i )

kunnen berekenen, dan kunnen we daaruit (m mod n) berekenen aan de hand van de Chinese reststelling. Om (m mod pei

i ) te berekenen gebruiken het

Pohlig-Hellman-algoritme. Daarbij kijken we naar m uitgedrukt in het systeem met grondtal pi.

(31)

Om (m mod pei

i ) te berekenen, bepalen we m0, m1, . . . mei−1 in volgorde. Dit doen we

met het volgende algoritme.

Algoritme 5.9 (Pohlig-Hellman). Allereerst berekenen we de elementen van de vol-gende verzameling T =  j n pi P  0 ≤ j < pi  . Vervolgens berekenen we pn

iQ. Dit is een element van T . De waarde j, waarvoor

j n pi P  = n pi Q,

is de waarde van m0. Als ei = 1, dan zijn we nu al klaar. Zo niet, dan defini¨eren we

Q0= Q.

De rest van de waarden vinden we inductief. Als we m0, . . . , mren Q0, . . . , Qral berekend

hebben dan defini¨eren we Qr+1 als

Qr+1= Qr− mrpriP

= Q − (m0P + m1piP + m2p2iP + . . . + mrpriP ).

Dit is weer een element van T . Vind de waarde mr+1 zodat

mr+1  n pi P  = n pr+2i Qr+1. Herhaal dit tot aan r = ei− 1.

Het uitvoeren van het Pohlig-Hellman-algoritme voor een specifieke priemdeler piheeft

looptijd O(ei

pi). Het algoritme laat ons dus snel het ECDLP oplossen als alle

priem-delers van n klein zijn. Daarom is het voor de veiligheid van het ECDLP van belang dat we P zo kiezen dat n minstens ´e´en grote priemdeler heeft.

Voorbeeld 5.10. Als voorbeeld nemen we E(F251) gegeven door y2 = x3+ 3x + 71, en

de punten P = (9, 24) en Q = (64, 83). Dan heeft P een orde van 250 = 2 · 53.

We willen de hierboven omschreven methoden gebruiken om (m mod 53) te achterha-len. Er geldt 250/5 = 50, dus berekenen we de volgende waarden.

0P = ∞ 50P = (233, 65) 100P = (155, 18)

150P = (155, 233) 200P = (233, 186)

We beginnen met Q0 = Q = (64, 83), en berekenen

250

(32)

Omdat (233, 186) = 4 · 50 · P , weten we nu dat m0 = 4. Vervolgens berekenen we

Q1 = Q0− 4P = (139, 77). Hiermee vinden we dat

250

25 Q1= (233, 65).

Omdat (233, 65) = 50P , achterhalen we hieruit dat m1 = 1. Als laatste nemen we

Q2 = Q1− 1 · 5 · P = (233, 186), en berekenen daarmee

250

125Q2= (155, 233).

Omdat (155, 233) = 3 · 50 · P , geldt m2 = 3. Met de waarden van m0, m1 en m2 vinden

we dat

m ≡ (314)5

≡ 3 · 25 + 1 · 5 + 4 ≡ 84 (mod 125).

Op dezelfde manier kunnen we achterhalen dat m ≡ 1 (mod 2). We concluderen dat m ≡ 209 (mod 250).

Zoals we hebben gezien bij alle algoritmen uit dit hoofdstuk, hangt de veiligheid van het ECDLP vooral af van de orde van P . Daarom is het belangrijk om van een punt op een kromme de orde te kunnen achterhalen. Omdat de orde van een punt altijd een deler is van de orde van de kromme zelf, is ook het belangrijk om de orde van de kromme te kunnen bepalen. De stof besproken in hoofdstuk 4 is dus van groot belang voor de elliptische-krommecryptografie.

(33)

6 Elliptische-krommecryptografie

In dit hoofdstuk bespreken we een aantal toepassingen van elliptische krommen in de cryptografie. We beginnen met een korte introductie in de cryptografie. Lezers be-kend met deze stof kunnen paragraaf 6.1 overslaan. Daarna bespreken we een aantal cryptografische protocollen die gebruik maken van elliptische krommen.

Voor de protocollen die hier besproken worden hoeft niet noodzakelijk gebruik te worden gemaakt van elliptische krommen. Deze protocollen kunnen worden toegepast met elke groep waarvoor het discrete-logaritmeprobleem moeilijk is, zoals (Z/pZ)∗. De reden dat we elliptische krommen willen gebruiken, in plaats van de simpelere (Z/pZ)∗, is dat we met elliptische krommen hetzelfde veiligheidsniveau kunnen bereiken met kleinere sleutels. Zie [9] voor meer informatie hierover.

6.1 Introductie in de cryptografie

Het idee achter cryptografie is als volgt: er zijn twee partijen, die meestal Alice en Bob worden genoemd, die willen communiceren. Alice wil een bericht naar Bob sturen. Er is echter een mogelijkheid dat dit bericht wordt onderschept door een derde partij. Deze derde partij noemen we Eve, naar het Engelse woord eavesdropper. We willen voorkomen dat Eve de geheime informatie uit het bericht kan achterhalen als ze het onderschept.

Daarom spreken Alice en Bob een geheime sleutel i af. Ze kiezen een versleutelingsal-goritme Enci en een ontsleutelingsalgoritme Deci op basis van die sleutel.

Voorbeeld 6.1. Stel het bericht bestaat volledig uit letters. Alice en Bob spreken een getal i ∈ {0, . . . 25}. Het versleutelingsalgoritme schuift alle letters i plaatsen op in het alfabet, en het ontsleutelingsalgoritme schuift ze terug. Ze kiezen de sleutel i = 3. Alice wil nu het woord ‘geheim’ versturen. Dan stuurt ze de volgende codetekst naar Bob.

Enc3(‘geheim’) = ‘jhkhlp’

Bob ontvangt de codetekst ‘jhkhlp’, en kan vervolgens met Dec3 het bericht achterhalen.

Dec3(‘jhkhlp’) = ‘geheim’

Als Eve nu het bericht onderschept, dan ziet ze slechts de ogenschijnlijk willekeurige reeks letters ‘jkhklp’. Ze kan nu proberen om de codetekst te ontsleutelen. Maar als ze geen idee heeft hoe Enc en Dec werken, dan is het erg lastig voor Eve om de code te kraken. Dit idee wordt ‘security by obscurity’ genoemd.

Echter, omdat cryptografische protocollen tegenwoordig vaak op grote schaal worden gebruikt, is het niet realistisch om te verwachten dat het protocol zelf een geheim kan

(34)

blijven. Daarom wordt in de cryptografie tegenwoordig meestal gewerkt vanuit het principe van Kerckhoffs, omschreven in [7].

Definitie 6.2 (Principe van Kerckhoffs). Een cryptografisch protocol moet ook be-stendig zijn tegen een aanvaller die bekend is met de gebruikte algoritmes.

We nemen dus aan dat Eve bekend is met het protocol dat wordt gebruikt. Alleen van de sleutel mag worden aangenomen dat Eve er geen beschikking over heeft. Onder dit principe is voorbeeld 6.1 niet veilig. Als Eve weet dat het bericht versleuteld is door de letters door het alfabet te verschuiven, dan kan ze het bericht vanuit de codetekst achterhalen, zelfs zonder toegang tot i. Ze hoeft immers maar 26 mogelijkheden af te gaan om te achterhalen wat het originele bericht was. Als ze een computer het werk laat doen is dat kinderspel. Er bestaan echter een groot aantal protocollen die wel veilig zijn, ook onder het principe van Kerckhoffs.

6.2 Diffie-Hellman-sleuteluitwisseling

In tegenstelling tot Enc en Dec, is het wel belangrijk dat de sleutel een geheim blijft. De vraag is dan: hoe kunnen Alice en Bob een sleutel afspreken, zonder dat Eve deze kan achterhalen door ze af te luisteren? Alice kan niet simpelweg een sleutel kiezen en die naar Bob sturen, want pas nadat de sleutel gekozen is kunnen berichten veilig worden verstuurd.

Hiervoor kunnen we gebruik maken van sleuteluitwisselingsprotocollen, waarbij Alice en Bob een conversatie houden, waarin ze gezamenlijk een sleutel opstellen. Aan het einde van die conversatie weten Bob en Alice allebei de sleutel. Dit protocol wordt opgesteld zodat Eve, zelfs als ze toegang tot het volledige transcript van de conversatie tussen Alice en Bob heeft, niet kan achterhalen wat de sleutel is. Een voorbeeld van een sleuteluitwisselingsprotocol is het Diffie-Hellman-protocol.

Protocol 6.3 (Diffie-Hellman-sleuteluitwisseling).

1. Alice en Bob kiezen een lichaam Fq, een kromme E(Fq), en een punt P op die

kromme.

2. Alice genereert een willekeurig geheel getal a, en berekent Pa= aP . Ze stuurt Pa

naar Bob, en deelt a niet.

3. Bob genereert een willekeurig geheel getal b, en berekent Pb = bP . Hij stuurt Pb

naar Alice, en deelt b niet.

4. Alice en Bob berekenen nu beide abP

aPb = abP = bPa

(35)

ma-Voorbeeld 6.4. Alice en Bob kiezen de kromme E(F151) over F151, gegeven door y2=

x3 + 9x + 81, en het punt P = (15, 32). Dan heeft P orde 137. Bob en Alice kiezen allebei een geheim getal. Bob kiest b = 47, Alice kiest a = 115. Ze wisselen de volgende punten uit.

aP = (35, 113) en bP = (99, 48) Vervolgens berekenen Alice en Bob allebei

a(99, 48) = (58, 64) = b(35, 113). Alice en Bob weten nu allebei het geheime punt abP = (58, 64).

Als Eve tijdens het Diffie-Hellman-protocol heeft meegeluisterd, dan heeft ze de vol-gende informatie meegekregen.

• De kromme E(Fq) over het lichaam Fq.

• De punten P , Pb en Pa.

Als Eve dus zelf wil achterhalen wat de code is, moet ze het volgende probleem oplossen. Probleem 6.5 (Diffie-Hellman-probleem). Gegeven zijn een elliptische kromme E(Fq) over Fq, en de punten P , aP en bP op die kromme. Bereken abP.

Als Eve het ECDLP op kan lossen, dan is het niet moeilijk om dit probleem op te lossen, dus zullen Alice en Bob de kromme E(Fq) en het punt P zo moeten kiezen dat

het ECDLP moeilijk is. Het is nog onbekend of het Diffie-Hellman-probleem makkelijker is om op te lossen dan het ECDLP, of dat de twee problemen even moeilijk zijn.

6.3 Het ElGamal-protocol

Naast sleuteluitwisselingsprotocollen, kunnen de problemen met het delen van een sleutel ook worden verholpen door gebruik te maken van publieke-sleutelcryptografie. Dit wordt ook wel asymmetrische cryptografie genoemd. Hierbij wordt gebruik gemaakt van twee aparte sleutels. De publieke sleutel, k1, die wordt gebruikt voor het

versleutelingsalgo-ritme Enck1, en een priv´e-sleutel, k2, die wordt gebruikt bij het ontsleutelingsalgoritme

Deck2.

Dit betekent dat Bob een tweetal sleutels kan opstellen, en de publieke sleutel gewoon met Alice kan delen, zonder dat die geheim gehouden hoeft te worden. Alice gebruikt die publieke sleutel om het bericht te versleutelen, en stuurt het versleutelde bericht naar Bob. Dit versleutelde bericht kan nu alleen door Bob worden ontsleuteld, omdat hij de enige is met toegang tot de priv´e-sleutel. Zo een protocol vereist dat de publieke sleutel genoeg is om een bericht de versleutelen, maar niet gebruikt kan worden om een bericht te ontsleutelen.

Een voorbeeld van een publieke-sleutelcryptografieprotocol is het ElGamal-encryptie-systeem, bedacht door Taher ElGamal. Met dit protocol kan Alice een punt op een elliptische kromme naar Bob versturen.

(36)

Protocol 6.6. Bob kiest een elliptische kromme E(Fq) over een eindig lichaam Fq en

een punt P ∈ E(Fq) waarvoor het ECDLP moeilijk is. Vervolgens kiest hij een geheim

getal s, en berekent S = sP . Als publieke sleutel deelt hij de keuze van Fq, de kromme

E(Fq), en de punten P en S. Het getal s houdt hij voor zichzelf, als de priv´e-sleutel.

Alice kan nu een punt M ∈ E(Fq) als volgt naar Bob sturen:

1. Alice kiest een willekeurig getal k. 2. Ze berekent M1 = kP .

3. Ze berekent M2 = M + kS.

4. Alice stuurt M1 en M2 naar Bob.

Bob kan nu als volgt M achterhalen uit M1 en M2 door M2− sM1te berekenen. Immers

geldt

M2− sM1 = M + k(sP ) − s(kP )

= M.

Als Alice een bericht wil versturen dat een andere vorm heeft dan een punt op een elliptische kromme, bijvoorbeeld een reeks bits, dan moeten Bob en Alice een methode afspreken om berichten in die vorm uit de drukken in de vorm van een punt op E(Fq).

Ook dit protocol berust op de moeilijkheid van het ECDLP. Het is van belang dat Eve, zelfs met toegang tot P en S vanuit de publieke sleutel, niet de priv´e-sleutel s kan achterhalen.

6.4 Het Massey-Omura-protocol

Het laatste protocol dat we bespreken is het Massey-Omura-protocol. Ook dit protocol biedt een oplossing voor het geval dat Alice en Bob nog geen afgesproken sleutel hebben. Net als het ElGamal-protocol laat dit protocol Alice een geheim punt op een elliptische kromme naar Bob sturen. Het idee achter het protocol is dat Alice en Bob beide een priv´esleutel nemen, en die gebruiken om het bericht tweemaal te versleutelen. Vervol-gens halen Alice en Bob allebei hun eigen versleuteling weg, zodat het originele bericht overblijft.

Protocol 6.7 (Massey-Omura). Alice en Bob spreken een elliptische kromme E(Fq)

af, van orde n. Alice kan nu als volgt een geheim punt M ∈ E(Fq) naar Bob sturen.

1. Alice kiest een priv´e-sleutel a ∈ N+, zodat ggd(a, n) = 1. Ze berekent M1 = aM ,

en stuurt dit naar Bob.

2. Bob kiest een priv´e-sleutel b ∈ N+, zodat ggd(b, n) = 1. Hij berekent M2 = bM1,

(37)

3. Alice berekent de waarde van a−1 ∈ Z/nZ. Ze berekent M3 = a−1M2, en stuurt

dit naar Bob.

4. Bob berekent de waarde van b−1 ∈ Z/nZ. Hij achterhaalt nu de waarde van M, met

b−1M3 = b−1a−1b a M

= M.

Als Eve dit proces heeft afgeluisterd, dan weet ze nu de kromme, en de punten M1=

aM , M2 = abM , en M3 = bM . Haar doel is nu om M te achterhalen. Als we P

defini¨eren door P = abM , dan kunnen we deze punten als volgt herschrijven. M1 = b−1P, M2 = P, M3= a−1P en M = a−1b−1P

Om M te achterhalen vanuit M1, M2 en M3, zal Eve dus probleem 6.5, het

Diffie-Hellman-probleem, op moeten lossen. Daarom is het noodzakelijk dat het ECDLP moei-lijk is voor M . Dit beperkt de berichten die met dit protocol kunnen worden verzonden. Het punt M is immers niet een hulpmiddel voor het versturen van een bericht, het is zelf het bericht. Als Alice en Bob dus een manier afspreken om informatie uit de drukken in de vorm van een punt op een elliptische kromme, dan zullen ze er rekening mee moeten houden dat het ECDLP moeilijk moet zijn voor dat punt.

(38)

7 Twistveiligheid en

Montgomery-ladders

In de afgelopen paar hoofdstukken heeft de nadruk veel gelegen op het ECDLP. De moeilijkheid van dit probleem is essentieel voor de veiligheid van de protocollen bespro-ken in hoofdstuk 6. Essentieel, maar niet voldoende. In dit hoofdstuk besprebespro-ken we aanvallen op het Diffie-Hellman-sleuteluitwisselingsprotocol, waarvoor het niet nodig is om het ECDLP op te lossen.

7.1 De ongeldige-krommeaanval

In definitie 5.1 van het ECDLP namen we aan dat de aanvaller alleen de volgende gegevens heeft.

• Het lichaam Fq,

• De kromme E(Fq), en

• De punten P en Q = mP .

In bepaalde situaties is het echter mogelijk voor Eve om meer gegevens te achterhalen, waarmee ze wel in polynomiale tijd de waarde van m kan achterhalen.

Als voorbeeld hiervan bespreken we enkele aanvallen op het statische Diffie-Hellman-protocol, omschreven in [6]. Het Diffie-Hellman-protocol bespraken we in paragraaf 6.2. Bij dit protocol hebben Alice en Bob allebei een geheim getal, a en b. We kunnen deze getallen als priv´e-sleutels beschouwen. Met ‘statisch’ bedoelen we dat de partijen eenmalig een priv´e-sleutel genereren, en die hergebruiken voor alle interacties. Niet alleen voor de interacties met elkaar, maar voor elke interactie waarbij ze dit protocol gebruiken. Ook het punt P , het lichaam Fq, en de kromme E(Fq) worden hergebruikt.

Als Eve contact opzoekt met Bob via dit protocol, dan zal Bob dezelfde priv´e-sleutel gebruiken als in zijn interacties met Alice. In deze paragraaf bespreken we enkele aan-vallen, waarbij Eve gaat proberen informatie over b te achterhalen door met Bob contact op te nemen. We nemen hierbij aan dat b gekozen is als een getal tussen 0 en ord(P ).

7.1.1 De kleine-ondergroepaanval

(39)

Algoritme 7.1 (Kleine-ondergroepaanval). Eve zoekt contact op met Bob, en vraagt hem om bepaalde gegevens te versturen. Ze gebruiken het Diffie-Hellman-protocol om een sleutel te kiezen. Bob gebruikt zijn priv´e-sleutel b om het punt Pb = bP te berekenen,

en stuurt dit naar Eve.

Om informatie te achterhalen over b, wijkt Eve nu expres af van het protocol. In plaats van zelf een getal c te kiezen, en het punt cP naar Bob te sturen, kiest Eve een punt R ∈ E(Fq) met een kleine orde r, en stuurt dit naar Bob. Dit punt is dus niet

noodzakelijk een veelvoud van P .

Bob zal nu het punt bR berekenen, en dat als sleutel gebruiken om zijn bericht te versleutelen. Dat versleutelde bericht stuurt hij naar Eve. Omdat R een kleine orde heeft, hoeft Eve slechts een klein aantal mogelijkheden voor nR langs te gaan om te achterhalen wat de sleutel is waarmee Bob het bericht versleuteld heeft. Dit vertelt Eve de waarde van (b mod r).

Door de kromme E(Fq) en het punt P verstandig te kiezen, kunnen we zorgen dat Eve

weinig heeft aan deze extra gegevens over b. In paragraaf 5.4 over de Pohlig-Hellman-aanval bespraken we dat het belangrijk is om het punt P te kiezen zodat het minstens ´e´en grote priemdeler heeft. We kiezen de kromme E(Fq) zodat

#E(Fq) = kp,

waarbij p een groot priemgetal is. Het getal k noemen we de cofactor. Het punt P wordt dan zo gekozen dat ord(P ) = p.

De meeste informatie die Eve kan behalen met de kleine-ondergroepaanval, is de waarde van (b mod k). Het aantal mogelijkheden voor b wordt door die informatie beperkt tot ongeveer p/k. Door #E(Fq) zo te kiezen dat de cofactor k

verwaarloos-baar klein is relatief tot p, kunnen we zorgen dat Eve weinig winst kan behalen met de kleine-ondergroepaanval.

7.1.2 De ongeldige-krommeaanval

Met een kleine aanpassing kunnen we echter een aanval bedenken die Eve meer op kan leveren. In de kleine-ondergroepaanval koos Eve een punt R dat niet noodzakelijk een veelvoud van P was. Eve kan nog een stap verder gaan, en een punt R kiezen dat niet eens op de kromme E(Fq) ligt. Stel, bijvoorbeeld, dat Alice en Bob gebruik maken van

een kromme in Weierstrassvorm, gegeven door y2 = x3+ Ax + B.

Dan kan Eve een punt R met orde r kiezen op een alternatieve kromme D(Fq) gegeven

door

y2 = x3+ Ax + C.

Merk op dat in de formules voor optelling uit definitie 1.3 nooit de waarde van B wordt gebruikt. Dit betekent dat die formules hetzelfde zijn voor E(Fq) en D(Fq).

(40)

Als Eve dus R naar Bob stuurt, en Bob probeert bR te berekenen onder de aanname dat R een punt op E(Fq) is, dan zal hij correct de waarde van bR ∈ D(Fq) berekenen.

Eve kan dus met het punt R ∈ D(Fq) hetzelfde stappenplan volgen als bij de

kleine-ondergroepaanval. Dit geeft Eve (b mod r).

Het voordeel dat Eve hierbij heeft, is dat er minder beperkingen zijn op de waarden die r kan hebben. Als we een punt R uit E(Fq) kiezen, dan zal de orde van R altijd een

deler zijn van #E(Fq). Door ook punten uit andere krommen te kiezen zijn we van deze

beperking af.

Voorbeeld 7.2. Alice en Bob gebruiken, net als in voorbeeld 6.4, de kromme E(F151)

gegeven door y2 = x3 + 9x + 81. Hiervoor geldt dat #E(F151) = 137, een priemgetal.

Eve neemt daarom haar eigen kromme D(F151), gegeven door y2 = x3+ 9x + 93. Deze

kromme heeft een orde van 150, en bevat dus punten van orde 2, 3 en 5.

Zonder die beperkingen voor de waarde die r kan hebben, kunnen we het volgende algoritme opstellen.

Algoritme 7.3 (Ongeldige-krommeaanval). Eve kiest een punt R2 met orde 2 op

een elliptische kromme D2(Fq), en achterhaalt (b mod 2) op dezelfde manier als bij de

kleine-ondergroepaanval. Ze herhaalt het proces met een punt R3 met orde 3 op een

andere kromme om (b mod 3) te achterhalen. Dit blijft ze herhalen voor punten R5,

R7, et cetera. Uiteindelijk weet Eve (b mod r) voor genoeg priemgetallen r om met de

Chinese reststelling b te kunnen achterhalen.

Een simpele verdediging tegen deze aanval zou zijn om van elk aangeleverd punt te controleren of het voldoet aan de vergelijking y2 = x3 + Ax + B. Echter, omdat die controle extra complexiteit introduceert voor Alice en Bob, wordt hij meestal niet ge¨ımplementeerd in protocollen.

Een andere manier om te verdedigen tegen deze aanval is door gebruik te maken van een speciaal soort kromme, genaamd een Montgomery-kromme. Deze krommen introduceren we in de volgende paragraaf. Vervolgens bespreken we in paragraaf 7.3 hoe deze krommen nuttig zijn bij de verdediging tegen de ongeldige-krommeaanval.

7.2 Montgomery-ladders

Met algoritme 5.2 bespraken we een manier om, gegeven een punt P op een elliptische kromme, en een natuurlijk getal k, de waarde van kP uit te rekenen met een looptijd in O(log(k)). De Montgomery-ladder is een alternatief algoritme om kP te berekenen, en heeft ook een O(log(k)) looptijd. Dit algoritme werd in 1987 ge¨ıntroduceerd door Peter L. Montgomery [10]. De volgende uitwerking van het algoritme is gebaseerd op [5]. Algoritme 7.4 (Montgomery-ladder). We beginnen met de waarden R1 = ∞ en

(41)

We voeren voor i = n − 1 tot en met i = 0 het volgende uit. • Als ki = 0, neem dan R2 ← R1+ R2 en neem R1 ← 2R1.

• Als ki = 1, neem dan R1 ← R1+ R2 en neem R2 ← 2R2.

De waarde van R1 aan het einde van dit proces is de waarde van kP .

Voor we de voordelen bespreken die dit algoritme heeft ten opzichte van algoritme 5.2, onderbouwen we waarom het het correcte resultaat geeft. Dit geeft ons ook meer inzicht in waarom het algoritme deze vorm heeft.

Bewijs. Allereerst merken we op dat, zowel in het geval ki = 0 als het geval ki = 1, de

waarde van R2− R1 niet verandert. De waarde van R2− R1 blijft dus zoals hij begint:

R2− R1= P (7.1)

We bewijzen de correctheid van het algoritme met inductie naar n, de lengte van de binaire ontwikkeling van k.

Basisstap: Als basisgeval nemen we n = 0, dus k = 0. In dit geval eindigen R1 en R2

met hun beginwaarden. Dit houdt in dat

R1 = ∞ = 0P.

Inductiestap: Stel, de binaire ontwikkeling van k heeft lengte n. We defini¨eren k0 door k0 = (kn−1kn−2 . . . k2k1)2.

De binaire ontwikkeling van k0 heeft dan lengte (n − 1). De inductiehypothese vertelt ons dat na de eerste n − 1 stappen geldt dat R1 = k0P . Verder vertelt vergelijking (7.1)

ons dat R2= R1+ P = (k0+ 1)P . We maken nu een gevalsonderscheiding aan de hand

van k0.

• Geval 1: k0 = 0.

In dit geval geldt k = 2k0. Het algoritme berekent in dit geval de volgende nieuwe waarde voor R1.

2R1= 2k0P

= kP • Geval 2: k0 = 1.

(42)

nieuwe waarde voor R1.

R1+ R2 = k0P + (k0+ 1)P

= (2k0+ 1)P = kP

In beide gevallen eindigt het algoritme met R1 = kP .

E´en voordeel dat dit algoritme heeft ten opzichte van algoritme 5.2, is dat de looptijd ervan direct afhangt van n. Bij de gevalsonderscheiding tussen ki = 0 en ki = 1,

be-rekenen we in beide gevallen ´e´en optelling en ´e´en verdubbeling. Verschillende waarden voor k met dezelfde lengte zullen dus dezelfde looptijd geven. Dit betekent dat Eve geen informatie over k kan achterhalen door te kijken naar hoe lang Bob doet over zijn berekeningen.

Een begrip dat hand in hand gaat met ladders, zijn de Montgomery-krommen. Dit zijn elliptische krommen gegeven door een vergelijking van de volgende vorm.

By2= x3+ Ax2+ x

In tegenstelling tot de Weierstrassvorm, waarin elke elliptische kromme over een lichaam met een karakteristiek hoger dan 3 kan worden uitgedrukt, kan niet elke elliptische kromme in Montgomery-vorm worden uitgedrukt met co¨ordinaattransformaties. Een bewijs hiervoor staat gegeven in [4].

Om te voorkomen dat bij optelling moet worden gewerkt met inversen, wordt een punt (x, y) op een Montgomery-kromme gebruikelijk voorgesteld aan de hand van projectieve co¨ordinaten

(X : Y : Z) waarbij X

Z = x en Y Z = y.

Op de Montgomery-krommen bestaan effici¨ente formules, waarmee we de x-coordinaat van de som van twee punten uit kunnen rekenen. Daarom wordt de variabele Y re-gelmatig achterwege gelaten, en worden punten (x, y) op de kromme voorgesteld in de vorm

(X : Z) waarbij X Z = x.

Deze weergave van een punt op een Montgomery-kromme zullen we de XZ-vorm noemen. Met deze vorm verliezen we wel wat informatie. Voor een punt P op een elliptische kromme kunnen we zonder Y geen onderscheid maken tussen P en −P . Dit betekent ook dat de XZ-vorm van twee punten P1 en P2 niet genoeg informatie biedt om de

XZ-vorm van P1+ P2 te kunnen achterhalen. Echter, als we ook de XZ-vorm van P1− P2

weten, dan hebben we wel genoeg informatie om de XZ-vorm van P1+ P2 te berekenen.

Algoritme 7.5. Zij E(Fq) een Montgomery-kromme over een lichaam Fq, en zij P1, P2 ∈

Referenties

GERELATEERDE DOCUMENTEN

Ook kan je eventueel doorvragen (bijvoorbeeld of extra pauzes helpen of voor wat voor prikkels de klant gevoelig is) en dan op zoek naar een plek of traject dat hierop aansluit.

We kunnen bewijzen: voor elke [K : Q] &lt; ∞ en elke elliptische kromme E over K gegeven door een verglijking (14.1) met A en B in de ring van gehelen van K, dan bestaat er

Het is voldoende deze stelling te bewijzen voor het geval dat ggd(x, y) = 1, dat x en y oneven en z even zijn, dat z &gt; 0 en dat z minimaal is in de verzameling van alle

In het tweede geval is α negatief en zijn er geen uitbreidingen waarover de kromme maximaal wordt, namelijk voor oneven m.... Als n deelbaar door

Dit loopt prima. Er zijn voor nu voldoende buddy’s om te koppelen aan nieuwe leden. Er zijn nog niet heel veel nieuwe leden bijgekomen. Er zijn dus weinig mensen om te koppelen. We

Vraag de patiënt om bij het volgende consult de placemat weer mee te nemen en alvast na te denken over de onderwerpen die hij dan wil bespreken.. Bij een jaarcontrole kunt u

Euclidische meetkunde, affiene en projectieve meetkunde, incidentiemeetkunde,

Omdat afgeleiden van sin 2x en cos 2x opnieuw (lineaire combi- naties van) sin 2x en cos 2x opleveren, proberen we voor een particuliere oplossing een functie van de vorm A sin 2x +