• Non ci sono risultati.

RSAefirmadigitale UniversitàdegliStudidiCagliari

N/A
N/A
Protected

Academic year: 2021

Condividi "RSAefirmadigitale UniversitàdegliStudidiCagliari"

Copied!
53
0
0

Testo completo

(1)

Università degli Studi di Cagliari

Corso di Laurea in Matematica

RSA e firma digitale

Mara Manca Relatore: prof. Andrea Loi

(2)

Sommario

1 Crittologia

2 RSA

3 Matematica dietro la crittografia

(3)

Crittologia

Cos’è la crittologia?

La parola crittologia deriva dal greco kryptòs, che significa "nascosto".

ProblemaAlice vuole inviare un messaggio a Bob, impedendo a Eva, l’antagonista, di conoscere il contenuto del messaggio.

SoluzioneAlice invia una versione distorta del messaggio a Bob, che è l’unico in grado di ripristinare il messaggio in modo legittimo. In altre parole, Alice crittografa il messaggio (testo cifrato), lo invia a Bob, che a sua volta decodifica il messaggio (testo in chiaro).

Chiave: parametro utilizzato per la cifratura o la decifratura

decifrazione, permette di passare dal testo in chiaro al testo cifrato, e viceversa.

(4)

Crittologia

Cos’è la crittologia?

La parola crittologia deriva dal greco kryptòs, che significa "nascosto".

ProblemaAlice vuole inviare un messaggio a Bob, impedendo a Eva, l’antagonista, di conoscere il contenuto del messaggio.

SoluzioneAlice invia una versione distorta del messaggio a Bob, che è l’unico in grado di ripristinare il messaggio in modo legittimo. In altre parole, Alice crittografa il messaggio (testo cifrato), lo invia a Bob, che a sua volta decodifica il messaggio (testo in chiaro).

Chiave: parametro utilizzato per la cifratura o la decifratura

decifrazione, permette di passare dal testo in chiaro al testo cifrato, e viceversa.

(5)

Crittologia

Cos’è la crittologia?

La parola crittologia deriva dal greco kryptòs, che significa "nascosto".

ProblemaAlice vuole inviare un messaggio a Bob, impedendo a Eva, l’antagonista, di conoscere il contenuto del messaggio.

SoluzioneAlice invia una versione distorta del messaggio a Bob, che è l’unico in grado di ripristinare il messaggio in modo legittimo. In altre parole, Alice crittografa il messaggio (testo cifrato), lo invia a Bob, che a sua volta decodifica il messaggio (testo in chiaro).

Chiave: parametro utilizzato per la cifratura o la decifratura

decifrazione, permette di passare dal testo in chiaro al testo cifrato, e viceversa.

(6)

Crittologia

Cos’è la crittologia?

La parola crittologia deriva dal greco kryptòs, che significa "nascosto".

ProblemaAlice vuole inviare un messaggio a Bob, impedendo a Eva, l’antagonista, di conoscere il contenuto del messaggio.

SoluzioneAlice invia una versione distorta del messaggio a Bob, che è l’unico in grado di ripristinare il messaggio in modo legittimo. In altre parole, Alice crittografa il messaggio (testo cifrato), lo invia a Bob, che a sua volta decodifica il messaggio (testo in chiaro).

Chiave: parametro utilizzato per la cifratura o la decifratura

decifrazione, permette di passare dal testo in chiaro al testo cifrato, e viceversa.

(7)

Crittologia

Cos’è la crittologia?

La crittologia può essere divisa in due categorie:

crittografia: si occupa della progettazione dei crittosistemi. crittoanalisi: si occupa dell’attacco ai cifrari, ad esempio di come trovare la natura della chiave che è stata utilizzata.

Cifrari simmetrici: la stessa chiave è utilizzata sia per la cifratura che per la decifrazione

Cifrari asimmetrici o a chiave pubblica: ogni utilizzatore del

crittosistema possiede una chiave che è costituita da due parti: una pubblica e una privata.

(8)

Crittologia

Cos’è la crittologia?

La crittologia può essere divisa in due categorie:

crittografia: si occupa della progettazione dei crittosistemi.

crittoanalisi: si occupa dell’attacco ai cifrari, ad esempio di come trovare la natura della chiave che è stata utilizzata.

Cifrari simmetrici: la stessa chiave è utilizzata sia per la cifratura che per la decifrazione

Cifrari asimmetrici o a chiave pubblica: ogni utilizzatore del

crittosistema possiede una chiave che è costituita da due parti: una pubblica e una privata.

(9)

Crittologia

Cos’è la crittologia?

La crittologia può essere divisa in due categorie:

crittografia: si occupa della progettazione dei crittosistemi.

crittoanalisi: si occupa dell’attacco ai cifrari, ad esempio di come trovare la natura della chiave che è stata utilizzata.

Cifrari simmetrici: la stessa chiave è utilizzata sia per la cifratura che per la decifrazione

Cifrari asimmetrici o a chiave pubblica: ogni utilizzatore del

crittosistema possiede una chiave che è costituita da due parti: una pubblica e una privata.

(10)

Crittologia

Cos’è la crittologia?

La crittologia può essere divisa in due categorie:

crittografia: si occupa della progettazione dei crittosistemi.

crittoanalisi: si occupa dell’attacco ai cifrari, ad esempio di come trovare la natura della chiave che è stata utilizzata.

Cifrari simmetrici: la stessa chiave è utilizzata sia per la cifratura che per la decifrazione

Cifrari asimmetrici o a chiave pubblica: ogni utilizzatore del

crittosistema possiede una chiave che è costituita da due parti: una pubblica e una privata.

(11)

Crittologia

Cos’è la crittologia?

La crittologia può essere divisa in due categorie:

crittografia: si occupa della progettazione dei crittosistemi.

crittoanalisi: si occupa dell’attacco ai cifrari, ad esempio di come trovare la natura della chiave che è stata utilizzata.

Cifrari simmetrici: la stessa chiave è utilizzata sia per la cifratura che per la decifrazione

Cifrari asimmetrici o a chiave pubblica: ogni utilizzatore del

crittosistema possiede una chiave che è costituita da due parti: una pubblica e una privata.

(12)

Crittologia

Crittosistema asimmetrico

Formalmente un crittosistema a chiave pubblica è costituito da:

un insieme M di potenziali messaggi (sia testi in chiaro che testi cifrati);

un insieme K di chiavi possibili;

Per ogni k∈K esistono le funzioni invertibili

Ek :M → M Dk :M → M tali che:

1 ∀k ∈ K , ∃k0∈ K tale che Dk0 è l’inversa di Ek;

2 ∀k ∈ K e ∀m ∈ M, Ek(m) = c e Dk0(c) = m sono facilmente calcolabili;

3 per quasi tutti i k ∈ K, non è computazionalmente possibile trovare Dk0, data Ek.

(13)

Crittologia

Crittosistema asimmetrico

Formalmente un crittosistema a chiave pubblica è costituito da:

un insieme M di potenziali messaggi (sia testi in chiaro che testi cifrati);

un insieme K di chiavi possibili;

Per ogni k∈K esistono le funzioni invertibili

Ek :M → M Dk :M → M tali che:

1 ∀k ∈ K , ∃k0∈ K tale che Dk0 è l’inversa di Ek;

2 ∀k ∈ K e ∀m ∈ M, Ek(m) = c e Dk0(c) = m sono facilmente calcolabili;

3 per quasi tutti i k ∈ K, non è computazionalmente possibile trovare Dk0, data Ek.

(14)

Crittologia

Crittosistema asimmetrico

Formalmente un crittosistema a chiave pubblica è costituito da:

un insieme M di potenziali messaggi (sia testi in chiaro che testi cifrati);

un insieme K di chiavi possibili;

Per ogni k∈K esistono le funzioni invertibili

Ek :M → M Dk :M → M tali che:

1 ∀k ∈ K , ∃k0∈ K tale che Dk0 è l’inversa di Ek;

2 ∀k ∈ K e ∀m ∈ M, Ek(m) = c e Dk0(c) = m sono facilmente calcolabili;

3 per quasi tutti i k ∈ K, non è computazionalmente possibile trovare Dk0, data Ek.

(15)

Crittologia

Crittosistema asimmetrico

Formalmente un crittosistema a chiave pubblica è costituito da:

un insieme M di potenziali messaggi (sia testi in chiaro che testi cifrati);

un insieme K di chiavi possibili;

Per ogni k∈K esistono le funzioni invertibili

Ek :M → M Dk :M → M tali che:

1 ∀k ∈ K , ∃k0∈ K tale che Dk0 è l’inversa di Ek;

2 ∀k ∈ K e ∀m ∈ M, Ek(m) = c e Dk0(c) = m sono facilmente calcolabili;

3 per quasi tutti i k ∈ K, non è computazionalmente possibile trovare Dk0, data Ek.

(16)

Crittologia

Crittosistema asimmetrico

Formalmente un crittosistema a chiave pubblica è costituito da:

un insieme M di potenziali messaggi (sia testi in chiaro che testi cifrati);

un insieme K di chiavi possibili;

Per ogni k∈K esistono le funzioni invertibili

Ek :M → M Dk :M → M tali che:

1 ∀k ∈ K , ∃k0∈ K tale che Dk0 è l’inversa di Ek;

2 ∀k ∈ K e ∀m ∈ M, Ek(m) = c e Dk0(c) = m sono facilmente calcolabili;

3 per quasi tutti i k ∈ K, non è computazionalmente possibile trovare Dk0, data Ek.

(17)

Crittologia

Crittosistema asimmetrico

Formalmente un crittosistema a chiave pubblica è costituito da:

un insieme M di potenziali messaggi (sia testi in chiaro che testi cifrati);

un insieme K di chiavi possibili;

Per ogni k∈K esistono le funzioni invertibili

Ek :M → M Dk :M → M tali che:

1 ∀k ∈ K , ∃k0∈ K tale che Dk0 è l’inversa di Ek;

2 ∀k ∈ K e ∀m ∈ M, Ek(m) = c e Dk0(c) = m sono facilmente calcolabili;

3 per quasi tutti i k ∈ K, non è computazionalmente possibile trovare Dk0, data Ek.

(18)

Crittologia

Crittosistema asimmetrico

Formalmente un crittosistema a chiave pubblica è costituito da:

un insieme M di potenziali messaggi (sia testi in chiaro che testi cifrati);

