Forse i primi messaggi cifrati/segreti risalgono alla Scitala Lacedemonica, usata ai tempi di Lisandro (verso il 400 a.C.). Consisteva in un bastone su cui si avvolgeva ad elica un nastro di cuoio; sul nastro si scriveva per colonne parallele all'asse del bastone, e lettera per lettera, il testo segreto.
Tolto il nastro dal bastone il testo vi risultava trasposto in modo regolare ma sufficiente per evitare la lettura senza un secondo bastone uguale al primo. In seguito venne compilato da Enea il tattico, generale della lega arcadica, il primo trattato di cifre che riguardava appunto messaggi segreti.
In questo viene descritto un disco sulla zona esterna del quale erano contenuti 24 fori, ciascuno corrispondente ad una lettera dell'alfabeto. Un filo, partendo da un foro centrale, si avvolgeva passando per i fori delle successive lettere del testo: all'arrivo, riportate le lettere sul disco, si svolgeva il filo segnando le lettere da esso indicate. Il testo era letto a rovescio. Le vocali spesso erano sostituite da gruppi di puntini. In questo stesso periodo vennero ideati codici cifrati indiani ed ebraici utilizzati in particolar modo per celare nomi propri o sacrileghi.
Numerosi testi e documenti greci antichi contengono tratti cifrati, specialmente nomi propri, ma si trovano anche interi scritti cifrati con sostituzione semplice e con alfabeti generalmente a numero.
Ma cosa s'intende per Crittografia? Deriva dal greco e vuol dire "messaggi cifrati" (nascosti).
STEGANOGRAFIA
La Steganografia è una delle prime tecniche utilizzate per comunicare segretamente.
Anche questa parola ha origine greca: è data dall’unione di steganos (nascosto) e graphéin. Consisteva, appunto, nel nascondere il messaggio da comunicare in un oggetto o in un posto, dove nessun altro fuorché il destinatario sarebbe mai andato a guardare. Oggi è possibile nascondere messaggi in video, musica, immagini e in generale files. Per approfondire: Nascondere Dati All'Interno Di File: OpenPuff e Cos'è La Crittografia Negabile
CODICE DI ATBASH
Questo codice consiste in una semplice sostituzione, molto simile a quella di Cesare.
La sostituzione di Cesare era basata sull'alfabeto romano, mentre il codice di Atbash si basava su quello ebraico, composto da 22 lettere. Nel codice di Atbash, la prima lettera dell'alfabeto ebraico (aleph) viene sostituita con l'ultima (taw), la seconda (beth) con la penultima (sin o shin) e così via.
Usando per comodità l'alfabeto inglese come base per l'Atbash si otterrà una tabella di cifratura simile a quella riportata qui sotto:
Testo Normale: a b c d e f g h i j k l m
Testo Crittografato: Z Y X W V U T S R Q P O N
Il codice di Atbash è quindi meno complesso di quello di Cesare, poichè al contrario di quest'ultimo prevede solo un tipo di sostituzione.
CODICE ALBAM
Richiede che l’alfabeto venga diviso in due parti e che ogni lettera venga sostituita con la corrispondente dell'altra metà.
Esempio: … a b c d e f g h i j k l m | n o p q r s t u v w x y z „ Sara Æ fnen
CODICE ATBAH
La sostituzione soddisfa 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.
Esempio: a b c d e f g h i j k l m n o p q r s t u v w x y z.
La c = 3 viene sostituita con la g=7 in modo che la somma sia 10.
CIFRARIO DI CESARE ED AUGUSTO
Giulio Cesare ed Augusto nelle loro corrispondenze con i famigliari usavano un alfabeto regolare, spostato di pochi posti. Le comunicazioni in codice, avevano l'ordine delle lettere "spostato" di qualche carattere. Se qualcuno avesse voluto capire il senso e decifrare, avrebbe dovuto individuare di quanti carattere era stata spostata una data lettera. Ad esempio Cesare utilizzava l' A per D, B per E, C per F e così via per le rimanenti (cioè uno spostamento di 3 caratteri).
Augusto invece stava accanto al semplice codice di Cesare un cifrario più sicuro per le comunicazioni più delicate. Il metodo si basava sul testo greco dell'Iliade.
Si tratta chiaramente di cifrario polialfabetico che precorre di 1500 anni la tavola di Vigenére.
SCACCHIERA DI POLIBIO
Polibio fu uno scrittore greco che inventò un sistema per convertire caratteri alfabetici in caratteri numerici. Al posto di quello greco, utilizziamo l'alfabeto inglese il quale però ha il difetto di essere formato da 26 caratteri; così per poter costruire il quadrato necessario per la cifratura bisognerà, come in questo caso per la k e la q, "fondere" due lettere rare ma non foneticamente differenti nella stessa casella. In questo modo si otterrà la seguente tabella:
# 1 2 3 4 5
1 a b c d e
2 f g h i j
3 kq l m n o
4 p r s t u
5 v w x y z
Ogni lettera può viene quindi rappresentata da due numeri, guardando la riga e la colonna in cui la lettera si trova.
Quindi a=11, b=12, i=24, p=41, etc
Per scrivere "ciao": 23241135.
La scacchiera ha altre importanti caratteristiche, e cioé la riduzione nel numero di caratteri diversi, la conversione in numeri e la riduzione di un simbolo in due parti che sono utilizzabili separatamente. Indipendentemente dalla tecnica, queste scacchiere formano la base per molti altri codici di cifratura come il Playfair Cipher.
ALTO MEDIOEVO
Si usava il cifrario di Cesare o si sostituivano alle varie lettere segni greci, cabalistici, runici, spesso limitando tale sistema alle vocali, cifrate a volte con gruppi di punti, secondo il sistema di Enea il tattico. Si usavano anche le cosiddette nomenclature, ossia liste di parole chiave del gergo diplomatico abbreviate con un solo segno; ne troviamo molti esempi tra i secoli XIV° e XVIII°.
Un altro sistema è quello usato dall'Arcivescovo di Napoli, Pietro di Grazia, tra il 1363 e il 1365 in cui le vocali sono sostituite da semplici segni e le vocali scritte in chiaro funzionano da nulle; nelle ultime lettere il procedimento è applicato anche alle consonanti più frequenti (l,r,s,m,n), che a volte erano cifrate anche con altre lettere alfabetiche. Oppure ogni lettera è cifrata con un segno di fantasia, in alcuni casi vi sono delle nulle, in altri vi sono delle nomenclature; le vocali sono trattate come le altre lettere.
CIFRATURA CON POLIFONI
Altre cifre papali del XVI° secolo utilizzano un sistema assai diverso, ossia la cifratura con polifoni. Il nomenclatore di tali cifre è costituito da circa 300 voci, tutte cifrate con gruppi di tre cifre.
Un altro esempio di polifonia si trova nel sistema usato dal langravio d'Assia nei primissimi anni del '600, nella quale spesso un gruppo di due numeri indica o una lettera ed una parola vuota oppure una sillaba. Tuttavia è probabilmente a distinguere le funzioni del gruppo era la collocazione di segni ausiliari, che poi il tempo ha cancellato. Secondo il Meister, uno studioso di crittografia, il sistema polifonico era usato spesso per ridurre la lunghezza del testo cifrato.
Egli riporta anche istruzioni per la composizione di simili cifre che sono all'avanguardia per i suoi tempi.
DISCO CIFRANTE DI ALBERTI
Alberti propose una coppia di cerchi cifranti concentrici: uno esterno fisso con 24 caselle contenenti 20 lettere maiuscole (escluse le rare J K Y W Q H) ed i numeri 1 2 3 4 per il testo chiaro; ed uno interno mobile, con le 24 lettere latine minuscole (con U=V) per il testo cifrato: le 20 lettere maiuscole messe in ordine alfabetico. Invece le 24 maiuscole in disordine (questa è una norma fondamentale, trascurata da molti successori dell'Alberti, senza la quale si ha una semplice generalizzazione del codice di Cesare). Fissata una lettera maiuscola come indice (ad es. C) si deve spostare il disco mobile interno e scrivere, come prima lettera del crittogramma, la lettera maiuscola (nel nostro caso j) che corrisponde alla C; quindi cifrare alcune parole con la lista risultante. I numeri 1 2 3 4 servono da nulle.
Quando si decide di cambiare la lista cifrante si scriverà la nuova lettera chiave in maiuscolo in modo da indicare chiaramente al corrispondente il cambio di lista. Ciò fatto, si porterà quella lettera ad affacciare l'indice C ed in questa nuova posizione si cifreranno altre parole secondo la nuova lista.
Per aumentare la segretezza, Alberti suggerisce di usare uno dei quattro numeri per segnalare il cambio di alfabeto; la lettera minuscola corrispondente al numero sarà la nuova chiave; non vi sono quindi più lettere maiuscole e la cifra risulta così molto più sicura, e decisamente superiore a quelle che la seguirono nel tempo, e in particolare alla fin troppo famosa Tavola di Vigénère.
Si tratta in definitiva di una delle cifre polialfabetiche più sicure, che non ottenne il successo meritato anche per la decisione dell'Alberti di tenerla segreta.
CRITTOGRAFIA DI PORTA
G.B.Porta (o Della Porta), nel 1563 pubblicò a Napoli un trattato di crittografia.
Tra le cifre proposte da Porta è nota soprattutto la tavola.
La tavola del Porta è molto simile a quella di Bellaso, ma usa 11 alfabeti invece di 5 e introduce il cosiddetto verme letterale, poi generalmente adottato, e che ha il grave inconveniente di produrre un periodo di ciframento relativamente corto, perchè comprendente solo tante lettere quante ne ha il verme nel quale le liste cifranti si susseguono tutte nello stesso ordine: particolarità su cui si basa la decrittazione del sistema, facilitata, in questo caso, dalla conoscenza degli alfabeti usati.
In realtà Porta consiglia di usare 11 alfabeti involuttori arbitrarii, ma dà, come esempio la tavola con l'alfabeto base regolare: sotto questa sola forma la sua cifra è stata poi da tutti divulgata.
Seguendo le indicazioni del Porta si scriverà la parola, lettera per lettera sotto ciascuna lettera del testo chiaro, ripetendola quante volte occorre: la cifratura si farà usando per ciascuna lettera del testo chiaro la lista individuata dalla corrispondente lettera chiave, come nella tavola del Bellaso.
CIFRE DI BELLASO
L'idea è quella di ricavare diversi alfabeti (tutti disordinati) da una parola convenuta, versetto o motto.
Un esempio dell'autore: data la parola chiave sia IOVE, il primo alfabeto derivato(con V=U) è:
I O A B C D F G H L
V E M N P Q R S T X
Il secondo si ottiene spostando circolarmente la seconda riga:
I O A B C D F G H L
X V E M N P Q R S T
e così via fino ad ottenere cinque alfabeti; ognuno di questi sarà identificato da un gruppo di quattro lettere:
I D V Q | I O A B C D F G H L
| V E M N P Q R S T X
O F E R | I O A B C D F G H L
| X V E M N P Q R S T
A G M S | I O A B C D F G H L
| T X V E M N P Q R S
B H N T | I O A B C D F G H L
| S T X V E M N P Q R
C L P X | I O A B C D F G H L
| R S T X V E M N P Q
A questo punto si deve selezionare l'alfabeto da usare, per esempio OPTARE MELIORA.
Volendo allora cifrare la frase "Inviare truppe domani" si ha:
Verme O P T
Chiaro I N V I A R E T R U P P E D O M A N I
Cifrato X C O X E G A A I C H H D M T D X F S
Le cifre del Bellaso sono più deboli di quella di Alberti perchè usano pochi alfabeti ed il cambio di lista non è segreto.
CODICE DI VIGENERE
Il codice di Vigenere è una sostituzione polialfabetica.
Blaise de Vigenere creò anche un codice più sofisticato, ma il suo nome rimase associato a questo codice più debole. Si può dire che il codice di Vigenere è più sicuro di una semplice sostituzione monoalfabetica. Vigénère propose l'uso della tavola quadrata, composta da alfabeti ordinati spostati.
Introdusse poi nel suo uso il verme letterale proposto da Porta, ottenendo una cifra in verità più debole e più scomoda delle precedenti. La tavola è composta dalla lista decifrante scritta orizzontalmente in testa; le liste cifranti sono solo le 26 sottostanti, individuate ciascuna dalla loro prima lettera.
Per cifrare si dovrà prima di tutto scrivere le lettere del verme sotto a quelle del testo chiaro; basterà quindi cercare, per ogni lettera del chiaro, la corrispondente cifrata nell'incrocio tra la colonna individuata dalla lettura chiara e la linea individuata dalla lettera chiave.
Il cifrario di Vigénère è quindi un classico esempio di cifrario polialfabetico.
Il codice di Vigénère richiede la seguente tavola:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R S T U V W X Y Z A B C D E F G H I J K L M N O P S
S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
Il codice richiede anche una chiave (detta anche verme): il testo crittato è formato scrivendo la chiave sotto il testo non crittato. Per crittare il testo, bisogna usare la tabella di Vigénère: ogni lettera sarà crittografata usando la corrispondente della tabella.
Per usare la tabella, basta cercare la riga della lettera del testo chiaro, ad esempio la "A", e quindi la colonna della corrispondente lettera della chiave, per esempio la "V"; all'incrocio tra riga e colonna si trova la lettera del testo crittato, in questo caso "V". Poi, si continua così per le altre lettere, così da ottenere il testo crittografato completo. Una data lettera del testo chiaro non è sempre cifrata con la stessa lettera; per esempio una R può essere cifrata con V, un'altra con I.
Questa è del resto una caratteristica di tutti i codici polialfabetici.
La decodificazione è semplice quando si conosce la chiave.
Basta semplicemente trovare la lettera della chiave dal lato della tabella, leggendo lungo la riga per trovare la lettera del testo crittato e muovendosi poi dall'alto della colonna per trovare la lettera originale del testo non crittato.
MACCHINA A ROTORE DI JEFFERSON
Il codice di Jefferson prende il nome dal suo inventore Thomas Jefferson (1743-1826), autore della Dichiarazione d'Indipendenza e presidente degli USA nel mandato del 1801.
Il codice di Jefferson era un metodo di cifratura meccanico e cioè basato su di una macchina; questa macchina consiste in un cilindro di circa 15 cm di lunghezza e 4 cm di larghezza montato su un asse e sezionato in 36 dischi uguali (25 nella versione poi utilizzata dagli Americani).
Sul bordo di ciascuna ruota sono scritte le 26 lettere dell'alfabeto, equidistanti l'una dall'altra.
L'ordine in cui sono disposte le varie lettere non corrisponde a quello naturale e varia da ruota a ruota.
Il messaggio in chiaro deve essere cifrato a blocchi di 36 lettere ciascuno (qualora l'ultimo blocco presenti meno di 36 lettere, esso deve essere completato con lettere nulle); la chiave di cifra è un numero che va da 1 a 25. Questo metodo di cifratura verrà in parte riutilizzato dai Tedeschi nella Seconda Guerra Mondiale nella cosiddetta Macchina Enigma.
Come quasi tutti i metodi di cifratura anche il cilindro di Jefferson ha un grave difetto che ricorda quello che "minava" il codice di Cesare: poichè le chiavi sono solo 25, se il cilindro cade nelle mani del nemico il crittogramma può essere facilmente risolto.
PLAYFAIR CIPHER
Divulgato nel 1854 da Lyon Playfair doveva essere utilizzato durante la guerra di Crimea ma il sistema fu utilizzato dall’esercito britannico solamente a partire dalla guerra Boera.
Fu il primo metodo di cifratura a bigrammi. Si usa una matrice 5 x 5 di 25 lettere che viene riempita nelle prime caselle con la parola chiave, abolendo le eventuali lettere ripetute, ed è completata con le rimanenti lettere nel loro ordine alfabetico.
CIFRARIO BIFIDO DI DELASTELLE
Il metodo è dovuto a Félix-Marie Delastelle uno tra i massimi crittologi francesi del XIX secolo. Cifrario poligrafico basato sulla matrice 5x5 usata per la prima volta nella scacchiera di Polibio.
La matrice può essere quella semplice con le lettere dell'alfabeto ordinate (senza la W che può cifrarsi con una doppia V), oppure può essere ottenuta con una parola chiave come nel cifrario di Playfair.
CIFRA CAMPALE GERMANICA
Metodo di Crittografia usato dall’esercito tedesco nella Grande Guerra, a partire dagli inizi del 1918. Il metodo utilizza una scacchiera simile a quella usata nel Playfair Cipher, e nel cifrario bifido di Delastelle; si sostituiscono le lettere con gruppi di due o più lettere, le quali vengono poi sottoposte a una trasposizione per la trasmissione. Si tratta quindi di un cifrario poligrafico.
CODICE NAVAJOS
Nel tentativo di ottenere delle comunicazioni vocali "sicure" l'esercito USA, prima della seconda guerra mondiale ha sperimentato l'uso della lingua degli indiani Choctaws per criptare le comunicazioni vocali, lingua che era già di per se "criptata". Dopo l'entrata in guerra degli USA, nel 1941, lo studio di questo tipo di "crittografia" venne esteso e si sperimentarono i linguaggi di Commanches, Choctaws, Kiowas, Winnebagos, Seminoles, Navajos, Hopis e Cherokees.
Successivamente la Marina USA ha proseguito il lavoro dell'esercito codificando, espandendo e perfezionando il metodo, usando esclusivamente il linguaggio Navajos.
Usati con successo su molti fronti i "NAC" (Native American Codetalkers) non hanno mai visto "infranto" il loro "codice".
MACCHINA DI LORENZ
Prevede la sostituzione della chiave casuale (Vernam) con una chiave pseudo-casuale generata da un dispositivo meccanico (dodici rotori) secondo una procedura ovviamente segreta.
La cifratura di Lorenz era usata per crittare le comunicazioni tra Hitler e i suoi capi di stato maggiore.
Cifrario non più inattaccabile tanto che fu forzato dai crittanalisti inglesi del progetto Ultra.
MACCHINA ENIGMA
Dopo che la Gran Bretagna dichiarò guerra alla Germania il 3 settembre 1939, le operazioni di decrittazione Britanniche furono spostate da Londra a Bletchley Park.
Questa cittadina di campagna era vicina alla stazione ferroviaria di Bletchley, a metà strada tra Oxford e Cambridge. La Crittografia fu fino al 1979 un campo così gelosamente custodito dai governi, che le pubblicazioni su di esso furono molto rare. Da allora i codici crittografici sono stati analizzati e pubblicati e la crittografia è divenuta un importante ramo della matematica.
Così, il lavoro di decrittazione eseguito da Alan Turing (famoso matematico ed informatico) e i suoi colleghi a Bletchley Park può essere completamente apprezzato solo ora.
Quasi tutte le comunicazioni tedesche venivano criptate con una macchina chiamata Enigma.
Si trattava di una macchina di cifrari a rotore, utilizzate fino all'introduzione di cifrari elettronici e microelettronici che hanno sconvolto e trasformato il mondo della crittografia.
Per forzare l'Enigma (alcuni dettagli della soluzione sono tenuti segreti fino ad oggi) Turing, per conto del governo inglese, si servì di gigantesche macchine chiamate appunto Colossus, che possono considerarsi i precursori dei moderni calcolatori elettronici.
Alcuni sostengono che il 1943, l'anno in cui entrarono in funzione i Colossus, sia l'anno di nascita dell'informatica, ma forse anche questa data va anticipata di qualche anno a favore delle ingegnose macchine elettroniche progettate dal tedesco Konrad Zuse fin dal 1963.
Turing è autore di ricerche estremamente raffinate e molto profonde sul concetto logico-matematico di calcolabilità: la strumento che egli ha proposto per affrontare il problema è noto oggi col nome di macchina di Turing. Le macchine di Touring non hanno niente da spartire coi Colossus, non possiedono né valvole, né transistor, né circuiti integrati, esse sono macchine "astratte" che esistono solo mente di Turing e in quelle dei logici che proseguono le sue ricerche.
Una delle prime macchine di cifra a rotori è stata costruita dal californiano Edward Hebern, che la brevettò nel 1921. Da citare anche le macchine costruite da Boris Hangelin; nel 1927 egli aveva rilevato una ditta che produceva materiale crittografico. Enigma aveva un grande inconveniente: era sprovvisto di stampante. I risultati apparivano illuminati su una tastiera apposita, lettera dopo lettera, e una persona doveva provvedere a trascriverli a mano su un foglio di carta.
Una stampante elettro-meccanica avrebbe appesantito troppo il congegno e lo avrebbe reso poco maneggevole: un problema che la tecnica odierna consente di superare senza difficoltà.
DES (DATA ENCRYPTION STANDARD)
L'IBM, che per molti anni ha dominato incontrastata il mondo dei computer, introdusse nel 1975 un suo cifrario espressamente progettato per l'uso informatico: il Data Encryption Standard o DES.
Si tratta di un cifrario misto che prevede 16 trasformazioni successive (trasposizioni e sostituzioni). In pratica il testo chiaro viene suddiviso in blocchi da 64 bit (equivalenti a 8 caratteri); ogni blocco è sottoposto a una trasposizione data in base ad una chiave di 64 bit; si applica quindi per 16 volte una funzione cifrante e alla fine la trasposizione inversa di quella iniziale.
La chiave deve essere concordata tra mittente e destinatario; si tratta quindi di un cifrario a chiave segreta. Il DES è stato presentato come un cifrario assolutamente sicuro, ma su questa presunta inattaccabilità si sono accese molte polemiche e certo anche molte leggende.
Tuttavia secondo Hellman della Stanford University, la chiave è troppo corta e il codice potrebbe essere forzato con una crittoanalisi di tipo esaustivo. In effetti le chiavi possibili sono 256 (8 dei 64 bit sono usati come bit di controllo e ne restano quindi solo 56 per la chiave), un numero molto elevato ma sicuro sino ad un certo punto. Il DES ha comunque il vantaggio della velocità di cifratura che è molto superiore a quella del suo principale rivale: il codice RSA (a doppia chiave).
Viene adottato nel 1977 come standard federale dalla NSA americana.
CIFRATURA A DOPPIA CHIAVE (ASIMMETRICA)
Nel novembre 1976, si annuncia l'invenzione della chiave pubblica, un sistema rivoluzionario di cifratura delle informazioni. Conosciuta anche come crittografia asimmetrica o a coppia di chiavi (chiave pubblica/privata) dove, come si evince dal nome, ad ogni utente coinvolto nella comunicazione è associata una coppia di chiavi: la chiave pubblica (che deve essere distribuita) e la chiave privata (appunto personale e segreta). Qualche anno più tardi i sistemi di crittografia a chiave pubblica verranno utilizzati per lo sviluppo di strumenti in grado di garantire sicurezza e riservatezza alle comunicazioni elettroniche in rete. La crittografia detta anche a chiave pubblica è, come già detto, un sistema semplice: ogni utente è in possesso di due chiavi, una privata, strettamente personale, da custodire gelosamente, e una pubblica, che può essere liberamente divulgata e trasmessa anche attraverso canali di comunicazione non sicuri.
La chiave pubblica viene impiegata per la codifica dei messaggi, per trasformare un testo in chiaro in
un testo crittografato, impossibile da leggere e decifrare.
Per il passaggio inverso la chiave pubblica è inutile: il testo può essere decodificato (decriptato) unicamente utilizzando la chiave privata, rimasta al sicuro nelle mani del destinatario.
Il metodo matematico alla base della crittografia a chiave pubblica si basa sui numeri primi e su
funzioni matematiche che è quasi impossibile invertire.
Per rendere l'idea il prodotto tra due numeri mi dà un certo risultato, è invece molto più difficile avendo un numero (tipo 90) stabilire quali sono i numeri che l'hanno prodotto.
E' per questo che si parla di chiavi private "a 256 bit" o a "512 bit", utilizzando la lunghezza della chiave crittografica come una misura della sua sicurezza.
E' inoltre possibile autenticare anche i messaggi, cioè avere la certezza che un testo elettronico
ci viene spedito da una certa persona utilizzando una "firma digitale", un insieme di
caratteri che può essere generato solo da chi è in possesso della chiave privata.
L'autenticità della firma è verificabile utilizzando la chiave pubblica del "firmatario".
CRITTOGRAFIA RSA (A DOPPIA CHIAVE)
Nato nel 1978, il RSA permette di cifrare un messaggio attraverso un procedimento che richiede l'utilizzo dei numeri primi. Si determini la prima chiave n, prodotto di p e q, due numeri primi molto elevati, tali che la fattorizzazione di n sia difficile o perlomeno n risulti una funzione unidirezionale rispetto al tempo d'uso del codice. N viene infatti resa pubblica.
Esempio: n=pq=5*7=35
Si calcoli dunque il valore della funzione di Eulero in n: b=f(n)=(p-1)*(q-1) il cui valore rimane segreto; si scelga ancora un intero d tale che d e f(n) siano primi tra loro, infine il suo inverso h, ovvero il più piccolo x per cui (dx-1)/f(n) é un intero, il numero h é la seconda chiave, e viene reso pubblico, mentre d resta segreto.
Per trasmettere il messaggio lo si traduce inizialmente in un vettore di numeri (in precedenza ci si è accordati riguardo alla modalità di "traduzione").
Stabilita dunque la sequenza numerica m1, m2....mr si trasmettono gli m uno alla volta.
Il crittogramma corrispondente a m è allora c=m n mod n.
Esempio:
prendiamo m=3
c=mn mod n=37 mod 35=2187 mod 35=17
La chiave di decifrazione è costituita dall'intero b, segreto, nella formula m=cb mod n.
Esempio: m=cb mod n=1724mod 35=3
In sintesi: per cifrare un messaggio dunque il trasmettitore deve prendere le diverse cifre pubbliche del ricevente e costruire un messaggio cifrato, quest'ultimo a sua volta utilizza la parte segreta del suo codice per decifrarlo. Il codice RSA viene considerato sicuro perchè, essendo la formula di decifrazione basata su f(n) calcolabile solo se a conoscenza di p e q, non esiste un algoritmo efficiente per scomporre n in p e q, perlomeno in tempi accettabili.
Potrebbe sorgere il dubbio che esista un modo di calcolare f(n) senza passare per p e q: questa ipotesi in effetti è verificabile ma ha lo stesso grado di complessità di fattorizzare n.
Un altro metodo simile è il crittosistema di Rabin uscito nel 1979.
CRITTOGRAFIA MERKLE HELLMAN
Si tratta anche di un sistema a doppia chiave, più semplice del RSA ma è stato forzato e il suo algoritmo è facilmente risolvibile (problema dello zaino).
Ogni messaggio è visto come una sequenza di caratteri binari, il messaggio è poi diviso in blocchi (che rappresenta il numero di zaini semplici o complessi).
La cifratura del messaggio è una sequenza di obbiettivi (ognuno di questi è somma di alcuni termini dello zaino complesso). Ovviamente più è lungo lo zaino e maggiore è la difficoltà di calcolo.
CRITTOSISTEMA MICALI GOLDWASSER
Sono detti sistemi di cifratura probabilistica perchè il messaggio viene cifrato in uno dei tanti modi possibili. Inventato nel 1984. La differenza è sostanziale perchè generalmente un messaggio è cifrato in un solo modo. Il sistema di cifratura è a flussi (opera sui bit) e non a blocchi.
La risoluzione dell'algoritmo è data da un intero come radice quadrata (modulo di un numero composto, ottenuto come prodotto di due numeri primi). Per ogni del bit del messaggio noto di valore 1: la chiave pubblica è moltiplicata per il quadrato di un numero a caso (diverso per ogni bit da cifrare).
CRITTOSISTEMA BLUM GOLDWASSER
Simile al sistema precedente ed anche al RSA in quanto a velocità, utilizza un generatore di bit pseudocasuali (sequenza di uscita posta in XOR con il messaggio).
La sicurezza è data dalla fattorizzazione di un numero composto (prodotto da due numeri primi).
Dato che per criptare si utilizza un algoritmo probabilistico, uno stesso testo in chiaro può produrre risultati molto diversi ogni volta che viene criptato. Questo porta ad una certa sicurezza poiché impedisce di riconoscere messaggi intercettati confrontandoli con altri intercettati precedentemente.
Vulnerabile agli attacchi Chosen Ciphertext (cioè un attaccante che ha accesso al sistema di decifratura risalendo alla versione in chiaro dei testi crittati).
CRITTOGRAFIA A CURVE ELLITTICHE (ECC)
I sistemi crittografici basati su curve ellittiche inventati nel 1985, sono equivalenti all'RSA, con il vantaggio di utilizzare chiavi di lunghezza inferiore.
Un campo finito F consiste di un numero finito di elementi su cui sono definite due operazioni binarie che godono di alcune proprietà. Tali operazioni sono: addizione e moltiplicazione.
L'ordine di un campo finito, è il numero di elementi che formano il campo.
Il tutto si basa sulla creazione di un problema matematico molto difficile da risolvere senza informazioni, ma che con l'utilizzo di alcune informazioni (la chiave) diventa di semplice e rapida risoluzione. L'utente distribuisce la chiave pubblica e tiene nascoste la chiave privata.
Il problema viene utilizzato per mescolare i messaggi da trasmettere in modo da renderli non comprensibili.
ELGAMAL
Sempre a doppia chiave e basato sul calcolo del logaritmo discreto quindi sul problema di Diffie Hellman. Utilizzando un numero k casuale ogni volta, anche crittografando lo stesso messaggio più volte si ottengono crittogrammi diversi. Più lento del RSA e il crittogramma è di lunghezza doppia. La chiave di risoluzione è il calcolo del log discreto.
DSA (DIGITAL SIGNATURE ALGORITHM)
DSA utilizza per la firma e la crittografia un algoritmo diverso rispetto alla crittografia RSA, che garantisce tuttavia lo stesso livello di sicurezza. Questo algoritmo è stato proposto nel 1991 dal NSIT (National Institute Of Standards And Technology) e adottato dal FIPS (Federal Information Processing Standard) nel 1993. Il certificato DSA premette di essere in regola con gli standard governativi, in quanto è approvato dalle agenzie federali, compreso l'imminente passaggio alla chiave con lunghezza a 2048 bit. Per aumentare ulteriormente la sua sicurezza, potrà eseguire contemporaneamente certificati RSA e DSA. Esso prevede l'utilizzo di una funzione Hash e la generazione di un numero k casuale generato per ogni firma da effettuare. Anche qui la difficoltà di risoluzione sta nel calcolo dell'algoritmo discreto (sfrutta grossomodo lo stesso principio di Elgamal).
PGP (PRETTY GOOD PRIVACY) E GPG (GNU PRIVACY GUARD)
Nel giugno 1991 lo statunitense Philip Zimmermann il PGP, un programma di crittografia "a doppia chiave" basato sulle tecniche brevettate da Rivest, Shamir e Adleman. PGP permette di mantenere la privacy e la sicurezza dei propri dati personali in formato elettronico. Per la realizzazione di PGP, Zimmermann viene citato in tribunale dalla RSA Data Security Inc. per violazione del brevetto sull'algoritmo RSA, e accusato dal governo degli Stati Uniti di esportazione illegale di strumenti crittografici. L'accusa di esportazione illegale viene ritirata nel 1996.
Nel 1999 venne sviluppato il GNU Privacy Guard da Werner Koch e la versione 1.0.0 fu pubblicata il 7 settembre dello stesso anno. Si tratta sostanzialmente della versione Open Source (ed aggiornata) dello stesso standard lanciato nel 1991. Qui troviamo un'applicazione di PGP: Come Criptare I Messaggi Con GPG Suite Sul Deep Web (PGP Guida)
Invece in quest'articolo parliamo di un tool online per prendere la mano: Come Criptare e Decifrare Messaggi Con PGP (Chiave Pubblica e Privata)
FUNZIONE A CAMPI NASCOSTI
Si tratta di una funzione facile da computare in una direzione, ma difficile da calcolare nella direzione opposta se non si conoscono determinate informazioni, chiamate botole.
Se consideriamo ad esempio un lucchetto e la relativa chiave, banale è modificare il lucchetto da aperto a chiuso senza utilizzare la chiave, è sufficiente far scattare la serratura.
Tutt'altra cosa invece è aprire il lucchetto, in questo caso l'ausilio della chiave risulta indispensabile. La chiave è la botola. Un esempio di una semplice botola matematica può essere: 6895601 è il prodotto di due numeri primi, quali sono questi numeri? Una tipica soluzione (forza bruta) potrebbe essere quella di dividere il numero per diversi numeri primi fino a trovare la risposta.
Tuttavia se qualcuno rendesse noto che 1931 è parte della risposta, diverrebbe semplice, con l'aiuto di una calcolatrice, trovare la soluzione completa (6895601 ÷ 1931).
Questo esempio non rappresenta una robusta funzione botola dal momento che un computer moderno può facilmente elaborare tutte le possibili soluzioni in un arco di tempo molto breve, ma lo stesso esempio può essere reso più difficile semplicemente ricorrendo al prodotto di due numeri primi molto più grandi.
CLIPPER CHIP
La NSA nel 1995 spinse alla diffusione di un chip per la crittografia chiamato Clipper-Chip in tutti i computer costruiti negli Stati Uniti. Non solo in PC, ma anche tutti i computer contenuti nelle automobili, televisori e qualsiasi altro dispositivo. Tale iniziativa fu accolta positivamente dalle aziende statunitensi che prevedevano giustamente un massiccio uso futuro della crittografia per le transazioni elettroniche. Tuttavia il governo USA aveva mantenuto aperta una porta secondaria (backdoor) nel chip ed era quindi in grado di leggere ogni documento crittografato senza neppure infrangere le chiavi (ad esempio per consentire a CIA, FBI e National Security Agency stessa di ascoltare a piacimento le conversazioni telefoniche in caso di necessità).
Il primo ad individuare tale backdoor prevista dal progetto fu M.Blaze, un matematico dei Laboratori Bell At&t. Questa inquietante notizia scatenò una ondata di reazioni e proteste da parte di tutte le più grosse imprese leader americane minacciando di non acquistare più computer americani contenenti il chip di controllo. Alla fine il governo smise di supportare il progetto e la maggior parte delle aziende iniziò ad utilizzare esclusivamente sistemi di crittografia software.
LA SCONFITTA DEL DES
Il 17 luglio 1998 la Electronic Frontier Foundation diffonde un comunicato stampa con il quale annuncia la definitiva sconfitta del DES, lo standard crittografico promosso dal governo USA e dalla National Security Agency, meno sicuro di altri sistemi crittografici.
Per dimostrare i gravi rischi di sicurezza a cui si sottopone chi utilizza il DES, la EFF costruisce il
primo apparecchio Hardware non coperto dal segreto di stato per decodificare i messaggi crittografati
utilizzando il Data Encryption Standard. Tutto ciò è documentato in un libro realizzato dalla EFF ed edito dalla O'Reilly, dal titolo "Cracking DES: Secrets Of Encryption Research, Wiretap Politics, And Chip Design". Il libro contiene tutta la documentazione necessaria a riprodurre il "DES Cracker", realizzabile a partire da un normale personal computer domestico.
Il Data Encryption Standard, che fa uso di "chiavi" a 56 bit, era stato progettato da IBM e modificato dalla National Security Agency per essere adottato come standard federale nel 1977.
TLS E CRITTOGRAFIA PKI
Il TLS (Transport Layer Security) è un protocollo per la crittografia dei messaggi, ciò evita lo "spoofing" tra server di posta ed eventuali malware. TLS esegue la crittografia dei messaggi da server di posta a server di posta tramite l'infrastruttura a chiave pubblica (PKI) per rendere difficile l'intercettazione e la visualizzazione dei messaggi. Utilizzando i certificati digitali, l'autenticazione TLS verifica che i server che inviano o ricevono i messaggi corrispondano effettivamente a quanto indicato dai rispettivi ID. In tal modo si evita lo spoofing.
CRITTOGRAFIA END TO END
La crittografia End To End permette la lettura in chiaro di un messaggio solo al mittente e al destinatario. Chiunque si inserisca nel percorso seguito dal contenuto (sia esso un testo, una foto o un video) può prelevare l’elemento scambiato ma senza avere la chiave di lettura, ottenendo dunque una serie di codici incomprensibili. La suddetta chiave è fatta di elementi diversi, conservati sia sul dispositivo in uso che condivisi in tempo reale tramite internet (tutto in automatico dalle app che sfruttano questo sistema).
Nessun commento:
Posta un commento