CRITTOGRAFIA E NUMERI PRIMI TFA A059 ANNA NOBILI OTTAVIANO ROSI
Cenni Storici Nasce dall esigenza di avere metodi efficienti per comunicare in modo segreto e sicuro. La crittografia non mira a nascondere il messaggio in sé, ma il suo significato. Il messaggio viene alterato per mezzo di un procedimento precedentemente concordato dal mittente e dal destinatario. Quest ultimo può invertire il procedimento e ricavare il testo originale.
Cenni Storici Plutarco Vite Parallele: gli efori, cioè i magistrati che avevano il compito di controllare l'opera dei re ed erano responsabili della politica estera, trasmettevano ai generali messaggi segreti con un metodo molto ingegnoso. Mittente e destinatario facevano uso di due bastoni di legno cilindrici perfettamente uguali, cioè aventi lo stesso diametro e la stessa lunghezza; tale pezzo di legno era noto come scitala.
Cenni Storici Nel Vecchio Testamento troviamo alcuni esempi di primitivi schemi di cifratura: l Atbash, l Albam, l Atbah.
Cenni Storici ATBASH: l'alfabeto viene scritto in ordine inverso di conseguenza, alla prima lettera corrisponde l'ultima, alla seconda la penultima,., e all'ultima la prima.
Graficamente:
Cenni Storici ALBAM: l'alfabeto viene diviso in due parti uguali: 1 : A, B, C,, K, L, M 2 : N, O, P,, X, Y, Z. Ogni lettera viene sostituita con la lettera corrispondente nell'altra metà.
Graficamente
Cenni Storici ATBAH: - le prime nove lettere vengono sostituite in modo che la somma delle posizioni della lettera sostituita e quella sostituente sia uguale a 10, - le altre nove lettere in maniera analoga con somma uguale a 28, - le ultime otto lettere in maniera analoga con somma uguale a 45.
Graficamente
Crittosistema Un crittosistema è una 5-pla (P, C, K, E, D) che soddisfa le seguenti condizioni: P = Insieme finito dei possibili testi veri, C = Insieme finito dei possibili testi cifrati, K = Insieme finito di possibili chiavi di codifica, E = Insieme delle funzioni di codifica che producono il testo cifrato a partire dal testo vero, D = Insieme delle funzioni di decodifica in grado di ricostruire il testo vero a partire dal testo cifrato, in modo tale che k K e k E, d k D: x P d k e k x = x
Si è soliti considerare P = C = Z 26 Ovvero ad ogni lettera dell alfabeto in chiaro viene assegnato il numero x 0,, 25 corrispondente alla sua posizione nell alfabeto. A, B, C, D,., X, Y, Z 0, 1, 2, 3,.., 23, 24, 25
Protagonisti In generale, faremo comunicare tre personaggi: Alice, Bob e Oscar Scopo di A e B è quello di comunicare attraverso un canale sicuro, Scopo del nemico O è quello di infrangere il crittosistema ovvero riuscire a determinare la chiave segreta k.
Crittografia a chiave simmetrica o privata In questi crittosistemi la chiave utilizzata per la codifica del messaggio è la stessa utilizzata anche per la decodifica. Soltanto A e B sono in possesso di questa chiave. A e B devono aver stabilito in precedenza la chiave di comune accordo.
Shift Cipher (crittosistema di scorrimento) P = C = K = Z 26 Dati x P, k K y = e k x = x + k mmm 26 x = d k y = y k mmm 26 Il sistema consiste in una semplice traslazione di tutte le lettere dell alfabeto di un numero prestabilito di posizioni, che costituisce la chiave.
Esempio: C R I T T O S I S T E M A 2 17 8 19 19 14 18 8 18 19 4 12 0 k = 4 6 21 12 23 23 18 22 12 22 23 8 16 4 G V M X X S W M W X I Q E
Cenni Storici Giulio Cesare Svetonio, nella Vita dei Cesari, racconta che lo Shift Cipher è uno dei metodi usati dal grande condottiero. Nel Cifrario di Cesare la chiave scelta è k = 3 Ogni singola lettera dell'alfabeto in chiaro viene trasposta nella terza che la segue.
Osservazioni K = Z 26 = 26 Il crittosistema viene infranto con una ricerca esaustiva delle chiavi! L analisi del testo cifrato può fornirci informazioni sul testo vero (se di senso compiuto!): - Analisi delle frequenze: nella lingua italiana le lettere più frequenti sono a,e,i mentre le meno usate q,z - Lettere consecutive identiche saranno molto probabilmente consonanti - La maggior parte delle parole termina con a,e,i,o
Aritmetica Modulare Pietro, Alice e Mario vogliono giocare a nascondino e devono decidere chi si deve accecare. Fanno la conta.
Aritmetica Modulare Da Pietro ultimo Mario. Pietro 4 3 Alice 1 Mario Somma = 8 vince Alice
Aritmetica Modulare Riproviamo Da Pietro ultimo Mario. Pietro 1 2 Alice 2 Mario Somma = 5 vince Alice
Aritmetica Modulare Riproviamo Da Pietro ultimo Mario. Pietro 5 5 Alice 4 Mario Somma = 14 vince Alice
Aritmetica Modulare Le tre conte sono equivalenti: 8, 5, 14 danno infatti tutti lo stesso risultato, sono congruenti modulo 3. Siano a e b due interi e m un intero strettamente positivo, detto modulo. Si dice che a e b sono congruenti modulo m se m divide a b. In simboli: a b mmm m.
Affine Cipher (crittosistema affine) P = C = Z 26 K = a, b : a Z 26, b Z 26 Dati x P, k K y = e k x = aa + b mmm 26 x = d k y = a 1 y b mmm 26 Per garantire l esistenza dell elemento a 1, inverso moltiplicativo di a, e quindi il corretto funzionamento della funzione di decodifica è necessario che a appartenga al gruppo degli invertibili di Z 26.
Osservazioni Z 26 = 26 Z 26 = φ(26) = 12 K = 12 26 Nuovamente, il crittosistema viene infranto con una ricerca esaustiva delle chiavi!
Substitution Cipher (crittosistema di sostituzione) P = C = Z 26 K = SSS 26 Dati x P, σ K y = e σ x = σ x x = d σ y = σ 1 y Il sistema consiste nell applicare una permutazione su 26 elementi durante la codifica del messaggio e nell applicare la sua inversa durante la decodifica.
Esempio: C R I T T O S I S T E M A 2 17 8 19 19 14 18 8 18 19 4 12 0 k = σ = 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 2 4 5 9 7 8 1 0 3 6 19 11 21 16 23 12 20 10 18 14 22 13 25 24 17 15 5 10 3 14 14 23 18 3 18 14 7 21 2 F K D O O X S D S O H V C
Osservazioni K = SSS 26 = 26! Nuovamente, il crittosistema viene infranto con una ricerca esaustiva delle chiavi! CRITTOSISTEMI MONOALFABETICI: Ogni lettera è cifrata indipendentemente dalla posizione che occupa nel messaggio da inviare CRITTOSISTEMI POLIALFABETICI: La cifratura della lettera dipende dalla posizione che occupa nel messaggio da inviare
Crittosistema di Vigenère m P = C = K = Z 26 Dati x = x 1,, x m P k = k 1,, k m K con m Z lunghezza del messaggio y = e k x = x 1 + k 1,, x m + k m mmm 26 x = d k y = y 1 k 1,, y m k m mmm 26 Il sistema consiste nell applicazione di più shift cipher distinti, ciascuno su ogni lettera.
Esempio: C R I T T O S I S T E M A 2 17 8 19 19 14 18 8 18 19 4 12 0 13 k = 2, 15, 21,3,0,16,11,5,4,7,13,4,2 Z 26 4 6 3 22 19 4 3 13 22 0 17 16 2 E G D W T E D N W A R Q C
Osservazioni K = Z m 26 = 26 m Il crittosistema venne infranto nella seconda metà del 1800! L analisi del testo cifrato non riesce più a fornirci informazioni sul testo vero (anche se di senso compiuto!): - A lettere uguali del testo cifrato non è detto corrispondano lettere uguali del testo vero - Lettere consecutive identiche non è detto siano consonanti
Permutation Cipher m P = C = Z 26 con m Z lunghezza del messaggio K = SSS m Dati x = x 1,, x m P, σ K y = e σ x = x σ 1,, x σ m x = d k y = y σ 1 1,, x σ 1 m Il sistema consiste nell applicare la permutazione alle posizioni delle lettere e spostarle di conseguenza. Il messaggio cifrato è, a tutti gli effetti, un anagramma del messaggio originale.
Esempio: C R I T T O S I S T E M A 2 17 8 19 19 14 18 8 18 19 4 12 0 2 8 14 17 19 8 19 18 19 0 12 18 4 C I O R T I T S T A M S E
Osservazioni K = SSS m = m! Nuovamente, il crittosistema viene infranto con una ricerca esaustiva delle chiavi!
Cenni Storici - Enigma Molto simile ad una macchina da scrivere, fu inventata nel 1918 da Arthur Scherbius. Fu utilizzata dal servizio delle forze armate tedesche durante la seconda Guerra Mondiale. I crittografi britannici e il gruppo di lavoro del matematico inglese Alan Turing, con la collaborazione del matematico polacco Marin Rejewsky e l'aiuto di calcolatori elettromeccanici detti "bombes", permisero all'intelligence inglese di decifrare importanti messaggi in codice dell'esercito del Reich.
Struttura di Enigma
Prova tu!
Crittografia a chiave asimmetrica o pubblica A e B sono in possesso di due chiavi diverse per la codifica e la decodifica del messaggio. La chiave utilizzata per la codifica del messaggio è pubblica, mentre la chiave utilizzata per la decodifica è privata. Chiunque può utilizzare la chiave pubblica per criptare un messaggio, ma solo il proprietario della chiave segreta sarà in grado di leggerne il contenuto. A e B non hanno più una chiave comune da dover stabilire in precedenza o comunicarsi in maniera sicura.
Metodo dello scambio di chiavi di Diffie - Hellman A e B scelgono pubblicamente un gruppo finito G e un elemento g G, A sceglie privatamente un intero a e calcola c = g a G, B sceglie privatamente un intero b e calcola d = g b G, A invia a B l elemento c così ottenuto, B invia a A l elemento d così ottenuto,
A questo punto: A riceve d e calcola k = d a = B riceve c e calcola k = c b = g b a = g bb g a b = g aa Chiaramente, A e B ottengono lo stesso risultato che può essere utilizzato direttamente come chiave senza bisogno di averla precedentemente stabilita!
Il crittosistema RSA Uno dei cifrari asimmetrici più conosciuti è l algoritmo RSA, acronimo formato dalla prima lettera dei cognomi di coloro che lo inventarono nell'aprile del 1977 segnando una svolta nella storia della Crittografia: Ronald L. Rivest, Adi Shamir Leonard M. Adleman.
A genera le sue chiavi pubbliche e private A genera due numeri primi distinti p e q segreti e calcola il prodotto n = pp che viene reso pubblico A calcola φ n = (p 1)(q 1) segreta A sceglie un intero b: 1 < b < φ(n) L intero b è pubblico b, φ n = 1 A calcola un intero a: aa 1 mmm φ(n) L intero a è segreto
Ricapitolando: Utente Chiave pubblica Chiave privata A (n, b) (p, q, a) Ogni utente del sistema ha, quindi, una coppia di chiavi pubbliche che vengono pubblicate da un ente che ne garantisce l autenticità. Utilizzando queste chiavi, che chiunque può leggere, è possibile cifrare un messaggio che può essere decodificato solo dal possessore delle chiavi pubbliche con cui è stato cifrato!
B invia un messaggio cifrato ad A B legge la chiave pubblica di A Chiave pubblica (n, b) B codifica il messaggio m utilizzando la chiave pubblica di A, calcolando c m b mmm n B invia il messaggio cifrato c ad A
A decodifica il messaggio ricevuto A riceve il messaggio cifrato c da B A decodifica il messaggio, utilizzando la sua chiave privata, calcolando m c a mmm n Infatti m mb a mmm n m m bb mmm n ricordando che aa 1 mmm φ(n).
Il crittosistema RSA P = C = Z n dove n = pp K = n, p, q, a, b : aa 1 mmm φ(n) Dati x P, k K y = e k x = x b mmm n x = d k y = y a mmm n Infatti y a x bb mmm n y a x (tt n +1) mmm n y a xφ n t y a x x mmm n mmm n
Osservazioni I primi distinti p e q sono dell ordine di almeno 2 300. Gli utenti A e B non devono scambiarsi nessuna chiave in maniera sicura. L algoritmo RSA viene considerato sicuro perché si ritiene che solo individuando i fattori primi della chiave pubblica n sia possibile decifrare il messaggio. Tale problema è ritenuto ancora oggi irrisolvibile. Anche il calcolo della funzione di Eulero, senza conoscere i fattori primi di n, comporta una complessità paragonabile alla fattorizzazione.
RSA resta, ad oggi, un cifrario inviolato!
A dire il vero La mole di calcoli aritmetici (elevamento a potenza in un aritmetica finita) per numeri così grandi si traduce in una lentezza computazionale del processo di codifica RSA è di solito utilizzato per trasmettere la chiave segreta di un crittosistema a chiave privata con cui viene codificato il messaggio
Fondamenti teorici - I numeri primi Risultati fondamentali: Esistenza di infiniti numeri primi Teorema fondamentale dell aritmetica Sappiamo ancora molto poco sui numeri primi: Non si conosce una formula che permetta di generare numeri primi Non si conosce la distribuzione dei numeri primi Non si conoscono metodi veloce per stabilire se un numero è primo (test di primalità) Non si conoscono metodi veloci di fattorizzazione
Fondamenti teorici La funzione di Eulero La funzione di Eulero associa ad ogni numero n il numero dei numeri interi coprimi con n e minori di n, compreso l 1. Es. φ 18 = 6 I numeri coprimi con 18 sono 1, 5, 7, 11, 13, 17 Risultati fondamentali: φ n = n 1 1 n 1 1 1 n t dove n 1,, n t sono i fattori primi distinti di n φ p = p 1 con p primo φ pp = (p 1) q 1 con p, q primi
Fondamenti teorici Eulero, Fermat Piccolo teorema di Fermat: Dato un intero p primo, per ogni intero a si ha che a p a mmm p Il Teorema di Eulero - Fermat: Dati due interi qualsiasi a,n tali che a, n = 1 si ha che a φ(n) 1 mmm n
Fondamenti teorici Il Teorema cinese del resto Se m, n Z soddisfano m, n = 1, il sistema di congruenze x a mmm m x b mmm n Ammette soluzione per ogni scelta di a, b Z, che è unica modulo mn. Il cifrario RSA deve fare calcoli modulo pq, dove p e q sono numeri primi molto grandi! Il teorema cinese del resto permette di fare calcoli in modulo p e q con una sensibile riduzione di tempi.