SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

DIPLOMSKI RAD br. 1218

IZRADA SAMOSTALNOG KRIPTOGRAFSKOG 

MODULA

Tomislav Šakić

 

 

 
 
 
 
 
 
 
 
 
 

 

Zagreb, rujan 2000.

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

 
 
 
 
 
 

SADRŽAJ

 

1.

   

            

   UVOD

 

 

2.

   

            

   OSNOVE KRIPTOGRAFIJE

 

 

2.1.

   

               

   

POVIJEST KRIPTOGRAFIJE

 

 

2.2.

   

               

   

DEFINICIJA KRIPTOGRAFIJE

 

 

2.3.

   

               

   

DEFINICIJA ENKRIPCIJE I DEKRIPCIJE

 

 

2.3.1.

 

 

 

  

 

  

 

  

 

  

 

  Simetrični algoritmi

 

 

2.3.2.

 

 

 

  

 

  

 

  

 

  

 

  Asimetrični algoritmi

 

 

2.4.

   

               

   

GENERATOR KRIPTOGRAFSKO SIGURNIH PSEUDO-SLUČAJNIH BROJEVA

 

 

2.5.

   

               

   

JEDNOSTRANA HASH FUNKCIJA

 

 

2.6.

   

               

   

DIGITALNO POTPISIVANJE PORUKA

 

 

2.7.

   

               

   

KRIPTOANALIZA

 

 

3.

   

            

   SUČELJE MODULA

 

 

3.1.

   

               

   

POČETAK RADA

 

     - POSTAVLJANJE KONTEKSTA

 

 

3.1.1.

 

 

 

  

 

  

 

  

 

  

 

  Funkcija CPAcquireContext

 

 

3.2.

   

               

   

KREIRANJE KLJUČEVA

 

 

3.2.1.

 

 

 

  

 

  

 

  

 

  

 

  Funkcija CPGenKey

 

 

3.3.

   

               

   

RAZMJENA KRIPTOGRAFSKIH KLJUČEVA

 

 

3.3.1.

 

 

 

  

 

  

 

  

 

  

 

  Funkcija CPExportKey

 

 

3.3.2.

 

 

 

  

 

  

 

  

 

  

 

  Funkcija CPImportKey

 

 

3.4.

   

               

   

ENKRIPCIJA I DEKRIPCIJA PODATAKA

 

 

3.4.1.

 

 

 

  

 

  

 

  

 

  

 

  Funkcija CPEncrypt

 

 

3.4.2.

 

 

 

  

 

  

 

  

 

  

 

  Funkcija CPDecrypt

 

 

3.5.

   

               

   

HASH-VRIJEDNOSTI I DIGITALNO POTPISIVANJE

 

 

3.5.1.

 

 

 

  

 

  

 

  

 

  

 

  Funkcija CPHashData

 

 

3.5.2.

 

 

 

  

 

  

 

  

 

  

 

  Funkcija CPSignHash

 

 

3.6.

   

               

   

USPOREDBA S CRYPTOAPI SUČELJEM

 

 

4.

   

            

   IMPLEMENTACIJA MODULA

 

 

4.1.

   

               

   

OSNOVNI RAZREDI

 

 

4.1.1.

 

 

 

  

 

  

 

  

 

  

 

  Razred za rad sa kontekstima: CContextManager

 

 

4.1.2.

 

 

 

  

 

  

 

  

 

  

 

  Razred za rad sa ključevima: CKeyDataManager

 

 

background image

bi zadovoljio potrebe širenja informacijskog društva u kojem živimo. Teško je danas zamisliti 
ozbiljnu poslovnu aplikaciju koja u sebi nema riješen sigurnosni podsustav, počev od bankarskih 
aplikacija, internet-dućana, pa sve do samih operacijskih sustava. Upravo zbog tako brzog razvoja 
i promjena kriptografskih algoritama javlja se smjernica odvajanja kriptografskog podsustava od 
ostatka aplikacije. Time se olakšava zamjena i unapređivanje kriptografskog sustava, bez veće 
promjene glavne aplikacije.

