La crittografia

Materie:Appunti
Categoria:Ricerche

Voto:

1.5 (2)
Download:156
Data:19.06.2000
Numero di pagine:8
Formato di file:.doc (Microsoft Word)
Download   Anteprima
crittografia_1.zip (Dimensione: 215.74 Kb)
readme.txt     59 Bytes
trucheck.it_la-crittografia.doc     512 Kb


Testo

INDICE
Capitolo 1: PREFAZIONE…………………………………………………….….
Capitolo 2: STORIA DELLA CRITTOGRAFIA…………………….………….
Capitolo 3: METODI CRITTOGRAFICI…………………………………….….
3.1 Metodo della sostituzione
3.1.1 Sostituzione a traslazione fissa
3.1.2 Sostituzione a traslazione variabile
3.1.3 Sostituzione alfabetica
3.2 Metodo della trasposizione
3.3 Metodo a chiave privata (crittografia simmetrica)
3.3.1 Limiti della crittografia simmetrica
3.4 Metodo a due chiavi pubblica/privata (crittografia asimmetrica)
3.4.1 Limiti della crittografia asimmetrica
3.5 La crittografia ibrida
3.5.1 PGP
3.6 Generazione e gestione delle chiavi crittografiche
Capitolo 4: A VOLTE LA CRITTOGRAFIA E’ INUTILE…………………….
4.1 Crittoanalisi
4.2 Keyboard sniffers
4.3 TEMPEST
4.4 Lettura della memoria
4.5 Lettura della cache del disco
4.6 Packet sniffers
4.7 Cavalli di Troia
4.8 Cattive password
Capitolo 5: LA FIRMA DIGITALE………………………………………………
5.1 Fiducia della firma: web of trust
Capitolo 6: LA CRITTOGRAFIA IN INTERNET……………………………...
6.1 La sicurezza a livello IP nelle VPN
6.2 SSL: ( Secure Socket Layer )
Capitolo 7: BRUTE FORCING E TEMPI DI DECRITTAZIONE…………….
Bibliografia …………………………………………………………………………
pag. 1

“ 2

“ 5
“ 5
“ 7
“ 8
“ 10
“ 12
“ 13
“ 14
“ 17

“ 19

“ 21
“ 27
1 PREFAZIONE
Innanzi tutto che cosa è la crittografia? Per crittografia si intende la scienza che si occupa di individuare metodi o protocolli crittografici che rendano il contenuto di un messaggio o di un documento comprensibile solo a determinate persone. E' un po’ come quando da bambini ci si divertiva ad inventare degli alfabeti in codice per comunicare in segreto con i nostri amici... beh quelli possono essere considerati a tutti gli effetti dei metodi di crittazione molto primitivi... forse anche poco sicuri, ma pur sempre metodi per crittare un nostro messaggio...
Un tempo erano solo spie e militari che si preoccupavano di tenere segreti i propri messaggi. Oggi, la rivoluzione telematica ha aperto un nuovo mercato dove la riservatezza è essenziale per i computer che immagazzinano e si scambiano una quantità sempre più elevata di dati personali.
Chi si trova ogni giorno immerso nel commercio elettronico, ma anche chi semplicemente ha a cuore la riservatezza delle proprie comunicazioni personali, non può negare l'importanza delle tecniche per ottenere la confidenzialità dei dati ora che buste sigillate e schedari chiusi a chiave sono sostituiti da semplici bit.
Nonostante ciò, alcuni governi, come quello statunitense, si oppongono a tecniche che sarebbero impossibili da violare. Il sistema più noto per ottenere confidenzialità in un messaggio è quello di crittografarlo. Per evitare l'impenetrabilità dei messaggi crittografati gli Stati Uniti vorrebbero introdurre una possibilità di controllo "entrando dalla porta di servizio" che alcuni studi hanno rivelato però controproducente dato che questa “entrata riservata” potrebbe essere scoperta da malintenzionati. Negli ultimi anni è sorta una controversia sull'uso di una crittografia talmente forte da essere impossibile da decifrare da chi non possiede la chiave corretta. Mentre molte aziende e i loro clienti la vedono come un mezzo per mantenere la riservatezza e minimizzare le frodi, alcuni governi, come quello di Washington, la considerano come un veicolo potenziale con cui i terroristi possono sfuggire all'autorità pubblica.
In questo testo ho cercato di esporre con la maggiore completezza possibile le varie tecniche e i numerosi algoritmi di crittografia, dal più semplice al più complesso, e dei sistemi per forzare i testi crittografati da questi algoritmi.
2 STORIA DELLA CRITTOGRAFIA
La crittografia come modifica volontaria del testo esisteva già al tempo degli egiziani nel 1900 a.C. (tomba del faraone Knumotete II). La parola crittografia ha origine greca e significa "nascosto". Un'altra parola correlata è steganografia che significa scrittura nascosta. Un esempio legato all'antichità è di scrivere messaggi segreti non sull'argilla che ricopriva le tavolette, ma sulle stesse tavolette che venivano poi ricoperte d'argilla e sembravano non usate.

