16
TEHNIČKO VELEUČILIŠTE U ZAGREBU Stručni studij informatike KRIPTOGRAFSKE TEHNIKE Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba Darijo Ilić, Dinko Pleić Dr. sc. Krunoslav Antoliš

Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

Embed Size (px)

DESCRIPTION

Cilj ovog rada je da se obradi polje kriptografije kroz tipove algoritama. Glavnina se odnosi na rasčlambu algoritama kriptiranja na simetrične i asimetrične. Također smo se osvrnuli na dužinu ključa te upravljanje istim. Čitajući rad shvatit ćete da kako idete prema kraju nailazite na sve bolje i kompliciranije, a samim time i sigurnije algoritme. Na kraju sa kratkim zaključkom dajemo svoje mišljenje o budućnosti, a i trenutnom stanju kriptografije u svijetu.

Citation preview

Page 1: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

TEHNIČKO VELEUČILIŠTE U ZAGREBU

Stručni studij informatike

KRIPTOGRAFSKE TEHNIKE Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

Darijo Ilić, Dinko Pleić

Dr. sc. Krunoslav Antoliš

Page 2: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

2

Sadržaj

Sažetak........................................................................................................................................ 3

Abstract ...................................................................................................................................... 3

Ključne riječi ............................................................................................................................... 3

Key words ................................................................................................................................... 3

1. Uvod ....................................................................................................................................... 4

2. Tipovi algoritama i njihova uporaba, duljina i upravljanje ključevima................................... 5

2.1. Simetrična kriptografija ............................................................................................................... 5

2.1.1. Algoritam AES ....................................................................................................................... 6

2.1.1.1. Dužina ključa te upravljanje istim ...................................................................................... 6

2.1.1.1.a. Matrica stanja ............................................................................................................. 7

2.1.1.1.b. Ključevi ....................................................................................................................... 7

2.1.2. Algoritam DES ....................................................................................................................... 8

2.1.2.1. Veličina ključa te upravljanje istim ................................................................................ 9

2.1.2.2 Inačice DES-a ................................................................................................................ 10

2.1.2.2.a 3DES ........................................................................................................................... 10

2.1.2.2.b DESX .......................................................................................................................... 11

2.2. Asimetrična kriptografija ........................................................................................................... 11

2.2.1. Algoritam RSA ..................................................................................................................... 13

2.2.1.1. Dužina ključa te upravljanje istim ................................................................................ 13

2.2.1.2 Napadi na RSA .............................................................................................................. 14

2.3. Hibridna kriptografija ................................................................................................................ 14

3. Zaključak ............................................................................................................................... 15

4. Literatura i internet izvori .................................................................................................... 16

Page 3: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

3

Sažetak

Cilj ovog rada je da se obradi polje kriptografije kroz tipove algoritama. Glavnina se odnosi na

rasčlambu algoritama kriptiranja na simetrične i asimetrične. Također smo se osvrnuli na dužinu

ključa te upravljanje istim. Čitajući rad shvatit ćete da kako idete prema kraju nailazite na sve bolje i

kompliciranije, a samim time i sigurnije algoritme. Na kraju sa kratkim zaključkom dajemo svoje

mišljenje o budućnosti, a i trenutnom stanju kriptografije u svijetu.

Abstract

The aim of this work is to process field of cryptography trought different types of algorithms. The

majority refers to the fractionation of encryption algorithms on symmetric and asymmetric. We also

took note of the length of the key, and its management. While reading the work you will realize that

as you go toward the end you'll be experiencing better and more complicated, and therefore more

secure algorithms. In the end with a short conclusion we give our opinion on the future and current

state of cryptography in the world.

Ključne riječi

Simetrična kriptografija, asimetrična kriptografija, RSA algoritam, AES i DES algoritmi, ključevi,

kriptografija, kriptiranje

Key words

Symmetric cryptography, asymmetric cryptography, RSA algorithm, AES and DES algorithms,

keys,cryptography, encryption

Page 4: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

4

1. Uvod

Kriptografija ili ponekad kriptologija je moderna znanstvena disciplina bazirana na primijenjenoj

matematici. Kriptografija proučava i razrađuje sigurnu komunikaciju u smislu da treća strana

presretanjem poruke istu ne može dešifrirati, te joj je kao takva beskorisna. U današnje vrijeme

kriptografija je sveprisutna, a svakodnevnica bez nje nezamisliva. Naime, kriptografija se koristi u

bankarskoj industriji (bankomati, Internet bankarstvo…), računalnoj sigurnosti (npr. sigurnost i

privatnost na Internetu) i mnogim drugim poljima gdje je privatnost i sigurnost podataka od velike

važnosti.

Osnovni zadatak kriptografije je omogućiti dvjema osobama, od kojih je jedna pošiljatelj, tj. osoba

koja želi priopćiti poruku, a druga primatelj, tj. osoba kojoj je poruka poslana, da komuniciraju preko

nesigurnog komunikacijskog kanala (tele-fonska linija, radiovalovi, računalna mreža, itd.) na način da

treća osoba (njihov protivnik, tzv. napadač) ne može razumjeti njihove poruke. Poruku koju pošiljatelj

želi poslati primatelju zovemo otvoreni tekst (engl. plaintext). To može biti tekst na njihovom

materinjem ili nekom drugom jeziku, numerički podaci ili bilo što drugo. Pošiljatelj transformira

otvoreni tekst, koristeći unaprijed dogovoreni ključ. Taj postupak se zove šifriranje (kriptiranje), a

dobiveni rezultat šifrat (šifrirana poruka, kriptogram, kriptat, kriptirana poruka) (engl. ciphertext).

Nakon toga pošiljatelj šalje šifrat putem nekog komunikacijskog kanala. Protivnik prisluškujući dozna

sadržaj šifrata, ali ne može odrediti otvoreni tekst i razumjeti poruku. Za razliku od njega, primatelj,

koji zna ključ kojim je poruka šifrirana, može dešifrirati (dekriptirati) šifrat i odrediti otvoreni tekst.

Šifra (kriptografski algoritam) je matematička funkcija koja se koristi za šifriranje i dešifriranje.

Općenito, tu se radi o dvije funkcije od kojih je jedna za šifriranje, a druga za dešifriranje. Argumenti

funkcije za šifriranje su ključ i otvoreni tekst, a argumenti funkcije za dešifriranje su ključ i šifrat. Skup

svih mogućih vrijednosti ključeva zove se prostor ključeva. Kriptosustav se sastoji od šifre i svih

mogućih otvorenih tekstova, šifrata i ključeva.

Page 5: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

5

2. Tipovi algoritama i njihova uporaba, duljina i upravljanje

ključevima

Algoritam za kriptiranje - određeni matematički proces (niz matematičkih operacija) koji služi za

kriptiranje ili dekriptiranje poruka. Postoje simetrični i asimetrični algoritmi za kriptiranje. A koristi se

i hibridna kriptografija gdje se mješaju simetrični i asimetrični algoritmi.

2.1. Simetrična kriptografija

Osnovna karakteristika simetrične kriptografije je identičnost kriptografskih ključeva koji se koriste

prilikom kriptiranja i dekriptiranja. Povijest simetrične kriptografije seže daleko u prošlost kada su se

pojavili prvi načini kriptografskog prikrivanja podataka. Jedna od prvih poznatih metoda koju su

upotrebljavali Spartanci u 5. stoljeću prije Krista je skital. Skital je drveni štap određene debljine na

koji se namotavala traka od pergamenta. Uzdužno, preko namotane trake, napisala bi se poruka, a

odmatanjem pergamenta sa štapa tekst bi postajao nečitljiv. Poruku je mogao ispravno pročitati

samo onaj tko je posjedovao štap debljine odnosno promjera identičnog originalnom štapu.

Kriptografski ključ predstavlja jedinstvena debljina drvenog štapa, skitala, odnosno drveni štap točno

određene debljine kojeg je morao imati onaj tko sastavlja i šalje poruku, ali i onaj tko prima

prikrivenu poruku.

Osim skitala jedna od poznatijih simetričnih metoda kriptiranja je i Cezarova metoda. Kod te metode

tekst se kriptira na način da se svako slovo originalnog teksta zamijeni nekim drugim slovom abecede,

a zamjensko tj. kriptirano slovo određuje se pomakom između originalne i kriptirane abecede. Na

primjeru 2. prikazane su dvije abecede, originalnog i kriptiranog teksta, pomaknute za 3 mjesta

ulijevo. Broj mjesta za koji se pomiče abeceda kriptiranog teksta u odnosu na originalni tekst

