završni rad - fersigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · web viewnaime, babbage...

62
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 316 RADNO OKRUŽENJE ZA KLASIČNE KRIPTOGRAFSKE ALGORITME Monika Čeri

Upload: others

Post on 16-Jan-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

SVEUČILIŠTE U ZAGREBUFAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

ZAVRŠNI RAD br. 316

RADNO OKRUŽENJE ZA KLASIČNE KRIPTOGRAFSKE ALGORITME

Monika Čeri

Zagreb, lipanj 2008.

Page 2: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

SVEUČILIŠTE U ZAGREBUFAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

ZAVRŠNI RAD br. 316

RADNO OKRUŽENJE ZA KLASIČNE KRIPTOGRAFSKE ALGORITME

Monika Čeri

Zagreb, lipanj 2008.

2

Page 3: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Two can keep a secret if one of them is dead.

Page 4: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Sadržaj

1. Uvod..............................................................................................................................1

2. Osnovni pojmovi............................................................................................................2

2.1. Kriptografija...........................................................................................................2

2.1.1. Enkripcija......................................................................................................3

2.1.2. Dekripcija......................................................................................................4

2.2. Kriptoanaliza.........................................................................................................4

3. Povijesni razvoj klasične kriptografije............................................................................5

4. Supstitucijske šifre........................................................................................................8

4.1. Hebrejska šifra......................................................................................................8

4.2. Cezarova šifra.......................................................................................................8

4.2.1. Originalna Cezarova šifra.............................................................................8

4.2.2. Cezarova šifra s proizvoljnim pomakom.......................................................9

4.2.3. Cezarova šifra s permutiranom abecedom...................................................9

4.2.4. Cezarova šifra s ključem...............................................................................9

4.2.5. Razbijanje Cezarove šifre...........................................................................10

4.3. Vigenèreova šifra................................................................................................11

4.3.1. Albertijeva šifra...........................................................................................11

4.3.2. Trithemiusova šifra.....................................................................................11

4.3.3. Belasova šifra.............................................................................................12

4.3.4. Originalna Vigenèreova šifra......................................................................13

4.3.5. Razbijanje Vigenèreove šifre......................................................................14

4.4. Playfairova šifra..................................................................................................14

4.4.1. Playfairova šifra bez ključa.........................................................................14

4.4.2. Playfairova šifra s ključem..........................................................................15

5. Transpozicijske šifre....................................................................................................16

5.1. Rail Fence ("cik-cak") šifra..................................................................................16

5.2. Stupčana šifra.....................................................................................................16

5.2.1. Stupčana šifra s jednim ključem.................................................................16

5.2.2. Stupčana šifra s dva ključa.........................................................................17

5.3. Transpozicija pomoću rešetki.............................................................................18

5.3.1. Transpozicija pomoću rešetki sa slučajno odabranim otvorima.................18

5.3.2. Cardanova rotirajuća rešetka......................................................................18

6. Praktični rad................................................................................................................20

6.1. Korisničko sučelje...............................................................................................20

1

Page 5: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

6.1.1. Upute za upotrebu sučelja..........................................................................20

6.1.2. Programsko ostvarenje dijelova vezanih uz sučelje...................................22

6.2. Ostvareni kriptografski algoritmi.........................................................................23

6.3. Programsko ostvarenje algoritama.....................................................................24

6.3.1. Hebrejska šifra............................................................................................24

6.3.2. Cezarova šifra.............................................................................................25

6.3.3. Vigenèreova šifra........................................................................................27

6.3.4. Playfairova šifra..........................................................................................28

6.3.5. "Cik-cak" šifra..............................................................................................29

6.3.6. Stupčana šifra.............................................................................................31

7. Zaključak.....................................................................................................................33

8. Literatura.....................................................................................................................34

Sažetak...............................................................................................................................35

Abstract..............................................................................................................................36

Dodatak A...........................................................................................................................37

Dodatak B...........................................................................................................................38

Dodatak C...........................................................................................................................39

Dodatak D.............................................................................................................................41

2

Page 6: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

1. Uvod

Danas se smatra da je informacija najvrednije dobro. Upravo zbog toga je šifriranje i razbijanje šifri postalo najvažniji izvor tajnih obavještajnih službi na svijetu koje imaju veliku ulogu u stvaranju politike današnjih vlada. No, razbijanje i stvaranje šifri postoji od davnina pa u povijesti kriptografije razlikujemo dva velika razdoblja. Današnje razdoblje kriptografije naziva se moderna kriptografija, dok se razdoblje do pojave Interneta naziva klasična kriptografija. Upravo je klasična kriptografija odlučivala o ishodima brojnih života i ratova do polovice prošlog stoljeća.

U ovom radu je opisana podjela klasičnih kriptografskih algoritama na supstitucijske i transpozicijske šifre. Nadalje, detaljno su opisani najpoznatiji algoritmi za svaku od tih šifri. Također je prikazana konkretna primjena na enkripciju i dekripciju na nekim primjerima, te je programski ostvareno radno okruženje koje omogućuje primjenu tih algoritama nad proizvoljno unesenim tekstom.

U drugom poglavlju su definirani osnovni pojmovi kriptografije koji će se koristiti u daljnjem tekstu. U trećem poglavlju je dan kratak povijesni pregled razvoja klasične kriptografije. Četvrto poglavlje daje detaljan pregled supstitucijskih šifri. Opisane su hebrejske šifre, Cezarove šifre. Vigenèreove šifre i Playfairove šifre. Peto poglavlje daje detaljan pregled transpozicijskih šifri. Opisane su tzv. "cik-cak" šifra i stupčana šifra. Šesto se poglavlje odnosi na programsko ostvarenje radnog okruženja za klasične kriptografske algoritme. Opisano je korisničko sučelje, dane su upute za upotrebu, navedeni su ostvareni algoritmi i na kraju je opisano ostvarenje pojedinih algoritama.

1

Page 7: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

2. Osnovni pojmovi

Kriptologija je znanost koja obuhvaća kriptografiju i kriptoanalizu. Ona koristi znanja matematike, statistike i lingvistike za kriptiranje i dekriptiranje poruka. Postoje dvije vrste poruka (tekstova): otvoreni (izvorni ili čisti) tekst i šifrirani tekst. Izvorna, nešifrirana poruka pisana je otvorenom abecedom i naziva se otvoreni tekst. Poruka koja nastane nakon šifriranja pisana je šifriranom abecedom i naziva se šifrirani tekst. U pravilu se otvorena abeceda i otvoreni tekst pišu malim slovima, dok se šifrirani tekst i abeceda pišu velikim tiskanim slovima (Slika 2.1). [2]

Slika 2.1 Otvorena i šifrirana abeceda

2.1. Kriptografija

Kriptografija je znanstvena disciplina koja koristi matematiku i lingvistiku za kriptiranje podataka. Ona se bavi proučavanjem metoda koje omogućuju komunikacijsku sigurnost između dvije osobe. Sama riječ kriptografija dolazi iz grčkog jezika i znači tajnopis. No, cilj kriptografije nije samo tajiti postojanje poruke, čime se bavi steganografija, nego prikriti njeno značenje. [3]

Uobičajeni model koji se koristi za definiranje komunikacijske sigurnosti pretpostavlja jednosmjernu komunikaciju između dvije osobe, pošiljatelja i primatelja, koju ugrožava netko treći. U literaturi se za ove osobe koriste imena Alice, Bob i Trudy (Eve). U takvom modelu Alice želi komunicirati na siguran način s Bobom, ali da pri tome treća osoba (Eve) ne može razumjeti njihove poruke. Alice i Bob se prije komunikacije moraju dogovoriti koji će algoritam i ključ koristiti prilikom komunikacije (Slika 2.2). U ovakvom modelu, Eve može naslutiti o kojem se algoritmu radi, ali je bez ključa bespomoćna, ukoliko se ne upusti u kriptoanalizu. Zbog toga sigurnost kriptosustava ne smije ovisiti o očuvanju tajnosti kriptoalgoritma, nego samo o očuvanju tajnosti ključa. To osnovno pravilo kriptografije ustvrdio je nizozemski lingvist Kerckhoff 1883. godine, koje se njemu u čast danas naziva Kerckhoffovo pravilo. [10]

Slika 2.2 Model komunikacije između pošiljatelja i primatelja [2]

Sve metode kriptografije podrazumijevaju unaprijed poznat ključ i algoritam koji moraju posjedovati i pošiljatelj i primatelj poruke. Kriptografski algoritam ili šifra je matematička funkcija koja se koristi prilikom pretvorbe otvorenog teksta u šifrirani (enkripcija) i obratno (dekripcija). [1]

2

Page 8: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

2.1.1. Enkripcija

Enkripcija je postupak koji se primjenjuje na strani pošiljatelja. Njom se otvoreni tekst pretvara u šifrirani ili kodirani tekst pomoću odgovarajućeg ključa. Zbog toga se enkripcija dijeli na šifriranje i kodiranje. Kod šifriranja je bazična jedinica jedno slovo, par slova (bigram), a nekada i više slova (poligram). Kod kodiranja je bazična jedinica riječ ili skup riječi. Zbog toga ne postoji neka oštra teorijska granica između kodova i šifara, jer kad se šifarski sustavi povećavaju vrlo lako prijeđu u kodne sustave. [3]

Šifriranje je postupak koji se dijeli na transpoziciju i supstituciju. Ukoliko se ova dva postupka kombiniraju složenost nastalih algoritma je velika.

Transpozicija je premještanje slova otvorenog teksta tako da svako slovo zadržava svoj identitet, ali mijenja mjesto (Slika 2.3). Ovim postupkom dobiva se anagram. Složenost anagrama ovisi o samoj duljini izvorne poruke. Ako je poruka prekratka onda je moguće doći do izvorne poruke isprobavanjem svih mogućih kombinacija rasporeda slova u šifriranoj poruci. Ako je poruka preduga, anagrami postaju složeniji zbog broja mogućih kombinacija rasporeda slova u poruci.

Slika 2.3 Transpozicija

Supstitucija je postupak zamjene slova otvorenog teksta na način da svako slovo zadržava svoje mjesto, ali mijenja svoj identitet (Slika 2.4). U ovom se postupku slovo iz poruke prvo pronađe u otvorenoj abecedi te se zamijeni s njemu ekvivalentnim slovom u šifriranoj abecedi. Također, često se upotrebljavaju i znakovi koji ne zamjenjuju niti jedno slovo otvorenog teksta. Pošiljatelj i primatelj će znati da te znakove trebaju preskočiti, dok će trećoj osobi ti znakovi predstavljati problem. Takvi znakovi, koji služe za zavaravanje protivnika i ne znače ništa nazivaju se nule. Sustavi koji koriste samo jednu šifriranu abecedu nazivaju se monoalfabetski sustavi. Postoje i polialfabetski sustavi koji koriste više šifriranih abeceda i oni su znatno kompliciraniji od svih dosada spomenutih sustava.

Slika 2.4 Supstitucija

Kodiranje je supstitucija lingvističkih cjelina nekim znakom ili skupom znakova (Slika2.5). Ovakav način pretvorbe otvorenog teksta u šifrirani zahtijeva popis svih uporabljenih zamjena u nekom tekstu. Taj popis svih mogućih zamjena naziva se kodna lista ili nomenklator.

3

Page 9: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Slika 2.5 Kodiranje

2.1.2. Dekripcija

