En undersøgelse af faktoriseringsalgoritmen Pollard p-1
|
|
|
- Anne Fog
- 10 år siden
- Visninger:
Transkript
1 itsi 009, proetopgave Torsten Jordt, En undersøgelse af fatoriseringsalgoritmen Pollard p- Indhold: Opgavens mål og rammer Introdution til fatoriseringsalgoritmer og Pollard p- 3 Pollard p- og Stinson s fremgangsmåde 3 Stinson s fremgangsmåde 3 Derfor fatoriserer Stinson s fremgangsmåde 33 Imødegåelse af truslen fra Pollard p Simpel iterativ fastsættelse af 4 35 En simpel transformation af Stinson s algoritme 5 36 En hurtigere iterativ fastsættelse af 6 4 Analyse af Stinson s fremgangsmåde 8 4 Hvorfor antager a værdien? 8 4 Findes der produter af svage primtal som ie an fatoriseres? 8 43 Sal man bare gøre stor no? 9 5 Optimering af Stinson s fremgangsmåde 9 6 Hvorfor fungerer den optimerede fremgangsmåde? 6 Intervallet af de er for hvile Pollard p- fatoriserer 6 Argumentation 63 Derfor fungerer den optimerede fremgangsmåde 4 64 Esempler på intervaller 4 7 Et andet optimering af Stinson s fremgangsmåde 6 7 Fremgangsmåden X 6 7 Strategier for chec 7 73 Hastighed 8 8 Sammenfatning 8 9 Appendix: Generering af primtalsproduter til brug i undersøgelsen 9 0 Appendix: Implementering i ava
2 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p Opgavens mål og rammer Denne rapport er en besvarelse af en proetopgave der udgør urset IT-sierhed i prasis Opgaven er afslutningen på et forløb, der blev indledt med fagpaerne Introdution til it-sierhed og Kryptologi De tre urser udgorde tilsammen fagpaen It-sierhed som blev udbudt af IT-vest i 009 Opgavens overordnede formål var at undersøge og implementere Pollard s p algoritme som Stinson formulerer den Fremgangsmåden i opgaven har været at implementere forsellige varianter af Stinson s formulering, undersøge hvordan de opfører sig, forlare hvorfor de opfører sig som de gør, og sluttelig udnytte denne viden til forsøg på optimering af Stinson s formulering af algoritmen Rammen for implementeringerne har været standard Java på en standard-pc Målet har ie været at lave hurtige implementeringer, men derimod implementeringer som var funtionelt effetive Dvs implementeringer som i mindre grad opgiver at fatorisere, og som ie nødvendigvis ræver forhåndsvalg af input ud over det tal der ønses fatoriseret Der er tale om en enmandsopgave, og den blev løst på en traditionel pc med traditionel software Pc en var en Dell Dimension 550 med G RAM og en Intel Pentium D CPU 8 GHz Styresystemet var Windows XP SP3 og programomgivelserne var Java SDK 6 og JUnit3 Fra ava s værtøsasse blev benyttet bla lassen iginteger og de metoder den som standard er udstyret med (multiply, subtract, add, gcd, modpow, bitlength, isprobableprime, etc) esvarelsen af opgaven baserer sig i det væsentlige på følgende materiale: Ivan Damgård: An Introduction to some asic Concepts in IT, Security and Chryptography (ursusnoter 009) Jesper uus Nielsen: Introduction to Moderns Cryptography (ursusnoter 009) Douglas R Stinson: Chryptography Theory and Practice, 3rd edition Rapporten refererer til dette materiale med betegnelserne hhv Damgård, Nielsen og Stinson Kildeode, målinger og testdata (primtalsproduter) findes her: Jeg har tilstræbt en onsevent navngivning, således at der sulle være en nogenlunde entydig sammenhæng mellem ildeode, målinger, testdata og rapport Målingerne findes som olon-separeret test i csv-filer, som an åbnes med et regnear Vær i givet fald opmærsom på to forhold: Regnearsprogrammet an være ude af stand til at vise tal med mange cifre Filer indeholdende store tal (typis på 30 bits og derover) bør åbnes med en almindelig testeditor Kolonner sal muligvis sal have udvidet bredden for at lange tal og navne bliver fuldt synlige Den begrænsede masinraft har påviret valget af testdata, således at der hovedsageligt er undersøgt produter af meget små primtal (dvs primtal op til 3 bits) Og ved målinger på mange produter ad gangen har det været nødvendigt at basere sig på produter af endnu ortere primtal (typis 0-4 bits) Men der er tilstræbt en systemati og opbygning af ava-programmerne, så undersøgelsen i princippet an gentages med vilårligt store primtal Sidst men ie mindst: Ta til Jesper uus Nielsen uden hvis hælp eg aldrig havde forstået det eg så Og ta til min familie der sældent så mig mens eg så Introdution til fatoriseringsalgoritmer og Pollard p- Generelt er udgangspuntet for en fatoriseringsalgoritme et tal n, der formodes at være produtet af to primtal p og q Algoritmen tager som input et n, og den sal beregne enten p eller q (eller opgive at gøre det) En sådan fatorisering er interessant fordi den esempelvis an bruges til at bryde RSA-ryptering Kort fortalt bygger rypteringen i RSA på følgende principper (f Damgård): Kryptering ser med brug af en offentlig nøgle bestående af et talpar ( n, e) En rypteret meddelelse c beregnes med udtryet c = m e mod n
3 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p Deryptering ser med brug af en hemmelig nøgle bestående af et talpar ( n, d) En derypteret meddelelse m beregnes med udtryet m = c d mod n n er et produt af to forsellige hemmelige primtal p og q Dvs n = pq d an beregnes ud fra sammenhængen ed = mod( p )( q ) Med andre ord: Kan man fatorisere n, er den hemmelige nøgle afsløret Pollard p algoritmen er en fatoriseringsalgoritme der blev formuleret af John Pollard i 974 Den egner sig til fatorisering af tal der er sammensat af fatorer med særlige egensaber Det er simpelt at vælge p og q, så algoritmen vanseligt an fatorisere n = pq, og dermed bryde rypteringen i RSA Dette besrives nærmere i et følgende afsnit Trods dette er algoritmen relevant at undersøge nærme som et led i et undervisningsforløb Den bygger på få (og enelt formulerede) egensaber forz, og implementeringen er enel Men undersøgelser af n algoritmen afdæer (ie overrasende) ie-triviel matematis omplesitet, og arbedet med implementeringer af algoritmen breder sig naturligt til andre områder af generel interesse Esempelvis generering af primtal med specifie egensaber, overveelser om hvad der nærmere an ligge i udsagnet effetiv implementering af en fatoriseringsalgoritme og hvordan dette an effetueres, samt selve det at sætte sig ind i teoridannelser på området 3 Pollard p- og Stinson s fremgangsmåde Udgangspuntet for Pollard p- er et n der sal fatoriseres, og en på forhånd givet øvre grænse Antag følgende: Et primtal p fatoriserer n For alle primtalspotenser q der opfylder q ( p ) er q () 3 Stinson s fremgangsmåde Antagelsen () betyder at der gælder at ( )! p Stinson formulerer Pollard p- algoritmen således: Stinsons formulering af Pollard p- input : n, a for to a a modn d gcd( a, if < d < n then return d else return failure Fremgangsmåden er implementeret i ava-lassen Pollard_p Stinson 3 Derfor fatoriserer Stinson s fremgangsmåde Da
4 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p ! = = ((( ) )) må der ved afslutningen af for-løen gælde at Da vi har antaget at a! (mod a a p n! n a p a!, giver regnereglerne for ongruens-relationer at (mod!! (mod p) Nu træes Fermat s lille teorem af stald For et vilårligt primtal p og et vilårligt tal b gælder at b p b (mod p) Hvis ydermere p og b er coprimes (dvs gcd( p, b) = ) gælder at b p (mod p) For b = er gcd( p, b) = (fordi p o er et primtal), og dermed gælder at p (mod p) Vi er nu lar til at etablere sammenhængen mellem a og p Da ( p )! er ( p ) =! for et eller andet tal Dermed gælder at a a a ( a! (mod p) ( p ) ) ( p ) (mod p) a (mod p) (mod p) (mod p) Og dermed (pr definition af ongruens): p ( a ) Når algoritmen har afsluttet sin for-løe er situationen altså denne: p n p' = n p ( a ) for visse '> 0 og "> 0 p" = a Hvis a > vil algoritmen således beregne d = gcd( a, = gcd( p", p') p > 3
5 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p Da algoritmen beregner a som et tal mod n er 0 a < n og dermed a < n Derfor vil algoritmen altid (for a > ) beregne d = gcd( a, < n Med andre ord: Hvis blot a vil d være en fatorisering af n, såfremt forudsætningen () holder Hvis forudsætningen () ie er opfyldt, holder ( a ) Men der vil forsat gælde d < n p ie nødvendigvis, og vi an få beregnet = d Som Stinson også nævner, er d un divisor såfremt a nærmere, og om fremgangsmåden sriver han generelt at if we increase the size of drastically, say to n, then the algorithm is guaranteed to be successful Men Stinson behandler dog ie denne situation Men det vil vise sig, at man ie bare an øge størrelsen af og forvente samme resultat at Stinsons formulering af Pollard p- Allerede nu ses let, at hvis algoritmens for-løe én gang har beregnet a = for et givet, så giver det ie mening at øge størrelsen af Og det vil vise sig, at der findes produter af svage primtal, som Pollard p- ie an fatorisere uanset valget af 33 Imødegåelse af truslen fra Pollard p- Generelt sal man naturligvis altid vælge sit primtalsprodut som et produt af store primtal p Men man sal derudover vælge sit primtalsprodut så forudsætningen () for Pollard p- un vanseligt bliver opfyldt Det har store primtalsfatorer Esempelvis ved at lade p være et stært primtal gøres ved at vælge p så p (dvs at p an srives som p = p' + hvor p' er et primtal) Så bliver p fatoriseret til p = p' med netop en stor primtalsfator Men der findes fatis produter af svage primtal som Pollard p- ie an fatorisere overhovedet Dette redegøres der nærmere for senere 34 Simpel iterativ fastsættelse af Nielsen anviser en fremgangsmåde til at undgå at sulle give som input Man sal (groft sagt) blot udføre Pollard p- for =,4,8,,, indtil man har fået beregnet en fatorisering eller bliver for stor (dvs > n ) Eller at = a En umiddelbar fremgangsmåde til realisering af dette unne være denne:, dvs 4
6 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p Pollard p- med iteration over input : n result failure while result = failure and result = Pollard p ( n, ) if Pollard p a = then return failure return result n do Fremgangsmåden er implementeret i ava-lasserne Pollard_p Stinson og Pollard_p Native etingelsen Pollard p a = sal forstås således: saf den seneste værdi af a som er beregnet af Pollard p -algoritmen, og sammenlign denne værdi med Testen på betingelsen er en optimering af hastigheden; når a = giver det ingen mening at fortsætte iterationen over Det ses, at fremgangsmåden vil resultere i én af følgende tre tilstande: result = failure fordi > n result = failure fordi a = result = gcd( a, 35 En simpel transformation af Stinson s algoritme Analysen af Pollard p- og Stinson s implementering viser at en algoritme også unne formuleres således: Pollard p- (native) input : n, a for to a a modn if a = then return failure d gcd( a, if d > then return d else return failure 5
7 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p Fremgangsmåden er implementeret i ava-lassen Pollard_p Native I forhold til Stinsons algoritme er der lagt en test ind på hver beregning af a, og betingelsen d < n er fernet eregnes a = er der ingen grund til at fortsætte, og algoritmen melder fel Funtionelt opfører begge fremgangsmåder sig ens udadtil, forstået på den måde at de vil producere identis output hvis de gives identis input Men det vil vise sig, at testen på a = i fremgangsmåden Native danner grundlag for en væsentlig forbedring af evnen til at fatorisere Hastigheden blev målt på 0 produter af to 3 bits svage primtal: Stinson n p q Tid/se Resultat Native Tid/se Resultat Samlet tidsforbrug Notation: { = } = Der blev fatoriseret ud fra n alene, med iterativ fastsættelse af Målingerne viser ie nogen grund til at antage at fremgangsmåden beregner væsentligt langsommere (eller hurtigere) end Stinson s fremgangsmåde På den ene side vil for-løen og implementeringen stoppe med det samme når a beregnes til På den anden side er der lagt en estra test ind på a Men hveren potensopløftning afeller en test for en onstant-værdi an anses for specielt tunge operationer Den tunge beregning er a modn for a, og der vil være lige mange af disse beregninger i begge implementeringer 36 En hurtigere iterativ fastsættelse af Den tidligere besrevne fremgangsmåde til iterative beregning af har den egensab, at der foretages gentagne beregninger af potensopløftningen a a mod n, hvor starter fra hver gang der prøves med et nyt Nogle af disse beregninger an spares, idet et forsøg med et nyt an starte på grundlag af de værdier der blev beregnet for den forudgående værdi af Målt for alle 0 produter som en helhed 6
8 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p Pollard p- () input : n a 0 while n do for 0 to a a modn if a = then return failure 0 + d gcd( a, if d > then return d return failure Fremgangsmåden er implementeret i ava-lassen Pollard_p Hastigheden blev målt for et antal serier 0 forsellige primtalsproduter Hver serie var dannet af svage primtal på hhv bits, 4 bits, 3 bits Tid/se bit 4 bit 6 bit 8 bit 30 bit 3 bit Native /Native 50% 50% 50% 47% 53% 5% Der blev fatoriseret ud fra n alene, med iterativ fastsættelse af Det ses at der er opnået en redution af beregningstiden på ca 50% Det er som forventet, idet halveringen an forlares med at der ie laves overflødige gentagelser af potensopløftningen nemlig at beregningstiden i det væsentlige stammer fra potensopløftningen Lad a a mod n T Native betegne antal Antag potensopløftninger i fremgangsmåden Native, lad T betegne antal potensopløftninger i fremgangsmåden En grænse for værdien der beregner en fatorisering er givet ved = Så 0 ert = og T = Dermed fås for store Native T T Native i= 0 = = + = + i + = + + = Dvs at fremgangsmåden Native tager dobbelt så meget beregningstid som fremgangsmåden, svarende til at fremgangsmåden reducerer beregningstiden med ca 50% 7
9 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p Funtionelt opfører begge fremgangsmåder sig ens udadtil, forstået på den måde at de vil producere identis output hvis de gives identis input 4 Analyse af Stinson s fremgangsmåde 4 Hvorfor antager a værdien? Hvorfor antager a værdien? Det orte svar er: Fordi Antag nemlig at Og dermed gælder for alle n = pq hvor p og q er forsellige primtal Så er ord( Z = φ( = ( p )( q ) x ( p )( q ) x Z n modn = n = pq hvor p og q er primtal og specielt ( p )( q ) modn = Med andre ord: På et eller andet tidspunt vil a nødvendigvis antage værdien 4 Findes der produter af svage primtal som ie an fatoriseres? Findes der produter af svage primtal som Pollard p- ie an fatorisere? Det orte svar er: Ja Pr definition af lcm (Least Common Multiple) gælder ( p ) lcm( p, q ) ( q ) lcm( p, q ) Af Fermats lille teorem an udledes, at hvis p er et primtal og gælder for alle x Z x n at lcm( p, q ) mod p = x lcm( p, q ) modq = ( p ) a så er x a mod p = Chinese Reminder teoremet indebærer at der nødvendigvis må gælde for alle og specielt x lcm( p, q ) lcm( p, q ) modn = modn = x Z n at Dermed Det betyder, at når lcm( p, q )! vil Pollard p- nødvendigvis beregne a = Hvis dette ser før ( p )! eller ( q )! vil algoritmen altid fele, uanset valg af Mere formelt udtryt: Hvis Hvis ( p ) a er a = ( p ) = p for et eller andet Dermed fås for vilårlige x at p p a p x ( x ) ( x) x mod p = x mod p = mod p = mod p = mod p = x x x hvor Fermats teorem blev benyttet i næstsidste lighedstegn 8
10 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p lcm( p, q )! ( p ) '! ( q ) '! for alle ' < vil algoritmen fele, uanset om vælges større Dette er esempelvis tilfældet for =64*377, svarende til n = , p = 64 og q = 377 Her bliver så p = 640 = q = 376 = lcm( p, q ) = Det mindste (dvs første ) hvor lcm( p, q )! er = 47 Men der findes ingen '< 47 så ( p ) '! eller ( q ) '! Vi har altså her et = 47 så lcm( p, q )! ( p ) '! ( q ) '! for ' < Pollard p- algoritmen vil derfor fele, uanset hvordan vælges 43 Sal man bare gøre stor no? Sal man bare gøre stor no? Det orte svar er: Ne Det an være nyttigt at gøre større, men generelt er det ie siert at det hælper Dette er esempelvis tilfældet for =64*64, svarende til n = , p = 64 og q = 64 Her er p = 640 = q = 640 = lcm( p, q ) = Vælges esempelvis = 547 vil algoritmen fatorisere (fordi ( p ) 547! ) Men vælges esempelvis = 8 vil algoritmen ie fatorisere (fordi lcm ( p, q ) 8! ) Esempelvis vil en iterativ forøgelse af fra af n = pq, såfremt til + betyde at algoritmen vil misse en fatorisering '! < gcd(, < n for < + + ' < og lcm ( p, q )! Med andre ord: Princippet at udføre Pollard p- for,4,8,,, = har sin pris, nemlig at dette ie beregner visse fatoriseringer, der ellers ville unne have været beregnet for mere heldige valg af 5 Optimering af Stinson s fremgangsmåde Hvad an man gøre når først algoritmen har beregnet a =? Svaret viser sig at være simpelt: Man an tage fat i den umiddelbart forudgående værdi af a og benytte den til beregningen d gcd( a, Forbløffende no bevirer dette en marant forbedring af algoritmens evne til at fatorisere 9
11 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p Fremgangsmåden Native an således omformes til denne fremgangsmåde: input : n, a if d > then return d Pollard p- (a) for to aprevious a a a modn if a = then d gcd( a if d > then return d return failure d gcd( a, else return failure previous, Fremgangsmåden er implementeret i ava-lassen Pollard_p a 0
12 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p Fremgangsmåden ( hurtigere iteration over ) an omformes til denne fremgangsmåde: input : n a 0 while Pollard p- (a) n do for 0 to aprevious a a a modn if a = then d gcd( aprevious if d > then return d return failure 0 + d gcd( a, if d > then return d return failure, Fremgangsmåden er implementeret i ava-lassen Pollard_p a Hastigheden og effetiviteten blev målt på 000 produter to 4 bits svage primtal: a Antal fatoriseringer Funtionel effetivitet 94% 00% Tid/se Der blev fatoriseret ud fra n alene, med iterativ fastsættelse af Funtionel effetivitet er beregnet som antal fatoriseringer divideret med antal produter Det ses at fremgangsmåden a beregner ca 6% flere fatoriseringer end fremgangsmåden Til gengæld tager den 04% længere tid Altså stort set samme tidsforbrug
13 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p Der er egentlig ie noget overrasende i at der an findes en fatorisering ved at prøve med en tidligere værdi af a (f afsnittet Sal man bare gøre stor no? sal man blot undersøge tilstræeligt mange tidligere værdier) Det overrasende er at man an finde en fatorisering ved blot at tage den umiddelbart forudgående værdi af a 6 Hvorfor fungerer den optimerede fremgangsmåde? Hvorfor er fremgangsmåden a effetiv? Det orte svar er: Fordi de er for hvile Pollard p- fatoriserer udgør et interval 6 Intervallet af de er for hvile Pollard p- fatoriserer Lad i det følgende n og eller, n ) ( q, ) n betegne primtallene p og q og lad n = n n Dvs ( n, n ) = ( p, q) n = Lad endvidere ( p a[ ] = a! a [ ] = a a [ ] = a modn!! modn modn Så indebærer Chinese Reminder teoremet at a[ ] an udtryes ved a [ ], a [ ]) a [ ] = ( a[ ], a[ ]) ( Forløbet af en fatorisering med Pollard p- an dermed illustreres således: a [ ] a [ ] a [ ] min min max max + Notation: betegner en værdi der er forsellig fra Intervallet med de er for hvile Pollard p- fatoriserer er fastlagt ved, ] når der fatis findes min max [ min max og omvendt Dvs Dette gælder dog un Intervallet an være tomt, svarende til at der findes produter af svage primtal, som Pollard p- ie an fatorisere (som vist tidligere) 6 Argumentation At forløbet af en fatorisering fatis forløber som illustreret ovenfor bygger på nogle simple sammenhænge Disse er: a) a =, a < d < n
14 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p b) a, a d = c) a =, a = d = n d) a [ ] = a [ i] = i > For nemheds syld benyttes notationen a for [ ] a og a for [ ] a a) udtryer situationen hvor Pollard p- fatoriserer d) udtryer én gangaltid (dvs at når først a er beregnet tilvil a vedblive at få værdie a) a =, a < d < n Udgangspuntet er: Sæt = gcd( n, a ) a a modn = a modn ( a )mod n = 0 ( a )mod n 0 n ( a ) n ( a ) d Så gælder n d a d b), = Udgangspuntet er: a modn a modn ( a )mod n 0 ( a )mod n 0 n ( a ) n ( a ) Da n = n n er d = gcd( n, a ) = c) a =, a = d = n Udgangspuntet er: a modn = a modn = ( a )mod n = 0 ( a )mod n = 0 n ( a ) n ( a ) d Da n n Dermed fås n > Da d = gcd( n, a ) er n d og n d og dermed d = n n a er d < n og ( ) 3
15 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p d) a [ ] = a[ i] = i > Udgangspuntet er (for =, ): a! modn = Så bliver for i > i! i! i!! = i!!!!! a [i] = a modn a modn = ( a ) modn = modn = 63 Derfor fungerer den optimerede fremgangsmåde Det ses nu hvorfor fremgangsmåden a fungerer Når fremgangsmåden har beregnet a = svarer det til at har værdien, Fremgangsmåden tager den forudgående værdi af a, nemlig a ] og max + beregner d ud fra denne værdi Og det er netop en værdi som giver en fatorisering (såfremt ) 64 Esempler på intervaller [ max I det følgende vises nogle esempler på hvordan intervallet an være opbygget Alle esempler er produceret og verificeret med JUnit3-lassen AnalyzeInterval Tilfældet 48877=053*089 (et interval af længden 0): Interval = { 9 8} a [ ] a [ ] a [ ] Tilfældet =30*3 (et interval af længden ): Interval = { = 8} a [ ] a [ ] a [ ] min max 4
16 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p Tilfældet =64*64 (et større interval): a [ ] a [ ] a [ ]
17 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p Interval = { } Tilfældet for =64*377 (hvor Pollard p- feler): Interval = Ø a [ ] a [ ] a [ ] Et andet optimering af Stinson s fremgangsmåde 7 Fremgangsmåden X De foregående undersøgelser viser at en fremgangsmåde også an formuleres således: input : n a Pollard p- (X) while a > do a previous a a a mod n if checn, a, then d gcd( a previous, if d > then return d + d gcd( a, if d > then return d else return previous failure Fremgangsmåden er implementeret i ava-lassen Pollard_p X Notation: fatoriserer chec, n a, er en test på om der sal tees på om vi har ramt intervallet hvor Pollard p- Den afgørende forsel i forhold til Stinson s fremgangsmåde er at der hele tiden tees på om der er fundet en andidat til en fator Med Stinson s fremgangsmåde risierer man bogstavelig talt at syde forbi målet, fordi der her un tees én andidat En anden fordel er at fremgangsmåden samler Stinson s 6
18 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p fremgangsmåde og gættet på rette interval i ét hele Og at fremgangsmåden tydeliggør og fouserer det forhåndsvalg der sal træffes, nemlig gættet på rette interval 7 Strategier for chec Strategien for hvornår testen chec n, a, sal give true er et valg man sal træffe Helt i lighed med fremgangsmåden, hvor der tees for =,4,8,,, Så nissen flytter med man sal stadig træffe et forhåndsvalg På den anden side giver fremgangsmåden mulighed for en meget flesibel implementering af forsellige strategier Java-implementeringen benytter derfor et Strategy Design Pattern 3 3 esrevet nærmere i Erich Gamma et al: Design Patterns, Elements of Reusable Obect-Oriented Software, 995, p 35 7
19 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p itlength En strategi for chec n, a, an være at testen sal give true når bitlængden af er øget med Så vil fremgangsmåden i realiteten opføre sig som fremgangsmåden Strategien er implementeret med ava-lassen Pollard_p XitLengthChecStrategy NoChec I princippet unne man vælge at testen altid sal give false Så vil fremgangsmåden stadig beregne det samme, men an tage væsentligt længe tid, fordi det først opdages til sidst at vi har ramt intervallet hvor Pollard p- fatoriserer Hvis vi havde en forhåndsviden om at det pågældende interval er ort, er det oplagt at testen altid sal give false Problemet er at denne viden har man ie Helt svarende til at man ie har viden til at vælge det præcise i Stinson s fremgangsmåde Strategien er implementeret med ava-lassen Pollard_p XNoChecStrategy oundchec Man an vælge en strategi der giver true når bitlængden af er overstiger en vis grænse Så vil fremgangsmåden i realiteten opføre sig som fremgangsmåden Native, bortset fra at iterationen fortsættes hvis er sat for lavt Strategien er implementeret med ava-lassen Pollard_p XoundChecStrategy AnalyzeInterval a a mod n Man an vælge en strategi der analyserer hvert sridt i udvilingen Fremgangsmåden an så bruges til at producere de esempler der er i afsnittet Esempler på intervaller Strategien er implementeret med ava-lassen AnalyzeIntervalStrategy, og esemplerne i afsnittet er produceret med JUnit3-lassen AnalyzeInterval 73 Hastighed Hastigheden i forhold til fremgangsmåden a blev målt på 0 produter af to 8 bits svage primtal: n p q a X(itLengthChec) X(NoChec) Tid/se Tid/se Tid/se Samlet tidsforbrug Der blev fatoriseret ud fra n alene, med iterativ fastsættelse af Som ventet er der ingen væsentlig forsel i hastigheden på fremgangsmåderne a og X(itLengthChec) Og fremgangsmåden X(NoChec) tager som ventet længere tid Der er tale om en væsentlig øget tidsforbrug, som illustrerer nødvendigheden af en strategi for 8 Sammenfatning chec, n, a Det er vist, at Stinson s formulering simpelt an modificeres så den fatoriserer bedre når beregnes iterativt 4 Målt for alle 0 produter som en helhed 8
20 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p Det er vist, at de er for hvile Pollard p- fatoriserer udgør et interval, og der er fundet et udtry for den øvre grænse på dette interval Specielt viser dette, at man generelt ie an øge værdien af for at få Stinsons formulering til at fatorisere Det er vist at der findes produter svage primtal som ie an fatoriseres af Stinson s fremgangsmåde, og det er besrevet hvordan disse an beregnes ud fra endsab til produtets primtalsfatorer Der er besrevet en fremgangsmåde der (på grundlag af Stinson s formulering) på én gang favner både Stinson s fremgangsmåde (der forudsætter angivelse af et ) og en situation hvor man ie angiver et Denne fremgangsmåde er lige så hurtig som Stinson s fremgangsmåde, samtidig med at den fatoriserer bedre Fremgangsmåden fordrer ie angivelse at et, men derimod et bud på intervallet af gode er Selvom målet med undersøgelsen ie har været at lave hurtige implementeringer, er det nærliggende at igge lidt på hvordan implementeringerne arter sig i en lidt større sammenhæng Derfor afsluttes med en hastighedsmåling på tre udformninger af Pollard p-, nemlig Stinson s, X og en udformning lavet af Paolo Ardoino Paul Ardoino har implementeret Pollard p- på en helt anden måde end Stinson, og angiver en benchmar af to lidt større produter af stære primtal ( refereret fra algorithm) Ardoino s egen tidsmåling 5 Min implement af Ardoino Stinson X (itlengthc hec) n p q Tid/se Tid/se Tid/se Tid/se Samlet tidsforbrug Der blev fatoriseret ud fra n alene, med iterativ fastsættelse af Det ses at Ardoino s implementering an være marant hurtigere Dette unne tyde på, at sal Pollard p- optimeres hastighedsmæssigt, sal man no igge på andre udformninger af Pollard p- end den Stinson formulerer (og som X er baseret på) At X er hurtigere end Stinson s fremgangsmåde bør ie opfattes som at den hastighedsmæssigt er bedre Præmissen for Stinson s formulering er angivelse af en specifi øvre grænse, og denne præmis er ie opfyldt af ovenstående måling (fordi den fastsætter iterativt) Opfyldte man præmissen og angav en god, ville Stinson s algoritme være lige så hurtig som X Men man an sige at X virer som en oplagt og ligefrem overbygning på Stinson s formulering, der udstiller en essentiel egensab ved de værdier af for hvile Stinson s formulering vil fatorisere 9 Appendix: Generering af primtalsproduter til brug i undersøgelsen Implementeringerne er afprøvet med produter af svage primtal Med et svagt primtal menes et primtal p der ie er stært Et stært primtal p er et primtal der an srives som p = p' + hvor p ' er et primtal Det giver ingen egentlig mening at undersøge tal der ie er produter af primtal, eller som er produter af stære primtal Fordi Pollard p- her på forhånd vides at fele Der er un undersøgt primtalsproduter af primtal med samme bitlængde For at have et enelt og ensartet grundlag for undersøgelsen har eg fravalgt primtalsproduter hvor un det ene primtal i produtet er svagt, og primtalsproduter med forsellig bitlængde af primtallene Der beregnes ie produter af ens primtal, idet 5 Hastigheden af Ardoino s algoritme an variere væsentligt fra måling til måling (på det samme produt) Dette syldes at hans algoritme benytter et tilfældigt a som input til gcd 6 Målt for begge produter som en helhed 9
21 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p udgangspuntet for undersøgelsen er primtalsproduter af forsellige primtal Det afgøres om et tal er et 00 primtal med en sierhed på Algoritmen der danner primtal er denne: Generering af primtal af længdel input : l n loop l + if n is prime then n if is prime then output n ( as strong prime) else output n ( as wea prime) n n + Fremgangsmåden er implementeret i ava-lassen GeneratePrimeProducts Altså en meget simpel algoritme Men den er tilstræelig I forhold til fatorisering af de resulterende primtalsproduter er tidsforbruget for denne algoritme marginalt Algoritmen der danner primtalsproduter benytter outputtet fra primtalsalgoritmen som input er simpel: Generering af primtalsproduter input : list ( of primes) for i to # list for i + to # list output list i list Fremgangsmåden er implementeret i ava-lassen GeneratePrimeProducts Notation: # list betegner antallet af elementer i list, list i betegner det i te element i list, og betegner sædvanlig multipliation 0
22 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p Appendix: Implementering i ava Fremgangsmåderne til fatorisering er implementeret med disse ava-interfaces og lasser: Pollard p- Stinson Pollard p- Native <<Int erface>> Factoring fac tor( Pollard p- Pollard p- a <<Int erface>> Pollard p- fac tor(n,b) Pollard p- Ardoino Common Pollard p- X <<Interface>> Strategy chec(n,a,) NoChec Strategy itlengthchecstrategy oundchecstrategy AnalyzeIntervalStrategy
23 En esperimentel undersøgelse af fatoriseringsalgoritmen Pollard p Interface Funtion Factoring The essential interface for factoring a number in general Pollard_p_ The essential interface for factoring a number by means of Pollard p- Strategy The interface for chec n, a, in the X implementation Klasse Funtion Pollard_p Stinson Stinson's algorithm for factoring using Pollard p- Pollard_p Native A slight modification of Stinson's algorithm Computes same results as Stinson's algorithm Pollard_p ased on Stinson's algorithm is iteratively computed Pollard_p a ased on Stinson's algorithm may be iteratively computed If a= attempt to factor from the previous value of a Pollard_p X An alternative version of Stinson s algorithm Pollard_p Ardoino Factoring using Paolo Ardoino's implementation Common Trivial factoring Contains also (not very fast) helper methods to be used in analysis of implementations: - computepower (computes from a number of the form ^ and is an integer) - factorize (computes all factors of a number - factorizeasprimepowers (computes all prime power factors of a number - factorsasstring (returns a "pretty" string representation of a list of factors) - hasmultiplefactors (determines if a list of factors contains multiple factors) - lcm (computes Least Common Multiple) NoChecStrategy A chec n, a, which always returns false itlengthchecstrategy A chec n, a, which returns true when the bit length of has increased oundchecstrategy A chec n, a, which returns true when has reached a specific bound AnalyzeIntervalStrategy A chec n, a, which analyzes the iteration a a mod n (displays the values of for which the algoritms factors) Afprøvninger og undersøgelser af fremgangsmåderne er implementeret med følgende JUnit3-lasser: Klasse enchmar TestAll TestCommon TestCaseProect IntervalExamples Funtion enchmaring and performance measurements Verification of implementations and findings Verification of class Common and its methods A proect specific extension of the JUnit3 TestCase Examples of intervals of 's for which Pollard p- factors De afprøvede fremgangsmåder er implementeret således: Stinson Native a a X Pollard_p Stinson x Pollard_p Native x Pollard_p x Pollard_p a x x Pollard_p X x
Bernoullis differentialligning v/ Bjørn Grøn Side 1 af 10
Bernoullis differentialligning v/ Bjørn Grøn Side af 0 Bernoullis differentialligning Den logistise differentialligning er et esempel på en ie-lineær differentialligning Den logistise differentialligning
Dagens forelæsning. Grinblatt & Titman kap. 5. Introduktion. Introduktion. Exhibit 5.1. Investeringsmulighedsområdet. Investeringsmulighedsområdet
Dagens forelæsning Investeringsmulighedsområdet Grinblatt & Titman ap. 5 Sammenhængen mellem risio og forventet afast (security maret line Capital Asset Pricing Model ( Empirise tests af 2 G&T ap 4: Introdution
Algoritmer og invarianter
Algoritmer og invarianter Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker. Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker.
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
Design by Contract. Design and Programming by Contract. Oversigt. Prædikater
Design by Contract Design and Programming by Contract Anne Haxthausen [email protected] Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere
Numerisk løsning af differentialligninger
KU-LIFE; Matemati og modeller 009 Numeris løsning af differentialligninger Thomas Vils Pedersen 1 Numerise metoder Ved numeris analyse forstås tilnærmet, talmæssig løsning af problemer, som ie, eller un
dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet)
dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) Efterår 2009 1 Talrepræsentation På maskinkodeniveau (Instruction Set Architecture Level) repræsenteres ordrer og operander ved bitfølger
DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes
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.
Indholdsfortegnelse. Indledning...2. Tidsplan...2. Målgruppe...3. Spørgeskema...3. Kode eksempler...5. Procesbeskrivelse...7. Evaluering...
1 Indholdsfortegnelse Indledning...2 Tidsplan...2 Målgruppe...3 Spørgeskema...3 Kode eksempler...5 Procesbeskrivelse...7 Evaluering...8 Bilag - Spørgeskema...9 Indledning - Jeg har som skoleprojekt fået
14 Algoritmeanalyse. Noter. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. Køretid for forskellige kontrolstrukturer.
14 Algoritmeanalyse. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. O og Ω. Køretid for forskellige kontrolstrukturer. Eksempler på algoritmeanalyse. Eksponentiel og polynomiel
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
Sortering. Eksempel: De n tal i sorteret orden
Sortering 1 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden
Allan C. Malmberg. Terningkast
Allan C. Malmberg Terningkast INFA 2008 Programmet Terning Terning er et INFA-program tilrettelagt med henblik på elever i 8. - 10. klasse som har særlig interesse i at arbejde med situationer af chancemæssig
Divisorer. Introduktion. Divisorer og delelighed. Divisionsalgoritmen. Definition (Divisor) Lad d og n være hele tal. Hvis der findes et helt tal q så
Introduktion 1) Hvad er Taleteori? Læren om de hele tal Primtal 2) Formalistisk struktur Definition Lemma Divisorer Definition (Divisor) Lad d og n være hele tal Hvis der findes et helt tal q så d q =
Skriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Sammenligning af proteiners 3-dimensionelle strukturer
Sammenligning af proteiners 3-dimensionelle struturer Køreplan 01005 Matemati 1 - FORÅR 2006 1 Formål Formålet med opgaven er at lave en metode til sammenligning af proteiners 3-dimensionale struturer
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).
Ydeevne og kapacitet. Indholdsfortegnelse
Indholdsfortegnelse Computer specifikationer Indledning 1. Hypotese 1.1 Første test: 1.1.1 Kommentar: 1.2 Anden test: 1.2.1 Kommentar 1.3 Konklusion 2. Hypotese 2.1 Test 2.1.1 Kommentar 2.2 Konklusion
[MARKONLINE I CITRIX]
2012 [Type text] Udarbejdet af Udarbejdet for Optimering af MarkOnline I Citrix miljøer Indholdsfortegnelse Baggrundsinfo... 2 Symptomerne... 3 MarkOnline starter ikke... 3 MarkOnline startes, men download
BRP 6.9.2006 Kursusintroduktion og Java-oversigt
BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:
Statistisk mekanik 1 Side 1 af 11 Introduktion. Indledning
Statistis meani Side af Indledning Statisti er et uundværligt matematis redsab til besrivelsen af et system med uoversueligt mange bestanddele. F.es. er der så mange luftmoleyler i blot mm 3 luft, at det
17 Søgning og Søgetræer.
17 Søgning og Søgetræer. Lineær og inær søgning i lister. inære søgetræer. Søgning efter knude i træ. Indsættelse af knude i træ. Søgning i og sortering af inært søgetræ. Sletning af knude i inært søgetræ.
Generalized Probit Model in Design of Dose Finding Experiments. Yuehui Wu Valerii V. Fedorov RSU, GlaxoSmithKline, US
Generalized Probit Model in Design of Dose Finding Experiments Yuehui Wu Valerii V. Fedorov RSU, GlaxoSmithKline, US Outline Motivation Generalized probit model Utility function Locally optimal designs
Skriftlig Eksamen Beregnelighed (DM517)
Skriftlig Eksamen Beregnelighed (DM517) Institut for Matematik & Datalogi Syddansk Universitet Mandag den 31 Oktober 2011, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger, notater etc.) samt brug af lommeregner
Hvad er matematik? C, i-bog ISBN 978 87 7066 499 8. 2011 L&R Uddannelse A/S Vognmagergade 11 DK-1148 København K Tlf: 43503030 Email: info@lru.
1.1 Introduktion: Euklids algoritme er berømt af mange årsager: Det er en af de første effektive algoritmer man kender i matematikhistorien og den er uløseligt forbundet med problemerne omkring de inkommensurable
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
PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU
PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU OUTLINE INEFFICIENCY OF ATTILA WAYS TO PARALLELIZE LOW COMPATIBILITY IN THE COMPILATION A SOLUTION
Skriftlig Eksamen Algoritmer og Datastrukturer (dads)
Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.
Sortering. Eksempel: De n tal i sorteret orden
Sortering 1 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden
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
Notat vedrørende projektet EFP06 Lavfrekvent støj fra store vindmøller Kvantificering af støjen og vurdering af genevirkningen
Notat vedrørende projektet EFP6 Lavfrekvent støj fra store vindmøller Kvantificering af støjen og vurdering af genevirkningen Baggrund Et af projektets grundelementer er, at der skal foretages en subjektiv
Det er muligt at chekce følgende opg. i CodeJudge: og
Det er muligt at chekce følgende opg. i CodeJudge:.1.7 og.1.14 Exercise 1: Skriv en forløkke, som producerer følgende output: 1 4 9 16 5 36 Bonusopgave: Modificer dit program, så det ikke benytter multiplikation.
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.
Om at løse problemer En opgave-workshop Beregnelighed og kompleksitet
Om at løse problemer En opgave-workshop Beregnelighed og kompleksitet Hans Hüttel 27. oktober 2004 Mathematics, you see, is not a spectator sport. To understand mathematics means to be able to do mathematics.
DM02 opgaver ugeseddel 2
DM0 opgaver ugeseddel af Fiona Nielsen 16. september 003 Øvelsesopgaver 9/9, 10/9 og 11/9 1. Vis, at 1 3 + 3 3 + 5 3 +... + (n 1) 3 = n 4 n. Omskriver til summationsformel: (i 1) 3 = n 4 n Bevis ved induktion
Abstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse.
19 Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse. Sammenligning af hashtabeller og søgetræer. 281 Hashing-problemet (1). Vi ønsker at afbilde n objekter på en tabel
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
Statistik i basketball
En note til opgaveskrivning [email protected] 4. marts 200 Indledning I Falcon og andre klubber er der en del gymnasieelever, der på et tidspunkt i løbet af deres gymnasietid skal skrive en større
JavaScript. nedarvning.
JavaScript er et sprog, der kan give en hjemmeside mere funktionalitet og gøre den interaktiv, så den reagerer på læsernes handlinger. CGI (Common Gateway Interface) har hidtil været de protokoller, man
DM549. Hvilke udsagn er sande? Which propositions are true? Svar 1.a: x Z: x > x 1. Svar 2.h: x Z: y Z: x + y = 5. Svar 1.e: x Z: y Z: x + y < x y
DM549 Spørgsmål 1 (8%) Hvilke udsagn er sande? Which propositions are true? Svar 1.a: x Z: x > x 1 Svar 1.b: x Z: y Z: x + y = 5 Svar 1.c: x Z: y Z: x + y = 5 Svar 1.d: x Z: y Z: x 2 + 2y = 0 Svar 1.e:
Procedurer og funktioner - iteration og rekursion
Procedurer og funktioner - iteration og rekursion Procedurer De første procedurer vi så på var knyttet til handlinger, der skulle udføres, fx at klikke på en knap for at lukke en form eller afslutte et
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
Talteori. Teori og problemløsning. Indhold. Talteori - Teori og problemløsning, marts 2014, Kirsten Rosenkilde.
Indhold 1 Delelighed, primtal og primfaktoropløsning Omskrivning vha. kvadratsætninger 4 3 Antal divisorer 6 4 Største fælles divisor og Euklids algoritme 7 5 Restklasser 9 6 Restklasseregning og kvadratiske
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...
DM547/MM537. Spørgsmål 2 (3%) Hvilke udsagn er sande? Which propositions are true? Svar 1.a: x Z: x > x 1. Svar 2.h: x Z: y Z: x + y = 5. Svar 1.
DM547/MM537 Spørgsmål 1 (10%) Hvilke udsagn er sande? Which propositions are true? Svar 1.a: x Z: x > x 1 Svar 1.b: x Z: y Z: x + y = 5 Svar 1.c: x Z: y Z: x + y = 5 Svar 1.d: x Z: y Z: x 2 + 2y = 0 Svar
Varmepumpen. Eksempel på anvendelse af Termodynamikkens 1. og 2. hovedsætning
Varmepumpen Esempel på anvendelse af ermodynamiens. og. hovedsætning Indhold. Syrlig indledning om 005 reformen (Kan overspringes).... Varmepumpen anven i fysiundervisningen i gymnasiet... 3. eoretis besrivelse
18 Multivejstræer og B-træer.
18 Multivejstræer og B-træer. Multivejs søgetræer. Søgning i multivejssøgetræer. Pragmatisk lagring af data i multivejstræer. B-træer. Indsættelse i B-træer. Eksempel på indsættelse i B-træ. Facts om B-træer.
1.1 Formål Webservicen gør det muligt for eksterne parter, at fremsøge informationer om elevers fravær.
EfterUddannelse.dk FraværService - systemdokumentation BRUGERDOKUMENTATION: WEB-SERVICE Af: Logica Indhold 1. Indledning... 1 1.1 Formål... 1 1.2 Webservice version... 1 1.3 Historik... 1 2. Absence Webservice...
Kursusarbejde 2 Grundlæggende Programmering
Kursusarbejde 2 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 31. oktober 2003 Indhold 1. Kode 2 1.1. hotel.h.................................................... 2 1.2. hotel.cc...................................................
Talteori: Euklids algoritmer, modulær aritmetik
Talteori: r, modulær aritmetik Videregående algoritmik Cormen et al. 31.1 31.4 Tirsdag den 6. januar 2009 1 1 2 Restklasseringene modulo n Grupper og undergrupper Modulær division Divisorer De hele tal
Tjek. lønnen. Et værktøj til at undersøge lokal løndannelse og ligeløn på offentlige arbejdspladser. 2007 udgave Varenr. 7520
Tjek lønnen Et værktøj til at undersøge lokal løndannelse og ligeløn på offentlige arbejdspladser 2007 udgave Varenr. 7520 Indholdsfortegnelse Forord... 3 Teknisk introduktion... 4 Indledning... 5 Introduktion
medemagruppen P9-0291-Q ver. 1.0.0 - april 2011 Brugervejledning G90T og G90A
medemagruppen P9-0291-Q ver. 1.0.0 - april 2011 DK Brugervejledning G90T og G90A Medema Danmark A/S Enggårdvej 7 Snejbjerg 7400 Herning Telefon: 70 10 17 55 Telefax: 97 18 88 5 Quick guide P9-0291-Q 2
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
CANSAT & ARDUINO step by step
CANSAT & ARDUINO step by step Jens Dalsgaard Nielsen SATLAB Aalborg Universitet Danmark [email protected] 1/51 Arduino CANSAT - MÅL At måle ved hjælp af sensor temperatur, tryk, acceleration, CO2, lys,...
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Analyseværktøjer [CLRS, 1-3.1] Eksempler på en beregningsprocess Puslespil ved ombytninger Maximum delsum Hvad er udførselstiden for en algoritme? Maskinkode
Talrækker. Aktivitet Emne Klassetrin Side
VisiRegn ideer 3 Talrækker Inge B. Larsen [email protected] INFA juli 2001 Indhold: Aktivitet Emne Klassetrin Side Vejledning til Talrækker 2-4 Elevaktiviteter til Talrækker 3.1 Talrækker (1) M-Æ 5-9 3.2 Hanoi-spillet
Evaluering af Soltimer
DANMARKS METEOROLOGISKE INSTITUT TEKNISK RAPPORT 01-16 Evaluering af Soltimer Maja Kjørup Nielsen Juni 2001 København 2001 ISSN 0906-897X (Online 1399-1388) Indholdsfortegnelse Indledning... 1 Beregning
Forelæsning 6: Kapitel 7: Hypotesetest for gennemsnit (one-sample setup). 7.4-7.6
Kursus 02402 Introduktion til Statistik Forelæsning 6: Kapitel 7: Hypotesetest for gennemsnit (one-sample setup). 7.4-7.6 Per Bruun Brockhoff DTU Compute, Statistik og Dataanalyse Bygning 324, Rum 220
BOSK F2011, 1. del: Udsagnslogik
( p q) p q February 1, 2011 Sandhedsværdier og udsagnsvariable I dag handler det om logiske udsagn. Mere præcist om de logiske udsagn vi kan bygge ud fra sandhedsværdier, udsagnsvariable og logiske konnektiver.
Fra tilfældighed over fraktaler til uendelighed
Fra tilfældighed over fraktaler til uendelighed Tilfældighed Hvor tilfældige kan vi være? I skemaet ved siden af skal du sætte 0 er og 1-taller, ét tal i hvert felt. Der er 50 felter. Du skal prøve at
Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:
Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra
Hvor er mine runde hjørner?
Hvor er mine runde hjørner? Ofte møder vi fortvivlelse blandt kunder, når de ser deres nye flotte site i deres browser og indser, at det ser anderledes ud, i forhold til det design, de godkendte i starten
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
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Alt elektronik heri er købt via http://dx.com, og arduino udviklingssoftware er hentet fra http://arduino.cc.
Få-tiden-til-at-gå-[DIGITAL]-ur =============================== Copyright 2013, Richard Jørgensen. Alle ophavsretlige rettigheder frafaldet 2015. (Kopier og brug som du har lyst.) Forord: ===== Denne vejledning
Kursus navn: Indledende programmering Kursus nr. 02101
Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning
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
Danmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Basic statistics for experimental medical researchers
Basic statistics for experimental medical researchers Sample size calculations September 15th 2016 Christian Pipper Department of public health (IFSV) Faculty of Health and Medicinal Science (SUND) E-mail:
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til [email protected]. Besvarelsen skal
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
