Traditionel kryptografi

Størrelse: px
Starte visningen fra side:

Download "Traditionel kryptografi"

Transkript

1 Kryptering

2 Kryptering Scenarium: Alice ønsker at sende en meddelelse (klartekst) til Bob Kommunikationskanalen er usikker og kan blive aflyttet Hvis Alice og Bob er blevet enige om et skema for kryptering, kan meddelelsen sendes krypteret (som kodetekst) Spørgsmål: Hvad er et godt skema til kryptering? Hvilken kompleksitet har kryptering/afkryptering? Hvor lang er kodeteksten i forhold til klarteksten? Hvis Alice og Bob aldrig før har kommunikeret med hinanden, hvordan kan de så blive enige om et skema for krypteringen? klartekst krypter kodetekst afkrypter klartekst 2

3 Traditionel kryptografi Metoder til kryptering (kodeskrift) blev studeret allerede i oldtiden Cæsars kodeskrift: erstat a med d erstat b med e... erstat z med c Cæsars kodeskrift er et eksempel på en monoalfabetisk erstatningskode, der permuterer de enkelte tegn i klarteksten 3

4 Statistiske angreb Udstyret med simpel statistisk viden kan man let bryde en sådan kode: hyppigste bogstaver i engelsk tekst: e, t, o, a, n, i,... hyppigste digrammer i engelsk tekst: th, in, er, re, an,... hyppigste trigrammer i engelsk tekst: the, ing, and, ion,... Den første beskrivelse af dette angreb med frekvensanalyse forekommer i en bog, skrevet i det 9 nde århundrede af den arabiske filosof al-kindi Eksempel (S. Singh, The Code Book, 999): PCQ VMJYPD LBYK LYSO KBXBJXWXV BXV ZCJPO EYPD KBXBJYUXJ LBJOO KCPK. CP LBO LBCMKXPV XPV IYJKL PYDBL, QBOP KBO BXV OPVOV LBO LXRO CI SX'XJMI, KBO JCKO XPV EYKKOV LBO DJCMPV ZOICJO BYS, KXUYPD: DJOXL EYPD, ICJ X LBCMKXPV XPV CPO PYDBLK Y BXNO ZOOP JOACMPLYPD LC UCM LBO IXZROK CI FXKL XDOK XPV LBO RODOPVK CI XPAYOPL EYPDK. SXU Y SXEO KC ZCRV XK LC AJXNO X IXNCMJ CI UCMJ SXGOKLU? OFYRCDMO, LXROK IJCS LBO LBCMKXPV XPV CPO PYDBLK 4

5 Frekvensanalyse () Vi identificerer den hyppigste tegn, digrammer og trigrammer i klarteksten Eksempel: PCQ VMJYPD LBYK LYSO KBXBJXWXV BXV ZCJPO EYPD KBXBJYUXJ LBJOO KCPK. CP LBO LBCMKXPV XPV IYJKL PYDBL, QBOP KBO BXV OPVOV LBO LXRO CI SX'XJMI, KBO JCKO XPV EYKKOV LBO DJCMPV ZOICJO BYS, KXUYPD: DJOXL EYPD, ICJ X LBCMKXPV XPV CPO PYDBLK Y BXNO ZOOP JOACMPLYPD LC UCM LBO IXZROK CI FXKL XDOK XPV LBO RODOPVK CI XPAYOPL EYPDK. SXU Y SXEO KC ZCRV XK LC AJXNO X IXNCMJ CI UCMJ SXGOKLU? OFYRCDMO, LXROK IJCS LBO LBCMKXPV XPV CPO PYDBLK Første gæt: LBO er THE 5

6 Frekvensanalyse (2) Under antagelse af, at LBO repræsenter THE, erstatter vi L med T, B med H, og O med E, og får PCQ VMJYPD THYK TYSE KHXHJXWXV HXV ZCJPE EYPD KHXHJYUXJ THJEE KCPK. CP THE THCMKXPV XPV IYJKT PYDHT, QHEP KHO HXV EPVEV THE LXRE CI SX'XJMI, KHE JCKE XPV EYKKEV THE DJCMPV ZEICJE HYS, KXUYPD: DJEXT EYPD, ICJ X THCMKXPV XPV CPE PYDHTK Y HXNE ZEEP JEACMPTYPD TC UCM THE IXZREK CI FXKT XDEK XPV THE REDEPVK CI XPAYEPT EYPDK. SXU Y SXEE KC ZCRV XK TC AJXNE X IXNCMJ CI UCMJ SXGEKTU? EFYRCDME, TXREK IJCS THE THCMKXPV XPV CPE PYDBTK 6

7 Afkryptering Kode: X Z A V O I D B Y G E R S P C F H J K L M N Q T U W A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Kodetekst: PCQ VMJYPD LBYK LYSO KBXBJXWXV BXV ZCJPO EYPD KBXBJYUXJ LBJOO KCPK. CP LBO LBCMKXPV XPV IYJKL PYDBL, QBOP KBO BXV OPVOV LBO LXRO CI SX'XJMI, KBO JCKO XPV EYKKOV LBO DJCMPV ZOICJO BYS, KXUYPD: DJOXL EYPD, ICJ X LBCMKXPV XPV CPO PYDBLK Y BXNO ZOOP JOACMPLYPD LC UCM LBO IXZROK CI FXKL XDOK XPV LBO RODOPVK CI XPAYOPL EYPDK. SXU Y SXEO KC ZCRV XK LC AJXNO X IXNCMJ CI UCMJ SXGOKLU? OFYRCDMO, LXROK IJCS LBO LBCMKXPV XPV CPO PYDBLK Klartekst: Now during this time Shahrazad had borne King Shahriyar three sons. On the thousand and first night, when she had ended the tale of Ma'aruf, she rose and kissed the ground before him, saying: Great King, for a thousand and one nights I have been recounting to you the fables of past ages and the legends of ancient kings. May I make so bold as to crave a favour of your majesty? Epilogue, Tales from the Thousand and One Nights 7

8 Kryptering med hemmelig nøgle En hemmelig-nøgle kode bruger en unik nøgle K til kryptering og afkryptering Cæsars generaliserede kode bruger modulær addition af hvert tegn (betragtet som et heltal) med nøglen: C[i] = (P[i] + K) mod m P[i] = (C[i] K) mod m (afkryptering) (kryptering) Mere sikre hemmelig-nøgle krypteringskoder er blevet opfundet de seneste 50 år Eksempler: DES 3DES IDEA BLOWFISH Med hemmelig-nøgle kryptering må en særskilt nøgle etableres for ethvert par af deltagere 8

9 Offentlig-nøgle kryptering Bob bruger et par af nøgler (K E,K D ), gør nøglen K E offentlig og holder nøglen K D privat Alle og enhver kan bruge den offentlige nøgle K E til at kryptere en klartekst til Bob Kun Bob kan afkryptere kodeteksten ved brug af sin private nøgle K D Det mest populære krypteringsskema er RSA, opkaldt efter sine opfindere: Rivest, Shamir og Adleman (978) RSA-patentet udløb 2000 offentlig nøgle (K E ) privat nøgle (K D ) klartekst krypter kodetekst afkrypter klartekst 9

10 Talteoretiske algoritmer 0

11 Primtal p: p er et heltal p 2 De eneste divisorer for p er og p Eksempler: 2, 7, 9 er primtal 3,, 6 er ikke primtal Fakta om tal Primtalsopløsning af et positivt heltal n: n = p e! p 2 e 2!...! p k e k Eksempel: 200 = Fundamental sætning i aritmetik: Primtalsopløsningen af et positive heltal er unik

12 Største fælles divisor Den største fælles divisor (GCD) for to positive heltal a og b, betegnet gcd(a, b), er det største positive heltal, der går op i både a og b Ovenstående definition kan udvides til vilkårlige heltal Eksempler: gcd(8, 30) = 6 gcd(0, 20) = 20 gcd( 2, 49) = 7 To heltal a og b siges at være indbyrdes primiske, hvis gcd(a, b) = Eksempel: 5 og 28 er indbyrdes primiske 2

13 Modulær aritmetik Modulo-operatoren for et positivt heltal n r = a mod n er ækvivalent med a = r + kn og r = a a/n n Eksempler: 29 mod 3 = 3 3 mod 3 = 0 mod 3 = 2 29 = = = 2 + ( ) 3 Modulo og GCD: gcd(a, b) = gcd(b, a mod b) Eksempel: gcd(2, 2) = 3 gcd(2, 2 mod 2) = gcd(2, 9) = gcd(9, 3) = gcd(3, 0) = 3 3

14 Euclids GCD-algoritme Euclids algoritme til beregning GCD benytter gentagne gange formlen gcd(a, b) = gcd(b, a mod b) Eksempel: gcd(42, 260) = f. Kr. Algorithm EuclidGCD(a, b) Input integers a and b Output gcd(a, b) if b = 0 return a return EuclidGCD(b, a mod b) a b

15 Analyse Algorithm EuclidGCD(a, b) Input integers a and b Output gcd(a, b) if b = 0 return a return EuclidGCD(b, a mod b) Køretiden er proportional med antallet af rekursive kald af EuclidGCD Lad a i og b i være argumenterne til det i te rekursive kald Vi har a i + 2 = b i + = a i mod b i = a i mod a i + < a i + Følgen a, a 2,, a n aftager eksponentielt, idet vi kan vise, at a i + 2 < /2 a i for i > Tilfælde : a i + /2 a i : Tilfælde 2: a i + > /2 a i : a i + 2 < a i + /2 a i a i + 2 = a i mod a i + a i a i + < /2 a i Derfor er det maksimale antal kald af algoritmen EuclidGCD(a, b) + 2 log max(a, b) Algoritmen EuclidGCD(a, b) udfører O(log max(a, b)) aritmetiske operationer 5

