De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Cursus informatiebeveiliging Eric Laermans – Tom Dhaene

Verwante presentaties


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

1 Cursus informatiebeveiliging Eric Laermans – Tom Dhaene
Wiskundige basis Cursus informatiebeveiliging Eric Laermans – Tom Dhaene

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 Enkele voorbeelden van de verschillende mogelijke “grootten” voor eenzelfde invoer. Een eerste voorbeeld is een (groot) natuurlijk getal n als invoerparameter: op basis van het aantal bits: lg n op basis van het getal zelf: n Een ander voorbeeld is een probleem dat als invoer een m×m-matrix van natuurlijke getallen ≤ n. op basis van het aantal bits: m2 lg n op basis van het aantal getallen: m2 op basis van het aantal rijen van deze vierkante matrix: m (lg n = log2 n: de logaritme in basis 2 van n) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

4 Asymptotische bovengrens (upper bound)
Complexiteit Asymptotische bovengrens (upper bound) notatie: f(n) = O(g(n)) ∃c:ℝ>0. ∃n0:ℕ.∀n:ℕ. n  n0 ⇒ 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: f1(n) = O(g1(n))  f2(n) = O(g2(n))  (f1 + f2)(n) = O((g1 + g2)(n))  (f1  f2)(n) = O((g1  g2)(n)) De gebruikte logische notatie is deze van Funmath (ook gebruikt in de cursus formele systeemmodellering voor software) Enkele afspraken: we veronderstellen dat parameters c, n, n0, alle strikt positieve getallen zijn we veronderstellen even ook dat de functies f, g, eveneens strikt positieve waarden aannemen Universele en existentiële kwantoren: a : S. (logische uitdrukking) dit betekent dat deze logische uitdrukking geldig is voor alle waarden van de veranderlijke a in een verzameling S a : S. (logische uitdrukking) dit betekent dat er waarden van de veranderlijke a in een verzameling S bestaan waarvoor deze logische uitdrukking geldig is a : S. b : T. (logische uitdrukking) dit betekent dat voor alle waarden van a (in S) er waarden van b (in T) bestaan waarvoor deze logische uitdrukking geldig is a : S. b : T. (logische uitdrukking) dit betekent dat er waarden van a (in S) bestaan, zodat voor alle waarden van b (in T) deze logische uitdrukking geldig is Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

5 Asymptotische ondergrens (lower bound)
Complexiteit Asymptotische ondergrens (lower bound) notatie: f(n) = W(g(n)) ∃c:ℝ>0. ∃n0:ℕ.∀n:ℕ. n  n0 ⇒ 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) = W(g(n))  g(n) = O(f(n)) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

6 Strikte asymptotische begrenzing (tight bound)
Complexiteit Strikte asymptotische begrenzing (tight bound) notatie: f(n) = (g(n)) ∃c1:ℝ>0. ∃c2:ℝ>0. ∃n0:ℕ. ∀n:ℕ. n  n0 ⇒ c1·g(n) ≤ f(n) ∧ f(n) ≤ c2·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 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

7 Complexiteit o-notatie notatie: f(n) = o(g(n))
∀c:ℝ>0. ∃n0:ℕ.∀n:ℕ. n  n0 ⇒ 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) Praktisch zullen we vooral geïnteresseerd zijn in: f(n) = O(g(n)) of f(n) = (g(n)), waarbij de begrenzing niet wiskundig strikt hoeft te zijn, maar gewoon voldoende strikt voor praktische “ingenieursdoeleinden” (we zeggen dan dat f(n) van de grootteorde is van g(n)) f(n) = o(g(n)), waarbij we f(n) kunnen verwaarlozen t.o.v. g(n) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