un insieme K di chiavi possibili;

Per ogni k∈K esistono le funzioni invertibili

Ek :M → M Dk :M → M tali che:

1 ∀k ∈ K , ∃k0∈ K tale che Dk0 è l’inversa di Ek;

2 ∀k ∈ K e ∀m ∈ M, Ek(m) = c e Dk0(c) = m sono facilmente calcolabili;

3 per quasi tutti i k ∈ K, non è computazionalmente possibile trovare Dk0, data Ek.

(19)

RSA

RSA

Supponiamo che Bob voglia mandare un messaggio ad Alice:

1 Alice sceglie due numeri primi grandi p e q tali che p 6= q;

2 Alice calcola n = pq e s = (p − 1)(q − 1);

3 Alice sceglie un esponente di cifratura e ∈ Zs= {0, . . . , s − 1} tale che MCD(e, s) = 1;

4 Alice calcola d in modo che de ≡ 1 (mod s);

5 Alice rende pubblici (n,e) (chiave pubblica), e tiene segreti (p,q,d) (chiave segreta);

6 Bob codifica il messaggio come una sequenza di interi m1, . . . ,mk tali che 1 ≤ mi <n − 1 ∀i.

La sequenza c1, . . . ,ck che rappresenta il testo cifrato, si trova calcolando ci ≡ mei (mod n) ∀i = 1, . . . , k .

Quindi Bob, invia questa sequenza ad Alice.

7 Alice decifra il messaggio calcolando mi ≡ cid (mod n) ∀i = 1, . . . , k .

(20)

RSA

RSA

Supponiamo che Bob voglia mandare un messaggio ad Alice:

1 Alice sceglie due numeri primi grandi p e q tali che p 6= q;

2 Alice calcola n = pq e s = (p − 1)(q − 1);

3 Alice sceglie un esponente di cifratura e ∈ Zs= {0, . . . , s − 1} tale che MCD(e, s) = 1;

4 Alice calcola d in modo che de ≡ 1 (mod s);

5 Alice rende pubblici (n,e) (chiave pubblica), e tiene segreti (p,q,d) (chiave segreta);

6 Bob codifica il messaggio come una sequenza di interi m1, . . . ,mk tali che 1 ≤ mi <n − 1 ∀i.

La sequenza c1, . . . ,ck che rappresenta il testo cifrato, si trova calcolando ci ≡ mei (mod n) ∀i = 1, . . . , k .

Quindi Bob, invia questa sequenza ad Alice.

7 Alice decifra il messaggio calcolando mi ≡ cid (mod n) ∀i = 1, . . . , k .

(21)

RSA

RSA

Supponiamo che Bob voglia mandare un messaggio ad Alice:

1 Alice sceglie due numeri primi grandi p e q tali che p 6= q;

2 Alice calcola n = pq e s = (p − 1)(q − 1);

3 Alice sceglie un esponente di cifratura e ∈ Zs= {0, . . . , s − 1} tale che MCD(e, s) = 1;

4 Alice calcola d in modo che de ≡ 1 (mod s);

5 Alice rende pubblici (n,e) (chiave pubblica), e tiene segreti (p,q,d) (chiave segreta);

6 Bob codifica il messaggio come una sequenza di interi m1, . . . ,mk tali che 1 ≤ mi <n − 1 ∀i.

La sequenza c1, . . . ,ck che rappresenta il testo cifrato, si trova calcolando ci ≡ mei (mod n) ∀i = 1, . . . , k .

Quindi Bob, invia questa sequenza ad Alice.

7 Alice decifra il messaggio calcolando mi ≡ cid (mod n) ∀i = 1, . . . , k .

(22)

RSA

RSA

Supponiamo che Bob voglia mandare un messaggio ad Alice:

1 Alice sceglie due numeri primi grandi p e q tali che p 6= q;

2 Alice calcola n = pq e s = (p − 1)(q − 1);

3 Alice sceglie un esponente di cifratura e ∈ Zs= {0, . . . , s − 1} tale che MCD(e, s) = 1;

4 Alice calcola d in modo che de ≡ 1 (mod s);

5 Alice rende pubblici (n,e) (chiave pubblica), e tiene segreti (p,q,d) (chiave segreta);

6 Bob codifica il messaggio come una sequenza di interi m1, . . . ,mk tali che 1 ≤ mi <n − 1 ∀i.

La sequenza c1, . . . ,ck che rappresenta il testo cifrato, si trova calcolando ci ≡ mei (mod n) ∀i = 1, . . . , k .

Quindi Bob, invia questa sequenza ad Alice.

7 Alice decifra il messaggio calcolando mi ≡ cid (mod n) ∀i = 1, . . . , k .

(23)

RSA

RSA

Supponiamo che Bob voglia mandare un messaggio ad Alice:

1 Alice sceglie due numeri primi grandi p e q tali che p 6= q;

2 Alice calcola n = pq e s = (p − 1)(q − 1);

3 Alice sceglie un esponente di cifratura e ∈ Zs= {0, . . . , s − 1} tale che MCD(e, s) = 1;

4 Alice calcola d in modo che de ≡ 1 (mod s);

5 Alice rende pubblici (n,e) (chiave pubblica), e tiene segreti (p,q,d) (chiave segreta);

6 Bob codifica il messaggio come una sequenza di interi m1, . . . ,mk tali che 1 ≤ mi <n − 1 ∀i.

La sequenza c1, . . . ,ck che rappresenta il testo cifrato, si trova calcolando ci ≡ mei (mod n) ∀i = 1, . . . , k .

Quindi Bob, invia questa sequenza ad Alice.

7 Alice decifra il messaggio calcolando mi ≡ cid (mod n) ∀i = 1, . . . , k .

(24)

RSA

RSA

Supponiamo che Bob voglia mandare un messaggio ad Alice:

1 Alice sceglie due numeri primi grandi p e q tali che p 6= q;

2 Alice calcola n = pq e s = (p − 1)(q − 1);

3 Alice sceglie un esponente di cifratura e ∈ Zs= {0, . . . , s − 1} tale che MCD(e, s) = 1;

4 Alice calcola d in modo che de ≡ 1 (mod s);

5 Alice rende pubblici (n,e) (chiave pubblica), e tiene segreti (p,q,d) (chiave segreta);

6 Bob codifica il messaggio come una sequenza di interi m1, . . . ,mk tali che 1 ≤ mi <n − 1 ∀i.

La sequenza c1, . . . ,ck che rappresenta il testo cifrato, si trova calcolando ci ≡ mei (mod n) ∀i = 1, . . . , k .

Quindi Bob, invia questa sequenza ad Alice.

7 Alice decifra il messaggio calcolando mi ≡ cid (mod n) ∀i = 1, . . . , k .

(25)

RSA

RSA

Supponiamo che Bob voglia mandare un messaggio ad Alice:

1 Alice sceglie due numeri primi grandi p e q tali che p 6= q;

2 Alice calcola n = pq e s = (p − 1)(q − 1);

3 Alice sceglie un esponente di cifratura e ∈ Zs= {0, . . . , s − 1} tale che MCD(e, s) = 1;

4 Alice calcola d in modo che de ≡ 1 (mod s);

5 Alice rende pubblici (n,e) (chiave pubblica), e tiene segreti (p,q,d) (chiave segreta);

6 Bob codifica il messaggio come una sequenza di interi m1, . . . ,mk tali che 1 ≤ mi <n − 1 ∀i.

La sequenza c1, . . . ,ck che rappresenta il testo cifrato, si trova calcolando ci ≡ mei (mod n) ∀i = 1, . . . , k .

Quindi Bob, invia questa sequenza ad Alice.

7 Alice decifra il messaggio calcolando mi ≡ cid (mod n) ∀i = 1, . . . , k .

(26)

RSA

RSA

Supponiamo che Bob voglia mandare un messaggio ad Alice:

1 Alice sceglie due numeri primi grandi p e q tali che p 6= q;

2 Alice calcola n = pq e s = (p − 1)(q − 1);

3 Alice sceglie un esponente di cifratura e ∈ Zs= {0, . . . , s − 1} tale che MCD(e, s) = 1;

4 Alice calcola d in modo che de ≡ 1 (mod s);

5 Alice rende pubblici (n,e) (chiave pubblica), e tiene segreti (p,q,d) (chiave segreta);

6 Bob codifica il messaggio come una sequenza di interi m1, . . . ,mk tali che 1 ≤ mi <n − 1 ∀i.

La sequenza c1, . . . ,ck che rappresenta il testo cifrato, si trova calcolando ci ≡ mei (mod n) ∀i = 1, . . . , k .

Quindi Bob, invia questa sequenza ad Alice.

7 Alice decifra il messaggio calcolando mi ≡ cid (mod n) ∀i = 1, . . . , k .

(27)

RSA

RSA

Supponiamo che Bob voglia mandare un messaggio ad Alice:

1 Alice sceglie due numeri primi grandi p e q tali che p 6= q;

2 Alice calcola n = pq e s = (p − 1)(q − 1);

3 Alice sceglie un esponente di cifratura e ∈ Zs= {0, . . . , s − 1} tale che MCD(e, s) = 1;

4 Alice calcola d in modo che de ≡ 1 (mod s);

5 Alice rende pubblici (n,e) (chiave pubblica), e tiene segreti (p,q,d) (chiave segreta);

6 Bob codifica il messaggio come una sequenza di interi m1, . . . ,mk tali che 1 ≤ mi <n − 1 ∀i.

La sequenza c1, . . . ,ck che rappresenta il testo cifrato, si trova calcolando ci ≡ mei (mod n) ∀i = 1, . . . , k .

Quindi Bob, invia questa sequenza ad Alice.

(28)

RSA

RSA

Teorema

Per ogni i = 1, . . . , k cid ≡ mi (mod n).

Definizione

Sia n≥1 un intero e sia φ(n) il numero di elementi in Zn= {0, . . . , n − 1} che sono relativamente primi con n.

La funzione φ definita in questo modo, è chiamata funzione di Eulero. Teorema (Teorema di Eulero- Fermat)

Se a e n sono due interi relativamente primi, allora aφ(n)≡ 1 (mod n)

(29)

RSA

RSA

Teorema

Per ogni i = 1, . . . , k cid ≡ mi (mod n).

Definizione

Sia n≥1 un intero e sia φ(n) il numero di elementi in Zn= {0, . . . , n − 1} che sono relativamente primi con n.

