logo academy

Crittografia: Cesare, Enigma e la Blockchain

1 febbraio, 2022

6 min

Crittografia: Cesare, Enigma e la Blockchain
Principiante

La crittografia è una componente chiave della blockchain, ma è usata anche per proteggere la nostra navigazione online o i nostri messaggi con amici.

Possiamo comprendere appieno la genialità della blockchain solo capendo i meccanismi di base della crittografia.

Le antiche origini della Crittografia

La crittografia ha una storia molto antica, tanto che la prima testimonianza del suo uso risale al 1900 a.C in una tomba egizia, sotto forma di geroglifici. 

Questo contesto mistico è del tutto appropriato a una prima comparsa della crittografia, termine che deriva dal greco “scrittura segreta”. 

Lo scopo della crittografia è sempre stato quello di permettere la comunicazione in presenza di persone che non dovevano capire il messaggio. Di conseguenza il suo uso ha segnato soprattutto la storia delle guerre.

La prima tecnica crittografica ancora oggi rilevante è quella utilizzata da Giulio Cesare per scopi militari, il cosiddetto “Cesar Cypher”, il cifrario di Cesare. 

Cesare utilizzava una chiave a 3: sostitutiva ciascuna lettera del messaggio con la terza che la seguiva (es. F al posto di C). 

Grazie alle moderne tecnologie è un sistema ormai in disuso, ma venne utilizzato per molto tempo.

Gli ebrei ortodossi, ad esempio, utilizzarono il cifrario di Cesare per crittografare i nomi di Dio sul retro del mezuzah quando era proibito scrivere o pronunciare il suo nome. 

Il mezuzah è un rotolo di pergamena che si attacca agli stipiti della porta d’entrata delle case, dove sono scritti alcuni passi della Torah. 

Un altro classico modello di criptazione è la permutazione, che consiste nel distribuire il messaggio in una tabella e leggere la tabella in un altro senso per creare il messaggio criptato finale. Ecco un esempio di permutazione.

permutazione

La crittografia si è poi evoluta in sistemi più complessi, portando a soluzioni come Enigma, il celebre dispositivo usato per cifrare messaggi durante la Seconda Guerra Mondiale

Enigma: il genio di Alan Turing

Enigma è il punto di svolta nella storia della crittografia. Enigma era stato decifrato per la prima volta dal governo polacco prima dell’invasione tedesca, grazie a un macchinario elettromeccanico. 

Il problema tuttavia era che i tedeschi continuavano a rendere sempre più complesso il meccanismo di Enigma. 

L’inglese Alan Turing riuscì ad automatizzare il calcolo per decriptare tutte le versioni di Enigma, permettendo agli Alleati di sconfiggere in più occasioni l’Asse Roma-Berlino.

Tra i suoi tantissimi contributi, dopo la guerra Turing progettò uno dei primi modelli di computer, e diede l’idea per quello che sarebbe diventato il test di Turing.

Come funzionava Enigma?

Enigma seguiva lo stesso principio di base del cifrario di Cesare, ossia la sostituzione delle lettere con altre lettere in base a un criterio.

La differenza è che Enigma rende questo criterio molto più complesso. 

Il dispositivo aveva l’aspetto di una macchina da scrivere, ma dietro la tastiera aveva 3 rotori con sopra fasci di lettere e in fondo un riflettore che rimandava indietro il segnale elettrico.

Ogni rotore era attraversato da cavi che univano incrociandosi diverse coppie di lettere.

La criptazione funzionava così:

  • Premendo una lettera sulla tastiera, si mandava un input elettrico
  • Il cavo attaccato alla lettera attraversava 3 coppie di lettere sui 3 rotatori
  • tornava indietro passando per gli stessi rotatori, ma attraversando diverse combinazioni di lettere.

Nell’immagine sotto c’è un esempio di input, la lettera H, che restituiva come output la L.

struttura di enigma

La crittografia all’epoca di internet

L’arrivo dei computer ha segnato un passaggio epocale per la crittografia e per la sicurezza dei dati. 

Gli algoritmi crittografici da allora non si basano più su macchinari, ma su software. Uno dei primi software diffusi è stato il Data Encryption Standard, creato da IBM nel 1977, che prevedeva chiavi lunghe 64 bit, decriptabile solo dai mezzi a disposizione dell’agenzia di sicurezza USA.

Con l’evoluzione dei computer, nel 1999 questo standard è diventato decifrabile anche per grandi aziende, rendendolo così obsoleto.

Nel 2001 venne così stilato il Advanced Encryption Standard, con chiavi crittografiche più lunghe, e con un algoritmo più complesso, che prevedeva sia la sostituzione che la permutazione, in un avanzato mix di processi ripetuti più di 10 volte.

Il AES viene usato ancora oggi per le connessioni WiFi e per connettersi ai siti web. 

Tutte le tecniche di cui abbiamo trattato finora sono basate su crittografia simmetrica.

Significa che la chiave per decriptare il messaggio è nota sia al mittente che al destinatario, ed è la stessa.

Esiste un’opzione più sicura, che rende ancora più complesso a terze parti decifrare un messaggio: la crittografia a chiave asimmetrica.

La crittografia della blockchain

Una delle forme più sicure di crittografia è quella utilizzata dalla blockchain, ossia la crittografia a chiave asimmetrica.

Questo modello è unidirezionale e si basa su due chiavi: una chiave privata e una chiave pubblica.

Se la chiave pubblica consente al mittente di criptare i dati, la chiave privata consente al destinatario di decifrarli. 

È unidirezionale perché dalla chiave privata si può ottenere la chiave pubblica, ma dalla chiave pubblica non si può dedurre le chiave privata.

Inoltre, solo il destinatario possiede la chiave privata.

Questo tipo di crittografia è utilizzato anche dai siti sicuri. Quando ti connetti a un sito e vedi l’icona di un lucchetto, significa che il tuo browser ha utilizzato la crittografia a chiave pubblica per verificare il server del sito, ha stabilito una chiave temporanea segreta con quest’ultimo e ha usato la crittografia simmetrica per proteggere tutto lo scambio di dati seguente. 

Nella blockchain questa coppia di chiavi serve principalmente a rendere sicura la custodia delle criptovalute. Per utilizzare i portafogli per criptovaluta, chiamati wallet, è necessario avere una chiave privata, con cui si decripta il contenuto del proprio wallet e che funge anche da firma per confermare transazioni o impostazioni.

La chiave pubblica invece può essere comunicata e serve per inviare criptovalute, o farsi inviare criptovalute. Scopri di più nell’articolo dedicato alle chiavi dei wallet.

Correlati