Crittografia e numeri primi Piano Lauree Scientifiche Crittografia e numeri primi V incontro lunedì 13 dicembre 2010
Cifrare con l’addizione Un messaggio può essere cifrato utilizzando una permutazione dell’alfabeto (e di eventuali altri caratteri). Il Codice Cesare cifra utilizzando una cifratura per traslazione del tipo Qualsiasi valore dello spostamento 0 < [a] < n va bene. Questa cifratura è molto semplice da decifrare poiché è sufficiente determinare lo spostamento di una lettera per ottenere di conseguenza tutti gli altri.
Cifrare con la moltiplicazione Un’altra permutazione dell’alfabeto può essere ottenuta utilizzando la funzione moltiplicativa La funzione f è però una funzione di cifratura se e solo se [a] è invertibile in Zn e… [a] è invertibile in Zn se e solo se MCD(a, n) = 1 La funzione di decifratura è:
f : Zn Zn / [m] | [m’] = [mt] con t N0 Cifrare con la potenza Una ulteriore permutazione dell’alfabeto può essere ottenuta utilizzando la potenza f : Zn Zn / [m] | [m’] = [mt] con t N0 Esiste sempre un esponente corretto da usare per ottenere una cifratura? In caso positivo, come può essere individuato? Come decifrare?
Completa, in Z7, la tabella dei valori corrispondenti delle potenze di x: 1 2 3 4 5 6 x x2 x3 x4 x5 x6 x7 x8 x9 x10
L’elevamento al quadrato è una cifratura? E se uso un esponente pari? I valori di m per i quali la funzione fm è una funzione di cifratura sono: Ci sono due esponenti diversi m e k per i quali le funzioni fm e fk coincidono? Se sì, quali?
Saresti in grado di completare, in Z7, la tabella seguente senza fare conti? 1 2 3 4 5 6 x11 x12 x13 x14 x15 Dopo quanti passi le funzioni si ripetono?
Potenze modulo 7 base 1 2 3 4 5 6 esponente 7 8 9 10 11 12 13
Potenze in Z7 Tav. 5.1 1 2 4 3 6 5 x x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 1 2 4 3 6 5
Potenze in Z11 Tav. 5.2
Le potenze si ripetono in modo periodico. Utilizzando la tavola appena completata, prova a completare, in Z11, le seguenti uguaglianze: 317= 3.... = ...… 524= 5.... = …… 899= 8.... = …… Completa, in Z11, le seguenti uguaglianze: (67).... = 6 (23).... = 2 (89).... = 8
Cifrare e decifrare con Fermat – Tav. 5.2 Tabella moltiplicazione modulo 10 * 1 2 3 4 5 6 7 8 9 ap-1=1 mod p a k(p-1)=1 mod p ak(p-1)+1=a mod p Cifratura: a → a’=ae Decifratura: a’ → a=(ae)d k(p-1)+1=ed → k(p-1)=ed-1 → ed=1 mod(p-1) aed =a mod p
Tav. 5.3
Tav. 5.3 ed=1 mod(p-1) * 1 2 3 4 5 6 7 8 9 10
Tav. 5.3
Potenze in Z10 x x2 x3 x4 x5 x6 x7 x8 x9 x10 1 2 4 8 6 3 9 7 5
Teorema di Eulero – Tav. 5.4 Modulo 10
Potenze in Z21 x x^2 x^3 x^4 x^5 x^6 x^7 x^8 x^9 x^10 x^11 x^12 x^13 x x^2 x^3 x^4 x^5 x^6 x^7 x^8 x^9 x^10 x^11 x^12 x^13 x^14 x^15 x^16 x^17 x^18 x^19 x^20 1 2 4 8 16 11 3 9 6 18 12 15 5 20 17 7 10 13 19 14
Teorema di Eulero – Tav. 5.5
Teorema di Eulero
Potenze in Z21 21=3*7 (3-1)(7-1)=12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 X^2 X^3 X^4 X^5 X^6 X^7 X^8 X^9 X^10 X^11 X^12 X^13 X^14 X^15 X^16 X^17 X^18 X^19 X^20
Completa, in Z10, la tabella dei valori corrispondenti delle potenze di x:
Ricapitoliamo
Potenze modulo 7 base 1 2 3 4 5 6 esponente 7 8 9 10 11 12 13
Potenze modulo 10 p = 2 q = 5 n = 2 5 = 10 (p – 1)(q – 1) = (2 – 1)(5 – 1) = 1 4 = 4 14 1 34 1 74 1 94 1
Potenze modulo 10 base 1 2 3 4 5 6 7 8 9 esponente
112 1 212 1 412 1 512 1 812 1 1012 1 1112 1 1312 1 1612 1 1712 1 1912 1 2012 1 Potenze modulo 21 p = 3 q = 7 n = 3 7 = 21 (p – 1)(q – 1) = (3 – 1)(7 – 1) = 2 6 = 12
base 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 esponente
Corollario del teorema di Eulero Se n = p q è prodotto di due numeri primi distinti, allora a(p–1)(q–1)+1 a mod n
I casi possibili sono: MCD (a, n) = 1 MCD (a, n) = p MCD (a, n) = n
è possibile applicare il Teorema di Eulero Se MCD (a, n) = 1 è possibile applicare il Teorema di Eulero Potenze modulo 10 base 1 2 3 4 5 6 7 8 9 esponente
Se MCD (a, n) = p p, q numeri primi distinti n = p q p = 2 q = 5 n = 2 5 = 10 a = 4 MCD (4, 10) = 2 MCD (a, q) = 1 MCD (4, 5) = 1 è possibile applicare il Piccolo Teorema di Fermat 44 1 mod 5 a(q – 1) 1 mod q
Si ha infatti: 44 6 e 6 1 mod 5 base 1 2 3 4 5 6 7 8 9 esponente
Si dovrà far vedere che se a(q – 1) 1 mod q, allora a (q – 1) (p – 1) + 1 a mod q
44 1 mod 5 a(q – 1) 1 mod q elevando entrambi i membri alla (p – 1) (aq – 1 ) (p – 1) 1 mod q (44 )1 1 mod 5 a (q – 1) (p – 1) 1 mod q 44 1 mod 5 moltiplicando entrambi i membri per a a (q – 1) (p – 1) + 1 a mod q 45 4 mod 5
Si dovrà far vedere che se a (q – 1) (p – 1) + 1 a mod q, a (q – 1) (p – 1) + 1 a mod n
a ≡ b mod n ⇔ (a – b) = n ⋅ h per qualche h ∈ Z a (q – 1) (p – 1) + 1 a mod q ⇔ a (q – 1) (p – 1) + 1 – a = q h per qualche h Z dall’essere MCD (a, n) = p a (q – 1) (p – 1) + 1 – a = q p k per qualche k Z a (q – 1) (p – 1) + 1 – a = n k per qualche k Z a (q – 1) (p – 1) + 1 a mod n
Se MCD (a, n) = n allora a è multiplo di n a 0 mod n La tesi a(p–1)(q–1)+1 a mod n diviene allora 0 0 mod n
Osservazione se per caso (p – 1)(q – 1) + 1 = e d, allora aed = a (p - 1)(q – 1) + 1 = a mod n. Ma aed = (ae)d È dunque possibile usare l’elevamento alla potenza con esponente e per cifrare e l’elevamento alla potenza con esponente d per decifrare
Se (p – 1)(q – 1) + 1 = e d, allora (p – 1)(q – 1) = e d – 1, dunque e d = 1 modulo (p – 1)(q – 1) Le classi e, d sono inverse tra loro modulo (p – 1)(q – 1)
Applicazione del corollario p = 3 q = 7 n = 21 e = 5 17 | 175 = 5 mod 21 (p – 1)(q – 1) = 12 e d = 1 mod 12 5 d = 1 mod 12 d = 5 5 | 55 = 17 mod 21
Applicazione del corollario p = 3 q = 7 n = 21 e = 11 12 | 1211 = 3 mod 21 (p – 1)(q – 1) = 12 e d = 1 mod 12 11 11 = 1 mod 12 d = 11 3 | 311 = 12 mod 21
La crittografia a chiave pubblica
Da sinistra verso destra: Ralph Merkle Martin Hellman Whitfield Diffie
L'implementazione tramite algoritmo RSA
Da sinistra verso destra: Adi Shamir Ronald Rivest Leonard Adleman