Dekripcija je postupak kojim se šifrirani ili kodirani tekst pretvara u otvoreni tekst pomoću unaprijed poznatog ključa i algoritma. Primjenjuje se na strani primatelja poruke. Dakle, ovaj postupak je legalan, jer primatelj komunicira sa pošiljateljem. Samim postupkom nastaje dekriptat. Dekriptat se dijeli na dešifrat i dekodat, ovisno o tome dekriptira li se šifrirani ili kodirani tekst. [3]

2.2. Kriptoanaliza

Kriptoanaliza je znanost koja koristi matematiku, statistiku i lingvistiku za dekriptiranje podataka bez unaprijed poznatog ključa. Ona omogućuje nekoj trećoj osobi razbijanje nepoznate poruke pa je samim time nelegalna. [4]

Ovisno o tome s čime raspolaže treća osoba, razlikujemo četiri osnovna nivoa kriptoanalitičkih napada. [4]

1. Napad s poznatim šifriranim tekstom. Kriptoanalitičar može posjedovati samo šifrirani tekst od nekoliko poruka enkriptiranih pomoću istog algoritma. U ovom slučaju njegov je zadatak otkriti otvoreni tekst od što više poruka, ili u najboljem slučaju otkriti ključ kojim se vršila enkripcija.

2. Napad s poznatim otvorenim tekstom. Kriptoanalitičar može posjedovati šifrirani tekst neke poruke, ali i njemu odgovarajući otvoreni tekst. U ovom slučaju njegov je zadatak otkriti ključ ili neki algoritam kojim je pošiljatelj napravio enkripciju, odnosno primatelj dekripciju.

3. Napad s odabranim kriptiranim tekstom. Kriptoanalitičar može odabrati tekst koji će biti enkriptiran i tako dobiti šifrirani tekst. Ovaj napad je jači od prethodnog napada, ali je manje realističan.

4. Napad s odabranim otvorenim tekstom. Kriptoanalitičar može imati pristup alatu za dekripciju pa može odabrati neki šifrirani tekst i dobiti odgovarajući otvoreni tekst. U ovom slučaju njegov je zadatak otkriti ključ kojim se vrši enkripcija, odnosno dekripcija.

4

Page 10: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

3. Povijesni razvoj klasične kriptografije

Počeci kriptografije datiraju još iz davne 2000. godine prije Krista. Tada su se pojavili hijeroglifi, kojima su stari Egipćani ukrašavali grobnice (Slika 3.6). Hijeroglifi su male sličice koje obilježavaju stvari ili pojave. Zbog toga ovaj sustav zamjene nije bio sustav tajnog pisma u današnjem smislu riječi, nego je to bio neusavršen kod za zamjenu znakova. [6]

Slika 3.6 Hijeroglifi [6]

Početkom ratova javlja se sve veća potreba za skrivanjem poruka. Najraniji zapisi sežu iz doba Herodota koji daje kroniku sukoba Grčke i Perzije u 5. stoljeću prije Krista. U kronici je zabilježena upotreba drvenih pločica na koje se napisala poruka i koje su se potom prekrile voskom. Taj je događaj obilježio početak steganografije. Kroz povijest su ljudi bili prilično domišljati u skrivanju poruka. Tako su neki vojskovođe znali obrijati glasniku glavu i na nju napisati poruku, te su nakon toga pričekali da kosa naraste i poslali glasnika na odredište. Nadalje, Kinezi su poruke pisali na tankoj svili, koju bi zgužvali u kuglicu i natopili voskom, te progutali. Još jedan od načina skrivanja poruke je upotreba nevidljive tinte iz raznih biljaka ili organskih tekućina, koje promijene svoju boju na papiru pri njegovom zagrijavanju. Sve ove metode bile su jako opasne jer ih se lako moglo otkriti. Zbog toga se, uz steganografiju, počinje razvijati i kriptografija. [2]

Prva upotreba kriptografije zabilježena je 400. godine prije Krista kod Spartanaca. Oni su upotrebljavali drveni štap nazivom skytale (skital). Na taj se štap namotala vrpca na koju se onda napisala poruka (Slika 3.7). Nakon toga bi se vrpca odmotala i dobila bi se šifrirana poruka, koju bi glasnik uglavnom dodatno sakrio tako da bi se opasao njome. Primatelj ovakve poruke morao je imati štap identičnog promjera. Nakon odmotavanja na vrpci se nalazio anagram otvorene poruke pa je ovo prva naprava za šifriranje koja koristi transpoziciju. [7]

Slika 3.7 Skital

5

Page 11: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Supstitucija se prvi puta pojavljuje kod Hebrejaca, koji mijenjaju slova otvorenog teksta nekim drugim slovima. Najvažnija metoda supstitucije je Cezarova šifra, koju je koristio sam Cezar u Galskom ratu. Ove šifre su monoalfabetske supstitucijske šifre jer se prilikom kriptiranja koristi samo jedna šifrirana abeceda. Mnogi su stari učenjaci smatrali da se supstitucijska šifra ne može razbiti zbog velikog broja mogućih ključeva. No, počinje razvoj kriptoanalize na istoku zahvaljujući velikom procvatu znanosti, naročito matematike, gramatike, lingvistike i statistike. Arapi su bili prvi koji su opisali tehniku kriptoanalize kojom se mogla razbiti svaka monoalfabetska supstitucijska šifra. Slabost monoalfabetske šifre najbolje dolazi do izražaja u priči o Mariji Stuart (vidi Dodatak A). [2]

Razbijanjem monoalfabetskih šifri, dolazi do razvoja kriptografije na zapadu. Počinju se primjenjivati monoalfabetske šifre s praznim znakovima i kodiranje. Time se otežao posao kriptoanalitičarima, ali je ponovno postojala opasnost jer je prije komuniciranja bilo potrebno poslati drugoj strani nomenklator. Zato se javlja potreba za boljim šiframa pa nastaju polialfabetske supstitucijske šifre. Četiri su čovjeka obilježila ovo razdoblje kriptografije. Prvi je bio Alberti (Slika 3.8) koji je predložio da se prilikom kriptiranja koriste dvije šifrirane abecede. Na njegovo se razmišljanje nastavio Trithemius (Slika 3.8) koji je po prvi puta uveo tablicu, koja je postala osnovni oblik polialfabetske supstitucije. Treći važan korak napravio je Belaso. I kod Albertija i kod Trithemiusa ključ je predstavljala čitava tablica koja je sadržavala šifrirane abecede. Belaso je prvi preporučio upotrebu nekog ključa, koji bi se lako pamtio, a služio bi za određivanje koju abecedu treba koristiti. Problem je nastao jer je u ovom slučaju ključ trajan kroz cijelu poruku pa ju je također dosta lako razbiti. Zato je Vigenère (Slika 3.8) uveo autoključ, ključ koji je ovisio o samoj poruci. Vigenèreova šifra bila je u širokoj upotrebi tijekom Američke revolucije, a korištena je i u Američkom građanskom ratu. [3]

Slika 3.8 Alberti, Trithemius, Vigenère, Babbage, Friedman

Vigenèreova šifra služila je gotovo dva i pol stoljeća. Prvi ju je razbio Babbage (Slika3.8) 1854. godine. No, njegovo otkriće ostalo je nezapaženo zbog dva moguća razloga. Naime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da ga nitko nije ozbiljno shvatio kad je pokušao objaviti svoje otkriće. Drugi razlog je zanimljiviji. Naime, u to se doba odvijao Krimski rat, pa se pretpostavlja da je možda tim znanjem donio veliku prednost Britancima u ratu protiv Rusa. Ukoliko ga je britanska vlada zamolila da svoje otkriće drži u tajnosti to je onda bio još jedan slučaj zataškavanja šifrolomaca u svrhu očuvanja nacionalne sigurnosti. U međuvremenu je tu metodu otkrio i Kasiski, koju je objavio 1863. godine i koja se po njemu danas naziva Kasiskijeva metoda. 1920. godine Friedman (Slika 3.8) iznosi drugu metodu za razbijanje ove šifre koja koristi tzv. indeks koincidencije. [1][3]

Druga ideja za poboljšanje monoalfabetske supstitucije je uvođenje blokova slova kao osnovnih elemenata otvorenog teksta. Najpoznatija šifra koja se zasniva na tom načelu je Playfairova šifra. Ovu šifru osmislio je Wheatstone (Slika 3.9) 1854. godine, a ime je dobila po njegovom prijatelju Playfairu (Slika 3.9) koji ju je popularizirao. Korištena je u britanskoj vojsci za vrijeme 1. svjetskog rata i u američkoj vojsci za vrijeme 2. svjetskog rata. [1]

6

Page 12: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Slika 3.9 Playfair, Wheatstone, Wadsworth, Jefferson

U međuvremenu započinje razvoj kriptografskih strojeva. Prvi značajan stroj za šifriranje konstruirao je Jefferson (Slika 3.9) 1795. godine. Taj šifrarnik s kotačem bio je vrlo siguran način komuniciranja i donedavno se koristio u mornarici. 1817. godine Wadsworth (Slika 3.9) uvodi novi princip u kriptografiju napravom s dva diska. Njegov je izum nestao nakon njegove smrti pa njegovu slavu preuzima Wheatstone koji je konstruirao stroj vrlo sličan njegovom izumu. [7][8][9]

Otkriće telegrafa i radija uvelike je uzburkalo samu povijest kriptografije. Nadalje, svijet je ušao u predratno stanje i sve strane su očekivale neki novi izum kako bi mogle sigurno krenuti u rat. No, tog izuma tijekom 1. svjetskog rata nije bilo. Upravo zbog toga dolazi do mnogo neuspjeha jer su se sve šifre uglavnom odmah razbile. Nijemci su u tom ratu imali najviše sreće (vidi Dodatak B). Kako su iz rata izašli kao najveći gubitnici sve su uložili u razvoj kriptografije. Tako je i nastao jedan od najmoćnijih kriptografskih strojeva toga doba, ENIGMA (Slika 3.10). Nakon brojnih modifikacija, 1929. godine izašla je konačna verzija ENIGME. Nakon toga slijedi njeno razbijanje koje je potrajalo nekoliko desetaka godina. Prve uspjehe imao je Rejewski koji je načinio stroj za razbijanje ENIGME pod imenom Bomba (Slika 3.10). Na njegov rad nastavio se Turing. Cijela operacija razbijanja njemačke ENIGME bila je samo dio obavještajne operacije pod kodnim imenom Ultra. Tijekom 2. svjetskog rata Britanci su zadržali prevlast nad njemačkim šifrotvorcima zahvaljujući Turingovoj bombi. [3][5][8]

Slika 3.10 ENIGMA i Bomba

7

Page 13: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

4. Supstitucijske šifre

Supstitucijske šifre mijenjaju svako slovo otvorenog teksta s nekim slovom iz šifrirane abecede. Tim postupkom svako slovo koje dobijemo u šifriranom tekstu biti će na istoj poziciji kao u otvorenom tekstu samo što će promijeniti svoj identitet. Šifriranih abeceda može biti proizvoljno mnogo. Zato sustave koji koriste samo jednu šifriranu abecedu nazivamo monoalfabetski sustavi, a one koji koriste više polialfabetski sustavi.

Najpoznatije supstitucijske šifre su hebrejska šifra, Cezarova šifra, Vigenèreova šifra i Playfairova šifra.

4.1. Hebrejska šifra