Odvojeni kriptografski modul s jednostavnim sučeljem visoke razine omogućava programeru bez 
prethodnog   iskustva   u   kriptografiji   laku   i   brzu   ugradnju   kriptografskih   algoritama   u   njegov 
proizvod. Laka i brza ugradnja znači i manje troškove razvoja proizvoda. Vanjska implementacija 
modula   omogućava   laganu   modularnu   zamjenu   kriptografskog   algoritma   kada   je   vrijeme   za 
nadogradnju uz minimalne promjene na proizvodu.

U   ovom   radu   se   opisuje   izrada   kriptografskog   modula 

CryptoLib

 koji   implementira   po   jedan 

algoritam   za   učinkovito   kriptiranje   podataka

[3]

,   razmjenu   ključeva   i   potpisivanje.   Pri   odabiru 

algoritama koji su bili dostupni presudila je njihova sigurnost. Po mišljenjima većine poznatih 
stručnjaka   u   kriptografiji,   jedan   od   najboljih   algoritam   za   simetrično   kriptiranje   podataka   je 
IDEA, koja se do danas pokazala bez većih slabosti. Nepisani standard za razmjenu ključeva je 
RSA algoritam, koji je, iako star više od 20 godina, još uvijek siguran za dovoljno dugačke 
ključeve. Najbolji odabir algoritma za pripremanje poruka za potpis je SHA.

Sučelje   kriptografskog   modula 

CryptoLib

 je   izvedeno   iz   funkcija   već 

postojećeg 

CryptoAPI

[4]

 sučelja   radi   pojednostavljenja   upotrebe   kriptografskog   modula.   Slični 

nazivi funkcija i isti parametri omogućavaju veliku brzinu implementacije novog kriptografskog 
modula u već postojeće proizvode koji rade sa 

CryptoAPI

sučeljem. Ipak, sučelje 

CryptoLib

 je 

bitno pojednostavljeno u odnosu na 

CryptoAPI

  i oblikovano je u smjeru konkretne primjene, a to 

je u ovom slučaju sigurna komunikacija između dva korisnika.

Cilj   ovog   rada   je   razmotriti   sve   mogućnosti   i   probleme   pri   izradi   kriptografskog   modula   u 
višekorisničkom i višezadaćnom operacijskom sustavu.

2.

       

OSNOVE KRIPTOGRAFIJE

 

2.1.

    

POVIJEST KRIPTOGRAFIJE

Kriptografija ima dugu i zanimljivu, ali prilično tajnovitu prošlost. Počev od starih Egipćana prije 
nekih 4000 godina, pa sve do dvadesetog stoljeća, kada je igrala ključnu ulogu u ishodima oba 
svjetska   rata.   Najvažniji   nosioci   razvoja   kriptografije   su   bili   vojska   i   diplomatske   službe,   tj. 
državne organizacije uopće. Kriptografija je korištena kao alat za zaštitu državnih tajni. Zbog toga 
je njen razvoj sve do druge polovice dvadesetog stoljeća bio praćen s rijetkim publikacijama, od 
kojih se ističu dvije povijesno značajne: William F. Friedman:

The Index of Coincidence and Its 

Applications in Cryptography

[5]

 

(1918); i Claude Shannon:

 The Communication Theory of Secrecy 

Systems

[6]

 

(1949). Zanimljivo je da su obje publikacije došle nakon svjetskog rata i da u sebi 

sadrže pregled napretka koji je učinjen u sklopu vojnih istraživanja za vrijeme rata.

Razvoj i širenje računalnih i komunikacijskih sustava u 1960-tim godinama donio je veći interes 

za zaštitu podataka iz privatnog sektora. Početak razvoja na tom polju označio je Feistel u IBM-u 
ranih 1970-tih godina, a kulminacija njegovog rada došla je 1977., kada je usvojen američki 
standard za kriptiranje podataka pod imenom DES (

Data Encryption Standard)

. Taj je standard 

postao najpoznatiji kriptografski algoritam u povijesti, i još uvijek se koristi kao uobičajeni način 
osiguravanja elektroničkog poslovanja u mnogim financijskim institucijama širom svijeta.

No   ipak,   najveći   napredak   u   povijesti   kriptografije   donijeli   su   1975.   Diffie   i   Hellman   u 
članku 

