Crittografia

Tutti hanno sentito parlare di crittografia. Film, serie TV, telegiornali sono spesso infarciti con questa parola. Ma cosa è? Come Funziona? Questo vuole essere il primo di una serie di articoli che ci introducono e ci guidano in questo mondo.
Noi crediamo molto nello sviluppare cultura in ambito tecnologico in modo che i nostri clienti, ma anche le persone che non lo sono, non debbano essere sopraffatti dalle innovazioni tecnologiche e dalle trasformazioni che queste comportano sia nel mondo del lavoro che nella vita di tutti i giorni.

Cosa significa

La parola crittografia deriva dal greco Kryptós (nascosto) e graphía (scrittura) ed è un metodo, nato nell’antichità, per rendere inintellegibile la scrittura a chi non è a conoscenze del metodo stesso. Forse il metodo più antico, oggi conosciuto, di usare la crittografia su un testo è quello della scitala lacedemone.
Prima di tutto si prendevano due bastoni e li si rendevano uguali. Uno veniva invito al destinatario con cui si volevano scambiare messaggi cifrati. Per scrivere un messaggio si avvolgeva sul bastone, a spirale, una striscia di cuoio o di papiro e si scriveva sul lato del bastone. Svolgendo la striscia questa sembrava piena di lettere a caso. A questo punto con un messaggero si inviava la striscia al destinatario che, avvolgendola sul bastone precedentemente ricevuto poteva leggerne il testo in modo comprensibile.
 
Con la tecnologia di oggi il criterio di fondo è lo stesso. Chi trasmette e chi riceve devono avere delle chiavi, come il bastone della scitale, e conoscere con quale algoritmo utilizzarle, come nella scitala la tecnica di arrotolare la striscia attorno al bastone.

Che tipi di metodi esistono?

I metodi più conosciuti sono quello a chiavi simmetriche e quello a chiavi asimmetriche.

A chiavi simmetriche

Chi trasmettere dei dati utilizza un algoritmo (il modo di avvolgere la striscia di prima) ed una chiave (il bastone della scitala) per renderli non comprensibili. Chi riceve il messaggio deve avere una chiave identica (come nella scitala il bastone) ed applicando un algoritmo con quella chiava potrà leggere i dati ricevuti.
Questo tipo di crittografia ha il vantaggio di permettere l’utilizzo di algoritmi che richiedono poche risorse elaborative. Però ha lo svantaggio che si devono scambiare in precedenza le chiavi e lo scambio deve avvenire in modo sicuro.
Ossia i due interlocutori devono incontrarsi precedentemente per scambiarsi le chiavi, oppure inviarle per email con i rischi che queste possano essere rubate.

Un esempio

Questo tipo di crittografia è utilizzato nel cifrario di Vernam dove:

  • la chiave per cifrare è lunga quanto il testo da cifrare
  • il testo cifrato si ottiene applicando l’operazione di somma modulo due tra il testo in chiaro  e la chiave
  • il testo decifrato si ottiene applicando l’operazione di somma modulo due tra il testo cifrato  e la chiave

Ma questo metodo è realmente sicuro solo se:

  • La chiave è generata in modo veramente casuale
  • La chiave venga utilizzata una sola volta
  • La chiave sia veramente segreta!

Quest’ultima condizione evidenzia la delicatezza, in questi casi,  della distribuzione delle chiavi.

A chiavi asimmetriche (o a chiave pubblica)

In questi sistemi il concetto di fondo è che la chiave usata per cifrare e quella per decifrare siano differenti. Come se avessimo una chiave costituita da una coppia di chiavi: la prima è la chiave privata che è disponibile solo ad una persona; la seconda è una chiave pubblica disponibile a tutti. L’algoritmo utilizzato permette di cifrare i documenti con la chiave pubblica e decifrarli con la chiave privata.

Il vantaggio evidente è che le chiavi pubbliche possono essere scambiate liberamente anche in chiaro nella rete. I due interlocutori non devono incontrarsi precedentemente, ma possono scambiarsi le chiavi pubbliche liberamente sulla rete nel momento in cui vogliono comunicare.

Lo svantaggio è dato dagli algoritmi che si devono utilizzare, perchè devono basarsi sulla difficoltà di calcolo per rendere difficile la decifratura senza la chiave privata. Se l’algoritmo utilizzato fosse semplice con poche combinazioni, chiunque senza chiave andando per ripetuti tentativi potrebbe riuscire a decifrarlo.

Il “valore” della crittografia asimmetrica

Per avere una crittografia sicura si devono utilizzare degli algoritmi che, in mancanza della chiave privata, impieghino tante risorse per decifrare il messaggio. Le risorse sono una coperta a due lati, da una parte c’è il tempo che ci si impiega. Ovviamente se io devo impiegare 1000 anni per poter decifrare un messaggio, l’operazione di scassinamento non mi serve.
Per impiegare meno tempo devo tirare la coperta dall’altro lato, utilizzare computer con capacità di calcolo molto elevate che riescano a compiere l’operazione in un tempio più breve.

Ecco che si può stabilire una regola per far si che la crittografia sia affidabile: le risorse necessarie a decifrare il messaggio, in mancanza della chiave privata, devono valere molto di più del valore del messaggio stesso.

Facciamo un paio di esempi: io voglio mandare una mail cifrata con gli auguri di compleanno a mia nipote. Se spendendo 1 euro si potesse affittare un computer in grado di decifrare quella mail in 5 minuti, la lettura di quella email sarebbe alla portata di tutti. Ma se si dovesse affittare un computer per 5 minuti che costasse 10.000 euro allora già sarebbe un’impresa che potrebbe interessare un minor numero di persone. Ora diciamo che in realtà per decifrare quella mail tra me e mia nipote si debbano spendere 1 milione di euro. Ecco che il meccanismo di cifratura è affidabile perchè nessuno spenderà tale cifra per sapere cosa mi dico con mia nipote.

Ma se con 1 milione di euro si potesse intercettare l’invio dei codici delle testate nucleari di una nazione, pensate che qualcuno sarebbe disposto a spenderlo?

Ci sono novità in questo campo?

Ovviamente si. Basandosi su modelli matematici la crittografia è oggetto di studio (e novità) con l’introduzione dell Fisica quantistica. Nuovi metodi e nuovi calcolatori potrebbero far avanzare enormememnte questo campo.

In sintesi

  • La crittografia si basa su delle chiavi e sugli algoritmi che le utilizzano per cifrare i dati
  • Lo scambio delle chiavi può essere più o meno sicuro
  • La crittografia è affidabile quando per decifrarla senza chiavi si debba spendere tanto di più del valore del messaggio scambiato

more insights