ocjena kvalitete algoritama za šifriranje

Upload: miroslav-stampar

Post on 08-Jul-2015

838 views

Category:

Documents


1 download

TRANSCRIPT

SVEUILITE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAUNARSTVA

DIPLOMSKI RAD br. 874

Ocjena kvalitete algoritama za ifriranje statistikim testiranjem generatora pseudo-sluajnih brojevaMiroslav tampar

Zagreb, prosinac 2005.

Mentor rada: Doc. dr. sc. Kreimir Fertalj

Voditelj rada: Doc. dr. sc. eljka Mihajlovi

Sadraj Uvod ........................................................................................................................................... 1 1. 2. OPI POJMOVI ................................................................................................................ 2 KRATKA POVIJEST KRIPTOGRAFIJE......................................................................... 5 2.1. 2.2. 2.3. 2.4. 2.5. 3. 3.1. Rani poeci................................................................................................................. 5 Srednji vijek ............................................................................................................... 8 Razdoblje od 1800. g. do poetka II. svjetskog rata .................................................. 9 Drugi svjetski rat ...................................................................................................... 10 Moderno doba .......................................................................................................... 13 Klasini kriptosustavi............................................................................................... 17 Transpozicijski kriptosustavi............................................................................ 17 Supstitucijski kriptosustavi .............................................................................. 20 Znaajniji predstavnici ..................................................................................... 23 Feistelova struktura .......................................................................................... 26 Supstitucijsko-permutacijska mrea................................................................. 28 Blokovski naini rada....................................................................................... 29 Znaajniji predstavnici ..................................................................................... 31 Linearni posmani registar s povratnom vezom .............................................. 36 Znaajniji predstavnici ..................................................................................... 38 Znaajniji predstavnici ..................................................................................... 43 Merkle-Damgrdova struktura ......................................................................... 45 Davies-Meyerova struktura .............................................................................. 46 HMAC.............................................................................................................. 46 Digitalni potpis................................................................................................. 47 Znaajniji predstavnici ..................................................................................... 48 Generator sluajnih brojeva ............................................................................. 50 Generator pseudosluajnih brojeva .................................................................. 51 Kriptografski siguran generator pseudosluajnih brojeva................................ 54 Znaajniji predstavnici ..................................................................................... 54

TEORIJSKE POSTAVKE KRIPTOGRAFIJE................................................................ 17 3.1.1. 3.1.2. 3.1.3. 3.2. 3.2.1. 3.2.2. 3.2.3. 3.2.4. 3.3. 3.3.1. 3.3.2. 3.4. 3.5. 3.4.1. 3.5.1. 3.5.2. 3.5.3. 3.5.4. 3.5.5. 3.6. 3.6.1. 3.6.2. 3.6.3. 3.6.4.

Blokovski kriptosustavi............................................................................................ 25

Nizovni kriptosustavi ............................................................................................... 34

Kriptografija javnog kljua ...................................................................................... 39 Funkcije saetka poruke ........................................................................................... 44

Generatori (pseudo)sluajnih brojeva ...................................................................... 50

4.

PROGRAMSKA PODRKA .......................................................................................... 56 4.1. 4.2. Utility ....................................................................................................................... 56 CryptoLibrary.NET .................................................................................................. 59 Simetrini kriptosustavi.................................................................................... 60 Asimetrini kriptosustavi ................................................................................. 64 Klasini kriptosustavi....................................................................................... 66 Funkcije saetka poruke ................................................................................... 67 Generatori sluajnih brojeva ............................................................................ 68 Generatori pseudosluajnih brojeva ................................................................. 69 Kriptografski sigurni generatori pseudosluajnih brojeva ............................... 71 Statistiki testovi sluajnosti ............................................................................ 73 Programska struktura........................................................................................ 76 ifriranje datoteke ............................................................................................ 79 Deifriranje datoteke ........................................................................................ 84 Raunanje saetaka datoteke............................................................................ 85 Sigurnosno brisanje datoteke ........................................................................... 86 Analiziranje sadraja datoteke ......................................................................... 86 Pregledavanje sadraja datoteke....................................................................... 90 Testiranje brzine............................................................................................... 91 Generiranje sluajnih i pseudosluajnih brojeva.............................................. 92 Statistiko testiranje sluajnosti ....................................................................... 93 Ostalo ............................................................................................................... 94

4.2.1. 4.2.2. 4.2.3. 4.2.4. 4.2.5. 4.2.6. 4.2.7. 4.2.8. 4.3. 4.3.1. 4.3.2. 4.3.3. 4.3.4. 4.3.5. 4.3.6. 4.3.7. 4.3.8. 4.3.9. 4.3.10. 4.3.11. 5. 5.1.

Cipher.NET .............................................................................................................. 75

VREDNOVANJE KRIPTOGRAFSKIH ALGORITAMA ............................................. 95 Statistiki testovi za testiranje sluajnosti................................................................ 97 FIPS.................................................................................................................. 99 NIST ............................................................................................................... 100 5.1.1. 5.1.2. 5.2.

Rezultati empirijskog testiranja.............................................................................. 103

Zakljuak................................................................................................................................ 112 Literatura ................................................................................................................................ 113 Skraenice .............................................................................................................................. 117 Dodatak .................................................................................................................................. 119

Uvodifriranje (engl. encryption) je proces u kojem se sadraj izvornog teksta (ili bilo koje druge informacije) sakriva, odnosno prikazuje na nerazumljiv nain svim osobama, osim onima koji poznaju klju za obrnuti postupak deifriranje (engl. decryption). Kriptografija je znanost koja koristi (prvenstveno) matematike metode u svrhu ifriranja i deifriranja podataka. Kriptografija nam omoguuje pohranjivanje i prijenos "osjetljivih informacija" preko nesigurnih komunikacijskih kanala, bilo to u obliku papirnatog pisama, radio-valova, ili u binarnom obliku preko Interneta, na nain da nitko ne moe proitati sadraj tajne informacije, osim osobe kojoj je ona stvarno namijenjena. Osnovni ciljevi kriptografije su: ouvanje tajnosti podataka podacima smije pristupiti samo za to ovlateno osoblje ouvanje integriteta podataka onemoguuje se neprimjetna promjena podataka provjera identiteta provjerava se da li su stranke u komunikaciji zaista one koje tvrde da jesu osiguranje neosporivosti onemoguuje se sudioniku komunikacije osporavanje svoje prethodne poruke

Kriptografija ima dugu i fascinantnu povijest. Postoje ak podaci da su Egipani prije vie od 4000 godina koristili vlastite kriptografske metode za zatitu informacija. Razdoblje do 20. stoljea pamtimo po brojnim i zanimljivim metodama ifriranja uporabom olovke i papira. Tijekom II. svjetskog rata kriptografija se poela ubrzano razvijati. Jedno od poznatijih kriptografskih postignua tog vremena je bio njemaki kriptografski stroj Enigma. To je bio mehaniki stroj za ifriranje koji je pomou rotora i mehanikih sklopki ifrirao poruke te tako omoguavao Nijemcima da tajno razgovaraju sa svojim vojnim postrojbama. Poetkom 60-ih je sa razvojem elektronikih raunala dolo do sve veih zahtjeva za zatitom informacija, a time i za novim metodama ifriranja. Dok je klasina (primitivna) kriptografija bila u javnoj upotrebi ve dulje vrijeme, raunalna je kriptografija bila u potpunosti u vojnoj domeni jo od II. svjetskog rata. Amerika sigurnosna agencija NSA (engl. krat. za National Security Agency) i njezini pandani u bivem Sovjetskom savezu, Engleskoj, Izraelu, Francuskoj i drugdje, potroili su milijarde dolara na razno razne igre osiguranja svojih komunikacija, dok su pritom eljeli onesposobiti tue. Obian ovjek sa manjom kvantitetom znanja i novaca bio je bespomoan u zatiti svoje privatnosti od takvih vlada. Trenutno je situacija bitno drukija. U dananje doba postoji veliki broj kriptografskih sustava, meu njima i besplatnih, koji omoguuju vrlo visoki nivo kriptografske zatite svakome tko to zaeli. Dodue u nekim dravama (poput SAD-a) i danas postoje zakoni o ogranienju koritenja kriptografskih alata, no sve je to poprilino uzaludan ("Sizifov") trud poto se na Internetu danas mogu pronai programske implementacije gotovo svih kriptografskih metoda. U ovom e radu biti izneena kratka povijest kriptografije, opisane znaajke najvanijih grana kriptografije, predstavljena vlastita raunalna kriptografska aplikacija, te e se na kraju iznijeti rezultati empirijskog istraivanja nad pojedinim vrstama kriptografskih algoritama.

1

1. OPI POJMOVIReverzibilan postupak transformacije podataka iz originalne razumljive u nerazumljivu formu, kao mehanizam zatite tajnosti, integriteta i (ponekad) autentinosti informacije, naziva se ifriranje (engl. encryption), dok se reverzni postupak naziva deifriranje (engl. decryption). Naziv za originalnu formu je izvorna poruka (engl. plaintext), dok se nerazumljiva forma naziva ifrirana poruka (engl. ciphertext). Pri ifriranju poruke koristi se funkcija za ifriranje, dok se kod deifriranja koristi funkcija za deifriranje. U raunalnom argonu, naziv za prvu funkciju je algoritam za ifriranje (engl. encryption algorithm), dok je naziv druge algoritam za deifriranje (engl. decryption algorithm). Funkcija za deifriranje mora biti inverzna funkciji za ifriranje, dok obrat ne mora vrijediti. Par algoritam za ifriranje i algoritam za deifriranje naziva se kriptosustav (engl. cipher). Valja napomenuti da se u literaturi esto izjednaavaju pojam algoritam za ifriranje i pojam kriptosustav, to je naime krivo. Kriptosustav je iri pojam od algoritma za ifriranja, utoliko to se u njemu nalazi jo i algoritam za deifriranje. Nema smisla koristiti algoritam za ifriranje ukoliko ne poznajemo inverzni algoritam, odnosno algoritam za deifriranje. Pri (de)ifriranju se moe koristiti jedan, vie ili nijedan klju. Tijekom (de)ifriranja u kriptosustav ulaze dvije veliine: poruka (izvorna ili ifrirana) i klju (engl. key). Klju se unutar kriptosustava koristi po istom principu kao i u stvarnom svijetu. Prilikom ifriranja klju se koristi kako bi se izvorna poruka "zakljuala", dok se tijekom deifriranja klju koristi kako bi se poruka "otkljuala". Ukoliko klju pri postupku deifriranja ne odgovara ifriranoj poruci ("prostorija sa zakljuanim vratima"), tada se deifriranje smatra neuspjenim. No, ukoliko klju odgovara ifriranoj poruci ("klju odgovara bravi"), tada se poruka iz ifriranog oblika pretvara natrag u izvorni ("itljivi") oblik. U veini kriptosustava, klju za deifriranje mora biti identian koritenom kljuu za ifriranje, no postoji i iznimka. Naime, u tzv. asimetrinim (engl. asymmetrical) kriptosustavima koristi se poseban klju za ifriranje i poseban klju za deifriranje. Klju za ifriranje se naziva javni klju (engl. public key), dok se klju za deifriranje naziva privatni klju (engl. private key). Javni klju se moe dati svakome tko eli s vlasnikom kljua sigurno komunicirati, dok se privatni klju uva u tajnosti. Sigurnost te vrste kriptosustava se zasniva na injenici da je praktiki nemogue iz svima dostupnog javnog kljua dobiti tajni klju zasnovano na nekom tekom matematikom problemu. Postoje takoer kriptosustavi koji ne zahtijevaju uporabu kljueva. Naime, u prolosti se sigurnost nekih kriptosustava zasnivala na tajnosti dizajna, odnosno koritenih algoritama. Ukoliko napada nije poznavao koriteni kriptosustav, tajnost poruke je ostajala sauvanom. Zapravo, na apstraktnoj razini, tajni klju je upravo bio koriteni algoritam za ifriranje. Tko god ga nije poznavao nije mogao deifrirati ifriranu poruku. Dananji kriptosustavi se mogu podijeliti ugrubo na simetrine (gr. symmetria = sklad, jednakost) i asimetrine (gr. asymmetria = nesklad, nejednakost). Za razliku od ve spomenutih asimetrinih kriptosustava, simetrini kriptosustavi zahtijevaju jednakost kljueva za ifriranje i za deifriranje. Simetrini kriptosustavi se mogu dalje podijeliti na blokovske i nizovne. Glavna razlika meu njima je veliina osnovnog elementa poruke nad kojim se vri procesiranje (ifriranje/deifriranje). Nizovni kriptosustavi obrauju binarnu poruku bit-pobit, ili ee bajt-po-bajt, dok blokovski kriptosustavi obrauju podatke u veim skupinama 2

slijednih bitova koji se nazivaju blokovi (npr. skupina od 128 susjednih bitova). Nizovni kriptosustavi su zbog svoje male veliine procesiranog podatka pogodniji sklopovskoj implementaciji, dok su blokovski kriptosustavi pogodniji programskoj implementaciji na dananjim (osobnim) raunalima. Ovdje valja napomenuti jednu vrlo bitnu pojedinost. Pojavom modernih kriptosustava namijenjenih radu na raunalima, promijenio se smisao pojma "klju za ifriranje". Naime, premda se u laikom argonu ustalio pojam tajni klju (engl. secret key) za zapameni niz (abecednih) znakova potrebnu pri (de)ifriranju poruke, to je s teoretskog gledita potpuno krivo. Kod modernih kriptosistema, tajna rije/fraza koja se koristi za zatitu ifrirane poruke naziva se lozinka (engl. password ili passphrase), dok se njezin binarni oblik prilagoen koritenom kriptosustavu naziva klju za ifriranje (engl. cipher-key). Primjerice, niz znakova "miro123" predstavlja lozinku, dok (ovisno o kriptosustavu) klju za ifriranje moe biti npr. 10A4C2F96316. Kriptosustav prima (tekstualnu) korisniku lozinku varijabilne veliine, koja u veini sluajeva nije prikladna za proces (de)ifriranja. Stoga se takav niz znakova pomou posebne funkcije saima ili proiruje, ovisno o eljenoj veliini, u oblik binarnog kljua za ifriranje.

Slika 1.1 Hijerarhijska podjela kriptosustava

Svi kriptosustavi nastali prije pojave prvog modernog kriptosustava Lucifer (mnogi pogreno misle da je prvi moderni kriptosustav zapravo DES (1976.), koji je nastao poslije na temelju upravo Lucifera (1971.)) smatraju se klasinima. Prema svojoj praktinoj izvedbi, klasini kriptosustavi se mogu podijeliti na sustave olovka-papir te na kriptografske strojeve (nastale prije pojave elektronikih raunala); no prema nainu ifriranja poruke, klasini kriptosustavi se dijele na transpozicijske i supstitucijske. Kod transpozicijskih se kriptosustava poruka ifrira premjetanjem pojedinih dijelova poruke, odnosno ispremijeanjem (engl. mixing) slova, dok se kod supstitucijskih vri zamjena pojedinih slova (pandan dananjim nizovnim kriptosustavima), koritenjem neke vrste supstitucijske abecede i/ili tablice. Primjerice, ukoliko klasini kriptosustav poruku ab ifrira u ba tada on (za)sigurno spada u transpozicijski, no ukoliko tu poruku ifrira u vp tada on sigurno spada supstitucijske kriptosustave. Uz kriptosustave, za kriptografiju su od bitnog znaaja i funkcije saetka poruke (engl. hash functions) te generatori (pseudo)sluajnih brojeva. Funkcija saetka na temelju poruke neodreene veliine vraa tzv. saetak (engl. digest), odnosno (brojevni) niz predefinirane veliine, koji ju u potpunosti odreuje. Ukoliko doe do promjene u bilo kojem dijelu poruke, tada e se saetak poruke promijeniti. To je osnovni princip ouvanja integriteta poruke. Kvaliteta funkcije saetka se oituje u njezinoj osjetljivosti na promjenu poruke (broj bitova koji se promjeni u saetku ukoliko se promjeni samo jedan bit poruke) i u otpornosti na tzv. kolizijski napad (engl. collision attack), u kojem se trae dvije razliite poruke s jednakim saecima. 3

Generatori (pseudo)sluajnih brojeva se u kriptografiji dosta esto koriste kod generiranja sluajnih lozinki te kod asimetrinih kljueva. to je generator nepredvidljiviji, to je poeljniji za kriptografsku namjenu; pritom se predvidljivi generatori zaobilaze u irokom luku. Na sreu postoje raunalni testovi nepredvidljivosti, koji usporedbom svojstava generiranog niza brojeva s apstraktnim sluajnim nizom daju ocjenu predvidljivosti koritenog generatora (pseudo)sluajnih brojeva. Naziv za takvu vrstu testova je: "statistiki testovi sluajnosti". U ovom e se radu opisati i uporabiti dvije skupine takvih testova FIPS [41] i NIST [55]. Kvaliteta generatora (pseudo)sluajnih brojeva se oituje u njegovoj nepredvidljivosti za dani dosadanji generirani niz brojeva nemogue je odrediti sljedei generirani broj. U sluaju da je generator (pseudo)sluajnih brojeva dovoljno kvalitetan, odnosno, ukoliko je funkcija saetka dovoljno kvalitetna, tada oni dobivaju prefiks "kriptografski (siguran)". Ovdje bih htio napomenuti da se ovako napisan izraz: "generator (pseudo)sluajnih brojeva", koristi u dva sluaja, s razliitim znaenjima ovisno o kontekstu. Ukoliko se generator (pseudo)sluajnih brojeva nalazi u kontekstu programskih generatora, tada se oznaka (pseudo)sluajan koristi s dozom sarkazma. Naime, do sad nije osmiljen takav algoritam (makar bio i kriptografski), iji se generirani niz ne bi mogao raspoznati u usporedbi s pravim sluajnim nizom (poredba rezultata na statistikim testovima sluajnosti); iako je to injenino stanje, nedovoljno upueni kvazi-strunjaci, koji ele progurati svoj "nema bolje" generator, uporno klasificiraju svoje algoritme/generatore kao "sluajne". Drugi sluaj koritenja je kod smanjivanja obima teksta. Ukoliko se generator (pseudo)sluajnih brojeva nalazi u opem kontekstu generatora brojeva, tada on predstavlja saeti oblik za: "generator sluajnih brojeva ili generator pseudosluajnih brojeva". Od ostalih stvari koje bi ovdje trebalo spomenuti tu je svakako kriptoanaliza (engl. cryptanalysis). Kriptoanaliza je znanost o "zaobilaenju" kriptografske zatite, odnosno, znanost o "nadmudrivanju" kriptografije, dok se za kriptoanalitike metode koristi jo i izraz kriptoanalitiki napadi (engl. cryptanalytic attacks). Kriptoanaliza se moe zamisliti kao "zla mlaa sestrica" kriptografije. Prve kriptoanalitike metode se mogu pronai u enciklopediji "Subh al-asha" Al-Kalka-Shandija (1412.), kao metode za pronalaenje skrivenog znaenja ifriranih poruka. Svrha kriptoanalize je pronalaenje bilo kakve slabosti ili nesigurnosti u kriptografskim dizajnima/shemama. Kriptoanaliza se moe sprovesti od strane napadaa, koji namjerava "probiti" odreenu kriptografsku zatitu, no takoer se moe sprovesti od strane samog dizajnera (ili drugih) kako bi se sam uvjerio u sigurnost vlastitog sustava. Kriptoanalitiki napadi variraju po snazi i prijetnji koju predstavljaju pojedinim kriptografskim metodama. Veina rezultata dananjih kriptoanalitikih istraivanja su zapravo teoretski napadi koji nisu korisni u stvarnoj primjeni. U osnovi, praktina vanost svakog napada ovisi o odgovorima na sljedea tri pitanja: koja su saznanja i sposobnosti potrebni kao preduvjet napadu(?), kolika je dobivena korist(?), te koliko je truda potrebno uloiti u sve to(?). Ukoliko je dobivana korist manja od vrijednosti uloenog truda, tada je lako mogue zakljuiti da napad nema previe smisla (izvoditi). Ukoliko se kao preduvjet napadu trai nerazumno velika koliina poznatih ifriranih poruka (engl. ciphertext-only), tada napad takoer nema prevelikog smisla. Uglavnom, neka opeprihvaena formula za ocjenjivanje ozbiljnosti kriptoanalitikog napada je:Ozbiljnost kriptoanalitikog napada = |Dobivena korist| |Kompleksnost| |Preduvjeti|

pri emu zagrade | | oznaavaju apstraktnu operaciju kvantifikacije. Formula se iitava na sljedei nain: ukoliko je dobivena korist manja od ukupnog uloenog truda (kompleksnost) i potrebne koliine poznatih informacija (preduvjeti), tada se kriptoanalitiki napad smatra neozbiljnim. Gorka je injenica da je veina dananjih kriptoanalitikih napada upravo neozbiljna (tzv. "objavljivanje radi objavljivanja"). 4

2. KRATKA POVIJEST KRIPTOGRAFIJEPovijest kriptografije datira tisuama godina unatrag. Do prolog stoljea, to je bila povijest klasine kriptografije metode ifriranja olovkom i papirom, nekim jednostavnim pomagalom ili strojem. Poetkom 20. stoljea, izumom sloenih mehanikih i elektromehanikih ureaja, poput rotorskog stroja Enigme, omogueno je sofisticiranije i efikasnije ifriranje. Daljnjim izumom elektronikog raunala dolo je do uporabe jo sloenijih kriptografskih metoda. Razvoj kriptografije, znanosti o sakrivanju znaenja poruka, uvijek je bio paralelan s razvojem kriptoanalize, znanosti o otkrivanju sakrivenog znaenja poruka. Pronalazak i primjena frekvencijske analize, u svrhu probijana ifriranog teksta, promijenila je tijek povijesti u mnogo navrata. Pretpostavlja se da je II. svjetski rat skraen za par godina, poto su Saveznici uspjeno deifrirali mnoge poruke Nacistike Njemake. Do 1970. godine, sigurni kriptosustavi su bili uglavnom privilegija dravnih vladara. Dva dogaaja su od tad kriptografiju uinila dostupnu svima: donoenje javnog standarda za ifriranje DES (1976.), te izum kriptografije javnog kljua (takoer 1976.).

2.1. Rani poeciovjek je pokuavao sakriti znaenje poruka otkad je i izumio pismo. Dokaz toj tvrdnji ostao je uklesan u kamenu i zapisan na papirusu, pokazujui nam da su mnoge drevne civilizacije, ukljuujui Egipane, Hebreje i Asirane, razvile svoje kriptografske metode.

Slika 2.1 Poeci kriptografije se mogu pronai u staroegipatskim hijeroglifima

Najstarija poznata upotreba kriptografije moe se pronai u obliku hijeroglifa, uklesanih u staroegipatske spomenike (piramide) stare oko 4500 godina. Premda se hijeroglifi ne smatraju pismom ija je namjena bila tajna komunikacija, pokuaji njihovih tvoraca da u svoje uklesane tekstove unesu dozu mistinosti smatraju se poecima kriptografije. 5

Hebrejski su uenjaci, oko 600. g. pr. Kr., koristili jednostavan monoalfabetski supstitucijski kriptosustav, poznat pod imenom Atbash. Sastojao se od zamjene prvog slova hebrejskog pisma "( alef"), s zadnjim slovom "( tav"), drugog slova "( bet"), s predzadnjim slovom "( shin"), itd. obrtanje slova hebrejske abecede. Spartanci su 400. g. pr. Kr. koristili kriptografsko pomagalo nazvano Scytale, kako bi slali tajne poruke izmeu svojih vojskovoa. Sastojalo se od podebljeg tapa oko kojeg se namatao komad papirusa (ili ivotinjske koe) s napisanom porukom. Jednom kad bi se papirus odmotao sa tapa, poruka bi bila neitljiva, no ukoliko bi se namotao na tap jednakih dimenzija, izvorna poruka bi ponovno postala itljiva.

Slika 2.2 Kriptografsko pomagalo Scytale

Prvi transpozicijski kriptosustav se spominje u djelu Grka Aeneas Tacticusa "O obrani utvrda", koje datira iz razdoblja 4. st. pr. Kr. Jo je jedan Grk, Polybius, (poslije) izumio kriptosustav za ifriranje slova u parovima pomou pomagala poznatog pod imenom "Polybiusova ploa", koje je sadravalo mnoga svojstva kasnijih kriptosustava. Osim kod Grka, postoje slini oblici primitivnih supstitucijskih te transpozicijskih kriptosustava i kod drugih civilizacija tog doba. Polybiusova ploa je sadravala 24 slova grkog alfabeta, rasporeenih u tablinom obliku veliine 5x5. Svako se slovo izvorne poruke pretvaralo u broj s dvije znamenke, pri emu je prva znamenka predstavljala stupac, dok je druga znamenka predstavljala redak u kojem se slovo moglo pronai na ploi. Tako se prvo slovo grkog alfabeta ("alfa") pretvaralo u broj 11, dok se drugo slovo ("beta") pretvaralo u broj 12, i tako redom. Herodot u svojim djelima spominje tajne poruke fiziki sakrivene ispod voska na drvenom stolu, ili u obliku tetovae na glavi roba sakrivene pod kosom. Premda je ovo prije primjer sakrivanja poruke (znanost steganografija), nego sakrivanja njenog sadraja (znanost kriptografija), stari Rimljani su ipak poznavali i odreene metode ifriranja. Cezarov kriptosustav je jedan od najjednostavnijih i najpoznatijih izumljenih kriptosustava ikad. Nazvan je po rimskom vojskovoi Gaju Juliju Cezaru, koji ga je koristio kako bi tajno komunicirao sa svojim generalima. U njemu se svako slovo izvorne poruke zamjenjuje sa pripadnim slovom na fiksno udaljenoj poziciji u abecedi. Tako primjerice, ukoliko je ta udaljenost jednaka 3 (koritena u originalnom Cezarovom kriptosustavu), slovo A se zamjenjuje sa slovom D, B postaje E, itd. U Indiji je kriptografija takoer bila poznata u staro doba (oko 500. godine). Primjerice, ifriranje se spominje djelu "Kama Sutra", kao preporuena tehnika tajne komunikacije meu ljubavnicima. Kriptografija ima dugu tradiciju u djelima vjerskog karaktera, koja su u to doba lako mogla uvrijediti dominantnu kulturu i/ili trenutnu politiku vlast. Po tom pitanju, moda je najpoznatiji pojam "Broj Zvijeri" iz "Knjige Otkrivenja" u Kranskom Novom Zavjetu. Pretpostavlja se da je taj famozni broj 666 vjerojatno predstavljao ifrirani oblik neke opasne 6

poruke za to doba; mnogi uenjaci vjeruju da se iza tog broja krije pokazatelj na Staro Rimsko Carstvo, ili to je jo vjerojatnije, na Rimskog cara Nerona, koji je sustavno progonio Krane u 1. st.

Slika 2.3 Jedno od tumaenja znaenja mistinog biblijskog broja 666

Od poznatijih vjerskih spisa, ovdje takoer spada i idovska sveta knjiga "Tanakh", za koju pripadnici vjerske sekte "Qabbala" (idovski misticisti) smatraju da je sva ispunjena skrivenim znaenjem, ije potpuno "razumijevanje" vodi k sjedinjenju s Bogom.

Slika 2.4 idovska sveta knjiga Tanakh

7

2.2. Srednji vijekArapi su prvi postavili temelje kriptografije kao znanosti, te su meu prvima poeli primjenjivati kriptoanalike metode za pronalaenje sakrivenog znaenja unutar ifrirane poruke. Osmislili su i koristili vlastite supstitucijske i transpozicijske kriptosustave. Al-KalkaShandi je 1412. godine u svojoj enciklopediji Subh al-asha opisao nekoliko kriptosustava, te je takoer dao vrlo jasne upute (s jednostavnim primjerima) kako kriptoanalizirati ifriranu poruku koritenjem frekvencije slova. Vjerski motivirana tekstualna analiza Kurana je vjerojatno dovela do otkria frekvencijske analize, tehnike za probijanje monoalfabetskih supstitucijskih kriptosustava. To je zasigurno bilo najvee otkrie na podruju kriptoanalize sve do II. svjetskog rata. U sutini su svi (klasini) kriptosustavi bili ranjivi na ovu kriptoanalitiku tehniku, do izuma prvog polialfabetskog kriptosustava (1465.) od strane Leone Battista Albertia. Za vrijeme Srednjeg vijeka, u Europi se kriptografija pojavljuje u talijanskim gradovima drav(ic)ama. Najraniji kriptosustavi tog razdoblja su koristili samo zamjenu samoglasnika, dok su suglasnici ostajali nepromjenjeni. Oko 1379. godine, Gabriele de Lavinde od Parme je napisao prvi europski kriptografski prirunik, koji je sluio Papi Clementu VII. Prirunik je sadravao popis svih moguih kljueva, zamjenskih simbola za slova izvorne poruke, te skraenice za neke rijei i imena, koje je mogao koristiti svatko tko je htio sakriti pravo znaenje vlastite poruke. Leon Battista Alberti je 1470. godine opisao svoj vlastiti izum kriptografski disk, u djelu "Trattati in cifra", dok je Blaise de Vigenre 1586. godine u djelu "Traict de chiffres" opisao kriptografsku tablicu autora Giovan Batista Belasa, ije se zasluge za otkrie pripisuju zabunom Vigenreu. Vjerojatno najsofisticiraniji kriptosustav tog doba, predstavio je Giovanni Battista della Porta u svom djelu "De Furtivis Literarum Notis" (lat. za "O sakrivanju znakova pri pisanju"), u kojem se koristi za to doba vrlo napredna vieabecedna zamjena (engl. polyalphabetic substitution),

Slika 2.5 Kriptografski disk Giovanni Battiste della Porte

8

Kriptografija je postala jo bitnija kao posljedica politikih previranja i vjerskih revolucija. Tako na primjer u Europi tijekom i poslije kulturno-umjetnikog pokreta Renesanse dolazi do ubrzanog napretka kriptografije. No, novi kriptosustavi nisu bili ni upola toliko sigurni kao to su za njih to tvrdili njihovi izumitelji. Ta preoptimistinost je jedna od negativnih ostavtina klasine kriptografije te je i dandanas teko utvrditi/saznati koliko je uistinu (ne)siguran pojedini kriptosustav. Za razliku od Europe i Bliskog Istoka, u ostalim je dijelovima Svijeta kriptografija dosta vremena bila u veoma zakrljaloj fazi. Tako se primjerice u Japanu kriptografija nije upotrebljavala sve do 1510. godine, dok (im) napredne kriptografske tehnike nisu bile poznate sve do "otvaranja" zemlje Zapadu 1860. godine.

2.3. Razdoblje od 1800. g. do poetka II. svjetskog rataIako kriptografija ima dugu i bogatu povijest, tek je u 19. stoljeu zapoet razvoj prvih sloenih kriptosustava i napredne kriptoanalize. U to doba su Charles Babbage i Friedrich Kasiski izumili vlastite kriptoanalitike metode koje se i dandanas upotrebljavaju. Poznato je da su se tijekom Amerikog graanskog rata ifrirale mnoge poruke. Dok su snage Konfederacije koristile (za to doba slabi) Vigenreov kriptosustav, snage Unije su koristile supstituciju odabranih rijei (tzv. kodove), za kojom je slijedila stupasta transpozicija. Snage Konfederacije su (za razliku od snaga Unije) bile toliko neefikasne i oajne u probijanju ifriranih neprijateljskih poruka, da su u svim dnevnim novinama molili svoje graane da im pomognu u vlastitim nastojanjima.

Slika 2.6 Kriptografska knjiica s kodovima koritenim tijekom Amerikog graanskog rata

Pisac Edgar Allan Poe je u dananje vrijeme poznat po svojim slavnim (gotikim,"mranim") pjesmama, dok je manje poznat po svojoj neskrivenoj ljubavi prema kriptografiji i kriptoanalizi. Sustavno je razvijao vlastite kriptoanalitike metode s kojima je rjeavao brojne ifrirane zagonetke 1840-tih. ak je i objavio lanak u tjedniku "Alexander's Weekly (Express) Messenger" u kojima je pozvao sve itatelje da mu alju vlastite ifrirane poruke, koje je on potom (s lakoom) rjeavao. Stoga je vrlo brzo postao slavan po svojim kriptoanalitikim sposobnostima. Poslije je napisao djelo u kojem je objasnio svoje metode "probijanja" ifriranih poruka, koje su se poslije pokazale vrlo korisnima kod deifriranja njemakih poruka tijekom I. svjetskog rata. 9

Slika 2.7 Jedna od dvije ifrirane poruke koje E. A. Poe nikad nije uspio rijeiti

Kriptografske metode su se ubrzano razvijale u doba neposredno prije II. svjetskog rata. Meu (naj)znaajnijim predstavnicima tog razdoblja su bili William F. Friedman, sa svojim radom na primjeni statistikih tehnika za potrebe kriptoanalize, te Marian Rejewski, s prvim uspjenim probijanjem njemakog kriptografskog stroja Enigme. Od tad su kriptografija i kriptoanaliza postale matematiki (vrlo) orijentirane.

2.4. Drugi svjetski ratDo II. svjetskog rata, mehaniki i elektromehaniki kriptografski strojevi su se poeli masovno koristiti u vladine svrhe, premda, gdjegod su bili nepraktini za uporabu, tamo je nastavljena uporaba dotadanjih manualnih sistema. U to doba je dolo do velikog napretka u probijanju kriptosustava, to se dralo u velikoj tajnosti. Podaci iz ovog perioda su se poeli "otkrivati" tek nakon pedesetak godina. Tajne arhive Britanije i SAD-a poele su se polako otvarati, te su na vidjelo doli brojni pisani memoari i lanci na tu temu. Nacisti su u to doba koristili nekoliko varijanti elektromehanikog rotorskog stroja poznatog pod imenom Enigma. Poljski matematiar Marian Rejewski je, radei za poljski Odjel za ifriranje (engl. Cipher Bureau), u prosincu 1932. rekonstruirao Enigmu Njemake vojske, koristei matematike metode i vrlo turu dokumentaciju koju mu je priskrbio Kapetan 10

Gustave Bertrand iz Francuske vojno-obavjetajne slube. Ovo je bilo najvee kriptoanalitiko otkrie u dotadanjoj povijesti kriptografije. Rejewski, te njegove kolege Jerzy Rycki i Henryk Zygalski, uli su su korak s evolucijom stroja i promjenama u postupku ifriranja, sve do poetka rata 1939. Tad su, zbog nacistike invazije na Poljsku, svi rezultati rada na probijanju Enigme predani u ruke britanskim i francuskim obavjetajnim krugovima.

Slika 2.8 Njemaki kriptografski stroj Enigma

Netom nakon izbijanja II. svjetskog rata 1. rujna 1939. godine, svi kljuni ljudi iz poljskog "Odjela za ifriranje" evakuirani su malo jugoistonije. 17. rujna 1939. godine, preko Sovjetskog saveza i Rumunjske, napokon su doli u Pariz (Francuska). U mjestacu PC Bruno, neposredno pored Pariza, nastavili su s radom na probijanju Enigme, no ovaj put u suradnji s britanskim kriptoanalitiarima iz Bletchley Parka, koji su ih naposljetku i prestigli u vlastitim istraivanjima. Tijkom dogaaja, britanski kriptoanalitiari, meu kojima su se posebno isticali Gordon Welchman i Alan Turing (konceptualni zaetnik modernog raunarstva), nadgradili su i poboljali tehnologiju probijanja Enigme. Kriptografi Amerike mornarice (engl. US Navy) su, u suradnji s britanskim i nizozemskim kriptografima, nakon 1940. godine probili nekoliko kriptosustava Japanske mornarice. Posebice, probijanje jednog od njih JN-25 dovelo je do slavne pobjede u bitci kod Midway atola (engl. Battle of Midway) na Pacifiku. Odjel amerike vojske, SIS (engl. krat. za Signals Intelligence Service), uspio je probiti kriptosustav japanske diplomacije, elektromehaniki stroj poznat pod imenom Purple, ak i prije nego to je zapoet II. svjetski rat. Amerikanci su za sve probijene poruke, posebice stroja Purple, koristili kodno ime Magic, dok su Britanci koristili kodno ime Ultra (prethodna verzija Boniface), posebice za stroj Enigma. Jedna od zanimljivosti tog doba jest ta da su Japanci u tom bezkrupuloznom 11

obavjetajnom ratu izvukli najdeblji kraj. Naime, smatra se da su amerike snage sve japanske pokuaje za ouvanjem tajnosti vlastite komunikacije vie-manje osujetili.

Slika 2.9 Japanski kriptografski stroj Purple

