Home page di Riflessioni.it

Nella rubrica "Riflessioni sul Senso della Vita":

rubriche Rubriche

rubriche d'autore Rubriche d'Autore

interattività Interattività

utilità Utilità

servizi Servizi

menu Sul Senso della Vita
menu La Riflessione
menu Testi per riflettere
menu Riflessioni Filosofiche
menu Riflessioni dal Carcere
menu Riflessioni dal Web

 

 Riflessioni Celebri
 Riflessioni Semplici
 Canzoni (Testi)
 Video riflessioni
 ECOriflessioni

menu Conversazioni con...
menu Paradigma Sperimentale
menu Riflessioni Iniziatiche
menu Riflessioni Antropologiche
menu Riflessioni Pedagogiche
menu Riflessioni Sociologiche
menu Salute e alimentazione
menu Sul Sufismo
menu Sull’Alchimia
menu Sulla Cultura Vedica

 Sulla Laicità
 Sulla Massoneria
 Sulla Mente
 Sulla Psicosintesi
 Sulla Simbologia
 Sulla Tecnosophia
 Sulle Scienze
 Sull'Esoterismo
 Sull'Ottava

menu LettereOnLine
menu Esperienze di vita
menu FORUM
menu Prosa e Poesia
menu Pensieri brevi

menu Enciclopedia
menu Dizionario Filosofico
menu Dizionario Religioni
menu Dizionario Saggezza
menu Breviario per Laici
menu Libro Proverbi Falsi
menu Miti Leggende Fiabe

menu Oggi sui quotidiani
menu Meteo
menu Cartoline Virtuali
menu Siti consigliati
menu Eventi
menu Contatti

>> Sei nella sezione Rubriche d'Autore          
Riflessioni sulle scienze

Riflessioni sulle Scienze

di Alberto Viotto    indice articoli

 

La lingua segreta   Aprile 2009
pag 2/2 pagina precedente

 

L’avvento dei calcolatori

L’avvento dei calcolatori ha completamente trasformato la crittografia; adesso si utilizzano algoritmi che richiedono un numero di operazioni molto elevato, al di là della portata di qualsiasi essere umano. È chiaro che anche le tecniche di attacco sfruttano le capacità dei calcolatori, innescando una sorta di circolo vizioso: un testo codificato anni fa, quando le capacità dei calcolatori erano molto inferiori, può essere facilmente decodificato con un attacco a “forza bruta” con i calcolatori. Questa tecnica prova tutte  le possibili combinazioni della chiave fino a trovarne una che produce un testo di senso compiuto.

Lo “stato dell’arte” della codifica crittografica è stato rappresentato fino a pochi anni fa dal DES (Data Encryption Standard), definito nel 1977 dal governo degli Stati Uniti. Il DES è un algoritmo “a blocchi”, perché non prende in considerazione i singoli caratteri ma sequenze di 64 bit, che possono contenere 8 caratteri in codifica ASCII.

La chiave utilizzata dal DES, che deve essere conosciuta sia dal mittente che dal destinatario, è di 64 bit, ma in realtà ne vengono utilizzati soltanto 56 (gli altri 8 sono dei bit di parità, che ne garantiscono l’integrità). Per rappresentare un numero di 64 bit servono 19 cifre decimali; una chiave DES espressa in forma decimale è qualcosa del tipo:

 

5768443022347814473

 

L’algoritmo effettua delle permutazioni sia sulla chiave che sul testo da crittografare, scambiando tra loro i bit secondo delle apposite tabelle. Dopo tutte le elaborazioni preliminari previste, si effettua una operazione di XOR bit a bit tra quanto si è ottenuto elaborando il testo e quanto si è ottenuto elaborando la chiave. La scelta dell’operatore di “esclusive or” XOR non è casuale. Infatti, se si conosce il risultato di una operazione di XOR tra due cifre binarie ed una delle due cifre originali, si può risalire al valore dell’altra.

L’operatore XOR è descritto da questa tabella

tabella

È facile vedere che se come parametri si considerano B e C, e si considera A come risultato, la relazione di XOR è sempre valida. In altri termini:

 

se C = XOR (A,B)      allora     A = XOR (B,C)     e     B = XOR (A,C)

 

Quindi, se si hanno a disposizione sia la chiave che il testo crittato con una operazione di XOR, si può ottenere il testo originale con un’altra operazione di XOR.

Le permutazioni previste dall’algoritmo DES sulla chiave e sul testo in chiaro hanno lo scopo di  rendere più pesanti i calcoli necessari per un attacco “a forza bruta”, effettuato provando tutte le possibili combinazioni della chiave: ognuna di esse, infatti, deve essere sottoposta a molte elaborazioni prima di verificare se dà origine ad un testo di senso compiuto.

Il numero di possibili combinazioni di una chiave di 56 bit è di due elevato alla cinquantaseiesima potenza, e cioè di 64 “Peta”, un numero esprimibile approssimativamente come 7 seguito da sedici zeri.

Per molto tempo si pensò che la potenza di calcolo necessaria per un attacco a forza bruta al DES fosse al di là delle possibilità tecniche di qualunque organizzazione; ancora nel 1998 il governo americano sosteneva pubblicamente che la forzatura del DES non era possibile nemmeno per un agenzia governativa con grande disponibilità di capitali come l’FBI. Il 17 luglio dello stesso anno, però, un team di tecnici guidati da John Gilmore della Electronic Frountier Foundation, un gruppo per la difesa dei diritti civili, realizzò un sistema in grado di forzare un testo criptato con il DES in pochi giorni. Il sistema aveva un costo di circa 200.000 dollari ed era alla portata di moltissime organizzazioni.

