Crittografia

Enciclopedia della Matematica (2013)

crittografia


crittografia o criptografia (dal greco kryptós, nascosto, e graphía, scrittura) sistema di scrittura e trasmissione cifrata delle informazioni interpretabile solo da chi conosca il particolare artificio utilizzato. Il termine indica anche l’insieme delle tecniche (manuali, matematiche, meccaniche, elettroniche ecc.) utilizzate per trasformare un testo in chiaro e leggibile (plaintext) in una sequenza incomprensibile di caratteri (messaggio cifrato o ciphertext), in modo da precluderne la lettura e la manipolazione a chi non ne abbia l’autorizzazione e da consentirne l’accesso solo ai destinatari in possesso dei dispositivi necessari per riportare il messaggio criptato alla sequenza originale. Il procedimento di secretazione è detto crittazione o cifratura. Il processo inverso di ripristino della forma originale è detto decifrazione se eseguito dal legittimo destinatario del messaggio, decrittazione se effettuato da qualunque altro soggetto non legittimato. La crittazione deve essere tale da rendere semplice la decifrazione e complessa la decrittazione. I sistemi di crittografia si basano su un procedimento di trasformazione, denominato algoritmo crittografico, che si applica al testo da trattare attraverso un’informazione segreta detta chiave. Spesso l’algoritmo crittografico è di dominio pubblico o comunque non ha necessità di essere tenuto segreto; al contrario la chiave, di norma, è un’informazione che va mantenuta riservata, poiché essa definisce i particolari con cui l’algoritmo è applicato e da essa dipende la sicurezza del sistema crittografico. Nelle tecniche di crittografia si include spesso anche la steganografia, che invece non si basa sulla trasformazione del testo, ma sull’occultamento fisico del messaggio (steganós in greco significa «coperto»), come per esempio nella ricopertura con argilla di tavolette incise con messaggi segreti o nella tecnica dei microdots (micropunti), in cui il messaggio viene miniaturizzato, separato in diverse parti e infine inserito all’interno dei puntini delle lettere i che fanno parte delle parole di un documento con contenuti generalmente irrilevanti. Le tecniche di crittografia si possono suddividere, a seconda del metodo di trasformazione del testo, in trasposizione e sostituzione. Nei metodi di trasposizione viene scambiata la posizione delle lettere del testo per ottenere un anagramma, mentre in quelli di sostituzione alcune lettere o intere parole del messaggio sono sostituite con altre lettere, parole, numeri o simboli qualunque. In particolare, nel caso di sostituzione di singole lettere si parla tecnicamente di cifratura, mentre se si sostituiscono intere parole con altre convenzionalmente stabilite (parole in codice) si parla di codifica. Nelle procedure di codifica, l’unico elemento in grado di trasformare il testo è l’elenco delle parole in codice (cifrario) che deve essere cambiato ogni volta si sospetti possa aver perso il carattere di riservatezza. I sistemi di crittografia utilizzati con risorse informatiche si suddividono in algoritmi a chiave privata (o simmetrica) e algoritmi a chiave pubblica (o asimmetrica). Nei primi, la chiave da applicare all’algoritmo è la stessa per il mittente e per il destinatario, i quali devono quindi precedentemente accordarsi sulla chiave da utilizzare, che deve essere tenuta segreta. Negli algoritmi a chiave pubblica, ideati negli anni Settanta del secolo scorso, una parte della chiave può essere liberamente divulgata; in tal modo viene risolto il problema della distribuzione delle chiavi attraverso canali non sicuri come la rete Internet.

Scopi e applicazioni

La crittografia riveste un ruolo fondamentale in rapporto ai temi della riservatezza personale (privacy) e ai sistemi di sicurezza per garantire un adeguato livello di protezione delle informazioni, in particolare nei seguenti ambiti: confidenzialità delle informazioni riservate a una ristretta cerchia di persone, che devono essere protette da individui o enti non autorizzati a conoscerne i contenuti; integrità dei dati e loro tutela da operazioni illegittime di alterazione (modifica, cancellazione ecc.); autenticazione e accertamento dell’identità di un soggetto o dell’origine di un documento. Tecnica dalla storia millenaria, utilizzata in passato soprattutto in campo diplomatico e militare, per effetto della vasta diffusione delle reti per telecomunicazioni la crittografia è tornata a svolgere un ruolo fondamentale in numerose attività della vita quotidiana, come per esempio nella ricezione di programmi (criptati) da televisioni a pagamento, nella protezione dei diritti in ambito musicale e cinematografico, nella comunicazione attraverso la telefonia mobile, nella firma digitale e nella consegna ufficiale per via telematica di documenti, nei sistemi di pagamento elettronici o di prelievo di denaro contante da sportelli automatici, nel processo di autenticazione per l’accesso ad archivi e sistemi di elaborazione, nelle molteplici transazioni su Internet che necessitano di riservatezza, come le operazioni di acquisto con carta di credito o lo scambio di informazioni confidenziali attraverso la posta elettronica, nella sempre più marcata diffusione di comunicazioni wi-fi.

