Storia:

» Il Cifrario Atbash
» Il Cifrario Di Cesare
» Il Cifrario Di Vigenère
» La Crittografia Moderna
» Cifrari Monoalfabetici
» Cifrari Polialfabetici
» Cifrari Composti
» Cifrari a Chiave Segreta
» Cifrari a Chiave Pubblica

Matematica:

» Teorema di Eulero-Fermat
» Ipotesi di Riemann
» Funzionamento RSA

Storia

La crittografia nasce dall'esigenza di offuscare le infromazioni trasmesse in modo che non siano accessibili da terzi. Crittografia deriva dalla parola greca "kryptos" che significa "nascosto" e dalla parola greca "gràphein" che significa scrittura.

Il Cifrario Atbash

I primi ad utilizzare la crittografia furono gli Ebrei che inventarono il Codice Atbash, che è un semplice cifrario a sostituzione monoalfabetica, che consiste nella sostituzione della prima lettera con l'utlima, della seconda con la penultima e così via, invertendo l'ordine delle lettere.

Testo in chiaro: a b c d e f g h i l m n o p q r s t u v z
Testo cifrato: Z V U T S R Q P O N M L I H G F E D C B A

Ovviamente il procedimento per decifrare è identico a quello per cifrare. Questo metodo non viene considerato un algoritmo crittografico.

Il Cifrario di Cesare

Il cifrario di Cesare è considerato il più antico algoritmo crittografico. E' un cifrario a sostituzione monoalfabetica in cui ogni lettera del testo in chiaro viene sostituita da una lettera che nell'alfabeto si trova dopo un certo numero di posizioni, Cesare utilizzava lo spostamento di 3 posizioni, quindi la crittografia era in chiave 3.

Testo in chiaro: a b c d e f g h i l m n o p q r s t u v z
Testo cifrato: D E F G H I L M N O P Q R S T U V Z A B C

Il cifrario di Cesare prende il nome da Giulio Cesare, che lo utilizzò con una chiave 3 per proteggere un messaggio d'importanza militare per Cicerone . Al tempo era sicuro, perché i nemici spesso non erano in grado di leggere nemmeno un testo in chiaro, figuriamoci uno cifrato; inoltre, non esistevano metodi di crittanalisi in grado di rompere una simile cifra. Dalla scoperta dell' analisi delle frequenze da parte degli arabi attorno all' anno 1000 , tutti i cifrari di questo tipo sono diventati rompibili in modo facile, spesso banale.
Nessuno è adatto per comunicazioni sicure, ora, e neanche negli ultimi 1000 anni. Un vecchio libro romano sulla crittografia, andato perso, sembra parlasse ampiamente dell'uso di simili cifrari.

Il Cifrario di Vigenère

Il cifrario di Vigenère è il più semplice dei cifrari polialfabetici ; fu pubblicato nel 1553 da Giovan Batista Belaso in "La cifra del. Sig. Giovan Batista Belaso" ma più tardi, nel 1586 , fu erroneamente attribuito a Blaise de Vigenère ; ritenuto per secoli un cifrario inattaccabile, ha goduto di una fama dovuta soprattutto alla sua semplicità e in buona parte immeritata essendo molto più debole di altri codici polialfabetici precedenti quali il disco dell'Alberti , o altre cifre del Bellaso; una fama che è durata fino alla I guerra mondiale molti anni dopo la scoperta del primo metodo di crittanalisi: il metodo Kasiski.
Il metodo si può considerare una generalizzazione del cifrario di Cesare ; invece di spostare sempre dello stesso numero di posti la lettera da cifrare, questa viene spostata di un numero di posti variabile, determinato in base ad una parola chiave, da concordarsi tra mittente e destinatario, e da scriversi sotto il messaggio, carattere per carattere; la chiave era detta anche verme, per il motivo che, essendo in genere molto più corta del messaggio, deve essere ripetuta molte volte sotto questo, come nel seguente esempio:

Testo chiaro - ARRIVANOIRINFORZI
Verme - VERMEVERMEVERMEVE
Testo cifrato - VVIUZVRFUVDRWAVUM

Il testo cifrato si ottiene spostando la lettera chiara di un numero fisso di caratteri, pari al numero ordinale della lettera corrispondente del verme. Di fatto si esegue una somma aritmetica tra l'ordinale del chiaro (A = 0, B = 1, C = 2 ...) e quello del verme; se si supera l'ultima lettera, la Z, si ricomincia dalla A, secondo la logica delle aritmetiche finite.
Il vantaggio rispetto ai cifrari monoalfabetici è evidente: la singola lettera del testo chiaro non è sempre cifrata con la stessa lettera; e questo rende più difficile la crittanalisi statistica del testo cifrato.
Per semplificare la cifratura, il Vigenère propose l'uso della seguente tavola quadrata, composta da alfabeti ordinati spostati.

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 Q
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

Volendo ad esempio cifrare la prima R di ARRIVANO si individuerà la colonna della R, quindi si scenderà lungo la colonna fino alla riga corrispondente della corrispondente lettera del verme (qui E); la lettera trovata all'incrocio è la lettera cifrata (qui V); la seconda R invece sarà cifrata con la lettera trovata sulla riga della R di VERME, e cioè con la I.
Chi riceve il messaggio per decifrarlo deve semplicemente usare il metodo inverso (sottrarre invece che sommare); riferendosi all'esempio di sopra si avrà:

Testo cifrato - VVIUZVRFUVDRWAVUM
Verme - VERMEVERMEVERMEVE
Testo chiaro - ARRIVANOIRINFORZI

Usando la tavola quadrata si potrà decifrare la seconda V ricercandola nella riga della corrispondente lettera del verme, la E; la colonna dove si trova la V ha al primo posto in alto la lettera chiara, la R.
Come si è detto questo cifrario ha goduto per tre secoli fama di cifrario inattaccabile; nel 1863 il colonnello prussiano Friedrich Kasiski pubblicò un primo metodo di decrittazione; in seguito si sono trovati diversi altri efficienti metodi per forzare questo cifrario.
La debolezza del Vigenère sta nel fatto di essere di fatto un insieme di n cifrari di Cesare, dove n è la lunghezza della chiave; se il crittanalista riesce a determinare n la decrittazione diventa cosa semplicissima; e con metodi statistici non è difficile trovare n alla sola condizione che il testo sia molto più lungo della chiave (grosso modo: almeno dieci volte), cosa molto frequente, visto che per motivi pratici era abituale usare chiavi non troppo lunghe.
Se si usa una chiave di lunghezza paragonabile al testo, la crittanalisi diventa difficile ma non impossibile, potendo basarsi sulla natura del testo usato come chiave.

La Crittografia Moderna

Nel 1918 Gilbert Vernam perfezionò il metodo di Vigenère proponendo l'idea di usare chiavi lunghe almeno quanto il messaggio. Successivamente, nel 1949, Claude Shannon dimostrò che questo è l'unico metodo crittografico totalmente sicuro possibile.
Fino a pochi anni fa l'unico metodo crittografico esistente era quello della " crittografia simmetrica ", in cui si faceva uso di un'unica chiave sia per proteggere il messaggio che per renderlo nuovamente leggibile. Il problema è portare in giro la chiave senza che venga scoperta. La ricerca sulla crittografia simmetrica ha negli anni prodotto dei sistemi crittografici di tutto rispetto.
La vera novità del secolo scorso è l'invenzione della crittografia asimmetrica che utilizza chiavi diverse per cifrare e per decifrare un messaggio, facilitando incredibilmente il compito di distribuzione delle chiavi. Infatti in questo caso non c'è bisogno di nascondere le chiavi o le password : c'è una chiave per crittografare, che chiunque può vedere, e una per decifrare che ha solo il destinatario.
La crittografia asimmetrica , conosciuta anche come crittografia a coppia di chiavi , crittografia a chiave pubblica/privata o anche solo crittografia a chiave pubblica è un tipo di crittografia dove, come si evince dal nome, ad ogni attore coinvolto è associata una coppia di chiavi:

  • la chiave privata , personale e segreta, viene utilizzata per decodificare un documento criptato;
  • la chiave pubblica , che deve essere distribuita, serve a crittare un documento destinato alla persona che possiede la relativa chiave privata.

L'idea base della crittografia con coppia di chiavi diviene più chiara se si usa un'analogia postale, in cui il mittente è Marco ed il destinatario Luca e i lucchetti fanno le veci delle chiavi pubbliche e le chiavi recitano la parte delle chiavi private:

  1. Marco chiede a Luca di spedirle il suo lucchetto, già aperto. La chiave dello stesso verrà però gelosamente conservata da Luca.
  2. Marco riceve il lucchetto e, con esso, chiude il pacco e lo spedisce a Luca.
  3. Luca riceve il pacco e può aprirlo con la chiave di cui è l'unico proprietario.

Se adesso Luca volesse mandare un altro pacco a Marco, dovrebbe farlo chiudendolo con il lucchetto di Marco, che lui dovrebbe mandare a Luca e che solo lui potrebbe aprire.
Si può notare come per secretare i pacchi ci sia bisogno del lucchetto del destinatario mentre per ricevere viene usata esclusivamente la propria chiave segreta, rendendo l'intero processo di criptazione/decriptazione asimmetrico. Chiunque intercettasse il lucchetto o il messaggio chiuso non potrebbe leggerne il contenuto. Al contrario nella crittografia simmetrica , occorre il pericoloso passaggio dello scambio delle chiavi, che può essere intercettato.
Questo semplice metodo condivide alcune caratteristiche con la crittografia a chiave pubblica: si tratta di un sistema che risolve efficacemente il classico problema della crittografia tradizionale. Se la sicurezza del sistema dipende dalla segretezza della chiave di codifica utilizzata, allora è necessario almeno un canale sicuro attraverso il quale trasmettere la chiave.
Per utilizzare questo tipo di crittografia è necessario creare una coppia di chiavi, una chiave pubblica (da diffondere) ed una chiave privata (da tenere segreta). La proprietà fondamentale della coppia di chiavi pubblica/privata è che un messaggio cifrato usando la chiave pubblica può essere decriptato usando soltanto la chiave privata corrispondente. In pratica, chiave pubblica serve unicamente per codificare il messaggio, mentre quella privata serve unicamente per decodificarlo. È come se una cassaforte avesse due chiavi distinte, una usata per aprirla e una per chiuderla. La coppia di chiavi pubblica/privata viene generata attraverso un algoritmo (ad esempio RSA o DSA) a partire da dei numeri casuali. Gli algoritmi asimmetrici sono studiati in modo tale che la conoscenza della chiave pubblica e dell'algoritmo stesso non siano sufficienti per risalire alla chiave privata. Tale meccanismo è reso possibile grazie all'uso di funzioni unidirezionali .
Il principio generale della crittografia asimmetrica ha una solida base matematica che lo giustifica; tale base, riassunta e semplificata all'estremo, si fonda sull'uso di un problema complesso , ovvero un'operazione matematica semplice da eseguire ma dal cui risultato è difficile risalire agli argomenti della stessa. L'esempio classico è il problema della fattorizzazione di un numero usata nel primo e più famoso sistema crittografico a chiave pubblica: RSA . Le conoscenze di matematica pura sviluppate dall'uomo negli ultimi secoli hanno reso sempre più efficiente fattorizzare , ma nessuno è mai riuscito a far fare quel "salto" che porta il problema da complesso a non essere più complesso, il problema diventa quindi intrattabile per numeri oltre una certa dimensione, attualmente per la crittografia RSA vengono considerati "sicuri" numeri di almeno 300 cifre.