New Directions in Cryptography

[7]

, opisujući revolucionarni novi koncept kriptografije s 

javnim   i   privatnim   ključem.   Ovaj   način   kriptografije   rješio   je  mnoge  probleme   koji   su   prije 
postojali s distribucijom ključeva. Iako sami autori članka nisu predložili konkretni algoritam za 
realizaciju,   ideja   je   bila   prilično   jasna   i   stvoreni   su   preduvjeti   za   razvoj   novih   i   boljih 
kriptografskih sustava.

Već   1978.   godine   Rivest,   Shamir   i   Adleman   su   objavili   prvi   praktični   algoritam   s   javnim   i 
privatnim ključem, koji se naziva po prvim slovima njihovih imena RSA. Algoritam se bazira na 
teško rješivom matematičkom problemu faktoriziranja velikih cijelih brojeva. Široka upotreba 
ovog algoritma dovela je do popularizacije ovog matematičkog problema i već su u 1980-im 
godinama   izvedene   nove   i   učinkovitije   metode   faktoriziranja   cijelih   brojeva,   koje   ipak   nisu 
uspjele kompromitirati sigurnost algoritma RSA. 1985. godine je objavljen još jedan prilično 
dobar algoritam s javnim i privatnim ključem pod nazivom El Gamal.

U proteklim stoljećima razvijen je široki spektar protokola i mehanizama za zaštitu sigurnosti 
informacije   u   obliku   fizičkog   dokumenta.   Često   se   cilj   zaštite   ne   može   postići   samo 
matematičkim algoritmima ili protokolima, nego traži određene postupkovne tehnike i poštivanje 
zakona   da   bi   se   došlo   do   traženog   rezultata.   Na   primjer,   privatnost   pisama   je   osigurana   sa 
zatvaranjem omotnice koju je isporučila provjerena poštanska služba. Fizička sigurnost omotnice 
je,   zbog   praktičnih   razloga,   ograničena   i   tako   je   uveden   zakon   koji   proglašava   krivičnim 
prekršajem pokušaj otvaranja tuđe pošte. S druge strane, ponekad se sigurnost postiže s posebnim 
tehnološkim postupkom. Na primjer, papirnata valuta zahtjeva specijalnu tintu i materijal da se 
spriječi krivotvorenje.

Način   na   koji   se   informacija   zapisuje   se   dramatično   promijenio   kroz   vrijeme.   Gdje   se   prije 
informacija   uobičajeno   zapisivala   na   papir   i   slala   putem   obične   pošte,   danas   se   zapisuje   na 
magnetski medij i šalje telekomunikacijskim sustavom. S druge strane, velika promjena je u 
mogućnosti umnožavanja i izmjene informacije. Vrlo je jednostavno napraviti tisuće identičnih 
kopija informacija koje je kasnije nemoguće odvojiti od originala. S informacijom na papiru, to je 
puno teže napraviti. Zbog toga je društvu koje ovisi o informacijama u elektroničkom obliku 
potreban način da osigura informaciju koji će biti nezavisan o mediju snimanja ili slanja - što 
znači da se sva zaštita mora nalaziti u samoj informaciji.

Jedan od osnovnih načina zaštite vjerodostojnosti informacije je potpis. To je osnovni element za 
mnoge   usluge   zaštite   kao   što   je   nemogućnost   krivog   predstavljanja,   provjera   porijekla 
informacije,   identifikacija,   svjedočenje   i   druge.   Potpis   treba   biti   jedinstven   i   služi   prilikom 
identifikacije, autorizacije i provjere pojedinca. Kod elektroničke informacije, koncept potpisa se 
mijenja. Potpis više ne smije biti jedinstven osobi koja potpisuje i u isto vrijeme nezavisan o 
informaciji koja se potpisuje, jer je elektronička kopija potpisa identična originalu i potpisivanje 
neovlaštenih dokumenata time postaje trivijalno.

 Za zaštitu informacije u elektroničkom obliku potrebni su protokoli koji će zamijeniti papirnate 

background image

kriptografskih mehanizama je dana slikom 2.1.

 

 

 

 

 

 

 

 

 

 

 

 

 

Želiš da pročitaš svih 70 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti