Kryptografi med Elliptiske kurver

Størrelse: px
Starte visningen fra side:

Download "Kryptografi med Elliptiske kurver"

Transkript

1 Kryptografi med Elliptiske kurver med perspektiv til Suite B CHRISTEL BACH KRYPTOLOGI C, MASTERPROJEKT, 2010 MASTER I KRYPTOLOGI ÅRHUS UNIVERSITET VEJLEDER: JØRGEN BRANDT 1 christel@christel.dk christelbach.com - all rights reserved

2 Kryptografi med Elliptiske kurver med perspektiv til Suite B CHRISTEL BACH Forord 31. juli 2010 Nærværende materiale er skrevet som afsluttende opgave i forbindelse med Master i Kryptologi, Kryptologi C, Århus Universitet, mellem 2006 og Det er desuden med visse modifikationer eventuelt tænkt anvendt i en undervisningssammenhæng i forbindelse med modulet Security til uddannelserne Professionsbachelor Software Udvikling og Professionsbachelor Web Udvikling. Bekendtgørelsen for dette modul kan ses i bilag C2. Det ligger dog uden for modulets kerneområder og vil være at betragte som emne for særligt interesserede. Der vil derfor være både grundlæggende forklaringer, og referencer til videre studier af emnet. 01.oktober Denne version 1.6 indeholder flere smårettelser samt udvidede eksempler på pohlig-hellmann angreb, complex multiplikation o.a. samt et par ekstra bilag, alt sammen udarbejdet til master forsvaret der fandt sted Desuden er et par åbenlyse matematiske fejl og protokol fejl i version 1.0 af denne opgave, påvist ved forsvaret, rettet og skrevet om. Tak til mine børn for at have udholdt lange perioder med alt for meget fokus på masteruddannelsen. Tak til mine kolleger for aldrig at tvivle. En særlig tak til Niels og Marlene. 2 christel@christel.dk christelbach.com - all rights reserved

3 Indhold FORORD INTRODUKTION ELLIPTISKE KURVER OVER ENDELIGE LEGEMER F P ELLIPTISKE KURVER OVER DET ENDELIGE LEGEME F M ECDLP, ELLIPTISK KURVE DISKRET LOGARITME PROBLEM EGNEDE OG UEGNEDE KURVER OG DOMÆNEPARAMETRE... 9 DISKRIMINANTEN... 9 SUPERSINGULÆRE KURVER ANORMALE KURVER ANORMALE BINÆRE KURVER KOBLITZ KURVER BINÆRE LEGEMER AF SAMMENSAT ORDEN NÆSTEN PRIMTALSORDEN BASEPUNKTET SOM GENERATOR PSEUDO-RANDOMISERING DOMÆNEPARAMETER GENERERING OG VALIDERING ANBEFALINGER OG NIST ANTAL PUNKTER PÅ KURVEN HASSES SÆTNING ANTALLET AF PUNKTER PÅ BINÆRE KURVER #E(F2m ) SCHOOFS ALGORITME christel@christel.dk christelbach.com - all rights reserved

4 KOMPLEKS MULTIPLIKATION (CM) METODE COMPLEX MULTIPLIKATION GENNEMREGNET EKSEMPEL ANGREB - MÅDER AT FINDE N FOR NP= Q WEIL PAIRRING OG MOV ATTACK POLLARDS RHO METODE POHLIG HELLMAN METODE POHLIG-HELLMANN ANGREB GENNEMREGNET SUITE B NIST ANBEFALINGER Legemer OPTIMERING PÅ NIST KURVER NUMERISK EKSEMPEL Matematiske rutiner på p Det ses altså at være langt enklere at regne via de optimerede rutiner Binære legemer NIST kurver Valg af reduktionspolynomium GENERERING OG VERIFIKATION AF DOMÆNE PARAMETRE VERIFIKATION Sha1 hashing af hexværdier Verifikation af P Yderligere verifikationsovervejelser: Eksempel - At konstruere r for P Test af domæneparametre for P-224: Test af domæne parametre for P IMPLEMENTATIONSOVERVEJELSER: STORE TAL - BIGINTEGERS MODULÆR MULTIPLIKATIV INVERS KVADRATRØDDER MODULUS P IMPLEMENTATION PUNKTET I UENDELIG - HOMOGENE KOORDINATER DOUBLE AND ADD ALGORITME Hurtig potensopløftnings algoritmen KRYPTOGRAFISK ANVENDELSE AF ELLIPTISKE KURVER PRINCIPPER BAG ELLIPTIC DIFFIE-HELLMAN NØGLE UDVEKSLING Eksempel på Diffie-Hellman nøgleudveksling med P PRINCIPPER BAG EC ELGAMAL PUBLIC KEY KRYPTOSYSTEM At repræsentere klartekst med punkter på elliptiske kurver MV ELGAMAL - MENEZES VANSTONE VARIANTEN AF ELGAMAL Beskedudvidelse: Eksempel: Fra klartekst til ASCII værdier og fra ASCII til klartekst ECDSA DIGITAL SIGNATUR MED ELLIPTISKE KURVER Lille ECDSA eksempel christel@christel.dk christelbach.com - all rights reserved

5 ECDSA eksempel med P IMPLEMENTATION AF MV ELGAMAL ECC PAKKELØSNINGER, BIBLIOTEKER OG ANDRE IMPLEMENTATIONER ILLUSTRATIVE IMPLEMENTATIONER AF KRYPTOGRAFI MED EC SUPPORT AF SUITE B I.NET ANDRE LØSNINGER - BOUNCY CASTLE ECC VERSUS RSA DANSKE STANDARDER PÅ OMRÅDET FOR DIGITAL SIGNATUR OG SIKKER KOMMUNIKATION: AFRUNDING OG KONKLUSION EFTERSKRIFT LITTERATUR HENVISNINGER OVERSIGT OVER BILAG: KILDEKODE TIL IMPLEMENTATION AF ELLIPTISK KURVE KRYPTOGRAFI MV ELGAMAL ECC 60 Kryptering og dekryptering af beskeder med NIST kurver baseret på primlegemer og kurven Y^2=X^3+AX+B i C#.NET SUPPLERENDE PÆDAGOGISKE MATEMATISKE BILAG Kort oversigt over algebraiske strukturer: Homomorfi endomorfi -isomorfi Afbildinger Grundlæggende om Elliptiske kurver Diskriminanten og singulære punkter Mathematica visualisering Punktaddition på R kode eksempel i javascript Multiplicativ invers modulus p - kodeeksempel i javascript ElGamal og DLP Kvadratroden af store tal RSA protokol og implementation Tidskomplexitet med regneeksempler på elliptiske kurver MIPS antal millioner instruktioner pr sekund Eksempel: At lede efter kvadrattal Eksempel: Antallet af punkter der beregnes med Schoofs algoritme - tidskompleksitet Eksempel Pollards Rho metode: Kan man lave en tabel over tp på en NIST kurve? ØVRIGE BILAG: Danske standarder Studieordning christel@christel.dk christelbach.com - all rights reserved

6 1. Introduktion Grundlæggende indføring i emnet elliptiske kurver over R er inkluderet i bilag B2. Man vil også kunne se en visualisering af elliptiske kurver hos wolfram.com 1 Et lille demonstrationseksempel på punktaddition i R er vedlagt som i kildekode i bilagb5. Da der vil blive anvendt algebraisk terminologi er der i bilag B1 en kort oversigt over algebraiske strukturer Ved kryptografisk anvendelse af elliptiske kurver(ec) anvendes elliptiske kurver over endelige legemer. Denne gennemgang vil være organiseret således at grundlæggende egenskaber for kurver over endelige legemer først gennemgås, herunder forskellige typer af legemer og overvejelser omkring valg af basis i relation til implementation. Herefter præciseres forudsætninger for hvilke kurver der er egnet til kryptografisk brug De i Suite B anbefalede såkaldte NIST kurver og domæneparametre vil blive gennemgået, diskuteret og forsøgt verificeret via forskellige metoder. Efterfølgende vil en række protokoller for klassiske kryptografiske anvendelser af EC blive gennemgået. I denne forbindelse vil jeg diskutere og vise forskellige implementationsovervejelser til demonstrationsbrug og give eksempler på disse. Implementationerne vil IKKE være egnet til industristandard og tjener primært illustrative og pædagogiske formål. Kodeeksempler vil primært være programmeret i C#.NET og alle vedlagte eksempler kan afprøves på En hel anden anvendelsesdimension af elliptiske kurver, nemlig Lenstra s Elliptiske Kurve Metode(ECM) til primtalsfaktorisering vil ikke blive berørt da det var emnet for min eksamensopgave i modulet KryptologiB christel@christel.dk christelbach.com - all rights reserved

7 2. Elliptiske kurver over endelige legemer Fp Til kryptografisk brug betragter vi punkter P og Q på en elliptisk kurver over et endeligt legeme. Vi knytter regneoperationer på disse punkter der gør E(F p ) til en gruppe. Et endeligt legeme består af et endeligt sæt af elementer F med to tilhørende operationer kaldet multiplikation og addition. Legemets orden er antallet af elementer i legemet. Antallet af elementer i et endeligt legeme er altid en primtalspotens p n. Skal ordenen være et primtal har vi altså n=1 For ethvert primtal p og positivt heltal n, eksisterer der et endeligt legeme med p n elementer. To endelige legemer med samme orden er isomorfe. Legemet betegnes F p hvis ordenen er et primtal og F p n hvis ordenen er en primtalspotens. Man ser også betegnelsen GF p n da disse legemer også kan kaldes Galois legemer. Har vi et legeme F p n kaldes p da karakteristikken af legemet og n kaldes udvidelsesgraden. Vi ser på legemer hvor karakteristikken er et primtal p større end 3. En elliptisk kurve over F p er defineret som E(F p ) = (x, y): x, y F p hvor y 2 = x 3 + Ax + B O hvor diskriminanten 4A B 2 er forskellig fra nul og A og B ligger i F p. Betegnelsen O er det neutrale element identiteten. Kaldes også punktet i uendeligt. Vi har en række additionslove der gælder på en sådan kurve Der gælder at P + O= O+ P = P. Der gælder ligeledes at addition af punkter P+Q = Q+P = R, hvor både P og Q ligger i E(F p ) giver et nyt punkt R der også ligger i E F p. Man kan desuden vise at punktaddition er associativ. Dvs. at vi har (P+Q)+ R = P + (Q+R). Vi har yderligere at alle punkter har et inverst element -P således at P + (-P) = O. Dermed er kravene opfyldt for at E(F p ) er en endelig gruppe. Vi definerer k*p som P+P+P+ +P i alt k P er lagt sammen med punkt addition. 7 christel@christel.dk christelbach.com - all rights reserved