16 Multiplikativ invers () Resterne modulo et positivt heltal n er mængden Z n = {0,, 2,, (n )} Lad x og y være to positive elementer i Z n, hvor xy mod n = Vi siger da, at y er multiplikativ invers til x i Z n, og vi skriver y = x Eksempel: Multiplikative inverse for resterne modulo x x

17 Multiplikativ invers (2) Sætning: Et element x i Z n har en multiplikativ invers, hvis og kun hvis x og n er indbyrdes primiske Eksempel: Elementerne i Z 0, der har en multiplikativ invers, er, 3, 5, 7 x x Følgesætning: Hvis p er et primtal, har alle rester i Z p, undtagen 0, en multiplikativ invers Sætning: Euclids GCD-algoritme kan udvides til at beregne den multiplikative inverse til et element x i Z n, eller afgøre, at en sådan ikke eksisterer 7

18 Potenser Lad p være et primtal Følgen af positive potenser af elementerne i Z p indeholder gentagende delfølger Længden af de gentagende delsekvenser og antallet af deres gentagelser er divisorerne til p Eksempel (p = 7): [ p = 6 = 2 3 ] x x 2 x 3 x 4 x 5 x

19 Fermats lille sætning Sætning: Lad p være et primtal. For enhver rest x 0 i Z p gælder, at x p mod p = Eksempel (p = 5): 4 mod 5 = 2 4 mod 5 = 6 mod 5 = 3 4 mod 5 = 8 mod 5 = 4 4 mod 5 = 256 mod 5 = Følgesætning: Lad p være et primtal. For enhver rest x 0 i Z p gælder, at den multiplikative inverse til x er x p 2 mod p Bevis: x(x p 2 mod p) mod p = xx p 2 mod p = x p mod p =

20 Eulers sætning Den multiplikative gruppe for Z n, betegnet med Z* n, er den delmængde af Z n, der er indbyrdes primiske med n Euler s totientfunktion af n, betegnet med φ(n), er antallet af elementer i Z* n Eksempel: Z* 0 = {, 3, 7, 9 } φ(0) = 4 Hvis p er et primtal, har vi Z* p = {, 2,, (p )} φ(p) = p Sætning: For ethvert element x i Z* n gælder x φ(n) mod n = Eulers sætning er en generalisering af Fermats lille sætning Eksempel (n = 0): 3 φ(0) mod 0 = 3 4 mod 0 = 8 mod 0 = 7 φ(0) mod 0 = 7 4 mod 0 = 240 mod 0 = 9 φ(0) mod 0 = 9 4 mod 0 = 656 mod 0 = x - x φ(n)- mod n 20

21 Kryptosystemet RSA 2

22 Kryptosystemet RSA Opstilling: n = pq, hvor p og q er primtal e er indbyrdes primisk med φ(n) = (p ) (q ) d er multiplikativ invers til e i Z φ(n) Nøgler: Offentlig nøgle: K E = (n, e) Privat nøgle: K D = d Kryptering: Klartekst M i Z n Kodetekst C = M e mod n Afkryptering: M = C d mod n Eksempel: Opstilling: p = 7, q = 7 n = 7 7 = 9 φ(n) = 6 6 = 96 e = 5 d = 77 (77 5 mod 96 = ) Nøgler: Offentlig nøgle: (9, 5) Privat nøgle: 77 Kryptering: M = 9 C = 9 5 mod 9 = 66 Afkryptering: M = mod 9 = 9 22

23 Komplet RSA eksempel Opstilling: p = 5, q = n = 5 = 55 φ(n) = 4 0 = 40 e = 3 d = 27 (3 27 = 8 = ) Kryptering: C = M 3 mod 55 Afkryptering: M = C 27 mod 55 M C M C M C

24 Sikkerhed Sikkerheden af RSA-kryptosystemet er baseret på den almindelige antagelse om, at faktorisering af store tal er beregningsmæssigt vanskelig Den bedste kendte algoritme bruger tid, der er eksponentiel i antallet af bits i det tal, der skal faktoriseres The RSA Challenge, der er sponsoreret af RSA Security, tilbyder pengepræmier for faktorisering af givne store tal I april 2002 varierede præmierne fra 0,000$ (576 bit) til 200,000$ (2048 bit) I 999 blev et 52-cifret tal faktoriseret på 4 måneder ved brug af følgende computere: MHz SGI og Sun MHz SGI Origin MHz Pentium II MHz Digital/Compaq Skønnet ressourceforbrug til faktorisering af et tal inden for år: Bit ,020,620 PCer 25, Lager 28MB 4GB 70GB 20TB 24

25 Korrekthed Vi viser korrektheden for RSA i det tilfælde, at n ikke går op i klarteksten M Vi viser, at der i dette tilfælde gælder, at (M e ) d mod n = M Da ed mod φ(n) =, er der et heltal k, for hvilket det gælder, at ed = kφ(n) + Da n ikke går op i M, får vi ved hjælp af Eulers sætning, at M φ(n) mod n = Vi får således (M e ) d mod n = M ed mod n = M kφ(n) + mod n = MM kφ(n) mod n = M (M φ(n) ) k mod n = M (M φ(n) mod n) k mod n = M () k mod n = M mod n = M Beviset for korrekthed i det tilfælde, hvor n går op i klarteksten M, kan ses i lærebogen 25

26 Algoritmiske problemer Implementering af kryptosystemet RSA kræver forskellige algoritmer Generelt Repræsentation af heltal af vilkårlig længde og aritmetiske operationer på disse Kryptering Modulær potensopløftning Afkryptering Modulær potensopløftning Opstilling Generering af tilfældige tal med et givet antal bit (for at generere kandidater for p og q) Primtalitetstest (for at påvise, at kandidater for p og q er primtal) Beregning af GCD (for at påvise, at e og φ(n) er indbyrdes primiske) Beregning af den multiplikative inverse (for at beregne d ud fra e) 26

27 Modulær potensopløftning Brug af gentagen kvadrering øger beregningshastigheden for en modulær potens a p mod n Skriv eksponenten p på binær form: p = p b p b 2 p p 0 Start med Q = a p b! modn Beregn for i = 2, 3,..., b Q i = ((Q i - ) 2 modn)a p b-i modn Vi har, at Q b = a p mod n Denne algoritme udfører O(log p) aritmetiske operationer Eksempel: 3 8 mod 9 (8 = = 0x000) Q = 3 mod 9 = 3 Q 2 = (3 2 mod 9)3 0 mod 9 = 9 Q 3 = (9 2 mod 9)3 0 mod 9 = 8 mod 9 = 5 Q 4 = (5 2 mod 9)3 mod 9 = (25 mod 9)3 mod 9 = 8 mod 9 = 8 Q 5 = (8 2 mod 9)3 0 mod 9 = (324 mod 9) mod 9 = (7 9 + ) mod 9 = p 5 i 3 p 5 i Q i

28 Modulær potensopløftning i Java (rekursiv udgave) Hvis p er lige, er a p = (a. a) p/2 Hvis p er ulige, er a p = a. a p- long power(long a, long p, long n) { if (p == 0) return ; long value = power((a * a) % n, p / 2, n); if (p % 2 == ) value = (a * value) % n; return value; } 28

29 Modulær potensopløftning i Java (iterativ udgave) long power(long a, long p, long n) { long value = ; while (p > 0) { if (p % 2 == ) value = (value * a) % n; a = (a * a) % n; p /= 2; } return value; } 29

30 Modulær invers Sætning: Lad der være give to positive heltal, a og b, og lad d være det mindste positive heltal, således at d = ia + jb for heltal i og j. Der gælder da, at d = gcd(a,b) Eksempel: a = 2 b = 5 d = 3 i = 3, j = 4 3 = ( 4) 5 = = 3 Givet to positive heltal, a og b, beregner den udvidede Euclids algoritme et trippel (d,i,j), hvor d = gcd(a,b) d = ia + jb For at påvise eksistensen af, samt beregne den multiplikative inverse til x Z n, udføres den udvidede Euclids algoritme på inputparret (x,n) Lad (d,i,j) være det trippel, der blev returneret d = ix + jn Tilfælde : d = i er den inverse til x i Z n Tilfælde 2: d > x har intet inverst element i Z n 30

31 Den udvidede Euclids algoritme Algorithm ExtendedEuclidGCD(a, b) Input Nonnegative integers a and b Output Triplet of integers (d, i, j) such that d = gcd(a,b) = ia + jb if b = 0 return (a,, 0) (d, i, j) ExtendedEuclidGCD(b, a mod b) return (d, j, i j a/b ) a b a/b i j Bevis ved induktion: Basistilfældet: b = 0: a = gcd(a, 0) = a + 0b Induktionshypotesen: Antag, at (d, i, j) = ExtendedEuclid(b, a mod b) er korrekt. Vi har da, at d = gcd(b, a mod b) = ib + j(a mod b) = ib + j(a - a/b b) = ja + (i j a/b )b Da desuden gcd(b, a mod b) = gcd(a, b), må ExtendedEuclid(a, b) være korrekt 3

32 Pseudoprimalitetstest Antallet af primtal mindre end eller lig med n er cirka n / ln n Afgørelse af om et tal er et primtal eller ej antages at være et hårdt problem Et heltal n 2 siges at være et base-x pseudoprimtal, hvis x n mod n = (Fermats lille sætning) Sammensatte base-x pseudoprimtal er sjældne: Et tilfældigt 00-bit heltal er et sammensat base-2 pseudoprimtal med en sandsynlighed, der er mindre end 0-3 Det mindste sammensatte base-2 pseudoprimtal er 34 Base-x pseudoprimalitetstest for et heltal n: Afgør om x n mod n = (kan udføres effektivt med gentagen kvadrering) 32