mijenjao se od poruke do poruke. Ključ kod ovog načina kriptiranja predstavlja upravo broj mjesta za

koliko su abeceda originalnog i kriptiranog teksta pomaknute.

Originalni tekst A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Kriptirani tekst D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Primjer 1 – Cezarova metoda

Kroz povijest, kriptografija se sve više razvijala, ali uvijek se za kriptiranje i za dekriptiranje koristio isti

kriptografski ključ. Jedan od u javnosti možda najpoznatijih i najspominjanijih povijesnih uređaja za

kriptiranje je njemačka Enigma. Kod nje kriptografski ključ određuje položaj triju prstena koji, ukoliko

želimo uspješno pročitati kriptiranu poruku, i kod kriptiranja i kod dekriptiranja moraju biti identično

postavljeni. Kripptografski uređaj Enigma su koristile njemačke vojne postrojbe u 2. svjetskom ratu.

Page 6: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

6

Današnji simetrični kriptografski algoritmi zasnovani su na informatičkoj tehnologiji i koriste

kriptografske ključeve u digitalnom obliku. Njihova duljina najčešće se kreće od 64 bita (npr.

algoritam DES) do 256 bita (npr. algoritam AES). Kriptografski ključevi za kriptiranje i dekriptiranje

kod simetričnog sustava su identični.

Informacije o kriptografskom ključu za kriptiranje/dekriptiranje nužno je zadržati u tajnosti, odnosno

unutar kruga pošiljatelja i primatelja štićene poruke. Komunikacijski kanal za razmjenu kriptografskih

ključeva u izvornom obliku mora biti siguran, tj. mora onemogućiti trećoj strani da sazna bilo kakvu

informaciju o ključevima. U suprotnom, kriptiranje poruka kompromitiranim ključevima rezultiralo bi

kompromitiranjem štićenih podataka i ne bi imalo nikakvog smisla. Uobičajeno je da se kod

simetričnih kriptografskih sustava potrebni kriptografski ključevi unaprijed razmjene između

korisnika. Možda najsigurniji način distribucije je osobna dostava istih korisnicima, no u tom slučaju

često se pitamo nismo li na takav način mogli dostaviti i samu poruku. Postoje i druge metode

razmjene, a jedna od često korištenih metoda je i razmjena simetričnih kriptografskih ključeva

pomoću kriptografskih sustava s javnim ključem. Takva organizacija ne zahtijeva siguran

komunikacijski kanal, jer se i sami ključevi za kriptiranje poruke distribuiraju kriptirani, tj. zaštićeni.1

Još neki algoritmi simetrične kriptografije su Blowfish, Twofish, RC4, CAST5, IDEA.2

2.1.1. Algoritam AES

AES (engl. Advanced Encryption Standard) je jedan od kriptografskih algoritama za zaštitu digitalnih

podataka. AES standard temelji se na simetričnom Rijndael algoritmu, a kao standard razvijen je da bi

postupno zamijenio DES, čija sigurnost u današnje vrijeme više nije dovoljna.

Slično kao i DES, AES je razvijen u privatnom sektoru, no u suradnji s američkom vladom. AES je

definiran i prihvaćen od strane NIST-a (engl. National Institute of Standards and Technology) u FIPS

197 dokumentu, te se kao takav može koristiti u američkim državnim i drugim institucijama.

U ovom trenutku, što se tiče uporabe na Internetu, DES, pa i drugi simetrični algoritmi još uvijek su

zastupljeni u većoj mjeri, no vremenom će i AES pronaći svoje mjesto, pogotovo zato što DES kao

takav ne predstavlja adekvatno rješenje u sustavima koji zahtijevaju najviše razine sigurnosti. 3

2.1.1.1. Dužina ključa te upravljanje istim

Za razliku od npr. DES i IDEA algoritama koji podatke šifriraju u 64-bitnim blokovima, AES, odnosno

Rijndael algoritam, šifrira 128-bitne blokove podataka. Duljina ključa može biti 128, 192, ili 256

okteta. Sam Rijndael algoritam je oblikovan tako da je moguće šifriranje podataka u blokovima

različitih duljina i s različitim duljinama ključeva, no to nije definirano kroz standard. Obzirom na

ključeve, uobičajeno je algoritme nazivati AES-128, AES-192 i AES-256.

1 http://www.zsis.hr 2 Uvod u kriptografiju, https://sigurnost.carnet.hr/assets/Dokumenti/Uvod-u-kriptografiju.pdf, str. 4 3 AES algoritam, http://www.cis.hr/www.edicija/LinkedDocuments/CCERT-PUBDOC-2003-08-37.pdf, str. 4

Page 7: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

7

2.1.1.1.a. Matrica stanja

Interno, sve operacije AES algoritma provode se na dvodimenzionalnom nizu okteta, odnosno matrici

stanja (engl. state). Matrica stanja se sastoji od četiri retka koji sadrže određeni broj okteta. Taj broj

okteta predstavlja ukupnu duljinu bloka (u bitovima) podijeljenu sa 32. U konkretnom slučaju, kod

AES algoritma to znači 4 okteta (Rijndael algoritam dopušta i druge vrijednosti).

Šifriranje, odnosno dešifriranje, se provodi tako da se ulazni blok podataka kopira u matricu stanja

nad kojom se zatim provode razne operacije, kako će biti pokazano u nastavku dokumenta. Konačno,

završna vrijednost matrice stanja se kopira u izlazni šifrirani blok podataka (Slika 1).

Slika 1 – Ulazni i izlazni podaci te matrica stanja

Ulazni blok podataka kopira se u matricu stanja po sljedećoj formuli:

stanje[r,s]=ulaz[r+4s], za 0 ≤ r < 4, i 0 ≤ s < 4

Također, na sličan način se izlazni podaci kopiraju iz matrice stanja:

izlaz[r+4s]=stanje[r,s], za 0 ≤ r < 4, i 0 ≤ s < 4

Četiri okteta u svakom stupcu matrice stanja formiraju 32-bitnu riječ. Na taj način matricu stanja

moguće je interpretirati kao jednodimenzionalni niz 32-bitnih riječi w0,…,w3. Formalno se te riječi

definiraju na sljedeći način:

w0=s0,0s1,0s2,0s3,0 w2=s0,2s1,2s2,2s3,2

w1=s0,1s1,1s2,1s3,1 w3=s0,3s1,3s2,3s3,3

2.1.1.1.b. Ključevi

Kao što je ranije spomenuto, ulazni i izlazni blokovi AES algoritma su duljine 128 okteta, dok duljina

ključa može biti 128, 192 ili 256 okteta. Ključ se prikazuje kao određeni broj 32-bitnih riječi koji,

ovisno o duljini, varira, pa može biti predstavljan s 4, 6 ili 8 riječi. Također, broj koraka od kojih se

algoritam sastoji ovisi o duljini ključa. Tabela 1 daje prikaz ovisnosti broja koraka algoritma o duljini

ključa, odnosno o implementaciji algoritma (broj koraka i duljina ulaznih/izlaznih blokova dani su u

32-bitnim riječima). Nk i Nw redom označavaju duljinu ključa i duljinu bloka podataka u riječima, dok

Nr označava broj koraka algoritma.

Page 8: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

8

Tabela 1 : Duljine ključeva, blokova i broj koraka inačica AES algoritma

Tabela 2 – Usporedba algoritama koji se koriste za enkripciju diska.

Kriptiranje cijelog diska predstavlja najvišu razinu sigurnosti koju je moguće postići na operacijskom

sustavu jer se kriptiraju baš sve datoteke na računalu.

2.1.2. Algoritam DES

DES (Data Encryption Standard) algoritam je jedan od najpoznatijih i najraširenijih simetričnih

algoritama. DES je razvijen tijekom 70-ih godina u IBM-u, te 1977. prihvaćen od Američke vlade kao

standard za zaštitu podataka. Glavna mana mu je, što je javno poznato, da je tijekom razvoja mnoge

“sugestije” davala i NSA (National Security Agency), pa mnogi smatraju da u algoritmu postoji

sigurnosna “rupa” (engl. backdoor), koja omogućava američkoj vladi dešifriranje podataka. Bilo kako

bilo, u svojom originalnom obliku, DES se tako i tako više ne smatra sigurnim, pošto se 56-bitni ključ u

današnje vrijeme, i s raspoloživim računalnim resursima, može probiti i primjenom čiste sile (engl.

brute force).

Iako potencijalno nesiguran, DES se i danas koristi za zaštitu podataka na mnogim instancama, a

definiran je i kroz ANSI i NIST standarde. Također, mnogi prihvaćeni sigurnosni protokoli temelje svoj

rad na DES algoritmu (SSL-TLS, IPSec).

Page 9: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

9

2.1.2.1. Veličina ključa te upravljanje istim

Otvoreni tekst (poruka) se šifrira u 64-bitnim blokovima, pri tom na izlazu dajući 64-bitni šifrirani

tekst. Ključ za šifriranje je duljine 56-bita, no često se pojavljuje u 64-bitnom prikazu gdje se svaki

osmi bit zanemaruje, odnosno može poslužiti npr. za provjeru pariteta.

Prvi korak algoritma jest inicijalna permutacija, dok posljednji korak predstavlja inverziju inicijalne

permutacije. Prije posljednjeg koraka, lijeva i desna 32-bitna polovina se samo zamjenjuju. Kod

preostalih 16 koraka, niz znakova se dijeli na lijevu i desnu 32-bitnu polovicu, gdje desna polovica

postaje lijeva polovica idućeg koraka, dok se nad lijevom polovicom provode operacije koje su u

svakom koraku parametrizirane drugim 48-bitnim podključem (ukupno ima 16 različitih 48-bitnih

podključeva koji se izvode iz osnovnog ključa). Slika 2 daje shematski prikaz algoritma. 4

Slika 2 – Shematski prikaz DES algoritma

Ovako izgleda inicijalna permutacija:

Tabela 3 – inicijalna permutacija

4 DES algoritam, http://www.cis.hr/www.edicija/LinkedDocuments/CCERT-PUBDOC-2003-06-24.pdf, str. 4

Page 10: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

10

A ovako konačna:

Tabela 4 – konačna permutacija

2.1.2.2 Inačice DES-a

2.1.2.2.a 3DES

Kao što je već prije rečeno, u svojoj originalnoj formi DES se ne smatra pouzdanim, već samim time

što je 56-bitna duljina ključa podložna napadu primjenom sile, no, pošto se algoritam i danas koristi

za razne namjene, izvedene su razne modifikacije koje unapređuju sigurnost.

Jedno od takvih unapređenja jest i korištenje višestrukog DES algoritma. U praksi je najčešća uporaba

trostrukog DES algoritma (3DES) u takozvanom EDE načinu rada.

Slika 3 – Shematski prikaz 3DES algoritma

Slika 3 prikazuje trostruki DES algoritam u tzv. EDE načinu rada. Može se uočiti da 3DES algoritam

koristi 112-bitni ključ za šifriranje (dva 56-bitna ključa). Pri postupku šifriranja koriste se tri modula;

šifriranje, dešifriranje, te ponovno šifriranje (postupak dešifriranja kriptografski je identične

složenosti kao i šifriranje). Implementacija 3DES algoritma, kako je prikazano na slici, podržava i

korištenje standardnog DES algoritma korištenjem 56-bitnog ključa. U tom slučaju vrijedi da je

K1=K2=K.

Page 11: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

11

2.1.2.2.b DESX

DESX je inačica DES algoritma koju su izradili u RSA Data Security. DESX se koristi tehnikom

"izbjeljivanja" (engl. whitening), koja se temelji na uvođenju dodatnih XOR operacija nad ulaznim i

izlaznim podacima u algoritmu. Kao dodatak 56-bitnom ključu, DESX koristi dodatni 64-bitni ključ koji

se koristi za "izbjeljivanje". Ta 64 bita koriste se za izvođenje XOR operacije s otvorenim tekstom prije

prvog koraka algoritma. Također, dodatna 64-bita izvedena korištenjem jednosmjerne funkcije nad

ukupnim 120-bitnim DESX ključem koriste se za izvođenje još jedne XOR operacije u posljednjem

koraku. Korištenjem ove modifikacije DES postaje otporniji na sve vrste napada.

2.2. Asimetrična kriptografija

Ideja kriptografskog sustava s javnim ključem prvi su put javno objavili W. Diffie i M. Hellman 1976.

godine. Oni su u svom radu ponudili rješenje razmjene simetričnih kriptografskih ključeva preko

nesigurnog kanala. Dvije godine kasnije, Rivest, Shamir i Adleman objavili su prvi praktično iskoristiv

asimetrični kriptografski sustav nazvan RSA po prvim slovima njegovih autora. Nakon toga došlo je do

značajnog razvoja asimetričnih kriptografskih sustava i moderna kriptografija od tada kreće u sasvim

