zastita informacija

145
'' Počnite od početka,'' reče kralj, veoma ozbiljno, '' i nastavite dok ne dođete do kraja: onda stanite.'' - Lewis Carroll, Alisa u zemlji čuda 1.1 ULOGE KARAKTERA Prema tradiciji, Alisa i Bob su dobri. Ponekad su nam potrebni dodatni dobri momci kao što je Čarli. Trudi je naš generički loš momak, koji pokušava da napadne sistem na neki način. Neki autori zapošljavaju tim loših momaka čije ime upućuje na određene loše aktivnosti. U ovom slučaju Trudi je uljez, Eva je prisluškivač ... Trudi će biti naš loš momak za svaku svrhu. Alisa, Bob i Trudi i ostatak grupe ne moraju biti ljudi. Na primer, jedan mogući scenario jeste da je Alisa laptop, Bob server, a Trudi čovek. 1.2 ALISINA ONLINE BANKA 1 UVOD

Upload: vedranjeremic

Post on 19-Jun-2015

1.161 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: Zastita informacija

'' Počnite od početka,'' reče kralj, veoma ozbiljno, '' i nastavite dok ne dođete do kraja: onda stanite.''

- Lewis Carroll, Alisa u zemlji čuda

1.1 ULOGE KARAKTERA

Prema tradiciji, Alisa i Bob su dobri. Ponekad su nam potrebni dodatni dobri momci kao što je Čarli. Trudi je naš generički loš momak, koji pokušava da napadne sistem na neki način. Neki autori zapošljavaju tim loših momaka čije ime upućuje na određene loše aktivnosti. U ovom slučaju Trudi je uljez, Eva je prisluškivač ... Trudi će biti naš loš momak za svaku svrhu.Alisa, Bob i Trudi i ostatak grupe ne moraju biti ljudi. Na primer, jedan mogući scenario jeste da je Alisa laptop, Bob server, a Trudi čovek.

1.2 ALISINA ONLINE BANKA

Pretpostavimo da Alisa osniva online bankarski posao, koji se zove Alisina online banka – AOB. Koji su Alisini interesi za sigurnost informacija? Ako je Bob Alisin korisnik koji su njegovi interesi za sigurnost informacija? Ako pogledamo AOB sa Trudine strane, koje sigurnosne ranjivosti možemo videti?Prvo razmotrimo tradicionalnu trojku, poverljivost, integritet i raspoloživost u kontekstu Alisine banke. A onda ćemo obratiti pažnju na druge sigurnosne interese.

1

UVOD

Page 2: Zastita informacija

1.2.1 POVERLJIVOST, INTEGRITET I RASPOLOŽIVOST

Poverljivost ima za cilj da predvidi neautorizovano čitanje informacija. AOB verovatno ne bi puno brinula o tajnosti informacija sa kojim posluje, ali njenu korisnici brinu. Bob ne želi da Trudi zna koliko on ima novca na računu. Alisina banka bi imala pravnih problema ukoliko bi se ugrozila zaštita takvih informacija.

Informacija ima integritet ako je neautorizovano pisanje zabranjeno. Alisina banka mora zaštititi integritet informacija na računu da bi sprečila, recimo, povećanje stanja na njenom računu ili promenu stanja na Bobovom računu.

Denial of service (napadi odbijanje servisa) su relativno skoriji razlozi za brigu. Takvi napadi pokušavanju da smanje pristup informacijama. Kao rezultat povećanja DoS napada, raspoloživost je postala osnovni predmet u zaštiti informacija. Raspoloživost je briga i za Alisu i za Boba. Ako AOB web stranica nije dostupna, tada Alisa ne može dobijati novac od transakcija klijenata i Bob ne može da završi svoj posao. Tada Bob može njegov posao završiti negde drugo. Ako Trudi zavidi Alisi ili samo želi biti pakosna – ona može primeniti napad odbijanja servisa na Alisinu banku.

1.2.2 IZNAD PIR

Poverljivost, integritet i raspoloživost (PIR) su samo početak priče o zaštiti informaciji. Kada se Bob uloguje na svoj računar, kako Bobov računar odredi da je Bob stvarno Bob, a nije Trudi. A kada se Bob uloguje na račun u Alisinoj banci, kako AOB zna da je Bob zaista Bob, a nije Trudi. Iako ova dva autentifikacijska problema izgledaju slično spolja, ispod površine oni su potpuno drugačiji. Autentifikacija na one-stand sistemu zahteva da se Bobova lozinka verifikuje. Da bi bili sigurni neke pametne tehnologije iz oblasti kriptografije su potrebne.

Autentifikacija na mreži je otvorena za mnoge vrste napada. Poruka poslata preko mreže može biti viđena od strane Trudi. Da bi stvari bile gore, trudi sem što može presresti poruku, ona je može izmeniti i upisati poruke koje je ona sastavila. Takođe na osnovu nekih starih poruka može uveriti AOB da je ona Bob. Autentifikacija u tim slučajevima zahteva obraćanje pažnje protokolima koji su korišteni. Kriptografija takođe ima veoma važnu ulogu u sigurnosnim protokolima. Kada je Bob autentifikovan u Alisinoj banci, tada Alisa mora imati neka ograničenja kod Bobovih aktivnosti. Na primer, Bob ne može gledati stanje Čarlijevog računa ili instalirati novi softver na sistemu. Sem, administrator sistema, može instalirati novi softver na AOB sistemu. Upotrebljavanje takvih ograničenja je u domenu autorizacije. Primetite da autorizacija pravi ograničenja na akcije autentifikovanih korisnika. Kako autorizacija i autentifikacija imaju posla sa predmetima pristupa resursima, onda ćemo oboje staviti pod naslov pristup kontroli.Svi mehanizmi zaštite informacija o kojima smo do sada govorili su implementirani u softver. Moderni softverski sistemi teže da budu veliki, kompleksni i puni grešaka. Ove greške često vode ka kvarovima zaštite. Koji su ovo kvarovi i kako su iskorišteni ? Kako AOB može biti sigurna da će se njen softver ponašati ispravno. Kako AOB softver diveloperi mogu ograničiti broj kvarova zaštite u softveru kojeg razvijaju? Mi ćemo ispitati ova pitanj (i mnoga druga) kada budemo govorili o softveru.Iako greške mogu (i čine to) povećati kvarove zaštite, ovi kvarovi su stvoreni nenamerno. Sa druge strane, neki softveri su i stvoreni da čine zlo. Takvi softveri ili malveri uključuju kompjuterske viruse, crve koji muče internet danas. Kako ovi loši stvorovi rade ono što rade i šta Alisina banka može uraditi da bi ograničila njihovu štetu. A šta Trudi treba da radi da bi povećala štetu? Bob takođe ima mnogo softverskih briga? Na primer, kada Bob ukuca svoju lozinku na njegov računar, kako da on zna da njegova lozinka nije presretena i poslata Trudi? Ako Bob vodi transakciju na www.aliceonlinebank.com kako on zna da je transakcija na njegovom ekranu ista kao ona u banci?

Page 3: Zastita informacija

Generalno, Bob mora verovati da se softver ponaša onako kako treba nasuprot onom kako bi Trudi želela da se on ponaša? Razmotrićemo i ova pitanja kasnije. Kada govorimo o softveru i sigurnosti moramo obratiti pažnju na operativni sistem ili teme u vezi sa operativnim sistemom. Operativni sistemi su veliki i kompleksni delovi softvera. Operativni sistemi takođe primoravaju većinu sigurnosti u svakom sistemu, tako da je neko znanje o operativnim sistemima potrebno da bi se bolje razmotrila zaštita informacija.

1.3 O OVOJ KNJIZI

Lapson [139] smatra da stvarna svetska sigurnost zavisi od sledeće tri stvari:

Specifikacija/načelo: Šta je sistem u mogućnosti da uradi?Implementacija/mehanizam: Kako on to radi?Ispravke/osiguranje: Da li on to stvarno radi?

A ja bih dodao i četvrto:

Ljudska priroda: Može li sistem preživeti ''pametne'' korisnike?

U središtu ove knjige je kao primarno implementacija/mehanizam. Ja verujem da je to prihvatljivo jer snage, slabosti i vezana ograničenja direktno utiču na sve druge kritične apekte sigurnosti. Drugim rečima, bez razumnog shvatanja mehanizma nije moguće ni diskutovati o mnogim drugim temama. Kategorisao sam predmete razgovora u ovoj knjizi u četiri glavana dela. Prvi deo se bavi kriptografijom, a druga dva dela pokrivaju pristup kontroli i protokolima. Poslednji deo se bavi softverom.

1.3.1 KRIPTOGRAFIJA

Kriptografija ili ''tajni kodovi'' su osnovni alati u zaštiti informacija. Kriptografija ima mnoge primene, uključujući zaštitu tajnosti i integriteta, iznad mnogih drugih važnih funkcija zaštite informacija. Govorićemo o kriptografiji detaljno jer je ona pozadina za mnoge stvari u ovoj knjizi.

Počećemo sa razmenjivanjem kriptografije pogledom na sistem šifri. Ovi sistemi prikazuju osnovne principe koji su uposleni u moderne digitalne šifarske sisteme, ali na mnogo jednostavniji način.

Sa ovim predznanjem spremni smo da izučavamo modernu kriptografiju. Simetrični ključevi kriptografije i javni ključevi kriprografije igraju glavnu ulogu u zaštiti informacija i mi ćemo čitav ovaj deo knjige razmatrati tu temu. Onda ćemo obratiti pažnju na heš funkcije koje su još jedan osnovni alat. Heš funkcije se koriste u mnogim različitim kontekstima u zaštiti informacija. Neke su veoma iznenađujuće i ne uvek intuitivne. Mi ćemo govoriti o heš funkcijama za online naredbe i smanjenje spamova.

Takođe ćemo obratiti pažnju na nekoliko posebnih tema koje se odnose na kriptografiju. Na primer, govorićemo o skrivanju informacija, gde je cilj da Alisa i Bob komuniciraju bez trudi iako znaju da je neka informacija prosleđena. Ovo je relativno blisko sa watermarking-om, što ćemo takođe ukratko obraditi.

Page 4: Zastita informacija

Poslednji deo se bavi modernom kriptografijom, a to je način na koji se razbijaju moderni šifarski sistemi. Iako je to relativno tehnička i specijalizovana inforamcija, potrebno je ceniti metode napada da bi se razumeli dizajnerski principi iza modernih kriptografskih sistema.

1.3.2 KONTROLA PRISTUPA

Kontrola pristupa se bavi autentifikacijom i autorizacijom. Pod autentifikacijom podrazumevamo mnoge stvari koje se odnose na lozinke. Lozinke su danas najviše korištena forma autentifikacije, ali pre svega zato što su besplatne, a definitivno ne zato što su sigurne.

Naučićemo kako da napravimo sigurnu lozinku. A onda ćemo govoriti o temama koje okružuju odabir sigurnih lozinki. Iako je moguće izabrati jake lozinke koje su relativno lake za zapamtiti, važno je ubediti korisnike na takva načela. U stvari, slabe lozinke su glavni razlog slabosti zaštite u današnjim sistemima.

Alterantiva lozinkama uključuje biometriku i smart kartice. Razmotirćemo i neke metode biometrijske autentifikacije.

Autorizacija se bavi ograničenjem smeštenim na sutentifikacione korisnike. Kada je Alisa sigurna da je Bob stvarno Bob, ona mora primeniti ograničenja na Bobove aktivnosti. Dve klasične metode za primenu takvih ograničenja lista kontrola pristupa i ovlašćenja. Preći ćemo prednosti i mane ove dve metode.

Autorizacija podrazumeva nekoliko relativno specijalizovanih tema. Govorićemo o višenivovskoj zaštiti. Na primer, vojska ima informacije koje su TOP SECRET i SECRET. Neki korisnici mogu videti obe vrste informacija, a neki samo SECRET. Ako su oba tipa informacija na jednom sistemu kako ćemo primeniti takvu vrstu ograničenja. Ovo je prednet autorizacije, koja ima potencijalne implementacije iznad klasifikovanih vojnih i vladinih sistema.

Višenivovska zaštita se odnosi na retka područja modelinga zaštite. Iza područje takvih modelinga leži suština potreba za zaštitu sistema. Verifikujući nekoliko jednostavnih potreba mi znamo da taj sistem zadovoljava određeni model zaštite. Ako je tako sistem može automatski da nasledi sve potrebe zaštite koje su poznate na bi takav sistem postojao. Danas mi poznajemo dva jednostavna modela zaštite i oba se razvijaju u oblasti višenivovske zaštite.

Višenivovska zaštita daje mogućnost razgovora o željenim programima i izvođenjima kontrole. Željeni programi su neodređeni programi za komunikaciju. Takvi programi su zajednički i kreiraju potencijalne probleme zaštite. Kontrola izvođenja teži da ograniči informacije koje mogu nenamerno dovesti do baze podataka na osnovu legitimnih upita korisnika. Oba problema su teški za bavljenje sa efikasnošću u realnom sistemu.

Pošto se firewall-ovi ponašaju kao oblik pristupa kontrole za mrežu mi proširujemo već poznatu definiciju pristupa kontrole da i ona uključuje i firewall-ove. Bez obzira na tip pristupa kontrole napadi se uvek mogu dogoditi. Sistem za detekciju napada (IDS) je dizajniran da detektuje napad u razvoju. Zato diskusiju o IDS tehnikama posle diskusije o firewall-ovima.

1.3.3 PROTOKOLI

Govorićemo o protokolima. Prvo ćemo razmotriti problem o autentifikaciji na mreži. Obradićemo mnoge primere, od kojih svaki ilustruje neku od specifičnih klopki u zaštiti. Na primer, replay je kritični problem, i mi ćemo obraditi načine na koji se taj napad može izbeći.

Kriptografija će se pokazati korisnom u protokolima autentifikacije. Daćemo neke primere za protokole koji koriste simetričnu kriptografiju, kao i primere koji se odnose na javne ključeve kriptografije. Heš funkcije takođe igraju važnu ulogu u protokolima zaštite.

Page 5: Zastita informacija

Naše izučavanje jednostavnih autentifikacionih protokola će ilustovati neke od manjih protokola koji mogu prerasti u polje protokola zaštite. Očigledno beznačajna promena u protokol može potpuno promeniti njegovu sigurnost. Takođe ćemo istaći nekoliko specifičnih tehnika koje se koriste u realnosti.

Onda ćemo nastaviti sa proučavanjem četiri specifična sigurnosna protokola. Prvi od njih je Secure Socket Layer ili SSL koji se koristi da zaštiti elektronsko poslovanje. SSL je elegantan i efikasan protokol.

Onda ćemo govoriti o IPsec, koji je drugi internet sigurnosni protokol. SSL i IPsec imaju mnoge slićnosti, ali se implementacija veoma razlikuje. Nasuprot SSL-u IPsec je kompleksan i ''preterano projektovan''. Ali bez obzira na kompleksnost IPsec ima nekoliko sigurnosnih rupa, uprkos opširnom i otvorenom procesu razvoja. Ovo lepo opisuje nerazdvojive izazove u razvoju sigurnosnih protokola.

Treći protokol o kome ćemo govoriti je Kerberos, a on je jedan autentifikacioni sistem baziran na simetričnoj kriptografiji. Kerberos-a prati mnogo drugačiji pristup nego kod SSL-a i IPsec-a.

Govorićemo o mehanizmima sigurnosti uposlenim u GSM-u u sistemu mobilnih telefona. Iako je GSM sigurnosni protokol veoma jednostavan, veoma je interesantan za proučavanje zbog mnogobrojnih napada. Ovi napadi uključuju razne kombinacije napada na protokol kao i na kriptografiju unutar njega.

1.3.4 SOFTVER

U poslednjem delu knjige, razmotrićemo neke od aspekata zaštite i softvera. Ovo je veliki deo, a mi možemo samo preći samo selektovane predmete. Govorićemo o rupama u zaštiti i virusima, kao što smo već gore spomenuli.

Takođe ćemo obratiti pažnju na softver reverzni inženjering da bi ilustrovali kako posvećeni napadač može ponovo konstruisati softver bez pristupa izvornom kodu. Mi možemo iskoristiti naše novootkriveno znanje hakera na problem upravljanja digitalnim pravima, što pruža odličan primer granica sigurnosti u softveru – posebno kada se softver mora izvršiti u neprijateljskom okruženju.

Naša poslednja tema vezana za softver je operativni sistem (OS). Operativni sistem je sudija u mnogim operacijama kod sigurnosti pa je važno razumeti kako OS sprovodi zaštitu.

Onda ćemo obratiti pažnju na zahteve takozvanog pouzdanog operativnog sistema. Pouzdan OS pruža jake garancije da taj OS radi ispravno. Posle ovog, razmotrićemo skoriji pokušaj Microsofta da implementira pouzdan OS za PC platformu. Ova diskusija nadalje ilustruje izazove nerazdvojive u implementaciji sigurnosti u softveru.

1.4 PROBLEM ČOVEKA

Pametni korisnici imaju sposobnost da unište najbolje postavljene planove sigurnosti. Na primer, pretpostavimo da Bob želi kupiti nešto preko Amazon.com. Bob može koristiti svoj web pretraživač da se sigurno spoji sa amazonom koristeći SSL protokol (Deo III), koji se oslanja na kriptografske tehnike (Deo I). Razni pristupi kontroli nastaju u takvim transakcijama (Deo II) i svi mehanizmi sigurnosti su sprovedeni u softveru (Deo IV). Videćemo u poglavlju 10. da će takav napad na transakciju prouzrokovati da Bobov web pretraživač prikaže upozorenje. Nažalost, Bob je običan korisnik, on će jednostavno ignorisati upozorenje što će prouzrokovati pobedu nad

Page 6: Zastita informacija

zaštitom – bez obzira koliko je kriptografija sigurna, koliko su dobro dizajnirani protokoli i mehanizmi pristupa kontroli i koliko je softver nepogrešiv.

Da uzmemo još jedan primer, veliki deo bezbednosti danas se oslanja na lozinke. Korisnik želi da izabere da lako zapamti lozinku, ali to će omogućiti Trudi da lakše pogodi lozinku – kao što je diskutovano u poglavlju 7. Jasno rešenje je dodeliti jake lozinke korisnicima. Međutim, ovo je skoro izvesno da će lozike biti zapisane u notes i smeštene na vidljivo mesto, što će činiti sistem manje sigurnim nego da su korisnici sami birali svoje (relativno slabe) lozinke.

Primarna namena ove knjige je razumevanje mehanizama sigurnosti – unutrašnjosti i spoljašnjosti informacione zaštite. Na nekoliko mesta ''problem čoveka'' je obrađen, ali je moguće napisati još mnogo toga na tu temu. Za više informacija o ulozi koju ljudi igraju u zaštiti informacija, možda najbolji izvor je Ross Andersonova odlična knjiga [14], koja je ispunjena sa slučajevima neuspeha sigurnosti, od kojih najviše njih ima korene pretežno u ljudkoj prirodi.

1.5 PRINCIPI I VEŽBE

Ovo nije teorijska knjiga. Svesno smo pokušali da obradimo i neke praktične probleme, a gde je teorija potrebna, trudiću se da je svedem na minimum. Moj cilj je da prestavim dovoljno teorije da čitalac može dokučiti osnovne principe. Za više teorije o mnogim temama obrađenih u ovoj knjizi Bishopova knjiga [27] je logičan izbor.

1.6 PROBLEMI

Problem nije to da tu postoje problemi. Problem je očekivanje drugačijeg i razmišljanje da je postojanje problema problem.

- Theodore I. Rubin

1. Između osnovnih izazova u zaštiti informacija su poverljivost, integritet i dostupnost ili CIA. Dajte primer gde je potrebna poverljiviost, a nije potreban integritet. Dajte primer gde je potreban integritet, a ne poverljivost. Dajte primer gde je dostupnost važnija od integriteta i poverljivosti.

2. RFID su veoma mali uređaji sposobni za emitovanje broja kroz vazduh koji može biti pročitan preko obližnjeg senzora. Predviđeno je da RFID tagovi će uskoro biti pronađeni u svim vrstama proizvoda, uključujući papirni novac, delovima odeće ... Ako se ovo desi, osoba može biti okružena ''oblakom'' RFID brojeva koji će obezbeživati informacije o osobi. Razmotrite sigurnost i druge zabrinutosti za sigurnost koji se mogu pojaviti.

3. Iz perspektive bankara, šta je obično važnije, integritet podataka njegovih klijenata ili poverljivost podataka? A iz perspektive klijenta banke, šta je važnije?

4. Neki autori prave razliku između tajnosti, privatnosti i poverljivosti. U ovom slučaju, tajnost je ekvivalentna našem terminu poverljivosti, gde je privatnost tajnost primanjena na lične podatke i poverljivost se odnosi na obavezu da ne oda određene informacije. Razmotrite primer gde je potrebna privatnost. Razmotrite primer gde je poverljivost potrebna.

5. Pročitajte članak [126] o propasti Vizantije. Opišite problem i objasnite zašto se problem ne može desiti da su četiri generala od kojih je samo jedan izdajica. Zašto je ovaj problem bitan za zaštitu informacija?

Page 7: Zastita informacija
Page 8: Zastita informacija

Deo 1

KRIPTO

Page 9: Zastita informacija
Page 10: Zastita informacija

MXDXBVTZWVMXNSPBQXLIMSCCSGXSCJXBOVQXCJZMOJZCVCTVWJCZAAXZBCSSCJXBQCJZCOJZCNSPOXBXSBTVWJC

JZDXGXXMOZQMSCSCJXBOVQXCJZMOJZCNSPJZHGXXMOSPLHJZDXZAAXZBXHCSCJXTCSGXSCJXBOVQX

- otvoreni tekst iz Lewis Carroll, Alise u zemlji čuda

The solution is by no means so difficult as you mightbe led to imagine from the first hasty inspection of the characters.

These characters, as any one might readily guess,form a cipher—that is to say, they convey a meaning. . .

—Edgar Allan Poe, The Gold Bug

2.1 UVOD

U ovom poglavlju govorićemo o nekim osnovnim elementima kriprografije. Ovo poglavlje će postaviti osnove za ostale kripto delove. Izbegavaćemo matematiku što je više moguće, ali ćemo se truditi da prikažemo što više detalja da ne bismo razumeli samo ''šta'' nego i ''zašto.'' Ovo poglavlje će obratiti pažnju na:

kriptografiju simetričnih ključeva, javne ključeve, heš funkcije, i

2

OSNOVE KRIPTOGRAFIJE

Page 11: Zastita informacija

Slika 2.1. Kripto kao crna kutija

unapređene kriptoanalize.

2.2 KAKO GOVORITI KRIPTO

Osnovna terminologija za kripto obuhvata sledeće:

Kriptologija je umetnost i nauka pravljenja i razbijanja ''tajnih kodova. '' Kriptografija je pravljenje ''tajnih kodova. '' Kriptoanaliza je razbijanje ''tajnih kodova.'' Kripto je sinionim za sve gore navedeno (ali i više od toga). Precizno značenje će biti jasno

iz konteksta.

Šifra ili šifarski sistem se koriste za šifrovanje podataka. Orginalni podaci su poznati kao otvoreni tekst, a rezultat šifrovanja je šifrat. Mi dešifrujemo šifarski tekst da bi dobili orginalni otvoreni tekst. Ključ se koristi da se konfiguriše kriptosistem za šifrovanje i defiofrovanje. Kod simetričnih šifri, isti ključ se koristi za šifrovanje i dešifrovanje kao što je predstavljeno na slici 2.1.

Takođe postoje i kriptografija javnih ključeva gde su ključevi za šifrovanje i dešifrovanje različiti. U kriptografiji javnih ključeva ključ za šifrovanje se zove javni ključ, ključ za dešifrovanje se zove privatni ključ. U simetričnoj kriptografiji ključe je poznat pod nazivom simetrični ključ. Nećemo koristiti dvosmislen termin ''tajni ključ.''

Sa svakim šifrom, cilj je imati sistem gde je ključ neophodan da bi se otkrio otvoreni tekst. Onda, čak iako je Trudi napadač i ima potpuno znanje o algoritmima koji su korišteni i mnogo drugih informacija, ona ipak ne može otkriti otvoreni tekst bez ključa. Ovo je cilj iako se to u realnom svetu znatno razlikuje.

Osnovno načelo kriptografije jeste da je unutrašnji rad kriptosistema potpuno poznat napadaču Trudi, ali je samo ključ nepoznat. Ovo je poznato kao Kerkohovo pravilo, koji je stvorio šest pravila za pravljenje šifri i njihovo korištenje. Kerkohov princip se zasniva na tome da šifra ''ne mora da bude tajna, i da je moguće da može pasti u ruke neprijatelju bez neprijatnosti'' a to je da pravljenje šifre nije tajna.

Šta je cilj Kerkohovih principa? Na kraju krajeva, život mora biti mnogo teži za Trudi ako ne zna kako šifre rade. Ako je ovo istina onda je takođe istina da i detalji kriptosistema retko ostaju tajna duže vremena. Reverzni inženjering može lako otkriti algoritme za softver i algoritmi smešteni u hardver su podložni na slične napade. Nadalje, skriveni kripto algoritmi imaju istoriju neuspeha da budu sigurni kada budu otkriveni javnom pregledanju. Iz tog razloga, kriptografi neće prihvatiti algoritam kao siguran dok se ne prođu stalne analize od strane mnogih kriptografa tokom

Page 12: Zastita informacija

određenog vremena. Na kraju, suština je da svaki kriptosistem koji ne zadovoljava Kerkohov princip mora biti osuđen na propast. A to znači da je ''šifra je kriva dok se ne dokaže da je nevina.''

Kerkohovi principi mogu biti prošireni i na to da pokriju i druge aspekte sigurnosti, a ne samo kriptografiju. Drugim rečima, Kerkohovi principi znače da je stvaranje sigurnosti samo po sebi otvoreno. Veruje se da ''više očnih jabućica'' dovodi do propasti sigurnosti. Iako Kerkohovi principi (u oba oblika) su široko prihvaćeni u principu, postoji mnogo realnih iskušenja da bi se prekršili.

U ovom delu, razmotrićemo ukratko nekoliko klasičnih kriptosistema. Iako je istorija kriptografije fascinantna tema, svrha ovog predmeta jeste jednostavno da omogući elementarni uvod u neke kritične koncepte koji će se pojaviti u modernoj kriptografiji.

2.3 KLASIČNI KRIPTO

Ispitaćemo četiri klasična kriptosistema, od kojih će svaki islustrovati neko određeno bitno svojstvo. Prvi na našem redu je šifra zamene, koja je jedna od najstarijih kriptosistema i datira još od pre 2000 godina i idelana je za prikaz osnovih napada. Onda ćemo obratiti pažnju na dvostruku transpoziciju, koja uključuje važne koncepte koji se koriste u modernoj kriptografiji. Takođe ćemo govoriti o kodnoj knjizi, pošto se mnoge moderne šifre mogu videti kao ''elektronski'' jednake kodnim knjigama. Na kraju, razmotrićemo jedini praktični kriptosistem koji je verovatno siguran – a to je one-time pad.

2.3.1 ŠIFRA ZAMENE

Kod implementacije šifre zamene, poruka je šifrovana tako što se slova zamene za n mesta alfabeta unapred od tog slova. Na primer, ako je n=3, zamena bi bila

otvoreni tekst: a b c d e f g h i j k l m n o p q r s t u v w x y zšifrat: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

gde prateći dogovor da je otvoreni tekst napisan malim slovima, a šifrat napisan velikim slovima. U ovom primeru, za ključ se može reći da je ''3'' jer je broj pomeranja ključ.

Koristeći da je ključ 3, možemo šifrovati otvoreni tekst

fourscoreandsevenyearsago

gledajući gore za svako slovo u redu otvorenog teksta i zameniti ga sa odgovarajućim slovom iz reda šifrata ili jednostavno zameniti slovo slovom koje je tri pozicije posle slova u otvorenom tekstu. U ovom primeru, rezultirajući šifrat je:

IRXUVFRUHDAGVHYHABHDUVDIR

Sada bi trebalo biti jasno zašto se ovo zove šifra zamene. Da bi dešifrovali, jednostavno pogledamo pogledamo slovo u šifratu u šifarskom redu i

zamenomo ga sa odgovarajućim slovom iz otvorenog teksta, ili jednostavno pomerimo svako slovo za tri mesta unazad. Šifra zamene sa pomeranjem za tri mesta je pozanat kao Cezarova šifra

Page 13: Zastita informacija

jer ju je uspešno koristio Julije Cezar. Ako ograničimo šifru zamena na pomeranje,onda su mogući ključevi n∈{0,1,2,....25}. Preptostavimo da Trudi presretne poruku

CSYEVIXIVQMREXIH

i ona posumlja da je šifrovana šifrom zamene sa ''pomerajem za n''. Onda će ona pokušati svaki od 26 mogućih ključeva, dešifrovaće poruku sa svakim mogućim ključem dok god otvoreni tekst ne bude imao nekog smisla. Ako je poruka stvarno bila šifrovana preko pomeraja za n, Trudi će očekivati da će pronaći otvoreni tekst, a isto tako i otkriti ključ, u proseku posle 13 pokušaja.

Svirep pokušaj probavanja svih ključeva dok se ne pronađe pravi poznata je pod nazivom potpuna pretraga ključeva. Pošto je ovaj napad uvek jedna od opcija, potrebno je (iako veoma neefikasno) da je broj mogućih ključevo toliko veliki da ukoliko bi ih Trudi sve isprobala oduzima joj doista vremena.

Koliko veliko polje ključeva je dovoljno veliko? Pretpostavimo da Trudi ima veoma brz računar koji može da testira 240 ključeva u sekundi. Onda prostor ključeva od 256 može biti iscrpljen za 216 sekundi ili otprilike za 18 sati, a gde bi za prostor ključeva veličine 264 bilo potrebno više od pola godine.

Šifra zamene ne mora biti ograničena na pomeraje preko n. Svaka zamena od 26 slova može biti ključ. Na primer, sledeći ključ, a nije pomeranje alfabeta, definiše šifru zamene

otvoreni tekst: a b c d e f g h i j k l m n o p q r s t u v w x y zšifrat: Z P B Y J R G K F L X Q N W V D H M S U T O I A E C

Ako šifra zamene može uposliti svaku permutaciju kao ključ, onda je tu 26! ≈ 288 mogućih ključeva. Sa našim super brzim računarom koji testira 240 ključeva u sekundi, prostor ključeva velićine 288 bi uzeo više od 8900 milenijum za isvršavanje. Naravno, mi očekujemo da ćemo naći pravi ključ za polovinu tog vremena ili 4450 milenijuma! Pošto je 288 ključeva više nego što Trudi može isprobati u nekom razumnom vremenu, ova šifra prolazi naš prvi zahtev, prostor ključeva je dovoljno velik da bi potpuna pretraga ključeva bila izvodljiva.

Da li ova znači da je šifra zamene sigurna? Odgovor je ne, kao što napad u sledećem delu to objašnjava.

2.3.2 KRIPTOANALIZA PROSTE ZAMENE

Pretpostavimo da Trudi presretne sledeći šifrat, koji na posumlja da je nastao na osnovu šifre zamene - preko ne obaveznog pomeraja za n.

PBFPVYFBQXZTYFPBFEQJHDXXQVAPTPQJKTOYQWIPBVWLXTOXBTFXQWAXBVCXQWAXFQJVWLEQNTOZQGGQLFXQWAKVWLXQWAEBIPBFXFQVXGTVJVWLBTPQWAEBFPBFHCVLXBQUFEVWLXGDPEQVPQGVPPBFTIXPFHXZHVFAGFOTHFEFBQUFTDHZBQPOTHXTYFTODXQHFTDPTOGHFQPBQWAQJJTODXQHFOQPWTBDHHIXQVAPBFZQHCFWPFHPBFIPBQWKFABVYYDZBOTHPBQPQJTQOTOGHFQAPBFEQJHDXXQVAVXEBQPEFZBVFOJIWFFACFCCFHQWAUVWFLQHGFXVAFXQHFUFHILTTAVWAFFAWTEVOITDHFHFQAITIXPFHXAFQHEFZQWGFLVWPTOFFA

(2.1)

Pošto je mnogo posla za Trudi da isproba svih 288 mogućih ključeva,ona može biti pametnija. Pretpostavimo da je poruka na engleskom, ona može koristiti tabelu učestalosti slova u engleskom jeziku prikazanoj na Slici 2.2 zajedno sa učestalošću sa otvorenog teksta 2.1, koji se pojavljuje na Slici 2.3.

Page 14: Zastita informacija

Prema šifratu ona zaključuje da je slovo F najčešće, a na osnovu učestalosti slova u engleskom jeziku to je slovo E. Na osnovu toga može zaključiti da je slovo F u šifratu zamena za E. Na osnovu ovoga Trudi može probati zamenu dok ne prepozna reč i na taj način može biti uverena u njene pretpostavke. Na osnovu toga najlakše je da odredi prvu reč, pošto ona ne zna gde je razmak. Pošto je treće slovo e, ona na osnovu učestalosti slova na osnovu razumnog pogađanja može zaključiti da je prva reč ''the''. Na osnovu ovog ona je u mogućnosti da pogodi više slova i šifrat će uskoro biti otkriven. Verovatno će napraviti po koju grešku, ali na osnovu korišćenja statističkih informacija otkriće

Slika 2.2 Učestalost slova u engleskom jeziku

šifrat mnogo pre 4450 milenijuma!Ovaj napad na šifre zamene pokazuje da veliki prostor ključeva nije dovoljan da bi se

obezbedila sigurnost. Ovaj napad takođe pokazuje da dizajneri šifri se moraju čuvati pametnih napadača. Ali kako se možemo zaštititi od svih takvih napada, dok se pametni novi napadi u isto vreme razvijaju. Odgovor je da se ne možemo zaštititi. Kao rezultat, šifrat se može smatrati sigurnim dok god ga nijedan napad na njega nije otkriven. A što je više veštijih kriptografa pokušalo da razbiju šifru i nisu uspeli, to znači da više poverenja možemo imatu u sistem.

2.3.3 DEFINICIJA SIGURNOSTI

Postoji nekoliko razumnih definicija sigurnosti šifara. Idealno, mi bi hteli da imamo matematički dokaz da tamo nema mogućeg napada na sistem. Međutim, postoji samo jedan sistem šifara koji dolazi sa takvim dokazom, a on je nepraktičan za korišćenja.

Zbog odsutnosti dokaza o jačini šifre, mi možemo zahtevati je najpoznatiji napad na sistem nepraktičan. Dok se ovo može činiti najviše željenim, mi ćemo izabrati drugačiju definiciju. Reći ćemo da je kriptosistem siguran onoliko koliko najpoznatiji napad zahteva rada da bi se

Page 15: Zastita informacija

Slika 2.3 Učestalost slova u otvorenom tekstu

pronašao pravi ključ, a to je ne baš kratak napad. Prema ovoj definiciji, siguran kriptosistem sa malim brojem ključeva može biti lakši za razbijanje od nesigurnog sistema sa velikim brojem ključeva. Razumno za našu definiciju jeste da ako je kratki napad poznat algoritam ne omogućava da ''objavi'' njegov nivo sigurnosti, kao što je naznačeno na osnovu dužine ključa. Takav kratki napad upućuje na to da takva šifra ima grešku tokom stvaranja.

U praksu, moramo izabrati čifru koja je sigurna i ima dovoljno veliki prostor ključeva tako da je traženje ključa nepraktično. Oba faktora su potrebna.

2.3.4 DVOSTRUKA TRANSPOZICIJA

Da bi šifrovali na osnovu dvostruke transpozicije, prvo pišemo otvoreni tekst u niz određene veličine i onda permutujemo redove i kolone prema specifičnoj permutaciji. Na primer, pretpostavimo da napišemo otvoreni tekst attackatdawn u 3x4 niz.

sada ćemo permutovati redove na osnovu (1,2,3)→(3,2,1) i onda permutujemo kolone na osnovu (1,2,3,4)→(4,2,1,3) i dobijemo

Šifrat je sada pročitan iz poslednjeg niza:

Page 16: Zastita informacija

NADWTKCAATAT (2.2)

Za dvostruku transpoziciju ključ se sastoji od veličine matrice i permitacije redova i kolona. Primalac, koji zna ključ može jednostavno staviti šifrat u odgovarajuću matricu i uraditi permutaciju unazad da bi dobio otvoreni tekst. Na primer, da bi dešifrovali šifrat 2.2 prvo ga stavimo u 3x4 niz. Onda kolone su (4,2,1,3) i treba ih reorganizovati u (1,2,3,4). Onda su redovi (3,2,1) i treba ih reorganizovati u (1,2,3) kao što je prikazano

i otkrili smo otvoreni tekst, attackatdawn.Za razliku od šifre zamene, dvostruka transpozicija ne čini ništa da bi prikrila slova u

poruci. Ali se pojavljuje nasuprot napadu koji se oslanja na statističke informacije obuhvaćene u

Tabela 2.1. Skraćeni alfabet.

otvorenom tekstu, iako je statistika otvorenog teksta istrošene kroz sifrat. Dvostruka transpozicija nije prosta čifra koju treba razbiti. Ideja ’’zamazivanja’’

informacija u otvorenom tekstu u šifratu je tako korisna da je uposlena u modernim blokovskim šiframa.

2.3.5 ONE-TIME-PAD

Vernamova šifra ili one-time pad je verovatno siguran kriptosistem. U prošlosti je mnogo korištena, ali ipak za mnoge situacije nije praktična. Međutim, ona ipak veoma lepo prikazuje neke veoma važne koncepte koje ćemo videti kasnije.

Na početku prikazaćemo jednostavan primer sa samo osam slova. Naša slova imaju odgovarajuće binarne vrednosti i te vrednosti smo naveli u Tabeli 2.1. Važno je reći da vrednosti slova nije tajna. Ovo isto kao kod ASCII koda, koji takođe nije tajan.

Pretpostavimo da špijun koji se zove Alisa, želi da šifruje otvoreni tekst

heilhitler

koristeći one-time pad. Ona prvo pogleda Tabelu 2.1 i konvertuje slova u bit string

001 000 010 100 001 010 111 100 000 101.

Page 17: Zastita informacija

One-time pad zahteva ključ koji se sastoji od sličajno uzabranog stringa bita koji je iste dužine kao i poruka. Ključ se onda XORuje sa otvorenim tekstom da bi se dobio šifrat. Jednostavniji način da se ovo kaže jeste da se dodamo otvoreni tekst i ključ bita modula 2.

Označimo XOR bita x sa bitom y kao x⊕y. Pošto je x⊕y⊕y=x, dešifrovanje je ostvareno preko XORovanja istog ključa sa otvorenim tekstom.

Pretpostavimo da Alisa ima ključ

111 101 110 101 111 100 000 101 110 000

koji je iste dužine kao i šifrat poruke iznad. Onda da bio dešifrovala Alisa računa,

h e i l h i t l e r otvoreni tekst: 001 000 010 100 001 010 111 100 000 101ključ: 111 101 110 101 111 100 000 101 110 000

šifrat: 110 101 100 001 110 110 111 001 110 101 s r l h s s t h s r

Pretvaranjem bitova šifrata ponovo u slova, rezultat je srlhssthsr. Kada Bob primi Alisinu poruku, on je dešifruje pomoću istog ključa,

s r l h s s t h s ršifrat: 110 101 100 001 110 110 111 001 110 101ključ: 111 101 110 101 111 100 000 101 110 000

otvoreni tekst: 001 000 010 100 001 010 111 100 000 101 h e i l h i t l e r

i tako će dobiti orginalni otvoreni tekst. Hajde da razmotrimo nekoliko scenarija. Prvo, pretpostavimo da Alisa ima neprijatelja koji

se zove Čarli i koji ima svoji špijunsku organizaciju. Čarli tvrdi da je pravi ključ korišten za šifrovanje Alisine poruke

101 111 000 101 111 100 000 101 110 000 .

Kada Bob dešifruje šifarski tekst koristeći taj ključ, on dobije

s r l h s s t h s ršifrat: 110 101 100 001 110 110 111 001 110 101''ključ'': 101 111 000 101 111 100 000 101 110 000

''otvoreni tekst'': 011 010 100 100 001 010 111 100 000 101 k i l l h i t l e r

Bob koji ne razume kripto, naredi da se Alisa dovede na ispitivanje. Sada razmotrimo drugi scenario. Pretpostavimo da je Alisa uhapšena od strane njenih

neprijatelja, koji su takođe presreli šifrat. Neprijatelji žele pročitati poruku i Alisa je primorana da im da ključ ove super tajne poruke. Alisa tvrdi da je ona agent i da je ključ sledeći

Page 18: Zastita informacija

111 101 000 011 101 110 001 011 101 101 .

Kada Alisini neprijatelji ''dešifruju'' poruku koristeći taj ključ oni dobiju sledeći rezultat

s r l h s s t h s ršifrat: 110 101 100 001 110 110 111 001 110 101''ključ'': 111 101 000 011 101 110 001 011 101 101

''otvoreni tekst'': 001 000 100 010 011 000 010 010 011 000 h e l i k e s i k e

Alisini neprijatelji koje se ne razumeju u kriptografiji, čestitaju Alisi na saradnji i puste je. Ovi primeri pokazuju zašto je one-time pad sigurna šifra. Ako je ključ sličajno izabran, onda napadač koji vidi šifrat nema nikakvu informaciju o poruci sem njene dužine. To znači da bilo koji dati šifrat, bilo kog ''otvorenog teksta'' iste dužine može biti generisan kao odgovarajući ''ključ'' i svi mogući otvoreni tekstovi su slični. A kako možemo napuniti poruku sa bilo kojim brojem slučajnih slova pre šifrovanja, dužina onda nije od koristi. Tako da šifrat ne pruža nikakve informacije o otvorenom tekstu. Ovo je razlog zašto je one-time pad verovatno sigurna šifra.

Naravno, ovo podrazumeva da se šifra pravilno koristi. Ključ mora biti izabran sličajno, korišten samo jednom i moraju ga znati samo pošiljalac i primalac.

Mi ne možemo uraditi ništa bolje od verovatno sigurne šifre, tako da možda možemo uvek koristiti one-time pad. Međutim, one-time pad ima ozbiljnu manu: ključ je iste dužine kao poruka i ključ mora biti sigurno prenesen do primaoca pre nego što se poruka dešifruje. Ako sigurno možemo proslediti ključ, zašto onda jednostavno ne prosledimo i otvoreni tekst? Dole ćemo videti istorijski primer gde stvarno ima smisla koristiti one-time pad, bez obzira na ozbiljna ograničenja. Međutim, za moderne sisteme podataka, one-time pad šifra je potpuno nepraktična.

Zašto se one-time pad može koristiti samo jednom? Pretpostavimo da imamo dva otvorena teksta P1 i P2, šifrovanje kao C1=P1⊕K C2=P2⊕K; to znači da imamo dve različite poruke šifrovanje istim ključem K. U kriptoanalizi ovo je poznato kao dubina. U slučaju one-time pada dubina je

C1 ⊕ C2 = P1 ⊕ K ⊕ P2 ⊕ K = P1 ⊕ P2

i ključ je nestao iz problema. Ovo ne može biti dobro ni za koga sem za Trudi, kriptoanalitičara. Hajde da razmotrimo specifičan primer one-time pad dubine. Koristeći iste bite za

šifrovanje iz Table 2.1, pretpostavimo da imamo,

P1 = like = 100 010 011 000 and P2 = kite = 011 010 111 000

i oba su šifrovana sa istim ključem K=110 011 101 111. Onda

i

Page 19: Zastita informacija

Ako Trudi kriptoanalizičar zna da je poruka u dubini, ona odmah vidi da je drugo i četvro slovo poruka P1 i P2 isto, pošto su odgovarajuća slova u čifratu identična. Ali više poražavajuća činjenica jeste da Trudi sada može pogoditi poruku P1 i proveriti njen rezultat koristeći P2. Pretpostavimo da koja samo ima C1 i C2 sumlja da je

P1=kill =011 010 100 100.

Onda može otkriti odgovarajući ključ

I ona može koristiti ovo K da ’’dešifruje’’ C2 i rezulta je

Pošto K ne zahteva pametan opis za P2, Trudi sumlja da je rezultat koji je otkrila za P1 netačan. Kada Trudi posle nekog vremena pogodi da je P1=like ona će koristeći pravi ključ K dešifrovati P2=kite i time će potvrditi ispravnost ključa i ispravnost oba opisa.

2.3.6 PROJEKAT VENONA

Projekat VENONA[239] je interesantan primer korištenja one-time pada u realnom svetu. 1930-ih i 1940-ih, sovjetski špijuni su opisivali stanje u SAD-u donoseći one-time pad ključeve sa njima. Špijuni su koristili ove ključeve da bi šifrovali važne poruke, koje su onda bile slate u Moskvu. Ove poruke su se bavile veoma važnim špijunskim operacijama u to vreme. Konkretno, tajano pravljenje atomske bombe bio je jedan od glavnih žarišta špijuniranja. Rosenbergov Alger Hiss i mnogi drugi špijuni – i mnogi nikada ne identifikovani špijuni – su se istakli na projektu VENONA.

Page 20: Zastita informacija

Tabela 2.2. VENONA Decrypt of message of September 21, 1944.

[C% Ruth] learned that her husband [v] was called upby the army but he was not sent to the front. He is amechanical engineer and is now working at the ENORMOUS[ENORMOZ] [vi] plant in SANTA FE, New Mexico.[45 groups unrecoverable]detain VOLOK [vii] who is working in a plant on ENORMOUS.He is a FELLOWCOUNTRYMAN [ZEMLYaK] [viii]. Yesterday helearned that they had dismissed him from his work. Hisactive work in progressive organizations in the past wascause of his dismissal.In the FELLOWCOUNTRYMAN line LIBERAL is in touch withCHESTER [ix]. They meet once a month for the payment ofdues. CHESTER is interested in whether we are satisfiedwith the collaboration and whether there are not anymisunderstandings. He does not inquire about specificitems of work [KONKRETNAYa RABOTA]. In as much as CHESTERknows about the role of LIBERAL’s group we beg consent toask C through LIBERAL about leads from among people whoare working on ENOURMOUS and in other technical fields.

Ovi Sovjetski špijuni su bili veoma dobro obučeni i nikada nisu ponovo koristili isti ključ, pa su mnoge poruke koje su bile presretene dešifrovane od strane američkih kriproanalitičara. Kako je to moguće, uzimajući u obzir da je one-time pad siguran? Ovo je bio slučaj propasti korišćenja metode generisanja dopuna, pa su se oni ponavljali. Kao rezultat, mnoge poruke su bile u dubini, što je omogućilo kriptoanaltičarima da otkruju poruke.

Deo VENONA je dat u Tabeli 2.2. Poruka se odnosi na Davida Greenglassa i njegovu ženu Ruth. LIBERAL je Julius Rosenberg koji je zajedno sa svojom ženom Ethyl pogubljen jer je imao ulogu u nuklearnoj špijunaži. Sovjetsko kodno ime za nuklearnu bombu je bilo ENORMOUS. VENONA skript [239] je veoma interesantan za čitanje.

2.3.7 KODNA KNJIGA

Klasična kodna knjiga je, doslovno, rečnik kao knjiga koja sadrži reči i njihove odgovarajuće kodne reči. Tabela 2.3 sadrži izvod iz čuvene kodne knjige koju su koristili Nemci u Prvom svetskom ratu.

Na primer, da bi šifrovali nemačku reč Februar, čitava reč bi bila zamenjena sa 5 cifara ''kodnom rečju'' 13605. Kodna knjiga u Tabeli 2.3 je korištena za šifrovanje, dok je odgovarajuća kodna knjiga, u kojoj su kodne reči od 5 cifara bile poredane numerički i korištene za dešifrovanje. Kodna knjiga je šifra zamene, ali zamena je mnogo dalje od jednostavnosti, dok je zamena korištena za cele reči ili čak za čitavu frazu.

Kodna knjiga prikazana u Tabeli 2.3 je korištena za šifrovanje čuvenog Zimmermanovog telegrama. 1917. Nemac ministar spoljašnjih poslova Arthur Zimmerman je poslao šifrovani

Page 21: Zastita informacija

TABLE 2.3. Izvod iz nemačke kodne knjige

telegram Nemačkom ambasadoru u Meksiko. Šifrat, kao što je prikazano na slici 2.4 [171] su presreli Britanci. U to vreme, Britanci i Francuzi su bili saveznici u ratu protiv Nemačke, ali je SAD bila neutralna [236].Rusi su otkrili oštećenu verziju nemačke kodne knjige, i deo kodne knjige je bio prosleđen Britancima. Tokom mukotrpne analize, Britanci su bili u mogućnosti da otkriju dovoljno da bi dešifrovali Zimmermanov telegram [61]. U telegramu je stajalo da je Nemačka vlada planirala ''oružani sukob podmornica'' i na kraju je rečeno da će to verovatno voditi ratu sa SAD-om. Kao rezultat Zimmerman je odlučio da Nemačka treba da pokuša da pridobije Meksiko kao saveznika u ratu protiv SAD-a. Podsticaj za Meksiko bi bio da ''povrate izgubljene teritorije kao što su Teksas, Novi Meksiko i Arizonu''. Kada je Zimmermanov telegram izdat u SAD-u, javnost se okrenula protiv Nemačke i posle potapanja putničkog broda Luizijane, Amerika je objavila rat Nemačkoj.

Page 22: Zastita informacija

Slika 2.4 Zimmermanov telegram

Britanci su prvo bili neodlučni da li da objave Zimmermanov telegram, jer će Nemci svatiti da je njihova šifra razbijena i da će je verovatno prestati koristiti. Međutim, pošto je mnoštvo poruka bilo poslato u isto vreme kao i Zimmermanov telegram Britanski analitičari su otkrili da drugačiji telegram poslat nešifrovan. Verzija Zimmermanovog telegrama koju su Britanci naknadno objavili veoma se poklapa sa nešifrovanom verzijom telegrama. Nemci su zaključili da njihova kodna knjiga nije kompromitovana i nastavili su da koriste osetljive poruke tokom rata.

Moderne blokovske šifre koriste kompleksne algoritme da generišu šifrat iz otvorenog teksta (i obrnuto) ali na većem nivou, blokovske šifre mogu se posmatrati kao kodne knjige, gde svaki ključ određuje vidljivu kodnu knjigu.

Page 23: Zastita informacija

2.3.8 ŠIFRE SA IZBORA 1876. GODINE

Američki presednički izbori 1876. godine su bili prava mrtva trka. U to vreme Građanski rat je bio još uvek svež u ljudskim mislima, ''radikalne'' rekonstrukcije su nastavljene kod bivših konfederacija i nacija je još uvek bila podeljena.

Kandidati za presednika su bili republikanac Rutherford B. Hayes i demokrata Samuel J. Tilden. Tilden je bio omalovažavan od strane većine ali je izborni kolegijum odlređuje predsedništva. Za izborni kolegijum svaka država šalje delegaciju i čitava delegacija glasa za kandidata koji je dobio najveći broj glasova u određenoj državi (iako nema zakonske potrebe za delegata da glasa za određenog kandidata, i nije redak slučaj da delegat glasa za drugog kandidata).

1876. godine delegacija izbornog kolegijuma iz četiri zemlje su bili u svađi i to je održavalo balans. Komisija od 15 članova je bila odlučna da odredi koja delegacija iz koje zemlje je legalana – i tako odredi predsedništvo. Komisija je odlučila da sve četiri zemlje glasaju za Hayesa i on da on postane predsednik SAD-a. Tildove pristalice su optužili Hayesove ljude da su podmitili zvaničnike da glasaju za njega, ali za to nije bilo dokaza.

Nekoliko meseci posle izbora, izveštači su otkrili veliki broj šifrovanih poruka koje su poslali Tildenove pristalice zvaničnicima u spornim državama. Jedna od šifara koja je je bila korištena je jednim delom kodna knjiga zajedno sa transpozicijom reči. Kodna knjiga je korištena samo kod važnih reči, a transpozicija je bila fiksna permutacija za poruku date dužine. Dozvoljena

TABLE 2.4. Kodna knjiga sa izbora 1876. godine

dužina poruke je bila 10,15,20,25 i 30 reči i sve poruke su bile stavljane u jednu od ovih dužina. Permutacija korištena za poruke od 10 reči je bila

9, 3, 6, 1, 10, 5, 2, 7, 4, 8.

Jedan pravi šifrat je izgledao ovako

Warsaw they read all unchanged last are idiots can’t situation.

Koja je bila dešifrovana ne koristeći permutaciju i zamenu telegram za Warsaw i rezultat je sledeći

Can’t read last telegram. Situation unchanged. They are all idiots.

Page 24: Zastita informacija

Kriptoanalitičari su veoma lako razbili ovu slabu šifru. Pošto je permutacija date dužine bila stalno korištena, mnoge poruke date dužine su bile osuđene na propast– sa poštovanjem permutacije zajedno sa kodnom knjigom. Kriptoanalitičari su tako mogli uporediti sve poruke iste dužine, i na taj način bilo je lako otkriti fiksnu permutaciju, i bez znanja o delimičnoj kodnoj knjizi. Analitičari su morali niti pametni da razmotre sve mogućnosti da sve poruke date dužine koriste istu permutaciju, ali sa ovim uvidom permutaciju je bilo lako otkriti. Kodna knjiga je onda izvučena iz kontekta pomoću nekih nešifrovanih poruka koje daju trag u sastav sifarskog teksta.

I šta su ove dešifrovane poruke otkrile? Izveštači su želeli otkriti da su Tildenove pristalice pokušale da podmite zvaničnike u spornim zemljama. Ironija je u tome da su Tildenovi ljudi bili krivu upravo za ono za šta su optuživali Hayesove ljude.

Kako god pogledate, ova šifra je bila loše dizajnirana i slaba. Pouka ove priče jeste da je ponovno korišćenje (mnogobrojno korišćenje) istog ključa vodi do propasti. U ovom slučaj, svaki put kada je permutacija ponovo korištena, to daje kriptoanalitičarima više informacija koje mogu da sakupe i otkriju permutaciju. U modernim šifarskim sistemima, pokušavamo da ograničimo korišćenje jednog ključa tako da ne bi dozovlili kriptoanalitičarima da sakupe mnogo informacija o odrešenom ključu – i da bi ograničili štetu koja nastaje kada se ključ otkrije.

2.4 ISTORIJA MODENE KRIPTOGRAFIJE

Ne dozvolite da vam juče oduzme prevuše od danas.- Abraham Lincoln

Tokom 20-og veka, kriptografija je igrala važnu ulogu u velikim svetskim dešavanjima. Kasnije u 20. veku, kriptografija je postala kritična tehnologija i za komercijane i za poslovne komunikacije. Zimmermanov telegram je jedan od prvih primera iz prošlog veka i uloge kriptoanalitičara u političkim i ratnim aferama. U ovom delu, smo spomenuli istorijskih nekoliko događaja iz prošlog veka. Za više informacija o istorijskim događajima najbolji izvor je Kahnova fascinantna knjiga[119].

1929. godine državni sekretar Henry L. Stimson je završio zvaničku kriptoanalitičku aktivnost američke vlade opravdavajući njegove postupke sa besmrtnim potezom . ''Džentlmeni ne čitaju mejlove jedan drugom'' [224]. Ali to se pokazalo kao velika greška zbog napada Japanaca na Perl Harbur.

Kratko nakon napada 7. 12. 1941. SAD je ponovo pokrenula svoj kriptoanalitički program. Uspeh savezničkih kripnoanalitičara tokom Drugog svetskog rata je znatan i ovo doba se često naziva ''zlatno doba'' kriptoanalize. Praktično svi važni kriptosistemi su bili razbijeni i vrednost podataka dobijenih iz tih sistema je teško proceniti.

U pacifičkom teatru, tako se zvala Purpurna šifra je korištena za komunikaciju između Japanske vlade na visokim položajima. Ova šifra je razbijena od strane američkog kriptoanalitičara pre napada na Perl Harbur, ali je inteligencija (tajno ime Magic) nije imala jasne indikacije o napadu[61]. Japanska državna mornarica je koristila šifru poznatu pod nazivom JN-25, koju su takođe amerikanci razbili. Podaci iz JN-25 su bili sigurno presudni u dugim bitkama koje su vodili u Korejskom moru i Midveju, gde su neravnopravne američke snage po prvu put imale mogućnost da drže prednost u odnosu na Japance. Japanska mornarica nikada nije bila u mogućnosti da se potpuno opravi od gubitaka zadobijenih tokom ove bitke.

U Evropi, razbijanje Enigme (kodno ime ULTRA) je takođe sudbonosna pomoć saveznicama tokom rata [59, 87]. Često je tvrđeno da je vrednost podataka ULTRE bili toliki važni da je Čerčil u novembru 1940. godine da ne informiše britanski grad Koventri o vazdušnom napadu od strane nemačke avijacije, jer je glavni izvor za napad došao iz dešifrovanja poruke iz

Page 25: Zastita informacija

Enigme[229]. Čerčil je navodno bio zabrinut da bi upozorenje moglo navesti Nemce da pomisle da je šifra razbijena.

Enigma je u početku bila razbijena od strane Poljaka. Posle pada Poljske, poljski kiptoanalitičari su pobegli u Francusku. Posle toga, Francuska je pala u ruke nacista i kriptoanalitičari su pobegli u Englesku, gde su dali svoje znanje o Enigmi britanskim kriproanalitičarima. Zanimljivo je da poljskim kriptoanalitičarima nije bilo dozvoljeno da se dalje bave Enigmom. Međutim, britanski tim uključujući Alana Turinga su razvili poboljšan napad [59]. Slika Enigme je prikazana na Slici 2.5, a unutrašnji rad je predstavljen u Problemu 12 u poglavlju 6.

Posle Drugog svetskog rata, kriptografija je od ''mrtve umetnosti'' postala oblast nauke. Izdanje Clauda Shennona 1949. godine Informaciona teorija tajnih sistema (Information Theory of Secrecy Systems) [207] predstavlja početnu tačku. Shannonova studija je pokazala da je one-time pad sigurna i takođe je ponudio dva osnovna principa pravljenja šifara: konfuzija i difuzija. Konfuzija je napravljena da učini nejasnim vezu između otvorenog teksta i šifrata, dok je difuzija korištena da širi statistike otvorenog teksta kroz šifrat. Jednostavna zamena šifara i one-time pad koriste samo konfuziju, dok dvostruka transpozicija koristi difuziju. Pošto je one-time pad verovatno siguran očigledno je da je samo konfuzija ''dovoljna'', dok navodno difuzija sama nije.

Slika 2.5 Enigma

Page 26: Zastita informacija

Ova dva koncepta – konfuzija i difuzija – su i dalje vodeći principi u pravljenju šifara danas. U sledećem poglavlju, postaće jasno zašto su ovi koncepti presudni u modernim blokovskim šifarskim sistemima.

Do nedavno, kriprografija je bila samo u domenu vlade. To se dramatično promenilo 1970-ih godina, prvenstveno zbog kompjuterske revolucije, koja je vodila do potrebe za zaštitu velike količine elektronskih podataka. Sredinom 1970-ih čak je i američka vlada shvatila da postoji legitimna komercijalna potreba za sigurnom kriptografijom, i bilo je jasno da su komercijani proizvodi svakog dana nedostajali. Nacionalni zavod za standarde ili NBS izdaje zahtev za kriptografskim algoritmima. Krajnji rezultat ovog procesa je bio poznat kao Data Encryption Standard ili DES, koji je postao službeni standard američke vlade. Moguće je naglasiti ulogu koju je DES igrao u modernoj kriptografskoj istoriji. Govorićemo mnogo više o DES-u u sledećem poglavlju.

Posle DES-a, akademsko zanimanje za kriptografiju je rasla ubrzano. Kriptografija javnih ključeva je otkrivena (ili preciznije, ponovo otkrivena) kratko posle nastanka DES-a. Tokom 1980-ih, održavana je godišnja KRIPTO konferencija, koja je dosledno prikazivala visok kvalitet rada u ovoj oblasti. Tokom 1990-ih, Clipper Chip i razvoj zamene za starenje DES-a bili su dva od mnogih kripto vrhunaca.

Vlada je nastavila da finansira glavne organizacije koje rade na kriptu i povezanim oblastima. Međutim, jasno je da je duh kripta pobegao iz vladine boce i nikada se tamo neće vratiti.

2.5 RAZVRSTAVANJA U KRIPTOGRAFIJI

U sledeća tri poglavlja, razmotrićemo tri kategorije šifri: simetrične šifre, kriptosisteme javnih ključeva i heš funkcije. Ovde ćemo samo ukratko reći nešto svakoj od tri navedene kategorije.

Dok se razlika između javnih ključeva i simetričnih ključeva može zanemariti, to znači da kriptografija javnih ključeva može uraditi neke korisne stvari koje je nemoguće postići sa simetričnim šiframa.

U kriptografiji sa javnim ključevima, ključevi za šifrovanje su mogu biti javni. Ako, na primer, vi postavite svoj javni ključ na internet, svako ko ima internet konekciju može šifrovati potuku za vas, bez prethodnog dogovora u odnosu na ključ. Ovo je pravi kontrast simertičnim šiframa, gde se učesnici moraju unapred dogovoriti o ključu. Pre prihvatanja kriptografije javnih ključeva, sigurna isporuka simetričnog ključa je bila Ahilova peta kriptografije. Spektakularan slučaj o propasti simetrične šifre je da sistem distribucije može biti viđen u istraživanju špijunskog lanca porodiceWalker. Porodica Walker je prodala kriptiografske ključve koje je američka vojska koristila za Sovjetski Savez skoro dve decenije pre nego što je bila otkrivena [60, 71].

Kriptografija javnih ključeva ima drugu iznenađujuće i ekstremno korisno svojstvo, za koje nema nema paralela u svetu simetrične kriptografije. Pretpostavimo da je poruka ’’šifrovana’’ sa privatnim ključem umesto sa javnim. Pošto je javni ključ javni, svako može dešifrovati poruku. Na prvi pogled, ovakvo šifrovanje se čini besmoslenim. Međutim, to može biti korišteno kao digitalna forma rukom napisanog potpisa – svako može čitati potpis, ali samo je potpisnik kreirao potpis. Kao o svim ovim temama, tako i o digitalnim potpisima govorićemo u sledećim poglavljima.

Sve što možemo uraditi sa simetričnim šiframa možemo takođe ispuniti i sa kriptografijom javnih ključeva. Kriptografija javnih ključeva takođe omogućava da uradimo stvari koje ne možemo sa simetričnom kriptografijom. Pa zašto onda ne koristimo kriptografiju javnih ključeva za sve? Primarni razlog je brzina. Kriptografija simpertičnih ključeva je po svom opsegu brža od javne kriptografije. Kao rezultat, simetrična kriptografija je korištena za šifrovanje većine golemih podataka danas. Sada kriptografija javnih ključeva igra kritičnu ulogu u modernoj zaštiti informacija.

Page 27: Zastita informacija

Svaka o gore razmotrenih klasičnih šifri su simetrične šifre. Moderne simetrične šifre mogu biti podeljene na sekvencijalne šifre i blokovske šifre. Sekvencijane šifre generalizuju one-time pad pristup, žrtvujući sigurnost za ključ koji je razumne dužine. Blokovske šifre, generalizuju kondu knjigu. U blokovskim šiframa ključ određuje kodnu knjigu, i dok god ključ ostaje iste dužine koristi se ista kodna knjiga. Isto tako, kada se ključ promeni, druga kodna knjiga se izabere.

Dok su sekvencijalne šifre dominirale tokom Drugog svetskog rata, danas su blokovske šifre kraljevi simetričnih šifri – sa nekoliko značajanih izuzetaka. Generalno govoreći, blokovske šifre su lakše u otimizaciji za softversku implementaciju, dok su sekvencijalne šifre obično mnogo efikasnije kod harvera. Treća glavna kripto kategorija obuhvata heš funkcije. Ove funkcije uzimaju ulaz od bilo koje veličine i proizvodi izlaz od fiksne veličine koji zadovoljava neka specifična svojstva. Nije očigledno da takve funkcije korisne – ili da takve funkcije stvarno postoje – ali mi ćemo videti da one postoje i da su veoma korisne za iznenađujuće veliki niz problema.

2.6 TAKSONOMIJA KRIPTOANALIZE

Cilj kriptoanalize jeste otkrivanje otvorenog teksta, ključa ili oboje. Po Kerkhovim principima, mi pretpostavljamo da Trudi kriptoanalitičar ima potpuno znanje o unutrašnjem radu algoritama. Druga osnovna pretpostavka jeste da Trudi ima pristup šifratu – inače zašto se mučiti oko šifrovanja. Ako Trudi samo zna algoritme i šifrat onda ona mora izvesti samo šifrat napad. Ovo je nejnezgodniji mogući scenario iz Trudine perspektive.

Trudine šanse za uspeh se mogu poboljšati ako ima pristup poznatom otvorenom tekstu. To znači da Trudi mora znati nešto od otvorenog teksta i posmatrati odgovarajući otvoreni tekst. Ovo podudaranje otvoreni tekst-šifrat para mogu obezbediti neke informacije o ključu. Ako je sve od otvorenog teksta poznato, onda nema smisla u pronalaženju ključa. Ali je čest slučaj da Trudi ima pristup (ili može pogoditi) neki deo otvorenog teksta. Na primer, mnoge vrste podatake sadrže stereotipne hedere – e-mejl je odličan primer. Ako je takav podatak šifrovan, napadač može veoma lako pogoditi neke delove otvorenog teksta i videti odgovarajući šifrat.

Često, Trudi može da izabere otvoreni tekst koji će biti šifrovan i može da vidi šifrat. Ovo se zove napad izabranog otvorenog teksta. Kako je moguće da Trudi izabere otvoreni tekst? Videćemo da neki protokoli šifruju sve što je poslato i šalju odgovarajući šifrat. Takođe je moguće da Trudi ima ograničen pristup kriptosistemu, dozvoljavajući joj da šifruje otvoreni tekst koji je ona izabrala. Na primer, moguće je da se Alisa zaboravila izlogovati sa njenog računara kada je otišla na pauzu za ručak. Trudi tada može šifrovati neke izabrane poruke pre nego što se Alisa vrati. Ovaj primer ''pauza za ručak napada'' ima nekoliko oblika.

Potencijalno, za uspešan napad mnogo je bolji napad prilagodljivo izabranog otvorenog teksta. U ovom scenariju, Trudi izabere otvoreni tekst, vidi rezultirajući šifrat i izabere drugi otvoreni tekst baziran na posmatranom šifratu. U nekim slučajevima, ovo može učiniti Trudin posao veoma efikasnim. Napadi povezanog ključa su takođe veoma efikasni u nekim aplikacijama. Ideja je da se traže slabosti sistema kada su ključevi povezani na neki poseban način.

Tu su druge vrste napada zbog kojih su kriptografi ponekad veoma zabrinuti – posebno kada je potrebno da javno predstave neki novi akademski rad. U svakom slučaju, šifrat se može smatrati sigurnim ako ako nije poznat nijedan uspešan napad na njega. Definisaćemo ''uspešan'' u sledećem poglavlju.

Na kraju, postoji jedan poseban scenario napada koji se samo odnosi na kriptografiji javnih ključeva. Pretpostavimo da Trudi presretne šifrat koji je šifrovala Alisa sa svojim javnim ključem. Ako Trudi posumlja da je poruka otvorenog teksta je ili ''da'' ili ''ne'', onda ona može šifrovati oba ova otvorena teksta i na taj način poruka je razbijena. Ovo je poznato kao pretraga unapred. Iako

Page 28: Zastita informacija

pretraga unapred nema poseban efekat kod simetričnih šifri videćemo da ovaj pristup može biti korišten za napad na heš funkcije i neke aplikacije.

Prethodno smo videli da ključ mora biti dovoljno veliki da spreči napadače da pretraži sve moguće ključeve. Pretraga unapred upućuje na to da u kriptografiji javnih ključeva mi moramo biti sigurni da je veličina otvorenog teksta dovoljno velika da napadač ne može jednostavno šifrovati sve moguće poruke otvorenog teksta.

2.7 UKRATKO

U ovom poglavlju smo obradili nekoliko klasničnik kriptosistema, uključujući šifre zamene, dvostruku transpoziciju, kodne knjige i one-time pad. Svaka od njih ilustruje neki važan smisao na koje ćemo se vratiti u sledećem poglavlju. Takođe smo raspravljali o nekim osnovnim aspektima kriptografije.

U sledećem poglavlju obratićemo pažnju na modernu šifre simetričnih ključeva. Sledeće poglavlje obuhvata kriptografiju javnih ključeva, heš funkcije i kriptoanalizu. Kriptografija će se ponovo pojaviti u poslednjim delovima knjige. Kriptografija je praktično presudan sastojak u poglavlju o sigurnosnim protokolima.

2.8 PROBLEMI

1. Korišćenjem Cezarove šifre, pronađite otvoreni tekst iz šifrata VSRQJHEREVTXDUHSDQWU

2. Pronađite otvoreni tekst i ključ iz šifrataCSYEVIXIVQMREXIHznajući da je korištena šifra zamene sa pomerajem za n mesta.

3. ako imamo računar koji može testirati 240 ključeve u sekundi, koje je očekivano vreme da će se pronaći ključ tokom iscrpne pretrage ključeva ako je prostor ključeva 2128? Dajte svoj odgovor u godinama.

4. Kako radi Vižnerova šifra? Dajte jedan primer. Upotrebite svoje znanje o statistici napada na šifru zamene da bi konstuisali napad na Vižnerovu šifru.

5. Slaba šifra korištena tokom izbora 1876. godine upotrebljena je fiksna permutacija reči za date rečenicu date dužine. Da bi videli da je slaba, pronađite permutaciju (0,1,2,3,...,10) koja je korištena da proizvede izmešanu rečenicu dole, gde je ’’San Francisco’’ tretiran kao jedna reč. Primetite da neka permutacija je bila korištena za sve tri rešenice.

first try try if you and don’t again at succeedonly you you you as believe old are are aswinter was in the I summer ever San Francisco coldest spent

6. Slaba šifra na izborima 1876. godine koristila je jednim delom kodnu knjigu, a drugim delom permutaciju reči. Dizajnirajte mnogo sigurniju verziju ove šifre.

7. Definišite termine konfuzija i difuzija u kontekstu kriptografije? Razmotrite klasične šifre koje koriste samo konfuziju i takođe razmotrite klasične šifre koje koriste samo difuziju. Koje šifra obrađena u prethodnom poglavlju koristi i konfuziju i difuziju?

8. Dešifrujete primer jednostavene zamene u otvorenom tekstu 2.19. Dešifrujte šifrat koji se pojavljuje u citatu iz Alise u zemlju čuda na početku poglavlja.

Page 29: Zastita informacija

10. dešifrujte sledeću poruku koja je šifrovana korišćenjem šifre zameneGBSXUCGSZQGKGSQPKQKGLSKASPCGBGBKGUKGCEUKUZKGGBSQEICACGKGCEUERWKLKUPKQQGCIICUAEUVSHQKGCEUPCGBCGQOEVSHUNSUGKUZCGQSNLSHEHIEEDCUOGEPKHZGBSNKCUGSUKUASERLSKASCUGBSLKACRCACUZSSZEUSBEXHKRGSHWKLKUSQSKCHQTXKZHEUQBKZAENNSUASZFENFCUOCUEKBXGBSWKLKUSQSKNFKQQKZEHGEGBSXUCGSZQGKGSQKUZBCQAEIISKOXSZSICVSHSZGEGBSQSAHSGKHMERQGKGSKREHNKIHSLIMGEKHSASUGKNSHCAKUNSQQKOSPBCISGBCQHSLIMQGKGSZGBKGCGQSSNSZXQSISQQGEAEUGCUXSGBSSJCQGCUOZCLIENKGCAUSOEGCKGCEUQCGAEUGKCUSZUEGBHSKGEHBCUGERPKHEHKHNSZKGGKAD

11. napišite program koji pomaže analitičaru da dešifruje šifru zamene. Vaš program treba da uzme šifrat kao ulaz izračuna učestalost slova, i to prikaže analitičaru. Ovaj program bi trebao dozvoliti analitičaru da pogodi ključ i prikaže rezultat ’’dešifrovanja’’ sa ključem.

12. Proširite program razvijen iz problema 11. tako da u početku dešifruje poruku. Ovde je jedan jednostavan način kako to uraditi. Koristite učestalost izračunatih slova i poznavanje učestalosti slova u engleskom jeziku da biste pogodili ključ. Onda iz rezultirajućeg dešifrovanja, izračunajte broj reči koje se pojavljuju i koristite to kao ’’rezultat.’’ Dalje, za svako slovo u ključu pokušajte ga zameniti sa slovom koje je susedno (poštujući učestalost brojanja) i ponovo izračunajte rezultat. Ako se rezultat poboljša, ažurirajte ključ, a ako ne onda nemojte ažurirati ključ. Ponovite proces dok se rezultat ne poboljša za čitavo prosleđivanje kroz alfabet. U ovom trenutku prosledićete vaše dešifrovanje analitičaru. Kako bi se pomoglo analitičaru u ručnoj fazi, vaš program može održati svu funkcionalnost probrama iz problema 11.

13. Šifrujte poruku we are all together

koristeći dvostruku transpoziciju sa 4 reda i 4 kolone, koristeći permutaciju redova. (1, 2, 3, 4) → (2, 4, 1, 3)

i permutaciju kolona (1, 2, 3, 4) → (3, 1, 2, 4).

14. Dešifrujte šifrat IAUTMOCSMNIMREBOTNELSTRHEREOAEVMWIHTSEEATMAEOHWHSYCEELTTEOHMUOUFEHTRFT

Ova poruka je šifrovana pomoću dvostruke transpozicije koristeći matricu 7 redova i 10 kolona. Savet: prva reč je ’’there’’

15. Dajte u kratkim crtama napad na dvostruku transpoziciju, pretpostavljajući da je veličina matrice poznata 16. Koristeći slova šifrovana u Tabeli 2.1 sledeće dve poruke su šifrovane sa istim one-time

padomKHHLTK i KTHLLE.Pronašite moguće otvorene tekstove za svaku poruku i odgovarajući one-time pad.

17. Koristeći slova šifrovana u Tabeli 2.1, sledeći šifrat je šifrovan sa one-time padom KITLKE ako je otvoreni tekst ’’trill’’ koji je onda ključ?Koje otvoreni tekst ’’tiller’’, koji je ključ? 18. Pretpostavimo da imate poruku koja se sastoji od 1024 bita. Kreirajte metod koji će proširiti ključ koji je 64 bita dug na string od 1024 bita. Onda će tih 1024 bita biti

XORovano sa porukom, isto kao one-time pad. Da li je rezultirajući šifrat siguran kao one-time pad? Da li je moguće da je bilo koja šifra sigurana kao one-time pad?

Page 30: Zastita informacija

19. Kreirajte kompjuterizovanu verziju kodne knjige. Vaša šifra treba da sadrži nekoliko mogućih kodnih knjiga, sa ključem koji se koristi da odredi kodnu knjigu koja će biti za šifrovanje (ili dešifrovanje) određene poruke.

20. U tekstu smo objasnili kako pretraga unapred napad može raditi uprkos kriptosistemu javnog ključa. Zašto isti pristup ne može biti korišten da se razbije simtrična šifra?

Page 31: Zastita informacija

’’Vi to prokuhate na piljevini: vi to posolite u ljepilu:

Vi to zgusnite sa skakavcima i pantljikom:I dalje održavajući jedan glavni objekt u vidu –

Da biste očuvali njegov simetrični oblik.’’ - Lewis Carrol – ’’The Hunting of the Snark’’

Glavna forma lepote je red i simetrija...- Aristotel

3.1 UVOD

U ovom poglavlju govorićemo o dve vrste kriptografije simetričnim ključem: sekvencijalne šifre i blokovske šifre. Sekvencijalne šifre su slične one-time padu, sem što one menjaju dokazanu sigurnost za relativno mali (ili izvodljiv) ključ. Ključ je ''rastegnut'' na duge bitove, koji su onda korišteni kao one-time pad. Kao i one-time pad, sekvencijane šifre u Shannonovoj terminologiji predstavljaju samo konfuziju.

Blokovske šifre su bazirane na konceptu kodne knjige, gde ključ određuje kodnu knjigu. Unutrašnji rad algoritama blokovskih šifri može biti veoma zastrašujući, tako da moramo imati na umu da su blokovske šifre samo ''elektronske'' knjige. Blokovske šifre primenjuju i konfuziju i difuziju.

Mi ćemo razmotriti dva algoritma sekvencijanih šifri, A5/1 i RC4. Oba ova algoritma se veoma koriste i danas, A5/1 se koristi u mobilnoj telefoniji. A5/1 alogoritam predstavlja veliku klasu sekvencijalnih šifri zasnovanih na hardveru. RC4 se mnogo koristi, uključujući Secure

3

KRIPTO SIMETRIČNIHKLJUČEVA

Page 32: Zastita informacija

Socket Layer ili SSL protokol. RC4 je veoma jedninstvena sekvencijalna šifra i efikasno je implementiran u softver.

Kod blokovskih šifri razmotrićemo DES, jer je relativno jednostavan (kao standard blokovskih šifri) i blokovska šifra sa kojom se sve ostale upoređuju. Takođe ćemo ukratko pogledati nekoliko drugih popularnih blokovskih šifri. Onda ćemo ispitati različite modove operacija blokovskih šifri i razmotrićemo ulogu blokovskih šifri na polju integriteta, kao suprotnosti poverljivosti.

Naš cilj jeste da se u ovom delu upoznamo sa šiframa simetričnih ključeva i da postignemo neko razumevanje o tome kako one rade. To znači da ćemo više obratiti pažnju na ''kako'' nego na ''zašto''. Da bi razumeli kako su blokovske šifre kreirane onako kako jesu, neki aspekti unapređene kriptografije su potrebni. Odgodićemo razmatranje o naprednoj kriptografiji za Poglavlje 6.

3.2 SEKVENCIJANE ŠIFRE

Sekvencijane šifre uzimaju ključ K od n bita dužine i razvlače ga na dugi keystream. Keystream je onda XORovan sa otvorenim tekstom P da bi proizveo šifrat C. Korišćenje keystreama je identično korišćenju ključa kod one-time pada. Da bi dešifrovali sekvencijalnu šifru, isti keystream je generisan i XORovan sa šifratom. Jedan izvanredan uvod u sekvencijane šifre može biti pronađen u Rueppelovoj knjizi [194]; za vođenje u neke aspekte o najizazovnijem istraživanju problema u tom polju pogledajte [114].

Funkcija sekvencijalne šifre je

StreamCipher(K)=S

gde je K ključ a S je keystream koji koristimo isto kao u one-time padu. Formula za šifrovanje je

c0 = p0 ⊕ s0, c1 = p1 ⊕ s1, c2 = p2 ⊕ s2, . . .

gde je P = p0p1p2... otvoreni tekst, S = s0s1s2...je keystram, a C = c0c1c2... je šifrat. Za dešifrovanje šifrata C, keystream S je ponovo korišten

p0 = c0 ⊕ s0, p1 = c1 ⊕ s1, p2 = c2 ⊕ s2, . . . .

Pod pretpostavnkom da i pošiljalac i primalac imaju isti algoritam sekvencijane šifre da su oba znaju ključ K, ovaj sistem je praktično generalizacija one-time pada iako ne siguran kao one-time pad.

3.2.1 A5/1

Prva sekvencijana šifra o kojoj ćemo govoriti je A5/1, koja se koristi kod GSM mobilnih telefona za poverljivost. Ovaj algoritam ima algebarski opis, ali takođe može biti prikazan kroz relativno jednostavnu sliku. Mi ćemo dati ovde oba opisa.

A5/1 koristi tri linearne povratne informacije pomeračke registre [95] ili LFSR, koje ćemo mi nazvati X, Y i Z. Registar X se sastoji od 19 bita, koje ćemo označiti sa (x 0,x1,...,x18). Registar Y se sastoji od 22 bita (y1,y2,...,y21) i registar Z se sastoji od 23 bita (z1,z2,...,z22). Nije slićajno da sva tri registra zajedno imaju 64 bita.

Page 33: Zastita informacija

Ključ K je 64 bita. Ključ služi za postavljanje početnog stanje sva tri registra. Kada su sva tri registra postavljena na početno stanje, mi smo spremni da generišemo keystream. Ali pre nego što možemo opisati keystream, moramo govoriti o registrima X, Y, Z malo opširnije.

Kada se registar X pomeri, dogodi se sledeće

t = x13 ⊕ x16 ⊕ x17 ⊕ x18xi = xi−1 for i = 18, 17, 16, . . . , 1

x0 = t

Isto se dešava sa registrima Y i Z i svaki korak se sastoji od

t = y20 ⊕ y21yi = yi−1 for i = 21, 20, 19, . . . , 1

y0 = t

i

t = z7 ⊕ z20 ⊕ z21 ⊕ z22 zi = zi−1 for i = 22, 21, 20, . . . , 1

z0 = t

Data tri bita (x,y,z) definišu maj(x,y,z) i to predstavlja ’’većinu glasova’’ funkciju; to znači da ako većina od x,y i z je 0, onda funkcija vraća 0, u suprotnom vraća 1.

A5/1 je implementiran u hardver i na svakom taktnom impulsu je vrednost

m = maj(x8, y10, z10)

izračunata. Onda registri X, Y i Z se pomeraju na osnovu sledećeg pravila

If x8 = m then X stepsIf y10 = m then Y stepsIf z10 = m then Z steps

Na kraju keystream bita s je generisan kao

s = x18 ⊕ y21 ⊕ z22

i koji je onda XORovan sa otvorenim tekstom (ako je u pitanju šifrovanje) ili XORovan sa šifratom (ako je u pitanju dešifrovanje).

Iako se čini da je ovo komplikovan način generisanje jednog bita keystream, A5/1 je lako implementiran u hardver i može generisati bite na stopi proporcionalnoj brzini sata. Takođe, broj keystream bita koji može biti generisan iz jednog 64-bitnog ključa je praktično neograničen – iako će se keystream ponoviti. A5/1 diagram ima jednostavan prikaz ’’žičanog diagrama’’, kao što je prikazano na Slici 3.1. Vidite [26] za više informacija o A5/1 algoritmu.

A5/1 algoritam je predstavnik velike klase šifri koje su bazirane na pomeračkim registrima i imlementirane u hardver. Ovi sistemi su nekada bili kraljevi simetričnih kripto sistema, ali skorijih godina su im blokovske šifre preuzele tu titulu. A danas gde se koriste sekvencijane šifre koristi se RC4 algoritam, o kome ćemo govoriti kasnije.

Page 34: Zastita informacija

U prošlosti, sekvencijane šifre bazirane na pomeračkim registrima su bile potrebne da bi se držao korak sa tokovima bita (kao što je slučaj kod audio fajlova) koji su proizvedeni po relativno visokoj stopi podataka. U prošlosti softver baziran kripto nije mogao da generiše bite dovoljno brzo za takve aplikacije. Danas postoji samo nekoliko aplikacija za koji softver baziran kripto nije odogovarajući. Ovo je jedan od glavnih razloga zašto su blokovske šifre sada dominantne.

3.2.2 RC4

RC4 je sekvencijana šifra, ali mnogo različita od A5/1. Algoritam RC4 je napravljen za softversku implementaciju, dok je A5/1 dizajniran za hardver i RC4 pravi keystream bajt na svakom koraku, dok A5/1 prozvodi samo jedan keystream bit. RC4 algoritam je veoma jednostavan, jer njegova tabela sadrži permutaciju 256 bajtova. Svaki put kada je registarski bajt napravljen, tabela se modifikuje na takav način da tabela uvek sadrži permutaciju od {0,1,2,...255}.

Čitav RC4 algoritam je bajtno baziran. Prva faza algoritma inicijalizuje tabelu koristeći ključ. Mi ćemo označiti ključ kao ključ [i] za i = 0,1,…N-1,

Slika 3.1 A5/1 generator registara

TABLE 3.1. RC4 inicijalizacija

for i = 0 to 255S[i] = iK[i] = key[i mod N]next ij = 0for i = 0 to 255j = (j + S[i] + K[i]) mod 256swap(S[i],S[j ])next ii = j = 0

gde je svaki ključ [i] bajt, a tabela S[i], gde je S[i] je takođe bajt. Pseudo kod za inicijalizaciju permutacije S pojavljuje se u Tabeli 3.1. Jedna interesantna odlika RC4 algoritma jeste da ključ

Page 35: Zastita informacija

može biti bilo koje dužine od 0 do 255 bajtova. Ključ se koristi samo da bi se inicijalizovala permutacija S.

Nakon faze inicijalizacije, svaki registarski bajt je generisan na osnovu algoritma u Tabeli 3.2. Izlaz, koji smo označili sa keystreamByte je jedan bajt koji može biti XORovan sa otvorenim tekstom (ako je u pitanju šifrovanje) ili XORovan sa šifratom (ako je u pitanju defišrovanje). RC4 izlaz može biti korišten kao pseudo-slučajan broj generator za aplikacije koje zahtevaju ‘’kriptografske’’ (to je nepraktično) pseudo-slučajne brojeve.

RC4 algoritam – za koga se može reči da je samomenjajuća tabela – je elegantan, jednostavan i efikasan u softveru. Međutim, postoji napad koji je izvodljiv protiv određenih korištenja RC4 algoritma [80, 150, 255], ali ovaj napad je neizvodljiv ako jednostavno odbacimo prvih 256 registarskih bajtova koji su generisani. Ovo može biti ostvareno dodavanjem posebnih 256 koraka u fazu inicijalizacije, gde svaki dodatni korak generiše – i odbacuje – registarske bajte prateći algoritam u Tabeli 3.2.

RC4 se koristi za mnoge aplikacije, uključujući SSL. Međutim, algoritam je veoma star i nije optimizovan za 32-bitne procesore (u stvari, optimizovan je stare 8-bitne procesore).

Poslednjih godina je učinjeno malo da bi se razvili nove sekvencijane šifre. U stvari, ‘’smrt sekvencijanih šifri’’ je nedavno najavljena na glavnoj konferenciji ni manje ni više nego od samog Shamira [53]. Iako ovo može biti kao malo omalovažavanje, jasno je da su blokovske šifre danas dominantne.

TABLE 3.2. RC4 registarski bajt.i = (i + 1) mod 256j = (j + S[i]) mod 256swap(S[i], S[j ])t = (S[i] + S[j ]) mod 256keystreamByte = S[t ]

3.3 BLOKOVSKE ŠIFRE

Ponovljena blokovska šifra deli otvoreni tekst na fiksnu veličinu blokova i generiše fiksnu veličinu blokova u šifratu. Otvoreni tekst je dobijen iz otvorenog teksta preko iteracijske funkcije F preko nekog broja rundi. Funkcija F, koja zavisi od izlaza prethodne runde i ključ K, je poznata kao funkcija runde, ne zbog svog oblika, nego zbog toga što je primenjena u svakoj rundi.

Ciljevi dizajna blokovskih šifri su sigurnost i efikasnost. Nije toliko teško razviti ili sigurnu blokovsku šifru ili efikasan algoritam, ali je iznenađujuće teško razviti sigurnu blokovsku šifru koja je visoko efikasna.

3.3.1 FESTEL ŠIFRA

Festel šifra, dobila ime po jednom od osnivača blokovskih šifri Horst Festelu, je generalno dizajniran šifarski princip, ne specifična šifra. Kod Festel šifre, otvoreni tekst je podeljen na levu i desnu polovinu,

P=(L0,R0)

i za svaku rundu i = 1,2,...,n nova leva i desna polovina su izračunate na osnovu pravila, Li = Ri−1 (3.1)

Page 36: Zastita informacija

Ri = Li−1 ⊕ F(Ri−1,Ki ) (3.2)

gde je Ki podključ za rundu i. Podključ je dobijen iz ključa K na osnovu key schedule algoritma. Na kraju, šifrat C je izlaz poslednje runde

C = (Ln,Rn).

Naravno, lepo je biti u mogućnosti i dešifrovati. Lepota Festel šifre jeste da mi možemo dešifrovati bez obzira na pojedinačnu rundu funkcije F. Da bi to uradili, jednostavno rešimo jednačine 3.1 i 3.2 za Ri-1 i Li-1 što nam dozvoljava da pokrenemo proces unazad. Za i=n, n-1,...1, pravilo za dešifrovanje je

Ri−1 = Li Li−1 = Ri ⊕ F(Ri−1,Ki )

i krajnji rezultat je orginalni otvoreni tekst P = (L0,R0).Svaka runda funkcije u Festel šifri će raditi, ako izlaz funkcije F predstavlja pravilan broj

bita. U stvari, nema potrebe da funkcija F bude obrnuta. Međutim, Festel šifra neće biti sigurna za svako moguće F. Na primer, runda funkcije

F(Ri−1,Ki ) = 0 za sva Ri−1 i Ki

je legitimna runda funkcije u kojoj možemo ’’šifrovati’’ i ’’dešifrovati’’sa tim F, ali šifra je nesigurna. Jedna prednost Festel šifre jeste da sva pitanja o sigurnosti postaju pitanja o rundi funkcije, tako da analiza može biti usmerena na F.

3.3.2 DES

Mi šaljemo [DES] S-kutije za Vašington. One će se vratiti i biće sve različite.- Alan Konheim, jedan od dizajnera DES-a

Reći ću da, suprotno onome u šta većina ljudi veruje, da nema dokaza o tempering DES-a tako da je osnovni dizajn bio oslabljen.

- Adi Shammir

Data Encryption Standard poznat kao DES – što se rimuje sa ''fez'' i ''pez'' – je razvijen 1970-ih godina. Dizajn je baziran na Luciferovoj šifri, a Festel šifru je razvio IBM. DES je iznenađujuće jednostavna blokovska šifra, ali priča o tome kako je od Luciferove šifre nastao DES je sve samo ne jednostavna.

Do sredine 1970-ih, bilo je jasno čak i američkoj birokratskoj vladi da postoji legitimna komercijalna potreba za sigurnom kriptografijom. U to vreme, kompjuterska revolucija je bila u toku, i iznos i osetljivost digitalnih podataka je ubrzano rasla.

Sredinom 1970-ih, kriptografija je bila veoma malo poznati izvan vojnih i političkih krugova, i oni nisu o tome govorili (i za večini slučajeva još uvek nisu). Ishod je bio da preduzeća nisu imala način da postavljaju zakonska prava u vezi kriptografskog proizvoda i kvalitet većine takvih proizvoda je bio loš.

U ovom okruženju Nacionalni biro za standarde (National Bureau of Standards) ili NBS (sada poznat kao NIST) izdao je zahtev za predlog šifri. Pobednik je postao standard američke

Page 37: Zastita informacija

vlade i skoro sigurno de facto industrijski standard. Veoma malo razumnih podnošenja su primljene, i veoma brzo je postalo jasno da je IBM-ova Luciferova šifra jedini ozbiljan kandidat.

U ovom trenutku, NBS je imao problem. Bilo je veoma malo kriptografskih ekspertiza u NBS-u, tako da su se okrenuli vladinim stručnjacima, super-sigurnoj Nacionalnoj sigurnosnoj agenciji (National Security Agency) ili NSA. NSA je dizajnirala i stvarila kriptografije koje su se koristile u američkoj vojsci i vladi za visoko osetljive informacije. NSA takođe sprovodi ''signalnu inteligenciju,'' ili SIGINT, čiji su pokušaji sa zadobiju inteligentne informacije.

NSA se očigledno nerado umešala sa DES-om, ali na kraju su se složili da proučavaju dizajn Luciferove šifre i ponude neka mišljenja. Ovo se desilo u tajnosti, a na kraju kada je informacija ugledala svetlost dana [212] (a kako je to neizbežno u Americi) mnogi su bili sumljivi da NSA stavila ''backdoor'' u DES tako da to samo može razbiti šifru. Dakako, SIGNIT misija u NSA i generalna klima u vezi nepoverenja vladi proizvela je takve strahove. Ali 30 godina intenzivnih kriptoanaliza nije otkrilo nijedan backdoor za DES. Ipak, ova sumlja je kvarila DES od samog početka.

Lucifer je najzad postao DES, ali ne posle nekoliko veštih – i nekoliko ne baš veštih – promena je učinjeno. Najočiglednija promena da je dužina ključa smanjena sa 128 bita na 64 bita. Međutim, 8 od 64 bita ključa su odbačeni, pa je stvarna dužina ključa samo 56 bita. Kao rezultat ovim promena, očekivani posao je zahtevao da se iscrpljujuća pretraga ključa smanji sa 2177 na 255. Po ovoj meri, DES je 272 lakši za razbiti od Lucifera! Razumljivo, sumlja je da je NSA imala ulogu u ovom. Međutim, naknadne kriptoanalize DES algoritma su otkrili napad koji zahteva neznatno malo posla od probavanja 255 ključeva. Kao rezultat, DES je verovatno jak sa ključem og 56 bita kao što bi bio i sa dužim ključem.

Vešte promene Lucifera uključile su zamenu kutija (boxes) ili S-kutija, koje su dole objašnjene. Ove promene su ustvari ispunile sumlju o backdoor. Ali je posle nekog vremena postalo jasno, da je promena u S-kutije ustvari ojačala algoritam nudeći zaštitu protiv kriptoanalitičkih tehnika koje nisu bile poznate (barem ne izvan NSA, i o tome se nije govorilo) sve do unazad nekoliko godina. Činjenica je da kogod je modifikovao Lucifer algoritam (a to je NSA) znali su čineći to da će značajno ojačati algoritam. Vidite [164, 212] za više informacija o ulozi NSA u razvoju DES-a.

Da sumuramo. DES je Festel šifra sa 16 rundi DES ima ključ dužine 64 bita DES koristi ključ od 56 bita Svaka runda u DES-u koristi 48-bitni podključ i svaki podključ se sastoji od 48-

bitnog podseta od 56-bitnog ključa.

Svaka runda je relativno jednostavna – barem prema standardu o kreiranju blokovskih šifri. DES S-kutije su jedna od najvažnijih sigurnosnih funkcija. Videćemo da su S-kutije zajednička funkcija većini modernih blokovskih šifri. U DES-u, svaka S-kutija preslikava 6 bita u 4 bita, i DES koristi osam S-kutija. S-kutije, zajedno preslikavaju 48 bita u 32 bita. Iste S-kutije su korištene za svaku rundu u DES-u.

Pošto je DES Festel šifra, šifrovanje prati pravila prikazana u jednačini 3.1 i 3.2. Jedna runda DES-a je predstavljena kao žičani dijagram na Slici 3.2, gde su brojevi broj bita koji prati odgovarajuću ''žicu.''

U dijagramu na Slici 3.2 vidimo da DES funkcija runde F može biti napisana kao

F(Ri−1,Ki ) = P-box(S-boxes(Expand(Ri−1) ⊕ Ki )). (3.3)

Sa ovom funkcijom runde, vidi se da je DES Festel šifra kao što je definisano u jednačini 3.1 i 3.2.

Page 38: Zastita informacija

Pošto je DES blok veličine 64 bita, svako Li i Ri je 32 bita. Kao što se traži u jednačini 3.1, nova leva polovina je jednostavno stara desna polovina. Runda funkcije F je

Slika 3.2 Jedna runda u DES-u

Nema ovog dela knjige

Page 39: Zastita informacija

u svakoj od 64 pozicije. Svaka S-kutija je napravljenja tako da svaki od njenih četiri reda je permutacija heksadecimalnih brojeva {0,1,2,...,E,F}. Mi dajemo S-kutiji broj 1 dole, gde je ulaz u S- kutiju obilježen sa b0b1b2b3b4b5. Primetite da prvi i poslednji ulazni biti su korišteni da indeksiraju red, dok srednja četiri bita indeksiraju kolonu.

Strukturu permutacije S-kutije 1 je lakše videti ako pretvorimo bite u heksadecimalne,

Svih 8 S-kutija su prikazne u Dodatku.

DES ’’permutacija kutije’’ ili P-kutija, ne služi za svrhu sigurnosti, ali se njena prava svrha izgubila tokom istorije. Jedano uverljivo objašnjenje jeste da su dizajneri želeli da učine DES mnogo komplikovanijim tokom implementacije u softver dok je orginalni dizajn zvan za specijalni hardver. To je očigledno bila nada da DES može ostati algoritam samo za hardver. U stvari, S-kutije su orginalno bile klasifikovane, tako da pristup samo hardver je podrazumevao da on ostane tajna. Predvidljivo, DES S-kutije su postale javno poznate skoro odmah.

Samo da se zna, P-kutija permutacija je

15 6 19 20 28 11 27 16 0 14 22 25 4 17 30 91 7 23 13 31 26 2 8 18 12 29 5 21 10 3 24.

Jedini značajan deo DES-a koji nam je ostao jeste stvaranje podključa ili algoritam rasporeda ključa. Ovo je donekle uvrnut proces, ali konačni rezultat je jednostavno da je 48 od 56 bita ključa izabrano za svaku rundu. Međutim, detalji su sigurnosno-kritični, jer postoje napadi algoritma rasporeda ključa na blokovske šifre.

Kao i obično, mi ćemo izbrojati 56-bitni DES ključ s leva na desno, počinjući od 0. prvo ćemo izvući 28 bitova iz DES ključa, permutovati ih, i nazvati rezultat LK. Biti DES ključa od LK su sledeći biti orginalnog ključa

49 42 35 28 21 14 70 50 43 36 29 22 158 1 51 44 37 30 2316 9 2 52 45 38 31

Isto tako, preostalih 28 bita od DES ključa su poznati kao RK, i oni su

Page 40: Zastita informacija

55 48 41 34 27 20 136 54 47 40 33 26 1912 5 53 46 39 32 2518 11 4 24 17 10 3

Pre nego što možemo opisati algoritam rasporeda ključeva, potrebno nam je još nekoliko stavki. Definisati permutaciju LP kao

13 16 10 23 0 4 2 27 14 5 20 922 18 11 3 25 7 15 6 26 19 12 1

I permutaciju RP kao

12 23 2 8 18 26 1 11 22 16 4 1915 20 10 27 5 24 17 13 21 7 0 3

Na kraju, definisati

DES algoritam rasporeda ključeva za generisanje 48-bitnog podključa Ki za rundu i može sad biti opisan kao u Tabeli 3.3.

Za potpunost, postoje dve druge funkcije DES-a koje moraju biti spomenute. Početna permutacija je primljena u otvoreni tekst pre runde jedan, a njena obrnuta permutacija je primljena posle poslednje runde. Takođe, tokom šifrovanja, polovine su zamenjene(swapped) nakon poslednje runde, pa je pravi šifrat (R16, L16) umesto (L16, R16). Ništa od ovoga ne služi za poboljšanje sigurnosti, i ignorisaćemo ih u sledećim diskusijama.

Nekoliko reči o sigurnosti DES-a mogu biti korisne. Prvo, matematičari su veoma dobri u rešavanju linearnih jednačina, i jedini deo kod DES-a koji nije linearan su S-kutije. Kao rezultat, S-kutije su presudne za sigurnos DES-a. U stvari, proširenost permutacija ima važnu ulogu, ali nista manju ne igra ni raspored ključeva. Sve ovo će postati mnogo jasnije posle diskusije o linernim i diferencijalnim kriptoanalizama i kasnijem poglavlju. Za više detalja u vezi dizajan DES- vidite [203].

TABLE 3.3. DES algoritam rasporeda ključa.

Uprkos zabrinutosti u vezi dizajna DES-a – posebno uloge NSA-a u celom procesu – DES je očito opstao kroz vreme [141]. Danas, DES je veoma jednostavan zbog veoma malog ključa, a ne zbog kratkih napada vrednih pažnje. Iako su neki napadi razvijeni, da u teoriji, zahtevaju

Page 41: Zastita informacija

neznatno malo posla u odnosu na iscrpljujuću pretragu ključeva, DES krekeri su u praksi danas razvili jednostavne pokušaje svih ključeva dok ne pronađu pravi. Neizbežan zaključak jeste da su DES dizajneri znali šta rade.

Imaćemo više toga reći o DES-u kada budemo govorili o naprednoj kriptoanalizi u sledećem poglavlju. U stvari, DES je bio poticaj za mnoga skorija zbivanja na polju kriptoanalize.

Dalje, ćemo objasniti trostruki DES, koji je korišten za efikasno proširenje dužine ključa kod DES-a. Ovaj kratak pregled ćemo upotpuniti sa još nekoliko blokovskih šifri. A onda ćemo detaljnije govoriti o jednoj veoma jednostavnoj blokovskoj šifri.

3.3.3 Trostruki DES

Pre nego što nastavimo da govorimo o drugim šiframa, moramo prvo da govorimo o popularnoj varijanti DES-a poznatoj kao trostruki DES ili 3DES. Ali pre toga, potrebno nam je označavanje. Neka P bude blok otvorenog teksta, K je ključ, C je odgovarajući blok šifrata. Za DES, C i P su po 64 bita, dok je K 56 bita. Obilježavanje koje ćemo prihvatiti za šifrovanje otvorenog teksta P sa ključem K je

C = E(P,K)A za dešifrovanje je

P = D(C,K).

DES je skoro sveprisutan, ali njegova dužina ključa je danas nedovoljna. To bi značilo da bi pametan način za korištenje DES-a bilo da se poveća dužina ključa. Intuitivno, to bi značilo da je dvostruki DES dovoljan,

C = E(E(P,K1),K2). (3.4)

Ovo bi nudilo pogodnosti ključa od 112 bita, ali jedina mana bi bila gubitak efikasnoti u vezi sa dve DES operacije.

Međutim, postoji napad na dvostruki DES koji ga čini više-manje sličnim običnom DES-u. Iako je ovaj napad nepraktičan, veoma je blizu da postane praktičan što je i uzrok zabrinutosti. Ovo je napad izabranog otvorenog teksta. Mi odaberemo određeni otvoreni tekst P i dobijemo odgovarajući šifrat C. Naš cilj je pronaći ključ K1 i K2 u jednačini 3.4. Prvo preračunamo tabelu veličine 256 koja sadrži parove E(P,K) i ključ za sve moguće vrednosti ključa K. Sortiramo ovu tabelu na vrednosti E(P,K). Sada na osnovu ove tabele i vrednosti šifarskog teksta C odgvarajućeg za izabrano P, mi dešifrujemo C sa ključem K˜ dok ne nađemo vrednosti D(C, K˜) koji je u tabeli. Vrednost koju nađemo u tabeli će biti E(P,K) za neko K i mi imao

D(C, K˜ ) = E(P,K)

gde su K˜ i K poznati. Da smo otkrili 112-bitni ključ znači da smo obe strane šifrovali sa K˜, što daje

C = E(E(P,K), K˜ ),

A to znači da je K1=K i K2= K˜ u jednačini 3.4. Ovaj napad na dvostruki DES zahteva da mi preračunamo i smestimo ogromnu tabelu od 256

elemenata. Ali računanje tabele se radi samo jednom, pa ako koristimo tu tabelu više puta

Page 42: Zastita informacija

(napadajući dvostruki DES više puta) posao za računanje tabele može biti amotrizovan preko broja napada. Zanemarujući posao potreban za preračun tabele, posao se sastoji od računanja D(C,K) dok ne pronađemo ono što odgovara u tabeli. Ovo zahteva posao od 255, i isto je tako iscrpljujući posao pretrage ključa kod običnog DES-a.

Pošto dvostruki DES nije siguran, mi ćemo utrostručiti DES i videti da li je on siguran. Možemo reći da je napad meet-in-the-middle isto kao kod dvostrukog DES-a nepraktičan, jer je predračun tabele neizvodljiv – ili je rad na napadu neizvodljiv ako smanjimo tabelu na praktičnu veličinu.

Onda to znači da bi logičan pristup trostrukom DES-u bio

C = E(E(E(P,K1),K2),K3)

ali to nije način na koji se to radi. Umesto toga, trostruki DES se definiše kao

C = E(D(E(P,K1),K2),K1).

Primetite da trostruki DES koristi samo dva ključa i šifrovanje-dešifrovanje-šifrovanje, ili EDE se koristi umesto EEE. Razlog zašto se koristi samo dva ključa je taj što 112 bita dovoljno, ali zašto EDE? Iznenađujuće, odgovor je povratna kompatibilnost sa običnim DES-om. Ako se 3DES koristi sa K1=K2=K onda se to pretvara u obični DES

C = E(D(E(P,K),K),K) = E(P,K).

Trostruki DES je danas mnogo popularan. Ali sa razvojem Advanced Encryption Standard-a, trostruki DES će se za nekoliko godina prestati koristiti.

3.3.4 AES

Tokom 1990-ih bilo je jasno svima pa i američkoj vladi da je DES nadživeo svoju korisnost. Presudan problem sa DES-om jeste da dužina ključa od 56 bita osetljiva na isrpljujuću pretragu ključa. Posebnu ulogu DES krekera koji su uspeli da naprave da mogu da otkriju DES ključeve za nekoliko sati, i uznemirujući napadi koristeći dobrovoljne računare na internetu uspeli su da pronađu DES ključeve [70].

Početkom 1990-ih National Institute of Standards and Technology (NIST), koji je danas otelovljenje NBS-a, izdao je poziva za kripto predlog za Advanced Encryption Standard ili AES. Ali ne tako kvalitetne kao pre dvadest godina kada je NIST dao veoma kvalitetne predloge. Polje se svelo na pregršt finalista, i algoritam poznat pod nazivom Rijndael (izgovara se nešto slično kao Rain deal) je odmah izabran. Vidite [140] za više informacija o konkurenciji AES-a i [54] za detalje u vezi Rijndael algoritma.

AES konkurencija je vođena na potpuno otvoren način i za razliku od DES konkurencije, NSA je otvoreno umešana kao jedan od sudija. Kao rezultat, ne postoje verodostojini dokazi da su neke tajnosti bile umešane u AES. AES je visoko rangiran u kriptografskoj zajednici. Shamir je izjavio da će AES sa ključem od 256 bita biti ’’siguran zauvek’’, bez obzira na predstojeće napretke u računarskoj tehnologiji [52].

Kao DES, AES je iterativna blokovska šifra. Ali za razliku od DES-a AES algoritam nije Festel šifra. Ovo podrazumeva da, u načinu dešifrovanja, AES operacije moraju biti povratne. Takođe za razliku od DES-a, AES algoritam je visoka matematička struktura. Mi ćemo dati samo kratak osvrt na algoritam – veliki količina informacija o svim aspektima AES-a je dostupna za

Page 43: Zastita informacija

čitanje. Nijedan algoritam u istoriji nije primio više ispitivanja u kratkom periodu kao što je AES. Vidite [5, 187] za više informacija o Rijndael algoritmu.

Neki od osnovnih podataka o AES-u su Dužina blokova je: 128, 192 i 256 bitova. Dužina ključeva (u zavisnosti od odabrane dužine bloka) je: 128, 192 ili 256 bita. Broj rundi varira od 10 do 14, u zavisnosti od dužine ključa. Svaka runda se sastoji od četiri funkcije, koje su u tri ’’sloja.’’ Funkcije su:

ByteSub (nelinearni sloj) ShiftRow (sloj linearnog mešanja) MixColumn (nelinearan sloj) AddRoundKey (dodatni sloj ključa)

Uzimajući u obzir 192-bitnu dužinu bloka, AES tretira podatke kao 4 x 6 bajtni niz.

Operacija ByteSub je primenjena u svakom bajtu aij, a to je bij = ByteSub(aij). Rezultat niza bij je predstavljen ispod:

ByteSub je AES-ova S-kutija, i može se posmatrati kao nelinearna – ali invertibilna – kompozicija dve matematičke funkcije ili se može jednostavno posmatrati kao lookup tabela. Kasnije ćemo dati njen pregled. ByteSub lookup tabela je prikazana u Tabeli 3.4. Na primer, ByteSub(3c)=eb pošto se eb pojavljuje u redu 3 i koloni c u tabeli 3.4.

ShiftRow operacija je jednostavno ciklično pomeranje bajtova u svakom redu 4 x 6 bajtnom nizu. Ta operacija je predstavljena

I to znači da se prvi red ne pomera, drugi red se pomera za pet bajtova udesno, treći red za 4 bajta i poslednji red za 3 bajta. Primetite da je ShiftRow invertan pomeranjem u suprotnu stranu.

Page 44: Zastita informacija

Tabla 3.4. AES ByteSub

MixColumn operacija je primenjena u svaku kolonu 4 x 6 bajtnog niza.

MixColomn se sastoji od pomeranja i operacije XORovanja, i najbolje je implementirana kao velika tabela. Sveobuhvatna operacija je nelinerana ali invertibilna i kao ByteSub, ima ulogu itu kao S-kutije kod DES-a.

AddRoundKey je jednostavna operacija. Kao DES, algoritam tabele ključa je korišten da bi se generisao ključ za svaku rundu. Neka K ij bude 4 x 6 podključ niz određenu rundu. Onda je podključ XORovan sa trenutnim 4 x 6 bajtnim nizom aij kao što je prikazano dole:

Ignorisaćemo AES raspored ključa, ali je važan deo sigurnosti algoritma. Na kraju, kao što smo napomenuli gore, svaka od četiri funkcije ByteSub,ShiftRow, MixColumn i AddRoundKey su invertibilne. Kao rezultat, čitav rezultat je invertibilan i na osnovu toga AES može dešifrovati kao što može šifrovati.

Page 45: Zastita informacija

3.3.5 Još tri blokovske šifre

U ovom delu, kratko ćemo obraditi tri blokovska algoritma, International Data Encryption Algorithm (IDEA), Blowfish, i RC6. Svaka od njih ima neke novitete u svom dizajnu. U sledećem delu, govorićemo o Tiny Encryption Algorithm, or TEA [246].

IDEA je delo James L. Massey, jednog od najvećih kriptografa modernog vremena. Najsavremenija odlika IDEA je to što koristi miksovanju modularnu aritmetiku. Algoritam kombinuje sabiranje modula 2 (XORovanje) sa sabiranjem modula 216 i Lai-Massey multiplikaciju, koja je skoro 216 multiplikacija. Ove operacije zajedno proizvode potrebnu nelinearnost i kao rezultat neeksplicitna S-kutija je potrebna. Massey je prvi koji je koristio ovaj pristup, i taj pristup se danas veoma koristi. Vidite [156] za više detalja o IDEA dizajnu.

Blowfish je Bruce Schneierov omiljeni algoritam, jer ga je on izumeo. Scheier je poznat kriptograf i dobar pisac o svim stvarima koje se tiču sigurnosti. Interesantna stvar kod Blowfisha jeste ta što njegova upotreba zavisnosti ključa od S-kutija. Umesto da ime fiksne S-kutije Blowfish generiše S-kutije bazirane na ključu. To može biti prikazano da su tipične Blowfish S-kutije sigurne. Vidite [202] za više informacija o Blowfish-u.RC6 je delo Ron Rivest-a, čija su kriptografska dostignuća zaista velika, uključujući sistem javnih ključeva RSA i prethodno spomenuta RC4 sekvencijalna šifra, kao i jedna od najpoznatijih heš funkcije MD5. Neobičan aspekt RC6 je to što koristi rotacije zavisne od podataka [188]. Veoma je neobično da se oslanja na podatke kao na jedan od neophodnih delova operacije u kripto algoritmu. RC6 je bio jedan od AES finalista, dok nije na kraju izgibio.

Ove tri šifre daju neke od mnogih varijacija korištenih kod pitanja za idelan balans između sigurnosti i performansi u dizajnu blokovskih šifri. U sledećem poglavlju govorićemo o linernim i diferencijanim kriptoanalizama, koje čini razmenu nerazdvojivom u dizajnu blokovskih šifri jasnijom.

3.3.6 TEA

Poslednja blokovska šifra o kojoj ćemo govoriti je Tiny Encryption Algorithm ili TEA. Dijagrami o kojima smo prethodno govorili upućuju na to da su blokovske šifre potrebno kompleksne. TEA veoma lepo ilustruje da ona nije kompleksna.

TEA koristi blok dužine 64 bita i ključ dužine 128 bita. Algoritam podrazumeva artmetiku sa 32 bitne reči, tako da sve matematičke operacije koriste moduo 232. Broj rundi varira ali mora biti relativno veći upoređujući sa prethodnim blokovskim šiframa koje smo videli (32 runde se smatraju sigurnim).

U dizajnu blokovskih šifri, postoji razmena između kompleksnosti svake runde i potrebnog broja rundi. Šifre kao što je DES pokušavaju sa smanje balans između ovog dvoga, dok AES redukuje broj rundi ali ima mnogo kompleksniju funkciju runde. TEA, sa jedne strane, koristi veoma jednostavnu funkciju runde; međutim, kao posledica, broj rundi mora biti veliki da bi postigao visoj nivo sigurnosti. Pseudo kod za TEA šifrovanje – ako su korištene 32 runde - se pojavljuje u Tabeli 3.5, gde je ''<<'' je levo pomeranje i ''>>'' desno pomeranje.

Jedna stvar koju treba primetiti kod TEA jeste da ona nije Festel šifra, tako da treba da razdvojimo rutine šifrovanja i dešifrovanja. Ali TEA je ''skoro'' Festel šifra ali ona koristi sabiranje i oduzimanje umesto XORovanja. Međutim, potreba za razdvajanje rutina šifrovanja i dešifrovanja je najmanji problem kod TEA, jer se koristi veoma malo koda.

Page 46: Zastita informacija

Algoritam je takođe veoma efikasan, iako sadrži veliki broj rundi. TEA algoritam za dešifrovanje sa 32 runde prikazan je u Tabeli 3.6

Postoji nejasan napad ''povezan ključ'' [123]. Ako kriptoanalitičar zna da su dve poruke šifrovane ključevima koji su povezani na poseban način, onda otvoreni tekst može biti otkriven. Ovo je napad veoma niske verovatnoće koji se u većini slučajeva može ignorisati. Ali postoji malo kompleksnija varijanta TEA ili XTEA [165]. koja odoleva ovom problemu. Postoji i pojednostavljena verzija TEA, poznata kao STEA, koja je veoma slaba, ali omogućava da se ilustruju određeni tipovi napada [160].

3.3.7. Režimi rada blokovskih šifri

Korišćenje sekvencijalnih šifri je jednostavno – vi generišete ključ koji je iste dužine kao otvoreni tekst i XORujete. Korišćenje blokovskih šifri je takođe jednostavno, dokle god imate samo jedan blok da šifrujete. Ali kako se mogu višestruki blokovi šifrovati? I kako parcijalni blokovi mogu biti šifrovani? Odgovori nisu jednostavni kao što se čini?

Pretpostavimo da imamo višestruke otvorene blokove

P0, P1, P2, . . .

Za fiksan ključ K, blokovska šifra je kodna knjiga, dokle god kreira fiksno preslikavanje između otvorenog teksta i blokova šifrata. Prateći ideju kodne knjige, obavezna stvar koju treba uraditi jeste koristiti blokovsku šifru u takozvanoj elekotronskoj kodnoj knjizi ili ECB režimu. U ECB režimu mi šifrujemo koristeći formulu

Ci = E(Pi,K) for i = 0, 1, 2, . . .

Page 47: Zastita informacija

Mi možemo dešifrovati na osnovu formule

Pi = D(Ci,K) for i = 0, 1, 2, . . .

Ovaj pristup funkcioniše, ali postoji nekoliko problema u vezi sigurnosti sa ECB režimom. Pretpostavimo da je ECB režim korišten, napadač zapazi da je C i=Cj. Onda napadač zna da

je Pi=Pj. Iako se ovo može smatrati bezazlenim, postoji slučajeva gde napadač zna deo otvorenog teksta i svako podudaranje da poznatim blokom otkriva novi blok. Ali i da napadač ne zna P i ili Pj

neke informacije su otkrivene, naime da su ova dva bloka otvorenog teksta ista, a mi ne želimo da damo kriptoanalitičaru nešto slobodno – pogotovo ako postoji razuman način da se to izbegne.

Massey [151] daje dramatičnu ilustraciju slabosti ECB režima, na osnovu primera Alisine slike koja pored orginalne slike ima sliku šifrovanu u ECB režimu. Dajemo primer na Slici 3.3, koji nam prikazuje nekompresovanu sliku Alise, pored slike koja je šifrovana u ECB režimu. Dok je svaki blok na desnoj slici šifrovan, blokovi koji su isti na orginalnoj slici su isti su isti i u ECB verziji slike. U ovom slučaju, nije teško za Trudi da pogodi otvoreni tekst iz šifrata.

Na sreću, postoji nekoliko rešenja za slabosti ECB režima. Mi ćemo govoriti o najakorišćenijem metodu menjanja šifarskih blokova, ili CBC režimu. U CBC režimu, šifrat iz bloka je korišten za nepoznat otvoreni tekst sledećeg bloka, pre nego što je šifrovan. Formula za šifrovanje u CBC režimu je

Ci = E(Pi ⊕ Ci−1,K) for i = 0, 1, 2, . . . (3.5)

Page 48: Zastita informacija

Slika 3.3 Alisa i ECB režim

I dešifrujemo na osnovu formule

Pi = D(Ci,K) ⊕ Ci-1 for i = 0, 1, 2, . . . . (3.6)

Prvi blok zahteva poseban način vođenja pošto nema šifarskog bloka Ci-1. Inicijalizacioni vektor ili IV se koristi da zauzme mesto Ci-1. Pošto šifrat nije tajan i pošto IV igra ulogu bloka šifrata ni on takođe ne treba da bude tajan. Ali IV mora biti nasumično selektovan. Koristeći IV prvi blok je šifrovan na sledeći način

Co = E(P0 ⊕ IV,K)

Sa formulom iz jednačine 3.5. korištenom za preostale blokove. Prvi blok je dešifrovan kao

P0 = D(C0,K) ⊕ IV

Sa formulom iz jednačine 3.6. korištenom da dešifruje preostale blokove. Pošto IV nije tajan, obično se nasumično generiše i šalje kao prvi ’’šifat’’ bloka. Primalac mora znati da prvi blok treba trtirati kao IV.

Prednost CBC režima jeste da identičan otvoreni tekst neće rezultirati identičnim šifratom. Ovo je predstavljeno ilustrujući Alisinu sliku šifrovanu koristeći ECB režim prikazanu na Slici 3.3 sa Alisinom slikom šifrovanom šifrovanom u CBC režimu, koja se pojavljuje na Slici 3.4.Moguća briga sa CBC režimom jeste moguća pojava grešaka. Kada je šifrat poslat, mogu se dogoditi kvarovi, 0 može postati 1 ili obrnuto. Ako jedna prenesena greška učini otvoreni tekst nepopravljivim, onda je CBC režim beskoristan u mnogim aplikacijama. Na sreću, ovo nije taj slučaj.

Page 49: Zastita informacija

Slika 3.4 Alisa daje prednost CBC režimu

Pretpostavimo da blok šifrata Ci pokvaren recimo u G. Onda

Pi ≠ D(G,K) ⊕ Ci-1 i Pi+1 ≠D(Ci+1,K) ⊕ G

ali

Pi+2 = D(Ci+2,K) ⊕ Ci+1

I svi sledći blokovi su šifrovani pravilno. Činjenica da se dogodi greška jednog bita dva čitava bloka tada su kvarna i to može prouzrokovati ozbiljne brige u okruženju sa visokom mogućnošću grešaka kao što je wireless. Sekvencijalne šifre nemaju ovaj problem – jedan pokvaren bit šifrata rezultira jednim pokvarenim bitom u otvorenom tekstu i to je razlog zašto se sekvencijane šifre koriste kod wireless aplikacija.

Još jedna briga kod blokovskih šifri je cut-paste napad. Pretpostavimo da tekst

Money_for_Alice_is_$1000Money_for_Trudy_is_$2___

gde je ’’ _’’ prazno mesto, šifrovano sa blokovskim šiframa koje imaju 64-bitnu veličinu bloka. Pretpostavimo da svaki karakter zahteva 8 bita blokovi otvorenog teksta su

P0 = Money_fo

Page 50: Zastita informacija

P1 = r_Alice_P2 = is_$1000P3 = Money_foP4 = r_Trudy_P5 = is_$2___

Pretpostavimo da je ovo šifrovano u ECB režimu. Onda su blokovi šifrata izračunati kao Ci = E(Pi,K) for i = 0, 1, . . . , 5. Sada pretpostavimo da Trudi zna da je korišten ECB režim, ona zna generalnu strukturu otvorenog teksta i zna da će ona primiti $2, ali ne zna koliko će Alisa primiti – ali ona pretpostavlja da je više od njena $2. ako Trudi može reorganizovati šifarske blokove u

C0,C1,C5,C3,C4,C2 (3.7)

onda će Bob ovo dešifrovati kao

Money_for_Alice_is_$2___Money_for_Trudy_is_$1000

što je bolje za Trudi!Ako mislite da CBC režim može eliminisati cut-paste napad, onda se varate. Sa CBC

režimom, cut-paste napad je moguć, iako je malo teži i neki podaci mogu biti blokirani. Ovo ćemo više istražiti u delu 3.6.

Takođe je moguće koristiti blokovske šifre da se generiše ključ, koji može biti korišten kao ključ sekvencijane šifre. Postoje nekoliko prihvatljivih načina da se izvrši ovaj podvig, ali mi ćemo spomenuti samo jedan, režim brojača, ili CTR. Kao i CBC režim, CTR režim koristi inicijalizacioni vektor ili IV. Formula za šifraovanje u CTR režimu je

Ci = Pi ⊕ E(IV + i,K)

a za dešifrovanje

Pi = Ci ⊕ E(IV + i,K).

CTR režim se često koristi kada je potreban nasumičan pristup. Međutim, nasumičan pristup je takođe unapređen sa CBC režimom. Postoji još mnogo režima blokovkih šifri; vidite [203] za opis još nekoliko režima koji se najčešće koriste.

3.4 INTEGRITET

Dok se tajnost bavi prevencijom neautorizovanog čitanja integritet se bavi prevencijom neautorizovanog pisanja. Na primer, pretpostavimo da vršite elektronski transfer sredstava sa jednog računa na drugi. Vi ne želite da drugi znaju za ovu transakciju i u tom slučaju šifrovanje će obezbediti željenu poverljivost. Bili zabrinuti za poverljivost ili ne, vi svakako želite da se transakcija obavi onako kako treba. Ovde se koristi integritet.

U prethodnom deli govorili smo o blokovskim šiframa za poverljivost. Ovde ćemo pokazati kako se blokovske šifre koriste da obezbede integritet podataka.

Važno je znati da su tajnost i integritet dva različita pojma. Šifrovanje sa nekom šifrom, od one-time pada do blokovskih šifri, u bilo kom od njihovih režima, ne štiti podatke od malicioznih ili nepažljivih promena. Ako Trudi manipuliše šifratom (recimo, preko cut-paste napada) ili ako se

Page 51: Zastita informacija

dogodi greška tokom prenosa, integritet podataka je narušen. Mi želimo da budemo u mogućnosti da automatski detektujemo kada primljini podatak nije isti kao poslat podatak. Videli smo nekoliko primera, a videćemo ih još, da bismo vam dokazali na šifrovanje ne osigurava integritet.

Poruka autentifikacionog koda ili MAC, koristi blokovsku šifru da osigura integritet podatka. Procedura je jednostavna da bi se šifrovao podatak u CBC režimu, izuzimajući sve šifarske blokove osim poslednjeg bloka koji je MAC. Formulana osnovu N blokova podataka je

C0 = E(P0 ⊕ IV,K), C1 = E(P1 ⊕ C0,K), . . . ,CN-1 = E(PN-1 ⊕ CN-2,K) = MAC.

MAC i otvoreni tekst su poslati primaocu koji ponavlja proces i upoređuje izračunati ’’MAC’’ sa primljenim MAC-om. Ako postoji razlika, primalac zna da je podatak (ili MAC) promenjen; međutim, ako nema razlike onda je podatak skoro sigurno ispravan. Primetite da u CBC režimu pošiljalac i primalac moraju deliti simetrični ključ K i IV koji nije tajan.

Zašto MAC radi? Neka Alisa pošalje P0, P1, P2, P3 Bobu, zajedno sa MAC-om. Ako Trudi promeni blok otvorenog teksta P1 u recimo, Q tokom prenosa, onda kada Bob pokuša da verifikuje MAC on računa

C0 = E(P0 ⊕ IV,K), C˜1 = E(Q⊕ C0,K), C˜2 = E(P2 ⊕ C˜1,K),C˜3 = E(P3 ⊕ C˜2,K) = “MAC” ≠ MAC.

Svaka promena u bloku otvorenog teksta širi se kroz sledće blokove do izračunatog MAC-a.Setite se da sa CBC šifrovanjem, promena u bloku šifrata se manifestuje samo na dva bloka

otvorenog teksta. U suprotnom, primer iznad pokazuje da svaka promena u otvorenom tekstu se manifestuje na sve sledeće blokove u CBC šifrovanju. Ovo je kritično područje koje ne dozvoljava MAC-u da se brine za integritet.

Često su potrebni i poverljivost i integritet. U tom slučaju, za efikasnost bi bilo korisno da se postigne oboje sa jednim CBC ’’šifrovanjem’’ podatka. Međutim, ako CBC šifruje podatak i pošalje rezultirajući šifrat i izračunati MAC, mi možemo jednostavno da ponovimo dvaput finalni blok šifrata. Nažalost, nema jasnog načina da se obuhvate i poverljivost i integritet tokom jednog šifrovanja podatka. Ova tema je detaljnije objašnjena na kraju ovog poglavlja.

Računanje MAC-a baziranom na CBC režimu nije jedini način da bi se obezbedio integritet podataka. Hešovani MAC, ili HMAC je jedan standardni pristup integritetu. O HMAC- u ćemo govoriti u Poglavlju 5.

3.5 UKRATKO

U ovom poglavlju smo govorili o kriptografiji simetričnih ključeva. Postoje dva različita tipa simetričnih šifri: sekvencijalne šifre i blokovske šifre. Ukratko smo govorili o dve sekvencijane šifre A5/1 i RC4. One time pad je sekvencijalna šifra, verovatno jedina sigurna šifra.

Blokovske šifre, sa druge strane, mogu se smatrati kao ’’elektronski’’ jedne kodoj knjizi. Govorili smo o detaljno DES blokovskoj šifri i spomenuli smo ukratko nekoliko drugih blokovskih šifri. Takođe smo pokazali da blokovske šifre mogu biti korištene za integritet podataka.

Simetrična kriptografija se koristi za poverljivost podataka. Postoji dva različita oblika poverljivosti. Sa jedne strane, mi možemo šifrovati podatak i poslati ka kroz nesiguran kanal. Sa druge strane, mi možemo šifrovati podatak koji je smešten na nesigurnom mediju, kao što je računarski disk. Simetrična kriptografija, korišćenjem MAC-a može biti korištena da osigura integritet.

Page 52: Zastita informacija

Simetrične šifre su takođe korisne kod autentifikacionih protokola, što ćemo pokazati u sledećem poglavlju. Interesantno je primetiti da sekvencijalne šifre, blokovske šifre i heš funkcije su iste u smislu da šta možete da radite sa jednom, možete i sa ostale dve. Iz tog razloga, na sva tri se često odnosi kao na kriptografske ’’primitivce.’’

Kriptografija simetričnih ključeva je jedna ogromna oblast. Mi ćemo ovde govoriti samo ukratko, međutim, ali sa onim što smo obradili u ovom poglavlju, spremni smo da se dotaknemo problema koje ćemo obrađivati u poglavljima koji slede.

Da bi zaista razumeli dizajn blokovskih šifri, potrebno je da se još više udubimo u polje kriptoanalize. Poglavlje 6 koje se bavi naprednom kriptoanalizom, se preporučuje svakome ko želi što više da sazna o principima dizajna blokovskih šifri.

3.6 PROBLEMI

1. Neka K = (k0 k1 k2 ... k55) bude 56-bitni DES ključ. Lista 48-bitnih sa svaki DES podključ K1 K2, ... K16. Napravite tabelu koja se sastoji od broja podključeva u kojem svaki bit k i je korišten. Možete li dizajnirati DES algoritam tabelu ključa u kojem svaki bit ključ korišten jednak broj puta?

2. Implementirajte TEA i koristite ga da šifrujete 64-bitni blok

0x0123456789ABCDEF

koristeći 128-bitni ključ0xA56BABCD00000000FFFFFFFFABCDEF01.

Dešifrujte rezultirajući šifrat da biste dobili orginalni otvoreni tekst. Onda šifrujte i dešifrujte poruku

Four score and seven years ago our fathers brought forth on this continent, a newnation, conceived in Liberty, and dedicated to the proposition that all men arecreated equal

koristeći sledeća tri različita režima: ECB, CBC i CTR režim. U svakom slučaju, koristite ključ koji je dat gore.

3. Nacrtajete dijagram da biste ilustrovali šifrovanje i dešifrovanje u CBC režimu. 4. Formula za režim brojača je

Ci = Pi ⊕ E(IV + i,K).Pretpostavimo da umesto te formule koristite formulu

Ci = Pi ⊕ E(K, IV + i).Da li je ovo sigurno? Ako jeste, zašto? Ako nije, objasnite napad?

5. AES se sastoji od 4 funkcije u tri sloja. Koje od voh funkcija su primarno za konfuziju, a koje su primarno za difuziju? Koji od ovih slojeva su za konfuziju, a koji su za difiziju? Pojasnite svoj odgovor?

6. Implementirajte RC4 algoritam. Neka se ključ sastoji od sledećih sedam bajtova: ključ = (0x1A, 0x2B, 0x3C, 0x4D, 0x5E, 0x6F, 0x77).Prikažite listu permutacija S posle faze inicijalizacije. Prikažite listu permutacija S posle generisanja 100 bajtova ključa. Prikažite listu permutacija S posle generisanja 1000 bajtova.

Page 53: Zastita informacija

7. Za bite x,y i z funkcija maj(x,y,z) je ’’majority vote’’ funkcija, a to znači da ako dva ili više od tri bita 0, onda funkcija vraća 0, u suprotnom, vraća 1. Napišite tabelu za ovu funkciju i izvedite bulean funkcije koje su ekvivalentne maj(x,y,z).

8. Implenetirajte A5/1 alogoritam. Neka je posle određenog koraka vrednost registaraX = (x0, x1, . . . , x18) = (1010101010101010101)Y = (y0, y1, . . . , y21) = (1100110011001100110011)Z = (z0, z1, . . . , z22) = (11100001111000011110000)

Generišite i ispišite sledeća 32 bita ključa. Ispišite sastav X, Y i Z nakon što su 32 bita ključa generisana.

9. Šta je Festel šifra? Zašto Tiny Encryption Algorithm ili TEA nije Festel šifra? Zašto je TEA ’’skoro’’ Festel šifra?

10. Pretpostavimo da koristimo blokovsku šifru da šifrujemo na osnovu pravila C0 = IV ⊕ E(P0,K), C1 = C0 ⊕ E(P1,K), C2 = C1 ⊕ E(P2,K), . . .Koje je odgovarajuće pravilo za dešifrovanje? Dajte neke mane sigurnosti ovog režima u odnosu na CBC režim?

11. Sekvencijalne šifre se smatraju kao generalizacija one-time pada. Setite se da je one-time pad verovatno siguran. Zašto ne možemo dokazati da je sekvencijana šifra sigurna koristeći isti algument koji koristimo kod one-time pada?

12. Kod svake sekvencijalne šifre moramo ključ nakon nekog vremena ponavljati?13. Kod DES-a koliko je bita u ključu, koliko je bita u bloku otvorenog teksta, koliko je bita u

svakom podključu, koliko ima rundi, i koliko ima S-kutija?14. DES menja izlaz krajnje runde, a to znači da šifrat nije C=(L16,R16), ali jeste C=(R16, L16).

Koja je svrha zamene? Zamena ne služi za svrhu sigurnosti.15. Setite se napada na dvostuki DES o kome smo govorili. Pretpostavimo da definišemo

dvostuki DES kao C = D(E(P,K1),K2). Opišite ’’meet-in-middle’’ napad na ovu verziju napada na dvostruki DES?

16. IV nije tajan, ali da li treba da bude slučajno izabran? Da li postoje neke sigurnosne mane ili (prednosti) ako je IV izabran namerno umesto da je generisan slučajno?

17. Pretpostavimo da blokovi šifrata C0,C1,C2, . . . ,C9Su šifrovani u CBC režimu. Pokažite da li je moguć cut-paste napad, odnosno pokažite da li je moguće reporganizovati blokove tako da se neki od blokova dešifruju pravilno, iako nisu u pravom redu?

18. Objasnite kako uraditi slučajni pristup podatku koristeći CBC režim. Šta je mana korištenja CBC režima za slučajni pristup u odnosu na CTR režim.

19. CTR režim generiše ključ koristeći blokovsku šifru. Dajte drugi metod za korištenje blokovske šifre kao sekvencijalne šifre. Da li vaš metod podržava slučajni pristup?

20. Pretpostavimo da šifrujemo u CBC režimu koristeći ključ K i računamo MAC koristeći ključ K ⊕ X, gde je X poznato kao konstanta. Šifrat i MAC su poslati primaocu. Pokažite da li će primalac otkriti cut-paste napad.

21. Pretpostavimo da definišemo trostruku DES sa 168 bitnim ključem C = E(E(E(P,K1),K2), K3). Podrazumevajući da mi možemo izračunati i smestiti tabelu veličine 256, pokažite da ova verzija trostrukog DES-a nije sigurnija od običnog 3DES, C=E(D(E(P,K1),K2),K1).

22. Dajte dvs načina za šifrovanje parcijalnog bloka koristeći blokovsku šifru. Vaš prvi metod može rezultirati šifratom koji je veličine kompletnog bloka, dok vaš drugi metod ne može proširiti podatak. Diskutujte o nekim sigurnosnim mogućnostima vaša dva metoda.

23. Razmotrite Festel šifru sa četiri runde i P = (L0,R0). Šta je šifrat C ako je šifra funkcije a. F(Ri−1,Ki ) = 0.b. F(Ri−1,Ki ) = Ri−1.c. F(Ri−1,Ki ) = Ki .

Page 54: Zastita informacija

d. F(Ri−1,Ki ) = Ri−1 ⊕ Ki .

24. Neka je X podatak. Definišite F(X) da bude MAC kada X je CBC šifrovano sa ključem K i datim IV. Da li je F jednosmerna, odnosno dato F(X) da li je moguće pronaći X? Da li je F otporan na kolizije, tj. Dato F(X) da li je moguće pronaći Y da je F(Y) = F(X)?

25. Pretpostavimo da je šifrat u jednačini 3.7 šifrovan u CBC režimu umesto u ECB režimu. Ako Trudi veruje da je korišten ECB režim i pokuša isti cut-paste napad, koji se blok dešifruje ispravno?

26. Preuzmite fajl Alice.bmp sa web stranice i iskoristite TEA šifru da ECB šifrujete sliku, ostavljajući prvih 10 blokova nešifrovane. Vidite šifrovanu sliku? Šta će se desiti da ste to isto pokušali sa JPG fajlom?

27. Pretpostavimo da Alisa i Bob uvek biraju isti IV. a) Diskutujte o jednom sigurnosnom problemu koje ovo krira ako je korišten CBC

režim.b) Diskutujte o jednom sigurnosnom problemu koje ovo krira ako je korišten CTR

režim.c) Ako se uvek koristi isti IV, koji je režim sigurniji, CBC ili CTR?

28. Pretpostavimo da Alisa i Bob uvek koriste CBC režim za šifrovanje i iniceijalizacione vektore sekvencijalno. Koje su prednosti i mane ovog pristupa koristeći slučajni IV?

29. Dajte dijagram analogno Slici 3.2 za TEA šifru.30. Neka Alisa koristi DES da izračuna MAC. Ona onda šalje otvoreni tekst i odgovarajući

MAC Bobu. Ako Trudi izmeni jedan blok otvorenog teksta pre nego što ga Bob primi, koja je verovatnoća da Bob ne primeti promenu?

31. Alisa ima četiri bloka otvorenog teksta P0, P1, P3, P3, koje one šifruje koristeći CBC režim da dobije C0, C1, C2, C3. Ona onda šalje IV i šifrat Bobu. Kada primi šifrat Bob planira da verifikuje integritet kako sledi. Prvo će dešifrovati da bi dobio otvoreni tekst, a onda će ponovo šifrovati ovaj otvoreni tekst koristeći CBC režim i dobijeni IV. Ako on dobije isti C3 kao rezultirajući šifarski blok, on će utvrditi integritet otvorenog teksta.

a) Neka Trudi izmeni C1 u slučajnu vrednost X (ostavljajući sve ostale blokove i IV nepromenjene). Da li će Bob primetiti promene?

b) Neka Trudi promeni C3 u slučajnu vrednost Y (ostavljajući sve ostale blokove i IV nepromenjene). Da li će Bob primetiti promene?

c) Da li je Bobov metod za proveru integriteta siguran?32. Koristeći CBC režim, Alisa šifruje četiri bloka otvorenog teksta P0, P1, P3, P3 i šalje

rezultirajuće blokove šifrata C0, C1, C3, C3 i IV Bobu. Pretpostavimo da je Trudi u mogućnosti da promeni bilo koji od blokova šifrata pre nego što ga Bob primi. Ako Trudi zna P1, pokažite da ona može ’’zameniti’’ P1 sa X, odnosno da kada Bob dešifruje C1

dobije X umesto P1.33. Pretpostavimo da Alisa ima četiri bloka otvorenog teksta P0, P1, P3, P3. Ona računa MAC

koristeći ključ K1 i onda ona CBC šifruje podatak koristeći ključ K2 da dobije C0, C1, C2, C3

i MAC. Međutim, Trudi presretne poruku i zameni C1 sa X tako da Bob primi IV, C0, X, C2, C3 i MAC. Bob pokušava da verifikuje integritet podatka tako što dešifruje (koristeći ključ K2) i onda računa MAC (koristeći K1) na otvoreni tekst.

a) Pokažite da će Bob otkriti Trudinu namerub) Pretpostavimo da Alisa i Bob samo dele jedan simetrični ključ K. Oni se slažu da je

K1=K i K2= K ⊕ Y, gde je Y poznato Alisi, Bobu i Trudi. Da li ovo stvara neki sigurnosni problem?

Page 55: Zastita informacija
Page 56: Zastita informacija

Ne možeš živeti na jadan način u privatnosti, drugi u javnosti.- Publilius Syrius

Troje može čuvati tajnu, ako su dvoje od njih mrtvi.- Ben Franklin

4.1 UVOD

U ovom poglavlju, govorićemo o kriptografiji javnih ključeva. Kriptografija javnih ključeva je takođe poznata i ako ’’asimetrična’’ kriptografija, kriptografija ’’dva ključa’’ ili čak kriptografija ’’javnog ključa’’, ali mi ćemo se držati naziva kriptografija javnih ključeva.

U simetričnoj kriptografiji isti ključ se koristi i za šifrovanje i za dešifrovanje. U kriptografiji javnih ključeva, jedan ključ se koristi za šifrovanje, a drugi ključ se koristi za dešifrovanje. Kao rezultat, ključ za šifrovanje je javan. Ovo rešava jedan od mnogih uznemirujućih problema simetrične kriptografije, tj. kako sigurno sigurno distribuirati simetrični ključ. U stvari, kriptografija javnih ključeva je šire definisana da uključuje metode koji se ne pokoravaju ’’dva ključa’’ modelu ali obuhvataju neke važne informacije koje su javne.

Kriptografija javnih ključeva je relativno mlada, i nju su izmislili kriptografi koji su radili za GCHQ (Britanski pandan za NSA) kasnih 1960-ih i ranih 1970-ih i na osnovu akademskih istrživanja posle [147]. Vladajući kriptografi nisu shvatali punu snagu njihovog otkrića i to je ostalo neiskorišteno dok ga akademici nisu izdali. Krajnji efekt je bio nista manje do revolucije u kriptografiji.

U ovom poglavlju ćemo obraditi neke od najvažnijih sistema javne kriptografije. Ne postoji nigde približan broj kriptosistema javne kriptografije kao što su simetrične šifre, jer je sistem javnoh ključa baziran na veoma specijalnim matematičkim strukturama, gde skoro svako može dizajnirati verodostojnu simetričnu šifru.

4

KRIPTOGRAFIJA JAVNIH KLJUČEVA

Page 57: Zastita informacija

Kriptografija javnih ključeva je bazirana na ''trap door jednosmernim funkcijama'' odnosno funkcijama koje se lako računaju u jednom smeru a teško u drugom smeru. Svrha jednosmernih funkcija je da osigura da napadač ne može koristiti javnu informaciju da otkrije tajnu informaciju. Na primer, relativno je lako generisati dva prosta broja p i q i izračunati njihov proizvod N=pq. Ali ako je dato N teško je izračunati parametre p i q.

Potrebno je obratiti pažnju na obilježavanje. U simetričnoj kriptografiji, otvoreni tekst je P i šifrat je C. Ali u kriptografiji javnih ključeva, tradicija kaže da mi šifrujemo poruku M, iako je i dalje rezultat šifrat C. Mi ćemo pratiti tradiciju.

Da bismo uradili kriptografiju javnim ključem, Bob mora imati par ključa koji se sastoji od javnog i priatnog ključa. Svako može koristiti Bobov javni ključ da šifruje poruku za Boba, ali samo Bob može dešifrovati poruku jer samo on ima svoj privatni ključ.

Bob takođe može digitalno potpisati poruku M ''šifrujući'' je sa njegovim tajnim ključem. Onda svako može ''dešifrovati'' poruku koristeći Bobov javni ključ. Verovatno se pitate koja je korist od ovoga. Ali ovo je jedna od najkorištenijih stvari u kriptografiji javnim ključem. Digitalni potpis je kao ručni potpis – samo malo više od toga. Samo Bob, koji ima privatni ključ, može digitalno potpisati, kao što se on može ručno potpisati. Svako ko Bobovim javnim ključem može verifikovati njegov digitalni potpis, isti kao što svako može pročitati Bobov ne digitalni potpis. Međutim, digitalni potpis ima neke važne prednosti u odnosu na rukom napisan potpis. Jedna stvar jeste da je digitalni potpis čvršće povezan sa samim dokumentom. Dok rukom napisan potpis može biti fotokopiran na drugi dokument, a to nije moguće sa digitalnim potpisom. Još važnija činjenica jeste da je nemoguće krivotvoriti digitalni potpis bez privatnog ključa. U ne digitalnom svetu, krivotvorenje Bobovog potpisa može biti otkriveno samo od strane eksperata. Ali u digitalnom svetu krivotvorenje može svako otkriti.

Dalje ćemo govoriti o nekoliko sistema javne kriptografije. Prvi o kome ćemo govoriti jeste knapsack kriptosistem. Ovo je u redu jer je on prvi koji je predstavio kriptografiju javnih ključeva. Ali knapsack je sada nesiguran, ali se na osnovu njega može razumeti sistem. Posle knapsacka govorićemo o zlatnom standardu javne kriptografije RSA. Objasnićemo Difi-Helman razmenu ključeva koja se kao i RSA veoma koristi u praksi.

Takođe ćemo govoriti o kriptografiji eliptičkih krivih ili ECC. Iako ECC nije kriptosistem one ipak daju različite matematičke realnosti u kojima čine da matematika izrasta u mnogim sistemima javne kriptografije. Prednost ECC je da je mnogo efikasniji (u vremenu i prostoru) a tako i u okruženju okrenutom resursima kao što je wireless i ručnim uređajima.

Ako već niste sada je pravo vreme da pogledate Dodatak u vezi sa matematičkom aritmetikom.

4.2 KNAPSACK

U svom seminarskom radu [67], Difi i Helman su pretpostavili su da je javna kriptografija moguća, iako nisu ponudili nijedan sistem. Kratko nakon toga Merkle-Helman knapsack je predstavljen, verovali ili ne, od strane Merkla i Helmana. Govorićemo o Helmanu kasnije, ali je potrebno reći nešto o Merklu koji je takođe jedan od osnivača kriptografije sa javnim ključevima. On je napisao iscrpan rad [157] koji takođe govori o kriptografiji sa javnim ključevima. Merklov rad je odabran da se izda negde u isto vreme kao i Difi i Helmanov rad, ali se ipak pojavio mnogo kasnije. Iz nekog razloga, Merklovo zalaganje nikada nije dobilo pažnju onakvu kakvu je zaslužilo.

Page 58: Zastita informacija

Merkle-Helman knapsack je zasnovan na jednom problemu1 koji je poznat kao NP kompletan [88]. To je značilo da je idealan kandidat za sigurnu kriptografiju sa javnim ključevima.

Kapsack problem može biti predtavljen na sledeći način. Dat je skup n težina

W0,W1, . . . , Wn-1

i sume S, pronađite a0,a1,..., an-1, gde svako ai ∈{0,1}, tako da je

S = a0 W0+ a1 W1 +· · ·+an-1 Wn-1

pretpostavljajući da je ovo moguće. Na primer, neka su veličine

85, 13, 9, 7, 47, 27, 99, 86

i željena suma je S=172. onda rešenje ovog problema postoji i dato je na osnovu

a = (a0, a1, a2, a3, a4, a5, a6, a7) = (11001100)

pošto je 85 + 13 + 47 + 27 = 172. Iako je genralni knapsack problem poznat da je NP kompletan, tu je poseban slučaj koji može biti rešen u linearno vreme.

Superinkrementalni knapsack je isti kao generalni knapsack osim kada su težine poredane od najmanje do najveće, svaka veličina je veća od sume svih prethodnih težina. Na primer,

3, 6, 11, 25, 46, 95, 200, 411 (4.1)

je superinkrementalni knapsack. Rešavanje problema superinkrementalnog knapsacka je lako. Pretpostavimo da je dat skup težina iz jednačine 4.1 i sume S=309. Da bi ovo rešili, jednostavno počnemo sa najvećom težinom pa sve do najmanje da bi dobili a i u lineranom vremenu. Pošto je S<411, imamo da je a7=0. onda pošto je S>200 imamo da je a6=1 i da je S=S-200=109. Onda pošto je S>95, imamo da je a5=1 i da je S=S-95=14. Nastavljajući na ovaj način mi otkrivamo a= 10100110, koji možemo lako verifikovati rešavajuči problem jer je 3 + 11 + 95 + 200 = 309.

Dalje, ćemo predstaviti listu koraka u proceduri korišćenu da konstruiše knapsack kriptosistem. Onda ćemo prikazati te korake sa specifičnim problemom.

1. Generisati superinkrementalni knapsack.2. Konvertovati superinkrementalni knapsack u generalni knapsack.3. Javni ključ je generalni knapsack.4. Privatni ključ je superinkrementalni knapsack zajedno sa faktorima konverzije.

Dole, ćemo videti da je lako šifrovati koristeći generalni knapsack, i sa privatnim ključem da je lako dešifrovati knapsack. Bez privatnog ključa, znači da je potrebno rešiti veoma težak problem da bi se dobio otvoreni tekst iz šifrata. Sada ćemo pokazati specifične primere. Za ovaj primer, pratićemo prethodno navedene numerisane tačke.

1. Izabraćemo superinkrementalni knapsack (2, 3, 7, 14, 30, 57, 120, 251).

1 Ironično, knapsack kriptosistem nije bio baziran na knapsack problemu. Nego je bio baziran na mnogo ograničavajućem problemu, poznatom pod nazivom subset suma. Kriptosistem je univerzalno poznat kao knapsack. Izbegavajući našu pedantnu prirodu, mi ćemo se odnositi na oba kriptosistema i nazvati ga knapsack

Page 59: Zastita informacija

2. da bi konvertovali superinkrementalni knapsack u generalni knapsack, biramo množilac m i moduo n, tako da su m i n relativno prosti i da je n veće od sume svih elemenata u superinkrementalnom knapsacku. Za ovaj primer, mi biramo m=41 i n=491. Onda je genralni knapsack izračunat iz superinkrementalnog knapsacka preko modularane multiplikacije:

2m = 2 · 41 = 82 mod 4913m = 3 · 41 = 123 mod 4917m = 7 · 41 = 287 mod 49114m = 14 · 41 = 83 mod 49130m = 30 · 41 = 248 mod 49157m = 57 · 41 = 373 mod 491120m = 120 · 41 = 10 mod 491

251m = 251 · 41 = 471 mod 491.

Rezultirajuči generalni knapsack je (82, 123, 287, 83, 248, 373, 10, 471), koji je generalni (ne inkrementalni) knapsack.

3. Javni ključ je generalni knapsackž

Javni ključ: (82, 123, 287, 83, 248, 373, 10, 471).

4. Privatni ključ je superinkrementalni knapsack zajedno sa modularnom inverznošću konverzije faktora m, a to je

Privatni ključ : (2, 3, 7, 14, 30, 57, 120, 251) i m-1 mod n = 4-1 mod 491 = 12.

Pretpostavimo da su u koraku 3 i 4 dati Bobovi privatni i javni ključevi. Onda ako Alisa želi da šifruje poruku M = 150 za Boba, ona prvo konvertuje 150 u binarnu vrednost, a to je 10010110. Onda ona koristi 1 bitove da odabere elementa generalno knapsacka koji zajedno daju šifrat. U ovom slučaju, Alisa pronalazi

C = 82 + 83 + 373 + 10 = 548.

Da dešifruje šifrat, Bob koristi njegov privatni ključ da pronađe

Cm-1 mod n = 548 · 12 mod 491 = 193

Bob onda rešava superinkrementalni knapsack za 193. Ovo je lak problem iz koga Bob otkriva poruku u binarnoj vrednosti 10010110 ili u decimalnoj M=150.

Samo osnovna svojstva modularne aritmetike su potrebna da se potvrdi da formula za dešifrovanje radi. U ovom primeru, imamo

548m−1 = 82m-1 + 83m-1 + 373m-1 + 10m-1

= 2mm-1 + 14mm-1 + 57mm-1 + 120mm-1

= 2 + 14 + 57 + 120 = 193 mod 491.

Page 60: Zastita informacija

Rečima, množenjem preko m-1 transformiše problem u superinkrementalnu oblast gde je lako rešiti za težine.

Bez privatnog ključa, napadač Trudi mora da pronađe skup elemenata javnog ključa koji sumiraju vrednost šifrata C. U ovom primeru, Trudi mora pronaći skup elemenata (81, 123, 287, 83, 248, 373, 10, 471) čija je suma ukupno 548. Ovo je problem generalnog knapsacka koji može da bude veoma težak problem.

Trapdoor kod knapsacka se dešava kada konvertujemo superinkrementalni knapsack u generalni knapdack koristeći modularnu aritmetiku. Faktori konverzije su nedostupni napdaču. Jednosmerno svojstvo rezultira iz činjenice da je lakše šifrovati sa generalnim knapsackom, ali je teško dešifrovati bez privatnog ključa. Ali sa privatnim ključem, mi možemo konvertoveti problem u superinkrementalni knapsack problem, kojeg je lako rešiti.

Nažalost, ovaj pametan kriptosistem sa javnim ključem je nesiguran. Razbijen je od strane Šamira 1983. godine koristeći Apple II računar [205]. Napad se oslanja na tehniki koja se zove ’’rešetkasto smanjene’’ o kome ćemo detaljno govoriti u poglavlju kriptoanalize. U osnovu ’’generalni knapsack’’ je izveden iz superinpovećavajućeg knapsacka i napad rešetkastog smanjenja je u mogućnosti da uzme prednost od ove strukturu da lako resi za otvoreni tekst (sa visokom verovatnošću).

Urađemo je mnogo istraživanja knapsack problema otkako je Merkle-Helmanov knapsack razbijen. Danas, postoje varijante knapsacka koje su sigurne, ali ljudi su protive da ih koriste jer je ime ’’knapsack’’ zauvek pokvareno. Za više informacije o knapsack kriptosistemu, vidite [65, 138, 169].

4.3 RSA

Kao i bilo koji vredan kriptosistem, RSA je dobio ime po ljudima koji su ga izumeli, Rivest, Shamir i Adleman. Rivesta i Shamira smo ranije upoznali, ali ćemo još govoriti o obojici. U stvari, Rivest i Shamir su dva giganta modernog kriptosistema. Međutim, koncept RSA je nekoliko godina ranije izmišljen od strane Cliff Cocksa iz GCHQ pre nego što su ga R. S. i A. ponovo izmislili [147]. Ovo ni u kom slučaju ne umanjuje dostignuće Rivesta, Shamira i Adlemana, jer je GCHQ delo bilo klasifikovano i nije bilo prikazano široj kriptografskoj zajednici.

Ako ste se ikada zapitali zašto postoji interes faktorizacije velikih brojeva, odgovor je da je sigurnost RSA bazirana na činjenici daje faktorizacija komplikovana. Ali nije poznato da je faktorizacija komplikovana u smislu da je, recimo, posao trgovačkog putnika komplikovan. To znači da nije poznato da je faktorizacija NP kompletna.

Da bi generisali RSA privatni i javni ključ potrebno je da izaberemo dva velika prosta broja p i q i formirati njihov proizvod N=pq. Dalje, izaberemo e relatovno prost u odnosu na (p-1)(q-1) i izračunamo multiplikativnu inverziju od e modula (p-1)(q-1). Označite inverzno e sa d. U ovom slučaju, imamo N=pq, kao i e i d, koje zadovoljava da je ed=1 mod (p-1)(q-1). Sada zaboravite na faktore p i q.

Broj N je moduo, gde je e eksponent šifrovanja i d je eksponent dešifrovanja. RSA par se sastoji od

Javni ključ: (N, e)

i

Privatni ključ: d.

Page 61: Zastita informacija

Kod RSA šifrovanje i dešifrovanje se vrši pomoću modularnog stepenovanja. Da bi šifrovali u RSA, mi na poruku M podižemo eksponent šifovanja e, modula N i to je onda

C = Me mod N.

Da bi dešifrovali C, modularno stepenovanje sa eksponentom je korišteno na sledeći način

M = Cd mod N.

Verovatno na prvi pogled nije jasno da dešifrovanje radi, ali mi ćemo na kratkom primeru dokazati da radi. Pretpostavimo na trenutak da radi. Ako Trudi na osnovu N može da otkrije p i q onda ona može koristiti javnu vrednost e da otkrije privatnu vrednost d pošto je ed = 1 mod (p-1)(q-1). Drugim rečima, faktorizacija modula razbija RSA. Međutim, da li je faktorizacija jedini naćčin da se razbije RSA.

Zašto RSA radi? Dato C = Me mod N, moramo verifikovati da je

M = Cd mod N = Med mod N.

Da bi to uradili, moramo pratiti standardan rezultat iz teorija broja [34].Ojlerova teorema: Ako je x relativno prost broj u odnosu na n onda je xφ(n) = 1 mod n. Setite se da je

ed = 1 mod (p-1)(q-1)

i

φ(N) = (p-1)(q-1).

Ove dve činjenice upućuju na to da je

ed – 1 = kφ(N)

za neki integer k.

Sada imamo sve potrebne delove slagalice da bi verifikovali da RSA dešifrovanje radi. Imamo

Cd = Med = M(ed-1)+1 = M · Med-1 = M · Mkφ(N) = M · 1k = M mod N (4.3)

gde smo iskoristili Ojlerovu teoremu da eliminišemo potragu za Mφ(N). Ovo potvrđuje da RSA eksponent dešifrovanja zaista dešifruje šifrat C.

4.3.1 RSA primer

Hajde da razmotrimo jednostavan RSA primer. Da generišemo, recimo Alisin par ključeva, mi odaberemo dva ’’velika’’ prosta broja, p = 11 i q = 3. Onda je moduo N = pq = 33 i (p-1)(q-1)=20. Dalje, mi izaberemo eksponent šifrovanje e = 3 koji je kao što je potrebno relativno prosti u odnosu na (p-1)(q-1). Onda izračunamo odgovarajući eksonent dešifrovanja, koji je d = 7, jer je ed = 3 · 7 = mod 20. Mi imamo

Page 62: Zastita informacija

Javni ključ: (33, 3)

i

Privatni ključ: 7.

Sada pretpostavimo da Bob želi poslati Alisi poruku M = 15. Bob uzima Alisin javni ključ (N, e) = (33, 3) i računa šifrat C kao

C = Me mod N = 153 = 3375 = 9 mod 33

koji on onda šalje Alisi. Da dešifruje šifrat C, Alisa koristi svoj privatni ključ d = 7 da pronađe

M = Cd mod N = 97 = 4,782,969 = 144,938 · 33 + 15 = 15 mod 33.

i tako Alisa dobije poruku M iz šifrata C.

4.3.2 Sukcesivno kvadriranje

Modularno stepenovanje velikih brojeva sa velikim eksponentima je težak posao. Da bi ga učinili lakšim (a isto tako da bi učinili RSA efikasnijim), koristi se nekoliko trikova. Jedan takav trik je sukcesivno kvadriranje za modularno stepenovanje.Pretpostavimo da želimo izračunati 520. Naravno možemo pomnožiti 5 samim sobom dvadest puta i rezultat svesti na mod 35 i to je

520 = 95,367,461,640,625 = 25 mod 35 (4.4)

Međutim, ovaj metod rezultira sa ogromnom vrednošću iako je krajnji rezultat u rasponu od 0 do 34.

Sada pretpostavimo da želimo uraditi RSA šifrovanje se Me mod N. U sigurnoj implementaciji RSA modul N mora biti najmanje 1024 bita. Kao rezultat, za tipičnu vrednost e, brojevi koji se koriste će biti toliko veliki da nepraktično izračunati Me mod N na osnovu jednačine 4.4. Na sreću, metod sukcesivnog kvadriranja nam omogučava da izračunamo takav eksponent bez pravljenja ekstramno velikih brojeva u bilo kojem koraku.

Sukcesivno kvadriranje radi na tako što se eksponent e nadograđuje svaki put sa jednim bitom. Na svakom koraku dupliramo trenutni eksponent i ako je binarno proširenje od e ima 1 u odgovarajućoj poziciji, mi takođe dodamo jedan eksponentu.

Kako možemo duplirati (i dodati jedan) eksponentu? Osnovne osobine proširenja govore nam da ako stepenujemo xy, mi dobijemo x2y a to je x · xy = xy+1. Na osnovu ovoga možemo reći da je lako duplirati eksponent ili dodati jedan.

Koristeći osnovne osobine modularne aritmetike, mi možemo smanjiti svaki dobijeni rezultat preko modula zaobilazeći velike brojeve. Jedan primer to dokazuje. Opet imamo 520. Prvo primetite da je binarna vrednost eksponenta 20 10100. Sada možemo ’’nadograditi’’ jedan bit dvaki put

(0, 1, 10, 101, 1010, 10100) = (0, 1, 2, 5, 10, 20).

Page 63: Zastita informacija

Kao rezultat, eksponent 20 može biti rastavljen na seriju koraka gde se svaki korak sastoji od dupliranja i kada sledeći bit u binarnom proširenju od 20 je 1, dodajemo jedan, pa je to onda

1 = 0 · 2 + 12 = 1 · 25 = 2 · 2 + 110 = 5 · 220 = 10 · 2.

sada je računanje 520 na osnovu sukcesivnog kvadriranje

51 = (50)2 · 51 = 5 mod 3552 = (51)2 = 52 = 25 mod 35

55 = (52)2 · 51 = 252 · 5 = 3125 = 10 mod 35510 = (55)2 = 102 = 100 = 30 mod 35520 = (510)2 = 302 = 900 = 25 mod 35

Iako postoji mnogo koraka u sukcesivnom kvadriranju, svaki korak je jednostavan i što je najvažnije ne moramo da se bavimo velikim brojevima. Uporedite ovo sa jednačinom 4.4 gde smo se bavili sa veoma ogromnom vrednošću.

4.3.3 Ubrzavanje RSA

Pametan trik za ubrzavanje RSA je korištenje istog eksponenta šifrovanja e za sve korisnike. Koliko znamo, ovo ne čini RSA slabijim. Eksponent dešifrovanja (privatni ključevi) različitih korisnika će biti različiti, i p i q će biti različiti i izabrani za svaki par ključeva.

Najbolji izbor za isto šifrovanje je eksponenta jeste da je e = 3. Sa ovim izborom eksponenta e, svako šifrovanje javnim ključem zahteva dva množenja. Međutim, ali operacije privatnog ključa ostaju teške jer nema posebne strukture za d. Ovo je često poželjno jer čitavo šifrovanje može biti urađeno na centralnom serveru, dok je dešifrovanje efikasno usmereno prema svim korisnicima. Naravno, server treba da označi, onda malo e ne smanjuje protok. U svakom slučaju, loša ideja je da se za svakog korisnika izabere isto d.

Sa e = 3, napad trećeg korena je moguć. Ako je M < N1/3 tada je C = Me = M3 i to znači da operacija mod N nema efekta. Kao rezultat, napadač može jednostavno izračunati treći koren od C i dobiti M. U praksi, ovo se lako izbegava tako što se stavlja da je M>N1/3.

Sa e = 3, postoji i drugi tip napad trećeg korena. Ako je ista poruka M šifrovana za tri različita korisnika, tada šifrati C1, C2, C3 mogu biti otkriveni kineske teoreme o ostacima [34]. Ovo se takođe izbegava tako što se svaka poruka M dopunjava slučajnim bitima ili specifičnim informacijama za svakog korisnika.

Još jedno popularno šifrovanje sa zajedničkim eksponentom jeste e = 216 + 1. Sa ovakvim e, svako šifrovanje zahteva samo 17 koraka sukcesivnog kvadriranja. Prednost e = 216 + 1 jeste da se poruka može poslati 216 + 1 korisnika pre nego što kineska teorema o ostacima uspije napasti poruku.

Dalje ćemo govoriti o Difi-Helman algoritmu razmene ključeva, koji je različita vrsta algoritama sa javnim ključem. Dok se RSA oslanja na komplikovanost faktorizacije, Difi-Helman algoritam je baziran na takozvanom dikretnom logaritmu.

Page 64: Zastita informacija

4.4. DIFI-HELMAN

Difi-Helman algoritam razmene ključeva ili skraćeno DH su izumeli Malcolm Williamson iz GCHQ i malo kasnije je ponovo izumljen od strane Whitfielda Diffiea i Martina Helmana [147].

DH je algoritam ’’razmene ključeva’’ jer se samo koristi za uspostavljanje zajedničkog simetričnog ključa. Važno je napomenuti da reči Difi-Helman i razmena ključeva uvek idu zajedno – DH nije za šifrovanje ili označavanje, ali umesto toga omogučava korisnicima da uspostave zajedničku tajnu. Ovo nije značajan podvig, pošto uspostavljanje problema ključa je jedno od osnovnih zamki kod kriptografije sa simetričnim ključem.

Sigurnost DH algoritma se zasniva na težini problema diskretnog logaritma. Pretpostavimo da su dati g i x = gk. Da bi se pronašlo k potrebno je izračunati logaritam logg(x). Sada dato g, p i gk mod p, problem pronalaženja k je analogno problemu logaritma, ali u diskretnom postavljanju; tako da je ovaj problem poznat kao diskretni logoritam. To znači da je dikretni logaritam veoma težak za rešiti, ali kao i faktorizacija, nije poznato da je NP kompletan.

Matematička postavka za DH je relativno jednostavna. Neka je p prost broj i neka je g generator, što znači da za svako x ∈ {1, 2, . . . , p − 1} možemo pronaći eksponent n tako da je x = gn mod p.

Vrednosti p i generator g su javne. Sada za razmenu ključeva, Alisa generiše njen tajni eksponent a i Bob generiše njegov tajni eksponent b. Alisa šalje ga mod p Bobu, a Bob šalje gb mod p Alisi. Onda Alisa računa

(gb)a mod p = gab mod p

a Bob računa

(ga)b mod p = gab mod p

i gab mod p je zajednička tajna, koja se koristi kao simetrični ključ. DH razmena ključa je prikazana na Slici 4.1

Slika 4.1 DH razmena ključa

Napadač Trudi može videti ga mod p i gb mod p ali ona ne zna zajedničku vrednost gab mod p. Ona može pretpostaviti da je

ga · gb = ga+b ≠ gab mod p.

Trudi treba naći a i b da bi rešila težak diskretni logaritam. Naravno, ako Trudi može otkriti a ili b ili gab mod pna bilo koji način, sistem bi bio razbijen. Ali koliko mi znamo jedini način da se razbije DH jeste rešavanje diskretnog logoritma.

Page 65: Zastita informacija

DH algoritam je podložan man-in-middle napadu ili MiM napadu.2 Ovo je aktivan napad gde se Trudi postavlja između Alise i Boba i hvata poruke od Alise za Boba i obrnuto. Ako je Trudi tako postavljena, DH razmena između Alise i Boba je narušena. Trudi jednostavno uspostavi zajedničku tajnu, recimo gat mod p sa Alisom i još jednu zajedničku tajnu sa Bobom gat mod p kao što je prikazano na slici 4.2. Ni Alisa ni Bob ne znaju da je Trudi između njih i da je ona u mogućnosti da čita menja svaku poruku prosleđenu između Alise i Boba.

MiM napad na Slici 4.2 je glavna briga kada se koristi DH. Kako možemo sprečiti MiM napad? Postoji nekoliko mogućnosti, uključujući

1. šifrovati DH sa zajedničkim simtričnim ključem;2. šifrovati DH sa javnim ključevima; i 3. označiti vrednosti sa privatnim ključevima.

Slika 4.2 Difi-Helman man-in-middle napad

Možda se pitate zašto koristimo DH da bi uspostavili simetrični ključ ako već imamo zajednički simetrični ključ (1) ili par ključeva (2 ili 3). Ovo je odlično pitanje na koje ćemo dati odgovor kada budemo govorili o protokolima u Poglavljima 9 i 10.

4.4 KRIPTOGRAFIJA ZASNOVANA NA ELIPTIČKIM KRIVAMA

''Eliptičke krive'' nisu kriptosistem. Eliptičke krive jednostavno omogućavaju drugi način za rad sa kompleksnim matematičkim operacijama potrebnim u kriptografiji sa javnim ključevima. Na primer, postoji Difi-Helman verzija eliptičke krive. Prednost eliptičke krive (ECC) jeste da je potrebno malo bita za isti nivo sigurnosti kao u slučajevima kod neeliptickih krivih. Eliptičke krive su mnogo kompleksnije i kao rezultat, matematika eliptičkih krivih je teža. Ali uopšte, eliptičke krive nude bolje prednosti računanja. Iz tog razloga, ECC su popularne u okruženju okrenutom resursima kao što su ručni uređaji.

Eliptička kriva E je grafik funkcije u formi

E : y2 = x3 + ax + b

zajedno sa tačkom beskonačnosti ∞. Grafik tipične eliptičke krive je prikazan na Slici 4.3.

4.5.1. Matematika eliptičke krive

2 Izbegavaćemo politički ispravnu terminologiju ''middleperson attack''

Page 66: Zastita informacija

Slika 4.3 takođe prikazuje metod koji se koristi da bi se pronašla suma dve tačke na eliptičkoj krivoj. Da bi dodali tačke P1 i P2, nacrtana je linija kroz dve tačke. Ova linija obično preseca krivu

Slika 4.3 Eliptička kriva

Tabela 4.1 Tačke krive y2 = x3 + 2x + 3 (mod 5)

u još jednoj tački. Ako je tako ova druga tačka je preslikana na x osu da se dobije suma

P3 = P1 + P2

kao što je prikazano na slici 4.2. Sabiranje je jedina matematička operacija koja je potrebna kod eliptičkih krivih.

Za kriptografiju, potreban nam je diskretni skup tačaka. Ovo se lako dobija tako što se dodaje ''mod p'' nu generičku jednakost eliptičke krive, a to je

y2 = x3 + ax + b (mod p).

Na primer, razmotrimo eliptičku krivu

y2 = x3 + 2x + 3 (mod 5). (4.5)

Page 67: Zastita informacija

Mi možemo dati listu tačaka (x, y) na krivoj i menjati za moguće vrednosti od x i rešiti za odgovarajuću vrednost y ili vrednosti. Radeći to, mi rezultate smestimo u tabelu 4.1.

Onda su tačke na eliptičkoj krivoj iz jednačine 4.5

(1, 1) (1, 4) (2, 0) (3, 1) (3, 4) (4, 0) i ∞. (4.6)

Algoritam za dodavanje dve tačke na eliptičkoj krivoj se pojavljuje u Tabeli 4.2. Sada upotrebimo algoritam iz Tabele 4.2 da bi pronašli tačke P3 = (1, 4) + (3, 1) na krivoj u jednačini 4.5. Prvo, izračunamo

m = (1 − 4)/(3 − 1) = −3 · 2-1 = −3 · 3 = 1 mod 5.

Onda

x3 = 12 − 1 − 3 = −3 = 2 mod 5

i

y3 = 1(1 − 2) − 4 = −5 = 0 mod 5.

Nadalje, na krivoj y2 = x3 + 2x + 3 (mod 5), imamo (1, 4) + (3, 1) = (2, 0). Primetite da (2, 0) je takođe na krivoj u jednačini 4.5, kao što je prikazano u jednačini 4.6.

Tabela 4.2 Sabiranje na eliptičkoj krivoj mod p

Page 68: Zastita informacija

4.5.2 ECC Difi-Helman

Sada kada možemo uraditi sabiranje sa eliptičkim krivama, hajde da razmotrimo Difi-Helman verziju ECC. Javne inforamacije sastoje se od krive i tačke na krivoj. Selektovaćemo krivu

y2 = x3 + 11x + b (mod 167) (4.7)

ostavljajuči b da bude određeno posle. Dalje, možemo odabrati tačke (x, y) i odrediti b tako da se ova tačka nalazi na rezultirajućoj krivoj. U ovom slučaju, izaberemo recimo (x, y) = (2, 7). Onda zamenom x = 2 i y = 7 u jednačini 4.7 dobijamo da je b = 19.

Sada je javna informacija

Javna: Kriva y2 = x3 + 11x + 19 (mod 167) i tačka (2, 7) (4.8)

Alisa i Bob odabrati svoje tajne množitelje.3 Pretpostavimo da Alisa odabere A = 15 i Bob odabere B = 22. Onda Alisa računa

A(2, 7) = 15(2, 7) = (102, 88)

gde je sva aritmetika urađena na jednačini 4.8. Alisa šalje ovaj rezultat Bobu. Bob računa

B(2, 7) = 22(2, 7) = (9, 43)

i to šalje Alisi. Sada Alisa množi vrednost koji je primila od Boba sa njenim tajnim A i to je onda

A(9, 43) = 15(9, 43) = (131, 140).

Onda Bob računa

B(102, 88) = 22(102, 88) = (131, 140)

i Alisa i Bob su uspostavili svoju zajedničku tajnu, koje su odgovarajuće za korištenje simetričnog ključa. Primetite da ovo radi pošto je AB(2, 7) = BA(2, 7). Sigurnost ovog metoda leži u činjenici da iako Trudi može videti A(2, 7) i B(2, 7) ona (izgleda) mora pronaći A ili B pre nego što odredi zajedničku tajnu. Koliko je poznato, DH verzija eliptičke krive je teža za razbiti od običnog DH algoritma. U stvari, za dat broj bita, verziju eliptičke krive je teže razbiti, što dozvoljava korišćenje manjih vrednosti za isti nivo sigurnosti.

Nije sve izgubljeno za Trudi. Može je utešiti činjenica da je DH verzija eliptičke krive podložnija MiM napadu od običnoh DH algoritma razmene ključeva.

Postoje mnogi izvori informacija u vezi eliptičkih krivih. Vidite [192] za više informacija i [28] za više matematičkih detalja.

3 Pošto znamo kako se radi sabiranje eliptičke krive, možemo uraditi multiplikaciju kao ponavljanje sabiranja

Page 69: Zastita informacija

4.6 OZNAČAVANJE U KRIPTOGRAFIJI JAVNIH KLJUČEVA

Pre diskusije o korištenju kriptografije javnih ključeva, moramo da razmotrimo pitanje označavanja. Pošto kriptografija javnih ključeva koristi po dva ključa za svakog korisnika, navikavanje na označavanje koju smo koristili za simetričnu kriptografiju može se smatrati nespretnom. Osim toga, digitalni potpis je šifrovanje (sa privatnim ključem), ali ista operacija je dešifrovanje kada se primenjuje na šifrat.

Mi ćemo se naviknuti na označavanje korišteno u [122] za šifrovanje javnim ključem, dešifrovanje i potpisivanje:

Šifrovana poruka M sa Alisinim javnim ključem: C = {M}Alice

Dešifrovana poruka C sa Alisinim privatnim ključem: M = [C]Alice

Potpisivanje je ista operacija kao dešifrovanje, pa je označavanje za Alisininu poruku M je S = [M]Alice, gde je S potpisana poruka

Pošto su šifrovanje i dešifrovanje inverzne operacije

[{M}Alice]Alice = {[M]Alice}Alice = M.

Nikada ne zaboravite da je javni ključ javan. Kao rezultat, svako može izračunati {M}Alice. Sa druge strane, privatni ključ je privatan, tako da samo Alisa ima pristup njenom privatnom ključu. Kao rezultat, samo Alisa može izračunati [C]Alice ili [M]Alice. Ovo upućuje na to da svako može šifrovati poruku za Alisu, ali samo Alisa može dešifrovati šifrat. Što se tiče potpisivanja, samo Alisa može potpisati M, ali pošto je javni ključ javan, svako može verifikovati potpis. O verifikovanju ćemo više govoriti kada budemo govorili o heš funkcijama u sledećem poglavlju.

4.7 UPOTREBA KRIPTOGRAFIJE JAVNIH KLJUČAVA

Možete uraditi sve sa algoritmom kriptografije sa javnim ključem kao što možete sa simetričnim kriptografijom, samo sporije. Ovo uključuje tajnost u smislu prenosa podataka kroz nesiguran kanal ili sigurno smeštanje podataka na nesigirnam mediju. Takođe uključuje integritet, gde potpisivanje javnog ključa igra ulogu MAC simetričnog ključa.

Ali kriptografija sa javnim ključevima nudi dve glavne prednosti u odnosu na simetričnu kriptografiju. Prva je da sa nam sa javnom kriptografijom nije potrebno unapred uspostavljati zajednički ključ. Druga glavna prednost jeste da digitalni potpis nudi ne samo integritet nego i neporecivost. Ove dve prednosti ćemo dole detaljnije objasniti.

4.7.1 Poverljivost u realnom svetu

Primarna prednost simetrične kriptografije je efikasnost.4 Setite se da kod simetrične kriptografije MAC obezbeđuje integritet. Struktura javnog ključa obezbeđuje integritet, ali takođe obezbeđuje i neporecivost, a to je nešto što simetrični ključevi ne mogu obezbediti.

4 Druga prednost jeste da nije potrebna infrastruktura javnog ključa ili PKI. Govorićemo o tome posle.

Page 70: Zastita informacija

Slika 4.4 Hibridni kriptosistem

Da bi razumeli neporecivost, hajde da prvo razmotrimo integritet u slučaju simetričnog ključa. Pretpostavimo da Alisa izda nalog za kupovinu 100 akcija z anjenog omiljenog klijent Boba. Da bi osigirala integritet njenog naloga Alisa računa MAC koristeći zajednički ključ KAB. Pretpostavimo da nakon što Alisa izda nalog, ali pre nego što uzme novac od Boba cena akcija padne za 80%. Tada Alisa tvrdi da nije izdala nalog, tj. ona poriče transakciju.

Može li Bob dokazati da je Alisa izdala nalog? Ne može. Pošto Bob takođe zna simetrični ključ KAB, on je mogao krivotboriti poruku u kojoj Alisa izdaje nalog. Tako da iako Bob zna da je Alisa izdala nalog, on to ne može dokazati.

Sada razmotrimo isti scenario, ali kada Alisa koristi digitalni potpis umesto računanja MAC-a. Kao i MAC potpis obezbeđuje integritet. Može li Bob da je nalog došao od Alise? Da, može, pošto jedino Alisa ima pristup njenom privatnom ključu. Digitalni potpisi obezbeđuju integritet i neporecivost. U sledećem poglavlju ćemo više govoriti o potpisima integritetu.

4.7.3 Tajnost i neporecivost

Pretpostavimo da Alisa želi poslati poruku M Bobu. Za tajnost, Alisa može šifrovati poruku M sa Bobovim javnim ključem, a za integritet i neporecivost, može potpisati poruku sa njenim privatnim ključem. Ali pretpostavimo da Alisa želi i tajnost i neporecivost. Onda ona ne može jednostavno potpisati M pošto to neće omogućiti tajnost i ne može jednostavno šifrovati M jer to neće omogućiti integritet. Rešenje nije komplikovano – Alisa može potpisati poruku M i šifrovati rezultat pre nego što je pošalje Bobu i to je onda

{[M]Alice}Bob.

Ili je bolje za Alisu da prvo šifruje poruku M pa tek onda potpiše rezultat? U ovom slučaju, Alisa će izračunati

[{M}Bob]Alice.

Da li raspored igra ulogu? Razmotrićemo dva različita scenarija, ista kao ona iz [56]. Prvo, pretpostavimo da su Alisa

i Bob u vezi. Alisa odluči polati poruku Bobu

M = “I love you”

Pa korišćenjem potpisivanja i šifrovanja ona šalje

{[M]Alice}Bob.

Page 71: Zastita informacija

Slika 4.5 Zamka kod potpisivanja i šifrovanja

Kasnije, Alisa i Bob se posvađaju i Bob se oseća povređenim tako da on dešifruje potpisanu poruku da bi dobio [M]Alice i ponovo je šifruje kao

{[M]Alice}Charlie.

Bob onda šalje poruku Čarliju, kao što je prikazano na Slici 4.5. Čarli misli da je Alisa zaljubljena u njega, što uzrokuje neprilike između Alise i Čarlija, ali i kod Boba.

Alisa, je iz svog iskustva nuačila lekciju da nikada prvo ne potpisuje pa onda šifruje. Kada želi tajnost i neporecivost, Alisa će uvek prvo šifrovati pa onda potpisati.

Posle nekog vremena, Alisa i Bob su se pomirili i Alisa je otkrila veliku teoriju i to želi da podeli sa Bobom. Ovog puta njena poruka je [41]

M = “Brontosauruses are thin at one end, much much thickerin the middle, then thin again at the other end”

i tu poruku ona šifruje pa potpiše

[{M}Bob]Alice

pre nego što pošalje Bobu.Međutim, Čarli je ljut na Alisu i Boba i on koristi man-in-middle napad, smeštajući se

između Alise i Boba da bi mogao da presretne sve poruke između njih. Čarli je čuo da Alisa radi na velikoj novoj teoriji i pretpostavlja da ta poruka koja je šifrovana i potpisana ima neke veze sa tim. Tako Čarli koristi Alisin javni ključ za izračuna {M}Bob, i on to potpiše pre nego što pošalje Bobu,

[{M}Bob]Charlie.

Ovaj scenario je predstavljen na Slici 4.6.Kada Bob primi poruku od Čarlija, on pretpostavlja da je Čarli otkrio tu veliku teoriju i

odmah čestita Čarliju. Kada Alisa sazna da je Čarli preuzeo sve zasluge za njenu teoriju ona se odlučuje da nikada prvo više prvo šifruje pa potpiše.

Koji je ovde problem? U prvom scenariju, Čarli pretpostavlja da je {[M]Alice}Charlie poslato od Alise za Čarlija. To nije sličaj, pošto je Čarlijev javni ključ javan. Problem u ovom slučaju jeste da Čarli ne razume krptografiju sa javnim ključevima.

Page 72: Zastita informacija

Slika 4.6 Zamka kod potpisivanja pa šifrovanja

U drugom scenariju, Bob pretpostavlja da je [{M}Bob]Charlie od Čarlija, što nije sličaj, jer Alisin ključ – koji je Čarli iskoristio da bi efikasno uklonio Alisin potpis iz orginalne poruke – javan. U tom slučaju, Bob je onaj koji ne razume ograničenja u kriptografiji sa javnim ključevima. U kriptografiji sa javnim ključevima svako može raditi operacije sa javnim ključevima. To znači da svako može šifrovati poruku i svako može verifikoveti potpis.

4.8 INFRASTRUKTURA JAVNIH KLJUČEVA

Infrastruktura javnih ključeva ili PKI je suma svega potrebnog za sigurno korišćenje kriptografije sa javnim ključem. Veoma je teško i uspeti obezbediti sve neophodne delove PKI-a u radni prostor. Neki značajni PKI problemi moraju biti prevaziđeni pre nego što kriptografija sa javnim ključem može biti iskorištena u realnom svetu. Za diskusiju o nekim rizicima koje uključuje PKI vidite [73].

Digitalni sertifikat, ili certifikat javnog ključa ili jednostavno sertifikat sadrži korisničko ime zajedno sa korisničkovim javnim ključem. U mnogim situacijama, sertifikat mora biti potpisan od strane sertifikacionog autoriteta, ili CA, koji ima ulogu trećeg lica od poverenja, ili TTP. Potpisivanjem sertifikata, CA potvrđuje da je identitet na sertifikatu od nositelja odgovarajućeg privatnog ključa. Primetite da CA ne jamči za indentitet nositelja sertifikata, pošto je sertifikat javan. Danas, najveći komercijalni izvor za sertifikate je VeriSign [240].

Jedna važna stvar jeste da je verifikovanje potpisa ne verifikuje izvor sertifikata. Sertifikati su javni, pa na primer, Čarli može poslati Alisin sertifikat Bobu. Bob ne može naslutiti da kominicira sa Alisom samo ako je primio Alisin validan sertifikat.

Kada primite sertifikat, morate verifikovati potpis. Ako je sertifikat potpisan od strane CA kome verujete, onda možete pokušti verifikovati potpis koriteći CA javni ključ. Svako može kreirati sertifikat i tvrditi da je nečiji drugi, ali samo verifikacija potpisa može kreirati poverljivost u validaciji sertifikata.

Sertifikat može sadržati svaku informaciju koja se smatra vrednošću učesnika. Međutim, više informacija upućuje na to da će sertifikat postati nevažeći. Na primer, možda kompanija želi da uključi odeljenje za zapošljevanje u sertifikat. Ali rti znači da svaka ponovna organizacija sertifikata će učiniti sertifikat nevažećim.

Ako CA napravi grešku, posledice mogu biti velike. Na primer, VeriSign je jednom izdao sertifikat za Microsoft nekome drugom [101], a to znači da je VeriSign dao odgovarajući privatni ključ nekome ko nije Microsoft. Taj neko drugi je mogao da radi kao da je Microsoft. Ovakva greška je brzo otkrivena i sertifikat je povučen pre nego što je učinjena šteta.

Ovo upućuje na još jedan PKI problem koji se zove povlačenje setrifikata. Sertifikati se obično izdaju sa datumom isticanja. Ali ako je privatni ključ kompromitovan ili je otkriveno da je sertifikat izdata sa grškom, setifikat mora biti odmah povučen. Večina PKI šema zahteva regularnu listu za povlačenje sertifikata ili CRL, koji se koriste da bi upotpunili kompromitovane sertifikate.

Page 73: Zastita informacija

U nekim situacijama, ovo može staviti veliki teret na korisnike, što znači da to teži ka greškama i problemima u sigurnosti.

Da sumiramo, svaka PKI infrastruktura se mora baviti sa:

Generalizacija ključa i upravljanje Sertifikacioni autoriteti (CA) Lista povlačenja sertifikata (CRL)

Dalje ćemo ukratko govoriti o nekoliko poverljivih modela koji se koriste danas. Na kraju, morate se osloniti na digitalni potpis da bi odlučili da li da verujete sertifikatu. Osnovni problem u kriptografiji sa javnim ključem jeste određivanje čijem potpisu ste voljni verovati. Postoji nekoliko poverljivih modela koji se koriste. Mi ćemo pratiti terminologiji iz [122].

Verovatno najočigedniji model kome se može verovati je model monopola, gde jedna poverljiva organizacija je CA za čitav svet. Ovaj pristup je naravno favorizovan od strane najveće komercijalizovane CA, a to je danas VeriSign. Neki su govorili da vlada mora igrati ulogu monopolskog CA. Međutim, većina ljudi ne veruje vladi.

Velika mana modela monopola jeste da kreira veliki cilj za napad. Ukoliko se ikada CA kompromituje, cela PKI infrastruktura je uništena. Takođe, ako ne verujete u model monopola, sistem je potpuno beskoristan za vas. Model oligarhije je jedan korak unapred u odnosu na model monopola. U ovom modelu, postoji nekoliko poverljivih CA. Ovo je pristup koji se danas koristi kod web pretrašivača – web pretraživač može biti konfigurisan sa 80 ili više CA sertifikata. Korisnici koje se oslanjaju na sigurnost slobodno mogu da odluče koji od oligarhijskih CA će da koriste, a koji ne.

Obrnuto od monopolskog modela jeste model anarhije. U ovom modelu svako može biti CA, a na korisniku je da odluči kojem CA će verovati. Ovaj pristup se koristi u PGP-u, koje dolazi od imena ''web od poverenja.''

Model anarhije može staviti veliki teret na korisnika. Na primer, pretpostavimo da primite sertifikat potpisan od strane Franka, a vi ne znate ko je Frank, ali verujete Bobu i Bob kaže da se može verovati Alisi koja garantuje za Franka. Da li onda trebate verovati Franku? Ovo je iznad strpljenja prosečnog korisnika, koji ili veruje svakome ili ne veruje nikome, a sve zbog toga da bi izbegao ovakve glavobolje.

Postoji još mnogo PKI modela poverenja, većina njih pokušava da omogići razumnu fleksibilnost tako što smanjuje teret za krajnjeg korisnika. Činjenica da nema dogovora u vezi poverljivih modela je glavni problem PKI infrastrukture.

4.9. UKRATKO

U ovom poglavlju, govorili smo o svim najvažnijim temama kriptografije sa javnim ključem. Govorili smo detaljno o RSA i Difi-Helman algoritmu i eliptičkim krivama. Eliptičke krive nisu tipičan kriptosistem, nego one nude drugačiji način da se bavimo matematikom kod kriptografije sa javnim ključem.

Obratili smo pažnju na označavanje i neodbacivanje, koje su najvažnije prednosti kriptografije sa javnim ključem. Upoznali smo se sa hibridnim kriptosistemom, koji objašnjava način kako je kriptografija sa javnim ključevima korištena u relanosti za potrebe poverljivosti. Pominjali smo PKI infrastrukturu, koja često dokazuje blokadu razvoja kripografije sa javnim ključevima.

Ovo podrazumeva pregled kriptografije sa javnim ključem. Ali ćemo o mnoge aplikacije u vezi ove kriptografije videti u sledećim delovima ove knjige.

Page 74: Zastita informacija

4.10 PROBLEMI

1. Koje informacije treba da sadrži digitalni sertifikat? Koje dodatne informacije treba da sadrži digitalni sertifikat?

2. Pretpostavimo da su Alisini RSA javni ključevi (N,e) i privatni ključ d. Alisa želi da potpiše poruku M, a to je [M]Alice. Dajte matematiču formulu koja se ovde koristi.

3. U jednačini 4.3, dokazali smo da za RSA šifrovanje ''radi'', a to je [{M}Alice]Alice = M. Dokažite da za RSA, verifikacija potpisa radi, ako je [{M}Alice]Alice = M.

4. Alisin RSA javni ključ je (N,e) = (33,3) i njen privatni ključ d = 7.a. Ako Bob šifruje poruku M = 19 za Alisu, koji je odgovarajući šifrat C? Dokađite da Alisa može dešifrovati C da bi dobila M.b. Neka je S rezultat kada Alisa digitalno potpiše poruku M = 25. Koliko je S? Ako Bob primi M i S, objasnite proces koji Bob koristi da bi verifikovao potpis? Dokažite da je u ovom slučaju verifikacija potpisa uspešno izvršena.

5. Zašto je loša ideja koristiti isti RSA par ključa i za potpisivanje i za šifrovanje? 6. Da bi ubrzali RSA, možemo koristiti e = 3 za sve korisnike. Ovo stvara mogićnost napada trećeg korena kao što smo govorili u tekstu. Objasnite ovaj napad i kako se on može izbeći.

Za (N,e) = (33,3) i d = 7, dokažite da napad trećeg korena funkcioniše kada je M = 3, a ne kada je M = 4.

7. Na dijagramu Difi-Helman razmene ključeva na slici 4.1, jasno ukažite koja informacije je javna, a koja tajna.

8. Pretpostavimo da Alisa i Bob dele simetrični ključ K. Nacrtajte dijagram da prikažete različitost Difi-Helman razmene ključeva između Boba i Alise koji sprečava man-in- middle napad.

9. Digitalni potpis obezbeđuje integritet podataka i MAC obezbeđuje integritet podataka. Digitalni potpis takođe obezbeđuje prihvatanje, dok MAC to ne dozvoljava. Zašto ne?

10. Hibridni kriptosistem koristi kriptografiju javnih ključeva i simetričnu kriptografiju da bi preuzeo koristi od svakog. Predstavite takav sistem koristeći Difi-Helman kao sistem javnih ključeva i DES kao simetričnu šifru. Predstavite takav sistem koristeći RSA kao sistem javnih ključeva i AES kao simetričnu šifru.

11. Prikažite man-in-middle napad na ECC verziju Difi-Helman. 12. Pretpostavimo da Alisa potpiše poruku M = ''I love you'' i onda šifruje to sa Bobovim

javnim ključem pre nego što poruku pošalje Bobu. Kao što smo rekli u tekstu, Bob može dešifrovati da bi dobio potpisanu poruku i onda je šifruje sa Čarlijevim javnim ključem i prosledi rezultirajući šifrat Čarliju. Može li Alisa sprečiti ovaj napad koristeći simetričnu kriptografiju?

13. 105 str

Page 75: Zastita informacija

5.1 ŠTA JE HEŠ FUNKCIJA?

Kriptografska heš funkcija h(x) mora omogućite sledeće:

Kompresiju: za svaku veličinu ulaza x, dužina izlaza y=h(x) je mala. U praksi, kroptografske heš funkcije proizvode fiksnu veličinu izlaza, bez obzira na dužinu ulaza.

Efikasnost: mora biti lako za izračunati h(x) za svaki ulaz x Jednosmernost: Za zadato bilo koje y praktično je nemoguće izračunati x jer je h(x)=y.

Drugi način da se ovo kaže jeste da je teško obrnuti heš. Slaba otpornost na kolizije: za zadato x i h(x) nemoguće je izračunati y, sa y≠x, ako je

h(y)=h(x). Jaka otpornost na kolizije: nemoguće je izračunati x i y sa x≠y, ako je h(x)=h(y).

Kolizije moraju postojati jer je ulazno prostor mnogo veći od izlaznog prostora. Na primer, pretpostavimo da heš funkcija generiše izlaz od 128 bita. Ako razmotrimo, recimo sve moguće 150 bitne vrednosti ulaza onda u proseku 222 ili 4 miliona od ovih vrednosti se hešuje na sve moguće izlazne vrednosti. A ovo je samo računajući 150 bitne ulazne. Osobine otpornosti na kolizije zahtevaju da sve ove kolizije (kao i sve ostale) su teške za pronaći. Zanimljivo je da kriptografske heš funkcije zaista postoje.

Heš funkcije su veoma korisne u sigurnosti. Jedan važan promer korišćenja heš funkcija jeste računanje digitalnog potpisa. Setite se da Alisa potpisati poruku M koristeći njen privatni ključ da ''šifruje'' a to znači da ona računa S = [M]Alice. Ako Alisa pošalje M i S Bobu onda Bob može verifikovati potpis tako što verifikuje M = {S}Alice. Međutim, ako je M veliko [M]Alice je teško izračunati - a da ne spominjemo nepotrebno utrošen protok tokom slanja M i S koji su iste veličine.

Pretpostavimo da Alisa ima kriptografsku heš funkciju h. Onda h(M) može biti posmatrano kao ’’otisak prsta’’ fajla M. To znači da je h(M) mnogo manje od M ali ono identifikuje M. Ako se

5

HEŠ FUNKCIJE I DRUGE TEME

Page 76: Zastita informacija

M' razlikuje od u jednom ili više bita, onda se od h(M) i h(M') može očekivati da se razlikuju u polovini njihovih bita. Na osnovu tako date funkcije h, Alisa može potpisati M računajući S= [h(M)]Alice i poslati Bobu M i S. Onda Bob može verifikovati da je h(M) = {S}Alice.

Koja je prednost potpisivanje h(M) umesto M? Pretpostavljajući da je h(M) efikasnije za izračunati, mnogo je efikasnije za Alisu da potpiše h(M) nego M jer komplikovane operacije privatnog ključa treba da budu primenjene samo na mali fajl h(M) umesto na čitav fajl M. Veliko M i mnogo efikasnije h(M) omogućavaju veću čuvanost. Osim toga, propusnost je smanjena, kao kada Alisa šalje Bobu nekoliko bita više.

5.2 ROĐENDANSKI PROBLEM

