plik


ÿþ2014-03-26 Agenda BezpieczeDstwo " Tryby pracy alg. blokowych i ochrona danych " Ataki na algorytmy blokowe (na przykBadzie algorytmu DES) Algorytmy blokowe tryby pracy kryptoanaliza Tryby pracy " Elektroniczna ksi|ka kodowa ECB (ang. electronic codebook) " Ka|dy 64-bitowy blok tekstu jawnego jest kodowany niezale|nie z zastosowaniem tego samego klucza Tryby pracy algorytmów blokowych " Zastosowania: bezpieczna transmisja pojedynczych warto[ci P P1 P2 P3 C C1 C2 C3 K K K K K K E E E D D D C1 C2 C3 P1 P2 P3 Tryb ECB Tryb ECB - Atak wytnij i wklej " C=E(P,K) " Tekst jawny " Tekst jawny P0,P1,& ,Pm,& Alice digs Bob. Trudy digs Tom. " Najprostszy sposób wykorzystania " Wezmy 64-bit bloki i znaki 8-bit ASCII: Szyfruj Deszyfruj P0 =  Alice di , P1 =  gs Bob.  , C0 = E(P0, K), P0 = D(C0, K), P2 =  Trudy di , P3 =  gs Tom.  C1 = E(P1, K), P1 = D(C1, K), " Kryptogram: C0,C1,C2,C3 C2 = E(P2, K),& P2 = D(C2, K),& " Intruz  wycina i wkleja kryptogram: C0,C3,C2,C1 " Dla ustalonego K  elektroniczna wersja ksi|ki " Otrzymujemy kodowej Alice digs Tom. Trudy digs Bob. " Nowa ksi|ka dla nowego klucza 1 2014-03-26 Tryby pracy CBC " Wizania bloków zaszyfrowanych CBC (ang. cipher " Bloki tworz BaDcuch szyfrowania block chaining) " Losowa warto[ IV jest konieczna do inicjacji " Dane wej[ciowe algorytmu szyfrujcego stanowi XOR trybu CBC nastpnych 64 bitów tekstu jawnego i poprzednich 64 " IV jest losowy, lecz nie musi by tajny bitów tekstu zaszyfrowanego " Zastosowania: transmisja blokowa ogólnego Szyfrowanie Deszyfrowanie zastosowania, uwierzytelnienie C0 = E(IV Åð P0, K), P0 = IV Åð D(C0, K), C P P1 P2 P3 C1 C2 C3 C1 = E(C0 Åð P1, K), P1 = C0 Åð D(C1, K), Åð Åð Åð K K K D D D C2 = E(C1 Åð P2, K),& P2 = C1 Åð D(C2, K),& K K K E E E Åð Åð Åð C1 C2 C3 P1 P2 P3 CBC Tryby pracy - CFB " Szyfrowanie ze " Identyczne bloki TJ daj ró|ne postaci TT sprz|eniem zwrotnym CFB " Atak  wytnij i wklej jest wci| mo|liwy, ale (ang. cipher feedback) trudniejszy i pozostawia [lady " Dane wej[ciowe " Je|eli C1 jest zmienione na G wtedy przetwarzane s po j bitów P1 ¹ð C0 Åð D(G, K), P2 ¹ð G Åð D(C2, K) " Lecz P3 = C2 Åð D(C3, K), P4 = C3 Åð D(C4, K),& " Zastosowania: transmisja " Automatyczny  powrót z bBdów! strumieniowa ogólnego zastosowania, uwierzytelnienie Tryby pracy - OFB Podwójny DES " Sprz|enia " W zwizku z zagro|eniem zaBamania szyfrowanie DES z zwrotnego kluczem 56 bitowym, pojawiBy si propozycje wyj[ciowego OFB wielokrotnego u|ycia DES z wieloma kluczami (ang. output feedback) " Najprostsza wersja wielokrotnego DES to podwójny DES " Przy danym tek[cie jawnym P i dwóch kluczach K1 i K2, " Transmisja tekst zaszyfrowany C jest generowany jako C=EK1(EK2(P)) strumieniowa przez " Deszyfrowanie wymaga odwrócenia kolejno[ci kanaB nara|ony na zakBócenia zastosowania kluczy P=DK2(DK1(C)) K2 K1 K1 K2 X Y P E E C C D D P 2 2014-03-26 Atak typu Meet in the middle Czy 2DES jest bezpieczny? m E(k2,Å") E(k1,Å") c " Niech 2E( (k1,k2), m) = E(k1 , E(k2 , m) ) Atak:M = (m1,& , m10) , C = (c1,& ,c10) dBugo[ klucza= 112 bitów DES m E(k2,Å") E(k1,Å") c k0 = 00& 00 E(k0 , M) " Krok 1: zbuduj tablic. k1 = 00& 01 E(k1 , M) k2 = 00& 10 E(k2 , M) Atak: M = (m1,& , m10) , C = (c1,& ,c10). î" î" " Krok 2: dla ka|dego k"{0,1}56 kN = 11& 11 E(kN , M) " Krok 1: zbuduj tablic. k0 = 00& 00 E(k0 , M) sprawdz czy D(k, C) jest w 2-giej kolumnie posortuj wg 2-giej kolumny k1 = 00& 01 E(k1 , M) 256 k2 = 00& 10 E(k2 , M) pozycji " Znajdz (k1,k2) takie, |e î" î" je|eli tak, to E(ki,M) = D(k,C) Ò! (ki,k) = (k2,k1) kN = 11& 11 E(kN , M) E(k2,m)=D(k1,c) Atak typu Meet in the middle Potrójny DES z dwoma kluczami " Przy danym tek[cie jawnym P i dwóch kluczach K1 i K2, tekst zaszyfrowany C jest generowany jako m E(k2,Å") E(k1,Å") c C=EK1(DK2(EK1(P))) " Deszyfrowanie wymaga odwrócenia kolejno[ci Czas = 256log(256) + 256log(256) < 263 << 2112 , zastosowania kluczy P=DK1(EK2(DK1(C))) dla przestrzeni H" 256 K2 K1 K1 B A E P E D C Analogiczny atak na 3DES: Czas = 2118 przestrzeDH" 256 K2 K1 K1 m c E(k3,Å") E(k2,Å") E(k1,Å") A B D C D E P Potrójny DES DESX " Przy danym tek[cie jawnym P i trzech kluczach K1, K2 i E : K × {0,1}n ö' {0,1}n - algorytm blokowy K3 tekst zaszyfrowany C jest generowany jako C=EK1(EK2(EK3(P))) Niech EX EX( (k1,k2,k3), m) = k1 * E(k2, m*k3 ) " Deszyfrowanie wymaga odwrócenia kolejno[ci zastosowania kluczy P=DK1(DK2(DK3(C))) K2 K3 K1 Dla DESX: dBugo[ klucza = 64+56+64 = 184 bit B A E P E E C & lecz istnieje  Batwy atak rzdu 264+56 = 2120 (jaki?) Uwaga: k1 * E(k2, m) oraz E(k2, m*k1) nic nie daj!! K2 K1 K3 A B D C D D P 3 2014-03-26 DES  atak brute force msg =  The unknown messages is: XXXX &  CT = c1 c2 c3 c4 Cel: znalez k " {0,1}56 takie, |e DES(k, mi) = ci dla i=1,2,3 Ataki na algorytm DES 1997: Internet search -- 3 miesice 1998: EFF (deep crack) -- 3 dni (250K $) 1999: combined search -- 22 godzin 2006: COPACOBANA (120 FPGAs) -- 7 dni (10K $) Ò! 56-bitowe algorytmy nie powinny by u|ywane!! (128-bit key Ò! 272 dni) DES  atak brute force DES  atak brute force " Dla danej pary (m,c) jest du|e prawdopodobieDstwo, i| tylko jeden klucz k speBnia zale|no[ " Przegld zupeBny:  Dla algorytmu blokowego n-bitowego z kluczem c = DES(m,k) o dBugo[ci j-bitów, wBa[ciwy klucz mo|e by " Rozwa|my DES jako kolekcj permutacji À(1) & À(256). odnaleziony po okoBo 2j-1 próbach " Je|eli permutacje Ài s niezale|ne, to "ð (m, k) :  DES, j = 56 bit, n = 64 bit zatem przegld zupeBny daje nam wBa[ciwy klucz po 255 operacjach Pr [ $ð k1 `" k : DES(m, k1) = DES(m, k) ] = 256 . 2-64 = 2-8 = 0.39% " Dlatego dla okre[lonej pary (m, c) klucz k jest okre[lony jednoznacznie. " Aby odszyfrowa wiadomo[, trzeba znalez wBa[ciwy klucz. Ataki czasowe (Timing Attacks) DES  atak brute force " DES jest sieci Feistel dlatego: " Wykorzystanie znanych zale|no[ci czasowych pomidzy wyj[ciem a wej[ciem DES(Øðm, Øðk) = w kontek[cie zmiany tekstu jawnego i ØðDES(m, k) " Ta wBasno[ nazywa si wBasno[ci uzupeBniania klucza. (Complementation Property) je|eli c1 = DES(m, k) oraz c2 = DES(Øðm, k) wtedy gdy DES(m, k1) `" c1 ani Øðc2 to k `" k1 ani Øðk1 " PrzestrzeD poszukiwaD jest zredukowana o poBow 4 2014-03-26 Ataki analityczne Kryptoanaliza ró|nicowa " Istnieje kilka analitycznych ataków na DES " Jedno z najwikszych osigni kryptoanalizy " Wykorzystuj wiedz o strukturze algorytmu wspóBczesnej  wykorzystuj wiedz z dostpnych kryptogramów " Znana od lat 70-tych  umo|liwiaj odtworzenie cz[ci lub caBych kluczy (powstaBa w kontek[cie projektu alg. DES) poszczególnych rund " Murphy, Biham, Shamir  opublikowali jej  pozostaBa cz[ dostpna poprzez przegld zupeBny podstawy w 1990 " Ataki te wykorzystuj pewne wBasno[ci statystyczne " Mocna metoda analizy alg. blokowych " PrzykBady " Wikszo[ wspóBczesnych algorytmów blokowych  Kryptoanaliza ró|nicowa poddana analizie  Kryptoanaliza liniowa " DES jest wzgldnie odporny  Atak na klucze zale|ne Kryptoanaliza ró|nicowa Kryptoanaliza ró|nicowa " ZaBó|my, |e mamy dwa bloki danych " Statystyczny atak na algorytmy oparte na wej[ciowych m oraz m'. sieci Feistel " Ró|nica dla tych danych wynosi m xor m'. " Funkcja F daje rezultaty zale|ne od " Teksty mog zosta wybrane losowo, ale ró|nice wej[cia i od klucza pomidzy nimi musz speBnia okre[lone " Kryptografia ró|nicowa polega na warunki. porównywaniu rezultatów dwóch " Stosujc operacj xor z bitami klucza (m xor k szyfrowaD wykonanych z u|yciem oraz m' xor k ) otrzymujemy dane wej[ciowe do okre[lonej pary kluczy S-boxów. Kryptoanaliza ró|nicowa Kryptoanaliza ró|nicowa " Funkcja rundy F(x,ki): {0,1}32 x {0,1}48 ’! {0,1}32 x (32 bits) ki (48 bits) " Rozwa|amy dowoln funkcj s-box F(x, ki) : rozszerzenie 48 bits " Definiujemy miar ró|nic na wej[ciu jako ” = b1 Åð b2 = (x1 Åð ki) Åð (x2 Åð ki) = x1 Åð x2 b 48 bits 8 x S-boxes (4x16) 6 bits x 8 (podstawienie s1 s8  mieszanie) " Wej[cie XOR (b1 Åð b2) nie zale|y od klucza lecz wyj[cie XOR (e1 Åð e2) ju| tak 4 bits x 8 b1, b2 (2x6 bits) 32 bits P-box S box P (permutacja) rozpraszanie e1, e2 (2x4 bits) 5 2014-03-26 Kryptoanaliza ró|nicowa Kryptoanaliza ró|nicowa " Je|eli wykonamy analiz dla wszystkich 64 par w ”(b) wtedy " Definiujemy zbiór ”(b) zBo|ony z uporzdkowanych par (b1 , b2) o otrzymamy rozkBad wyj[ciowych warto[ci XOR(e1 Åð e2) : zadanej warto[ci XOR b: (e1 Åð e2) 0000 0001 0010 0011 & 1111 ”(b) = {(b1, b2) T {0,1}6 | b1 Åð b2 = b} 0 8 16 6 6 gdzie " Przypu[my, |e (b1 Åð b2) = 110100 oraz (e1 Åð e2) = 0001, wtedy (b1 , | ”(b) | = 26 = 64 b2) musi by jedn z o[miu mo|liwych par, zatem b1 jest jedn z 16 mo|liwych warto[ci. " Na przykBad dla b = 110100, je|eli rozwa|amy pierwszy S-box pary mogByby by nastpujce " Skoro x1 jest dane, 6 bitów klucza w funkcji XOR z x1 daje b1 czyli jedn z 16 mo|liwych warto[ci. ”(b) = {(000000,110100), (000001,110101), & (111111,001011)} Åð Åð Åð " Proces jest powtarzany dla ró|nych ” aby wywnioskowa warto[ci 110100 110100 110100 kolejnych bitów klucza. Kryptoanaliza ró|nicowa Kryptografia ró|nicowa " (m xor k) xor (m' xor k) = m xor m'. " Znajc ró|nice wej[cia poszukujemy " Po przej[ciu przez S-boxy ró|nica (m xor k) xor charakterystycznych ró|nic na wyj[ciu (m' xor k) ulega zmianie. " Nowa ró|nica zale|y nie tylko od m xor m', lecz równie| od warto[ci klucza. " Tylko niektóre warto[ci m xor k oraz m' xor k s mo|liwe a co za tym idzie tylko niektóre warto[ci samego k. Kryptoanaliza ró|nicowa Kryptoanaliza ró|nicowa " Umo|liwia atak na alg. DES rzdu 247 operacji z " Dla zadanego wej[cia otrzymujemy u|yciem 247 wybranych tekstów jawnych okre[lone ró|nice na wyj[ciu z prawdopodobieDstwem p " Atak przeszukania zupeBnego rzdu 255 jest " Je|eli odnajdziemy przykBady dajce bardziej  praktyczny gdy| nie wymaga dodatkowej analizy, takiej jaka jest konieczna w wy|sze prawdopodobieDstwo mo|emy przypadku analizy ró|nicowej wnioskowa o warto[ci klucza rundy " Proces musimy powtarza dla ka|dej rundy 6 2014-03-26 Kryptoanaliza liniowa Kryptoanaliza liniowa " Równie| metoda statystyczna " Rozwa|my kryptogram otrzymany na podstawie klucza oraz tekstu jawnego: " Oparta na próbie okre[lenia liniowego przybli|enia przeksztaBcenia szyfrujcego DES plaintext key " Umo|liwia skuteczny atak na DES z u|yciem 247 znanych tekstów jawnych " Praktycznie wci| niewykonalne cyphertext " Algorytm mo|e by Batwo zBamany, bo np. c[1] = p[4] Åð p[17] Åð k[5] Åð k[3] i.e. k[3] Åð k[5] = c[1] Åð p[4] Åð p[17] " A to dlatego, i| algorytm posiada liniowe zale|no[ci Kryptografia liniowa Kryptoanaliza liniowa Pr[ m[i1]*ï"*m[ir] * c[jj]*ï"*c[jv] = k[l1]*ï"*k[lu] ] = ½ + µ " Znajdz liniow aproksymacj z prawdopodobieDstwem p != ½ dla danych 1/µ2 losowych par (m, c=DES(k, m)) mamy Pr[ m[i1]*ï"*m[ir] * c[jj]*ï"*c[jv] = k[l1]*ï"*k[lu] ] = ½ + µ k[l1,& ,lu] = MAJ [ m[i1,& ,ir] * c[jj,& ,jv] ] dla pewnego µ. z prawdopodobieDstwem e" 97.7% Dla DES, istnieje taka zale|no[ dla µ = 1/221 H" 0.0000000477 " Mamy liniow zale|no[ dla bitów klucza Ò! z 1/µ2 parami we/wy mo|na znalez k[l1,& ,lu] w czasie H"1/µ2 . " Otrzymujemy pojedynczy bit klucza metod analizy najwikszego prawdopodobieDstwa " Wymaga znacznej liczby szyfrogramów " Efektywno[ metody wyznacza warto[: |p ½| Kryptoanaliza liniowa Kryptoanaliza liniowa Dla DES: MaBa zale|no[ liniowa w S5 doprowadziBa " µ = 1/221 Ò! z 242 we/wy parami mo|emy do redukcji czasu ataku do poziomu 242 znalez k[l1,& ,lu] w czasie 242 " W przybli|eniu mo|emy znalez 14 bitów Ò! nie projektuj sam algorytmów klucza w czasie 242 kryptograficznych!! " PozostaBe bity metod  brute force (zanim si tego dobrze nie nauczysz) 56-14=42 w czasie 242 " Czas caBego ataku H"243 ( << 256 ) z 242 losowymi parami we/wy 7 2014-03-26 Ataki  kwantowe Przeszukiwanie zupeBne (kwantowe) Dane m, c=E(k,m) Ogólny problem: 1 if E(k,m) = c Definiujemy: f(k) = Niech f: X ö' {0,1} bdzie funkcj. 0 if not Cel: znalez takie x"X |e f(x)=1 Grover Ò! komputer kwantowy mo|e znalez k w czasie O( |K|1/2 ) Klasyczny komputer: DES: H"228 , AES-128: H"264 najlepszy ogólny algorytm poszukiwania = O( |X| ) Jak pozosta bezpiecznym? Komputer kwantowy: komputer kwantowy Ò! algorytm z kluczem 256-bit (np. AES-256) czas poszukiwania rozwizania = O( |X|1/2 ) Kryptoanaliza algebraiczna Kryptoanaliza algebraiczna " Atak ten skuteczny jest midzy innymi dla najnowszego " Ataki te mog by stosowane zarówno przeciwko standardu szyfrowania symetrycznego -- AES. blokowym szyfrom symetrycznym jak i szyfrom " Wykazano, |e liczba operacji wymaganych do zBamania strumieniowym. tego algorytmu nie ro[nie wykBadniczo jako funkcja " Metod t zaproponowali polscy kryptolodzy liczby rund. Courtois i Pieprzyk. " Proponowany atak mo|e by lepszy ni| atak " Polega ona na przedstawieniu algorytmu w wyczerpujcy i tak atak dla algorytmu AES-128 wyniósBby 2100, natomiast dla algorytmu Serpent 2143 postaci zbioru równaD a nastpnie na ich " W ataku tym nale|aBoby u|y jednej pary blok z tekstem rozwizaniu. jawnym -- blok z tekstem zaszyfrowanym. " Metoda ta skuteczna jest równie| dla szyfrów strumieniowych. Ataki na implementacj 1. Ataki typu side channel  Pomiar czasu szyfrowania/deszyfrowania, pomiar poboru mocy szyfrowania/deszyfrowania Dzikuj za uwag smartcard [Kocher, Jaffe, Jun, 1998] 2. Analiza bBdów:  BBdy obliczeniowe w trakcie ostatniej rundy ujawniaj tajny klucz Ò! nie implementuj nigdy algorytmów samodzielnie& 8

Wyszukiwarka

Podobne podstrony:
4 Algorytmy blokowe
W8 Kodowanie i Kryptografia Algorytmy niesymetryczne 1g
Algorytmy schematy blokowe
Kryptografia wyklad
analiza algorytmow
2009 12 Metaprogramowanie algorytmy wykonywane w czasie kompilacji [Programowanie C C ]
6 6 Zagadnienie transportowe algorytm transportowy przykład 2
! Åšredniowiecze algoryzm sredniowieczny
Algorytmy genetyczne a logika rozmyta
Kryptografia a bezpieczeństwo danych
Kryptografia zadania
Lekcja algorytmy w geometrii
W14 Kodowanie i Kryptografia kody cykliczne?le 6g
Algorytm Wstrzas anafilaktyczny
Technologie informatyczne 6 algorytmy 1
KRYPTOGRAFIA KLUCZA PUBLICZNEGO

więcej podobnych podstron