1 / 58

I campi finiti

I campi finiti. Cap. 4 Crittografia e sicurezza delle reti William Stallings. I campi finiti.

Download Presentation

I campi finiti

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. I campi finiti Cap. 4 Crittografia e sicurezza delle reti William Stallings

  2. I campi finiti The next morning at daybreak, Star flew indoors, seemingly keen for a lesson. I said, "Tap eight." She did a brilliant exhibition, first tapping it in 4, 4, then giving me a hasty glance and doing it in 2, 2, 2, 2, before coming for her nut. It is astonishing that Star learned to count up to 8 with no difficulty, and of her own accord discovered that each number could be given with various different divisions, this leaving no doubt that she was consciously thinking each number. In fact, she did mental arithmetic, although unable, like humans, to name the numbers. But she learned to recognize their spoken names almost immediately and was able to remember the sounds of the names. Star is unique as a wild bird, who of her own free will pursued the science of numbers with keen interest and astonishing intelligence. — Living with Birds, Len Howard

  3. I campi finiti Gli algoritmi che implementano i sistemi crittografici moderni si basano su modelli matematici.

  4. Introduzione ◘ Campi finiti ◘ Concetti di importanza crescente in criptografia (AES, Curva ellittica, IDEA, Chiavi pubbliche) ◘ Concetti di gruppo, anello, campo propri dell’algebra astratta ◘ Riguardano operazioni sui numeri dove però ciò che costituisce un numero e il tipo di operazioni varia considerevolmente

  5. Gruppi • Un insieme non vuoto G di elementi • Sul quale sono definite alcune operazioni I cui risultati fanno parte dell’insieme (chiusura) • vale: • Legge associativa: (a◦b)◦c = a◦(b◦c) • Elemento neutro e: e◦a = a◦e = a • Esistenza inversi a-1: a◦a-1=a-1◦a=e • se vale la proprietà commutativa a◦b = b◦a • Allora forma un gruppoabeliano

  6. Gruppi ciclici • definisce l’exponenziazione come l’applicazione ripetuta di un operatore • esempio: an = a.a.a…a • L’identità come: e=a0 • Un gruppo è ciclico se ogni elemento si ottiene come potenza di un prefissato elemento detto generatore • cioè b =ak, dove a e b sono elementi del gruppo • un gruppo ciclico è sempre abeliano n volte

  7. Anelli • Un anello R, denotato da (R, +, , 0, 1), è una struttura algebrica formata da: • un insieme R di elementi • un’operazione binaria + : R x R  R (somma) • un’operazione binaria  : R x R  R (prodotto)

  8. Anelli Valgono le seguenti proprietà: • (R, +, 0) è un gruppo abeliano • chiusura per  : se a, b  R, allora anche a  b  R • associativa per  : •  a, b, c  R, (a  b)  c = a  (b  c) • distributive:  a, b, c  R, • a  (b + c) = a  b + a  c, (a + b)  c = a  c + b  c Un anello è un insieme in cui si possono eseguire la somma , la sottrazione e la moltiplicazione senza uscire dall’insieme stesso

  9. Anelli Esempi • Gli insiemi Z,Q,R,C sono anelli • l’insieme di tutte le matrici quadrate di ordine n, ad elementi reali, è un anello (rispetto alla somma e alla moltiplicazione tra matrici) • L’insieme di tutti gli interi dispari non è un anello R è commutativo (abeliano) se: • a, b  R vale a  b = b  a • L’insieme di tutti gli interi pari è un anello commutativo • l’anello di matrici di cui sopra non è commutativo

  10. Dominio integrale Un dominio integrale è un anello commutativo R che soddisfa i seguenti assiomi: identità moltiplicativa:  1  R tale che  a  R vale a  1 = 1  a = a assenza di divisori dello zero: se a, b  R e a  b = 0, allora a = 0 oppure b = 0

  11. Campi Un campo F, denotato da (F, +, , 0, 1), è un dominio integrale che soddisfa il seguente assioma: inverso moltiplicativo:  a  F, a  0,  a-1  F tale che a  a-1 = a-1  a = 1 In crittografia si lavora in campi finiti si può definire la sottrazione come:  a, b  F, a – b = a + (-b) si può definire la divisione come:  a, b  F, a / b = a  b-1 esempi: (, +, , 0, 1), (, +, , 0, 1) e (, +, , 0, 1) sono campi (infiniti). (, +, , 0, 1) è un dominio integrale ma non è un campo

  12. Gruppi, Anelli, Campi (A1) Chiusura per addizione (A2) Associatività addizione (A3)Elemento neutro addizione (A4)Esistenza inversi additivi (A5) Commutatività addizione (M1) Chiusura per moltiplicazione (M2)Associatività moltiplicazione (M3) Proprietà distributive (M4) Commutatività moltiplicazione (M5) Elemento neutro moltiplicativo (M6) Assenza divisori dello 0 (M7)Esistenza inversi moltiplicativi Campo

  13. Sia n un intero positivo ogni intero a, diviso per n, produce un quoziente q e un resto r tali che: a=qn+r 0≤r<|n| r a volte viene chiamato residuo definiamo a mod n come il resto della divisione tra a ed n dati a, b  , b  0, si dice che b divide a (b|a) se  m   tale che a = mb Aritmetica modulare

  14. Modulo 7 Example ... -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ...

  15. Congruenze modulo n • due interi a e b sono detti congrui modulo n| a-b. Si scrive a  b mod n • esempi: • 73  4 mod 23 21  -9 mod 10 • una proprietà dell’operatore mod: • a  b mod n e b  c mod n implicano • a  c mod n • l’operatore mod n mappa  in n = {0,1,2,…,n-1}

  16. Divisori • Un numero non-nullo bdividea se esiste un m tale che a=mb (a,b,m interi) • Ossia se b divide a senza resto • Si indica con la notazione b|a • Valgono le relazioni: • Se a|1 (a divide 1, cioè a divisore di 1) allora a= ±1 • Se a|b e b|a allora a= ±b • Qualsiasi b0 divide 0 • Se b|g e B|h allora b|(mg+nh) per m ed n interi arbitrari

  17. Operazioni dell’aritmetica modulare Per l’insieme n degli interi non negativi minori di n ( detto l’insieme delle classi di resto modulo n) valgono le seguenti proprietà: • [(a mod n) + (b mod n)] mod 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 = (a  b) mod n • quindi, possiamo definire somme, sottrazioni e prodotti in n • possiamo definire anche l’esponenziazione: • (a mod n)0 = 1 (a mod n)k = akmod n

  18. Operazioni dell’aritmetica modulare Dimostrazione della proprietà 1

  19. Classi di resto mod n Più precisamente, gli elementi di n sono le classi di resto [0]n, [1]n, …, [n-1]n, dove: [r]n = {a | a  r mod n} • Per rappresentare una classe di resti si sceglie il più piccolo tra gli interi della classe di resto • La ricerca del più piccolo intero non negativo al quale k è congruente modulo n si dice riduzione di k modulo n.

  20. Aritmetica modulare Esempio: le classi di equivalenza (resto) modulo 4 [0]4 = {…, -16, -12, -8, -4, 0, 4, 8, 12, 16, …} [1]4 = {…, -15, -11, -7, -3, 1, 5, 9, 13, 17, …} [2]4 = {…, -14, -10, -6, -2, 2, 6, 10, 14, 18, …} [3]4 = {…, -13, -9, -5, -1, 3, 7, 11, 15, 19, …}

  21. Aritmetica modulare L’aritmetica modulare in Zn = {0, 1, … , n-1} soddisfa le proprietà: • commutative (w+x)mod n=(x+w)mod n (wx)mod n=(x w) mod n • associative [(w+x)+y]mod n=[w+(x+y)]mod n [(wx)  y]mod n=[w (x y)] mod n

  22. Aritmetica modulare • Distributive [w (x+y)]mod n=[(w+(x+y)]mod n [w +(x  y)]mod n=[(w +x)(w+y)]mod n • Identità (0+w)mod n=w mod n (1 w)mod n=w mod n • inverso additivo Per ogni w  Zn, esiste z tale che w+z0 (mod n) Zn è un anello commutativo

  23. Aritmetica modulare • se (a+b)≡(a+c) mod n allora b≡c mod n • ma (ab)≡(ac) mod n allora b≡c mod n se e solo se a è relativamente prime a n • Due interi sono primi relativi l’unico fattore intero positivo che hanno in comune è 1.

  24. Somma modulo 8 Esempio

  25. prodotto modulo 8 Esempio

  26. Inversi additivi e moltiplicativi 8 Esempio In generale si ha un inverso moltiplicativo in Zn se tale intero è primo relativo di n

  27. Greatest Common Divisor (GCD) [Massimo comune divisore] • Il GCD (a,b) è il più grande numero che divide • sia a che b • p.e. gcd(60,24) = 12 • L’intero c è il massimo comune divisore di a e di b se • c è un divisore di a e di b • Qualsiasi divisore di a e di b è divisore di c • Per la ricerca del massimo comune divisore si • può usare l’algoritmo di Euclide

  28. Algoritmo Euclideo Teorema: Siano a, b, c interi, con b < a Si dimostra che: GCD(a, b) = GCD(a-cb, b) o anche che GCD(a, b) = GCD(b, a-cb) Ma a-cb = a (mod b) per cui GCD(a, b) = GCD(b, a mod b) Esempio: Gcd(55,22)=gcd(22,55 mod22)=gcd(22,11)=11

  29. L’algoritmo di Euclide • Algoritmo di Euclide, nella formulazione di base, utilizzata per calcolare il più grande divisore comune di due interi positivi, r0 e r1, con r0> r1 • L’algoritmo di Euclide consiste nell’esecuzione delle seguenti divisioni • r0=q1r1+ r2 0<r2<r1 • r1=q2r2+ r3 0<r3<r2 • rm-2=qm-1rm-1+ rm 0<rm<rm-1 • rm-1=qmrm • da cui si ricava facilmente che • MCD(r0,r1)=MCD(r1,r2)=…=MCD(rm-1,rm)=rm • Pertanto, MCD(r0,r1)=rm

  30. Algoritmo Euclideo • Tempo di esecuzione O(log3a) • Usa : • GCD(a,b) = GCD(b, a mod b) • pseudocodice: Euclid(a, b)  a > b > 0 while b  0 do r = a mod b a = b b = r return a • si può dimostrare che l’algoritmo termina poiché ri+1<riper ogni input, e che l’ultimo resto non nullo è il massimo comune divisore di a e b) Euclide

  31. L’algoritmo di Euclide Infatti… L’asserto è banalmente vero per j=0 e j=1. Per induzione, supponiamo che la relazione sia valida per j=i-1 e j=i-2, con i2, allora ri=ri-2-qi-1ri-1ti-2r1-qi-1ti-1r1 (mod r0) (ti-2-qi-1ti-1 ) r1 (mod r0)  tir1 (mod r0) Corollario 1 Sia MCD(r0,r1)=1. Allora tm=r-1 (mod r0)

  32. Esempio GCD(1970,1066) 1970 = 1 x 1066 + 904 gcd(1066, 904) 1066 = 1 x 904 + 162 gcd(904, 162) 904 = 5 x 162 + 94 gcd(162, 94) 162 = 1 x 94 + 68 gcd(94, 68) 94 = 1 x 68 + 26 gcd(68, 26) 68 = 2 x 26 + 16 gcd(26, 16) 26 = 1 x 16 + 10 gcd(16, 10) 16 = 1 x 10 + 6 gcd(10, 6) 10 = 1 x 6 + 4 gcd(6, 4) 6 = 1 x 4 + 2 gcd(4, 2) 4 = 2 x 2 + 0 gcd(2, 0)

  33. Campi finiti I campi finiti hanno tutti ordine pn, dove p è un numero primo e n  1 è un numero intero solitamente si distingue tra GF(p) e GF(pn), con n  2 Un anello nè un campo se e solo se n = pm, con p primo e n  1intero  i campi finiti sono tutti e soli gli

  34. Campi finiti di tipo GF(p) Consideriamo p = {0,1,2,…,p-1} Dato a  n, esiste a-1n se e solo se MCD(a, n) = 1 esistono gli inversi di ogni elemento  0 solo in un campo   a  n, MCD(a, n) = 1 se e solo se  p primo e  k  1 tale che n = pk se moltiplichiamo tutti gli elementi di p per w  p, si ottiene una permutazione di p

  35. Campi finiti di tipo GF(p) Un campo finito ( o di Galois) è formato : Dall’insiemep (con p primo), o dall’insieme q(con q=pn, p primo e n intero); da una operazione di “addizione” chiusa, commutativa, associativa, con elemento identità e con inverso; da una operazione di “moltiplicazione” chiusa, commutativa, associativa, distributiva rispetto alla somma, con elemento identità e in cui ogni elemento 0 ha il suo inverso moltiplicativo o reciproco. GF(p) e GF(pn) indicano rispettivamente il campo definito su p e quello definito su q In GF(p) le operazioni sono quelle dell’aritmetica modulare

  36. Campi finiti di tipo GF(p) • Esempio: 2 è il più semplice campo finito: (xor) (and)

  37. Example GF(7)

  38. Determinazione di inversi Z n insieme con le operazioni aritmetiche modulo n è un anello commutativo Qualsiasi intero in Z nha un inverso moltiplicativo se e solo se quell’intero è coprimo ad n Se n è primo allora tutti gli interi non nulli in Z n sono coprimi ad n e quindi esistono i loro inversi moltiplicativi

  39. Determinazione di inversi Se gcd(m,b)=1 allora b (con b<m) ha un inverso moltiplicativo modulo m indicato con b-1, allora bb-1=1 mod m L’algoritmo di Euclide può essere esteso in modo che oltre a trovare gcd(m,b) quando vale 1, restituisca anche l’inverso moltiplicativo di b.

  40. L’algoritmo di Euclide Poiché l’algoritmo di Euclide calcola il più grande divisore comune, può essere utilizzato per determinare se un intero positivo b <n ha un inverso modulo n, partendo con r0=n e r1=b; tuttavia non serve a calcolare effettivamente l’inverso Teorema 1 Per 0jm, rj tjr1 (mod r0), dove qj,rj sono definiti dall’algoritmo di Euclide e tj sono definiti dalla relazione di ricorrenza t0=0, t1=1, tj=tj-2-qj-1tj-1 (mod r0) se j2

  41. Determinazione di inversi Algoritmo di Euclide esteso (m,b) • (A1, A2, A3)=(1, 0, m); (B1, B2, B3)=(0, 1, b) 2. if B3 = 0 return A3 = gcd(m, b); no inverse 3. if B3 = 1 return B3 = gcd(m, b); B2 = b–1 mod m 4. Q = A3 div B3 5. (T1, T2, T3)=(A1 – Q B1, A2 – Q B2, A3 – Q B3) 6. (A1, A2, A3)=(B1, B2, B3) 7. (B1, B2, B3)=(T1, T2, T3) 8. goto 2

  42. Inverso di 550 in GF(1759)

  43. Aritmetica polinomiale Consideriamo polinomi ad una variabile Possibili diverse alternative Aritmetica polinomiale ordinaria Aritmetica polinomiale con aritmetica dei coefficienti mod p [coefficienti in GF(p)] Aritmetica polinomiale con coefficienti in GF(p) e polinomi definiti modulo un polinomio m(x) di grado n

  44. Aritmetica polinomiale ordinaria Include operazioni di somma sottrazione, moltiplicazione Include anche l’operazione di divisione se la varibile x è un elemento di un campo con

  45. Aritmetica polinomiale ordinaria Esempio: sia f(x) = x3 + x2 + 2 e g(x) = x2 – x + 1 f(x) + g(x) = x3 + 2x2 – x + 3 f(x) – g(x) = x3 + x + 1 f(x) x g(x) = x5 + 3x2 – 2x + 2

  46. Aritmetica polinomiale con coefficienti modulo Consideriamo polinomi in cui i coefficienti sono elementi di un campo F Si parla di polinomi su un campo F L’insieme di questi polinomi forma un anello polinomiale Possiamo operare modulo qualsiasi numero primo Il nostro interesse prevalente è in modulo 2 (In GF(2) addizione equivalente ad XOR e moltiplicazione a AND) Siano f(x) = x3 + x2 e g(x) = x2 + x + 1 allora f(x) + g(x) = x3 + x + 1 f(x) x g(x) = x5 + x2

  47. Divisione polinomiale Se facciamo aritmetica polinomiale su polinomi su un campo, allora è possibile la divisione Questo non vuol dire che sia possibile una divisione esatta Si può scrivere una divisione polinomiale nella forma: cioè r(x) può essere interpretato come il resto r(x) = f (x) mod g(x) Se non vi è resto si dice che g(x) è divisore di f(x) Se g(x) non ha altri divisori al di fuori di se stesso ed 1 si dirà che è un polinomio irriducibile o primo L’aritmetica modulo un polinomio irriducibile forma un campo

  48. Aritmetica polinomiale modulare • possiamo definire f(x) mod g(x) = r(x), cioè f(x)  r(x) mod g(x) • se r(x) = 0, diciamo che g(x) divide f(x), e scriviamo g(x)| f(x) • i polinomi per noi più interessanti sono quelli a coefficienti in GF(2) •  somma e sottrazione coincidono

  49. Aritmetica dei polinomi • molti algoritmi crittografici lavorano su interi compresi tra 0 e 2n-1 (numeri da n bit) • consideriamo gli n bit come i coefficienti in GF(2) di polinomi di grado n-1 • si sceglie un polinomio irriducibilem(x) di grado m, a coefficienti in GF(2) Esempio: in AES, le operazioni sui byte vengono fatte in GF(28), con m(x) = x8 + x4 + x3 + x + 1 • scelte diverse per m(x) producono diverse rappresentazioni di GF(2n), come classe dei residui modulo m(x)

More Related