4
IMPLEMENTACIJA KRIPTOANALITIČKOG ALGORITMA ZA RC4 ŠIFRU Violeta Tomašević, Institut Mihajlo Pupin, Beograd Sadržaj – U radu se sa stanovišta implementacije razmatra kriptoanalitički algoritam za RC4 šifru koji se zasniva na prikupljanju informacija. Analiziraju su analitičke forme u vidu opštih uslova, vrste informacija koje se iz njih mogu dobiti, definiše se stanje sistema za napad, kao i uticaj koji informacije imaju na stanje sistema. Takođe se daje i postupak ispitivanja opštih uslova, kao i mehanizam pretraživanja stabla opštih uslova koji dovodi do otkrivanja inicijalne RC4 tabele. 1. UVOD Zbog svoje jednostavnosti i brzine, RC4 algoritam [1] se danas smatra jednim od najčće primenjivanih stream ciphers sistema. Ovaj algoritam spada u klasu sistema sa sporopromenljivim tabelama. Šifrovana poruka se dobija primenom XOR operatora nad ulaznom porukom i izlaznom RC4 sekvencom. Element izlazne sekvence se generiše direktnim preuzimanjem vrednosti sa određene pozicije u tabeli stanja, što je definisano izlaznom funkcijom. Tabela stanja se menja tako što se u svakom trenutku permutuju vrednosti na dve pozicije u tabeli, koje su definisane funkcijom narednog stanja. Inicijalna tabela stanja se dobija primenom određenog algoritma u kome se koristi tajni ključ. U literaturi je opisan veoma mali broj konkretnih algoritama za dešifrovanje RC4 šifre, [2] i [3]. Uglavnom su rađene statističke analize čiji rezultati za sada nemaju praktičnu primenu, već više govore o osobinama RC4 izlazne sekvence. Može se dokazati da je u slučaju RC4 algoritma za dešifrovanje poruke dovoljno otkriti inicijalnu tabelu stanja (poznavanje tajnog ključa nije neophodno). U radu [4] detaljno je opisan jedan kriptoanalitički algoritam za dešifrovanje RC4 izlazne sekvence. Pošto je implementacija ovog algoritma upravo tema ovog rada, u narednom poglavlju će on biti ukratko izložen. Poglavlje 3 sadrži implementacione detalje vezane za ovaj algoritam koji obuhvataju analizu skupa informacija, opis stanja sistema za napad, uticaj informacija na stanje sistema, postupak ispitivanja opštih uslova i prikaz algoritma pretraživanja. Zaključak sledi u poglavlju 4. 2. KRIPTOANALITIČKI ALGORITAM Reč je o kriptoanalitičkom algoritmu koji se zasniva na prikupljanju informacija sve dok se ne sakupi dovoljno informacija za otkrivanje inicijalne tabele stanja. Do formulacije samog algoritma se došlo tako što je najpre formiran skup tzv. stabala zajedničkih uslova. Svako stablo zajedničkih uslova odgovara jednom simbolu izlazne sekvence. Ono sadrži sve informacije o tome na kom mestu i pod kojim uslovima bi se taj izlazni simbol mogao nalaziti u tekućoj tabeli stanja, kao i u svim prethodnim tabelama stanja. Pošto je broj mogućih varijanti vrlo veliki, uvedena je aproksimacija tako što su u pojedinim čvorovima cela podstabla (vezana za te čvorove) zamenjena jednim, nešto opštijim uslovom. Tako je broj varijanti znatno smanjen. Zatim se sa grafičke prezentacije pomoću stabala prešlo na algebarsku formu u kojoj su uprošćena stabla zajedničkih uslova opisana skupom tzv. opštih uslova. Konačni efekat ovoga se ogleda u tome da je za određeni vremenski trenutak definisan precizan skup opštih uslova koji moraju da važe da bi izlazni simbol bio na određenoj poziciji u tekućoj tabeli stanja. Broj opštih uslova je različit od trenutka do trenutka. Zatim su opšti uslovi organizovani u tzv. stablo opštih uslova. Nivoi u ovom stablu odgovaraju pojedinim vremenskim trenucima. Na nivou koji odgovara jednom vremenskom trenutku nalaze se opšti uslovi koji važe za taj vremenski trenutak (odnosno izlazni simbol u tom trenutku). Oni su uređeni po opadajućim verovatnoćama da vode do rešenja. Algoritam za nalaženje tabele stanja radi tako što, primenom hill-climbing strategije, pretražuje stablo opštih uslova (kao heuristička funkcija za procenu udaljenosti finalnog stanja od tekućeg primenjuje se verovatnoća da opšti uslov vodi do rešenja). Nove informacije do kojih dolazi, algoritam čuva u tzv. stanju sistema za napad. Naime, rezultat ispitivanja bilo kog opšteg uslova može biti da je on zadovoljen, ili da je došlo do kontradiktornosti. U prvom slučaju dolazi do pojave novih informacija koje slede iz ispitivanog opšteg uslova i potrebno ih je dodati stanju sistema. U drugom slučaju, informacije sadržane u opštem uslovu su kontradiktorne sa informacijama koje već postoje u stanju sistema, pa treba preći na ispitivanje narednog opšteg uslova po navedenoj strategiji. Kada se u stanju sistema sakupi dovoljno informacija o inicijalnoj tabeli stanja, algoritam završava rad jer je rešenje nađeno. 3. IMPLEMENTACIJA ALGORITMA Kao što se može videti u prethodnom poglavlju, opisani kriptoanalitički algoritam je prilično složen, tako da njegova programska realizacija zahteva pažljivu analizu. Pošto centralno mesto u algoritmu pripada opštim uslovima (jer su u njima sadržane informacije do kojih se može doći u datom trenutku), kompletna realizacija se zasniva na njihovoj analizi. Stoga će u okviru ovog poglavlja najpre biti navedeni opšti uslovi. Nakon toga će biti ustanovljeni tipovi informacija koji se pojavljuju u njima, a zatim će biti definisano stanje sistema za napad. Sledi opis načina modifikovanja stanja sistema u slučaju pojave novih informacija. Onda će biti prikazan postupak ispitivanja opštih uslova i, na kraju, mehanizam pretraživanja stabla opštih uslova. 3.1. OPŠTI USLOVI U tabeli 1 navedeni su opšti uslovi C1-C5. Uslovi C3 i C4 sastoje se od t-1 uslova istog tipa, što znači da njihov broj zavisi od tekućeg trenutka t. Zbornik radova 50. Konferencije za ETRAN, Beograd, 6-8. juna 2006, tom III Proc. 50th ETRAN Conference, Belgrade, June 6-8, 2006, Vol. III 53

IMPLEMENTACIJA KRIPTOANALITIČKOG ALGORITMA ZA …R)AN_1955-2006/... · IMPLEMENTACIJA KRIPTOANALITIČKOG ALGORITMA ZA RC4 ŠIFRU Violeta Tomašević, Institut Mihajlo Pupin, Beograd

Embed Size (px)

Citation preview

IMPLEMENTACIJA KRIPTOANALITIČKOG ALGORITMA ZA RC4 ŠIFRU

Violeta Tomašević, Institut Mihajlo Pupin, Beograd

Sadržaj – U radu se sa stanovišta implementacije razmatra kriptoanalitički algoritam za RC4 šifru koji se zasniva na prikupljanju informacija. Analiziraju su analitičke forme u vidu opštih uslova, vrste informacija koje se iz njih mogu dobiti, definiše se stanje sistema za napad, kao i uticaj koji informacije imaju na stanje sistema. Takođe se daje i postupak ispitivanja opštih uslova, kao i mehanizam pretraživanja stabla opštih uslova koji dovodi do otkrivanja inicijalne RC4 tabele. 1. UVOD

Zbog svoje jednostavnosti i brzine, RC4 algoritam [1] se danas smatra jednim od najčešće primenjivanih stream ciphers sistema. Ovaj algoritam spada u klasu sistema sa sporopromenljivim tabelama. Šifrovana poruka se dobija primenom XOR operatora nad ulaznom porukom i izlaznom RC4 sekvencom. Element izlazne sekvence se generiše direktnim preuzimanjem vrednosti sa određene pozicije u tabeli stanja, što je definisano izlaznom funkcijom. Tabela stanja se menja tako što se u svakom trenutku permutuju vrednosti na dve pozicije u tabeli, koje su definisane funkcijom narednog stanja. Inicijalna tabela stanja se dobija primenom određenog algoritma u kome se koristi tajni ključ.

U literaturi je opisan veoma mali broj konkretnih algoritama za dešifrovanje RC4 šifre, [2] i [3]. Uglavnom su rađene statističke analize čiji rezultati za sada nemaju praktičnu primenu, već više govore o osobinama RC4 izlazne sekvence.

Može se dokazati da je u slučaju RC4 algoritma za dešifrovanje poruke dovoljno otkriti inicijalnu tabelu stanja (poznavanje tajnog ključa nije neophodno). U radu [4] detaljno je opisan jedan kriptoanalitički algoritam za dešifrovanje RC4 izlazne sekvence. Pošto je implementacija ovog algoritma upravo tema ovog rada, u narednom poglavlju će on biti ukratko izložen. Poglavlje 3 sadrži implementacione detalje vezane za ovaj algoritam koji obuhvataju analizu skupa informacija, opis stanja sistema za napad, uticaj informacija na stanje sistema, postupak ispitivanja opštih uslova i prikaz algoritma pretraživanja. Zaključak sledi u poglavlju 4.

2. KRIPTOANALITIČKI ALGORITAM

Reč je o kriptoanalitičkom algoritmu koji se zasniva na prikupljanju informacija sve dok se ne sakupi dovoljno informacija za otkrivanje inicijalne tabele stanja. Do formulacije samog algoritma se došlo tako što je najpre formiran skup tzv. stabala zajedničkih uslova. Svako stablo zajedničkih uslova odgovara jednom simbolu izlazne sekvence. Ono sadrži sve informacije o tome na kom mestu i pod kojim uslovima bi se taj izlazni simbol mogao nalaziti u tekućoj tabeli stanja, kao i u svim prethodnim tabelama

stanja. Pošto je broj mogućih varijanti vrlo veliki, uvedena je aproksimacija tako što su u pojedinim čvorovima cela podstabla (vezana za te čvorove) zamenjena jednim, nešto opštijim uslovom. Tako je broj varijanti znatno smanjen. Zatim se sa grafičke prezentacije pomoću stabala prešlo na algebarsku formu u kojoj su uprošćena stabla zajedničkih uslova opisana skupom tzv. opštih uslova. Konačni efekat ovoga se ogleda u tome da je za određeni vremenski trenutak definisan precizan skup opštih uslova koji moraju da važe da bi izlazni simbol bio na određenoj poziciji u tekućoj tabeli stanja. Broj opštih uslova je različit od trenutka do trenutka. Zatim su opšti uslovi organizovani u tzv. stablo opštih uslova. Nivoi u ovom stablu odgovaraju pojedinim vremenskim trenucima. Na nivou koji odgovara jednom vremenskom trenutku nalaze se opšti uslovi koji važe za taj vremenski trenutak (odnosno izlazni simbol u tom trenutku). Oni su uređeni po opadajućim verovatnoćama da vode do rešenja. Algoritam za nalaženje tabele stanja radi tako što, primenom hill-climbing strategije, pretražuje stablo opštih uslova (kao heuristička funkcija za procenu udaljenosti finalnog stanja od tekućeg primenjuje se verovatnoća da opšti uslov vodi do rešenja). Nove informacije do kojih dolazi, algoritam čuva u tzv. stanju sistema za napad. Naime, rezultat ispitivanja bilo kog opšteg uslova može biti da je on zadovoljen, ili da je došlo do kontradiktornosti. U prvom slučaju dolazi do pojave novih informacija koje slede iz ispitivanog opšteg uslova i potrebno ih je dodati stanju sistema. U drugom slučaju, informacije sadržane u opštem uslovu su kontradiktorne sa informacijama koje već postoje u stanju sistema, pa treba preći na ispitivanje narednog opšteg uslova po navedenoj strategiji. Kada se u stanju sistema sakupi dovoljno informacija o inicijalnoj tabeli stanja, algoritam završava rad jer je rešenje nađeno.

3. IMPLEMENTACIJA ALGORITMA

Kao što se može videti u prethodnom poglavlju, opisani kriptoanalitički algoritam je prilično složen, tako da njegova programska realizacija zahteva pažljivu analizu. Pošto centralno mesto u algoritmu pripada opštim uslovima (jer su u njima sadržane informacije do kojih se može doći u datom trenutku), kompletna realizacija se zasniva na njihovoj analizi. Stoga će u okviru ovog poglavlja najpre biti navedeni opšti uslovi. Nakon toga će biti ustanovljeni tipovi informacija koji se pojavljuju u njima, a zatim će biti definisano stanje sistema za napad. Sledi opis načina modifikovanja stanja sistema u slučaju pojave novih informacija. Onda će biti prikazan postupak ispitivanja opštih uslova i, na kraju, mehanizam pretraživanja stabla opštih uslova.

3.1. OPŠTI USLOVI

U tabeli 1 navedeni su opšti uslovi C1-C5. Uslovi C3 i C4 sastoje se od t-1 uslova istog tipa, što znači da njihov broj zavisi od tekućeg trenutka t.

Zbornik radova 50. Konferencije za ETRAN, Beograd, 6-8. juna 2006, tom III Proc. 50th ETRAN Conference, Belgrade, June 6-8, 2006, Vol. III

53

Relevantne veličine u sistemu su: tabele stanja S, druge pozicije koje učestvuju u permutovanju, j (prve pozicije odgovaraju tekućem vremenskom trenutku, videti jednačine za RC4 algoritam u [1]) i pozicije sa kojih se preuzimaju izlazni simboli, L. Simboli izlazne sekvence su označeni sa Z. Izraz p(b) predstavlja poziciju na kojoj se vrednost b nalazi u inicijalnoj tabeli S0.

Tabela 1. Opšti uslovi C1 jt = t - Zt + jt-1

St-1(t) = t - Zt Lt = t St-1(jt) = Zt

C2 jt = Zt + jt-1 St-1(t) = Zt

Lt = jt ≠ t St-1(jt) = jt-1

C3(p∈[2,t]) Zt = jt-p+1 - jt-p St-p(t-p+1) = Zt St-1(jt) = jt-p+1- jt+jt-1

Lt = jt-p+1 ≠ t, t-1,..., t-p+1, jt,jt-1,…,jt-p+2 St-1(t) = jt -jt-1

C4(p∈[2,t]) Zt = Lt-p+1 - jt-p+1 + jt-p St-p+1(t-p+1)= Zt St-1(jt) = t - p + 1 - jt + jt-1

Lt = t-p+1 ≠ jt,jt-1, …, jt-p+2 St-1(t) = jt - jt-1

C5 Lt ≠ t, t-1,…,1, jt,jt-1,…,j1 St-1(t) = jt - jt-1

Lt = p(Zt) St-1(jt) = p(Zt)- jt+ jt-1

Kao što se može videti, opšti uslovi sadrže informacije o parametrima j i L, kao i informacije o sadržajima S tabela na određenim pozicijama.

3.2. INFORMACIJE

Informacije predstavljaju vezu između relevantnih veličina u sistemu. Analizom opštih uslova izdvojeni su osnovni tipovi informacija koji povezuju parametre j i L. Oni su dati u sledećoj tabeli.

Tabela 2. Osnovni tipovi informacija (iz opštih uslova) jk = b jk ≠ b jk = b+ jl jk ≠ jl p(a) ≠ b p(a) ≠ jk Lk = b Lk ≠ b Lk = jl Lk ≠ jl p(a) = Lk b = Lk- jk + jk-1

Sa k i l označeni pozitivni celi brojevi, a sa a i b celi brojevi po modulu 2n (n je dužina reči u tabeli stanja u bitima).

Osim navedenih, mogući su još neki tipovi informacija, koji se dobijaju kombinovanjem osnovnih tipova prilikom ispitivanja konzistentnosti skupa informacija.

Takođe, od interesa su i informacije koje ukazuju na vrednosti na pojedinim pozicijama u S tabelama.

3.3. STANJE SISTEMA ZA NAPAD

Pod stanjem sistema za napad podrazumeva se skup svih informacija koje su raspoložive u određenom vremenskom trenutku. Pošto informacije mogu da budu vrlo raznovrsne, postavlja se problem njihove organizacije. Jedan od mogućih načina njihovog predstavljanja je tabelarna organizacija. U tom smislu, definisano je stanje sistema koje sadrži sledeće tabele:

• tabela J, koja u trenutku t, sadrži informacije o parametrima j1, j2,..., jt

• tabela L, koja u trenutku t, sadrži informacije o pozicijama L1, L2,..., Lt

• tabele S0, S1,..., St, koje sadrže informacije o sadržaju istoimenih tabela tokom šifrovanja do trenutka t

• tabela EQ, koja sadrži jednačine u kojima figurišu relevantne veličine do trenutka t

Po svojoj strukturi, tabela J u trenutku t ima t vrsta, pošto se u svakoj iteraciji generiše novi parametar j. Svaka vrsta sadrži informacije o jednom parametru j, koje su raspoređene u dve kolone (tabela 3). U prvoj koloni se nalaze informacije koje kazuju čemu je j jednako, a u drugoj od čega se razlikuje. U skladu sa opštim uslovima, parametar j može da ima konkretnu vrednost, da je zavisan od prethodnog parametra j, i da je nepoznat. Takođe, može da se razlikuje od neke konkretne vrednosti, od pozicije na kojoj se nalazi neka poznata vrednost, ili od nekog drugog parametra j. Tabela 3. Mogući sadržaj k-te vrste tabele J

JEDNAKO RAZLIČITO Konkretna vrednost Konkretna vrednost iz [0,2n-1] k b+ jk-1 p(b) - ji, i > k -

Tabela L ima istu strukturu kao tabela J. U svakoj vrsti se nalaze informacije o jednom parametru L (tabela 4). U prvoj koloni se nalaze informacije o tome čemu je L jednako, a u drugoj od čega se razlikuje. Iz opštih uslova sledi da L može biti jednako konkretnoj vrednosti, nekom p(b), ili nekom parametru j. Takođe, može da se razlikuje od neke konkretne vrednosti. Tabela 4. Mogući sadržaj k-te vrste tabele L

JEDNAKO RAZLIČITO Konkr. vred. iz [0,2n-1] Konkr. vred iz [0,2n-1] k p(b) - ji

U tabeli 5 prikazana je struktura tabele Si, i ∈ [1,t]. Ova tabela ima onoliko vrsta koliko je informacija o njoj poznato u datom trenutku. Dakle, dopušteno je da ima i više od 2n vrsta. Svakoj informaciji odgovara jedna vrsta. Informacija govori o tome na kojoj poziciji se nalazi koja vrednost. U prvoj koloni data je pozicija, a u drugoj vrednost na toj poziciji. Pozicija može biti neka konkretna vrednost, izraz p(b), ili neki parametar j. Vrednost može biti konkretna, ili data preko izraza koji sadrži nekoliko relevantnih veličina (jedno p(b) i tri parametra j).

Tabela 5. Mogući izgled vrste Si tabele JEDNAKO RAZLIČITO

Konkr. vred. iz [0,2n-1] Konkr. vred. iz [0,2n-1] p(b) Izraz od više veličina jk

Tabela EQ sadrži informacije tipa jednačine koje, zbog svog oblika, ne mogu biti sačuvane ni u jednoj drugoj tabeli. Svakoj jednačini odgovara jedna vrsta u tabeli. Jednačina je predstavljena dvema kolonama. U prvoj koloni se prikazuje leva strana jednačine, koja može biti samo neka konkretna vrednost, dok se u drugoj koloni nalazi algebarski izraz od više relevantnih veličina (tabela 6).

Tabela 6. Izgled vrste EQ tabele ( = )

Konkr. vred. iz [0,2n-1] Izraz od više veličina

54

Kao što se vidi, informacije u navedenim tabelama se međusobno razlikuju po svojoj prirodi. U tabelama J i L se čuvaju informacije koje direktno određuju vrednosti odgovarajućih parametara. Informacije u S tabelama se odnose na sadržaj ovih tabela, dok se u EQ tabeli čuvaju ostale veze koje postoje između relevantnih veličina u sistemu.

Pojava svake nove informacije uslovljava promenu stanja sistema. Zavisno od tipa informacije, ona može da modifikuje sve, ili samo neke tabele stanja.

3.4. PRIMENA LISTE INFORMACIJA

Lista informacija predstavlja skup novih informacija do kojih se došlo u nekom trenutku. Pod njenom primenom podrazumeva se dodavanje ovih informacija postojećem stanju sistema. Postupak modifikovanja stanja sistema prikazan je na slici 1. Lista novih informacija l_inf najpre se primenjuje na tabelu J. Informacije se primenjuju sukcesivno. Kao rezultat toga, osim izmena u sadržaju tabele J, dolazi i do generisanja izlazne liste informacija l_J_izl.

Dobijena izlazna lista za tabelu J predstavlja ulaznu listu informacija za tabelu L. Primenom ove liste na tabelu L menja se njen sadržaj i generiše izlazna lista informacija l_L_izl.

Sl. 1. Primena liste informacija na stanje sistema

Ovako generisana izlazna lista informacija, u datom trenutku t, predstavlja ulaznu listu za tabele Si, i ∈ [1,t] i EQ. Zbog prirode ovih tabela nije od značaja na koju će se od njih lista prvo primeniti. Pošto su sve informacije iz ulazne liste već primenjene na tabele J i L, nakon njihove primene na EQ i Si tabele, one se gube.

Prilikom primene liste l_L_izl na tabele Si, može do dođe do izmena u sadržaju nekih od navedenih tabela. Takođe, može da dođe i do pojave novih informacija. Unija lista nastalih sukcesivnom primenom informacija iz ulazne liste na tabele Si, i ∈ [1,t] predstavlja izlaznu listu informacija l_Si_izl.

Primenom ulazne liste l_L_izl na tabelu EQ, menja se njen sadržaj i generiše izlazna lista informacija l_EQ_izl. Ova izlazna lista se spaja sa izlaznom listom l_Si_izl i dobija jedinstvena izlazna lista informacija l_izl. Nakon toga se ispituje da li ova izlazna lista sadrži neku novu informaciju. Ukoliko ne sadrži, postupak primene liste novih informacija se završava. Međutim, ukoliko navedena lista nije prazna, potrebno ju je primeniti na trenutno stanje sistema na način koji je upravo opisan (najpre se primenjuje na tabelu J, zatim na L, pa na EQ i Si tabele). Ovaj ciklički postupak se ponavlja sve dok se ne dobije prazna lista informacija l_izl.