Con i calcolatori più recenti forzare un testo codificato con il DES richiede poche ore. Per rendere più sicura la codifica, si è diffuso l’utilizzo del “Triple DES”, che prevede che lo stesso testo venga sottoposto alle trasformazioni del DES per tre volte successive con tre chiavi diverse, rendendo pressoché impossibile un attacco a forza bruta. Negli ultimi anni, infine, il governo degli Stati Uniti ha proposto un nuovo standard, detto AES (Advanced Encryption Standard), sviluppato dai crittografi belgi Joan Daemen e Vincent Rijmen. L’AES lavora anch’esso su blocchi di testo di 64 bit, ma utilizza chiavi da 128 o 256 bit ed al momento non è vulnerabile agli attacchi a forza bruta.

 

La chiave pubblica

Tutte le tecniche crittografiche descritte richiedono un segreto condiviso; la chiave utilizzata da chi codifica deve essere conosciuta anche da chi deve decodificare. Comunicare la chiave in modo sicuro pone degli ovvi problemi organizzativi e di sicurezza; se viene intercettata tutti i messaggi crittografati possono essere facilmente letti da un estraneo.

È chiaro che le cose cambierebbero radicalmente se chi codifica il messaggio non avesse bisogno di una chiave segreta, ma potesse codificare utilizzando delle informazioni pubbliche. Il “trucco” consiste nell’utilizzare una chiave composta da due parti, una pubblica, che può essere comunicata senza problemi, ed un’altra privata, che soltanto il destinatario conosce. Utilizzando la chiave pubblica si può creare un messaggio che solo chi possiede la chiave privata corrispondente è in grado di leggere.

La procedura è abbastanza semplice, anche se richiede una grande potenza di calcolo. Chi deve ricevere dei messaggi crittografati genera una propria chiave segreta, privata, che non ha bisogno di comunicare a nessuno. A partire da questa elabora una chiave pubblica, che può distribuire liberamente. Chiunque gli debba spedire un messaggio segreto è in grado creare un testo crittografato che può essere decodificato soltanto da lui.

Il concetto di crittografia a chiave pubblica fu definito nel 1976 da Whitfield Diffie e Martin Hellmann, ma vi sono diversi modi di realizzarla. Una delle tecniche più diffuse fu sviluppata da Ron Rivest, Adi Shamir e Leonard Adleman, che fondarono un’azienda chiamata con il nome delle loro iniziali, RSA, ancora attiva nel campo della crittografia commerciale.

 

La firma digitale

Uno dei modi per verificare l’identità di una persona è chiedergli una “parola d’ordine”, e cioè richiedere che sia a conoscenza di un segreto. Comunicare questo segreto alle persone autorizzate, però, può essere pericoloso; se non ci si può incontrare di persona si deve trovare un sistema sicuro di comunicazione e, ad ogni modo, qualcuno potrebbe sentire la parola d’ordine quando viene pronunciata.

La magia della crittografia asimmetrica viene in aiuto anche in questo caso; non solo permette l’uso di una chiave che non si conosce, ma anche di essere certi che qualcuno possegga un segreto senza bisogno di comunicarlo. Chi possiede la chiave privata può generare un numero che solo lui è in grado di calcolare (una “firma digitale”), senza rischio che si possa risalire alla sua chiave privata. La verifica dell’autenticità del numero generato può essere fatta da chiunque a partire dalla chiave pubblica del mittente.

La chiave pubblica può essere conosciuta da tutti senza problemi, ad esempio può essere riportata su di un sito web, ma si deve essere certi che corrisponda proprio all’utente a cui è associata. In caso contrario, un malintenzionato potrebbe calcolare una coppia di chiavi privata e pubblica, e diffondere la falsa chiave pubblica attribuendola ad un utente di cui vuole falsificare la firma. Chi utilizzasse questa chiave pubblica inevitabilmente prenderebbe per autentici i messaggi firmati con la chiave privata del malintenzionato.

Per essere sicuri che una chiave pubblica appartenga ad un utente si usano i “certificati digitali”,  che sono composti dal nome di un utente e dalla sua chiave pubblica, il tutto firmato digitalmente da una “certification authority”, una organizzazione universalmente riconosciuta, come VeriSign, SecureNet, GTE CyberTrust. Prima di rilasciare un certificato ad un utente, una certification authority verifica che sia proprio lui, ad esempio chiedendo che si presenti con un documento di identità.

Ma, infine, come si può essere certi dell’identificazione della certification authority stessa, e cioè dell’autenticità della chiave pubblica usata per firmare un certificato? Queste chiavi sono “hardcoded”, e cioè comprese direttamente nel software, nei programmi utilizzati per leggere i messaggi di posta elettronica o per navigare sul Web. Il programma Internet Explorer di Microsoft, ad esempio, contiene le chiavi pubbliche di decine di certification authorities. Per un malintenzionato intervenire a questo livello sarebbe davvero difficile.

 

     Alberto Viotto

pag 2/2
pagina precedente

Altri articoli di Alberto Viotto

Libri suggeriti: