Fredag 12. januar David Pisinger

Relaterede dokumenter
6. december. Motivation. Internettet: Login til DIKU (med password) Handel med dankort Fortrolig besked Digital signatur

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

Camp om Kryptering. Datasikkerhed, RSA kryptering og faktorisering. Rasmus Lauritsen. August 27,

KRYPTOLOGI ( Litt. Peter Landrock & Knud Nissen : Kryptologi)

Af Marc Skov Madsen PhD-studerende Aarhus Universitet

Konfidentialitet og kryptografi 31. januar, Jakob I. Pagter

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

6. RSA, og andre public key systemer.

Matematikken bag kryptering og signering RSA

Matematikken bag kryptering og signering NemID RSA Foredrag i UNF

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

RSA Kryptosystemet. Kryptologi ved Datalogisk Institut, Aarhus Universitet

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

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

Kryptering kan vinde over kvante-computere

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Matematikken bag kryptering og signering RSA

Kryptologi og RSA. Jonas Lindstrøm Jensen

Opgave 1 Regning med rest

Affine - et krypteringssystem

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

RSA-kryptosystemet. RSA-kryptosystemet Erik Vestergaard

Køreplan Matematik 1 - FORÅR 2005

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

Tirsdag 12. december David Pisinger

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n

Integer Factorization

Kryptografi Anvendt Matematik

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 2 2 n 1/n (logn) n. n 2

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 5. 5n 2 5 logn. 2 logn

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen (bemærk at log n betegner totals logaritmen): n 2 (log n) 2 2.

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 2 n (log n) 2. 3 n /n 2 n + (log n) 4

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

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

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 7 n 1 7 7/n. 7nlogn. 7n 7nlogn n7

Talteoriopgaver Træningsophold ved Sorø Akademi 2007

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Talteori: Euklids algoritmer, modulær aritmetik

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

Introduktion til Kryptologi

Hemmelige koder fra antikken til vore dage

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

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

Sortering. Eksempel: De n tal i sorteret orden

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

2. Gruppen af primiske restklasser.

Eksamen i Diskret Matematik

Eksamen i Diskret Matematik

Større Skriftlig Opgave

Skriftlig Eksamen Algoritmer og Sandsynlighed (DM538)

Mindste udspændende træ

Fejlkorrigerende koder, secret sharing (og kryptografi)

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

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

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

Danmarks Tekniske Universitet

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Science and Technology EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

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

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 5n 4. logn. n 4n 5 n/logn. n n/logn 5n

DATALOGISK INSTITUT, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Sortering af information er en fundamental og central opgave.

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

Datastrukturer (recap)

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Sortering af information er en fundamental og central opgave.

Sortering. Eksempel: De n tal i sorteret orden

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n+logn logn (logn) 7 (3/2) n

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl

Danmarks Tekniske Universitet

Datastrukturer (recap)

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

DM72 Diskret matematik med anvendelser

Perspektiverende Datalogi 2014 Uge 39 Kryptologi

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Netværksalgoritmer 1

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 7 n 1/ log n. (log n) 4

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Mm6: More sorting algorithms: Heap sort and quick sort - October 29, 2008

Den digitale signatur

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 3/2. n logn (3/2) n. 2 3logn (3/2) n

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

MM05 - Kogt ned. kokken. Jacob Aae Mikkelsen. 23. januar 2007

Grundlæggende køretidsanalyse af algoritmer

Hvornår er der økonomi i ITsikkerhed?

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

Introduktion til Kryptologi. Mikkel Kamstrup Erlandsen

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Transkript:

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] Simone de Crema (40): vokaler har flere substitutter Enigma maskine (932): substitution af bogstaver, positionsafhængig Regler Kryptering Afsender og modtager aftaler (nøgle, nøgle ) Afsender koder klartekst (nøgle) Modtager afkoder chiffertekst (nøgle ) Afsender og modtager skal aftale nøgler på forhånd Dette er ikke realistisk på Internettet M encrypt C = M decrypt key key M Diffe-Hellman (976) offentlig-nøgle kryptosystem Sikkerhed bør ligge i nøglen, ikke i algoritmen Brug aldrig samme nøgle til to meddelelser Brug aldrig to nøgler til samme meddelelse Underestimer ikke fjenden 2 RSA kryptosystemet (Rivest, Shamir, Adleman 978) Offentlig nøgle (public key) P Hemmelig nøgle (secret key) S P A S A P B S B En besked er f.x. en binær streng. Domænet M. P A ( ), S A ( ) P B ( ), S B ( ) bijektive funktioner, dvs. permutationer M = S A (P A (M)) M = P A (S A (M)) dvs. P A og S A er hinandens inverse Kun kan udregne S A ( ) Kun kan udregne S B ( ) Alle kan udregne P A ( ),P B ( ) for alle M M for alle M M encrypt decrypt M P A C = P A (M) S A M RSA kryptosystemet Digital signatur σ underskriver sig med M = udregner digital signatur σ = S A (M ) σ = S A (M ) M S A (M,σ) M = P A (σ) P A M = M? 3 4

RSA kryptosystemet RSA kryptosystemet Find to store primtal p og q hvor p q (gerne 52 bit) 2 Udregn n = pq 3 Vælg lille ulige heltal e som er relativt primisk med φ(n) 4 Udregn d som multiplikativt inverse af e modulo φ(n) 5 RSA public key: P = (e, n) 6 RSA secret key: S = (d, n) Indsigt Hvis kender faktorisering n = pq da kender jeg φ(n) = (p )(q ) og dermed strukturen af Z n. Hvis jeg ikke kender φ(n) kan jeg ikke udregne multiplikativt inverse af e modulo φ(n). Kinesisk restklassesætning tillader at jeg regner i (Z p Z q ) frem for Z n. Dette udnyttes i korrekthedsbevis for algoritmen. I skridt 3: Størrelsen af Z n φ(n) = n a n ( ) a Da n = pq fås ( φ(n) = pq )( ) = pq q p+ = (p )(q ) p q I skridt 4: Algoritme korollar 3.26 bestemmer d entydigt Transformationer for M Z n Public key P = (e,n) transformation P(M) = M e mod n Secret key S = (d,n) transformation S(C) = C d mod n 5 6 Eksempel Finder to store primtal p = 5, q = Udregner n = pq = 55 Vi arbejder over gruppen Z 55 Størrelse af Z 55 er φ(n) = (5 )( ) = 4 0 = 40 Vælg tilfældigt ulige heltal e = 7 Find multiplikativt inverse d = 23 af tallet e i gruppen Z 40 Public key (e, n) = (7, 55) Secret key (d, n) = (23, 55) Besked M = 8 P(M) = M e mod n = 8 7 mod 55 = 209752 mod 55 = 2 = C S(C) = C d mod n = 2 23 mod 55 = 8388608 mod 55 = 8 = M M e og C d udregnes ikke, brug MODULAR-EXPONENTIATION 7 Køretid af RSA Public key og Secret key operationer MODULAR-EXPONENTIATION benyttes køretid O(β 3 ) hvis β bit lange tal public key (e,n) hvor e er et lille heltal loge = O() og logn β secret key (d,n) logd β og logn β public key transformation M e mod n O() multiplikationer, O(β 2 ) bit operationer secret key transformation C d mod n O(β) multiplikationer, O(β 3 ) bit operationer Vælger e lille så offentlig nøgle transformation hurtig Et løst overslag Med β = 024 bit, kræver afkodning 0 9 bit-operationer Hurtig CPU kan beregne 0 9 multiplikationer/sek Hvis CPU kan multiplicere to 64-bit tal i hardware, svarer det til 64 2 = 4096 bit-operationer samtidigt CPU klarer 0 9 4096 = 4 0 2 bit-operationer/sek Ideelt kan vi kode 4096 tal af længde 024 bit/sek 8