Pod primenom liste informacija na stanje sistema podrazumeva se kompletan opisani postupak.

3.5. ISPITIVANJE OPŠTIH USLOVA

Ispitivanje bilo kog od opštih uslova u trenutku t doprinosi rešavanju problema na tri načina:

• opšti uslov određuje vrednosti parametara jt i Lt, • iz opšteg uslova sledi lista novih informacija koja se

može nazvati početnom listom informacija, s obzirom da njenom primenom počinje ispitivanje uslova,

• opšti uslov definiše elemente koje treba ubaciti u tabele Si, i ∈ [1,t-1].

Osim početne liste informacija koja se dobija iz opšteg uslova, nove informacije se mogu dobiti i kao rezultat ubacivanja elementa u neku S tabelu.

Pretpostavimo da se sistem nalazi u stanju koje odgovara vremenskom trenutku t-1. Ovo stanje je aktuelno u trenutku t pre ispitivanja opštih uslova. Cilj je da se ispita kako opšti uslov utiče na stanje sistema, odnosno, da li se njegovom primenom dobijaju nove informacije koje vode ka rešenju, možda i samo rešenje, ili dolazi do kontradiktornosti zbog koje opšti uslov postaje neprimenljiv.

Ispitivanje se odvija u četiri faze:

1) U prvoj fazi se u tabele J i L unose vrednosti parametara jt i Lt. Pošto su ovi parametri u datom trenutku nezavisni od ostalih veličina u sistemu, nema potrebe obavljati bilo kakva dodatna ispitivanja.

2) Druga faza podrazumeva generisanje početne liste informacija koja sledi iz opšteg uslova. Ona se primenjuje na stanje sistema i modifikuje ga (videti poglavlje 3.4.). Ukoliko tom prilikom dođe do kontradiktornosti, razmatrani uslov ne može biti zadovoljen, pa se ispitivanje prekida. U suprotnom, prelazi se na sledeću fazu.

3) U trećoj fazi se u odgovarajuće S tabele ubacuju vrednosti koje su date u opštem uslovu. Ukoliko pri tome dođe do kontradiktornosti, opšti uslov ne može biti zadovoljen, pa se ispitivanje prekida. U suprotnom, kao posledica unosa elementa, generiše se lista informacija. Ako je ona prazna, prelazi se na sledeću fazu. Ako nije, treba je primeniti na trenutno

Tabela J

Tabela L

Tabela EQTabele Si

l_inf

l_J_izl

l_L_izl

l_EQ_izl l_Si_izl

l_izl

da

ne

Novo stanje sistema

Tekuće stanje sistema

l_izl

l_izl=[ ]

55

stanje sistema. Ako tada dođe do kontradiktonosti, ispitivanje opšteg uslova je neuspešno i prekida se. Ukoliko nema kontradiktornosti, prelazi se na četvrtu fazu.

4) Ova faza predstavlja proveru da li rešenje nađeno. U njoj se ispituje da li je poznato 2n-1 elemenata inicijalne tabele S0. Ako jeste, rešenje je nađeno. Ako nije, opšti uslov je zadovoljen, a polazno stanje sistema je izmenjeno u skladu sa informacijama iz opšteg uslova. Ispitivanje opšteg uslova se ovim završava.

3.6. MEHANIZAM PRETRAŽIVANJA

U poglavlju 2 je rečeno da se razmatrani kriptoanalitički algoritam zasniva na pretraživanju stabla opštih uslova koristeći osnovni princip hill-climbing strategije pretraživanja. Ovo stablo je prikazano na slici 2. Pošto je u prethodnom poglavlju objašnjeno kako se ispituje jedan opšti uslov, u nastavku će biti opisan mehanizam pretraživanja.

Sl. 2. Stablo opštih uslova

Postupak rekonstrukcije inicijalne tabele otpočinje formiranjem početnog stanja sistema koje odgovara praznom skupu informacija. Zatim se ispituju opšti uslovi koji odgovaraju čvorovima na prvom nivou u stablu. Opšti uslovi na bilo kom nivou u stablu ispituju se u redosledu s leva na desno, čime se favorizuju više verovatna stanja. Ukoliko je prilikom ispitivanja opšteg uslova došlo do kontradiktornosti, algoritam prelazi na ispitivanje sledećeg opšteg uslova na tekućem nivou, uzimajuću u obzir stanje sistema koje potiče sa prethodnog nivoa. Ako se kontradiktornost pojavila prilikom ispitivanja poslednjeg opšteg uslova na tekućem nivou, prelazi se na prethodni nivo i nastavlja sa ispitivanjem narednog uslova na tom nivou. Nasuprot ovome, ako je

ispitivani opšti uslov zadovoljen, proverava se da li je nađeno rešenje. Ako nije, formira se novo stanje sistema koje, osim starog stanja, obuhvata i nove informacije proistekle iz opšteg uslova. Zatim se prelazi na prvi čvor na sledećem nivou u stablu. Ako je nakon ispitivanja opšteg uslova rešenje nađeno, postupak rekonstrukcije se završava.

4. ZAKLJUČAK

U radu su prikazana glavna razmatranja koja su sprovedena pre nego što se pristupilo programskoj implementaciji kriptoanalitičkog algoritma za RC4 šifru koji se zasniva na prikupljanju informacija. Zbog ograničenog prostora, neki detalji su izostavljeni.

Algoritam je implementiran u programskom jeziku C. Testiranje je rađeno za dve verzije RC4 algoritma, zavisno od broja bita u izlaznom simbolu: za n=2 (obrađeno 4!=24 ulaznih permutacija) i n=3 (obrađeno 8!=40320 ulaznih permutacija). Iako dobijeni rezultati odgovaraju očekivanim (broj simbola potrebnih za nalaženje inicijalne tabele, složenost), potrebno je sprovesti dalja testiranja za veće vrednosti parametra n, s obzirom da se u praksi najčešće koristi varijanta n=8.

LITERATURA

[1] B. Schneier, Applied Cryptography, Willey, New York, 1996.

[2] L.Knudsen, W.Meier, B.Prenned, V.Rijmen, S.Verdoolaege, “Analysis Methods for (Alleged) RC4”, ASIACRYPT ’98, LNCS, Vol. 1514, 1998

[3] S. Mister, S. Tavares, “Cryptanalysis of RC4-like Ciphers”, SAC ’98, Springer-Verlag, 1998, pp.136-148

[4] V. Tomašević, S. Bojanić, O. Nieto-Taladriz, “A Cryptanalytic Attack on RC4 Stream Cipher”, WSEAS Transactions on Computers, Issue 2, Volume 3, ISSN 1109-2750, April 2004, pp.267-272

Abstract – This paper considers the implementation aspects of an information-based cryptanalytical attack on the RC4 stream cipher. An abstraction in form of general conditions is analyzed. We extract relevant kinds of information, define the state for attack, and show the impact of the information on the system. Examination of general conditions is also presented as well as search algorithm of the general conditions tree, which leads to recovering of the initial RC4 table.

IMPLEMENTATION OF A CRYPTANALYTICAL ATTACK ON RC4 STREAM CIPHER

Violeta Tomašević

………………………….......................................

………….……...

……………................

Nivo 0

1

2

t - 1

t Ct

V(t) CtV(t)-1Ct

1 Ct4 Ct

3 Ct2

Ct-11 Ct-1

2 Ct-13 Ct-1

V(t-1)-1 Ct-1V(t-1)

C21 C2

2 C2V(2)-1 C2

V(2)

C11 C1

2 C1V(1)

C01

……

...

gde je V(t) = 2t+1

56