Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione...

61
Un po’ di teoria dei numeri Applicazione alla crittografia RSA Christian Ferrari Liceo di Locarno Matematica

Transcript of Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione...

Page 1: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

Un po’ di teoria dei numeriApplicazione alla crittografia RSA

Christian Ferrari

Liceo di Locarno

Matematica

Page 2: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Sommario

1 L’aritmetica modulare di Zn

Le congruenzeL’anello Zn

Le potenze in Zn e algoritmo di LegendreMCD e algoritmi di Euclide ed Euclide estesoL’inverso in Zn

La funzione ϕ(n) di EulerIl piccolo teorema di Fermat e il teorema di EulerUn complemento sulle strutture algebriche

2 Le diverse basi numericheLa notazione posizionale e le diverse basiIl logaritmo e la lunghezza di un numero

3 I numeri primiAlcuni teoremi sui numeri primiAlcuni criteri di primalitaLa fattorizzazione dei numeri primi: un problema NP

Page 3: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Sommario

Gli aspetti della teoria dei numeri sviluppati precedentementesono (in parte) utilizzata per implementare il seguente protocollodi crittografia:

⇒ Il protocollo di crittografia RSALa generazione delle chiaviDal testo al messaggio numerico e viceversaCifrare e decifrareIl teorema RSALa sicurezza di RSALa firma digitale

Page 4: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Le congruenze

Consideriamo l’insieme dei numeri relativi Z.

Teorema

Siano a, b ∈ Z con b > 0. Allora esistono q, r ∈ Z unici e cheverificano

a = bq + r con 0 ≤ r < b .

Nel teorema precedente a e detto dividendo, b divisore, qquoziente e r resto della divisione euclidea a : b. Inoltre seb < 0 allora 0 ≤ r < |b|.

Definizione

Siano a, b ∈ Z. Se il resto della divisione euclidea e nullo, ossia seesiste q ∈ Z tale che a = bq, si dice che b divide a e si nota b|a.

Page 5: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Le congruenze

Definizione

Siano a, b ∈ Z e n ∈ N, n > 1. Si dice che a e congruente a bmodulo n se n divide a− b. Ossia se esiste k ∈ Z tale chea− b = kn. In questo caso si nota a ≡ b mod n.

La relazione di congruenza possiede le seguenti proprieta:

1 a ≡ a mod n (riflessivita);

2 se a ≡ b mod n, allora b ≡ a mod n (simmetria);

3 se a ≡ b mod n e b ≡ c mod n, allora a ≡ c mod n(transitivita).

Ad esempio: −3 ≡ 4 mod 7, 11 ≡ 4 mod 7, −3 ≡ 11 mod 7 . . ..

Page 6: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Le congruenze

Teorema

Ogni a ∈ Z e congruente modulo n al resto della divisioneeuclidea di a per n.

a ≡ b mod n se e solo se a e b hanno lo stesso resto nelladivisione euclidea per n.

Possiamo classificare i numeri in Z in classi, dette classiequivalenti modulo n o classi di resti modulo n.

Ad esempio se n = 7:

. . . . . . . . . . . . . . . . . . . . .−7 −6 −5 −4 −3 −2 −10 1 2 3 4 5 67 8 9 10 11 12 13. . . . . . . . . . . . . . . . . . . . .

tutti i numeri in colonna appartengono alla stessa classe.

Page 7: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

L’anello Zn

Data una classe di equivalenza modulo n si definisce unrappresentante, che sceglieremo come il numero compreso tra 0 en− 1.

Definizione

Notiamo Zn l’insieme delle classi di equivalenza modulo n.Indichiamo ogni classe con un suo rappresentante

Zn = {0, 1, . . . , n− 1} .

Operazioni in Zn

Le operazioni + (addizione) e · (moltiplicazione) sono definitecome il risultato modulo n delle operazioni in Z.

Page 8: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

L’anello Zn

Le tavole di addizione e di moltiplicazione di Z7 sono riportate quisotto a titolo di esempio.

+ 0 1 2 3 4 5 60 0 1 2 3 4 5 61 1 2 3 4 5 6 02 2 3 4 5 6 0 13 3 4 5 6 0 1 24 4 5 6 0 1 2 35 5 6 0 1 2 3 46 6 0 1 2 3 4 5

· 0 1 2 3 4 5 60 0 0 0 0 0 0 01 0 1 2 3 4 5 62 0 2 4 6 1 3 53 0 3 6 2 5 1 44 0 4 1 5 2 6 35 0 5 3 1 6 4 26 0 6 5 4 3 2 1

Page 9: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

L’anello Zn

Ecco le proprieta delle operazioni in Zn.

Teorema

L’addizione in Zn gode delle seguenti proprieta:

associativita;

commutativita;

esiste l’elemento neutro (lo 0);

per ogni a ∈ Zn esiste l’elemento inverso.

(Zn,+) e un gruppo commutativo.

Teorema

La moltiplicazione in Zn gode delle seguenti proprieta:

associativita;

commutativita;

esiste l’elemento neutro (l’1).

Page 10: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

L’anello Zn

La seguente definizione ci permette di caratterizzare meglio Zn.

Definizione

Sia A un insieme munito di due operazioni ? e �, se vale:

(A, ?) e un gruppo commutativo;

� e associativa ed esiste l’elemento neutro;

la distributiva di � rispetto a ?;

(A, ?, �) e un anello. Se � e commutativa allora (A, ?, �) e dettoun anello commutativo.

Poiche vale la distributiva della moltiplicazione rispettoall’addizione (con ? = + e � = ·) abbiamo:

Teorema

(Zn,+, ·) e un anello commutativo.

Page 11: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Potenze in Zn

Il calcolo delle potenze in Zn richiede di:

calcolare ar (r ∈ N∗);

calcolare il resto della divisione euclidea ar : n.

Questo processo diventa computazionalmente complesso se inumeri in gioco sono grandi. Il seguente teorema (secondo punto)permette di ovviare al problema.

Teorema

Se a1 ≡ a2 mod n e b1 ≡ b2 mod n, allora:

a1 + b1 ≡ a2 + b2 mod n;

a1b1 ≡ a2b2 mod n.

Page 12: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Potenze in Zn

Un algoritmo e un processo che, partendo da dei dati iniziali,viene ripetuto cosı da ottenere il risultato cercato. Ogni ripetizionee detta passo o iterazione.

Ecco un algoritmo semplice per il calcolo delle potenze che sfruttail teorema precedente:

ak = aak−1 e

(a ≡ b1 mod n (b1 = a)ak−1 ≡ bk−1 mod n

=⇒ ak ≡ b1bk−1 mod n

Algoritmo semplice per le potenze in Zn

start k = 1: porre b1 = a;

passo k = 2: a2 ≡ b1b1 mod n;

passo k = 3: a3 ≡ b1b2 mod n;

passo k generale: ak ≡ b1bk−1 mod n;

stop : quando k = n.

Page 13: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Potenze in Zn

Un algoritmo piu efficace, noto come algoritmo di Legendre, sibasa sull’idea seguente per calcolare

ar ≡ b mod n .

Si scrive r =Pd

i=0 ri2i dove ri ∈ {0, 1} (ossia si scompone r

in base 2).

Quindi ar =Qd

i=0 a(ri2

i).

Si sfrutta poi che

se a2 ≡ b2 mod n allora a4 ≡ b2b2 mod n[= b4 mod n];

e quindi a8 ≡ b4b4 mod n[= b8 mod n];

. . . cosı da ricomporre ar ≡ b mod n come prodotto di potenzedel tipo 2i calcolate modulo n.

Page 14: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Potenze in Zn

Ecco un esempio: 718 in Z15.

Scriviamo 18 in base 2: 18 = 24 + 21 = 16 + 2.

Allora 718 = 716+2 = 716 · 72.

Calcoliamo7 ≡ 7 mod 15

72 = 7 · 7 ≡ 7 · 7 mod 15 ≡ 4 mod 1574 = 72 · 72 ≡ 4 · 4 mod 15 ≡ 1 mod 1578 = 74 · 74 ≡ 1 · 1 mod 15 ≡ 1 mod 15716 = 78 · 78 ≡ 1 · 1 mod 15 ≡ 1 mod 15

Quindi

716 · 72 ≡ 4 · 1 mod 15 =⇒ 716 ≡ 4 mod 16

e in Z15 si ha 718 = 4.

Page 15: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

MCD e algoritmi di Euclide ed Euclide esteso

Definizione

Il massimo comun divisore di due numeri a, b ∈ N, non entrambinulli, e il loro piu grande divisore comune ed e notato MCD(a, b).

Il massimo comun divisore possiede le seguenti proprieta:

1 MCD(a, a) = a (se a > 0);

2 MCD(a, 0) = a;

3 MCD(a, b) = MCD(a− b, b), se a > b.

4 MCD(a, b) = MCD(b, r), se a > b ed r e il resto delladivisione euclidea a = bq + r.

Definizione

Due numeri naturali a, b sono detti coprimi (o anche relativamenteprimi) se MCD(a, b) = 1.

Page 16: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

MCD e algoritmi di Euclide ed Euclide esteso

Un algoritmo, noto come algoritmo di Euclide, permette dicalcolare rapidamente l’MCD tra due numeri (grandi) sulla basedella proprieta MCD(a, b) = MCD(b, r).

Algoritmo di Euclide

start k = 1:

porre a1 = a e b1 = b con a > b;calcolare r1 tale che a1 = b1q1 + r1;

passo k = 2:

porre a2 = b1 e b2 = r1;calcolare r2 tale che a2 = b2q2 + r2;

passo k generale:

porre ak = bk−1 e bk = rk−1;calcolare rk tale che ak = bkqk + rk;

stop : quando rn = 0 allora bn = rn−1 = MCD(a, b).

Page 17: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

MCD e algoritmi di Euclide ed Euclide esteso

Ecco un esempio: a = 123, b = 14.

k ak bk rk1 123 14 11 123 = 14 · 8 + 112 14 11 3 14 = 1 · 11 + 33 11 3 2 11 = 3 · 3 + 24 3 2 1 3 = 1 · 2 + 15 2 1 0 2 = 1 · 2 + 0

Quindi MCD(123, 14) = 1 e i numeri 123 e 14 sono coprimi.

Osserviamo che 123 = 3 · 41, 14 = 7 · 22 e 11 e primo, e si ha

MCD(123, 14) = MCD(14, 11) = MCD(11, 3) = MCD(3, 2)= MCD(2, 1) = MCD(1, 0) = 1 .

Page 18: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

MCD e algoritmi di Euclide ed Euclide esteso

Il seguente teorema permette di scrivere l’MCD in modo utile alcalcolo dell’inverso in Zn.

Teorema

Siano a, b ∈ Z, allora esistono s, t ∈ Z tale che

as+ bt = MCD(a, b) .

Se a e b sono coprimi si ha l’identita di Bezout

as+ bt = 1 .

Un algoritmo noto come algoritmo di Euclide estesopermette di calcolare s, t e MCD(a, b).

I numeri s, t ∈ Z non sono unici. Ad esempio

3 = MCD(9, 6) = 1 · 9 + (−1) · 6 = 9 · 3 + (−4) · 6 .

Page 19: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

MCD e algoritmi di Euclide ed Euclide esteso

Algoritmo di Euclide esteso

start k = 1: porre (con a > b)

r0 = a, s0 = 1, t0 = 0 e r1 = b, s1 = 0, t1 = 1;

passo k = 2:

calcolare q1 e r2 tale che r0 = r1q1 + r2;

calcolare

¨s2 = s0 − s1q1t2 = t0 − t1q1

passo k generale:

calcolare qk−1 e rk tale che rk−2 = rk−1qk−1 + rk;

calcolare

¨sk = sk−2 − sk−1qk−1

tk = tk−2 − tk−1qk−1

stop : quando rn+1 = 0, allora rn = asn + btn e

rn = MCD(a, b) sn = s tn = t .

Page 20: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

MCD e algoritmi di Euclide ed Euclide esteso

Ecco un esempio: a = 123, b = 14.

k rk sk tk qk0 123 1 0 −1 14 0 1 8 123 = 8 · 14 + 112 11 1 −8 1 14 = 1 · 11 + 33 3 −1 9 3 11 = 3 · 3 + 24 2 4 −35 1 3 = 1 · 2 + 15 1 −5 44 2 2 = 1 · 2 + 0

Quindi MCD(123, 14) = 1, s = −5 e t = 44, da cui

1 = 123 · (−5) + 14 · 44 .

Page 21: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

L’inverso in Zn

Definizione

Sia a ∈ Z e n ∈ N, n > 1, tali che MCD(a, n) = 1. Un elementoa ∈ Zn tale che aa ≡ 1 mod n e detto inverso di a modulo n.Ossia aa = 1 in Zn.

La congruenza equivale a

aa+ n(−k) = 1 = MCD(a, n)

e quindi possibile calcolare a (e (−k)) con l’algoritmo diEuclide esteso (se il il valore di a 6∈ Zn si torva il suo elementocongruente in Zn).

In generale non tutti gli elementi (non nulli) di Zn hanno uninverso.

Page 22: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

L’inverso in Zn

Ecco ad esempio le tavole di moltiplicazione di Z7 e Z9.

· 0 1 2 3 4 5 60 0 0 0 0 0 0 01 0 1 2 3 4 5 62 0 2 4 6 1 3 53 0 3 6 2 5 1 44 0 4 1 5 2 6 35 0 5 3 1 6 4 26 0 6 5 4 3 2 1

Esempio: l’inverso di 14 in Z123.

· 0 1 2 3 4 5 6 7 80 0 0 0 0 0 0 0 0 01 0 1 2 3 4 5 6 7 82 0 2 4 6 8 1 3 5 73 0 3 6 0 3 6 0 3 64 0 4 8 3 7 2 6 1 55 0 5 1 6 2 7 3 8 46 0 6 3 0 6 3 0 6 37 0 7 5 3 1 8 6 4 28 0 8 7 6 5 4 3 2 1

L’algoritmo di Euclide esteso fornisce

1 = 123·(−5)+14·44⇐⇒ 14·44−1 = 5·123⇐⇒ 14·44 ≡ 1 mod 123

Quindi 14 · 44 = 1 in Z123 e l’inverso cercato e 44.

Page 23: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

La funzione ϕ(n) di Euler

Definizione

La funzione indicatrice di Euler e l’applicazione ϕ che ad ogninumero naturale n > 1 associa il numero di numeri naturaliinferiori a n e coprimi a n:

ϕ(n) = #{a ∈ N : a ≤ n e MCD(a, n) = 1} .

ϕ(n) indica quindi il numero di elementi invertibili in Zn.

La funzione indicatrice di Euler possiede le seguenti proprieta:

1 ϕ(p) = p− 1, se p e un numero primo;

2 ϕ(pr) = pr−1(p− 1), se p e un numero primo e r ∈ N∗;3 ϕ(nm) = ϕ(n)ϕ(m), se MCD(n,m) = 1 e n,m ∈ N∗.

Ad esempio: ϕ(7) = 7− 1 = 6 e ϕ(9) = 31(3− 1) = 6.

Page 24: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Il piccolo teorema di Fermat e il teorema di Euler

Piccolo teorema di Fermat

Sia a ∈ N e p un numero primo. Allora ap ≡ a mod p.

Sia a ∈ N e p un numero primo tali che MCD(a, p) = 1.Allora ap−1 ≡ 1 mod p.

Il piccolo teorema di Fermat fornisce velocemente l’inverso di a inZp nel caso in cui p e primo. Infatti

aap−2 ≡ 1 mod p

ossia ap−2 e (congruente al)l’inverso cercato.

Ad esempio abbiamo

47−1 ≡ 1 mod 7 =⇒ 47−1 = 1 in Z7

e 47−2 ≡ 2 mod 7 cioe 2 e l’inverso di 4 in Z7.

Page 25: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Il piccolo teorema di Fermat e il teorema di Euler

Teorema di Euler

Siano a, n ∈ N, n > 1, tali che MCD(a, n) = 1. Alloraaϕ(n) ≡ 1 mod n.

Grazie al teorema di Euler si puo osservare che (se esiste) l’inversodi a in Zn e dato da aϕ(n)−1 (o il suo congruente in Zn), infatti siha

aaϕ(n)−1 ≡ 1 mod n .

Ad esempio abbiamo

2ϕ(9) ≡ 1 mod 9 =⇒ 2ϕ(9) = 1 in Z9

e 2ϕ(9)−1 ≡ 5 mod 9 cioe 5 e l’inverso di 2 in Z9.

Page 26: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Un complemento sulle strutture algebriche

Definizione

Sia (E, ?, �) un anello commutativo. Un elemento a ∈ E, a 6= 0, edetto divisore di zero se esiste un elemento b ∈ E, b 6= 0, tale che

a � b = 0

In questo caso anche b e un divisore di zero.

Ad esempio nell’anello (Z9,+, ·) abbiamo

3 · 6 = 0

3 e 6 sono quindi divisori di zero in Z9.

Teorema

Se p e un numero primo allora Zp non ammette divisori di zero.

Page 27: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Un complemento sulle strutture algebriche

Definizione

Un anello commutativo (E, ?, �) privo di divisori di zero e dettoanello integro.

In un anello integro tutti gli elementi diverso da 0 sonosemplificabili rispetto a �, ossia

a � b = a � c =⇒ b = c

b � a = c � a =⇒ b = c

Questo non e vero se l’anello ammette dei divisori di zero.

Ad esempio in (Z9,+, ·)3x = 3y 6=⇒ x = y

cosa che invece e vera in (Z7,+, ·)3x = 3y =⇒ x = y .

Page 28: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Un complemento sulle strutture algebriche

Definizione

Siano (E, ?, �) un anello commutativo. Se per ogni a ∈ E, a 6= 0,esiste l’elemento inverso, allora (E, ?, �) e detto un campo.

Teorema

Se p e un numero primo allora Zp e un campo.

Page 29: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

La notazione posizionale

Nel sistema decimale, il numero 4634 si puo scrivere come

4634 = 4 · 103 + 6 · 102 + 3 · 101 + 4 · 100

Le posizioni delle cifre, da destra a sinistra, corrispondono allepotenze di 10. La prima posizione e quella a potenza zero.

Il valore numerico e la somma delle moltiplicazioni della cifranella posizione i−esima per 10i.

Questo sistema di scrivere i valori numerici e detto notazioneposizionale: i simboli (cifre) usati per scrivere i numeri assumonovalori diversi a seconda della posizione che occupano nellanotazione.

Page 30: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

La notazione posizionale

Ecco una definizione di sistema di numerazione posizionale:

si sceglie un numero naturale b ≥ 2, che chiameremo base;

si scelgono n numeri (βn−1βn−2 . . . β1β0)b, che chiameremocifre dove βi ∈ N e 0 ≤ βi ≤ b− 1;

si compongono i numeri tenendo presente che il valore di ognicifra va moltiplicato per:

b0 cioe 1 (unita) se e l’ultima cifra alla destra del numero chestiamo considerando;

b1 cioe b se e la seconda cifra da destra;

b(i−1) se e la i−esima cifra da destra;

la somma tutti i valori cosı ottenuti e il numero decimale chestiamo considerando:

M ≡ (M)10 =n−1Xi=0

βibi .

Page 31: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Cambiamento di base: dalla base b alla base 10

Dato un numero in base b, ossia la sequenza (βn−1βn−2 . . . β1β0)b

delle sue cifre, si ottiene il numero in base 10 scrivendo in formapolinomiale

(M)10 =n−1Xi=0

βibi .

Ad esempio le cifre (1100)2 in base 2 danno il numero seguente inbase 10

1 · 23 + 1 · 22 + 0 · 21 + 0 · 20 = (12)10

Quindi(1100)base 2 = (12)base 10

Page 32: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Cambiamento di base: dalla base 10 alla base b

Dato un numero in base 10 x ≡ (x)10, ossia la sequenza(xn−1xn−2 . . . x1x0)10 delle sue cifre, si ottiene il numero in base bcon le seguenti divisioni euclidee:

x = q0b+ r0;

q0 = q1b+ r1;

q1 = q2b+ r2;

. . .

qn−2 = qn−1b+ rn−1 dove qn−1 = 0.

I resti ottenuti, letti dall’ultimo al primo, sono le cifre del numero(x)10 in base b: (rn−1rn−2 . . . r1r0)b, ossia

(x)10 = (xn−1xn−2 . . . x1x0)10 = (rn−1rn−2 . . . r1r0)b .

Page 33: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Cambiamento di base: dalla base 10 alla base b

Esempio (4634)10 in base 10

4634 = 463 · 10 + 4;

463 = 46 · 10 + 3;

46 = 4 · 10 + 6;

4 = 0 · 10 + 4;

e si ottengono le cifre attese.

Esempio (12)10 in base 2

12 = 6 · 2 + 0;

6 = 3 · 2 + 0;

3 = 1 · 2 + 1;

1 = 0 · 2b+ 1.

Quindi (12)10 = (1100)2.

La scomposizione in base 2 dell’esponente di una potenza in Zn eutile per l’algoritmo di Legendre.

Attenzione: Nelle applicazioni un numero decimale sara scrittosenza precisare la base 10 (·)10.

Page 34: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Il logaritmo e la lunghezza di un numero

Definizione

Siano a, b ∈ R+, a 6= 1. Allora x ∈ R e il logaritmo di base a di bse

ax = b⇐⇒ x = loga(b) .

Le proprieta del logaritmo utili per i nostri scopi sono:

1 loga(a) = 1;

2 loga(xy) = loga(x) + loga(y);

3 loga(xr) = r loga(x).

Ad esempio

4807 = 4.807 · 103 =⇒ log10(4807) = log10(4.807) + log10

�103�

= log10(4.807) + 3 log10(10)= 0.68 + 3 = 3.68

Page 35: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Il logaritmo e la lunghezza di un numero

Per “misurare” la lunghezza di un numero decimale M“contiamo” le sue cifre.

Il logaritmo di base 10 permette di ottenere questo datorapidamente

# cifre M = blog10(M) + 1c

dove bxc e la parte intera di x.

Ad esempio

# cifre 4807 = blog10(4807) + 1c = b3.68 + 1c = b4.68c = 4

Page 36: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

I numeri primi

Definizione

Un numero p ∈ N, p > 1, e detto numero primo se a|p, cona ∈ N, implica a = p o a = 1, ossia se i soli divisori di p in N sono1 e se stesso. I numeri in N maggiori o uguali a 2 che non sonoprimi sono detti numeri composti.

I numeri primi sono i “mattoni” di base dell’aritmetica.

Il numero primo piu grande oggi conosciuto e detto il numerodi Mersenne

M43112609 = 243112609 − 1

che e della forma Mp = 2p − 1 con p a sua volta primo.

Page 37: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Teoremi sui numeri primi

Teorema fondamentale dell’aritmetica

Ogni numero naturale n > 1 puo essere scritto come il prodottofinito di numeri primi (chiamati fattori primi), e questa espressionee unica (salvo l’ordine), ossia

n = pm11 pm2

2 · · · pmrr

dove p1, . . . , pr sono numeri primi e m1, . . . ,mr ∈ N∗.

Teorema di Euclide

Esistono infiniti numeri primi.

Teorema

Se n > 1 e un numero naturale composto, allora possiede unfattore primo inferiore o uguale a

√n.

Page 38: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Alcuni criteri di primalita

Per testare se un numero n ∈ N non e primo e possibile utilizzareper esempio il piccolo teorema di Fermat, infatti�

∀ a ∈ N e p primo =⇒ ap ≡ a mod p�

m�∃ a ∈ N e ap 6≡ a mod p =⇒ p non primo

�E importate osservare che

�∀ a ∈ N e ap ≡ a mod p 6=⇒ p primo

�.

Ad esempio

327 ≡ 0 mod 27 quindi 27 non e primo;

511 ≡ 5 mod 11 → non si puo concludere;

515 ≡ 5 mod 15 → non si puo concludere;

715 ≡ 13 mod 15 → quindi 15 non e primo.

Esistono numeri, detti numeri di Carmichael, per i quali, per ognia, an ≡ a mod n ma n e composto (ad esempio: 3 · 11 · 17 = 561).

Page 39: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Alcuni criteri di primalita

Il piccolo teorema di Fermat permette di ottenere un sempliceesempio di test di primalita probabilistico. Si procede cosı:

si sceglie un numero a aleatoriamente;

si testa se an ≡ a mod n, se la congruenza non e verificatastop e n e composto (a e detto testimone contro la primalita);

si ripete l’operazione fino ad avere la certezza richiesta, in talcaso se n non e stato riconosciuto come composto e dettoprobabilmente primo.

Chiaramente i numeri di Carmichael sfuggono al test per ogni a.

Attenzione: sapere se n e composto non implica conoscere la suafattorizzazione.

Page 40: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Alcuni criteri di primalita

Un altro criterio di primalita, piu di interesse teorico che altro, e ilteorema seguente

Teorema (di Wilson)

Un numero naturale n > 1 e primo se e solo se n divide(n− 1)! + 1.

dove n! = n · (n− 1) · (n− 2) · 2 · 1.

Ad esempio

n = 11 si ha (11− 1)! + 1 = 3628801 e 11|3628801, 11 eprimo;

n = 15 si ha (15− 1)! + 1 = 87178291201 e15 6 |87178291201, 15 non e primo.

Page 41: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Rarefazione dei numeri primi

Teorema di rarefazione dei numeri primi

Se n e un numero naturale, il numero di numeri primi tra 1 e n aapprossimativamente uguale e

#{m ∈ N : 1 < m ≤ n,m primo } ≈ n

lnn.

Dove ln(x) = loge(x) con e = 2.718281828 . . . ∈ R\Q chiamatonumero di Euler.

Page 42: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

La fattorizzazione dei numeri primi

Sia n = ab, stimiamo il numero di tentativi per scoprire a e busando il teorema della radice quadrata.

Sappiamo che un fattore (ad esempio a) soddisfa a ≤ √nallora vi sono approssimativamente

√n

ln√n

numeri primi da testare come divisori di n.

Se n ≈ 1050 (quindi un numeri di 50 cifre) allora√n ≈ 1025 e

i tentativi sono √n

ln√n≈ 1.74 · 1023 .

Per un computer capace di effettuare 1000 miliari di test alsecondo sono necessari piu di 1.7 · 1011 secondi, ossia circa5600 anni!

Page 43: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

La fattorizzazione dei numeri primi

Prova di fattorizzazione con maple 9 su pentium 4, 2.60 GHz.

T[s

]

0

20 30 40 50

500

1000

1500

Tempo di fattorizzazione T in funzione della lunghezza ` delnumero

T = 0.0005e0.285` .

Page 44: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

La fattorizzazione dei numeri primi

Dal risultato precedente per ` = 300 (RSA) si ottiene

T ≈ 1026 y > eta dell’Universo .

Anche per gli algoritmi e i computer piu veloci il problema difattorizzare in numeri primi un numero con molte cifre epraticamente impossibile da risolvere.

Il problema della fattorizzazione:

non e (per ora) risolvibile in un tempo polinomiale in `, bensıin un tempo esponenziale;

data la soluzione la verifica si ottiene in un tempo polinomiale.

Page 45: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

La fattorizzazione dei numeri primi

Secondo la teoria della complessita computazionale, la teoriache studia la le risorse di calcolo richieste per risolvere un datoproblema, vi sono:

problemi semplici (detti della classe P): esiste un algoritmoche richiede un tempo polinomiale rispetto alla dimensionedei dati del problema (il numero di cifre nella fattorizzazione);

problemi difficili (detti della classe NP), ossia problemi per iquali data una possibile soluzione la sua verifica avviene conun algoritmo in tempo polinomiale.

Per la classe NP esistono algoritmi esponenziali . . . ma non si sase esistono algoritmi polinomiali.

La fattorizzazione e un problema NP ed e questa la “garanzia”della sicurezza della crittografia RSA.

Page 46: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

La fattorizzazione dei numeri primi

Un altro problema della classe NP e il calcolo della funzione ϕ(n)di Euler senza conoscere la fattorizzazione n = pq.

T[s

]

0

20 30 40 50

500

1000

1500

Tempo di calcolo T in funzione della lunghezza ` del numero

T = 0.0005e0.287` .

Page 47: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Crittografia a chiave pubblica

Il destinatario D pubblica la propria chiave pubblica e ognimittente M che desidera inviargli un messaggio dovra usarlaper cifrare il proprio messaggio.

La chiave pubblica di D e nota a tutti, come pure il messaggiocifrato inviato da M.

Solo D sa come decifrarlo grazie alla sua chiave privata, talechiave e ignota anche a M.

Questo tipo di crittografia e noto come crittografia a chiaveasimmetria o crittografia a chiave pubblica, poiche M e D noncondividono una chiave privata segreta e comune.

Page 48: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Crittografia a chiave pubblica

Il principio della crittografia a chiave pubblica si basa sul fatto chela conoscenza della chiave pubblica e dell’algoritmo stesso nonsiano sufficienti per risalire alla chiave privata. Tale meccanismo ereso possibile grazie all’uso di funzioni unidirezionali (a botola):

facili da calcolare;

difficili da invertire;

data un’informazione supplementare (la botola) la funzione efacile da invertire.

Ad esempio:

x xe mod n

con (n, e) facile

con n difficile

anche con d facile

Page 49: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Il protocollo RSA

Il protocollo di crittografia RSA e diviso nelle seguenti parti:

la generazione delle chiavi pubblica (e, n) e privata (d, n);

la conversione del testo in un numero M e viceversa;

la cifratura del messaggio M e la sua decifratura.

e, n d, nC C MM

M D(mittente) (destinatario)

testo testoM → tt→M

Page 50: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

La generazione delle chiavi

Si scelgono aleatoriamente due numeri primi p e q e sicalcola n = pq(in pratica n ha circa 300 cifre decimali (n ≈ 10300), p e q non sono

troppo vicini, (p− 1) e (q − 1) devono avere fattori primi grandi);

si calcola la funzione di Euler

ϕ(n) = ϕ(pq) = ϕ(p)ϕ(q) = (p− 1)(q − 1) ;

si sceglie e < ϕ(n) coprimo a ϕ(n), ossia MCD(e, ϕ(n)) = 1;

si calcola d tale che ed ≡ 1 mod ϕ(n), ossia d e l’inverso di ein Zϕ(n).

La condizione MCD(e, ϕ(n)) = 1 garantisce l’esistenza dell’inversodi e in Zϕ(n).

La coppia (e, n) costituisce la chiave pubblica;

la coppia (d, n) costituisce la chiave privata.

Page 51: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

La generazione delle chiavi

Ecco un esempio:

scegliamo p = 11, q = 5, quindi n = 55;

si ha ϕ(55) = ϕ(11)ϕ(5) = 40;

scegliamo e = 7, poiche si ha MCD(7, 40) = 1;

si ottiene d = 23, infatti 7 · 23(= 161) ≡ 1 mod 40.

Chiave pubblica: (e = 7, n = 55).

Chiave privata: (d = 23, n = 55).

Page 52: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Dal testo al numero e viceversa

E necessario definire un alfabeto in cui ogni lettera e messa incorrispondenza con un numero.

Consideriamo l’alfabeto seguente (spazio, lettere minuscole)composto da 27 elementi

{ , a, b, c, d, e, f, g, h, i, j, k, l,m, n, o, p, q, r, s, t, u, v, w, x, y, z}

messi in corrispondenza con i 27 numeri

{0, 1, 2, 3, . . . , 24, 26} .

Il messaggio di k lettere αk−1 . . . α0 e in corrispondenza con lasequenza di numeri `k−1 . . . `0

αk−1 . . . α0 ←→ `k−1 . . . `0 .

Page 53: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Dal testo al numero

Si stabilisce la corrispondenza αk−1 . . . α0 ↔ `k−1 . . . `0;

si considera la sequenza `k−1 . . . `0 come le cifre di un numeroM in base 27 ossia M = (`k−1 . . . `0)27;

si trasforma (`k−1 . . . `0)27 in base 10

M =k−1Xi=0

`i27i .

Ad esempio: ciao

α3 = c, α2 = i, α1 = a, α0 = o↔ `3 = 3, `2 = 9, `1 = 1, `0 = 15

quindi

M = (3 9 1 15)27 =⇒M = 15·270+1·271+9·272+3·273 = 65652

Page 54: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Dal numero al testo

Si effettuano le divisioni euclidee successive per ottenere lecifre in base 27 del numero M in base 10, ossiaM = (`k−1 . . . `0)27;

si ristabilisce la corrispondenza `k−1 . . . `0 ↔ αk−1 . . . α0.

Ad esempio: M = 65652

65652 = 2431 · 27 + 152431 = 90 · 27 + 1

90 = 3 · 27 + 93 = 0 · 27 + 3

da cui M = (3 9 1 15)27 e si ritrova il messaggio ciao.

Page 55: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Cifrare e decifrare

Dato un messaggio

1 < M < n (i calcoli sono in Zn)

(se M ≥ n e necessario suddividere il messaggio in piu messaggi dilunghezza adeguata).

Il mittente M cifra M grazie a P = (e, n) come segue

EP(M)→ C ≡M e mod n ,

C costituisce il messaggio cifrato di M che viene inviato aldestinatario D;

il destinatario D decifra C grazie a Q = (d, n)

DQ(C)→M ≡ Cd mod n .

Page 56: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Cifrare e decifrare

Ecco un esempio.

Sia il messaggio M = 13 e la chiave dell’esempio precedente:

P = (e = 7, n = 55) e Q = (d = 23, n = 55)

Il mittente M cifra M

EP(13)→ 7 ≡ 137 mod 55 ,

C = 7 costituisce il messaggio cifrato di M = 13 che vieneinviato al destinatario D;

il destinatario D decifra C

DQ(7)→ 13 ≡ 723 mod 55 .

Page 57: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

Il teorema RSA

Alla base del sistema di crittografia a chiave pubblica RSA (dalnome dei tre matematici Rivest, Shamir e Adleman che lainventarono nel 1977) vi e il seguente teorema che riportiamo percompletezza

Teorema RSA

Siano p e q sono due numeri primi distinti e n = pq, se e e coprimoa ϕ(n) e d e tale che ed ≡ 1 mod ϕ(n), allora per ogni a ∈ N

aed ≡ a mod n .

Page 58: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

La sicurezza di RSA

Per rompere il codice RSA e necessario ottenere d dellachiave privata;

e quindi necessario conoscere ϕ(n).

Osserviamo che da ϕ(n) e n si ricavano facilmente p e q:

ϕ(n) = (p−1)(q−1) = n−(p+q)+1 =⇒(p+ q = n− ϕ(n) + 1pq = n

quindi p e q sono le soluzioni dell’equazione di secondo grado(relazioni di Viete)

x2 − (p+ q)x+ pq = 0 .

Dal punto di vista della complessita computazionale trovareϕ(n) senza la fattorizzazione n = pq e equivalente allafattorizzazione (entrambi hanno un algoritmo esponenziale);

ma la fattorizzazione e un problema difficile (tipo NP) per inumeri grandi e questa e la sicurezza di RSA.

Page 59: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

La sicurezza di RSA

La RSA Security pubblica sfide per rompere il codice RSA, detteRSA-X, dove X e il numero di cifre decimali di n o di bit (cifre inbase 2) del numero binario associato al numero decimale n.

RSA-129 – 129 cifre decimali (prima sfida, 1977):fattorizzato nel 1994 in 8 mesi con 600 computer in rete;

RSA-640 – 193 cifre decimali: fattorizzato nel 2005;

RSA-200 – 200 cifre decimali: fattorizzato nel 2005 in 3 mesisu un cluster di 80 CPU di 2.2 GHz, ecco i numeri

n = 2799783391122132787082946763872260162107044678695542853756000992932

6128400107609345671052955360856061822351910951365788637105954482006

576775098580557613579098734950144178863178946295187237869221823983

p = 35324619344027701212726049781984643686711974001976

25023649303468776121253679423200058547956528088349

q = 79258699544783330333470858414800596877379758573642

19960734330341455767872818152135381409304740185467

Alcune sfide aperte: RSA-704 – 212 cifre decimali (30’000 $),RSA-1024 – 309 cifre decimali (100’000 $).

Page 60: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

La firma digitale

La crittografia RSA puo essere utilizzata come firma digitale.

Sia M il messaggio (tutti possono vederlo ma il destinatario deveavere la certezza che il mittente sia quello che si e firmato).

Il mittente M firma M grazie alla sua chiave privataQ = (d, n) come segue

FQ(M)→ C ≡Md mod n ,

il destinatario D decifra C grazie alla chiave pubblicaP = (e, n) del mittente M

DP(C)→M ≡ Ce mod n .

Tutti possono decifrare C ma vi e la garanzia che il mittente e unosolo, infatti solo il mittente autentico possiede la chiave privata eassociata a quella pubblica d utilizzata per decifrare.

Page 61: Un po' di teoria dei numeri - Applicazione alla ... · Un po’ di teoria dei numeri Applicazione alla crittogra a RSA Christian Ferrari Liceo di Locarno Matematica. ... La fattorizzazione

L’aritmetica modulare di Zn Le diverse basi numeriche I numeri primi Il protocollo di crittografia RSA

La firma digitale e il messaggio segreto

E possibile avere la segretezza e la firma digitale, ossia:

solo il destinatario D puo decodificare il messaggio (segreto);

solo il mittente M puo averlo inviato (firma digitale).

Ecco come si procede.

il mittente firma il messaggio con la propria chiave privata:F ≡MdM mod nM;

il mittente codifica F con la chiave pubblica di D:C ≡ F eD mod nD;

il destinatario decodifica C con la propria chiave privata:F ≡ CdD mod nD;

il destinatario decodifica F con la chiave pubblica di M:M ≡ F eM mod nM.