De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Wiskundige basis Cursus informatiebeveiliging Eric Laermans – Tom Dhaene.

Verwante presentaties


Presentatie over: "Wiskundige basis Cursus informatiebeveiliging Eric Laermans – Tom Dhaene."— Transcript van de presentatie:

1 Wiskundige basis Cursus informatiebeveiliging Eric Laermans – Tom Dhaene

2 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 2 Complexiteit Algoritme berekeningstechniek veranderlijke invoer eindigt met een resultaat (uitvoer) “grootte” van de invoer  aantal bits nodig voor representatie van de invoer –soms ook het getal zelf –soms ook het aantal invoerparameters –soms nog andere grootheid –uit de context af te leiden  karakteristieke dimensie voor probleem

3 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 3 Complexiteit Algoritme rekentijd  gemeten in aantal stappen nodig voor uitvoering algoritme –bitoperaties, klokcycli, modulo- vermenigvuldigingen,  –eveneens uit de context af te leiden  afhankelijk van de “grootte” van de invoer  meestal niet exact te bepalen  wel asymptotische benadering te bepalen voor de toename met toenemende grootte van de invoer

4 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 4 Complexiteit Asymptotische bovengrens (upper bound) notatie: f(n) = O(g(n)) ∃ c: ℝ >0. ∃ n 0 : ℕ. ∀ n: ℕ. n  n 0 ⇒ 0 ≤ f(n) ∧ f(n) ≤ c · g(n) in mensentaal  de functie f(n) neemt asymptotisch niet sneller toe dan een constant veelvoud van de functie g(n) eigenschappen:  f 1 (n) = O(g 1 (n))  f 2 (n) = O(g 2 (n))  (f 1 + f 2 )(n) = O((g 1 + g 2 )(n))  (f 1  f 2 )(n) = O((g 1  g 2 )(n))

5 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 5 Complexiteit Asymptotische ondergrens (lower bound) notatie: f(n) =  (g(n)) ∃ c: ℝ >0. ∃ n 0 : ℕ. ∀ n: ℕ. n  n 0 ⇒ 0 ≤ c·g(n) ∧ c·g(n) ≤ f(n) in mensentaal:  de functie f(n) neemt asymptotisch tenminste even snel toe als een constant veelvoud van de functie g(n)  dit is dus net het omgekeerde van een asymptotische bovengrens –f(n) =  (g(n))  g(n) = O(f(n))

6 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 6 Complexiteit Strikte asymptotische begrenzing (tight bound) notatie: f(n) =  (g(n)) ∃ c 1 : ℝ >0. ∃ c 2 : ℝ >0. ∃ n 0 : ℕ. ∀ n: ℕ. n  n 0 ⇒ c 1 ·g(n) ≤ f(n) ∧ f(n) ≤ c 2 ·g(n) in mensentaal:  op een constante factor na wordt de functie f(n) asymptotisch zowel naar boven als naar onder begrensd door de functie g(n)  m.a.w. voor grote waarden van n vertonen beide functies hetzelfde gedrag

7 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 7 Complexiteit o-notatie notatie: f(n) = o(g(n)) ∀ c: ℝ >0. ∃ n 0 : ℕ. ∀ n: ℕ. n  n 0 ⇒ 0 ≤ f(n) ∧ f(n) ≤ c · g(n) in mensentaal:  voor grote waarden van n wordt de waarde van f(n) verwaarloosbaar klein ten opzichte van de waarde van g(n)

8 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 8 Complexiteit Enkele voorbeelden: log c n =  (ln n) =  (lg n) f(n) polynoom van graad k  f(n) =  (n k ) n! = (2  n) 1/2 (n/e) n (1+  (1/n)) n! = o(n n ) lg(n!) =  (n lg n) Te onthouden (voor grote n): 1 < ln (ln n) < ln n < exp[{(ln n) ln(ln n)} 1/2 ] < n  <… …< n c < n ln n < c n < n! < n n < c c n (waarbij 0 <  < 1 < c)

9 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 9 Complexiteitsklassen Klassificatie algoritmen volgens complexiteit in tijd algoritme met “invoergrootte” n asymptot. gedrag van rekentijd als functie van n polynomiale rekentijd:  nodige rekentijd is O(n k )  “efficiënte” algoritmen exponentiële rekentijd:  niet-polynomiale rekentijd subexponentiële rekentijd:  nodige rekentijd is e o(n)  de mildste niet-polynomiale algoritmen

10 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 10 Complexiteitsklassen Klassificatie algoritmen volgens complexiteit in tijd voorbeeld voor algoritmen met getallen q  invoergrootte lg q (aantal bits nodig om getal q voor te stellen)  L q [ ,c] = O(exp[(c+o(1)) (ln q)  (ln ln q) 1–  )]) –geval  = 0 (L q [ ,c]) »polynomiaal in ln q –geval  = 1 (L q [ ,c]) »volledig exponentieel in ln q –andere waarden voor  (L q [ ,c]) »sub-exponentieel in ln q

11 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 11 Complexiteitsklassen Voor beslissingsproblemen (“decision problems”) problemen waarvan antwoord ja of neen is  invoergrootte n complexiteitsklasse P  alle beslissingsproblemen die in polynomiale rekentijd op te lossen zijn

12 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 12 Complexiteitsklassen Voor beslissingsproblemen (“decision problems”) complexiteitsklasse NP  alle beslissingsproblemen, waarvan een ja-antwoord in polynomiale rekentijd verifieerbaar is, gegeven zekere extra informatie (een zogeheten certificaat)  voor “Nondeterministic Polynomial time” complexiteitsklasse co-NP  zelfde als NP, maar voor neen-antwoorden

13 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 13 Complexiteitsklassen Voor beslissingsproblemen voorbeeld: bepalen of getal samengesteld is  probleem duidelijk in NP (gegeven een deler van het getal)  probleem is ook in co-NP (aantoonbaar)  probleem in P? geweten:  P  NP  P  co-NP vermoed:  P  NP  P  co-NP  P ≠ NP ∩ co-NP

