Elliptiske kurver og kryptering



Relaterede dokumenter
Matematik YY Foråret Kapitel 1. Grupper og restklasseringe.

Opgave 1 Regning med rest

Camp om Kryptering. Datasikkerhed, RSA kryptering og faktorisering. Rasmus Lauritsen. August 27,

Køreplan Matematik 1 - FORÅR 2005

Note omkring RSA kryptering. Gert Læssøe Mikkelsen Datalogisk institut Aarhus Universitet

Matricer og lineære ligningssystemer

Kryptologi og RSA. Jonas Lindstrøm Jensen

RSA Kryptosystemet. Kryptologi ved Datalogisk Institut, Aarhus Universitet

Note om endelige legemer

Note omkring RSA kryptering. Gert Læssøe Mikkelsen Datalogisk institut Aarhus Universitet

Talteori. Teori og problemløsning. Indhold. Talteori - Teori og problemløsning, marts 2014, Kirsten Rosenkilde.

Spilstrategier. 1 Vindermængde og tabermængde

Selvstudium 1, Diskret matematik

Talteori: Euklids algoritmer, modulær aritmetik

KRYPTOLOGI ( Litt. Peter Landrock & Knud Nissen : Kryptologi)

Vi indleder med at minde om at ( a) = a gælder i enhver gruppe.

Talteori. Teori og problemløsning. Indhold. Talteori - Teori og problemløsning, august 2013, Kirsten Rosenkilde.

Matematikken bag kryptering og signering NemID RSA Foredrag i UNF

Mordell s Sætning. Henrik Christensen og Michael Pedersen. 17. december 2003

Kryptering kan vinde over kvante-computere

2. Gruppen af primiske restklasser.

Matematikken bag kryptering og signering RSA

Kryptologi 101 (og lidt om PGP)

De rigtige reelle tal

Integer Factorization

Elliptiske kurver. kryptering, digital signatur og det diskrete logaritmeproblem. Bachelorprojekt i matematik Tobias Ansbak Louv

Algebra - Teori og problemløsning

Projekt 7.9 Euklids algoritme, primtal og primiske tal

6. december. Motivation. Internettet: Login til DIKU (med password) Handel med dankort Fortrolig besked Digital signatur

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.

Besvarelser til Calculus og Lineær Algebra Globale Forretningssystemer Eksamen - 8. Juni 2015

sætning: Hvis a og b er heltal da findes heltal s og t så gcd(a, b) = sa + tb.

Eulers sætning Matematikken bag kryptering og signering v.hj.a. RSA Et offentlig nøgle krypteringssytem

Konfidentialitet og kryptografi 31. januar, Jakob I. Pagter

Af Marc Skov Madsen PhD-studerende Aarhus Universitet

RSA-kryptosystemet. RSA-kryptosystemet Erik Vestergaard

Sikre Beregninger. Kryptologi ved Datalogisk Institut, Aarhus Universitet

Assembly Voting ApS. Kompagnistræde 6, København K CVR:

Københavns Universitet, Det naturvidenskabelige Fakultet. Afleveringsopgave 1

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Matematik og IT Anton Vilhelm Wiinstedt Clausen 3.b Studieretningsprojekt Numeriske metoder Frederiksberg Tekniske gymnasium 13/

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Fejlkorrigerende koder, secret sharing (og kryptografi)

Indhold. 1 Indledning Baggrund... 2

Kvadratiske matricer. enote Kvadratiske matricer

Moderne kryptografi. Olav Geil Institut for Matematiske Fag Aalborg Universitet. Elektronik og IT-Gruppen 24. april 2008

Besvarelser til Calculus og Lineær Algebra Globale Forretningssystemer Eksamen - 3. Juni 2014

Besvarelser til Lineær Algebra Ordinær Eksamen - 5. Januar 2018

Matematikken bag kryptering og signering RSA

Talteoriopgaver Træningsophold ved Sorø Akademi 2007

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Teoretiske Øvelsesopgaver:

Lineære differentialligningers karakter og lineære 1. ordens differentialligninger

Noter om komplekse tal

Algebra2 Obligatorisk opgave

Undersøgende aktivitet om primtal. Af Petur Birgir Petersen

Ide med Diff. Mål. Tidsplan. 1.uge: 2.uge:

Løsning af simple Ligninger

Divisorer. Introduktion. Divisorer og delelighed. Divisionsalgoritmen. Definition (Divisor) Lad d og n være hele tal. Hvis der findes et helt tal q så

Fredag 12. januar David Pisinger

Affine - et krypteringssystem

Kursusgang 3: Autencificering & asymmetrisk kryptering. Krav til autentificering. Kryptering som værktøj ved autentificering.

Datastrukturer (recap)

Eksempel 9.1. Areal = (a 1 + b 1 )(a 2 + b 2 ) a 1 a 2 b 1 b 2 2a 2 b 1 = a 1 b 2 a 2 b 1 a 1 a 2 = b 1 b 2

Hyperelliptisk kurve kryptografi

Elliptisk Kurve Kryptografi. Jonas F. Jensen

TALTEORI Wilsons sætning og Euler-Fermats sætning.

Besvarelser til Lineær Algebra Ordinær Eksamen Juni 2017

Fejlkorligerende køder Fejlkorrigerende koder

Hvordan kryptering af chat, mail og i cloud services og social networks virker

Introduktion til Kryptologi

Noget om en symmetrisk random walks tilbagevenden til udgangspunktet

Afstande, skæringer og vinkler i rummet

Datastrukturer (recap)

Simpel opsætning og brug af Sikker Mail.

t a l e n t c a m p d k Talteori Anne Ryelund Anders Friis 16. juli 2014 Slide 1/36

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer.

Afstande, skæringer og vinkler i rummet

