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 https://sbwsweb.ieee.org/ecustomercme_enu/start.swe?swecmd=gotoview&sweview=catalog+vi ew+(esales)_standards_ieee&mem_type=customer&sweho=sbwsweb.ieee.org&swets= christelbach.com - all rights reserved

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

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

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

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

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

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

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

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

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

Algebra. Dennis Pipenbring, 10. februar 2012. matx.dk

Algebra. Dennis Pipenbring, 10. februar 2012. matx.dk matx.dk Algebra Dennis Pipenbring, 10. februar 2012 nøgleord andengradsligning, komplekse tal, ligningsløsning, ligningssystemer, nulreglen, reducering Indhold 1 Forord 4 2 Indledning 5 3 De grundlæggende

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

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

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

Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s. 388-393.

Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s. 388-393. Broer, skak og netværk Side 1 af 6 Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s. 388-393. Eksempler på praktiske anvendelser af matematik og nogle uløste problemer Indledning Figur

Læs mere

Matematik. Grundforløbet. Mike Auerbach (2) Q 1. y 2. y 1 (1) x 1 x 2

Matematik. Grundforløbet. Mike Auerbach (2) Q 1. y 2. y 1 (1) x 1 x 2 Matematik Grundforløbet (2) y 2 Q 1 a y 1 P b x 1 x 2 (1) Mike Auerbach Matematik: Grundforløbet 1. udgave, 2014 Disse noter er skrevet til matematikundervisning i grundforløbet på stx og kan frit anvendes

Læs mere

ITS MP 013. Talsystemer V009. Elevens navn. IT Skolen Boulevarden 19A-C 7100 Vejle Tel.:+45 76 42 62 44

ITS MP 013. Talsystemer V009. Elevens navn. IT Skolen Boulevarden 19A-C 7100 Vejle Tel.:+45 76 42 62 44 ITS MP 013 V009 Elevens navn IT Skolen Boulevarden 19A-C 7100 Vejle Tel.:+45 76 42 62 44 ITS MP 013 Udarbejdet af Søren Haahr, juni 2010 Copyright Enhver mangfoldiggørelse af tekst eller illustrationer

Læs mere

Komplekse tal og Kaos

Komplekse tal og Kaos Komplekse tal og Kaos Jon Sporring Datalogisk Institut ved Københavns Universitet Universitetsparken 1, 2100 København Ø August, 2006 1 Forord Denne opgave er tiltænkt gymnasiestuderende med matematik

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

Programmering i C Intro og grundlæggende C 5. marts 2007

Programmering i C Intro og grundlæggende C 5. marts 2007 Programmering i C Intro og grundlæggende C 5. marts 2007 Mads Pedersen, OZ6HR mads@oz6hr.dk Plan for kurset Ma. 5/3: Ma. 19/3: Ma. 2/4: To. 12/4: Formål, intro, grundlæggende Videre, sprogkonstruktioner

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM526 Rolf Fagerberg, 2009 Bitmønstre 01101011 0001100101011011... Bitmønstre skal fortolkes for at have en betydning: Tal (heltal, kommatal) Bogstaver Computerinstruktion (program)

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

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

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

Martin Geisler Mersenne primtal. Marin Mersenne

Martin Geisler Mersenne primtal. Marin Mersenne Martin Geisler Mersenne primtal Marin Mersenne 3. årsopgave Aalborghus Gymnasium 22. 29. januar 2001 Forord Denne opgave skal handle om Mersenne primtal, men kommer også ind på meget andet. Da de forskellige

Læs mere

Iteration af et endomorft kryptosystem. Substitutions-permutations-net (SPN) og inversion. Eksklusiv disjunktion og dens egenskaber

Iteration af et endomorft kryptosystem. Substitutions-permutations-net (SPN) og inversion. Eksklusiv disjunktion og dens egenskaber Produktsystemer, substitutions-permutations-net samt lineær og differentiel kryptoanalyse Kryptologi, fredag den 10. februar 2006 Nils Andersen (Stinson 3., afsnit 2.7 3.4 samt side 95) Produkt af kryptosystemer