14 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 14 Complexiteitsklassen Voor beslissingsproblemen reductie: L 1 ≤ P L 2  probleem L 1 is in polynomiale tijd reduceerbaar tot probleem L 2 (“L 1 polytime reduces to L 2 ”)  als er een algoritme bestaat om L 1 op te lossen, dat gebruik maakt van een subroutine die toelaat om L 2 op te lossen, en dat zelf van polynomiale tijdscomplexiteit is als de routine om L 2 op te lossen ook van polynomiale tijdscomplexiteit is  informeel: L 1 niet significant moeilijker dan L 2

15 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 15 Complexiteitsklassen Voor beslissingsproblemen reductie: L 1 ≤ P L 2  L 1 en L 2 zijn computationeel equivalent als L 1 ≤ P L 2 en L 2 ≤ P L 1  als L 1 ≤ P L 2 en L 2  P, dan is ook L 1  P  te veralgemenen voor andere problemen dan voor beslissingsproblemen

16 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 16 Complexiteitsklassen Voor beslissingsproblemen NPC: klasse van NP-complete problemen  klasse van NP-problemen die tenminste even moeilijk zijn als alle andere NP-problemen  formeel: L 1 ∈ NPC ≡ L 1 ∈ NP ∧ ∀ L: NP. L ≤ P L 1  dit zijn de moeilijkste problemen binnen NP  voorbeeld: –gegeven verzameling natuurlijke getallen {a 1,a 2,…, a n } en een natuurlijk getal s –bepaal of s kan geschreven worden als een som van elementen uit deze verzameling

17 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 17 Complexiteitsklassen Voor beslissingsproblemen vermoedelijke relaties co-NPNP P NPC

18 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 18 Complexiteitsklassen Niet alleen voor beslissingsproblemen NP-moeilijke problemen (“NP-hard”)  een probleem is NP-moeilijk als het de reductie in polynomiale tijd is van een NP-compleet probleem (m.a.w. een NP-compleet probleem is in polynomiale tijd reduceerbaar tot een NP-moeilijk probleem)  formeel: L 1 is NP-moeilijk ≡ ∃ L: NPC. L ≤ P L 1  alle NP-complete problemen zijn NP-moeilijk

19 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 19 Priemgetallen korte herhaling a | b  a (≠ 0) is een deler van b priemgetal p  getal (groter dan 1) met als enige delers 1 en zichzelf bijvoorbeeld:  2, 3, 5, 7, 11, , 109,..., ( digits)  bron: (The Prime Pages)http://primes.utm.edu/

20 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 20 Priemgetallen priemgetallenrepresentatie  elk getal kan op een unieke manier geschreven worden als een product van priemgetallen bijvoorbeeld: 6460 = 2 2 × 5 × 17 × 19 ontbinding in priemgetallen van grote getallen doorgaans moeilijk

21 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 21 Priemgetallen grootste gemene deler (greatest common divisor)  gcd(a, b) getallen die onderling relatief priem zijn (relatively prime numbers)  a.s.a. gcd(a,b)=1 verdeling van priemgetallen   (n): aantal priemgetallen ≤ n

22 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 22 Modulorekenen korte herhaling geheeltallige deling:  a = nq + r –met 0 ≤ r < n congruentie modulo n  (a mod n) = (b mod n)  a = b mod n  zelfde restwaarde r bij deling door n  a.s.a. n|(b–a)  voorstelling van gehele getallen modulo n door getallen van 0 tot en met n–1 –a mod n = r

23 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 23 Modulorekenen Bewerkingen optellen/aftrekken modulo n  (a+b) mod n = ((a mod n) + (b mod n)) mod n  (a–b) mod n = ((a mod n) – (b mod n)) mod n vermenigvuldiging modulo n  (a×b) mod n = ((a mod n) × (b mod n)) mod n deling modulo n  inverse van vermenigvuldiging  a × b = c (mod n)  b = c / a (mod n) = a -1 × c (mod n) –als a relatief priem is t.o.v. n –voorwaarde opdat a -1 mod n bestaat, i.e. a × a -1 mod n = 1 mod n

24 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 24 Modulorekenen Bewerkingen machtsverheffing  volkomen analoog aan machtsverheffing voor gewone getallen  a k = a × a ×  × a (mod n) (k–1 vermenigvuldigingen)

25 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 25 Modulorekenen Bewerkingen machtsverheffing  in tegenstelling tot machtsverheffing bij reële getallen is het moeilijk om deze bewerking te inverteren (voor grote n) –zelfs vierkantswortel nemen mod n is moeilijk, tenzij de factorisatie in priemgetallen van n gekend is  machtsverheffing is t.o.v. vermenigvuldiging wat vermenigvuldiging is t.o.v. optelling –vermenigvuldiging kan beschouwd worden als een soort machtsverheffing

26 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 26 Modulorekenen: abstracte algebra Eigenschappen optelling mod n gesloten associativiteit neutraal element inverse voor optelling  GROEP ({Z n,+}) commutativiteit  COMMUTATIEVE / ABELSE GROEP ({Z n,+})

27 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 27 Modulorekenen: abstracte algebra Eigenschappen vermenigvuldiging mod n gesloten associativiteit distributiviteit t.o.v. optelling met eigenschappen optelling  RING ({Z n,+,×})

28 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 28 Modulorekenen: abstracte algebra Eigenschappen vermenigvuldiging vorige eigenschappen commutativiteit  COMMUTATIEVE RING ({Z n,+,×}) eenheidselement  COMMUTATIEVE RING MET EENHEIDSELEMENT ({Z n,+,×}) inverse voor vermenigvuldiging (n = p: priem)  (EINDIG) VELD ({Z p,+,×}) GF(p) (andere mogelijke eindige velden GF(p n ))

29 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 29 Modulorekenen: abstracte algebra Groep voor vermenigvuldiging {Z n *,×} is een Abelse groep voor de vermenigvuldiging Z n * = {x|x  Z n  gcd(x,n)=1}  in het geval n=p (priemgetal) is Z p * = Z p \{0}

30 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 30 Modulorekenen: abstracte algebra Cyclische groep achtereenvolgens toepassen van operator (optelling of vermenigvuldiging bv.) op een zeker element van de groep genereert alle elementen van de groep  elk element van de groep is een macht van dit bewuste element  dit bewuste element is dan een generator voor deze groep