8 Te onthouden (voor grote n):
Complexiteit Enkele voorbeelden: logc n = (ln n) = (lg n) f(n) polynoom van graad k  f(n) = (nk) n! = (2pn)1/2(n/e)n (1+(1/n)) n! = o(nn) lg(n!) =  (n lg n) Te onthouden (voor grote n): 1 < ln (ln n) < ln n < exp[{(ln n) ln(ln n)}1/2] < ne <… …< nc < nln n < cn < n! < nn < ccn (waarbij 0 < e < 1 < c) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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(nk) “efficiënte” algoritmen exponentiële rekentijd: niet-polynomiale rekentijd subexponentiële rekentijd: nodige rekentijd is eo(n) de mildste niet-polynomiale algoritmen Merk op dat een algoritme met polynomiale tijdscomplexiteit praktisch niet altijd bruikbaar zal zijn, bv. als de constante k te groot wordt, terwijl bepaalde algoritmen met subexponentiële tijdscomplexiteit wél nog haalbare rekentijden opleveren, althans voor niet al te grote waarden van n. Een voorbeeld hiervoor is een eerste algoritme met een tijdscomplexiteit van O(n100), vergeleken met een ander algoritme met complexiteit O(nlg(lg n)). Voor niet al te grote n zal dit laatste algoritme meestal een stuk efficiënter blijken, hoewel het niet polynomiaal is. Wat ook een rol kan spelen is de voorfactor c uit de definities van O(…) e.d. Een asymptotisch beter algoritme zal dus in de praktijk niet altijd echt beter werken. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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) Lq[a,c] = O(exp[(c+o(1)) (ln q)a (ln ln q)1–a)]) geval a = 0 (Lq[0,c]) polynomiaal in ln q geval a = 1 (Lq[1,c]) volledig exponentieel in ln q andere waarden voor a (Lq[a,c]) sub-exponentieel in ln q Algoritmen waarvan de complexiteit in de tijd te schrijven is als Lq[,c] (voor verschillende waarden van  of c) komen voor bij de factorisatie van het product van twee grote priemgetallen, of bij de berekening van discrete logaritmen. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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 Het certificaat dat nodig is om het ja-antwoord van een NP-beslissingsprobleem te verifiëren in polynomiale tijd is niet noodzakelijk gemakkelijk te verkrijgen. Veel berekeningsproblemen hebben als tegenhanger een beslissingsprobleem. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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 De deler van het te testen getal is het certificaat voor de verificatie dat dit getal samengesteld is. Er zijn vandaag geen algoritmen gekend die toelaten een dergelijk certificaat in polynomiale tijd te berekenen. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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

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: L1 ∈ NPC ≡ L1 ∈ NP ∧ ∀L: NP. L ≤P L1 dit zijn de moeilijkste problemen binnen NP voorbeeld: gegeven verzameling natuurlijke getallen {a1,a2,…, an} en een natuurlijk getal s bepaal of s kan geschreven worden als een som van elementen uit deze verzameling Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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: L1 is NP-moeilijk ≡ ∃L: NPC. L ≤P L1 alle NP-complete problemen zijn NP-moeilijk Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

19 Priemgetallen Priemgetallen korte herhaling a | b priemgetal p
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) Stilzwijgend wordt hier verondersteld dat alle getallen natuurlijke getallen zijn. De uitbreiding naar gehele getallen vergt slechts een kleine moeite, maar is niet bijzonder nuttig voor de toepassingen die we hier beschouwen. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

21 Priemgetallen 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 p(n): aantal priemgetallen ≤ n De verdeling van priemgetallen voor grote waarden van n (bv. n > 2100) impliceert dat als men een groot, willekeurig getal selecteert rond n, de waarschijnlijkheid dat men een priemgetal gekozen heeft niet gering is. De probabiliteit is ongeveer 1/ln(n). Voor n=2512 is deze probabiliteit ongeveer 1 op 355. Gelet op het feit dat we a priori alle getallen eindigend op 0, 2, 4, 5, 6 of 8 kunnen uitsluiten, kunnen we de praktische waarschijnlijkheid zelfs opkrikken naar 1 op 142. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

22 Modulorekenen 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 De complexiteit van de geheeltallige deling (en dus ook van de berekening van a mod n) is O((lg n)2) bitbewerkingen. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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 De complexiteit van optelling en aftrekking mod n is O(lg n) bitoperaties. De complexiteit van vermenigvuldiging en deling mod n is normaal O((lg n)2) bitoperaties (al is het in hardware mogelijk om door parallellisatie de complexiteit van de modulaire vermenigvuldiging te herleiden naar O(lg n) als men met O(lg n) “carry-save adders” werkt). Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

24 Modulorekenen Bewerkingen machtsverheffing
volkomen analoog aan machtsverheffing voor gewone getallen ak = a × a ×  × a (mod n) (k–1 vermenigvuldigingen) De complexiteit van de machtsverheffing mod n is O(lg k) maal de complexiteit van een modulaire vermenigvuldiging. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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

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

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

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 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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

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(828,391) 2047=2× gcd(391,46) 828=2×391+46 De complexiteit van het algoritme van Euclides is O((lg n)2) bitoperaties, waarbij n het grootste getal van a en b is. gcd(46,23) 391=8×46+23 gcd(23,0) 46=2×23+0 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

34 Modulorekenen: inverse berekenen
Berekening inverse voor vermenigvuldiging gezocht (a-1): nb +a(a-1)=1 (als gcd(n, a) = 1) nA1+aA2=A3 nB1+aB2=B3 n(A1–qB1)+a(A2–qB2)=r start met A1 = B2 = 1 en A2 = B1 = 0 laatste stap als r = 1 (oplossing)… …of als r = 0 (geen oplossing) -q× A3 = qB3+r Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

35 Modulorekenen: inverse berekenen
Berekening inverse voor vermenigvuldiging voorbeeld: 79-1 mod 223 =48 A3 = qB3+r 223×1+79×0=223 n(A1–qB1)+a(A2–qB2)=r 223×0+79×1=79 223=2×79+65 223×1+79×(-2)=65 79=1×65+14 -2=0-2×1 1=1-2×0 223×(-1)+79×3=14 65=4×14+9 3=1-1×(-2) -1=0-1×1 223×5+79×(-14)=9 14=1×9+5 -14=-2-4×3 5=1-4×(-1) 223×(-6)+79×17=5 9=1×5+4 17=3-1×(-14) -6=-1-1×5 De complexiteit van het algoritme voor de berekening van de inverse mod n is O((lg n)2) bitoperaties. 223×11+79×(-31)=4 5=1×4+1 -31=-14-1×17 11=5-1×(-6) 223×(-17)+79×48=1 48=17-1×(-31) -17=-6-1×11 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

37 Modulorekenen: CRT Chinese reststelling
bewerkingen mod M vertaald naar bewerkingen mod mi: S = (A + B) mod M si = (ai + bi ) mod mi P = (A × B) mod M pi = (ai × bi ) mod mi Q = (A / B) mod M qi = (ai / bi ) mod mi overgang van coëfficiënten ai naar getal A: stel Mi = M / mi ci = Mi ×((Mi)-1 mod mi) Bij de quotiëntberekening is het wel nodig dat gcd(B,M) = 1, wat ook impliceert dat gcd(bi, mi) = 1 (voor alle waarden van de index i). Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

39 Modulorekenen: CRT Chinese reststelling voorbeeld
M = 43 × 37 = A = 635 B = 347 m1 = 43 m2 = 37 bereken (A × B) mod 1591 a1 = A mod 43 = 33 a2 = A mod 37 = 6 b1 = B mod 43 = 3 b2 = B mod 37 = 14 (A × B) mod 43 = 13 (A × B) mod 37 = 10 M1 = 37 M2 = 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 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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

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

