Crittografia e Steganografia - L'Arte di nascondere le informazioni: differenze tra le versioni

nessun oggetto della modifica
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 2: Riga 2:
=Introduzione=
=Introduzione=


L'esigenza di garantire che un messaggio possa arrivare inalterato e non violato esiste probabilmente da quando l'uomo ha iniziato a comunicare; la storia è piena d'episodi e racconti che hanno per argomento messaggi e codici segreti, oppure i tentativi fatti per riuscire a decodificarli. Nel passato le esigenze di segretezza riguardavano prevalentemente la sfera politica e militare, senza arrivare a interessare, se non in minima parte, i cittadini comuni; con l'espansione sempre più forte delle comunicazioni a distanza l'esigenza di garantire l'invio di dati sensibili (pensiamo, per esempio, ai pagamenti effettuati tramite carta di credito) e, più in generale, la privacy dei dati e delle comunicazioni interpersonali, ha posto in grande evidenza i temi della crittografia e della steganografia dei dati, che studiano rispettivamente come codificare un messaggio per renderlo incomprensibile e come nasconderlo per renderlo inintelligibile.
L'esigenza di garantire che un messaggio possa arrivare inalterato e non violato esiste probabilmente da quando l'uomo ha iniziato a comunicare; la storia è piena di episodi e racconti che hanno per argomento messaggi e codici segreti, oppure i tentativi fatti per riuscire a decodificarli. Nel passato le esigenze di segretezza riguardavano prevalentemente la sfera politica e militare, senza arrivare a interessare, se non in minima parte, i cittadini comuni; con l'espansione sempre più forte delle comunicazioni a distanza, l'esigenza di garantire l'invio di dati sensibili (pensiamo, per esempio, ai pagamenti effettuati tramite carta di credito) e, più in generale, la privacy dei dati e delle comunicazioni interpersonali, ha posto in grande evidenza i temi della crittografia e della steganografia dei dati, che studiano rispettivamente come codificare un messaggio per renderlo incomprensibile e come nasconderlo per renderlo inintelligibile.
Non bisogna pensare che la necessità di mantenere la riservatezza delle comunicazioni riguardi unicamente chi ha "qualcosa da nascondere": la scarsa sicurezza intrinseca della maggior parte dei sistemi di comunicazione a distanza non può garantire quel diritto alla privacy che è ormai sancito dalla legislazione di tutti i Paesi.
Non bisogna pensare che la necessità di mantenere la riservatezza delle comunicazioni riguardi unicamente chi ha "qualcosa da nascondere": la scarsa sicurezza intrinseca della maggior parte dei sistemi di comunicazione a distanza non può garantire quel diritto alla privacy che è ormai sancito dalla legislazione di tutti i Paesi.


Riga 8: Riga 8:
=Le basi della crittografia=
=Le basi della crittografia=


Il cifrario (o metodo di cifratura) più semplice si basa unicamente sull'algoritmo scelto: si applica al messaggio di partenza una serie di trasformazioni che lo rendono incomprensibile a chi non conosca il sistema utilizzato. Un sistema di questo tipo piuttosto diffuso è il cosiddetto ROT-13, che prevede d'invertire le prime 13 lettere dell'alfabeto con le ultime (scambiando la A con la N, la B con la O e così via); questo sistema viene utilizato nei messaggi pubblici (nei forum e nei gruppi di discussione), per evitare che qualcuno possa leggere informazioni che non vuole conoscere (per esempio, il finale di un film che non ha ancora visto). Si tratta di soluzioni poco sicure e facilmente violabili da un crittoanalista esperto, che basano la propria efficacia unicamente sulla segretezza dell'algoritmo di cifratura. Un notevole passo avanti è costituito dai cosiddetti sistemi a chiave simmetrica, che affiancano a un algoritmo di cifratura un secondo elemento: la chiave. In questo caso, l'algoritmo non dev'essere necessariamente segreto, ma è anzi opportuno che sia il più possibile diffuso e conosciuto: un sistema ampiamente testato e conosciuto fin nel più piccolo dettaglio sarà più stabile e fornirà maggiori garanzie riguardo all'assenza di bug. In questo caso la sicurezza è dunque affidata alla chiave, che dev'essere fornita all'algoritmo insieme al messaggio per cifrarne o decifrarne il contenuto: naturalmente l'algoritmo è costruito in maniera tale da garantire che a ciascuna coppia chiave-messaggio corrisponda sempre lo stesso risultato e che, d'altro canto, da chiavi diverse s'ottenga sempre un risultato diverso in maniera tale che non esistano due chiavi capaci di "aprire" uno stesso messaggio cifrato.
Il cifrario (o metodo di cifratura) più semplice si basa unicamente sull'algoritmo scelto: si applica al messaggio di partenza una serie di trasformazioni che lo rendono incomprensibile a chi non conosca il sistema utilizzato. Un sistema di questo tipo piuttosto diffuso è il cosiddetto ROT-13, che prevede d'invertire le prime 13 lettere dell'alfabeto con le ultime (scambiando la A con la N, la B con la O e così via); questo sistema viene utilizzato nei messaggi pubblici (nei forum e nei gruppi di discussione), per evitare che qualcuno possa leggere informazioni che non vuole conoscere (per esempio, il finale di un film che non ha ancora visto). Si tratta di soluzioni poco sicure e facilmente violabili da un crittoanalista esperto, che basano la propria efficacia unicamente sulla segretezza dell'algoritmo di cifratura. Un notevole passo avanti è costituito dai cosiddetti sistemi a chiave simmetrica, che affiancano a un algoritmo di cifratura un secondo elemento: la chiave. In questo caso, l'algoritmo non dev'essere necessariamente segreto, ma è anzi opportuno che sia il più possibile diffuso e conosciuto: un sistema ampiamente testato e conosciuto fin nel più piccolo dettaglio sarà più stabile e fornirà maggiori garanzie riguardo all'assenza di bug. In questo caso la sicurezza è dunque affidata alla chiave, che dev'essere fornita all'algoritmo insieme al messaggio per cifrarne o decifrarne il contenuto: naturalmente l'algoritmo è costruito in maniera tale da garantire che a ciascuna coppia chiave-messaggio corrisponda sempre lo stesso risultato e che, d'altro canto, da chiavi diverse si ottenga sempre un risultato diverso in maniera tale che non esistano due chiavi capaci di "aprire" uno stesso messaggio cifrato.
Soluzioni di questo genere sono note fin dall'antichità, come i famosi cifrari utilizzati da Giulio Cesare durante la campagna in Gallia, quello di Vigenere, oppure la famosa macchina Enigma, utilizzata dai tedeschi durante la Seconda Guerra Mondiale, anche se solo con il progresso della teoria dei numeri, della logica e dell'informatica si è arrivati a costruire cifrari la cui solidità è dimostrabile.
Soluzioni di questo genere sono note fin dall'antichità, come i famosi cifrari utilizzati da Giulio Cesare durante la campagna in Gallia, quello di Vigenere, oppure la famosa macchina Enigma, utilizzata dai tedeschi durante la Seconda Guerra Mondiale, anche se solo con il progresso della teoria dei numeri, della logica e dell'informatica si è arrivati a costruire cifrari la cui solidità è dimostrabile.