Videregående Algoritmik. Version med vejledende løsninger indsat!

Spilstrategier. Indhold. Georg Mohr-Konkurrencen. 1 Vindermængde og tabermængde 2. 2 Kopier modpartens træk 4

Besvarelser til Lineær Algebra Ordinær eksamen - 6. Juni 2016

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n+logn logn (logn) 7 (3/2) n

Besvarelser til Calculus Ordinær Eksamen - 5. Januar 2018

Et udtryk på formena n kaldes en potens med grundtal a og eksponent n. Vi vil kun betragte potenser hvor grundtallet er positivt, altså a>0.

1 Om funktioner. 1.1 Hvad er en funktion?

Danmarks Tekniske Universitet

Analyse 2. Gennemgå bevis for Sætning Supplerende opgave 1. Øvelser. Sætning 1. For alle mængder X gælder #X < #P(X).

Fejlkorligerende køder Fejlkorrigerende koder

Noter til kursusgang 8, IMAT og IMATØ

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.

Primtalsfaktorisering - nogle nye resultater og anvendelser Regionalmøde Haderslev, 19. november 2003

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)

Affine rum. a 1 u 1 + a 2 u 2 + a 3 u 3 = a 1 u 1 + (1 a 1 )( u 2 + a 3. + a 3. u 3 ) 1 a 1. Da a 2

1 Sælgeroplysningsskema Bygningssagkyndig udfylder...2

Danmarks Tekniske Universitet

Noter til Perspektiver i Matematikken

Fable Kom godt i gang

Besvarelser til Calculus Ordinær Eksamen Juni 2018

Kapitel 4 Løkker i C#

6. RSA, og andre public key systemer.

Transkript:

Elliptiske kurver og kryptering Henrik Lunding Nielsen, 0081795 5. august 011 Abstract This study investigates the subject of elliptic curves and how they are used in cryptography. Also an application to perform the Die-Hellman key exchange is included. First, the method called Index Calculus is discussed. Next more general methods to nd discrete logarithms is described in section 3. Section 4 presents an application to establish a common key between two parts, Alice and Bob, and nally a method to create a digital signature using elliptic curves is described, as well as another application of elliptic curves, ECIES. Most methods of cryptography that utilizes elliptic curves rely on the diculty of nding discrete logs. The security of these methods can be compromised by solving these discrete logs. But if the elliptic curves and points on them are cleverly chosen large enough), solving the discrete logs takes an enormous amount of time. In practise, its impossible to solve these discrete logs using any known method to date. 1

Indhold 1 Indledning 3 Index Calculus 3.1 Smooth Numbers......................... 3. Algoritme SEDL......................... 7.3 Kørselstiden for SEDL...................... 10 3 Andre algoritmer til diskrete logaritmer 17 3.1 Baby step, Giant step....................... 17 3. Pollard's ρ-metode........................ 19 4 Program: Die-Hellman nøgleudveksling 4.1 Teori................................ 4. Klasser............................... 3 4.3 Opsætning............................. 3 4.4 Eksempel på anvendelse..................... 4 4.5 Kendte problemer......................... 5 5 Andre anvendelser i kryptering 5 5.1 ElGamal Digital signatur..................... 5 5. ECIES............................... 7 6 Bibliogra 9

1 Indledning Kryptogra er nok den del af algebraen der har fundet størst praktisk andvendelse. Hver gang følsomme data sendes er der oftest en form for kryptering forbundet. Elliptiske kurver har fundet indpas i kryptering og er nu et af de primære værktøjer. Styrken i mange kryptosystemer ligger i sværheden af det diskrete logaritmeproblem. Eg. lad p være et primtal, og a, b være heltal med a 0 b mod p). Antag yderligere at der ndes et k N sådan at a k b mod p) 1) Problemet er så at nde k. Hvis tallene er store kan det ikke klares i noget overskueligt tidsrum med nogen metode vi kender i dag). Metoden kaldet Index Calculus er den bedst kendte til nde diskrete logaritmer over F p. Men denne metode virker ikke over elliptiske kurver. Index Calculus I dette afsnit beskrives den bedst kendte metode til at nde diskrete logaritmer i F p ). Den kræver at elementerne kan primfaktoriseres. Vi skal benytte os af Smooth Numbers, og der præsenteres den hurtige algoritme til af nde disse diskrete logaritmer. π bliver brugt som funktionen, der giver antallet af primtal op til et givent tal, f.eks. π11) = 5. Derudover benyttes og)-, Og)- og Θg)-notation hvor g er positiv for store x): f = Θg) c, d R + : cgx) fx) dgx) for store x f = Og) c R + : fx) cgx) for store x f = og) fx) gx) 0.1 Smooth Numbers for x Denition.1. Antag m N og y R +. Hvis alle primtal, der går op i m højst er y, så siges m at være y-smooth. Og hvis 0 y x, så deneres Ψy, x) til at være antallet af y-smooth tal mindre end eller lig x: Ψy, x) := {m N m x, m y-smooth} for 0 y x 3

Theorem.. Lad y : R + R + være en funktion af x, sådan at: Så gælder for stort x at: y log x og log x for x Ψy, x) x exp 1 + o1)) log x ) log log x Bevis. Vi ser først, at Ψy, x) giver mening fordi y y log x = x for stort x. Vi skriver u := log x = u + δ hvor u er u rundet ned, og 0 δ < 1. Nu deler vi så primtallene og 1), der er højst y, op i to mængder: V = {p primtal p y δ /} {1} ) W = {p primtal y δ / < p y} 3) Bertrands postulat 1 siger, at for ethvert m N gælder at πm) πm/) >. Så har vi: m 6 log m Denér nu mængden: W = {p primtal y δ / < p y} = πy) πy δ /) πy) πy/) > 1 y 6 = 1 y log x 6 log x = 1 y y u u for stort x da ) 4) log x 6 log x S := {w 1 w...w u v w 1, w,..., w u W indbyrdes forskellige, v V } ) W Det ses at S indeholder V elementer, der alle er y-smooth da alle u primfaktorerne w 1,..., w u, v højst er y). Desuden er tallene heri højst x: w 1 w...w u v max{w W }) u max{v V } u yδ y yu = y log x = x 1 Se Victor Shoup: A Computational Introduction...), Theorem 5.8 4