Korrekthed af RSA kryptosystemet Korrekthed af RSA kryptosystemet P(M) = M e mod n S(C) = C d mod n Vil vise at S A og P A definerer inverse transformation af Z n. M = S A (P A (M)) Bevis: For enhver besked M Z n M = P A (S A (M)) P(S(M)) = S(P(M)) = M ed mod n Da e og d multiplikativt inverse modulo φ(n) = (p )(q ) ed mod (p )(q ) ed = + k(p )(q ) for et heltal k Z. Hvis M 0 (mod p) gælder Tilsvarende vises M ed M (mod q) for alle M. Kinesisk restklassesætning, korollar 3.29 giver } M ed M (mod p) M ed M ed M (mod n) M (mod q) for alle M. M ed M +k(p )(q ) (mod p) M(M p ) k(q ) (mod p) M() k(q ) (mod p) M (mod p) [theorem 3.3, M Z p] Hvis M 0 (mod p) gælder M ed M (mod p) Så ovenstående gælder for alle M. 9 0 RSA kryptosystemets sikkerhed Offentlige nøgle er P = (e, n). Hvis fjenden kan faktorisere n = pq så kan han bruge RSA algoritmens skridt 2-4 til at finde d i den hemmelige nøgle S = (d,n). Hvis faktorisering er let nemt at bryde RSA Hvis faktorisering er svært måske svært at bryde RSA Kryptering af lang besked Offentlig-nøgle system sikrer Kontrol af afsender-modtager Kryptering af besked Et offentlig-nøgle system er beregningsmæssigt dyrt Offentlig-nøgle systemet bruges til at kontrollere afsendermodtager Offentlig-nøgle systemet bruges til at udveksle simplere nøgler Simplere kryptosystem bruges til lange besked Effektiv digital signatur (s.866) Hash-funktion h : M N M M h(m) h(m ) (eller i hvert fald svært at finde M ) h(m) er et kort (fx. 60-bit) fingeraftryk af M udregner h(m) sender (M,S A (h(m))) udregner t = h(m) udregner t 2 = P A (S A (h(m)) hvis t = t 2 er besked ikke blevet ændret afsender er helt sikkert Offentlig myndighed T Antag at alle kan stole på T Alle kender public key P T får certifikat S T (M ) på at M = s offentlige nøgle er P A sender certifikat S T (M) med M Alle kan afkode S T (M), og ved at signerede M 2

At finde primtal Egenskaber ved primtal Der findes heldigvis mange primtal Lad π(n) være antallet af primtal mindre end n. Dvs. π(n) er tæt på n/lnn. Naiv algoritme π(n) lim n n/lnn = n = 0 9 π(n) 48.254.942 For at teste om n er et primtal, divideres det med alle heltal Eksponentiel køretid! Input: Θ(logn) bits Køretid: O( n) 2,..., n Lad m = log n, dvs. 2m = log( n) 2 = logn Input: Θ(2m) bits Køretid: O(2 m ) Lad Z + n = Z n \ {0} = {,2,...,n } Husk at Z n = {a Z n : gcd(a,n) = } Hvis n er primtal så er Z n = Z + n Theorem 3.34 Hvis n er primtal og e N (n > 2, e ) så har ligningen x 2 (mod n e ) kun to rødder: x = og x = (trivielle rødder) Fermats [lille] theorem n er primtal a n (mod n) hvilket er ækvivalent med n er sammensat a n (mod n) Desværre gælder ikke n er primtal a n (mod n) 3 4 Pseudoprimtal n er base-a pseudoprimtal hvis n er sammensat og Eksempel a n (mod n) 34 = 3 er base-2 pseudoprimtal da Pseudoprimtalstest 2 34 (mod 3)4 Givet n som vi skal afgøre om er et primtal Vælg a Z + n Udregn om a n (mod n) Hvis a n (mod n) så helt sikkert sammensat Hvis a n (mod n) så primtal eller pseudoprimtal Rimeligt god primtalstest Brug a = 2 i ovenstående algoritme { 2 n primtal (mod n) pseudoprimtal Fejler kun for 22 værdier af n 0.000 5 Randomiserede algoritmer Algoritme som benytter tilfældigt tal r i sine beregninger Varianter input random r output Algoritmen giver altid korrekt svar, men køretiden afhænger af r. 2 Algoritmen returnerer et korrekt svar med en vis sandsynlighed, køretid er altid samme. Eksempler på randomiserede algoritmer: QUICKSORT worst-case tid: O(n 2 ) randomiseret: O(nlogn) med stor sandsynlighed. 2 MIN-CUT finder min-cut i graf (V,E) med sandsynlighed n 2 køretid O(n 2 logn), n = V. 6

Randomiserede algoritmer (eksempel) Randomiserede algoritmer Algoritme til at finde minimalt snit i graf G = (V,E) MINCUT(V, E) while V > 2 do 2 pick randomly an edge (u,v) in E 3 contract the edge, while preserving multi-edges 4 remove all loops 5 output remaining edges Sammentrækning (contracting) af en kant (u, v) betyder at der tilføjes en ny knude w, alle kanter (u,x) eller (v,x) erstattes med (w,x) og herefter slettes u og v fra grafen G. 2 3 6 5 [] R. Motwani and P. Raghavan. Randomized Algorithms. Cambridge University Press, New York (NY), 995. 4 Antag at vi skal besvare et ja-nej spørgsmål S. Vi har en randomiseret algoritme R(S,r) som Baseret på et tilfældigt tal r svarer ja - nej Hvis den svarer nej er den helt sikker på sit svar Hvis den svarer ja er den p < sikker på sit svar Hvis vi kalder den randomiserede algoritme k gange med forskellige r og hver gang får ja er sandsynligheden for at S = nej : ( p) k Eksempel: Hvis p = 0.5, og svarer ja k = 00 gange, er sandsynligheden for at S = nej ( 0.5) 00 = 7.89 0 3 Hvis p = 0., og svarer ja k = 00 gange, er sandsynligheden for at S = nej ( 0.) 00 = 2.66 0 5 7 8 Randomiseret algoritme Pseudoprimtalstest Hvad er bedst:. For 50% af input svarer algoritmen rigtigt 2. For alle input svarer algoritmn 50% rigtigt Vælg tilfældigt a Z n a n (mod n) { primtal pseudoprimtal Formelt: sandsynligheden p for at et ja-svar er rigtigt. r, I I, I 2 I, i I : p(i,r) = 00% 2. i I, r : p(i,r) 50% Carmichael tal n = 56,05,729,2465,282,660,89,..., For alle a a n (mod n) Pseudoprimtal for alle baser a Pseudoprimtalstest kan ikke udvides til randomiseret algoritme der afhænger af a Carmichael tal er sjældne: 255 stk under 00.000.000. 0522 stk under 0 5. 585355 stk under 0 7. 9 20

Bedre pseudoprimtalstest Eksempel på primtalstest For alle e N (bruger e = ) n er primtal x 2 (mod n e ) har løsning x = ± n er sammensat x 2 (mod n e ) har løsning x ± For alle a N n er primtal a n (mod n) n er sammensat a n (mod n) WITNESS-COMPOSITE(a, n) n = 2 t u hvor t og u ulige 2 x 0 MODULAR-EXPONENTIATION(a,u,n) 3 for i to t do 4 x i xi 2 mod n 5 if x i = and x i and x i n then 6 return TRUE x i ± (mod n) og x i xi 2 (mod n) 7 if x t then 8 return TRUE x t = (a n mod n) 9 return FALSE Hvis returnerer TRUE så er n er sammensat Hvis returnerer FALSE så er n måske primtal 2 Carmicahel tal n = 56 = 5 Vælgt tifældigt a f.eks. a = 7 Ønsker at teste n = 0000000 = 35 2 4 = u 2 t n er sammensat a n (mod n) MODULAR-EXPONENTIATION Første 6 bit køres normalt Sidste 4 bit alene kvadreringer n er sammensat x 2 (mod n) har løsning x ± Håndkørsel af MODULAR-EXPONENTIATION i 9 8 7 6 5 4 3 2 0 bit 0 0 0 0 0 0 0 c 2 4 8 7 35 70 40 280 560 d 7 49 57 526 60 24 298 66 67 (a 280 ) 2 = a 560 = 7 560 (mod n) Dvs. med x = a 280 haves så er n sammensat x 2 (mod n) 22 Miller-Rabin s algoritme Input: ulige heltal n større end 2, s antal forsøg MILLER-RABIN(n, s) for j to s do 2 a RANDOM(,n ) 3 if WITNESS-COMPOSITE(a,n) then 4 return COMPOSITE Definitely 5 return PRIME Almost for sure Faktorisering af heltal er svært (Afsnit 3.9 kursorisk) Det er svært at faktorisere heltal Vi har ikke bevis for at effektiv algoritme ikke findes Hvis nogen finder en effektiv algoritme kan de bryde RSA og indkassere stor præmie Bedste algoritmer kørt på supercomputere kan ikke faktorisere vilkårligt 024-bit tal (p og q blev valgt som 52-bit så n er 024-bit) Theorem 3.38: Hvis n er ulige og sammensat, så er antallet af vidner til at n er sammensat mindst n 2. Theorem 3.39: For et ulige heltal n > 2 og pos. heltal s er chancen for at MILLER-RABIN(n, s) svarer forkert højst ( 2) s. Hvis man bruger s = 50 så er chancen for fejl: ( ) 50 = 8.88 0 6 2 23 24

Opsummering RSA offentlig nøgle krypteringssystem Primtalstest Randomiserede algoritmer If, using a randomized method, the probability of error is 2 000, the philosophical question arises: is this a mathematical proof? 25