Hebrejska šifra spada u najjednostavnije supstitucijske šifre. Hebrejci su koristili tri načina zamjene slova abecede pa tako postoje tri vrste šifri. Najpoznatija je šifra poznata pod imenom "atbash" (Slika 4.11a), a preostale dvije su "albam" i "atbah" (Slika 4.11b, Slika4.11c). [6]

Kod sve tri metode ključ je cijela šifrirana abeceda, bez obzira na to što je ovaj način kriptiranja recipročan. Recipročan je zato što ako zamijenimo slovo A sa slovom Z, onda slovo Z mijenjamo sa slovom A. Razlika između ove tri metode je drugačiji poredak slova za zamjenu.

Enkripcija i dekripcija temelje se na zamjeni slova otvorene abecede slovima iz šifrirane abecede, i obratno.

Slika 4.11 Hebrejske šifre: a)"atbash", b)"albam", c)"atbah"

4.2. Cezarova šifra

Cezarova šifra dobila je naziv po svom tvorcu Gaju Juliju Cezaru. Osnova ove šifre je supstitucija jednog slova otvorenog teksta nekim drugim slovom. Kako postoji samo jedna šifrirana abeceda ovaj sustav je monoalfabetski. Ovisno o načinu odabira nastanka šifrirane abecede danas postoje četiri inačice ove šifre.

4.2.1. Originalna Cezarova šifra

Originalnu Cezarovu šifru koristio je sam Cezar u svojim ratovima. Kod ove šifre šifrirana abeceda nastaje pomakom otvorene abecede za tri mjesta ulijevo (Slika 4.12). Dakle, ključ kod ove šifre predstavlja upravo pomak, koji je u ovom slučaju uvijek tri. [2]

Slika 4.12 Originalna Cezarova šifra

8

Page 14: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

4.2.2. Cezarova šifra s proizvoljnim pomakom

Iako je Cezar koristio pomak od samo tri mjesta ulijevo, moguće je pomicati šifriranu abecedu od jednog do dvadeset i pet mjesta. Time nastaje 25 različitih mogućnosti za šifriranu abecedu što se ljepše da prikazati pomoću dva kružna dijela (Slika 4.13). Ako zamislimo da je vanjski dio fiksiran i da unutarnji kružni dio možemo okretati u krug, dobivamo svih 25 mogućih kombinacija otvorene i šifrirane abecede.

Slika 4.13 Cezarova šifra s proizvoljnim pomakom

Ključ kod ove šifre je pomak, koji može poprimiti vrijednosti od jedan do dvadeset i pet.

4.2.3. Cezarova šifra s permutiranom abecedom

Originalnu Cezarovu šifru moguće je transformirati tako da se svako slovo otvorenog teksta zamijeni s proizvoljnim slovom iz abecede. Dakle, šifrirana abeceda može sadržavati bilo koju permutaciju slova A, B, ..., Z. Ovim postupkom nastaje 26! mogućih kombinacija šifrirane abecede, pa je ova metoda znatno složenija od prethodnih. Kada se danas nešto kriptira Cezarovom šifrom, misli se na ovaj oblik Cezarove šifre. Ključ kod ove šifre predstavlja čitava šifrirana abeceda, pa sveukupno postoji 26! ≈ 4∙1026 ključeva. [2]

4.2.4. Cezarova šifra s ključem

Kod prethodnog oblika Cezarova šifre vidljivo je da obje strane moraju kao ključ pamtiti cijelu šifriranu abecedu koja nastaje nasumičnim odabirom slova, što ponekad zna biti neefikasno. Kako bi se to riješilo, moguće je izgraditi šifriranu abecedu tako da se pošiljatelj i primatelj dogovore za jednu ključnu riječ ili frazu koja će predstavljati ključ. Šifrirana abeceda nastaje tako da se na njen početak stavi ključ bez praznina i slova koja se ponavljaju više puta, a ostatak se popuni slovima koja se ne nalaze u ključu i to redom od početka abecede (Slika 4.14). Prednost ovog oblika slaganja šifrirane abecede je ta što se ključ lako pamti. [1]

Slika 4.14 Enkripcija pomoću Cezarove šifre s ključem

9

Page 15: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

4.2.5. Razbijanje Cezarove šifre

Kriptoanaliza se razvija na istoku zahvaljujući razvoju znanosti, posebno matematike, gramatike, lingvistike i statistike. Sam postupak kriptoanalize zasniva se na učestalosti pojedinih slova abecede u određenom jeziku. Učestalost pojedinog slova dobiva se pretraživanjem pojavljivanja traženog slova u nekom drugom otvorenom tekstu slične duljine. Vrijednosti pojavljivanja slova abecede zapisuju se u tablicu. Ovaj postupak se uglavnom preskače ukoliko je trećoj strani unaprijed poznat jezik na kojem primatelj i pošiljatelj razgovaraju, tj. ukoliko posjeduje unaprijed gotovu tablicu učestalosti slova na tom jeziku (Slika 4.15). [2]

Slika 4.15 Učestalost slova po jezicima [1]

Nakon ustanovljavanja učestalosti pojavljivanja slova u nekom jeziku, potrebno je jednaku analizu napraviti i nad šifriranim tekstom. Time nastaje još jedna tablica učestalosti pojavljivanja slova. Obje tablice se sortiraju i vrši se zamjena tako da se slovo iz šifrirane tablice zamijeni sa slovom iz otvorene tablice ukoliko je učestalost pojavljivanja slova približno jednaka.

10

Page 16: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Ovaj postupak je djelotvoran samo idejno. Prvi nedostatak je nepodudaranje učestalosti slova. Zbog toga se primjenjuju različite lingvističke metode da bi se došlo do ispravnih rješenja. Šifrirana poruka može biti prekratka pa će ova metoda dati krivi rezultat. Također, moguće je da strane prilikom komuniciranja namjerno ispuštaju neke od najučestalijih slova ili ih uopće ne koriste. Tako je francuski književnik Perec napisao La Disparation (Odlazak), roman od dvjesto stranica bez ijedne riječi sa slovom e. [2]

4.3. Vigenèreova šifra

Današnjoj Vigenèreovoj šifri prethodila su tri važna otkrića, pa time i tri različite metode šifriranja, Albertijeva, Trithemiusova i Belasova. Sve ove šifre su polialfabetske šifre jer koriste više šifriranih abeceda. [3]

4.3.1. Albertijeva šifra

Albertijeva šifra temelji se na upotrebi dvije šifrirane abecede. Sva slova na neparnim mjestima zamjenjuju se pomoću prve šifrirane abecede, a slova na parnim mjestima zamjenjuju se pomoću druge abecede (Slika 4.16). Obje šifrirane abecede su jednake Cezarovim šifriranim abecedama pa mogu nastati kombinacijom ranije navedenih metoda o kojima će ovisiti ključ.

Slika 4.16 Enkripcija pomoću Albertijeve šifre

Nedostatak ove metode je upotreba premalog broja šifriranih abeceda. Kriptoanaliza se obavlja za svaku abecedu posebno i vrlo se lako može otkriti otvoreni tekst.

4.3.2. Trithemiusova šifra

Trithemius se nadovezao na Albertija i uveo je tablični zapis svih šifriranih abeceda (Slika 4.18). On je upotrijebio ukupno 26 šifriranih abeceda, koje su bile pomaknute za jedno mjesto u odnosu na prethodnu abecedu. Također, predložio je da se prvo slovo otvorenog teksta zamijeni pomoći prve šifrirane abecede, drugo s drugim, itd. (Slika 4.17)

Slika 4.17 Enkripcija pomoću Trithemiusove šifre

11

Page 17: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Slika 4.18 Trithemiusova tablica šifriranih abeceda

U ovoj metodi ključ ne postoji jer se slova mijenjaju redom po tablici. No, radi dosljednosti s preostalim metodama, može se reći da ključ predstavlja cijela abeceda.

Ova metoda kriptografije ima jedan veliki nedostatak. Naime, ukoliko bi došla u neprijateljske ruke vrlo bi se lako mogla razbiti ako ta osoba zaključi da se koristio obična tablica i da se zamjena obavljala redom.

4.3.3. Belasova šifra

Belaso je uvidio veliki nedostatak Trithemiusove metode pa je dodatno uveo još i ključ. Ključ je jedna riječ ili fraza čija slova služe kao identifikator retka koji se koristi prilikom kriptiranja. Postupak je vrlo jednostavan. Iznad svakog slova otvorenog teksta ispiše se ključ ciklički sve dok se ne dođe do kraja teksta. Sada se iznad svakog slova nalazi slovo koje označuje početak one šifrirane abecede koja će se koristiti za kriptiranje (Slika 4.19).

Slika 4.19 Enkripcija pomoću Belasove šifre

Kod ove metode ključ je stalan što može predstavljati problem zbog sigurnosnih razloga. Danas se pod Vigenèreovom šifrom često smatra ova metoda.

12

Page 18: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

4.3.4. Originalna Vigenèreova šifra

Vigenère je uspio riješiti Belasov problem stalnog ključa i uveo je tzv. autoključ. Kao ključ služi sama poruka. Pošiljatelj poruke i primatelj poruke morali su se dogovoriti samo za jedno početno slovo, koje je svaki puta bilo isto. To se naziva početni ključ, koji služi za početno otvaranje. Postupak kriptiranja započinje pronalaženjem prvog slova šifriranog teksta tako da se prvo slovo otvorenog teksta zamijeni s abecedom koja započinje s početnim ključem. To novonastalo slovo koristi se kao ključ kojim se kriptira iduće slovo, itd.

Vigenère je izmijenio Trithemiusovu tablicu šifriranih abeceda tako da je prva abeceda bila pomaknuta za jedan u odnosu na originalnu abecedu jezika. Također je iznad tablice ispisao slova otvorene abecede, a lijevo broj izmjene ili ponovno abecedu, kako bi se lakše izvodio sam postupak kriptiranja (Slika 4.20).

Slika 4.20 Vigenèreov kvadrat [2]

Pošiljatelj poruke potraži u prvom retku slovo otvorenog teksta, a u drugom stupcu slovo koje predstavlja ključ. Mjesto na kojem se sijeku ta dva slova u tablici predstavlja slovo šifriranog teksta i ključ za enkripciju idućeg slova (Slika 4.21). Primatelj poruke u drugom stupcu pronađe ključ i u tom retku slovo šifriranog teksta. Ono slovo koje se nalazi okomito od tog slova u prvom retku je slovo otvorenog teksta i ključ za dekripciju idućeg slova.

Slika 4.21 Enkripcija pomoću Vigenèreove šifre

13

Page 19: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

4.3.5. Razbijanje Vigenèreove šifre

Drugi veliki korak u razvoju kriptoanalize dogodio se upravo razbijanjem Vigenèreove šifre. Postupak se temelji na određivanju duljine ključne riječi. Postoje dvije metode kojima se ta duljina može otkriti, Kasiskijev test i test pomoću indeksa koincidencije.

Kasiskijev test zasniva se na činjenici da će dva identična dijela otvorenog teksta biti šifrirana na isti način ukoliko se njihove početne pozicije razlikuju za neki višekratnik od same duljine ključa. Dakle, prvi logičan korak je otkrivanje nizova slova koji se u šifriranom tekstu ponavljaju više puta. U tablicu se okomito upisuju ponavljani nizovi i razmak između ponavljanja nizova. Pomoću tih razmaka može se ustanoviti duljina ključa na sljedeći način. U tablicu se pored svakog ponovljenog slijeda zapisuje moguća duljina ključa koja je mogla poprimiti vrijednost od dva do dvadeset. No, ako se bolje razmisli moguća duljina ključa može biti samo cjelobrojni djelitelj razmaka između ponavljanja. Uzmimo da se npr. prvi niz ponavlja svakih 20 slova. Za taj se niz označe brojevi dva, četiri, pet, deset i dvadeset. Taj se postupak ponovi za svaki niz. Konačno, duljinu ključa određuje onaj broj u tablici koji se najviše puta zabilježio.