Njemaka vojska je takoer napravila nekoliko mehanikih strojeva za praktinu izvedbu teoretski neprobojnog tzv. kriptosustava jednostruko ifrirajueg niza (engl. one-time pad). Britanski kriptoanalitiari iz Bletchley Parka su te pokuaje nazivali Fish kriptosustavima. Max Newman je sa svojim kolegama, u tu svrhu, dizajnirao i konstruirao prvo programabilno elektroniko raunalo na svijetu Colossus, kako bi im pomoglo u kriptoanalizi. Njemako Ministarstvo vanjskih poslova je zapoelo s upotrebom Fish kriptosustava jo 1919. godine; neke od poruka ifrirane ovim kriptosustavom su uspjeno probijene tijekom II. svjetskog ratu, to je uglavnom rezultat prethodne nabave starog koritenog kljua, koji je nepanjom ostavio (neki) njemaki glasnik u Junoj Americi. Saveznici su u II. svjetskom ratu koristili britanski kriptografski stroj TypeX te ameriki stroj SIGABA. Obadva su stroja bila elektromehanika (s rotorima), dizajnirani po uzoru na njemaku Enigmu, no sa znatnim poboljanjima. Do danas nije poznat nijedan sluaj probijanja ijednog od njih tijekom rata. Poljske snage su koristile vlastiti stroj Lacida, no poto su naknadno pronaeni bitni sigurnosni nedostatci, prestali su s njegovom daljnjom uporabom. Terensko osoblje je koristilo strojeve iz porodice M-209 i neto manje sigurne M94. Britanski SOE (engl. krat. za Special Operations Executive) tajni agenti su u poetku koristili tzv. "kriptosustav pjesme" (engl. poem cipher), u kojem se kao tajni klju koristila 12

zapamena pjesma, no kasnije su se tijekom rata prebacili na kriptosustav jednostruko ifrirajueg niza.

Slika 2.10 Ameriki kriptografski stroj SIGABA

2.5. Moderno dobaDoba moderne kriptografije vjerojatno zapoinje s Claude Shannonom, po mnogima, ocem matematike kriptografije. 1949. godine objavio je lanak: "Komunikacijska teorija tajnih sistema" (engl. "Communication Theory of Secrecy Systems"), te nedugo zatim knjigu: "Matematika teorija komunikacije" (engl. "Mathematical Theory of Communication"). Ovim dvjema knjigama je, zajedno s njegovim ostalim radom na podruju teoriji informacije i komunikacije, postavio vrstu teoretsku osnovicu moderne kriptografije i kriptoanalize. Nakon toga je kriptografija mahom nestala u tajnim organizacijama poput amerikog NSA (engl. krat. za National Security Agency). Vrlo se malo toga "serviralo" javnosti sve do sredine 1970-ih, kada se dosta toga promijenilo. Sredinom 1970-ih su se dogodila dva velika dogaaja koja su u potpunosti promijenila daljnji tijek "javnog" koritenja kriptografije. Prvi dogaaj je bio objava prijedloga "Standarda za ifriranje podataka", poznatog pod svojim akronimom DES (engl. krat. za Data Encryption Standard), 17. oujka 1975. godine. Prijedlog standarda je poslan iz ureda IBM-a, na poziv Nacionalnog ureda za standarde (engl. krat. NIST National Institute of Standards and Technology) SAD-a, u svrhu razvoja sigurnosne osnove za komunikacijske potrebe banaka i ostalih velikih financijskih organizacija. Poslije "savjeta" i manjih promjena od strane NSA-a, standard je prihvaen 1977. godine (zanimljivo je da se za njegov "roendan" slubeno uzima 1976. godina sredina izmeu 1975. i 1977. godine). DES je prvi javno dostupan kriptosustav koji je dobio "blagoslov" neke svjetske sigurnosne agencije (konkretno od NSA). Javna objava DES-a rezultirala je nevienom eksplozijom interesa za kriptografijom, unutar javne i akademske zajednice. 13

DES je dizajniran, izmeu ostalog, kako bi bio otporan na odreenu vrstu kriptoanalitikih napada, u to doba poznatate samo NSA-u. Taj tip napada je danas poznat pod imenom diferencijalna kriptoanaliza, te se smatra kao jedan od rijetkih openitih kriptoanalitikih napada usmjerenih protiv (svih) blokovskih kriptosustava. Mnogi su promatrai 1970.-ih kritizirali veliinu kljua od (samo) 56 bita; naime, smatrali su da je premala. Kako je vrijeme prolazilo, tako su i nedostaci postajali sve oitiji, posebice nakon pojave specijaliziranog raunala za probijanje DES-a. Organizacija EFF (engl. krat. za Electronic Frontier Foundation) je 1998. godine svijetu predstavila raunalo "DES Cracker" (engl. za "Probija DES-a"). Izrada je ukupno trajala godinu dana, dok je cijeli projekt kotao oko 220.000$. Raunalo je na demonstraciji uspjelo u 56 sati razbiti poruku ifriranu DESom. Sadravalo je 1536 specijaliziranih tzv. "Deep Crack" ipova, koji su zajedno mogli testirati oko 88 milijardi DES (moguih) kljueva u sekundi. Slinih prijedloga za izradom ove vrste raunala bilo je i ranije, no ljudi u EFF-u su prvi to proveli u djelo. Tek nakon izrade DES Crackera moglo se definitivno ustvrditi da DES nije siguran kriptosustav.

Slika 2.11 Specijalizirani ip namijenjen probijanju DES ifriranih poruka

DES je 2001. godine slubeno zamijenjen "Naprednim standardom za ifriranje", poznatog pod svojim akronimom AES (engl. krat. za Advanced Encryption Standard). Poslije otvorenog natjeaja, organizacija NIST je izabrala kriptosustav Rijndael, djelo dvaju belgijskih kriptografa Joan Daemen i Vincent Rijmena, kao novi standard AES. DES, kao i njegove sigurnije varijante (poput 3DES i TDES-a), su jo uvijek u uporabi; sadrani su u mnogim nacionalnim i organizacijskim standardima. Danas se izvorni DES kriptosustav smatra (bez sumnje) nesigurnim za praktinu uporabu, te su takoer i sve dosad DES ifrirane poruke pod rizikom. Drugi, moda i bitniji dogaaj modernog doba, zbio se 1976. godine, kada su Whitfield Diffie i Martin Hellman objavili lanak "Novi smjerovi u kriptografiji" (engl. "New Directions in Cryptography"). U njemu su detaljno opisali radikalno novu metodu, kojom se pokuao rijeiti fundamentalni problem kriptografije distribucija kljueva; ta metoda je postala kasnije poznata kao Diffie-Hellmanova metoda razmjene (kriptografskih) kljueva. lanak je gotovo trenutno potaknuo razvoj novog razreda kriptosustava tzv. "kriptosustava s asimetrinim kljuem".

14

Do tog vremena, svi praktini kriptosustavi su bili simetrini, odnosno, isti (tajni) klju se koristio i kod ifriranja i kod deifriranja poruke. Svi kriptografski elektromehaniki strojevi koriteni tijekom II. svjetskog rata pripadaju ovoj vrsti kriptosustava, kao i svi klasini kriptosustavi; u osnovi, svi kriptosustavi koriteni do 1976. godine, spadaju u ovaj razred kriptosustava. Klju u svakom takvom kriptosustavu mora biti distribuiran izmeu komunikacijskih strana na neki predefinirani nain, preko tzv. "sigurnog kanala" (engl. secure channel) poput vjernog dostavljaa ili osobnog kontakta (sastanak "u etiri oka"). Praktina provedba ovog zahtjeva nikad nije trivijalna i vrlo brzo postaje (skoro) nemoguom kako se poveava broj komunikacijskih strana, te ukoliko se koriteni klju esto mijenja. Diffie-Hellmanova metoda razmjene kljueva omoguila je laki i sigurniji nain funkcioniranja kriptosustava, nego to je to bilo ikad prije mogue. U suprotnosti, kod asimetrinih kriptosustava postoji par matematiki povezanih kljueva, pri emu se jedan koristi kod ifriranja, dok se drugi koristi kod deifriranja. U veini se sluajeva klju za ifriranje moe dati u javnost svima, dok se klju za deifriranje uva u tajnosti. Klju za ifriranje se (uobiajeno) naziva javni klju (engl. public key), dok se klju za deifriranje naziva privatni klju (engl. private key); stoga su asimetrini kriptosustavi poznati i pod imenom kriptosustavi javnog kljua. Bitno je napomenuti da se sigurnost asimetrinog kriptosustava zasniva na nekom matematikom problemu u kojem je mogue na jednostavan nain iz jedne veliine (u naem sluaju privatnog kljua) izvesti drugu veliinu (u naem sluaju javni klju), no obrat praktiki nije mogu zbog teine obrata problema. Kod asimetrinih kriptosustava, potreban je samo jedan par kljueva po primaocu poruke (bez obzira na broj poiljatelja), poto se posjedovanjem javnog kljua ne kompromitira sigurnost poslanih poruka. To vrijedi sve dok primaoev (tajni) privatni klju nije poznat napadau. Ovim (zauujue) korisnim svojstvom, ujedno se poveala i praktinost i sigurnost (inae praktiki nespojivih pojmova) modernih kriptografskih aplikacija. Kriptografija javnog kljua je razvijana i prije 1976. godine, i to u britanskoj obavjetajnoj agenciji GCHQ (engl. krat. za Government Communications Headquarters). Razni (tada) povjerljivi dokumenti su kasnije doli na vidjelo javnosti te se iz njih jasno moe zakljuiti da se asimetrina kriptografija razvijala iza oiju javnosti (uvijek jedan korak ispred). Zbog toga se danas smatra da su zapravo pravi izumitelji kriptografije javnog kljua zapravo ljudi koji su u to doba radili za GCHQ: James Ellis, Clifford Cocks i Malcolm Williamson. Dok se neki moderni kriptosustavi (poput AES-a) smatraju "neprobojnima" (engl. unbreakable), lo dizajn (glavni krivac zbog kojeg je dolo do znaajnih kriptoanalitikih proboja) je i dalje najvei sigurnosni problem. Pratei primjeri su: kriptosustav WEP (engl. krat. za Wired Equivalent Privacy) koriten u Wi-Fi tehnologiji, kriptosustav CES (engl. krat. za Content Scrambling System) koriten kod zatite DVD filmova od kopiranja, te A5/1 i A5/2 kriptosustavi koriteni u GSM mobilnim ureajima. Nadalje, nijedna matematika ideja na kojoj se baziraju kriptosustavi javnog kljua nije dokazano "neprobojna", te bi se u budunosti neki od njih mogli proglasiti nesigurnima. Najbolji primjer je (izumrli) MerkleHellmanov Knapsack kriptosustav javnog kljua, koji se bazirao na problemu podsuma niza (engl. subset-sum problem). Sve je savreno funkcioniralo dok se nisu umijeali kriptoanalitiari poput: Eier i Laggera, te Desmedt, Vandewalle i Govaertsa. U svojim su radovima iznijeli vrlo bitna zapaanja o (ne)sigurnosti ovog kriptosustava. Posljedino je nakon toga A. Shamir objavio krucijalni lanak: "Algoritam polinomnog vremena namijenjen probijanju osnovnog Merkle-Hellman kriptosustava" (engl. "A Polynomial Time Algorithm for Breaking the Basic Merkle-Hellman Cryptosystem"), u kojem je "zabijen zadnji avao u lijes" Merkle-Hellmanovog kriptosustava. 15

Predloene veliine koritenih kljueva u kriptosustavima se poveavaju proporcionalno s isplativou procesorske snage, te sa matematikim napretkom poput pronalaska novih i brih metoda za faktorizaciju velikih cjelobrojnih vrijednosti. Iz svega ovoga se moe zakljuiti da je natjecanje izmeu dizajnera kriptosustava i kriptoanalitiara jo daleko od svretka.

16

3. TEORIJSKE POSTAVKE KRIPTOGRAFIJE3.1. Klasini kriptosustaviU klasine kriptosustave spadaju svi kriptosustavi (iz prolosti) koji se vie ne koriste (bar ne u praktine svrhe). Openito, klasinim se kriptosustavima obrauju tekstualne poruke pisane abecednim slovima. Primjenjuju se uporabom olovke i papira, ili pomou nekog jednostavnog mehanikog stroja. U suprotnosti, moderni kriptosustavi se implementiraju na raunalima i namijenjeni su obradi binarnih poruka. Klasini kriptosustavi su posebice ranjivi na kriptoanalitiki napad poznavanjem samog ifriranog teksta (engl. ciphertext-only attacks), ponekad i bez poznavanja tipa kriptosustava, koritenjem kriptoanalitikih metoda poput frekvencijske analize. Ponekad se u klasine kriptosustave svrstavaju i napredniji mehaniki i/ili elektromehaniki kriptografski strojevi, poput njemake Enigme. Klasini kriptosustavi se uobiajeno dijele na transpozicijske i supstitucijske. Kod supstitucijskih kriptosustava, slova se izvorne poruke (ili grupe slova) sustavno zamjenjuju sa pripadnim zamjenskim slovima, tzv. supstitutima. Kod transpozicijskih kriptosustava, sama slova ostaju nepromijenjena, dok se njihov poredak mijenja na neki predefinirani nain. Napredniji se kriptosustavi mogu dobiti kompozicijom supstitucije i transpozicije, ime se dobiva tzv. produktni kriptosustav (engl. product cipher). Tako primjerice, moderni blokovski kriptosustav DES vri nekoliko uzastopnih ponavljanja supstitucije i transpozicije, to je dokaz da moderni kriptosustavi imaju svoje temelje upravo u klasinim kriptosustavima.

3.1.1.

Transpozicijski kriptosustavi

Transpozicijski kriptosustav kod ifriranja uzima slova izvorne poruke i mijenja njihov raspored kako bi se dobio ifrirani oblik. Kod deifriranja se koristi obrnuti postupak. Matematikim argonom govorei, prilikom ifriranja se koristi bijektivna funkcija, dok se kod deifriranja koristi inverzna funkcija, nad pozicijama pojedinanih slova. Railfence U railfence (engl. za "pruna ograda") kriptosustavu, izvorni tekst se prilikom ifriranja zapisuje u izmjenjujuem (engl. alternating) dijagonalnom obliku. ifrirana poruka se dobiva iitanjem poruke po pojedinim retcima. Primjerice, ukoliko se koriste tri pruge/retka, tada se poruka "NAPAD U ZORU" ifrira na sljedei nain: 1. Uklanjanju se svi znakovi interpunkcije i mogue praznine, te se takva poruka zapisuje u obliku jednog dugakog niza:NAPADUZORU

2. Poruka se potom zapisuje u izmjenjujuem dijagonalnom obliku:N A A U O U P Z D R

17

3. Na posljetku se ifrirana poruka dobiva iitanjem slova po retcima iz prethodnog dijagonalnog oblika:NDRAAUOUPZ

Route U route (engl. za "put") kriptosustavu, izvorni tekst se zapisuje u tablinom obliku predefiniranih dimenzija, te se potom sva slova (iz takve tablice) iitavaju po nekom zadanom redoslijedu/putu. Primjerice, ukoliko je izvorna poruka "NAEMO SE NA TRGU BANA JELAIA U DEVET SATI", te ukoliko je je dogovoreni redoslijed itanja poruke "spiralno u smjeru kazaljke na satu, poevi od gornjeg-desnog slova", tada se ifriranje izvodi na sljedei nain: 1. Uklanjanju se svi znakovi interpunkcije i mogue praznine, te se takva poruka zapisuje u obliku jednog dugakog niza:NAEMOSENATRGUBANAJELAIAUDEVETSATI

2. Poruka se potop zapisuje po stupcima (u npr. tri retka):NESAGAJADEA AMETUNEAETT ONRBALIUVSI

3. Na posljetku se ifrirana poruka dobiva iitavanjem po dogovorenom redoslijedu:ATISVUILABRNOANESAGAJADETEAENUTEM

Stupasta transpozicija Kod stupaste transpozicije (engl. columnar transposition), izvorna se poruka zapisuje u retke fiksne duljine, te se potom iitava (iz dobivenog oblika) stupac po stupac, pri emu se duljina redaka i redoslijed itanja stupaca odreuje po zadanom kljuu. Na primjer, ukoliko je dogovoren tajni klju "DRVO", tada je duljina redaka jednaka 4 (duljina kljua), te je redoslijed itanja stupaca: 1 3 4 2 (abecedni redoslijed slova kljua). Izvorna poruka "OTKRIVENI STE. BJEITE KUDA VAS NOGE NOSE." se ifrira na sljedei nain: 1. Uklanjanju se svi znakovi interpunkcije i mogue praznine, te se takva poruka zapisuje u obliku jednog dugakog niza:OTKRIVENISTEBJEITEKUDAVASNOGENOSE

Iregularna stupasta transpozicija 2a.Niz dobiven u prethodnom koraku zapisuje se u retke duljine kljua:OTKR IVEN ISTE BJE ITEK UDAV ASNO GENO SE

18

3a. ifrirana poruka se dobiva iitavanjem gornjeg oblika po retcima, redoslijedom odreenom po kljuu:OIIBIUAGSTVSJTDSEEKETEEANNRNEKVOO

Regularna stupasta transpozicija 2b.Niz dobiven u prethodnom koraku zapisuje se u retke duljine kljua, s time da se zadnji redak, ukoliko je nepotpun, proizvoljno nadopunjuje:OTKR IVEN ISTE BJE ITEK UDAV ASNO GENO SEKJ

3b. ifrirana poruka se dobiva iitavanjem gornjeg oblika po retcima, redosljedom odreenom po kljuu:OIIBIUAGSTVSJTDSEEKETEEANNKRNEKVOOJ

Dvostruka transpozicija Jednostruka stupasta transpozicija se moe kriptoanalitiki napasti pogaanjem mogue duljine koritenog kljua, kombinirajuim zapisivanjem poruke po stupcima, te traenjem moguih anagrama. Kako bi se napadau posao dodatno oteao, obino se koristi(la) dvostruka transpozicija. Dvostruka transpozicija je nita drugo doli dvostruka primjena jednostruke transpozicije. Moe se koristiti isti klju u oba sluaja, premda je sigurnija varijanta s dva razliita kljua. Ovaj kriptosustav se dosta koristio tijekom I. svjetskog rata, i to posebice kod Njemake vojske. No, kako su Francuzi bili u stanju probiti ovaj kriptosustav u roku od par dana, za bilo koji koriteni klju(!), Nijemcima nije trebalo dugo vremena kako bi prestali s njegovom daljnjom uporabom. Tijekom II. svjetskog rata koristio ga je Nizozemski pokret otpora, te (neke) britanske i francuske tajne slube. Do otkria VIC kriptosustava, dvostruka transpozicija je smatrana kao jedna od najoptimalnijih kriptosustava koje je korisnik (tajni agent) mogao primjeniti u tekim terenskim uvjetima. Poremeena transpozicija Kod ove se vrste transpozicije pojedina polja u matrici transpozicije ostavljaju namjerno nepopunjenim tijekom popunjavanja izvornom porukom. Na ovaj se nain donekle razbijaju prepoznatljivi anagrami, to dodatno oteava posao kriptoanalitiarima. Detekcija i kriptoanaliza Poto transpozicija sama po sebi ne mijenja frekvenciju pojavljivanja pojedinih slova, njezina se primjena (u veini sluajeva) moe jednostavno prepoznati prebrojavanjem slova i usporedbom dobivene frekvencije s uobiajenom frekvencijom koritenog prirodnog jezika. Ukoliko je uoeno koritenje transpozicije, tada slijedi kriptoanalitiki napad anagramiranjem, u kojem se komadi teksta premjetaju naokolo sve dok se ne prepoznaju pojedini anagrami (gr. anagramma "premetaljka"), koji se potom rjeavaju. Jednom kad je anagram pronaen i rijeen, tada se kriptosustav praktiki smatra probijenim. 19

Jednostavnije varijante transpozicije takoer imaju tzv. "problem slinih kljueva". Naime, ukoliko se pri kriptoanalitikom napadu isproba deifriranje kljuem slinim pravom kljuu, tada e se moi jasno razaznati jedan dio poruke koji je uspjeno deifriran, dok e ostatak poruke biti popunjen neitljivim tekstom slijedi daljnje isprobavanje "slinih" kljueva. Kombiniranje i razdjeljivanje Transpozicija se esto koristi u kombinaciji s drugim kriptografskim tehnikama. Tako se na primjer koritenjem jednostavne supstitucije u kombinaciji sa stupastom transpozicijom izbjegavaju njihove pojedinane slabosti. Tako se slabost supstitucije na frekvencijsku kriptoanalizu znatno smanjuje stoga to se transpozicijom raspruje struktura izvorne poruke, dok se slabost transpozicije na anagramiranje smanjuje stoga to se supstitucijom sakrivaju uoljivi anagrami. Glavni nedostatak kombiniranja je znatno poveanje posla te poveanje mogunosti ljudske pogreke kod ifriranja poruke. Ova tehnika je posebno djelotvorna ukoliko se koristi zajedno s razdjeljivanjem (engl. fractionation), gdje se svako slovo izvorne poruke proiruje na nekoliko slova. Najpoznatija i najee koritena metoda razdjeljivanja je prevoenje izvorne poruke u Morseovu abecedu. Kada se nad takvom (proirenom) porukom izvri transpozicija, elementi pojedinih slova se raspruju po cijeloj ifriranoj poruci. Na ovaj nain rade kriptosustavi poput Bifid, Trifid, ADFGVX i VIC kriptosustava.

3.1.2.

Supstitucijski kriptosustavi

Kod supstitucijskih se kriptosustava prilikom ifriranja uzima jedno ili vie slova izvorne poruke, te se potom vri zamjena s odreenim zamjenskim (supstitucijskim) parom po nekom zadanom pravilu. U usporedbi s transpozicijskim kriptosustavom, supstitucijski kriptosustav ostavlja strukturu originalne poruke nepromijenjenom, dok transpozicijski kriptosustav tu istu strukturu mijenja. Takoer, kod transpozicijskog se kriptosustava ne mijenjaju pojedini elementi poruke (jedno slovo ili vie njih), dok se kod supstitucijskog mijenjaju vri se zamjena. Postoji vie vrsta supstitucijskog kriptosustava. Ukoliko kriptosustav obrauje poruku slovo po slovo, tada je rije o jednostavnom supstitucijskom kriptosustavu; ukoliko obrauje skupine slova tada je rije o poligrafskom supstitucijskom kriptosustavu. Monoalfabetski kriptosustav koristi jednu i nepromjenjivu supstituciju nad cijelom porukom, dok polialfabetski kriptosustav koristi vie supstitucija. Jednostavna supstitucija Supstitucija nad svakim pojedinim slovom, odnosno jednostavna supstitucija, moe se najbolje demonstrirati usporednim ispisivanjem normalne i zamjenske abecede. Zamjenska (supstitucijska) se abeceda dobiva pomicanjem pozicija slova za odreen broj mjesta u jednu stranu, osnom zamjenom (prvo slovo zamijenjuje mjesto sa zadnjim, drugo s predzadnjim, itd.), ili na neki drugi sloeniji nain u ijem se sluaju dobivena zamjenska abeceda naziva izmijeana (engl. mixed) ili unereena (engl. deranged) abeceda. Tradicionalno, izmijeana abeceda se dobiva prethodnim ispisivanjem tajnog kljua, te potom ostalih slova abecede. Primjerice, ukoliko je koriteni tajni klju "DRVO", tada se dobiva: Normalna abeceda: ABCDEFGHIJKLMNOPQRSTUVWXYZ Zamjenska abeceda: DRVOABCEFGHIJKLMNPQSTUWXYZ 20

U tom se sluaju izvorna poruka:OTKRIVENI SMO

ifrira u:LSHPFUAKF QJL

