Parlando di bitcoin, e in generale di criptovalute, la crittografia ha evidentemente un ruolo fondamentale.
La crittografia (dal greco krupto, nascondere, e grafìa, scrittura) permette a 2 soggetti di comunicare a distanza in modo riservato. Il messaggio viene prima codificato (o cifrato o crittografato) e cioè reso illeggibile e poi spedito al destinatario che per poterlo leggere lo decodificherà nel testo di origine. E’ una scienza antica tanto che Giulio Cesare ne faceva già uso.
CRITTOGRAFIA SIMMETRICA
Il codice di Cesare fu uno dei primi esempi di crittografia simmetrica. La crittografia simmetrica si basa su una chiave (unica) che viene impiegata sia per codificare che per decodificare il messaggio. L’esempio più banale di crittografia simmetica è quello di comporre un messaggio “traslando” le lettere per comporre le parole di 1 o 2 o 3 o … o 21 posti sulla tabella dell’alfabeto. Quindi, in questo sistema, usare la chiave “2” significa che nel messaggio le lettere A verrebbero sostituite dalle C, le B dalle D ecc… e per decodificare il messaggio si procederebbe all’inverso, ovvero applicando “simmetricamente” la chiave, e cioè sostituendo le C con le A, le D con le B, ecc. Quello di Cesare era un sistema molto elementare che poteva essere sicuro 2000 anni fa…
Un esempio di crittografia simmetrica più evoluta è quella di scegliere una parola qualsiasi, ad es. “amare” e stabire che sia la chiave del sistema in questo modo: le lettere della parola “amare” sono 5 e nella tabella dell’alfabeto ricoprono le seguenti posizioni: 1, 11, 1, 16, 5. Il messaggio riservato andrà quindi scomposto in gruppetti di 5 lettere e le prime lettere di ciascun gruppetto verranno traslate di 1 posto, le seconde di 11 e così via fino alle quinte lettere che andranno translate di 5 posti. Col procedimento inverso il messaggio verrà decodificato…
I sistemi di crittografia simmetrica hanno l’inconveniente che le parti devono preventivamente accordarsi su quale chiave utilizzare. E non possono farlo a distanza ma devono incontrarsi fisicamente perché se il “nemico” intercetta la chiave (che non è criptata) sarà poi in grado di decifrare i messaggi succcessivi.
CRITTOGRAFIA ASIMMETRICA
Negli anni ’70 è stata inventata la crittografia asimmetrica, o a chiave pubblica, che permette ai 2 soggetti di comunicare a distanza in modo riservato senza doversi preventivamente incontrare ed accordare sulla chiave da utilizzare.
Il sistema di crittografia asimmetrica è caratterizzato da una coppia di chiavi: la prima è detta chiave pubblica e può essere condivisa, la seconda è detta chiave privata e deve rimanere segreta. La chiave pubblica viene impiegata per la codifica dei messaggi ma non è utilizzabile per la decodifica ed è per questo che può essere resa pubblica. Per la decodifica del messaggio è invece necessario usare la chiave privata.
Quindi il mittente di un messaggio riservato chiederà prima al destinatario di inviargli la sua chiave pubblica e con questa codificherà il messaggio e glielo spedirà. Il destinatario decodificherà il messaggio con la sua chiave privata.
Se le comunicazioni dovessero essere “spiate dal nemico” e cioè se il nemico intercettasse sia la chiave pubblica in andata che il messaggio codificato al ritorno non potrebbe decodificarlo perché non in possesso della chiave privata.
Nel paragrafo successivo vedremo concretamente come è costruito un sistema crittografico asimmetrico e come con esso sia possibile apporre una “firma digitale” a documenti digitali, ovvero alle transazioni in bitcoin: