...

Teoria dell`Informazione e Crittografia Claude Shannon

by user

on
Category: Documents
13

views

Report

Comments

Transcript

Teoria dell`Informazione e Crittografia Claude Shannon
Teoria dell’Informazione e
Crittografia
di
Francesco Napoli
Claude Shannon
C. Shannon è considerato "il padre della teoria dell'informazione“.
A Mathematical Theory of Communication (1948)
Communication Theory of Secrecy Systems (1949)
(Bell Systems Technical Journal)
Shannon
• La moderna teoria dell’informazione è stata
originariamente sviluppata da Shannon per lo studio
teorico del problema generale della comunicazione
efficiente ed affidabile su di un canale reale
inaffidabile (rumoroso).
• Shannon si rende conto che la Crittografia fornisce
interessanti applicazioni della sua MTC.
Sistema di Comunicazione
sorgente
canale
rumore
destinazione
Modello dettagliato
Sorgente
Destinazione
Acquisizione
Ricostruzione
Codifica
sorgente
Decodifica
sorgente
distorsione
(rumore)
cifratura
Codifica
canale
decifratura
Decodifica
canale
Canale discreto
modulazione
Canale continuo
demodulazione
Crittosistema - Modello Generale
Sorgente del
messaggio
M
testo in
chiaro
cifratura
ki
Sorgente della
chiave
Destinazione
intrusione
C
C
testo
cifrato
C'
Canale
insicuro
Canale
sicuro
M
C'
testo
cifrato
ki
testo in
chiaro
decifrazione
Struttura Crittosistema
Quintupla (P,C,K,E,D):
• P
Sorgente Aleatoria
v.a. X
v.a.
indip.
• K
“
“
“
“
v.a. K
• C
“
“
“
“
v.a. Y
• E:
y = eki (x)
• D:
x = d ki ( y )
d ki (eki ( x)) = x
Ipotesi
Assunzioni:
• il nemico (il crittoanalista) conosce il CS utilizzato.
• Il nemico è in grado di intercettare il testo cifrato
(chipertext attack) e dispone di capacità computazionali
illimitate.
• Ipotesi pessimistiche
• Sicurezza matematicamente trattabile
• Realistiche con il passare del tempo
Informazioni Diverse
• il decifratore è colui che è autorizzato a
leggere il messaggio e quindi conosce la chiave
utilizzata.
• il crittoanalista, invece, conosce solo le
probabilità a priori con cui verranno utilizzate
le chiavi nel crittosistema e i messaggi nel testo
in chiaro.
Segretezza Perfetta (1)
Definizione:
un CS ha segretezza perfetta se la probabilità a posteriori
che il testo in chiaro sia x, avendo osservato il testo
cifrato y, è identica alla probabilità a priori che il testo
in chiaro sia x, cioè:
Pr[X=x|Y=y] = Pr[X=x]
per ogni x in P, y in C.
Quando il CS utilizzato ha segretezza perfetta il
crittoanalista non può ottenere nessuna informazione
sul testo in chiaro osservando il testo cifrato.
Segretezza Perfetta (2)
• Grazie al teorema di Bayes si ottiene immediatamente il seguente teorema:
• Teorema: in un CS perfetto Pr[y] = Pr[y|x], per ogni x in P e per ogni y in C.
• Cioè, in un CS perfetto, il testo in chiaro e il testo cifrato sono descrivibili da
due variabili aleatorie (X e Y) statisticamente indipendenti.
• Teorema: in un CS perfetto |K| ≥ |P|
• “the number of different keys is at least as great as the number of messages”
• Teorema: il cifrario di Vernam è un CS perfetto se la chiave è scelta con
probabilità uniforme Pr[k] = 1 / |K| (One-time-Pad è la versione binaria del
CS di Vernam).
• Questo ovviamente quando ogni nuova chiave è generata casualmente per
cifrare ogni nuova stringa di testo in chiaro.
Riutilizzo della Chiave
•
Siccome nel caso del CS di Vernam la chiave che bisognerebbe spedire su un canale sicuro è
lunga almeno quanto il messaggio, l’utilizzo di tale CS diventa non conveniente.
•
Allora non rimane altro che riutilizzare la stessa chiave per cifrare più di un testo in chiaro.
•
Per cifrare un lungo messaggio M = x x . . . xN (M è l’intero messaggio e le x sono gli
elementi dell’insieme dei testi in chiaro P (caratteri o stringhe di caratteri)) si cifra ciascun
elemento xi in yi = ek(xi) con la stessa chiave k e si concatenano i risultati nel messaggio
cifrato C = y1 y2 . . . yN.
•
Un CS che riutilizza la chiave non è perfetto poiché ci sarà sempre un N per cui il numero di
chiavi sarà inferiore al numero di messaggi di lunghezza N (|M|>|K|).
•
In questo modo il crittoanalista può guadagnare informazioni sulla chiave o sul messaggio
osservando il testo cifrato.
•
Tuttavia un CS che è giudicato insicuro dal punto di vista della teoria dell’informazione può
tuttavia essere computazionalmente sicuro e quindi fornire ancora un’elevata protezione nei
confronti di eventuali chipertext attacks considerando che un opponente reale può disporre
solo di una quantità finita di risorse computazionali.
1
2
i
Entropia (1)
• In MTC è stato mostrato che l’informazione può essere convenientemente
misurata grazie all’entropia.
• Quindi possiamo dare una caratterizzazione di un CS perfetto in termini di
entropia.
• In un CS sono coinvolte due scelte descrivibili secondo una statistica: la
scelta del messaggio e la scelta della chiave.
• Possiamo quindi misurare la quantità d’informazione prodotta quando un
messaggio è scelto:
H ( X ) = − ∑ Pr( x) log 2 Pr( x)
x∈ X
• essendo la sommatoria estesa a tutti i messaggi.
Entropia (2)
• Similarmente, c’è un’incertezza associata con la scelta
della chiave:
H ( K ) = − ∑ Pr(k ) log 2 Pr(k )
k∈K
• essendo la sommatoria estesa a tutte le chiavi.
• Nota: in un CS la quantità d’informazione presente nel
testo in chiaro è al più pari a log |P| (quando i testi
sono tutti equiprobabili).
2
Entropia (3)
H ( K ) = log 2 |
Κ
• Allora, in un CS perfetto (|K| >= |P| = n) se le chiavi sono tutte
equiprobabili (Pr[k] = 1 / |K| per ogni k in K) si ha:
| ≥ log 2 n ≥ H ( X ) ⇒
⇒ H ( K ) ≥ log 2 n
• Cioè l’informazione portata dal testo in chiaro può essere
nascosta al crittoanalista (in un CS perfetto) se l’incertezza
sulla chiave H(K) è almeno log2 n.
• “the amount of uncertainty we can introduce into the solution
cannot be greater than the key uncertainty”
Equivocazione
• Entropia condizionata o equivovazione:
H ( X | Y ) = −∑∑ P ( x, y ) log P( x | y )
y
x
• Nella MTC l’ equivocazione del canale è una stima
dell’informazione perduta in media nel canale rumoroso.
• Rappresenta l’incertezza che rimane in media sul simbolo
trasmesso dopo l’osservazione del simbolo ricevuto.
Equivocazioni
Equivocazione della chiave:
H ( K | Y ) = − ∑∑ P ( k , y ) log P ( k | y )
y
k
Equivocazione del messaggio:
H ( X | Y ) = −∑∑ P ( x, y ) log P ( x | y )
y
x
Punto di vista del crittoanalista: un crittosistema è quivalente ad un
sistema di comunicazione su di un canale rumoroso.
Index of Secrecy
• Quindi l’equivocazione della chiave (k) o del messaggio (x)
misura quanta informazione sulla chiave o sul messaggio non è
rivelata dal testo cifrato (y).
• Maggiore è l’equivocazione e maggiore è l’incertezza che
rimane sulla chiave o sul messaggio quando si osserva il testo
cifrato.
• Shannon propone di utilizzarla come misura della segretezza
di un CS (index of secrecy).
Informazione Mutua
•
Informazione mutua:
I ( X ;Y ) = H ( X ) − H ( X | Y )
•
Nella MTC è una stima dell’informazione media ricevuta dalla sorgente attraverso il
canale.
•
Punto di vista del crittoanalista: l’informazione mutua misura quanta informazione
sul testo in chiaro è possibile dedurre dal testo cifrato.
•
Punto di vista dell’utente: rendere l’informazione mutua tra X e Y la più piccola
possibile.
•
Quindi in un CS perfetto (situazione ideale):
I ( X ;Y ) = 0 ⇔ H ( X | Y ) = H ( X )
•
Il testo cifrato non dà nessuna informazione sul testo in chiaro.
Lunghezza del testo cifrato
Più lungo è il testo cifrato, più alta è la probabilità di trovare la chiave
H
H (K )
L
H (K | Y )
XL
: Messaggio in chiaro di lunghezza L
YL
: Messaggio cifrato di lunghezza L
H (X L |Y L)
L
Distanza di Unicità (1)
• Teorema:
H ( K | Y L ) ≥ H ( K ) − DL
• dove:
DL = L ⋅ log | P | − H ( X L )
• la ridondanza assoluta dei messaggi di lunghezza L
(ridonadanza della sorgente L-estesa le cui realizzazioni
sono concatenazioni di L realizzazioni della v.a. X dei
testi in chiaro).
Distanza di Unicità (2)
H (X L) = L⋅ H (X )
In prima approssimazione
(random chiper)
H ( K | Y L ) ≥ H ( K ) − L ⋅ [H ( X ) − log | P |]
H (K | Y L ) = 0 ⇔ L ≥
H (K )
H (K )
=
D
log | P | − H ( X )
Distanza di unicità: lunghezza minima di testo cifrato necessaria allo
opponente per poter calcolare la chiave univocamente.
Ridondanza assoluta dei testi in chiaro (linguaggio utilizzato)
(ridondanza della sorgente non estesa)
Distanza di Unicità (3)
•
CS ideale: se D = 0 un attaccante non può identificare il messaggio univocamente.
•
In questo caso ideale, infatti, la distanza di unicità è infinita e l’equivocazione della
chiave e del messaggio non va a zero all’aumentare della lunghezza L del testo cifrato
osservato.
•
In pratica è possibile comprimere il messaggio, riducendone la ridondanza, e quindi
avvicinarsi il più possibile al caso ideale.
•
Si può rendere la distanza di unicità grande a piacere applicando una codifica
(Huffman) ai testi in chiaro prima della cifratura.
•
Tuttavia i CS che cercano di avvicinarsi molto al caso ideale hanno i seguenti
inconvenienti:
•
Maggiore complessità : sono sensibilmente più complesse le operazioni di cifratura e
decifratura
•
Propagazione degli errori distruttiva : c’è un’elevata sensibilità agli errori di cifratura e
di trasmissione i quali possono essere amplificati dall’operazione di decifrazione e
quindi possono portare ad un gran numero di errori nel testo decifrato causando spesso
una grave perdita d’informazione.
Entropia del Linguaggio (1)
• Definiamo entropia del linguaggio HL la misura dell’informazione media
per carattere portata da una stringa del testo in chiaro dotata di significato
nel linguaggio considerato.
• Possiamo considerare come approssimazione del primo ordine di HL
l’entropia H(X) dove P = Zm e la distribuzione delle lettere segue la
distribuzione delle probabilità del linguaggio considerato.
• Siccome in un linguaggio le lettere successive sono correlate, sarà
necessario considerare approssimazioni di ordine successivo; ciò
ovviamente riduce la stima dell’entropia.
• Definiamo quindi la v.a. n-estesa X^n come la v.a. le cui realizzazioni sono
stringhe di n caratteri la cui distribuzione di probabilità è quella degli ngrammi della linguaggio considerato.
Entropia del Linguaggio (2)
• Quindi l’entropia del linguaggio L è definita come:
H (X n)
H L = lim
n →∞
n
• e la ridondanza relativa del linguaggio L è definita
come:
HL
Dr = 1 −
log 2 | P |
Stima dell’entropia (1)
Frequenze
caratteri
Testo:
Amleto
(Atto I)
Amleto Atto I : 34989 caratteri
Hamlet Act I : 29624 caratteri
P (" A" )
M
P(" Z" )
H ( testo) =
"Z"
∑
σ ="A"
P(σ )log 2
1
P(σ )
Stima dell’entropia (2)
H (X )
log 2 | P |
η=
Dr = 1 − η
Ridondanza relativa
Efficienza di codifica
H (it ) = 3,985 bit / car
η (it ) = 0.90
Dr (en) = 0.11 η (en) = 0.89
Dr (it ) = 0.10
H (en) = 4,165 bit / car
η r = 1.01
Testo inglese
12
10
10
8
8
frequenze
frequenze
Testo italiano
12
6
6
4
4
2
2
0
0
5
10
15
lettere
20
25
0
0
5
10
15
lettere
20
25
I caratteri più frequenti
Stima dell’entropia (3)
Frequenze
caratteri
Frequenze
digrammi
Amleto Atto I : 27352 digr
Hamlet Act I : 22495 digr
Testo:
Amleto
(Atto I)
P (" A" )
M
P(" Z" )
H (testo) =
P(" A" |" A" )
P(" B" |" A" )
M
P (" Z" |" Z" )
" ZZ"
∑
σ
=" AA"
P( σ )log 2
1
P( σ )
Stima dell’entropia (4)
η=
Dr = 1 − η
H (X )
log 2 | P |
Efficienza di codifica
Ridondanza relativa
η (it ) = 0.82
Dr (en) = 0.22 η (en) = 0.78
H (it ) = 3,574
H (en) = 3,659
Dr (it ) = 0.18
η r = 1.05
Testo inglese
Testo italiano
2
4
1.8
3.5
1.6
3
1.4
2.5
frequenze
frequenze
1.2
1
0.8
2
1.5
0.6
1
0.4
0.5
0.2
0
0
100
200
300
400
lettere
500
600
0
0
100
200
300
400
lettere
500
600
Stima dell’entropia (5)
Frequenze
caratteri
Frequenze
digrammi
Frequenze
trigrammi
P (" A" )
M
P(" Z" )
P(" A" |" A" )
P(" B" |" A" )
M
P (" Z" |" Z" )
P (" A" |" AA" )
Testo:
Amleto
(Atto I)
Amleto Atto I : 20392 trigr
H (testo) =
Hamlet Act I : 15730 trigr
" ZZZ"
∑
σ =" AAA"
P( σ )log 2
P (" B" |" AA" )
M
P (" Z" |" ZZ" )
1
P( σ )
Stima dell’entropia (6)
Dr = 1 − η
η=
H (X )
log 2 | P |
Ridondanza relativa
H (it ) = 3,188
H (en) = 3,185
Efficienza di codifica
η (it ) = 0.73
Dr (en) = 0.32 η (en) = 0.68
Dr (it ) = 0.27
η r = 1.07
Testo italiano
Testo inglese
3
1
2.5
0.8
frequenze
0.6
0.4
0.2
0
1.5
1
0.5
0
0
2000
4000
6000
8000 10000
lettere
12000
14000
16000
0
2000
4000
6000
8000 10000
lettere
12000
Stima dell’Entropia con memoria
crescente
Entropia
frequenze
2
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
1
10
100
Memoria
1
n →∞ n
H L = H ∞ = lim
∑ P( x) log
x =n
1
P( x)
14000
16000
Lingua Inglese
•
In Inglese (P = Z26) HL = 1.5 bit / car, essendo le lettere correlate (Dr = 0.7), e quindi la
ridondanza assoluta sarà:
D = log 26 - H = 4.7 – 1.5 = 3.2 bit/car
•
Utilizzando il CS additivo, la distanza di unicità diviene:
N = H(K) / 3.2 = log 26 / 3.2 = 1.5 = 2 caratteri
•
Nel CS a sostituzione invece si ha:
N = H(K) / 3.2 = log 26! / 3.2 = 27.6 = 28 caratteri
•
In un linguaggio casuale senza memoria (caratteri successivi indipendenti) in cui la
distribuzione dei caratteri segue le frequenze dei caratteri della lingua inglese si ha:
D = 4.7 - 4 = 0.7 bit/car
•
e le distanze di unicità sono 7 e 126 caratteri, rispettivamente.
•
NB: un linguaggio massimamente casuale costituito da stringhe di caratteri distribuiti
uniformemente avrà un’entropia massima pari a log 26 = 4.70 bit/car (Dr = 0, D=0 e N=inf).
2
Italiano - Dalla Terra alla Luna Cap 1-3
Volgare - Dante Inferno Canti 1-10
12
12
10
10
8
frequenze
frequenze
8
6
4
4
2
2
0
6
0
0
5
10
15
20
25
0
5
10
15
20
25
lettere
lettere
Latino - De Rerum Natura Liber I
12
4.025
4.02
10
4.015
4.01
4.005
entropia
frequenze
8
6
4
3.995
4
3.99
2
3.985
3.98
0
0
5
10
15
lettere
20
25
3.975
1
1.2
1.4
1.6
1.8
2
tempo
2.2
2.4
2.6
2.8
3
Teoria Algoritmica dell’Informazione
•
Kolmogorov, Solomonoff, Chaitin (’60).
•
Data una stringa di bit, si definisce contenuto di informazione algoritmica o Kolmogorov
Complexity o complessità algoritmica o entropia algoritmica la lunghezza del programma più
corto che è in grado di generare la stringa e poi fermarsi.
•
Nasce dal tentativo di tradurre in linguaggio matematico formale il principio filosofico del
rasoio di Occam ("A parità di fattori la spiegazione più semplice tende ad essere quella
esatta" ).
•
Misura assoluta, si concentra sulla singola stringa, non è una teoria probabilistica.
TM ( y ) = x
X
oggetti
(stringhe)
x
K ( x) ≡ min y
TM ( y ) = x
y
Y
descrizioni
(programmi)
Kolmogorov Complexity ed Entropia
•
La Kolmogorov Complexity di una data stringa x finita non è calcolabile.
•
Tuttavia limitando lo spazio dei programmi ammissibili diventa una quantità
calcolabile nota come Minimum Description Length (MDL).
•
Inoltre è possibile approssimarla tramite l’entropia informativa di Shannon.
•
•
Teorema:
•
Cioè per n sufficientemente grande:
•
Casualità Algoritmica (Kolgomorov randomess): una stringa è casuale se e solo se è
più corta di ogni programma in grado di generarla come output.
•
Quindi una stringa veramente casuale è incomprimibile.
K (xn )
lim
= H (X )
n →∞
n
(dove X è una v.a. a memoria 0)
K (xn ) ≈ n ⋅ H ( X )
Entropia Termodinamica e
Informazione
•
Entropia termodinamica secondo la Meccanica Statistica (Boltzmann):
S = k log W = k log (1 / 1 / W)= k log (1 / Pw)
•
Ricordando l’autoinformazione di un evento casuale nella teoria dell’informazione
classica, l’entropia di un sistema fisico è direttamente proporzionale al numero di
bit richiesti per descrivere lo stato dei suoi componenti microscopici
•
Quindi, è proporzionale al numero di bit che porta o registra un suo stato-evento
miscoscopico.
•
Un sistema fisico, potendo stare in un numero finito di stati (secondo la teoria
quantistica), può quindi registrare una quantità finita di informazione.
•
Sebbene l’entropia misuri l’informazione (in bit) contenuta a livello miscoscopico
nei movimenti atomici, in realtà, essendo questi a noi inaccessibili, è una misura
dell’informazione a noi indisponibile sullo stato miscoscopico del sistema: non
sappiamo cosa c’è in quei bit.
FINE
Fly UP