Læs mere

Matematikkens mysterier - på et obligatorisk niveau. 1. Basis

Matematikkens mysterier - på et obligatorisk niveau. 1. Basis Matematikkens mysterier - på et obligatorisk niveau af Kenneth Hansen 1. Basis Jorden elektron Hvor mange elektroner svarer Jordens masse til? 1. Basis 1.0 Indledning 1.1 Tal 1. Brøker 1. Reduktioner 11

Læs mere

En karakteristik af de regulære sprog. Ugens emner. FA minimering [5.1-5.2] MyHill-Nerode-sætningen en algoritme til minimering af FA er

En karakteristik af de regulære sprog. Ugens emner. FA minimering [5.1-5.2] MyHill-Nerode-sætningen en algoritme til minimering af FA er Ugens emner FA minimering [.-.] MyHill-Nerode-sætningen en algoritme til minimering af FA er En karakteristik af de regulære sprog Et sprog L er regulært hvis og kun hvis L beskrives af et regulært udtryk

Læs mere

Nem grafik til websider

Nem grafik til websider Web design 101 Artiklen beskriver en nem måde, hvorpå du han lave ikon-lignende billeder til websider på basis af de symboltegnsæt, der er til rådighed på din computer. Metoden er særlig velegnet til små

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

Introduktion til Kryptologi. Mikkel Kamstrup Erlandsen

Introduktion til Kryptologi. Mikkel Kamstrup Erlandsen Introduktion til Kryptologi Mikkel Kamstrup Erlandsen Indhold 1 Introduktion 2 1.1 Om Kryptologi.......................... 2 1.2 Grundlæggende koncepter.................... 2 1.3 Bogstaver som tal........................

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

Studieretningsprojekter i machine learning

Studieretningsprojekter i machine learning i machine learning 1 Introduktion Machine learning (ml) er et område indenfor kunstig intelligens, der beskæftiger sig med at konstruere programmer, der kan kan lære fra data. Tanken er at give en computer

Læs mere

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Computere er uvurderlige redskaber for personer der ønsker at arbejde med matematiske modeller

Læs mere

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/

DM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ DM502 Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!

Læs mere

Koder og kryptering. Foredrag UNF 4. december 2009 Erik Zenner (Adjunkt, DTU)

Koder og kryptering. Foredrag UNF 4. december 2009 Erik Zenner (Adjunkt, DTU) Koder og kryptering Foredrag UNF 4. december 2009 Erik Zenner (Adjunkt, DTU) I. Indledende bemærkninger Hvad tænker I på, når I hører kryptologi? Hvad tænker jeg på, når jeg siger kryptologi? Den matematiske

Læs mere

HVOR SIKKER ER ASSYMETRISK KRYPTERING? Nat-Bas Hus 13.2 1 semesters projekt, efterår 2004 Gruppe 12

HVOR SIKKER ER ASSYMETRISK KRYPTERING? Nat-Bas Hus 13.2 1 semesters projekt, efterår 2004 Gruppe 12 HVOR SIKKER ER ASSYMETRISK KRYPTERING? Nat-Bas Hus 13.2 1 semesters projekt, efterår 2004 Gruppe 12 Udarbejdet af: Vejleder: Tomas Rasmussen Mads Rosendahl. Abstract Dette projekt har til formål at undersøge

Læs mere

Oprids over grundforløbet i matematik

Oprids over grundforløbet i matematik Oprids over grundforløbet i matematik Dette oprids er tænkt som en meget kort gennemgang af de vigtigste hovedpointer vi har gennemgået i grundforløbet i matematik. Det er en kombination af at repetere

Læs mere

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

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) Efterår 2009 1 Simpel aritmetik på maskinniveau I SCO, appendix A, er det beskrevet, hvordan man adderer ikke-negative heltal

Læs mere

