Telemat Lab's home page


Copyright © 1986 Università di Firenze.All rights reserved.

Free license available.

MIDDLE

di Cecconi Alessia e Gallileo Giovanni

revisori: Franco Pirri e Maurizio Lunghi


algoritmi: indice

home pageIndicePrec.Succ.

ALGORITMI UTILIZZATI

Generatore di numeri casuali
Algoritmo simmetrico IDEA
Algoritmo asimmetrico RSA
Algoritmo per la compressione dati ZIP
Algoritmo per la selezione del messaggio MD5
Algoritmo per la conversione in formato RADIX-64
Come opera PGP: esempio di applicazione degli algoritmi

Indice PGP


algoritmi

GENERATORE DI NUMERI CASUALI

PGP usa un generatore di numeri pseudocasuali crittograficamente forte per creare delle chiavi temporanee da utilizzare per la crittografia convenzionale.
PGP crea un file di "semi" nel momento in cui il programma è utilizzato per la prima volta (sfruttando numeri effettivamente casuali derivanti dal tempo che intercorre tra le battute sulla tastiera); da allora in poi, tutte le volte che PGP è usato il generatore rinnova il file mescolando ad esso nuovo materiale derivante in parte dall'ora del giorno e in parte da altre fonti effettivamente casuali.
Tale generatore utilizza l'algoritmo di crittografia convenzionale come motore per la creazione di numeri casuali: dunque PGP utilizza lo stesso algoritmo (
IDEA) sia per proteggere i messaggi, sia per generare casualmente dei numeri.
Il file di semi è inoltre ripulito crittograficamente prima e dopo ogni utilizzo; in ogni caso, vista la sua importanza, sarebbe opportuno proteggere lo stesso da una eventuale apertura per ridurre ulteriormente il rischio che un potenziale intruso riesca a ricavare la futura chiave temporanea.
Si osservi inoltre che PGP usa numeri realmente casuali ricavati da sorgenti fisiche per generare la coppia di chiavi pubblica/segreta da usarsi per lungo tempo (tale creazione deve ovviamente esser fatta al primo avvio di PGP).

Indice PGP


algoritmi

ALGORITMO SIMMETRICO IDEA

PGP fa uso dell'algoritmo a chiave segreta IDEA per cifrare il messaggio da inviare.
L'utilizzo di tale algoritmo anzichè del DES è subordinato al fatto che la chiave del DES è di soli 56 bits, quindi abbastanza corta da soccombere ad un attacco condotto con la forza bruta (vedi la crittoanalisi).
Non è neanche conveniente usare il TDES (Triplo DES) il quale, nonostante usi 2 chiavi DES per cifrare 3 volte raggiungendo una lunghezza effettiva della chiave di 112 bits, è comunque 3 volte più lento del DES e quindi meno efficiente.
L'algoritmo IDEA è invece molto più veloce del DES tradizionale, ed è usato in PGP nel modo CFB a 64 bits; inoltre tutti gli attacchi condotti finora per tentare di romperlo sono risultati vani, rivelando anche una sua maggiore compattezza e resistenza rispetto al DES.
Facciamo ancora una considerazione. Si è già detto in precedenza che usare un algoritmo a chiave simmetrica per cifrare il testo anzichè uno a chiave pubblica consenta un notevole risparmio in termini di tempi di elaborazione; ebbene, è stato affermato che il carico di lavoro richiesto per esaurire tutte le chiavi possibili a 128 bits nel sistema di cifratura IDEA è grosso modo uguale a quello richiesto per violare una chiave RSA a 3100 bits, ovvero abbastanza più grande della chiave a 1024 che la maggior parte delle persone utilizza per le proprie applicazioni di elevata sicurezza.
Da ciò si evince che il punto debole di PGP (se esiste) è da ricercare più in RSA che non in IDEA.

Indice PGP


algoritmi

ALGORITMO ASIMMETRICO RSA

PGP utilizza l'algoritmo a chiave pubblica RSA per cifrare la chiave temporanea e per firmare i messaggi.
La chiave temporanea viene infatti crittata utilizzando la chiave pubblica del destinatario, il quale, dopo aver ricevuto l'intero messaggio, provvederà ad estrarla con la propria chiave segreta e ad utilizzarla per decrittare il testo.
La firma dei messaggi viene invece eseguita dal mittente utilizzando la propria chiave segreta; in ricezione, sfruttando l'id-di chiave del relativo certificato di firma, PGP cercherà la chiave pubblica del mittente nel suo portachiavi pubblico e la utilizzerà per verificare l'autenticità del messaggio.
Si noti che tutte queste operazioni sono trasparenti all'utente che non deve fare altro che digitare il comando opportuno.

Indice PGP


algoritmi

ALGORITMO DI COMPRESSIONE DATI "ZIP"

PGP normalmente comprime il testo chiaro prima di cifrarlo. Sarebbe troppo tardi cercare di comprimerlo dopo la cifratura in quanto il testo cifrato è incomprimibile.
La compressione dei dati fa risparmiare tempo nella trasmissione via modem (anche se del tempo aggiuntivo è comunque richiesto dall'operazione stessa di compressione) ma soprattutto aumenta la sicurezza della cifratura. Molte tecniche di
crittoanalisi infatti sfruttano le ridondanze presenti nel testo in chiaro per violare il cifrario: tali ridondanze sono ridotte dalla compressione, migliorando la resistenza a questo tipo di attacchi. È possibile comprimere soltanto quei files che non risultano esser troppo corti.
PGP comprime secondo la routines freeware ZIP, che usa un algoritmo di compressione funzionalmente equivalente a quello usato da PKZIP 2.0 di PKware. Tale scelta dipende soprattutto dalla disponibilità del codice sorgente in "C" liberamente portatile, dalla velocità di esecuzione e dall'ottimo rapporto di compressione.
Se si vuole adoperare un algoritmo di compressione diverso si può usare, ad esempio, PKZIP per comprimere il testo chiaro prima di cifrarlo, avendo così la possibilità di immagazzinare più di un file nello stesso file compresso.
Quando PGP si accorgerà di avere a che fare con un file già compresso, non tenterà di ricomprimerlo; quando poi il file giungerà alla sua destinazione finale, PGP segnalerà automaticamente al destinatario che è stata effettuata una cifratura diversa da quella convenzionale e che bisognerà quindi usare il relativo programma di decompressione (PKUNZIP, nel nostro caso).

Indice PGP

Bibliografia e sorgenti d'informazione


Telemat Lab's home page
home pageIndicePrec.Succ.


Explore the TELEMAT Site !!!

Ultimo aggiornamento: 24/1/97