[Sljedeće poglavlje]   [Sadržaj]


1. Klasična kriptografija

1.1. Osnovni pojmovi

Kriptografija je znanstvena disciplina koja se bavi proučavanjem metoda za slanje poruka u takvom obliku da ih samo onaj kome su namijenjene može pročitati. Sama riječ kriptografija je grčkog podrijetla i mogla bi se doslovno prevesti kao tajnopis.

skital Neki elementi kriptografije bili su prisutni već kod starih Grka. Naime, Spartanci su u 5. stoljeću prije Krista upotrebljavali napravu za šifriranje zvanu skital. To je bio drveni štap oko kojeg se namotavala vrpca od pergamenta, pa se na nju okomito pisala poruka. Nakon upisivanja poruke, vrpca bi se odmotala, a na njoj bi ostali izmiješani znakovi koje je mogao pročitati samo onaj tko je imao štap jednake debljine.

Osnovni zadatak kriptografije je omogućiti dvjema osobama (zvat ćemo ih pošiljalac i primalac - u kriptografskoj literaturi su za njih rezervirana imena Alice i Bob) komuniciranje preko nesigurnog komunikacijskog kanala (telefonska linija, računalna mreža, ...) na način da treća osoba (njihov protivnik - u literaturi se najčešće zove Eva ili Oskar), koja može nadzirati komunikacijski kanal, ne može razumjeti njihove poruke. Poruku koju pošiljalac želi poslati primaocu zvat ćemo otvoreni tekst (engl. plaintext). To može biti tekst na njihovom materinjem jeziku, numerički podatci ili bilo što drugo. Pošiljalac transformira otvoreni tekst koristeći unaprijed dogovoreni ključ. Taj postupak se naziva šifriranje, a dobiveni rezultat šifrat (engl. ciphertext) ili kriptogram. Nakon toga pošiljalac pošalje šifrat preko nekog komunikacijskog kanala. Protivnik prisluškujući može doznati sadržaj šifrata, ali ne može odrediti otvoreni tekst. Za razliku od njega, primalac koji zna ključ kojim je šifrirana poruka može dešifrirati šifrat i odrediti otvoreni tekst.

shema

Za razliku od dešifriranja, kriptoanaliza ili dekriptiranje je znanstvena disciplina koja se bavi proučavanjem postupaka za čitanje skrivenih poruka bez poznavanja ključa. Kriptologija je pak grana znanosti koja obuhvaća kriptografiju i kriptoanalizu.

Kriptografski algoritam ili šifra je matematička funkcija koja se koristi za šifriranje i dešifriranje. Općenito, radi se o dvije funkcije, jednoj za šifriranje, a drugoj za dešifriranje. Te funkcije preslikavaju osnovne elemente otvorenog teksta (najčešće su to slova, bitovi, grupe slova ili bitova) u osnovne elemente šifrata, i obratno. Funkcije se biraju iz određene familije funkcija u ovisnosti o ključu. Skup svih mogućih vrijednosti ključeva nazivamo prostor ključeva. Kriptosustav se sastoji od kriptografskog algoritma, te svih mogućih otvorenih tekstova, šifrata i ključeva. Dakle, imamo sljedeću formalnu definiciju.

Definicija 1.1: Kriptosustav je uređena petorka (P, C, K, E, D) za koju vrijedi:
      1) P je konačan skup svih mogućih osnovnih elementa otvorenog teksta;
      2) C je konačan skup svih mogućih osnovnih elemenata šifrata;
      3) K je prostor ključeva, tj. konačan skup svih mogućih ključeva;
      4) Za svaki KK postoji funkcija šifriranja eKE i odgovarajuća funkcija dešifriranja dKD. Pritom su eK : PC i dK : CP funkcije sa svojstvom da je dK(eK(x)) = x za svaki otvoreni tekst xP.

Najvažnije svojstvo u definiciji je dK(eK(x)) = x. Iz njega slijedi da funkcije eK moraju biti injekcije. Zaista, ako bi bilo

eK(x1) = eK(x2) = y,

za dva različita otvorena teksta x1 i x2, onda primalac ne bi mogao odrediti treba li y dešifrirati u x1 ili x2, tj. dK(y) ne bi bilo definirano. U skladu s tim imamo da ako je P = C, onda su funkcije eK permutacije.

Kriptosustave obično klasificiramo s obzirom na sljedeća tri kriterija:

1. Tip operacija koje se koriste pri šifriranju

Imamo podjelu na supstitucijske šifre u kojima se svaki element otvorenog teksta (bit, slovo, grupa bitova ili slova) zamjenjuje s nekim drugim elementom, te transpozicijske šifre u kojima se elementi otvorenog teksta permutiraju (premještaju). Npr. ako riječ TAJNA šifriramo u XIWOI, načinili smo supstituciju, a ako je šifriramo u JANAT, načinili smo transpoziciju. Postoje također i kriptosustavi koji kombiniraju ove dvije metode.

2. Način na koji se obrađuje otvoreni tekst

Ovdje razlikujemo blokovne šifre, kod kojih se obrađuje jedan po jedan blok elemenata otvorenog teksta koristeći jedan te isti ključ K, te protočne šifre (engl. stream cipher) kod koji se elementi otvorenog teksta obrađuju jedan po jedan koristeći pritom niz ključeva (engl. keystream) koji se paralelno generira.

3. Tajnost i javnost ključeva

Ovdje je osnovna podjela na simetrične kriptosustave i kriptosustave s javnim ključem. Kod simetričnih ili konvencionalnih kriptosustava, ključ za dešifriranje se može izračunati poznavajući ključ za šifriranje i obratno. Ustvari, najčešće su ovi ključevi identični. Sigurnost ovih kriptosustava leži u tajnosti ključa. Zato se oni zovu i kriptosustavi s tajnim ključem. Kod kriptosustava s javnim ključem ili asimetričnih kriptosustava, ključ za dešifriranje se ne može (barem ne u nekom razumnom vremenu) izračunati iz ključa za šifriranje. Ovdje je ključ za šifriranje javni ključ. Naime, bilo tko može šifrirati poruku pomoću njega, ali samo osoba koja ima odgovaraju ključ za dešifriranje (privatni ili tajni ključ) može dešifrirati tu poruku. Ideju javnog ključa prvi su javno iznijeli Whitfield Diffie i Martin Hellman 1976. godine, kada su dali prijedlog rješenja problema razmjenjivanja ključeva za simetrične kriptosustave putem nesigurnih komunikacijskih kanala.

Sada ćemo dati nekoliko općih napomena o kriptoanalizi. Osnovna pretpostavka kriptoanalize je da kriptoanalitičar zna koji se kriptosustav koristi. To se zove Kerckhoffsovo načelo, po Nizozemcu Augustu Kerckhoffsu (1835-1903), autoru važne knjige "La Cryptographie militaire" (Vojna kriptografija). Naravno, ova pretpostavka u konkretnom slučaju ne mora biti točna, ali mi ne želimo da nam sigurnost kriptosustava leži na "klimavoj" pretpostavci da naš protivnik ne zna koji kriptosustav koristimo. Čak ukoliko kriptoanalitičar treba provjeriti nekoliko mogućih kriptosustava, time se kompleksnost procedure bitno ne mijenja. Dakle, mi pretpostavljamo da tajnost šifre u potpunosti leži u ključu.

Razlikujemo četiri osnovna nivoa kriptoanalitičkih napada.

1. Samo šifrat

Kriptoanalitičar posjeduje samo šifrat od nekoliko poruka šifriranih pomoću istog algoritma. Njegov je zadatak otkriti otvoreni tekst od što više poruka ili u najboljem slučaju otkriti ključ kojim su poruke šifrirane.

2. Poznat otvoreni tekst

Kriptoanalitičar posjeduje šifrat neke poruke, ali i njemu odgovarajući otvoreni tekst. Njegov zadatak je otkriti ključ ili neki algoritam za dešifriranje poruka šifriranih s tim ključem.

3. Odabrani otvoreni tekst

Kriptoanalitičar ima mogućnost odabira teksta koji će biti šifriran, te može dobiti njegov šifrat. Ovaj napad je jači od prethodnoga, ali je manje realističan.

4. Odabrani šifrat

Kriptoanalitičar je dobio pristup alatu za dešifriranje, pa može odabrati šifrat, te dobiti odgovarajući otvoreni tekst. Ovaj napad je tipičan kod kriptosustava s javnim ključem. Tu je zadatak kriptoanalitičara otkriti ključ za dešifriranje (tajni ključ).

(5.) Potkupljivanje, ucjena, krađa i slično

Ovaj napad ne spada doslovno u kriptoanalizu, ali je vrlo efikasan i često primjenjivan u kombinaciji s "pravim" kriptoanalitičkim napadima.

Naravno, možemo se pitati koliko je realno da će kriptoanalitičar biti u prilici primijeniti 2., 3. ili 4. vrstu napada. Na prvi pogled to izgleda dosta nerealno. Međutim, tu treba imati u vidu činjenicu da je kriptoanalitičar već nekako došao u posjed šifrata koji nije bio njemu namjenjen. Dakle, svakako on posjeduje izvjesne sposobnosti koje mu mogu pomoći i oko drugih vrsta kriptoanalitičkih napada.


[Sljedeće poglavlje]   [Sadržaj]
Web stranica kolegija Kriptografija Andrej Dujella - osobna stranica