Takozvani rođendanski problem je osnovni predmet u mnogim poljima kriptografije. Mi ćemo ga ovde predstaviti iako je kritično za razumeti sigurnu implementaciju hešovanja.

Pretpostavimo da je u sobi N ljudi. Koliko veliko N mora biti pre nego što nađete makar jednu osobu koja ima rođendan isti dan kada i vi? Ekvivalentan način da bi ovo postavili jeste, koliko veliko N mora biti da bi verovatnoća da neko ma isti rođendan kada i vi je veći od ½. Kao sa mnogo računanja verovatnoće, lakše je izračunati verovatnoću komplamenta, a to je da niko od N osoba nema isti rođendan kada i vi i oduzeti rezultat od jedan.

Vaš rođendan je na jedan poseban dan u godini. Ako osoba nema isti rođendan kada i vi, njegov rođendan je onda jedan od preostalih 364 dana. Ako su svu rođendanski datumi slični, verovatnoća da slučajno odabrana osoba nema isti rođendan kada i vi je 364/365. Onda je verovatnoća da niko od N osoba ima rođendan kao vi jeste (364/365)N, a verovatnoća da makar jedna osoba ima rođendan kada i vi je

1 − (364/365)N.

Izjednačavajući ovaj izraz sa ½ i računanje N, dobijemo da je N=253. Pošto postoji samo 365 dana ovo bi trebalo da je u redu.

Ponovo, pretpostavimo da je N osoba u prostoriji. Ali sada želimo odgovoriti na pitanje koliko veliko mora biti N pre nego što je verovatnoća veća od ½ da dve ili više osoba imaju rođendan isti dan? Ponovo lakše je rešiti za verovatnoću komplamenta i oduzeti jedan od rezultata. U ovom slučaju, komplament je da svako od N ljudi ima rođendan različitog dan.

Broj ljudi u prostoriji je 0, 1, 2, . . . , N − 1. Osoba 0 ima rođendan određenog datuma. Ako svi ljudi imaju različite rođendane, onda osoba 1 mora imati rođendan na bilo koji od preostala 364 dana. Isto tako osoba 2 ima rođendan na jedan od preostala 363 dana itd. Ponovo, pretpostavljajući da su svi datumi slični i uzimajući komplament rezultirajuća verovatnost bi bila

1 − 365/365 · 364/365 · 363/365 · · · (365 − N + 1)/365.

Ako izjedančimo ovu jednačinu da ½ dobijemo da je N=23. Ovo je poznato kao rođendanski paradoks i čini se da je paradoksalno da samo sa 23 osobe u sobi možemo imati rođendan isti dan. Međutim, ako ovo razmotrimo bolje to čini ovaj rezultat manje paradoksalnim. U ovom problemu, mi upoređujemo rođendane od svih ljudi. Sa N osoba u prostoriji broj upoređivanje je N(N − 1)/2 ≈ N2. Pošto postoji samo 365 različitih datuma možemo očekivati da ćemo pronaći podudaranje na N2=365 ili N = √365 ≈ 19. Sa ove tačke gledišta rođendanski paradoks nije više tako paradoksalan.

Šta rođendani imaju sa kriptografijom heš funkcija? Pretpostavimo da heš funkcija h(x) proizvodi izlaz dužine N bita. Onda je tu 2N različitih mogućih heš vrednosti. Pretpostavimo da sve vrednosti heš izlaza su slični. Pošto je √2N = 2N/2, rođendanski problem upućuje na to da ako je

Page 77: Zastita informacija

heš oko 2N/2 različitih ulaza, možemo očekivati da ćemo pronaći koliziju, a to je dva ulaza koja se hešuju na istu vrednost. Ovaj metod ’’razbijanja’’ heš funkcije je analogan napadu potpune pretrage ključeva na simetrične šifre.

Ovo implicira na to da sigurna heš koji generiše N bitni izlaz zahteva rad od oko 2N/2 da se razbije, dok sigurna simetrična šifra sa ključem dužine N zahteva rad od oko 2N−1 da se razbije. Suština je da izlaz heš funkcije mora biti otprilike oko dvostruki broj bita kao ključ simetrične šifre za odgovarajuću količinu sigurnosti – pretpostavljajući da ne postoji napada.

5.5. NEKRIPTOLOŠKI HEŠ

Pre nego što budemo govorili o kriptografskim heš funkcijama, prvo ćemo obratiti pažnju na nekoliko jednostavnih nekriptoloških heševa. Pretpostavimo da je ulazni podatak

X = (X0,X1,X2, . . . , Xn−1)

gde je svako Xi bajt. Možemo definisati heš funkciju h(X) preko

h(X) = (X0 + X1 + X2 +· · ·+Xn−1) mod 256.

Ovo zasigurno izvršava kompresiju, jer bilo koja veličina ulaza je kompresovana na 8-bitni izlaz. Ali ovo nije sigurno, pošto nam rođendanski problem govori da ako hešujemo samo 2 4=16 slučajno izabranih ulaza, možemo očekivati da ćemo pronaći koliziju. U ovom slučaju, kolizije je lako direktno konstrisati. Na primer

h(10101010, 00001111) = h(00001111, 10101010) = 10111001.

Ne samo da je ova dužina heša previše kratka, ali tu je veoma mnogo algebarske strukture. Kao još jedan primer nekriptološkog heša, razmotrilo sledeće. Ponovo, podatak je zapisan

kao bajt

X = (X0,X1,X2, . . . , Xn−1).

Sada ćemo definisati heš h(X) kao

h(X) = nX0 + (n − 1)X1 + (n − 2)X2 +· · ·+2Xn−2 + Xn−1 mod 256.

Da li je ovaj heš siguran? Na kraju krajeva ovaj heš daje različit rezultat kada se dva bajta zamene, na primer

h(10101010, 00001111) ≠ h(00001111, 10101010).

Iako ovo nije siguran kriptografski heš, koristi se u određenim nekriptološkim heš aplikacijama [193].

Primer nekriptološkog heša koji se veoma koristi je cyclic redundancy check ili CRC [247]. Ovo računanje je duga podela, sa podsetnikom koji se ponaša kao CRC vrednost. Razlika između ubičajene duge podele jeste to što je XORovanje korišteno umesto oduzimanja.

U CRC računanju dat je divizor. Na primer, pretpostavimo da je divizor 10011 i podatak je 10101011 onda čemo dodati četiri nule podatku i onda je CRC računanje

Page 78: Zastita informacija

i CRC checksum je podsetnik, 1010. Sa ovim odabirom divizora lako je pronaći kolizije i lako je konstruktovati kolizije za svaki CRC sistem [8].

CRC se ponekad (greškom) koristi kao aplikacija gde je potreban integritet. Na primer, WEP [30] koristi CRC checksum gde bi kriptografski heš bio pogodniji. CRC i slični checksum metode su dizajnirani da otkriju greške tokom prenosa – a ne da otkriju namerne napade.

5.4 TIGER HEŠ

Sada ćemo obratiti pažnju na kriptografske heš funkcije. Dve najpopilarnije heš funkcije koje se danas koriste. Jedna od njih je MD5 gde je MD skraćenica od message digest. MD5 je naslednik MD4 koji je bio naslednik MD2. Ranije MD verzije se više ne smatraju sigurnim, imajući u vidu da su pronađene kolizije. Zapravo, MD5 kolizije su skoro otkrivene. Sve MD verzije je izumeo Ron Rivest. MD5 proizvodi 128-bitni izlaz.

Drugi kandidat za naslov ’’najpopularnija svetska heš funkcije’’ je SHA-1 i on je standard američke vlade. Pošto je vladin standard SHA je akronim od ’’secure hash algoritm’’. Možda je pitate zašto SHA-1 a ne SHA? U stvari, postoji SHA (sada poznat kao SHA-0), ali je doživeo propast, ali je SHA-1 doživeo uspon sa nekim malim izmenama ali bez objašnjenja.

SHA-1 algoritam je veoma sličan MD5 algoritmu. Glavna praktična razlika jeste da SHA-1 generiše 180 bitni izlaz, što omogućava veću sigirnost u odnosu na MD5. Kriptografske heš funkcije se sastoje od broja rundi. U tom slučaju, oni podsećaju na blokovske šifre.

Heš funkcije se smatraju sigurnim ukoliko se ne pronađu kolizije. Kao i sa blokovskim šiframa, efikasnost je glavna briga kod dizajna heš funkcija. Ako na primer, je mnogo teže izračunati heš od M nego označiti M, heš funkcija nije korisna, pa makar u aplikacijama potpisivanja o kojima smo govorili.

Željeno svojstvo svake kripografske heš funkcije je tzv. lavina efekat ili jaki lavina efekat. Cilj je da svaka mala promena u ulazu rezultira velikom promenom u izlazu. Idealno bi bilo da

Page 79: Zastita informacija

svaka promena u izlazu rezultira vrednostima izlaza koje su nepovezane, i da napadač mora biti primoran na iscrpnu pretragu za kolizijama.

U idelanom slučaju lavina efeket bi se trebao dogoditi posle nekoliko rundi, tako da bi runde trebale biti jednostavne i efikasne što je više moguće. Dizajneri heš funkcija su se kao i dizajneri blokovskih šifri suočili sa trade offs. MD5 i SHA-1 algoritmni nisu posebno interesantni, jer se oba sastoje od slučajnih kolekcijatransformacija. Umesto da govorimo o njima detaljnije mi ćemo govoriti o Tiger hešu. Tiger koji je razvijen od strane Rosa Andersona i Eli Biham ima više organizovaniji od SHA-1 ili MD5. Ustvari, Tiger može biti smatran kao veoma sličan blokovskim šiframa. Tiger je dizajniran da bude ’’jak i brz’’ što mu i samo ime govori. Takođe je dizajniran za optimalan rad 64-bitnih procesora i da bude zamena za MD5, SHA-1 ili bilo koji drugi heš sa sličnim ili istim izlazom.

Kao i MD5 i SHA-1 izlaz kod Tiger algoritma je podeljen na blokove od po 512 bita, sa ulazom povećanim za više od 512 bita, ako je potrebno. Za razliku od MD5 i SHA-1, izlaz kod Tiger heša je 192 bita. Numerologija iza izbora od 192 bita jeste da je Tiger dizajniran za 64-bitne procesore, a 192 bita je tačno tri 64-bitne reči. Kod Tiger heša sve srednje runde se takođe sastoje od 192-bitnih vrednosti.

Uticaj Tiger blokovskih šifri može se videti u činjenici da on koristi četiri S-kutije, gde se svaka od njih preslikava sa 8 bita na 64 bita. Tiger takođe može koristiti algoritam ''tabele ključa'', koja pošto nema ključa je primenjena na ulazne blokove, kao što je dole objašnjeno.

Ulaz X je povećan za više od 512 bita i napisan kao

X = (X0, X1, ... , Xn-1)

gde svaki Xi je od 512 bita. Tiger algoritam koristi spoljnu rundu za svako Xi , za i = 0, 1, 2, .... n-1 i jedna takva runda je predstavljena na Slici 5.1. Svako od a, b, c na Slici 5.1 je 64 bita, a početna vrednost od (a, b, c) za svaku rundu su

a = 0x0123456789ABCDEFb = 0xFEDCBA9876543210c = 0xF096A5B4C3B2E187

dok je krajnja vrednost (a, b, c) iz runde početna vrednost za sledeću rindu. Krajnja vrednost (a, b, c) iz krajnej runde je 192-bitna heš funkcija. Iz ove perspektive, Tiger veoma liči na blokovske šifre.

Page 80: Zastita informacija

Slika 5.1 Tiger spoljne runda

Primetite da je ulaz u spoljnu rundu F5 (a, b, c). Označavamo izlaza F5 kao (a, b, c) ulaz F7

kao (c, a, b) i ulaz F9 kao (b, c, a). Svaka funkcija Fm na Slici 5.1 se sastoji od osam unutrašnjih rundi kao što je prikazano na Slici 5.2. Pišemo 512-bitni ulaz W kao

W = (w0,w1, . . . , w7)

gde je svako wi od 64 bita. Primetite da sve linije na Slici 5.2 predstsavlaju 64 bita.Ulazne vrednosti za fm,i , za i = 0, 1, 2, … , 7 su

(a, b, c), (b, c, a), (c, a, b), (a, b, c), (b, c, a), (c, a, b), (a, b, c), (b, c, a),

odnosno, gde je izlaz od fm,i-1 označeno sa (a, b, c). Svako fm,i zavisi od a, b, c, w, m, gde je wi i od 64 bita pod-blok od 512-bitnog ulaza W. Potpis m od fm,i je množilac kao što je dole definisano. Pišemo c kao

c = (c0, c1, . . . , c7)

Page 81: Zastita informacija

Slika 5.2 Tiger unutrašnja runda za Fm

Gde je svako ci jedna bajt. Onda je fm,i dato kao

c = c ⊕ wi

a = a − (S0[c0] ⊕ S1[c2] ⊕ S2[c4] ⊕ S3[c6])b = b + (S3[c1] ⊕ S2[c3] ⊕ S1[c5] ⊕ S0[c7])b = b · m

gde je svako Si S-kutija preslikana od 8 bita na 64 bita. Ove S-kutije su velike, pa ih nećemo ovde predstavljati. Za više detalja o S-kutijama vidite [10].

Jedina preostala tačka o kojoj ćemo govoriti je tabela ključa. Neka W bude 512-bitni ulaz u algoritam tabele ključa. Kao i gore, W = (w0,w1, . . . , w7) gde je svako wi 64 bita. Neka w¯i bude binarni komplament od wi. Onda je tabela ključa data u Tabeli 5.1, gde je izlaz dat na osnovu krajnjeg W = (w0,w1, . . . , w7).

Page 82: Zastita informacija

Da sumiramo, Tiger heš se sastoji od 24 runde, koje se mogu videti kao 3 spoljne runde, od kojih svaka ima po osam unutrašnjih rundi. Sve srednje heš vrednosti su 192 bita. Tvrdi se da su S-kutije diajnirane da svaki ulazni bit utiče na a, b, c posle tri runde. Takođe, tabela ključa je dizajnirana tako da svaka mala promena u poruci je uticati na srednje heš vrednosti. Množenje u poslednjem koraku u fm,i je takože kritična funkcija u dizajnu. Svrha je da se osigura da svaki ulaz u S-kutiju u jednu rudni se pomeša u mnoge S-kutije u sledećoj rundi. Zajedno, S-kutije, tabele ključa i višestrukost osigurava dizajniran jak lavina efekat.

Tiger pozajmljuje mnoge ideje iz dizajna blokovskih šifri, uključujući S-kutije, višestruke runde, mešovita aritmetika, tabela ključa itd. Na višem novou, možemo reći da Tiger koristi Shannonove principe konfuzije i difizije.

5.5 HMAC

Setite se da za integritet poruke mi možemo izračunati autentifikacioni kod poruke, ili MAC, koristeći blokovsku šifru u režimu vezivanja blokovskih šifri (CBC). MAC je krajnji šifrovan blok, koji je poznat kao CBC ostatak. Pošto heš funkcija proizvodi različite vrednosti ako se ulaz promeni, mi treba da koristimo heš da verifikujemo integritet poruke. Ali ne možemo poslati poruku M zajedno sa njenim hešom h(M), jer napadač može jednostavno zameniti M sa M‘ i h(M) sa h(M‘). Međutim, ako učinimo da heš zavisi od simetričnog ključa, onda možemo izračunati hešovan MAC ili HMAC.

Kako možemo umešati ključ u HMAC? Dva očigledna pristupa su h(K, M) i h(M, K). Pretpostavimo da želimo izračunati HMAC kao h(K, M). Postoji potencijalni problem kod oog pristupa. Većina kiptografskih hešova hešuju poruku u blokovima. Za MD5, SHA-1 i Tiger, veličina bloka koja se koristi je 512 bita. Kao rezultat, ako je M = (B1, B2) gde je svaki Bi veličine 512 bita, onda je

Page 83: Zastita informacija

h(M) = F(F(A,B1),B2) = F(h(B1),B2) (5.2)

za neku funkciju F, gde je A konstanta. Na primer, u Tiger hešu, funkcija F se sastoji od spoljnih rundi koje su prestavljene na Slici 5.1, gde svako Bi odgovara 512-bitnom bloku ulaza i A odgovara 192-bitnim početnim vrednostima (a, b, c).

Ako je M‘ = (M, X), Trudi može biti u mogućnosti da koristi jednačinu 5.2 da pronađe h(K, M‘) iz h(K, M) iako ne zna K, jer je za K, M i X odgovarajuće veličine

h(K,M‘) = h(K,M,X) = F(h(K,M),X) (5.3)

funkcija F poznata. Da li je h(M, K) bolje? Ono sprečava navedeni napad. Međutim, ali ako se dogodi da

postoji kolizija, tj. da ako tu postoji neko M‘ sa h(M‘) = h(M) onda na osnovu jednačine 5.3 imamo

h(M,K) = F(h(M),K) = F(h(M’),K) = h(M’,K) (5.4)

pod uslovom da je svako od M i M’ višestruk blokovska veličina. Ovo nije ozbiljan razlog za brigu kao prethodni slučaj, jer ako se dogodi takva kolizija, heš funkcija je nesigurna. Ali ako možemo eliminisati ovakav napad onda možemo tako nastaviti.

Zapravo, možemo sprečiti oba ova potencijana problema, tako što ćemo malo modifikovati metod korišten da pomeša ključ u hešu. Kao što je opisano u RFC 2104 [133], opravdan metod za računanje HMAC-a sledi. Neka B bude dužina bloka heša u bajtima. Za MD5, SHA-1 i Tiger, B = 64. Sledeće definišemo,

ipad = 0x36 repeated B times

i

opad = 0x5C repeated B times.

Onda je HMAC od M

HMAC(M,K) = H(K ⊕ opad,H(K ⊕ ipad,M))

koji pažljivo meša ključ u rezultirajući heš. HMAC može biti koristen umesto MAC-a za integritet poruke. HMAC ima takođe nekoliko svrha, a o nekima ćemo govoriti u kasnijim delovima.

5.6 KORIŠĆENJE HEŠ FUNKCIJA

Neke od standardnih aplikacija koje koriste heš funkcije uključuju autentifikaciju, integritet poruke (koriste HMAC), poruke otiska prsta, data corruption detection, efikasnost digitalnog potpisa. Postoji veliki broj pametnih I ponekad iznenađujućih korištenja sigurnih heš funkcija. Dole ćemo objasniti dva interesantna primera heš funkcija koji mogu biti korišteni za rešavanje sigurnosnih problema. Takođe je tačno da heš funkcije mogu biti korištene za sve što se može učiniti sa šiframa simetričnih ključevima i obrnuto.

Page 84: Zastita informacija

Prvo ćemo ukratko razmotriti korišćenje heš funkcija da sigurno smesti online ponude. Onda ćemo govoriti o interesantnom pristupu smanjenja spamova koje se oslanja na hešovanje.

5.6.1 Online ponude

Pretposatvimo da su na svakoj aukciji tri ponuđača, Alisa, Bob i Čarli. Ove aukcije koriste ‘’zapečaćene ponude’’, tj. Da svaki ponuđač podnosi jednu sigurnosnu ponudu i samo kada se sve ponude prime onda se ponude otkrivaju. Kao i obično, najveća ponuda pobeđuje.

Alisa, Bob i Čarli ne veruju jedno drugom, i ne veruju da će njihove ponude ostati tajne kada se podnesu. Na primer, ako Alisa da ponudu od 10,00 $, a Bob je na osnovu Alisinih prethodnih ponuda da svoju ponudu on može dati ponudu od 10.01 $. Da bi ublažili ove strahove, aukcijske stranice predlažu sledeće šeme. Svaki ponuđač će odrediti svoju ponudu kao ponuda A od Alice, ponuda B od Boba i ponuda C od Čarlija. Onda će Alisa podneti h(A), Bob će podneti h(B) i Čarli će podneti h(C). Samo kada se prime i otkriju sve tri hešovane ponude svi ponuđači će podneti njihove nehešovane ponude A, B i C. Kada je heš funkcija sigurna, ona je jednosmerna, tako da nema nedostataka tokom davanja hešovanih ponuda pre konkurenata. Pošto je nemoguće pronaći kolizije, nijedan učesnik ne može promeniti svoju ponudu nakon što je predao hešovanu vrednost. Pošto ne postoje nedostaci ukoliko prvi predate hešovanu ponudu, ne postoji način da se promeni ponuda kada je heš vrednost poslata, tako da ova šema sprečava varanje koje može biti rezultat naivnog pristupa davanja ponuda.

5.6.2 Sprečavanje spamova

Još jedan primer hešovanih vrednosti proizilazi iz tehike smanjenja spamova. Spam je neželjena i nepredviđena gomila e-mail. U ovoj šemi, Alisa će odbiti da prihvati e-mail, jer ima dokaz je da pošiljalac uložio veliki ''napor'' da pošalje taj e-mail. Ovde će napor biti meren u smislu računarskih resursa, posebno CPU ciklusa. Da bismo bili praktični, mora biti lako za Alisu da verifikuje da je pošiljalac stvarno obavio posao, a ipak nije moguće za pošiljaoca da vara i ne obavi zahtevani posao. Ako možemo napraviti takvu šemu, onda bismo imali ograničenu količinu e-mailova koju korisnik može poslati jer će ga koštati ako pošalje e-mail u gomili.

Neka je M e-mail poruka i neka je T trenutno vreme. Pošiljalac poruke M mora pronaći vrednost R takav da je

pa, pošiljalac mora pronaći vrednost R tako da heš u jednačini 5.5 ima nule u svim njegovim prvim N izlaznim bitovima. Onda pošiljalac šalje (M, R, T). Pre nego što Alisa primi e-mail, ona mora da verifikuje vreme T i da h(M, R, T) počinje sa N nula.

Pošiljalac mora pronaći heš koji počinje sa N nula, dakle on mora izračunati u proseku 2N

heševa. Sa druge strane. Primalac može verifikovati da h(M, R, T) počinje sa N nula tako što računa jedna heš. Tako da posao za pošiljaoca, meren u hešovima, je oko 2N dok je posao za primaoca računanje samo jednog heša. Posao pošiljaoca se povećava eksponencialno u odnosu na N dok je posao primaoca zanemarljiv, bez obzira na N.

Da bi učinili ovu šemu praktičnom, moramo izabrati N tako da je nivo posla prihvatljiv za normale e-mail korisnike ali neočekivano velik za pošiljaoce spamova. Sa ovom šemom, takođe je

Page 85: Zastita informacija

moguće da korisnici mogu izabrati njihovu pojedinačnu vrednost N kako bi se podudarala njihova lična tolerantnost za spamove. Na primer, ako Alisa mrzi spamove, ona može izabrati, recimo, da je N = 40. Dok će ovo zasigurno zaplašiti pošiljaoce spamova, to će takođe zaplašiti mnoge obične e-mail pošiljaoce.

Bobu, sa druge strane, ne smeta što prima spamove, tako da on postavlja vrednost N = 10. Ovo može biti dovoljno da se izbegnu neki spamovi, i to će samo staviti samo zanemarljiv teret na obične pošiljaoce.

Pošiljaoci spamova ne vole ovakvu šemu. Obični pošiljaoci takođe ne vole ovu šemu, jer moraju potrošiti više novca da bi brzo izračunali ogroman broj hešova. Ali to je upravo cilj ove šeme, da se poveća cena slanja e-maila.

5.7 DRUGE TEME O KRIPTOGRAFIJI

U ovom delu, govorićemo o tri teme koje se odnose na kriptografiju, ali nisu usko povezane sa simetričnom kriptografijom, kriptografijom javnih ključeva ili heš funkcijama. Prvo ćemo razmotriti Shamiovu šemu tajne razmene. Ovo je veoma jednostavna procedura koja može biti korištena da podeli tajnu između korisnika. Takođe ćemo spomenuti jednu aplikaciju za ovu tehniku.

Takođe ćemo govoriti o nasumičnosti. U kriptografiji, često su nam potrebni nasumično odabrani ključevi, nasumično veliki prosti brojevi itd. Govorićemo o nekim problemima generisanja nasumičnik brojeva i predstavićemo interesantan primer sa prikažemo zamke kod odabira loših nasumičnih brojeva.

Na kraju, ukratko ćemo obraditi temu skrivanja informacija, gde je cilj skrivanje informacija u drugom podatku, kao što je smeštanje tajne informacije u JPEG sliku. Ako napadač ne zna da informacija postoji, informacija može biti prosleđena bez ikoga ali da učesnici znaju da se komunikacija dogodila. Skrivanje informacija je široka tema, ali mi ćemo obratiti pažnju samo na najvažnije.

5.7.1 Tajna razmena

Pretpostavimo da imamo tajno S i želimo da Alisa i Bob dele ovu tajnu u smislu da

Ni Alisa ni Bob (niti iko drugi) mogu odrediti S sa verovatnoćom boljom od pogađanja. Alisa i Bob mogu zajedno odrediti S.

Na prvi pogled, ovo je težak problem. Međutim, lako se rešava, i rešenje proizilazi iz činjenice da ''dve tačke određuju liniju.''Dato je tajno S, nacrtajte liniju L u ravni na osnovu tačaka (0, S) i dajte Alisi tačku A = (X 0, X1) na L i dajte Bobu drugu tačku B = (X1, Y1) takođe na liniji L. Onda ni Alisa ni Bob nemaju pojedninačnu inforamaciju o S, pošto jedan beskonačan broj linija prolaze kroz jednu tačku. Ovaj primer je prikazan na ''2 od 2'' Slici 5.3. ovo zovemo šema tajne razmene, jer postoje dva učesnika i oba moraju sarađivati da bi otkrili tajno S.

Lako je proširiti ovu ideju na ''m od n'' šeme tajnog deljenja, za svako m ≤ n, gde je n broj učesnika, svakog m koji moraju sarađivati da bi otkrili tajnu. Za m = 2, linija uvek finkcioniše. Na primer, 2 od 3 šema pojavljuje se na Slici 5.3.

Page 86: Zastita informacija

Linija, koja je polinom prvog stepena, je jedinstveno određena na osnovu dve tačke, dok parabola, koja je polinom drugog stepena, je jedinstveno određena na osnovu tri tačke. U principu, polinomni stepen m-1 je jedninstveno određen na osnovu n tačaka. Ove osnovna činjenica nam dozvoljava da lako konstruišemo m od n šemu tajnog deljenja za m ≤ n. Na primer, 3 od 3 šema je prikazana na Slici 5.3.

Pošto je tajno S verovatno ključ ili neka druga brojčana vrednost, ima više smisla da se bavimo sa diskretnom količinom umesto sa realnim brojevima, a ova šema tajne razmene radi isto kao i moduo od p. Ovaj koncept elegantne i sigurne tajne razmene se duguje S-u iz RSA (a to je Shammir).

2 od 2 2 od 3 3 od 3

Slika 5.3 Šema tajne razmene

5.7.1.1 Key escrow. Jedna posebana aplikacija gde je šema tajne razmene korisna je key escrow problem. Pretpostavimo da su nam potrebni korisnici da smestimo njihove ključeve sa zvaničnim escrow agencijom. Vlada može, ukoliko sud naredi, dobije pristup ključu kao pomoć kod kriminalnih istraga. Ovo stavlja kriptografiju u istu kategoriju kao, recimo, običnu telefonsku liniju, koji može biti snimljen na osnovu sudskog naloga. Jednom je američka vlada želela da promoviše key escrow tako što je razvila sistem (Clipper i Capstone) koji uključuje key escrow kao svojstvo. Međutim, ideja key escrow je široko podcenjivana i na kraju je napuštena; vidite [43] za kratku istoriju u vezi Clipper čipa.

Jedna zabrinutost kod key escrowa je da je escrow agencija nepoverljiva. Jedan način da se poboljša ova zabrinutost jeste da se ima nekoliko escrow agencija i da se dozvoli korisnicima da dele ključ između n njih, tako da m od n mora sarađivati da bi odredili ključ. Alisa može onda odrediti n escrow agencija koje ona smatra najpoverljivijim i ima svoju tajnu podelu između ovog koristeći m od n šemu tajne razmene.

Shamirova šema tajne razmene može biti korištena da se izvrši takva key escrow šema. Na primer, pretpostavimo da je n = 3 i m = 2 i Alisin ključ S. Onda ''2 od 2'' šema predstavljena na Slici 5.3 može biti korištena, na primer, kada Alisa može izabrati da ima Odeljenje pravde koje ima tačke (X0, Y0), Odeljenje za trgovinu (X1, Y1) i Fredov key escrow kompanija koja ima tačke (X2 ,Y2). Onda bilo koje dve od ove tri escrow agencije moraju sarađivati da bi odredile Alisin ključ S.

5.7.2 Nasumični brojevi

Page 87: Zastita informacija

Videćemo da su nasumični brojevi potrebni da bi se tačno genereisali simetrični ključevi kao RSA parovi ključa i Difi-Helman eksponenti. U sledećem poglavlju, videćemo da nasumični brojevi imaju važnu ulogu kod sigurnosnih protokola.

Nasumični brojevi se koriste u mnogim nesigurnim aplikacijama kao što su simulacije i statistike. U takvim aplikacijama, nasumični brojevi obično samo trebaju biti ''statistički'' nasumični, to znači da one moraju proslediti određene statističke testove koji pokazuju da su oni u nekom smislu ne razlikuju od slučajnosti.

Ipak, kriptografski nasumični brojevi moraju biti statistički nasumični i oni moraju takođe zadovoljiti mnogo strožije zahteve koji su nepredvidivi. Zašto moraju takvi brojevi biti nepredvidivi? Pretpostavimo da server generiše sledeće simetrične ključeve:

KA za Alisu KB za Boba KC za Čarlija KD za Dejva.

Alisa, Bob i Čarli ne vole Dejva, tako da oni sarađuju da bi videli da li mogu odrediti Dejvov ključ. Ako se Dejvov ključ KD može biti predviđen iz znanja ključa KA, KB i KC onda je sigurnost sistema razbijena.

5.7.2.1 Texas Hold 'em Poker. Sada razmotrimo jedan realan primer koji lepo ilustruje loš način generisanja kriptografskih nasumičnih brojeva. ASF softver korporacija je razvila online verziju igre sa kartama poznatu kao Texas hold 'em poker. U ovoj igri, nekoliko ''zajedničkih karata'' se dele sa licem nagore, tako da svako može videti karte. Svaki igrač takođe prima neke karte za sebe, koje samo on može videti. Svaki igrač koristi svoje karte zajedno sa zajedničkim kartama. Igra uključuje nekoliko rundi klađenja jer su zajedničke karte otkrivene. Ova igra je prikazana na Slici 5.4.

Na online verziji ove igre, nasumični brojevi su korišteni da mešaju virtuelni špil karata. ASF softver ima ozbiljan problem, jer su nasumični brojevi korišteni da mešaju špil karata. Kao rezultat, program ne pravi pravo nasumično mešanje i moguće je da igrač vara određujući čitav špil u isto vreme. Na taj način igrač koji vara zna sve karte kod ostalih igrača.

Kako je to moguće? Prvo, primetite da postoji 52! > 2255 mogućih mešanja špila od 52 karte. ASF poker program koristi ''nasumične'' 32-bitni intidžer da odredite mešanje. Na osnovu toga, program može generisati najviše 232 različitih mešanja od 2255 mogućnosti.

Da bi generisali ''nasumično'' mešanje, program koristi da izgradi Paskal pseudo nasumični generator brojeva, ili PRNG. Nadalje, PRNG je podeljen na svakim mešanjem, sa nosećom vrednosti koja je poznata kao funkcija broja milisekundi od ponoći. Broj milisekundi u toku dana je

24 · 60 · 60 · 1000 < 227

i na osnovu toga moguće je manje od 227 različitih mešanja.Trudi, napadač, može uraditi bolju stvar. Ako ona sinhroniše njen sat sa serverom, Trudi

može smanjiti broj mešanja koji trebaju biti testirani u manje od 218. Ovih 218 mogućih mešanja mogu biti generisani u realnom vremenu i testirani uprkos kartama koje svi vide i da odrede pravo mešanje u tekućoj igri. U stvari, nakon prve (ili pete) runde klađenja, Trudi može odrediti jedinstveno mešanje i ona može tako znati karte koje su u rukama ostalih igrača – pre nego što i sami igrači dobiju svoje karte.

Page 88: Zastita informacija

Karte igrača Zajedničke karte na sredini stola. koje samo oni vide

