Che cos’è la crittografia?

Che cos’è la crittografia?

La crittografia è un po’ come un gioco segreto di scrittura e lettura.

Immagina che tu voglia mandare una lettera segreta al tuo migliore amico, ma non vuoi che nessun altro la legga. Allora, usi un codice speciale che solo tu e il tuo amico conoscete. Questo codice cambia le lettere o le parole della tua lettera in modo che sembri un mucchio di lettere senza senso per chiunque altro. Solo chi conosce il segreto per “decifrare” (cioè leggere) il messaggio può capire cosa hai scritto.

Ad esempio, potresti decidere che ogni lettera della tua lettera sarà spostata avanti di 3 posti nell’alfabeto. Quindi, la lettera “A” diventa “D”, “B” diventa “E”, e così via. Quindi, se vuoi scrivere “CIAO”, in realtà scriverai “FLDR”. Solo il tuo amico, che sa come tornare indietro di tre lettere, può leggere il vero messaggio.

Nel mondo reale, la crittografia è usata per proteggere le informazioni importanti, come i dati bancari o le email, in modo che solo le persone giuste possano leggerle.

Il tipo di cifratura che descritto, dove ogni lettera viene spostata di un certo numero di posti nell’alfabeto, si chiama “Cifrario di Cesare”. Prende il nome da Giulio Cesare, un famoso leader dell’antica Roma, che usava questo metodo per mandare messaggi segreti.

Nel Cifrario di Cesare, scegli un numero fisso per spostare le lettere. Ad esempio, se scegli il numero 3, la lettera A diventa D, la B diventa E, e così via, proprio come nell’esempio di prima. È un modo molto semplice di cifrare un messaggio, ma è anche abbastanza facile da decifrare per chi sa come funziona.

Quello appena descritto è un tipo di cifratura simmetrica. È come avere una scatola con una serratura e una chiave che la apre.

Se tu e il tuo amico avete entrambi una copia della stessa chiave, potete mettere i messaggi nella scatola, chiuderla, e solo chi ha la chiave può aprirla e leggere i messaggi.

Qui, la “chiave” è un codice segreto che usate sia per “cifrare” (cioè nascondere) il messaggio, sia per “decifrare” (cioè leggere) il messaggio.

Quindi, sia tu che il tuo amico dovete avere lo stesso codice segreto.

Questo metodo è veloce e viene usato per proteggere grandi quantità di dati, come i file sul tuo computer o le informazioni trasmesse durante una chiamata Skype.

Esiste anche la cifratura asimmetrica: Immagina di avere una scatola con due chiavi diverse: una chiave pubblica che chiude la scatola e una chiave privata che la apre. Tu dai la chiave pubblica a tutti i tuoi amici, quindi possono mettere i loro messaggi nella scatola e chiuderla. Ma solo tu hai la chiave privata per aprirla e leggere i messaggi. In questo caso, usi una chiave (il codice segreto) per cifrare il messaggio e una chiave diversa per decifrarlo.

Questa cifratura è usata per cose come inviare e-mail sicure, fare transazioni online o per firmare digitalmente un documento, dimostrando che vieni veramente da te.

In breve, la cifratura simmetrica usa la stessa chiave per cifrare e decifrare, mentre la cifratura asimmetrica usa due chiavi diverse, una pubblica per cifrare e una privata per decifrare.

Le funzioni Hash

Immagina una funzione hash come una specie di macchina magica che trasforma qualcosa di grande (come un intero libro) in qualcosa di molto piccolo (come un codice a barre). Ogni volta che metti un libro nella macchina, ti dà un codice a barre unico che rappresenta quel libro.

Se provi a mettere lo stesso libro nella macchina, otterrai sempre lo stesso codice a barre.

Però, se cambi anche solo una parola nel libro e lo metti di nuovo nella macchina, il codice a barre che uscirà sarà completamente diverso. Questo mostra quanto sia sensibile la funzione hash ai cambiamenti.

È come se cambiassi una piccola pietra in un grande mosaico, e improvvisamente l’intero mosaico apparisse diverso.

Un’altra cosa importante da sapere è che, anche se il codice a barre ti dice molto sul libro, non puoi usare il codice a barre per ricostruire il libro originale. È una via a senso unico: dal libro al codice a barre, ma non il contrario.

Le funzioni hash sono molto utili per controllare se qualcosa è cambiato.

Ad esempio, se hai un codice a barre di un libro e vuoi assicurarti che il libro che hai ora sia lo stesso, puoi metterlo nella macchina hash e vedere se ottieni lo stesso codice a barre.

Le funzioni hash sono usate per verificare l’integrità dei dati (per esempio, per assicurarsi che un file scaricato non sia stato modificato) o per memorizzare in modo sicuro le password, così che anche se qualcuno vede il codice a barre, non può sapere la tua password.