Her blev brugt at alle w W højst er y, og at alle v V højst er yδ ; se ) og 3)). Så alle s S er i mængden {m N m x, m y-smooth}. Men så må Ψy, x) S. Ψy, x) S = W u ) V = W u W 1 u 1 W W u 1)... V u 1 ) u ) u W W V V for stor x så u 1) u u W W 1 W u 1) Anden sidste ulighed gælder fordi... fordi u u 1 1 W u u for stort x pr. 4))). Da W 1 y log x, 4), og u = kan vi omskrive lidt mere: 6 ) u W Ψy, x) V u ) u y V 1u ) u δ y = V 1 log x Når vi tager logaritmen får vi: ) u δ y logψy, x)) log V ) 1 log x = u δ) log 1 log log x) + log V = u u log 1 u log log x δ + δ log 1 + δ log log x + log V = log x u log log x + log V δ ) + Ou + log log x) 5) Chebyshev's theorem x siger, at πx) = Θ logx)). Det vil sige: ) y V = πy δ δ / /) + 1 = Θ logy δ /) Se Victor Shoup: A Comptational Introduction...), Theorem 5.1 5

Så for en konstant C gælder, at når x er stor, så er: ) C y δ = C yδ / logy) C yδ / yδ V logy δ /) yδ C 1 V 1 y ) δ C log log log V δ 0 ) log V δ C log log log ) C = log 1 log log for stort x obs: log er positiv når x er stor nok). Vi har nu at log V δ er en Olog )-funktion. Vi bruger dette sammen med lemma.3 til at konkludere at log V δ )+Ou+log log x) er en ou log log x)-funktion. Vi fortsætter så udregningerne fra 5): logψy, x)) log x u log log x + log V δ ) Men dette betyder netop: + Ou + log log x) = log x u log log x + ou log log x) = log x + 1 + o1))u log log x Ψy, x) x exp 1 + o1))u log log x) Lemma.3. Hvis en funktion f er en Ou + log log x)- eller en Olog )-funktion, så er f en ou log log x)-funktion. Bevis. Antag først at f er en Ou + log log x)-funktion så fx) cu + log log x) når x er stor). Så får vi at: fx) u log log x cu + log log x) u log log x cu = u log log x c = log log x + c u 0 6 + c log log x u log log x for x

Og dermed er fx) = ou log log x) Antag nu at f er en Olog )-funktion. Så udledes på samme måde: fx) c log u log log x u log log x = c log log x ) u u log log x c log log x = u log log x c log u u log log x = c u log u c u log log x 0 for x. Algoritme SEDL Her beskrives en algoritme, kaldet SEDL split exponent discrete logarithm), der kan løse diskrete logaritme på subexponential tid. Input til algoritmen er p og q primtal samt γ og α hvorom følgende gælder: q p 1) og q p 1 =: m q 6) γ Z p genererer undergruppen {γ n 1 n q} =: G af orden q 7) α G 8) Algoritmen returnerer det x som opfylder α = γ x. Algoritmen starter således: 1) Lad y være et heltal mindre end p senere nder vi ud af at vælge y bedre, så algoritmen bliver hurtigere) ) Lad p 1, p,..., p k være primtallene op til y Så nu har vi at p 1 < p <... < p k y p. 3) Sæt endvidere π i = [p i ] p Z p. Så π i er restklassen der indeholder p i. 4) For alle i {1,,..., k + 1} gentag 5)-7): 5) Vælg r i, s i {0,..., q 1} og δ i Z p tilfældigt 6) Beregn δ i = δ i q, mi = repγ r i α s i δ i ) Her er rep) en funktion der giver representanten af klassen, der er positiv, og tættest på 0. f.eks rep[i] p ) = i hvis 0 i < p). Nu giver Lemma.5 at γ r i α s i δ i er tilfældig i Z p; så repræsentationen m i er også tilfældig i {1,,..., p 1}. 7) Forsøg at primfaktorisere m i med p 1,..., p k. Start over fra 5) hvis det mislykkedes med samme i) 7