31 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 31 Modulorekenen: abstracte algebra Cyclische groep voorbeeld: groep {Z 5,+}  1 = 1 (mod 5)  = 2 (mod 5)  = 3 (mod 5)  = 4 (mod 5)  = 0 (mod 5)  alle getallen behalve 0 zijn generatoren voor {Z 5,+}

32 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 32 Modulorekenen: abstracte algebra Cyclische groep voorbeeld: groep {Z 5 *,×}  3 1 = 3 = 3 (mod 5)  3 2 = 3 × 3 = 4 (mod 5)  3 3 = 3 × 3 × 3 = 2 (mod 5)  3 4 = 3 × 3 × 3 × 3 = 1 (mod 5)  ook 2 is een generator voor {Z 5 *,×} (1 en 4 echter niet)

33 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 33 Modulorekenen: toepassingen Bepalen gcd (algoritme van Euclides) steunt op gcd(a, b) = gcd(b, a mod b)  immers als a mod b = r, dan zal a – q b = r (voor zekere q)  en een deler van zowel a als b, is ook deler van a–qb voorbeeld: berekening gcd(2047,828) gcd(23,0)46=2×23+0 gcd(46,23)391=8×46+23 gcd(391,46)828=2× gcd(828,391)2047=2×

34 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 34 Modulorekenen: inverse berekenen Berekening inverse voor vermenigvuldiging gezocht (a -1 ): nb +a(a -1 )=1 (als gcd(n, a) = 1) nA 1 +aA 2 =A 3 nB 1 +aB 2 =B 3 n(A 1 –qB 1 )+a(A 2 –qB 2 )=r start met A 1 = B 2 = 1 en A 2 = B 1 = 0 laatste stap als r = 1 (oplossing)… …of als r = 0 (geen oplossing) 1× -q×-q× A 3 = qB 3 +r

35 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 35 Modulorekenen: inverse berekenen Berekening inverse voor vermenigvuldiging voorbeeld: mod =17-1×(-31)-17=-6-1×11223×(-17)+79×48=1 -31=-14-1×1711=5-1×(-6)5=1×4+1223×11+79×(-31)=4 17=3-1×(-14)-6=-1-1×59=1×5+4223×(-6)+79×17=5 -14=-2-4×35=1-4×(-1)14=1×9+5223×5+79×(-14)=9 3=1-1×(-2)-1=0-1×165=4× ×(-1)+79×3=14 -2=0-2×11=1-2×079=1× ×1+79×(-2)=65 223=2× ×0+79×1=79 223×1+79×0=223 =48 A 3 = qB 3 +r n(A 1 –qB 1 )+a(A 2 –qB 2 )=r

36 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 36 Modulorekenen: CRT Chinese reststelling “Chinese remainder theorem”: CRT basis hiervan veel ouder dan modulorekenen (Chinese oudheid) waarbij gcd(m i, m j ) = 1 (relatief priem t.o.v. elkaar) voorstelling van 2 getallen A en B (kleiner dan M)  A mod m i = a i B mod m i = b i

37 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 37 Modulorekenen: CRT Chinese reststelling bewerkingen mod M vertaald naar bewerkingen mod m i :  S = (A + B) mod Ms i = (a i + b i ) mod m i  P = (A × B) mod Mp i = (a i × b i ) mod m i  Q = (A / B) mod Mq i = (a i / b i ) mod m i overgang van coëfficiënten a i naar getal A:  stel M i = M / m i c i = M i ×((M i ) -1 mod m i )

38 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 38 Modulorekenen: CRT Chinese reststelling handig bij talrijke opeenvolgende berekeningen, waarbij slechts eindresultaat moet geconverteerd worden  berekeningen gebeuren met kleinere getallen (m i i.p.v. M)

39 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 39 Modulorekenen: CRT Chinese reststelling voorbeeld  M = 43 × 37 = 1591A = 635B = 347 m 1 = 43m 2 = 37  bereken (A × B) mod 1591  a 1 = A mod 43 = 33a 2 = A mod 37 = 6 b 1 = B mod 43 = 3b 2 = B mod 37 = 14  (A × B) mod 43 = 13(A × B) mod 37 = 10  M 1 = 37M 2 = 43 (37) -1 mod 43 = 7 (43) -1 mod 37 = 31 –(reken na!)  (A × B) mod 1591 = (13×37×7 + 10×43×31) mod 1591 = mod 1591 = 787

40 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 40 Modulorekenen: Fermat Stelling van Fermat a p–1 = 1 mod p  met p een priemgetal en a geen veelvoud van p veralgemening: a p = a mod p  met p een priemgetal  als a een veelvoud van p is, dan is a p–1 = 0 mod p bewijs in boek, p. 272vv.

41 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 41 Modulorekenen: Fermat Stelling van Fermat voorbeeld:  a = 5p = 17  5 2 mod 17 = 8  5 4 mod 17 = 13  5 8 mod 17 = 16  5 16 mod 17 = 1 als p geen priemgetal is, hangt het van a af of deze relatie geldt  a = 8n = 98 8 mod 9 = 1  a = 2n = 92 8 mod 9 = 4

42 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 42 Modulorekenen: Euler Totiëntfunctie van Euler:  (n) aantal positieve gehele getallen kleiner dan n die relatief priem zijn t.o.v. n  (p) = p–1  (pq) =  (p) ×  (q) = (p–1) × (q–1) meest algemene vorm: bijzonder geval:  (1) = 1

43 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 43 Modulorekenen: Euler Totiëntfunctie van Euler voorbeelden:  totiëntfunctierelatieve priemgetallen   (7) = 7 – 1 = 6{1, 2, 3, 4, 5, 6}   (6) =  (2) ×  (3) = 2{1, 5}   (9) = 9 × (1 – 1/3) = 6{1, 2, 4, 5, 7, 8}  gemakkelijk te berekenen als de ontbinding in priemgetallen gekend is  als ontbinding in priemgetallen niet bekend is, is berekening van deze functie een moeilijk probleem het aantal elementen van Z n * is  (n)

44 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 44 Modulorekenen: Euler Stelling van Euler a  (n) = 1 mod n  waarbij a en n onderling priem zijn (gcd(a,n)=1)  voor priemgetal n is dit niets anders dan de stelling van Fermat voorbeeld:  a = 2n = 9 (dus  (n) = 6)2 6 = 1 mod 9 “tegenvoorbeeld”:  a = 6n = 8 (dus  (n) = 4) 6 4 = 0 mod 8 alternatieve formulering: a  (n)+1 = a mod n  waarbij a en n onderling priem zijn

