Opgaveformulering studieretningsprojekt (SRP) 2015

Størrelse: px
Starte visningen fra side:

Download "Opgaveformulering studieretningsprojekt (SRP) 2015"

Transkript

1 Opgaveformulering studieretningsprojekt (SRP) 2015 Navn: Emil Sommer Desler Klasse: Fag: Matematik A Fag: Informationsteknologi B Vejleder: Signe Koch Hviid skh@rts.dk Vejleder: Karl G Bjarnason gkb@rts.dk Opgaveformulering: Primtal og kryptografi Redegør kort for begrebet kryptering. Beskriv hvordan public key kryptering virker og forklar forskellen på at anvende symmetriske og asymmetriske nøgler. Redegør kort for begrebet primtal og talteoriens hovedsætning. Analyser primtallenes særlige egenskaber, forklar primtalsfaktorisering og begrund hvorfor primtal anvendes i forbindelse med kryptering. Redegør for matematiske metoder til at bestemme primtal, eksempelvis algoritmen Sieve of Eratosthenes. Diskuter metodernes begrænsninger. Lav et program til at afgøre om et tal er et primtal. Bestem ved hjælp af programmet et antal primtal med et voksende antal bit (f.eks. 4, 8, 12, 16, 20,...) og lav en graf over eksekveringstiden. Dokumenter udviklingen af programmet og vis eksempler på eksekvering. Estimer hvor lang tid det vil tage for programmet at afgøre om et tal med 1024 bit er et primtal og diskuter mulige forbedringer af programmet. Opgaven skal have et engelsk resumé på linjer og forventes normalt at have et omfang på ca normalsider á anslag incl. mellemrum og ekskl. eventuelle bilag og litteraturliste. Jeg bekræfter med min underskrift, at opgavebesvarelsen er udarbejdet af mig. Jeg har ikke brugt tidligere bedømt arbejde uden henvisning hertil. Elevens underskrift: Studieretningsprojektet skal afleveres den 22. december 2015 mellem kl og kl i 2 underskrevne eksemplarer og elektronisk i Lectio. Denne side skal indsættes som forside i opgavebesvarelsen

2 ABSTRACT Encryption is an integrated part of the way we are using digital media, such as computers and telephones. Communication through such digital media are often encrypted in one way or another. The encryptions are crucial to ensure the privacy and security of personal information, involving banking information, s etc. This paper is focusing on the encryption standard RSA-encryption and will be covering the main concept of the system. In addition, basic mathematical prerequisites will be examined to get a better understanding of the systems complexity. Based on a method described in the paper a program is developed to illustrate how well the RSA encryption works. This is shown by creating a model based on the program, which is able to estimation how long the program would take to solve a part of the RSA encryption. The model is used on a relevant RSA encryption called RSA This means the number uses 1024 bits in the binary numeral system; the number is 309 digits in the decimal numeral system. No one has solved the RSA-1024 yet. By using the model, an estimated time of 2, years has been set to solve the encryption. For comparison the universe is 13, years old. Even though the model was created from a program, which is not using the fastest algorithm made, and a computer, which is not the fastest either. It should be save to conclude that the RSA encryption is a strong encryption and takes an inhumanly amount time to solve and break. 2

3 INDHOLDSFORTEGNELSE Indledning...4 Begrebet kryptering...4 Symmetriske kryptosystemer...5 Asymmetriske kryptosystemer...5 Offentlige nøgler...6 Primtal...6 Primtallenes egenskaber...6 Primtalsfaktorisering...6 Primtalsfaktoriseringens tidsforbrug...7 Kryptosystemet RSA...7 Bestemmelse af primtal...8 Sieve of Eratosthenes...8 Rabin-Millers probabilistiske primtalstest...9 Delkonklusion...9 Program (Sieve of Eratosthenes)...10 Krav til programmet...10 Overvejelser omkring programmet...10 Forklaring af algoritme...11 Test af funktionalitet...13 Test af tilfældige sammensatte...13 Test af tilfældige primtal...14 Test af naturlige tal for n < Eksekveringstid...15 Estimering...19 Forbedringer...20 Delkonklusion...21 Perspektivering...22 Kvantecomputer...22 The Dark Web...22 Konklusion...23 Litteraturliste...24 Bilag...25 Bilag 1 - Kildekode for det oprindelige program...25 Bilag 2 - Kildekode til det forbedrede program...26 Bilag 3 - Kildekode til programmet fra internettet...26 Bilag 4 - Kildekode for programmet om binære tal

4 INDLEDNING Kryptografi er en integreret del af den måde vi bruger digitale medier, som computere eller telefoner. Kommunikerer vi gennem et digitalt medie, er kommunikationen højst sandsynligt krypteret på en eller anden vis. Krypteringer laves for at sikre at kommunikation er hemmelig for uvedkommende. Tryghed og privatliv er hvad der driver krypteringens udvikling. Sikkerheden af oplysninger såsom bankoplysninger, e- mails og pengetransaktioner bliver beskyttet af krypteringer. Forud for krypteringer lægger megen matematisk teori og matematiske systemer, som er udviklet specielt, til at gøre kommunikation ulæseligt for en tredjepart. Kryptering er altså en vigtig del, for at holde følsomme oplysninger hemmelige og private, når vi kommunikerer gennem digitale medier. Der er gennem tiden opfundet mange krypteringsmetoder, og det er kun få af dem, som stadig bruges i dag. Et eksempel på et kryptosystem er en RSA-kryptering. Denne form for kryptering, er en af de krypteringsstandarder vi bruger i dag. Matematikken bag ved RSA-krypteringen er fascinerende simpel og på samme tid er den ikke til at bryde. Kryptosystemet RSA tager udgangspunkt i mysterierne, som omhandler primtal og de såkaldte primtalsfaktoreringer. Denne opgave vil redegøre for talteorien som RSA krypteringen bygger på. Fremtiden for RSA kryptering vil blive overvejet, samt negative konsekvenser som følge af krypteringens mulige. Opgaven fokuserer på RSA krypteringen og primtallenes egenskaber, som danner grundlag for kryptosystemet. Der vil redegøres for princippet, som gør kryptosystemer RSA så anvendeligt, at vi bruger det som en krypteringsstandard i mange sammenhæng. Hovedkilden er bogen Matematiske mysterier s afsnit, der omhandler Primtalsmysterier. Bogen er udgivet af Aarhus Universitetsforlag og beskæftiger sig med alle tænkelige aspekter om primtal og deres funktion i RSA kryptosystemet. Hovedkonceptet i en RSA kryptering vil diskuteres, og der vil i den forbindelse udarbejdes et program, som illustrerer hvor effektiv kryptosystemet er. Dette vil illustreres ved at opstille en model med udgangspunkt i hvor lang tid programmet er om at løse en del af RSA krypteringen. Modellen bruge flere tests af programmet til at opsamle empirisk data og for derefter at opstille en model, som reflekterer resultaterne af forsøgene. BEGREBET KRYPTERING De første krypteringsmetoder stammer fra Julius Cæsars (100 f.kr. 44 f.kr) tid, hvor krypteringsmetoden bestod af, at man forskød bogstaverne langs alfabetet med en aftalt konstant, det kunne være a bliver til d og b til e osv., dette kryptosystem kaldes Caesar-substitution. 1 Som man nok kan gætte sig til var dette system ikke så svært at bryde og når først man kendte forskydningen, kunne enhver oversætte de krypterede beskeder. Man har derfor siden måtte forbedre kryptosystemerne og opfinde nye. Begrebet kryptering bruger man om hemmeliggørelse og sikring af information. Dette gøres ved at afsenderen koder eller slører den information han ønsker at sende, hvilket gør den ulæselig for en tredjepart. Denne kodning gøres ud fra en bestemt algoritme, også kaldet et kryptosystem. Modtageren af teksten bruger så det samme kryptosystem til at afkode beskeden. Processen, når man koder information hedder at kryptere, mens den modsatrettede proces, hvor man afkoder informationen kaldes at dekryptere. Der er en klartekst, som er den oprindelig besked, som ønskes sendt, før den bliver krypteret. 1 side 4 4

