Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
A
→ ∥s):
6. con questo messaggio si chiude l’identificazione tra e con successo.
C A : H(R A C
A
2.7.3.2.3.2 Reflection Questo protocollo è soggetto anche ad attacchi di reflection, poiché risulta
fortemente simmetrico tra le parti e privo di un complesso concatenamento tra i messaggi. In un attacco
di questo tipo, inizia una sessione di autenticazione con spacciandosi per ma a un certo punto
C A B,
∥H(R ∥s)
risponderà con a cui non potrà rispondere perché non conosce il segreto; per risolvere
A R C
A B
questo problema allora apre una seconda sessione di autenticazione con inviando come numero random
C A,
∥s)
proprio in modo che risponda con che potrà ora usare per rispondere ad nella prima
R H(R C A
A A
sessione di autenticazione, completandola con successo; la seconda sessione verrà invece ignorata perché non
più utile.
Per risolvere questo problema occorre rimuovere la simmetria tra i messaggi con un protocollo come:
→
1. ;
B A : R
B
→ ∥H(R ∥R ∥B∥s);
2. A B : R
A A B
→ ∥R ∥A∥s).
3. B A : H(R
A B
2.7.3.3 Contromisure
Per contrastare gli attacchi si sono viste varie contromisure, in particolare:
• Per un attacco con replica, si possono usare autenticazioni attive a challenge-response che includono
l’identità del destinatario nei messaggi.
• Per attacchi di interleaving, si possono collegare fra loro tutti i messaggi con numeri casuali univoci
correlati fra loro.
• Per attacchi di reflection, si possono usare scambi di messaggi non simmetrici con l’identificatore del
destinatario incluso nel messaggio.
Le tecniche presentate tuttavia implicano degli svantaggi sulla base di quale meccanismo viene utilizzato:
• Numeri casuali: è richiesto l’uso di un PRNG crittograficamente sicuro e viene richiesto che ogni
numero venga usato una sola volta, inoltre il loro uso al posto dei timestamp richiede che lo scambio
protocollare si componga di più messaggi.
• Numeri di sequenza: occorre mantenere uno stato per tutta la comunicazione da entrambe le parti.
Queste tecniche non sono però adatte per reti con forti disturbi perché viene introdotto un overhead
al fine di ripristinare la connessione.
• Timestamp: sono richiesti protocolli molto onerosi per applicare un timestamp in maniera sicura. Ciò
comporta spesso che si ricada su protocolli non sicuri e non perfettamente sincronizzati. Si considera
quindi come verifica una finestra molto limitata in cui il timestamp, per essere considerato valido, deve
ricadere.
Come si è visto in precedenza, le prove d’identità fornite da un protocollo d’identificazione sono valide
solo per un istante di tempo. Se si vuole mantenere l’autenticità nel tempo occorre affiancare ai protocolli
visti altre tecniche, come l’autenticazione del messaggio.
18
Capitolo 3
Cenni di crittografia classica
La crittologia classica si è, in passato, sempre occupata di riservatezza, e nessuna tecnica veniva impiegata
per garantire integrità e autenticità dei messaggi scambiati; veniva però impiegata anche la steganografia,
ossia tecniche di comunicazione per garantire riservatezza senza che altri si accorgano della comunicazione
stessa, ancora usate al giorno d’oggi per fare digital watermarking.
Le tecniche di crittografia si basavano su codici, ossia dizionari con parole in codice (se questi venivano
rotti era però difficile creare parole altrettanto valide), e cifrari in cui si usavano tecniche di sostituzione e
trasposizione per modificare i caratteri di un messaggio.
3.1 Sostituzione monoalfabetica
La sostituzione monoalfabetica prevede di sostituire a ogni simbolo dell’alfabeto un altro simbolo dello
stesso alfabeto, dunque per simboli dell’alfabeto si possono avere sostituzioni, cioè una qualunque
n n!
permutazione dell’alfabeto.
Un tempo questa tecnica veniva considerata inviolabile, ma si è più recentemente dimostrato che essa ha
in realtà una vulnerabilità dovuta alla ridondanza del linguaggio. I caratteri hanno infatti una frequenza
precisa con cui appaiono, e se il testo è abbastanza lungo è possibile calcolare la percentuale dei caratteri,
confrontarla con la frequenza dei caratteri del linguaggio originale e ottenere la corrispondenza. Questa
tecnica non è quindi sicura in quanto il risultato della sua applicazione non è per nulla aleatorio e mantiene
invece la distribuzione dei caratteri del messaggio in chiaro. 5
6 8 3
7 1 2 4
3.2 Trasposizione di colonne R
L L E P O S
A
S I M E E L E Z
R
I O N I M I P
La trasposizione di colonne prevede di scrivere per righe il messaggio al- E S E N T O X X
l’interno di una tabella, quindi usare una chiave di tanti numeri quante Figura 3.1: Applicazione della tra-
sono le colonne e assegnare ogni numero della chiave a una colonna. Per sposizione di colonne: partendo
cifrarle, le colonne vengono riordinate secondo l’ordine naturale e si leg- dal testo in chiaro ALLE PROSSIME
ge ora il messaggio per colonne. Per decifrarlo occorre quindi riscrivere e seguendo
ELEZIONI MI PRESENTO
il messaggio per colonne e usare la chiave per riordinarle correttamente l’ordine dato dalla chiave in rosso, il
prima di rileggere il messaggio in chiaro per righe. testo cifrato risulta essere EEIN RLIO
Con questa tecnica la frequenza dei caratteri rimane inalterata, ma La funge
SZRX LMNE LIOS ASIE. X
OEPX
vengono cambiate quelle dei digrammi e trigrammi, che quindi vengono da carattere di riempimento.
analizzati per dedurre com’è costruita la tabella.
3.3 Mascheramento della ridondanza
Per rendere più sicuro il testo cifrato si vuole che ogni occorrenza di ogni simbolo del testo cifrato sia
equiprobabile, questo veniva fatto nella crittografia classica con diverse tecniche:
19
• eliminazione di spazi e punteggiatura;
• nulle (caratteri non significativi);
• omofoni (più simboli per i caratteri più frequenti);
• cifrari poligrafici per cifrare assieme sequenze consecutive di simboli;
• cifrari polialfabetici con trasformazioni variabili.
3.4 Cifrario Playfair ×
Si organizzano i caratteri alfabetici in una griglia che funge da chiave e la J viene sostituita dalla I. Si
5 5
procede quindi a cifrare ogni coppia di caratteri:
• se i due caratteri identificano due vertici opposti di un rettangolo sono sostituiti dagli altri due vertici;
• se identificano una riga sono sostituiti dal corrispondente carattere alla loro destra;
• se identificano una colonna sono sostituiti dal corrispondente carattere nella riga inferiore.
Questa tecnica però è ancora vulnerabile ad analisi statistiche sulle frequenze dei digrammi nel messaggio
cifrato. Q
L Z C P
U
G N O
A
R D M I F
V
K Y H S
W
X B T E
Figura 3.2: Applicazione del cifrario Playfair in cui i digrammi e diventano rispettivamente e
LO, US BE AC, FW TW.
3.5 Sostituzione polialfabetica – Cifrario di Vige-
nere
Questa tecnica risulta essere la prima cifratura ad essere stata considerata per molto tempo perfettamente
×
inviolabile. Essa sfrutta una griglia (Figura 3.3b) in cui in ogni riga è ripetuto l’alfabeto: nella
26 26
prima partendo da A, nella seconda da B con A alla fine, nella terza da C con AB alla fine e così via fino ad
avere l’alfabeto completo nella prima colonna e nella prima riga. Viene poi definita una chiave di caratteri
alfabetici, che viene ripetuta più volte per far corrispondere a ogni carattere del messaggio uno della chiave
(Figura 3.3a). Per ottenere il carattere cifrato dalla tabella, si usa il carattere della chiave che permette
di identificare la riga e quello del messaggio che identifica la colonna. Questa tecnica permette quindi di
avere una sostituzione diversa per lo stesso carattere in punti diversi (polialfabetica). L’uso della tabella
equivale a svolgere una somma modulo 26 tra ogni lettera del messaggio e la corrispondente lettera della
chiave, assegnando ad A il valore 0 e a Z il valore 25. testo Q
J R U V W
B C D E F G H I K L M N O P S T X Y Z
A Q
J R U V W
B C D E F G H I K L M N O P S T X Y Z A
Q
J R U V W
C D E F G H I K L M N O P S T X Y Z B
A
chiave Q
J R U V W
D E F G H I K L M N O P S T X Y Z B C
A
C I O C I O C I O C I
A A A .
.
.
D O M N I N O N P O S S O
A Q
J R U V W
Z B C D E F G H I K L M N O P S T X Y
A
U
F Z M O P S N C P O H Z
A
(a) (b)
Cifratura del testo: in nero il Ricerca del primo carattere cifrato nella griglia dell’alfabeto.
testo in chiaro, in rosso la chiave e
in verde il testo cifrato.
Figura 3.3: Applicazione della sostituzione polialfabetica al testo usando la chiave
DOMANI NON POSSO CIAO.
20
Questa tecnica usa una chiave di simboli del linguaggio naturale e di lunghezza finita, permettendo di avere
sequenze di più caratteri cifrati con gli stessi caratteri della chiave. La ricerca di queste sequenze di caratteri
porta a determinare la lunghezza della chiave sulla base delle distanze a cui si trovano, permettendo quindi
una restrizione forte delle chiavi possibili, sulla base della lunghezza, e su cui può quindi essere eseguito un
attacco di forza bruta.
Per aumentare la robustezza di questo cifrario occorre quindi usare non più una chiave di lunghezza
finita ripetuta, ma una che sia lunga quanto il testo i cui caratteri sono scelti in maniera completamente
casuale (anche se ciò risulta tuttavia molto oneroso se si intende comunicare la chiave su un canale privato
sicuro dedicato). Si può poi fare in modo che ogni simbolo del testo in chiaro non abbia effetto solo sul
corrispondente simbolo cifrato ma anche su tutti i simboli successivi.
3.6 One time pad
Questo cifrario è un’evoluzione della sostituzione polialfabetica, con chiave lunga quanto il testo. Essa veniva
applicata alle comunicazioni telegrafiche assumendo una codifica binaria a 5 bit.
La prima versione, o cifrario di Vernam, usa una chiave letta da una nastro che avanza carattere per
carattere durante la cifratura, ma questa chiave non è assolutamente casuale. Il miglioramento proposto
da Mouborgne ha portato alla nascita della tecnica denominata one time pad, in cui ogni chiave viene
usata una sola volta. Sia la sorgente che la destinazione hanno un generatore di flusso di chiave che genera
gli stessi caratteri; per cifrare la sorgente somma in modulo 2 il messaggio e la chiave, cioè ne fa lo XOR,
mentre per decifrare viene ripetuta la stessa operazione sommando la chiave al t