kriptografske tehnike - dužina ključa, upravljanje ključevima, tipovi algoritama i njihova...
Post on 02-Jan-2016
109 Views
Preview:
DESCRIPTION
TRANSCRIPT
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š
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
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
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.
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.
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
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.
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).
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
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.
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
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
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
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.
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.
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
top related