La funzione φ definita in questo modo, è chiamata funzione di Eulero.

Teorema (Teorema di Eulero- Fermat)

Se a e n sono due interi relativamente primi, allora aφ(n)≡ 1 (mod n)

(30)

RSA

RSA

Teorema

Per ogni i = 1, . . . , k cid ≡ mi (mod n).

Definizione

Sia n≥1 un intero e sia φ(n) il numero di elementi in Zn= {0, . . . , n − 1} che sono relativamente primi con n.

La funzione φ definita in questo modo, è chiamata funzione di Eulero.

Teorema (Teorema di Eulero- Fermat)

Se a e n sono due interi relativamente primi, allora aφ(n)≡ 1 (mod n)

(31)

RSA

Dimostrazione teorema

ci ≡ mei (mod n) cid ≡ medi (mod n) (1)

Ma ed ≡ 1 (mod s), ciò significa che s | ed − 1. Quindi, esiste un intero t tale che st = ed − 1.

Inoltre, s = (p − 1)(q − 1) = φ(pq) = φ(n). Allora, ed = st + 1 = φ(n)t + 1 e si ha

medi =mφ(n)t+1i = (mφ(n)i )tmi (2) Avendo scelto mi piccolo, MCD(mi,n) = 1 quindi miφ(n)≡ 1 (mod n) grazie al teorema di Eulero-Fermat. Dalle equazioni (1) e (2) otteniamo

cid ≡ mied ≡ (mφ(n)i )tmi ≡ (1)tmi ≡ mi (mod n) (3) come enunciato.

(32)

RSA

Dimostrazione teorema

ci ≡ mei (mod n) cid ≡ medi (mod n) (1) Ma ed ≡ 1 (mod s), ciò significa che s | ed − 1.

Quindi, esiste un intero t tale che st = ed − 1.

Inoltre, s = (p − 1)(q − 1) = φ(pq) = φ(n). Allora, ed = st + 1 = φ(n)t + 1 e si ha

medi =mφ(n)t+1i = (mφ(n)i )tmi (2) Avendo scelto mi piccolo, MCD(mi,n) = 1 quindi miφ(n)≡ 1 (mod n) grazie al teorema di Eulero-Fermat. Dalle equazioni (1) e (2) otteniamo

cid ≡ mied ≡ (mφ(n)i )tmi ≡ (1)tmi ≡ mi (mod n) (3) come enunciato.

(33)

RSA

Dimostrazione teorema

ci ≡ mei (mod n) cid ≡ medi (mod n) (1) Ma ed ≡ 1 (mod s), ciò significa che s | ed − 1. Quindi, esiste un intero t tale che st = ed − 1.

Inoltre, s = (p − 1)(q − 1) = φ(pq) = φ(n). Allora, ed = st + 1 = φ(n)t + 1 e si ha

medi =mφ(n)t+1i = (mφ(n)i )tmi (2) Avendo scelto mi piccolo, MCD(mi,n) = 1 quindi miφ(n)≡ 1 (mod n) grazie al teorema di Eulero-Fermat. Dalle equazioni (1) e (2) otteniamo

cid ≡ mied ≡ (mφ(n)i )tmi ≡ (1)tmi ≡ mi (mod n) (3) come enunciato.

(34)

RSA

Dimostrazione teorema

ci ≡ mei (mod n) cid ≡ medi (mod n) (1) Ma ed ≡ 1 (mod s), ciò significa che s | ed − 1. Quindi, esiste un intero t tale che st = ed − 1.

Inoltre, s = (p − 1)(q − 1) = φ(pq) = φ(n).

Allora, ed = st + 1 = φ(n)t + 1 e si ha

medi =mφ(n)t+1i = (mφ(n)i )tmi (2) Avendo scelto mi piccolo, MCD(mi,n) = 1 quindi miφ(n)≡ 1 (mod n) grazie al teorema di Eulero-Fermat. Dalle equazioni (1) e (2) otteniamo

cid ≡ mied ≡ (mφ(n)i )tmi ≡ (1)tmi ≡ mi (mod n) (3) come enunciato.

(35)

RSA

Dimostrazione teorema

ci ≡ mei (mod n) cid ≡ medi (mod n) (1) Ma ed ≡ 1 (mod s), ciò significa che s | ed − 1. Quindi, esiste un intero t tale che st = ed − 1.

Inoltre, s = (p − 1)(q − 1) = φ(pq) = φ(n).

Allora, ed = st + 1 = φ(n)t + 1 e si ha

medi =mφ(n)t+1i = (mφ(n)i )tmi (2) Avendo scelto mi piccolo, MCD(mi,n) = 1 quindi miφ(n)≡ 1 (mod n) grazie al teorema di Eulero-Fermat. Dalle equazioni (1) e (2) otteniamo

cid ≡ mied ≡ (mφ(n)i )tmi ≡ (1)tmi ≡ mi (mod n) (3) come enunciato.

(36)

RSA

Dimostrazione teorema

ci ≡ mei (mod n) cid ≡ medi (mod n) (1) Ma ed ≡ 1 (mod s), ciò significa che s | ed − 1. Quindi, esiste un intero t tale che st = ed − 1.

Inoltre, s = (p − 1)(q − 1) = φ(pq) = φ(n).