Storia

L’uso della crittografia per scrivere messaggi segreti interpretabili solo dal destinatario era già noto agli egiziani e ai greci antichi. Anche nella Bibbia è presente il riferimento a una tecnica di cifratura per la scrittura del nome di Babele. Si tratta del cosiddetto codice di Atbash in cui la prima lettera (aleph) dell’alfabeto ebraico, costituito da 22 simboli, è sostituita con l’ultima (tau), la seconda (beth) con la penultima (sin) e così via. Tra i più antichi metodi di trasposizione è noto fin dal sec. ix a.C. l’uso della scitale lacedemonica, un bastone attorno al quale si avvolgeva un nastro di cuoio o una striscia di papiro su cui veniva scritto il messaggio che poteva così essere correttamente letto solo da chi avesse di nuovo avvolto il nastro attorno a un bastone dello stesso diametro dell’originario. Già Erodoto nel sec. v a.C. ed Enea il Tattico nel secolo successivo scrissero trattati relativi all’uso delle tecniche della crittografia in campo militare. Tra i sistemi più utilizzati vanno ricordati i codici di Cesare basati sulla sostituzione di ogni lettera del testo con una lettera successiva a distanza fissa, per esempio la A con la D, la B con la E e così via. Con tale sistema, la parola «crittografia» è trasformata in FUNZZRLUDIND. Lo scrittore greco Polibio introdusse l’uso di una tabella, detta scacchiera, che associa ogni lettera dell’alfabeto a una coppia ordinata di numeri che rappresentano rispettivamente la riga e la colonna in cui la lettera è posizionata all’interno della tabella. In questo modo una frase era tradotta in una sequenza di cifre comprese fra 1 e 6, permettendo la comunicazione a distanza attraverso l’uso di torce che venivano innalzate un numero di volte corrispondente alla sequenza di cifre. Gli arabi utilizzarono comunemente la crittografia già a partire dal x secolo d.C. per cifrare documenti burocratici. In particolare erano molto utilizzati codici basati su metodi di sostituzione monoalfabetica, in cui ogni lettera è trasformata sempre nello stesso simbolo (come anche nei casi del codice di Atbash, dei codici di Cesare e della scacchiera di Polibio). Furono proprio gli arabi nel medioevo a sviluppare raffinate tecniche di crittoanalisi basate sull’indagine statistica della frequenza dei caratteri, che resero poco sicure le tecniche basate sulla sostituzione monoalfabetica. Nel sec. xvi vennero proposti metodi di sostituzione polialfabetica, in cui una lettera del testo in chiaro non è trasformata sempre in una stessa lettera cifrata, e fu introdotto il concetto di chiave. Per esempio, volendo cifrare il messaggio «CESARE È STATO UCCISO» utilizzando per la prima parola il codice monoalfabetico che sostituisce la A con la G, per la seconda quello che sostituisce la A con la E, per la terza quello che sostituisce la A con la C e per la quarta quello che sostituisce la A con la O, allora si ottiene il messaggio codificato «JLZGYL J VWCWR JRRXHD» e la chiave necessaria per decodificarlo è la parola «GECO». Nel suo Trattato della cifra (1472), Leon Battista Alberti descrisse tra l’altro un sistema di crittografia basato su una coppia di cerchi concentrici dotati di 24 simboli ciascuno, in grado di operare una sostituzione polialfabetica. All’inizio del sec. xix la crittografia cominciò ad avvalersi degli ausili della meccanica, come nella macchina cifrante di Thomas Jefferson (presidente degli Stati Uniti dal 1801), evoluzione dei cerchi dell’Alberti e costituita da 36 dischi rotanti. Una vera e propria rivoluzione in campo crittografico si è avuta agli inizi del Novecento con le telecomunicazioni via radio (e le possibili intercettazioni via etere) e con l’invenzione degli elaboratori elettronici. Questi furono utilizzati per la prima volta durante la seconda guerra mondiale dal controspionaggio inglese per decifrare i messaggi dell’esercito tedesco criptati attraverso una macchina chiamata Enigma, inventata nel 1918 da Arthur Scherbius e dotata al suo interno di diversi rotori collegati elettricamente, la cui disposizione iniziale costituiva la chiave segreta. Per forzare Enigma, il matematico A. Turing, tra i fondatori dell’informatica teorica, anche grazie agli studi di un gruppo di matematici polacchi guidato da Marian Rejewski e alle coraggiose operazioni di recupero dei cifrari tedeschi usati nella configurazione della macchina, progettò e costruì enormi macchine elettromeccaniche chiamate Colossi, precursori dei moderni calcolatori e in grado di setacciare l’immensa mole di dati necessari alla decifrazione seguendo dei programmi appositamente studiati denominati bombs. Con l’introduzione delle prime applicazioni informatiche il problema dei crittografi diventò quello di sviluppare metodi in grado di resistere all’analisi esaustiva di un calcolatore abbastanza potente da verificare tutte le possibili combinazioni. Un problema ulteriore nato con la diffusione dei calcolatori e delle reti di telecomunicazione fu quello della distribuzione delle chiavi su canali non protetti come il telefono e in particolare Internet. Quest’ultimo problema è stato risolto attraverso algoritmi a chiave pubblica, in cui una parte della chiave può essere distribuita in chiaro a tutti i destinatari senza diminuire il livello di sicurezza. La nuova sfida tra crittografi e crittoanalisti si gioca oggi sul terreno della fisica quantistica: da una parte i computer quantistici offrono la possibilità di forzare praticamente ogni tipo di scrittura segreta moderna, dall’altra la teorizzata crittografia quantistica dovrebbe rappresentare un sistema assolutamente inviolabile. Un’altra sfida si gioca tra le istituzioni preposte a garantire la sicurezza a livello nazionale e internazionale, preoccupate per la diffusione di sistemi crittografici che potrebbero essere utilizzati da gruppi criminali per comunicazioni segrete, e le organizzazioni che si battono per i diritti legati alla libertà dell’individuo e alla riservatezza personale.

Crittografia a chiave segreta (o simmetrica)

Tecnica crittografica che utilizza un’unica chiave, condivisa dal mittente e dal destinatario. Impiegando lo stesso algoritmo e la stessa chiave è dunque possibile sia cifrare un messaggio sia volgerlo di nuovo in chiaro. Fra i numerosi sistemi di crittografia simmetrica, uno dei più importanti è storicamente il Data Encryption System (des), introdotto a metà degli anni Settanta del secolo scorso dall’ibm per superare l’analisi esaustiva operata tramite risorse informatiche. Il des si basa su una serie di sostituzioni e trasposizioni su blocchi di dati di 64 bit, valore che rappresenta anche la lunghezza della chiave. Dato che in un gruppo di 8 bit un bit è di controllo, la lunghezza effettiva della chiave è di 56 bit. È possibile che questo limite, che permette a computer di grandi organizzazioni di forzare il codice, fosse stato concordato dall’ibm (che in origine prevedeva di utilizzare una chiave di lunghezza maggiore) con la National Security Agency (nsa). Le ripetute forzature effettuate con successo e in tempi sempre minori a scopo dimostrativo anche da parte dell’Electronic Frontier Foundation (eff) ha portato negli anni Novanta al progressivo abbandono del des, a favore del triplo des (des ripetuto tre volte con una chiave di 112 bit), e degli algoritmi idea e aes. idea, sviluppato all’inizio degli anni Novanta da Xuejia Lai e James Massey, è un algoritmo a blocchi che utilizza chiavi di 128 bit, ritenuto fra i più sicuri e utilizzato nel programma per la privacy personale. Nel 2000, il National Institute of Standard and Technology (nist) ha scelto, fra 15 algoritmi candidati, l’Advanced Encryption Standard (aes), lo standard ufficiale di cifratura che sostituisce il des. Si tratta di un algoritmo denominato Rijndael (dall’unione dei nomi dei suoi inventori, Vincent Rijmen e Joan Daemen) basato su blocchi di 128 bit o in generale di lunghezza multipla di 32 bit. Il problema fondamentale dei sistemi a chiave segreta risiede nella difficoltà della distribuzione delle chiavi a tutti i destinatari di un messaggio attraverso canali intrinsecamente non sicuri, come per esempio Internet. La chiave deve essere infatti diversa per ogni coppia mittente-destinatario per prevenire operazioni illegittime di cifratura da parte di un destinatario che potrebbe comporre e spedire messaggi fingendosi il mittente originario oppure per evitare che successivi messaggi cifrati siano interpretati da destinatari non autorizzati in possesso della chiave. Se per ogni coppia di interlocutori si utilizza una chiave differente il numero di chiavi per un gruppo composto da n soggetti che vogliano comunicare è pari a n(n − 1)/2; per esempio, per 5 soggetti si dovrebbero generare, memorizzare e distribuire 10 chiavi diverse, mentre per 100 soggetti (si pensi all’ambiente bancario) le chiavi arriverebbero a circa 5000.

Crittografia a chiave pubblica (o asimmetrica)

Il concetto di crittografia a chiave pubblica è stato introdotto teoricamente nel 1976 dagli studi di Whitfield Diffie e Martin Hellman per risolvere il problema della distribuzione delle chiavi tra gli interlocutori su canali insicuri. Una implementazione molto diffusa è l’algoritmo, sviluppato nel 1978, denominato rsa dalle iniziali dei suoi inventori Ronald Rivest, Adi Shamir e Leonard Adleman, che fonda la sua sicurezza sulla complessità del problema della fattorizzazione in numeri primi di un numero molto grande. I sistemi di crittografia a chiave pubblica, o asimmetrica, sono basati sull’uso di una coppia di chiavi, l’una pubblica e l’altra privata, di lunghezza generalmente compresa fra 1024 e 2048 bit. La chiave privata va tenuta segreta mentre la chiave pubblica viene distribuita agli interlocutori senza problemi di riservatezza del canale perché può essere conosciuta da chiunque senza compromettere la sicurezza del sistema di crittografia. La coppia di chiavi è infatti generata in modo che sia praticamente impossibile, con le attuali potenze di calcolo, risalire alla chiave privata conoscendo quella pubblica. La sicurezza dipende dalla lunghezza delle chiavi: lo stesso Shamir ha presentato una macchina in grado di fattorizzare chiavi da 512 bit e con l’esponenziale incremento della potenza di calcolo sarà necessario allungare adeguatamente la lunghezza delle chiavi. Un altro fattore fondamentale per la sicurezza del sistema è dato dalla garanzia che una chiave pubblica appartenga effettivamente al soggetto che l’ha generata in coppia con la corrispondente chiave privata; l’autenticità delle chiavi pubbliche è garantita attraverso un sistema denominato Public Key Infrastructure (pki), in cui un’entità di certificazione (Certification Authority, ca) associa un soggetto alla propria chiave pubblica. Il mittente che voglia cifrare un messaggio per il destinatario, deve applicare l’algoritmo di cifratura con la chiave pubblica del destinatario (che è conosciuta da tutti, visto che è di pubblico dominio); questi sarà l’unico in grado di decifrare il messaggio attraverso l’uso della chiave privata personale (che conosce solo lui). La crittografia a chiave pubblica permette di ottenere, oltre alla riservatezza, anche l’autenticazione del mittente e l’integrità dei dati. Per questi scopi occorre che il mittente cifri il messaggio con la propria chiave privata prima di spedirlo al destinatario: tutti potranno volgere in chiaro il messaggio utilizzando la chiave pubblica del mittente, ma nessuno potrà modificare il messaggio della cui integrità e provenienza il destinatario potrà essere sicuro. Per sommare la riservatezza a funzioni di autenticazione e integrità, il mittente utilizzerà sia la propria chiave privata sia la chiave pubblica del destinatario.

Sistemi misti

La relativa lentezza delle operazioni di crittografia di tipo asimmetrico rispetto a quelle basate su chiave simmetrica ha portato all’utilizzo di tecniche miste. In questo caso è generata una chiave simmetrica con la quale si esegue la cifratura del messaggio o del documento utilizzando i veloci algoritmi di tipo simmetrico (per esempio des, idea, aes ecc.). Questa chiave è a sua volta cifrata attraverso la chiave pubblica del destinatario e può così essere spedita, insieme al messaggio cifrato, in modo sicuro. Il destinatario, una volta ricevuto il messaggio, usa la propria chiave privata per decifrare la chiave simmetrica «usa e getta», quindi usa quest’ultima per decifrare il messaggio. Questo tipo di crittografia viene utilizzata per esempio nella firma digitale, nel sistema di crittografia dedicato alla riservatezza personale per la posta elettronica denominato pgp (Pretty Good Privacy) e nel protocollo per la sicurezza di Internet ssl (Secure Socket Layer).

lettC_07210.rtf

TAG

Advanced encryption standard

Reti per telecomunicazioni

Public key infrastructure

Seconda guerra mondiale

Leon battista alberti