Drugi korak je otkrivanje slova koje sadrži ključ. Ovaj postupak je ustvari razbijanje identično razbijanju Cezarove šifre, jer svako slovo ključa daje po jednu monoalfabetsku šifru. Za svako slovo u ključu ispisuju se sva slova koja se šifriraju tim slovom te se izvodi već poznata frekvencijska analiza. [3]

4.4. Playfairova šifra

Playfairova šifra je bigramska šifra jer se šifriraju parovi slova i to tako da rezultat ovisi i o jednom i o drugom slovu. Algoritam se bazira na 5 x 5 matrici slova, koja sadrži slova abecede. Ovisno o nastanku ove matrice postoje dvije vrste Playfairove šifre, bez upotrebe ključa i s upotrebom ključa. [1]

4.4.1. Playfairova šifra bez ključa

Kod ove šifre matrica slova nastaje popunjavanjem slovima abecede po redovima. Zato ne postoji ključ. Kako matrica ima samo 25 slovnih mjesta, a abeceda se sastoji od 26 slova, po dogovoru se poistovjećuju slova I i J.

Enkripcija zahtijeva podjelu otvorenog teksta na bigrame, odnosno na blokove koji se sastoje samo od dva slova. Pri tome se ne smije dogoditi da se jedan blok sadrži dva jednaka slova. Zato se između jednakih slova umeće novo slovo X, koje se najrjeđe koristi u svim jezicima. Također, zadnji blok mora sadržavati dva slova što se osigurava dodavanjem slova X na kraj bigrama. Nakon podjele otvorenog teksta na bigrame pošiljatelj poruke uzima prvi bigram i traži položaj oba slova unutar matrice riječi. Ovisno o tom položaju moguće je postupiti na tri različita načina (Slika 4.22).

1. Ukoliko se slova nalaze u istom retku, mijenjaju se sa slovima koja su ciklički pomaknuta za jedno mjesto udesno.

2. Ukoliko se slova nalaze u istom stupcu, mijenjaju se sa slovima koja su ciklički pomaknuta za jedno mjesto ispod njih.

3. Ukoliko se slova nalaze u nekom drugom položaju, promatra se pravokutnik koji određuju ta dva slova. Slova se mijenjaju s preostala dva vrha tog pravokutnika. Redoslijed poretka ta dva vrha ovisi o bigramu i to tako da najprije dođe one slovo koje se nalazi u istom retku kao prvo slovo u početnom bigramu.

14

Page 20: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Slika 4.22 Enkripcija pomoću Playfairove šifre bez ključa

Nedostatak ove metode je konstantna matrica riječi pa se slova otvorenog teksta šifriraju svaki puta na isti način.

4.4.2. Playfairova šifra s ključem

Kod ove šifre matrica slova je ovisna o ključu, koji može biti bilo koja riječ ili fraza. Matrica se popunjava po redovima tako da se na početku unese ključ iz kojeg se izbace slova koja se ponavljaju i praznine, a nakon toga se redom unose preostala slova, krenuvši od početka abecede.

Postupak enkripcije je identičan kao i kod Playfairove šifre bez ključa (Slika 4.23).

Slika 4.23 Enkripcija pomoću Playfairove šifre s ključem

Ova metoda ima nekoliko prednosti nad ostalim šiframa. Kako je šifra bigramska, u šifriranom se tekstu gube riječi od jednog slova koje dosta utječu na frekvenciju. Također, broj bigrama je mnogo veći od broja individualnih slova, pa i ta činjenica znatno otežava kriptoanalizu. No, iako je dosta dugo smatrana sigurnom šifrom razbijena je upotrebom analize frekvencije bigrama.

15

Page 21: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

5. Transpozicijske šifre

Transpozicijske šifre mijenjaju mjesto svakom slovu otvorenog teksta. Tim postupkom svako slovo koje se dobije u šifriranom tekstu biti će na drugoj poziciji u odnosu na otvoreni tekst, a identitet slova će ostati nepromijenjen. Ovim postupkom nastaju anagrami, čija složenost ovisi o duljini otvorenog teksta.

Najpoznatije transpozicijske šifre su tzv. cik-cak šifra, šifra sa zadanom rutom, stupčana šifra i Cardanova rotirajuća rešetka. [5]

5.1. Rail Fence ("cik-cak") šifra

Ova šifra dobila je ime po načinu na koji se vrši enkripcija, odnosno dekripcija. Naime, otvoreni tekst zapisuje se silazno na paralelne "grede" zamišljene ograde dok se ne dođe do ruba i onda se dalje zapisuje uzlazno do vrha. Postupak se ponavlja dok se ne dođe do kraja otvorenog teksta. Nakon toga šifrirani se tekst dobije čitanjem paralelno po redovima (Slika 5.24). Radi preglednosti se šifrirani tekst odvaja u grupe od po pet slova. [5]

Slika 5.24 Enkripcija pomoću cik-cak šifre

Ključ kod ove šifre predstavlja broj "greda" na koje se slova mogu zapisati.

5.2. Stupčana šifra

Stupčana šifra je transpozicijska šifra koja se u praksi najčešće koristi. Kod nje se otvoreni tekst zapisuje u pravokutnik po redovima, a šifrirani tekst se čita po stupcima. Postoje dvije vrste ove šifre. Prva šifra je stupčana šifra s jednim ključem koja se koristila do 1950. godine. Nakon uviđanja njenih nedostataka nastaje stupčana šifra s dva ključa. [5]

5.2.1. Stupčana šifra s jednim ključem

Ključ kod ove šifre je redoslijed čitanja stupaca u pravokutniku. On može biti zadan brojčano, ali je tako teško pamtljiv. Zato se za ključ koristi ključna riječ koja sadrži različita slova. Nakon zadavanja ključa, prvo se određuje veličina pravokutnika. Broj stupaca jednak je duljini ključa. Broj redaka ovisi o ključu, a dobiva se tako da se duljina otvorenog teksta podijeli s duljinom ključa i zaokruži na prvi veći cijeli broj. Zatim se otvoreni tekst unosi u pravokutnik po redovima. Ukoliko prilikom unošenja otvorenog teksta u pravokutniku ostane slobodnih mjesta, potrebno ih je nadopuniti znakom po dogovoru. Šifrirani tekst dobiva se čitanjem po stupcima. Redoslijed čitanja stupaca ovisi o ključu. Kako ključ sadrži samo slova, redoslijed ovisi o položaju zadanih slova u abecedi, i to tako da se prvo čita ovaj stupac koji je označen slovom koje je najbliže početku abecede. Dobiveni tekst zapisuje se u grupe od po pet slova (Slika 5.25).

16

Page 22: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Slika 5.25 Enkripcija pomoću stupčane šifre s jednim ključem

Veliki nedostatak ove šifre je njeno lako razbijanje. Naime, ukoliko treća strana dođe u posjed šifriranog teksta, vrlo lako je moguće pogoditi dimenzije pravokutnika i slagati anagrame dok se ne dobije neka smislena cjelina. [5]

5.2.2. Stupčana šifra s dva ključa

Upravo zbog lakog razbijanja stupčane šifre s jednim ključem nastaje nova šifra koja koristi dva ključa. Ova vrsta šifre je zapravo dvostruka stupčana šifra s jednim ključem.

Ključ kod ove vrste šifre može biti samo jedan, ali će se onda u prilikom enkripcije dva puta iskoristiti. Bolje rješenje je zadavanje dva različita ključa. Slova se unutar pojedinog ključa ne smiju ponavljati. Postupak enkripcije je identičan postupku opisanom kod stupčane šifre s jednim ključem samo se dva puta ponovi. Nakon prvog koraka dobije šifrirani tekst koji postaje otvoreni tekst u drugom koraku. Nad tim se tekstom vrši enkripcija pomoću drugog ključa. Konačno, nakon ovog koraka dobiva se pravi šifrirani tekst, koji se ponovno dijeli u grupe od po pet slova (Slika 5.26). [5]

Slika 5.26 Enkripcija pomoću stupčane šifre s dva ključa

17

Page 23: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

5.3. Transpozicija pomoću rešetki

Treća poznata metoda transpozicijskih šifri temelji se na upotrebi rešetki. Rešetka je uglavnom kvadrat, koji je podijeljen na manje kvadrate. Ti kvadrati mogu ili ne moraju biti otvori. Otvori služe za upisivanje teksta nakon što se takva rešetka položi na papir.

Postoje dvije vrste rešetaka, sa slučajno odabranim otvorima i s otvorima odabranim na prikladan način. Zbog toga postoje i dvije vrste transpozicijskih šifri pomoću rešetki. [5]

5.3.1. Transpozicija pomoću rešetki sa slučajno odabranim otvorima

Ova vrsta transpozicije zahtijeva da pošiljatelji i primatelj teksta posjeduju identičnu rešetku koju će koristiti prilikom enkripcije, odnosno dekripcije. U ovom slučaju, raspored otvora na rešetki je proizvoljan i ovisi o dogovoru između pošiljatelja i primatelja. Kad se takva rešetka položi na papir u otvore se upisuje otvoreni tekst (Slika 5.27). Nakon micanja rešetke na preostala se mjesta upisuju proizvoljna slova, te se na taj način skriva poruka. Zbog toga se može reći da ova metoda spada u steganografiju. [5]

Slika 5.27 Enkripcija pomoću rešetke sa slučajno odabranim otvorima

5.3.2. Cardanova rotirajuća rešetka

Cardanova rotirajuća rešetka dobila je ime po poznatom talijanskom matematičaru Cardanu. Temelji se na rešetki u obliku kvadrata čije su dimenzije u originalu bile 6 x 6. Danas se mogu koristiti i druge dimenzije, ali bi duljina stranice kvadrata trebala biti parna. Kvadrat ovih dimenzija podijeli se na četiri jednaka kvadrata dimenzija 3 x 3. U svaki taj kvadrat upisuju se brojevi od jedan do devet i to na slijedeći način (Slika 5.28): [1]

1. u prvi kvadrat koji se nalazi gore lijevo upisuju se brojevi po redovima redom od jedan do devet;

2. u drugi kvadrat koji se nalazi gore desno upisuju se brojevi redoslijedom koji se dobije iz prvog rotacijom za 90° u smjeru kazaljke na satu;

3. u treći kvadrat koji se nalazi dolje lijevo upisuju se brojevi redoslijedom koji se dobije iz prvog rotacijom za 180° u smjeru kazaljke na satu;

4. u četvrti kvadrat koji se nalazi dolje desno upisuju se brojevi redoslijedom koji se dobije iz prvog rotacijom za 270° u smjeru kazaljke na satu.

Nakon ovog postupka iz cijelog kvadrata izabere se svaki od brojeva od jedan do devet točno jedanput (Slika 5.28). Te izabrane pozicije označavaju otvore u rešetki.

18

Page 24: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Slika 5.28 Punjenje i odabir otvora u Cardanovoj rešetki

Enkripcija se obavlja tako da se prvo otvoreni tekst podijeli u blokove od 6 x 6 slova, dakle u blokove od 36 slova. Kako ukupno postoji devet otvora na rešetki svaki blok od 36 slova dijeli se u četiri bloka od po devet slova. Prvo se unosi prvi blok od devet slova. Nakon toga se rotira rešetku za 90° u smjeru kazaljke na satu i unosi drugi blok, itd. Dakle, nakon svakog se koraka rotira rešetka i unosi se drugi blok slova (Slika 5.29).

Slika 5.29 Enkripcija pomoću Cardanove rotirajuće rešetke

19

Page 25: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

6. Praktični rad

U okviru rada načinjen je programski sustav koji omogućuje kriptiranje i dekriptiranje otvorenog teksta po volji odabranim kriptografskim algoritmima i pripadajućim ključevima. Program je izrađen u Microsoft Visual Studiju 2008, u objektno orijentiranom programskom jeziku C#. Za izradu sučelja korišten je Microsoft .NET Framework 2.0. Aplikacija se pokreće u Windows okruženju.

6.1. Korisničko sučelje

6.1.1. Upute za upotrebu sučelja

Korisničko sučelje je samo po sebi intuitivno (Slika 6.30). Za pokretanje aplikacije potrebno je imati instaliran Microsoft .NET Framework 2.0.

Slika 6.30 Izgled korisničkog sučelja

Nakon pokretanja aplikacije otvara se grafičko korisničko sučelje koje se može podijeliti na tri dijela, kako je prikazano na Slici 6.1.

Prvi dio sučelja čini alatna traka s dvije opcije Program i Pomoć.

1. Opcija Program sadrži opciju Izlaz koja omogućuje izlaz iz programa.

2. Opcija Pomoć sadrži tri opcije. Prva je Program pomoć koja otvara .pdf datoteku u kojoj se nalaze općenite upute za upotrebu samog sučelja. Druga je Metode pomoć koja otvara .pdf datoteku u kojoj se nalaze upute i detaljni opisi ostvarenih metoda. Treća je O programu koja sadrži osnovne informacije o programu.

20

Page 26: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Drugi dio sučelja čini izbor postavki samog programa koji se sastoji od tri dijela: Postupak, Metoda i Parametri metode.

1. Unutar prvog dijela Postupak omogućen je izbor između enkripcije i dekripcije.

2. Unutar drugog dijela Metoda omogućen je izbor između šest ponuđenih metoda (kriptografskih algoritama).

3. Unutar trećeg dijela Parametri metode omogućen je izbor podmetode za pojedini kriptografski algoritam ako ona postoji. Nadalje, moguć je unos proizvoljnog ključa, ukoliko on nije konstantan. Na kraju je dan kratak opis podmetode i ključa.

Ukoliko se ključ unese pogrešno, pojavit će se crveni uskličnik kraj mjesta za unos ključa. Detaljan opis greške moguće je dobiti ukoliko se kursor postavi na taj uskličnik (Slika 6.31).

Slika 6.31 Opis pogreške kod krivo unesenog ključa

Treći dio sučelja čini dva okvira koji mijenjaju svoju ulogu ovisno o odabranom postupku.

1. Prvi okvir uvijek služi za unos teksta. Ukoliko je izabran postupak enkripcije, ovaj okvir služit će za unos otvorenog teksta, a ukoliko je izabran postupak dekripcije služit će za unos šifriranog teksta. Tekst se može učitati iz neke datoteke ukoliko se pritisne na tipku Učitaj ili se može unijeti ručno unutar gornjeg okvira. Također, tekst se može i spremiti pritiskom na tipku Spremi. Otvoreni tekst spremit će se s ekstenzijom .otv, a šifrirani s ekstenzijom .sif.

2. Drugi okvir uvijek služi za prikaz dobivenog rezultata. Ukoliko je izabran postupak enkripcije ovaj okvir služit će za prikaz šifriranog teksta, a ukoliko je izabran postupak dekripcije služit će za prikaz otvorenog teksta. Ovaj tekst se može spremiti pritiskom na tipku Spremi. Otvoreni tekst spremit će se s ekstenzijom .otv, a šifrirani s ekstenzijom .sif.

Ukoliko se tekst koji se unosi u gornji okvir unese pogrešno, pojavit će se crveni uskličnik kraj oznake okvira. Opis pogreške moguće je dobiti ukoliko se kursor postavi na taj uskličnik (Slika 6.32). Općenito, tekst će biti kriv ukoliko sadrži neke od nedopuštenih znakova. Dopušteni znakovi su slova, interpunkcijski znakovi i praznine.

Slika 6.32 Opis pogreške kod krivo unesenog teksta

Ukoliko se pokuša spremiti okvir, a da u njemu nema podataka, izbacit će se greška.

21

Page 27: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Gumbom RESET vračaju se postavke postupka, metode i parametra metode u inicijalni položaj. Gumbom START pokreće se postupak enkripcije, odnosno dekripcije. Ukoliko se ne isprave pogreške krivo unesenog teksta ili ključa program će izbaciti grešku i neće nastaviti s izvršavanjem (Slika 6.33).

Slika 6.33 Greška prilikom pritiska na tipku START ukoliko se ne isprave prijašnje pogreške

6.1.2. Programsko ostvarenje dijelova vezanih uz sučelje

Na početku klase frmGlavna definirana su tri pobrojena tipa podataka. Prvi je Postupak koji u sebi sadrži vrstu odabranog postupka, dakle, enkripciju ili dekripciju. Drugi je Metoda koji u sebi sadrži pobrojane sve metode koje su ostvarene. Treći je Podmetoda koji u sebi sadrži pobrojane sve ostvarene podmetode. Nakon toga su stvorene tri varijable tih tipova.

Nakon pokretanja programa postupak se inicijalno postavlja na enkripciju, metoda na hebrejsku šifru, a podmetoda na Atbash. Ukoliko dođe do promjene postupka, metode ili podmetode, zadane varijable mijenjaju svoj sadržaj. Prilikom izbora metode generira se izbornik u kojem su sadržane podmetode izabrane metode. Prilikom izbora podmetode generira se ključ i opis te podmetode.

Ukoliko dođe do promjene ključa automatski se pokreće provjera ispravnosti ključa i to tako da se pokuša stvoriti novi objekt klase podmetode u kojoj se dogodila provjera. Naime, kako je ključ različit za svaku podmetodu, onda se dio koda za provjeru ispravnosti ključa nalazi definiran u klasama koje prikazuju podmetode. Ukoliko je ključ ispravan nastavlja se s procesom, a ukoliko nije hvata se iznimka koja se prikazuje unutar za to namijenjenog davatelja pogreške.

22

Page 28: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Gornji okvir koji služi za unos teksta u početnom slučaju služi za unos otvorenog teksta pa mu je i pridijeljen naziv Otvoreni tekst. Ukoliko se odabere dekripcija mijenja se ime okvira u Šifrirani tekst, jer se unutar okvira u ovom slučaju mora unijeti šifrirani tekst. Unutar programa tekst se raspoznaje po varijabli postupak. Nakon unošenja teksta u okvir automatski kreće provjera ispravnosti teksta. Dozvoljeni znakovi unutar teksta su praznine, slova i interpunkcijski znakovi, a svi ostali znakovi su zabranjeni. Također, unutar ovog dijela koda iz teksta se zamjenjuju svi dijakritički znakovi š, đ, č, ć i ž sa znakovima s, d, c, c, z. Ukoliko se pronađe znak koji ne odgovara pravilima prikazuje se pogreška unutar za to namijenjenog davatelja pogreške.

Pritiskom na tipku START prvo se provjerava je li uspješno unesen ključ i tekst unutar za to predviđenih okvira. Ukoliko je to slučaj onda se ovisno o metodi, odnosno podmetodi stvara novi objekt klase podmetode i pokreće se postupak. Ukoliko to nije slučaj ispisuje se poruka o dobivenoj grešci. Prilikom pokretanja postupka enkripcije, odnosno dekripcije, dobavlja se ispravno formatirani tekst u pomoćnu varijabli i u rezultat se sprema rezultat koji će vratiti funkcija za enkripciju, odnosno dekripciju, pozvane podmetode. Nakon toga se vraćeni rezultat ispisuje u donji okvir.

6.2. Ostvareni kriptografski algoritmi

U okviru rada ostvareno je šest kriptografskih algoritama s nekim njihovim podalgoritmima. Za unos novih metoda u projekt potrebno je pratiti navedene korake u Dodatku C. Ukoliko se želi ostvariti prikaz rada nekog od elektromehaničkih uređaja za kriptiranje moguće je prilikom odabira metode iz izbornika otvoriti novu formu u kojoj se onda detaljno može obraditi izbor postavki za pojedini algoritam i grafički ostvariti i prikazati postupak izvođenja željenog algoritma.

Od ranije opisanih supstitucijskih šifri ostvarene su hebrejska šifra, Cezarova šifra, Vigenèreova šifra i Playfairova šifra.

Kod hebrejske šifre ostvarene su sve tri podmetode: Atbash, Albam i Atbah. Kako je ključ kod ovih metoda konstantan nije ga moguće promijeniti u programu.

Kod Cezarove šifre ostvarene su sve četiri podmetode: originalna Cezarova šifra, Cezarova šifra s proizvoljnim pomakom, Cezarova šifra s permutiranom abecedom i Cezarova šifra s ključem. Kod originalne Cezarove šifre ključ je konstantan pa ga nije moguće promijeniti. Kod svih ostalih podmetoda, omogućena je promjena unaprijed zadanog ključa, koji služi kao primjer.

Kod Vigenèreove šifre ostvarene su tri podmetode: Trithemiusova šifra, Belasova šifra i originalna Vigenèreova šifra. Kod Trithemiusove šifre kao ključ je radi dosljednosti uzeta cijela abeceda i nju nije moguće promijeniti. Kod preostale dvije podmetode moguća je promjena ključa. Albertijeva šifra nije ostvarena zato što bi se znatno zakomplicirao odabir ključa, jer su potrebna dva različita ključa. Ostvarenje ovog algoritma moguće je ostvariti dodavanjem nove forme koja bi služila samo za izbor ključa.

Kod Playfairove šifre ostvarene su obje podmetode: Playfairova šifra bez ključa i playfairova šifra s ključem. Kod prve podmetode ne može se unijeti novi ključ jer on ne postoji. Radi dosljednosti za ključ je uzeta cijela abeceda. Kod druge metode omogućena je izmjena ključa.

Od transpozicijskih šifri ostvarene su "cik-cak" šifra i stupčana šifra. Kod obje šifre moguća je promjena ključa.

23

Page 29: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

6.3. Programsko ostvarenje algoritama

Kako je cijeli rad rađen u objektno orijentiranom programskom jeziku, tako je i samo ostvarenje algoritama prilagođeno tome. Dio programa u kojem su ostvarene metode sastoji se od jednog sučelja pod nazivom IKriptoAlgoritam. Unutar sučelja su zadane definicije funkcija za enkripciju i dekripciju jer sve metode moraju imati ostvarene ove dvije funkcije. Za svaku metodu definirana je po jedna apstraktna klasa koja nasljeđuje sučelje. Svaka od tih apstraktnih klasa u sebi ima ostvarene funkcije za enkripciju i dekripciju koje primaju otvoreni, odnosno šifrirani tekst, i podmetodu. Podmetoda je važna samo kod Vigenerèove šifre pa se u ostalim metodama ova varijabla ne upotrebljava. Osim ostvarenja ovih funkcija, unutar apstraktnih klasa su definirani i svi oni dijelovi koje svaka podmetoda mora ostvariti. Za svaku podmetodu definirana je posebna klasa u kojoj su ostvareni oni dijelovi koji su različiti za pojedine podmetode. Sve te klase nasljeđuju jednu apstraktnu klasu, koja predstavlja glavnu metodu. Cijeli dijagram klasa može se vidjeti u Dodatku D.