33 Randomiseret primalitetstest Vidnefunktion for sammensathed, witness(x, n), med fejlsandsynlighed q for et heltal x: Tilfælde : n er et primtal witness(x, n) = false (altid) Tilfælde 2: n er sammensat witness(x, n) = false med sandsynlighed q < Algoritmen RandPrimeTest afgør, om n er et primtal ved gentagne gange at evaluere witness(x, n) En variant af base-x pseudoprimalitet giver en god vidnefunktion for sammensathed (Rabin- Miller s algoritme) Algorithm RandPrimeTest(n, k) Input integer n, confidence parameter k and composite witness function witness(x,n) with error probability q Output an indication of whether n is composite or prime with error probability 2 k t k/log 2 (/q) {q t = 2 -k } for i to t x random() if witness(x,n) = true return n is composite return n is prime 33

34 import java.math.biginteger; import java.util.random; import java.io.*; public class RSA { public static void main(string[] args) throws IOException { int bitlength = 024; Random rnd = new Random(); BigInteger p = BigInteger.probablePrime(bitLength, rnd); BigInteger q = BigInteger.probablePrime(bitLength, rnd); BigInteger n = p.multiply(q); BigInteger phin = p.subtract(biginteger.one).multiply( q.subtract(biginteger.one)); BigInteger e; do e = new BigInteger(2 * bitlength, rnd); while (e.compareto(phin) >= 0!e.gcd(phin).equals(BigInteger.ONE)); BigInteger d = e.modinverse(phin); } } BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); while (true) { BigInteger ciphertext = new BigInteger(in.readLine().getBytes()).modPow(e, n); String plaintext = new String(ciphertext.modPow(d, n).tobytearray()); System.out.println(plaintext); } 34

35 Informationssikkerhed 35

36 Digital underskrift En digital underskrift er streng S forbundet med en meddelelse M og dens forfatter A, som har følgende egenskaber: Uafviselighed: S identificerer entydigt forfatteren A af M og beviser, at A faktisk underskrev M Integritet: S godtgør, at M ikke er blevet ændret Et skema for digital underskrift giver en algoritme til () underskrivning af en meddelelse (foretages af forfatteren) (2) verifikation af underskriften (foretages af læseren) Underskrift: Alice (forfatteren) bestemmer S = decrypt(k D,M) ved brug af sin private nøgle K D og sender parret (M,S) til Bob Verifikation: Bob (læseren) bestemmer M = encrypt(k E, S) ved brug af Alice s offentlige nøgle K E og checker, at M = M 36

37 Digital underskrift med RSA Opstilling: n = pq, hvor p og q er primtal e er indbyrdes primisk med φ(n) = (p ) (q ) d inverse af e i Z φ(n) Nøgler: Offentlig nøgle: K E = (n, e) Privat nøgle: K D = d Underskrift: Klartekst M i Z n Underskrift S = M d mod n Verifikation: Check, at M = S e mod n Opstilling: p = 5, q = n = 5 = 55 φ(n) = 4 0 = 40 e = 3 d = 27 (3 27 = 8 = ) Nøgler: Offentlig nøgle: K E = (55, 3) Privat nøgle: K D = 27 Underskrift: M = 5 S = 5 27 mod 55 = 6 Verifikation: M = 6 3 mod 55 = 26 mod 55 = 5 37

38 Envejs-hashfunktion En envejs-hashfunktion er en funktion H med følgende egenskaber: H afbilder en streng M af vilkårlig længde til et heltal f = H(M) med et fast antal bit, kaldet fingeraftrykket af M H kan beregnes effektivt Givet et heltal f er det beregningsmæssigt vanskeligt at finde en streng M, således at H(M) = f Givet en streng M er det beregningsmæssigt vanskeligt at finde en anden streng M, således at H(M) = H(M ) (kollisionsresistent) Det er beregningsmæssigt vanskeligt at finde to strenge, M og M, således at H(M) = H(M ) (stærkt kollisionsresistent) To udbredte anvendte envejs-hashfunktioner: MD5 (Message Digest 5, 992), som bruger et 28-bit (6 byte) fingeraftryk SHA- (Secure Hash Algorithm, 995), som bruger et 60-bit (20 byte) fingeraftryk 38

39 Fingeraftryk til digital underskrift I RSA s skema til digital underskrift med modulo n skal meddelelsen, der skal underskrives, være et heltal i Z n, d.v.s. meddelelsen kan højst være på log n bit For at overvinde denne begrænsning kan vi bruge et fingeraftryk f = H(M) af meddelelsen i stedet for meddelelsen selv, hvor H er en envejs-hashfunktion Alice beregner først f = H(M) og dernæst underskriften S af f Bob beregner først f = H(M) og verificerer derefter S Hvis H er kollisionsresistent, er det beregningsmæssigt vanskeligt at ændre meddelelsen og samtidigt bevare underskriften for fingeraftrykket f = H(M) meddelelse M hash envejs fingeraftryk underskriv underskrift f = H(M) S = f d mod n 39

40 Møntkast over nettet Alice og Bob vil kaste en mønt tilfældigt i en kommunikation over Internettet Følgende protokol baseret på en envejs-hashfunktion H sikrer imod snyd: () Alice vælger et tilfældigt heltal x, beregner fingeraftrykket f = H(x) og sender f til Bob (2) Bob sender Alice sit gæt af, om x er lige eller ulige (3) Alice bekendtgør resultatet af møntkastet: ja, hvis Bob har gættet rigtigt; ellers nej. Hun sender også x til Bob (4) Bob verificerer, at Alice ikke har snydt, d.v.s. at f = H(x) Hvis H er stærkt kollisionsresistent, er det beregningsmæssigt vanskeligt for Alice at snyde 40

41 Certifikater Offentlig-nøgle kryptografi er baseret på enhver deltagers viden om de offentlige nøgler for de andre deltagere Det er kompliceret at distribuere de offentlige nøgler til alle deltagere på en sikker måde Et certifikat er en meddelelse af typen (navn, offentlig nøgle), der er underskrevet af en tredje part En person eller virksomhed, som alle stoler på, en såkaldt certificeringsautoritet (CA), udsteder til hver deltager et certifikat (Name, K E ), der autoritativt binder deltagerne til deres offentlige nøgler Kun CA s offentlige nøgler behøver at blive distribueret Inden en krypteret meddelelse sendes til Bob, eller en meddelelse underskrevet af Bob verificeres, bestemmer Alice Bob s offentlige nøgle ved hjælp af Bob s certifikat, (Bob, K E ) 4

42 Web server certifikater Et web server certifikat bruges til at autentificere den offentlige nøgle for en web server Felter i et web server certifikat Serienummer Hash- og underskriftskema (f.eks. MD5 og RSA) Udgiver (certificeringsautoritet) Gyldighedsperiode (fra, til) Subjekt (URL og organisation) Offentlig nøgle Protokollen SSL (Secure Socket Layer) bruger web server certificering for at tilbyde kryptering og autentificering ved en sikker web forbindelse (http) 42

43 Ophør af certifikater Under visse omstændigheder er det nødvendigt at ophæve et certifikat inden dets udløbsdato Den private nøgle er blevet afsløret Certifikatet blev fejlagtigt udgivet af CA Certifikatophørsliste Tidsstemplet liste over alle ikke-udløbne certifikater, der er blevet ophævet af CA Publiceres periodevis og underskrives af CA Når man præsenteres for et certifikat, skal man () Verificere CA s underskrift på certifikatet (2) Checke at certifikatet ikke er blevet ophævet ved at søge i den senest tilgængelige certifikatophørsliste Web-browsere checker normalt ikke status for en web servers certifikat, hvilket udgør en sikkerhedsrisiko 43

Kryptering. Kryptering. Traditionel kryptografi. Statistiske angreb

Kryptering. Kryptering. Traditionel kryptografi. Statistiske angreb Kryptering Kryptering Scenarium: Alice ønsker at sende en meddelelse (klartekst) til Bob Kommunikationskanalen er usikker og kan blive aflyttet Hvis Alice og Bob er blevet enige om et skema for kryptering,

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

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

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

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

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

Læs mere

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

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

Læs mere

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

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

Talteori: Euklids algoritmer, modulær aritmetik

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

Læs mere

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

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

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

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

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

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

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

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

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

Læs mere

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

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

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

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

Læs mere

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

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

Læs mere

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

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 Kryptologi

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

Læs mere

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

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

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

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

Note om endelige legemer

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

Læs mere

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

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

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, marts 2007, 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

Talteoriopgaver Træningsophold ved Sorø Akademi 2007

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

Læs mere

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

14 Algoritmeanalyse. Noter. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. Køretid for forskellige kontrolstrukturer.

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

Læs mere

2. Gruppen af primiske restklasser.

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

Læs mere

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

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

Læs mere

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. 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:

Læs mere

Java Smart Card (JSC) Digitale signaturer

Java Smart Card (JSC) Digitale signaturer Java Smart Card (JSC) Digitale signaturer Nikolaj Aggeboe & Sune Kloppenborg Jeppesen aggeboe@it-c.dk & jaervosz@it-c.dk IT-C København 21. december 2001 Indhold 1 Indledning 4 2 Smart cards 5 2.1 Hvad

Læs mere

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

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

Læs mere

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

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

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Algoritmedesign med internetanvendelser ved Keld Helsgaun Algoritmedesign med internetanvendelser ved Keld Helsgaun 1 Analyse af algoritmer Input Algoritme Output En algoritme er en trinvis metode til løsning af et problem i endelig tid 2 Algoritmebegrebet D.

Læs mere

Det er muligt at chekce følgende opg. i CodeJudge: og

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.

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

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

//Udskriver System.out.println(Hej  + ditfornavn +   + ditefternavn + .); System.out.println(Du er  + dinalder +  aar gammel! Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.

Læs mere

Sikring af netværkskommunikation

Sikring af netværkskommunikation Sikring af netværkskommunikation Som udgangspunkt kan sikring af en netværkskommunikation foretages på et vilkårligt lag i netværksprotokolstakken. Hvis vi ser på TCP/IP protokolstakken vil det sige at

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

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

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox Martin Olsen DM0 Projekt 0 Del I. marts 0 FOTO: Colourbox Indhold Indledning... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Kildekode til SimpleInv.java... Kildekode til MergeSort.java...

Læs mere

Primtal Rekursion Kernebegreber, anvendelser og fundamenter i datalogi Torsdag den 17. marts 2005 Nils Andersen A.K. Dewdney kap.

Primtal Rekursion Kernebegreber, anvendelser og fundamenter i datalogi Torsdag den 17. marts 2005 Nils Andersen A.K. Dewdney kap. Primtal Rekursion Kernebegreber, anvendelser og fundamenter i datalogi Torsdag den 17. marts 2005 Nils Andersen A.K. Dewdney kap. 50+24 Primtalsformler Stokastisk primtalstest Deterministisk primtalstest

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

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

Eksempel: Skat i år 2000

Eksempel: Skat i år 2000 Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)

Læs mere

6. RSA, og andre public key systemer.

6. RSA, og andre public key systemer. RSA 6.1 6. RSA, og andre public key systemer. (6.1). A skal sende en meddelelse til B. Denne situation forekommer naturligvis utallige gange i vores dagligdag: vi kommunikerer, vi signalerer, vi meddeler

Læs mere

Perspektiverende Datalogi 2014 Uge 39 Kryptologi

Perspektiverende Datalogi 2014 Uge 39 Kryptologi Perspektiverende Datalogi 2014 Uge 39 Kryptologi Dette dokument beskriver en række opgaver. Diskutter opgaverne i små grupper, under vejledning af jeres instruktor. Tag opgaverne i den rækkefølge de optræder.

Læs mere

Asymptotisk analyse af algoritmers køretider

Asymptotisk analyse af algoritmers køretider Asymptotisk analyse af algoritmers køretider Analyse af køretid Recall: Vi ønsker at vurdere (analysere) algoritmer på forhånd inden vi bruger lang tid på at implementere dem. De to primære spørgsmål:

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, marts 2007, 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

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 6. juni 2016, kl. 15:00 19:00 Besvarelsen skal afleveres elektronisk. Se

Læs mere

Algoritmer og invarianter

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.

Læs mere

Netværksalgoritmer 1

Netværksalgoritmer 1 Netværksalgoritmer 1 Netværksalgoritmer Netværksalgoritmer er algoritmer, der udføres på et netværk af computere Deres udførelse er distribueret Omfatter algoritmer for, hvorledes routere sender pakker

Læs mere

Kursusgang 1: Introduktion. Hvorfor er sikker kommunikation vigtig? Kursets tre dele. Formål. 1. Kursusintroduktion

Kursusgang 1: Introduktion. Hvorfor er sikker kommunikation vigtig? Kursets tre dele. Formål. 1. Kursusintroduktion Kursusgang 1: Introduktion. Hvorfor er sikker kommunikation vigtig? 1. Kursusintroduktion 2. Begrebsapparat. 3. Kryptering: introduktion til værktøjer og anvendelser 4. God. 5. Talteori. 6. Introduktion

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

Eksamen i Diskret Matematik

Eksamen i Diskret Matematik Eksamen i Diskret Matematik Første Studieår ved Det Teknisk-Naturvidenskabelige Fakultet 15. juni, 2015. Kl. 9-13. Nærværende eksamenssæt består af 12 nummererede sider med ialt 17 opgaver. Tilladte hjælpemidler:

Læs mere

Tredjepart webservices

Tredjepart webservices Tredjepart webservices 4. juni 2015 USS Dok. Klik her for at angive tekst. 1/12 Indholdsfortegnelse Introduktion... 3 Miljøer... 3 Adgang... 3 API kald... 4 GET: /authorizations... 4 Input 4 Output 4 Output

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F0 side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 00. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave

Læs mere

Eksamen i Diskret Matematik

Eksamen i Diskret Matematik Eksamen i Diskret Matematik Første Studieår ved Det Tekniske Fakultet for TT og Design samt Det Ingeniør- og Naturvidenskabelige Fakultet 29. maj 2017. Kl. 9-13. Nærværende eksamenssæt består af 11 nummererede

Læs mere

Informationsteori. Hvorledes man bryder en RSA-kode

Informationsteori. Hvorledes man bryder en RSA-kode 1 970501HEb Informationsteori Hvorledes man bryder en RSA-kode Vi kender den offentlige nøgle (e n) og vil nu finde den private nøgle (d n), hvorved koden er brudt. Først gættes primfaktoriseringen af

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

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller Upload fil Upload fil skal ses som et alternativ til at indsende tællefiler vedhæftet til mails Upload fil kan være en hurtigere og mere håndholdt måde at få data ind i Mastra på. Man starter med via Gennemse

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

Sortering. Eksempel: De n tal i sorteret orden

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

Læs mere

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

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

Læs mere

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

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

Læs mere

Digital Signatur Infrastrukturen til digital signatur

Digital Signatur Infrastrukturen til digital signatur Digital Signatur Infrastrukturen til digital signatur IT- og Telestyrelsen December 2002 Resumé: I fremtiden vil borgere og myndigheder ofte have brug for at kunne kommunikere nemt og sikkert med hinanden

Læs mere

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11 DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4

Læs mere

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012 Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012 May 15, 2012 1 CONTENTS 2012 CONTENTS Contents 1 Kompleksitet 3 1.1 Køretid................................................ 3 1.2 Asymptotisk

Læs mere

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

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

Læs mere

Asymptotisk analyse af algoritmers køretider

Asymptotisk analyse af algoritmers køretider Asymptotisk analyse af algoritmers køretider Analyse af køretid (RAM-modellen vs. virkeligheden) public class Linear { public static void main(string[] args) { long time = System.currentTimeMillis(); long

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

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 26. maj 2009. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning

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

TALTEORI Følger og den kinesiske restklassesætning.

TALTEORI Følger og den kinesiske restklassesætning. Følger og den kinesiske restklassesætning, december 2006, Kirsten Rosenkilde 1 TALTEORI Følger og den kinesiske restklassesætning Disse noter forudsætter et grundlæggende kendskab til talteori som man

Læs mere

Løsning af møntproblemet

Løsning af møntproblemet Løsning af møntproblemet Keld Helsgaun RUC, oktober 1999 Antag at tilstandene i problemet (stillingerne) er repræsenteret ved objekter af klassen State. Vi kan da finde en kortest mulig løsning af problemet

Læs mere

Bevisteknikker. Bevisteknikker (relevant både ved design og verifikation) Matematisk induktion. Matematisk induktion uformel beskrivelse

Bevisteknikker. Bevisteknikker (relevant både ved design og verifikation) Matematisk induktion. Matematisk induktion uformel beskrivelse Bevisteknikker Bevisteknikker (relevant både ved design og verifikation) Bevisførelse ved modstrid (indirekte bevis) Antag, at det givne teorem er falsk Konkluder, at dette vil føre til en modstrid Teorem:

Læs mere

Hvordan vælger jeg dokumentprofilen?

Hvordan vælger jeg dokumentprofilen? Hvordan vælger jeg dokumentprofilen? Valget af OIOUBL profil i en konkret dokumentudveksling vil bl.a. afhænge af, hvilke OIOUBL profiler den anden part i udvekslingen understøtter. Et konkret eksempel

Læs mere

Sortering. Sortering ved fletning (merge-sort) Del-og-hersk. Merge-sort

Sortering. Sortering ved fletning (merge-sort) Del-og-hersk. Merge-sort Sortering Sortering ved fletning (merge-sort) 7 2 9 4! 2 4 7 9 7 2! 2 7 9 4! 4 9 7! 7 2! 2 9! 9 4! 4 1 2 Del-og-hersk Merge-sort Del-og-hersk er et generelt paradigme til algoritmedesign Del: opdel input-data

Læs mere

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

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

Læs mere

Parallelle algoritmer

Parallelle algoritmer Parallelle algoritmer 1 Von Neumann s model John von Neumann 1903-57 Von Neumanns model: Instruktioner og data er lagret i samme lager, og én processor henter instruktioner fra lageret og udfører dem én

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af opgaverne:

Læs mere

Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed

Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed Approximations-algoritmer Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed Negativt resultat om generel TSP Approximations-algoritme

Læs mere

Eksamen i Diskret Matematik

Eksamen i Diskret Matematik Eksamen i Diskret Matematik Første Studieår ved Det Tekniske Fakultet for IT og Design samt Det Ingeniør- og Naturvidenskabelige Fakultet 29. maj 2017. Kl. 9-13. Nærværende eksamenssæt består af 11 nummererede

Læs mere

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave. Sortering 1 / 36 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, 6, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Onsdag den 0. juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

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

Repræsentation af tal

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

Læs mere

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer

Læs mere