Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... ·...

27
Cifratura Simmetrica 27-Nov-01 Cifratura simmetrica 1 ALGORITMO DI CIFRATURA E( ) c = E(k, m) — Il messaggio cifrato c è ottenuto cifrando il messaggio in chiaro m con la chiave k ALGORITMO DI DECIFRATURA D() m = D(k, c) = D(k, E(k, m)) — Il messaggio in chiaro m è ottenuto decifrando il messaggio cifrato c con la chiave k PROPRIETÀ di E() e D() I. Dato c è molto difficile ricavare m se non si conosce k e viceversa II. Dati m e c è molto difficile ricavare k (a meno che k non sia utilizzata una sola volta) Algoritmi e Proprietà

Transcript of Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... ·...

Page 1: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

Cifratura Simmetrica

27-Nov-01 Cifratura simmetrica 1

ALGORITMO DI CIFRATURA E( )c = E(k, m) — Il messaggio cifrato c è ottenuto cifrando il messaggio in chiaro m con la chiave k

ALGORITMO DI DECIFRATURA D() m = D(k, c) = D(k, E(k, m)) — Il messaggio in chiaro m è ottenuto decifrando il messaggio cifrato c con la chiave k

PROPRIETÀ di E() e D()I. Dato c è molto difficile ricavare m se non si conosce k e

viceversa

II. Dati m e c è molto difficile ricavare k (a meno che k non sia utilizzata una sola volta)

Algoritmi e Proprietà

Page 2: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 2

Metafora: cassaforte

cm

k

Chiunque vuole aprire la cassaforte, per mettere o togliere valori, deve conoscere la combinazione

E() Network m

k

D()c

27-Nov-01 Cifratura simmetrica 3

Comunicazione Confidenziale

E()m

k

c D()

k

mc

Alice e Bob vogliono comunicare in segreto

Ipotesi:Alice e Bob si fidano l’uno dell’altroAlice e Bob concordano E() e D()La chiave k è un segreto condiviso tra Alice e Bob

network

Page 3: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 4

Considerazioni

...come fa ad essere sicura che m = D(k,c) è buono?Alice conosce m in anticipo

Alice conosce in anticipo parte di m (Es.: email)

Alice sa che m ha certe ridondanze strutturali (Es.: documentoASCII)

Quando Alice riceve c...c = DES(k, m) = f3 9e 8a 73 fc 76 2d 0f 59 43 bd 85 c3 c9 89 d2

bf 96 b6 4f 34 b8 51 dd (multiplo di 8)lo decifra con k = 0x3dd04b6d14a437a9 (56 bit)ed ottiene m = DES(k, c) = “Ci vediamo alle 20!”

27-Nov-01 Cifratura simmetrica 5

� Qual è l’effetto di una “piccola” modifica al testo cifrato?

– Modifica di un bit del testo cifratoSia c[0]7 = ~c[0]7, �M′=“e8¢biö=}o alle 20:00!”

– Modifica di un byte del testo cifratoSia c[CipherTextLenght-1] = 0x00, �m´ = “Ci vediamo alle "}2gÀlõ”

È molto difficile per un avversario determinare c*, modificandoc, in modo tale che c* produca un testo in chiaro m* scelto dall’avversario

Una “piccola” modifica al testo cifrato

Page 4: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 6

Considerazioni

Quando Alice riceve m è portata a credere che:Solo Bob ha visto il messaggio m (confidenzialità)

Il messaggio m proviene da Bob (provenienza)

Il messaggio non è stato modificato (integrità)

Cosa vuol dire che Alice e Bob si fidano l’uno dell’altro?• Alice (Bob) non rivela m

• Alice (Bob) tiene segreta la chiave k

•Alice (Bob) è competente per quanto riguarda l’amministrazione di sistema

•Alice (Bob) non rivela la chiave: Alice (Bob) non “imbroglia”

27-Nov-01 Cifratura simmetrica 7

Chiave compromessa

Se l’avversario viene a conoscenza della chiave k, allora lachiave si dice compromessa

Se k è compromessa, allora• L’avversario può intercettare e leggere tutte le comunicazioni traAlice e Bob (rilascio del contenuto dei messaggi)

• L’avversario può inviare messaggi ad Alice fingendo di essere Bob e viceversa (masquerade)

• L’avversario può intercettare e modificare i messaggi spediti daAlice a Bob e viceversa (modifica dei messaggi)

Page 5: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 8

Chiave non compromessa

� L’avversario inserisce messaggi…ma Alice se ne accorge e li scarta

� L’avversario modifica messaggi…ma Alice se ne accorge e li scarta (idem)

� L’avversario può eliminare messaggi. – La crittografia non aiuta; ci vuole ridondanza.

� L’avversario può replicare messaggi– La crittografia non aiuta; va previsto nel protocollo.– Esempio: si inserisce un contatore cnt nel messaggio: E(k, (m,

cnt))� L’avversario tenta di crittanalizzare i messaggi

27-Nov-01 Cifratura simmetrica 9

Crittanalisi

� Crittanalisi è la disciplina che si occupa di ricavare il testo in chiaro senza conoscere la chiave, oppure lachiave stessa

� Ipotesi1. Il crittanalista ha accesso a tutti i dati cifrati2. Il crittanalista conosce i dettagli dell’algoritmo (Principio di

Kerckhoff)� Tecniche di crittanalisi

1. Ciphertext-only Attack2. Known-Plaintext Attack3. Chosen-Plaintext Attack4. Chosen-Ciphertext Attack

Page 6: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 10

Ciphertext-only attack

� Il crittanalista dispone solo di testo cifrato ottenuto conl’algoritmo E() e la chiave k

– Dato Ci = E(k, Ti), 1≤ i ≤n, determinareil testo in chiaro T1, T2,…,Tn oppurela chiave k, oppureun algoritmo per inferire Tn+1 da Cn+1 = E(k, Tn+1)

� È l’attacco più semplice da cui difendersi perché il crittanalista dispone della minima quantità di informazione

� Solamente algoritmi poco robusti non resistono ad unciphertext-only attack

27-Nov-01 Cifratura simmetrica 11

Known-plaintext attack

� Il crittanalista dispone non solo di testo cifrato maanche del corrispondente testo in chiaro

– Dati Ti e Ci = E(k, Ti), 1≤ i ≤n, determinarela chiave k, oppureun algoritmo per inferire Tn+1 da Cn+1 = E(k, Tn+1)

Page 7: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 12

Chosen-plaintext attack

� Il crittanalista dispone non solo del testo cifrato e delcorrispondente testo in chiaro, ma è anche in grado di scegliere il testo in chiaro

– Dati Pi e Ci = E(k, Ti), 1≤ i ≤n, dove i Pi sono scelti dal crittanalista, determinarela chiave k, oppureun algoritmo per inferire Tn+1 da Cn+1 = E(k, Tn+1)

� Attacco è molto potente: il crittanalista può scegliere“ad arte” dei testi in chiaro che, molto probabilmente,rivelino la struttura della chiave

� Gli algoritmi più diffusi sono stati progettati perresistere a questo attacco

27-Nov-01 Cifratura simmetrica 13

Chosen-ciphertext attack

� Il crittanalista sceglie il testo cifrato da crittanalizzareed ha anche accesso al testo in chiaro corrispondente

– Dati Ci e Ti = D(k, Ci), 1≤ i ≤n, dove i Ci sono scelti dal crittanalista, determinarela chiave k

� Questo attacco è applicato principalmente ai crittosistemi a chiave pubblica

� Nei sistemi simmetrici, questo attacco ha la stessa complessità del chosen-plaintext attack

Page 8: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 14

Brute-force attack (I)

� La sicurezza di un algoritmo simmetrico dipende da:– La forza dell’algoritmo– La lunghezza della chiave

� Brute-force attack: ricerca esaustiva nello spazio delle chiavi

– Se la chiave è su n bit, allora � ci sono 2n chiavi possibili� sono necessari, in media, 2n-1 tentativi

� Si ricorre ad un brute-force attack quando non c’è altro modo per violare l’algoritmo (algoritmo “perfetto”)

– Brute-force attack è il limite superiore alla sicurezza di unalgoritmo di cifratura

27-Nov-01 Cifratura simmetrica 15

Un esempio: sostituzione monoalfabetica

� La chiave è una permutazione dell’alfabeto� Cifratura: Ogni carattere in chiaro è sostituito dal

carattere della chiave che ha la stessa posizione nell’alfabeto

� Numero delle chiavi– 26! – 1 ≈ 4 × 1026 (maggiore del numero di secondi che è

trascorso dalla nascita dell’universo)

Alfabeto 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

Chiave

J U L I S C A E R T V W X Y Z B D F G H K M N O P Q

Page 9: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 16

Un esempio (2)

� Esempio– T = “TWO HOUSEHOLDS, BOTH ALIKE IN DIGNITY,

IN FAIR VERONA, WHERE WE LAY OUR SCENE”(“Romeo and Juliet”, Shakespeare)

– T′ = “TWOHO USEHO LDSBO THALI KEIND IGNIT YINFAIRVER ONAWH EREWE LAYOU RSCEN E”

– C = “HNZEZ KGSEZ WIGUZ HEJWR VSRYI RAYRH PRYCJRFMSF ZYJNE SFSNS WJPZK FGLSY S”

27-Nov-01 Cifratura simmetrica 17

Un esempio (3)

� Il cifrario a sostituzione monoalfabetica ha un grosso difetto: mantiene la distribuzione delle frequenze delle lettere

� La crittanalisi si può fare “a mano”– Metodo di al-Kindi (~secolo X)– Ciphertext-only attack, Lingua nota (statistiche), Testo

“abbondante” di argomento “generale”– Costò la testa a Maria Stuart (Congiura di Babington, 1587)

Page 10: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 18

Brute-force attack (II)

T1: Tempo necessario per brute-force a 106 decifrature/s (ragionevole con gli elaboratori odierni)

T2: Tempo necessario per brute-force a 1012 decifrature/s (elaboratori a parallelismo massiccio)

Key size (bit)

Numero di chiavi T1 T2

32 232 = 4.3×109 231µs = 35.8 ′ 2.15 ms

56 256 = 7.2×1016 255µs = 1142 anni 10 ore

128 2128 = 3.4×1038 2127 µs = 5.4×1024 anni 5.4×1018 anni

27-Nov-01 Cifratura simmetrica 19

Brute-force attack (III)

3,9×1027

830000

1 Day

5,6×10261,3×10261,1×1025128

12000028000230056

1 Week1 Month1 YearKey size (bit)

Numero di processori necessari per un brute-force attack

Ogni processore è capace di eseguire 106 cifrature/s

Page 11: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 20

Brute-force attack (IV)

1028$

1 m$1 Day

1027 $1027 $1025$128

1 m$100 k$10 k$561 Week1 Month1 YearKey size

Stima del costo medio di un elaboratore multiprocessore capace di eseguire un brute-force attack nei tempi dati

I costi relativi a 56 bit sono alla portata dei budget dei militari

27-Nov-01 Cifratura simmetrica 21

Brute-force attack (V)

� Software Crackers: 1000 volte più lenti di un hardware cracker, ma gratis!

– Con 512 workstations si ha – 1 probabilità su 200000 di violare una chiave di 56 bit in un

giorno – 1 probabilità su 64000 di violarla in un weekend.

� Sono probabilità migliori di quelle offerte da una lotteria!

� Chinese lottery

Page 12: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 22