Så nu har vi m i = p e i,1 1 p e i,...p e i,k k for i = 1,,..., k + 1. Dvs: γ r i α s i δ i = [m i ] p = [p e i,1 1 p e i,...p e i,k k ] p = [p 1 ] e i,1 p [p ] e i, p...[p k ] e i,k p = π e i,1 1 π e i,...π e i,k k 9) 8) Lad ν i = e i,1,..., e i,k ) Z k, og ν i = [e i,1 ] q, [e i, ] q,..., [e i,k ] q ) Z k q for i = 1,,..., k + 1 Z k q er et vektorrum. Så ν 1, ν,..., ν k+1 er lineært afhængige. Så der ndes c 1, c,..., c k+1 {0, 1,..., q 1} hvor ikke alle er 0, sådan at: [0] q = [c 1 ] q ν 1 + [c ] q ν +... + [c k+1 ] q ν k+1 10) 9) Benyt udvidet Gauss-elimination på ν 1 T, ν T,..., ν k+1 T ) for først at nde nulrummet for denne matrice, og derefter et ikke-trivielt) sæt c 1, c,..., c k+1 hvor ovenstående er opfyldt. Husk at ovenstående 10) er en vektor med k indgange. Den j'te indgang er: [0] q = [c 1 ] q [e 1,j ] q + [c ] q [e,j ] q +... + [c k+1 ] q [e k+1,j ] q = [c 1 e 1,j + c e,j +... + c k+1 e k+1,j ] q qz c 1 e 1,j + c e,j +... + c k+1 e k+1,j =: e j 11) Og så må c 1 ν 1 + c ν +... + c k+1 ν k+1 = e 1, e,..., e k ) qz k. 10) Denér nu r := k+1 i=1 c ir i, s := k+1 i=1 c is i, δ := k+1 i=1 δc i i. Så får vi ved at benytte 9)): γ r α s δ = γ k+1 i=1 c ir i α k+1 i=1 c is i k+1 i=1 i=1 i=1 k+1 i=1 c k+1 ie i,1 i=1 1 π c ie i, k+1 δ c i i = γ c ir i α c is i δ c i i i=1 k+1 k+1 = γ r i α s i δ i ) c i e = π i,1 1 π e i,...π e ) i,k ci k = π = π e 1 1 π e...π e k k...π k+1 i=1 c ie i,k k Vi skriver nu H := {x q x Z p}. Da e i 'erne var et multiplum af q det har vi fra 11)), må π e i i og dermed π e 1 1 π e...π e k k være et element fra H. Og vi ved q også at δ H da alle δ i = δ i H), og så må γ r α s H. Men vi ved fra lemma.5 at γ r i α s i G og dermed γ r α s G, så der må gælde at γ r α s G H = {1} γ r α s = [1] p lemma.4). 8

11) Hvis s 0 mod q) stopper algoritmen fejl!) Sandsynligheden for at algorimen stopper her er 1 hvilket er acceptabelt q da q typisk er meget stor). Dette vil dog ikke blive vist her. Se evt. Victor Shoup's: A Computational Introduction...), Lemma 15.. Så antag nu, at s 0 mod q). Så hvis vi denerer s := s q, så er [s ] q det inverse element af [s] q fordi ss q = s q 1 1 mod q) pr Fermats lille sætning). Sagt på en anden måde, ss = nq + 1 for et naturligt tal n. [1] p = γ r α s [1] p = γ rs α ss = γ rs α q ) n α = γ rs α α = γ rs Hvor α q = [1] p følger af, at α G og ordg) = q Så rs er den diskrete logaritme af α mht. γ 1) Returner rs Lemma.4. Hvis G er givet som i 7), og H = {x q x Z p} for samme primtal p og q, der opfylder 6), så er ordh) = m og G H = {[1] p } hvor m = p 1 q ) Bevis. Z p er cyklisk 3 og har endelig orden p 1. Der gælder Z p = Z q Z m hvor m q pr. 6)). Og der ndes netop én subgruppe, som har p 1 = m som q orden, og denne gruppe er netop {x q x Z p} = H se 4 ). Så ordnen af H er m. Alle elementer g G, h H opfylder ordg) ordg) = q og ordh) ordh) = m, fordi ordnen af et gruppeelement deler ordnen af gruppen, men det vil sige at et element a G H har en orden der deler både q og m. Men så skal vi hvertfald have at orda) gcdq, m) = 1 fordi q er et primtal og q m). Så ordnen af alle elementer i G H er 1, men det er jo kun [1] p der har orden 1. Dvs: G H = {[1] p }. Lemma.5. Lad p og q primtal samt γ og α opfylde 6), 7), 8) og lad u, v {0, 1,..., q 1} og w Z p være tilfældige. Så gælder der at γ u α v G og at γ u α v w q er tilfældig i Z p 3 Se Victor Shoup: A Computational Introduction...), Theorem 7.8 4 Se Victor Shoup: A Computational Introduction...), Theorem 6.3ii) 9

Bevis. Lemma.4 giver at H har orden m := p 1 q. I første del vises, at w q er tilfældig i H. Lad x være en generator for Z p der ndes en, da Z p er cyklisk). Så er x s = w for et tal s, som vi kan skrive s = nm + l, for heltal n, q der opfylder 0 n < q og 0 l < m. Vi regner på w q og bruger at x np 1) = [1] q fermats lille sætning): w q = x sq = x nm+l)q = x nmq+lq = x np 1) x lq = x q ) l Så w q er altså en af elementerne x q ) 0, x q ) 1,..., x q ) m 1. Alle disse er forskellige, og de er indeholdt i H := {x q x Z p}. Men da ordh) = m, må de præcist udgøre H. w var tilfældig i Z p. Dermed må s være tilfældig i {0, 1,..., p } jeg tillader mig at skrive tilfældig, selvom s afhænger af w. Det der menes er, at man kan skabe et tilfældigt s ved at lade w være tilfældig og derefter nde det tilsvarende s). Men så er l også tilfældig i {0, 1,..., m 1}. Og så må x q ) l = w q være tilfældig i H. Nu kigger vi på γ u α v = γ u γ z = γ u+z for et tal z. Det er nok at vide at u er tilfældig i {0, 1,..., q 1} og at ordg) = q for at indse, at γ u+z = γ u α v er tilfældig i G. Vi får nu vha 5 ) og lemma.4), at afbildningen ρ : G H Z p givet ved ρg, h) = gh er en isomor og dermed injektiv. Så ρ sender over i qm = p 1 forskellige elementer i Z p. Men da der kun er p 1 elementer heri, må ρ være bijektiv. Så hvis man vælger et g G og h H tilfældig vil gh også være tilfældigt i Z p. Men så er ργ u α v, w q ) = γ u α v w q tilfældig i Z p, som skulle vises..3 Kørselstiden for SEDL Hvad er den forventede kørselstid for algoritmen? At teste om et tal m i er y-smooth tager Ok len p) c ) tid der er k primtal), antal y-smooth tal mindre end p for en konstant c, og hvis vi lader σ = = p 1 Ψy,p 1) være sandsynligheden for at et tilfældigt tal mindre end p er y- p 1 smooth, må vi forvente at skulle gentage testen med nye m i 'er σ 1 gange, før vi nder et, som er y-smooth; så vi forventer at det tager O k len p)c) tid at σ nde et m i, der er y-smooth. Da dette gentages for i = 1,,..., k må den endelige forventede kørselstid for første del af algoritmen være O len σ p)c ) k. 5 Se Victor Shoup: A Computational Introduction...), Theorem 6.5 10

Næste del af algoritmen er en udvidet) gauss-elimination af matricen: [e 1,1 ] q [e,1 ] q... [e k+1,1 ] q [e 1, ] q [e, ] q... [e k+1, ] q............ [e 1,k ] q [e,k ] q... [e k+1,k ] q Vi nder derved nulrummet for ovenstående matrice som ikke kun består af 0). Så vi tager et ikke-trivielt c 1, c,..., c q ) fra nulrummet, sådan at c 1 [ ν 1 ] q + c [ ν ] q +... + c k+1 [ ν k+1 ] q = 0. Denne Gauss-elimination tager Ok 3 len p) c ) tid, da vi skal regne på elementer fra Z q. Olen p) c ) er tiden det tager at nde en representant for [ ν i ] q ). Den forventede kørselstid for algoritmen skal være positiv, så vi kan skrive: ) ) k k E[Z] σ + k3 Olen p) c ) = σ + k3 len p) O1) Lad os nu antage at vi i starten valgte y < p således: yp) = exp log p) λ+o1)) for λ ]0, 1[ 1) Vi kan yderligere antage at p er stor, og så følger kørselstiden som funktion af p) af theorem.8. Til dette skal vi bruge lemma.7: Lemma.6. sublemma til.7) Hvis et tal y skrives i n-talssystemet som x 1 x...x k, så gælder at: loglen y) O1) ) = O1) log + o1) Bevis. Hvis y er skrevet i n-talssystemet må der gælde at len y = k = log n y + 1 hvor er en funktionen der runder ned til nærmeste hele tal. Vi kan så omskrive len y: len y = log n y + 1 = log n y log n y log n y ) + 1 = log n y + O1) = log n y) 1 + O1) ) log n y = log n y)1 + o1)) log log n Lad nu f være følgende O1)-funktion: fy) := 1. Så får vi: loglog log n y) = ) log log n = log log log n = fy) log = log) fy) ) log n y = 11

) fy) = ) O1). Dette benytter vi til at regne videre og husker samtidig at x c 1 når x 1 hvis c er en konstant eller en O1)-funktion)): len y = ) O1) 1 + o1)) len y) O1) = ) O1)O1) 1 + o1)) O1) = ) O1) 1 + o1)) log len y) O1)) = log ) O1) 1 + o1)) ) = log ) O1)) + log1 + o1)) = O1) log + o1) Lemma.7. Lad p være et stort primtal loglogp)) 1), og lad y og σ opfylde: y < p 13) = log p) λ+o1) for et λ ]0, 1[ 14) Ψy, p 1) σ = p 1 15) Lad så k = πy) være antallet af primtal op til y. Hvis vi så har en algoritme med forventet kørselstid ) k E[Z] σ + k3 len p) O1) 16) Så gælder der om kørselstiden at: )) log p E[Z] exp 1 + o1)) max log log p +, 3 17) Bevis. Vi benytter 14) samt lemma.6, så: log len p) O1)) log len p) O1)) log p = = O1) log log p + o1) log p) λ+o1) 0 for p O1) log log p + o1) log p) 1 λ o1) 0 for p 1

Sammenholdes dette, får vi: log len p) O1)) ) 0 for p min, log p log len p) O1)) = o min, log p )) Dette resultat skal vi bruge senere. 18) Se nu på k = πy) ) ifølge antalgelsen). Chebyshev's theorem giver os at y k = πy) = Θ ; dvs. c, d : c y k d y hvis y er stor nok. ) Se samtidig at for et z konstant er log z y = log z + log = ) ) = )1 + o1)), og derfor får vi: log z+ log log c y ) log k log d y ) )1 + o1)) log k )1 + o1)) log k = )1 + o1)) 19) Her er alle tre o1)-funktioner forskellige). Dette resultat skal også bruges senere. Antagelse 14), giver os at = log p) λ+o1). Dvs: ) y log p = y y λ+o1) 1 λ+o1) ) = for p 1/λ+o1)) log p = log p log p) = log λ+o1) p)1 λ o1) for p Så gælder ifølge Theorem. at: Ψy, p) p exp 1 + o1)) log p ) log log p Pr. antagelse 13) er y < p, og da p er et primtal kan p ikke være y- smooth. Så kan 15) omskrives, ved også at benytte ovenstående udtryk for 13