45 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 45 Modulorekenen: Euler Stelling van Euler uitbreiding voor n = p q (p en q priem)  a  (n)+1 = a (p–1)(q–1)+1 = a mod n  waarbij a en n niet onderling priem hoeven te zijn !!  nog te veralgemenen tot: a k  (n)+1 = a mod n  nuttig voor RSA bewijzen in boek, p. 274vv. het is zelfs mogelijk de stelling uit te breiden voor n een product van verschillende priemgetallen:

46 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 46 Test voor priemgetallen Miller-Rabin-test voor priemgetallen testen of gegeven getal n priemgetal is als n priemgetal is, zal a n–1 = 1 mod n voor alle waarden van a (behalve veelvouden van n) wegens stelling van Fermat dus als we een a vinden, waarvoor a n–1 ≠ 1 mod n, dan kan n geen priemgetal zijn INVOER: n (oneven en >2), parameter t (>0). UITVOER: beslissing n samengesteld of n (waarschijnlijk) priemgetal

47 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 47 Test voor priemgetallen Miller-Rabin-test voor priemgetallen 1. bereken k en q, zodat n – 1 = 2 k q (q oneven) 2. voor i van 1 tot en met t: a) kies willekeurige waarde a (2 ≤ a ≤ n − 2) b) bereken y = a q mod n c) als y ≠ 1 en y ≠ n − 1: –stel j ← 1. –zolang j ≤ k − 1 en y ≠ n − 1: »stel y ← y 2 mod n. »als y = 1: return(“samengesteld”). »stel j ← j + 1 –als y ≠ n − 1: return (“samengesteld”). 3. return(“waarschijnlijk priemgetal”).

48 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 48 Test voor priemgetallen Miller-Rabin-test voor priemgetallen probabilistische test  waarschijnlijkheid dat een getal geen priemgetal zou zijn, terwijl het antwoord van deze Miller-Rabin-test “waarschijnlijk priemgetal” is, is kleiner dan 4 -t.  niet geslaagde tests op 80 waarden voor a (t = 80) geven een waarschijnlijkheid kleiner dan dat getal geen priemgetal is er bestaan andere deterministische tests  maar deze zijn minder efficiënt…  …of beperkt tot zeer specifieke soorten priemgetallen

49 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 49 Modulorekenen: discrete logaritmen Orde van a modulo n gezocht kleinste m, zodat a m = 1 mod n (waarbij gcd(a, n) = 1) m is de orde van a, of de lengte van de periode gegenereerd door a  elke macht van a: a k (met 1 ≤ k ≤ m) is verschillend als m =  (n), is a een primitieve wortel van n  als n = p (een priemgetal), dan wordt a een generator van de cyclische groep {Z p *,×} –elke waarde van Z p * is dan gelijk aan een bepaalde macht van a –meer algemeen is a een generator van de cyclische groep {Z n *,×}

50 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 50 Modulorekenen: discrete logaritmen Orde van a modulo n als a s = 1 mod n, dan moet m|s en s|  (n) (met m de orde van a) als a een generator is voor {Z n *,×}  b = a i mod n is een generator  gcd(i,  (n)) = 1  bestaan er  (  (n)) generatoren voor {Z n *,×} niet alle getallen n hebben primitieve wortels  alleen 2, 4, p , 2p  (met p een oneven priemgetal) a (  Z n * ) is generator voor {Z n *,×} a.s.a. a  (n)/p ≠ 1 mod n  voor alle priemgetallen p die delers zijn van  (n)

51 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 51 Modulorekenen: discrete logaritmen Orde van a modulo n voorbeelden:  2 en 5 zijn de primitieve wortels voor n = 9 (= 3 2 ) (  (9)=6)  3 en 5 zijn de generatoren voor n = 7 (  (7) = 6)  5 is de enige primitieve wortel voor n = 6 (  (6) = 2)  1 is de enige generator voor n = 2 (  (2) = 1)  voor n = 8 zijn er geen primitieve wortels (  (8) = 4)

52 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 52 Modulorekenen: discrete logaritmen Discrete logaritmen inverse probleem van de machtsverheffing in modulorekenen  zoek x waarvoor a x = b mod n (met gcd(a, n) = 1 en gcd(b, n) = 1) als a een primitieve wortel is voor n, is er een unieke oplossing  anders verscheidene of geen oplossingen mogelijk  ook als gcd(b, n) ≠ 1 zijn er verscheidene of geen oplossingen mogelijk

53 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 53 Modulorekenen: discrete logaritmen Discrete logaritmen ook wel index van b in basis a (mod n) genoemd notatie:  x = log a b mod n ofx = ind a,n (b) eigenschappen:  ind a,n (x y) = (ind a,n (x) + ind a,n (y)) mod  (n)  ind a,n (y r ) = (r × ind a,n (y)) mod  (n) (bewijs zie boek, p. 284)  ind a,n (x) = (ind b,n (x) / ind b,n (a)) mod  (n) analoog aan logaritmen voor reële getallen, vandaar de benaming

54 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 54 Modulorekenen: discrete logaritmen Discrete logaritmen voorbeelden:  x = ind 5,7 (2) = 4 (want 5 4 = 2 mod 7)  x = ind 4,7 (2) onbepaald (2 of 5) (want 4 2 = 4 5 = 2 mod 7; 4 geen generator voor n=7)  x = ind 4,7 (3) bestaat niet (4 geen generator voor n=7)

55 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 55 Modulorekenen: discrete logaritmen Discrete logaritmen evenals factorisatie in priemgetallen, is dit doorgaans een moeilijk probleem  er bestaat een algoritme dat het probleem van discrete logaritmen oplost in een aantal berekeningen van de grootteorde:  ongeveer 10 14C voor p ongeveer (C ≈ 1,923)  (meer info op: )