PRINCIPALI ALGORITMI

20128CAST18128Blowfish50128IDEA108112Triple-DES4556DES

CLOCKS/BYTE (PENTIUM)

CHIAVE (bit)ALGORITMO

27-Nov-01 Cifratura simmetrica 23

Cifrario simmetrico

� = alfabeto di definizione

�= insieme dei messaggi in chiaro; m = m1m2m3..., con mi � ��

� = insieme dei messaggi cifratic = c1c2c3..., con ci � ��

� = insieme delle chiavi

cm

k

E() m

k

D()c

stessa chiave

Page 13: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 24

Tipi di cifrari simmetrici

� Cifrario a blocchi (block cipher)– Un cifrario a blocchi frammenta il messaggio in chiaro in

ingresso in stringhe (blocchi) di lunghezza t fissa, e cifra unblocco alla volta� Tipicamente t ≥ 64

� Cifrario a carattere (stream cipher)– Un cifrario a carattere è sostanzialmente un cifrario a (blocchi)

a sostituzione in cui t = 1 in cui però la funzione di cifratura può cambiare per ogni carattere in in chiaro

27-Nov-01 Cifratura simmetrica 25

Cifrari a blocchi

� Cifrari semplici– Cifrario a sostituzione: sostituisce simboli di un blocco (gruppi

di simboli) con altri simboli (gruppi di simboli)� Cifrario a sostituzione monoalfabetico� Cifrario a sostituzione omofonico� Cifrario a sostituzione polialfabetica

– Cifrario a trasposizione: permuta i simboli in un blocco– I cifrari semplici non forniscono un livello di sicurezza molto

elevato.� Cifrari composti

– Ottenuti combinando insieme cifrari semplici

Page 14: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 26

SP-network

S…

…S…

…S…

…S…

……

P… … … …

S…

…S…

…S…

…S…

……

P… … … …

� � � �

plaintext

ciphertext

S: sostituzione; P: permutazione, trasposizione

round

27-Nov-01 Cifratura simmetrica 27

Proprietà di un cifrario

� Le principali proprietà di un cifrario sono (Shannon 1940):

– Confusione: Proprietà di rendere la relazione tra chiave etesto cifrato la più complessa possibile

– Diffusione: Proprietà di riorganizzare o distribuire i bit delmessaggio in chiaro in modo che la ridondanza nel testo sia inchiaro sia distribuita su tutto il testo cifrato

� Un round dovrebbe aggiungere confusione e diffusione– Sostituzione aggiunge confusione– Trasposizione aggiunge diffusione

Page 15: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 28

Data Encryption Standard (DES)

Initial Permutation (IP)

Round 1

Round 2

Round 16

Scambio a 32 bit

Final Permutation (IP-1)

Testo in chiaro (64 bit)

Testo cifrato (64 bit)

key scheduler

Chiave K (64 bit)

K16

K2

K1

K in realtà è su 56 bit: i bit di posizione 8, 16,..., sono di parità

27-Nov-01 Cifratura simmetrica 29

IP

Data Encryption Standard (DES)

Round 1

IP-1

Testo in chiaro (64 bit)

Testo cifrato (64 bit)

key scheduler

Chiave K (64 bit)

Round 2

Round 16

L0 R0

L1 R1

L16R16

K16

K2

K1

32 32

48

Page 16: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 30

DES: round i-esimo

ki

��⊕

Li-1Li-1 Ri-1Ri-1

RiRi LiLi

32 32

32 32

32

32

48

Li = Ri-1;Ri = Li-1 ⊕ �(Ri-1, Ki)

�: round function

27-Nov-01 Cifratura simmetrica 31

Decifratura in DES

� L’algoritmo di decifratura con chiave K è uguale all’algoritmo di cifratura con chiave K, ma con le chiavi di round Ki applicate in ordine inverso

� Dimostrazione (solo round 1)– La permutazione IP-1 della cifratura è cancellata da IP della