BOSK F2012, 1. del: Prædikatslogik

BOSK F2012, 1. del: Prædikatslogik ε > 0. δ > 0. x. x a < δ f (x) L < ε February 8, 2012 Prædikater Vi skal lære om prædikatslogik lad os starte med prædikater. Et prædikat er et orakel der svarer ja eller nej. Eller mere præcist: Prædikater

Læs mere

Noter om Komplekse Vektorrum, Funktionsrum og Differentialligninger LinAlg 2004/05-Version af 16. Dec.

Noter om Komplekse Vektorrum, Funktionsrum og Differentialligninger LinAlg 2004/05-Version af 16. Dec. Noter om Komplekse Vektorrum, Funktionsrum og Differentialligninger LinAlg 2004/05-Version af 16. Dec. 1 Komplekse vektorrum I defininitionen af vektorrum i Afsnit 4.1 i Niels Vigand Pedersen Lineær Algebra

Læs mere

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) int wmid, wmevent; PAINTSTRUCT Introduktion ps; til HDC hdc; programmering med switch (message) case WM_COMMAND: wmid = LOWORD(wParam);

Læs mere

Kvadratrodsberegning ved hjælp af de fire regningsarter

Kvadratrodsberegning ved hjælp af de fire regningsarter Kvadratrodsberegning ved hjælp af de fire regningsarter Tidligt i historien opstod et behov for at beregne kvadratrødder med stor nøjagtighed. Kvadratrødder optræder i forbindelse med retvinklede trekanter,

Læs mere

Institut for Matematik, DTU: Gymnasieopgave. I. De komplekse tals historie. Historien om 3. grads ligningerne

Institut for Matematik, DTU: Gymnasieopgave. I. De komplekse tals historie. Historien om 3. grads ligningerne De komplekse tals historie side 1 Institut for Matematik, DTU: Gymnasieopgave I. De komplekse tals historie Historien om 3. grads ligningerne x 3 + a x = b, x 3 + a x 2 = b, - Abraham bar Hiyya Ha-Nasi,

Læs mere

matx.dk Enkle modeller

matx.dk Enkle modeller matx.dk Enkle modeller Dennis Pipenbring 28. juni 2011 Indhold 1 Indledning 4 2 Funktionsbegrebet 4 3 Lineære funktioner 8 3.1 Bestemmelse af funktionsværdien................. 9 3.2 Grafen for en lineær

Læs mere

Komplekse tal og rækker

Komplekse tal og rækker Komplekse tal og rækker John Olsen 1 Indledning Dette sæt noter er forelæsningsnoter til foredraget Komplekse tal og rækker. Noterne er beregnet til at blive brugt sammen med foredraget. I afsnit 2 bliver

Læs mere

ØVEHÆFTE FOR MATEMATIK C FORMLER OG LIGNINGER

ØVEHÆFTE FOR MATEMATIK C FORMLER OG LIGNINGER ØVEHÆFTE FOR MATEMATIK C FORMLER OG LIGNINGER INDHOLDSFORTEGNELSE 0. FORMELSAMLING TIL FORMLER OG LIGNINGER... 2 Tal, regneoperationer og ligninger... 2 Ligning med + - / hvor x optræder 1 gang... 3 IT-programmer

Læs mere

Induktive og rekursive definitioner

Induktive og rekursive definitioner Induktive og rekursive definitioner Denne note omhandler matematiske objekter, som formelt er opbygget fra et antal basale byggesten, kaldet basistilfælde eller blot basis, ved gentagen brug af et antal

Læs mere

APPENDIX A INTRODUKTION TIL DERIVE

APPENDIX A INTRODUKTION TIL DERIVE APPENDIX A INTRODUKTION TIL DERIVE z x y z=exp( x^2 0.5y^2) CAS er en fællesbetegnelse for matematikprogrammer, som foruden numeriske beregninger også kan regne med symboler og formler. Det betyder: Computer

Læs mere

ALMINDELIGT ANVENDTE FUNKTIONER

ALMINDELIGT ANVENDTE FUNKTIONER ALMINDELIGT ANVENDTE FUNKTIONER I dette kapitel gennemgås de almindelige regnefunktioner, samt en række af de mest nødvendige redigerings- og formateringsfunktioner. De øvrige redigerings- og formateringsfunktioner

Læs mere

Designmanual / Forskningens Døgn

Designmanual / Forskningens Døgn 1/17 Designmanual / Forskningens Døgn Elementer 2 Logotype 2 Logotype på fotografi 3 Geometri 5 Forsk Geometri oversigt 6 Objekter 7 Forsk Objekt oversigt 8 Forhold mellem alle elementer 9 Farver 10 Font

Læs mere

Åben uddannelse, Efterår 1996, Oversættere og køretidsomgivelser

Åben uddannelse, Efterår 1996, Oversættere og køretidsomgivelser 3/10/96 Seminaret den 26/10 vil omhandle den sidste fase af analysen og de første skridt i kodegenereringen. Det drejer sig om at finde betydningen af programmet, nu hvor leksikalsk og syntaktisk analyse

Læs mere

Tal. Vi mener, vi kender og kan bruge følgende talmængder: N : de positive hele tal, Z : de hele tal, Q: de rationale tal.

Tal. Vi mener, vi kender og kan bruge følgende talmængder: N : de positive hele tal, Z : de hele tal, Q: de rationale tal. 1 Tal Tal kan forekomme os nærmest at være selvfølgelige, umiddelbare og naturgivne. Men det er kun, fordi vi har vænnet os til dem. Som det vil fremgå af vores timer, har de mange overraskende egenskaber

Læs mere

Ideer til matematik-aktiviteter i yngstetrinet

Ideer til matematik-aktiviteter i yngstetrinet Ideer til matematik-aktiviteter i yngstetrinet Følgende ideer er ment som praktiske og konkrete ting, man kan bruge i matematik-undervisningen i de yngste klasser. Nogle af aktiviteterne kan bruges til

Læs mere

Komplekse tal. x 2 = 1 (2) eller

Komplekse tal. x 2 = 1 (2) eller Komplekse tal En tilegnelse af stoffet i dette appendix kræver at man løser opgaverne Komplekse tal viser sig uhyre nyttige i fysikken, f.eks til løsning af lineære differentialligninger eller beskrivelse

Læs mere

Eleven kan handle med overblik i sammensatte situationer med matematik. Eleven kan anvende rationale tal og variable i beskrivelser og beregninger

Eleven kan handle med overblik i sammensatte situationer med matematik. Eleven kan anvende rationale tal og variable i beskrivelser og beregninger Kompetenceområde Efter klassetrin Efter 6. klassetrin Efter 9. klassetrin Matematiske kompetencer handle hensigtsmæssigt i situationer med handle med overblik i sammensatte situationer med handle med dømmekraft

Læs mere

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Programmering C Eksamensprojekt Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Indledning Analyse Læring er en svær størrelse. Der er hele tiden fokus fra politikerne på, hvordan de danske skoleelever kan

Læs mere

Boolesk Algebra og det binære talsystem - temahæfte informatik. Oprindelse.

Boolesk Algebra og det binære talsystem - temahæfte informatik. Oprindelse. Boolesk Algebra og det binære talsystem - temahæfte informatik. I dette hæfte arbejdes der med to-tals systemet og logiske udtryk. Vi oplever at de almindelige regneregler også gælder her, og vi prøver

Læs mere

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje.

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje. Maple Dette kapitel giver en kort introduktion til hvordan Maple 12 kan benyttes til at løse mange af de opgaver, som man bliver mødt med i matematiktimerne på HHX. Skærmbilledet Vi starter med at se lidt

Læs mere

PROCESSUM DESIGNMANUAL 1.0 2013

PROCESSUM DESIGNMANUAL 1.0 2013 PROCESSUM DESIGNMANUAL 1.0 2013 1 INDHOLDSFORTEGNELSE INDHOLDSFORTEGNELSE FORORD RETNINGSLINJER LOGO PLACERING OG BRUG FRIZONE: PLACERING: TYPOGRAFI PRIMÆR TYPOGRAFI SEKUNDÆR TYPOGRAFI KOMMUNIKATION GRUNDPAPIR

Læs mere

brikkerne til regning & matematik tal og algebra preben bernitt

brikkerne til regning & matematik tal og algebra preben bernitt brikkerne til regning & matematik tal og algebra 2+ preben bernitt brikkerne. Tal og algebra 2+ 1. udgave som E-bog ISBN: 978-87-92488-35-0 2008 by bernitt-matematik.dk Kopiering af denne bog er kun tilladt

Læs mere

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte

Læs mere

Sikkert og pålideligt peer-topeer. Jacob Nittegaard-Nielsen. Kgs. Lyngby 2004 IMM-THESIS-2004-56

Sikkert og pålideligt peer-topeer. Jacob Nittegaard-Nielsen. Kgs. Lyngby 2004 IMM-THESIS-2004-56 Sikkert og pålideligt peer-topeer filsystem Jacob Nittegaard-Nielsen Kgs. Lyngby 2004 IMM-THESIS-2004-56 Sikkert og pålideligt peer-to-peer filsystem Jacob Nittegaard-Nielsen Kgs. Lyngby 2004 Technical

Læs mere

Om binære søgetræer i Java

Om binære søgetræer i Java Om binære søgetræer i Java Mads Rosendahl 7. november 2002 Resumé En fix måde at gemme data på er i en træstruktur. Måden er nyttig hvis man får noget data ind og man gerne vil have at det gemt i en sorteret

Læs mere

UNION-FIND. UNION-FIND-problemet. Forbundethed kan være svær at afgøre (især for en computer) Eksempel på udførelse

UNION-FIND. UNION-FIND-problemet. Forbundethed kan være svær at afgøre (især for en computer) Eksempel på udførelse UNION-FIND-problemet UNION-FIND inddata: en følge af heltalspar (p, q); betydning: p er forbundet med q uddata: intet, hvis p og q er forbundet, ellers (p, q) Eksempel på anvendelse: Forbindelser i computernetværk

Læs mere

Indhold. Senest opdateret:03. september 2013. Side 1 af 8

Indhold. Senest opdateret:03. september 2013. Side 1 af 8 Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 API Modeller... 2 Webshop2 API Model v1... 3

Læs mere

Mathcad Survival Guide

Mathcad Survival Guide Mathcad Survival Guide Mathcad er en blanding mellem et tekstbehandlingsprogram (Word), et regneark (Ecel) og en grafisk CAS-lommeregner. Programmet er velegnet til matematikopgaver, fysikrapporter og

Læs mere

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau)

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau) Matematik i WordMat En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau) Indholdsfortegnelse 1. Introduktion... 3 2. Beregning... 4 3. Beregning med brøker...

Læs mere

t a l e n t c a m p d k Matematiske Metoder Anders Friis Anne Ryelund 25. oktober 2014 Slide 1/42

t a l e n t c a m p d k Matematiske Metoder Anders Friis Anne Ryelund 25. oktober 2014 Slide 1/42 Slide 1/42 Hvad er matematik? 1) Den matematiske metode 2) Hvad vil det sige at bevise noget? 3) Hvor begynder det hele? 4) Hvordan vælger man et sæt aksiomer? Slide 2/42 Indhold 1 2 3 4 Slide 3/42 Mængder

Læs mere

Kapitel 2 Tal og variable

Kapitel 2 Tal og variable Tal og variable Uden tal ingen matematik - matematik handler om tal og anvendelse af tal. Matematik beskæftiger sig ikke udelukkende med konkrete problemer fra andre fag, og de konkrete tal fra andre fagområder

Læs mere

Kursusgang 3: Digital signatur. Den danske OCESstandard. Målsætning for digital signatur. Signatur (digital & alm. underskrift) Sikkerhedsmål

Kursusgang 3: Digital signatur. Den danske OCESstandard. Målsætning for digital signatur. Signatur (digital & alm. underskrift) Sikkerhedsmål Kursusgang 3: Digital signatur. Den danske OCESstandard. Målsætning for digital signatur Digital Signatur Hashing x.509-certifikater Kvantekryptering Den danske OCES-standard Udveksling af tekst på en

Læs mere

Kapitel 7 Matematiske vækstmodeller

Kapitel 7 Matematiske vækstmodeller Matematiske vækstmodeller I matematik undersøger man ofte variables afhængighed af hinanden. Her ser man, at samme type af sammenhænge tit forekommer inden for en lang række forskellige områder. I kapitel

Læs mere

Her er et spørgsmål, du måske aldrig har overvejet: kan man finde to trekanter med samme areal?

Her er et spørgsmål, du måske aldrig har overvejet: kan man finde to trekanter med samme areal? Her er et spørgsmål, du måske aldrig har overvejet: kan man finde to trekanter med samme areal? Det er ret let at svare på: arealet af en trekant, husker vi fra vor kære folkeskole, findes ved at gange

Læs mere

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit.

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit. Kapitel 20: Talsystemer 20 Resumé af talsystemer... 344 Indtastning og omregning af talsystemer... 345 Udførelse af matematiske beregninger med hexadecimale og binære tal... 346 Sammenligning eller manipulation

Læs mere

Kapitel 9. Optimering i Microsoft Excel 97/2000

Kapitel 9. Optimering i Microsoft Excel 97/2000 Kapitel 9 Optimering i Microsoft Excel 97/2000 9.1 Indledning... 164 9.2 Numerisk løsning af ligninger... 164 9.3 Optimering under bibetingelser... 164 9.4 Modelformulering... 165 9.5 Gode råd ommodellering...

Læs mere

Hvad er CAS? Hvad er algebra? Didaktisk analyse af CAS-brug Hvad kan lærerne gøre?

Hvad er CAS? Hvad er algebra? Didaktisk analyse af CAS-brug Hvad kan lærerne gøre? CAS og folkeskolens matematik muligheder og udfordringer Carl Winsløw winslow@ind.ku.dk http://www.ind.ku.dk/winslow Hvad er CAS? Hvad er algebra? Didaktisk analyse af CAS-brug Hvad kan lærerne gøre? 1

Læs mere

Poly. - Javapakke til behandling af polynomier

Poly. - Javapakke til behandling af polynomier Poly - Javapakke til behandling af polynomier z 3 x y x 2 3 x -3 Skrevet af Susanne Nykjær Knudsen, John Thystrup Jensen, Jens Lykke Brandt, Troels C. Damgaard, Jacob W. Winther og Mikkel Bundgaard Vejleder:

Læs mere

Eksponentielle sammenhænge

Eksponentielle sammenhænge Eksponentielle sammenhænge 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Indholdsfortegnelse Variabel-sammenhænge... 1 1. Hvad er en eksponentiel sammenhæng?... 2 2. Forklaring med ord af eksponentiel vækst... 2, 6

Læs mere

AM Interactive (AMI) designguide

AM Interactive (AMI) designguide AM Interactive (AMI) designguide AM Interactive designguide, Arild Garde Opdateret 3. september 2008 Identitet AMIs identitet sikres ved gennemført brug af logo, payoff, farver og typografi. Payoff time

Læs mere

Introduktion Til Konkurrenceprogrammering

Introduktion Til Konkurrenceprogrammering Introduktion Til Konkurrenceprogrammering Søren Dahlgaard og Mathias Bæk Tejs Knudsen {soerend,knudsen}@di.ku.dk Version 0.1 Indhold Indhold i Introduktion 1 1 Palindromer 3 1.1 Introduktion til Python...............