56 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 56 Modulorekenen: discrete logaritmen Discrete logaritmen ook te definiëren in deelgroepen van {Z p *,×}  beschouw priemgetal q met q|(p–1) –er bestaat in {Z p *,×} een unieke cyclische deelgroep G van orde q  beschouw a generator voor G  het probleem van discrete logaritmen in G is dan het zoeken naar x, zodat voor gegeven b (  G): –0 ≤ x ≤ q–1 en a x = b mod p  complexiteit van de beste oplossingstechnieken –O(q 1/2 ) of L p [1/3, C] (met C ≈ 1,923) –voor goed gekozen q niet eenvoudiger dan traditioneel probleem  basis voor DSA

57 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 57 Andere eindige velden Alle eindige velden van type GF(p n ) p priemgetal speciaal geval (n = 1):  GF(p); modulorekenen {Z p,+,×} er bestaan ook oneindige velden  zoals {R,+,×} Hierna: eindige velden van type GF(p n ) met n ≠ 1 rekenen met polynomen

58 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 58 Polynomen over veld F Definities polynoom van graad n in veranderlijke x:  f(x) = a n x n +a n-1 x n-1 +…+ a 1 x + a 0  a i : coëfficiënten van de polynoom (i = 0, , n)  polynoom heet monisch als a n = 1

59 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 59 Polynomen over veld F Definities polynoom van graad n in veranderlijke x:  coëfficiënten, veranderlijke en bewerkingen (optellingen en vermenigvuldigingen) zijn gedefinieerd in gegeven veld F –dit veld kan {R,+,×} zijn: traditionele polynomen met reële getallen –het kan ook gaan over GF(p): coëfficiënten zijn dan getallen mod p –het kan ook gaan over GF(p n ): coëfficiënten kunnen dan zelf voorgesteld worden als polynomen over GF(p) (zie verder)

60 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 60 Polynomen over veld F Bewerkingen op polynomen optellen van polynomen f(x) en g(x): f(x) + g(x)  coëfficiëntsgewijs vermenigvuldigen van polynomen f(x) en g(x): f(x)×g(x)  volgens traditionele regels van de algebra

61 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 61 Polynomen over veld F Bewerkingen op polynomen delen van polynomen f(x) en g(x): f(x) / g(x)  met mogelijke restterm r(x) (van een lagere graad dan g(x))  f(x) = q(x) g(x) + r(x) verzameling van polynomen vormt met optelling en vermenigvuldiging van polynomen een commutatieve (polynomiale) ring met eenheidselement:  {R[x],+,×}, {Z p [x],+,×},…

62 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 62 Polynomen over veld F Bewerkingen op polynomen voorbeeld: (over {R,+,×})  f(x) = x 2 + 4g(x) = x 3 + 3x + 1  f(x) + g(x) = x 3 + x 2 + 3x + 5  f(x) × g(x) = x 2 × (x 3 + 3x + 1) + 4 × (x 3 + 3x + 1) = x 5 + 7x 3 + x x + 4 voorbeeld: (over GF(5))  f(x) = x 2 + 4g(x) = x 3 + 3x + 1  f(x) + g(x) = x 3 + x 2 + 3x  f(x) × g(x) = x 2 × (x 3 + 3x + 1) + 4 × (x 3 + 3x + 1) = x 5 + 2x 3 + x 2 + 2x + 4

63 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 63 Polynomen over veld F Delen van polynomen voorbeeld: (over {R,+,×})  f(x) = x 5 + 3x 4 + 7x 3 + x x + 4g(x) = 2x 3 + 6x +2 x 5 + 3x 4 + 7x 3 + x x + 4 x 5 + 3x 3 + x 2 3x 4 + 4x x + 4 3x 4 + 9x 2 + 3x 4x 3 – 9x 2 + 9x + 4 4x x + 4 – 9x 2 – 3x 2 x 3 + 6x + 2 r(x)r(x) q(x)q(x) 1/2 x 2 + 3/2 x+ 2

64 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 64 Polynomen over veld F Delen van polynomen voorbeeld: (over GF(5))  f(x) = x 5 + 3x 4 + 2x 3 + x 2 + 2x + 4g(x) = 2 x 3 + x + 2 x 5 + 3x 4 + 2x 3 + x 2 + 2x + 4 x 5 + 3x 3 + x 2 3x 4 + 4x 3 + 2x + 4 3x 4 + 4x 2 + 3x 4x 3 + x 2 + 4x + 4 4x 3 + 2x + 4 x 2 + 2x 2 x 3 + x + 2 r(x)r(x) q(x)q(x) 3 x 2 + 4x+ 2

65 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 65 Modulorekenen met polynomen Delen van polynomen over GF(p) f(x) = q(x) g(x) + r(x) te interpreteren als f(x) mod g(x) = r(x) als r(x) = 0, is g(x) een deler van f(x) polynoom van graad n (n > 0), die geen delers heeft van een graad n’ (n > n’ > 0) is een irreducibele polynoom  equivalent van een priemgetal voor polynomen  ook andere eigenschappen van gehele getallen te vertalen naar polynomen over GF(p): gcd, modulo- optelling, modulovermenigvuldiging,…

66 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 66 Veld GF(p n ) Nieuw eindig veld te definiëren verzameling van polynomen over GF(p) van graad kleiner of gelijk aan n–1, uitgerust met optelling en vermenigvuldiging modulo gegeven irreducibele polynoom (f(x) van graad n)  vormt een eindig veld: {Z p [x]/f(x),+,×} of GF(p n )  op isomorfisme na bestaat er slechts 1 veld met p n elementen  praktisch belangrijk: velden van het type GF(2 n ) (wegens mogelijke binaire voorstelling)

67 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 67 Veld GF(p n ) Berekeningen in GF(2 3 ) coëfficiënten in GF(2): 0 of 1 voorbeeld:f(x) = x 2 g(x) = x 2 + x + 1  irreducibele polynoom: x 3 + x (alle bewerkingen dus modulo deze polynoom) (verschillend van boek p. 155vv.: x 3 + x + 1)  f(x) + g(x) = x + 1 –optelling in GF(2) werkt als XOR-bewerking  f(x) × g(x) = x 2 × (x 2 + x + 1) mod (x 3 + x 2 + 1) = x 4 + x 3 + x 2 mod (x 3 + x 2 + 1) = x 4 + x 3 + x 2 + x × (x 3 + x 2 + 1) = x 2 + x