decifratura, si ottiene quindi (L0d, R0

d) ≡ (R16, L16)– Round 1 con chiave di round K16

� L1d = L16; R1

d = R16 ⊕ �(L16, K16)essendo L16 = R15 e R16 = L15 ⊕ �(R15, K16) �� L1

d = L16= R15� R1

d = R16 ⊕ �(L16, K16) = L15 ⊕ �(R15, K16) ⊕ �(R15, K16) = L15

– Il primo round della decifratura produce (L1d, R1

d) ≡ (R15, L15),inverte cioè il round 16

– L’inversione non dipende né da � né da Ki

Page 17: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 32

Round function �

Ri-1 Ki

�1 �2 �3 �4 �5 �6 �7 �8

32 48

48

8 × 6 bit

Sostituzione(S-box)

8 × 4 bit

Permutazione

Espansione

6

4

�(Ri-1, Ki) = �(�(�(Ri-1) ⊕ Ki )

32

32

27-Nov-01 Cifratura simmetrica 33

DATA ENCRYPTION STANDARD (DES)

� Permutazioni iniziale IP e finale IP-1

– Sono l’una l’inversa dell’altra – Non sono rilevanti ai fini della sicurezza– Alcune implementazioni SW le omettono

� Espansione �

– Effetto valanga � Sostituzione �

– È una funzione non-lineare, che maggiormente contribuisce alla sicurezza di DES. È difficile da analizzare

– È progettata per massimizzare la diffusione� Permutazione �

– Aggiunge diffusione

Page 18: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 34

Ki: Chiave al round iK

��1

��2

64

2828

Ki

56

48

i

Permutazione e selezione

Permutazione e selezione

Rotazione sinistra (1 o 2 bit in funzione del round)

28 28

56

27-Nov-01 Cifratura simmetrica 35

DES: chiavi deboli e semi-deboli

� Chiavi deboli– Una chiave K è debole se, ∀ x, E(K, E(K, x)) = x– Una chiave debole K genera Ki tutte uguali

� Chiavi semi-deboli– Un paio di chiavi (K1, K2) sono semi-deboli se, ∀ x, E(K1, E(K2,

x)) = x� DES ha 4 chiavi deboli e 12 chiavi semi-deboli� Le chiavi deboli e semi-deboli sono ben note, e

possono essere scartate in fase di generazione

Page 19: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 36

Chiavi deboli

FFFFFFF 0000000E0E0 E0E0 E0E0 E0E0

0000000 FFFFFFF1F1F 1F1F 1F1F 1F1F

FFFFFFF FFFFFFFFEFE FEFE FEFE FEFE

0000000 00000000101 0101 0101 0101

CHIAVE EFFETTIVACHIAVE DEBOLE

27-Nov-01 Cifratura simmetrica 37

Modalità d’impiego

� Un cifrario a blocchi cifra un blocco di t-bit� Se un messaggio è costituito da due o più blocchi, il

cifrario viene impiegato secondo opportune modalità: ✦ Electronic Codebook (ECB)✦ Cipher block chaining (CBC)– Cipher feedback (CFB)– Output Feedback (OFB)

Page 20: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 38

Electronic Codebook (ECB)

Messaggio in chiaro di n blocchi: m = m1m2...mnMessaggio cifrato di n blocchi: c = c1c2...cn

ci = E(K, mi), 1 ≤ i ≤ n

mi = D(K, ci), 1 ≤ i ≤ n

Un errore in un blocco ci incide solo sul blocco mi

Ogni blocco mi è cifrato indipendentemente dagli altri

Due blocchi in chiaro uguali producono, a parità di chiave, dueblocchi cifrati uguali

ECB è soggetto a due attacchi: dictionary attack e block replay attack

E

K

mi ci

D

K

ci mi

27-Nov-01 Cifratura simmetrica 39

Dictionary Attack

� L’avversario può decifrare (parti di) un messaggio senza conoscere la chiave

� Known-plaintext attack– Chiave k– L’avversario costruisce una tabella Tk con le coppie (ci, mi)– Quando l’avversario legge ck, cerca in T se esiste il mk

corrispondente� Questo attacco è efficace se

� la dimensione del blocco è piccola� i messaggi contengono ridondanza� la stessa chiave è utilizzata per cifrare grosse quantità di dati

Page 21: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 40

Block Replay

� L’avversario può modificare un messaggio cifrato senza conoscere la chiave

� ESEMPIO:– Transazione bancaria: utente U sposta denaro D da una

banca B1 ad un’altra B2– La Banca B1 addebita D all’utente ed invia un messaggio di

accredito, di parì entità, alla banca B2.– Formato del messaggio

� Nome Banca Mittente: M (12 byte)� Nome Banca Ricevente: R (12 byte)� Nome Cliente: C (48 byte)� Numero Conto: N (16 byte)� Ammontare Deposito: D (8 byte)

– Block size = 64 bit

27-Nov-01 Cifratura simmetrica 41

Block Replay

� ESEMPIO– Avversario esegue

� un pagamento di 100$ � c1� un pagamento di 100$ � c2� ...� un pagamento di 100$ � ck

– Avversario cerca in rete i “suoi” messaggi: k messaggi cifrati uguali (k = 2÷3)

– Una volta trovati, ne replica uno a suo piacimento

Banca 1 Banca 2

Page 22: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 42

Block Replay

� ESEMPIO (...continua)– La banca previene la replicazione dei messaggi aggiungendo

un campo timestamp T (8 byte) in testa al messaggio...– Tuttavia l’avversario può eseguire un block replay attack– L’avversario

� identifica i suoi messaggi come prima� intercetta un qualunque messaggio in transito e sostituisce i

blocchi 5−12 con quelli di un suo messaggo

� La modalità CBC evita questo tipo di problemi

1 2 3 4 5 6 7 8 9 10 11 12 13

T M R C N D

Numero Blocco

Campo messaggio

27-Nov-01 Cifratura simmetrica 43

Cipher Block Chaining (CBC)

P1 ⊕ E C1 = E(K, P1 ⊕ IV)

P2 ⊕ E C2 = E(K, P2 ⊕ C1)

Pn ⊕ E Cn = E(K, Pn ⊕ Cn-1)

IV

Pi = D(K, Ci) ⊕ Ci-1 2 ≤ i ≤ n

P1 = D(K, C1) ⊕ IV

Page 23: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 44

CBC: osservazioni

� Testi in chiaro identici producono testi cifrati identici se e solo se cifrati con la stessa chiave K e lo stesso IV

� Si deve garantire l’integrità di IV� Pi influsice su Ci e tutti i blocchi cifrati successivi

– CBC non è adatto ad applicazioni che accedono dati cifrati in lettura/scrittura in modo random

� Propagazione dell’errore– Sia Ci′ = (Ci con un bit errato), allora

� Pi′ completamente random� Pi+1′ ha un solo bit errato nella stessa posizione del bit errato di Ci

� Pi+2 è corretto (se Ci+1 è corretto): CBC è self-synchronizing– CBC non è in grado di recuperare da errori dovuti a bit “persi”

(Framing error)

27-Nov-01 Cifratura simmetrica 45

Cifratura multipla: 3DES

� Se si cifra più volte un messaggio, la sicurezza aumenta?

– E(K1, E(K2, m)) è meglio di E(K3, m)?� Si, perché DES non è un gruppo (dimostrato nel 1992)

– Se DES fosse un gruppo allora:∀ m ∈ �, ∀ K1, K2 ∈ �, ∃ K3 ∈ � tale che E(K1,E(K2, m)) = E(K3, m)

� Triplo DES (3DES)

DES DES-1 DEST C

K1 K2 K1

Brute-force attackrichiede 2112 tentativi

Page 24: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 46

Cifrario a caratteri (stream cipher)

� Un cifrario a carattere è sostanzialmente un cifrario (ablocchi) a sostituzione in cui t = 1 in cui però lafunzione di cifratura può cambiare per ogni carattere in in chiaro

27-Nov-01 Cifratura simmetrica 47

Cifrario di Vernam (One-time Padding)

� Sia m un messaggio di t bit

� Sia la chiave k una sequenza di t bit scelti a random

� Cifratura: ci = mi ⊕ ki, 0≤ i ≤ t

� Decifratura: mi = ci ⊕ ki, 0≤ i ≤ t

� One-time corrisponde alla definizione– Ci sono due funzioni di cifratura

� E0(mi) = mi se ki = 0

� E1(mi) = (mi+1) mod 2 se ki = 1

Page 25: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 48

One-Time Padding

� La chiave k deve essere utilizzata una sola volta (one-time)

– k può essere ricavata da m e c: k = m ⊕ c

� Se la chiave è riutilizzata...– Siano c = m ⊕ k e c´= m´ ⊕ k, allora

c ⊕ c´ = m ⊕ m´

La ridondanza in m ⊕ m´ può facilitare la crittanalisi

27-Nov-01 Cifratura simmetrica 49

Sicurezza di One-time Padding

� One-time padding è “perfettamente” sicuro – Se il crittanalista dispone solo di c e la chiave è stata usata

una sola volta, allora il crittanalista può solo dedurre che il messaggio in chiaro m è costituito da t bit

– Qualunque messaggio m di t bit può essere generato a partire da c

– ESEMPIO. Per generare m* a partire da c, si può utilizzare lachiave k*= m* ⊕ c

� Shannon ha provato che un sistema è perfettamente sicuro se:

– Ci sono tante chiavi quanti i testi in chiaro

– Ciascuna chiave è equiprobabile

Page 26: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 50

Esempio

� Algoritmo di Cifratura: c[i] = m[i] + k[i] mod 26� m = “SUPPORT JAMES BOND”

m = S U P P O R T J A M E S B O N Dk = W C L N B T D E F J A Z G U I Rc = O W A C P K W N F V E R H I V U

c = O W A C P K W N F V E R H I V Uk' = M W L J V T S E F J A Z G U I Rm = C A P T U R E J A M E S B O N D

27-Nov-01 Cifratura simmetrica 51

One-Time Padding: considerazioni pratiche

� La chiave k deve avere la stessa lunghezza del messaggio m:

– problemi di memorizzazione

– problemi di sincronizzazione nelle comunicazioni

…ma sono realmente un problema con la tecnologia corrente?

� Sembra che la linea Mosca-Washington fosse cifratacon one-time pad

– La chiave era trasportata da un corriere fidato

Page 27: Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... · 2001-12-19 · – Un cifrario a carattere è sostanzialmente un cifrario a (blocchi) a sostituzione

27-Nov-01 Cifratura simmetrica 52

Sistemi insicuri con componenti sicure

m = D A R E C E N T O E U R O A B O Bk = W C L N B T D E F J A Z G U I R Xc = Z C C R D X Q X T N U Q U U J F Y

ZCCRD... ZCCRN...

c' = Z C C R N B O P J N U Q U U J F Yk = W C L N B T D E F J A Z G U I R Xm = D A R E M I L L E E U R O A B O B

27-Nov-01 Cifratura simmetrica 53

Sistemi insicuri con componenti sicure (II)

� L’algoritmo di cifratura non è stato violato...� ...tuttavia il protocollo fallisce� L’algoritmo One-Time Pad garantisce sicurezza...� ...ma non garantisce integrità

� Perché un protocollo fallisce– Le proprietà di una primitiva crittografica non sono state capite

o sono state sopravvalutate– La primitiva ha delle debolezze ed il protocollo le amplifica