Slika 5.4 Texas Hold ’em Poker

AFS Texas Hold ’em Poker program je dobar primer da se vide loši efekti koristeći predvidljivih nasumičnih brojeva gde su potrebni kriptografski nasumični brojevi. Iako mešanje ne može biti potpuno predviđeno, broj mogućih nasumičnih mešanja je tako mali da je moguće razbiti sistem.

Kriptografski nasumični brojevi se ne mogu predvideti. Na primer, keystrem generisan na osnovu bilo koje sigurne sekvencijalne šifre mora biti nepredvidiv. To znači da keystrem iz RC4 šifre može biti dobar izvor kriptografskih nasumičnih brojeva. Međutim, odabir ključa (koji postupa kao početna vrednost koja se deli za RC4 u ovom slučaju) je još uvek kritičan problem.

5.7.2.2 Generisanje nasumičnih bita. Stvarnu nasumičnost nije samo teško pronaći, nego je i teško definisati. Možda je koncept entropije najbolje što možemo uraditi, na osnovu Shannona. Entropija se koristi da se meri nesigurnost ili obratno predvidljivost bitova u nizu. Nećemo više detaljisati ali više o entropiji možete saznati u [234].

Izvori stvarne nasumičnosti postoje. Na primer, radioaktivni raspad je takav izvor. Međutim, nuklearni računari nisu veoma popularni, tako da trebamo naći drugi izvor. Nekoliko hardverskih uređaja su dostupni i mogu biti korišteni da okupe neke nasumične bite zasnovane na različitim fizičkim i toplotnim svojstvima za koje se zna da su visoko nepredvidivi. Drugi popularan izvor nasumičnosti je online lava lampa [155], koja ostvaruje svoju nasumičnost iz njenog inherentnog haotičnog ponašanja.

Neki softveri su deterministički, stvarni nasumični brojevi moraju biti generisani spolja u kodu. Pored toga specijalni uređaji koje smo gore naveli, razumni izvori nasumičnosti uključuju kretanje miša, dinamiku tastature, određenu aktivnost mreže itd. Takođe je moguće dobiti neke visoko kvalitetne nasumične bitove na osnovu takve metode, ali količina takvih bita je ograničena.

Nasumičnost je interesantna i tema kojoj se često obraća velika pažnja. Uvek je važno zapamtiti da ’’Korištenje pseudo nasumičnih procesa da se generišu tajne količine može rezultirati pseudo sigurnošću.’’ [122].

Page 89: Zastita informacija

5.7.3 Skrivanje informacija

U ovom delu govorićemo o dva aspekta skrivanja informacija, tj. steganografija i digitalni watermarking. Steganografija ili ''tajno pisanje'', je način skrivanja činjenica da je ta informacija prosleđena. Jedan primer watermarka je skrivanje identifikacionih informacija u digitalnoj muzici da bi se u cilju identifikovanja odgovornih za ilegalne preraspodele.

U priči koja se odnosi na Herodota (oko 440 godine pre Hrista) , grčki genereal je obrijao glavu jednog roba i napisao poruku na njegovoj glavi kao upozorenje na persijsku invaziju. Kada je porasla robova kosa dovoljno porasla i sakrila poruku, roba su poslali kroz neprijateljsku vojsku da isporuči skrivenu poruku drugom generealu. Tokom vojne istorije, steganografija se više koristila od kriptografije.

Moderna verzija steganografije uključuje skrivanje informacija u medijima, kao što su slike, audio podaci, ili čak i softver [218]. Ovaj tip skrivanja informacija može biti viđen kao oblik prikrivenog kanala – tema kojoj ćemo se vratiti kada budemo govorili o višenivovskoj sigurnosti u Poglavlju 8.

Digitalni watermark je skrivanje informacija za drugu svrhu. Postoji nekoliko vrsta watermarka; u jednoj vrsti ’’nevidljiv’’ identifikator je dodat u podatak. Na primer, jedan odentifikator može biti dodat u digitalnu muziku, tako da ako se piratska verzija pojavi, watermark može biti pročitan i prodavac – i pirat – može biti identifikovan. Takve tehnike su razvijene za gotovo sve tipove digitalne muzike, kao i za softvere.

Digitalni watermark postoji u nekoliko vrsta, uključujući

Nevidljivi watermarkovi, koji ne bi trebalo da budu primetni u medijima. Vidljivi watermarkovi, koji su predviđeni da budu primetni. TOP SECRET pečat na

dokumentu je jedna primer takvog watermarka.

Watermarkovi mogu dalje biti kategorizovani kao

Snažni watermarkovi, koji treba da ostanu čitljivi i kada su napadnuti. Slabi watermarkovi, koji su dizajnirani da budu uništeni ako se neka opasnost

dogodi.

Na primer, možemo uneti snažanu nevidljivu oznaku u digitalnoj muzici u cilji otkrivanja piraterije. Onda kada se piratska muzika pojavi na Internetu možda možemo vratiti izvor nazad. Ili možemo uneti slab nevidljivi watermark u audio fajl. Ako je watermark nečitak, primalc zna da se opasnost dogodila. Ovaj drugi pristup je bitna forma provere integriteta. Razne druge kombinacije watermarka mogu biti korišteni.

Mnoge moderne valute uključuju (ne digitalne) watermarkove. Nekoliko američkih papirnih novčanica, uključujući 20$ prikazana na Slici 5.5 ima vidljiv watermark. Na novćanici od 20$ slika predsednika Jacksona je umetnuta sama u papir, na desnom delu novčanice, i vidljiva je kada je podignete na svetlost. Ovaj vidljivi watermark je dizajniran da oteža falsifikovanje, jer je potreban poseban papir da bi se lako kopirao ovaj watermark.

Page 90: Zastita informacija

Slika 5.5 Novčanica sa žigom

Jedna šema watermarka koja je predložena može uneti nformaciju u sliku na takav način da ako se slika ošteti može se rekonstruisati čitava slika iz preostalog dela orginala [129]. To znači da jedanan kvadratni inč slike može sadrati dovoljno informacija da rekonstruiše čitavi sliku, bez uticaja na kvalitet slike.

Hajde da obratimo pažnju na veoma jednostavan pristup steganografiji koji je prihvatljiv kod digitalne slike. Slika koristi 24 bita za boju – po jedan bajt za crvenu, zelenu i plavu, koje se označavaju sa R, G, B. Na primer, boja predstavljena preko (R, G, B) = (0x7E, 0x52, 0x90) je mnogo drugačija od (R, G, B) = (0xFE, 0x52, 0x90), iako se ove tri boje razlikuju smao u jednom bitu. Sa druge strane, boja predstavljena kao (R,G,B) = (0xAB, 0x33, 0xF0) je neprimetno različita od (R,G,B) = (0xAB, 0x33, 0xF1), koji se takođe razlikuju za jedan bit. Zapravo, RGB biti niskog reda su zanemarljivi, jer oni predstavljaju neprimetne promene u boji. Pošto RGB biti niskog reda nisu važani, možemo koristiti ove bite da ’’sakrijemo’’ informacije.

Obratimo pažnju na dve Alisine slike na Slici 5.6. Leva slika ne sadrži skrivene informacije, dok desna slika sadrži čitavu kljugu ’’Alisa u zemlji čuda’’ u PDF formatu, smeštenu u RGB bite niskog reda. Ljudskom oku se ove dve slike čine istim, bez obzira na rezoluciju. Dok je ovaj primer vizuelno divan, važno je zapamtiti da ako uporedimo bite ove dve slike, videćemo razlike. Posebno je lako za napadača da napiše program izvuče RGB bite nižeg reda ili da prepiše bite sa ostatkom pri čemu će uništiti skrivenu informaciju, ali neće oštetiti sliku.

Slika 5.6 Bajka o dve Alise

Page 91: Zastita informacija

Još jedan jednostav primer steganografije će dublje objasniti proces. Razmotrimo jedan HTML koji sadrži tekst

“The time has come,” the Walrus said,“To talk of many things:Of shoes and ships and sealing waxOf cabbages and kingsAnd why the sea is boiling hotAnd whether pigs have wings.”

U HTML-u RGB boja slova je naznačena u tagovima u formi

<font color="#rrggbb"> . . . </font>

gde je rr heksadecimalna vrednost od R, gg je heksimalna vrednost od G i bb je heksadecimalna vrednost od B. Na primer, crna boja se predstavlja kao #000000, dok je bela boja #FFFFFF. Dok RGB biti nižeg reda neće uticati na boju, možemo informacije sakriti u tim bitima, kao što je prikazano u HTML tekstu. Čitanje boje RGB bita nižeg reda propušta ’’skrivenu’’ informaciju 110 010 110 011 000 101.

Skrivanje informacija u RGB bitima nižeg reda HTML tagovima za boje očigledno nije veoma snažan. Ako napadač zna šemu, on može pročitati skrivenu informaciju jednako lako kao i pošiljalac. Ili napadač može uništiti informaciju tako što zameni HTML fajl sa drugim koji je identičan, osim da su RGB biti slučajni ostaci.

Primamljivo je sakriti informacije u bitovima koji nisu važni, dok će oni biti nevidljivi u smislu da sadržina neće biti narušena. Ali ako se to čini ono olakšava napadaču koji zna tu šemu da pročita ili uništi informaciju. Dok biti koji nisu važni za sliku ne moraju biti očigledni kao RGB biti nižeg reda u HTML tagovima, takvi biti su jednako podložni napadu od strane svakoga koji znaju format slike.

Zaključak je da ako želite da skrivanje informacija bude robustan, informacija mora biti postojati u bitima koji su važni. Ali ovo stvara ozbiljan izazov, jer sbaka promena bita koji su važni mora biti urađena pažljivo da bi informacija ostala ’’nevidljiva.’’

Kao što je rečeno gore, ako Trudi zna šemu skrivanja informacija, ona može otkriti skrivenu informaciju lako kao i pošiljalac. Šema watermarking obično šifruje skrivenu informaciju pre nego što se umetne u objekat. Ali iako je to tako, ako Trudi razumije kako šema funkcioniše, ona može skoro sigurno oštetiti ili uništiti informaciju. Ova činjenica je dovela programere da se često oslanjaju na vlastitu watermark šemu, koja funkcioniše suprotno od Kerkohovih pravila. Ovo je rezultiralo u mnogim pristupima koji su ugledali svetlost dana.

Tabela 5.2 Jednostavna steganografija

Page 92: Zastita informacija

Da bi dalje zakomplikovali život steganografa, nepoznata watermark šema može biti predstavljena preko napada kolizije. To znači da orginalni objekt i watermark objekt (ili nekoliko različitih watermark objekata) može biti upoređeno da odredi bite koji nose informacije. Kao rezultat, watermak šeme koriste širok spektar tehnika da bolje sakriju bite koji skrivaju informacije. Takvi pristupi čine posao napadača malo težim. Izazovi i opasnosti watermarka su ilustrovani preko napadača na SDMI šemi.

Poslednja stvar jeste da je skrivanje digitalne informacije mnogo teže nego što se čini na prvi pogled. Skrivanje informacija je oblast o kojoj se još uvek istražuje i iako niko ko na tome radi do sada nije obećao njihovim zagovornicima da će implikacije snažnih šema biti ogroman. Iako je oblast skrivanja informacija veoma star, digitalna verzija je relativno mlada, tako da još uvek ima prostora za napredak.

5.8 UKRATKO

U ovom poglavlju govorili smo o kriptografskim heš funkcijama, koje su mnogo korisne u zaštiti, i objasnili smo detaljno Tiger heš. Govorili smo o HMAC-u i drugim interesantnim namenama heš funkcija, uključujući šemu smanjenja spamova.

Takođe smo govorili o nekoliko tema koje se odnose na kriptografiju koja se ne uklapa u druga poglavlja. Shamirova šema tajne razmene nudi sigurnu metodu za deljenje tajne u svakom m od n rasporeda. Govorili smo o nasumičnim brojevima, tema koja je od važnosti za zaštitu, jer nasumični brojevi proizilaze iz mnogih sigurnosnih konteksta. Dali smo primer da prikažemo zamke kod nepravilnog korišćenja kriptografskih nasumičnih brojeva gde se oni zahtevaju.

Poglavlje smo završili sa kratkom diskusijom o skrivanju informacija. Iako u praksi ni steganografija ni watermark nisu dokazani kao snažni, postoji mogućnost da će se to tek dogoditi.

Page 93: Zastita informacija

It is the glory of God to conceal a thing:but the honor of kings is to search out a matter.

—Proverbs 25

The magic words are squeamish ossifrage—Solution to RSA challenge problem

posed in 1977 by Ron Rivest, whoestimated that breaking the messagewould require 40 quadrillion years.

It was broken in 1994

6.1 UVOD

U ovom poglavlju govorićemo o sledećim tehnikama napredne kriptoanalitike

Linearna i diferencijalna kriptoanaliza Side-channel napad na RSA Redukovanje laticije na knapsack Helmanov vremenski-memorijski trade off napad na DES

Ovi napadi predstavljaju samo mali uzorak u odnosu na mnoge tehnike koje su razvijene u poslednje vreme. Ali svaki od njih predstavlja značajan generalni kriptoanalitički princip.

Linerana i diferencijalna kriptoanaliza se ne koriste da direktno napadaju kriptosisteme. Umesto toga, oni se koriste da analiziraju blokovske šifre na dizajnerske slabosti. Kao rezultat, blokovske šifre su dizajnirane tako da imaju na umu ove tehinke. Da bi razumeli dizajnerske

6

NAPREDNEKRIPROANALIZE

Page 94: Zastita informacija

principe koji se danas koriste u blokovksim šiframa, potrebno je prethodno imati određeno znanje o lineranim i diferencijalnim kriptoanalizama.

Sporedni kanal nije nameran izvor informacija. Na primer, korišćenje energije ili pažljiv proračun vremena može otkriti informacije o osnovnim izračunavanjima. Napadi proračuna vremena su se uspešno koristili na nekoliko sistema javnih ključeva, a o takvom napadu smo govorili kod RSA. Iako napadi sporednog kanala nisu klasične kriptoanalitičke analize, ovi napadi su se u skorije vreme koristili da razbiju mnoge šeme šifrovanja, tako da je kritično da se razumeju implikacije takvih napada.

U poglavlju o kriptografiji javnih ključeva, spomenuli smo napade na knapsack kriptosisteme. U ovom delu, objasnićemo obaj napad detaljnije. Nećemo mnogo govoriti o matematici, ali ćemo obezbediti dovoljno informacija da bi razumeli koncept iza napada i da napišemo program koji implementira napad. Ovo je relativno jednostavan napad koji veoma lepa isustruje ulogu koju može igrati matematika u razbijanju kriptosistema.

Na kraju, govorićemo o Helmanovom napadu vremenske razmene memorije kod DES-a. Ovaj napad veoma lepo predstavlja ulogu koju algoritam može igrati u kriptoanalizi.

6.2 LINEARNA I DIFERENCIJALNA KRIPTOANALIZA

Uticaj Data Encryption Standard (DES) na modernu kriptografiju se ne može proceniti. I linearna i diferencijna kriptoanaliza su razvijene da napadaju DES. Kao što je već rečeno, ove tehnike ne doprinose praktičnim napadima. Umesto toga linearni i diferencijalni ''napadi'' upućuju na slabosti dizajna blokovskih šifri. Ove tehnike su postale osnovni analitički alati koji su primenjeni na analize svih blokovskih šifri.

Diferencijalna kriptoanaliza je u neklasifikovanom svetu prema Bihamu i Šamiru koji su 1990. godine predstavili ovu tehniku. Zatim je postalo jasno da je neko ko je uključen u dizajn DES-a (a to je NSA) bio svetan diferencijalnih kriptoanaliza tokom 1970-ih godina. Diferencijana kriptoanaliza je napad odabranog otvorenog teksta.

Linearna kriptanaliza je predstavljena od strane Matsua 1993. godine. Pošto DES nije dizaniran da ponudi optimalan otpor na sofisticirane linerane kriptoanalitičke napade, tako ni NSA nije znala za ove tehnike tokom 1970-ih godina ili nisu bili zabrinuti za ovakvu vrstu napada. Napadi linearne kriptoanalize su malo više realniji nego napadi diferencijalne kriptoanalize, pre svega zbog toga jer je to napad poznat otvoreni tekst, a ne na odabrani otvoreni tekst.

6.2.1 Ukratko o DES-u

Nisu nam potrebni svi detalji o DES-u, tako da ćemo dati kratak pregled koji uključuje samo određenje činjenice koje su nam potrebne. DES ima osam S-kutija, gde se svaki od šest ulaznih bita i to x0x1x2x3x4x5 pretvara u četiri izlazna bita i to y0y1y2y3 . Na primer, DES S-kutija broj jedan u hesadecimalnim oznakama je:

Page 95: Zastita informacija

Slika 6.1 daje pojednostavljen pogled na DES. Dalje, smo najviše zainteresovani za analizu nelinearnih delova DES-a, tako da dijagram ističe činjenicu da su S-kutije jedine nelinearne u DES-u. Slika 6.1 takođe predstavlja način na se koji podključ Ki smešta u rundu DES-a.

Dalje, ukratko ćemo predstaviti diferencijalne kriptoanalize na osnovu istog pregleda kao kod linearnih kriproanaliza. Predstavićemo pojednostavljenu verziju DES-a koju zovemo Tiny DES ili TDES. Predstavićemo i linerne i diferencijalne napade na TDES.

6.2.2 Pregled diferencijalnih kriptoanaliza

Pošto su diferencijane kriptoanalize razvijene da analiziraju DES, govorićemo o njima u kontekstu DES-a. Setite se da je čitav DES lineran osim S-kutija. Videćemo da linerani delovi DES-a igraju veliku ulogu u samoj sigurnosti DES-a, međutim sa kriptoanalitičkog pogleda, linearni delovi su jednostavni. Matematičati su dobri u rešavanju linernih jednačina, što znali da njihova nelineranost predstavlja glavnu kriptoanalitičku prepreku. Kao rezultat, diferencijane i linerane kriptoanalize su fokusirane da se bave sa nelineranim delovima DES-a, odnosno S-kutijama.

Slika 6.1 Jednostavan pogled na DES

Ideja iza diferencijanih napada jeste da se uporede ulazne i izlazne razlike. Zbog jednostavnosti, koristićemo jednostavne S-kutije. Pretpostavimo da DES kao šifra koristi 3-bitnu do 2-bitnu S-kutiju

(6.1)

Page 96: Zastita informacija

Gde za ulazne bite x0x1x2, bit x0 indeksira red, dok x1x2 indeksiraju kolonu. Onda, na primer Sbox(010)=11 jer biti u redu 0 i koloni 11 su jednaki 11.

Posmatrajmo dva ulaza, X1 = 110 i X2 = 010 i pretpostavimo da je ključ K = 011. Onda je X1 ⊕ K = 101 i X2 ⊕ K = 001 i onda imamo

Sbox(X1 ⊕ K)=10 i Sbox(X2 ⊕ K)=01. (6.2)

Sada pretpostavimo da je K u jednačini 6.2 nepoznato, ali da su ulazi X1 = 110 i X2 = 010 poznati kao i odgovarajući izlazi Sbox(X1 ⊕ K)=10 i Sbox(X2 ⊕ K)=01. Onda za S-box 6.1 vidimo da X1 ⊕ K ∈ {000, 101} i X2 ⊕ K ∈ {001, 110}. Pošto su X1 i X2 poznati imamo

K ∈ {110, 011} ∩ {011, 100}

što upućuje na to da je K = 011. Ovaj ’’napad’’ je u suštini poznat napad na otvoreni tekst na jedan S-box (6.1) za ključ K. Isti proces će raditi na jednom DES S-boxu.

Međutim, napadi na S-boxove u jednoj rundi DES-a nije posebno koristan. Pored toga, napadač neće zanati ulaz ni za jednu rundu osim za prvu, i napadač neće znati izlaz ni jedne runde sem poslednje. Srednje runde se pojavljuju da budu uznad delokruga kriptoanalitičara.

Za ovaj pristup da bismo dokazali da je koristan u analiziranju DES-a moraćemo biti u mogućnosti da proširimo napad za jednu čitavu rundu, odnosno moramo uzeti u obzir svih osam S-kutija istovremeno. Nakon što smo proširili napad za jednu rundu, onda moramo proširiti napad na više rundi. Na površini, oboje se pojavljuju da budu zastrašujući zadaci.

Međutim, videli smo da fokusiranjem na ulazne i izlazne razlike lako je učiniti neke S-kutije ''aktivnim'' i druge ''neaktivnim''. Kao rezultat, možemo u nekim slučajevima proširiti napad za jednu rundu. Da proširimo napad na nekoliko rundi, moramo izabrati ulazne razlike tako da bi izlazna razlika bila u odgovarajućoj formi za sledeću rundu. Ovo predstavlja izazov i zavisi od specicfičnih osobina S-kutija, kao i linearnog mešanja koje se pojavljuje kod svake runde.

Ključna tačka ovde jeste da ćemo se fokusirati na ulazne i izlazne razlike. Pretpostavimo da imamo ulaze X1 i X2. Onda za ulaz X1 stvarni unos u S-kutiju bi bio X1 ⊕ K, a za ulaz X2 stvarni ulaz u S-kutiju bi bio X2 ⊕ K gde je ključ K nepoznat. Razlike su definisane po modulu 2 upućujući na to da operacija razlike ista kao i operacije sume, odnosno XOR. Onda je razlika ulaza S-kutije

(X1 ⊕ K) ⊕ (X2 ⊕ K)=X1 ⊕ X2, (6.3)

tj. ulazna razlika je nezavisna od ključa K. Ovo je osnovno zapažanje koje omogućava diferencijanoj analizi da radi. Neka je Y1 =Sbox(X1 ⊕ K) i neka je Y2 =Sbox(X2 ⊕ K). Onda je izlazna razlika Y1 ⊕ Y2 je skoro ulazna razlika sledeće runde. Cilj je da se uspešno konstruiše ulazna razlika tako da možemo ’’lančati’’ razlike kroz sledeće runde. Pošto je ulazna razlika nezavisna od ključa i pošto je diferencijalna kriptoanaliza izabrana iz napada na otvoreni tekst mi imamo slobodu da biramo ulaze tako da izlazne razlike imaju oblik kakakv želimo.

Još jedan ključan element diferencijalnog napada jeste da S-kutija sa ulaznom ralikom nula uvek rezultira izlaznom razlikom nula. Zašto je ovo slučaj? Ulazna razlika od 0 jednostavno znači da ulazne vrednosti X1 i X2 su iste i u tom slučaju izlazne vrednosti Y1 i Y2 moraju biti iste odnosno da je Y1 ⊕ Y2 = 0. Važnost ovog osnovnog zapažanja jeste da možemo učinite S-kutije ’’neaktivnim’’ sa uvažavanjem diferencijanih kriptoanaliza birajući da njihove ulazne razlike budu nula.

Page 97: Zastita informacija

Poslednje opažanje jeste da nije potrebno da se stvari dogode sa sigurnošću. Drugim rečima, ako se jedan rezultat dogodi sa nekom značajnom mogućnošću onda možemo biti u mogućnosti da razvijemo napad verovatnoće koji će i dalje biti koristan u dobijanju ključa.

Data je bilo koja S-kutija i možemo je analizirati da li je korisna na osnovu ulaznih razlika. Za svaku moguću vrednost ulaza X pronađi parove X1 i X2 tako da je X =X1 ⊕ X2 i izračunati odgovarajuće izlazne razlike Y =Y1 ⊕ Y2 gde je Y1 = Sbox(X1) i Y2 = Sbox(X2). Rezultate ćemo staviti u tabelu, i pronaći ćemo najpogodnije ulazne vrednosti. Na primer, za S-kutiju 6.1, ova analiza upućuje na rešenje u Tabeli 6.1.

Za bilo koju S-kutiju, ulazna razlike od 000 nije interesantna jer to znači da su ulazne vrednosti iste i da je S-kutija ’’nekativna’’ jer izlazne vrednosti moraju biti iste. Na primer, u Tabeli 6.1 ulazna razlika od 010 uvek daje izlaz od 01, šro je i napogodniji mogući rezultat.

I kao što je rečeno u jednačini 6.3 uzimajući, recimo X1 ⊕ X2 =010 stvarni unos razlika u S-kutiju bi bio 010 jer ključ K ispada iz razlike.

Diferencijalna kriptoanaliza DES-a je prilično kompleksna. Da bismo analizirali ovu tehniku mnogo konkretnije, ali bez svih kompleksnosti koje se nalaze u DES-u, predstavićemo scaled verziju DES-a odnosno Tiny DES ili TDES. A onda ćemo primeniti diferencijalnu i linearnu kriptoanalizu na TDES. Ali prvo ćemo predstaviti kratak pregled linearne kriptoanalize.

6.2.3 Pregled linearne kriptoanalize

Ironično, linearna kriptoanaliza je kao i diferencijalna kriptoanaliza fokusirana na nelineranom delu blokovske šifre. Iako je linearna kriptoanaliza razvijene nekoliko godina posle diferencijalne kriptoanalize, ona je u osnovu jednostavnija i ima više efekta na DES i zahteva samo poznati otvoreni tekst nasuprot odabranom otvorenom tekstu.

U diferencijalnoj kriptoanalizi, fokusirali smo se na ulazne i izlazne razlike. U linearnim kriptoanalizama cilj je približiti nelinerani deo šifrata sa lineranom jednačinom. Pošto su

Page 98: Zastita informacija

matematičari dobri u rešavanju linearnih jednačina ako možemo pronaći takvu približnost to je onda razlog da možemo to koristiti kao napad na šifrat. Pošto su nelinearni deo DES-a samo S-kutije, linearna kriptoanaliza može biti fokusirana samo na S-kutije.

Ponovo ćemo posmatrati S-kutiju 6.1. Dodaćemo tri ulazna bita x0x1x2 i dva izlazna bita y0y1. Sada x0 određuje red, a x1x2 određuju kolonu. U Tabelu 6.2 poredali smo broj vrednosti za koju sadrži svaka linearna približnost. Pošto u svakom slučaju postoji osam vrednosti svaki broj osim četiri upućuje na nenasumičan izlaz. Rezultati u Tabli 6.2 pokazuju da na primer, y0 =x0 ⊕ x2 ⊕ 1 sa verovatnoćom 1 i y0 ⊕ y1 =x1 ⊕ x2

sa verovatnoćom 3/4 . Koristeći ove informacije, u našoj analizi možemo zameniti S-kutije preko lineranih funkcija. Rezultat ovoga jeste da smo menjali S-kutije za linearne jednačine, gde se linerane jednačine samo drže sa nekom verovatnoćom.

Da bi ove linerane aproksimacije bile korisne tokom napada na blokovske šifre kao što je DES, pokušaćemo da proširimo ovaj pristup tako da možemo rešiti linerane jednačine za ključ. Kao i kod diferencijalnih kriptoanaliza moramo nekako ''ulančati'' ove rezultate kroz višestruke runde.

Koliko dobro možemo približiti S-kutije sa linernim funkcijama? Svaka DES S-kutija je dizajnirana tako da nijedna linerana kombinacija izlaza nije dobra aproksimacija jednog izlaznog bita. Međutim, postoje linerane kombinacije izlaznih bita koje mogu biti aproksimirane preko linernih kombinacija ulaznih bita. Kao rezultat, postoji potencijala za uspeh u lineranoj kriptoanlizi DES-a.

Kao diferencijalana kriptoanaliza i linearna kriptoanaliza DES-a je kompleksna. Da bismo ilustrovali linerani napad objasnićemo TDES. I onda ćemo primeniti diferencijalnu i lineranu kriptoanalizu na DES.

6.2.4 Tiny DES

Tiny DES ili TDES je šifra slična DES-u koju je za razliku od DES-a lakše i jednostavnije analizirati. TDES je dizajniran od strane autora DES-a da bi se diferencijalni i linerani napadi lakše mogli implementirati. TDES je neprirodna šifra i u praksi ju je lako razbiti. Ali je ista kao DES da bi se ilustrovali principi iza linearne i diferencijane kriptoanalize.

Page 99: Zastita informacija

TDES je mnogo jednostavnija verzija DES-a koja sadrži

16-bitnu veličinu bloka 16-bitnu veličinu ključa Četiri runde Dve S-kutije, u kojoj se 6 bita pretvara u 4 bita 12-bitni podključ u svakoj rundi

TDES nema P-kutija, početnu ili završnu permutaciju. U suštini, mi smo eliminisali sva svojstva DES-a koji ne doprinose njenoj sigurnosti, dok smo u isto vreme smanjili blok i veličinu ključa.

Primetite da mali ključ i veličina bloka upućuju na to da TDES ne može doprineti bilokojoj realnoj zaštiti, bez obzira na osnovni algoritam. Ipak, TDES je koristan alat za razumevanje diferencijalnih i linearnih napad, kao i značajnijih pitanja o dizajnu blokovske šifre.

TDES je Festel šifra, i mi ćemo otvoreni tekst označiti kao (L0,R0). Onda za i = 1,2,3,4

Li = Ri−1

Ri = Li−1 ⊕ F(Ri−1,Ki )

gde je otvoreni tekst (L4,R4). Jedna runda TDES-a je predstavljena je na Slici 6.2, gde je broj bita označen na svakoj liniji. Dalje, ćemo potpuno objasniti sve delove TDES algoritma.

Slika 6.2 Jedna runda kod TDES-a

TDES ima dve S-kutije, koje ćemo označiti sa SboxLeft(X) i SboxRight(X). Obe S-kutije pretvaraju 6 bita u 4 bita kao i u standardnom DES-u. Deo TDES koji je nama najinteresantnije su S-kutije i njihov ulaz. Da bi pojednostavili označavanje, definisaćemo funkciju

F(R,K)=Sboxes(expand(R) ⊕ K) (6.4)

Page 100: Zastita informacija

gde Sboxes(x0x1x2 . . . x11)=(SboxLeft(x0x1 . . . x5), SboxRight(x6x7 . . . x11)).

Proširena permutacija je data preko expand(R)=expand(r0r1r2r3r4r5r6r7)=(r4r7r2r1r5r7r0r2r6r5r0r3). (6.5)

Leva S-kutija TDES-a koju smo označili sa SboxLeft(X) je heksadecimalna

Dok je desna S-kutija SboxRight(X) takođe heksadecimalna odnosno

Kao sa DES-om, svaki red u TDES S-kutiji je permutacija heksadecimalnih brojeva {0, 1, 2 , . . . ,E, F}.

Raspored ključa u TDES-u je veoma jednostavan. Ključ od 16 bita je ozanačen kao

K =k0k1k2k3k4k5k6k7k8k9k10k11k12k13k14k15

a podključ je generisan kao što sledi. Neka je

LK = k0k1 . . . k7

RK = k8k9 . . . k15.

Onda je za svaku rundu i = 0, 1, 2, 3, 4,

LK = rotate LK left by 2RK = rotate RK left by 1

i Ki je dobijeno odabirom bita 0, 2, 3, 4, 5, 7, 9, 10, 11, 13, 14, i 15 od (LK, RK). Podljuč Ki je dat eksplicitno kao

K1 = k2k4k5k6k7k1k10k11k12k14k15k8

K2 = k4k6k7k0k1k3k11k12k13k15k8k9

Page 101: Zastita informacija

K3 = k6k0k1k2k3k5k12k13k14k8k9k10

K4 = k0k2k3k4k5k7k13k14k15k9k10k11

U sledećem delu, objasnićemo diferencijalni napad na TDES. Posle toga objasnićemo linerani napad na TDES. Ovi napadi ilustruju osnovne principe koji se primenjuju kod diferencijalne i linearne kriptoanalize DES-a i drugih blokovskih šifri.

6.2.5 Diferencijalna kriptoanaliza DES-a

Naš diferencijalni napad će se fokusirati na levu S-kutiju, koja se pojavljuje u S-kutiji 6.7. Pretpostavimo da smestimo u tabelu SboxRight(X1) ⊕ SboxRight(X2) za sve parove X1 and X2 sa X1 ⊕ X2 =001000. Onda ćemo pronaći da

X1 ⊕ X2 =001000 upućuje na SboxRight(X1) ⊕ SboxRight(X2)=0010 (6.8)

sa verovatnoćom 3/4. setite se da za svaku S-kutiju

X1 ⊕ X2 =000000 upućuje na SboxRight(X1) ⊕ SboxRight(X2)=0000. (6.9)