Crittografia: un'arte millenaria

in #cryptography7 years ago (edited)

Crittografia

Negli ultimi anni si sente parlare sempre di più di crittografia nel World Wide Web.
Sappiamo che è una misura di sicurezza avanzata, tuttavia molti non sanno che la crittografia è in realtà un'arte antica.


Per crittografia si intende la disciplina che si occupa di cifrare e decifrare informazioni.


I primi sistemi crittografici

La scitala

Storicamente la crittografia veniva ampiamente utilizzata già dai tempi di Lisandro (400 a.c).
Gli efori, i supremi magistrati di Sparta, utilizzavano la scitala per comunicare con i generali impegnati in spedizioni militari.

La scitala è uno dei sistemi crittografici più antichi che rendeva impossibile la comprensione dei messaggi se intercettati dai nemici.

Scitala

Fonte immagine: Wikipedia

Il funzionamento era semplice: il mittente e il destinatario dovevano avere un bastone di lunghezza e diametro uguali. Il mittente avvolgeva a spirale una striscia di pergamena attorno al bastone e scriveva il messaggio. In questo modo, una volta srotolata la striscia, il messaggio appariva come una serie di lettere senza senso. Solamente chi possedeva un bastone dello stesso diametro del mittente riusciva a riordinare le lettere avvolgendo la striscia di pergamena.


Cifrario di Cesare

Questo cifrario prende il nome, ovviamente, da Giulio Cesare, che lo utilizzava per i suoi messaggi segreti.
Viene definito come cifrario a scorrimento, poichè il sistema crittografico consiste nel far scorrere di 3 posizioni nell'alfabeto ogni lettera del messaggio.

Esempio:

Ciao
Fldr

Nonostante fosse un sistema banale, era davvero efficace poichè non esistevano ancora metodi di crittanalisi.


I sistemi moderni

Facendo un salto ai giorni nostri, la crittografia viene utilizzata principalmente nel mondo digitale.
Lock

Qual'è lo scopo della crittografia?

La crittografia viene principalmente utilizzata per garantire la privacy .
Ma più nello specifico garantisce:

  • Segretezza dei dati: i due interlocutori devono essere certi che i messaggi non siano comprensibili da terzi.
  • Integrità dei dati: i dati non devono essere stati alterati nella trasmissione; si deve poter verificare che il ricevente non abbia alterato il messaggio.
  • Autenticazione: Il ricevente deve poter verificare l’identità del mittente.
  • Non ripudiabilità: Il mittente non può negare di essere il proprietario del messaggio

Cifrari asimmetrici

I cifrari moderni consistono in algoritmi che utilizzano una coppia di chiavi per cifrare e decifrare un'informazione.
Queste chiavi sono stringhe alfanumeriche lunghe collegate tra di loro tramite una relazione matematica.

Vengono chiamati cifrari asimmetrici perchè se un messaggio viene cifrato con una chiave, può solo essere decifrato dalla seconda.

Le due chiavi vengono distinte in questo modo:

  • Chiave pubblica: accessibile a tutti
  • Chiave privata: il proprietario deve tenersela stretta e non mostrarla a nessuno

Facciamo ora un esempio di utilizzo:

Luca vuole inviare un messaggio a Elisa senza che la moglie lo scopra.
Essendo Luca un esperto di sicurezza informatica, decide di cifrare il messaggio.

johnrose.png
(Perdonate il mio pessimo gusto artistico, spero sia comprensibile come schema)

  1. Luca scrive l'invito a cena per Elisa e lo cifra con la chiave pubblica di Elisa. In questo modo sua moglie non è in grado di leggere il messaggio, poichè si può decifrare soltanto con la chiave privata di Elisa (Che possiede solo lei)
  2. Elisa riceve il messaggio e lo decifra utilizzando la sua chiave privata, ottenendo così il messaggio in chiaro.

Ora Luca è sicuro al 100% che il suo messaggio sarà letto solo da Elisa.

Ma complichiamo un po' le cose:
Come fa Elisa a sapere che il messaggio è stato effettivamente inviato da Luca? E se fosse un malintenzionato che finge di essere Luca?

Qui entra in gioco la procedura di crittografia su cui si basano il protocollo HTTPS, la firma digitale, le Blockchain (E si, le famose chiavi private e pubbliche del tuo wallet Bitcoin sono proprio quelle di cui sto parlando io)

Ragionandoci sopra, l'unico modo per essere sicuri che il messaggio arrivi da Luca è far si che nel messaggio ci sia qualcosa che soltanto lui può aver messo.. la sua chiave privata!
Se Luca cifra il messaggio con la sua chiave privata, Elisa è in grado di decifrarlo con la chiave pubblica di Luca. Se non dovesse riuscire a decifrarlo vuol dire che il messaggio non è arrivato da Luca!

Dunque, mettendo assieme la segretezza ottenuta dal primo metodo illustrato sopra e l'autenticazione di questo, si ottiene una conversazione del tutto anonima e sicura.

johnrose(3).png

  1. Luca scrive l'invito a cena per Elisa e lo cifra con la sua chiave privata.
  2. Successivamente cifra ulteriormente il messaggio con la chiave pubblica di Elisa. In questo modo il messaggio è leggibile solo da Elisa.
  3. Elisa riceve il messaggio e lo decifra con la sua chiave privata
  4. Ora rimane ancora la cifratura di Luca. Elisa la decifra utilizzando la chiave pubblica di Luca. In questo modo è sicura a 100% che il messaggio è stato inviato da lui.

La crittografia ci ha permesso di arrivare a sviluppare sistemi avanzati come le Blockchain. Senza di essa non starei scrivendo su Steemit in questo momento!

Sort:  

Congratulations @ciarmolimarco! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes received

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

This post has been ranked within the top 25 most undervalued posts in the first half of Nov 15. We estimate that this post is undervalued by $15.44 as compared to a scenario in which every voter had an equal say.

See the full rankings and details in The Daily Tribune: Nov 15 - Part I. You can also read about some of our methodology, data analysis and technical details in our initial post.

If you are the author and would prefer not to receive these comments, simply reply "Stop" to this comment.

Congratulations @ciarmolimarco! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You got your First payout

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Congratulations @ciarmolimarco! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Congratulations @ciarmolimarco! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Congratulations @ciarmolimarco! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Congratulations @ciarmolimarco! You have received a personal award!

1 Year on Steemit
Click on the badge to view your Board of Honor.

Do not miss the last post from @steemitboard:

SteemFest3 and SteemitBoard - Meet the Steemians Contest

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @ciarmolimarco! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Do not miss the last post from @steemitboard:

SteemFest Meet The Stemians Contest - The mysterious rule revealed
Vote for @Steemitboard as a witness to get one more award and increased upvotes!