Tradicionalno, ifrirani tekst se pie u blokovima, odnosno grupama fiksne duljine, pri emu se izostavljaju znakovi interpunkcije i praznine ovo se ini kako bi se izbjegle pogreke pri prijenosu te kako bi se sakrile granice pojedinih rijei izvorne poruke. Blokovi su tradicionalno duljine pet slova, to potjee jo iz doba kada su poruke bivale prenoene telegrafom. Ukoliko duljina izvorne poruke nije djeljiva s pet, tada se ona nadopunjava (engl. pad) sa to sluajnijim znakovima, tako da ih primatelj poruke pri deifriranju lako uoi i otkloni. Bitno je napomenuti da zamjenska abeceda ne mora biti sastavljena od istih slova kao i abeceda izvorne poruke, odnosno, dozvoljena je uporaba bilo kojeg skupa simbola, sve dok postoji bijekcija izmeu izvorne i zamjenske abecede. Veliki nedostatak koritenja zamjenske abecede dobivene na (spomenuti) tradicionalan nain jest u tome da zadnja slova abecede imaju tendenciju ostanka na kraju novodobivene abecede. Jasno se moe vidjeti da su zadnja etiri slova u prethodnom primjeru identina u obadvije abecede (WXYZ). Svaki ljudski jezik (i dijalekt) ima svoju jedinstvenu frekvencijsku razdiobu koritenja pojedinih slova abecede. Koritenje frekvencijske analize, u kojoj se frekvencijska razdioba slova ifrirane poruke usporeuje s ve poznatom razdiobom koritenog prirodnog jezika, najbolji je poznati napad protiv ove vrste kriptosustava. Naime, ukoliko se zna da je izvorna poruka pisana na engleskom jeziku, te ukoliko se u ifriranoj poruci najee pojavljuje slovo P, tada se s vrlo velikom vjerojatnou moe pretpostaviti da to slovo upravo predstavlja najee koriteno slovo u engleskom jeziku slovo E. U teoriji, potrebno je 27.6 slova (podatak za engleski jezik) ifriranog teksta kako bi se probio bilo koji jednostavni supstitucijski kriptosustav. U praksi, obino je potrebno oko 50-ak slova, premda se neke ifrirane poruke mogu probiti i s manje slova, ukoliko se uoe (neki) karakteristini uzorci. Homofona supstitucija Rani napori da se povea sigurnost supstitucijskih kriptosustava protiv uinkovitosti frekvencijske analize su rezultirali homofonijom. Kod ove vrste kriptosustava, slovo izvorne poruke se moe preslikavati u vie moguih slova ifrirane poruke. Najee, slovima koja se najee pojavljuju u izvornom tekstu se daje vie moguih zamjena, za razliku od slova koja se pojavljuju rijee. Na ovaj nain se frekvencijska distribucija izravnava, ime se kriptoanaliza oteava. Interesantna varijanta ove vrste kriptosustava je nomenklator (engl. nomenclator). Dobila je ime po zanimanju ljudi koji su najavljivali imena i titule posjetioca. Kod ovog kriptosustava se koristila mala kodna knjiica (engl. codebook) u kojoj su bili sadrane velike homofone supstitucijske tablice. Poto su na poetku bile ograniene samo na imena bitnih ljudi tako su i dobili ime nomenklatori. Koristili su ih diplomati, pijuni i konspiratori, od poetka 15. do kraja 18. stoljea. Iako su vladini kriptoanalitiari sistematski probijali nomenklatore od sredine 16. stoljea, te iako su napredniji kriptosustavi bili na raspolaganju, uobiajen odgovor na taj problem je bilo znatno poveanje tablica.

21

Polialfabetska supstitucija Leone Battista Alberti je po prvi put opisao ovu vrstu kriptosustava (1467. godine) u varijanti s "pominim diskovima". Johannes Trithemius je u svojoj knjizi "Steganographia" opisao tablinu varijantu, koja je kasnije postala standard za praktinu primjenu polialfabetske supstitucije. Kod polialfabetske supstitucije koristi se vie zamjenskih abeceda. Prije samog postupka ifriranja, sve se koritene zamjenske abecede zapisuju u obliku velike tablice tradicionalno zvane tableau. Tablica je obino dimenzija 26x26 i popunjena s 26 razliitih zamjenskih abeceda. Metoda kojom se odreuje koritena abeceda, te nain na koji se popunjavaju pojedina polja tablice, odreuju svaku pojedinu varijantu polialfabetske supstitucije. Jedan od najpopularnijih varijanti je zasigurno ona koju je osmislio Blaise de Vigenre. Objavio ju je 1585. godine, te se do 1863. smatrala neprobojnom. Od tuda joj i potjee jedan od naziva: "le chiffre indchiffrable" (fran. za "neprobojni kriptosustav"). U Vigenreovom kriptosustavu prvi se redak tablice popunjava s nepromijenjenom kopijom koritene (prirodne) abecede izvorne poruke, te se potom svaki naredni redak popunjava s pomaknutom varijantom (za jedno mjesto ulijevo) abecede prethodnog retka. Prilikom ifriranja koristi se tajni klju kako bi se odredilo trenutno koritena zamjenska abeceda, odnosno redak tablice. Ukoliko je prvo slovo kljua npr. B (drugo slovo abecede) tada e se koristiti drugi redak tablice kako bi se odredilo zamjensko slovo za prvo slovo izvorne poruke. Kada se iskoriste sva slova tajnog kljua, tada se ona ponovno uzimaju ispoetka. Friedrich Kasiski je 1863. godine objavio metodu, koju je vjerojatno osmislio Charles Babbage par godina ranije, kojom se mogla izraunati duljina koritenog kljua u Vigenreovom kriptosustavu. Kada se pronae duljina kljua, tada se mogu napasti pojedine koritene zamjenske abecede. Naime, ukoliko znamo da je duljina kljua 3, tada su se zasigurno koristile samo tri jednostavne zamjenske abecede, odnosno retka tablice polialfabetske supstitucije. U tom sluaju svako tree slovo ifrirane poruke dijeli identinu zamjensku tablicu. Moderni nizovni kriptosustavi mogu se (na apstraktnoj razini) promatrati kao polialfabetske supstitucije, u kojima se koriteni tajni klju nastoji produljiti koliko je god to mogue. Poligrafska supstitucija Kod ove vrste kriptosustava, slova izvorne poruke se obrauju u skupinama (tipino parovi slova digrafski kriptosustav). Na ovaj se nain znatno oteava kriptoanaliza; u tom sluaju frekvencijsku analizu vie nema smisla provoditi nad pojedinanim slovima, ve ju je potrebno obaviti nad skupinama slova. U tom sluaju vrijede potpuno druga pravila frekvencijske distribucije, te je potrebno znatno vei broj slova kako bi se uspjeno probila ifrirana poruka. Najraniju varijantu ovog kriptosustava je osmislio Sir Charles Wheatstone 1854. godine, pod imenom Playfair kriptosustav. U njemu je koristio 5x5 tablicu, koja se popunjavala ovisno o tajnom kljuu (obino su slova I i J dijelila isto mjesto). Digrafska supstitucija se izvodila tako to bi se uzeo par slova izvorne poruke, koji bi predstavljali zamiljene vrhove jedne stranice kvadrata u tablici, dok bi se kao ifrirani par uzeli vrhovi nasuprotne stranice.

22

Mehanika supstitucija Od I. svjetskog rata do masovne upotrebe elektronikih raunala, koristile su se mehanike implementacije (strojevi) polialfabetskih supstitucijskih kriptosustava. Najvaniji i najpoznatiji kriptografski stroj tog vremena je zasigurno Enigma Njemake vojske. Saveznici su takoer razvili svoje rotorske kriptografske strojeve: SIGABA (Amerikanci) i TypeX (Britanci). Svi su ti strojevi dijelili isti princip rada. Supstitucijsko slovo se biralo koritenjem velikog broja moguih zamjenskih abeceda, rotiranjem nekoliko slovanih diskova. Poveanjem koritenih diskova, broj zamjenskih abeceda je znao biti i vie nego ogroman (astronomski). Unato tome, skoro je sav ifrirani promet zatien njemakim Enigmama probijen od strane Saveznika tijekom II. svjetskog rata. No, poruke zatiene strojevima SIGABA i TypeX, nisu nikad bile probijene (barem se tako pretpostavlja). Supstitucija u modernim kriptosustavima Klasini supstitucijski kriptosustavi, posebno oni bazirani na upotrebi olovke i papira, vie nisu u upotrebi, barem ne u ozbiljnijoj. Svejedno, koncept supstitucije je i dandanas iv. Moderne kriptosustave (na apstraktnoj razini) moemo sagledati kao supstitucijske kriptosustave nad velikim brojem binarnih abeceda, pogotovo blokovske kriptosustave. U prilog toj tezi ide i injenica da se u dananjim blokovskim kriptosustavima esto koriste tzv. "S-kutije" (engl. S-boxes), ija je svrha nita drugo doli supstitucija.

3.1.3.

Znaajniji predstavnici

Cezarov kriptosustav Poznato je da se Julije Cezar (10144 g. pr. Kr.) pri izmjenjivanju pisama sa svojim generalima Opisunom, Kornelijem, Ciceronom, te nekim svojim roacima, sluio supstitucijskim kriptosustavom koji danas poznajemo pod imenom Cezarov kriptosustav. ifriranje se vrilo zamjenom slova izvorne poruke s pripadnim slovima supstitucijske abecede dobivene pomakom prirodnog redoslijeda abecednih slova za tri mjesta unaprijed. Tako se primjerice slovo A izvorne poruke zamjenjivalo sa slovom D ifrirane poruke, slovo B sa slovom E, itd. Jedan je od najjednostvanijih i najpoznatijih kriptosustava uope. Od onda se pojavila i modificirana verzija ovog kriptosustava, koja umjesto abecednog pomaka za tri mjesta unaprijed koristi bilo koji broj pomaka (npr. najpoznatija je varijanta ROT13 kriptosustav, esto koriten na Usenet grupama, u kojem se vri pomak za 13 mjesta unaprijed). Nije poznato koliko je Cezarov kriptosustav sluio svrsi u to doba, no vrlo je vjerojatno da se smatrao vrlo sigurnim iz vrlo jednostavnog razloga; naime, rijetko je tko od njegovih neprijatelja bio pismen, a i za te rijetke (sretnike) nema pisanog traga da su uspjeli probiti ovaj kriptosustav. Vigenreov kriptosustav Vigenreov kriptosustav je izumio i objavio Giovan Batista Belaso 1553. godine u svojoj knjizi "La cifra del. Sig. Giovan Batista Belaso". Francuski diplomat Blaise de Vigenre (1525-1596) je ovaj kriptosustav opisao francuskom kralju Henriju III. Nakon toga su u 19. stoljeu zasluge za izum ovog kriptosustava pogreno pridjeljene Vigenreu. Iz tog nesporazuma i potjee ime ovog kriptosustava.

23

Vigenreov kriptosustav je nita drugo doli kompozicija nekoliko Cezarovih kriptosustava s razliitim brojem abecednih pomaka. Pri obradi prvog slova izvodi se ifriranje uporabom prvog Cezarovog kriptosustava, nad drugim slovom izvodi se ifriranje drugim Cezarovim kriptosustavom, itd. U trenutku kad se iskoriste svi Cezarovi kriptosustavi, zapoinje njihova ponovna upotreba (ispoetka). Takoer postoji i tablina verzija ovog kriptosustava, u kojem se na temelju trenutnog slova kljua izabire odreena zamjenska abeceda za ifriranje trenutnog slova izvorne poruke. Snage Konfederacije su koristile ovaj kriptosustav tijekom Amerikog graanskog rata. Takoer je zanimljivo spomenuti da je poznati autor i matematiar Charles Ludwidge Dodgson (poznat pod svojim pseudonimom Lewis Carroll - "Alisa u zemlji udesa") proglasio ovaj kriptosustav "neprobojnim" 1868. godine u svom djelu "Abecedni kriptosustav" (engl. "The Alphabet Cipher"). Unato toj reputaciji, ovaj kriptosustav je probijen (nedugo zatim) krajem 19. stoljea. Playfairov kriptosustav Ovaj kriptosustav takoer ne nosi naziv po svom izumitelju, ve po imenu Lorda Lyon Playfaira (1818-1898), koji je taj kriptosustav preporuio oko 1890. britanskom Ministarstvu vanjskih poslova, tako da i dandanas nosi njegovo ime. Pravi izumitelj ovog kriptosustava je istaknuti britanski fiziar Charles Wheatstone (18021875), manje poznat po konstrukciji ovog kriptosustava, a vie po izumljenoj metodi mjerenja elektrinog otpora tzv. "Wheatstoneov most". Zanimljivo je da se ovaj kriptosustav nije koristio za njegova ivota ni u vojsci ni u diplomatskim krugovima Velike Britanije. Posebno dobre karakteristike omoguile su njegovu uporabu znatno kasnije; koristile su ga britanske snage tijekom Burskog rata i I. svjetskog rata, te australske snage tijekom II. svjetskog rata. Pri ifriranju se koristi tablica veliine 5x5 polja, u koju se slijedno unose slova kljua, te potom ostala slova abecede. Pri ifriranju se vri supstitucija parova slova izvorne poruke s pripadnim parovima ifrirane poruke. Par slova izvorne poruke, svojom pozicijom unutar spomenute tablice, ini vrhove stranica zamiljenog kvadrata. ifrirani par su upravo slova na pozicijama nasuprotna dva vrha zamiljenog kvadrata. Ukoliko je par slova izvorne poruke jednak, tada se umjesto drugog slova uzima slovo X [16]. Kriptografski stroj Enigma Poueni iskustvom iz I. svjetskog rata, u kojem su se bitke dobivale ne samo na bojnom polju, ve i probijanjem neprijateljskih ifriranih poruka, svjetske velesile su pristupile radu na stvaranju "neprobojnih" kriptosustava. U tom trenutku na scenu stupaju kriptografski strojevi.; no, prethodno je trebalo stvoriti odgovarajui kriptosustav, a tek zatim postupak (de)ifriranja realizirati odgovarajuim strojem. Time se dobivalo na brzini izvoenja, dok bi koriten kriptosustav osigurao potrebnu tajnost. Prvi ozbiljni poduhvat su ostvarili Nijemci konstrukcijom uvenog kriptografskog stroja Enigma. Vjeruje se da je Enigma prvi put proizvedena 1920. godine. Usavravana je u vie navrata uvoenjem novih tehnikih i kriptografskih elemenata. Osnovna zamisao koritenog kriptosustava se nije bitno mijenjala. Za vrijeme II. svjetskog rata dolo je do masovne uporabe Enigme. Nosila je oznaku specijalnog stroja za ifriranje i deifriranje poruka najveeg stupnja tajnosti. Za saveznike kriptoanalitiare predstavljala je jednu od najveih zagonetki II. svjetskog rata na polju kriptografije (no ipak je uspjeno probijena).