Ψy, p): Ψy, p 1) σ = = p 1 Ψy, p) p 1 Ψy, p) p 1 + o1)) log p log log p ) p exp p = exp 1 + o1)) log p ) log log p 0) Nu regner vi på k og σ k3. Vi starter ud med at bruge 19) og 0), og denerer u = + log p log p log log p, v = 3 og w = + log log p Mest for at gøre senere udregninger overskuelige): k exp log k) = 1) σ σ exp1 + o1)) ) ) exp 1 + o1)) log p log log p = exp 1 + o1)) 1 + o1)) log p ) log log p = exp u + o1) + o1) log p ) log log p expu + o1)w) ) k 3 = exp3 log k) = exp31 + o1)) ) = expv + o1) ) expv + o1)w) 3) Bemærk at ved tredje lighedstegn skiftede en o1)-funktion fortegn. Og ved anden ulighed er der en helt ny o1)-funktion, valgt til at være maximum af de to foregående. Nu kan vi begynde at omskrive den forventede kørselstid, 16): ) ) k k E[Z] σ + k3 len p) O1) max σ, k3 len p) O1) Ved at vælge en større O1)-funktion kan vi fjerne -tallet. Herefter indsættes 14

) og 3): ) k E[Z] max σ, k3 len p) O1) maxexpu + o1)w), expv + o1)w))len p) O1) = expmaxu + o1)w, v + o1)w))len p) O1) expmaxu, v) + o1)w)len p) O1) = exp maxu, v) + o1)w + log [ len p) O1)]) = exp maxu, v) 1 + o1)w + log [ len p) O1)] )) maxu, v) 1 + o1)w + log [ len p) O1)] )) exp maxu, v) u 4) Ved tredje ulighed vælges igen en ny o1)-funktion, som maksimum af de to gamle. Lad os nu vise, at o1)w og loglen p)o1) ) er o1)-funktioner. Den første u u er let - indsæt blot hvad u og w er deneret til: o1)w u = log p + log log p o1) o1) 0 + log p log log p for p Til loglen p)o1) ) som er positiv) skal vi bruge 18) og u's denition): u log )) len p) O1)) o min, log p = u + log p log log p )) o min, log p + log p )) o min, log p ) 0 for p min, log p ved første ulighed bruges antagelsen loglogp)) 1) Dermed er o1)w+loglen p)o1) ) u en o1)-funktion, og 4) kan skrives: E[Z] expmaxu, v)1 + o1))) Indsættes udtrykkene fra u og v's denition får vi 17). Dette slutter beviser for lemma.7. 15

Som udtryk for SEDL's kørselstid har vi nu: )) log p E[Z] exp 1 + o1)) max log log p +, 3 5) Vi vil minimere max)-funktionen. Hvis vi lader µ :=, A := log p log log p, S 1 := A + µ og S µ := 3µ, så skal vi bare minimere maxs 1, S ): ds 1 dµ = A A µ + = 0 µ min = d S 1 dµ = A > 0 µ µmin µ 3 min er et minimum min Så S 1 µ min ) = A A A + = 8 A er den mindste værdi S 1 antager. A Og da S µ min ) = 3 = 9 A < S1 µ min ), må maxs 1, S ) også være minimeret ved µ min. Nu kan vi isolere y: = µ min = 1 1 A = log p log log p ) 1 y = exp log p log log p) 1 / 6) men y skulle have formen exp log p) λ+o1)) 1). Dette indser vi at den har ved at vælge et λ og en o1)-funktion f sådan at exp log p) λ+f) = 1 exp log p log log p) /) 1. Start ud med at vælge λ = 1 og f: ) log 1 log log p) 1 / f := log log p f er positiv for store p, og vi må have at f f er en o1)-funktion. Derudover gælder: ) log 1 log log p) 1 / f = log log p log log p) f) = f log log p = log log log log p log log p 0 for p. Dvs ) 1 log log p) 1 / log p) f = 1 log log p) 1 / exp log p) ) ) 1 /+f 1 = exp log p log log p) 1 / 16

Så den er god nok! Indsæt y 6) i max-funktionen: ) log p max log log p +, 3 log = max p log log p) 1/ + ) 3 log p log log p) 1 /, log p log log p) 1 / = max ) 3 log p log log p) 1 /, log p log log p) 1 / = log p log log p) 1 / Ved at indsætte dette i 5) får vi: Theorem.8. Den forventede kørselstid for algoritme SEDL opfylder: E[Z] exp ) + o1))log p log log p) 1 / 7) Hvis vi i 1) antog at y havde en anden form, ville vi ikke kunne være sikker på at 5) holder. Vi har kun fundet en øvre grænse for tiden, men det er en øvre grænse der er bedre end den tid nedenstående algoritmer tager. 3 Andre algoritmer til diskrete logaritmer Hvis G er en mere generel gruppe af orden højst N, samt P, Q G hvor P k = Q for et k kan vi ikke bruge ovenstående metode til at nde k. Algoritmerne i dette afsnit er i stand til at nde logaritmer i disse grupper, men de er til gengæld ikke lige så hurtig som Index Calculus. Da det er elliptiske kurver vi ser på hvis komposition skrives '+') skriver vi fremover kp = Q istedet for P k = Q. 3.1 Baby step, Giant step Denne algoritme kan bruges hvis G er cyklisk. For simpelhed skyld antages at P er en generator for G ellers kan vi erstatte G med undergruppen genereret af P Q er netop også i denne undergruppe)) Denne algoritme kræver N tid og N plads. Først skal man nde et N der er større eller lig ordnen af G man kender højst sandsynligt ikke ordenen af G). Når vi regner med elliptiske kurver kan vi bruge Hasse's theorem: Theorem 3.1 Hasse's). Hvis E er en elliptisk kurve over F q, så gælder at ordnen af gruppen EF q ) opfylder: q + 1 ord EF q )) q 17

For et bevis, se Lawrence C. Washington: Elliptic Curves, Number Theory and Cryptography, Second edition s. 97-10. Dette giver os at: q + 1 ordef q )) q q + q + 1 ordef q )) q + 1 ordef q )) q q q + 1 ordef q )) Det fremgår heraf at vi kan vælge N større end ordnen af gruppen ved N := q + q + 1. Ydermere gælder der så at: N ordef q )) q + q + 1 q + q + 1 1 for q N ordef q )) q + q + 1 q q + 1 1 for q N Så der må ligeledes gælde at 1 for q, så N ordef ordef q)) q)) N er asymptotisk lig med ordnen af EF q )) Så for eliptiske grupper kan vi let nde et N der er mindst ordnen - endda et N der er asymptotisk lig med ordnen af gruppen. For andre cykliske grupper er det ikke sikkert det er lige så let. Man kan her blive nød at gætte. Hvis gættet er for lavt er der en risiko for at algoritmen ikke returnerer logaritmen, men så kan man blot lave et nyt gæt her er det smartest blot at fordoble ens første gæt). At N er for lav får ikke algoritmen til at returnere en forkert logaritme, men det kan være den slet ikke returnerer noget. Algoritmen kører således: 1. Vælg eller gæt) et N, der er mindst ordnen af gruppen ved eliptiske kurver, som beskrevet ovenfor). Sæt b = N og R = b P ) 3. Beregn, gem og sorter 6 en liste med elementerne {0, P, P,..., b 1)P } Først gemmes det neutrale element 0 P = for elliptiske kurver) i starten af listen, og herefter lægges P til igen og igen baby steps) indtil vi har hele listen - så vi benytter hele tiden det forrigt udregnede element: i 1)P + P = ip. 4. Beregn, gem og sorter en liste med elementerne {Q, Q+R, Q+R, Q+ 3R,..., Q + b 1)R}. Metoden er ligesom før: Start med Q, og læg R til igen og igen giant steps) 6 Ved elliptiske kurver kan man f.eks. sortere via x-koordinaterne 18

5. Gennemløb listerne for at lede efter efter to ens. Hvis vi i 5. skridt nder et match, så har vi i og j så ip = Q + jr. Da Q = kp og R = b P ) kan vi omskrive til ip = kp + jb P ) = k jb)p. Dvs vi har k = i + jb hvor 0 i, j < b), som vi returnere i skridt 6. Hvis vi i 5. skridt ikke nder et match er det fordi N ikke er stor nok. Der vil altid være et match hvis N er mindst ordnen af gruppen: Vi kan nemlig skrive Q = kp = k 1 b+k 0 )P for nogle heltal k 0, k 1 der opfylder 0 k 0, k 1 < b det kan vi fordi k {0, 1,..., N 1} vi antage at k er mindre end ordnen af gruppen)). Men det medfører at k 0 P = Q k 1 bp = Q + k 1 R. Og k 0 P og Q + k 1 R ndes netop i første henholdsvis anden liste så der vil altså være et match) 6. Returner i + jb kun hvis der fandtes et match. Ellers skal der laves et nyt gæt og startes forfra - man kan her beholde de to lister og arbejde videre med dem, så man ikke starter forfra igen) I. skridt skal man nde den inverse til P. I EF q ) er dette nemt - elementet skal blot spejles i x-aksen. Ved generelle grupper kan det måske være et problem. Hvis ikke man kan klare dette på Ob) tid ryger idéen med algoritmen i vasken. Men hvis det lykkedes kræver alle skridt i algoritmen højst et antal udregninger der er proportional til b = N. 3. Pollard's ρ-metode Pollards ρ-metode er probabilistisk, hvilket vil sige, at der er meget høj sandsynlighed for at den giver et resultat på den krævede tid O N)). Baby- og giantstep-metoden er derimod deterministisk, så man er garanteret på at få et resultat på O N) tid. Idéen med denne metode er, at 'spring' rundt fra element til element vha en funktion der opfører sig 'tilfældigt'), og hvert nyt element skal kunne udtrykkes som ap + bq for nogle a, b N. Hvis fremover N er ordnen af G, skal der højst N spring til, før vi har en kollision med et tidligere element, som vi kan opdage, hvis vi har gemt alt indtil dette punkt. Vi har så to udtryk for det samme element og: ap + bq = cp + dq. Dvs a + bk)p = c + dk)p a + bk c + dk mod N) hvorefter k ndes mere om det senere). Det lyder som om ovenstående tager både ON) tid og plads, men rent faktisk tage det kun O N) tid og plads probabiblistisk). Derudover kan den krævede plads komme helt ned på O1) ved at benytte en metode udviklet af R. W. Floyd, men lad os nu først beskrive metoden i dybden: 19

Vi skal bruge en funktion f, der opfører sig tilfældigt over G - Vi har ikke tid eller plads til på forhånd at lave N terningekast for at nde ud af hvad f skal sende hvert x G over i. Vi gør det næstbedste: denerer f vha en gaelfunktion som f.eks. denne: fx) := x + M 1 hvis x S 1 x + M hvis x S...... x + M s hvis x S s hvor S 1, S,..., S s er en nogenlunde ligelig) disjunkt opdeling af G, og M i := a i P + b i Q for nogle tilfældigt valgte a i og b i som vi gemmer til senere). Intuitivt kan man se, at jo større s er, jo mere tilfældig vil f se ud over G. Et godt valg af s viser sig at være omkring 0 7 ). Et større s er stort set bare spild af plads da vi jo skal holde a 1, a,..., a s, b 1, b,..., b s gemt under hele algoritmen, samt nemt kunne nde ud af hvilken af S i 'erne et element er i. Man kan også have forgreninger som f.eks. x + x eller andre udtryk, der ser tilfældige ud - Men vi skal efter springet kunne udtrykke fx) som up + vq for nogle u, v N. Det lader sig gøre i den ovenstående denerede f, fordi vi fra starten ved at x = u P + v Q for nogle u, v N; og så er fx) = u P + v Q + M i = u P + v Q + a i P + b i Q = u + a i )P + v + b i )Q for det i hvor x S i. Vi starter et sted, f.eks. ved eller et tilfældigt P 0 G som vi kan udtrykke P 0 = α 0 P + β 0 Q. Og så udfører vi spring med f: P 1 = fp 0 ), P = fp 1 ), P 3 = fp ),... Da der kun er N forskellige elementer i G vil vi på et tidspunkt springe tilbage til et tidligere element, så for nogle i 0, j 0 N vil P i0 = P j0. Det forventes at i 0 < j 0 = O N). Dette er sammenligneligt med fødselsdagsparadoxet: Hvis der er 3 mennesker i et rum, er der over 50% sandsynlighed for at to har fødselsdag samme dag. I vores tilfælde er N meget større end 365, og så forventes det at j 0 faktisk er O N). Fødselsdagsparadoxet eller dens generalisation vil ikke blive beskrevet nærmere her. Men hvis ikke vi vil gemme data om hvert eneste element vi har besøger indtil vi nder et match, skal vi gøre noget andet. Vi benytter fortsat at i 0 < j 0 er de mindste tal hvor P i0 = P j0. Der gælder for alle i i 0 vi skriver 7 Se Lawrence C. Washington: Elliptic curves, Number Theory and Cryptography, second edition, s. 148 0

i = i 0 + l) at: P i0 +l = f f... f)p } {{ } i0 ) = f f... f)p } {{ } j0 ) = P j0 +l l gange l gange P i = P i0 +l = P j0 +l = P i0 +l)+j 0 i 0 ) = P i+j0 i 0 ) for i i 0 P i = P i+nj0 i 0 ) for alle i i 0 og n N hvor sidste udtryk følger af at benytte udtrykket i midten ere gange) Så vi går faktisk i ring herfra. Floyd's metode udnytter dette til at gøre algoritmen mindre pladskrævende: Istedet for at gemme data om alle punkter vi støder på, husker vi bare på to elementer hele tiden: P i og P i og hvordan de kan udtrykkes up + vq), sådan at hvert nyt skridt i algoritmen beregner P i+1 = fp i ) og P i+1) = ffp i )). Når i er større end i 0 og er et multiplum af j 0 i 0 gælder at P i = P i+nj0 i 0 ) = P i og vi har et match! Det første i der opfylder dette er også højst j 0 fordi der ndes et tal mellem i 0 og j 0 som j 0 i 0 går op i). Så algoritmen kræver probabilistisk) O N) tid og kun lidt plads. Istedet for at benytte Floyd's metode kan man vælge kun at gemme u og v for nogle specikke elementer P i = up + vq, som skiller sig ud f.eks. at l går op i u og v for et l N derved behøver man heller ikke gemme de sidste l bits af u og v, da de alligevel er 0)). Ved at gøre dette skal algoritmen højst udføre l ekstra skridt, men tilgengæld reduceret pladskravet med en faktor l. Denne metode gør det også muligt at fordele arbejdet mellem ere processorer vha Pollards λ-metode, som bygger videre på ovenstående ρ-metode. Der er nemlig ikke noget i vejen for at ere processorer kan starte hver deres sted i gruppen, og springe rundt derfra og så sende de specielle elementer til en hovedcomputer, hvis eneste job er at sammenligne alle elementerne den får tilsendt indtil der sker et match - f.eks. mellem P = up + vq tilsendt fra én computer, og P = u P + v Q tilsendt fra en anden computer. Så er up + vq = u P + v Q Når vi nu har u, v, u og v sådan at up +vq = u P +v Q uanset hvilken metode vi brugte) så må u + vk)p = u + v k)p ved at indsætte Q = kp). Dvs, da P er en generator for G af orden N: u + vk u + v k mod N) u u v v)k mod N) 8) Så vi skal nde k så v v)k + Ny = u u for et y N). Dette kan vi gøre med Euklids udvidede algoritme hvis den største fælles divisor mellem 1

v v og N er 1. Hvis d := gcdv v, N) er større end 1 må vi istedet nde k der løser u u v v)k mod N ) her gælder der hvertfald at d gcdv v, N ) = 1). Herefter må en af elementerne d k, k,..., dk være det k der opfylder 8). Vi tjekker dem en efter en for at nde ud af hvilken en det er. d er typisk lille, så det tager ikke så lang tid) 4 Program: Die-Hellman nøgleudveksling 4.1 Teori Lad os sige, at vi har to personer, Alice og Bob, som vil nde frem til en hemmelig fælles nøgle, men de har ingen 'hemmelige' kommunikationsveje hvorigennem de kan blive enige om en sådan nøgle, uden at blive overvåget. Die-Hellmans nøgleudveksling med elliptiske kurver løser dette problem på følgende måde: 1. Alice og Bob sender information til hinanden oentligt) indtil de er blevet enige om to ting: En elliptisk kurve E over et legeme F q ), hvor det er svært at løse diskrete logaritmer, samt et punkt P på denne kurve. Alle kan se disse informationer.. Herefter nder de hver især på et hemmeligt tal, f.eks. nder Alice på a, og Bob på b 3. Alice udregner P a = ap og Bob P b = bp 4. Alice sende P a til Bob, og Bob sender P b til Alice 5. Nu kan Alice udregne abp = ap b, ligesom Bob kan det ved abp = bp a Både Alice og Bob kender nu abp, hvor eventuelle lyttere kender P a, P b, P samt E. Men udfra disse data er det svært at regne sig frem til abp. De metoder som vi kender), der kan klare det, benytter sig af at man kan beregne den diskrete logaritme. Index Calculus kan ikke bruges, og de andre metoder beskrevet i sektion 3 tager alt for lang tid hvis Alice og Bob har valgt en ordentlig elliptisk kurve. Derfor har Alice og Bob nu hemmelig viden, abp, som ingen andre kender. Herudfra kan de lave deres nøgle. Det vedlagte program udfører die- Hellman nøgleudveksling. Der benyttes ikke projektive koordinater til at repræsentere punkter, hvorfor hver addition kræver en inversion. Dette er den mere teoretiske og lidt mindre eektive) måde at regne på.