You are on page 1of 4

Kriptografija

Crypto-tajnost

Graphy-zapisati

Cryptology je nauka o tajnosti i sastoji se od kriptografije i kriptoanalize.

Postoje dve vrste kriptografije to su simetrična i asimetrična. Simetrična kriptografija ima isti
kljič za enkripciju i dekripciju, dok asimetrična (kriptografija javnog ključa) nema isti ključ za
enkripciju i dekripciju, jedan ključ je javan i ona je složena za razliku od simetrične. Postoje
algoritmi koji kombinuju simetričnu i asimetričnu kriptografiju.

Kriptosistem je definisan uređenom petorkom:

 P- plaintext (prostor poruka)


 C- ciphertext (prostor šifrata)
 K- keys (prostor ključeva)
 E- algoritam enkripcije
 D- algoritam dekripcije

Supstitucioni algoritmi vrše zamenu jednog slova drugim i dele se na monoalfabetski algoritam
(Cezarov algoritam) i polialfabetski algoritam (Vigener algoritam).

Važan element mnogih kriptosistema je logička operacija ekskluzivna disjunkcija (XOR).

One Time Pad (OTP) algoritam- u pitanju je Stream-cipher algoritam. To je dobar algoritam jer
je sigurnost ‘perfektna’. Dužina ključa mora biti veća ili jednaka dužini poruke, takođe ključ
mora biti ‘slučajan’.

‘Slučajni’ ključ se pravi zamenom ‘slučajnog’ ključa pseudo-slučajnim ključem. Potrebno je


definisati Pseudo Random Generator (PRG) koji je funkcija koja preslikava niz bitova u duži niz
bitova. On mora biti nepredvidiv, odnosno da na osnovu nekoliko poznatih početnih bitova bude
raćunarski nepodesno predvideti ostatak niza. Algoritam postoji ali je nepodesan.

Ako je ciphertext poznat, a poznat je i deo plaintexta, npr. SMTP (Simple Mail Transfer
Protocol) počije sa From, ako postoji algoritam koji bi odredio ostatak ključa onda ovakav sistem
postaje nesiguran.

PRG algoritam- linearni kongruetni algoritam


𝑥𝑛 + 1 = (𝑘𝑥𝑛 + 𝑎) 𝑚𝑜𝑑 𝑚 - jednačina linearne kongruence

k (multiplikator, množilac), a (inkrement, obično 0) i m(modulus) su pozitivni celi brojevi.

U ovom algoritmu je veoma lako predvideti sledeći bit na osnovu prethodnog, tako da se ovaj
algoritam retko koristi u kriptografiji.

Kerberos v4 algoritam je varijanta linearnog kongruentnog algoritma. Njegove dve varijante su


Knuth varijanta 1 i Knuth varijanta 2.

OTP algoritam koristi XOR funkciju i PRG da bi implementirao algoritam enkripcije i algoritam
dekripcije. Sigurnost ovog algoritma počiva na nepredvidivosti niza bitova koji generiše PRG
algoritam. Mogući napad odnosi se na slučaj kada se isti ključ k koristi dva puta čime nastaje
Two Time Pad (TTP).

Projekat Venona (1941-1946)- Rusi su generisali ključ k jednostavnim bacanjem kockice.


Operanda je mrzelo da baca kockice i ponavlja postupak, pa je koristio isti ključ više puta. Tako
je nastao TTP algoritam i neprijatelj je mogao da dešifruje poruke.

MS PPTP (Windows NT)

Point to Point Transfer Protokol (PPTP)- klijent komunicira sa serverom pri čemu koristi isti
ključ k. Server ne sme koristiti isti ključ k pri odazivu.

802.11b WEP

WEP- klijent koristi vrednost IV na koju se konkateciom dodaje ključ k. Ova vrednost je ustvari
brojač. Sa druge strane veze brojač je isti, a ključ k je poznat. Sledeći paket koristi sledeću
vrednost za IV. Vrednost IV se sastoji od 24 bita, posle određenog broja frejmova vednost IV se
resetuje. Pri nekim hardverskim implementacijama vrednost IV se resetuje na 0 posle prekida
napajanja.

Kriptografske primitive- Logaritam

Većinom se koristi logaritam osnove 2 jer se radi o računarima. Java nema implementiran
logaritam osnove 2. Biblioteka math ima implementiran logaritam osnove e, ovo je ‘prirodni’
logaritam često oznalen sa ln. Na osnovu proračuna prirodnog algoritma možemo proračunati
algoritam bilo koje osnove. Logaritam osnove 2 možemo koristit da proračunamo približan broj
bitova potreban za predstavljanje datom integer-a.