Allora, ed = st + 1 = φ(n)t + 1 e si ha

medi =mφ(n)t+1i = (mφ(n)i )tmi (2)

Avendo scelto mi piccolo, MCD(mi,n) = 1 quindi miφ(n)≡ 1 (mod n) grazie al teorema di Eulero-Fermat. Dalle equazioni (1) e (2) otteniamo

cid ≡ mied ≡ (mφ(n)i )tmi ≡ (1)tmi ≡ mi (mod n) (3) come enunciato.

(37)

RSA

Dimostrazione teorema

ci ≡ mei (mod n) cid ≡ medi (mod n) (1) Ma ed ≡ 1 (mod s), ciò significa che s | ed − 1. Quindi, esiste un intero t tale che st = ed − 1.

Inoltre, s = (p − 1)(q − 1) = φ(pq) = φ(n).

Allora, ed = st + 1 = φ(n)t + 1 e si ha

medi =mφ(n)t+1i = (mφ(n)i )tmi (2) Avendo scelto mi piccolo, MCD(mi,n) = 1 quindi miφ(n)≡ 1 (mod n) grazie al teorema di Eulero-Fermat.

Dalle equazioni (1) e (2) otteniamo cid ≡ mied ≡ (mφ(n)i )tmi ≡ (1)tmi ≡ mi (mod n) (3) come enunciato.

(38)

RSA

Dimostrazione teorema

ci ≡ mei (mod n) cid ≡ medi (mod n) (1) Ma ed ≡ 1 (mod s), ciò significa che s | ed − 1. Quindi, esiste un intero t tale che st = ed − 1.

Inoltre, s = (p − 1)(q − 1) = φ(pq) = φ(n).

Allora, ed = st + 1 = φ(n)t + 1 e si ha

medi =mφ(n)t+1i = (mφ(n)i )tmi (2) Avendo scelto mi piccolo, MCD(mi,n) = 1 quindi miφ(n)≡ 1 (mod n) grazie al teorema di Eulero-Fermat. Dalle equazioni (1) e (2) otteniamo

cid ≡ mied ≡ (mφ(n)i )tmi ≡ (1)tmi ≡ mi (mod n) (3) come enunciato.

(39)

RSA

Esempio

Alice sceglie p=885320963 e q=238855417 primi e calcola n=211463707796206571 ed e=9007.

Alice manda a Bob la coppia (n, e) che rappresenta la chiave pubblica. Il messaggio da cifrare è ’cat’.

Per convenzione, numeriamo le lettere secondo lo schema a ↔ 01, b ↔ 02, . . . , z ↔ 26.

Il messaggio risulta dunque: m= 30120.

Il testo che Bob deve cifrare è molto corto, quindi sceglie di non dividere la parola che costituirà così un unico blocco.

Bob calcola c ≡ me ≡ 301209007≡ 113535859035722866 (mod n) e invia c ad Alice.

Alice, conoscendo p e q, calcola d in modo che ed ≡ 1 (mod s); ottenendo d =116402471153538991

Infine Alice calcola

cd =113535859035722866116402471153538991≡ 30120 (mod n); ottenendo il messaggio originale.

(40)

RSA

Esempio

Alice sceglie p=885320963 e q=238855417 primi e calcola n=211463707796206571 ed e=9007.

Alice manda a Bob la coppia (n, e) che rappresenta la chiave pubblica. Il messaggio da cifrare è ’cat’.

Per convenzione, numeriamo le lettere secondo lo schema a ↔ 01, b ↔ 02, . . . , z ↔ 26.

Il messaggio risulta dunque: m= 30120.

Il testo che Bob deve cifrare è molto corto, quindi sceglie di non dividere la parola che costituirà così un unico blocco.

Bob calcola c ≡ me ≡ 301209007≡ 113535859035722866 (mod n) e invia c ad Alice.

Alice, conoscendo p e q, calcola d in modo che ed ≡ 1 (mod s); ottenendo d =116402471153538991

Infine Alice calcola

cd =113535859035722866116402471153538991≡ 30120 (mod n); ottenendo il messaggio originale.

(41)

RSA

Esempio

Alice sceglie p=885320963 e q=238855417 primi e calcola n=211463707796206571 ed e=9007.

Alice manda a Bob la coppia (n, e) che rappresenta la chiave pubblica.

Il messaggio da cifrare è ’cat’.

Per convenzione, numeriamo le lettere secondo lo schema a ↔ 01, b ↔ 02, . . . , z ↔ 26.

Il messaggio risulta dunque: m= 30120.

Il testo che Bob deve cifrare è molto corto, quindi sceglie di non dividere la parola che costituirà così un unico blocco.

Bob calcola c ≡ me ≡ 301209007≡ 113535859035722866 (mod n) e invia c ad Alice.

Alice, conoscendo p e q, calcola d in modo che ed ≡ 1 (mod s); ottenendo d =116402471153538991

Infine Alice calcola

cd =113535859035722866116402471153538991≡ 30120 (mod n); ottenendo il messaggio originale.

(42)

RSA

Esempio

Alice sceglie p=885320963 e q=238855417 primi e calcola n=211463707796206571 ed e=9007.

Alice manda a Bob la coppia (n, e) che rappresenta la chiave pubblica.

Il messaggio da cifrare è ’cat’.

