La crittografia (o criptografia, ) è la branca della crittologia che tratta delle "scritture nascoste", ovvero dei metodi per rendere un messaggio non comprensibile/intelligibile a persone non autorizzate a leggerlo, garantendo così, in chiave moderna, il requisito di confidenzialità o riservatezza tipico della sicurezza informatica. Un tale messaggio si chiama comunemente crittogramma e i metodi usati sono detti tecniche di cifratura.
Storia
Si hanno tracce di crittografia nei cifrari antichi utilizzati dagli Ebrei nel codice di atbash; gli Spartani avevano un loro particolare sistema di comunicazione dei messaggi segreti, la scitala; a Gaio Giulio Cesare si attribuisce l'uso del cosiddetto cifrario di Cesare, un sistema crittografico.
La storia della crittografia moderna inizia con la stesura del De cifris di Leon Battista Alberti, che per primo insegnò a cifrare per mezzo di un disco cifrante con un alfabeto segreto da spostare ad libitum ogni due o tre parole. Anche il tedesco Tritemio previde una forma di cifratura polialfabetica, facendo scorrere l'alfabeto ordinato di un posto a ogni lettera del chiaro (come si definisce in gergo il testo non criptato). Nel 1526 Jacopo Silvestri pubblicò lOpus novum, considerata una delle prime opere su questo argomento. Ma il vero progresso nella cifratura polialfabetica è stato compiuto dal bresciano Giovan Battista Bellaso, che ha inventato la tecnica di alternare alcuni alfabeti segreti formati con parola chiave sotto il controllo di un lungo versetto chiamato contrassegno. La sua prima tavola a 11 alfabeti reciproci, uscita nel 1553, fu ripubblicata dal napoletano Giovanni Battista Della Porta dieci anni più tardi e ne prese il nome grazie alla notevole diffusione che ebbe il suo trattato De furtivis literarum notis.
Il francese Vigenère utilizzò poi il versetto per cifrare ciascuna lettera con la sua tavola ad alfabeti regolari identica a quella del Tritemio e che oggi porta il suo nome. Il suo sistema è stato considerato indecifrabile per tre secoli, finché nel 1863 il colonnello prussiano Friedrich Kasiski pubblicò un metodo per "forzarlo", chiamato Esame Kasiski. Qualsiasi sia il sistema crittografico utilizzato, la legge fondamentale sul corretto uso di tali tecniche fu scritta da Kerckhoffs ("Legge di Kerckhoffs") nel suo libro del 1883 La Cryptographie Militaire e di seguito riportata: «La sicurezza di un crittosistema non deve dipendere dal tener celato il crittoalgoritmo. La sicurezza dipenderà solo dal tener celata la chiave.» Nel 1918 Gilbert Vernam maggiore dell'esercito statunitense e tecnico all'AT&T Bell, perfezionò il metodo di Vigenère proponendo l'idea di usare chiavi segrete casuali lunghe almeno quanto il messaggio.
Con il possesso di un sistema crittografico perfetto, la battaglia teorica tra crittografia e crittoanalisi si è risolta con una vittoria della prima sulla seconda. Ipotizzando di voler far uso di questa insuperabile protezione, restano però aperti molti problemi di ordine pratico. Bisogna infatti soddisfare gli stringenti requisiti del cifrario di Vernam: chiave lunga quanto il messaggio e mai più riutilizzabile. Tuttavia si hanno notizie di utilizzi di questo cifrario in ambiente militare (comunicazione con le spie: si veda a proposito One Time Pad), o per la protezione delle comunicazioni del telefono rosso tra Washington e Mosca durante la guerra fredda.
Durante la seconda guerra mondiale, la crittografia ha giocato un ruolo di primaria importanza e la superiorità degli alleati in questo campo è stata determinante. La Germania nazista considerava inattaccabile la sua macchina Enigma, tuttavia già nel 1932 l'ufficio cifrario polacco era riuscito a forzarla così come gli inglesi che più volte sono riusciti a decifrare i messaggi tedeschi generati da essa durante la guerra, e poi dalla macchina Lorenz a partire dal 1941. In più occasioni la superiorità in campo crittografico si è rivelata essere un fattore discriminante per le vittorie alleate come ad esempio nella Battaglia di Capo Matapan, in cui gli inglesi erano riusciti a decifrare i messaggi della marina tedesca che fornivano l'esatta posizione della flotta italiana che fu quindi distrutta nel marzo 1941, e nello Sbarco in Normandia, in cui gli alleati inviarono falsi messaggi sul loro sbarco a Calais facendo sì che i tedeschi mandassero in quella zona le loro migliori truppe in modo tale da avere una bassa resistenza in Normandia; gli inglesi seppero della riuscita dell'inganno decifrando i messaggi tedeschi generati dalla macchina Lorenz.
Nel corso della seconda guerra mondiale l'esercito scrisse telegrammi in lingua navajo per fare in modo che i giapponesi non riuscissero a decifrarli. Gli statunitensi, d'altronde, già a partire dal 1940 disponevano della macchina Magic con la quale decifravano i messaggi giapponesi cifrati con la macchina Purple. Fra tutti, vi sono due episodi conclamati in cui gli americani conoscevano le mosse nemiche: la Battaglia delle Midway e la morte dell'Ammiraglio Yamamoto. Successivamente, nel 1949, Claude Shannon, padre della teoria dell'informazione, nel lavoro La teoria della comunicazione nei sistemi crittografici dimostrò che questo è l'unico metodo crittografico possibile che sia totalmente sicuro.
Descrizione
Come descritto in incipit, crittografia e cifratura non sono sinonimi seppure sono due concetti attigui. La crittografia è la costruzione della chiave (algoritmo). La cifratura è l'applicazione ovvero la codifica del messaggio attraverso la chiave di crittografia. La cifratura e la decifratura sono fasi del processo di crittografia.
La crittografia si basa su un algoritmo e su una chiave crittografica. In tal modo si garantisce la confidenzialità delle informazioni che è uno dei requisiti essenziali nell'ambito della sicurezza informatica impedendo così la realizzazione di diversi tipi di attacchi informatici ai dati riservati (es. sniffing). L'approccio inverso di studio volto a rompere un meccanismo crittografico è detto invece crittoanalisi che rappresenta l'altra branca della crittologia. Cruciali sono anche i tempi necessari alla crittoanalisi per la decifrazione del messaggio: per diverse applicazioni di telecomunicazioni e informatica un sistema si può considerare sicuro anche se il suo sistema di cifratura risulta violabile, ma con tempi di realizzazione che renderebbero poi vani i successivi tentativi di attacco diretto.
L'attuale ricerca crittografica, avendo risolto il problema teorico della garanzia della sicurezza, si dedica al superamento dei forti limiti d'uso anzidetti. Si cercano metodi più comodi ma ciononostante estremamente sicuri che, possibilmente, utilizzino chiavi corte e riutilizzabili senza compromettere la loro utilità. Al momento non esiste alcuna tecnica crittografica che si possa definire sicura in senso assoluto, tranne il Cifrario di Vernam; tutte le altre tecniche rendono sicuro il dato solo per un certo arco temporale e non possono garantire la durata della segretezza.
Definizioni Nei sistemi di cifratura informatica (digitale) vi sono applicazioni che rimandando a determinate logiche. Ad esempio: cifratura dei dati in transito (data encryption in-transit): protezione del flusso dati durante il trasporto; cifratura dei dati a riposo (data encryption at-rest): protezione dei dati quando sono residenti nell'unità di archiviazione (cioè la memoria di massa interna del dispositivo o quella di una periferica esterna come una comune scheda SD); in pratica, è attiva quando i dati non sono ancora (o non più) in uso o in trasferimento (sostanzialmente cioè il dispositivo è spento o uno stato equivalente); cifratura dati in uso (data encryption in-use): crittografia dei dati quando sono memorizzati temporaneamente nella RAM; cifratura da un capo all'altro (end-to-end encryption (E2EE)): protezione della comunicazione in modo che solo mittente e destinatario possano cifrare o decifrare i contenuti e la transazione; in alcuni casi occorre specificare se il trasferimento è all'interno dell'asset tra componenti diversi o tra host. Dato che solo i due client che comunicano hanno la chiave crittografica, i server che prendono parte al flusso elaborativo e/o di trasporto non possono decifrare il contenuto.
Come si vede, la materia è complessa e quindi andrebbe sempre specificato "a cosa" e/o "quando" la cifratura è attuata. Inoltre, anche lo stato dell'apparato o del servizio è rilevante: ad esempio, citando solo la cifratura dei dati a riposo (in pratica i contenuti conservati in una memoria di massa), un conto è il dispositivo (criptato) da spento, un altro è quando ha la schermata bloccata ma è acceso (perché in quel momento il sistema potrebbe essere decriptato (cioè essere in chiaro) e quindi potrebbe essere vulnerabile ad attacchi).
Rischi La cifratura ha numerosi vantaggi ma anche qualche svantaggio: uso di risorse da parte del sistema per procedere alle operazioni; maggiore operatività nel normale utilizzo (ad esempio quando la si deve sospendere temporaneamente per consentire aggiornamenti del firmware o carichi di lavoro straordinari); il principale: nel caso di smarrimento della chiave crittografica è impossibile recuperare dati o partizioni in chiaro. Continuano a esistere ma rimarranno semplicemente illeggibili per sempre.
Tenere presente che se non si disabilita la cifratura o non si inserisce l'elemento di sblocco (se previsto) è impossibile anche effettuare le operazioni sulle partizioni cifrate (a parte l'eliminazione) quando il sistema operativo che controlla la cifratura non è in esecuzione (ad esempio ricorrendo ad una sessione live USB).
Crittografia simmetrica
Fino a pochi anni fa era l'unico metodo crittografico esistente, con cui si faceva uso di un'unica chiave sia per proteggere il messaggio che per renderlo nuovamente leggibile. Tali algoritmi hanno però diversi problemi:
La chiave segreta deve essere scambiata tra i due interlocutori, per cui esiste almeno un momento in cui una terza persona potrebbe impossessarsene durante la trasmissione. Se la chiave viene compromessa da una terza persona, questa non solo potrà decifrare tutto il traffico cifrato con quella chiave ma anche produrre dei messaggi falsi o alterare gli originali senza che il destinatario se ne renda conto. Ogni coppia di interlocutori deve definire una chiave per cui c'è la necessità di un grande numero di chiavi (in una rete con N utenti sono richieste N(N-1)/2 chiavi).
La ricerca sulla crittografia simmetrica ha negli anni prodotto sistemi crittografici di tutto rispetto (ultimo tra tutti il cifrario Rijndael, scelto per il nuovo standard Advanced Encryption Standard per essere utilizzato nel prossimo ventennio, sostituendo l'ormai datato Data Encryption Standard).
Crittografia asimmetrica
La vera novità del secolo scorso è l'invenzione di una tecnica crittografica che utilizza chiavi diverse per cifrare e per decifrare un messaggio, facilitando significativamente il compito di distribuzione delle chiavi. Infatti in questo caso non è necessario nascondere le chiavi o le password: c'è una chiave per crittografare (che chiunque può vedere) e una per decifrare, che conosce solo il destinatario senza necessità quindi di riceverla (scambiarla) dal mittente. In altre parole, se Alice vuole ricevere un messaggio segreto da Bob, manda a Bob la chiave pubblica. Bob usa la chiave pubblica per cifrare un messaggio che manda ad Alice, la quale è l'unica ad avere la chiave. Chiunque può veder passare il messaggio, ma non può decifrarlo, in quanto non ha la chiave privata. Alice deve però tenere al sicuro la chiave privata.