Læs mere

Computerstøttet beregning

Computerstøttet beregning CSB 2009 p. 1/16 Computerstøttet beregning Lektion 1. Introduktion Martin Qvist qvist@math.aau.dk Det Ingeniør-, Natur-, og Sundhedsvidenskabelige Basisår, Aalborg Universitet, 3. februar 2009 people.math.aau.dk/

Læs mere

Komplekse tal. Jan Scholtyßek 29.04.2009

Komplekse tal. Jan Scholtyßek 29.04.2009 Komplekse tal Jan Scholtyßek 29.04.2009 1 Grundlag Underlige begreber er det, der opstår i matematikken. Blandt andet komplekse tal. Hvad for fanden er det? Lyder...komplekst. Men bare roligt. Så komplekst

Læs mere

1. Opbygning af et regneark

1. Opbygning af et regneark 1. Opbygning af et regneark Et regneark er et skema. Vandrette rækker og lodrette kolonner danner celler, hvori man kan indtaste tal, tekst, datoer og formler. De indtastede tal og data kan bearbejdes

Læs mere

NICHLAS STILLING HANSEN PORTFOLIO

NICHLAS STILLING HANSEN PORTFOLIO NICHLAS STILLING HANSEN PORTFOLIO OPGAVE At designe en ny hjemmeside til den lokale bilklub, American Style Car Club Hadsund. Den tidligere hjemmeside som klubben havde, levede ikke op til og indeholdte

Læs mere

24-03-2009. Problemstilling ved DBK integration i BIM Software Hvad skal der til. Nicolai Karved, Betech Data A/S

24-03-2009. Problemstilling ved DBK integration i BIM Software Hvad skal der til. Nicolai Karved, Betech Data A/S 24-03-2009 Problemstilling ved DBK integration i BIM Software Hvad skal der til. Nicolai Karved, Betech Data A/S Problemstilling ved DBK integration i BIM Software Domæner og aspekter Det domæne, der primært

Læs mere

Projekt - Visual Basic for Applications N på stribe

Projekt - Visual Basic for Applications N på stribe Projekt - Visual Basic for Applications N på stribe Mikkel Kaas og Troels Henriksen - 03x 3. november 2005 1 Introduktion Spillet tager udgangspunkt i det gamle kendte 4 på stribe, dog med den ændring,

Læs mere

Grundlæggende regneteknik

Grundlæggende regneteknik Grundlæggende regneteknik Anne Ryelund, Mads Friis og Anders Friis 13. november 2014 Indhold Forord Indledning iii iv 1 Regning med brøker 1 1.1 Faktorisering i primtal.............................. 3

Læs mere

Martin Geisler. Uge 49, 2001

Martin Geisler. Uge 49, 2001 Min dintprog-browser Martin Geisler Uge 49, 2001 Resumé Dette dokument beskriver tankerne bag min dintprog-browser, en browser skrevet i Java der skal kunne fortolke en mindre delmængde af HTML 4, kaldet

Læs mere

og til summer af stambrøker. Bemærk: De enkelte brøker kan opskrives på flere måder som summer af stambrøker.

og til summer af stambrøker. Bemærk: De enkelte brøker kan opskrives på flere måder som summer af stambrøker. Hvad er en brøk? Når vi taler om brøker i dette projekt, mener vi tal på formen a, hvor a og b er hele tal (og b b 0 ), fx 2,, 3 og 3 7 13 1. Øvelse 1 Hvordan vil du forklare, hvad 7 er? Brøker har været

Læs mere

Spilstrategier. 1 Vindermængde og tabermængde

Spilstrategier. 1 Vindermængde og tabermængde Spilstrategier De spiltyper vi skal se på her, er primært spil af følgende type: Spil der spilles af to spillere A og B som skiftes til at trække, A starter, og hvis man ikke kan trække har man tabt. Der

Læs mere

DDD Runde 2, 2015 Facitliste