24

Enigma je namijenjena ifriranju i deifriranju poruka elektromehanikim putem. U njoj se vri polialfabetska supstitucija koritenjem tzv. "recipronih neureenih" zamjenskih abeceda. Postupak (de)ifriranja se vri uporabom tipkovnice, uz prethodno postavljenje poetnog stanja odreenog tajnim kljuevima. Rezultat operacije se dobiva na ploi sa sijalicama, paljenjem sijalice na mjestu koje odreuje ifarsku zamjenu, odnosno, slovo izvorne poruke. Stroj se koristi(o) izvorom istosmjernog napona od 4V ili naizmjeninog napona od 220V. Brzina rada je 20-40 slova u minuti, ovisno o obuenosti osobe koja s njime rukuje. Teina stroja je 10 kg, odnosno 11.5 kg, ovisno o varijanti [23].

3.2. Blokovski kriptosustaviU kriptografiji, blokovski kriptosustavi spadaju u skupinu sustava sa simetrinim kljuem. Bitna je karakteristika da obrauju podatke u skupinama stalne veliine, zvanim blokovima (engl. blocks), koristei jedinstvenu i nepromjenjivu transformaciju. Blokovski kriptosustav se sastoji od dva algoritma, jednog za ifriranje, E, i drugog za deifriranje, E-1. Oba algoritma primaju dva ulaza: ulazni blok veliine n-bita i tajni klju veliine k-bita, te vraaju izlazni blok veliine n-bita. Za bilo koji stalni klju K, deifriranje je (valjana) inverzna funkcija ifriranju, tako da vrijedi:

E K 1 ( E K ( M )) = Mza svaki blok podataka M i klju K. Za svaki klju K, EK predstavlja bijektivno preslikavanje u skupu ulaznih blokova. Svaki od kljueva odreuje jednu od moguih 2n! bijekcija. Kod ifriranja, blokovski kriptosustav uzima blok izvorne poruke predefinirane veliine (nbita), obrauje ga koritenjem algoritma za ifriranje, te vraa odgovarajui izlazni blok ifriranih podataka (takoer veliine n-bita). Sama transformacija ovisi o vrijednosti druge ulazne veliine tajnom kljuu. Deifriranje je inverzni proces od ifriranja: blokovski kriptosustav uzima ulazni blok ifrirane poruke predefinirane veliine (n-bita), koritenjem algoritma za deifriranje obrauje podatke, te vraa odgovarajui izlazni blok deifrirane izvorne poruke (takoer veliine nbita). Kako bi se ifrirala poruka veliine dulje od predefinirane veliine bloka, koristi se odgovarajui blokovski nain rada. Nizovni kriptosustavi obrauju podatke slijedno i pojedinano na razini bita, te se sama transformacija mijenja ovisno o trenutnoj poziciji unutar ulazne poruke. Blokovski kriptosustavi obrauju podatke u (velikim) grupama susjednih bitova, te se sama transformacija ne mijenja ovisno o trenutnoj poziciji unutar ulazne poruke. Razlika izmeu ta dva tipa kriptosustava nije uvijek najjasnija: tako, blokovski kriptosustavi, kada se nalaze u odreenom nainu rada, ponaaju se efektivno kao nizovni. Kae se da je blokovski sustav "n-bitni" ukoliko mu je veliina bloka n bita. Danas je uobiajena veliina bloka 128 bita, dok je do sredine 90-ih godina prolog stoljea, bila 64 bita.

25

Jedan od blokovskih naina rada, zajedno s nainom popunjavanja praznina, koristi se kako bi se mogla ifrirati izvorna poruka proizvoljne duljine. Svaki od blokovskih naina rada ima drukije karakteristike, ovisno o propagaciji pogreaka, mogunosti pristupa sluajno odabranom bloku, te o ranjivosti na odreene vrste kriptoanalitikih napada. U tipine veliine kljueva (k) spadaju 40, 56, 64, 80, 128, 192 i 256 bita. Trenutno (2005.) se 80 bita smatra najmanjom veliinom kljua dovoljnom za efektivno spreavanje pretraivanja cjeloukupnog prostora kljueva (veliine 2k) tzv. kriptoanalitiki napad "grubom silom" (engl. brute force attack) Veina je blokovskih kriptosustava dizajnirana kao struktura s velikim brojem ponavljanja jednostavnije funkcije. Ovako se konstruirani blokovski kriptosustavi nazivaju ponavljajui (engl. iterative), pri emu se svako ponavljanje naziva kolo (engl. round), dok se ponavljajua funkcija naziva funkcija kola (engl. round function). Koriteni klju se u tom sluaju proiruje na veliki broj tzv. podkljueva kola (engl. round subkeys) Ki. Uobiajeni broj kola se kree u rasponu od 4 do 32. Rani blokovski kriptosustav DES (engl. krat. za Data Encryption Standard), razvijen je u IBM-u te proglaen standardom za ifriranje podataka 1977. godine. DES je vrlo bitan za razvoj cjeloukupne kriptografije, to pokazuje i injenica da je njegov nasljednik, AES (engl. krat. za Advanced Encryption Standard), prihvaen tek 2001. kao zamjena.

3.2.1.

Feistelova struktura

U kriptografiji, Feistelovim kriptosustavom nazivamo blokovski kriptosustav sa specifinom strukturom, nazvanoj po IBM-ovom kriptografu Horst Feistelu; takoer se koristi izraz Feistelova mrea. Velika veina blokovskih kriptosustava spadaju u ovu (pod)vrstu, ukljuujui i DES. Prednost koritenja Feistelove strukture u dizajnu blokovskih kriptosustava je u tome da su operacije ifriranja i deifriranja (u tom sluaju) vrlo sline, ak i identine u nekim sluajevima, jedino sa obrnutim redoslijedom koritenja podkljueva u pripadnim kolima. Stoga je veliina potrebnog programskog koda, odnosno elektrinih sklopova, pri implementaciji kriptosustava skoro prepolovljena s obzirom na ostale kriptosustave. Feistelova struktura se prvi put pojavila u komercijalnom IBM-ovom kriptosustavu Lucifer, kojeg su dizajnirali Feistel i Don Coppersmith. Postala je vrlo popularan izbor pri dizajniranju novih blokovskih kriptosustava, stoga to je Vlada SAD-a standardizirala kriptosustav DES, koji je upravo bio baziran na spomenutom kriptosustavu Lucifer. Feistelova struktura u sebi sadri velik broj kola s ponavljajuim operacijama, sadranim u tzv. Feistelovoj funkciji (engl. Feistel function), poput: Premjetanja bitova (permutacijske kutije ili krae P-kutije) Koritenja jednostavnih nelinearnih funkcija (supstitucijske kutije ili krae S-kutije) Linearnog mijeanja bitova koritenjem logike operacije ekskluzivno-ILI

Prema Claude Shannonu, u svojstva dobrog kriptosustava spadaju konfuzija (zbunjenost, zbrka) i difuzija (rasprenost). Upravo u Feistelovoj strukturi operacije premjetanja bitova stvaraju efekt difuzije, dok se koritenjem jednostavnih nelinearnih funkcija unosi konfuzija.

26

Osnovi princip ifriranja u Feistelovoj strukturi je sljedei: Blok izvorne poruke se dijeli na dva dijela jednake veliine (L0, R0) Za svako se kolo i = 1, 2, 3, ..., n, rauna

Li = Ri 1 Ri = Li 1 f ( Ri 1 , K i )pri emu je f funkcija kola (Feistelova funkcija), dok je Ki podklju kola i. ifrirani blok jednak je (Ln, Rn)

Slika 3.1 ifriranje unutar Feistelove strukture

Osnovi princip deifriranja u Feistelovoj strukturi je sljedei: Blok ifrirane poruke se dijeli na dva dijela jednake veliine (Ln, Rn) Za svako kolo i = n, n-1, n-2, ..., 1, se rauna:

Ri 1 = Li Li 1 = Ri f ( Li , K i )pri emu je f funkcija kola (Feistelova funkcija), dok je Ki podklju kola i. Deifrirani blok izvorne poruke jednak je (L0, R0)

Slika 3.2 Deifriranje unutar Feistelove strukture

27

Jedna od velikih prednosti ovog modela je ta da funkcija f ne mora biti invertibilna, te stoga moe biti vrlo sloena.

Slika 3.3 Primjer Feistelove funkcije f

3.2.2.

Supstitucijsko-permutacijska mrea

Supstitucijsko-permutacijska mrea (SPN engl. krat. za Substitution-permutation network) je naziv za povezani niz nelineanih supstitucijskih (engl. krat. S-boxes) i permutacijskih (engl. krat. P-boxes) "kutija", odnosno tablica, koje transformiraju ulazni blok u izlazni blok bitova. Supstitucijske kutije vre supstituciju, odnosno zamjenu, sadraja ulaznog bloka bitova. Dobra supstitucijska kutija ima svojstvo da se u sluaju promjene samo jednog ulaznog bita mijenja oko pola (ili vie) izlaznih bitova. Takoer, ima svojstvo da je vrijednost svakog izlaznog bita zavisna o vrijednosti svakog ulaznog bita. Permutacijske kutije vre permutaciju, odnosno premjetanje, sadraja ulaznog bloka bitova. Obino se postavljaju na izlaz supstitucijskih kutija. Dodatno, prilikom svakog kola (engl. round) se klju kombinira s procesiranim blokom koritenjem neke jednostavne binarne operacije, poput ekskluzivno-ILI ().

Slika 3.4 Osnovni princip rada supstitucijsko-permutacijske mree

28

3.2.3.

Blokovski naini rada

Napomena: u pripadnim dijagramima pojedinih blokovskih naina rada ulazni blok rednog broja i oznaen je s mi, izlazni blok rednog broja i oznaen je s ci, algoritam ifriranja bloka podataka (u ovisnosti o kljuu k) oznaen je s Ek, algoritam deifriranja bloka podataka (u ovisnosti o kljuu k) oznaen je s Dk, dok je s c0 oznaen inicijalizacijski vektor (odnosno sa s0 kod OFB naina rada). ECB (engl. krat. za Electronic Code Book) U nainu rada ECB, svaki se ulazni blok izvorne poruke ifrira neovisno jedan o drugome. Koritenje naina rada ECB sigurno je koliko i pripadni blokovski kriptosustav, no, ponavljajua struktura ulazne poruke ostaje nesakrivena. Svaki identini blok izvorne poruke rezultira jednakim ifriranim blokom. Stoga je mogua jednostavna manipulacija ifrirane poruke uklanjanjem, ponavljanjem i/ili premijetanjem pojedinih blokova. Brzina izvoenja ovog naina rada je identina brzini pripadnog blokovskog kriptosustava. Blokovski nain rada ECB omoguuje jednostavnu paralelizaciju u svrhu dobivanja boljih performansi.

Slika 3.5 Osnovni princip blokovskog naina rada ECB

CBC (engl. krat. za Cipher Block Chaining) U nainu rada CBC, nad svakim se blokom izvorne poruke vri operacija ekskluzivno-ILI () s prijanjim ifriranim blokom, te se (tek tada) takav blok ifrira. Inicijalizacijski vektor c0, odnosno neki sluajno generirani blok podataka, koristi se kao poetni ifrirani blok.

Slika 3.6 Osnovni princip blokovskog naina rada CBC

29

Koritenje naina rada CBC je sigurno koliko i pripadni blokovski kriptosustav (protiv standardnih kriptoanalitikih napada). Prednost ovog naina rada je ta da svaka ponavljajua struktura u izvornoj poruci biva sakrivena za razliku od naina rada ECB. Takoer, sa ifriranim blokovima direktna manipulacija nije mogua, osim uklanjanja blokova s poetka i/ili kraja ifrirane poruke. Inicijalizacijski vektor bi trebao biti razliit za svake dvije ifrirane poruke kod kojih se koristi isti klju; po mogunosti bi se trebao svaki put (prije ifriranja) izabrati sluajnim odabirom iz skupa svih moguih vrijednosti blokova veliine n bitova. Obino se nad njim ne vri ifriranje, te se moe slobodno slati u izvornom obliku zajedno s ifriranom porukom. Brzina izvoenja ovog naina rada je identina brzini pripadnog blokovskog kriptosustava, no nije ga mogue paralelizirati. PCBC (engl. krat. za Propagating Cipher Block Chaining Mode) je jedna od modifikacija naina rada CBC, u kojem je proirena propagacija (mogue) pogreke u ifriranoj poruci omoguuje bolju detekciju pogreaka prilikom prijenosa poruke. ifriranje kod ovog naina rada je opisano s izrazom:ci = E k (ci 1 mi 1 mi )

dok je deifriranje opisano s izrazom:mi = ci 1 mi 1 Dk (ci )

CFB (engl. krat. za Cipher Feedback) U nainu rada CFB, ifrira se prehodno ifrirani blok te se tako dobiveni blok kombinira s blokom izvorne poruke koritenjem operacije ekskluzivno-ILI (), kako bi se dobio trenutni ifrirani blok. Inicijalizacijski vektor c0, odnosno neki sluajno generirani blok podataka, koristi se kao poetni ifrirani blok.

Slika 3.7 Osnovni princip blokovskog naina rada CFB

Koritenje naina rada CFB je sigurno koliko i pripadni blokovski kriptosustav; s njim se takoer sakrivaju ponavljajue strukture izvorne poruke. S blokovima ifrirane poruke direktna manipulacija nije mogua, osim uklanjanja blokova s poetka i/ili kraja ifrirane poruke. Prilikom biranja inicijalizacijskih vektora c0 vrijede iste preporuke kao i kod naina rada CBC. Brzina izvoenja ovog naina rada je identina brzini pripadnog blokovskog kriptosustava, no nije ga mogue paralelizirati.

30

OFB (engl. krat. za Output Feedback) OFB nain rada je vrlo slian CFB nainu rada, osim to se veliina s kojom se kombiniraju blokovi izvorne poruke dobiva neovisno o izvornoj i o ifriranoj poruci. Inicijalizacijski vektor s0, odnosno neka sluajno generirana vrijednost, koristi se kao poetni blok sekvence blokova si, pri emu je svaki blok si dobiven ifriranjem prijanjeg bloka si-1. ifrirani blok podataka ci dobiva se izvoenjem operacije ekskluzivno-ILI () trenutnog ulaznog bloka mi s pripadnim blokom si.

Slika 3.8 Osnovni princip blokovskog naina rada OFB

Prednost ovog blokovskog naina rada nad nainom CFB jest ta da se (mogue) pogreke prilikom prijenosa podataka vie ne propagiraju prilikom deifriranja poruke. Prilikom biranja inicijalizacijskih vektora vrijede iste preporuke kao i kod CFB naina rada. Problem kod ovog naina rada je taj da je mogue relativno jednostavno manipulirati ovako ifriranom porukom. Napada koji poznaje jedan od blokova izvorne poruke mi moe ga zamijeniti s lanim blokom podataka x izvoenjem operacije ekskluzivno-ILI () pripadnog bloka ci s mix. Kriptoanalitiki napadi ove vrste mogu se vrlo lako sprijeiti koritenjem digitalnog potpisa ili (jednostavnijeg) MAC-a. Brzina ovog naina rada je identina brzini pripadnog blokovskog kriptosustava. Iako proces nije mogue paralelizirati, vrijeme moe biti znaajno uteeno prethodnim generiranjem niza si, i to prije nego to je sama izvorna poruka spremna za ifriranje. Zbog (sigurnosnih) nedostataka naina rada OFB, poznati kriptograf Whitfield Diffie [39] je predloio dodatan blokovski nain rada, nazvan CTR (engl. Counter) nain [43]. Razlikuje se od OFB naina u nainu na koji se generira niz si umjesto ifriranja prethodnog bloka si-1, Diffie je predloio ifriranje veliine (i + IV) mod 264 za dobivanje vrijednosti bloka si, pri emu je s IV oznaen inicijalizacijski vektor.

3.2.4.

Znaajniji predstavnici

AES (engl. krat. za Advanced Encryption Standard) AES, takoer poznat kao Rijndael, je blokovski kriptosustav prihvaen kao kriptografski standard Vlade SAD-a. Standardizirala ga je amerika vladina agencija NIST (engl. krat. za National Institute of Standards and Technology) u studenom 2001. godine, nakon pet godina natjeaja.

31

Kriptosustav su dizajnirali dva belgijska kriptografa Joan Daemen i Vincent Rijmen te su ga poslali na natjeaj pod originalnim imenom Rijndael. Nastao je kao poboljana inaica njihovog ranijeg kriptosustava Square, koji je opet nastao na temelju Shark kriptosustava. Za razliku od svog prethodnika, DES-a, Rijndael je po strukturi supstitucijsko-permuitacijska mrea, a ne Feistelova mrea. Razlika je u tome to se umjesto nelinearne funkcije f u ovom sluaju koristi veliki broj supstitucijskih (engl. S-boxes) i permutacijskih (engl. P-boxes) "kutija", odnosno tablica. AES je brz i u programskoj i u sklopovskoj implementaciji. Relativno je jednostavan za implementaciju te mu je za normalan rad potrebno vrlo malo memorije. AES ima fiksnu veliinu bloka od 128 bita i mogue veliine kljueva od: 128, 192 i 256 bita. Nakon to je postao kriptografski standard, AES je postao predmetom brojnih kriptoanalitikih napada. Posebno mu se zamjera njegova matematika (pre)formalnost. Dosad nije pronaen nijedan efektivni kriptoanalitiki napad koji bi iskoristio to svojstvo, no neki kriptografi strahuju da bi se u budunosti to moglo dogoditi. Od svih dosad objavljenih napada nijedan nije bio posebno znaajan, osim jednog. Naime, sve je zapoelo u travnju 2005. godine kad je D.J. Bernstein predstavio kriptoanalitiki napad na vrijeme procesorskog keiranja podataka (engl. cache timing attack). Za njegov je napad bilo potrebno 200 milijuna odabranih izvornih poruka, to za dananje prilike ne smatra vrlo praktinim. Pola godine kasnije, u listopadu 2005. godine, poznati kriptograf Adi Shamir [39] je s druga dva istraivaa prezentirao znatno poboljanu verziju ovog napada. Naime, u tom su napadu, na temelju mjerenja vremena izvravanja samo 800 procesorskih naredbi pisanja tijekom ifriranja, pronali cjeloviti koriteni AES klju. Zanimljivost je ta da je cijeli taj postupak trajao samo 65 milisekundi (Adi Shamir, Dag Arne Osvik, Eran Tromer: "Cache Attacks and Countermeasures: the Case of AES"). Blowfish Blowfish blokovski kriptosustav je 1993. godine dizajnirao kriptograf Bruce Schneier, autor poznate knjige "Applied Cryptography" [15]. U njemu je kombinirao Feistelovu mreu, supstitucijske S-kutije ovisne o kljuu i ne-invertibilnu funkciju f, kako bi stvorio jedan od trenutno najsigurnijih kriptosustava. Bitna znaajka ovog kriptosustava je da nije patentiran te je stavljen u javnu domenu kako bi bio slobodno koriten od bilo koga. Do danas (2005.) nije pronaen efektivni kriptoanalitiki napad protiv ovog kriptosustava, premda se njegova veliina bloka od 64 bita trenutno smatra premalom ifriranjem vie od 232 podatkovnih blokova moe se prouzroiti odavanje informacija o izvornoj poruci. Unato tome, Blowfish je vrlo siguran kriptosustav. Blowfish je jedan od brih blokovskih kriptosustava, osim kod postavljanja kljua; vrijeme potrebno za postavljanje svakog novog kljua ekvivalentno je sa ifriranjem teksta veliine 4KB, to je vrlo sporo u usporedbi s drugim kriptosustavima. GOST (rus. krat. za Gosudarstvennyi Standard) Ovaj kriptosustav je 1990. godine prihvaen kao sovjetski standard GOST 28147-89. Sovjetski je pandan amerikog kriptosustava DES, dok su i strukturno vrlo slini. GOST obrauje podatke u blokovima veliine 64 bita, dok je veliina kljua 256 bita. Sadraj supstitucijskih S-kutija moe biti tajan, ime se efektivna veliina kljua poveava na 768 bita. U originalnoj specifikaciji nije naveden sadraj S-kutija, no svakako ih se mora nekako popuniti. Ova pojedinost je dovelo do pekulacija o tome da su organizacijama, koje je sovjetska vlada htjela pijunirati, date namjerno "oslabljene" S-kutije. 32

Objavljen je vrlo mali broj radova na temu kriptoanalitikih napada na GOST te se na prvi pogled doima sigurnim. Velik broj kola (32) i "tajne" supstitucijske S-kutije dodatno oteavaju rad kriptoanalitiarima. IDEA (engl. krat. za International Data Encryption Algorithm) Blokovski kriptosustav IDEA dizajnirali su Xuejia Lai i James L. Massey te ga prvi put predstavili 1991. godine. Osmiljen je s namjerom da zamijeni tadanji standard DES. Patentiran je (do 2011.) u mnogim dravama svijeta, no slobodan je za neprofitnu uporabu. IDEA obrauje podatke u 64-bitnim blokovima koristei 128-bitni klju. Koristi 8 kola (engl. rounds) i jednu zavrnu transformaciju (tzv. polukolo). Sami dizajneri su analizirali ovaj kriptosustav i zakljuili da je otporan na diferencijalne kriptoanalitike napade. Nakon toga takoer nije pronaen nijedan uspjean linearni napad. Premda je pronaen razred slabih kljueva (engl. weak keys), njihova vjerojatnost pojave je zanemarivo mala. ak je i poznati kriptograf Bruce Schneier 1996. godine za ovaj kriptosustav izjavio: "Po mojem miljenju, IDEA je najbolji i najsigurniji blokovski kriptosustav danas dostupan javnosti" [15]. RC2 (engl. krat. za Rivest Cipher 2) Dizajner ovo kriptosustava je poznati kriptograf Ron Rivest [39]. Razvoj RC2 kriptosustava sponzorirala je tvrtka Lotus, koja je u to doba traila vlastiti kriptosustav. Jedna od zanimljivosti vezana uz ovaj kriptosustav jest ta da je danas poznata varijanta zapravo okrnjena verzija originalnog kriptosustava. Naime, poto su u Lotusu htjeli implementirati RC2 u svom novom softveru "Lotus Notes" te ga potom distribuirati u zemlji i inozemstvu, za to su trebali dobiti doputenje amerike sigurnosne agencije NSA. Poslije nekoliko malih modifikacija, zajedno sa skraenim 40-bitnim kljuem, RC2 je odobren kao prikladan za koritenje izvan SAD-a. U poetku su detalji kriptosustava drani tajni, pod vlasnitvom tvrtke RSA Security, no 29. sijenja 1996. godine netko je anonimno poslao programski kod na Usenet grupu sci.crypt. Ista se stvar dogodila i s nizovnim kriptosustavom RC4 nekoliko godina poslije. Dandanas nije poznato da li su autori obje poruke zapravo jedna te ista osoba, te da li su imali pristup specifikacijama kao zaposlenici tvrtke RSA Security. Druga mogua verzija dogaaja jest ta da su do programskog koda doli reverznim injenjerstvom (engl. reverse engineering). RC2 je 64-bitni blokovski kriptosustav s varijabilnom veliinom kljua. Po svojoj strukturi je Feistelova mrea. Od kriptoanalitikih napada jedini je znaajniji napad slinih kljueva (engl. related-key attack) koritenjem 232 odabranih izvornih poruka (engl. chosen plaintext). RC5 (engl. krat. za Rivest Cipher 5) Za razliku od mnogih drugih blokovskih kriptosustava, RC5 uz varijabilnu veliinu kljua (0 do 2040 bita) ima i varijabilnu veliinu bloka (32, 64 ili 128 bita), te varijabilni broj kola (0 do 255). Po svojoj internoj strukturi je Feistelova mrea. Izvorni preporueni parametri su: veliina bloka 64 bita, veliina kljua 128 bita te broj kola 12. Jedno