“L’ingegno umano non riuscirà mai a concepire un cifrario di cui l’ingegno stesso non possa scoprire la chiave” Edgard Allan Poe STORIA DELLA CRITTOGRAFIA Presentata da: Attianese Caterina D’Incecco Paolo Zotti Rosanna GENESI DELLA CRITTOGRAFIA La crittografia (dal greco Kryptòs, che significa "nascosto" e gràphein che significa "scrittura") è la scienza che si occupa dello studio delle scritture “segrete”. E’ nata come branca della matematica e dell’informatica grazie all’utilizzo di tecniche di teoria dei numeri e di teoria dell’informazione. E’ entrata a far parte della nostra vita quotidiana per la protezione delle informazioni digitali, dalle smart card, ai cellulari, alle trasmissioni via Internet, alle tv satellitari, etc. GENESI DELLA CRITTOGRAFIA 1900 A.C. La storia della crittografia è antica quasi quanto la scrittura stessa. Nella città di Menet Khufu (Nilo), sono state rilevate manomissioni volontarie in un testo ritrovato nella Tomba del faraone Knumotete II datato intorno al 1900 A.C. GENESI DELLA CRITTOGRAFIA Anche nelle scritture cuneiformi sviluppate in Mesopotamia sono stati ritrovati esempi di crittografia. Sia presso gli Assiri sia presso i Babilonesi, le due grosse civiltà sorte sulle sponde del Tigri, è stata rinvenuta l'usanza di sostituire le parti terminali delle parole con elementi corti e stereotipati detti colofoni. In Iraq, nel periodo finale delle scritture cuneiformi, è presente per la prima volta la sostituzione di nomi con numeri. CRITTOGRAFIA ANTICA: 400 a.C SCITALA LACEDEMONICA Plutarco descrive la scitala lacedemonica come un codice di cifratura in uso dai tempi di Licurgo (IX sec a.C.), circa tremila anni fa. Si trattava di un dispositivo di cifratura costituito da un bastone e da un nastro di cuoio avvolto a spirale cilindrica, su cui il messaggio veniva scritto per colonne. Sul nastro srotolato le lettere risultavano trasposte in modo tale che solo l’adozione di un bastone identico a quello originariamente usato per la scrittura del messaggio consentiva di ricomporre il testo. CRITTOGRAFIA ANTICA: 360-390 A.C. Enea il Tattico, generale della Lega Arcadica, scrive il primo trattato sui cifrari. Nel XXI capitolo, che tratta appunto di messaggi segreti, viene descritto un disco sulla zona esterna del quale erano contenuti 24 fori, contrassegnati dalle lettere disposte in ordine alfabetico. Un filo, partendo da un foro centrale, si avvolgeva passando per i fori delle successive lettere del testo. Il destinatario del messaggio svolgeva il filo dal disco segnando le lettere da esso indicate. Il testo si doveva poi leggere a rovescio. CRITTOGRAFIA ANTICA: L’ATBASH ebraico E’ una tecnica di trasformazione ad alfabeto capovolto: Il primo carattere dell'alfabeto viene sostituito con l'ultimo, il secondo con il penultimo e così via. Infatti la prima lettera dell'alfabeto ebraico (Aleph) viene cifrata con l'ultima (Taw), la seconda (Beth) viene cifrata con la penultima (Shin); da queste quattro lettere è derivato il nome di Atbash (A con T, B con SH) per questo codice. CRITTOGRAFIA ANTICA: L’ATBASH ebraico L'Atbash viene utilizzato nella Bibbia per cifrare il nome della città di Babilonia. Geremia, 25: “… il re di Sesac”; si tratta invece del re di Babel. CRITTOGRAFIA ANTICA: L’ATBASH ebraico Usando l' attuale alfabeto ordinario, l' Atbash è espresso dalla seguente tabella di cifratura: Quindi il messaggio “Il Libro di Geremia” diviene : Messaggio: I l L i b r o d i G e r e m i a TestoCifrato R o O r y i l w r T v i v n r z CRITTOGRAFIA ANTICA: L’ Albam ebraico L'Albam richiede che l'alfabeto venga diviso in due parti e che ogni lettera venga sostituita con la corrispondente dell'altra metà. A B C D E F G H I L M N O P Q R S T U V W X Y Z CRITTOGRAFIA ANTICA: L’ Atbah ebraico L'Atbah, richiede che la sostituzione soddisfi una relazione di tipo numerico. Le prime nove lettere dell'alfabeto vengono sostituite in modo tale che la somma della lettera da sostituire e della lettera sostituente risulti uguale a dieci. Per le restanti lettere dell'alfabeto deve valere una regola simile con somma pari a 28 in decimale. In sintesi: per le prime nove: lettera da sostituire + lettera sostituente = 10 per le rimanenti: lettera da sostituire + lettera sostituente = 28 CRITTOGRAFIA ANTICA: 200-118 A.C. La scacchiera di Polibio Lo storico greco Polibio nelle sue Storie (Libro X) descrive un interessante metodo di cifratura. L'idea è quella di cifrare una lettera con una coppia di numeri compresi tra 1 e 5, in base ad una matrice 5x5, contenente le lettere dell'alfabeto. Ogni lettera viene rappresentata da due numeri, guardando la riga e la colonna in cui essa si trova. CRITTOGRAFIA ANTICA: 200-118 A.C. La scacchiera di Polibio Nell'alfabeto greco ci sono 24 lettere ed avanza quindi un carattere che Polibio proponeva di usare come segnale di sincronizzazione (inizio e fine trasmissione). Nell'esempio seguente si utilizzerà, al posto di quello greco, l'alfabeto internazionale il quale ha viceversa il difetto di essere formato da 26 caratteri; così per poter costruire il quadrato necessario per la cifratura bisognerà "fondere" due lettere rare nella stessa casella, in questo caso la k e la q. Si otterrà la seguente tabella: CRITTOGRAFIA ANTICA: 200-118 A.C. La scacchiera di Polibio Ogni lettera può venire quindi rappresentata da due numeri guardando la riga e la colonna in cui la lettera si trova. testo in chiaro: C A S A testo cifrato: (1,3) (1,1) (4,3) (1,1) CRITTOGRAFIA ANTICA: 200-118 A.C. La scacchiera di Polibio Polibio suggeriva di mandare tanti messaggeri quanti erano i caratteri del messaggio. Questi portavano nella mano sinistra un numero di torce pari all'indice di riga e nella mano destra un numero pari all'indice di colonna. Avremo così: A (1,1) Ovvero una torcia accesa a sinistra ed una a destra; B (1,2) Una torcia a sinistra e due a destra; Il metodo presentato non è un vero e proprio sistema di cifratura, però può essere utilizzato come rafforzamento di un altro sistema, specie disponendo le lettere all’interno della scacchiera in ordine casuale. CRITTOGRAFIA ROMANA: 100 – 44 A.C. Cifrario di Cesare e Augusto Scarse sono le notizie sulla crittografia romana. Si sa solo che Giulio Cesare ed Augusto nelle loro corrispondenze con i familiari usavano un alfabeto spostato di pochi posti. A fornircene informazioni è solo Svetonio. È noto che altri sistemi, spesso molto originali, erano stati usati anche in precedenza, ma questo di Cesare è forse il primo a non essere occasionale: propone un metodo, un sistema, che è ripetibile con chiavi diverse. CRITTOGRAFIA ROMANA: 100 – 44 A.C. Cifrario di Cesare Svetonio nella Vita dei dodici Cesari racconta che Giulio Cesare usava per le sue corrispondenze riservate un codice di sostituzione molto semplice, nel quale la lettera chiara veniva sostituita dalla lettera che la segue di tre posti nell'alfabeto: la lettera A è sostituita dalla D, la B dalla E e così via fino alle ultime lettere che sono cifrate con le prime. Giulio Cesare CRITTOGRAFIA ROMANA: 100 – 44 A.C. Cifrario di Cesare Nella tabella che segue vediamo la struttura del Cifrario facendo riferimento all'odierno alfabeto internazionale: Prendendo come esempio la frase Auguri di buon compleanno si otterrà il seguente messaggio cifrato: Chiaro Cifrato auguridibuoncompleanno dxjxulglexrqfrpsohdqqr Più in generale si dice codice di Cesare un codice nel quale la lettera del messaggio chiaro viene spostata di un numero fisso di posti, non necessariamente tre. CRITTOGRAFIA ROMANA: 100 – 44 A.C. Cifrario di Augusto Si tratta di una notevole miglioria rispetto al sistema inventato da Giulio Cesare: invece di avere una chiave di crittazione fissa, (esempio A=D; B=E ecc.), nel metodo di Augusto veniva usata come chiave un testo qualsiasi. Questo testo chiave, sommato al testo da cifrare tramite somma delle distanze da inizio alfabeto, generava il testo cifrato. Augusto CRITTOGRAFIA ROMANA: 100 – 44 A.C. Cifrario di Augusto Supponiamo che: Parola da cifrare sia “segreto” Testo chiave sia “una rondine non fa primavera” Per aiutare la comprensione dell’esempio utilizziamo questa tabella di corrispondenza fra lettere e posizione nell’alfabeto. ABCDEFGHI J K L MN O P Q R S T U V WX Y Z 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 26 CRITTOGRAFIA ROMANA: 100 – 44 A.C. Cifrario di Augusto Vediamo come avviene la cifratura di “SEGRETO” ABCDEFGHI J K L MN O P Q R S T U V WX Y Z 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 26 Testo: S E G R E T O Valore: 19 5 7 18 5 20 15 Chiave U N A R O N D I N E Valore 21 14 1 18 15 14 4 Somma 40 19 8 36 20 34 19 9 14 5 CRITTOGRAFIA ROMANA: 100 – 44 A.C. Cifrario di Augusto I valori eccedenti 26 non potrebbero essere utilizzati per effettuare la corrispondenza valore/lettera. Il sistema risolve il problema imponendo di iniziare il conteggio di nuovo da inizio alfabeto. Questo sistema è chiamato somma con modulo. In questo caso avremo la trasformazione delle somma in questo modo: Somma 40 19 8 36 20 34 19 Diventa 14 19 8 10 20 8 19 CRITTOGRAFIA ROMANA: 100 – 44 A.C. Cifrario di Augusto Il testo crittografato sarà quindi: ABCDEFGHI J K L MN O P Q R S T U V WX Y Z 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 26 Testo S E 14 19 G R E T 8 10 20 O 8 19 Testo Cifrato N S H J T H S CRITTOGRAFIA ANTICA: V secolo D.C. . In India - Kama Sutra: nel V secolo D.C ., fra le 64 arti che le donne dovevano conoscere, vi era la 45-esima Mlecchita-vikalpa che consisteva nella capacità di scrivere in maniera cifrata. Una delle tecniche raccomandate consisteva nell’accoppiare in modo casuale le lettere dell’alfabeto e nel sostituire ciascuna lettera del testo con quella a lei accoppiata CRITTOGRAFIA MEDIOEVALE: 1363 – 1365 Pietro di Grazia Il sistema usato dall'Arcivescovo di Napoli, Pietro di Grazia, é quello in cui le lettere sono cifrate con numeri o simboli speciali. La corrispondenza tra lettere e simboli o numeri per la sostituzione è fissata da una tabella. Dagli inizi del XIV secolo, per depistare i tentativi di analisi statistica delle frequenze, si iniziano ad usare più segni per cifrare le vocali, dato che queste sono molto ricorrenti in un testo. Successivamente tale tecnica viene estesa anche alle consonanti più ricorrenti. Inoltre alcune parole, utilizzate frequentemente, (Papa, et, con, quo, etc.) sono sostituite con un solo simbolo. CRITTOGRAFIA MEDIOEVALE: 1363 – 1365 Pietro di Grazia Un primo esempio di questa cifratura è la lettera di Michele Steno scritta nel 1411. CRITTOGRAFIA MEDIOEVALE: 1378 - Nomenclatore di Lavinde Nel 1378, dopo lo scisma di Avignone, l'antipapa Clemente VII° decise di unificare i sistemi di cifrature dell'Italia Settentrionale ed affidò tale compito a Gabriele Lavinde; in Vaticano è conservato un suo manuale del 1379. Il nomenclatore di Gabriele Lavinde, sfrutta una lista di codici, un alfabeto di sostituzione, ed una lista di parole nulle. CRITTOGRAFIA MEDIOEVALE: 1378 - Nomenclatore di Lavinde La lista dei codici è un elenco di corrispondenze tra parole, come ad esempio: Laboratorio = Mare Portare = Cavallo Progetto = Dondolo Segreto = Vento L'alfabeto di sostituzione è una corrispondenza tra caratteri, come ad esempio: ABCDEFGHIJKLMNOPQRSTUVWXYZ BCEHFADGZIPJOLNYWMXKTQURSV CRITTOGRAFIA MEDIOEVALE: 1378 - Nomenclatore di Lavinde La lista di parole nulle viene usata come disturbo per la crittoanalisi ed è composta da parole che devono semplicemente essere scartate dal destinatario che si appresta alla decifratura. Con le impostazioni di esempio Laboratorio = Mare Portare = Cavallo Progetto = Dondolo Segreto = Vento un messaggio tipo: “Portare il progetto segreto al Laboratorio”, sarebbe trasformato come “Cavallo il dondolo vento al mare”. CRITTOGRAFIA MEDIOEVALE: 1378 - Nomenclatore di Lavinde Applicando qualche parola nulla, si potrebbe trasformare il testo in “Pasta cavallo il dondolo alto vento al mare cubo”. Applichiamo adesso l'alfabeto di sostituzione ottenendo all'ultimo cifrato: ABCDEFGHIJKLMNOPQRSTUVWXYZ BCEHFADGZIPJOLNYWMXKTQURSV Pasta=Ybxkb il=zj alto=bjkn al=bj cubo=etcn Cavallo=ebqbjjn dondolo=hnlhnjn vento=qflkn mare=obmf Risultato: “Ybxkb ebqbjjn zj hnlhnjn bjkn qflkn bj obmf etcn” CRITTOGRAFIA fino al XVIII secolo: 1466 - Leon Battista Alberti Leon Battista produsse un manoscritto in cui si trovava una scientifica dissertazione di come è composto un testo latino. Egli notò che senza vocali non si hanno sillabe, e che se, in un dato testo, si hanno 300 vocali, allora le consonanti saranno 400. Inoltre, la vocale o, pur essendo più frequente di ogni consonante, è comunque la meno probabile tra le vocali. Aggiunse l’osservazione che se una parola finisce con una consonante, l’ultima lettera non può che essere t, s, x oppure c. CRITTOGRAFIA fino al XVIII secolo: 1466 - Leon Battista Alberti Osservò inoltre, che se in un testo vi sono più di 20 simboli diversi, allora si è in presenza di un metodo di crittografia omofono (alla stessa lettera del testo da cifrare corrispondono più simboli). Oppure vi sono dei null (simboli privi di significato) inseriti a bella posta per complicare il lavoro dei crittoanalisti, e questo perché in latino ed in italiano vi sono solo 20 lettere. Le sue acute osservazioni gli forniscono la base per ideare un sistema che lo consegnerà alla storia della crittografia. CRITTOGRAFIA fino al XVIII secolo: 1466 - Leon Battista Alberti Non esistendo i computers, si servì di 2 dischi di rame, uno più piccolo dell'altro, collegati al centro e liberi di ruotare indipendentemente. Sul disco più esterno erano riportate tutte le lettere dell'alfabeto ad esclusione di H,Y e K. Erano invece aggiunte le cifre 1, 2, 3 e 4. Sul disco interno erano invece presenti tutte le lettere dell'alfabeto più "et", in ordine casuale. Mittente e destinatario avevano entrambi la stessa macchinetta. Entrambi concordavano una lettera che sarebbe stata la chiave di partenza. CRITTOGRAFIA fino al XVIII secolo: 1466 - Leon Battista Alberti Per cifrare il messaggio, il mittente iniziava ruotando il disco interno in maniera casuale. Iniziava quindi a scrivere il testo cifrato, riportando per prima cosa la lettera sul disco piccolo in corrispondenza della chiave concordata sul disco grande. Passava quindi ad eseguire la sostituzione del testo prelevando i caratteri sul disco più piccolo in corrispondenza dei caratteri da cifrare sul disco più grande. Terminata la prima parola, ruotava di nuovo in maniera casuale il disco interno ed iniziava a scrivere la nuova parola riportando nel cifrato la lettera sul disco piccolo in corrispondenza della chiave concordata sul disco grande, seguita dalla parola le cui lettere venivano ancora sostituite dalla corrispondenza tra disco grande e disco piccolo. CRITTOGRAFIA fino al XVIII secolo: 1466 - Leon Battista Alberti Mettiamo di dover cifrare la frase "Messaggio da Leon". Iniziamo convenendo una lettera che fa da riferimento, diciamo la C. Ruotiamo a caso il disco interno e passiamo da una posizione di riposo a quest'altra situazione, con il disco interno posizionato come in figura a sinistra. Dato che il riferimento è la lettera C, iniziamo a scrivere il messaggio indicando al destinatario come deve ruotare il suo disco interno. Per farlo iniziamo la parola cifrata con Y, e ne deriva: Messaggio = YXHTTETSSRV CRITTOGRAFIA fino al XVIII secolo: 1466 - Leon Battista Alberti Nuova rotazione casuale e cifratura della seconda parola: Da = CETQ Nuova rotazione e cifratura: Leon = DGZNF Messaggio da Leon = YXHTTETSSRV CETQ DGZNF CRITTOGRAFIA fino al XVIII secolo: Germania 1490 - Johannes Trithemius Tabula Recta Johannes Trithemius nacque 60 dopo Leon Battista Alberti. Dopo anni di studi, Trithemius realizzò un metodo di crittografia che faceva uso di una tabula recta, che non era altro che una tabella di tante righe quanto è lungo l'alfabeto, righe riportanti ognuna un alfabeto scalato di una posizione rispetto a quello precedente. CRITTOGRAFIA fino al XVIII secolo: Germania 1490 - Johannes Trithemius Tabula Recta La tabella si usa così: la prima lettera da cifrare rimane la stessa, la seconda si cifra con il secondo alfabeto, la terza lettera userà il terzo alfabeto e così via fino a ricominciare dal primo alfabeto dopo la ventiseiesima lettera. CRITTOGRAFIA fino al XVIII secolo: 1554 - Girolamo Cardano Matematico e fisico milanese noto per la pubblicazione del primo libro sulla teoria della probabilità. La sua idea fu quella di usare come chiave di cifratura il testo stesso che doveva essere cifrato, ripartendo dall'inizio ad ogni nuova parola. La cifratura vera e propria viene effettuata sommando le lettere CRITTOGRAFIA fino al XVIII secolo: 1554 – Girolamo Cardano Un esempio chiarisce facilmente il concetto: Riportiamo la tabella di corrispondenza lettera/posizione per comodità Chiave : FRASE FR FRASEDA FRA FR FRASED FR FRASEDA Testo in chiaro: FRASE DA CIFRARE CON IL METODO DI CARDANO Testo cifrato: LJBLJ JS IAGKFVF IGO OD SWUHIS JA ISSWFRP CRITTOGRAFIA fino al XVIII secolo: 1553 - 1564 Giovan Battista Bellaso Introdusse un utilizzo della tabula recta più avanzato. Il sistema funzionava in questo modo: veniva concordata una frase chiave. Questa frase veniva accodata a sé stessa, tante volte quanto era lungo il testo in chiaro. S’iniziava quindi la cifratura del testo in chiaro prelevando il primo carattere della chiave ed utilizzandolo per stabilire quale doveva essere la riga della tabula recta. Si utilizzava quindi tale riga come alfabeto per il primo carattere del testo in chiaro. Si passava quindi a prelevare il secondo carattere della chiave per stabilire quale riga della tabula recta dovesse fungere da alfabeto per il secondo carattere del testo in chiaro e così via. In altre parole, la differenza rispetto al metodo di Trithemius consisteva nel variare alfabeto in base alla chiave, invece che in maniera sequenziale. CRITTOGRAFIA fino al XVIII secolo: 1553 - 1564 Giovan Battista Bellaso Esempio: Chiave del messaggio: "chiave" Testo da cifrare: "Tanti saluti" abcdefghijklmnopqrstuvwxyz bcdefghijklmnopqrstuvwxyza cdefghijklmnopqrstuvwxyzab defghijklmnopqrstuvwxyzabc efghijklmnopqrstuvwxyzabcd fghijklmnopqrstuvwxyzabcde ghijklmnopqrstuvwxyzabcdef hijklmnopqrstuvwxyzabcdefg ijklmnopqrstuvwxyzabcdefgh ... vwxyzabcdefghijklmnopqrstu ... zabcdefghijklmnopqrstuvwxy Testo cifrato: Vhvtd wcsctd CRITTOGRAFIA fino al XVIII secolo: 1563 – Tavola di Gianbattista Della Porta All’età di soli 28 anni pubblicò il libro De Furtivis Literarum Notis che lo consegnò alla storia della crittografia. Organizzato in quattro parti, illustra la crittografia secondo i metodi antichi, quella secondo i metodi moderni, la crittoanalisi e le caratteristiche linguistiche che aiutano nella crittoanalisi. Con riferimento alla Tavola, Della Porta utilizza la chiave come strumento di generazione del messaggio codificato. CRITTOGRAFIA fino al XVIII secolo: 1563 – Tavola di Gianbattista Della Porta Nella tavola di Della Porta le lettere minuscole scritte in testa danno il nome all'alfabeto di quella riga, che è ottenuto dividendo l'alfabeto in due parti di 13 lettere. Cosa ne facciamo della parola chiave? Ogni lettera di essa, ad esempio a, ci dice quale alfabeto dobbiamo usare per criptare la lettera del messaggio corrispondente. CRITTOGRAFIA fino al XVIII secolo: 1563 – Tavola di Gianbattista Della Porta Se la lettera della parola chiave che stiamo considerando è una a oppure una b, si cripta la lettera del testo corrispondente con l'alfabeto di nome ab, e così via. CRITTOGRAFIA fino al XVIII secolo: 1563 – Tavola di Gianbattista Della Porta ESEMPIO Testo in chiaro: TERAMOEUNACITTA Parola chiave: PORTAPORTAPORTA Testo cifrato: ??????????????? In primo luogo osserviamo che la parola chiave (porta) è ripetuta un numero di volte sufficienti a raggiungere la medesima lunghezza del testo in chiaro che, nel caso specifico, è costituito da 15 lettere. CRITTOGRAFIA fino al XVIII secolo: 1563 – Tavola di Gianbattista Della Porta Si procede ora nel seguente modo: stabiliamo in primo luogo una corrispondenza tra il testo in chiaro e la parola chiave. Utilizziamo poi la Tavola di Della Porta: poiché alla lettera T è associata la lettera P dobbiamo usare l'alfabeto op, cioè a T corrisponde A; analogamente alla lettera E è associata la lettera O per cui anche in questo caso dobbiamo utilizzare l'alfabeto op, cioè a E corrisponde X. CRITTOGRAFIA fino al XVIII secolo: 1563 – Tavola di Gianbattista Della Porta Proseguendo, alla lettera R (di Teramo) corrisponde la lettera R (di porta), quindi, questa volta, dobbiamo cambiare alfabeto, cioè usare qr (R corrisponde M); continuando in questo modo si ottiene infine: Testo cifrato: axmrzixcjnvobcn CRITTOGRAFIA fino al XVIII secolo: 1586 La congiura di Babington Nel 1586 Maria Stuarda, regina di Scozia, fu condannata a morte per aver cospirato contro la cugina Elisabetta La congiura, organizzata da Anthony Babington, prevedeva: La liberazione di Maria dalla prigionia in Inghilterra Maria Stuarda L’uccisione di Elisabetta Una ribellione alla religione protestante Sir Francis Walsingham, segretario di stato, provò che Maria aveva preso parte alla congiura. CRITTOGRAFIA fino al XVIII secolo: 1586 La congiura di Babington Maria e Babington comunicavano grazie a: Un corriere (Gilbert Gifford) Un birraio, che nascondeva i messaggi dentro lo zipolo delle botti di birra Un cifrario, costituito da 23 simboli che sostituivano le lettere Un nomenclatore di 35 simboli, che sostituivano parole o frasi 4 nulle e un simbolo per le doppie CRITTOGRAFIA fino al XVIII secolo: 1586 La congiura di Babington Gifford fece il doppio gioco e prima di recapitare i messaggi li consegnava a Walsingham. Tutti i messaggi venivano decifrati da Thomas Phelippes. Maria Stuarda firmò la sua condanna a morte rispondendo alla lettera di Babington Babington e complici furono arrestati e squartati vivi e Maria fu decapitata l’8 febbraio 1587. CRITTOGRAFIA fino al XVIII secolo: 1608 - Blaise de Vigenère Blaise de Vigenère propose due sistemi di cifratura simili al metodo proposto dal Cardano, ma più funzionali. In ambedue i casi esiste una chiave, formata da una sola lettera, che serve per cifrare la prima lettera del messaggio. Le successive vengono cifrate con il messaggio stesso nel primo dei due metodi proposti, e con il messaggio cifrato nel secondo caso. Quindi, al contrario del metodo proposto da Cardano, la chiave non ricomincia ad ogni parola. CRITTOGRAFIA fino al XVIII secolo: 1608 - Blaise de Vigenère Vediamo un esempio (realizzato utilizzando la tabula recta standard) in cui la prima lettera chiave è la V, e le successive sono il messaggio in chiaro. Chiave : Testo in chiaro: Testo cifrato : VDIVERS OMETOD OD ICHIAV ECONTINU DIVERSO METODO DI CHIAVE CONTINUA YLDZVJG AQXHRR RL KJPIVZ GQBGBVHU Nell’esempio seguente, invece, la chiave iniziale è sempre la lettera V, ma per le successive lettere viene usato il testo cifrato. Chiave : Testo in chiaro: Testo cifrato : VYGBFWO COSLZC QT BDKSSN RTHUNVIC DIVERSO METODO DI CHIAVE CONTINUA YGBFWOC OSLZCQ TB DKSSNR THUNVICC CRITTOGRAFIA fino al XVIII secolo: Blaise de Vigenère Tabula Recta modificata Il vero contributo alla crittografia si deve però ad una forma modificata di tabula recta. Nella versione da lui proposta il quadrato di 26x26 lettere ha alla sua sinistra ed in cima le usuali 26 lettere, che però non sono poste in ordine alfabetico. SJFQCOTLUVKHWGANPMXRIYBDZE R ABCDEFGHIJKLMNOPQRSTUVWXYZ H BCDEFGHIJKLMNOPQRSTUVWXYZA Z CDEFGHIJKLMNOPQRSTUVWXYZAB . .......................... K ZABCDEFGHIJKLMNOPQRSTUVWXY CRITTOGRAFIA fino al XVIII secolo: 1640 Antoine Rossignol Nel 1640, il Cardinale Richelieu seguì il consiglio di Antoine Rossignol per implementare l’uso di repertori invertiti con gruppi cifranti variabili, uniti a due documenti: uno per cifrare e l’altro per decifrare. In realtà Antoine Rossignol propose la realizzazione di una codifica in cui non vi fosse più un ordinamento tra le parole. Richelieu CRITTOGRAFIA fino al XVIII secolo: 1640 Antoine Rossignol Per rendere pratico l'utilizzo di un tale metodo è sufficiente realizzare due elenchi, nel primo sono elencate in ordine alfabetico le parole da codificare, nel secondo sono elencate in ordine alfabetico le parole codificate. Ovviamente nella fase di codifica si possono utilizzare dei numeri al posto di parole. Ad esempio, far corrispondere ad Argento 100, ad Oro 150, a Preparare 200 e così via. CRITTOGRAFIA fino al XVIII secolo: 1700- Le Camere Nere Il 1700 fu il periodo in cui fiorirono in tutte le cancellerie d’Europa le cosiddette Camere Nere. Con il nome di Cabinet Noir in Francia, Decyphering Branch in Inghilterra e Geheime Kabinets-Kanzlei in Austria, occupavano un certo numero di abilissimi esperti, il cui compito consisteva nell’aprire tutta la corrispondenza diplomatica e militare; copiare il contenuto delle lettere; richiudere gli originali, riapplicando i sigilli. Ovviamente molta corrispondenza era cifrata e quindi, oltre ai traduttori, nelle Camere Nere operavano un certo numero di crittoanalisti. La migliore Camera Nera era sicuramente quella viennese, la Geheime Kabinets-Kanzlei. CRITTOGRAFIA fino al XVIII secolo: 1700- Le Camere Nere L’era delle Camere Nere ebbe termine solo verso la metà del XIX secolo, quando affermatasi la democrazia in Europa, l’opinione pubblica costrinse i governi ad interrompere la pratica dell’intercettazione della corrispondenza. Nel 1844 il governo inglese chiuse il Decyphering Branch, mentre 4 anni dopo furono smantellati il Geheime Kabinets-Kanzlei e il Cabinet Noir. CRITTOGRAFIA MODERNA: 1801-1804 Il Cifrario di Jefferson Si tratta del primo metodo di cifratura basato su cilindri e dischi ruotanti intorno ad un asse. Il dispositivo di Jefferson era composto da un cilindro di circa 15 cm di lunghezza e 4 cm di larghezza montato su un asse. Questo cilindro era formato dall'insieme di 36 ruote di stessa misura (25 nella versione poi utilizzata dagli Americani). Esaminando ognuna di queste ruote, si poteva notare come avessero sull'esterno, tutte le 26 lettere dell'alfabeto, ma in ordine casuale e accuratamente diverso ognuna dalle altre. Inoltre ognuna di queste ruote aveva un numero di riconoscimento. CRITTOGRAFIA MODERNA: 1801-1804 Il Cifrario di Jefferson La cifratura di un messaggio avviene nel seguente modo: il messaggio viene prima di tutto diviso in blocchi di 36 caratteri. Per ogni blocco, i dischi vengono ruotati in modo tale da far comparire allineati su una riga i caratteri del blocco da cifrare. Una volta effettuata tale operazione, si sceglie a caso un'altra riga, e si considera la corrispondente sequenza di 36 lettere come il messaggio cifrato. Il ricevente, che possiede un cilindro identico a quello del trasmittente, non deve far altro che ruotare i dischi in modo tale da far comparire il cifrato allineato su una riga. Compiuta questa operazione, deve analizzare le restanti righe. Una sola di queste è una frase di senso compiuto rappresentante il messaggio in chiaro. CRITTOGRAFIA fino al XVIII secolo: ~1850 - I Codici Commerciali Subito dopo l'avvento dell'uso del telegrafo, furono stabiliti dei codici commerciali con lo scopo di ridurre il numero di caratteri necessari per trasmettere un messaggio, al fine di contenere i costi. Per gli affaristi che avevano necessità di mantenere segrete le comunicazioni, fu facile aggiungere una qualche forma di crittografia che garantisse la riservatezza del messaggio. CRITTOGRAFIA fino al XVIII secolo: ~1850 - I Codici Commerciali Un metodo molto semplice consiste nello scambiare di posto le cifre del codice, applicando quindi una trasposizione. Se il messaggio codificato è composto dai codici 1024 3201 2501 1413, riarrangiando le cifre secondo la sequenza 3 2 4 1 (che costituisce la chiave secondo cui effettuare la trasposizione), si ottiene 2041 0213 0512 1431. CRITTOGRAFIA fino al XVIII secolo: ~1850 - I Codici Commerciali In alternativa, o in aggiunta, si può applicare una chiave da sommare (senza considerare il riporto) ai codici. Quindi se la chiave è 3812 si ha: 1024 + 3201 + 2501 + 1413 + 3812 = 3812 = 3812 = 3812 = 4836 6013 5313 4225 CRITTOGRAFIA fino al XVIII secolo: ~1850 - I Codici Commerciali Altre variazioni sul tema consistono nello scrivere, orizzontalmente, i codici in quattro file, che poi vengono rilette verticalmente. Quindi il messaggio 1024 3201 2501 1413 3256 1298 7854 4315 2378 6745 1598 8375 7816 6235 4579 è scritto come: 1024 3256 2378 7816 3201 1298 6745 6235 2501 7854 1598 4579 1413 4315 8375 0000 diventa 1327 0238 2571 4686 3166 2272 0943 1855 2714 5855 0597 1489 1480 4330 1170 3550. CRITTOGRAFIA MODERNA: 1854 - Playfair Cipher Il sistema di cifratura prende il nome da colui che l'ha reso noto, Lyon Playfair, sebbene l'autore reale fosse stato Sir Charles Wheatstone (1802-1875). Il Playfair cipher viene riconosciuto come primo metodo di cifratura a bigrammi (coppie di caratteri). Il metodo consiste nel posizionare dentro la tabella di 5x5 caselle, una parola chiave (nel nostro caso MONARCHY) seguendo l'ordine sinistra-destra ed alto basso, completando la matrice con le lettere dell'alfabeto nel loro ordine naturale, previa fusione di i e j e stando attenti a non ripetere le lettere già usate nella parola chiave inserita. CRITTOGRAFIA MODERNA: 1854 - Playfair Cipher Il testo in chiaro deve essere diviso in bigrammi di due lettere consecutive; le due lettere si cercano sul quadrato e si sostituiscono secondo queste regole: 1. se le due lettere del testo in chiaro si trovano su una stessa riga, si prendono le due lettere che le seguono a destra; se una delle due lettere del testo in chiaro si trova sulla quinta colonna a destra, si prenderà la prima lettera a sinistra della stessa linea; 2. se le due lettere del testo in chiaro sono sulla stessa colonna, si prendono le due lettere sottostanti; se una lettera è nell'ultima linea, si prenderà la lettera che sta nella prima linea della stessa colonna; CRITTOGRAFIA MODERNA: 1854 - Playfair Cipher 3. se le due lettere sono in colonne e linee diverse, si prendono le due che costituiscono un rettangolo con esse, cominciando da quella che si trova in linea con la prima lettera del bigramma del testo da cifrare; 4. qualora il bigramma del testo da cifrare presenti due lettere uguali si cercherà di eliminare questo raddoppio, oppure di romperlo inserendo una lettera rara (k, w, x, y). ESEMPIO: testo in chiaro: AT TA CX CO testo cifrato: RS SR BU HM CRITTOGRAFIA MODERNA: XIX secolo - Il Cifrario bifido di Delastelle Il metodo fu inventato da Félix-Marie Delastelle uno tra i massimi crittologi francesi del XIX secolo. Trattasi di un cifrario facente uso di una scacchiera simile a quella di Polibio, con il quale un testo in chiaro viene crittato in 5 passi. CRITTOGRAFIA MODERNA: XIX secolo - Il Cifrario bifido di Delastelle 1. Innanzitutto viene trascritta la chiave dentro la tabella, eliminando le lettere doppie. Le restanti celle contengono i caratteri dell'alfabeto nel loro ordine naturale. Non viene introdotta la W per mancanza di spazio. La W sarà sostituita cifrando due V consecutive. Esempio: Chiave: Riksoft Testo: La cifratura Playfair (Passo 1) CRITTOGRAFIA MODERNA: XIX secolo - Il Cifrario bifido di Delastelle 2. Il testo da cifrare viene spezzato in parole di 5 caratteri l'una. Qualora non vi siano lettere sufficienti per formare l'ultimo blocco, i posti mancanti saranno riempiti con delle X Testo: La cifratura Playfair LACIF RATUR APLAY FAIRX (Passo 2) CRITTOGRAFIA MODERNA: XIX secolo - Il Cifrario bifido di Delastelle 3. Ogni carattere del testo in chiaro viene cifrato usando la scacchiera, ovvero, si prendono in corrispondenza del carattere da cifrare, il numero di riga e colonna e si riportano in verticale sotto il testo in chiaro. LACIF RATUR APLAY FAIRx 42212 12251 24425 22215 13521 13211 34134 13213 (Passo 3) CRITTOGRAFIA MODERNA: XIX secolo - Il Cifrario bifido di Delastelle 4. I blocchi di numeri, vengono ora trascritti in orizzontale, leggendoli da sinistra a destra e dall'alto in basso, per ogni singolo blocco. Durante questa trascrizione i numeri vengono scritte a coppie. LACIF RATUR APLAY FAIRx 42212 12251 24425 22215 13521 13211 34134 13213 42 21 21 35 21 12 25 11 32 11 24 42 53 41 34 22 21 51 32 13 (Passo 4) CRITTOGRAFIA MODERNA: XIX secolo - Il Cifrario bifido di Delastelle 5. Si passa quindi a ritrasformare in lettere la riga di coppie di numeri appena formata, sfruttando di nuovo la scacchiera. LACIF RATUR APLAY FAIRx 42212 12251 24425 22215 13521 13211 34134 13213 42 21 21 35 21 12 25 11 32 11 24 42 53 41 34 22 21 51 32 13 (Passo 5) MFFJFICRERBMXRHTRUEK Il testo cifrato è cosi trasformato in "MFFJFICRERBMXRHTRUEK" CRITTOGRAFIA MODERNA: 1918 - La cifratura ADFGVX Metodo adottato in Germania nel 1918. Qualunque messaggio viene tradotto in una sequenza delle lettere ADFGVX poi trasmessa per telegrafo. Le 6 lettere scelte sono quelle che meno facilmente si possono confondere tra loro con il codice Morse. A . – G – – . D – . . V . . . – F . . – . X – . . – CRITTOGRAFIA MODERNA: 1918 - La cifratura ADFGVX La codifica comincia disegnando una tabella 6x6 e riempiendo le 36 caselle in modo casuale con i caratteri dell’alfabeto completo di 26 lettere, più la serie delle 10 cifre. Ogni riga e colonna della tabella è identificata da una delle sei lettere ADFGVX. A D F G V X A 8 P 3 D 1 N D L T 4 O A H F 7 K B C 5 Z G J U 6 W G M V X S V I R 2 X 9 E Y 0 F Q La disposizione delle lettere e dei numeri nella tabella è parte della chiave; in altre parole il destinatario deve conoscerla per poter effettuare la decifrazione. CRITTOGRAFIA MODERNA: 1918 - La cifratura ADFGVX A D F G V X A 8 P 3 D 1 N D L T 4 O A H F 7 K B C 5 Z G J U 6 W G M V X S V I R 2 X 9 E Y 0 F Q Per crittare, si deve innanzitutto stabilire la posizione di ogni lettera del messaggio nella tabella e rimpiazzarla con le lettere che designano la sua riga e la sua colonna. Messaggio: attacco h 10 sera Testo chiaro: a t t a c c o h 1 0 s e r a Crittogramma: DV DD DD DV FG FG DG DX AV XG VD XD VV DV Il secondo stadio è una trasposizione che dipende da una parola d’ordine. Parola d’ordine: MARK CRITTOGRAFIA MODERNA: 1918 - La cifratura ADFGVX M A R K D V D D D D D V F G F G D G D X A V X G V D X D V V D V Il processo traspositivo è il seguente: Le lettere della chiave sono collocate in cima a una nuova tabella. Poi il crittogramma generato dalla prima cifratura è trascritto sotto la chiave. Le colonne della tabella sono quindi ricollocate in modo che le lettere della chiave siano in ordine alfabetico. Il crittogramma definitivo è: VDDDDVDDGGFFGXDDVGAXDDVXVVVD A K M R V D D D D V D D G G F F G X D D V G A X D D V X Il crittogramma definitivo era trasmesso in V codice Morse e per ripristinare il testo originale il destinatario doveva invertire il procedimento di codifica. V V D CRITTOGRAFIA ROMANA: 100 – 44 A.C. Cifrario di Cesare e Augusto (Svetonio - Vita di Cesare §56) Extant et ad Ciceronem, item ad familiares domesticis de rebus, in quibus, si qua occultius perferenda erant, per notas scripsit, id est sic structo litterarum ordine, ut nullum verbum effici posset: quae si qui investigare et persequi velit, quartam elementorum litteram, id est D pro A et perinde reliquas commutet. Restano quelle a Cicerone, così come quelle ai familiari sugli affari domestici, nelle quali, se doveva fare delle comunicazioni segrete, le scriveva in codice, cioè con l'ordine delle lettere così disposto che nessuna parola potesse essere ricostruita: se qualcuno avesse voluto capire il senso e decifrare, avrebbe dovuto cambiare la quarta lettera degli elementi, cioè D per A e così via per le rimanenti. CRITTOGRAFIA ROMANA: 100 – 44 A.C. Cifrario di Cesare e Augusto (Svetonio - Vita di Ottaviano Augusto §88) Orthographiam, id est formulam rationemque scribendi a grammaticis institutam, non adeo custodit ac videtur eorum potius sequi opinionem, qui perinde scribendum ac loquamur existiment. Nam quod saepe non litteras modo sed syllabas aut permutat aut praeterit, communis hominum error est. Nec ego id notarem, nisi mihi mirum videtur tradidisse aliquos, legato eum consulari successorem dedisse ut rudi et indocto, cuius manu "ixi" pro ipsi scriptum animadverterit. Quotiens autem per notas scribit, B pro A, C pro B ac deinceps eadem ratione sequentis litteras ponit; pro X autem duplex A. Non rispetta l'ortografia, cioè l'arte di scrivere le parole correttamente seguendo le regole dei grammatici, e sembra piuttosto seguire l'opinione di coloro che pensano che si debba scrivere come parliamo. infatti si può dire che spesso cambia o salta non solo lettere, ma anche sillabe intere, che sono errori comuni degli uomini. Ed io non riporterei ciò se non mi sembrasse incredibile che alcuni abbiano tramandato che lui abbia costretto alle dimissioni il legato consolare perchè si era accorto che aveva scritto "ixi" al posto di "ipsi". Tutte le volte infatti che scrisse attraverso un codice, rimpiazzò la A con la B, la B con la C e così via per le altre lettere; per quanto riguarda la X la rappresentava con una doppia A. CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) Nel 1918, l'ingegnere elettrico tedesco Arthur Scherbius brevettò una macchina cifratrice basata sull'evoluzione elettromeccanica del “disco cifrante” dell'Alberti , che battezzò "Enigma". Arthur Scherbius La macchina consentiva miliardi di combinazioni cifranti che rendevano praticamente impossibile, anche a chi avesse avuto la stessa macchina, di interpretarne i relativi radiomessaggi. Convinto dell'inviolabilità dei crittogrammi generati da Enigma, Scherbius propose la sua invenzione a industriali e militari tedeschi. CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) All'inizio della Seconda Guerra Mondiale l'esercito tedesco faceva uso delle comunicazioni crittografate ritenute più sicure del mondo. foto tratte dal Museo della guerra di Rovereto CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) Era composta da: Una Tastiera Dove veniva digitato il testo un carattere alla volta. Un pannello di collegamento per l’inserimento di ponticelli elettrici. Il pannello di controllo veniva utilizzato per impostare la chiave di cifratura. Era composto da 26 connettori che rappresentano ognuno una lettera. Inserendo un cavetto elettrico (ponticello) tra un connettore e l’altro si operava una sostituzione di tale lettera con quella uscente dal sistema cifrante. Se una lettera non aveva alcun ponticello non veniva effettuata nessuna trasposizione. CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) Era composta da: Tre ruote mobili (rotori) e due ruote fisse (statori). Gli statori erano sul lato destro e sinistro dei 3 rotori. Ogni rotore aveva una serie di 26 contatti elettrici su entrambe le facce, equidistanti dal centro e con stessa spaziatura fra loro. I contatti su un lato erano collegati a quelli dell'altro lato in maniera disordinata. In ogni caso ad un contatto del lato sinistro corrispondeva un contatto del lato destro. In particolare, premendo un tasto sulla tastiera, si lasciava passare corrente verso lo statore di destra. I tre rotori Da tale statore la corrente passava al primo rotore, al secondo, al terzo, quindi arrivava allo statore di sinistra (detto "Ruota di riflessione"). CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) Era composta da: 26 lampadine che indicavano l’output carattere per carattere mentre si digitava sulla tastiera. CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) Il suo funzionamento era il seguente: Sulla tastiera veniva digitato il testo un carattere alla volta CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) Il suo funzionamento era il seguente: Il pannello di controllo veniva utilizzato per impostare la chiave di cifratura. Era composto da 26 connettori che rappresentavano ognuno una lettera. Inserendo un cavetto elettrico (ponticello) tra un connettore e l’altro si operava una sostituzione di tale lettera con quella uscente dal sistema cifrante. Se una lettera non aveva alcun ponticello non veniva effettuata nessuna trasposizione. CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) Il suo funzionamento era il seguente: Il meccanismo interno era composto da un asse che attraversava 2 ruote fisse (statori) e tre ruote mobili (rotori). Gli statori erano sul lato destro e sinistro dei 3 rotori. CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) Il suo funzionamento era il seguente: Ogni rotore aveva una serie di 26 contatti elettrici su entrambe le facce, equidistanti dal centro e con stessa spaziatura fra loro. I contatti su un lato erano collegati a quelli dell'altro lato in maniera disordinata. In ogni caso ad un contatto del lato sinistro corrispondeva un contatto dal lato destro. In particolare, premendo un tasto sulla tastiera, si lasciava passare corrente verso lo statore di destra. CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) Il suo funzionamento era il seguente: Da tale statore la corrente passava al primo rotore, al secondo, al terzo, quindi arrivava allo statore di sinistra (detto "Ruota di riflessione"). Da questo punto la corrente tornava indietro verso il pannello con i ponticelli, dal quale veniva rimandata alle lampadine. CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) Il suo funzionamento era il seguente: Queste lampadine illuminavano la lettera da visualizzare, in un alfabeto posto proprio sopra la tastiera. CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) Il suo funzionamento era il seguente: Il movimento dei rotori all'interno della macchina era fondamentale: ad ogni pressione di tasto, il rotore di destra scattava di una posizione. Questo significava che premendo di nuovo la stessa lettera, la cifratura non era più la stessa. Il primo rotore fungeva quindi da chiave di cifratura con lunghezza pari a 26 caratteri, che si ripeteva continuamente per tutto il messaggio. Al completamento del primo giro del rotore di destra, scattava di una posizione il rotore di centro e dopo un giro completo del rotore di centro, seguiva uno scatto del rotore di sinistra, dando così luogo ad una chiave di cifratura lunga 263= 17.576 caratteri, sufficienti per rendere la cifratura simile all'utilizzo del metodo one-time pad. CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) Ricordiamo inoltre che i tre rotori erano intercambiabili e venivano in genere scelti da un gruppo di cinque. Ogni rotore, avendo connessioni diverse tra i contatti del lato destro e quello sinistro, introduceva un nuovo elemento di variazione dell'output, a parità di testo e posizionamento dei ponticelli dal pannello di collegamento. Questo introduceva 50 possibili altre configurazioni. Tenendo anche conto che generalmente venivano usati 10 ponticelli nel pannello di collegamento che introducevano altre 150 miliardi di combinazioni, si ottiene che Enigma forniva 159 x 1021 combinazioni. CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) La chiave giornaliera (Tagschluessel) comprendeva: 1. Disposizione degli scambiatori. I numeri dei rotori che dovevano essere sistemati nella macchina da sinistra a destra. 2. Ringstellung Assetto delle ruote per ciascun rotore, da sinistra a destra. Notare che la disposizione degli scambiatori e il Ringstellung cambiavano ogni due giorni, mentre l’assetto del pannello a prese multiple e il Grundstellung cambiavano ogni giorno. 3. Assetto del pannello a prese multiple. Di solito si scambiavano dieci paia di lettere. 4. Grundstellung(Grund). Era costituito dalle tre (o quattro) lettere che mostravano la posizione dei rotori da usare per cifrare la chiave di messaggio. Riroduione esemplificativa di un singolo Grund za dest CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) Esempio Il sistema crittografico Enigma usato dai tedeschi permetteva il coordinamento delle azioni dei propri sottomarini chiamati U-boat nei confronti delle navi mercantili e militari Americane. Mappa tedesca a griglia dell’Atlantico del Nord Un esempio di messaggio crittografato Inviato tramite telescrivente CRITTOGRAFIA MODERNA: 1918-Enigma (cifrari a rotore) I crittografi tedeschi erano così convinti della sicurezza del loro sistema che commisero diverse ingenuità, tra le più gravi quella di usare troppo a lungo la stessa "chiave" di cifratura. La tenacia dei crittografi britannici e del gruppo di lavoro del grande matematico inglese Alan Turing, con la collaborazione del matematico polacco Marin Rejewsky e l'aiuto di Marian Rejwsky Alan Touring calcolatori elettromeccanici detti "bombes", permise all'intelligence inglese di decifrare una buona parte di importanti messaggi in codice dell'esercito del Reich. Bomba di Turing CRITTOGRAFIA MODERNA: 1926-Vernam (cifrario simmetrico) Questo sistema è in assoluto il più sicuro che esista, tanto che è stato utilizzato per cifrare le comunicazioni tra i presidenti USA-URSS durante la guerra fredda (il famoso telefono rosso). Il padre della Teoria dell'Informazione, Claude Shannon, ha dimostrato nel 1949 che: OGNI CIFRARIO TEORICAMENTE SICURO E’ UN CIFRARIO DI VERNAM Claude Shannon CRITTOGRAFIA MODERNA: 1926-Vernam (cifrario simmetrico) Il suo funzionamento è simile a quello realizzato dall'imperatore Augusto (cifrario monoalfabetico), con la differenza che la chiave di cifratura deve essere una sequenza casuale di caratteri ed avere una lunghezza pari o superiore al testo in chiaro da cifrare infatti la chiave generata è lunga come il testo (chiave a lunghezza infinita) ed è del tutto casuale e dunque imprevedibile; Il testo in chiaro e la chiave vengono sommati proprio come nel cifrario di Vigenere, l’unica differenza sta nel fatto che si sommano non tanto gli ordinali delle lettere da cifrare ma i singoli bit che codificano la lettera nei codici usati nelle telecomunicazioni (allora codice Baudot oggi codice ASCII). CRITTOGRAFIA MODERNA: 1926-Vernam (cifrario simmetrico) Addizione di caratteri con il codice Baudot Testo in chiaro (c) A T T E N Z I O N E 11000 00001 00001 10000 00110 10001 01100 00011 00110 10000 Verme (v) W I A P F I L K M S 11001 01100 11000 01101 10110 01100 01001 11110 00111 10100 Cifrato c XOR v 00001 01101 11001 11101 10000 1111 00101 11101 00001 00100 T P W Q E Q H Q T {SP} L’addizione XOR ha il vantaggio di essere reversibile quindi verrà usata anche per decifrare. CRITTOGRAFIA MODERNA: 1926-Vernam (cifrario simmetrico) Il sistema si chiama one-time pad (o a chiave non riutilizzabile), perché la chiave non può essere utilizzata più di una volta. Ad ogni nuovo testo cifrato, deve corrispondere una differente chiave. Se così non fosse, verrebbe eliminata la casualità della chiave. L'algoritmo in questione è di scomodissimo utilizzo in quanto la chiave di cifratura è generalmente sempre molto lunga (quanto il testo da cifrare), e dovendo essere casuale, è anche impossibile da ricordare a mente. Inoltre la chiave deve essere trasmessa a chi dovrà decrittare il messaggio, e come sappiamo non esiste mai un canale davvero sicuro sul quale effettuare questa trasmissione. Tra l’altro se così non fosse non avrebbe senso la stessa crittografia. CRITTOGRAFIA MODERNA: 1926-Vernam (cifrario simmetrico) In queste condizioni, decifrare il testo cifrato è matematicamente impossibile senza conoscerne la chiave in quanto tutti i testi in chiaro sarebbero equiprobabili, come l'equivalente loro testo cifrato. su 26 lettere dell’alfabeto ci sono 26!= 410 chiavi (combinazioni) da provare. 26 Un computer che generi una soluzione ogni sec potrebbe impiegare fino a 1013 anni per provare tutte le chiavi. CRITTOGRAFIA MODERNA: 1926/39-Lorenz (cifrari a rotore) È ben noto che durante la II guerra mondiale i tedeschi si affidarono per lo più alla macchina Enigma, meno noto è che i tedeschi usarono anche altri cifrari; in particolare gli alti comandi tedeschi usarono una macchina telescrivente realizzata dalla ditta Lorenz che a differenza dell'Enigma usava 32 caratteri codificati con il codice Baudot. La cifratura Lorenz si ispirava direttamente al cifrario di Vernam secondo cui la chiave dovrebbe essere indefinitamente lunga e del tutto casuale, in più decrittare la cifratura Lorenz richiedeva indagini, confronti, analisi statistiche e capacità deduttiva molto più di quanto le Bombe di Turing potessero garantire. I progettisti della Lorenz pensarono di sostituire la chiave casuale con una chiave pseudo-casuale generata da un dispositivo meccanico detta macchina di Lorenz simile a Enigma nei principi di funzionamento, ma molto più complicata. Macchina di lorenz SZ40 CRITTOGRAFIA MODERNA: 1926/39-Lorenz (cifrari a rotore) Fu proprio la componente non casuale a far si che la macchina Lorenz fosse forzata dai crittoanalisti inglesi del progetto Ultra, (grazie anche a una grossa ingenuità di un cifratore tedesco). Per decrittare più velocemente i cifrati Lorenz, nel 1943 nacquero i Colossi ricordati non tanto perchè possedevano un’elevata velocità, ma perché erano macchine programmabili. Colossi CRITTOGRAFIA MODERNA: 1973-Feistel (cifrari a blocchi) Il cifrario proposto da Feistel nel 1973 è il primo cifrario a blocchi, ossia il testo in chiaro è diviso in blocchi di lunghezza fissa che vengono codificati uno alla volta mediante lo stesso procedimento. Le operazioni utilizzate sono essenzialmente due: Permutazioni e sostituzioni mentre i principi utilizzati sono essenzialmente quelli proposti da Shannon nel 1949 per complicare l’analisi statistica: Diffusione: ogni cifra del testo cifrato è prodotta da più cifre del testo in chiaro; Confusione: le relazioni statistiche tra testo cifrato e valore della chiave sono complicate. CRITTOGRAFIA MODERNA: 1973-Feistel (cifrari a blocchi) STRUTTURA dei cifrari di Feistel Il testo è convertito in una stringa di bit. La stringa è convertita in blocchi di lunghezza fissa da cifrare separatamente. Piu i blocchi sono grandi e più aumenta la sicurezza ma si riduce la velocità. Ogni blocco subisce una trasformazione che prevede un certo numero di iterazioni: 1. Permutazione iniziale della stringa; 2. n cicli identici ove in ciclo si applica una funzione basata su una chiave formata da un certo numero di bit; 3. Permutazione finale. viene applicato un algoritmo di schedulazione della chiave producendo tante sottochiavi per quanti sono i raund. CRITTOGRAFIA MODERNA: 1976-DH (cifrario asimmetrico) Nel 1976, gli americani Whitfield Diffie e Martin Hellman danno vita ad una nuova generazione di sistemi crittografici: sistemi asimmetrici detti a chiave pubblica e chiave privata. Il meccanismo ideato da Diffie ed Helmann superava d'un tratto l'intero problema di distribuzione delle chiavi: non era più necessario comunicare nella massima segretezza la chiave prima di poter effettuare una comunicazione sicura. Con questo metodo la chiave per cifrare non è la stessa di quella per decifrare; la prima può allora essere resa pubblica mentre solo la seconda resta segreta. CRITTOGRAFIA MODERNA: 1976-DH (cifrario asimmetrico) La sicurezza di questi sistemi si fonda quasi sempre su funzioni relativamente facili da calcolare ma molto difficili da invertire (problemi ardui). facile f f-1 difficile Ad esempio il prodotto di due numeri primi, è relativamente facile da calcolare, ma la fattorizzazione di un numero intero è molto più difficile. CRITTOGRAFIA MODERNA: 1976-DH (cifrario asimmetrico) L'algoritmo di cifratura DH nasce con lo scopo di generare una chiave segreta tra due corrispondenti che comunicano attraverso un canale non sicuro (pubblico) sfruttando la complessità computazionale del calcolo del logaritmo discreto. CRITTOGRAFIA MODERNA: 1976-DH (cifrario asimmetrico) Il dato matematico su cui si basa l’algoritmo di Diffie ed Hellman fa si che impiegando 1024 bits, per ottenere la (unica) chiave segreta da quella pubblica occorrerebbe una potenza di calcolo pari a una rete di milioni di computer al lavoro per 1000 anni! L'idea era geniale, ma rimaneva un problema: non c’era la certezza che le funzioni matematiche necessarie per implementare praticamente questo splendido schema concettuale esistessero veramente. CRITTOGRAFIA MODERNA: 1976-DH (cifrario asimmetrico) L’idea cioè sta nel fatto che la potenza di un numero in un’ aritmetica finita si definisce semplicemente così: ab = x mod n Come nell'aritmetica ordinaria, è possibile definire un'operazione inversa rispetto a all'esponente: il logaritmo Per definizione il logaritmo è l'esponente che si deve dare alla base a per ottenere il valore x: b = loga x mod n Tale logaritmo si dice logaritmo discreto. . Se il calcolo della potenza è relativamente semplice, il calcolo del logaritmo è computazionalmente molto complesso e può avere più soluzioni o anche nessuna. CRITTOGRAFIA MODERNA: 1976-DH (cifrario asimmetrico) ESEMPIO: in un'aritmetica di ordine 7 = {0,1,2,3,4,5,6} dalla seguente formula ab = x mod n si ha: 20 = 1 21 = 2 22 = 4 23 = 1 24 = 2 25 = 4 26 = 1 e quindi la funzione inversa è loga x mod n Da cui log24 Invece log23 2 5 log25 log26 Non Esistono CRITTOGRAFIA MODERNA: 1976-DH (cifrario asimmetrico) Supponiamo di avere Alice e Bob che vogliono scambiarsi una chiave segreta in modo sicuro. Alice genera un numero casuale a < N e calcola A = ga mod N. Il numero A viene comunicato pubblicamente a Bob. In modo del tutto analogo Bob genera due numeri b e B =gb mod N e invia B ad Alice. Alice calcola il numero k = Ba mod N. Bob calcola k = Ab mod N. Inutile aggiungere che le due chiavi k sono uguali! Infatti entrambe valgono gab mod N. CRITTOGRAFIA MODERNA: 1976-DH (cifrario asimmetrico) Confusi? Ne avete tutto il diritto! La crittografia a chiave pubblica non è certo intuitiva come quella simmetrica. CRITTOGRAFIA MODERNA: 1977-RSA (cifrario asimmetrico) Nel 1977, R. Rivest, A. Shamir, L. Adleman, pubblicarono l’articolo "A Method for Obtaining Digital Signatures and Public-key Cryptosystems", nel quale davano certezza che le funzioni matematiche atte ad implementare lo schema concettuale di Diffie ed Hellman esistessero davvero. L'algoritmo battezzato con le iniziali dei loro cognomi, RSA, è ancora oggi l’algoritmo a chiave pubblica più diffuso. CRITTOGRAFIA MODERNA: 1977-RSA (cifrario asimmetrico) L'idea alla base del RSA è quella di sfruttare la complessità computazionale del calcolo della fattorizzazione un numero. Cioè trovare il prodotto di due numeri primi molto grandi è facilissimo, ma dato il prodotto sarà estremamente difficoltoso trovarne i 2 fattori primi. CRITTOGRAFIA MODERNA: 1977-RSA (cifrario asimmetrico) La scelta delle chiavi 1. Scegli due numeri primi grandi p, q. 2. Calcola n = pq, z = (p-1)(q-1) 3. Scegli e minore di n, dispari e primo con (p-1)(q-1). 4. scegli d tale che (ed-1) sia esattamente divisibile per z. 5. La Chiave Pubblica è (n,e), quella Privata è (n,d). CRITTOGRAFIA MODERNA: 1977-RSA (cifrario asimmetrico) Illustriamo un esempio per evidenziare come la funzione diretta, ossia il prodotto di due numeri primi, sia banale mentre quella inversa, ossia il calcolo della chiave pubblica e privata, sia estremamente difficoltosa. Documento Chiave RSA privata = m Chiave RSA pubblica Documento crittografato Documento crittografato Documento CRITTOGRAFIA MODERNA: 1977-RSA (cifrario asimmetrico) ESEMPIO 1) Prendiamo due numeri primi p(=3) e q(=11) e sia n(=33) il loro prodotto. 2) Prendiamo e(=3) che deve essere: MINORE di n DISPARI e PRIMO con (p-1)*(q-1). quindi [ (p-1)*(q-1)=(3-1)*(11-1)=2*10=20 ] 3) Calcolare d(=7) in modo che e*d = 1 mod (p-1)*(q-1). Significa che e*d diviso (p-1)*(q-1) (divisione intera) dà come risultato 1. Infatti e*d = 3*7 =21/20 =1. La chiave pubblica=(n,e)=(33,3) La chiave privata=(n,d)=(33,7) CRITTOGRAFIA MODERNA: 1977-RSA (cifrario asimmetrico) ESEMPIO(cont.) 4) Sia t, intero positivo, il testo in chiaro, cifriamo il testo con c=(t^e) mod p*q il risultato ci darà il testo cifrato. Se t sono i numeri da 0 ad 8, li cifreremo elevandoli alla terza e facendo il risultato modulo 33. text 0 1 2 3 4 5 6 7 8 cipher-text _____________ 0 _____________ 1 _____________ 8 _____________ 27 _____________ 31 4*4*4=64 MODULO 33 = 31 _____________ 26 5*5*5=125 MODULO 33 = 125-(33*3)=26 _____________ 18 6^3=216-(33*6)=18 _____________ 13 7^3=343-(33*10)=13 _____________ 17 8^3=512-(33*15)=17 La chiave per l'RSA è mod n. Più è grande la chiave, più sarà sicura (ma lenta) la cifratura. CRITTOGRAFIA MODERNA: 1977-RSA (cifrario asimmetrico) Anche se RSA è rimasto per qualche anno nel limbo delle belle idee, poi con la sempre maggiore diffusione di Internet ha conosciuto un successo enorme, ed è ancor oggi il cifrario a chiave pubblica più usato. Quasi tutte le operazioni sicure sul web (protocollo http) usano oggi certificati basati su questo metodo, ma quanto questo metodo è sicuro? . . . con numeri primi a 1024 bits si è abbastanza sicuri, infatti per craccare un RSA con una chiave a: 256 bits basta un potente home computer; 384 bits servirebbe un'organizzazione universitaria o una grande azienda; 512 bits può essere superata da agenzie statali. Solo chiavi a 2048 bits possono ritenersi sicure per qualche anno a ogni livello (e chissà...). CRITTOGRAFIA MODERNA: 1977-DES (simmetrico a blocchi) 5 maggio 1973: 15 Maggio 1973, il National Bureau of Standards (NBS) pubblicò un invito, nel Registro Federale, per l’emissione di un crittosistema standard nasce DES Data Encryption Standard, che è divenuto il crittosistema più usato nel mondo 1975: DES fu sviluppato alla IBM come evoluzione di un crittosistema più antico, LUCIFER, e fu pubblicato sul Registro Federale il 17 Marzo 1975 15 gennaio 1977: La definizione di DES è riportata nel Federal Information Processing Standards Publication 46 del 15 Gennaio 1977 1983, 1987, 1992: Riaffermato per successivi 5 anni giugno 1997, luglio 1998, gennaio 1999 DES challanges 2000 Advanced Encryption Standard (AES) CRITTOGRAFIA MODERNA: 1977-DES (simmetrico a blocchi) DES codifica una stringa di plaintext x di 64 bit utilizzando una chiave k di 56 bit ed ottenendo un testo cifrato rappresentato da una stringa di 64 bit. CRITTOGRAFIA MODERNA: 1977-DES (simmetrico a blocchi) L’algoritmo si compone di tre passi: 1. Dato il plaintext x si costruisce la stringa x0 permutando i bit di x secondo una permutazione iniziale (fissata) IP. In particolare, x0=IP(x)=L0R0, dove L0 comprende i primi 32 bit di x0 e R0 gli ultimi 32 …ciò significa, ad esempio, che il 58-esimo bit di x è il primo bit di IP(x), il 50-esimo bit di x è il secondo di IP(x), etc. CRITTOGRAFIA MODERNA: 1977-DES (simmetrico a blocchi) 2. LiRi, per 1i16, viene calcolato come Li=Ri-1 Ri=Li-1 (Ri-1,ki) dove è l’operatore di XOR, è una funzione deformante che verrà descritta nel seguito, e k1,k2,…,k16 sono stringhe di 48 bit calcolate in funzione di k. k1,k2,…,k16 formano il key schedule CRITTOGRAFIA MODERNA: 1977-DES (simmetrico a blocchi) 3. Si applica la permutazione inversa IP-1 alla stringa di bit R16L16, ottenendo il testo cifrato y, cioè y=IP-1(R16L16) CRITTOGRAFIA MODERNA: 1977-DES (cifrario simmetrico a blocchi) La funzione deformante La funzione ha come primo argomento la stringa A di 32 bit, come secondo argomento la stringa J di 48 bit, e produce in output una stringa di bit di lunghezza 32. A viene “espanso” in una stringa di 48 bit in base ad una funzione di espansione E(A) fissata. E(A) consiste dei 32 bit di A permutati, 16 dei quali compaiono due volte CRITTOGRAFIA MODERNA: 1977-DES (cifrario simmetrico a blocchi) Si calcola E(A) J e si scrive il risultato come la concatenazione di otto stringhe di 6 bit B=B1B2B3B4B5B6B7B8 Si utillizzano gli Si, 1i8, che sono array 416 i cui elementi sono interi compresi fra 0 e 15. CRITTOGRAFIA MODERNA: 1977-DES (cifrario simmetrico a blocchi) Data una stringa di 6 bit Bj=b1b2b3b4b5b6, Sj(Bj) viene calcolata come segue: i due bit b1 e b6 determinano la rappresentazione binaria di una riga r di Sj (0r3), ed i quattro bit b2b3b4b5 determinano la rappresentazione binaria di una colonna c di Sj (0c15). Pertanto Sj(Bj) è l’elemento Sj(r,c), scritto in binario sotto forma di stringa di 4 bit Cj=Sj(Bj), 1j8. La stringa di 32 bit C= C1C2C3C4C5C6C7C8 viene permutata in accordo ad una permutazione P fissata. La stringa risultante P(C) è (A,J ) CRITTOGRAFIA MODERNA: 1977-DES (cifrario simmetrico a blocchi) Infine, occorre descrivere il calcolo della successione di chiavi, a partire dalla chiave k. k è una stringa di 64 bit, di cui 56 costituiscono la chiave vera e propria mentre i rimanenti 8 sono bit di parità (per il rilevamento di errori). I bit di parità occupano le posizioni 8,16,…,64 ed assumono valore tale che ogni byte abbia un numero dispari di bit a 1. Il bit di parità può servire a rilevare errori su un singolo bit del byte relativo. I bit di parità non vengono utilizzati nel calcolo del key schedule. CRITTOGRAFIA MODERNA: 1977-DES (cifrario simmetrico a blocchi) Calcolo della successione di chiavi ki, 1i16 1. Data la chiave k a 64 bit, si tralasciano i bit di parità, mentre si permutano i rimanenti 56 bit in base alla permutazione PC1 fissata a priori. Sia PC1(k)=C0D0, dove C0 comprende i primi 28 bit di PC1(k) e D0 gli ultimi 28 2. Per i compreso fra 1 e 16 si calcolano Ci=LSi(Ci-1) Di=LSi(Di-1) e ki=PC2(CiDi). LSi è uno shift ciclico a sinistra di una o due posizioni in funzione del valore di i: si scorre di una posizione per i=1,2,9,16, di due in tutti gli altri casi. PC2 è una permutazione fissata 57 1 10 19 63 7 14 21 49 58 2 11 55 62 6 13 41 50 59 3 47 54 61 5 33 42 51 60 39 46 53 28 25 34 43 52 31 38 45 20 17 26 35 44 23 30 37 12 9 18 27 36 15 22 29 4 PC1 PC2 14 3 23 16 41 30 44 46 17 28 19 7 52 40 49 42 11 15 12 27 31 51 39 50 24 6 4 20 37 45 56 36 1 21 26 13 47 33 34 29 5 10 8 2 55 48 53 32 CRITTOGRAFIA MODERNA: 1977-DES (cifrario simmetrico a blocchi) Calcolo della successione di chiavi ki, 1i16 Il calcolo della successione di chiavi viene effettuato secondo il seguente schema: k PC1 C0 D0 LS1 LS1 C1 D1 LS2 LS2 LS16 LS16 C16 D16 PC2 PC2 k1 k2 CRITTOGRAFIA MODERNA: 1977-DES (cifrario simmetrico a blocchi) La critica più pertinente al DES riguarda la relativa “ristrettezza” dello spazio delle chiavi, |K |=256 per garantirne la sicurezza. Sono state proposte una serie di apparecchiature specialpurpose in grado di sferrare a DES un attacco Known plaintext, per mezzo di una ricerca esaustiva nello spazio delle chiavi. Data una stringa di 64 bit, il plaintext x ed il corrispondente testo cifrato y dovrebbero essere testate tutte le possibili chiavi fino a quando non viene rilevata una chiave k tale che ek(x)=y (ce ne potrebbero essere più di una). Nel 1977, Diffie ed Helman progettarono un chip in VLSI che poteva testare 106 chiavi al secondo Una macchina dotata di 106 chip poteva sondare l’intero spazio delle chiavi in un giorno circa (ma sarebbe costata 20 milioni di dollari!) CRITTOGRAFIA MODERNA: 1977-DES (cifrario simmetrico a blocchi) Anche se descrivere DES a parole può risultare lungo e noioso, DES può essere implementato in maniera molto efficiente sia a livello hardware che software: La sola operazione aritmetica necessaria è lo XOR fra stringhe di bit. La funzione di espansione E, le S-box, le permutazioni IP e P ed il calcolo delle chiavi k1, k2,…,k16 possono essere tutte effettuate in tempo costante attraverso look-up table in software o “bruciate” in un circuito in hardware. DES ha trovato applicazioni significative nelle transazioni bancarie: veniva utilizzato per codificare i PIN (Personal Identification Number ) e le transazioni su conto corrente per operazioni da ATM (Automated Teller Machine ) DES è stato inoltre largamente impiegato da organizzazioni governative americane, quali il Department of Energy, il Justice Department ed il Federal Reserve System. CRITTOGRAFIA MODERNA: 1989-RC2 (simmetrico blocchi) Di derivazione DES, si differenzia da questo per la particolarità di poter variare la lunghezza della chiave. Si è diffuso essenzialmente grazie al fatto che il governo USA ne ha permesso l'esportazione sebbene limitando la lunghezza massima della chiave a soli 40 bit. Questa limitazione lo rende praticamente inefficace per la protezione di informazioni importanti: i tentativi di brute-force per la ricerca della possibile chiave scendono dal massimo di 72 milioni di miliardi del DES ad un massimo di soli 1000 miliardi rendendo possibile la decrittazione, con una modica spesa in hardware, a poche ore di attesa (parliamo sempre di hardware noti!). Questo algoritmo si differenzia dal DES anche per il fatto che non è pubblico, bensì di proprietà della RSA Data Security Inc. CRITTOGRAFIA MODERNA: 1991-IDEA (simmetrico a blocchi) IDEA è stato proposto quando si è intuito che il sistema DES non avrebbe resistito per molto agli attacchi degli analisti. IDEA (International Data Encryption Algorithm) è nato nel 1991 sotto il nome di IPES (Improved Proposed Encryption Standard), ed è stato progettato da due famosi ricercatori in Svizzera: Xuejja Lai e James L. Massey. Come il DES è un codice cifrato a blocchi di 64 bit, la differenza sta nel fatto che questa volta però la chiave è di 128 bit e questo dovrebbe impedire di trovare la chiave procedendo per tentativi poiché le chiavi possibili sono infatti 2128. La cifratura con IDEA comporta una divisione del blocco di 64 bit del testo normale in 4 sottoblocchi di 16 bit. Ogni sottoblocco subisce 8 passi in cui sono coinvolte 52 sottochiavi diverse a 16 bit ottenute dalla chiave a 128 bit. CRITTOGRAFIA MODERNA: 1991-IDEA (simmetrico a blocchi) 4 blocchi di input a 16 bit + Addizione a 16 bit X Moltiplicazione a 16 bit modulo 216 # OR esclusivo a 16 bit 4 blocchi di output a 16 bit CRITTOGRAFIA MODERNA: 1991-IDEA (simmetrico a blocchi) Le sottochiavi sono generate in questo modo: 1. 2. 3. La chiave a 128 bit è divisa in 8 blocchi di 16 che costituiscono le prime 8 sottochiavi; Le cifre della chiave a 128 sono spostate di 25 bit a sinistra in modo da generare una nuova combinazione il cui raggruppamento ad 8 bit fornisce le prossime 8 sottochiavi; Il secondo passo è ripetuto finché le 52 sottochiavi sono generate. Ogni passo comporta calcoli abbastanza semplici come XOR (operazioni di OR esclusivo), addizione e moltiplicazioni in modulo 16 (significa che i risultati non possono superare i 16 bit, quindi quelli eccedenti vengono scartati). CRITTOGRAFIA MODERNA: 1991-IDEA (simmetrico a blocchi) Durante gli 8 passi il secondo e il terzo blocco si scambiano di posto mentre all'ultimo passo i 4 sottoblocchi vengono concatenati per produrre un blocco di testo cifrato a 64 bit. La decodifica è identica eccetto il fatto che le sottochiavi sono ottenute in maniera diversa dalla chiave principale a 128. IDEA è al momento il cifrario a chiave segreta più utilizzato per quanto riguarda i software commerciali di crittografia, vista la sua velocità di codifica e decodifica e la sua elevata sicurezza. CRITTOGRAFIA MODERNA: 1993-BlowFish (cifrario simmetrico) Blowfish è un cifrario a blocchi sviluppato da Bruce Schneier, autore del famoso libro “Applied Cryptography”. Bruce Schneier Questo algoritmo utilizza varie tecniche tra le quali la rete Feistel, le S-box dipendenti da chiavi e funzioni F non invertibili che lo rendono, forse, l’algoritmo più sicuro attualmente disponibile. Le chiavi utilizzate sono di dimensioni variabili fino ad un max. di 448 bit e i blocchi utilizzati per la cifratura sono di 64 bit. Non si conoscono al momento tecniche di attacco valide nei suoi confronti. E' considerato uno degli algoritmi di cifratura a blocchi più veloce (risulta più veloce del DES e dell'IDEA). Blowfish non è brevettato ed è di dominio pubblico. CRITTOGRAFIA MODERNA: 1994-RC5 (simmetrico a blocchi) Proprietà della RSA Data Security Inc., basato su DES ed evoluzione di RC2. Si differenzia dall'RS2 per la notevole flessibilità operativa: i blocchi possono essere di 32, 64 o 128 bit, e la chiave può arrivare sino a 2048 bits. La sovracifratura sequenziale arriva fino a 255 permutazioni. CRITTOGRAFIA MODERNA: 1997-CAST (simmetrico a blocchi) L’algoritmo CAST, progettato da Carlisle Adams e Stafford Taveres, è ottimo e molto stabile. E’ molto simile al Blowfish come struttura poiché utilizza più o meno le stesse tecniche crittografiche (con l’eccezione della rete Feistel rimpiazzata da un sistema chiamato di "permutazioni- sostituzioni"). David Wagner, John Kelsey e Bruce Schneier hanno scoperto un attacco sulle chiavi a 64 bit del CAST mediante 217 testi cifrati, con 248 computazioni dell’algoritmo. Naturalmente l’attacco non è efficace al 100 per cento. L’algoritmo CAST è registrato dalla Entrust Technologies, che lo ha rilasciato per un uso libero e gratuito. CRITTOGRAFIA MODERNA: 19xx-3DES (simmetrico a blocchi) Triple DES è una variazione del DES standard. Prende in input una chiave a 192 bit (24 caratteri) e la separa in tre chiavi. Triple DES è utilizzato per crittografare un file con la prima chiave. Poi il file è decrittato con la seconda chiave. L'ultima fase è quella di crittografarlo con la terza chiave. Se le tre chiavi a 64 bit sono le stesse, Triple DES è uguale al DES normale. Comunque se utilizzato correttamente è molto più sicuro del DES regolare. CRITTOGRAFIA MODERNA: 2000-AES (simmetrico a blocchi) Il 2 ottobre del 2000 il NIST (National Institute of Standard and Technology - Istituto Nazionale degli Standard e delle Tecnologie) ha annuciato la scelta di adottare un nuovo standard di cifratura tra 15 possibili candidati. Questo nuovo standard nasce con lo scopo di sostituire il desueto DES la cui dimensione delle chiavi di cifratura inizia ad essere troppo piccola. Rijndael - lo strano nome nasce dall'unione dei nomi dei suoi inventori, ovvero Rijmen e Daemen - è stato scelto come il fututo AES ed è diventato lo standard per la cifratura del XXI secolo. Fino al Novembre 2002 non sono stati riscontrati punti deboli. CRITTOGRAFIA MODERNA: 2000-AES (simmetrico a blocchi) In questo sistema di crittazione a "blocchi" il messaggio viene suddiviso in blocchi di 128 bit. Esistono varianti che propongono l'uso di chiavi di cifratura di 128, 192 o 256 bit. Le modalità operative del sistema AES sono le seguenti: 1. Il messaggio viene sottoposto all'operazione logica XOR per mezzo della chiave privata K0. 2. Per ogni blocco da 128 bit, la funzione F viene iterata per mezzo di chiavi figlie, generate da un processo di espansione attivato dalla chiave master. La funzione F viene iterata 10 volte. CRITTOGRAFIA MODERNA: 2000-AES (simmetrico a blocchi) Ogni blocco da 128 bit è suddiviso in 16 byte ed ogni byte subisce la prima permutazione S. Poi alla sequenza generata viene applicata una seconda permutazione P e a questa viene aggiunta per mezzo di un AND logico la chiave figlia a 128 bit generata dalla funzione di espansione, CRITTOGRAFIA MODERNA: 2000-AES (simmetrico a blocchi) La chiave Ki si ottiene dalla funzione di espansione utilizzando come sottochiave K(i-1) e utlizzando K0 come chiave segreta. La funzione di espansione è descritta dalla seguente figura e i 16 byte della chiave K(i-1) sono processati di 4 in 4 (byte). La costante i ha la funzione di modificare il campo iesimo elevandolo alla i. Questo rende l'implementazione di AES molto efficiente. CRITTOGRAFIA MODERNA: 1991 PGP (Sistemi ibridi) Nel giugno 1991 lo statunitense Philip Zimmermann realizza e distribuisce gratuitamente il programma PRETTY GOOD PRIVACY (PGP) un programma di crittografia diventato ormai uno standard (tanto che l'insegnamento del suo utilizzo è previsto nel master per la security dell'università di Milano). = m CRITTOGRAFIA MODERNA: 1991 PGP (Sistemi ibridi) PGP usa un sistema misto di crittografia, infatti usa sia il sistema simmetrico che quello asimmetrico perche': •Quando si usa un sistema simmetrico (con una chiave segreta) è necessario preoccuparsi di come scambiare la chiave segreta con il destinatario del messaggio percio' si potrebbe preferire un sistema asimmetrico •Il sistema asimmetrico però impiega parecchio tempo per cifrare l'intero messaggio (e' circa 4000 volte piu‘ lento del sistema simmetrico) = m CRITTOGRAFIA MODERNA: 1991 PGP (Sistemi ibridi) Le prime versioni di PGP (fino alla 5.0) usavano l' algoritmo RSA (sistema asimmetrico), e l' algoritmo IDEA (sistema simmetrico). L' ultima versione usa 2 diversi algoritmi: DSS/Diffie-Hellman e CAST (ma se si sta usando la versione internazionale si può scegliere di usare l' algoritmo RSA o DSS/Diffie-Hellman come sistema asimmetrico e l' algoritmo CAST, Triple-DES o IDEA come sistema simmetrico). = m CRITTOGRAFIA MODERNA: 2003 QUANTISTICA Verso la fine del 2003 sono comparsi sul mercato i primi due prototipi commerciali da parte di "MagiQ Technologies" (New York) e "id Quantique" (Ginevra). Inoltre altre aziende, quali NEC, Toshiba e Hewlett-Packard, stanno sviluppando dei propri sistemi di Crittografia Quantistica che presto appariranno sul mercato. L'Unione Europea ha finanziato il progetto SECOQC, iniziato il 1 Aprile 2004 e da alcuni indicato come il progetto "antiechelon" europeo per lo sviluppo sia della ricerca che della implementazione tecnologica e commerciale della Crittografia Quantistica (la Press Release è disponibile sul sito quantenkryptographie.at e la descrizione del progetto sul sito www.arcs.ac.at/quanteninfo). Il progetto ha un budget di 11,4 Milioni di euro in 4 anni, vi partecipano 41 partner in 12 paesi europei, e per l'Italia vi sono m il CNR, la Scuola Normale Superiore di l'Università di = Pavia, Pisa ed il Politecnico di Milano. CRITTOGRAFIA MODERNA: 2003 QUANTISTICA Uno dei primi risultati teorici è stata l'invenzione dei Computer Quantistici. Questi sono elaboratori che funzionano seguendo la logica delle leggi della Meccanica Quantistica e quindi sono (potenzialmente) in grado di fare i conti in modo molto diverso da quello noto a tutti noi. In particolare gli elaboratori quantistici saranno in grado di risolvere alcuni difficili problemi matematici istantaneamente. Tra questi problemi vi sono quelli su cui si basano molti degli algoritmi crittografici moderni, quali ad esempio il famoso RSA. In altre parole, se fosse possibile costruire oggi un elaboratore quantistico, questo sarebbe in grado quasi istantaneamente di ottenere da una chiave pubblica di qualunque lunghezza, la corrispondente chiave privata utilizzata dagli algoritmi Asimmetrici quali RSA. Questi algoritmi sono utilizzati oggi per l'identificazione delle parti e la creazione e scambio delle chiavi per cifrare le connessioni. Poterli "rompere" vorrebbe dire rendere del = tutto m insicuri smart-card, firme e certificati digitali, navigazione in internet, email cifrate ecc... CRITTOGRAFIA MODERNA: 2003 QUANTISTICA Al momento comunque non siamo ancora in grado di costruire un elaboratore quantistico, e le stime più ottimistiche indicano che ci vorranno ancora 20 anni. La Crittografia Quantistica, nata un paio di anni prima degli elaboratori quantistici, offre però una, per il momento parziale, soluzione ai possibili problemi che avverranno all'arrivo degli elaboratori quantistici. La Crittografia Quantistica permette di creare e scambiare chiavi segrete da utilizzare poi per cifrare le comunicazioni pertanto un nome più appropriato è "Quantum Key Distribution". I sistemi attuali di Crittografia Quantistica si basano sul codificare un bit informatico in una proprietà di un singolo m fotone, che è il= costituente fondamentale della luce e delle radiazioni elettromagnetiche. CRITTOGRAFIA MODERNA: 2003 QUANTISTICA Come abbiamo già detto, la Meccanica Quantistica garantisce che se un fotone è intercettato da un attaccante nel suo tragitto tra le due parti che stanno generando la chiave segreta, alcune delle sue proprietà vengono modificate e l'attacco può essere perciò rilevato. In altre parole la Meccanica Quantistica garantisce l'individuazione di qualunque tentativo di attacco al processo di generazione e scambio della chiave. Il primo e principale protocollo della Crittografia Quantistica è il "BB84" dai nomi di Bennett e Brassard che lo proposero nel 1984. = m CRITTOGRAFIA MODERNA: CONCLUSIONI Una domanda che possiamo porci è: Quanto deve essere potente un metodo crittografico per stare tranquilli? A questa domanda si può rispondere in due modi: 1. "Più si va sul sicuro meglio è". 2. "Il fine della crittografia, non è sempre quello di rendere assolutamente impossibile la decifrazione, quanto quello di proteggere nella misura in cui la decifrazione richiede più tempo e risorse economiche del vantaggio che può portare la conoscenza delle informazioni protette. Se qualche secolo fa, un qualsiasi polialfabetico con chiave di 4 cifre sarebbe stato considerato impossibile da forzare, oggi c'è invece da preoccuparsi anche dei semplici attacchi a forza bruta possibili solo grazie ai computers. CRITTOGRAFIA MODERNA: CONCLUSIONI In altre parole, la sicurezza di un sistema crittografico deve aumentare col passare del tempo. Se oggi utilizzassimo ancora un sistema come il cifrario di Cesare, anche un ragazzino sarebbe in grado di decifrare un messaggio ed il più lento dei computers (anche uno dei primi 8086 o un 286) potrebbe trovare la soluzione in qualche frazione di millesimo di secondo. Fra una decina di anni programmi ed algoritmi famosi come l’RSA, 3DES, IDEA etc.. potranno essere forzati col semplice Brute-Force grazie ai miliardi di operazioni al secondo che già adesso alcuni PC sono in grado di compiere. CRITTOGRAFIA MODERNA: CONCLUSIONI Il futuro quasi certamente è la Crittografia Quantistica. La differenza principale tra i protocolli a Chiave Pubblica e la Crittografia Quantistica è che quest'ultima non teme attacchi basati sulla potenza di calcolo degli elaboratori o sugli sviluppi di tecniche matematiche che permettono già oggi di rompere sistemi a Chiave Pubblica che adottano chiavi pubbliche/private troppo corte. D'altra parte, la Crittografia Quantistica richiede oggi l'uso di singoli fotoni, e non è facile creare e rilevare singoli fotoni con le tecnologie odierne anche se lo sviluppo in questo campo è molto rapido. Storia della crittografia: LINK http://www.vialattea.net/esperti/mat/critt/ http://www.sikurezza.cc http://www.rcvr.org/varie/pgp/storia.htm http://www.matematicamente.it/storia/crittografia.htm http://www.123point.net/001topzine/scienze/artscie3.htm http://digilander.libero.it/thyguild/ http://digilander.libero.it/tuttisiti/crittografia.htm Storia della crittografia: LINK http://www.liceofoscarini.it/studenti/crittografia/index .html http://www.dia.unisa.it/~ads/corsosecurity/www/CORSO-9900/crittografiaclassica/ www.riksoft.com http://telemat.det.unifi.it/book/1997/cryptography/ http://www.liceofoscarini.it/studenti/crittografia/critt o/ www.sancese.com