68 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 68 Veld GF(p n ) Berekeningen in GF(2 3 ) binaire voorstelling van elementen van GF(2 3 )  000 → 0001 → 1  010 → x011 → x + 1  100 → x → x  110 → x 2 + x111 → x 2 + x + 1 optelling: bitgewijze XOR op binaire representatie  = 100  111 = 011

69 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 69 Veld GF(p n ) Berekeningen in GF(2 3 ) vermenigvuldiging:  combinatie van –bitverschuivingen naar links »vermenigvuldiging met 010 van vorig resultaat –bitgewijze XOR met 3 minst significante bits van de binaire voorstelling van irreducibele polynoom (i.c. 1101) bij “overflow” –bitgewijze XOR van nodige tussenresultaten

70 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 70 Veld GF(p n ) Berekeningen in GF(2 3 ) vermenigvuldiging:  voorbeeld: –111 × 101 ? –111 × 001 = 111 –111 × 010 = 110  101 = 011(“overflow”) –111 × 100 = 110 (= 011 × 010)  111 × 101 = 111 × 001  111 × 100 = 111  110 = 001

71 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 71 Veld GF(p n ) Vermenigvuldigingstabel voor GF(2 3 ) irreducibele polynoom: x 3 + x × → 000 → 0 1 → 001 → 1 2 → 010 → x 3 → 011 → x → 100 → x 2 5 → 101 → x → 110 → x 2 + x 7 → 111 → x 2 + x + 1

72 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 72 Veld GF(p n ) Vermenigvuldigingstabel voor GF(2 3 ) irreducibele polynoom: x 3 + x verschillende tabel in boek p. 155, wegens andere irreducibele polynoom (x 3 + x + 1) wel te herleiden tot zelfde tabel  verwissel 2 en 3 en verwissel 4 en 5  andere representatie van zelfde veld GF(2 3 )  er bestaat immers een isomorfisme tussen alle eindige velden met hetzelfde aantal elementen

73 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 73 Polynomen over GF(p) Andere bewerkingen met polynomen grootste gemene deler voor polynomen  gcd(f(x), g(x)) = h(x)  h(x) polynoom van hoogste graad die f(x) én g(x) deelt bepalen gcd (variant van algoritme van Euclides)  steunt op gcd(f(x), g(x)) = gcd(g(x), f(x) mod g(x))  immers als f(x) mod g(x) = r(x), dan f(x) – q(x) g(x) = r(x) (voor zekere q(x))  en deler van zowel f(x) als g(x), is ook deler van f(x) – q(x) g(x)

74 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 74 Polynomen over GF(p) Bepalen gcd voor polynomen over GF(2) voorbeeld: berekening gcd(x 3 +1, x 2 +1) Ook andere algoritmen/bewerkingen aan te passen bepaling inverse in GF(p n ) machtsverheffing stelling van Fermat … gcd(x+1, 0)x 2 +1=(x+1)×(x+1)+0 gcd(x 2 +1, x+1)x 3 +1=x×(x 2 +1)+x+1 = x+1

75 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 75 Modulorekenen: vierkantswortels Vierkantswortels modulo n zoeken naar oplossingen x voor x 2 = a mod n  waarbij a  Z n * en x  Z n * als er oplossingen bestaan voor dit probleem noemen we a een kwadratisch residu modulo n (“quadratic residue”)  notatie: a  Q n in het andere geval is a een kwadratisch niet- residu (“quadratic non-residue”) mod n  notatie: a  Q n

76 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 76 Modulorekenen: vierkantswortels Vierkantswortels modulo n voor oneven priemgetallen p  (p–1)/2 kwadratische residu’s (en evenveel niet- residu’s)  elk kwadratisch residu heeft 2 vierkantswortels mod p voor n = p q (beide oneven priemgetallen)  (p–1) (q–1)/4 kwadratische residu’s  elk kwadratisch residu heeft 4 vierkantswortels mod n

77 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 77 Modulorekenen: vierkantswortels Vierkantswortels modulo n algemeen (voor product van machten van oneven priemgetallen)  elk kwadratisch residu heeft 2 k vierkantswortels mod n

78 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 78 Modulorekenen: vierkantswortels Legendre-symbool definitie (p oneven priemgetal) enkele eigenschappen = 0 als p|a = 1 als a  Q n =-1 als a  Q n

79 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 79 Modulorekenen: vierkantswortels Jacobi-symbool veralgemening van Legendre-symbool definitie (n oneven getal > 2) enkele eigenschappen

80 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 80 Modulorekenen: vierkantswortels Jacobi-symbool enkele eigenschappen (vervolg)  Jacobi-symbool is 1 voor alle kwadratische residu’s mod n…  …maar er bestaan kwadratische niet-residu’s waarvoor Jacobi-symbool ook 1 is praktische berekening (voor a=2 e a 1 )

81 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 81 Modulorekenen: vierkantswortels Berekening vierkantswortels mod p zoek x, zodat x 2 = a mod p (a  Q p ) geval p = 3 mod 4  voorbeeld: x 2 = 5 mod 19 –verifieer dat 5  Q 19 (bereken Legendre-symbool) –bereken 5 5 = 9 mod 19 –verifieer dat 9 2 = 5 mod 19 –de andere vierkantswortel van 5 mod 19 is 10

82 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 82 Modulorekenen: vierkantswortels Berekening vierkantswortels mod p geval p = 5 mod 8  voorbeeld: x 2 = 3 mod 13 –verifieer dat 3  Q 13 (bereken Legendre-symbool) –bereken d = 3 3 = 1 mod 13 –bereken x = 3 2 mod 13 = 9 mod 13 –verifieer dat 9 2 = 3 mod 13 –de andere vierkantswortel van 3 mod 13 is 4

83 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 83 Modulorekenen: vierkantswortels Berekening vierkantswortels mod p algemeen geval 1. verifieer dat a  Q p (bereken Legendre-symbool) 2. kies willekeurige b  Q p (1 ≤ b ≤ p–1) 3. bereken s, t: p–1=2 s t (met t oneven) 4. bereken a -1 mod p 5. stel c ← b t mod p en stel r ← a (t+1)/2 mod p 6. voor i gaande van 1 tot en met s–1 a)stel d ← (r 2 a -1 ) 2 s–i–1 mod p b)als d = p–1 stel r ← r c mod p c)stel c ← c 2 mod p 7. oplossingen zijn r en p–r

84 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 84 Modulorekenen: vierkantswortels Berekening vierkantswortels mod p algemeen geval  voorbeeld: x 2 = 2 mod 17 –verifieer dat 2  Q 17 (bereken Legendre-symbool) –kies b=3 (3  Q 17 ) –s=4 en t=1 (17–1=2 4  1) –2 -1 = 9 mod 17 –c←3 1 mod 17= en r←2 1 mod 17=2 –i=1: d←(2 2  9) 4 mod 17 = 16; r←2  3 mod 17 = 6; c←3 2 mod 17 = 9 –i=2: d←(6 2  9) 2 mod 17 = 1; c←9 2 mod 17 = 13 –i=3: d←(6 2  9) 1 mod 17 = 1; c←13 2 mod 17 = 16 –de vierkantswortels van 2 mod 17 zijn 6 en 11

85 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 85 Modulorekenen: vierkantswortels Berekening vierkantswortels mod p algemeen geval  alternatief als p–1=2 s t met s vrij groot 1. kies b, zodat (b 2 –4a)  Q p f(x)=x 2 –bx+a is een irreducibele polynoom over Z p 2. bereken in GF(p 2 ): r = x (p+1)/2 mod f(x) 3. oplossingen zijn r en p–r  voorbeeld: x 2 = 2 mod 17 –kies b = 1 (10  Q p ), zodat f(x)=x 2 –x+2 –bereken x 9 mod f(x) –x 2 mod f(x) = x+15x 4 mod f(x) = 14x+2 –x 8 mod f(x) = 14x+3x 9 mod f(x) = 6 –6 en 11 zijn de gezochte vierkantswortels

86 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 86 Factorisatie Factorisatietechnieken voor getal n klassieke factorisatie (“trial division”)  bereken rest bij deling door priemgetallen  ga lijst af van priemgetallen in stijgende volgorde (2,3,5,7,11,…)  grootste te testen priemgetal ≤ n 1/2  geschikt voor kleine getallen B-gladde getallen (“B-smooth”)  getallen waarvan alle priemfactoren kleiner zijn dan een zekere grens (“bound”) B

87 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 87 Factorisatie Factorisatietechnieken voor getal n  -algoritme van Pollard (“Pollard’s  algorithm”)  wanneer n geen macht is van een priemgetal  steunt op eigenschappen van random functies –gebruikte functie f(x)=x 2 +1 gedraagt zich ongeveer willekeurig in Z n

88 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 88 Factorisatie Factorisatietechnieken voor getal n  -algoritme van Pollard 1. stel a←2; b←2 2. voor i=1,2,3,… a)stel a←a 2 +1 mod n; b←b 2 +1 mod n; b←b 2 +1 mod n b)bereken d=gcd(a–b, n) c)als 1 < d < n return(d) d)als d = n: geen oplossing (herproberen met andere functie f(x)=x 2 +c; met c≠0 en c≠2)

89 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 89 Factorisatie Factorisatietechnieken voor getal n (p–1)-algoritme van Pollard (“Pollard’s p–1 algorithm”)  geschikt voor factorisatie van getallen met priemfactor p, waarvoor p–1 B-glad is

90 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 90 Factorisatie Factorisatietechnieken voor getal n (p–1)-algoritme van Pollard  beschouw Q product van alle (machten van) priemgetallen ≤ B  als p–1 B-glad is, dan moet (p–1)|Q  dit betekent dan ook dat  a. gcd(a, p)=1  a Q =1 mod p  als we dan d=gcd(a Q –1, n) berekenen, dan zal p|d  er ontstaat slechts een probleem als d = n (maar dit is niet waarschijnlijk als n minstens twee grote priemfactoren heeft)

91 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 91 Factorisatie Factorisatietechnieken voor getal n (p–1)-algoritme van Pollard 1. selecteer grens B 2. selecteer willekeurige a: 2 ≤ a ≤ n–1 bereken d=gcd(a, n), als d ≥ 2, return(d) 3. loop alle priemgetallen q ≤ B af a)bereken e =  lg n / lg q  b)stel a←a q e mod n 4. bereken d=gcd(a–1, n) 5. als d=1 of d=n komt er geen oplossing uit dit algoritme, anders is d een deler van n

92 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 92 Factorisatie Factorisatietechnieken voor getal n kwadratische zeef (“Quadratic Sieve”: QS)  basisprincipe –zoeken van koppels (r, s) zodat r 2 = s 2 mod n, waarbij r≠±s mod n »in dit geval zal n|(r–s)(r+s), maar niet n|(r–s) of n|(r+s) »dus zal gcd(r–s,n)≠1  rekentijd –bij optimale keuze van alle parameters stijgt de rekentijd als L n [1/2, 1]

93 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 93 Factorisatie Factorisatietechnieken voor getal n kwadratische zeef (“Quadratic Sieve”: QS)  probleem: –als de factorisatie van n niet gekend is, is het niet eenvoudig om dergelijke koppels te vinden  oplossing: –zoek eerst naar koppels (a i, b i ) waarvoor a i 2 = b i mod n –zoek dan naar b i die zelf kwadratisch residu is

94 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 94 Factorisatie Kwadratische zeef basisprincipe  beschouw factorenbasis (“factor basis”) S={p 1,p 2,…,p t }, verzameling van t eerste priemgetallen  zoek specifiek naar t+1 koppels (a i, b i ), waarbij b i p t -glad is –liefst kleine waarden voor b i »kan bekomen worden door kandidaat a i =(x+m) te kiezen met m=  (n) 1/2  »b i =q(x) met q(x)=(x+m) 2 –n ≈ x 2 +2mx ≪ n (voor kleine x), zodat de kans om een p t - gladde b i te vinden vrij groot is

95 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 95 Factorisatie Kwadratische zeef basisprincipe  zoek specifiek naar t+1 koppels (a i, b i ), waarbij b i p t -glad is –als b i p t -glad is, dan zal voor elke p  S: (x+m) 2 =n mod p, wat alleen mogelijk is als n  Q p »beperk de priemgetallen in S tot getallen waarvoor n  Q p »voeg ook -1 toe als eerste element voor S (voor negatieve b i )

96 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 96 Factorisatie Kwadratische zeef geschetst algoritme 1. kies S={p 1, p 2,…, p t } met p 1 =-1 en p j het (j–1) ste priemgetal waarvoor n  Q p 2. bereken m=  (n) 1/2  3. zoek naar t+1 koppels (a i, b i ) waarvoor a i 2 =b i mod n a)bepaal of kandidaat b i (=q(x)) p t -glad is –zie zeefproces hierna b)indien b i p t -glad is, bepaal factorisatie volgens priemgetallen van basis S van b i (a i =x+m) c)bepaal vectoren v i =(v i1, v i2,…, v it ) met v ij = e ij mod 2 (pariteit van de exponenten)

97 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 97 Factorisatie Kwadratische zeef geschetst algoritme 4. aan de hand van algebra over Z 2, zoek lineaire combinatie T  {1,2,…,t+1}, zodat  i  T v i =0 –in dit geval zal  i  T b i mod n een kwadratisch residu zijn mod n »exponenten in factorisatie van  i  T b i zijn bij constructie even 5. bereken r=  i  T a i en s=(  i  T b i ) 1/2 –de berekening van (  i  T b i ) 1/2 mod n is dan eenvoudig te bepalen (deel gewoon alle exponenten door 2)

98 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 98 Factorisatie Kwadratische zeef geschetst algoritme 6. als r=±s mod n, zoek andere T en ga naar stap 5; als er geen nieuwe T’s meer overblijven, vervang enkele koppels (a i, b i ) in stap 3 7. bereken d=gcd(r–s,n), return(d)

99 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 99 Factorisatie Kwadratische zeef selecteren van koppels (a i, b i ): zeefproces  voor elk oneven priemgetal uit S moet p|q(x) –maar dan is ook p|q(x+kp) –los q(x)=0 mod p op naar x (technieken voor vierkantswortels) »1 of 2 sequenties van waarden y, waarvoor p|q(y)

100 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 100 Factorisatie Kwadratische zeef selecteren van koppels (a i, b i ): zeefproces  gebruik rij Q[] met index x: -M ≤ x ≤ M –stel Q[x] ← q(x) –voor alle oneven p in S: »los q(x)=0 mod p op: x 1, x 2 »voor x van –M tot en met M: als x=x 1 mod p of x=x 2 mod p: stel Q[x] ← Q[x]/p –selecteer x-waarden waarvoor Q[x]=1 Q[x] ←  lg |q(x)|  Q[x] ← Q[x] –  lg p  test x-waarden waarvoor Q[x] ≈ 0 op p t -gladheid

101 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 101 Factorisatie Kwadratische zeef optimale keuze voor t en M:  t ≈ L n [1/2, 2 -3/2 ] –rekening houdend met de verdeling van p t -gladde getallen rond n 1/2  M ≈ t 3

102 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 102 Factorisatie Factorisatietechnieken voor getal n algemene getallenveldzeef  “General Number Field Sieve”: GNFS  rekentijd oplopend als L n [1/3, c] (met c=(64/9) 1/3 ≈1,923)  sneller dan QS voor getallen vanaf 110 decimale cijfers

103 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 103 Factorisatie Factorisatietechnieken voor getal n speciale getallenveldzeef  “Special Number Field Sieve”: SNFS  rekentijd oplopend als L n [1/3, c] (met c=(32/9) 1/3 ≈1,526)  alleen geschikt voor n = r e – s met r en |s| klein  in de toekomst misschien te veralgemenen voor andere getallen

104 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 104 Factorisatie Factorisatietechnieken voor getal n algoritme van Shor (Shor’s algorithm)  berust op quantum computing  tijdscomplexiteit is O((lg n)³)… –maakt alle cryptografie die berust op moeilijkheidsgraad factorisatie irrelevant  … maar het is tot nu toe onhaalbaar gebleken een kwantumcomputer te bouwen met een registergrootte van voldoende aantal verstrengelde qubits (entangled qubits) –state-of-the-art: factorisatie van 21 (!!!)

105 Elliptische krommen Elliptische krommen (elliptic curves)  met zo weinig mogelijk wiskunde… canonische vorm  y² = x³ + a x + b  te definiëren over willekeurig veld F –i.e. x, y, a en b zijn elementen van F en alle bewerkingen gebeuren in F –punten van de kromme zijn koppels (x, y) die aan vergelijking voor kromme voldoen voor cryptografie interessant  elliptische krommen over eindige velden –GF(p) –GF(2 n ) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 105

106 Elliptische krommen Definiëren optelling (grafisch) voor elliptische krommen over ℝ  punt op oneindig als neutraal element  tegengesteld punt als invers element  vormt Abelse groep Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 106 Bron: Wikipedia

107 Elliptische krommen Elliptische krommen over eindig veld F canonische vorm  y² = x³ + a x + b eindig aantal punten (x,y) die aan vergelijking voldoen  met x en y elementen uit F  aantal punten ongeveer gelijk aan aantal elementen van F optelling ook hierover te definiëren  hergebruik van formules voor optelling bij elliptische krommen over ℝ  vormt ook hier Abelse groep Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 107

108 Elliptische krommen Elliptische krommen over eindig veld F optelling over elliptische kromme (over F) te vergelijken met vermenigvuldiging over GF(p)  scalaire vermenigvuldiging van een punt P op de elliptische kromme met een natuurlijk getal k komt overeen met  machtsverheffing van een getal uit GF(p) tot de macht k  ook andere concepten over te nemen –orde van een punt op een elliptische kromme –generator voor een elliptische kromme –discrete logaritmen op een elliptische kromme Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 108

109 Elliptische krommen Elliptische krommen over eindig veld F discrete-logaritmenprobleem (DLP)  gegeven P en k P  bepaal hieruit k  moeilijk op te lossen probleem –een beetje zoals DLP over GF(p) »k bepalen uit a en a k mod p –complexiteit van de beste oplossingstechnieken is O(q 1/2 ) »q: aantal elementen van elliptische kromme  gebruikt in cryptografie –digitale handtekeningen –sleuteluitwisseling op basis van Diffie-Hellman Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN) p. 109


Download ppt "Wiskundige basis Cursus informatiebeveiliging Eric Laermans – Tom Dhaene."

Verwante presentaties


Ads door Google