Cezarova šifra

U kriptografiji, **Cezarova šifra** jedan je od najjednostavnijih i najrasprostranjenijih načina šifriranja. To je tip šifre zamjene (supstitucije), u kome se svako slovo otvorenog teksta zamjenjuje odgovarajućim slovom abecede, pomaknutim za određeni broj mjesta. Na primjer, s pomakom 3, A se zamijenjuje slovom D, B slovom E itd. Ova metoda je dobila ime po Juliju Cezaru, koji ju je koristio za razmjenu poruka sa svojim generalima.

Cezarova šifra često se koristi kao korak u izradi složenijih načina šifriranja, kao što je Vigenèreova šifra, a ima i suvremenu upotrebu u sustavu "ROT13". Kao i sve ostale šifre jednostavne abecedne zamjene, Cezarova šifra lako se razbija i u praksi ne pruža nikakvu sigurnost u komunikaciji.

## Primjer
(Za lakše razumijevanje, u tekstu je otvoren tekst predstavljen malim, a šifrat velikim slovima.)

Pretvaranje se može predstaviti poravnavanjem dvije abecede jedne ispod druge; abeceda za šifriranje je obična abeceda rotirana lijevo ili desno za određeni broj mjesta. U ovom primjeru Cezarova šifra koristi lijevu rotaciju od tri mjesta. Parametar **pomak**, u ovom slučaju 3, koristi se kao ključ:

 Otvoreno:  a b c č ć d đ e f g h i j k l m n o p r s š t u v z ž
 Šifra:     Č Ć D Đ E F G H I J K L M N O P R S Š T U V Z Ž A B C

Za šifriranje poruke jednostavno se zapisuje slovo iz reda "Šifra" koje se nalazi ispod odgovarajućeg slova u redu "Otvoreno". Za dešifriranje postupak je obrnut.

 Otvoreno: odžačar filip šalje osmjehe tuđoj ženi a njegova kuća bez djece
 Šifrat:   SFCČĐČT ILOLŠ VČOMH SUPMHKH ZŽGSM CHSL Č RMHJSAČ NŽEČ ĆHB FMHDH

## Matematičko predstavljanje
Šifriranje se također može predstaviti preko modularne aritmetike, tako što se prvo slova pretvore u brojeve, na primjer po shemi A=0, B=1, ..., Ž=26 (bez dvoslova dž, lj, nj). Šifriranje slova x sa pomakom n može se matematički opisati kao

: E_n(x) = (x + n) \mod {27}.

Slično se izvodi i dešifriranje

: D_n(x) = (x - n) \mod {27}.

Prema navedenom, rezultat je u opsegu 0..26. Ako rezultat x+n ili x-n nije u opsegu od 0 do 26, treba dodati ili oduzeti 27.

Zamjena je ista za cijelu poruku, tako da je ovo šifriranje klasificirano kao tip monoalfabetske šifre, nasuprot tipu polialfabetske šifre.

## Historija i upotreba

Cezarova šifra je dobila ime po Juliju Cezaru, koji je, prema navodima u Svetonijevom tekstu "Dvanaest Cezara", takvu šifru s pomakom od tri mjesta koristio kao zaštitu poruka od vojne važnosti:
:*Ako je imao reći nešto povjerljivo, on je to pisao šifrirano tako što je mijenjao redoslijed slova u alfabetu i na taj način postigao da se nijedna riječ nije mogla prepoznati. Ako bi netko to želio dešifrirati i naći značenje, morao bi zamijeniti četvrto slovo alfabeta, dakle *D* s *A* i tako dalje za ostala.* — Svetonije, *Život Julija Cezara*, LVI..

Cezarova šifra je prva zabilježena upotreba ove sheme, ali je poznato da su druge šifre zamjene korištene ranije. Njegov rođak August također je koristio šifriranje, ali s desnim pomakom od jedan i nije vršio rotiranje na početak alfabeta:
:*Uvijek kad je pisao šifrirano, pisao je *B* umesto *A*, *C* umesto *B* i ostala slova po istom principu, koristeći *AA* umesto *X*.* — Svetonije, *Život Avgusta*, 88..

Postoji dokaz da je Cezar koristio i kompliciranije šifre i jedan autor, Aul Gelije, ukazuje na (sada izgubljenu) raspravu o njegovim šiframa:
:*Ima čak i jedna prilično oštroumno napisana rasprava gramatičara [[Marcus Valerius Probus|Proba]] o tajnom značenju slova u sastavljanju Cezarovih poruka.*
Nije poznato koliko je Cezarova šifra bila učinkovita u to vrijeme, ali je vjerojatno bila relativno sigurna, ne samo zbog toga što je malo Cezarovih neprijatelja znalo latinski ili uopće bilo upoznato s pisanim jezikom, već i zbog nemogućnosti primjene kriptoanalize. Pod pretpostavkom da je napadač mogao pročitati poruku, ne postoje zapisi iz tog vremena o bilo kakvoj tehnici za rješavanje šifara jednostavne zamjene. Najstariji zapisi o otkriću frekvencijske analize datiraju iz 9. stoljeća s arapskog područja.

Naspram odgovarajućih riječi (treće, četvrte i pete) na prednjoj strani, na poleđini pergamenta Mezuze,  nalazi se tekst , Cezarova šifra s pomakom 1 (*Adonaj elohenu, Adonaj*, Gospodin je naš Bog, Gospodin).

U 19. vijeku privatni oglasi u novinama služili su za razmjenu šifriranih poruka korištenjem jednostavnih shema šifriranja; David Kahn u *[[The New York Times|Timesu]]* (1967.) opisuje slučajeve tajne komunikacije ljubavnika šifrirane Cezarovom šifrom. Čak i kasnije (1915.), korištena je Cezarova šifra: Ruska vojska ju je koristila kao zamjenu za mnogo kompliciranije šifre koje su se kod njihovih trupa pokazale kao suviše teške za svladavanje - njemački i austrijski kriptoanalitičari su bez problema dekriptirali takve poruke.

Danas se Cezarova šifra može naći u dječijim igrama. Cezarov pomak od 13 se također koristi u "ROT13" algoritmu, ali ne kao metoda šifriranja, nego da bi se neki tekst učinio neprepoznatljivim, kao na primjer na nekim internetskim forumima za skrivanje spojlera.

Vigenèreova šifra koristi Cezarovu šifru s različitim pomakom na svakom mjestu u tekstu; vrijednost pomaka definira se korištenjem ponovljenog ključa. Ako se koristi slučajno izabran ključ koji se ne ponavlja i koji ima dužinu poruke, to je onda "šifriranje jednokratnim ključem" (eng. *one-time pad - OTP*) - šifra koja je neprobojna ako korisnik sačuva tajnost ključa. Ključevi koji su kraći od poruke predstavljaju ciklični uzorak koji se može otkriti statistički naprednom inačicom frekvencijske analize.

U aprilu 2006. mafijaški bos Bernardo Provenzano uhvaćen je na Siciliji djelomično zahvaljujući kriptoanalizi njegovih poruka pisanih u varijanti Cezarove šifre. Provenzanova šifra je koristila brojeve, tako da je "*A*" pisano kao "4", "*B*" kao "5" itd.

## Razbijanje šifre

Za razbijanje Cezarove šifre dovoljan je samo šifrat. Mogu se razmotriti dvija slučaja:
# napadač zna (ili sumnja) da se radi o šifri zamjene, ali ne i da je korištena Cezarova shema i
# napadač zna da je korištena Cezarova šifra, ali ne zna vrijednost pomaka.

U prvom slučaju, šifra se može razbiti korištenjem istih tehnika kao za opće šifre zamjene, kao što su frekvencijska analiza ili uzorak riječi. Dok rješava, napadač će vjerojatno brzo uočiti pravilnost u rješenju i zaključiti da je u pitanju Cezarova šifra.

U drugom slučaju, razbijanje sheme je još jednostavnije. Pošto je ograničen broj mogućih pomaka (u ovom slučaju 27, tj. hrvatska abeceda bez dvoslova dž, lj i nj), svaki se od njih može redom ispitati u "napadu grubom silom". Jedan od načina da se to uradi je da se napiše odsečak šifrata u tablicu svih mogućih pomaka. Navedeni primjer je za šifrat "LUBĆŽVOĆ"; otvoreni tekst se odmah prepoznaje u redu s pomakom 4. Drugi način rješavanja je da se ispod svakog slova šifrata ispiše cijela abeceda unatrag, počevši od tog slova. Ovaj napad se može ubrzati korištenjem pripremljenih traka sa slovima. Trake se zatim poravnaju dok se šifrat pojavi u jednom redu, a otvoreni tekst će se pojaviti u nekom od ostalih redova.

Još jedan pristup grubom silom je uspoređivanje raspodjele frekvencije slova. Predstavljanjem frekvencije slova u grafičkom obliku i znajući očekivanu raspodjelu slova u izvornom jeziku otvorenog teksta, može se lako uočiti vrijednost pomaka gledajući na posebne osobine grafikona. Ovo je poznato kao frekvencijska analiza. Na primjer, u hrvatskom jeziku slova A, I, O i E (kao najzastupljenija) i Č, Ć i F (kao najmanje zastupljena) su posebno karakteristična. Ovo može raditi i računalo korištenjem statističkih metoda.

Za otvoreni tekst u prirodnom jeziku, po svemu sudeći bi se dobila jedna vjerodostojna dekripcija, ali za izuzetno kratke tekstove moguće je pojavljivanje više mogućnosti zbog jednake udaljenosti slova (primjeri na engleskom: šifrat *MPQY* se može dešifrirati kao *aden* ili *know*, isto tako *ALIIP* kao *dolls* ili *wheel*).

Višestruko šifriranje ne omogućava dodatnu sigurnost. To je zato što će dva šifriranja s pomakom *X* i pomakom *Y* biti ekvivalentna jednom šifriranju s pomakom *X* + *Y*.

## Povezano
* Glosar kriptologije

## Izvori

* David Kahn, *The Codebreakers — The Story of Secret Writing,* 1967. .
* F.L. Bauer, *Decrypted Secrets,* 2nd edition, 2000, Springer. .
* Chris Savarese and Brian Hart, *The Caesar Cipher,* 1999 link

## Vanjske veze
* Andrej Dujella, "Kriptografija"
* A Windows program to encode text  featuring a "smart" dictionary attack to automatically decode cipher text
* A Caesar shift decoder in Excel format allowing you to see all 25 possibilities simultaneously 
* An online Caesar cipher encoder
* A Caesar cipher solver : brute force attack
* Caesar cipher encryptor/decryptor: based on letter frequencies

* The Caesar Shift  discussed on The Beginner's Guide to Cryptography 
* Historical sources for Caesar's use of the cipher
* JavaScript Shift Cipher Encryptor/Decryptor 
* Code Cracker  Cracks many classic encryption codes including Caesar cipher, trying all permutations
* Online Caesar cipher encoder
* Generate your own secret codes
* Caesar Cipher Game  An open-source Java game, with detailed explanation and comments
* Caesar Cipher. A Java client side implementation with sources. (GPL) 
* Online Caesar cipher encoder/decoder