brevissima storia della crittografia

reflection of old coin placed on blue background
Photo by Pratikxox on Pexels.com

Le invenzioni del linguaggio, della scrittura e dei segreti portarono all’inevitabile invenzione della crittografia e della sua nemesi, la crittoanalisi.

Magia
Il linguaggio è magico: ci permette di trasferire i pensieri dal cervello al cervello.
La scrittura è un altro tipo di magia.
Ci consente di trasferire pensieri da cervello a cervello, anche se i cervelli sono lontani l’uno dall’altro o non esistono nemmeno allo stesso tempo!
Lo fa congelando la lingua nel tempo, in un formato che resiste molto meglio del cervello.
È davvero impressionante, per una specie che solo di recente è scesa dagli alberi e sta ancora riflettendo se sarebbe stato più intelligente rimanere lassù.

Segretezza
A volte vuoi essere selettivo sul cervello a cui trasferire i tuoi pensieri.
Con la lingua parlata, ad es. assicurarti che Thag non sia nei paraggi quando suggerisci a Grok che prenderete entrambi il mammut di Thag per cena (sperando che Grok sia abbastanza affamato da accettare questa prospettiva, e non, diciamo, trasmettere il vostro pensiero al cervello di Thag).

Con la scrittura, la sfida è più complessa.
Puoi fidarti che il tuo caro nipote Lucio non aprirà la tua lettera, ma la consegnerà al comandante della guarnigione a Lutetia come promesso.
Anche se puoi fidarti del fatto che non sarà intercettato da quei Galli e che la scrittura gli venga tolta con la forza e con vigore?
Una volta che la lettera è fuori dalle tue mani, i destinatari sono fuori dal tuo controllo.
Abbiamo bisogno di un modo per scrivere cose che solo alcune persone possono leggere.

Crittografia
L’arte della crittografia è sorprendentemente antica.
È stato utilizzato per proteggere i segreti commerciali 3500 anni fa.
Giulio Cesare usò una forma di crittografia facilmente spiegabile 2000 anni fa: sostituì ogni lettera con quella 3 posti dopo nell’alfabeto, in modo che LEGION fosse scritto come OHJLRQ.
Il trucco era stato spiegato in anticipo al destinatario e con quella consapevolezza avrebbero potuto facilmente decrittare ciò che sembrava incomprensibile a chiunque altro.
Questa è una semplice forma di cifratura a sostituzione.
Si trova nei libri per bambini, anche se allora era un segreto militare.

La chiave di crittografia necessaria per sbloccare il codice Caesar è “3 posizioni dopo“.
Abbiamo spostato l’alfabeto di 3 posizioni.
Un altro semplice codice è invertire l’alfabeto, questo è usato nella Bibbia.
Un altro ancora è scegliere una stringa di testo per la nostra chiave e usarla come inizio del nostro alfabeto riordinato, riempiendo le lettere rimanenti in ordine.
Se la nostra chiave è “IBEXA“, il nostro alfabeto è “IBEXACDFGHJKLMNOPQRSTUVWYZ“.
Usando la chiave Ibexa possiamo decifrare “Btgkxgmd lalnqibka awoaqgamear. Cirsaq. Sndasfaq.
Ad esempio, giocaci qui.

Crittoanalisi
Proprio come predatore e preda si influenzano a vicenda l’evoluzione, così fanno la crittografia e la crittoanalisi.
Una volta che sai come crittografare qualcosa che non vuoi che gli altri sappiano, inizi a pensare a modi per de crittografare cose che gli altri non vogliono che tu sappia.
Non è ovvio come passare da “sndasfaq” a “insieme” se non hai la chiave e hai solo quella parola, ma se hai diverse frasi incomprensibili, ci sono modi per capirlo.

Noi umani siamo abbastanza bravi nel riconoscimento di schemi.
Il linguaggio è pieno di schemi e, sebbene i cifrari di sostituzione più semplici sostituiscano tutte le lettere, lasciano intatti gli schemi.
In italiano tipico, le lettere più comuni sono E , A , O.
Nel testo crittografato, scoprire che le più comuni sono G, Y e O, porta alla prova di sostituzione E, T, A.
E così via.

Questa analisi della frequenza può richiedere molto tempo, ma il codice di Cesare non ha alcuna possibilità di resistere.
Nell’800, il pensatore arabo Abu Yūsuf Yaʻqūb ibn ʼIsḥāq aṣ-Ṣabbāḥ al-Kindī scrisse un libro su tali metodi.
Al-Kindi potrebbe essere stato il primo crittoanalista metodico.
Era anche un matematico classico, lavorando su filosofia, teologia islamica, logica, etica, matematica, fisica, chimica, psicologia, farmacologia, medicina, metafisica, cosmologia, astrologia e teoria musicale, e non è nemmeno tutto.

I computer cambiano tutto
Tuttavia, Al-Kindi era solo umano.
Con l’aiuto dei computer, tali semplici codici possono essere violati in un batter d’occhio e oggigiorno non offrono alcuna sicurezza.
Per fare meglio dobbiamo nascondere gli schemi riconoscibili, tanto per cominciare.
E il tempo è essenziale.
Qualsiasi cifra può essere decifrata se hai tempo infinito.
Un buon codice richiede molto tempo per decifrare quando non hai la chiave, ma è veloce quando ce l’hai.
Ma i computer continuano a diventare più veloci, quindi dobbiamo rendere la nostra crittografia sempre più forte per stare al passo.
È una battaglia senza fine.

Il problema è simile con l’hashing, gli hash devono essere resi sempre più costosi dal punto di vista computazionale (impiegare molto tempo) per essere violati.
La password_hash () di PHP, che utilizziamo nel blog, è progettata per cambiare nel tempo non appena diventano disponibili nuovi algoritmi di hashing.
E siamo tornati in Medio Oriente molto tempo fa, perché “algoritmo” (Ma anche Algebra) deriva dal nome di Muhammad ibn Musa al-Khwarizmi, nato pochi anni prima di Al-Kindi.

اَلْعَرَبِيَّةُ, हिन्दी, Ελληνικά, 漢語, ?
In conclusione, ecco un piccolo trucco: hai mai desiderato registrarti su qualche sito web e scoprire che hanno una limitazione della password come “le password devono essere lunghe 8-10 lettere”?
È troppo breve per essere al sicuro in questi giorni, troppo facile da decifrare per un computer.
Quindi oltre a non registrarti, cosa puoi fare?
Non si tratta solo di lunghezza, ma anche di complessità.
Mescolare numeri e simboli nella tua password lo rende più complesso.
Ma possiamo fare anche di meglio.

Se siamo fortunati e tutti i caratteri UTF-8 sono consentiti, possiamo inserire lettere casuali da quasi tutte le lingue, comprese le emoji, non solo l’alfabeto latino.
Con un massimo di 10 caratteri e oltre un milione di punti di codice UTF-8 tra cui scegliere, possiamo creare circa 2,89 x 10 ^ 60 password diverse. Molto.
È paragonabile a una password lunga 34 caratteri composta solo da a-z, A-Z e 0-9.
Potresti trovare difficile digitare “9 둾 ֶ” ዽ 풘 ⏱۲ͼ 搖 “, ma è a questo che servono i gestori di password.

Ne stai usando uno, vero?

%d blogger hanno fatto clic su Mi Piace per questo: