Introduzione alla crittografia



I messaggi di posta elettronica sono come delle cartoline, che possono essere lette da tutti, e non solo nei molti paesi in cui vige un controllo repressivo delle informazioni. È di poco tempo fa il caso ECHELON, il sistema che intercettava e controllava accuratamente il contenuto delle e-mail di mezzo mondo alla ricerca di parole chiave che potessero interessare al governo. Phil Zimmermann, autore del celebre software di crittografia PGP e che si è dato molto da fare per consentire a tutti di comunicare in modo sicuro, nel manuale d'uso del suo programma spiega a modo suo perché è importante usare la crittografia:

«Che accadrebbe se tutti pensassero che i cittadini onesti usano solo cartoline per la loro posta? Se qualche persona per bene volesse usare una busta chiusa per proteggere la sua privacy, desterebbe dei grossi sospetti. Forse le autorità aprirebbero la sua posta per controllare cosa nasconde. Fortunatamente non viviamo in un mondo fatto così, perché tutti proteggono la maggior parte della loro posta chiudendola in una busta. Sarebbe bello se tutti usassero abitualmente la crittografia per la loro posta elettronica, indipendentemente dal contenuto più o meno riservato, e in tal modo nessuno desterebbe sospetti»

La crittografia dunque è l'arte di progettare algoritmi (o cifrari) per crittografare un messaggio rendendolo incomprensibile a tutti tranne al suo destinatario che con un algoritmo simile deve essere in grado di codificarlo, attraverso un parametro segreto detto chiave, usato in precedenza anche dal mittente per la cifratura. La sicurezza di un sistema di crittografia risiede solo ed esclusivamente nella segretezza della chiave e non dell'algoritmo che è opportuno far conoscere alla pubblica analisi, in modo che se ne possano scoprire eventuali punti deboli in tempo.

Un algoritmo di crittografia riceve un testo da codificare (detto testo in chiaro) e lo trasforma, attraverso la chiave, in un testo cifrato apparentemente incomprensibile. I passaggi di cifratura e decifratura del testo vengono solitamente indicati in questo modo:

cifratura: M = Ck(Mc)
decifratura: Dk(Ck(M)) = M

dove M è il messaggio da cifrare, C è l'algoritmo di codifica, D quello di decodifica e k il parametro per i due algoritmi (chiave). I metodi di crittografia di questo tipo che utilizzano la stessa chiave per la codifica e la decodifica sono detti metodi a chiave segreta. Altri metodi che utilizzano due chiavi diverse per la codifica e la decodifica vengono detti a chiave pubblica e verranno trattati più avanti.

La lunghezza della chiave utilizzata è uno dei fattori più importanti per la segretezza del testo, evita infatti che possa essere decifrato per tentativi, dato che provare tutte le possibili combinazioni di caratteri che potrebbero formare una chiave è un problema che gli analisti definiscono a complessità computazionale esponenziale (basta infatti aggiungere una sola lettera alla chiave per aumentare in modo vertiginoso il numero di possibili combinazioni che possono essere ottenute).

Tradizionalmente si usavano algoritmi semplici e chiavi lunghe. Gli algoritmi moderni si basano invece su un'alta complessità in modo da rendere difficile il lavoro del crittoanalista anche se questo possiede una grossa quantità di testo cifrato. Il crittoanalista è colui che, come avrete già capito, ha il compito di violare i cifrari, o almeno di scoprire i punti deboli degli algoritmi. La potenza dei computer moderni può aiutare moltissimo il crittoanalista, ma molti sistemi che possono sembrare estremamente sicuri possono essere infranti semplicemente con carta e penna.

Ultimi articoli Sicurezza

Nmap: tecniche per evadere un firewall

Vediamo come sfuggire ai controlli di un firewall utilizzando Nmap.

Sfruttare vulnerabilità XSS con BeEF

Usiamo BeEF per automatizzare lo sfruttamento di vulnerabilità Cross...

Trojan Flashback: rimuoverlo da Mac OS X

Individuiamo e rimuoviamo il trojan Flashback da Mac OS X

Individuare vulnerabilità in Joomla con JoomScan

Usiamo JoomScan per verificare la sicurezza di Joomla e la presenza...

XSS: attacchi avanzati

Approfondiamo le vulnerabilità Cross Site Scripting analizzando...

Altri articoli

Guide Sicurezza

Guida SQL Injection con Sqlmap

Scopriamo se le nostre applicazioni web sono vulnerabili alle SQL...

Guida sicurezza applicazioni Web

Le tecniche di attacco più comuni, i metodi per verificare la...

Guida Sicurezza wireless

Quali sono i pericoli di sicurezza di una rete senza filo e quali...

Altre guide

Newsletter @Sicurezza

Ogni lunedì, direttamente nella tua e-mail: approfondimenti e bollettini su virus, vulnerabilità e sicurezza informatica.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto