1 Kryptering 11 Vi sall 1 idag titta lite på ryptering, och mera specifit hur elliptisa urvor används i ryptering, såallad ECDSA Vi sall ocså se ett atuelt exempel på hur detta inte sall användas 12 Problemet Vi har följande problem En användare A ontatar en nätsida N Användaren vill spela ett spel som nätsidan N har producerat, och nätsidan vill ontrollera att användaren A har betalad sin licens för att spela Problemet är att en hacer H övervaar och läser av all informationsutväxling mellan A och N Så om A visar fram ett vitto, då ommer säerligen hacern H att opiera vittot På sådant sätt vill hacern H få möjlighet att spela utan att ha betalad licens, och detta tycer inte N om 13 Lösningen som används på problemet ovan är att användaren A rypterar sitt vitto på ett sätt som nätsidan N an verifiera, men som hacern H inte an deryptera Det finns flera olia sätt att ryptera, och en av de mest vanliga är att använda par av stora primtal som rypteringsnyclar, såallad RSA-ryptering Ett annat sätt är att använda elliptisa urvor, som i ECDSA 14 Elliptis urva En elliptis urva är nollställemängden till en evation på formen E = {(x, y) R 2 y 2 = x 3 + ax + b}, där a och b är givna tal En typis bild av en elliptis urva är [fig] 15 Konjugering Vi märer att om P = (p, q) är en punt på urvan E då är ocså punten (p, q) en punt på urvan E Vi har att om q 2 = p 3 + ap + p = ( q) 2, vilet betyder att urvan är symmetris om x-axeln Vi vill använda detta nedan, och inför därför notationen P för onjugatet till punten P Vi har alltså att om P = (p, q) då är P = (p, q) 16 Addition av punt Vi täner oss nu att den elliptisa urva E är given Vi vill nu göra följande geometrisa onstrution, och för detta vill vi använda oss av den typisa bilden ovan Låt P 1 och P 2 vara två punt på urvan E Vi an dra linjen L(P 1, P 2 ) genom P 1 och P 2 Denna linje L(P 1, P 2 ) sär urvan i en tredje punt Q såfremt inte P 1 och P 2 ligger på samma vertiala linje Vi låter Q vara punten som vi får om vi tar och sär urvan E med en vertial linje genom Q, det vill säga att Q = Q Vi ritar en figur för detta [fig] Fina illustrativa figurer finns under länen http://enwiipediaorg/wii/elliptic curve 1 Jag själv lärde om detta av en ollega som, anse, heter Joel Andersson 1
2 17 Tangentlinjen Om P 1 = P 2 då vill vi med linjen L(P 1, P 1 ) genom punten P 1 = P 2 mena tangentlinjen till urvan E i punten P 1 18 Oändlighetspunt Konstrutionen ovan fungerar doc inte om punterna P 1 och P 2 ligger på samma vertiala linje, vilet betyder att P 1 = P 2 För att bota detta problem sall vi föreställa oss att urvan E har en punt i oändligheten Denna punt allar vi O Vi sall täna på de vertiala linjer som merdianer på sfären; dessa linjer är parallella, men endå så möts linjerna i nordpolen Och fatis så möts de parallella vertiala linjerna ocså i sydpolen, men på den elliptisa urva E är sydpol och nordpol en och samma punt O Vi låter E 0 vara den elliptisa urvan E union oändlighetspunten O Vi definierar addition av punterna till E 0 på det sättet som vi angav i 16 Detta ger en avbildning E 0 E 0 E 0, som sicar ett par av punt P 1 och P 2 på E O till punten P 1 P 2 Exempel 19 Låt P 1 och P 2 vara två punt på urvan E Vi har att P 1 P 2 = Q, där Q ges som onjugering av punten Q som i sin tur ges av särningen av urvan E och linjen L(P 1, P 2 ) genom P 1 och P 2 Exempel 110 Låt P vara en punt på urvan E Vi sall bestämma P O Linjen L(P, O) genom P och oändlighetspunten O ges av den vertiala linjen genom P Linjen L(P, O) sär urvan E punten P där P = P Vi har att P = P = P Detta betyder att P O = P Vi ser att addera punten O till en annan punt P inte gör något Symbolen O för oändlighetspunten har inget med första bostaven i oändlighet, men refererar till begreppet noll 1101 Notera att för att erhålla P O = P var det nödvändigt att vi i definitionen av addition to onjugatet av punten Q ges som särningen av linjen L(P 1, P 2 ) och urvan E, och inte punten Q som unde tycas mera naturlig Exempel 111 Additionen av punt 16 är såpass naturlig att följande egensap håller (P 1 P 2 ) P 3 = P 1 (P 2 P 3 ), för alla punt P 1, P 2 och P 3 på urvan Vi an med andra ord slopa paranteserna vid addition av punt Exempel 112 Vi har uppenbarligen att P 1 P 2 = P 2 P 1 för alla punt P 1 och P 2 på den elliptisa urvan Exempel 113 Låt P vara en punt på urvan E, och låt P vara punten som ligger på urvan E och under samma vertiala linje som P Vi har av onstrution att linjen L(P, P ) är den vertiala linjen,
och denna linje sär urvan E i oändlighetspunten O, dvs L(P, P ) sär inte urvan E men urvan E O Vi har att O = O, och vi erhåller att P P = O Med andra ord är P den additiva inversen till P 114 Gruppen till en elliptis urva Det vi har indierad med exemplerna ovan är att punterna på den elliptisa urvan E O är med additionen en grupp, en ommutativ grupp I ECDSA använder man gruppstruturen på den elliptisa urvan för rypteringen 115 Primtalsroppar Vi har givit den elliptisa urvan E som en urva i planet R 2 I den värliga världen vill man göra situationen lite mer ändlig Detta betyder att oefficientarna till punter P på urvan E inte tillåts vara alla reella tal, men enbart element i en ändlig primtalsropp Om p är ett givet primtal så består primtalsroppen av heltalen F p = {0, 1,, p 1} Addition och multipliation ser modulo restlasserna Subtration fungerar, och då p är ett primtal vill ocså division fungera Primtalen an i pratien vara mycet stora, men för att få en änsla för primtalsroppar an man titta på små primtal Exempel 116 Primtalsroppen F 5 består av elementen {0, 1, 2, 3, 4} Addition ser modulo restlasserna, så tex är 3 + 4 lia med 2 Subtration ser på samma sät Mär att om vi vill lösa evationen 3 + x = 2 i F 5 så substraherar vi 3 från båda sidor och erhåller x = 2 3 = 1 Talet -1 finns inte med i mängden F 5, men adderar vi till 5 får vi 4 Detta betyder att 2 3 = 4, vilet ocså är lösningen till evationen 3 + x = 2 Multipliation ser ocså modulo restlasser Vi har att 4 4 = 1 då 16 = 3 5 + 1 Detta betyder ocså att 4 = 1 4 i F 5 Vi har att 2 3 = 1 vilet betyder att 3 = 1 2 och att 2 = 1 3 117 Notation Vi tar för givet att om P 1 och P 2 är punt på en elliptis urva E, och oordinaterna till P 1 och P 2 båda ligger i en primtalsropp F p, då vill ocså punten Q = P 1 P 2 ha oefficienter i primtalsroppen F p Specielt har vi att punterna på den elliptisa urvan E 0 med oefficienter i primtallsroppen F p bildar en grupp Om är ett element i primtalsroppen F p så är specielt ett heltal För varje punt P definierar P = } P P {{ P } opior 1171 Notera att om är ett nollsild tal i primtalsroppen då är ocså 1 ett heltal/element i primtalsroppen 3
4 118 Krypteringsalgoritmen Använderen A har vid betalning av licens till nätsidan N blivit eniga om en elliptis urva E 0, en primtalsropp F 5, en punt P på den elliptisa urvan, och en rypteringsnycel c Krypteringsnyceln c är ett tal i primtalsroppen F p Denna information är inte tillgänglig för andra När använderan A ontatar nätsidan N utförs följande beränigar av användare A Steg 1 Först beränas, av användare A, punten c P = Q på urvan E 0 Denna punt allas den offentliga nyceln, och sicas till nätsidan N Ved hjälp av punten Q identifierar nätsidan N vilen användere det handlar om Det vill säga vilen urva E 0, vilen punt P, och vilen rypterinsnycel c som användaren borde ha Steg 2 Användaren A sicar ett medelande till nätsidan N, typ jag vill spela Detta meddelandet blir omgjord till ett tal e Hur denna funtion fungerar är inte så vitig Det som är vitig är att talet e ändras med meddelandet Man an täna sig att meddelandet jag vill spela ocså innehåller information om locslag mm, sådan att när användaren A vill spela dagen efter vill meddelandet e vara ett annat Steg 3 En godtyclig, men stor, onstant i primtalsroppen F p väljes, och användaren A beränar P Vi låter r vara x-oordinaten till punten P = (r, r 2 ) Steg 4 Vi beränar talet s = e+cr i primtalsroppen F p 1181 Informationsutväxlingen Informationen som användare A sicar till nätsidan N är alltså punten Q, meddelandet e, och signaturen (r, s) Denna information an avläsas av en tredje part, hacern H Men, denna information an inte återanvändas 119 Verifieringsalgoritmen När användaren A ontatar nätsidan N ommer det besed om offentlig nycel Q, meddelandet e och slutligen bifogas signaturen (r, s) Den offentliga nyceln identifierar vem den tänta användaren borde vara, och slutligen ontrollerar nätsidan N signaturen Kontrollen görs på föjlande sätt 1191 Beräning av punten R Nätsidan beränar punten R = e s P r s Q Detta är möjligt då nätsiden N från punten Q vet punten P, och talen e, r och s sicas med ontaten från A
1192 Verifiering Nu sall nätsidan verifiera att signaturen är orret, och detta görs genom att olla att x-oordinat till punten R är det första talet r i signaturen som användare A sicade Vi har nämligen att s = e+cr, och detta ger R = (e P r Q) e + cr Vi har vidare att Q = c P, vilet ger att R = (e + cr) P = P e + cr Det var precis P som A beränade för att bestämma r 2 Felatig implementering När Playstation 3 (PS3) lanserades 2006/2007 var den betratad som att inneha en mycet säer ryptering PS3 användes sig av ryptering via elliptisa urvor Men, i december 2010 blev masinernas rypteringsoder tillgängeliga Hacers lycades bryta oden, och det hela baserades på att PS3 hade implementerad rypteringsoden fel När PS3 gav ut licenser till användare så var det meningen att varje användare fic en programvara som hade rypteringsalgoritm som ovan Sillnaden var doc i Steg 3 där man istället för att slumpa godtyclig tal varje gång man ontatade nätstedet N, använde sig av ett och samma tal Betrata en och samma användare A Denna ontatar nätsidan N med ett meddelande e 1 och en signatur (r 1, s 1 ) Dessa tre tal fångar hacer H upp Vi har evationen s 1 = (e 1+cr 1 ), som vi ocså an sriva som s 1 r 1 c = e 1 Talen e 1, r 1 och s 1 har vi, men inte de två oända och c Ni an täna på detta som en linje i ett plan där de två oända är och c Men, dagen efter sicar användaren A ett nytt meddelande till nätsidan N Hacer H fångar nu upp talet e 2 och signaturen (r 2, s 2 ) Nu får vi en linje till, nämligen s 2 r 2 c = e 2 Nu har vi ett evationssystem i två oända och c som vi an lösa Evationssystemet sriver vi opp som matrisevationen [ ] [ ] [ ] s1 r 1 e1 = r 2 c e 2 s 2 Inversen till matrisen till vänster är 1 s 1 r 2 + r 1 s 2 [ r2 r 1 s 2 s 1 ] 5
6 Detta ger nu att [ ] [ ] 1 r2 e = 1 + r 1 e 2 c r 1 s 2 s 1 r 2 s 2 e 1 + s 1 e 2 Specielt har vi att den hemliga rypteringsnyceln till användare A är c = s 1e 2 s 2 e 1 r 1 s 2 s 1 r 2 Eller, som Adrian Kimiaei påpeade under föreläsningen, när är onstant då blir r 1 = r 2 alltid det samma Detta betyder att c = s 1e 2 s 2 e 1 r 1 (s 2 s 1 ) 3 Information Sista (!) träff är tisdagen 17 maj, locan 1530-1700, sal E36 Department of Mathematics, KTH, Stocholm, Sweden E-mail address: sjelnes@thse