Presentazione
10
è una delle due parti in cui si suddivide la crittografia moderna, nel
Capitolo 1, dopo aver introdotto la terminologia e le nozioni fondamentali
della crittografia, si è ritenuto opportuno esaminare i principali cifrari del
passato, anche perché molti dei principi da essi adottati sono validi ancora
oggi, e conoscerli è il modo migliore per capire la crittografia moderna.
Nel Capitolo 2, dopo aver spiegato le ragioni della nascita della
crittografia moderna, sono stati descritti i principali algoritmi simmetrici e
asimmetrici analizzando le principali differenze esistenti; sono state
descritte le funzioni di hash, che sono le funzioni fondamentali del
processo di creazione delle firme digitali. Una riflessione sul conflitto tra
riservatezza e sicurezza pubblica delle informazioni telematiche conclude
il capitolo.
Il documento informatico è stato, invece, il tema del Capitolo 3. Sono
stati definiti i concetti di informazione e di supporto d’informazione,
fondamentali nella comprensione dell’evoluzione legislativa che ha
portato al riconoscimento del documento informatico come categoria
generale, valida cioè per tutto l’ordinamento giuridico. È stato esaminato
il concetto di documento in senso giuridico, illustrando perché una parte
della dottrina considerava il documento informatico “documento in senso
giuridico”, e soprattutto “documento scritto”, prima ancora dell’entrata in
vigore della precitata legge n.59/97; infine è stata descritta brevemente
l’evoluzione legislativa del documento informatico.
Tema del Capitolo 4 è la firma digitale, la cui apposizione è
fondamentale per il riconoscimento della rilevanza e validità del
documento informatico. In questo capitolo è stata esaminata con
attenzione la differenza tra la firma digitale e la firma autografa,
evidenziando il fatto che la firma digitale non coincide con la scansione
della firma autografa, ovvero con la trasformazione in formato digitale
Presentazione
11
(codifica) della firma apposta su un supporto cartaceo. Quindi si è passati
a descrivere il modo in cui operano gli algoritmi asimmetrici per generare
firme digitali; in seguito si è descritto dettagliatamente il processo che
conduce alla creazione della firma digitale affinché si possa assicurare
contemporaneamente l’autenticità (ovvero la certezza sulla provenienza
del documento informatico), l’integrità (cioè che il documento non abbia
subito modifiche dopo l’apposizione della firma) e il non ripudio (vale a
dire che l’autore non può disconoscere ciò che ha firmato) di un
documento informatico firmato. Si è esaminata, infine, la normativa
italiana (Legge n.59/97; D.P.R. n.513/97; D.P.C.M. 8 febbraio 1999;
D.P.R. n.445/00) e comunitaria (Direttiva 1999/93/CE) sulla
regolamentazione e l’uso della firma digitale.
Nel Capitolo 5 viene descritto come funziona nella pratica un
programma di crittografia, che consente anche di generare una firma
digitale. Un programma molto importante nella comunità telematica è il
Pretty Good Privacy, più conosciuto con la sigla PGP. Tale programma
ha permesso al “grande pubblico” di utilizzare per la prima volta la
crittografia “forte” (vista nel par.1.1). Purtroppo il PGP è escluso dal
novero dei programmi utilizzabili in un sistema di crittografia basato,
come quello italiano, sull’attività di certificazione di un terzo di fiducia. Il
capitolo contiene, inoltre, una descrizione dettagliata dell’installazione e
dell’uso del PGP.
Analizzando il problema della ricerca di una definizione giuridica del
concetto di documento informatico si è visto che il legislatore penale, con
l’articolo 3 della legge n.547/93, recante “Modificazioni ed integrazioni
alle norme del codice penale e del codice di procedura penale in tema di
criminalità informatica”, ha introdotto nel Codice Penale l’articolo 491bis
definendo per la prima volta il documento informatico. Egli lo ha fatto in
Presentazione
12
riferimento alla falsità in atti, introducendo così un’ipotesi di reato
informatico. A partire da queste considerazioni si è ritenuto dedicare
l’intero Capitolo 6 ai cosiddetti computer crimes. In particolar modo si è
dapprima cercato di definire in maniera rigorosa e completa i crimini
informatici, ma ci si è resi conto che si trattava di un’attività molto
difficile, resa impossibile anche dal fatto che né a livello di legislazioni
nazionali, né in ambito internazionale, ne sia mai stata elaborata una
definizione unitaria; quindi si è proseguito descrivendo la “tradizionale”
ripartizione dei crimini informatici, che è effettuata in base allo “scopo
dell’azione criminosa” ed in base al “modus operandi”. Si è passati, poi,
ad analizzare l’attività dei diversi soggetti che compiono crimini
informatici (hackers, crackers, phreakers, ecc.) facendo chiarezza, allo
stesso tempo, sulla terminologia che bisogna usare per identificarli. Il
capitolo si chiude con l’esame della legislazione italiana in materia di
criminalità informatica.
In Appendice 1 si è ritenuto opportuno riportare l’elenco dei cifrari
più importanti nella storia della crittografia antica e moderna, mentre in
Appendice 2 sono stati riportati gli articoli delle leggi analizzate nel corso
della Tesi.
Capitolo 1 Introduzione e storia della crittografia
13
Capitolo 1
Introduzione e storia della crittografia.
1.1 Premessa.
Il legislatore italiano ha adottato, come presupposto tecnologico del
documento informatico e della firma digitale, il sistema di crittografia
asimmetrica: è necessario, pertanto, prima di esaminare questi due nuovi
istituti giuridici, capire il funzionamento di tale tecnica.
Riteniamo, comunque, necessario, prima ancora di descrivere
analiticamente questa tecnica, definire e capire la terminologia che verrà
usata.
La parola crittografia, che deriva dal greco cripto (=nascondere) e
graphein (=scrivere), indica “la scienza che studia i sistemi segreti di
scrittura”.[Rog99]
La crittanalisi, invece, può essere definita come “la disciplina
finalizzata alla violazione della segretezza dei sistemi di
crittografia”[Rog99].
Capitolo 1 Introduzione e storia della crittografia
14
La crittologia, infine, è la scienza che studia sia la crittografia sia la
crittanalisi.
In altre parole: la crittografia è “la scienza di inventare sistemi
cifranti”, che sono appunto quei sistemi in grado di rendere
incomprensibile un messaggio a chiunque ne venga in possesso ad
eccezione del legittimo destinatario; la crittanalisi è “l’arte di rompere tali
sistemi”; mentre la crittologia le comprende entrambe.[BB96]
Il messaggio originale, cioè la sequenza di lettere o simboli che si
vuole trasmettere, è chiamato testo in chiaro (in inglese plaintext). Il
messaggio cifrato, che è la sequenza di lettere o simboli che
effettivamente si trasmette, è detto testo cifrato o crittogramma (in inglese
ciphertext).
L’operazione che consente di trasformare il testo in chiaro nel testo
cifrato è detta cifratura o codifica; il procedimento inverso è chiamato
decifratura, decifrazione o decodifica se viene fatto dal legittimo
destinatario, mentre è chiamato decrittazione se viene fatto da un
attaccante, cioè da un estraneo che “cerca di violare la segretezza di un
messaggio altrui”, questo viene pertanto chiamato nemico.[Rog99].
Più precisamente, nel contesto della tesi, con questo termine si indica
“colui che non è in possesso della chiave di un cifrario, ma tenta
fraudolentemente di venire a conoscenza del contenuto di un testo cifrato
utilizzando sistemi indiretti”. [Giu96]
Con il termine algoritmo s’intende, generalmente, “l’insieme delle
operazioni, logiche e di calcolo, la cui sequenza porta con certezza ad un
determinato risultato”.[Rog99]
Nell’ambito della crittografia, l’algoritmo è l’insieme delle operazioni
che consentono di trasformare un testo in chiaro nel corrispondente testo
cifrato, e viceversa.
Capitolo 1 Introduzione e storia della crittografia
15
Questo termine deriva dal soprannome del matematico arabo
Muhammed ibn Musà, detto al-Khuwarizmi (latinizzato in Algoritmus),
vissuto nel nono secolo dopo Cristo, che svolse la sua attività presso la
corte del sultano di Baghdad. Egli scrisse due opere di matematica, una
delle quali, successivamente studiata anche in occidente intitolata Al-giabr
Valmukabala, è alla base dell’algebra moderna; proprio dal titolo di
quest’opera (al-giabr) è derivato, per successive deformazioni, il termine
“algebra”.
La chiave è, invece, la particolare parola, o frase, “che consente,
tramite l’applicazione dell’algoritmo di cifratura, di trasformare un testo
in chiaro in un testo cifrato” [Rog99]. In altre parole, la chiave è il codice
che consente di attivare l’algoritmo.
Quindi, se l’algoritmo è “il procedimento di calcolo”, la chiave è “il
modo come opera l’algoritmo in una situazione particolare”.[BB96]
Un cifrario, detto anche sistema di cifratura, o sistema di crittografia,
è un sistema formato “da un insieme di testi in chiaro, dai corrispondenti
testi cifrati, dall’algoritmo e dalle chiavi”.[BB96]
Le nozioni di algoritmo e di chiave sono molto importanti per capire il
principio su cui si basa la filosofia della moderna crittanalisi, e che sarà
fondamentale nel prosieguo del discorso per valutare la sicurezza dei vari
cifrari che analizzeremo. Il principio di Kerckhoffs, formulato nel libro La
criptographie militare (1883) dal filologo olandese Jean Guillaume
Hubert Victor François Alexandre Auguste Kerckhoffs von Nieuwenhof
(1835-1903), afferma:
“la sicurezza di un crittosistema (cifrario) non deve dipendere dalla
segretezza dell’algoritmo usato, ma solo dalla segretezza della
chiave”.[BB96]
Capitolo 1 Introduzione e storia della crittografia
16
Ed è proprio su questo principio che si basano i moderni sistemi di
crittografia.
A tale proposito si definisce sistema crittografico forte o robusto un
sistema di crittografia che “si basa su un’elevata dimensione della chiave
e su una notevole difficoltà d’inversione della chiave di codifica”.
[Rog99]
La dimensione della chiave è data dal numero di simboli alfanumerici
di cui essa è composta, oppure, nel caso d’informazioni codificate in
formato binario, dal numero di bit
1
di cui è formata.
Relativamente alle finalità dell’attacco di un nemico, è opportuno
distinguere tra:
• attacco passivo;
• attacco attivo.
Nell’attacco passivo il desiderio dell’intruso è solo quello di leggere il
messaggio; nell’attacco attivo invece esso vuole anche cambiarlo, allo
scopo di causare danni o per avere vantaggi personali.
Per quanto riguarda le principali ipotesi dell’attacco, in genere si
distingue tra:
1) Known ciphertext attack (Attacco ad un testo cifrato noto), in cui
il nemico non conosce nulla del contenuto dei messaggi scambiati;
assiste esclusivamente al passaggio dei dati in forma cifrata. In tal
caso l’attacco è assai complicato perché costituito dal solo brute
force attack, che consiste nel provare ogni possibile combinazione
della chiave fino ad individuare quella giusta.
1
Il bit, termine che corrisponde alla contrazione dell’inglese binary digit (=numero binario), è l’unità
elementare dell’alfabeto binario, che è il “linguaggio naturale” degli elaboratori elettronici. Per un
approfondimento si veda il Cap. 3.
Capitolo 1 Introduzione e storia della crittografia
17
2) Known plaintext attack (Attacco ad un testo in chiaro noto), in cui
il nemico s’impossessa di una coppia di messaggi, in chiaro e nella
corrispondente versione cifrata; dal loro esame e dal loro confronto
cerca di risalire all’algoritmo di cifratura ed alla chiave usata, in
modo da essere in grado di decrittare tutti i successivi messaggi
intercettati.
3) Chosen plaintext attack (Attacco ad un testo in chiaro scelto), in
cui il nemico, subdolamente, fa in modo che venga cifrato un
messaggio da lui stesso inviato. In tal modo si ha a disposizione un
determinato testo, sia nella forma originale sia cifrata, che consente
l’esame approfondito dell’algoritmo di cifratura, circostanza che
accresce notevolmente la possibilità di riuscire a forzarlo. Questo
tipo di attacco ha consentito agli americani di determinare
l’algoritmo usato dai giapponesi durante la Seconda Guerra
Mondiale: le forze statunitensi, infatti, che già monitoravano il
traffico dei messaggi scambiati tra i vari comandi delle forze
giapponesi, inviarono una particolare notizia falsa, ottenendo che
venisse immediatamente trasmessa, ovviamente cifrata, al
comando generale giapponese.
1.2 Storia della crittografia.
Il problema della segretezza del contenuto di un messaggio è sempre
stato avvertito dall’uomo. In altre parole, da quando l’uomo ha iniziato a
comunicare con i suoi simili, esistono comunicazioni riservate, cioè
messaggi diretti ad un pubblico ristretto di persone.
Capitolo 1 Introduzione e storia della crittografia
18
In principio l’esigenza nasceva per motivi prevalentemente militari;
era, infatti, di fondamentale importanza che la comunicazione tra un
comando supremo ed un generale, che in genere riguardava piani di
battaglia, movimenti di truppe nemiche, ordini d’attacco o di ritiro,
rimanesse indecifrabile per il nemico anche nel caso in cui questi riusciva
ad entrare in possesso del messaggio; in altre parole, il messaggio
originario veniva trasformato in una sequenza di lettere e numeri che
rendevano il testo incomprensibile a chi ne veniva in possesso se,
ovviamente, questo non conosceva la chiave per rendere comprensibile il
messaggio.
In questo paragrafo esamineremo i principali cifrari del passato, anche
perché molti dei principi da essi adottati sono validi ancora oggi, e
conoscerli è il modo migliore per capire la crittografia moderna.
La prima testimonianza dell’uso di un cifrario risale a circa 2500 anni
fa, ed è dovuta a Plutarco, uno storico greco, che nella sua opera Vite
Parallele scrive che gli efori (che erano, nell’antica Sparta, i magistrati
annui controllori dell’opera dei re e responsabili della politica estera)
trasmettevano ai generali messaggi segreti nel seguente modo: mittente e
destinatario facevano uso di due bastoni di legno perfettamente uguali,
cioè aventi lo stesso raggio e lunghezza; tale pezzo di legno è chiamato
scitala. Il mittente avvolge a spirale un nastro di pergamena (o di cuoio),
lungo e stretto come una cinghia, intorno al suo bastone cilindrico e scrive
il messaggio in righe longitudinali. Quando il nastro è srotolato, la
scrittura potrà essere letta solo da una persona che ha un cilindro avente la
stessa circonferenza. Tale persona è il legittimo destinatario. La striscia di
pergamena o di cuoio è chiamata scitala al pari del pezzo di legno.
Capitolo 1 Introduzione e storia della crittografia
19
Nella figura 1 è rappresentata una scitala.
Figura 1 - Una scitala [BB96].
La scitala è un classico caso di cifrario a trasposizione: le lettere del
testo cifrato, infatti, sono le stesse del testo in chiaro, ma sono in una
diversa posizione (la regola è detta appunto trasposizione).
Un altro esempio di cifrario del passato di cui si ha testimonianza
scritta, è quello di Enea il Tattico (400 a.C.), generale della lega arcadica,
che nel XXI capitolo di un trattato sulla difesa delle fortezze, dedicato
all’arte di inviare messaggi segreti descrive, tra i tanti metodi, un disco
passato alla storia come disco di Enea il Tattico, che aveva sul bordo
ventiquattro fori ognuno corrispondente ad una lettera dell’alfabeto. Per
cifrare un testo in chiaro un filo, partendo da un foro centrale, si
avvolgeva passando per i fori corrispondenti alle successive lettere del
testo; all’arrivo, per decifrare il messaggio si riportavano le lettere sul
disco e si svolgeva il filo: il testo in chiaro si otteneva leggendo tali lettere
nel verso contrario, cioè a cominciare dall’ultima.
Di poco posteriori ai cifrari appena detti sono quelli ebraici:
l’ALBAM, ad esempio, è un cifrario a sostituzione in cui la a (di un testo
in chiaro) viene cifrata in L, la b in M, ecc.; l’ATBASH, invece, è un
Capitolo 1 Introduzione e storia della crittografia
20
cifrario basato su un alfabeto rovesciato, in cui, in pratica, la prima lettera
dell’alfabeto ebraico (aleph) viene sostituita con l’ultima (taw), la seconda
(beth) con la penultima (sin o shin), e così via. Usando per comodità
l’alfabeto inglese come base per l’ATBASH si ottiene la seguente tabella
di cifratura:
Testo in chiaro: a b c d e f g h i j k l m n o p q r s t u v w x y z
Testo cifrato: Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
E’ opportuno precisare che un cifrario a sostituzione è quello in cui
ogni lettera dell’alfabeto in chiaro è sostituita con una lettera (o simbolo)
dell’alfabeto segreto (la regola usata è detta sostituzione).
I cifrari a sostituzione si distinguono in:
• monoalfabetici;
• polialfabetici.
I cifrari monoalfabetici sono quelli che usano un unico alfabeto
segreto per cifrare un testo in chiaro; quindi: “ogni lettera dell’alfabeto in
chiaro è cifrata sempre con la stessa lettera dell’alfabeto segreto”. [BB96]
I cifrari polialfabetici, invece, sono quelli che usano più alfabeti
segreti per cifrare lo stesso testo; quindi: “una stessa lettera del testo in
chiaro non sarà cifrata sempre con una stessa lettera”.
All’epoca romana risale, invece, il cifrario di Cesare, detto così da
Giulio Cesare (100-44 a.C.) che usava tale cifrario nella corrispondenza
con i suoi familiari. Il cifrario è descritto da Svetonio nelle Vitae
Caesarorum, il quale scrisse: “…se vi era qualche questione riservata egli
usava scrivere in cifra, e questa cifra consisteva in una disposizione
apparentemente caotica delle lettere, sicchè era impossibile ricostruire la
parola originale. Chi voglia scoprirne il senso e decifrarla sappia che
Capitolo 1 Introduzione e storia della crittografia
21
bisogna sostituire ad ogni lettera la terza che segue nell’alfabeto; vale a
dire dove è scritto A bisogna leggere D e così di seguito”.[Rid98]
In sostanza, il cifrario di Cesare si ottiene scrivendo l’alfabeto cifrato
sotto l’alfabeto in chiaro (l’alfabeto cifrato si ottiene spostando le lettere
di ventitré posizioni a destra, o tre a sinistra):
Testo in chiaro: a b c d e f g h i j k l m n o p q r s t u v w x y z
Testo cifrato: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
(Il cifrario di Cesare, utilizzato anche da Augusto che scriveva i suoi
messaggi sostituendo ogni lettera con quella successiva, è un cifrario a
sostituzione monoalfabetica).
Per trovare un’altro metodo di cifratura degno di nota bisogna andare
all’inizio del XIV secolo (Alto Medioevo): è in questo periodo, infatti, che
cominciano ad essere usati i primi nomenclatori, che sono delle liste di
nomi propri e di parole d’uso frequente che vengono codificate con lettere
o parole prestabilite, scelte in modo che il testo cifrato abbia ancora senso
compiuto.
Un sistema rappresentativo della crittografia dell’Alto Medioevo,
testimoniato da una raccolta di lettere scritte tra il 1363 ed il 1365, è
quello usato dall’Arcivescovo di Napoli, Pietro di Grazia, in cui le vocali
del testo in chiaro sono sostituite da segni, mentre le vocali scritte nel
testo cifrato funzionano da nulle (le nulle sono dei simboli inseriti nei testi
cifrati che non corrispondono a nessuna lettera dell’alfabeto in chiaro, ma
hanno l’unico scopo di rendere più sicuri i cifrari); negli ultimi scritti il
procedimento è applicato anche alle consonanti più frequenti (l, r, s, m, n),
che a volte erano cifrate anche con altre lettere.
Capitolo 1 Introduzione e storia della crittografia
22
Un personaggio di spicco di questo periodo è Gabriele Lavinde,
crittografo di Parma (lavorò anche per l’Antipapa Clemente VII, che
favorì l’unificazione dei cifrari diplomatici dell’Italia settentrionale).
In un suo manuale, conservato in Vaticano, sono descritti i cifrari da
lui usati intorno al 1379: alcuni sistemi di cifratura fanno uso delle nulle,
altri utilizzano un nomenclatore, ma in generale ogni lettera dell’alfabeto
in chiaro è codificata con un segno di fantasia; le vocali sono trattate come
le altre lettere.
Quest’ultima considerazione c’introduce al discorso sulla frequenza
delle lettere, e sulla crittanalisi statistica: infatti, in ogni lingua naturale
lettere diverse non compaiono un uguale numero di volte in un testo,
questo significa che ogni lettera ha una sua frequenza caratteristica
(ricordiamo che una lingua naturale, come l’italiano, il francese, l’inglese,
ecc., ha poche lettere). Per esempio, se si prende un testo in italiano di
senso compiuto formato da cento lettere, la lettera e sarà presente circa
tredici volte, la i circa dodici volte, e così via.
Riportiamo di seguito la tabella 1 con le frequenze relative delle
lettere nella lingua italiana.
Capitolo 1 Introduzione e storia della crittografia
23
Lettera Frequenza relativa (%) Lettera Frequenza relativa (%)
e 12,62 m 2,58
i 11,62 g 2,01
a 10,41 v 1,51
o 8,71 h 1,10
r 6,70 b 0,95
l 6,61 z 0,93
n 6,49 f 0,75
t 6,06 q 0,57
s 6,04 j …
c 4,28 k …
d 3,82 w …
p 3,20 x …
u 3,04 y …
Tabella 1 - Frequenze relative delle lettere nella lingua italiana. [BB96]
Conoscere questa frequenza, insieme alla frequenza dei digrammi
(che sono coppie di lettere consecutive come er, es, on, re, el, ecc.), e dei
trigrammi (tre lettere consecutive come che, ere, zio, ecc.) facilita il
“lavoro” del crittanalista.
Pur introducendo nei cifrari, come abbiamo visto in precedenza, zeppe
o nulle e nomenclatori, le vocali continuano ad avere una frequenza
superiore a quella delle altre lettere, allora dagli inizi del XV secolo
vengono usati cifrari contenenti per ogni vocale dell’alfabeto in chiaro
diversi simboli, che sono usati come omofoni.
Gli omofoni sono le lettere sostitutive della stessa lettera in chiaro (nel
nostro caso una vocale) che vengono impiegati perché tutti i simboli
appaiano in un testo cifrato con la stessa frequenza.