Per convenzione, numeriamo le lettere secondo lo schema a ↔ 01, b ↔ 02, . . . , z ↔ 26.

Il messaggio risulta dunque: m= 30120.

Il testo che Bob deve cifrare è molto corto, quindi sceglie di non dividere la parola che costituirà così un unico blocco.

Bob calcola c ≡ me ≡ 301209007≡ 113535859035722866 (mod n) e invia c ad Alice.

Alice, conoscendo p e q, calcola d in modo che ed ≡ 1 (mod s); ottenendo d =116402471153538991

Infine Alice calcola

cd =113535859035722866116402471153538991≡ 30120 (mod n); ottenendo il messaggio originale.

(43)

RSA

Esempio

Alice sceglie p=885320963 e q=238855417 primi e calcola n=211463707796206571 ed e=9007.

Alice manda a Bob la coppia (n, e) che rappresenta la chiave pubblica.

Il messaggio da cifrare è ’cat’.

Per convenzione, numeriamo le lettere secondo lo schema a ↔ 01, b ↔ 02, . . . , z ↔ 26.

Il messaggio risulta dunque: m= 30120.

Il testo che Bob deve cifrare è molto corto, quindi sceglie di non dividere la parola che costituirà così un unico blocco.

Bob calcola c ≡ me ≡ 301209007≡ 113535859035722866 (mod n) e invia c ad Alice.

Alice, conoscendo p e q, calcola d in modo che ed ≡ 1 (mod s); ottenendo d =116402471153538991

Infine Alice calcola

cd =113535859035722866116402471153538991≡ 30120 (mod n); ottenendo il messaggio originale.

(44)

RSA

Esempio

Alice sceglie p=885320963 e q=238855417 primi e calcola n=211463707796206571 ed e=9007.

Alice manda a Bob la coppia (n, e) che rappresenta la chiave pubblica.

Il messaggio da cifrare è ’cat’.

Per convenzione, numeriamo le lettere secondo lo schema a ↔ 01, b ↔ 02, . . . , z ↔ 26.

Il messaggio risulta dunque: m= 30120.

Il testo che Bob deve cifrare è molto corto, quindi sceglie di non dividere la parola che costituirà così un unico blocco.

Bob calcola c ≡ me ≡ 301209007≡ 113535859035722866 (mod n) e invia c ad Alice.

Alice, conoscendo p e q, calcola d in modo che ed ≡ 1 (mod s); ottenendo d =116402471153538991

Infine Alice calcola

cd =113535859035722866116402471153538991≡ 30120 (mod n); ottenendo il messaggio originale.

(45)

RSA

Esempio

Alice sceglie p=885320963 e q=238855417 primi e calcola n=211463707796206571 ed e=9007.

Alice manda a Bob la coppia (n, e) che rappresenta la chiave pubblica.

Il messaggio da cifrare è ’cat’.

Per convenzione, numeriamo le lettere secondo lo schema a ↔ 01, b ↔ 02, . . . , z ↔ 26.

Il messaggio risulta dunque: m= 30120.

Il testo che Bob deve cifrare è molto corto, quindi sceglie di non dividere la parola che costituirà così un unico blocco.

Bob calcola c ≡ me ≡ 301209007≡ 113535859035722866 (mod n) e invia c ad Alice.

Alice, conoscendo p e q, calcola d in modo che ed ≡ 1 (mod s); ottenendo d =116402471153538991

Infine Alice calcola

cd =113535859035722866116402471153538991≡ 30120 (mod n); ottenendo il messaggio originale.

(46)

RSA

Esempio

Alice sceglie p=885320963 e q=238855417 primi e calcola n=211463707796206571 ed e=9007.

Alice manda a Bob la coppia (n, e) che rappresenta la chiave pubblica.

Il messaggio da cifrare è ’cat’.

Per convenzione, numeriamo le lettere secondo lo schema a ↔ 01, b ↔ 02, . . . , z ↔ 26.

Il messaggio risulta dunque: m= 30120.

Il testo che Bob deve cifrare è molto corto, quindi sceglie di non dividere la parola che costituirà così un unico blocco.

Bob calcola c ≡ me ≡ 301209007≡ 113535859035722866 (mod n) e invia c ad Alice.

Alice, conoscendo p e q, calcola d in modo che ed ≡ 1 (mod s); ottenendo d =116402471153538991

Infine Alice calcola

cd =113535859035722866116402471153538991≡ 30120 (mod n); ottenendo il messaggio originale.

(47)

RSA

Esempio

Alice sceglie p=885320963 e q=238855417 primi e calcola n=211463707796206571 ed e=9007.

Alice manda a Bob la coppia (n, e) che rappresenta la chiave pubblica.

Il messaggio da cifrare è ’cat’.

Per convenzione, numeriamo le lettere secondo lo schema a ↔ 01, b ↔ 02, . . . , z ↔ 26.

Il messaggio risulta dunque: m= 30120.

Il testo che Bob deve cifrare è molto corto, quindi sceglie di non dividere la parola che costituirà così un unico blocco.

Bob calcola c ≡ me ≡ 301209007≡ 113535859035722866 (mod n) e invia c ad Alice.

Alice, conoscendo p e q, calcola d in modo che ed ≡ 1 (mod s);

ottenendo d =116402471153538991

Infine Alice calcola

cd =113535859035722866116402471153538991≡ 30120 (mod n); ottenendo il messaggio originale.

(48)

RSA

Esempio

Alice sceglie p=885320963 e q=238855417 primi e calcola n=211463707796206571 ed e=9007.

Alice manda a Bob la coppia (n, e) che rappresenta la chiave pubblica.

Il messaggio da cifrare è ’cat’.

Per convenzione, numeriamo le lettere secondo lo schema a ↔ 01, b ↔ 02, . . . , z ↔ 26.

Il messaggio risulta dunque: m= 30120.

Il testo che Bob deve cifrare è molto corto, quindi sceglie di non dividere la parola che costituirà così un unico blocco.

Bob calcola c ≡ me ≡ 301209007≡ 113535859035722866 (mod n) e invia c ad Alice.

Alice, conoscendo p e q, calcola d in modo che ed ≡ 1 (mod s);

ottenendo d =116402471153538991 Infine Alice calcola

cd =113535859035722866116402471153538991≡ 30120 (mod n);

ottenendo il messaggio originale.

(49)

RSA

Sicurezza RSA

Teorema

Sia n=pq il prodotto di due primi p e q diversi tra loro.

Allora p e q sono le radici dell’equazione

x2− (n − φ(n) + 1)x + n = 0

(50)

Matematica dietro la crittografia

Teoremi

Teorema (Eulero- Fermat)

Se a e n sono due interi relativamente primi, allora aφ(n)≡ 1 (mod n)

Per provare il teorema di Eulero- Fermat, abbiamo necessità del seguente lemma.

Lemma

Siano x e y interi tali che x 6≡ y (mod n). Se MCD(a, b) = 1 allora, ax 6≡ ay (mod n).

(51)

Matematica dietro la crittografia

Dimostrazione.

(Lemma) Supponiamo che ax ≡ ay (mod n).

MCD(a, b) = 1 allora l’inverso moltiplicativo a−1di a esiste.

Moltiplichiamo entrambi i membri per a−1

a−1ax ≡ a−1ay (mod n) ⇐⇒ x ≡ y (mod n) che contraddice le ipotesi del teorema.

(52)

Matematica dietro la crittografia

Dimostrazione.

(Teorema di Eulero-Fermat) Nell’insieme Zn= {0, . . . , n − 1} troviamo φ(n) elementi relativamente primi con n. Indichiamo questi elementi con

x1, . . . ,xφ(n) (4)

Se i 6= j allora xi 6≡ xj (mod n). Poniamo

yi =axi (mod n) per i = 1, . . . , φ(n) e troviamo

y1, . . . ,yφ(n) (5)

elementi di Zn. Osserviamo che MCD(xi,n) = 1 ∀ i = 1, . . . , φ(n) (per definizione di φ(n)), allora

MCD(yi,n) = 1 ∀ i = 1, . . . , φ(n) yi 6≡ yj (mod n) se i 6= j

(53)

Matematica dietro la crittografia

Dimostrazione.

Perciò y1, . . . ,yφ(n)è un elenco di elementi che sono tutti relativamente primi con n. Ciascun yi in (5) compare esattamente una volta in (4) e ogni xi compare solo una volta nell’elenco (5), allora

x1· · · xφ(n)≡ y1· · · yφ(n) (mod n) (6) Dal momento che yi =axi (mod n) ∀ i = 1, . . . , φ(n) allora,

y1· · · yφ(n) ≡ ax1· · · axφ(n)≡ aφ(n)x1· · · xφ(n) (mod n) (7) Uguagliando le ultime due equazioni troviamo

aφ(n)x1· · · xφ(n)≡ x1· · · xφ(n) (mod n) (8) Ogni xi è relativamente primo con n, quindi, esistono i loro inversi moltiplicativi modulo n. Moltiplicando entrambi i membri per ciascun

Riferimenti

Documenti correlati

I fondamenti di questo alto standard etico circa la nutrizione si basano sui seguenti dati di fatto: un miliardo di persone vive in assoluta povertà e fame cronica; il 70% di

Per identificare i geni la cui espressione è modulata dopo 48h dal CFC, i cDNA ottenuti dalle regione mediotemporali dei cervelli di ratti sottoposti al condizionamento, sono

La scelta è ricaduta sull’edificio sito a Ruosina, soprattutto grazie alla sua posizione all’interno del Comune, più accentrata, rispetto a Farnocchia, e situata

CARTELLONE MURALE SULLA COMPRENSIONE DELLE PAROLE CHIAVE NELLA RISOLUZIONE.

La consapevolezza della conte- stualizzazione di abilità e concetti in situazioni nuove e diverse, ov- vero il senso del confronto tra modi diversi di pensare, di fare e di

Due grandezze variabili e tra di loro dipendenti sono direttamente proporzionali se è costante il rapporto tra due valori corrispondenti, qualunque sia la coppia di valori che

Se la chiave ` e realmente casuale, il one-time-pad ` e per- fettamente sicuro contro crittoanalisi basata soltanto sul testo cifrato.. • impossibilit` a di decrittare il cifrato

Crittografia a chiave segreta: prime definizioni , cifrari a trasposizione, cifrari a sostituzione, cifrario di Cesare, crittoanalisi dei cifrari additivi, analisi