5 Den krypterede besked kaldes en kryptotekst eller chiffertekst, og til at afkode beskeden har man en nøgle, som er den dekrypteringsalgoritme man bruger for at gå fra chiffertekst tilbage til klartekst. 2 Evnen til at holde kommunikation hemmelig for uvedkommende har altid været vigtig, og kryptering er i stor stil blevet brugt militært, for at kunne kommunikere internt, men uden det kunne forstås af andre. I vores moderne verden bliver kryptering brugt rigtig meget både i civile-og militære sammenhæng. Alle websites, hvor man kan logge ind og sende/modtage beskeder eller data i nogen form har en krypteret forbindelse fx Google, Facebook, Microsoft etc., der sikrer at dine data er sikre og ulæselige for andre end de/den tiltænkte. Idéen bag kryptering kan forklares ved at bruge en anekdote, hvor du har en postkasse. Postkassen repræsentere selve krypteringen. Og for at kunne læse beskederne i postkassen, kræver det, at du har nøglen til postkassen. Antagelsen, om postkassen, er dog kun den halve historie, for der findes faktisk to forskellige kryptosystemer. Der er det symmetriske kryptosystem og det asymmetriske kryptosystem. Symmetriske kryptosystemer 3 Symmetriske algoritmer anvender samme nøgle til kryptering og dekryptering. Det er derfor en nødvendighed, at den fælles nøgle kun er kendt af afsender og modtager. Skal man forblive i anekdoten om postkassen, vil et symmetrisk kryptosystem svare til, at postkassen er aflåst, og der ikke er nogen brevsprække. Den eneste mulighed for at efterlade eller læse en besked i postkassen er ved at have nøglen dertil. Til symmetrisk kryptering ligger Kerckhoffs princip, som siger, et kryptosystem skal være sikkert, selv når alle kender alt omkring systemet, undtaget nøglen. Princippet tager udgangspunkt i, at andre kender til systemet, og det er derfor et krav, at systemet ikke må være brydeligt på trods af den viden, men altså kun kan brydes ved at kende nøglen. Svagheden i de symmetriske kryptosystemer ligger i udvekslingen af nøglen. Hvis nøglen blev opfanget af en tredjepart under udvekslingen ville vedkommende have samme mulighed for at afkode alle beskeder. Derfor var det et stort skridt da asymmetrisk kryptering blev opfundet, da det kunne løse dette problem. Asymmetriske kryptosystemer Det asymmetriske kryptosystem blev opfundet efter det symmetriske. Det asymmetriske system løste den praktiske svaghed om at nøglerne skulle udveksles i al fortrolighed og holdes hemmelig for andre. Ved at bruge det asymmetriske system er det muligt at kommunikere hemmeligt uden på forhånd at have udvekslet en fælles hemmelig nøgle. Metode er bygget op omkring et nøglepar, frem for en fælles nøgle. Nøgleparret består af en offentlig nøgle, som kan udveksles i fuldt offentlighed og en privat nøgle, som ikke udveksles. De to nøgler har asymmetrisk funktion, heraf navnet. Hvis der låses med den ene nøgle er det kun muligt at låse op med den modsvarende nøgle og det samme er gældende modsat. Det asymmetriske system kan også forklares simpelt i samme anekdote. Forestiller man sig nu en postkasse, men denne gang med en brevsprække, som er tilgængelig for alle. Den offentlige nøgle vil i postkassens tilfælde være den adresse den står ved. Alle, der kender adressen, har nu mulighed for at efterlade en besked i postkassen, men kun personen, som har nøglen kan åbne postkassen og læse beskederne side side

6 Den mest kendte og brugte asymmetriske kryptering er offentlig-nøgle-kryptosystemet RSA. Kryptosystemet RSA blev udviklet 1978 af Ronald Linn Rivest (1947- ), Adi Shamir (1952- ) og Leonhard Max Adleman (1945- ), som senere stiftede firmaet RSA Data Security. RSA krypteringen er i dag den mest kendte krypteringsstandard. Det benyttes blandt andet af krypteret web-browsing i den finansielle verden fx NetBank og NemID og til at kryptere s fx googles gmail og microsofts hotmail. OFFENTLIGE NØGLER 5 Hemmelig kommunikation gøres ved, at afsender krypterer klarteksten med den offentlige nøgle i modtagerens nøglepar. Modtageren kan så dekryptere chifferteksten med sin modsvarende private nøgle. Modsat kan man lave en digital underskrift, ved at låse et dokument med sin private nøgle. Enhver, som kender den offentlige, kan låse dokumentet op og på den måde være sikker på, at afsenderen er i besiddelse af den modsvarende private nøgle og altså derfor må være den, som han udgiver sig for. Dette har en uvurderlig funktion i vores samfund, hvor kontrakter og aftaler underskrives over lange afstande og uden parterne nogensinde mødes. PRIMTAL Et primtal er et naturligt tal, altså et helt tal (1, 2, 3 ), større end 1, som ikke kan deles med andre naturlige tal end tallet selv og tallet 1. 6 Til primtal er der knyttet mange matematiske overvejelser, samt matematisk teori. I dette afsnit vil primtallenes egenskaber analyseres i forhold til krypteringsformål og der vil på baggrund af teorien bag primtalsfaktorisering og bestemmelse af primtal begrundes hvorfor primtallene egner sig til sikker kommunikation. Primtallenes egenskaber Primtal og deres egenskaber har igennem århundrede drevet teoretikere til vanvid. På den ene side er de utrolig simple i deres definition, mens de på den anden side er uhåndgribelig komplekse i detaljen. De primtalsegenskaber, der gør dem brugbare indenfor for kryptografi, er hvad der sker når man bruger store primtalsfaktoriseringer til at kryptere en klartekst. PRIMTALSFAKTORISERING 7 Talteori er grundlæggende studiet af de naturlige tal. Talteoriens hovedsætning siger, Ethvert naturligt tal n, skarpt større end 1, kan på én og kun én måde faktoriseres n = a 1 p 1 p 1 a 2 p 2 p 2 a k p k p k (1) Hvor a k er positive hele tal, og p 1 < p 2 < < p k er primtal. Mere konkret vil det sige, ikke primtal er sammensat af primtalsfaktoriseringer. 5 side 22 6 Matematiske mysterier - Primtalsmysterier s Matematiske mysterier - Primtalsmysterier s. 60 6

7 Modstridsbevis for eksistensen af primfaktorer Det ønskes bevist, om det er sandt eller falsk at, der kun findes én måde, at faktorisere på. For at bevise ovenstående udsagn antages modsætningsvist, at der findes naturlige tal, der ikke har en primtalsfaktorisering. Lad n 0 være det mindste af sådanne et tal. Eftersom tallet ikke har en primtalsfaktorisering, kan tallet ikke være et primtal, da det så ville have sig selv som faktorisering, altså n 0 = p, hvilket det ifølge antagelsen ikke har. Tallet n 0 må derfor være et sammensat tal n 0 = n 1 n 2 med 1 < n 1 < n 0 og 1 < n 2 < n 0, uligheden beskriver forholdet mellem n 0 og dens faktorer, hvor n 0 er større end 1 og n 0 er et produkt af to faktorer må den naturligvis være større end begge disse faktorer, som beskrevet af uligheden. Pointen er så nu, at hvis n 0 er det mindste naturlige tal, der ikke har en primtalsfaktorisering, må de mindre tal n 1 og n 2 hver have en primtalsfaktorisering. Samler vi primtalsfaktoriseringerne for n 1 og n 2 til et samlet produkt får vi n 0 = n 1 n 2, at n 0 altså har primtalsfaktorisering, hvilket er i modstrid til vores første antagelse. Teorien om, at der findes naturlige tal uden en primtalsfaktorisering må derfor være falsk, og udsagnet fra tidligere er dermed bevist. PRIMTALSFAKTORISERINGENS TIDSFORBRUG Man bemærker, at der i beviset for eksistensen af primfaktorer ikke gives nogen egentlig metode til at bestemme en primtalsfaktorisering. Og det er fordi der ikke findes nogen entydig metode til at finde primtalsfaktoriseringer, og man må altså prøve sig frem nede fra. Vi kan altså, med udgangspunkt, i et tal på 200 cifre, dvs. m ~ , prøve at danne en idé om hvor lang tid det vil tage at faktorisere et tal på den størrelse. Som sagt vil det være oplagt at forsøge sig nede fra og op, og denne teori kan fungere meget godt på mindre værdier af m, men for store tal er det en nærmest endeløs proces. Antager vi, at det er muligt at afgøre, om et helt tal er divisor i m i løbet af 1 millionte del af et sekund (10-6 sek.). Valideringsprocessen for at kunne bestemme en eventuel divisor vil for et tal så stort vil tage bogstaveligtalt umenneskelig lang tid = , år (2) Til at sammenligne er universets alder kun 13,75*10 9 år. 8 KRYPTOSYSTEMET RSA 9 RSA er som tidligere nævnt et asymmetrisk kryptosystem, hvor der findes en offentlig nøgle og en hemmelig nøgle. Matematikken i RSA er kompliceret, men udgangspunktet i RSA algoritmen er at der ikke er nogen effektiv måde at primtalsfaktorisere store naturlige tal, som det fremgår af (2). For at forstå besværet i at løse en RSA kryptering uden at kende den hemmelige nøgle, skal man først introduceres til Eulers sætning. Eulers sætning lyder a φ(m) 1 mod m (3) Eulers sætning består i at løse en kongruens (bliver ikke beskrevet yderligere). Denne kongruens løses ved at beregne φ(m) = φ(p q) = (p 1) (q 1), hvor værdien af m er bestemt, da man konstruerede nøglepar. Nøglepar bestemmes ved at vælge to store forskellige primtal p og q herefter beregnes m = pq og φ(m). Vælg et k, hvis største fælles divisor med φ(m) er 1 (teorien bag dette bliver ikke beskrevet yderligere). 8 Matematiske mysterier - Primtalsmysterier s Matematiske mysterier - Primtalsmysterier s

8 Man får da, Den offentlige nøgle: Den private nøgle: m, k φ(m) Vil man forsøge at bryde krypteringen vil man skulle beregne φ(m) og uden at have kendskab til primtalsfaktoriseringerne p og q er det ved store nok primtal i praksis ikke muligt at bestemme den private nøgle, φ(m), her henvises igen til eksemplet (1) Bestemmelse af primtal Der findes ikke nogen generel formel til at udregne, om et tal er et primtal, derfor må man prøve sig frem, om det kan opløses i faktorer. Kan det ikke det, er det et primtal. Der findes dog formler, der med stor sandsynlighed kan bestemme om et tal er et primtal. I afsnittet vil der redegøres for begge metoder til at finde primtal. SIEVE OF ERATOSTHENES 10 Oversat til dansk hedder denne metode Eratosthenes si og er en antik græsk metode til at lave lister over primtal. Eratosthenes si er en af flere algoritmer til at finde alle primtal op til en vilkårlig sat grænse. Idéen er, at man markerer og fjerner alle tal, som er multiplikander af hvert primtal. Man starter altså fra 2 videre til 3 til 5 osv. Eratosthenes si er en af de mest effektive metoder til at opliste mindre primtal. Mere konkret fungerer denne metode på følgende måde: 1. Oplist alle tal fra 2 til n (2, 3, 4,, n) 2. Lad p være lig med 2, som er det mindste primtal 3. Start ved p, find og marker/fjern multiplikander af p (2p, 3p, 4p,, np), selve tallet p bør ikke markeres eller markeres på entydig måde for at markere primtallene. 4. Herefter find det største tal større en p. Findes der ikke noget tal større end p, der ikke er markeret, er alle primtal fundet og ellers sættes p til det nye nummer og gentag fra trin 3. Metodens begrænsninger Eratosthenes metode bygger på, at man slavisk gennemgår alle tal i en given talrække, dette bliver hurtigt en meget tidskrævende proces ved store talrækker. Metoden egner sig derfor bedst til at finde primtal i mindre talrækker

9 RABIN-MILLERS PROBABILISTISKE PRIMTALSTEST En anden metode til at bestemme om et tal er et primtal er Rabin-Miller testen. Rabin Miller testen er navngivet efter to dataloger, Michael Oser Rabin og Gary Lee Miller. I modsætning til Eratosthenes si er Rabin-Miller testen velegnet til store og små primtal, og bruges oftest til at finde meget store primtal. Rabin-Millers sætning siger, at der for et primtal p og et tal a, der ikke er divisor med p. Lad p 1 = 2 s d, hvor 1 s og d ulige. Da gælder enten, at 11 eller der findes et r med 0 r < s, så a d 1 mod p a 2r d p 1 mod p Rabin-Miller testen laves ved at man for et tilfældigt ulige tal n imod et antal vidner, a. Hvis det overstående er gældende, er n et primtal. Efter man har valgt det tal n, som skal testes, opstiller man værdier for a, d og r i forhold til uligheden af definitionen for sætningen. Metodens begrænsninger Selvom Rabin-Miller testen ikke har problemer med store tal som Eratosthenes si, har denne metode et problem med pseudo-primtal. Ved at bruge Rabin-Miller på et tal, er der en risiko for, at tallet er et pseudoprimtal. Et psedo-primtal er et naturligt ikke-primtal, der udgiver sig for at være et primtal, ved at bestå testen. Sandsynligheden er dog forsvindende lille ved at teste mange vidner, a. Sandsynligheden for at tallet er et pseudo-primtal er 1 4k, hvor k er mængden af tilfældige vidner. Tester man fx for 30 tilfældige vidner er sandsynligheden , hvilket svarer til mindre end 1 ud af gange. Delkonklusion Et sammensat tal kan faktoriseres på én måde og kun én måde. Når man skal bestemme de faktoriseringer findes der ikke nogen entydig formel. Det er muligt at bruge Rabin-Millers test, men den er altså ikke 100 % nøjagtig. Den eneste måde at finde faktoriseringer er ved at starte nede fra og arbejde sig op ad, lige som det beskrives af Sieve of Eratosthenes. Det er denne viden, som er fundamenten i kryptosystemet RSA, der nemlig består af et sammensat tal af to store primtalsfaktoriseringer. Og eftersom man ikke har nogle hurtig løsning til at bestemme primtal er det for tidskrævende at løse en RSA kryptering. 11 Matematiske mysterier - Primtalsmysterier s Matematiske mysterier - Primtalsmysterier s. 72 9

10 PROGRAM (SIEVE OF ERATOSTHENES) Der er i forbindelse med projektet udarbejdet et program. Programmets funktion er at tage et vilkårligt brugerindtastet tal n og afgøre om det er et primtal eller et sammensat tal. Programmet tager udgangspunkt i teorien og logikken i Eratosthenes si og følger de samme trin, når den tester et tal. Krav til programmet Til udformningen af programmet er der opstillet en række krav som det færdige program skal leve op til. Disse krav er opstillet, for at kunne styrer udviklingen af programmet. De opstillede krav berører funktionalitet i form af problemløsning og kommunikation med brugeren. Programmet skal kunne - Modtage input fra brugeren - Udelukke tal mindre end 2 - Udelukke tal delelige med 2 - Teste med ulige divisorer - Stoppe når et sammensat eller primtal er fundet - Tage tid på hvor længe det tog - Fortælle brugeren hvor længe det tog - Fortælle brugeren om tallet er et primtal eller sammensatte tal Overvejelser omkring programmet 15 Ud over de opstillede krav er det overvejet, hvordan programmets algoritme laves mest effektiv. For at have den hurtigste programgennemkørsel er det vigtigt at algoritmen køres igennem så hurtigt som muligt og så få gange som muligt. På baggrund af iagttagelser gjort af Eratosthenes si vil programmets første test være at tjekke for divisorer med 2. Ved at gøre det, og testen ikke er positiv, udelukkes alle hele tal og hermed halvdelen af testmængden og man behøver derfra kun teste de ulige tal (3, 5, 7 osv.). Derudover vil koden for algoritmen kun køres hvis det indtastede tal er større end eller lig med 2. Dette forhindre anledning til fejl, bl.a. i form af fejlvurdering af et tal. Mængden af tal, som programmet tester kan begrænser betydelig, ved at teste for 2 til n. Forsøger man fx at finde alle divisorer med n = 100 ses følgende 2 x 50 = x 25 = x 20 = x 10 = 100 -> kvadratroden af x 5 = x 4 = x 2 = 100 Det vil altså sige, at alle divisorerne allerede er fundet efter kvadratroden af n = 100, og man kun finder de modsatte divisorer (2 x x 2) ved at fortsætte

11 Der er udover regnetekniske overvejelser også gjort overvejelser for hvordan koden skal skrives og hvilke funktioner programmet skal have. Eller mere korrekt, hvilke funktioner programmet ikke skal have. For at programmet fungerer mest effektivt vil der ikke være nogen form for prints i algoritmen, da dette tager betragtelig lang tid for en computer at udføre. Programmet vil ikke som Eratosthenes oprindelige algoritme, opliste tal i nogen form for liste eller tabel. Dette skyldes at, man ved at bruge lister begrænser størrelsen af de tal programmet kan håndtere. Desuden er det irrelevant at benytte en liste, da vi kun skal teste det ene tal for primtal eller ikke-primtal. Forklaring af algoritme Nedenunder ses hele algoritmen som den står i kildekoden. Hele kildekoden kan ses i bilag 1. if n < 2: print("tallet er mindre end 2 og er derfor ikke et primtal") times = 0 j = 1 if n%2 == 0 and 2!=n: #Er n deleligt med 2? 'and i!=n' times+=1 print("dit tal er ikke primtal. Tallet er deleligt med 2") while j<(n**0.5): j+=2 times +=1 etc.(j+2)? 'and j!=n' j if n%j == 0 and j!=n: #Er n deleligt med 3, 5, 7, 9 print "Dit tal er ikke primtal. Tallet er deleligt med", break print("dit tal er et primtal") Algoritmen vil blive gennemgået og hver linjes funktion vil blive beskrevet og holdt op imod udgangspunktet, som er teorien bag Eratosthenes si. if n < 2: print("tallet er mindre end 2 og er derfor ikke et primtal") Vurdering starter allerede fra den første linje, hvor det indtastede tal n testes for om det er større end tallet 2. Er tallet mindre end tallet 2 kan det pr. definition ikke være et primtal Et primtal er et naturligt tal, altså et helt tal, større end 1. Er tallet ikke større end 2 kan programmet allerede afgøre at tallet ikke er et primtal og koden inde i if-statement en bliver kørt. Koden er meget simpel, den skriver til brugeren, at det indtastede tal ikke er et primtal, eftersom det er for småt (fungerer også med negative tal). Programmet stopper efter teksten er printet. 11

12 times = 0 if n%2 == 0 and 2!=n: #Er n deleligt med 2? 'and i!=n' times+=1 print("dit tal er ikke primtal. Tallet er deleligt med 2") Er tallet n større end 2 køres else-statement en, som hænger sammen med den forrige if-statement. Det første der sker i else-statement et er, at en variable times bliver defineret. Denne variabler tæller hvor mange gange programmet tester et tal. Inde i else-statement et er der et if-statement, som tester om tallet er deleligt med 2. Denne del af algoritmen er en af de overvejelser, som blev gennemgået tidligere. Det er her alle de lige tal udelukkes. Derudover testes tallet også for at det ikke er lig med 2 (2!=n), pr. definition er Et primtal et naturligt tal, altså et helt tal (1, 2, 3 ), større end 1, som ikke kan deles med andre naturlige tal end tallet selv og tallet 1. Så hvis tallet selv er det eneste tal, der er divisor er tallet et primtal. Findes der dog en divisor 2 til tallet kan programmet konkludere, at n ikke er et primtal og programmet udfører koden inden i if-statement et. j j = 1 while j<(n**0.5): j+=2 times +=1 if n%j == 0 and j!=n: print "Dit tal er ikke primtal. Tallet er deleligt med", break Er tallet ikke deleligt med 2 kører koden i dette else-statement. Det første der sker er at en variabel j bliver defineret som j = 1. Den variabel bliver brugt i while-loopet, som kører fra j til kvadratroden af n. Loopet tester for ulige divisorer i n. Når loopet starter lægges der 2 til variablen j og det gør der hver gang loopet kører igennem. Dvs. at variablen er j = 3, når loopet begynder, og n testes så op mod n%3, n%(3+2 = 5) osv. Hvis programmet finder et ulige tal, j, der er divisor til n afsluttes loopet af koden i if-statement et. print("dit tal er et primtal") Hvis j overstiger kvadratroden af n og programmet ikke har fundet nogen divisor fra j til n, er tallet et primtal. Programmet afsluttet while-loopet og printer: Dit tal er et primtal. 12

13 Test af funktionalitet For at teste selve funktionaliteten af programmet har vil det gennemgå 3 forskellige tests. Resultaterne af disse tests vil blive holdt op mod de opstillede krav til programmet. Programmet indeholder ikke nogen for form for problemhåndtering. Så hvis brugeren indtaster et invalidt input, fx et bogstav eller et andet tegn, som ikke er et tal, vil programmet komme med en fejlmeddelelse. TEST AF TILFÆLDIGE SAMMENSATTE Denne test vurderer om programmet er i stand til at vurdere om et naturligt tal er et sammensat tal og ikke et primtal. Samtidig tester om while-løkken fungerer korrekt. Testen foretages 3 gange med 3 forskellige vilkårlige tal, hvor mindst ét har en stor primtalsfaktorisering. Det store tal vil være produktet af de to primtal * = , det er på den måde sikret at tallet vil have en meget stor primtalsfaktorisering og samtidig vil det være muligt at bestemme om programmets variabel j (divisor) fungerer korrekt. Figur 1. Test af tilfældige sammensatte tal. Programmet modtager input fra brugeren, i første test er det tallet Det tester med det samme om tallet er et helt tal, altså er deleligt med 2. Hvilket det tydeligt er i første test. Anden test bruger ulige tal, hvor programmet igen tester om tallet er et helt tal. Dette ses ved at programmet ikke afslutter, men fortsætter til while-loopet, hvor den tester for ulige tal. Her kører den loopet igennem 3 gange, først med 49%3, så 49%5 og herefter 49%7, hvor den finder en divisor. Når programmet registrerer en divisor i det indtastede tal, kan det vurdere, at det indtastede tal er et sammensat tal og programmet stopper dermed. Programmet laver et output til brugeren, der fortæller at tallet ikke er et primtal og hvor lang tid det tog. Af den tredje test kan man se at programmet fungerer med både store lige så vel som små sammensatte tal. 13

14 TEST AF TILFÆLDIGE PRIMTAL Denne test vurderer om programmet er i stand til korrekt, at validere et primtal og tester samtidig om while-løkken fungerer korrekt. Testen foretages af 2 gange med 2 forskellige vilkårlige primtal i forskellige størrelser. Figur 2. Test af tilfældige primtal Programmet modtager input fra brugeren. Det tester med det samme om tallet er et helt tal, altså er deleligt med 2. Da tallene er primtal tester tallet falsk. Dette ses ved at programmet ikke afslutter, men fortsætter til while-loopet, hvor den tester for ulige tal. I den første test kører programmet igennem én gang med 5%3 og da det skal til at køre igennem anden gang tester tallet sandt i at det går op i sig selv. Tallet må derfor være et primtal og programmet stopper. I den anden test kører programmet igennem op til kvadratroden af det indtastede tal. Dette kan tjekkes ved = Og eftersom programmet tester ulige tal ved at lægge 2 til for hver gennemkørsel fås = For begge tests laver programmet et output til brugeren, der fortæller at tallet er et primtal og hvor lang tid det tog at bestemme. Man kan se af testene, at programmet fungerer med både store og små primtal. 14

15 TEST AF NATURLIGE TAL FOR N < 2 Dette er en simpel test, blot for at sikre programmet registrerer hvis brugeren indtaster et tal, som er for småt til at være et primtal. Et tal er for småt til at være et primtal hvis det er mindre end 2. Figur 3. Test af naturlige tal for n < 2. Det fremgår af testen at programmet registrerer tal mindre end 2 og at det fungere for både positive og negative tal mindre end 2. Eftersom programmet ikke har brugt tid på, at bestemme om tallet er et primtal gives ingen tid. Programmet giver et output, der fortæller brugeren at tallet ikke er et primtal. Eksekveringstid 16 Eksekveringstiden er den tid, programmet bruger på at bestemme om det indtastede tal er et primtal. For mindre primtal er det muligt at indtaste tallet og lade programmet fortælle hvor lang tid det brugte, men hvad hvis man vil vide hvor lang tid det bruger på store primtal med hundredvis af cifre? Ved at bruge matematiske strukturer, såsom grafer og ligninger, til at beskrive nogle aspekter fra den virkelige verden, er det muligt at opstille en model. I vores tilfælde er det muligt at undersøge forholdet mellem størrelsen af det indtastede tal og eksekveringstiden. Ved at opstille en model for dette, vil man ved at ekstrapolere kunne give et estimat på, hvor lang tid programmet vil bruge på at bestemme primtal tal som vi ikke selv har forsøgt at teste. Indledningsvist var det meningen, at det binære talsystem skulle benyttes til at opstille modellen, men dette viste sig at have nogle unøjagtigheder. Det binære talsystem består af en række af bits. Hver bit er en 2 er potens og hver potens er én større end den forrige 17. Ser således ud Figur 4. Binær talrække. Hver bit kan have værdien 1 eller 0 (sandt eller falsk). For at få tallet i det decimale talsystem lægges alle tallene med den vægt (2 er potens) de hver især har. Problemet ved at bruge det binære system ses tydeligt, hvis vi tager et eksempel med fx 100 bits. En binær streng på 100 bits er 100 mulige 2 er potenser fra 2 0 til "Modelleringsprocessen" - J. Dejgaard og C. Michelsen. Trafikmodeller matematiske aspekter

16 Figur 5. Tilfældigt genererede tal ud fra antal bits. Programmet kildekode kan findes i bilag 4. Dette program genererer 10 tilfældige tal, der alle sammen kan skrives i det binære talsystem med 100 bits. Tallet i det decimale talsystem er tallet til venstre. Talrækken i midten er tallet udtrykt binært og tallet til sidst er mængden af bits. Kigger man på det mindste af de 10 tal og det største får man en forskel på = Det er en pæn stor forskel og der er altså ikke en entydig sammenhæng mellem antallet af bits og størrelse på det decimale tal. Med udgangspunkt i den konklusion er der valgt en mængde primtal, som afhænger af mængden af cifre i tallet. Tallene som bliver brugt starter fra 12 cifre og går til 18 cifre og stiger med et interval på to cifre. Hvert primtal er det mindste primtal med hhv. 12 cifre, 14 cifre og på samme måde er de mindst mulige primtal udvalgt op til 18 cifre. Dette er gjort, for at opnå de mest entydige testresultater. Eksekveringstiden ville ikke være entydig, hvis man valgte et tilfældigt primtal med et bestemt antal cifre eftersom primtallets størrelse vil kunne variere meget. Fx for to primtal på 18 cifre, kan det ene være , mens det andet kan være Primtal Eksekveringstid (sek) Antal gennemkørsler 12 cifre cifre cifre cifre Figur 6. En tabel over de tal, som bruges til at opstille en model. Af tabellen ses 2 interessante ting. Det første er, at antallet af gennemkørsler stiger med ca. 10 gange så meget for hvert tal. Dette er logisk eftersom vi fra tidligere ved, at programmet tester op til kvadratroden af det indtastede tal, og derudover lægger den altså 2 til for hver gang den kører igennem. Tager vi som eksempel det første tal ~ og lægger 2 til for hver gennemkørsel, får man = , dette kan gøres for hvert af tallene. Det andet interessante er eksekveringstidens stigning. For hvert tal bliver eksekveringstiden tilnærmelsesvis 10 gange større. Antager man at dette er et generelt mønster er det muligt at opstille en model på baggrund af dette. Ved at indsætte tabelværdierne som punkter i et koordinatsystem fås 16