Gli Spartani per crittare un messaggio segreto di tipo militare usavano 2500 anni fa una striscia di papiro avvolta a spirale attorno ad un bastone (che costituirà la chiave di decodifica). Una volta scritto il messaggio in verticale sul papiro questo veniva consegnato al destinatario che, con un bastone dello stesso diametro poteva leggere il messaggio in chiaro. Questo metodo è di trasposizione perché il messaggio è in chiaro ma l'ordine delle lettere è da scoprire.
Tra il 360 e il 390 venne compilato da Enea il tattico, generale della lega arcadica, il primo trattato di cifre il cui XXI capitolo tratta appunto di messaggi segreti. In questo viene descritto un disco sulla zona esterna del quale erano contenuti 24 fori, ciascuno corrispondente ad una lettera dell'alfabeto. Un filo, partendo da un foro centrale, si avvolgeva passando per i fori delle successive lettere del testo: all'arrivo, riportate le lettere sul disco, si svolgeva il filo segnando le lettere da esso indicate: il testo si doveva poi leggere a rovescio. Le vocali spesso erano sostituite da gruppi di puntini

Un altro metodo, questa volta di sostituzione, è stato inventato da Giulio Cesare: la chiave è un numero n stabilito e si sostituisce ogni lettera del messaggio con l'ennesima seguente.
Esempio: pippo con chiave 3 diventa snssr.
Questo metodo è facilmente attaccabile perchè basta confrontare la frequenza delle lettere nella lingua italiana con la frequenza dei simboli usati nel messaggio cifrato. Bisogna inoltre considerare che le chiavi possibili sono solo 26, quindi al limite con un brute force si potrebbe scovare la chiave. Data la bassa complessità [tanto bassa non è, numero di combinazioni possibili: 26!=4*(10^26)] del metodo usato da Cesare è chiaro che non fosse infallibile, ma dati i risultati militari è stato efficace! Il metodo di Cesare ha ispirato un sistema usato ancora oggi, il ROT-13 dove la chiave è appunto 13, quindi A->N, B->O, etc.

Il metodo che usavano gli ebrei è detto ATBASH. La sostituzione avviene utilizzando questa tabella dove le lettere della seconda riga sono scritte in ordine decrescente:
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
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
Messaggio: Il Libro di Geremia
Testo Cifrato: Ro Oryil wr Tvivnrz
Lo storico greco Polibio inventò una tecnica di codifica legando le lettere a una coppia di numeri che ne indicava la posizione in una tabella. La coppia di numeri era comunicata nella notte attraverso delle torce. Ecco un esempio di tabella:
1
2
3
4
5
1
a
b
c
d
e
2
f
g
h
i j
k
3
l
m
n
o
p
4
q
r
s
t
u
5
v
w
x
y
z
pippo diventa (3,5) (2,4) (3,5) (3,5) (3,4)
Se la disposizione delle lettere nella tabella non seguono l'ordine alfabetico si capisce la difficoltà di trovare la chiave che in questo caso è la tabella.

L'imperatore romano Augusto usava invece un altro interessante metodo di sostituzione usando come chiave un'altra parola o frase. La chiave e il testo avevano un corrispettivo numerico, il testo cifrato risultava una sfilza di numeri ottenuti come somma fra testo e chiave.
Esempio (testo: spippolatori, chiave: decifralo):
a
b
c
d
e
f
g
h
I
l
m
n
o
p
q
r
s
t
u
v
z
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
testo in chiaro
s
p
i
p
p
o
l
a
t
o
r
i
chiave
d
e
c
i
f
r
a
l
o
d
e
c
valore 13testo
17
14
9
14
14
13
10
1
18
13
16
9
valore chiave
4
5
3
9
6
16
1
10
13
4
5
3
valore cifrato
21
19
12
23
20
29
11
11
31
17
21
12
testo cifrato
z
u
n
b
v
h
m
m
m
s
z
n
Se la somma (valore cifrato) eccede 21 si ricomincia dalla a; ciò equivale a fare una somma modulo 21. La decifrazione è una semplice sottrazione. La criptoanalisi di questo metodo non beneficia della frequenza delle lettere della lingua usata. Questo metodo può essere attaccato con un brute force utilizzando un dizionario di parole. Ovviamente ci si può difendere non usando come chiave parole di senso compiuto, ma un insieme di lettere generate in maniera casuale.

E, se ogni volta si cambia la chiave generandola casualmente, stiamo usando un metodo chiamato One-Time Pad, che è difficile da superare senza conoscere la chiave e generando in maniera davvero" casuale la chiave (e non è facile perchè si può ottenere solo osservando fenomeni casuali naturali). Occorre notare che non bisogna usare questo metodo per due diversi messaggi con la stessa chiave perchè la differenza tra testo cifrato e testo in chiaro è uguale e, in unione a un brute force, aiuta di parecchio la criptoanalisi di questo metodo. Infatti, trascurando il discorso della somma modulo 21 per semplificare il discorso risulta che:
1) Cifrato1 = Testo1 + Chiave
2) Cifrato2 = Testo2 + Chiave
Sottraendo si ha:
Cifrato1 - Cifrato2 = Testo1 + Chiave - (Testo2 + Chiave) = Testo1 - Testo2
Altri metodi usatissimi per centinaia di anni prevedevano la sostituzione delle singole parole con altre che costituivano la chiave. Spesso si usavano più metodi insieme. Siamo nel quindicesimo secolo quando nasce la crittografia moderna con Leon Battista Alberti, artista rinascimentale poliedrico, amico di un funzionario pontificio che gli chiese di inventare un metodo di crittografia. L'idea partì dall'osservazione che un criptoanalista può essere aiutato dalle caratteristiche di una lingua come le frequenza delle lettere, le sillabe impossibili o più frequenti, le sequenze di lettere caratteristiche come le desinenze. Per rendere più difficile il lavoro del criptoanalista altro non c'era da fare se non cambiare durante il procedimento l'alfabeto da cui pescare la lettera cifrata: questo è il sistema polialfabetico.

Altro esempio di cifratura con il sistema del polialfabeto è quello inventato da un tedesco contemporaneo dell'Alberti: Johannes Trithemius. Il sistema fa uso di una tabella che si chiama tabula recta, formata da 26 righe (tante quante le lettere dell'alfabeto inglese) riportanti ognuna un alfabeto scalato di una posizione rispetto a quello precedente. La tabella si usa così: la prima lettera da cifrare rimane la stessa, la seconda si cifra con il secondo alfabeto, la terza lettera userà il terzo alfabeto e così via fino a ricominciare dal primo alfabeto dopo la ventiseiesima lettera. Per rendere difficile il lavoro dei criptoanalisti si può usare un alfabeto disordinato o, meglio ancora (è più facile da ricordare e comunicare al destinatario del messaggio) una frase chiave.

L'uso della crittografia continua intensificandosi sempre di più e migliorandosi con il tempo fino ad avere importanza tale da cambiare il corso della storia durante le due guerre mondiali quando appaiono le prime macchine elettriche per cifrare i messaggi ma, soprattutto, per la criptoanalisi. I tedeschi usarono per tutta la seconda guerra mondiale una macchia chiamata Enigma che avrebbe dovuto cifrare i messaggi in maniera sicura. Così non successe, perchè inglesi e polacchi unendo le loro forze furono in grado di decifrare quasi tutti i messaggi intercettati. L'Enigma era una macchina elettromeccanica con contatti, lampadine, rotori e una tastiera. Ogni lettera veniva cifrata con un alfabeto diverso dando luogo ad un numero sproposito di combinazioni che rendevano la decodifica teoricamente impossibile per l'epoca. Ma ciò non fermò gli inglesi che trassero grande beneficio dai messaggi decodificati.

Per anni la regola generale è stata di creare algoritmi semplici e di impiegare chiave molto lunghe per rendere difficile la vita al criptoanalista. Oggi l'orientamento è opposto data la potenza di calcolo di cui si può disporre per fare un bruteforce, quindi si creano algoritmi complicatissimi da decifrare in modo che anche se il nostro avversario avesse parecchio materiale su cui condurre un'analisi, gli sarebbe pressoché inutile.
Oggi la crittografia serve per il commercio elettronico, l'autenticazione, la riservatezza delle informazioni e in centinaia di altri campi e spesso non ce ne rendiamo neanche conto.
3 METODI CRITTOGRAFICI
Le due principali operazioni che si applicano ai messaggi per codificarli sono: la sostituzione e la trasposizione.
3.1 Metodo della sostituzione
Per sostituzione si intende quell’operazione che permette di cambiare ciascuna lettera di un testo con un’altra, seguendo una regola nota come chiave di cifratura. I metodi più noti sono:
3.1.1 sostituzione a traslazione fissa: detta L la lunghezza dell’alfabeto in uso, normalmente L=26, e K la quota di traslazione, con K

Esempio