240 likes | 462 Views
Crittoanalisi. Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dell’Informazione Università di Siena. Introduzione 1. I principali tipi di attacco alla sicurezza dei crittosistemi si distinguono in…
E N D
Crittoanalisi Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dell’Informazione Università di Siena
Introduzione 1 • I principali tipi di attacco alla sicurezza dei crittosistemi si distinguono in… • Ciphertext-only l’intruso è venuto a conoscenza di una stringa di testo cifrato y • Known plaintext l’intruso conosce una stringa di plaintext x, ed il corrispondente testo cifrato y • Chosen plaintext l’intruso ha ottenuto accesso temporaneo al meccanismo di cifratura: può quindi scegliere un plaintext x e costruire il corrispondente testo cifrato y • Chosen ciphertext l’intruso ha ottenuto accesso temporaneo al meccanismo di decifratura: può quindi scegliere un testo cifrato y e costruire il corrispondente plaintext x
Introduzione 2 • Le tecniche per raggiungere la sicurezza discusse finora si basano tutte sulla premessa di validità del… • Principio di Kerckhoff • L’intruso, Oscar, conosce il tipo di crittosistema in uso • Se ciò non fosse, il suo compito risulterebbe, ovviamente, ancora più difficile • In prima istanza, esamineremo il tipo di attacco più debole, il Ciphertext-only; assumeremo inoltre che le stringhe di plaintext rappresentino testo inglese ordinario, senza segni di punteggiatura né spazi • la crittoanalisi è più difficile in questo caso
Introduzione 3 • Molte tecniche di crittoanalisi si basano su proprietà statistiche della lingua inglese, in particolare su stime della frequenza relativa dei 26 caratteri costituenti l’alfabeto • Sulla base di un esame statistico, le 26 lettere dell’alfabeto possono essere suddivise in cinque gruppi: • E, con una probabilità pari a 0.12 • T,A,O,I,N,S,H,R, ciascuna avente probabilità compresa tra 0.06 e 0.09 • D,L ognuna con probabilità 0.04 • C,U,M,W,F,G,Y,P,B, ognuna con probabilità compresa fra 0.015 e 0.028 • V,K,J,X,Q,Z, con probabilità minore di 0.01
Introduzione 4 • Più in dettaglio…
Introduzione 5 • Può essere utile considerare anche sequenze di due o tre lettere consecutive, chiamate rispettivamente digrammi e trigrammi • I 30 digrammi più comuni, in ordine decrescente, sono TH,HE,IN,ER,AN,RE,ED,ON,ES,ST,EN,AT,TO,NT,HA, ND,OU,EA,NG,AS,OR,TI,IS,ET,IT,AR,TE,SE,HI,OF • I 12 trigrammi più comuni sono (in ordine decrescente) THE,ING,AND,HER,ERE,ENT,THA,NTH,WAS,ETH,FOR,DTH
Esempi di crittoanalisi Affine cipher 1 • Per vedere un semplice esempio in cui l’indagine statistica può essere proficuamente utilizzata per fare crittoanalisi, si consideri Affine cipher • Esempio 1 • Supponiamo che Oscar sia venuto in possesso del seguente testo cifrato • “fmxvedkaphferbndkrxrsrefmorudsdkdvshvufedkaprkdlyevlrhhrh” Frequenza delle 26 lettere dell’alfabeto
Esempi di crittoanalisi Affine cipher 2 • Vi sono soltanto 57 caratteri nel testo cifrato, ma sono sufficienti per crittoanalizzare Affine cipher • I caratteri cifrati più frequenti sono R (8 occorrenze), D (7), E,H,K (5) ed F,S,V (4) • In prima istanza si può ipotizzare che R codifichi e, D la lettera t; numericamente, ek(4)=17, ek(19)=3 • Ricordando che ek(x)=ax+b, si ottiene un sistema lineare di due equazioni in due incognite • 4a+b=17 • 19a+b=3 • che ha come unica soluzione a=6 e b=19: illegale poichè • MCD(a,26)=2 IPOTESI ERRATA {
Esempi di crittoanalisi Affine cipher 3 • Le prove successive sono: • R codifica e, E codifica t; si ottiene a=13, che è una soluzione illegale IPOTESI ERRATA • R codifica e, H codifica t; si ottiene a=8, che è ancora illegale IPOTESI ERRATA • R codifica e, K codifica t; si ottiene a=3, b=5, che è invece una chiave legale • Con k=(3,5), dk(y)=9y-19, ed il testo decrittato risulta… • “algorithms are quite general definitions of arithmetic processes” • IPOTESI CORRETTA: IL CIFRARIO È VIOLATO
Esempi di crittoanalisi Substitution cipher 1 • Esempio 2 Si consideri il seguente testo cifrato yifqfmzrwqfyvecfmdzpcvmrzwnmdzvejbtxcddumj ndifefmdzcdmqzkceyfcjmyrncwjcszrexchzunmxz nzucdrjxyysmrtmeyifzwdyvzvyfzumrzcrwnzdzjj xzwgchsmrnmdhncmfqchzjmxjzwiejyucfwdjnzdir Frequenza delle 26 lettere dell’alfabeto
Esempi di crittoanalisi Substitution cipher 2 • Poiché Z occorre molto più spesso di tutti gli altri caratteri del testo cifrato, si può congetturare che dk(Z)=e • I restanticaratteri con più di dieci occorrenze sono C,D,F,J,M,R,Y che, presumibilmente, codificano un sottoinsieme di t,a,o,i,n,s,h,r, con frequenze che, tuttavia, non variano a sufficienza per poter fare ipotesi più precise • Guardando ai digrammi, specialmente quelli della forma –Z e Z-, si può vedere come i più frequenti siano DZ e ZW (4 volte ciascuno), NZ e ZU (3), RZ,HZ,XZ, FZ,ZR,ZV,ZC,ZD,ZJ (2) • Poiché ZW compare quattro volte mentre WZ mai, e W è in assoluto la lettera a più bassa frequenza, si può ipotizzare che dk(W)=d
Esempi di crittoanalisi Substitution cipher 3 • Poiché ZRW e RZW sono presenti entrambi all’inizio del testo cifrato, ed RW compare anche nel seguito, essendo nd un digramma comune, si può supporre dk(R)=n ------end---------e----ned---e------------ yifqfmzrwqfyvecfmdzpcvmrzwnmdzvejbtxcddumj --------e----e---------n--d---en----e----e ndifefmdzcdmqzkceyfcjmyrncwjcszrexchzunmxz -e---n------n------ed---e---e--ne-nd-e-e-- nzucdrjxyysmrtmeyifzwdyvzvyfzumrzcrwnzdzjj -ed-----n-----------e----ed-------d---e--n xzwgchsmrnmdhncmfqchzjmxjzwiejyucfwdjnzdir
Esempi di crittoanalisi Substitution cipher 4 • Si può quindi tentare la decodifica dk(N)=h, poichè NZ compare molte volte mentre ZN no • Se l’ipotesi è corretta, allora il segmento di plaintext ne-ndhe suggerisce che dk(C)=a ------end-----a---e-a--nedh--e------a----- yifqfmzrwqfyvecfmdzpcvmrzwnmdzvejbtxcddumj h-------ea---e-a---a---nhad-a-en--a-e-h--e ndifefmdzcdmqzkceyfcjmyrncwjcszrexchzunmxz he-a-n------n------ed---e---e--neandhe-e-- nzucdrjxyysmrtmeyifzwdyvzvyfzumrzcrwnzdzjj -ed-a---nh---ha---a-e----ed-----a-d--he--n xzwgchsmrnmdhncmfqchzjmxjzwiejyucfwdjnzdir
Esempi di crittoanalisi Substitution cipher 5 • Consideriamo ora M, il secondo carattere, in ordine di frequenza, del testo cifrato • Il segmento di codice cifrato RNM che dovrebbe corrispondere a nh-, suggerisce che h- sia l’inizio di una parola dk(M){i,o} e, poiché ai è più comune di ao, il digramma cifrato CM suggerisce dk(M)=i -----iend-----a-i-e-a-inedhi-e------a---i- yifqfmzrwqfyvecfmdzpcvmrzwnmdzvejbtxcddumj h-----i-ea-i-e-a---a-i-nhad-a-en--a-e-hi-e ndifefmdzcdmqzkceyfcjmyrncwjcszrexchzunmxz he-a-n-----in-i----ed---e---e-ineandhe-e-- nzucdrjxyysmrtmeyifzwdyvzvyfzumrzcrwnzdzjj -ed-a--inhi--hai--a-e-i--ed-----a-d--he--n xzwgchsmrnmdhncmfqchzjmxjzwiejyucfwdjnzdir
Esempi di crittoanalisi Substitution cipher 6 • Occorre ora determinare quale lettera codifica o • Poiché o è molto comune, dovrebbe corrispondere a una delle lettere D,F,J,Y nel testo cifrato • Y sembra la più probabile, altrimenti nel plaintext esisterebbero trigrammi di vocali (aoi, per CFM o CJM) dk(Y)=o • Le lettere più frequenti rimaste ancora da decrittare sono D,F,J, che congetturiamo corrispondere a r,s,t (in qualche ordine) • Due occorrenze del trigramma NMD suggeriscono dk(D)=s, che produrrebbe his nel plaintext • Il segmento HNCMF potrebbe corrispondere a chair dk(F)=r, dk(H)=c e, per esclusione, dk(J)=t
Esempi di crittoanalisi Substitution cipher 7 o-r-riend-ro--arise-a-inedhise--t---ass-it yifqfmzrwqfyvecfmdzpcvmrzwnmdzvejbtxcddumj hs-r-riseasi-e-a-orationhadta-en--ace-hi-e ndifefmdzcdmqzkceyfcjmyrncwjcszrexchzunmxz he-asnt-oo-in-i-o-redso-e-ore-ineandhesett nzucdrjxyysmrtmeyifzwdyvzvyfzumrzcrwnzdzjj -ed-ac-inhischair-aceti-ted--to-ardsthes-n xzwgchsmrnmdhncmfqchzjmxjzwiejyucfwdjnzdir • A questo punto diviene molto semplice completare le lettere mancanti a comporre… • “Our friend from Paris examined is empty glass with surprise, as if evaporation have taken place while he wasn’t looking. I poured some more wine and he settled back in his chair, face tilted up towards the sun”
Esempi di crittoanalisi Hill cipher 1 • Hill cipher è più difficile da violare con un attacco Ciphertext-only, ma soccombe facilmente ad attacchi del tipo Known plaintext • Supponiamo che l’invasore abbia determinato il valore di m e che sia in possesso di almeno m coppie distinte di m-uple xj=(x1j,x2j,…xmj) e yj=(y1j,y2j,…ymj), con yj=ek(xj), 1jm • Siano X=(xij) e Y=(yij) le due matrici mm che racchiudono l’informazione dell’invasore Y=XK, dove la matrice K è la chiave da calcolare • Se la matrice X è invertibile, Oscar può calcolare K=X-1Y e quindi violare il sistema • Se X non è invertibile, l’informazione in possesso dell’invasore non è sufficiente a decrittare la chiave • occorrono altre coppie plaintext-ciphertext m-dimensionali
( ) ( ) 15 16 2 5 5 17 8 3 K = Esempi di crittoanalisi Hill cipher 2 • Esempio 3 Supponiamo che il plaintext “friday” sia stato codificato utilizzando Hill cipher con m =2, fornendo “pqcfku” Si ha: ek(5,17)=(15,16), ek(8,3)=(2,5), ek(0,24)=(10,20) Dalle prime 2 coppie plaintext-ciphertext si ottiene l’equazione matriciale… Poiché Si può provare che K “funziona” anche per la terza coppia plaintext-ciphertext ( ) ( ) -1 5 17 8 3 9 1 2 15 = ( ) ( ) ( ) 9 1 2 15 15 16 2 5 7 19 8 3 K = =
Esempi di crittoanalisi Hill cipher 3 • Come può comportarsi Oscar nel caso in cui non conosca il valore di m ? • Può procedere per tentativi, provando m=2,3,…,fino a calcolare un valore “plausibile” per m • Se il valore supposto di m non è corretto, la matrice K, mm, calcolata utilizzando l’algoritmo appena descritto, non si accorderà con le altre coppie plaintext-ciphertext, diverse da quella con cui è stata ottenuta
Esempi di crittoanalisi LFSR Stream cipher 1 • Poiché tutte le operazioni eseguite all’interno del crittosistema sono lineari, si può supporre che esso sia vulnerabile ad un attacco di tipo Known plaintext, come Hill cipher • Ipotizziamo che Oscar conosca il valore di m, la stringa di plaintext x1x2…xn ed il corrispondente testo cifrato y1y2…yn può calcolare zi= xi+yi (mod 2), 1in • Oscar deve dunque calcolare le costanti c0,c1,cm-1 per ricostruire l’intero keystream, cioè deve essere in grado di valutare le m incognite c0,c1,cm-1
Esempi di crittoanalisi LFSR Stream cipher 2 m-1 • Poiché, per ogni i1, zm+i=cjzi+j, se n2m, allora ci sono m equazioni lineari, in m incognite, risolubili per ottenere c0,c1,…,cm-1 • Il sistema di m equazioni lineari può essere riscritto, in forma matriciale, come… (zm+1,zm+2,…, z2m)=(c0,c1,…,cm-1) Se la matrice dei coefficienti ammette inversa (mod 2), (c0,c1,…,cm-1)=(zm+1,zm+2,…,z2m) j=0 ( ) z1 z2 … zm z2 z3 … zm+1 zm zm+1 … z2m-1 … … … ( ) z1 z2 … zm z2 z3 … zm+1 zm zm+1 … z2m-1 -1 … … …
( ) 1 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 Esempi di crittoanalisi LFSR Stream cipher 3 • In effetti, la matrice ammetterà un’inversa se m è il grado di ricorrenza utilizzato per generare il flusso di chiavi • Esempio 4 Supponiamo che Oscar sappia che m=5 e sia in possesso del testo cifrato 101101011110010, corrispondente al plaintext 011001111111000 i bit del keystream sono 110100100001010 mentre il sistema lineare da risolvere, utilizzando i primi dieci bit del flusso di chiavi è: (0,1,0,0,0)=(c0,c1,c2,c3)=
( ( ( ) ) ) 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 Esempi di crittoanalisi LFSR Stream cipher 4 • Si può verificare che… da cui (c0,c1,c2,c3)=(0,1,0,0,0) =(1,0,0,1,0) Pertanto la regola di ricorrenza è zi+5=zi+zi+3 (mod 2) -1 =