drugom smjeru. Možemo slobodno reći da su se pojavom asimetrične kriptografije otvorila vrata i za

upotrebu digitalnog potpisa koji je zasnovan na asimetričnom algoritmu.

Osnovna razlika između simetričnih i asimetričnih kriptografskih sustava je u organizaciji

kriptografskih ključeva. Dok su kod simetričnih kriptografskih sustava i pošiljatelj i primatelj štićenih

poruka čuvali kriptografski ključ u tajnosti, i oba su istim simetričnim ključem mogla i kriptirati i

dekriptirati štićene poruke, kod asimetričnih kriptografskih sustava to nije slučaj. Naime, kriptografski

ključ za kriptiranje asimetričnim kriptografskim sustavom nije moguće koristiti i za dekriptiranje

prethodno kriptirane poruke te ga stoga nije potrebno štititi. U tom smislu, problem sigurne dostave

kriptografskog ključa za kriptiranje u ovom slučaju ne postoji, jer je istoga moguće distribuirati i

nesigurnim komunikacijskim kanalima.

Naime, kod asimetričnih kriptografskih sustava postoje dvije vrste kriptografskih ključeva – tzv. javni i

tajni kriptografski ključ. Javni kriptografski ključ koristimo isključivo za kriptiranje, a tajni za

dekriptiranje. Javni i tajni kriptografski ključ čine jedinstveni par, tj. svakom javnom ključu pridodan je

jedinstveni tajni ključ. U praksi je vrlo teško, gotovo nemoguće, poznavanjem jednog od njih

izračunati drugi.

Korisnik koji želi štićeno komunicirati izrađuje za sebe par asimetričnih kriptografskih ključeva. Tajni

kriptografski ključ zadržava kod sebe te na taj način osigurava da nitko drugi nema nikakve

informacije o istome. Pripadajući javni kriptografski ključ korisnik javno objavljuje svima, ili ga na neki

drugi način dostavlja osobama kojima želi omogućiti kriptiranje njemu namijenjenih poruka. Poruke

kriptirane takvim javnim kriptografskim ključem može dekriptirati samo osoba koja posjeduje njegov

komplementarni, odnosno tajni kriptografski ključ. Čak niti osoba koja je kriptirala poruku javnim

kriptografskim ključem nije u mogućnosti istu dekriptirati. Veličina, odnosno duljina, kriptografskih

ključeva kod asimetričnih kriptografskih sustava najčešće se kreće od 256 bita za asimetrične

Page 12: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

12

kriptografske sustave bazirane na eliptičkim krivuljama do 2048 bita za asimetrične kriptografski

sustavi temeljene na RSA algoritmu. S današnjim stupnjem razvoja informatičke tehnologije i

procesorskim moćima modernih računala navedene duljine kriptografskih ključeva zadovoljavaju

sigurnosne potrebe korisnika, bilo da se radi o privatnim osobama ili državnim institucijama.

Povećanjem broja matematičkih operacija koje procesori mogu izvršiti u jedinici vremena, kao i

razvojem kvantnih računala, tražit će i povećanje duljine ključa, a kako bi se zadržao dosadašnji nivo

sigurnosti asimetričnih kriptografskih sustava.

Kod simetričnih kriptografskih sustava za svaku štićenu vezu (par korisnika) treba izraditi i na siguran

način razmijeniti jedan kriptografski ključ, dok je u slučaju asimetričnog kriptografskog sustava

jednim parom kriptografskih ključeva omogućeno kriptiranje poruka prema korisniku (osobi koja

posjeduje tajni ključ) od strane bilo koga tko posjeduje javni ključ. Ako je predmetni javni

kriptografski ključ javno objavljen (npr. na internetu), onda je jednosmjerna sigurna komunikacija

omogućena neograničenom broju osoba.

Povećanjem broja korisnika simetričnog kriptografskog sustava koji žele neovisno jedni o drugima

štićeno komunicirati, potreban broj kriptografskih ključeva relativno brzo raste (za 5 korisnika koji

žele sigurno komunicirati svaki sa svakim, uz uvjet da svaku štićenu poruku preostali u grupi nisu u

mogućnosti dekriptirati, treba 10 kriptografskih ključeva; za 20 korisnika broj potrebnih

kriptografskih ključeva penje se na čak 190). U slučaju asimetričnog kriptografskog sustava broj