DDD Runde 2, 2015 Facitliste DDD Runde 2, 2015 Facitliste Søren Dahlgaard og Mathias Bæk Tejs Knudsen Opgaver og løsninger til 2. runde af DDD 2015. 1 4. 19. februar, 2015 linetest DK v1.0 Line Test Sigurd er begyndt i gymnasiet og

Læs mere

Kalkulus 1 - Opgaver. Anne Ryelund, Anders Friis og Mads Friis. 20. januar 2015

Kalkulus 1 - Opgaver. Anne Ryelund, Anders Friis og Mads Friis. 20. januar 2015 Kalkulus 1 - Opgaver Anne Ryelund, Anders Friis og Mads Friis 20. januar 2015 Mængder Opgave 1 Opskriv følgende mængder med korrekt mængdenotation. a) En mængde A indeholder alle hele tal fra og med 1

Læs mere

Indhold. Senest opdateret : 30. juli 2010. Side 1 af 5

Indhold. Senest opdateret : 30. juli 2010. Side 1 af 5 Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 Webshop2 API Model... 3 Brugen af API et... 4

Læs mere

Spil Master Mind. Indledning.

Spil Master Mind. Indledning. side 1 af 16 Indledning. Spillet som denne rapport beskriver, indgår i et større program, der er lavet som projekt i valgfaget programmering C på HTX i perioden 9/11-98 til 12/1-99. Spillet skal give de

Læs mere

Symbolbehandlingskompetencen er central gennem arbejdet med hele kapitlet i elevernes arbejde med tal og regneregler.

Symbolbehandlingskompetencen er central gennem arbejdet med hele kapitlet i elevernes arbejde med tal og regneregler. Det første kapitel i grundbogen til Kolorit i 8. klasse handler om tal og regning. Kapitlet indledes med, at vores titalssystem som positionssystem sættes i en historisk sammenhæng. Gennem arbejdet med

Læs mere

>> Analyse af et rektangels dimensioner

>> Analyse af et rektangels dimensioner >> Analyse af et rektangels dimensioner Kommensurabilitet Tag et stykke kvadreret papir og klip ud langs stregerne et rektangel så nogenlunde stort og tilfældigt. Nu vil vi finde forholdet mellem længde

Læs mere

vil jeg blive mindet om det af VBA allerede mens jeg skriver koden, da der er tale om en såkaldt kompileringsfejl:

vil jeg blive mindet om det af VBA allerede mens jeg skriver koden, da der er tale om en såkaldt kompileringsfejl: Fejlhåndtering Selv de bedste programmører laver af og til fejl! Dette kommer sikkert som en overraskelse for de fleste, bortset fra de, der har arbejdet med et hvilket som helst større program. Fejl kan

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

Læs mere

Crash Course i Programmering. HumTek, RUC

Crash Course i Programmering. HumTek, RUC Crash Course i Programmering HumTek, RUC Kursus mål At give en basal introduktion til programmering i sproget Processing At give et overblik over sprogets potentiale At have det sjovt :-) Kursus form Meget

Læs mere

Komplekse tal. Preben Alsholm Juli 2006

Komplekse tal. Preben Alsholm Juli 2006 Komplekse tal Preben Alsholm Juli 006 Talmængder og regneregler for tal. Talmængder Indenfor matematikken optræder der forskellige klasser af tal: Naturlige tal. N er mængden af naturlige tal, ; ; 3; 4;

Læs mere

Spillemyndighedens certificeringsprogram. Teststandarder for online væddemål SCP.01.01.DK.1.0

Spillemyndighedens certificeringsprogram. Teststandarder for online væddemål SCP.01.01.DK.1.0 SCP.01.01.DK.1.0 Indhold Indhold... 2 1 Formålet med teststandarderne... 3 1.1 Overblik over dette dokument... 3 1.2 Version... 3 2 Certificering... 3 2.1 Certificeringsfrekvens... 3 2.1.1 Første certificering...

Læs mere