U nastavku slijedi opis ostvarenja svake pojedine metode i njenih podmetoda.

6.3.1. Hebrejska šifra

Dijagram klasa koje su korištene u ostvarenju hebrejske šifre dan je na Slici 6.5.

Slika 6.34 Dijagram klasa za hebrejsku šifru

24

Page 30: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Unutar apstraktne klase Hebrejci, koja nasljeđuje sučelje IKriptoAlgoritam zadana su dva polja znakova otvorenaAbeceda i sifriranaAbeceda. Kako je otvorena abeceda jednaka za sve podmetode, onda je pripadajuće polje znakova ispunjeno slovima abecede. Šifrirana abeceda je za svaku podmetodu različita, pa će ona biti definirana zasebno u svakoj podmetodi. Također, unutar klase su definirane i funkcije za enkripciju i dekripciju teksta. Ostvarenje enkripcije i dekripcije je trivijalno jer se temelji na pretraživanju otvorene abecede i zamjeni nađenog slova sa slovom koje se nalazi u šifriranoj abecedi na mjestu s istim indeksom.

Kako postoje tri podmetode hebrejske šifre, tako postoje i tri klase koje nasljeđuju apstraktnu klasu Hebrejci. Kako je za svaku podmetodu različita samo šifrirana abeceda, onda se unutar konstruktora svake klase definira šifrirana abeceda.

Ključ kod ove metode ne postoji, pa nije potrebno ostvariti ništa vezano uz njega, ali je radi lakšeg prikaza i dosljednosti za ključ unutar sučelja unijeta cijela šifrirana abeceda. Upravo zbog toga što je ona konstantna, tj. što se ne mijenja, korisniku nije omogućena izmjena ključa.

6.3.2. Cezarova šifra

Dijagram klasa koje su korištene u ostvarivanju Cezarove šifre dan je na Slici 6.6.

Unutar apstraktne klase Cezar, koja nasljeđuje sučelje IKriptoAlgoritam zadana su dva polja znakova otvorenaAbeceda i sifriranaAbeceda. Kako je otvorena abeceda jednaka za sve podmetode, onda je pripadajuće polje znakova ispunjeno slovima abecede. Šifrirana abeceda je za svaku podmetodu različita, pa će ona biti definirana zasebno u svakoj podmetodi. Nadalje, unutar apstraktne klase definirano je svojstvo Kljuc, kojim se omogućuje dohvaćanje i postavljanje ključa. Kako je ključ različit za svaku podmetodu, on će biti definiran zasebno u svakoj podmetodi. Također, unutar klase su definirane i funkcije za enkripciju i dekripciju teksta. Ostvarivanje enkripcije i dekripcije je trivijalna jer se temelji na pretraživanju otvorene abecede i zamjeni nađenog slova sa slovom koje se nalazi u šifriranoj abecedi na mjestu s istim indeksom.

Kako postoje četiri podmetode Cezarove šifre, tako postoje i četiri klase koje nasljeđuju apstraktnu klasu Cezar. Kako je za svaku podmetodu različita samo šifrirana abeceda, onda se unutar konstruktora svake klase definira šifrirana abeceda na temelju unesenog ključa.

Kod originalne Cezarove šifre ključ je konstantan i predstavlja pomak otvorene abecede. Zato se unutar konstruktora klase Cezar_1 definira šifrirana abeceda. Korisniku u ovom slučaju nije omogućena izmjena ključa pa nema potreba za definiranjem svojstva Kljuc iz klase Cezar.

Kod Cezarove šifre s proizvoljnim pomakom ključ predstavlja pomak otvorene abecede i može biti proizvoljan. Dakle, korisniku je u ovom slučaju omogućena izmjena ključa. Zato se unutar klase Cezar_2 definira svojstvo Kljuc unutar kojeg se vrši provjera ispravnosti ključa. Ključ je ispravan ako sadrži barem jedan znak, ako su svi znakovi brojevi i ako su to brojevi od 2 do 25. Unutar konstruktora klase Cezar_2 definira se šifrirana abeceda koja nastaje pomakom otvorene abecede za vrijednost zadanog ključa.

Kod Cezarove šifre s permutiranom abecedom ključ predstavlja cijela šifrirana abeceda koja može biti proizvoljna. Dakle, korisniku je u ovom slučaju omogućena izmjena ključa. Zato se unutar klase Cezar_3 definira svojstvo Kljuc unutar kojeg se vrši provjera ispravnosti ključa. Ključ je ispravan ako sadrži točno 26 znakova, ako su svi znakovi slova i ako su sva slova različita. Unutar konstruktora klase Cezar_3 definira se šifrirana abeceda koja nastaje izravnim kopiranjem ključa u nju znak po znak.

25

Page 31: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Slika 6.35 Dijagram klasa za Cezarovu šifru

Kod Cezarove šifre s ključem ključ predstavlja neka ključna riječ ili fraza i ona može biti proizvoljna. Dakle, korisniku je u ovom slučaju omogućena izmjena ključa. Zato se unutar klase Cezar_4 definira svojstvo Kljuc unutar kojeg se vrši provjera ispravnosti ključa. Ključ je ispravan ako sadrži barem jedno slovo i ako sadrži samo slova. Ovaj dio koda pokreće se prilikom ranije spomenute provjere ispravnosti ključa. Unutar konstruktora klase Cezar_4 definira se šifrirana abeceda koja nastaje tako da se na početak stavi ključ bez znakova koji se ponavljaju, a zatim se pomoću otvorene abecede redom upisuju slova koja se već ne nalaze u ključu.

26

Page 32: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

6.3.3. Vigenèreova šifra

Dijagram klasa koje su korištene u ostvarivanju Vigenèreove šifre dan je na Slici 6.7.

Slika 6.36 Dijagram klasa za Vigenèreovu šifru

Unutar apstraktne klase Vigenere, koja nasljeđuje sučelje IKriptoAlgoritam zadana su dvije varijable identifikator i tablica. Identifikator je niz znakova koji određuje ključ. Identifikator služi za definiranje redoslijeda primjene šifriranih abeceda. Kako se ključ razlikuje za sve podmetode, onda se pripadajuće polje znakova definira u klasama podmetoda. Tablica je za sve podmetode ista pa se ona definira u klasi Vigenere. Nadalje, unutar apstraktne klase definirano je svojstvo Kljuc, kojim se omogućuje dohvaćanje i postavljanje ključa. Kako je ključ različit za svaku podmetodu, on će biti definiran zasebno u svakoj podmetodi. Također, unutar klase su definirane i funkcije za enkripciju i dekripciju teksta. Ostvarivanje enkripcije i dekripcije identično je za prve dvije podmetode. Enkripcija se temelji na pretraživanju tablice tako da se u prvom retku potraži slovo otvorenog teksta, a u prvom stupcu slovo iz identifikatora. Indeksi na kojima se nalaze ta slova određuju slovo šifriranog teksta. Dekripcija se temelji na pretraživanju prvog stupca tablice tako da se u njemu nađe slovo iz identifikatora i onda se u tom retku pronađe slovo šifriranog teksta.

27

Page 33: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Indeks stupca tog mjesta određuje slovo otvorenog teksta koji se nalazi u prvom retku. Kod treće podmetode problem nastaje u autoključu. Naime, u tom slučaju ne postoji identifikator koji se može zadati u klasi podmetode, nego on ovisi o otvorenom tekstu. Zbog toga se u funkciju enkripcija i dekripcija šalje i varijabla provjera koja će postati jedan samo ako je pozvana ova podmetoda. Ukoliko se to dogodi poziva se funkcija koja će jednom proći po tablici i otvorenom, odnosno šifriranom tekstu i popuniti identifikator, a zatim se nastavlja klasičan postupak enkripcije, odnosno dekripcije.

Kako postoje tri podmetode Vigenèreove šifre, tako postoje i tri klase koje nasljeđuju apstraktnu klasu Vigenere. Kako je za svaku podmetodu različit samo identifikator, onda se unutar konstruktora svake klase definira identifikator na temelju unesenog ključa, osim kod zadnje podmetode.

Kod Trithemiusove šifre ključa nema jer se kriptiranje obavlja redom po tablici. Zbog dosljednosti se onda uzima da je ključ zapravo cijela abeceda. Zato se unutar konstruktora klase Vigenere_1 definira identifikator koji sadrži redom sva slova iz abecede. Korisniku u ovom slučaju nije omogućena izmjena ključa pa nema potreba za definiranjem svojstva Kljuc iz klase Vigenere.

Kod Belasove šifre ključ predstavlja abecede i može biti proizvoljan. Dakle, korisniku je u ovom slučaju omogućena izmjena ključa. Zato se unutar klase Vigenere_2 definira svojstvo Kljuc unutar kojeg se vrši provjera ispravnosti ključa. Ključ je ispravan ako sadrži barem jedno slovo i ako sadrži samo slova. Ovaj dio koda pokreće se prilikom ranije spomenute provjere ispravnosti ključa. Unutar konstruktora klase Vigenere_2 definira se identifikator koji nastaje direktnim kopiranjem ključa.

Kod originalne Vigenerèove šifre ne postoji ključ nego se zadaje autoključ koji može biti proizvoljan. Dakle, korisniku je u ovom slučaju omogućena izmjena ključa. Zato se unutar klase Vigenere_3 definira svojstvo Kljuc unutar kojeg se vrši provjera ispravnosti ključa. Ključ je ispravan ako sadrži samo jedan znak i taj znak mora biti slovo. Ovaj dio koda pokreće se prilikom ranije spomenute provjere ispravnosti ključa. Unutar konstruktora klase Vigenere_3 definira se početak identifikatora koji se kasnije nadopunjava kao što je ranije navedeno.

6.3.4. Playfairova šifra

Dijagram klasa koje su korištene u ostvarivanju Playfairove šifre dan je na Slici 6.8.

Unutar apstraktne klase Playfair, koja nasljeđuje sučelje IKriptoAlgoritam zadano je dvodimenzionalno polje znakova matrica. Kako se matrica razlikuje za svaku podmetodu jer ovisi o ključu ona se definira zasebno u svakoj podmetodi. Nadalje, unutar apstraktne klase definirano je svojstvo Kljuc, kojim se omogućuje dohvaćanje i postavljanje ključa. Kako je ključ različit za svaku podmetodu, on će biti definiran zasebno u svakoj podmetodi. Također, unutar klase su definirane i funkcije za enkripciju i dekripciju teksta. Ostvarivanje enkripcije i dekripcije je trivijalno jer se temelji na pretraživanju matrice i zamjeni nađenih slova sa slovima po pravilima.

Kako postoje dvije podmetode Playfairove šifre, tako postoje i dvije klase koje nasljeđuju apstraktnu klasu Playfair. Kako je za svaku podmetodu različita matrica, onda se unutar konstruktora svake klase definira matrica na temelju unesenog ključa.

Kod Playfairove šifre bez ključa ključ ne postoji jer matrica sadrži abecedu. Zbog dosljednosti se onda uzima da je ključ zapravo cijela abeceda. Zato se unutar konstruktora klase Playfair_1 definira matrica tako da se polja popune redom po redovima abecedom. Korisniku u ovom slučaju nije omogućena izmjena ključa pa nema potreba za definiranjem svojstva Kljuc iz klase Playfair.

28

Page 34: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Slika 6.37 Dijagram klasa za Playfairovu šifru

Kod Playfairove šifre s ključem ključ predstavlja neka ključna riječ ili fraza i ona može biti proizvoljna. Dakle, korisniku je u ovom slučaju omogućena izmjena ključa. Zato se unutar klase Playfair_2 definira svojstvo Kljuc unutar kojeg se vrši provjera ispravnosti ključa. Ključ je ispravan ako sadrži barem jedno slovo i ako sadrži samo slova. Ovaj dio koda pokreće se prilikom ranije spomenute provjere ispravnosti ključa. Unutar konstruktora klase Playfair_2 definira se matrica koja nastaje tako da se na početak stavi ključ bez znakova koji se ponavljaju, a zatim se pomoću abecede redom upisuju slova koja se već ne nalaze u ključu.

6.3.5. "Cik-cak" šifra

Dijagram klasa koje su korištene u ostvarivanju "cik-cak" dan je na Slici 6.9.

Unutar apstraktne klase Cikcak, koja nasljeđuje sučelje IKriptoAlgoritam zadana je cjelobrojna varijabla grede koja označava broj redaka koji se koriste prilikom kriptiranja. Iako ova metoda nema podmetode, radi dosljednosti se definira klasa kao da podmetoda postoji i

29

Page 35: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

u njoj se obavlja definicija broja redaka jer ovisi o ključu. Nadalje, unutar apstraktne klase definirano je svojstvo Kljuc, kojim se omogućuje dohvaćanje i postavljanje ključa. Također, unutar klase su definirane i funkcije za enkripciju i dekripciju teksta. Enkripcija se obavlja tako da se na početku definira matrica koja ima broj redaka jednak broju greda i broj stupaca jednak duljini otvorenog teksta. Matrice se na početku popuni točkama koje predstavljaju neutralne znakove. Zatim se matrica počinje ispunjavati slovima po pravilu te se čita po redovima da bi se dobio šifrirani tekst. Dekripcija se izvodi tako da se najprije matrica popuni točkama i da se nakon toga obavi jednak postupak punjenja matrice kao i kod enkripcije samo što se puni sa slovima X. Nakon toga se redom prolazi po matrici i unosi se šifrirani tekst na ona mjesta na kojima se nalazi slovo X. Zatim se ponovi postupak kao i kod enkripcije da bi se iščitao otvoreni tekst.

Slika 6.38 Dijagram klasa za "cik-cak" šifru

Kako ne postoje podmetode ove šifre, tako postoji samo jedna klase koja nasljeđuje apstraktnu klasu Cikcak. Unutar konstruktora te klase definira se varijabla grede koja ovisi o ključu. Ključ kod ove šifre predstavlja broj i on može biti proizvoljan. Dakle, korisniku je u ovom slučaju omogućena izmjena ključa. Zato se unutar klase Cikcak_1 definira svojstvo Kljuc unutar kojeg se vrši provjera ispravnosti ključa. Ključ je ispravan ako sadrži barem jedan znak i ako sadrži samo slova u rasponu od 2 do 20.

30

Page 36: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

6.3.6. Stupčana šifra

Dijagram klasa koje su korištene u ostvarivanju stupčane šifre dan je na Slici 6.10.

Unutar apstraktne klase Stupcana, koja nasljeđuje sučelje IKriptoAlgoritam zadana je cjelobrojna varijabla brojstupaca koja označava broj stupaca koji se koriste prilikom kriptiranja i cjelobrojno polje redcitanja koji služi za spremanje redoslijeda čitanja stupaca. Iako ova metoda nema podmetode, radi dosljednosti se definira klasa kao da podmetoda postoji i u njoj se obavlja definicija broja stupaca i redoslijeda čitanja varijabli jer obje vrijednosti ovise o ključu. Nadalje, unutar apstraktne klase definirano je svojstvo Kljuc, kojim se omogućuje dohvaćanje i postavljanje ključa. Također, unutar klase su definirane i funkcije za enkripciju i dekripciju teksta. Enkripcija i dekripcija su trivijalne jer se temelje na punjenju matrice sa slovima po redovima, odnosno stupcima, i čitanju po stupcima, odnosno redovima, da bi se dobilo rješenje.

Slika 6.39 Dijagram klasa za stupčanu šifru

31

Page 37: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Kako ne postoje podmetode ove šifre, tako postoji samo jedna klase koja nasljeđuje apstraktnu klasu Stupcana. Unutar konstruktora te klase definira se varijabla brojstupaca koja ovisi o duljini ključu. Ključ kod ove šifre predstavlja riječ i može biti proizvoljan. Dakle, korisniku je u ovom slučaju omogućena izmjena ključa. Zato se unutar klase Stupcana_1 definira svojstvo Kljuc unutar kojeg se vrši provjera ispravnosti ključa. Ključ je ispravan ako sadrži barem jedan znak, ako su svi znakovi slova i ako su sva slova različita. Ovaj dio koda pokreće se prilikom ranije spomenute provjere ispravnosti ključa. Redoslijed čitanja određuje se tako da se slova unutar ključa pretvore u ASCII vrijednosti te se polje sortira i te se pomoću pomoćnog polja pamti indeks mjesta na kojem se nalazio pojedini broj i tako se određuje koji stupac kojim redom treba pročitati.

32

Page 38: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

7. Zaključak

Povijest klasične kriptografije je vrlo opširna tema i zato je bilo teško izabrati dijelove koje je obuhvatio ovaj rad. Povijesno gledajući najzanimljiviji dio klasične kriptografije je zasigurno razdoblje Prvog i Drugog svjetskog rata u kojima su šifre i kriptoanalitičari odigrali glavnu ulogu. No, uz nedostatak vremena i u skladu sa zadanom temom područje je suženo na same definicije najpoznatijih kriptografskih algoritama toga doba. Tako su opisane najvažnije supstitucijske i transpozicijske šifre. Također, uspješno je napravljeno programsko rješenje koje zadani otvoreni tekst uz odabranu metodu enkriptira u šifrirani tekst i obrnuto. Od supstitucijskih šifri ostvarene su hebrejska šifra, Cezarova šifra, Vigenèreova šifra i Playfairova šifra. Od transpozicijskih šifri ostvarene su tzv. "cik-cak" šifra i stupčana šifra.

Dobiveni programski sustav se lako može nadograditi. Moguće je ostvariti preostale transpozicijske i supstitucijske šifre, te grafički prikazati samu izvedbu nekih od kriptografskih strojeva iz vremena klasične kriptografije. Također, moguće su i nadogradnje i za neke algoritme iz moderne kriptografije jer su i one bazirane na ključu i određenom algoritmu koji ovisi o ključu.

33

Page 39: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

8. Literatura

[1] Dujella A., Maretić M., Kriptografija, Zagreb, Element, 2007.

[2] Singh S., Šifre, Kratka povijest kriptografije, Zagreb, Mozaik knjiga, 2003.

[3] Kahn D., Šifranti protiv špijuna I-IV, Zagreb, Centar za informacije i publicitet, 1979.

[4] Dujella A., Maretić M., Kriptografija, dostupno na Internet adresi: http://web.math.hr/~duje/kript/kriptografija.html, travanj 2008.

[5] Cryptography, dostupno na Internet adresi: http://en.wikipedia.org/wiki/Cryptography, travanj 2008.

[6] Galinović A., Povijest kriptografije, travanj 2005., dostupno na Internet adresi: http://web.zpr.fer.hr/ergonomija/2005/galinovic/index.html, travanj 2008.

[7] Ahel R., Povijest kriptografije, 2002., dostupno na Internet adresi: http://os2.zemris.fer.hr/stari_web/povijest/ahel/Site/index.htm, travanj 2008.

[8] Crypto Machine, dostupno na Internet adresi: http://www.jproc.ca/crypto/, travanj 2008.

[9] Kuharić S., Povijest kriptografije, dostupno na Internet adresi: http://fly.srk.fer.hr/~peloquin/OPCENITO/Povijest_Kriptografije.htm, travanj 2008.

[10] Tanenbaum A. S., Computer Networks, New Jersey, Prentice Hall, 2003.

34

Page 40: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Sažetak

Radno okruženje za klasične kriptografske algoritme

Kriptografija je znanost koja koristi matematiku i lingvistiku za kriptiranje podataka. Time se omogućuje tajno komuniciranje između dvije strane tako da treća strana ne može doći do značenja poruke bez ključa ili ukoliko se ne upusti u kriptoanalizu. Unutar klasične kriptografije postoje dvije vrste algoritama. Prvu vrstu čine supstitucijske šifre kod kojih se svako slovo otvorenog teksta zamjenjuje nekim drugim slovom. Drugu vrstu čine transpozicijske šifre kod kojih slova u otvorenom tekstu mijenjaju svoje položaje čime nastaje anagram.

Ključne riječi: kriptografija, klasična kriptografija, supstitucijske šifre, transpozicijske šifre, enkripcija, dekripcija

35

Page 41: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Abstract

Working Environment for Classical Cryptographic Algorithms

Cryptography is a science that uses mathematics and linguistics for encrypting data. This allows secret communication between two sides, so that a third party can't understand the meaning of the message without key or successful cryptoanalysis. Within classical cryptography there are two types of algorithms. The first type consists of substitution ciphers which replace every letter from open text with some other letter. The second type consists of transposition ciphers which exchange positions of letters from open text, thus creating anagram.

Key words: cryptography, classical cryptography, substitution cipher, transposition cipher, encryption, decryption

36

Page 42: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Dodatak A

Tragična sudbina Marije Stuart

Englezi su sredinom 16. stoljeća htjeli destabilizirati Škotsku, no problem im je predstavljala Marija Stuart. Nakon smrti oca, Marija je okrunjena sa samo devet mjeseci. Taj je detalj onemogućio napade Engleza jer se taj čin smatrao neviteškim. Zbog toga je engleski kralj htio dogovoriti ženidbu između svog sina i Marije, ali je njena majka već dogovorila brak s francuskim prijestolonasljednikom Franjom. Zato je engleski kralj napao Škotsku, pa je Mariju majka poslala u Francusku. U Francuskoj se Marija udala za Franju, koji je ubrzo umro. Od tog trenutka Mariji su se počele nizati same tragedije.

Odlučila se vratiti u Škotsku, no, kako je bila odgojena u strogom katoličanstvu, tamo su je dočekali samo problemi. Naime, Škotska je pod utjecajem Engleske sve više prihvaćala protestantizam. Njezina druga dva braka ubrzo su propala, a jedina svijetla točka bilo je rođenje sina Jakova VI. Protestanti su je nakon toga zatočili. Uspjela je pobjeći i probala je još jedanput vratiti krunu, no to joj nije pošlo za rukom. Pri drugom bijegu otišla je u Englesku, jer se nadala da će joj rođakinja Elizabeta pružiti utočište. No, Marija je bila zakonita nasljednica engleskog prijestolja i Elizabeta se bojala da bi joj ova mogla preoteti krunu. Zato je Marija ponovno završila u zatvoru. Nakon osamnaest godina Marija gubi sve povlastice, a najviše ju je pogodilo to što se njezin sin, nakon što je naslijedio prijestolje okrenuo protiv nje misleći da mu je ona ubila oca.

