Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

KRIPTOGRAFIJA

11. Teorija složenosti - složenost algoritma i složenost


problema
Bruce Schneier, "Primenjena kriptografija", Mikro knjiga, Beograd, 2007, str 235 -
239.

Kako obezbediti metodologiju za analizu složenosti izračunavanja kripto-algoritama, odnosno


kako dokazati da se kripto-algoritam može "razbiti" pre nego što nastupi toplotna smrt
vasione .

Složenost algoritma

Određena je brzinom (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
veličine su funkcije od n - veličina 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.

Vremena izvršavanja različitih klasa algoritama:

Klasa: Konstantna
Složenost:
Broj operacija za :1
Vreme pri operacija u sekundi:

Klasa: Linearna
Složenost:
Broj operacija za :
Vreme pri operacija u sekundi:

Klasa: Kvadratna
Složenost:
Broj operacija za :
Vreme pri operacija u sekundi: dana

Klasa: Kubna
Složenost:
Broj operacija za :
Vreme pri operacija u sekundi: godina

Klasa: Eksponencijalna
Složenost:
Broj operacija za :
Vreme pri operacija u sekundi: puta starost univerzuma
Npr: Vremenska složenost algoritma je , što znači da kvadratni član najbrže
raste, tako da imamo kvadratnu složenost.

Algoritmi složenosti gde je m konstanta su algoritmi polinomijalne složenosti. Klasa


algoritama koji imaju polinomijalnu vremensku složenost se naziva algoritmi polinomijalnog
vremena.

Algoritmi složenosti gde je t konstanta veća od 1, a je polinomijalna funkcija od n


zovu se eksponencijalni algoritmi.

Podskup eksponencijalnih algoritama gde je konstanta, a je više od konstante a


manje od linearne funkcije se zovu superpolinomijalni.

Bilo bi dobro kada bi algoritmi za "razbijanje" kriptosistema bili eksponencijalne složenosti.


Međutim, kako za sada stvari stoje ovi algoritmi su superpolinomijalne vremenske složenosti.

Složenost problema

Kako proceniti 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 obradivi (tractable).


Problemi koji se ne mogu rešiti za polinomijalno vreme su neobradivi (intractable) ili teški
(hard).
Problemi za koje nije moguće izvesti algoritam koji bi ih rešio, bez obzira na vremensku
složenost algoritma se nazivaju neodlučivi (undecidable).

Problemi se po složenosti mogu svrstati u sledeće kategorije (svaka sledeća kategorija obuhvata
prethodne)

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
Tjuringove mašine (mašina predpostavlja 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.

Za sada nije dokazano da je ili da je . Ovo je vrhunski matematički problem.

You might also like