1. ● La crittografia (dal greco kryptos, nascosto, e graphein, scrivere) è la scienza che si occupa dello studio delle scritture segrete. ● La crittografia non mira a nascondere il messaggio in sé, ma il suo significato. ● E’ nata come branca della matematica e dell’informatica grazie all’utilizzo di tecniche di teoria dei numeri e di teoria dell’informazione. ● Insieme delle tecniche che consentono di realizzare la cifratura di un testo e la decifrazione di un crittogramma. Dizionario Garzanti (1972) BQHSSNFQZEHZ CRITTOGRAFIA
2. Origini storiche ● La crittografia è una scienza antichissima utilizzata nell’antichità per nascondere messaggi tra regnanti, imperatori, nobili. ● La scìtala lacedemonica è un antico esempio di un sistema per cifrare messaggi tramite l’utilizzo di un bastone cilindrico, cifrario a trasposizione (secondo gli scritti di Plutarco, in uso dai tempi di Licurgo, IX sec a.C.). ● Il periodo d’oro della crittologia è relativo alla seconda guerra mondiale quando Alan Turing, il padre dell’informatica teorica, insieme al gruppo di ricerca del Bletchley Park formalizzò la matematica necessaria per uno studio sistematico dei cifrari.
3. Le operazioni di cifratura e decifrazione ● Definiamo con Msg l’insieme di tutti i messaggi e con Critto l’insieme di tutti i crittogrammi. ● Cifratura : operazione (funzione) con cui si trasforma un generico messaggio in chiaro (plaintext) m in un crittogramma (ciphertext) c applicando una funzione C : Msg Critto. ● Decifrazione : operazione che permette di ricavare il messaggio in chiaro m a partire dal crittogramma c applicando una funzione D : Critto Msg. ● Matematicamente D(C(m))=m le funzioni C e D sono una inversa dell’altra e la funzione C deve essere iniettiva, ossia a messaggi diversi devono corrispondere crittogrammi diversi.
4. Che cos’è un cifrario? ● Un cifrario è un sistema, di qualsiasi tipo, in grado di trasformare un testo in chiaro (messaggio) in un testo inintellegibile (testo cifrato o crittogramma). ● Per poter utilizzare un cifrario è necessario definire due operazioni: la cifratura del messaggio e la decifrazione del crittogramma. Testo in chiaro Testo cifrato (messaggio) ( Crittogramma) CIFRARIO
5. Scacchiera di Polibio Polibio fu uno scrittore greco che inventò un sistema per convertire caratteri alfabetici in caratteri numerici . La traduzione nell’attuale alfabeto si ottiene "fondendo" k e q , due lettere rare ma non foneticamente differenti (nella lingua inglese), nella stessa casella. In questo modo si otterrà la seguente tabella : Z Y X W V 5 U T S R P 4 O N M L KQ 3 J I H G F 2 E D C B A 1 5 4 3 2 1 @
6. Ogni lettera viene quindi rappresentata da due numeri , guardando la riga e la colonna in cui la lettera si trova. Per esempio, a=11 r=42. Quindi la frase: “ Attenzione agli scogli “ dopo la cifratura risulterà: 1144441534552435341511223224431335223224 | | | | | | | | | | A t t e n z i o n e ………………………………… Per certi aspetti è il precursore del moderno codice ASCII 01100001 a 01100010 b 01110100 t ecc….
7. Algoritmo e chiave sono le due componenti principali di ogni sistema di crittografia, componenti che permettono il passaggio dal messaggio in chiaro al messaggio cifrato (o criptato) e viceversa. Cifrari manuali • Cifrari a sostituzione monoalfabetica : Si utilizza un alfabeto sostitutivo con una permutazione della posizione delle lettere. • Cifrario di Cesare : ogni lettera viene sostituita da quella che la segue di tre posizioni nell’ordinamento normale dell’alfabeto (in maniera circolare).
8. Un esempio di cifrario: il cifrario di Cesare ● Consideriamo l’alfabeto italiano, costruiamo un cifrario che sostituisce ad ogni lettera di questo alfabeto la lettera che si trova 3 posizioni in avanti. a b c d e f g h i l m n o p q r s t u v z | | | | | | | | | | | | | | | | | | | | | d e f g h i l m n o p q r s t u v z a b c ● Ad esempio il testo in chiaro “ prova di trasmissione” viene cifrato nel crittogramma surbd gn zudvpnvvnrqh
9. CIFRARIO DI CESARE In termini matematici: C(x)= (x+3) mod 21 D(x)= (x-3) mod 21 (dove x rappresenta la posizione della lettera nell’alfabeto). • Esempio: “a”=1 per cui C(1)=(1+3) mod 21= 4 ossia la lettera “a” viene cifrata con la lettera “d”, poiché “d”=4. Per decifrare utilizzo D(4)=(4-3) mod 21 = 1, ossia “a”. C B A Z V U T S R Q P O N M L I H G F E D Z V U T S R Q P O N M L I H G F E D C B A
10. SOSTITUZIONE MONOALFABETICA Una generalizzazione del cifrario di Cesare si ottiene con la funzione: C(x)= (x+k) mod 21 dove k è la chiave scelta per criptare D(x)= (x-k) mod 21 per decriptare con la stessa chiave k
11. La crittografia simmetrica ● Introduciamo un parametro chiamato k (key= chiave) all’interno delle funzioni di cifratura C(m,k) e decifrazione D(c,k). ● Si parla di crittografia simmetrica perchè si utilizza la stessa chiave k per le operazioni di cifratura e decifrazione. ● La robustezza del cifrario dipende solo dalla segretezza della chiave k.
12. Testo in chiaro Testo cifrato (messaggio) ( Crittogramma) CIFRARIO CHIAVE (Key) Se l’utente A vuole comunicare con B, insieme devono concordare un algoritmo di cifratura ed una chiave K. Se A vuole trasmettere un messaggio riservato a B dovrà cifrarlo usando l’algoritmo e la chiave prescelta, in questo modo il testo sarà trasformato in una sequenza incomprensibile di caratteri. L’utente B potrà decifrare il testo utilizzando lo stesso algoritmo e la stessa chiave .
13. TRASPOSIZIONE Cifrari manuali (a trasposizione) • Si utilizzano degli schemi di trasposizione della posizione dei caratteri in un testo in chiaro. • Si fissa un numero intero P , detto periodo della traposizione , e si sceglie una permutazione degli interi da 1 a P, ad esempio per P=7: P=7 permutazione • Il messaggio viene suddiviso in blocchi di lunghezza P Ad esempio il crittogramma corrispondente a: “ FUGGIPR/IMADELT/RAMONTO” è ” GPGIRFU/DLAETIM/OTMNORA” • Con questo cifrario le lettere vengono semplicemente “rimescolate” 2 1 7 5 3 6 4 7 6 5 4 3 2 1
14. Analizziamo adesso la trasposizione per colonna che, data una certa chiave , costruisce il testo cifrato in base al riordinamento del testo sulle colonne della chiave . Esempio per chiarire il concetto . Prendiamo una chiave qualsiasi : chiave = BOOKS Messaggio in chiaro msg = “ciao domani ti porto quel carico” B O O K S c i a o d o m a n i CHIAVE ORDINATA: t i p o r B K O O S t o q u e l c a r i c o di questa tabella si prendono le colonne in ordine alfabetico basate sulle lettere delle chiavi, in questo caso prima la colonna B poi K poi le colonne con due O e infine la colonna con la lettera S. Infine avremo: testo in chiaro : ciao domani ti porto quel carico testo crittografato : cottlc onour imioco aapqa direi chiave : books
15. Cifrari a sostituzione polialfabetica Il più famoso cifrario a sostituzione polialfabetica è il cifrario di Vigenère (Blaise de Vigenère, XVI sec.). • Si utilizza una parola-chiave per identificare la riga corrispondente per la sostituzione con il relativo alfabeto individuato. • Ad esempio con la parola-chiave MENSA, voglio cifrare la parola “ I NTELL I GENZA” testo in chiaro MENSAMENSAM chiave ” U RHZLV O TZNLE” crittogramma • Ogni lettera nel testo in chiaro non viene sempre sostituita con la stessa lettera nel crittogramma.
16. Esso utilizza una matrice 21x21 i cui elementi sono le lettere dell’alfabeto secondo questa disposizione V U T S R Q P O N M L I H G F E D C B A Z U T S R Q P O N M L I H G F E D C B A Z V . . . . . . . . . . . . . . . . . . . . . L I H G F E D C B A Z V U T S R Q P O N M . . . . . . . . . . . . . . . . . . . . . E D C B A Z V U T S R Q P O N M L I H G F D C B A Z V U T S R Q P O N M L I H G F E C B A Z V U T S R Q P O N M L I H G F E D B A Z V U T S R Q P O N M L I H G F E D C A Z V U T S R Q P O N M L I H G F E D C B Z V U T S R Q P O N M L I H G F E D C B A
17. ESEMPIO Supponiamo di volere codifificare il seguente messaggio con il codice di Vigenère usando la parola chiave Alberto Messaggio ci vediamo al solito posto domani mattina TRASFORMAZIONE (CODIFICA) alberto alberto alberto alberto alberto CHIAVE civedia moalsol itopost odomani mattina TESTO ctwiub mzeclhz ieptflg oopqrgw mluxzgo CRIPTO
18. Crittoanalisi statistica • Il cifrario di Cesare, come la maggior parte dei cifrari storici basati tu trasposizioni e traslazioni, può essere facilmente violato utilizzando tecniche statistiche ( crittoanalisi statistica ). • Si analizzano le frequenze relative dei caratteri nel testo cifrato e le si confrontano con quelle di una lingua conosciuta, ad esempio l'italiano.
19. Un esempio di tavola delle frequenze, calcolate su di un testo di 1000 caratteri, è la seguente: 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 | | 103 9 43 38 126 8 20 11 116 0 0 66 26 66 87 32 6 67 61 61 30 15 0 0 0 9 A partire da una stima delle frequenze dei caratteri singoli dell'alfabeto nelle parole di un linguaggio, dei bigrammi (coppie di caratteri) e dei trigrammi (triple di caratteri) è possibile, procedendo per tentativi, individuare la permutazione che è stata usata nella cifratura. Ovviamente, le frequenze delle lettere dipendono dal tipo di testo considerato. Se il testo è sufficientemente lungo la cifratura è possibile
20. • Le frequenze relative al testo cifrato “ surbd gn zudvpnvvnrqh ” risultano: s (1/19) u (2/19) r (2/19) b (1/19) d (2/19) g (2/19) n (3/19) z (1/19) v (3/19) p (1/19) h (1/19).
21. Analizzando il testo cifrato : surbd gn zudvpnvvnrqh derivato dal testo in chiaro prova di trasmissione • Si confrontano tali frequenze con quelle della lingua italiana: a (0,114), e (0,111), i (0,104), o (0,099), t (0,068), r (0,065),... • Con queste informazioni ottengo una prima approssimazione del testo in chiaro “s ro b a g i z ra vp i vv io qh”, procedo per tentativi ripetendo il procedimento.
22. • Principio di Kerckhoffs (1883) • “ La sicurezza di un sistema crittografico è basata esclusivamente sulla conoscenza della chiave.