43 Totiëntfunctie van Euler
Modulorekenen: Euler Totiëntfunctie van Euler voorbeelden: totiëntfunctie relatieve priemgetallen f(7) = 7 – 1 = 6 {1, 2, 3, 4, 5, 6} f(6) = f(2) × f(3) = 2 {1, 5} f(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 Zn* is f(n) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

44 Modulorekenen: Euler Stelling van Euler af(n) = 1 mod n voorbeeld:
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 = 2 n = 9 (dus f(n) = 6) 26 = 1 mod 9 “tegenvoorbeeld”: a = 6 n = 8 (dus f(n) = 4) 64 = 0 mod 8 alternatieve formulering: af(n)+1 = a mod n waarbij a en n onderling priem zijn Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

45 Modulorekenen: Euler Stelling van Euler
uitbreiding voor n = p q (p en q priem) af(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: akf(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: Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

46 Test voor priemgetallen
Miller-Rabin-test voor priemgetallen testen of gegeven getal n priemgetal is als n priemgetal is, zal an–1 = 1 mod n voor alle waarden van a (behalve veelvouden van n) wegens stelling van Fermat dus als we een a vinden, waarvoor an–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 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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 De complexiteit van de voorgestelde Miller-Rabin-test is O(t (lg n)3) bitbewerkingen. We nemen aan dat het aantal bitbewerkingen voor een vermenigvuldiging of kwadratering mod n van de orde O((lg n)2) is. Als de “Extended Riemann Hypothesis” waar is, zou voor een samengesteld getal n de kleinst mogelijke waarde van a die aangeeft dat n inderdaad samengesteld is, kleiner moeten zijn dan 2(ln n)2. Onder deze hypothese kunnen we dus t kleiner kiezen dan 2(ln n)2 en alle mogelijke waarden voor a (<2(ln n)2) testen. De test wordt dan deterministisch met een totale complexiteit van O((lg n)5) bitoperaties. Een algemene deterministische test zoals de test van Atkin heeft een complexiteit van O((lg n)6+) bitoperaties. Voor zogeheten Mersenne-priemgetallen (van de vorm n=2s–1) bestaan er een betere test, met een complexiteit van slechts O((lg n)3) bitoperaties, maar de test is geenszins te veralgemenen naar andere priemgetallen. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

49 Modulorekenen: discrete logaritmen
Orde van a modulo n gezocht kleinste m, zodat am = 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: ak (met 1 ≤ k ≤ m) is verschillend als m = f(n), is a een primitieve wortel van n als n = p (een priemgetal), dan wordt a een generator van de cyclische groep {Zp*,×} elke waarde van Zp* is dan gelijk aan een bepaalde macht van a meer algemeen is a een generator van de cyclische groep {Zn*,×} Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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

52 Modulorekenen: discrete logaritmen
inverse probleem van de machtsverheffing in modulorekenen zoek x waarvoor ax = 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 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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

55 Modulorekenen: 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 1014C voor p ongeveer (C ≈ 1,923) (meer info op: Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

56 Modulorekenen: discrete logaritmen
ook te definiëren in deelgroepen van {Zp*,×} beschouw priemgetal q met q|(p–1) er bestaat in {Zp*,×} 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 ax = b mod p complexiteit van de beste oplossingstechnieken O(q1/2) of Lp[1/3, C] (met C ≈ 1,923) voor goed gekozen q niet eenvoudiger dan traditioneel probleem basis voor DSA Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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

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(pn): coëfficiënten kunnen dan zelf voorgesteld worden als polynomen over GF(p) (zie verder) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

60 Bewerkingen op polynomen
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 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

61 Bewerkingen op polynomen
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],+,×}, {Zp[x],+,×},… Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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

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

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,… Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

66 Nieuw eindig veld te definiëren
Veld GF(pn) 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: {Zp[x]/f(x),+,×} of GF(pn) op isomorfisme na bestaat er slechts 1 veld met pn elementen praktisch belangrijk: velden van het type GF(2n) (wegens mogelijke binaire voorstelling) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

68 Veld GF(pn) Berekeningen in GF(23)
binaire voorstelling van elementen van GF(23) 000 → → 1 010 → x 011 → x + 1 100 → x → x2 + 1 110 → x2 + x 111 → x2 + x + 1 optelling: bitgewijze XOR op binaire representatie = 100  111 = 011 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

69 Veld GF(pn) Berekeningen in GF(23) 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 De complexiteit van een dergelijke implementatie van de optelling in GF(2n) is O(n) bitoperaties. Voor de hier voorgestelde implementatie van de vermenigvuldiging is de complexiteit O(n2) bitoperaties (n bitverschuivingen: O(n) — maximaal n tussentijdse XOR-bewerkingen: O(n2) — maximaal n finale XOR-bewerkingen O(n2)). Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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

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

73 Andere bewerkingen met polynomen
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) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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

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 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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

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

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=2ea1) De praktische berekening van het Jacobi-symbool op basis van de hier gegeven eigenschap kan in O((lg n)2) bitoperaties gebeuren (pas de bovenstaande techniek toe tot a1 tot 1 herleid is). Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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

83 Modulorekenen: vierkantswortels
Berekening vierkantswortels mod p algemeen geval verifieer dat aQp (bereken Legendre-symbool) kies willekeurige bQp (1 ≤ b ≤ p–1) bereken s, t: p–1=2st (met t oneven) bereken a-1 mod p stel c ← bt mod p en stel r ← a(t+1)/2 mod p voor i gaande van 1 tot en met s–1 stel d ← (r2 a-1)2s–i–1 mod p als d = p–1 stel r ← r c mod p stel c ← c2 mod p oplossingen zijn r en p–r Als s niet te groot is, is de complexiteit van dit algoritme O((lg p)3) bitoperaties (stap 6.1 is de meest tijdrovende). Dit is ook de complexiteit van de algoritmen voor de speciale gevallen (p = 3 mod 4 of p = 5 mod 8). In het slechtste geval (p = 2s+1) kan het algoritme echter een complexiteit van O((lg p)4) bitbewerkingen vertonen. Voor het geval dat s te groot wordt, kan men overschakelen naar een ander algoritme (zie verder). Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

85 Modulorekenen: vierkantswortels
Berekening vierkantswortels mod p algemeen geval alternatief als p–1=2st met s vrij groot kies b, zodat (b2–4a)Qp f(x)=x2–bx+a is een irreducibele polynoom over Zp bereken in GF(p2): r = x(p+1)/2 mod f(x) oplossingen zijn r en p–r voorbeeld: x2 = 2 mod 17 kies b = 1 (10Qp), zodat f(x)=x2–x+2 bereken x9 mod f(x) x2 mod f(x) = x+15 x4 mod f(x) = 14x+2 x8 mod f(x) = 14x+3 x9 mod f(x) = 6 6 en 11 zijn de gezochte vierkantswortels De complexiteit van dit algoritme is O((lg p)3) bitbewerkingen. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

86 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 ≤ n1/2 geschikt voor kleine getallen B-gladde getallen (“B-smooth”) getallen waarvan alle priemfactoren kleiner zijn dan een zekere grens (“bound”) B De complexiteit van het algoritme voor klassieke factorisatie is O(n1/2) delingen in het slechtste geval. In het meest algemene geval is de complexiteit O(p) delingen met p het kleinste priemgetal dat n deelt, om deze eerste deler te vinden. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

88 Factorisatietechnieken voor getal n
r-algoritme van Pollard stel a←2; b←2 voor i=1,2,3,… stel a←a2+1 mod n; b←b2+1 mod n; b←b2+1 mod n bereken d=gcd(a–b, n) als 1 < d < n return(d) als d = n: geen oplossing (herproberen met andere functie f(x)=x2+c; met c≠0 en c≠2) De complexiteit van dit algoritme is O(n1/4) modulaire vermenigvuldigingen, of ongeveer O(p1/2) met p een priemfactor van n. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

89 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 Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

90 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aQ=1 mod p als we dan d=gcd(aQ–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) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

92 Factorisatietechnieken voor getal n
kwadratische zeef (“Quadratic Sieve”: QS) basisprincipe zoeken van koppels (r, s) zodat r2 = s2 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 Ln[1/2, 1] De techniek van de kwadratische zeef werd in 1994 met succes gebruikt voor het kraken van de oude “RSA-129 challenge” (RSA met getal n van 129 decimale cijfers). De nodige rekentijd was 6 maand op een 600-tal computersystemen, goed voor 5000 mips-jaar berekeningen. In 1977 had Rivest de nodige tijd voor de factorisatie van een product van twee priemgetallen van 63 decimale cijfers geschat op 4×1016 jaar (enkele miljoenen maal de leeftijd van ons universum…). Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

93 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 (ai, bi) waarvoor ai2 = bi mod n zoek dan naar bi die zelf kwadratisch residu is Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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