Nakon nekog vremena Marija je počela dobivati pisma pristaša na kontinentu, koja je prokrijumčario Gifford. U isto vrijeme, bez njezina znanja, kovao se plan njezina oslobođenja, u kojem je glavnu riječ imao Babington. On je u jednom pismu naveo da je papa izopćio Elizabetu iz crkve, što je po njemu bio dovoljan razlog za početak planiranja Elizabetinog ubojstva. Radi sigurnosti sva je svoja pisma dodatno šifrirao pomoću nomenklatora. No, nitko nije znao da je Gifford dvostruki agent, jer je radio i za Walsinghama, glavnog tajnika kraljice Elizabete. On bi svako pismo prvo odnio Walsinghamu, koji bi nakon prepisivanja pisma, pismo ponovno zapečatio i dao uručiti Mariji. Phelippes, jedan od najboljih engleskih kriptoanalitičara, svako primljeno pismo je odmah dešifrirao, tako da je Elizabeta saznala za planirano ubojstvo te je sve pomagače dala uhitili i pogubili, a Mariji je zakazano suđenje. No, Elizabeta nije vjerovala da bi Marija učinila takvo što, pa je tražila dokaze. I upravo u ovom trenutku, po prvi puta je sudbina jednog čovjeka ovisila o sigurnosti šifre. Phelippes je kao dokaz donio dekodirana sva njena pisma, zbog čega je ona osuđena na smrt.

Nakon ovog čina, uvidjela se slabost nomenklatora i monoalfabetske supstitucijske šifre, pa se sve više počinje razvijati polialfabetska supstitucijska šifra u kojoj postoji više ključeva, tj. više abeceda koje se služe za šifriranje.

37

Page 43: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Dodatak B

Soba broj 40 i magični telegram

Na prvi dan 1. svjetskog rata, 5. kolovoza 1914. godine, Britanci su prerezali njemačke transatlantske komunikacijske kablove i time prekinuli glavnu komunikacijsku liniju Njemačke s vanjskim svijetom. Nijemcima nije preostalo ništa drugo nego koristiti radio i kablove koji su bili pod kontrolom neprijatelja, čime su im davali sve svoje planove izravno u ruke. Doduše, preduvjet je bio da je neprijatelj znao dekriptirati te poruke. Zbog toga su i Rusi i Britanci često krali kriptografske knjige koje su nalazili na njemačkim potonulim brodovima i podmornicama. Zbog takvog položaja Nijemci su vrlo često mijenjali ključeve, točnije svaki dan u ponoć, pa su Britanci pod vodstvom Ewinga, otvorili ured koji se bavio razbijanjem šifri. Taj ured je nekoliko puta mijenjao lokaciju i proširivao osoblje, ali je uvijek neformalno zadržao naziv Soba broj 40, po sobi u kojoj se prvi puta nalazio. Kriptoanalitičari su imali brojnih uspjeha i neuspjeha tijekom rata, no, pridonijeli su mnogo samom tijeku ratovanja. Nakon nekog vremena, Ewinga je naslijedio načelnik Obavještajne službe ratne mornarice, kapetan Hall, koji je imao veliku ulogu u nastavku ratovanja.

Nijemci su u to vrijeme ponovno spremali napad na britansku flotu, ali su se bojali da pritom ne bi slučajno oštetili koji od američkih brodova, koji su u to vrijeme bili vrlo blizu britanske granice. Naime, Amerikanci su bili neutralni i predsjednik Wilson nije želio ući u rat, pa su se Nijemci bojali da bi ovim činom on mogao promijeniti mišljenje. Zbog toga se njemački ministar Zimmermann odlučio na pothvat koji je promijenio povijest. Odlučio je sklopiti savez s Meksikom, kako bi, ukoliko uđu u rat, Amerikanci ipak ostali voditi bitku na svom teritoriju. No, tu poruku nije mogao direktno poslati Meksiku, nego je sve išlo preko njemačkog veleposlanstva u Americi, koristeći komunikacijske kanale neutralne Švedske. Telegram je bio šifriran novim 0075 kodom. No, Britanci su ga presreli jer im je način kodiranja bio poznat, i kad su otkrili dijelove poruke ostali su zaprepašteni. Admiral Hall nije htio poduzimati ništa. Naime, da je javio Amerikancima za telegram, ne bi im mogao priznati da presreću poštu, jer bi oni mogli posumnjati da presreću i američke poruke, zbog čega ih ovi možda ne bi gledali kao saveznike. S druge strane, mislio je da će Njemačka ionako napasti flotu i sama uvući Amerikance na protivničku stranu.

Njemačka se odlučila za napad, no Wilson, unatoč oštećenim brodovima, nije htio ući u rat. To je iznenadilo Britance, koji su se odlučili za najznačajniji potez u Prvom svjetskom ratu. Uvukli su Amerikance u rat na vrlo zanimljiv način. Naime, nisu mogli Amerikancima predati poruku koju su presreli pa su se dosjetili da bi mogli doći do poruke koja je putovala od njemačkog veleposlanstva u Americi do veleposlanstva u Meksiku. Kako je šifra 0075 bila presložena za Meksikance, veleposlanik Bernstorff ju je morao prekodirati u šifru 13040, pa su tako Britanci mogli doći do njenog cijelog sadržaja i biti sigurni da se cijela stvar događala izvan Britanije. Uspješno su došli do te poruke i poslali je Wilsonu, koji je objavio rat Njemačkoj, a taj trenutak nazvao najdramatičnijim trenutkom u životu i povijesti. Da nije bilo kriptografije i te poruke, Amerika nikada ne bi ušla u Prvi svjetski rat.

38

Page 44: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Dodatak C

Dodavanje nove metode u projekt

Nakon otvaranja projekta potrebno je dodati neke dijelove u mapu Kriptografija i neke dijelove u samu formu koja se nalazi u mapi Forme. Obje mape nalaze se unutar Solution Explorera u projektu pod imenom MetodeKriptografije.

Dodaci u formi frmGlavna.cs

Nakon otvaranja glavne forme, koja se nalazi u datoteci frmGlavna.cs, potrebno je unutar Designe dijela dodati iz Toolboxa jedan RadioButton unutar groupBox2 koji nosi ime Metoda. Unutar Propertiesa potrebno je pod Name unijeti ime rbAX, gdje je X broj za jedan veći od broja koji se nalazi na istom mjestu kod gumba koji se nalazi iznad. Pod Text potrebno je unijeti ime metode, koje će se prikazivati prilikom pokretanja aplikacije.

Unutar Code dijela potrebno je izvršiti slijedeće preinake.

1. U pobrojeni tip podataka public enum Metoda dodati ime nove šifre.

2. U pobrojani tip podataka public enum Podmetoda dodati imena podmetoda ukoliko postoji više podmetoda metode koja se unosi, a ukoliko ne postoji više podmetoda onda se unese samo ime glavne metode.

3. Unutar dijela koda pod imenom "izbor postupka i metode te generiranje podmetoda" potrebno je slijedeće.

Unutar dijela koda pod imenom "metoda" u funkciji private void ProvjeriOznacenuMetodu(); na kraj dodati još jedan else-if blok identičan bloku prije. Imena unutar bloka prilagoditi novoj metodi. Na kraju ovog dijela koda dodati funkciju private void rbAX_CheckedChanged(object sender, EventArgs e); identičnu funkciji koja se nalazi iznad nje. Umjesto slova X unijeti broj gumba.

Unutar dijela koda pod imenom "podmetoda" u funkciji private void DodajIzbornik(Metoda metoda); pred kraj dodati još jedan case blok identičan bloku prije. Imena unutar bloka prilagoditi novoj metodi. Ukoliko metoda nema podmetode dodaje se samo glavna metoda.

4. Unutar dijela koda pod imenom "izbor podmetode te generiranje opisa i ključa" potrebno je u funkciji private void ProvjeriOznacenuPodmetodu(); pred kraj dodati još jedan case blok identičan bloku prije. Imena unutar bloka potrebno je prilagoditi novoj metodi. Također, ovisno o boju podmetoda potrebno je napraviti prikladan broj case blokova unutar unesenog case bloka. Unutar svakog case bloka za pojedinu podmetodu potrebno je unijeti jedan ključ kao primjer ukoliko on postoji i opis podmetode.

5. Unutar dijela koda pod imenom "validacija ključa" potrebno je u funkciji private void tbKljuc_Validating(object sender, CancelEventArgs e); pred kraj dodati još jedan case blok identičan bloku prije. Imena unutar bloka potrebno je prilagoditi novoj metodi. Također, ovisno o boju podmetoda potrebno je napraviti prikladan broj case blokova unutar unesenog case bloka. Unutar svakog case bloka za pojedinu podmetodu potrebno je pokušati stvarati novu klasu i konstruktor za tu podmetodu ukoliko ta podmetoda mora imati ključ.

39

Page 45: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

6. Unutar dijela koda pod imenom "RESET button" potrebno je u funkciji private void bReset_Click(object sender, EventArgs e); dodati redak koji postavlja označenost novog gumba na laž.

7. Unutar dijela koda pod imenom "START button" potrebno je u funkciji private void bStart_Click(object sender, EventArgs e); pred kraj dodati jedan case blok identičan bloku prije. Imena unutar bloka potrebno je prilagoditi novoj metodi. Također, ovisno o boju podmetoda potrebno je napraviti prikladan broj case blokova unutar unesenog case bloka. Unutar svakog case bloka za pojedinu podmetodu potrebno je stvarati novi objekt podmetode.

Na kraju je potrebno povezati događaje s označavanjem novog gumba i to tako da se unutar Propertiesa novog gumba na vrhu odabere Event oznaka i na mjesto pod imenom CheckChanged upiše ime funkcije rbAX_CheckedChanged, gdje X predstavlja broj gumba.

Dodaci u mapi Kriptografija

Unutar mape kriptografija potrebno je dodati dvije nove datoteke za novu metodu pod imenima Ime.cs i ImeMetode.cs.

Unutar datoteke Ime.cs stvara se nova klasa koja mora biti javna i apstraktna i mora nasljeđivati sučelje IKriptoalgoritam. Unutar te klase definira se string Kljuc koji se može samo postaviti i dohvatiti ako on postoji. Nadalje klasa mora sadržavati funkcije za enkripciju i dekripciju čije su definicije:public string Enkriptiraj(string otvoreniTekst, int podmetoda);

public string Dekriptiraj(string sifriraniTekst, int podmetoda);

Unutar datoteke ImeMetode.cs stvara se onoliko klasa koliko postoji podmetoda. Ukoliko podmetoda ne postoji stvara se samo jedna klasa. Svaka klasa mora biti javna i mora nasljeđivati klasu koja je definirana u datoteci Ime.cs. Prilikom dodjele imena klasa mora se paziti na se upotrijebe ona imena koja su se već odredila u frmGlavna.cs. Ukoliko neka od podmetoda sadrži ključ, onda konstruktor te klase prima ključ i pokuša stvarati Kljuc tako da mu pridruži ulaznu vrijednost. Unutar public string Kljuc postavlja se i dohvaća ključ, te se provjerava njegova ispravnost. Dakle, ove klase služe za definiciju svih onih stvari po kojima se određene podmetode razlikuju.

40

Page 46: Završni rad - FERsigurnost.zemris.fer.hr/algoritmi/2008_ceri/ispis/... · Web viewNaime, Babbage je bio poznat po svojoj bujnoj mašti i nedovršenim projektima, pa je moguće da

Dodatak D

41