Riga 15: Riga 15:


Il principale limite dei sistemi a chiave simmetrica, indipendentemente dalla bontà del cifrario, è rappresentato dalla chiave, che dev'essere trasmessa attraverso un canale sicuro, per poter garantire la solidità della cifratura: se questo requisito poteva essere accettabile per le comunicazioni militari, chi vuole effettuare un acquisto via Internet non può essere costretto a incontrare personalmente il venditore per scambiare la chiave.
Il principale limite dei sistemi a chiave simmetrica, indipendentemente dalla bontà del cifrario, è rappresentato dalla chiave, che dev'essere trasmessa attraverso un canale sicuro, per poter garantire la solidità della cifratura: se questo requisito poteva essere accettabile per le comunicazioni militari, chi vuole effettuare un acquisto via Internet non può essere costretto a incontrare personalmente il venditore per scambiare la chiave.
Dagli anni '70 l'informatica e la crittografia sono legate da un intreccio inscindibile, grazie alla teorizzazione e alla realizzazione di cifrari a chiave asimmetrica; sfruttando il fatto che alcuni calcoli matematici, per quanto teoricamente risolvibili, necessitino in realtà di un'enorme quantità di tempo per essere compiuti (addirittura milioni o miliardi di anni), è possibile costruire cifrari che utilizzino una coppia di chiavi, una pubblica destinata alla cifratura e una privata (da mantenere segreta) per la decifratura.
Dagli anni '70 l'informatica e la crittografia sono legate da un intreccio inscindibile, grazie alla teorizzazione e alla realizzazione di cifrari a chiave asimmetrica: sfruttando il fatto che alcuni calcoli matematici, per quanto teoricamente risolvibili, necessitino in realtà di un'enorme quantità di tempo per essere compiuti (addirittura milioni o miliardi di anni), è possibile costruire cifrari che utilizzino una coppia di chiavi, una pubblica destinata alla cifratura e una privata (da mantenere segreta) per la decifratura.
Ecco l'esempio classico che chiarisce il funzionamento di questo sistema: Alice e Bob vogliono comunicare tra loro privatamente; entrambi generano una propria coppia di chiavi, una pubblica ed una privata. Si scambiano le rispettive chiavi pubbliche, senza necessità di alcun genere di sicurezza (esistono su Internet numerosi elenchi di chiavi pubbliche, liberamente consultabili). In seguito, Alice utilizzerà la chiave pubblica di Bob per cifrare il messaggio che intende inviargli. Bob, ricevuto il messaggio, lo decifrerà utilizzando la propria chiave privata, avendo la certezza che nessuno, a parte Alice, abbia potuto leggerne il contenuto.
Ecco l'esempio classico che chiarisce il funzionamento di questo sistema: Alice e Bob vogliono comunicare tra loro privatamente; entrambi generano una propria coppia di chiavi, una pubblica ed una privata. Si scambiano le rispettive chiavi pubbliche, senza necessità di alcun genere di sicurezza (esistono su Internet numerosi elenchi di chiavi pubbliche, liberamente consultabili). In seguito, Alice utilizzerà la chiave pubblica di Bob per cifrare il messaggio che intende inviargli. Bob, ricevuto il messaggio, lo decifrerà utilizzando la propria chiave privata, avendo la certezza che nessuno, a parte Alice, abbia potuto leggerne il contenuto.


1 508

contributi