Sebbene non direttamente, in passato, abbiamo già toccato l’argomento della crittografia parlando di password e sicurezza ma anche di comunicazioni e-mail e malware. Qui, vogliamo fare un piccolo approfondimento dando un’occhiata a cosa sia effettivamente la crittografia, alla sua storia ed a come essa si sia evoluta: troviamo affascinante osservare come i vecchi metodi siano cambiati eppure rimasti molto simili alle proprie origini.
Tutti i giorni utilizzando il nostro computer facciamo uso del sistema crittografico senza però saperlo. Ma la parola crittografia è antica e proviene dal greco κρυπτóς, ovvero qualcosa che è nascosto, e γραφία, cioè scrittura. La crittografia, quindi, veniva utilizzata per la protezione e conservazione delle informazioni e della comunicazione.
Ovviamente negli anni e con l’uso dell’informatica questa tecnica si è evoluta notevolmente soprattutto pensando alle sue origini che vengono fatte risalire all’Egitto del 2000 a.C. quando si utilizzavano i geroglifici nella decorazione delle tombe per celebrare la vita del defunto. I primi metodi crittografici erano, comunque, abbastanza semplici ma i loro concetti fondamentali sussistono tutt’oggi. Per esempio, nella cultura ebraica veniva utilizzato un alfabeto rovesciato con codice sostitutivo, ovvero un codice in cui ogni lettera viene sostituita con un’altra lettera o simbolo:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ZYXWVUTSRQPONMLKJIHGFEDCBA
La parola “Sicurezza”, quindi, verrebbe criptata nel seguente modo e semplice modo: “Hrxfivaaz”.
Un simile metodo fu anche utilizzato da Giulio Cesare (100 – 44 a.C.) il quale, però, fece slittare l’alfabeto di tre posti come segue:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
DEFGHIJKLMNOPQRSTUVWXYZABC
In questo caso, quindi, abbiamo un algoritmo, ovvero l’alfabeto stesso, ed una chiave di lettura che coincide con la conoscenza dello slittamento imposto all’algoritmo. Così la parola “Sicurezza” ora coinciderebbe con “Vlfwuhccd”.
Questi due codici sono entrambi monoalfabetici, ovvero si basano solamente sull’uso di un alfabeto mentre è, logicamente, possibile usare un codice polialfabetico, ovvero usando diversi alfabeti contemporaneamente. Un altro metodo, il codice scitale, risale al 400 a.C. con gli spartani i quali scrivevano il messaggio in un papiro leggibile solamente arrotolandolo su un bastone di una specifica grandezza. La semplicità di questi metodi viene giustificata con il numero alquanto limitato di persone in grado di leggere effettivamente dei testi e di decifrarli.
Nel XVI secolo d.C. il codice utilizzato da Giulio Cesare viene complicato ulteriormente dal francese Blaise De Vigenere che lo rende polialfabetico. La tavola mostrata qui accanto è l’algoritmo di questo codice: come possiamo notare gli alfabeti utilizzati sono ben ventisette mentre le lettere vengono spostate di un solo posto. Inoltre, colui che dovrà criptare un testo come per esempio “Sicurezza di sistema” utilizzerà anche una parola chiave, per esempio, “computer”. A questo punto si prenderà il primo valore della parola chiave, cioè “C”, nella riga in alto cercando, poi, nella colonna la lettera a destra la “S” di “Sicurezza” e vedendo dove le due si incontrano nella tabella: la lettera che ne risulterà sarà “U”; la seconda lettera invece coinciderà con la seconda della parola chiave, quindi cercheremo la coincidenza tra “P” e “I” e così via ottenendo il seguente messaggio:
“Computer”
“Sicurezza di sistema”
“Computerc om puterco”
“UXOJLXDQC RU HCLXVOO”
Ma non solo, esistono anche comunicazioni criptate legate all’arte: un noto esempio sono i Viexerbilder, ovvero i “quadri di segreto” nati nel Cinquecento per opera di Hans Holbein i quali nascondevano messaggi. Per esempio, nel quadro riportato qui a fianco, Ambasciatori (1533 – The National Gallery, London), la chiave di lettura, o meglio ciò che fa comprendere di trovarci in un regime sospeso tra illusorio e segreto è la figura anamorfica bianca sul pavimento la quale, osservata da una certa angolazione, risulta essere un teschio (per ulteriori approfondimenti a riguardo consigliamo la lettura del saggio di Omar Calabrese relativo a quest’opera consultabile qui). Oggi, molti utilizzano immagini per nascondere i propri documenti utilizzando, per esempio, software come PixelCryptor di cui avevamo parlato parecchio tempo da qui.
Ed, infine, non possiamo evitare di fare un accenno ad Enigma, macchina tedesca ideata da Arthur Scherbius nel 1918 ed utilizzata con delle opportune migliorie nella Seconda Guerra Mondiale dai militari tedeschi. Il mittente del messaggio impostava Enigma con una chiave composta da un testo e dai movimenti imposti al meccanismo durante il processo di scrittura (ad ogni lettera, infatti, venivano spostati i rotori) dopodiché, scrivendo il testo, la macchina automaticamente sostituiva ogni lettera. La chiave, poi, veniva trasmessa via radio. In questo caso, per una migliore comprensione del funzionamento di Enigma ed anche per guardarsi un bel film consigliamo la visione di The Imitation Game (di Morten Tyldum – 2014) che narra la storia della decodificazione di Enigma da parte di Alan Turing. Forse ci fa suonare un campanello questo nome? Alan Turing non solo ha contribuito alla decifrazione di Enigma ma è stato anche l’inventore della famosa Macchina di Turing, una macchina astratta che si pone alle origini dei computer odierni e del codice binario. Così, proprio grazie alla figura di Turing possiamo notare l’importante legame che fin da subito si è instaurato tra computer e crittografia.
Oggi come oggi all’utilizzo della crittografia per la protezione e sicurezza delle informazioni se ne aggiunge anche la possibilità di autenticare gli utenti e convalidare/autorizzare il mittente di un messaggio, assicurare lo scambio di informazioni.
Che il sistema crittografico sia antico oppure altamente tecnologico esso è un metodo il cui processo è il seguente: Testo originale -> Criptaggio -> Testo criptato -> Decriptaggio -> Testo di partenza. Inoltre, fin dall’antichità vi è stato l’utilizzo dell’algoritmo che prima abbiamo identificato con l’alfabeto; esso, infatti, altro non è che una serie di regole, o codice (cypher), che permettono la codificazione e decodificazione. Ad esso si associa la chiave, ovvero la variabile crittografica, che gioca uno dei ruoli più importanti nel crittografia: come accade per un lucchetto ogni codice ha la propria chiave di lettura.
Come abbiamo detto la crittografia oggi si è complicata un bel po’ rispetto al passato suddividendosi, per esempio, tra simmetrica ed asimmetrica.
La crittografia simmetrica implica un mittente ed un destinatario che utilizzano una chiave che ha entrambe le funzioni di criptaggio e decriptaggio. Questo tipo di crittografia è molto veloce a livello computazionale rispetto a quella asimmetrica e può essere difficile da decodificare se la chiave è abbastanza forte (un po’ come accade nel caso delle password). In compenso però richiede un meccanismo sicuro per lo scambio delle chiavi e più utenti avranno accesso a questo tipo di dati più chiavi dovranno essere distribuite.
La crittografia asimmetrica utilizza per ogni entità una diversa chiave, una per criptare e l’altra per decriptare. Sebbene questo tipo di crittografia sia più lenta e richieda dei processi computazionali più intensivi è più facile da adattare ai vari sistemi e la distribuzioni delle chiavi risulta più semplice.
Ma di questi ultimi tipi di crittografia parleremo in modo più esteso più in là in un prossimo post poiché richiedono un approfondimento ulteriore in materia.
Lascia un commento