parova ključeva jednak je broju korisnika (za 5 korisnika, potrebno je 5 parova ključeva, a za 20

korisnika jednako tako 20 parova ključeva).

Broj kriptografskih ključeva koje je potrebno razmijeniti između korisnika koji žele štićeno

komunicirati asimetričnim kriptografskim sustavom bitno je smanjen u odnosu na simetrične

kriptografske sustave.

Lako je uočiti da upravljanje kriptografskim ključevima kod simetričnih kriptografskih sustava

predstavlja veliki problem. S druge strane njihova prednost je brzina kriptiranja koja je u odnosu na

asimetrične kriptografske sustave od stotinu do tisuću puta veća. Povećanjem broja bitova ključa kod

asimetričnih kriptografskih ključeva znatno se usporava vrijeme potrebno za postupak kriptiranja i

dekriptiranja. Iz tog razloga je s asimetričnim kriptografskim sustavima nemoguće izvesti linijsko ili

„on-line“ kriptiranje, odnosno kriptiranje podataka u realnom vremenu. Za to se još uvijek koriste

simetrični kriptografski sustavi koji se s takvim izazovima trenutno mogu vrlo uspješno nositi.5

Još neki algoritmi asimetrične kriptografije su : Diffie-Hellmann, DSS, Elgamal.6

5 http://www.zsis.hr 6 Uvod u kriptografiju, https://sigurnost.carnet.hr/assets/Dokumenti/Uvod-u-kriptografiju.pdf, str. 5

Page 13: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

13

2.2.1. Algoritam RSA

RSA algoritam razvili su Ron Rivest, Adi Shamir i Leonard Adelman 1977. godine. RSA je prvi i ujedno i

najšire korišteni kriptosustav s javnim ključem. Nazvan je po svojim izumiteljima (prva slova njihovih

prezimena), a sigurnost mu leži u činjenici da je faktorizacija velikih prirodnih brojeva na produkt dva

prosta broja izuzetno teška. Algoritam se koristi u širokom rasponu proizvoda, platformi i postrojenja

širom svijeta. Ima široku upotrebu u operacijskim sustavima najvećih svjetskih proizvođača software-

a kao što su Microsoft, Apple, Sun i Novell. Osim u software-u, algoritam se koristi i u hardverskim

proizvodima poput sigurnim telefonima, mrežnim karticama i pametnim karticama.

2.2.1.1. Dužina ključa te upravljanje istim

Algoritam se sastoji od tri koraka: generiranje ključa, kodiranje i dekodiranje.

RSA uključuje javni i privatni ključ. Javni ključ je poznat svakom i koristi se za kodiranje poruke.

Međutim, poruke koje su kodirane javnim ključem možemo dekodirati samo sa privatnim ključem.

Ključevi se generiraju u slijedećim koracima:

1) Tajno odaberemo dva različita prosta broja p i q, od kojih svaki ima oko 100 znamenki. Obično se

odaberu tako da jedan od njih ima nekoliko znamenki više od drugog. Odabir se izvrši tako da se,

pomoću nekog generatora slučajnih brojeva, generira dovoljno velik prirodan broj w, a zatim se

korištenjem nekog testa za testiranje prostosti, traži prvi prosti broj koji je veći ili jednak w. Kako

prostih brojeva manjih od w ima približno k= lnw, to je za očekivati da ćemo trebati testirati O (lnw)1

brojeva dok ne nađemo prvi prosti broj veći ili jednak w

2) Izračunamo n = pq i φ(n) = (p - 1) (q - 1)

3) Zatim odaberemo slučajnim odabirom broj e takav da je 105 < e < φ(n) i takav da je

nzd(e; φ (n))=1

4) Izračunamo d takvo da je d ≡ e−1 (mod φ(n))

Izračunavanje d vrši se pomoću proširenog Euklidovog algoritma koji za dane a i b računa b-1 mod a.

Napomenimo da i prošireni Euklidov algoritam, kao i Euklidov algoritam za računanje najvećeg

zajedničkog djelitelja, trebaju O(ln² n) operacija. Euklidov algoritam je vrlo efikasan za računanje

najvećeg zajedničkog djelitelja dva broja koji ne zahtijeva njihovu prethodnu faktorizaciju. Nalazi se u

knjizi VII Euklidovih elemenata, iako se vjeruje da algoritam nije njegovo vlastito djelo, nego da je bio

poznat više od 200 godina ranije

5) Zadržavamo p, q, d kao tajnu, a n i e postavljamo u javni direktorij

6) Primatelj svoju poruku x šifrira i dobiva šifrat y = xᵉ mod n koji šalje nama. U slučaju da je x > n, x se

razbija u blokove

7) Dešifriramo y računajući x = yᵈ mod n

Page 14: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

14

2.2.1.2 Napadi na RSA

Kao što smo vidjeli, implementacija RSA je vrlo jednostavna. Analogno tome, i napad na RSA se može

jednostavno provesti ako je poznat eksponent d. Očigledno je da je jedan od napada na RSA

faktorizacija od n = pq, jer ako napadač faktorizira n, on može jednostavno otkriti i

ϕ(n) = (p − 1) (q − 1), te odrediti tajni eksponent d iz de ≡ 1 (mod ϕ (n)) pomoću Euklidovog

algoritma. Postavlja se pitanje, u čemu je onda sigurnost RSA. Kako mi u RSA uzimamo p i q takve da

svaki ima oko 100 znamenki, to naš n = pq ima oko 200 znamenki, pa bi za njegovu faktorizaciju,

primitivnom metodom dijeljenja sa svim prostim brojevima manjim od √n, uz pomoć računala koje

može u sekundi izvršiti 109 takvih dijeljenja, trebalo otprilike 1081 godina. Iako postoje mnogo brži

algoritmi za faktorizaciju ipak su brojevi od preko 200 znamenki sigurni od takvih napada. Trenutno

najbrži algoritmi za faktorizaciju trebaju (

) operacija, što znači da nije poznat

niti jedan polinomijalni algoritam za faktorizaciju.

Treba još napomenuti da postoje i slučajevi kada je n lakše faktorizirati nego inače. To je kada su p i q

jako blizu jedan drugoga, ili ako p − 1 i q − 1 imaju samo male proste faktore. Takve slučajeve treba

izbjegavati pri izboru parametara za RSA kriptosustav.

Kao što smo rekli, podaci n i e su javni, pa uz tajnost p, q i d, RSA je dosta siguran.

2.3. Hibridna kriptografija

Hibridna kriptografija podrazumijeva korištenje asimetrične i simetrične kriptografije pri čemu se

algoritmi asimetrične kriptografije koriste za sigurnu razmjenu ključeva simetrične kriptografije.

Nakon razmjene ključa, daljnja se komunikacija kriptira jednim od algoritama simetrične kriptografije.

Glavni razlog ovog kombiniranog korištenja kriptografskih algoritama je iskorištavanje prednosti

svakog od njih, prvenstveno činjenice da je simetrična kriptografija znatno brža od asimetrične, dok

asimetrična omogućava jednostavnu uspostavu kriptirane komunikacije korištenjem javnog ključa.

Page 15: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

15

3. Zaključak

Postoji mnogo načina kriptiranja podataka, mi smo u ovom radu obradili neke najkorištenije

algoritme zaštite važnih poruka. Većina od ovih algoritama danas se može probiti uz pomoć računala.

Jedini koji se tu izdvaja je RSA kod kojeg tek upotrebom 1024 bitnog ključa dolazi do problema koji se

niti uz pomoć više računala odjednom ne može tako lako probiti. Smatramo da simetrična

kriptografija pripada prošlosti, a budućnost se sve više okreće prema asimetričnoj i hibridnoj

kriptografiji. No kako napreduje kriptografija tako napreduju i računala koja će uvijek držati korak sa

novim algoritmima. Naše mišljenje je da ne postoji u potpunosti siguran način kriptiranja.

Page 16: Kriptografske tehnike - Dužina ključa, upravljanje ključevima, tipovi algoritama i njihova uporaba

16

4. Literatura i internet izvori 1. http://www.zsis.hr 2. http://hrcak.srce.hr

3. Algoritam DES, http://www.cis.hr/www.edicija/LinkedDocuments/CCERT-PUBDOC-2003-06-

24.pdf, str. 4

4. Uvod u kriptografiju. https://sigurnost.carnet.hr/assets/Dokumenti/Uvod-u-kriptografiju.pdf, str. 4 5. Algoritam AES, http://www.cis.hr/www.edicija/LinkedDocuments/CCERT-PUBDOC-2003-08-

37.pdf, str. 4

6. http://www.rsa.com

7. www.cert.hr