Sei sulla pagina 1di 1

Es 2.1.

Per capire quale dei due � monoalfabetico usiamo il phi test di Kullback se phi0 �
pi� vicino a phiR allora � polialfabetico altrimenti potrebbe essere
monoalfabetico. Usando uno script in python C1 � polialfabetico e C2
monoalfabetico.

Es 2.1.5

Capire la lunghezza della chiave L di un cifrario di Vigerer�, dobbiamo utilizzare


la formula, che deriva dal fatto di prendere k probabilit� di prendere due lettere
uguali k=phi0/(N(N-1)) e sar� approssimativamente uguale a

k= (((N/L-1)/(N-1))xKp)+(((N-N/L)/(N-1))xKr) abbiamo in pratica calcolato la


probabilit� condizionatq

Isoliamo L.

Es 2.1.6

Prima troviamo la lunghezza della chiave applicando la formula appena trovata.


Troviamo la L, dividiamo in blocchi da L stimata e poi analisi della frequenza per
colonne. In pratica avr� un numero di cyphertext pari a L da analizzare.
Per automatizzare l'analisi delle frequenze calcolo per ogni possibile k la
sommatoria di p_i*q_(k+i) dove p_i � la frequenza della lettere nella lingua
inglese e q_i � la frequenza della lettera. Tutte le sommatorie vengono confrontate
con il numero square=sum((p_i)^2).

Es 2.2.2

Es 2.2.3

No, a causa dello 0 che significa

Es 2.2.5

Dimostrare che la cardinalit� di K sia maggiore della cardinalit� del pleintext,


assumo che K sia pi� piccolo e faccio vedere che il cifrario non pu� essere
perfetto.
Per assurdo |K|<|P| e definisco un insieme m(C_0)={P....

Esercizi su Entropia

Es 2.3.2

H(k)=-sum(P_R[k=k_0]log(f_0)) dove f_0=P_R[k=k_0]

-H(k)>_ 0
-H(k)<_ log(|K|): si usa una disuguaglianza di analisi, Jensen's inequality

Es 2.3.3

k=0 -> 1/2


k!=0-> (1/2)*(1/(2^100-1))

Potrebbero piacerti anche