Crittografia
Appunti a cura del prof.
Ing. Mario Catalano
La crittografia
La crittografia è la scienza che studia la
scrittura e la lettura di messaggi in codice.
Solitamente, i meccanismi crittografici
utilizzano sia un algoritmo sia un valore
segreto, detto chiave. In genere, la
struttura degli algoritmi è pubblica; le
chiavi, invece, vengono mantenute
segrete per ottenere la sicurezza richiesta.
Attacchi alla sicurezza

Tipi di attacco:


Analisi Crittografica: Tramite
l’utilizzo di tecniche statistiche sulla
frequenze dei caratteri o
sottostringhe del testo cifrato si
ottengono informazioni utili sul testo
in chiaro.
Attacco a forza bruta: tenta ogni
possibile chiave su un frammento di
testo cifrato fino a che non si riesce
ad ottenere una traduzione corretta.
In media, per avere successo,
bisogna provare meta tra tutte le
possibili chiavi.
Attacchi alla sicurezza
La crittografia
In generale, si tendono a utilizzare chiavi più
lunghe possibile, per ridurre le probabilità di
forzatura. È comunque necessario tener
presente che più lunga è la chiave, maggiori
sono i costi in termini di potenza di calcolo dei
processi di crittografia e decifrazione.
Le funzioni crittografiche per dati sono due:
• chiavi simmetriche;
• chiavi asimmetriche.
Crittografia a chiave simmetrica
La crittografia simmetrica, altrimenti detta
crittografia a chiave segreta, utilizza una
chiave comune e il medesimo algoritmo
crittografico per la codifica e la
decodifica dei messaggi. In sostanza,
due utenti che desiderano comunicare
devono accordarsi su di un algoritmo e
su di una chiave comuni.
Crittografia a chiave simmetrica
A
B
Chiave
Segreta
Codifica
Msg
Chiave
Segreta
Internet
Decodifica
Msg
Crittografia a chiave simmetrica
I punti critici dei sistemi a chiave segreta
sono i seguenti:
• necessità di cambiare frequentemente le
chiavi segrete per evitare il rischio che
vengano scoperte;
• sicurezza nella generazione delle chiavi
segrete;
• sicurezza nella distribuzione delle chiavi
segrete.
I metodi storici di Cesare
Per comunicare con i sui generali, Giulio Cesare sostituiva ad ogni lettera
del messaggio un'altra lettera un certo numero di posizioni più avanti
nell'alfabeto. Per l'esattezza utilizzava la chiave "3", tutte le lettere venivano
scalate di tre cifre: la A diventava D, la B diventava E, la C diventava F e
così via. Un metodo semplicissimo ma per quell'epoca più che
rivoluzionario.
Il codice di Vigènere
Il codice di Vigenère si
basa un'operazione che
viene chiamata
sostituzione
polialfabetica, molto più
sicura di una semplice
sostituzione
monoalfabetica.
Il Vigenère propose l'uso della tavola quadrata, composta da
alfabeti ordinati spostati di una lettera. Il metodo Vigenère ebbe
una fortuna immediata, era così efficace che per molti anni fu
chiamato "il cifrario indecifrabile" e fu molto usato nell'ambito
militare anche dopo che gli analisti ne scoprirono il metodo di
decrittazione.

Dato il messaggio in chiaro, lo si allinea con la chiave.
PROVADICIFRATURA
HTMLHTMLHTMLHTML

La chiave essendo in
genere molto più corta
del messaggio, deve
essere ripetuta molte
volte.
Ogni lettera del messaggio viene sostituita con la lettera
della tabella che è all’incrocio tra la riga che inizia con la
lettera della chiave (allineata con quella del messaggio)
e la colonna che inizia con la lettera del messaggio
(lettera individuata sulla prima riga)
P
W
R
K
Cifrario a trasposizione per colonne
Nel cifrario a trasposizione per colonne è una parola
o una frase che non contiene alcuna lettera ripetuta.
Lo scopo della chiave è numerare le colonne di una
tabella che contiene il testo in chiaro scritto
orizzontalmente per righe della lunghezza della
chiave. Il testo cifrato deve invece essere letto per
colonne, seguendo l'ordine alfabetico proposto dalla
chiave.
Crittografia moderna
(a chiave simmetrica)
Gli algoritmi di uso comune più difficili da
decifrare utilizzano uno sei seguenti
sistemi:
• DES (Data Encryption Standard);
• 3DES (Triple DES);
• RC-4 (Rivest Cipher 4);
• IDEA (International Data Encryption
Algorithm).
DES
E’ uno schema crittografico operante su blocchi di 64 bit e
utilizza una serie di fasi per trasformare 64 bit di input in
64 bit di output. Nella sua forma standard, l’algoritmo
utilizza chiavi a 64 bit, 56 dei quali scelti a caso. Gli altri
8 bit sono bit di parità.
3DES
E’ una versione alternativa di DES. Tale sistema, che può
utilizzare una, due o tre chiavi diverse, prende un blocco
di 64 bit e vi applica operazioni di codifica, decodifica e
ricodifica.
Criptaggi multipli

Notate che mentre un file si può
comprimere una sola volta, si può criptare
più di una volta (proprio come un testo può
essere tradotto da una lingua all'altra).
Per motivi matematici, più la chiave è
lunga, maggiore è la sicurezza del
messaggio (problema delle restrizioni
internazionali)
Il problema della trasmissione
della chiave

Problema : se non c'e` un modo sicuro di
trasmettere la chiave, chi si impossessa
della chiave può leggere il messaggio. E
se c'era un modo sicuro per trasmettere la
chiave, perché non si e` usato per
trasmettere il messaggio stesso?
Cifratura a chiave pubblica




Soluzione: Sistema cifrato a chiave doppia
Una chiave (pubblica, nota a tutti) chiude,
un'altra chiave (privata e segreta) apre.
La mia chiave può aprire solo ciò che e` stato
chiuso con la mia altra chiave.
E` impossibile dedurre una chiave conoscendo
l'altra.
Il protocollo del doppio lucchetto







A mette il suo messaggio per B in una
scatola, che chiude con un lucchetto
e invia a B.
B mette il suo lucchetto alla scatola e
la rispedisce ad A.
A toglie il suo lucchetto e rispedisce la
scatola a B.
B toglie il suo lucchetto e legge il
messaggio.
La scatola non viaggia mai senza
lucchetto
Ne A ne B ha dovuto inviare all’altro la
chiave del proprio lucchetto.
E’ possibile comunicare con sicurezza
senza dover effettuare un preventivo
scambio delle chiavi ! ! !
Crittografia asimmetrica
La crittografia asimmetrica viene spesso
definita come crittografia a chiave
pubblica e può utilizzare lo stesso
algoritmo, oppure algoritmi diversi ma
complementari, per codificare e
decodificare i dati. Sono necessari due
valori diversi, ma correlati, per la chiave:
una chiave pubblica e una privata.
Crittografia asimmetrica
Per comunicare utilizzando la crittografia a
chiave pubblica, A e B necessitano di
una coppia chiave pubblica – chiave
privata. Ognuno dei due deve creare la
propria coppia di chiavi. Nelle
comunicazioni fra loro, A e B utilizzano
chiavi diverse per codificare e
decodificare i dati.
Crittografia asimmetrica
Pub
Pub
Pri
Pri
1
1
Pub
A
B
2
Pub
1
Crea una coppia chiave privata - chiave pubblica
2
Scambia solo chiavi pubbliche
Crittografia asimmetrica
Perché avvenga uno scambio di dati
segreto, debbono verificarsi le
seguenti condizioni:
2. A e B creano le proprie coppie di chiavi
pubbliche e private;
3. A e B si scambiano le chiavi pubbliche;
4. A scrive a B e codifica il messaggio
utilizzando la chiave pubblica di B
prima di trasmetterlo via Internet;
Crittografia asimmetrica
1.
2.
3.
B utilizza la propria chiave privata per
decifrare il messaggio;
B risponde, codifica il messaggio
utilizzando la chiave pubblica di A e lo
trasmette via Internet;
A utilizza la propria chiave privata per
decifrare il messaggio.
Come si usa?

Per mandare un messaggio sicuro :
 Il
mittente si procura la chiave pubblica del
destinatario.
 Il mittente usa la chiave pubblica del
destinatario per `chiudere' (criptare) il proprio
messaggio e lo spedisce.
 Il destinatario riceve il messaggio ed usa la
propria chiave privata per aprirlo (decriptarlo).
Crittografia asimmetrica
La segretezza è garantita nel momento
che A trasmette il messaggio originale,
in quanto solo B può decodificarlo con
la propria chiave privata. Allo stesso
tempo, viene assicurata anche
l’integrità dei dati, perché il messaggio
non può essere modificato se non con
la chiave privata di B. Lo stesso vale
per la risposta, in quanto solo A ha
accesso alla propria chiave privata.
Crittografia asimmetrica
Il punto debole di questo meccanismo sta
nel fatto che chiunque può far finta di
essere A e trasmettere a B un
messaggio in codice, utilizzando la
chiave pubblica di B, la quale, in
effetti, è pubblicamente disponibile.
Crittografia asimmetrica
Per i loro limiti di prestazioni, gli algoritmi
crittografici a chiave pubblica non
sono solitamente utilizzati per
garantire la segretezza, ma si rivelano
particolarmente utili per le applicazioni
che richiedono una forma di
autenticazione attraverso firme digitali
e gestione delle chiavi.
Crittografia combinata
I due sistemi si possono combinare
insieme, criptando un messaggio 2 volte.
Così si garantisce sia la vera origine del
messaggio che il suo contenuto.
 E` probabile che in un prossimo futuro la
propria chiave privata diventerà
l'equivalente legale della firma per
transazioni elettroniche.

Fine
www.itimedi.it