17 Figur 7. Her ses den empiriske data fra tabellen som punkter i et koordinatsystem i programmet Graph. Langs x-aksen er antallet af cifre, mens y-aksen repræsenterer eksekveringstiden. Det er tydeligt, at grafen vokser meget eksplosivt, hvilket vi også konkluderede af tabellen. Ud fra denne antagelse må vi formode, at en model for eksekveringstidens udvikling må være en funktion med en eksponentiel udvikling af formen f(x) = b a x. For at finde den funktion, der passer bedst på vores data sæt, kan man foretage en regressionsanalyse. Programmet Graph s tendenslinje-funktion er brugt til dette. En regressionsanalyse er et forsøg på at finde den funktion af en angivet funktionstype, der passer bedst på de indtastede punkter. Ud af den analyse kommer en tal, R 2 1, desto tættere på 1 dette tal er, desto bedre passer funktion på punkterne. Ved at forsøge med en eksponentiel funktion fås Figur 8. Grafen viser en tendenslinje for en eksponentiel funktion på det indtastede koordinatsæt. I højre hjørne kan man se funktionsudtrykket og regressionen. 17

18 Det udregnede funktionsudtryk har en regression på 0,9999, hvilket betyder at grafen passer rigtig godt på punkterne. Funktionsudtrykket kan bruges som en model for eksekveringstiden som en funktion af antallet af cifre. Modellens afvigelse kan beregnes og på baggrund af afvigelsen, kan modellen vurderes. Dette gøres ved at beregne 1, ,1565 x for hvert x fra 12 til 18. Primtal Eksekveringstid (sek) Afvigelse 18 Gennemkørsler 12 cifre ,125 0 % cifre ,243-0,56 % cifre ,388 1,64 % cifre ,429-0,88 % Figur 9. En tabel opstillet ud fra modellen, hvor man kan se afvigelsesprocenten for modellen. Det ses af tabellen, at modellen har meget små afvigelser i forhold til virkeligheden. Modellen. Vi bruger derfor denne funktion, som en model til at estimere eksekveringstiden for store primtal. Vi har en model, der bestemmer eksekveringstiden i sekunder som en funktion af talstørrelsen målt i cifre. Med denne model kan vi ekstrapolere til en ønsket ciffer størrelse x. Til at håndtere større tal er det smartere at bruge en større tidsenhed. Alle eksekveringstider omskrives til år ved at bruge formlen 1 eksekveringstid Tabellen ser efter omskrivningen sådan her ud Primtal Eksekveringstid (sek) Gennemkørsler 12 cifre , cifre , cifre , cifre , Figur 10. Modellen opstillet som eksekveringstid i år som en funktion af antal cifre i et primtal. Vi får da en model, som ser således ud Figur 11. Tendenslinjen for modellen Fysik%20C/PROCENTVIS%20AFVIGELSE/OM%20PROCENTVIS%20AFVIGELSE.aspx 18

19 Estimering Med den opstillede model er det muligt at give et estimat på, hvor mange år programmet vil være om at validere meget store primtal som vi, pga. tidsomfanget, ikke har mulighed for at gøre selv. Modellen giver, med rimelig stor præcision, et estimat for bestemmelse af store primtal. Til at håndtere tallenes størrelse er WolframAlphas widget Table of Values of a Function 19 benyttet. Tabellen går fra 100 cifre til 600 cifre, med et interval på 100 cifre. Figur 12. Ekstrapoleringen vist i en tabel ved brug af WolframAlpha. Sammenligner man modellen med tallet fra afsnittet om primtalsfaktorisering, ser man, at de er meget ens. De estimerede, at det ville tage 3, år at teste, om et tal på 200 cifre er et primtal. Af modellen fremgår det, at den estimerede tid for programmet at bestemme et tal på 200 cifre er 2, år, og er altså meget tæt på at være ens. Firmaet RSA havde engang en konkurrence med forskellige præmier for at faktorisere forskellige størrelser af tal. Den øvre grænse for tabellen er sat ud fra det største af de tal,rsa-2048 (2048 bits), som er på 617 cifre 20. Dette tal er estimeret, ifølge modellen, til at tage omkring 1, år. Et andet tal er RSA-1024 (1024 bits), som svarer til 309 cifre. Dette tal vil tage cirka 2, år. Hverken RSA-1024 eller RSA-2048 er blevet faktoriseret endnu

20 Forbedringer For at forbedre programmet er der to tilgangsmåder; optimér den eksisterende kode eller brug en anden algoritme. Optimering af den eksisterende kode kan fx gøres ved at fjerne overflødige funktioner fra programmet eller komprimere strukturen af koden. Af overflødige funktioner i det nuværende program, kan der nævnes tælleren for antal gennemkørsler. Tælleren er en del af while-loopet og variabler ændres hver gang loopet kører igennem. Denne funktion er ikke nødvendig for funktionalitet, men er mest med for sjov, så man kan se hvor mange gange programmet rent faktisk tester det indtastede tal. Figur 13. Gennemkørsel af et primtal, der før tog , med det optimerede program. Det samme tal tog før optimeringen sekunder. Nu tager det sekunder. Det er altså sekunder mindre svarende til en forbedring på cirka 17 %. Det er tydeligt, at antallet af variabler programmet skal behandle, forøger eksekveringstiden. I programmet har vi yderligere én variable, men som programmet er skrevet lige nu, er den ikke mulig at fjerne. Ved at omskrive koden kan vi lave et program, der eksekveres endnu hurtigere. from math import sqrt; from itertools import count, islice def isprime(n): return n > 1 and all(n%i for i in islice(count(2), int(sqrt(n)-1))) Figur 14. Gennemkørsel af samme primtal med program fundet på internettet. Koden er fundet på internettet og kan ses i bilag Denne algoritme kan teste samme primtal på sekunder, hvilket er en forbedring på 34 % i forhold til sidste forbedring og 38 % bedre end det originale

21 program. Denne kode har flere elementer, der gør det hurtigere end mit program. For det første består det af en simplere kode, med færre if-else-statements, hvilket gør koden nemmere for computeren at eksekvere. For det andet bruger den en islice fra itertools, som er et indbygget modul i Python. Modulet er beregnet til at lave meget hurtige og effektive loops, The module standardizes a core set of fast, memory efficient tools 22 En anden tilgang ville være at finde en bedre algoritme, det kunne fx være den tidligere nævnte Rabin- Miller. Men dette vil ikke blive gennemgået nærmere. Delkonklusion Programmet er opbygget omkring Eratosthenes metode. Metoden udnytter computerens evne til at lave mange operationer i sekundet. På den måde testes primtal hurtigt igennem. Men dette gælder kun for små primtal, for når først tallet bliver stort nok, kræver det selv for en computer ufattelig lang tid at bestemme primtal. Dette vises også tydeligt ved at bruge den opstillede model. Modellen kan beregne tiden, som en funktion af tallets størrelse i cifre. Ved at ekstrapolere er det muligt at estimere, hvor længe programmet vil bruge på primtal med flere hundrede cifre. Det estimeres for det RSA tal RSA-2048, at det vil tage omkring 1, år at bestemme et primtal på den størrelse. Dette underbygger teorien om at RSA krypteringen fungerer og hvorfor

22 PERSPEKTIVERING Kvantecomputer 23 Teknologien bag kvantecomputere er meget kompliceret. En kvantecomputer udnytter kvantemekaniske kræfter og kan løse matematiske problemer meget mere effektivt end konventionelle computere. Det gælder primtalsfaktorisering, som fx krypteringssystemet RSA bygger på. Kvantecomputere vil teoretisk kunne afprøve samtlige muligheder i visse problemstillinger på én gang og kan altså på få sekunder bryde enhver kendt kryptering, fordi den i teorien har en ubegrænset evne til gætte sig til koden. Kvantecomputere er ikke en realitet endnu, men dem som udvikler den første funktionelle kvantecomputer, vil altså kunne dekryptere og læse al data, som transmitteres. Dette indebærer krypterede mails, pengeoverførsler, bankoplysninger osv. Moores lov Moores lov er en forudsigelse formuleret af medstifteren af chipproducenten Intel, Gordon Moore (1929 -). Moores lov siger, at antallet af transistorer på en mikroprocessor fordobles cirka hvert andet år. Denne forudsigelse har holdt stik i 50 år, men det er blevet mere og mere udfordrende at fordoble antallet. Ifølge det amerikanske forskningsforbund DARPA vil Moores lov erklæres død tidligst i Alle eksponentialfunktioner, som beskriver naturen, vil nå et punkt, hvor den eksponentielle udvikling ikke længere kan opretholdes. 25 Moores lov ender altså formegentlig på et tidspunkt, når det bliver fysisk umuligt at øge antallet af transistorer. Man bliver derfor nød til at udvikle nye alternative teknologier, heriblandt fx kvantecomputere. The Dark Web Dark Web er et krypteret netværk af servere. Alle har mulighed for at besøge disse servere (hjemmesider), men IP adressen for dem, som hoster serveren, er krypteret og holdes hemmelig. De fleste hjemmesider på Dark Web benytter et software kaldet Tor, som gemmer din identitet og forvrænger din lokation. Ofte er det nødvendigt at bruge denne software, hvis du ønsker at få adgang til sider på Dark Web. På den måde er det altså muligt at kommunikere anonymt. Selvom det er muligt at bruge Dark Web på en lovlig måde, indeholder The Dark Web mørke bagsider af krypteringens egenskaber og er mest kendt som et samlested for kriminelle og teorister. Det berygtede Silk Road er en del af Dark Web. Silk Road er en hjemmeside, hvor det er muligt at sælge og købe narkotika og våben. Der handles i en valuta kaldet Bitcoin, der i sig selv indeholder et avanceret kryptosystem. Silk Road og Dark Web gør det utrolig svært for politiet og regeringerne at finde ud af, hvem der foretager køb og salg, og det er på den måde muligt at begå kriminalitet anonymt over internettet