Teorija složenosti- složenost algoritma i složenost problema

Složenost algoritma se određuje snagom izračunavanja koja je potrebna za njegovo izvršenje.


Često se prate dve veličine T-vremenska složenost i S-prostorna (memorijska) složenost. Obe
funkcije imaju n veličinu ulaza.
Složenost izračunavanja algoritma označava se sa O (Order of magnitude)-red veličine. To je
član funkcije koji najbrže raste kako raste veličina ulaza n. Bilo bi dobro kada bi algoritmi za
razbijanje kriptosistema bili eksponencijalne složenosti, ali ovi algoritmi su superpolinomijalne
vremenske složenosti.

Složenost problema- da bi se procenila složenost problema potrebno je naći minimalno vreme i


prostor (memoriju) koji su potrebni da se problem reši na Tjuringovoj mašini. Problemi koji se
mogu rešiti su obraditi. Problemi koji se ne mogu rešiti za polinomijalno vreme su neobradivi ili
teški. Problemi za koje nije moguće izvesti algoritam koji bi ih rešio, bez obzira na vremensku
složenost algoritma se nazivaju neodlučivi.

Problemi se po sleženoti mogu staviti u sledeće kategorije:

 P- problemi koji se mogu rešiti u polinomijalnom vremenu


 NP- problemi koji se mogu rešiti u polinomijalnom vremenu, ali uz pomoć
nedeterminističke Tjurinove mašine (mašina predstavlja rešenje problema ili pogađanjem
na sreću ili paralelnim isprobavanjem svih pretpostavki)
 NP- potpuni
 PSPACE
 PSPACE- potpuni
 EXPTIME

Za kriptografiju su značajni NP problemi.

Blokovski algoritmi rade sa nizom bitova, a ne samo sa jednim. Na ulazu u blokovski algoritam
je niz bitova odjednom. Nizovi su različitih dužina u zavisnosti od algoritma.

Poznat je Data Encryption Standard- DES nastao je sredinom 1970-ih godina, to je simetričan
blokovski algoritam kao i prvi moderni kripto-algoritam za komercijalnu upotrebu koji je
standardizovan (FIPS 46-2). Algoritmi na kojima počiva DES su Product ciphers i Feistel
ciphers. Ovakvi algoritmi rade u rundama(R-oznaka za rundu), od originalnog ključa nastaje niz
ključeva 𝑘1 ,𝑘2 ... Runda R(𝑝1,𝑘1 ) prima ključ 𝑘1 i deo poruke 𝑝1. Za DES standardan broj rundi
je 16, 3DES ima 48 rundi, a AES 128 (Advanced Encryption Standard sa ključem dužine 128)
ima broj rundi 10. Performanse po brzini manje su od stream cipher-a.

Product cipher- kombinacija najmanje dve transformacije sa namerom da ciphertext bude


sigurniji.

Supstituciona permutaciona mreža (Substitution-Permutation (SP) network)- produkcioni


algoritam (production cipher) koji se sastoji od više rundi tako da svaka sadrži supstituciju i
permutaciju.
Blokovski algoritam koji podrazumeva uzastopnu primenu ugrađene funkcije koja se naziva
funkcija runde. Funkcija je parametarska, uključuje veličinu bloka n, broj rundi r i ključ k iz kog
se definiše niz ključeva 𝑘1 ,𝑘2 ... 𝑘𝑟 , odnosno svaka runda ima svoj ključ.

Feistel algoritam je iterativni blokovski algoritam koji mapira bitove otvorenog (plaintext) teksta
u r rundi, gde je r ≥1.

DES je korišćen ekstenzivno u domenima bankarstva, web-a... Koriste se permutacija,


supstitucija (S-kutije) i rad u rundama (obično je broj rundi paran broj veći od 3). Dva ulaza 64
bitni blok teksta (poruke) i 56 bitni ključ (ključ je dužine 64, ali je svaki osmi bit parnosti), svaka
runda ima svoj potključ. Osnova DES-a je Feistel-ova mreža.

Sigurnost DES algoritma počiva na S-kutijama.

DES S-kutije:

 Supstitucione (zamenske) tabele.


 Ulaz dužine 6 bita generiše izlaz dužine 4 bita.
 Supstitucija zavisi od vrednosti ulaza (bitova ulaza).
 S-kutije su implementirane kao 'lookup' tabele.
 Postoji 8 S-kutija.
 Svaka od 8 S-kutija ima 64 polja.
 Svako polje određuje 4 bitni izlaz.

You might also like