8 3. Elliptiske kurver over det endelige legeme F2 m Mange standarder for elliptisk kurve kryptografi forlanger at p enten er et ulige primtal eller at p m = q er en potens af 2, altså 2 m. F 2 m kaldes også binære legemer. Elliptiske kurver over binære legemer vælges på formen Nonsupersingulær: y 2 + xy = x 3 + Ax 2 + B hvor A er 0 eller 1, B!=0, Eller supersingulær: y 2 + y = x 3 + Ax + B. Vi skal dog senere se at den supersingulære version ikke kan anvendes til kryptografisk brug og man vil derfor udelukkende bruger kurver på den nonsupersingulære form. Koblitz har foreslået en metode hvor man bruger en elliptisk kurve over F 2 (der jo ikke indeholder mere end 4 punkter) mens man lader punkterne ligge på E over F 2 m for et primtal m. Det betyder at man ved at anvende en såkaldt frobenius mapping (der er en homomorfi af E(F 2 m ) på sig selv) kan få lette regneoperationer og ikke mindst let kan beregne antallet af punkter på kurven. Disse kurver kaldes Koblitz kurver eller anormale binære kurver. En af årsagerne til at man er særligt interesseret i denne gruppe E(F 2 m ) er desuden at især punkt dobling er simpel i det tilfælde. Implementationsmæssigt gør det en stor forskel hvor lang tid de enkelte processer tager og hvor mange iterationer der skal til. I en guide 3 til implementation findes en række eksempler på hvordan punktaddition og skalarmultiplikation kan optimeres på binære legemer. F 2 m kan beskrives med såvel polynomial basis som normal basis.jf.[3] Dette kan også betragtes som et binært endeligt legeme der kan ses som et vektor rum af m'te dimension over legemet F 2, der består af elementerne 1 og 0. Dvs. elementerne i F 2 m kan skrives på formen a 0 α 0 + a 1 α 1 + a 2 α a m 1 α m 1 hvor a i 0,1 Vi har altså en basis α 0, α 1, α 2,, α m 1 af F 2 m over F 2 Polynomial basis repræsentation, Reduktionspolynomium Et irreducibelt polynomium af grad m over F 2 definerer en polynomial basis repræsentation af F 2 m Et ireducibelt polynomium af grad m over F 2 kan ikke faktoriseres op som et produkt af to polynomier af lavere grad. Et sådant polyomium kan skrives på formen f(x) = x m + t m 1 x m t 2 x 2 + t 1 x + t 0 hvor t i 0,1 for i=0,1,2 m-1. 3 Companion document Mathematical Routines for NIST Prime Elliptic Curves 8 christel@christel.dk christelbach.com - all rights reserved

9 Elementer i legemet: Det endelige legeme F 2 m betsår af alle polynomier af grad mindre end m. Dette kan skrives således: F 2 m = a m 1 x m a 1 x + a 0 a i 0,1 Vi kan for det enkelte element a m 1 x m a 1 x + a 0 anvende den kortere form (a m 1 a 1 a 0 ). Altså en bitstreng af længde m. Vi får altså dermed bitstrenge og dette er implementationsmæssigt nyttigt ved operationer på elementer i legemet. Vi kan f. eks repræsentere elementerne i F 2 4 således 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, Polynomiumsdivisions eksempel (x 6 + x 5 + x 2 +1) mod (x 4 +x+1) = x 3 +x 2 +x+1 fordi (x 6 + x 5 + x 2 +1) divideret med (x 4 +x+1) er lig med x 2 +x med rest x 3 -x 2 -x+1 4. ECDLP, Elliptisk kurve diskret logaritme problem Digital signatur og andre kryptografiske protokoller med elliptiske kurver er baseret på det underlæggende antagne svære problem, at beregne det såkaldte diskrete logaritmeproblem for elliptiske kurver. Dette problem kan kort beskrives således: Givet en elliptisk kurve over et endeligt legeme F q, et punkt P på kurven af orden n, P E(F q ) og et andet punkt på kurven Q = tp hvor 0 t n 1 Find t. Det er ikke trivielt på det endelige legeme at beregne hvordan et punkt er et resultat af en ukendt skalar multiplikation af et andet punkt. 5. Egnede og uegnede kurver og domæneparametre Når vi evaluerer en kurves egnethed og det legeme hvorpå den er defineret i forhold til kryptografisk brug, er der især to parametre vi er interesseret i. Den ene er hvor hurtig den er at regne på af hensyn til performance, og den anden er eventuelle egenskaber ved konstruktionen der gør det sårbart over for angreb. Men der er også helt grundlæggende egenskaber for at vi overhovedet kan få veldefinerede grupper med konsistente additionslove. Vi har desuden til kryptografisk brug behov for et basispunkt G Diskriminanten Helt grundlæggende må diskriminanten på kurven ikke være 0. 9 christel@christel.dk christelbach.com - all rights reserved

10 Er diskriminanten 0 svarer det til at flere rødder er ens. Hvis vi skriver højre side på kurven på formen X 3 + AX + B som produktet af dets rødder (X-r 1 )(X-r 2 )(X-r 3 ) (kan også være komplekse rødder) så er diskriminanten D= 4A 3 +27B 2 0 hvis og kun hvis rødderne r 1,r 2 og r 3 er forskellig. Hvis de ikke er forskellige har kurven såkaldte singulære punkter og det går galt med additionslovene hvis der findes sådanne punkter. Se evt. bilag B3. Supersingulære kurver En familie af kurver hvis orden, dvs. antallet af punkter på kurven, er #E(F p )=p+1. Disse kurver har vist sig særligt sårbare over for angreb, herunder det såkaldte MOV angreb og kan ikke bruges til kryptografisk brug. Supersingulære kurver over binære legemer har som tidligere nævnt formen y 2 + y = x 3 + Ax + B. Anormale kurver En kurve kaldes anormal hvis dets orden et primtal p er af samme størrelse som det underlæggende legeme F p, altså #E(F p )=p. Der findes en hurtig metode jf. [9] s 328 til at løse ECDLP på kurver af en sådan orden. Anormale binære kurver Koblitz kurver Kurver over F 2 m er, som før nævnt i modsætning til anormale kurver over F p, meget attraktive pga. af de effektive muligheder for fx addition. Binære legemer af sammensat orden Kurver over binære legemer af orden 2 m hvor m er et produkt af to primtal har vist sig sårbare over for et angreb ved hjælp af en såkaldt Weil Descent og skal derfor også undgås til kryptografisk brug. Næsten primtalsorden Hvis antallet af punkter på kurven er et produkt af små primtal er systemet sårbart over for Pohlig-Hellman angreb.jf [4] s 183. Det betyder at #E(F p ) skal være divisibel med et tilstrækkeligt stort primtal, altså at ordenen er et primtal (forskellig fra p) eller et såkaldt næsten-primtal tal s hvor faktorerne er q*n for n meget lille, fx 1,2,3 eller 4 og q større end 2^160 iflg. [5]. Desuden må s ikke dele q k -1 for k mindre end 20. Basepunktet som generator Basepunktet G behøver iflg. Koblitz [4]strengt taget ikke være en generator for gruppen, men skal kunne generere en undergruppe hvor det diskrete logaritmeproblem ikke er nemt. Det er tilfældet hvis ordenen af punktet G er et næsten primtal, dvs. kan deles med et primtal der er sammenligneligt med #E(F p ). Hvis vi sørger for at #E(F p ) er et stort primtal vil ethvert punkt på kurven (på nær O) være en generator. 10 christel@christel.dk christelbach.com - all rights reserved

11 Pseudo-randomisering For at fremtidssikre ECC systemer skal domæneparametrene udvælges randomiseret. Det vil her sige så randomiseret som en computer nu er i stand til. Med andre ord skal udfaldene statistisk set fordele sig jævnt uden sporbare mønstre. Det kalder vi pseudo-randomiseret. Randomiseringen sikrer dels mod at parametervalg vil være blandt eventuelle fremtidige fundne særligt sårbare parametre, men det vil også statistisk set gøre sårbarhed overfor forskellige allerede kendte angrebstyper ubetydelig. Efterfølgende kan man så undersøge om de tilfældigt udvalgte parametre lever op til ovenstående. Tilfældigheden vil også sikre at parametrene og de valgte kurver ikke er konstrueret så de med fuldt overlæg indeholder skjulte sårbarheder der bagefter kan bruges af konstruktøren. Randomiseringen skal være bevislig og af kryptografisk valid kvalitet. Domæneparameter generering og validering Disse ovenstående forudsætninger skal altså være opfyldt for at kurver og øvrige domæneparametre er velegnede til kryptografisk brug. En algoritme til sikring af at disse forudsætninger er til stede kan bl.a. ses i artiklen [14]af bl.a. Johnson, Menezes og Vanstone. Det er ligeledes en integreret del af FIPS standarden at domæne parametre skabes og valideres efter specifikke algoritmer. Mere herom under Suite B. Anbefalinger og NIST Ifølge Rosing [4]er de kurver der er mest velegnede til kryptografisk brug, kurver over binære Galois legemer. Dvs. kurver på F 2 n, med andre ord kurver med karakteristikken 2, og udvidelsesgraden n, og det da kun hvis de ikke er supersingulære. De skal altså være af formen: y 2 + xy = x 3 + Ax 2 + B, B må ikke være nul., A kan godt være nul. Som det vil fremgå under relevant afsnit er de anbefalede såkaldte NIST kurver repræsenteret både med Koblitz kurver og random kurver på binære legemer men også kurver på kort Weierstrass form på primlegemer. Man vil bemærke i specifikationen til disse at udvidelsesgraden på de binære legemer netop er et primtal. Ligeledes er antallet af punkter på kurverne angivet for kurver over primlegemer og de ses at være forskellige fra p og p+1. Som vi vil se senere er det let at beregne antallet af punkter på binære legemer. Også antallet af punkter på NIST kurverne over de binære legemer vil vise sig at være forskellig fra p og p+1. Det er nu oplagt at det er vigtigt at tjekke antallet af punkter på kurven før den kan erklæres egnet til kryptografisk brug. 11 christel@christel.dk christelbach.com - all rights reserved