23 KONKLUSION Rapporten har kort redegjort for begrebet kryptering, hvad den bruges til og hvordan den bruges. Derudover er teorien bag symmetriske- og asymmetriske kryptosystemer blevet gennemgået og forskellen mellem de to metoder er beskrevet. Der er i forbindelse med kryptosystemer blevet redegjort for primtals egenskaber, primtalsfaktorisering og begrundet for hvorfor matematikken for primtal anvendes i forbindelse med kryptering. Primtalsbestemmelse er forklaret og der er redegjort for to metoder til at bestemme primtal. Metodernes begrænsninger er diskuteret og det kan konkluderes, at det kun er Eratosthenes metode, som hundrede procent sikkert kan bestemme et primtal. Af de to beskrevne metoder er Eratosthenes metode valgt til at lave som et program. Programmet kan ved hjælp af matematikken i Eratosthenes si bestemme om et vilkårligt tal er et primtal eller ej. Der er med udgangspunkt i programmets eksekveringstid forsøgt at opstille en model. Modellen afspejler eksekveringstiden, som en funktion af antallet af primtallets cifre. Modellen er opstillet ud fra empirisk data, som er indsamlet ved at køre tal med forskellige antal cifre og sammenligne eksekveringstiden. Det kan konkluderes at det lykkedes at opstille en model, som afspejler virkeligheden ret præcist, vurderingen af modellen ses af afvigelsesprocenten i figur 9. Det kan konkluderes at programmet og modellen er med til at underbygge, hvor svær en RSA kryptering er at bryde. Ud fra modellen estimeredes tiden det ville tage at bestemme RSA kryptering, RSA-2048 på 617 cifre. Det ville tage i omegnen af 1, år. Desuden er der diskuteret mulige forbedringer til programmet. Og det kan konkluderes ud fra afsnittet om forbedringer, at det er muligt at optimere programmets kode, så eksekveringstiden bliver kortere. Det er også muligt at benytte andre algoritmer, men dette er ikke beskrevet yderligere. 23

24 LITTERATURLISTE Matematiske mysterier (2013) omkring Primtalsmysterier Af Johan P. Hansen Aarhus universitetsforlag Introduktion til Kryptologi, Aarhus universitet Af Mikkel Kamstrup Erlandsen Dette er en python egen side omkring alle python funktioner og hvordan man bruger dem. "Modelleringsprocessen" i Trafikmodeller matematiske aspekter 2001 Af J. Dejgaard og C. Michelsen. WolframAlpha er en stor matematisk database og er i opgaven brugt til regne med store tal og som opslagsværk. Fysik%20C/PROCENTVIS%20AFVIGELSE/OM%20PROCENTVIS%20AFVIGELSE.aspx Opslagværk fra bogen I-Fysik C Gyldendal Artikel om kvantecomputere (Fredag, 3. januar 2014) Af Henrik Nordstrøm Mortensen Artikel om Moores Lov (17. januar 2014) Af Jesper Stein Sandal Stackoverflow.com er et forum for programmører

25 BILAG Bilag 1 - Kildekode for det oprindelige program # -*- coding: cp1252 -*- import time while True: n = int(raw_input("indtast et vilkårligt naturligt tal: ")) time_start = time.time() if n < 2: print("tallet er mindre end 2 og er derfor ikke et primtal") times = 0 if n%2 == 0 and 2!=n: #Er n deleligt med 2? 'and i!=n' times+=1 print("dit tal er ikke primtal. Tallet er deleligt med 2") j = 1 while j<(n**0.5): j+=2 times +=1 if n%j == 0 and j!=n: #Er n deleligt med 3, 5, 7, 9 etc.(j+2)? 'and j!=n' print "Dit tal er ikke primtal. Tallet er deleligt med", j break print("dit tal er et primtal") time_end = time.time()-time_start print "Det tog", time_end, "sekunder for programmet at afgøre om dit tal var et primtal" print "Programmet kørte igennem", times, "gange" while True: answer = raw_input('vil du teste endnu et tal? (y/n): ') if answer in ('y', 'n'): break print 'Invalid input.' if answer == 'y': continue break 25

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

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

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

Kryptologi og RSA. Jonas Lindstrøm Jensen (jonas@imf.au.dk)

Kryptologi og RSA. Jonas Lindstrøm Jensen (jonas@imf.au.dk) Kryptologi og RSA Jonas Lindstrøm Jensen (jonas@imf.au.dk) 1 Introduktion Der har formodentlig eksisteret kryptologi lige så længe, som vi har haft et sprog. Ønsket om at kunne sende beskeder, som uvedkommende

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

Kryptologi 101 (og lidt om PGP)

Kryptologi 101 (og lidt om PGP) Kryptologi 101 (og lidt om PGP) @jchillerup #cryptopartycph, 25. januar 2015 1 / 27 Hvad er kryptologi? define: kryptologi En gren af matematikken, der blandt andet handler om at kommunikere sikkert over

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

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

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

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

Vi har valgt at analysere vores gruppe ud fra belbins 9 grupperoller, vi har følgende roller

Vi har valgt at analysere vores gruppe ud fra belbins 9 grupperoller, vi har følgende roller Forside Indledning Vi har fået tildelt et skema over nogle observationer af gærceller, ideen ligger i at gærceller på bestemt tidspunkt vokser eksponentielt. Der skal nu laves en model over som bevise

Læs mere

HTX, RTG. Rumlige Figurer. Matematik og programmering

HTX, RTG. Rumlige Figurer. Matematik og programmering HTX, RTG Rumlige Figurer Matematik og programmering Vejledere: Jørn Christian Bendtsen og Karl G. Bjarnason Morten Bo Kofoed Nielsen & Michael Jokil 10-10-2011 In this assignment we have been working with

Læs mere

Hvad er KRYPTERING? Metoder Der findes to forskellige krypteringsmetoder: Symmetrisk og asymmetrisk (offentlig-nøgle) kryptering.

Hvad er KRYPTERING? Metoder Der findes to forskellige krypteringsmetoder: Symmetrisk og asymmetrisk (offentlig-nøgle) kryptering. Hvad er KRYPTERING? Kryptering er en matematisk teknik. Hvis et dokument er blevet krypteret, vil dokumentet fremstå som en uforståelig blanding af bogstaver og tegn og uvedkommende kan således ikke læses

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

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

Kryptografi Anvendt Matematik

Kryptografi Anvendt Matematik Kryptografi Anvendt Matematik af Marc Skov Madsen PhD-studerende Matematisk Institut, Aarhus Universitet email: marc@imf.au.dk Kryptografi p.1/23 Kryptografi - Kryptografi er læren om, hvordan en tekst

Læs mere

Fredag 12. januar David Pisinger

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

Læs mere

Matematikken bag kryptering og signering 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

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

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

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

Matematik A og Informationsteknologi B

Matematik A og Informationsteknologi B Matematik A og Informationsteknologi B Projektopgave 2 Eksponentielle modeller Benjamin Andreas Olander Christiansen Jens Werner Nielsen Klasse 2.4 6. december 2010 Vejledere: Jørn Christian Bendtsen og

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

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

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

Pointen med Differentiation

Pointen med Differentiation Pointen med Differentiation Frank Nasser 20. 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:

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

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

Introduktion til differentialregning 1. Jens Siegstad og Annegrethe Bak

Introduktion til differentialregning 1. Jens Siegstad og Annegrethe Bak Introduktion til differentialregning 1 Jens Siegstad og Annegrete Bak 16. juli 2008 1 Indledning I denne note vil vi kort introduktion til differentilregning, idet vi skal bruge teorien i et emne, Matematisk

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

Implikationer og Negationer

Implikationer og Negationer Implikationer og Negationer Frank Villa 5. april 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

Kommunikationssikkerhed til brugere bibliotek.dk projekt 2006-23

Kommunikationssikkerhed til brugere bibliotek.dk projekt 2006-23 Kommunikationssikkerhed til brugere bibliotek.dk projekt 2006-23 Formål Formålet med dette notat er at beskrive forskellige løsninger for kommunikationssikkerhed til brugerne af bibliotek.dk, med henblik

Læs mere

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

Hvordan kryptering af chat, mail og i cloud services og social networks virker Hvordan kryptering af chat, mail og i cloud services og social networks virker Alexandra Instituttet Morten V. Christiansen Kryptering Skjuler data for alle, som ikke kender en bestemt hemmelighed (en

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

Roskilde Universitetscenter, Datalogisk Afdeling Kryptering. Niels Christian Juul. N&P 11: 2001 April 18th

Roskilde Universitetscenter, Datalogisk Afdeling   Kryptering. Niels Christian Juul. N&P 11: 2001 April 18th Roskilde Universitetscenter, Datalogisk Afdeling E-mail: ncjuul@acm.org Kryptering Niels Christian Juul N&P 11: 2001 April 18th Om kryptering, DES, RSA, PGP og SSL Copyright 1998-2001, Niels Christian

Læs mere

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

Primtalsfaktorisering - nogle nye resultater og anvendelser Regionalmøde Haderslev, 19. november 2003 Primtalsfaktorisering - nogle nye resultater og anvendelser Regionalmøde Haderslev, 19. november 2003 http://home.imf.au.dk/matjph/haderslev.pdf Johan P. Hansen, matjph@imf.au.dk Matematisk Institut, Aarhus

Læs mere

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

Primtalsfaktorisering - nogle nye resultater og anvendelser Regionalmøde Haderslev, 19. november 2003 Primtalsfaktorisering - nogle nye resultater og anvendelser Regionalmøde Haderslev, 19. november 2003 http://home.imf.au.dk/matjph/haderslev.pdf Johan P. Hansen, matjph@imf.au.dk Matematisk Institut, Aarhus

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

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

Michael Jokil 11-05-2012

Michael Jokil 11-05-2012 HTX, RTG Det skrå kast Informationsteknologi B Michael Jokil 11-05-2012 Indholdsfortegnelse Indledning... 3 Teori... 3 Kravspecifikationer... 4 Design... 4 Funktionalitet... 4 Brugerflade... 4 Implementering...

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

Pointen med Funktioner

Pointen med Funktioner Pointen med Funktioner Frank Nasser 0. april 0 c 0080. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette er en

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

Eksponentielle modeller

Eksponentielle modeller Eksponentielle modeller Fag: Matematik A og Informationsteknologi B Vejledere: Jørn Christian Bendtsen og Karl G Bjarnason Side 1 af 20 Indholdsfortegnelse Introduktion 1.Indledning... 3 2. Formål... 3

Læs mere

Læringsprogram. Christian Hjortshøj, Bjarke Sørensen og Asger Hansen Vejleder: Karl G Bjarnason Fag: Programmering Klasse 3.4

Læringsprogram. Christian Hjortshøj, Bjarke Sørensen og Asger Hansen Vejleder: Karl G Bjarnason Fag: Programmering Klasse 3.4 Læringsprogram Christian Hjortshøj, Bjarke Sørensen og Asger Hansen Vejleder: Karl G Bjarnason Fag: Programmering Klasse 3.4 R o s k i l d e T e k n i s k e G y m n a s i u m Indholdsfortegnelse FORMÅL...

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

fortsætte høj retning mellem mindre over større

fortsætte høj retning mellem mindre over større cirka (ca) omtrent overslag fortsætte stoppe gentage gentage det samme igen mønster glat ru kantet høj lav bakke lav høj regel formel lov retning højre nedad finde rundt rod orden nøjagtig præcis cirka

Læs mere

Polynomiumsbrøker og asymptoter

Polynomiumsbrøker og asymptoter Polynomiumsbrøker og asymptoter Frank Villa 9. marts 2012 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold

Læs mere

Klasse 1.4 Michael Jokil 03-05-2010

Klasse 1.4 Michael Jokil 03-05-2010 HTX I ROSKILDE Afsluttende opgave Kommunikation og IT Klasse 1.4 Michael Jokil 03-05-2010 Indholdsfortegnelse Indledning... 3 Formål... 3 Planlægning... 4 Kommunikationsplan... 4 Kanylemodellen... 4 Teknisk

Læs mere

Fraktaler Mandelbrots Mængde

Fraktaler Mandelbrots Mængde Fraktaler Mandelbrots Mængde Foredragsnoter Af Jonas Lindstrøm Jensen Institut For Matematiske Fag Århus Universitet Indhold Indhold 1 1 Indledning 3 2 Komplekse tal 5 2.1 Definition.......................................

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

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

Mini SRP. Afkøling. Klasse 2.4. Navn: Jacob Pihlkjær Hjortshøj, Jonatan Geysner Hvidberg og Kevin Høst Husted

Mini SRP. Afkøling. Klasse 2.4. Navn: Jacob Pihlkjær Hjortshøj, Jonatan Geysner Hvidberg og Kevin Høst Husted Mini SRP Afkøling Klasse 2.4 Navn: Jacob Pihlkjær Lærere: Jørn Christian Bendtsen og Karl G Bjarnason Roskilde Tekniske Gymnasium SO Matematik A og Informations teknologi B Dato 31/3/2014 Forord Under

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

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

Et udtryk på formena n kaldes en potens med grundtal a og eksponent n. Vi vil kun betragte potenser hvor grundtallet er positivt, altså a>0. Konkrete funktioner Potenser Som udgangspunkt er brugen af potenser blot en forkortelse for at gange et tal med sig selv et antal gange. Hvis a Rskriver vi a 2 for a a a 3 for a a a a 4 for a a a a (1).

Læs mere

Fraktaler. Mandelbrots Mængde. Foredragsnoter. Af Jonas Lindstrøm Jensen. Institut For Matematiske Fag Århus Universitet

Fraktaler. Mandelbrots Mængde. Foredragsnoter. Af Jonas Lindstrøm Jensen. Institut For Matematiske Fag Århus Universitet Fraktaler Mandelbrots Mængde Foredragsnoter Af Jonas Lindstrøm Jensen Institut For Matematiske Fag Århus Universitet Indhold Indhold 1 1 Komplekse tal 3 1.1 Definition.......................................

Læs mere

Løsning af simple Ligninger

Løsning af simple Ligninger Løsning af simple Ligninger Frank Nasser 19. 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:

Læs mere

Eksponentielle modeller

Eksponentielle modeller 2013 Eksponentielle modeller Jacob Elmkjær og Dan Sørensen Matematik/IT Roskilde Tekniske Gymnasium 09-12-2013 Lærere: Jørn Christian Bendtsen og Karl Bjarnason Indhold Indledning... 2 Opgave analyse...

Læs mere

Funktionsterminologi

Funktionsterminologi Funktionsterminologi 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

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering...

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering... Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering... 3 Kildekoden... 4 Variabler... 4 Setup... 4 Loop... 4 Indledning

Læs mere

P vs. NP. Niels Grønbæk Matematisk Institut Københavns Universitet 3. feb. 2012

P vs. NP. Niels Grønbæk Matematisk Institut Københavns Universitet 3. feb. 2012 P vs. NP Niels Grønbæk Matematisk Institut Københavns Universitet 3. feb. 2012 Den handelsrejsendes problem Kan det lade sig gøre at besøge n byer forbundet ved et vejnet, G, inden for budget, B? Hvad

Læs mere

Algebra - Teori og problemløsning

Algebra - Teori og problemløsning Algebra - Teori og problemløsning, januar 05, Kirsten Rosenkilde. Algebra - Teori og problemløsning Kapitel -3 giver en grundlæggende introduktion til at omskrive udtryk, faktorisere og løse ligningssystemer.

Læs mere

3 Algebra. Faglige mål. Variable og brøker. Den distributive lov. Potenser og rødder

3 Algebra. Faglige mål. Variable og brøker. Den distributive lov. Potenser og rødder 3 Algebra Faglige mål Kapitlet Algebra tager udgangspunkt i følgende faglige mål: Variable og brøker: kende enkle algebraiske udtryk med brøker og kunne behandle disse ved at finde fællesnævner. Den distributive

Læs mere

Funktionsterminologi

Funktionsterminologi Funktionsterminologi 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

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

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

Kapitel 3 Betinget logik i C#

Kapitel 3 Betinget logik i C# Kapitel 3 i C# er udelukkende et spørgsmål om ordet IF. Det er faktisk umuligt at programmere effektivt uden at gøre brug af IF. Du kan skrive små simple programmer. Men når det bliver mere kompliceret

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

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

TALTEORI Wilsons sætning og Euler-Fermats sætning. Wilsons sætning og Euler-Fermats sætning, oktober 2008, Kirsten Rosenkilde 1 TALTEORI Wilsons sætning og Euler-Fermats sætning. Disse noter forudsætter et grundlæggende kendskab til talteori som man kan

Læs mere

Afstande, skæringer og vinkler i rummet

Afstande, skæringer og vinkler i rummet Afstande, skæringer og vinkler i rummet Frank Villa 2. maj 202 c 2008-20. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold

Læs mere

Matematiske metoder - Opgaver

Matematiske metoder - Opgaver Matematiske metoder - Opgaver Anders Friis, Anne Ryelund 25. oktober 2014 Logik Opgave 1 Find selv på tre udtalelser (gerne sproglige). To af dem skal være udsagn, mens det tredje ikke må være et udsagn.

Læs mere

Fortløbende summer NMCC Danmark Muldbjergskolen 8.P

Fortløbende summer NMCC Danmark Muldbjergskolen 8.P Fortløbende summer NMCC 2018 Danmark Muldbjergskolen 8.P 1 Indholdsfortegnelse: S. 3 Vores første observationer S. 4 Ulige antal af fortløbende tal S. 6 Lige antal af fortløbende tal S. 8 Udvikling af

Læs mere

Variable. 1 a a + 2 3 a 5 2a 3a + 6 a + 5 3a a 2 a 2 a 2 5 7 15 5 21 5 25 0 2 0 6 9 0 9 4 0 1 3 3 3 9 3 1 0 0 2 0 5 6 5 0 0 2,5 1,5 4 7,5 4 0

Variable. 1 a a + 2 3 a 5 2a 3a + 6 a + 5 3a a 2 a 2 a 2 5 7 15 5 21 5 25 0 2 0 6 9 0 9 4 0 1 3 3 3 9 3 1 0 0 2 0 5 6 5 0 0 2,5 1,5 4 7,5 4 0 Variable 1 a a + 2 3 a 5 2a 3a + 6 a + 5 3a a 2 a 2 a 2 5 7 15 5 21 5 25 0 2 0 6 9 0 9 4 0 1 3 3 3 9 3 1 0 0 2 0 5 6 5 0 0 2,5 1,5 4 7,5 4 0 2 a x = 5 b x = 1 c x = 1 d y = 1 e z = 0 f Ingen løsning. 3

Læs mere

Vejledning til Projektopgave. Akademiuddannelsen i projektstyring

Vejledning til Projektopgave. Akademiuddannelsen i projektstyring Vejledning til Projektopgave Akademiuddannelsen i projektstyring Indholdsfortegnelse: Layout af projektopgave!... 3 Opbygning af projektopgave!... 3 Ad 1: Forside!... 4 Ad 2: Indholdsfortegnelse inkl.

Læs mere

Projektopgave Rumlige figurer. Matematik & Programmering Lars Thomsen Klasse 3.4 HTX Roskilde Vejledere: Jørn & Karl 05/10-2009

Projektopgave Rumlige figurer. Matematik & Programmering Lars Thomsen Klasse 3.4 HTX Roskilde Vejledere: Jørn & Karl 05/10-2009 Projektopgave Rumlige figurer Lars Thomsen HTX Roskilde Vejledere: Jørn & Karl 05/10-2009 Indholdsfortegnelse 0. Summary:... 4 1. Opgaveanalyse:... 5 1.1 Overordnet:... 5 1.2 Konkrete krav til opgaven:...

Læs mere

Elementær Matematik. Mængder og udsagn

Elementær Matematik. Mængder og udsagn Elementær Matematik Mængder og udsagn Ole Witt-Hansen 2011 Indhold 1. Mængder...1 1.1 Intervaller...4 2. Matematisk Logik. Udsagnslogik...5 3. Åbne udsagn...9 Mængder og Udsagn 1 1. Mængder En mængde er

Læs mere

Afstande, skæringer og vinkler i rummet

Afstande, skæringer og vinkler i rummet Afstande, skæringer og vinkler i rummet Frank Nasser 9. april 20 c 2008-20. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her.

Læs mere

Dokumentation af programmering i Python 2.75

Dokumentation af programmering i Python 2.75 Dokumentation af programmering i Python 2.75 Af: Alexander Bergendorff Jeg vil i dette dokument, dokumentere det arbejde jeg har lavet i løbet opstarts forløbet i Programmering C. Jeg vil forsøge, så vidt

Læs mere

IT opgave. Informationsteknologi B. Vejleder: Karl. Navn: Devran Kücükyildiz. Klasse: 2,4

IT opgave. Informationsteknologi B. Vejleder: Karl. Navn: Devran Kücükyildiz. Klasse: 2,4 IT opgave Informationsteknologi B Vejleder: Karl Navn: Devran Kücükyildiz Klasse: 2,4 Dato:03-03-2009 1 Indholdsfortegnelse 1. Indledning... 3 2. Planlægning... 3 Kommunikationsplanlægning... 3 Problemstillingen...

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

Forslag til løsning af Opgaver til afsnittet om de naturlige tal (side 80)

Forslag til løsning af Opgaver til afsnittet om de naturlige tal (side 80) Forslag til løsning af Opgaver til afsnittet om de naturlige tal (side 80) Opgave 1 Vi skal tegne alle de linjestykker, der forbinder vilkårligt valgte punkter blandt de 4 punkter. Gennem forsøg finder

Læs mere

RSA-KRYPTERING. Studieretningsprojekt. Blerim Cazimi. Frederiksberg Tekniske Gymnasium. Matematik A. Vejleder: Jonas Kromann Olden

RSA-KRYPTERING. Studieretningsprojekt. Blerim Cazimi. Frederiksberg Tekniske Gymnasium. Matematik A. Vejleder: Jonas Kromann Olden 14. DEC 2014 RSA-KRYPTERING Studieretningsprojekt Blerim Cazimi Frederiksberg Tekniske Gymnasium Matematik A Vejleder: Jonas Kromann Olden Informationsteknologi B Vejleder: Kenneth Hebel Indhold Indledning...

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

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

Programmering C RTG - 3.3 09-02-2015

Programmering C RTG - 3.3 09-02-2015 Indholdsfortegnelse Formål... 2 Opgave formulering... 2 Krav til dokumentation af programmer... 3 ASCII tabel... 4 Værktøjer... 5 Versioner af ASCII tabel... 6 v1.9... 6 Problemer og mangler... 6 v2.1...

Læs mere

Noter til Perspektiver i Matematikken

Noter til Perspektiver i Matematikken Noter til Perspektiver i Matematikken Henrik Stetkær 25. august 2003 1 Indledning I dette kursus (Perspektiver i Matematikken) skal vi studere de hele tal og deres egenskaber. Vi lader Z betegne mængden

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

Euklids algoritme og kædebrøker

Euklids algoritme og kædebrøker Euklids algoritme og kædebrøker Michael Knudsen I denne note vil vi med Z, Q og R betegne mængden af henholdsvis de hele, de rationale og de reelle tal. Altså er { m } Z = {..., 2,, 0,, 2,...} og Q = n

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

Jeg har i forbindelse med it og programmering designet og udviklet et it-produkt, som kan beregne rødder i en anden gradsligning.

Jeg har i forbindelse med it og programmering designet og udviklet et it-produkt, som kan beregne rødder i en anden gradsligning. Indhold Beregn rødder... 2 Beskrivelse af kærneproblemet... 2 Plan for brugerfladen for programmet... 3 Operationer på inddata... 4 Output - Beskrivelse af uddata... 4 Flowchart - programmets logiske opbygning/struktur...

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

Emil, Nicklas, Jeppe, Robbin Projekt afkodning

Emil, Nicklas, Jeppe, Robbin Projekt afkodning Skal man omskrive noget om til en kompakt tekst, eller til specifikt sprog, så kan matematiken være et meget fornuftigt alternativ. Matematiken er et sprog som mange forstår, eller i hvert fald kan lære

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

Primtal - hvor mange, hvordan og hvorfor?

Primtal - hvor mange, hvordan og hvorfor? Johan P. Hansen 1 1 Institut for Matematiske Fag, Aarhus Universitet Gult foredrag, EULERs Venner, oktober 2009 Disposition 1 EUKLIDs sætning. Der er uendelig mange primtal! EUKLIDs bevis Bevis baseret

Læs mere

MATEMATIK 7. KLASSE. Web 3

MATEMATIK 7. KLASSE. Web 3 MATEMATIK 7. KLASSE Web 3 INDHOLDSFORTEGNELSE 1. Forløbsbeskrivelse... 3 1.1 Resumé: WEB 3.0... 3 1.2 Rammer og praktiske forhold... 4 2. Mål og faglige begreber... 5 3. Forløbsnær del... 7 3.1 Introfase:

Læs mere

Februar Vejledning til Danske Vandværkers Sikker mail-løsning

Februar Vejledning til Danske Vandværkers Sikker mail-løsning Februar 2019 Vejledning til Danske Vandværkers Sikker mail-løsning 0 Indhold Formål med denne vejledning 2 Generelt om Sikker mail-løsningen og hvordan den fungerer 2 Tilgå Sikker mail-løsningen via webmail

Læs mere

Andengradsligninger. Frank Nasser. 11. juli 2011

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

Læs mere