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 1 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.4 indeholder flere smårettelser samt udvidede eksempler på pohlighellmann 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 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 christelbach.com - all rights reserved

4 ANTALLET AF PUNKTER PÅ BINÆRE KURVER #EE(FF22mm ) SCHOOFS ALGORITME 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 christelbach.com - all rights reserved

5 ECDSA DIGITAL SIGNATUR MED ELLIPTISKE KURVER Lille ECDSA eksempel 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: christelbach.com - all rights reserved

6 Danske standarder Studieordning 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 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 FF pp hvis ordenen er et primtal og FF pp nn hvis ordenen er en primtalspotens. Man ser også betegnelsen GGGG pp nn da disse legemer også kan kaldes Galois legemer. Har vi et legeme FF pp nn 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 FF pp er defineret som EE(FF pp ) = (xx, yy): xx, yy FF pp hvvvvvv yy 2 = xx 3 + AAAA + BB OO hvor diskriminanten 4A B 2 er forskellig fra nul og A og B ligger i F p. Betegnelsen OO 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 + OO= OO+ P = P. Der gælder ligeledes at addition af punkter P+Q = Q+P = R, hvor både P og Q ligger i EE(FF pp ) giver et nyt punkt R der også ligger i EE FF pp. 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) = OO. Dermed er kravene opfyldt for at EE(FF pp ) er en endelig gruppe. Vi definerer k*p som P+P+P+ +P i alt k P er lagt sammen med punkt addition. 7 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 mm. FF 2 mm kaldes også binære legemer. Elliptiske kurver over binære legemer vælges på formen Nonsupersingulær: yy 2 + xxxx = xx 3 + AAxx 2 + BB hvor A er 0 eller 1, B!=0, Eller supersingulær: yy 2 + yy = xx 3 + AAxx + BB. 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 FF 2 mm for et primtal m. Det betyder at man ved at anvende en såkaldt frobenius mapping (der er en homomorfi af EE(FF 2 mm ) 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 EE(FF 2 mm ) 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. FF 2 mm 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 FF 2 mm kan skrives på formen aa 0 αα 0 + aa 1 αα 1 + aa 2 αα aa mm 1 αα mm 1 hvor aa ii 0,1 Vi har altså en basis αα 0, αα 1, αα 2,, αα mm 1 af FF 2 mm over FF 2 Polynomial basis repræsentation, Reduktionspolynomium Et irreducibelt polynomium af grad m over FF 2 definerer en polynomial basis repræsentation af FF 2 mm 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 ff(xx) = xx mm + tt mm 1 xx mm tt 2 xx 2 + tt 1 xx + tt 0 hvor tt ii 0,1 for i=0,1,2 m-1. 3 Companion document Mathematical Routines for NIST Prime Elliptic Curves 8 christelbach.com - all rights reserved

9 Elementer i legemet: Det endelige legeme FF 2 mm betsår af alle polynomier af grad mindre end m. Dette kan skrives således: FF 2 mm = aa mm 1 xx mm aa 1 xx + aa 0 aa ii 0,1 Vi kan for det enkelte element aa mm 1 xx mm aa 1 xx + aa 0 anvende den kortere form (aa mm 1 aa 1 aa 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 FF 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 FF qq, et punkt P på kurven af orden n, PP EE(FF qq ) og et andet punkt på kurven QQ = tttt hvor 0 tt nn 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 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 yy 2 + yy = xx 3 + AAxx + BB. 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 OO) være en generator. 10 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 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 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 #EE(FF 22 mm ) 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 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 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 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 = OO 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 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 NN = qq 0 ee 0 qq 1 ee 1 qq 2 ee 2. qq ii ee ii 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 qq ii ee ii 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 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 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 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: pp = = pp = = pp = = pp = = pp = = 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= 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 VEJLEDER: JØRGEN BRANDT 1 christel@christel.dk christelbach.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Talteori: Euklids algoritmer, modulær aritmetik

Talteori: Euklids algoritmer, modulær aritmetik Talteori: r, modulær aritmetik Videregående algoritmik Cormen et al. 31.1 31.4 Tirsdag den 6. januar 2009 1 1 2 Restklasseringene modulo n Grupper og undergrupper Modulær division Divisorer De hele tal

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

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

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

Talteoriopgaver Træningsophold ved Sorø Akademi 2007

Talteoriopgaver Træningsophold ved Sorø Akademi 2007 Talteoriopgaver Træningsophold ved Sorø Akademi 2007 18. juli 2007 Opgave 1. Vis at når a, b og c er positive heltal, er et sammensat tal. Løsningsforslag: a 4 + b 4 + 4c 4 + 4a 3 b + 4ab 3 + 6a 2 b 2

Læs mere

Periodiske kædebrøker eller talspektre en introduktion til programmet periodisktalspektrum

Periodiske kædebrøker eller talspektre en introduktion til programmet periodisktalspektrum Jørgen Erichsen Periodiske kædebrøker eller talspektre en introduktion til programmet periodisktalspektrum I artikelserien Studier på grundlag af programmet SKALAGENERATOREN kommer jeg bl.a. ind på begrebet

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

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

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

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

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

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

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

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

Affine - et krypteringssystem

Affine - et krypteringssystem Affine - et krypteringssystem Matematik, når det er bedst Det Affine Krypteringssystem (Affine Cipher) Det Affine Krypteringssystem er en symmetrisk monoalfabetisk substitutionskode, der er baseret på

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

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

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

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

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

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

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

Selvstudium 1, Diskret matematik

Selvstudium 1, Diskret matematik Selvstudium 1, Diskret matematik Matematik på første studieår for de tekniske og naturvidenskabelige uddannelser Aalborg Universitet I dette selfstudium interesserer vi os alene for tidskompleksitet. Kompleksitet

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

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

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

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

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

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

Eulers sætning Matematikken bag kryptering og signering v.hj.a. RSA Et offentlig nøgle krypteringssytem Eulers sætning Matematikken bag kryptering og signering v.hj.a. RSA Et offentlig nøgle krypteringssytem Johan P. Hansen 18. april 2013 Indhold 1 Indbyrdes primiske hele tal 1 2 Regning med rester 3 3 Kryptering

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

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

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

Endnu mere om tilfældige tal

Endnu mere om tilfældige tal Denne guide er oprindeligt udgivet på Eksperten.dk Endnu mere om tilfældige tal Denne artikel bygger oven på de to forrige artikler om tilfældige tal. Den indeholder lidt matematik og anvendelse på PHP

Læs mere

19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse.

19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse. 19 Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse. Sammenligning af hashtabeller og søgetræer. 281 Hashing-problemet (1). Vi ønsker at afbilde n objekter på en tabel

Læs mere

Matricer og lineære ligningssystemer

Matricer og lineære ligningssystemer Matricer og lineære ligningssystemer Grete Ridder Ebbesen Virum Gymnasium Indhold 1 Matricer 11 Grundlæggende begreber 1 Regning med matricer 3 13 Kvadratiske matricer og determinant 9 14 Invers matrix

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

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

Matematisk induktion

Matematisk induktion Induktionsbeviser MT01.0.07 1 1 Induktionsbeviser Matematisk induktion Sætninger der udtaler sig om hvad der gælder for alle naturlige tal n N, kan undertiden bevises ved matematisk induktion. Idéen bag

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

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

π 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

Tip til 1. runde af Georg Mohr-Konkurrencen - Talteori, Kirsten Rosenkilde. Opgave 1. Hvor mange af følgende fem tal er delelige med 9?

Tip til 1. runde af Georg Mohr-Konkurrencen - Talteori, Kirsten Rosenkilde. Opgave 1. Hvor mange af følgende fem tal er delelige med 9? Tip til 1. runde af Talteori Talteori handler om de hele tal, og særligt om hvornår et helt tal er deleligt med et andet. Derfor spiller primtallene en helt central rolle i talteori, hvilket vi skal se

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

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

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

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

DANMARKS TEKNISKE UNIVERSITET

DANMARKS TEKNISKE UNIVERSITET DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler

Læs mere

Introduktion til funktioner, moduler og scopes i Python

Introduktion til funktioner, moduler og scopes i Python Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for

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

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

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

Gruppeteori. Michael Knudsen. 8. marts For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel.

Gruppeteori. Michael Knudsen. 8. marts For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel. Gruppeteori Michael Knudsen 8. marts 2005 1 Motivation For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel. Eksempel 1.1. Lad Z betegne mængden af de hele tal, Z = {..., 2, 1, 0,

Læs mere

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

sætning: Hvis a og b er heltal da findes heltal s og t så gcd(a, b) = sa + tb. sætning: Hvis a og b er heltal da findes heltal s og t så gcd(a, b) = sa + tb. lemma: Hvis a, b og c er heltal så gcd(a, b) = 1 og a bc da vil a c. lemma: Hvis p er et primtal og p a 1 a 2 a n hvor hvert

Læs mere