12 6. Antal punkter på kurven Som nævnt har vi behov for at kende gruppen orden, det vil sige antallet af punkter på kurven for at sikre at dette antal lever op til ovennævnte betingelser for ikke at gøre systemet sårbart. Punkttælling er et stort genstandsområde inden for kryptologi. Har vi en elliptisk kurver på kort Weierstrass form mod p vil vi ved gennemløb af x værdier for x=0 til x=p-1 løbe igennem antallet af mulige punkter på kurven. Alle de værdier for S, hvor S= x 3 -Ax+B, x = 0,1,2, p-1, som giver et kvadrattal, giver da punkterne på kurven. Da cirka halvdelen af alle heltal er kvadrattal modulus p (jf. senere afsnit om Kvadratisk rest ), og der for hvert kvadrattal findes to løsninger y og -y, vil antallet af punkter på kurven ikke være meget forskellig fra p. Hasse indkredser det lidt mere præcist med denne sætning Hasses sætning Antallet N af punkter på en kurve E, #E(F p ) vil være inden for intervallet #E(F p )=p+1-t hvor t <= 2*sqrt(p) Eksempel Vi kan da straks f. eks udtale os om antallet at punkter på f. eks E(F p ) hvor p= Altså er #E(F p ) = t hvor t <2*sqrtp(p), At beregne kvadratroden af et stort tal kræver nærmere overvejelser da der ikke er indbygget en kvadradrodsmetode i BigInteger i C#. En genvej kan være at beregne e^log(p)/2 Math.Exp(BigInteger.Log(p) / 2) Problemet er at det ikke giver et præcist tal men blot 7, * En implementation kunne være baseret på Newton Raphson metoden, hvor vi beregner kvadratroden som en rekursiv beregning over g af (n/g + g)/2. Koden kan ses i bilag B7. Denne algoritme kan ikke beregne kvadratroden af et tal mod p, her er der behov for andre overvejelser. Dette er vist i afsnit om dette emne side: 34 Et kommercielt API Extreme.Numerics tilbyder alternativt en ekstrem let løsning med using Extreme.Mathematics; BigInteger calc = BigInteger.Sqrt(p); Kvadratroden af p afrundet til nærmeste hele tal giver: vi har da at t < Dvs antallet af punkter skal iflg. Hasse ligge mellem p+1-t og p+1+t og Anvender vi en standardiseret NIST kurve (jf. senere afsnit om Suite B) er antallet af punkter på kurven allerede givet: 12 christel@christel.dk christelbach.com - all rights reserved

13 I specifikationen er dette tal r givet som: Hvilket ses netop at ligge pænt i dette interval. Selv om t har en betragtelig størrelse er det meget mindre end p der eksponentielt er i ordnen 6,3*10 57 hvor t eksponentielt kan skrives: 1,6*10 29 Hasses sætning giver et resultat der naturligvis stadig er ret upræcist, hvis vi har behov for at finde det helt nøjagtige antal punkter. Det er klart at man kan gennemløbe alle mulige x værdier og lede efter matchende kvadrattal. Det er en meget ineffektiv algoritme der løses i tiden O(p) Antallet af punkter på binære kurver #E(F 2 m ) På Koblitz kurver hvor A=0 har vi iflg. [9] s 313, nemme udregninger af antal punkter på kurven. Det kan findes som #E(F2 k ) = 2 k ((-1+sqrt(-7))/2) k - ((-1-sqrt(-7))/2) k hvor de to parenteser repræsenterer komplekse rødder i polynomiet Z 2 +Z + 2. Altså en meget let måde at beregne gruppens orden. Eksempel: #E(F 2 43 )= 2^ ((-1+sqrt(-7))/2)^43 - ((-1-sqrt(-7))/2)^43= På E(F ) har vi et resultat der let beregnes i fx Maple således: simplify(2^ ((-1+sqrt(-7))/2)^163 - ((-1-sqrt(-7))/2)^163) #E(F )= for k=233 er antallet af punkter: for k= 283 er antallet af punkter: for k=409 er antallet af punkter: for k=571 er antallet af punkter Schoofs algoritme En af de mest almindelige metoder til punkttælling er Schoofs algoritme. Den kan beregne antallet af punkter i tiden O((log p)^6) altså en polynomial tids algoritme. Algoritmen er siden blevet optimeret af en række personer og denne kaldes SEA algoritmen. Den grundlæggende ide er at forsøge at finde antallet af punkter på kurven modulus t for tilstrækkeligt mange små t og så rekonstruere den ønskede orden ved hjælp af den kinesiske restsætning. Det er uden for denne opgaves 13 christel@christel.dk christelbach.com - all rights reserved

14 område at dykke nærmere ned i Schoofs algoritme. Man vil kunne se flere detaljer i [6]s 351. Kompleks multiplikation (CM) metode En anden tilgang til problemet er at vælge ordenen først og så generere en kurve med denne orden. Det er fx muligt via den såkaldte kompleks multiplikationsmetode CM. Ideen er jf. [14] følgende: vi lader E være en elliptisk kurve af orden N over F q. Vi beregner et Z=4q-(q+1-N) 2 og omskriver dette til DV 2 hvor D skal være kvadratfrit. Man siger da at kurven E har kompleks multiplikation med D. Kender kan D for en given kurve kan man effektivt beregne kurvens orden. CM metoden giver en måde hvorpå man først konstruerer et D for hvilket der eksisterer et E over F q, med en orden der er et næsten-primtal N, altså produktet n*h af et stort primtal n og et meget lille h forskellig fra 1, og dermed at N er forskellig fra q. Yderligere må n ikke dele q k 1 for k mellem 1 og 20. Herfra vil koefficienterne i kurven kunne konstrueres. Metoden er kun velegnet for små værdier af D. Til gengæld skulle metoden være særdeles velegnet netop for disse værdier, og overgår i effektivitet langt punkttælling på kurver over primlegemer for legemer af størrelsesordnen 160 bit, mens metoden ikke kan konkurrere med andre metoder på kurver over binære legemer. Jf [5]s 179 Detaljerede algoritmer er givet i IEEE-1386 [13] Jeg har kun en version draft 14 tilgængelig og her er metoden sammensat af følgende algoritmer. Processen er først at finde en relevant værdi for D, dernæst at finde en nær-primtalsorden 4 for kurven og slutteligt at konstruerer kurve og punkt. Altså først findes et kvadratfrit D der kan være CM diskriminant for p. I [13] afsnit A har vi en algoritme for test af CM diskriminanter. A Indeholder en algoritme til at finde en nær-primtals orden I A14.2 følger en algoritme til, ud fra ovenstående output, at konstruere en kurve med de ønskede egenskaber. Anvendes CM metoden over GF(p) kaldes den da også Atkin-Morain metoden. Der findes en rigtig fin detaljeret og praktisk gennemgang af metoden og de nødvendige mellemregninger med gode eksempler i [6] ss Complex multiplikation gennemregnet eksempel Det er som nævnt muligt at vælge en ønsket orden, N=h*r og herefter legeme. h er en lille cofakor og r et stort primtal (jf Pohlig-Hellman angrebet). Der skal findes et D så bl.a. Z=4*p-(p+1-N)^2 kan skrives som DV 2 for kvadratfrit D. Desuden skal en række kongruensbetingelser opfyldes: p mod 8 tjekkes og værdien af K=floor(sqrt(p)+1) 2 /r) beregnes. Så kan der konstrueres en kurve med den komplekse diskriminant D (sqrt(-d)) der opfylder betingelserne. Jo mindre D jo lettere at finde kurve. For små D findes en tabel for A og B startværdier 4 Et tal der enten et stort primtal p eller at faktorerne er et meget stort p og et meget lille q. 1,2 eller 3 fx 14 christel@christel.dk christelbach.com - all rights reserved

15 D A B For større D er der en længere algoritme der kan følges Eksempel 1: Forsøgsvist sættes N=2*631 og legemets størrelse til p=1249, vi beregner da Z=4*1249-( )^2= faktoriseres til 2 2 *1213. Det giver et stort D, der ganske vist opfylder kongruensbetingelserne, men er ikke så velegnet pga af D s størrelse. Eksempel 2: N=3*1399=4197, p=4273, dvs Z=4*4273-( ) 2 = Faktoriseret: 3*61 2 Det er svært at ramme en Z værdi der giver DV 2 for passende værdier da de fleste tal har mange små faktorer, men ovenstående er et heldigt eksempel Vi tjekker p mod 8, 4273 mod 8=1 og værdien af K=floor(sqrt(p)+1) 2 /r)= floor((sqrt(4273)+1) 2 /1399)=3 Og vi har* at If p = 1 (mod 8) og K = 2 or 3, så er mulige værdier af D = 1, 2, 3, 5, 6, 10, 11, 13, 14, 17, 19, 21, Dvs D=3 og vi har E(F 4273 ):Y 2 =X 3 +1 og dermed har vi at kurven måske har ordenen #(Ef p )=4197 Det ses straks at punktet (0,1) er en løsning og en gennemregning viser at punktet desværre kun er genererer 6 punkter på kurven: (2,3)(0,1)(4272,0)(0,4272)(2,4270),O. Vi skal derfor se på en faktor på B jf Derfor skal findes en faktor t*b. Ex: t=88 og punktet P:(1673,322) er punktets orden 1399, for punktet P: (14,456) er ordene 4197, så E(F 4273 ):Y 2 =X kan bruges. Mange værdier af t giver fornuftig brugbar kurve, mange andre værdier giver dog ikke det ønskede. Men det er muligt relativ let i dette eksempel at finde flere match, f. eks: t=1374 P:239,98 giver ordenen Angreb - Måder at finde n for np= Q Der findes forskellige måder at forsøge at løse ECDLP på for at ECC system. Nogle af systemerne udnytter uhensigtsmæssigheder i domæneparametre, andre er statistiske. De første kan man forsøge at gardere sig imod ved velvalgte kurver og legemer, de andre kan man forsøge at gardere sig imod ved at arbejde på så store 15 christel@christel.dk christelbach.com - all rights reserved

16 legemer med tilstrækkeligt stort antal punkter på kurverne at det tager tid og regnekraft udenfor det mulige. Herunder forsøgt meget kort at ridse ideen bag et par af de centrale angrebsmåder op. Denne oversigt er på ingen måde udtømmende og beskrivelserne er meget udetaljerede. Området er naturligvis genstand for meget stor interesse og der udgives vedvarende artikler med forbedring af eksisterende metoder og ind imellem helt nye metoder. Weil pairring og MOV attack Meget kort kan principperne bag Weil pairring og MOV attack beskrives således: Der findes en størrelse e m kaldes Weil-pairingen, der er en måde at beregne en skalarværdi for to punkter P og Q i E(F p ) af orden m således at e m (P,Q) m =1. Denne størrelse kan også kaldes den m te enhedsrod. Jeg vil ikke gå nærmere ind i hvordan weil-pairingen beregnes, det kræver en lidt længere forklaring, men blot eksemplificere. Detaljer kan fx findes hos Silverman[9] s.322. Finder vi fx ud af at Weil-pairingen af to punkter P og Q på E(F 631 ) er e 5 (P,Q)=242 betyder det at =1 i F 631 Har vi desuden at f.eks P =3*P og Q =4*Q og at vi har beregnet e 5 (P,Q )=512 findes yderligere den egenskab at e 5 (P,Q) 12 = = 512=e 5 (P,Q )=e 5 (3P,4Q) Sådanne egenskaber kan vi bruge til at løse det ECDLP med via den såkaldte MOV algoritme. Ideen er at transformere ECDLP i F p til at løse DLP i F* p k. MOV algoritmen efter Menezes, Okamoto og Vanstone, ser ud som følger for to punkter P og Q hvor Q=nP på E(F p ) for ukendt n. Lad P have primtalsorden j større end sqrt(p)+1 1. Beregn antallet af punkter N på E(F p k ). Vi har at j deler N fordi E(F p ) har et punkt af orden j. 2. vælg et tilfældigt punkt T der ligger i E(F p k ) men ikke i E(F p ) 3. beregn T =(N/j)*T. Hvis T = O vælg et andet T. Ellers er T et punkt af ordenen j. 4. beregn Weil-pairingen for følgende punkter a=e j (P,T ) der vil ligge i F* p k. og tilsvarende for b = e j (Q,T ) 5. Find en løsning n til b=a n (med andre ord løs DLP i F* p k.) 6. Vi har da at Q=nP I tilfælde af supersingulære kurver eller anormale kurver giver algoritmen simple løsninger, generelt kan DLP løses f.eks ved hjælp af index metoden. Jf [9]s.162 og se evt. her christel@christel.dk christelbach.com - all rights reserved

17 Pollards Rho metode Pollards Rho metode er normalt en metode til at faktorisere et tal n =pq for p og q to store primtal. Men metoden er også relevant forhold til at finde n for Q=nP Ideen bag Pollards Rho metode er mod n at finde to forskellige talpar (a 1,b 1 ) og (a 2,b 2 ) så a 1 *P + b 1 *Q = a 2 *P + b 2 *Q da vi så har at (a 1 -a 2 )*P =(b 2 -b 1 )*Q=(b 2 -b 1 )*t*p og dermed at (a 1 -a 2 ) =(b 2 -b 1 )*t mod n. t kan da beregnes som t= (a 1 -a 2 )* (b 2 -b 1 ) -1 mod n Metoden er så at konstruere en funktion der laver tilfældige kombinationer af talpar indtil et match findes. Et lille eksempel jf [5]. Hvis vi har E(F 229 ): Y 2 =X 3 +x+44 og har P=(5,116) med primtalorden 239 og Q=(155,166)) hvor Q= np for ukendt n. Finder man så ved hjælp af iterationer over tilfældige kombinationer f.eks at 192P+24Q=213P+104Q=(57,105), da har vi at t=( )*(104-24) -1 mod 239=176. Altså at 176*Q=P. Metoden er statistisk da der ikke gives nogen garanti for match, men match kan forventes at findes i tiden O(sqrt(N)), N gruppens orden. Pohlig Hellman metode Denne metode virker hvis vi har at ordenen N af punktet P er et sammensat tal som vi kan faktorisere. Vi har en gruppe baseret på en elliptisk kurve E over F p og punkterne P og Q hvor Q=nP for et ukendt n. Antag at faktoriseringen af N er følgende N = q 0 e 0 q 1 e 1 q 2 e 2. q i e i Hvis vi da har at for et q med præcis den potens e der deler N kan vi skrive n som en q-base ekspansion (var fx q=2 og e=1 ville det svare til en binær ekspansion) Vi vil da forsøge med alle faktorerne i N ved at finde n modulus hvert q i e i og efterfølgende bruge den kinesiske restsætning 6 til at finde n mod N. Vi beregner for alle faktorpotenserne en mængde af punkter T som et skalarprodukt af alle værdier af j mellem 0 og q-1 og N/q*P for at finde de forskellige værdier for n Washington [2] viser et eksempel for E(F 599 ) med punkter P=(60,19 og Q=(277,239) hvor ordenen af P;N=600 der faktoriseres til 2 3 *3*5 2. Ideen er så at beregne n mod 8, 3 og 25 og kombinere disse. Han får følgende kongruenser n= 2 mod 8,x=2 mod 3 og x=16 mod 25. Det giver til sammen n=266 mod 600 hvorfor n=266. Denne metode kan man altså gardere sig imod ved at sikre at ordenen af punktet er et primtal christel@christel.dk christelbach.com - all rights reserved

18 Pohlig-Hellmann angreb gennemregnet Eksempel på kurve hvor punktets orden ikke er af primtals orden. E(F 5437 ):Y 2 =X 3 3X , Base point example P: (10,4) Orden af punkt P er N= 890 Man kan ved at regne på kurve eksempelvis se at 8P giver (1298,210) med orden 445. Et kvalificeret gæt på gruppens orden: 5340, da 6*890= 5340og 12*445=5340, =97 og tallet faktoriseres således 5340=2 2 *3*5*89 Da punkternes orden skal gå op i gruppens orden og gruppens orden ifgl Hasse ikke er meget forskellig fra antallet af elementer i legemet er det et rimeligt bud. Vi vil da forsøge at udføre et Pohlig Hellmann attack på ECDLP i denne gruppe Vi har et Q=(3210,4634)=k*P for ukendt k Punktet P=(10,4) s orden N= er 890= 2*5*89 Vi har et Q=(3210,4634)=k*P for ukendt k, så vi skal i stedet forsøget at finde k for kp mod 2, mod 5 og mod 89. Det er klart det er sværest at finde det mod 89 og dette problem skaleres op jo større primfaktorer gruppens orden er sammensat af. Vi beregner elementerne T for hver faktorportens i N. For k mod 2 Beregn T=j(N/q)*P for 0<=j<=q-1, her er q så lig med 2 Dvs T=O,890/2*P= O,(4085,0), vi vil så finde N/q*Q =445*( 3210,4634)=O dvs: Vi har altså 0*(N/2*P) og dermed at k 0 =0 Dvs Q 1 =Q-0P=Q. Dvs k=0 mod 2 (med andre ord et lige tal) For k mod 5 Beregn T=j(N/q)*P for 0<=j<=q-1, her er q så lig med 5 og N/q=178 så vi har T=O,178P,356 P,534P,712P= T=O, (3474,2391),(2641,4651),( 2641,786),(3474,3046) N/5*Q=178*Q=(2641,4651) og vi ser at det er det samme som det tredieelement i T listen ovenfor og at det svarer til N/5*Q= 2*N/5*P altså k 0 =2, Det vil sige k=2 mod 5 For k mod christel@christel.dk christelbach.com - all rights reserved

19 Beregn T=j(N/q)*P for 0<=j<=q-1, her er q så lig med 89 og N/q=890/89=10 så vi har T=O,10P,20P,30P,40P,50P,60P,70P, 39*10P,40*10P,41*10P,42*10P,..,87*10P,8 8*10P = T=O, (3820,4000),( 5098,1859),( 3664, 2503), (819,5180). N/89*Q=10*Q=(819,5180). Det kan vi ved mange lange beregninger se er det samme som det element i T listen hvor j=42,altså 420*P ovenfor og det svarer til N/89*Q= 42*N/89*P altså k 0 =42, Det vil sige k=42 mod 89 Vi har derfor følgende kongruenser:k=0 mod 2, k=2 mod 5, og k=42 mod 89. Det løses med kinesisk restsætning til k=42. Som eksemplet viser giver større primtalsfaktorer længere beregninger, og det er da også grunden til at angrebet er velegnet især for punkter sammensat af små primtalspotenser. For et beskytte sig mod Pohlig-Hellman angrebet skal kan man også vælge punkter af sammensat orden hvor ordenen er sammensat af en stort primtal og men meget lille co faktor. 8. Suite B Suite B 7 er en amerikansk standard udgivet af National Security Agency(NSA) for sikker kommunikation på niveauet SECRET (svarende til dansk klassifikation HEMMELIGT). Standarden er godkendt af NIST der er den amerikanske standardiseringsinstitut National Institute of Standards and Technology. Der findes også en Suite A. Den er beregnet til særlig beskyttelse af sensitiv information (TOP SECRET) og indeholder fortrolige algoritmer. Denne standard vil ikke blive offentliggjort. Suite B indeholder en lang række dokumenter vedr. standarder for protokoller og algoritmer herunder bl.a. andet følgende dokumenter vedr. kryptografi med Elliptiske kurver. De refererer desuden til de af NIST anbefalede elliptiske kurver til kryptografisk brug. FIPS Elliptic Curve Digital Signature Algorithm (ECDSA) FIPS PUB (using the curves with 256 and 384-bit prime moduli) Implementationsguide til FIPS Suite B Implementers' Guide to FIPS (ECDSA) - February 2010 Matematiske rutiner til NIST kurver Companion document Mathematical Routines for NIST Prime Elliptic Curves christel@christel.dk christelbach.com - all rights reserved

20 NIST anbefalinger, standard IEEE P1363-Annex A (kommercielt produkt 149$) 8 Suite B indeholder bl.a. anbefaling eller krav om man vil, til hvilke domæneparametre herunder hvilke kurver anvendes til kryptografisk brug i FIPS appendix D. Jeg vil i denne gennemgang ikke se nærmere på protokolkrav på Suite B niveau og vil primært undersøge og anvende de anbefalede såkaldte NIST kurver til demonstrationsbrug. Implementationsguide og de optimerede matematiske rutiner er tilføjet for nylig og er generelt ikke anvendt her, men visse steder kommenteret i forbindelse med implementationsovervejelser. NIST anbefalinger Legemer NIST anbefaler følgende endelige legemer. 5 primlegemer og 5 binære legemer. Primlegemer for F p for følgende værdier af p: p = = p = = p = = p = = p = = Disse primmoduli er angivet på en speciel form kaldet generaliseret Mersenne form. Beregninger på modulus på denne form giver beregningsmæssige fordele. Et optimeret kryptosystem vil med stor fordel kunne implementere artimetik der udnytter disse frem for 8 ew+(esales)_standards_ieee&mem_type=customer&sweho=sbwsweb.ieee.org&swets= christel@christel.dk christelbach.com - all rights reserved

21 standard implementation der ville virke på ethvert primtal. Detaljer omkring denne optimering vil fremgå af guiden 9 hørende til Suite B, samt af FIPS Ideen er overordnet set at en binær baseret ekspansion giver særlige fordele hvor beregninger kan foretages i forenklet binære operationer. Fx er modulus for kurven P-192 skrevet som p = Det betyder at ethvert tal mindre end p 2 kan skrives på formen A=A 5 * A 4 * A 3 * A 2 * A 1 *2 64 +A 0 Her vil hvert A i så være et 64 bit tal, og det kan da betragtes som en konkatenering af 64-bit ord således A=(A 5 A 4 A 3 A 2 A 1 A 0 )). Modulus beregninger vil da kunne beregnes som en sum af små tal reduceret modulus p Vil vi f.eks beregne B = A mod p har vi at B= T + S 1 + S 2 + S 3 mod p hvor T=(A 2 A 1 A 0 ), S 1 =(A 3 A 3 ), S 2 =(A 4 A 4 0), S 3 =(A 5 A 5 A 5 ). Tilsvarende teknik virker på de andre primlegemer. Optimering på NIST Kurver numerisk eksempel Matematiske rutiner på p192 Beregn r= a mod p 192 r kan da beregnes som t + s1 + s2+s3 og ved efterfølgende subtraktion af op til tre multiplum af p 192 Så lad os tage et eksempel hvor a er repræsenteret ved 64 bit enheder med værdien 2305 (altså a6,a5,a4,a3,a2,a1,a0)=(0,0,0,2,3,0,5) Vi har da at T er (a2 a1 a0) = 305 Og S1=(a3 a3), s2=(a4 a4 0), S3 =(a5 a5 a5). Dvs: T=305, S1=22, S2=000, S3=000 T + S1+S2+S3= 327 der beregnes til at være: Så r= t + s1 + s2+s3 = 327= 3*2^(2*64)+ 2*2^(1*64) +7*2^(0*64) = Hvis vi i stedet beregner det normalt : a= 2305 angives som 64 bit giver: 2*2^(3*64)+ 3*2^(2*64)+ 0*2^(1*64) +5*2^(0*64)= Hvis vi modulerer det med p= = Får vi > mod ; Hvilket i Maple præcist giver Companion document Mathematical Routines for NIST Prime Elliptic Curves 21 christel@christel.dk christelbach.com - all rights reserved

22 Det ses altså at være langt enklere at regne via de optimerede rutiner. Binære legemer F = F F = F F = F F = F F = F Man vil her bemærke at det netop er disse legemer jeg beregnede antallet af punkter for i afsnittet under Elliptiske kurver over binære legemer. NIST kurver På disse legemer specificeres så kurver med tilfældigt valgte parameter der opfylder en række krav. På primlegemerne specificeres en kurve på hvert legeme. På de binære legemer specificeres både en tilfældig valgt kurve og en Koblitz kurve pr legeme. Kurvespecifikation kaldes også domæneparametre. Følgende værdier afgives for at muliggøre kryptografisk brug. Først for kurver over primlegemer; værdien af henholdes vis A og B for den elliptiske kurve på den korte Weierstrass form: Y 2 =X 3 + AX + B, samt koordinaterne for et basepunkt G - G x og G y. Desuden oplyses forskellige andre værdier til kontrol af kurvens egnethed, herunder antallet af punkter på kurven (kurvens orden) og to sammenhængende kontrolværdier, et seed S og et output c til verifikation af at kurven faktisk opfylder kravet om at være tilfældig. For kurver over binære legemer gives et reduktionspolynomium af grad m, koefficienterne A og B for en kurve på formen: y 2 + XY = X 3 +AX 2 +B, koordinaterne for at basepunkt G, G x og G y samt punktets orden. Dvs det t for hvilket tg=o Valg af reduktionspolynomium. Ved anvendelse af polynomialbasis repræsentation for F 2 m giver det en række muligheder for valg af reduktionspolynomium. Det forholder sig dog sådan at der findes en række meget konkrete anbefalinger for valg af disse. Ifølge IEEE , FIPS og ANSI X9.62 vælges så enkle reduktionspolynomier som muligt efter følgende princip: Hvis der findes et ireducibelt trinomium af grad m over F 2, X m + X k + 1, vælges dette, og da med så lille en værdi af k som muligt. Hvis dette ikke findes vælges der i stedet et pentanomium. X m + X k 3 + +X k 2 + X k med følgende kriterier for valg af k værdier. k 3 vælges så lille som muligt og for dette valg så lille et k 2 som muligt, og for disse værdier af k 3 og k 2 vælges så lille et k 1 som muligt. 22 christel@christel.dk christelbach.com - all rights reserved

23 Dette betyder for ovennævnte binære legemer ifølge Doche[1] 10, følgende valg af reduktionspolynomier: F X X 7 + +X 6 + X F X X F X X X 7 + X F X X F X X X 5 + X Generering og verifikation af domæne parametre Et af de centrale aspekter ved sikkerheden bag brug af EC til kryptografi er sikring af at kurverne som nævnt er valgt tilfældigt således at en udbyder af en krypteringsservice ikke kan vælge sig parametre der muliggør forskellige kendte angreb. Ifølge NIST og algoritmen 4.17 [5] genereres A og B på baggrund af et valgt F p ved hjælp af en hash funktion således at outputtet ikke kan være forhåndsvalgt ud fra en antagelse om at hash funktionen er en envejsfunktion med uforudsigeligt og entydigt resultat. Her er algoritmen beskrevet med SHA1 som det skal være ifølge fips Input: primtal p og en 160 bit hashfunktion H Output: et seed S og A og B for den elliptiske kurve E på kort Weierstrass form. 1. sæt t=loft(log 2 p), s = floor(t-1)/160, v= t-s* Vælg tilfældig bitstreng S af længde g>= 160 bit 3. beregn h=sha1(s), og lad r 0 være bitstrengen af længde v bit ved at tage de v bit længst til højre af h 4. lad R 0 være bitstrengen der er resultatet ved at sætte den bit længst til venstre til lad z være det tal hvis binære repræsentation er S 6. for i=1;i<=s;i++ 1. lad s i være g bit streng-repræsentationen af tallet (z+i) mod 2 g 2. Beregn R i = H(s i ) 7. Lad R være strengkonkateneringen af R i værdierne : R=R 0 R 1 R 2. R s 8. lad r være det tal hvis binære repræsentation er R 9. hvis r=0 eller hvis 4r + 27 = 0 mod p tilbage til 2. o g vælg ny bitstreng 10. Vælg tilfældig A og B i F p forskellig fra 0 så r*b 2 =A returner S,A og B. 10 Tabel s 216, kap 11.2 Finite fields of characteristic 2. Handbook of Elliptic and Hyperelliptic Curve Cryptography 23 christel@christel.dk christelbach.com - all rights reserved

24 De af NIST anbefalede kurver er alle genereret ved hjælp af SHA-1 Man kunne godt stille spørgsmål ved kvaliteten af dette valg, idet SHA-1 er kompromitteret. For at en hashfunktion kan betegnes som værdifuld skal entydigheden være sikker. Da ingen hashfunktioner af endelig længde pr konstruktion kan være kollisionsfri skal i praksis være så kollisionsfrie som muligt, og endnu vigtigere, det må ikke være muligt at forudsige resultatet af funktionen, så der f.eks. kan konstrueres en kollision På Crypto-2004 viste Xiaoyun Wang, Yiqun Lisa Yin, and Hongbo Yu at det er muligt at generere kollisioner væsentlig hurtigere end hidtil antaget med SHA-1. Ifølge Bruce Schneier 11 reduceres til 2^69 operationer frem for 2^80 I den seneste version af standarden, fips fra juni 2009, er de anbefalede kurver fortsat genereret med et specificeret 160 bit seed og SHA-1 anvendt til at dokumentere at parametrene er valgt pseudo-randomiseret. Det er altså en teoretisk mulighed at de af NIST anbefalede kurver til Suite B standarden er konstrueret så nogen har sikret sig parametre med for dem kendte genveje til angreb. Man kunne også stille spørgsmål ved sikkerheden i at anvende domæneparametre der er offentliggjorte og forlangt anvendt af kun den ene part i en kommunikation hvor den eneste sikkerhed for tilfældighed er en brudt hash algoritme. Omvendt har de anbefalede kurver nu i en årrække været offentligt tilgængelige og er blevet nøje gransket af utallige personer og eventuelt indbyggede svagheder måtte forventes at være fundet. Ønsker man at konstruere sine egne domæneparametre undgår man naturligvis at andre har indbygget et eller flere, af dem kendte, svagheder, omvendt vil da restere et arbejde med sikring af at kurverne lever op til kendte krav og kan modstå kendte angreb. Desuden vil den klassiske problemstilling altid lure i baggrunden at når man anvender hjemmekonstruerede parametre ikke er gennemprøvede på samme måde som kendte standarder, er der altid risiko for at overse oplagte problemer, ikke blot i konstruktionen, valg og test men naturligvis også i implementation. Verifikation NIST kurve eksempel over primlegeme, kaldet P-192 E(F p ) A= christel@christel.dk christelbach.com - all rights reserved

25 B er angivet som: B= p = 2^192-2^64-1 = Base punkt G er I fips og 3 angivet I hex til : Gx:188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012 Gy:07192b95 ffc8da ed 6b24cdd5 73f977a1 1e Det giver i decimal form: Gx: Gy: Det kan først efterprøves og bekræftes at punktet faktisk G ligger på kurven idet B kan verificeres at være lig med B=Gy^2 -Gx^3 (-A)*Gx mod p= ( )^2- ( )^3-(-3)*( ) mod = At kurven virkelig er pseudo-random skulle så kunne verificeres ved hjælp af det angivne seed S til en hashbaseret algoritme og sammenligne det med det angivne output c af denne. c tjener yderligere til at bekræfte at domæneparameteren, koefficienten B, opfylder kravet B 2 *c=-27(mod p ) Jeg vil derfor her ved hjælp af algoritmen angivet i appendix 6.5 fips-180-3, også specificeret i [5] s 176 forsøge at verificere at c og B er korrekte via 160 bit hashalgoritmen SHA-1. Verifikation af pseudo-randomisering Givet 160-bit seedet s, kan man verificere at koefficienterne A og B er beregnet fra den hashfunktionen SHA1 som følger Lad l være bitlængden af p, og definer v = ( l - 1) /160 (floor) w = l - 160v Beregn h := SHA-1(s). 2. Lad h0 være bitstrengen fremkommet ved at tage de w bil længst til højre af h 3. Lad z være heltallet hvis binære ekspansion er givet ved 160 bit strengen s 4. For i fra 1 til v do 4.1 Definer 160-bit strengen si to til at være den binære ekspanstion af (z + i) mod (2160 ). 4.2 Beregn hi :=SHA-1(si). 25 christel@christel.dk christelbach.com - all rights reserved

26 5. Lad h være bitstrengen fremkommet ved strengkonkatenering af h0, h1,..., hv som følger: h = h0 h1... hv. 6. Lad c være det heltal hvis binære ekspansion er givet ved bitstrengen h 7. Verificer at b 2 *c= -27 (mod p). Sha1 hashing af hexværdier Det viser sig til at det ikke er helt lige meget hvordan man tager hashværdien af de angivne hexværdier. Det er ikke specificeret hvordan hexværdien skal fortolkes og hvordan encodingen foregår. SHA1 er ganske vist standardiseret i Fips men mange forskellige implementationer er mulige og afhængig af valg af programmeringssprog. Det er fx afgørende at seedet ikke fortolkes som en tekststreng. Det kan dog heller ikke blot oversættes til et stort heltal. Efter en række forsøg er det lykkes at finde en fortolkning der giver det rigtige resultat ved at parse hexværdierne til et bytearray der så hashes blok for blok. Herunder et eksempel. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Globalization; using System.Security.Cryptography; namespace hashhex class Program public static byte[] FromHex(string s) byte[] ba = new byte[s.length / 2]; for (int i = 0; i < ba.length; i++) ba[i] = byte.parse(s.substring(2 * i, 2), NumberStyles.HexNumber); return ba; public static string HexSHA1(String s) HashAlgorithm alg = new SHA1Managed(); byte[] b = FromHex(s.Replace(" ", "")); alg.transformfinalblock(b, 0, b.length); return BitConverter.ToString(alg.Hash).Replace("-", ""); public static void Main(string[] args) Console.WriteLine(HexSHA1("bd d5c7fc dc45b59f a3b9ab8f 6a948bc5")); Console.WriteLine(HexSHA1("bd d5c7fc dc45b59f a3b9ab8f 6a948bc6")); Console.ReadKey(); Denne implementation herover virker, mens mit første forsøg - en implementation som vist i uddrag herunder, ikke virker. Den i hex angivne værdi s oversættes til et stort helttal, dette tal parses til et bytearray og sha1 værdien at disse printes ud i binært format. 26 christel@christel.dk christelbach.com - all rights reserved

Kryptografi med Elliptiske kurver

Kryptografi med Elliptiske kurver Kryptografi med Elliptiske kurver med perspektiv til Suite B CHRISTEL BACH KRYPTOLOGI C, MASTERPROJEKT, 2010 MASTER I KRYPTOLOGI ÅRHUS UNIVERSITET 1 christelbach.com - all rights reserved Kryptografi med

Læs mere

Integer Factorization

Integer Factorization Integer Factorization Per Leslie Jensen DIKU 2/12-2005 kl. 10:15 Overblik 1 Faktorisering for dummies Primtal og aritmetikkens fundamentalsætning Lille øvelse 2 Hvorfor er det interessant? RSA 3 Metoder

Læs mere

Kryptering kan vinde over kvante-computere

Kryptering kan vinde over kvante-computere Regional kursus i matematik i Aabenraa Institut for Matematik Aarhus Universitet matjph@math.au.dk 15. februar 2016 Oversigt 1 Offentlig-privat nøgle kryptering 2 3 4 Offentlig-privat nøgle kryptering

Læs mere

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

Note omkring RSA kryptering. Gert Læssøe Mikkelsen Datalogisk institut Aarhus Universitet Note omkring RSA kryptering. Gert Læssøe Mikkelsen Datalogisk institut Aarhus Universitet 3. april 2009 1 Kryptering med offentlige nøgler Indtil midt i 1970 erne troede næsten alle, der beskæftigede sig

Læs mere

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

Note omkring RSA kryptering. Gert Læssøe Mikkelsen Datalogisk institut Aarhus Universitet Note omkring RSA kryptering. Gert Læssøe Mikkelsen Datalogisk institut Aarhus Universitet 24. august 2009 1 Kryptering med offentlige nøgler Indtil midt i 1970 erne troede næsten alle, der beskæftigede

Læs mere

Af Marc Skov Madsen PhD-studerende Aarhus Universitet email: marc@imf.au.dk

Af Marc Skov Madsen PhD-studerende Aarhus Universitet email: marc@imf.au.dk Af Marc Skov Madsen PhD-studerende Aarhus Universitet email: marc@imf.au.dk 1 Besøgstjenesten Jeg vil gerne bruge lidt spalteplads til at reklamere for besøgstjenesten ved Institut for Matematiske Fag

Læs mere

Elliptisk Kurve Kryptografi. Jonas F. Jensen

Elliptisk Kurve Kryptografi. Jonas F. Jensen Elliptisk Kurve Kryptografi Jonas F. Jensen December 2007 Abstract Today we re using cryptography everytime whenever we re doing transactions online. Some have even adopted cryptography to sign their emails

Læs mere

Polynomier. Indhold. Georg Mohr-Konkurrencen. 1 Polynomier 2. 2 Polynomiumsdivision 4. 3 Algebraens fundamentalsætning og rødder 6

Polynomier. Indhold. Georg Mohr-Konkurrencen. 1 Polynomier 2. 2 Polynomiumsdivision 4. 3 Algebraens fundamentalsætning og rødder 6 Indhold 1 Polynomier 2 Polynomier 2 Polynomiumsdivision 4 3 Algebraens fundamentalsætning og rødder 6 4 Koefficienter 8 5 Polynomier med heltallige koefficienter 9 6 Mere om polynomier med heltallige koefficienter

Læs mere

Opgave 1 Regning med rest

Opgave 1 Regning med rest Den digitale signatur - anvendt talteori og kryptologi Opgave 1 Regning med rest Den positive rest, man får, når et helt tal a divideres med et naturligt tal n, betegnes rest(a,n ) Hvis r = rest(a,n) kan

Læs mere

Hyperelliptisk kurve kryptografi

Hyperelliptisk kurve kryptografi Christian Robenhagen Ravnshøj NKS November 2007 Elliptiske kurver Gruppelov på elliptisk kurve R P Q P Q R = 0. Elliptiske kurver Elliptisk kurve kryptografi Gruppelov giver krypto baseret på elliptisk

Læs mere

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

6. december. Motivation. Internettet: Login til DIKU (med password) Handel med dankort Fortrolig besked Digital signatur 6. december Talteoretiske algoritmer, RSA kryptosystemet, Primtalstest Motivation Definitioner Euclids algoritme Udvidet Euclid RSA kryptosystemet Randominserede algoritmer Rabin-Miller primtalstest Svært

Læs mere

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

Assembly Voting ApS. Kompagnistræde 6, København K CVR: Assembly Voting ApS Kompagnistræde 6, 2. 1208 København K CVR: 25600665 Afstemningssystem, Systembeskrivelse Assembly Votings systemer og hostingmiljøer er designet til at imødekomme såvel lovkrav som

Læs mere

Køreplan Matematik 1 - FORÅR 2005

Køreplan Matematik 1 - FORÅR 2005 Lineær algebra modulo n og kryptologi Køreplan 01005 Matematik 1 - FORÅR 2005 1 Introduktion Kryptologi er en ældgammel disciplin, som går flere tusinde år tilbage i tiden. Idag omfatter disciplinen mange

Læs mere

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

Matematik YY Foråret Kapitel 1. Grupper og restklasseringe. Matematik YY Foråret 2004 Elementær talteori Søren Jøndrup og Jørn Olsson Kapitel 1. Grupper og restklasseringe. Vi vil i første omgang betragte forskellige typer ligninger og søge efter heltalsløsninger

Læs mere

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

KRYPTOLOGI ( Litt. Peter Landrock & Knud Nissen : Kryptologi) KRYPTOLOGI ( Litt. Peter Landrock & Knud Nissen : Kryptologi) 1. Klassiske krypteringsmetoder 1.1 Terminologi klartekst kryptotekst kryptering dekryptering 1.2 Monoalfabetiske kryptosystemer 1.3 Additive

Læs mere

Konfidentialitet og kryptografi 31. januar, Jakob I. Pagter

Konfidentialitet og kryptografi 31. januar, Jakob I. Pagter Konfidentialitet og kryptografi 31. januar, 2009 Jakob I. Pagter Oversigt Kryptografi autenticitet vs. fortrolighed ubetinget vs. beregningsmæssig sikkerhed Secret-key fortrolighed Public-key fortrolighed

Læs mere

Matematisk modellering og numeriske metoder. Lektion 16

Matematisk modellering og numeriske metoder. Lektion 16 Matematisk modellering og numeriske metoder Lektion 16 Morten Grud Rasmussen 6. november, 2013 1 Interpolation [Bogens afsnit 19.3 side 805] 1.1 Interpolationspolynomier Enhver kontinuert funktion f på

Læs mere

Projekt 7.9 Euklids algoritme, primtal og primiske tal

Projekt 7.9 Euklids algoritme, primtal og primiske tal Projekter: Kapitel 7 Projekt 79 Euklids algoritme, primtal og primiske tal Projekt 79 Euklids algoritme, primtal og primiske tal Projektet giver et kig ind i metodee i modee talteori Det kan udbygges med

Læs mere

De rigtige reelle tal

De rigtige reelle tal De rigtige reelle tal Frank Villa 17. januar 2014 Dette dokument er en del af MatBog.dk 2008-2012. IT Teaching Tools. ISBN-13: 978-87-92775-00-9. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

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

Camp om Kryptering. Datasikkerhed, RSA kryptering og faktorisering. Rasmus Lauritsen. August 27, Camp om Kryptering Datasikkerhed, RSA kryptering og faktorisering Rasmus Lauritsen August 27, 2013 http://users-cs.au.dk/rwl/2013/sciencecamp Indhold Datasikkerhed RSA Kryptering Faktorisering Anvendelse

Læs mere

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

Mordell s Sætning. Henrik Christensen og Michael Pedersen. 17. december 2003 Mordell s Sætning Henrik Christensen og Michael Pedersen 17. december 2003 Mordells sætning siger at gruppen C(Q) af rationale punkter over en ellipse C er en endeligt frembragt abelsk gruppe. Elliptiske

Læs mere

Fejlkorrigerende koder, secret sharing (og kryptografi)

Fejlkorrigerende koder, secret sharing (og kryptografi) Fejlkorrigerende koder, secret sharing (og kryptografi) Olav Geil Afdeling for Matematiske Fag Aalborg Universitet Møde for Matematiklærere i Viborg og Ringkøbing amter 7. november, 2006 Oversigt Fejlkorrigerende

Læs mere

1 Sætninger om hovedidealområder (PID) og faktorielle

1 Sætninger om hovedidealområder (PID) og faktorielle 1 Sætninger om hovedidealområder (PID) og faktorielle ringe (UFD) 1. Introducér ideal, hovedideal 2. I kommutativt integritetsområde R introduceres primelement, irreducibelt element, association 3. Begrebet

Læs mere

Polynomium Et polynomium. Nulpolynomiet Nulpolynomiet er funktionen der er konstant nul, dvs. P(x) = 0, og dets grad sættes per definition til.

Polynomium Et polynomium. Nulpolynomiet Nulpolynomiet er funktionen der er konstant nul, dvs. P(x) = 0, og dets grad sættes per definition til. Polynomier Polynomier Polynomium Et polynomium P(x) = a n x n + a n x n +... + a x + a 0 Disse noter giver en introduktion til polynomier, centrale sætninger om polynomiumsdivision, rødder og koefficienter

Læs mere

Abstrakte datatyper C#-version

Abstrakte datatyper C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype

Læs mere

Noter om polynomier, Kirsten Rosenkilde, Marts Polynomier

Noter om polynomier, Kirsten Rosenkilde, Marts Polynomier Noter om polynomier, Kirsten Rosenkilde, Marts 2006 1 Polynomier Disse noter giver en kort introduktion til polynomier, og de fleste sætninger nævnes uden bevis. Undervejs er der forholdsvis nemme opgaver,

Læs mere

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

t a l e n t c a m p d k Talteori Anne Ryelund Anders Friis 16. juli 2014 Slide 1/36 Slide 1/36 sfaktorisering Indhold 1 2 sfaktorisering 3 4 5 Slide 2/36 sfaktorisering Indhold 1 2 sfaktorisering 3 4 5 Slide 3/36 1) Hvad er Taleteori? sfaktorisering Slide 4/36 sfaktorisering 1) Hvad er

Læs mere

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer BRP 13.9.2006 Tal. Om computer-repræsentation og -manipulation. Logaritmer 1. Opgaverne til i dag dækker det meste af stoffet 2. Resten af stoffet logaritmer binære træer 3. Øvelse ny programmeringsopgave

Læs mere

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

Vi indleder med at minde om at ( a) = a gælder i enhver gruppe. 0.1: Ringe 1. Definition: Ring En algebraisk struktur (R, +,, 0,, 1) kaldes en ring hvis (R, +,, 0) er en kommutativ gruppe og (R,, 1) er en monoide og hvis er såvel venstre som højredistributiv mht +.

Læs mere

Grundlæggende køretidsanalyse af algoritmer

Grundlæggende køretidsanalyse af algoritmer Grundlæggende køretidsanalyse af algoritmer Algoritmers effektivitet Størrelse af inddata Forskellige mål for køretid Store -notationen Klassiske effektivitetsklasser Martin Zachariasen DIKU 1 Algoritmers

Læs mere

Grundlæggende Matematik

Grundlæggende Matematik Grundlæggende Matematik Hayati Balo, AAMS August 2012 1. Matematiske symboler For at udtrykke de verbale udsagn matematisk korrekt, så det bliver lettere og hurtigere at skrive, indføres en række matematiske

Læs mere

Matematik. 1 Matematiske symboler. Hayati Balo,AAMS. August, 2014

Matematik. 1 Matematiske symboler. Hayati Balo,AAMS. August, 2014 Matematik Hayati Balo,AAMS August, 2014 1 Matematiske symboler For at udtrykke de verbale udsagn matematisk korrekt, så det bliver lettere og hurtigere at skrive, indføres en række matematiske symboler.

Læs mere

Fagets IT Introduktion til MATLAB

Fagets IT Introduktion til MATLAB Fagets IT Introduktion til MATLAB Mads G. Christensen mgc@kom.auc.dk Afdeling for Kommunikationsteknologi, Aalborg Universitet. MATLAB 2002 p.1/28 Kursusoversigt 1. Introduktion, matrix-indeksering, -operationer

Læs mere

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

Kursusgang 3: Autencificering & asymmetrisk kryptering. Krav til autentificering. Kryptering som værktøj ved autentificering. Krav til autentificering Vi kan acceptere, at modtager (og måske afsender) skal bruge hemmelig nøgle Krav til metode: må ikke kunne brydes på anden måde end ved udtømmende søgning længde af nøgler/hemmeligheder/hashkoder

Læs mere

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

Talteori. Teori og problemløsning. Indhold. Talteori - Teori og problemløsning, marts 2014, Kirsten Rosenkilde. Indhold 1 Delelighed, primtal og primfaktoropløsning Omskrivning vha. kvadratsætninger 4 3 Antal divisorer 6 4 Største fælles divisor og Euklids algoritme 7 5 Restklasser 9 6 Restklasseregning og kvadratiske

Læs mere

Fredag 12. januar David Pisinger

Fredag 12. januar David Pisinger Videregående Algoritmik, DIKU 2006/07 Fredag 2. januar David Pisinger Kryptering Spartanere (500 f.kr.) strimmelrulle viklet omkring cylinder Julius Cæsar: substituering af bogstaver [frekvensanalyse]

Læs mere

Matematikken bag kryptering og signering NemID RSA Foredrag i UNF

Matematikken bag kryptering og signering NemID RSA Foredrag i UNF Matematikken bag kryptering og signering NemID RSA Foredrag i UNF Disposition 1 PKI - Public Key Infrastructure Symmetrisk kryptografi Asymmetrisk kryptografi 2 Regning med rester Indbyrdes primiske tal

Læs mere

Med udgangspunkt i FIPS-197-standarden AES, baseret på Rijndael-algoritmen. Af Mathias Vestergaard

Med udgangspunkt i FIPS-197-standarden AES, baseret på Rijndael-algoritmen. Af Mathias Vestergaard Med udgangspunkt i FIPS-97-standarden AES, baseret på Rijndael-algoritmen Af Mathias Vestergaard F O R O R D " " " # # " $ # % '(%) '(%) %* %* +,-.), ) ( " $ 0 2 2 + 3 $ ' {0000} $, AA ) 4555 67 +8 9 :;

Læs mere

Bits, bit operationer, integers og floating point

Bits, bit operationer, integers og floating point Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter

Læs mere

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

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 Affine rum I denne note behandles kun rum over R. Alt kan imidlertid gennemføres på samme måde over C eller ethvert andet legeme. Et underrum U R n er karakteriseret ved at det er en delmængde som er lukket

Læs mere

Jeg foretager her en kort indføring af polynomier over såvel de reelle som

Jeg foretager her en kort indføring af polynomier over såvel de reelle som Polynomier, rødder og division Sebastian Ørsted 20. november 2016 Jeg foretager her en kort indføring af polynomier over såvel de reelle som de komplekse tal, hvor fokus er på at opbygge værktøjer til

Læs mere

2. Gruppen af primiske restklasser.

2. Gruppen af primiske restklasser. Primiske restklasser 2.1 2. Gruppen af primiske restklasser. (2.1) Setup. I det følgende betegner n et naturligt tal større end 1. Den additive gruppe af restklasser modulo n betegnes Z/n, og den multiplikative

Læs mere

Omskrivningsregler. Frank Nasser. 10. december 2011

Omskrivningsregler. Frank Nasser. 10. december 2011 Omskrivningsregler Frank Nasser 10. december 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

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

Moderne kryptografi. Olav Geil Institut for Matematiske Fag Aalborg Universitet. Elektronik og IT-Gruppen 24. april 2008 Moderne kryptografi Olav Geil Institut for Matematiske Fag Aalborg Universitet Elektronik og IT-Gruppen 24. april 2008 Matematik og ingeniørvidenskab Uden ingeniørvidenskab var komplekse tal blot en kuriøsitet

Læs mere

Foredrag i Eulers Venner 30. nov. 2004

Foredrag i Eulers Venner 30. nov. 2004 BSD-prosper.tex Birch og Swinnerton-Dyer formodningen Johan P. Hansen 26/11/2004 13:34 p. 1/20 Birch og Swinnerton-Dyer formodningen Foredrag i Eulers Venner 30. nov. 2004 Johan P. Hansen matjph@imf.au.dk

Læs mere

Baggrundsnote om logiske operatorer

Baggrundsnote om logiske operatorer Baggrundsnote om logiske operatorer Man kan regne på udsagn ligesom man kan regne på tal. Regneoperationerne kaldes da logiske operatorer. De tre vigtigste logiske operatorer er NOT, AND og. Den første

Læs mere

RSA-kryptosystemet. RSA-kryptosystemet Erik Vestergaard

RSA-kryptosystemet. RSA-kryptosystemet Erik Vestergaard RSA-kryptosystemet RSA-kryptosystemet Erik Vestergaard Erik Vestergaard www.matematikfysik.dk Erik Vestergaard, 007. Billeder: Forside: istock.com/demo10 Erik Vestergaard www.matematikfysik.dk 3 1. Indledning

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM534 Rolf Fagerberg 1 / 18 Mål Målet for disse slides er at beskrive, hvordan tal repræsenteres som bitmønstre i computere. Dette emne er et uddrag af kurset DM548 Computerarkitektur

Læs mere

Lidt alment om vektorrum et papir som grundlag for diskussion

Lidt alment om vektorrum et papir som grundlag for diskussion Definition : vektorrum, vektorer Et vektorrum er en mængde af elementer med operationerne sum (+) og numerisk multiplikation (), så følgende regler gælder for alle a, b, c og for alle reelle tal s, t R.

Læs mere

Datastrukturer (recap)

Datastrukturer (recap) Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang

Læs mere

Kursusgang 3 Matrixalgebra Repetition

Kursusgang 3 Matrixalgebra Repetition Kursusgang 3 Repetition - froberg@mathaaudk http://peoplemathaaudk/ froberg/oecon3 Institut for Matematiske Fag Aalborg Universitet 12 september 2008 1/12 Lineære ligningssystemer Et lineært ligningssystem

Læs mere

RSA Kryptosystemet. Kryptologi ved Datalogisk Institut, Aarhus Universitet

RSA Kryptosystemet. Kryptologi ved Datalogisk Institut, Aarhus Universitet RSA Kryptosystemet Kryptologi ved Datalogisk Institut, Aarhus Universitet 1 Kryptering med RSA Her følger først en kort opridsning af RSA kryptosystemet, som vi senere skal bruge til at lave digitale signaturer.

Læs mere

Komplekse tal. Mikkel Stouby Petersen 27. februar 2013

Komplekse tal. Mikkel Stouby Petersen 27. februar 2013 Komplekse tal Mikkel Stouby Petersen 27. februar 2013 1 Motivationen Historien om de komplekse tal er i virkeligheden historien om at fjerne forhindringerne og gøre det umulige muligt. For at se det, vil

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Introduktion til Kryptologi

Introduktion til Kryptologi Introduktion til Kryptologi September 22, 2014 Kryptologi Datasikkerhed Sikker kommunikation over usikre kanaler Kryptografi: Bygge systemer Kryptoanalyse: Bryde systemer Avancerede Protokoller Data er

Læs mere

Teoretiske Øvelsesopgaver:

Teoretiske Øvelsesopgaver: Teoretiske Øvelsesopgaver: TØ-Opgave 1 Subtraktion division i legemer: Er subtraktion division med elementer 0 i legemer veldefinerede, eller kan et element b have mere end ét modsat element -b eller mere

Læs mere

Indhold. 1 Indledning 2 1.1 Baggrund... 2

Indhold. 1 Indledning 2 1.1 Baggrund... 2 Indhold 1 Indledning 2 1.1 Baggrund.................................. 2 2 Elliptisk kurve 3 2.1 Gruppeoperationen på E.......................... 4 2.1.1 sjove punkter på E........................ 8 2.2

Læs mere

TALTEORI Ligninger og det der ligner.

TALTEORI Ligninger og det der ligner. Ligninger og det der ligner, december 006, Kirsten Rosenkilde 1 TALTEORI Ligninger og det der ligner. Disse noter forudsætter et grundlæggende kendskab til talteori som man kan få i Marianne Terps og Peter

Læs mere

Chapter 3. Modulpakke 3: Egenværdier. 3.1 Indledning

Chapter 3. Modulpakke 3: Egenværdier. 3.1 Indledning Chapter 3 Modulpakke 3: Egenværdier 3.1 Indledning En vektor v har som bekendt både størrelse og retning. Hvis man ganger vektoren fra højre på en kvadratisk matrix A bliver resultatet en ny vektor. Hvis

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Grundlæggende Matematik

Grundlæggende Matematik Grundlæggende Matematik Hayati Balo, AAMS Juli 2013 1. Matematiske symboler For at udtrykke de verbale udsagn matematisk korrekt, så det bliver lettere og hurtigere at skrive, indføres en række matematiske

Læs mere

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

Talteori. Teori og problemløsning. Indhold. Talteori - Teori og problemløsning, august 2013, Kirsten Rosenkilde. Indhold 1 Delelighed, primtal og primfaktoropløsning Omskrivning vha. kvadratsætninger 4 3 Antal divisorer 6 4 Største fælles divisor og Euklids algoritme 7 5 Restklasser 9 6 Restklasseregning og kvadratiske

Læs mere

Sikre Beregninger. Kryptologi ved Datalogisk Institut, Aarhus Universitet

Sikre Beregninger. Kryptologi ved Datalogisk Institut, Aarhus Universitet Sikre Beregninger Kryptologi ved Datalogisk Institut, Aarhus Universitet 1 Introduktion I denne note skal vi kigge på hvordan man kan regne på data med maksimal sikkerhed, dvs. uden at kigge på de tal

Læs mere

Københavns Universitet, Det naturvidenskabelige Fakultet. Afleveringsopgave 1

Københavns Universitet, Det naturvidenskabelige Fakultet. Afleveringsopgave 1 Københavns Universitet, Det naturvidenskabelige Fakultet 1 Lineær Algebra (LinAlg) Afleveringsopgave 1 Eventuelle besvarelser laves i grupper af - 3 personer og afleveres i to eksemplarer med 3 udfyldte

Læs mere

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

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

Divisorer. Introduktion. Divisorer og delelighed. Divisionsalgoritmen. Definition (Divisor) Lad d og n være hele tal. Hvis der findes et helt tal q så Introduktion 1) Hvad er Taleteori? Læren om de hele tal Primtal 2) Formalistisk struktur Definition Lemma Divisorer Definition (Divisor) Lad d og n være hele tal Hvis der findes et helt tal q så d q =

Læs mere

Matematisk modellering og numeriske metoder. Lektion 15

Matematisk modellering og numeriske metoder. Lektion 15 Matematisk modellering og numeriske metoder Lektion 15 Morten Grud Rasmussen 1. november, 2013 1 Numerisk analyse [Bogens afsnit 19.1 side 788] 1.1 Grundlæggende numerik Groft sagt handler numerisk analyse

Læs mere

Undersøgende aktivitet om primtal. Af Petur Birgir Petersen

Undersøgende aktivitet om primtal. Af Petur Birgir Petersen Undersøgende aktivitet om primtal. Af Petur Birgir Petersen Definition: Et primtal er et naturligt tal større end 1, som kun 1 og tallet selv går op i. Eksempel 1: Tallet 1 ikke et primtal fordi det ikke

Læs mere

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

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål

Læs mere

Andengradsligninger. Frank Nasser. 12. april 2011

Andengradsligninger. Frank Nasser. 12. april 2011 Andengradsligninger Frank Nasser 12. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette

Læs mere

ØVELSE 3A. I SAS kan man både bruge {}, [] og () som paranteser til index.

ØVELSE 3A. I SAS kan man både bruge {}, [] og () som paranteser til index. ØVELSE 3A I denne øvelse gennemgår vi: Flere funktioner - udvalgte tilfældigtals generatorer i SAS Eksempler på anvendelse af SAS til statistisk analyse Formål Du får brug for de træk ved SAS-systemet,

Læs mere

Note om endelige legemer

Note om endelige legemer Note om endelige legemer Leif K. Jørgensen 1 Legemer af primtalsorden Vi har i Lauritzen afsnit 2.1.1 set følgende: Proposition 1 Lad n være et positivt helt tal. Vi kan da definere en komposition + på

Læs mere

i x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0

i x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0 BAndengradspolynomier Et polynomium er en funktion på formen f ( ) = an + an + a+ a, hvor ai R kaldes polynomiets koefficienter. Graden af et polynomium er lig med den højeste potens af, for hvilket den

Læs mere

DesignMat Uge 1 Gensyn med forårets stof

DesignMat Uge 1 Gensyn med forårets stof DesignMat Uge 1 Gensyn med forårets stof Preben Alsholm Efterår 2010 1 Hovedpunkter fra forårets pensum 11 Taylorpolynomium Taylorpolynomium Det n te Taylorpolynomium for f med udviklingspunkt x 0 : P

Læs mere

Matematiske metoder - Opgavesæt

Matematiske metoder - Opgavesæt Matematiske metoder - Opgavesæt Anders Friis, Anne Ryelund, Mads Friis, Signe Baggesen 24. maj 208 Beskrivelse af opgavesættet I dette opgavesæt vil du støde på opgaver, der er markeret med enten 0, eller

Læs mere

Besvarelser til Calculus Ordinær Eksamen Juni 2019

Besvarelser til Calculus Ordinær Eksamen Juni 2019 Besvarelser til Calculus Ordinær Eksamen - 14. Juni 2019 Mikkel Findinge Bemærk, at der kan være sneget sig fejl ind. Kontakt mig endelig, hvis du skulle falde over en sådan. Dette dokument har udelukkende

Læs mere

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (i mandags) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?

Læs mere

π can never be expressed in numbers. William Jones og John Machins algoritme til beregning af π

π can never be expressed in numbers. William Jones og John Machins algoritme til beregning af π can never be expressed in numbers. William Jones og John Machins algoritme til beregning af. Oprindelsen til symbolet Første gang vi møder symbolet som betegnelse for forholdet mellem en cirkels omkreds

Læs mere

Kvadratiske matricer. enote Kvadratiske matricer

Kvadratiske matricer. enote Kvadratiske matricer enote enote Kvadratiske matricer I denne enote undersøges grundlæggende egenskaber ved mængden af kvadratiske matricer herunder indførelse af en invers matrix for visse kvadratiske matricer. Det forudsættes,

Læs mere

Regning. Mike Vandal Auerbach ( 7) 4x 2 y 2xy 5. 2x + 4 = 3. (x + 3)(2x 1) = 0. (a + b)(a b) a 2 + b 2 2ab.

Regning. Mike Vandal Auerbach ( 7) 4x 2 y 2xy 5. 2x + 4 = 3. (x + 3)(2x 1) = 0. (a + b)(a b) a 2 + b 2 2ab. Mike Vandal Auerbach Regning + 6 ( 7) (x + )(x 1) = 0 x + = 7 + x y xy 5 7 + 5 (a + (a a + b ab www.mathematicus.dk Regning 1. udgave, 018 Disse noter er en opsamling på generelle regne- og algebraiske

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM534 Rolf Fagerberg Mål Målet for disse slides er at beskrive, hvordan tal repræsenteres som bitmønstre i computere. Dette emne er et uddrag af kurset DM548 Computerarkitektur og

Læs mere

10. Nogle diofantiske ligninger.

10. Nogle diofantiske ligninger. Diofantiske ligninger 10.1 10. Nogle diofantiske ligninger. (10.1). I dette kapitel betragtes nogle diofantiske ligninger, specielt nogle af de ligninger, der kan behandles via kvadratiske talringe. Ligningerne

Læs mere

Andengradsligninger. Frank Nasser. 11. juli 2011

Andengradsligninger. Frank Nasser. 11. juli 2011 Andengradsligninger Frank Nasser 11. juli 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2 DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Fortroligt dokument. Matematisk projekt

Fortroligt dokument. Matematisk projekt Fortroligt dokument Matematisk projekt Briefing til Agent 00-DiG Velkommen til Kryptoafdeling 1337, dette er din første opgave. Det lykkedes agenter fra Afdelingen for Virtuel Efterretning (AVE) at opsnappe

Læs mere

Matematikken bag kryptering og signering RSA

Matematikken bag kryptering og signering RSA Matematikken bag kryptering og signering RSA Oversigt 1 Indbyrdes primiske tal 2 Regning med rester 3 Kryptering og signering ved hjælp af et offentligt nøgle kryptosystem RSA Indbyrdes primiske hele tal

Læs mere

π er irrationel Frank Nasser 10. december 2011

π er irrationel Frank Nasser 10. december 2011 π er irrationel Frank Nasser 10. december 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Fejlkorligerende køder Fejlkorrigerende koder

Fejlkorligerende køder Fejlkorrigerende koder Fejlkorligerende køder Fejlkorrigerende koder Olav Geil Skal man sende en fødselsdagsgave til fætter Børge, så pakker man den godt ind i håb om, at kun indpakningen er beskadiget ved modtagelsen. Noget

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Tirsdag den 27. maj 2003, kl. 9.00 3.00 Opgave (25%) For konstanten π = 3.4592... gælder identiteten π 2 6 =

Læs mere

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Programmering Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Oversigt Undervisningen Hvad er programmering Hvordan er et program organiseret? Programmering og fysik Nobelprisen

Læs mere

Ekspertudtalelse om kryptering

Ekspertudtalelse om kryptering Ekspertudtalelse om kryptering Professor Lars R. Knudsen Opsummerering I konsulentkontrakt med rekvisitionsnummer 62010142 mellem Digitaliseringsstyrelsen og undertegnede bedes om bistand til ekspertudtalelse

Læs mere

Datastrukturer (recap)

Datastrukturer (recap) Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang

Læs mere

Nøglehåndtering. Sikkerhed04, Aften

Nøglehåndtering. Sikkerhed04, Aften Basalt problem Al kryptografisk sikkerhed er baseret på nøgler som ikke er kryptografisk beskyttet I stedet må disse nøgler beskyttes fysisk 2 Løsninger Passwords noget du ved Hardware noget du har Biometri

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE. Udfordring

ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE. Udfordring ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE Udfordring INDHOLDSFORTEGNELSE 1. Forløbsbeskrivelse... 3 1.1 Overordnet beskrivelse tre sammenhængende forløb... 3 1.2 Resume... 5 1.3 Rammer

Læs mere

4. Snittets kædebrøksfremstilling og dets konvergenter

4. Snittets kædebrøksfremstilling og dets konvergenter Dette er den fjerde af fem artikler under den fælles overskrift Studier på grundlag af programmet SKALAGENERATOREN (forfatter: Jørgen Erichsen) 4. Snittets kædebrøksfremstilling og dets konvergenter Vi

Læs mere

Tilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.

Tilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge. Denne guide er oprindeligt udgivet på Eksperten.dk Tilfældige tal Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge. Den forudsætter

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

qwertyuiopåasdfghjklæøzxcvbnmqw ertyuiopåasdfghjklæøzxcvbnmqwert yuiopåasdfghjklæøzxcvbnmqwertyui Polynomier opåasdfghjklæøzxcvbnmqwertyuiopå

qwertyuiopåasdfghjklæøzxcvbnmqw ertyuiopåasdfghjklæøzxcvbnmqwert yuiopåasdfghjklæøzxcvbnmqwertyui Polynomier opåasdfghjklæøzxcvbnmqwertyuiopå qwertyuiopåasdfghjklæøzxcvbnmqw ertyuiopåasdfghjklæøzxcvbnmqwert yuiopåasdfghjklæøzxcvbnmqwertyui Polynomier opåasdfghjklæøzxcvbnmqwertyuiopå Kort gennemgang af polynomier og deres egenskaber. asdfghjklæøzxcvbnmqwertyuiopåasd

Læs mere