U kriptografiji, šifra je algoritam za šifrovanje i dešifrovanje — serija precizno definisanih koraka koji slede jedan za drugim. U netehničkoj upotrebi, šifra i kod predstavljaju isti termin, ali u kriptografiji to su različiti pojmovi. U klasičnoj kriptografiji, šifra je odvojena od koda. Načelno, u kodu se zamenjivanje vrši na osnovu obimne knjige kodova, u kojoj se reči i fraze zamenjuju slučajnim nizom znakova. Na primer, "UQJHS" može biti kod za „Nastavite do sledećih koordinata“.

Originalna informacija je poznata kao otvoreni tekst, a šifrovani oblik kao šifrovani tekst ili šifrat. Šifrovana poruka sadrži sve informacije iz otvorenog teksta, ali nije u obliku čitljivom za čoveka ili računar bez primene odgovarajućeg mehanizma za njegovo dešifrovanje - treba da predstavlja nasumične znakove za sve kojima nije namenjena.

Operacija šifrovanja obično zavisi od dodatne informacije zvane ključ. Procedura šifrovanja varira u zavisnosti od ključa, koji menja detalje algoritma. Ključ mora da se izabere pre šifrovanja poruke. Bez poznavanja ključa trebalo bi da je teško, ili skoro nemoguće, dekriptovati šifrat u čitljiv otvoreni tekst.

Treba razlikovati termine dešifrovanje i dekriptovanje:

  • Dešifrovanje je pretvaranje šifrata u otvoreni tekst kad je ključ poznat, vrši ga osoba kojoj je poruka namenjena.
  • Dekriptovanje je pokušaj pretvaranja šifrata u otvoreni tekst kad ključ nije poznat - vrše ga osobe kojima poruka nije namenjena. Dekriptovanje je deo kriptoanalize.

Većina modernih šifri može da se svrsta u kategorije na nekoliko načina:

  • Po načinu da li se primenjuju na blokovima znakova obično stalne dužine (blok šifre), ili na neprekidnom nizu znakova (poznata pod nazivima šifra niza, šifra toka ili protočna šifra, eng. stream cipher).
  • Po načinu da li se isti ključ koristi za šifrovanje i dešifrovanje (algoritmi simetričnih ključeva), ili se koristi poseban ključ (algoritmi asimetričnih ključeva). Ako je algoritam simetričan, ključ mora biti poznat primaocu i nikome više. Kod asimetričnog algoritma, ključ za šifrovanje je različit od ključa za dešifrovanje, ali je s njim u tesnoj vezi. Ako jedan ključ ne može da se utvrdi iz drugog, algoritam asimetričnog ključa ima svojstvo javnog/tajnog ključa i jedan od ključeva može biti obelodanjen bez gubitka tajnosti informacije.

Poreklo uredi

Reč šifra potiče iz francuskog jezika, franc. cifre - бројка, тајни знак, odnosno iz arapskog arap. صفر, şafira - празно, şifr - нула, ништа.

U ranijim vremenima, cifra je imala značenje „nula“, a kasnije je korišćena za bilo koji decimalni broj, ili bilo koji broj. Ove teorije pokazuju kako je cifra postala šifra u značenju šifrovanje:

  • U šifrovanju su se često koristili brojevi.
  • Rimski brojni sistem je bio nezgrapan, jer ne poznaje pojam nule (ili praznog skupa). Pojam nule (koja se takođe zvala cifra), koji je za nas sasvim prirodan, bio je potpuno stran u srednjovekovnoj Evropi. Cifra je stoga dobila značenje skrivanja jasne poruke, odnosno šifrovanja.

Dr Al-Kadi (ref-3) je zaključio da se arapska reč şifr za nulu razvila u evropski tehnički termin za šifrovanje.

Šifrovanje i kodiranje uredi

U ne-tehničkoj upotrebi, „(tajni) kod“ obično znači „šifra“. Međutim, u tehničkim diskusijama reči „kod“ i „šifra“ se odnose na dva različita pojma. Kodovi rade na nivou značenja — to jest, reči i izrazi se pretvaraju u nešto drugo i to sažimanje načelno skraćuje poruku. Nasuprot tome, šifra radi na nižem nivou: na nivou pojedinačnih slova, malih grupa slova, ili, u modernim šemama, na pojedine bitove. Neki sistemi koriste kombinovani kod i šifru, takozvano „superšifrovanje“ za povećanje sigurnosti. U nekim slučajevima, termini kod i šifra se koriste kao sinonimi u zameni i pomeranju.

Istorijski, kriptografija je podeljena u dihotomiju koda i šifre; kod ima svoju terminologiju, analognu onoj za šifru: „kodiranje“, „kodni tekst“, „dekodiranje“ itd.

Međutim, kod ima dosta nedostataka, kao što su osetljivost na kriptoanalizu i teškoće u baratanju glomaznim knjigama kodova. Zbog toga je kod zapostavljen u modernoj kriptografiji, a šifra je postala dominantna tehnika.

Tipovi šifre uredi

Postoji više vrsta različitih tipova šifrovanja. Algoritmi koji su se ranije koristili u prošlosti se značajno razlikuju od modernih metoda, a moderna šifra može da se klasifikuje prema načinu kako rade i da li koriste jedan ili dva ključa.

Istorijske šifre uredi

Šifre sa olovkom i papirom koje su korišćene u prošlosti su poznate pod nazivom „klasična šifra“. One uključuju proste „šifre zamene (supstitucije)“ i „šifre pomeranja (transpozicije)“. Na primer, „dobar dan“ može da se šifruje kao „ŽSDGĆ ŽGP“, gde se u poruci „d“ zamenjuje sa „Ž“, „a“ sa „G“ itd. Pomeranjem bi „dobar dan“ moglo da bude „RDANDOBA“. Ove proste šifre i primere je vrlo lako razbiti, čak i bez pomoći parova otvoreni tekst - šifrovani tekst.

Proste šifre su zamenjene šiframa „polialfabetske zamene“, koje menjaju alfabet zamene za svako slovo. Na primer, „dobar dan“ može da se zameni sa „ŽĆZIA ONV“, gde se u poruci „d“ zamenjuje sa „Ž“ i „O“, „a“ sa „I“ i „N“. Čak i na malom uzorku poznatog ili pretpostavljenog otvorenog teksta, šifre polialfabetske zamene i šifre pomeranja slova (namenjene za šifrovanje olovkom i papirom) se vrlo lako razbijaju.

Početkom dvadesetog veka izumljene su elektro-mehaničke mašine za šifrovanje i dešifrovanje, a koristile su pomeranje, polialfabetsku zamenu i neku vrstu „dodatne“ zamene. U „rotor mašinama“, nekoliko rotirajućih diskova je služilo za polialfabetsku zamenu, a dodatne ploče su služile za neku drugu zamenu. Ključevi su se lako menjali zamenom rotirajućih diskova i prespajanjem žica dodatnih ploča. Iako su ovi metodi šifrovanja bili kompleksniji od prethodnih i zahtevale mašine za šifrovanje i dešifrovanje, izumljene su druge mašine (kao npr. britanska „Bomba“) za dekriptovanje ovih metoda šifrovanja.

Moderne šifre uredi

Moderni metodi šifrovanja mogu da se podele po dva kriterijuma: po tipu korišćenog ključa i tipu ulaznih podataka.

Po tipu ključa, šifre se dele na:

  • Algoritmi simetričnog ključa (kriptografija sa tajnim ključem), gde se isti ključ koristi i za šifrovanje i za dešifrovanje, i
  • Algoritmi asimetričnog ključa (kriptografija sa javnim ključem), gde se koriste dva različita ključa za šifrovanje i dešifrovanje.

Kod algoritma simetričnog ključa (npr. DES i AES), pošiljalac i primalac moraju da imaju isti ključ, koji je unapred pripremljen i koji mora da bude tajan za sve kojima nije namenjen - pošiljalac koristi taj ključ za šifrovanje, a primalac isti taj ključ za dešifrovanje. Fajstelova šifra koristi kombinaciju šifre zamenjivanja i premeštanja. Većina algoritama blok šifre je bazirana na ovoj strukturi. Kod algoritma asimetričnog ključa (npr. RSA), postoje dva posebna ključa: „javni ključ“ se objavljuje i omogućava pošiljaocu da izvrši šifrovanje, dok „tajni ključ“ primalac čuva kao tajnu i koristi ga da izvrši ispravno dešifrovanje.

Po tipu ulaznih podataka, šifre se mogu svrstati u dve grupe:

  • Šifra blokova, kojom se šifruje blok podataka fiksne dužine, i
  • Šifra toka, kojom se šifruje kontinualni niz podataka.
 

Veličina ključa i ranjivost uredi

U čisto matematičkom napadu (tj. u nedostatku drugih informacija koje bi pomogle u razbijanju šifre), pre svega su bitna tri faktora:

  • Matematičke prednosti da se otkriju i iskoriste slabosti šifre.
  • Dostupna snaga izračunavanja, tj. snaga računara koja se može upotrebiti za rešavanje problema. Treba napomenuti da prosečne performanse/kapacitet jednog računara nisu jedini faktor koji se uzima u obzir. Protivnik može, recimo, da koristi više spregnutih računara i da tako značajno ubrza potragu za ključem (takozvani „napad grubom silom“).
  • Veličina ključa, tj. dužina ključa koji je upotrebljen za šifrovanje poruke. Kako raste veličina ključa, tako se povećava i kompleksnost pretraživanja grubom silom, sve do tačke kad prestaje da bude praktično direktno razbijanje šifre.

Pošto je željen efekt teškoća izračunavanja, teorijski se biraju algoritam i nivo težine, a na osnovu toga se bira odgovarajuća dužina ključa.

Primer ovog procesa se može naći na sajtu „Dužina ključa“, koji koristi nekoliko izveštaja da pokaže recimo da simetrična šifra sa 128 bitova, asimetrična šifra sa 3072 bitova i eliptična kriva sa 512 bitova imaju sličnu težinu.

Klod Šenon je dokazao, koristeći razmatranja teorije informacija, da svaka teoretski neprobojna šifra mora imati dužinu ključa najmanje koliko je dugačak otvoreni tekst i da se ključ koristi samo jednom (eng. one-time pad)

Vidi još uredi

Literatura uredi

  • Helen Fouché Gaines, “Cryptanalysis”, Dover. 1939. ISBN 978-0-486-20097-2.
  • Ibrahim A. Al-Kadi. “The origins of cryptology: The Arab contributions”, Cryptologia, 16(2) (April 1992) pp. 97–126.
  • Ibrahim A. Al-Kadi. “Cryptography and Data Security: Cryptographic Properties of Arabic”, proceedings of the Third Saudi Engineering Conference. Riyadh, Saudi Arabia: Nov 24-27, Vol 2:910-921., 1991.
  • David Kahn (1996). The Codebreakers - The Story of Secret Writing. ISBN 978-0-684-83130-5.  (1967)
  • Abraham Sinkov. Elementary Cryptanalysis: A Mathematical Approach, Mathematical Association of America. 1966. ISBN 978-0-88385-622-2.

Spoljašnje veze uredi