96 Factorisatie Kwadratische zeef geschetst algoritme
kies S={p1, p2,…, pt} met p1=-1 en pj het (j–1)ste priemgetal waarvoor nQp bereken m=(n)1/2 zoek naar t+1 koppels (ai, bi) waarvoor ai2=bi mod n bepaal of kandidaat bi (=q(x)) pt-glad is zie zeefproces hierna indien bi pt-glad is, bepaal factorisatie volgens priemgetallen van basis S van bi (ai=x+m) bepaal vectoren vi=(vi1, vi2,…, vit) met vij = eij mod 2 (pariteit van de exponenten) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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

99 Factorisatie Kwadratische zeef
selecteren van koppels (ai, bi): 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) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

100 Factorisatie Kwadratische zeef
selecteren van koppels (ai, bi): 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: x1, x2 voor x van –M tot en met M: als x=x1 mod p of x=x2 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 pt-gladheid Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

102 Factorisatietechnieken voor getal n
algemene getallenveldzeef “General Number Field Sieve”: GNFS rekentijd oplopend als Ln[1/3, c] (met c=(64/9)1/3≈1,923) sneller dan QS voor getallen vanaf 110 decimale cijfers De techniek van de algemene getallenveldzeef werd in 1996 met succes gebruikt voor het kraken van de oude “RSA-130 challenge” (RSA met getal n van 130 decimale cijfers). De nodige rekentijd was ongeveer 1000 mips-jaar berekeningen (dus 5 maal minder dan voor de oude “RSA-129 challenge” m.b.v. QS). Intussen is het record enigszins geëvolueerd. In december 2003 sneuvelde de nieuwe “RSA-576 challenge” (174 decimale cijfers). In november 2005 slaagde men in de factorisatie van de nieuwe “RSA-640 challenge” (RSA met getal n van 640 bits of 193 decimale cijfers), maar voordien was ook al de oude “RSA-200 challenge” gefactoriseerd in mei 2005 (het kraken van de nieuwe “RSA-640 challenge” was dus slechts een heel betrekkelijke mijlpaal). De volgende stap had de nieuwe “RSA-704 challenge” (212 decimale cijfers) moeten zijn. Alleen heeft RSA Laboratories in 2007 besloten deze challenges stop te zetten. Dit belet niet dat onderzoekeres nog steeds verder zoeken en op 12 december 2009 slaagde een groep onderzoekers in de factorisatie van de “RSA-768” challenge (232 decimale cijfers). De benodigde rekentijd werd geschat op 2000 jaar rekentijd van een single core 2.2GHz AMD Opteron. Meer details vindt u op . Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

104 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 (!!!) De factorisatie van 21 is een doorbraak van Het vorige record uit 2001 was 15. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

105 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(2n) Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

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

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

108 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 De complexiteit voor het berekenen van een optelling op een elliptische kromme is in software O((lg q)²) met q het aantal elementen van de kromme. Dit is dus vergelijkbaar met de kost van een modulaire vermenigvuldiging over Zq. Het verschil is echter dat de voorfactor een paar grootteordes groter is voor de optelling op een elliptische kromme. De scalaire vermenigvuldiging over elliptische krommen heeft een complexiteit evenredig met het aantal bits van k maal de complexiteit van een optelling op deze kromme. Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)

109 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 ak mod p complexiteit van de beste oplossingstechnieken is O(q1/2) q: aantal elementen van elliptische kromme gebruikt in cryptografie digitale handtekeningen sleuteluitwisseling op basis van Diffie-Hellman Het record voor het oplossen van het ECDLP (Elliptic Curve Discrete Logarithm Problem) is sinds juli 2009 voorlopig 112 bits. Dit vergde ongeveer een half jaar rekentijd op een cluster van 200 PlayStation-3-spelconsoles. Meer details op . Informatiebeveiliging Department of Information Technology – Internet Based Communication Networks and Services (IBCN)


Download ppt "Cursus informatiebeveiliging Eric Laermans – Tom Dhaene"

Verwante presentaties


Ads door Google