Imperatoriškasis poslinkis: Gajus Svetonijus, romėnų karo žvalgyba ir Julijus Cezaris

Cezario šifras (istoriniuose šaltiniuose dar vadinamas poslinkio šifru arba Cezario kodu) yra viena seniausių ir geriausiai dokumentuotų monoalfabetinio pakeitimo sistemų žmonijos kriptografijos istorijoje. Romos istorikas Gajus Svetonijus Trankvilas savo veikale „Dvylikos cezarių gyvenimas“ (lot. De Vita Caesarum, apie 121 m. e. m.) detaliai aprašė, kaip karvedys Julijus Cezaris Galijos karų metu (58–50 m. pr. m. e.) naudojo šią sistemą slaptiems kariniams pranešimams savo legionų vadams ir artimiems bendražygiams, pavyzdžiui, Ciceronui, siųsti.

Pasak Svetonijaus, kai Cezariui reikėdavo perduoti ypač konfidencialią žinią, jis tekstą užrašydavo taip, kad „priešui perėmus pranešimą, šis negalėtų nieko suprasti be specialaus rakto“. Klasikinis Cezario karinis standartas rėmėsi fiksuotu trijų pozicijų postūmiu į priekį (K = 3): raidė A buvo keičiama į D, B – į E, C – į F, o abėcėlės pabaigoje raidės cikliškai apsisukdavo (X → A, Y → B, Z → C).

Vėliau pirmasis Romos imperatorius Cezaris Augustas (Oktavianas) naudojo panašų poslinkio principą, tačiau su savita taisykle: jis taikė vienos pozicijos postūmį į dešinę (K = 1), o paskutinės raidės Z neapsukdavo ratu, vietoje jos tiesiog rašydamas dvigubą AA.

Moduliarinė aritmetika: šifravimo ir dešifravimo formulės

Šiuolaikinėje diskrečiojoje matematikoje Cezario šifras formalizuojamas sveikųjų skaičių liekanų žiede pagal modulį 26, žymimame ℤ₂₆. Kiekvienai lotyniškosios abėcėlės raidei priskiriamas skaitinis indeksas nuo 0 (A) iki 25 (Z). Šifravimo ir dešifravimo transformacijos aprašomos tiesinėmis kongruencijomis:

EK(p) = (p + K) mod 26
DK(c) = (c − K) mod 26 = (c + 26 − K) mod 26

Čia p žymi atvirojo teksto raidės indeksą, c – užšifruoto teksto indeksą, o K ∈ {1, 2, ..., 25} – slaptąjį poslinkio raktą. Atkreipkite dėmesį, kad dešifravimas su raktu K yra matematiškai ekvivalentus šifravimui su papildiniu K′ = (26 − K) mod 26. Pavyzdžiui, panaikinti poslinkį +3 yra visiškai tas pats, kas pastumti tekstą pirmyn per +23 pozicijas.

ROT13 ir involiucinė simetrija interneto kultūroje

Pasaulyje labiausiai paplitusi Cezario šifro atmaina yra ROT13 (angl. Rotate by 13 places), kurioje poslinkio raktas lygus lygiai pusei abėcėlės ilgio (K = 13). Kadangi 13 + 13 = 26 ≡ 0 (mod 26), ROT13 pasižymi vadinamąja involiucine (save grąžinančia) simetrija:

ROT13(ROT13(x)) = x

Šis šifras tapo neatsiejama ankstyvojo interneto (Usenet naujienų grupių RFC 1392 standarto) dalimi, kur juo buvo maskuojami anekdotų atsakymai, filmų siužeto detalės (spoileriai) ar galvosūkių sprendimai, nereikalaujant jokių slaptažodžių.

Kriptoanalizė: 25 poslinkių erdvė ir Chi-kvadrato (χ²) testas

Kadangi Cezario šifro raktų erdvė apsiriboja vos 25 netrivialiomis kombinacijomis, kompiuterinėje epochoje šis šifras neturi jokio kriptografinio saugumo. Bet kuris užpuolikas akimirksniu gali atlikti visapusišką perranką (angl. brute-force), išbandydamas visus 25 variantus per kelias milisekundes.

Norint visiškai automatizuoti perskaitymą be žmogaus įsikišimo, mūsų įrankis taiko Chi-kvadrato (χ²) statistinio suderinamumo testą, kuris kiekvieno poslinkio raidžių pasiskirstymą lygina su natūralios kalbos tikimybėmis (anglų kalboje dažniausios E ~12.7%, T ~9.1%, A ~8.2%, lietuvių kalboje – I, A, S, E):

χ² = (Oi − Ei Ei

Čia Oi yra faktinis raidės i pasikartojimų skaičius dešifruotame tekste, o Ei = N · fi – teorinis tikėtinas skaičius. Poslinkis, kurio χ² reikšmė yra mažiausia, beveik visada tiksliai nurodo originalų tekstą.

Slėpimo iliuzija: ironija, romėnų naivumas ir permatomas labirintas

Žmonijos istorijoje esama komiško naivumo: tikėjimo, jog paslinkus abėcėlę trimis raidėmis į šoną, banali kasdienė informacija akimirksniu virsta neįveikiama imperatoriška paslaptimi. Julijus Cezaris, garsėjęs strateginiu protu, regis, nuoširdžiai tikėjo, jog Galijos genčių vadai ar Romos patricijai buvo tokie beraščiai, kad raidžių sukeitimas iš V-E-N-I į Y-H-Q-L taps amžina mįsle.

Cezario šifras nesaugo paslapties – jis tik apvelka žmogaus ambicijas į vaikiško eilėraščio ritmą. Tai tolygu paslėpti namų raktą po kilimėliu ir viršuje nupiešti rodyklę. Vis dėlto, būtent šis paprastumas pavertė Cezario šifrą nemirtingu kriptografijos pradžiamoksliu – priminimu, kad visos galingos šiuolaikinės sistemos, nuo Enigmos iki RSA ir elipsinių kreivių, prasidėjo nuo Romos generolo rankose sukinėjamo medinio ratelio.

Prisiminkime didžiausią istorinę kovo idų (44 m. pr. m. e.) tragedijos ironiją: Julijus Cezaris galėjo meistriškai maišyti savo legionų pranešimus anapus Reino ar Lamanšo sąsiaurio, tačiau pasirodė visiškai bejėgis dešifruoti akivaizdų, dienos šviesoje Pompejaus kurijoje brendusį politinį sąmokslą. Kai dvidešimt trys durklų smūgiai nutraukė imperatoriaus gyvybę, jokia moduliarinė aritmetika pagal modulį 26 ir jokie matematiniai poslinkiai nebegalėjo atsukti atgal kartaus Marko Junijaus Bruto išdavystės fakto. Cezaris įvaldė banalią priebalsių stumdymo techniką, tačiau liko aklas atviram artimiausių bendražygių kėslui.

Praėjus dviem tūkstantmečiams, civilizacinis troškimas maskuoti buitinę pilkumą po neįveikiamos kriptografijos širma išliko nepakitęs. Šiuolaikinė skaitmeninė visuomenė vaško lenteles ir žalvarinius smeigtukus pakeitė 256 bitų elipsinėmis kreivėmis bei kvantiniams kompiuteriams atspariais algoritmais, tačiau šiomis monumentaliomis matematinėmis tvirtovėmis mes vis tiek šifruojame korporatyvinį žargoną, biuro paskalas ir rinkodaros naujienlaiškius, kurių niekas net neketino skaityti. Cezario šifras gyvuoja šimtmečius ne todėl, kad kada nors saugojo tikras valstybės paslaptis, o todėl, kad tobulai glosto mūsų amžiną psichologinę silpnybę – jaustis sąmokslo imperatoriais pasaulyje, kuriame paslaptis tėra paslinkta trimis žingsneliais į dešinę.

Edukacija, pabėgimo kambariai ir spausdinamas A4 rankdarbių ratas

Šiandien fiziniai Cezario šifro diskai plačiai naudojami mokyklose, skautų stovyklose, pabėgimo kambariuose (Escape Rooms) ir Geocaching lobių ieškojimo žaidimuose. TOOL GIGA pateikia paruoštą vektorinį A4 formato šabloną: atsispausdinkite, išsikirpkite du koncentrinius ratus, perverkite centrą smeigtuku ir praktiškai mokykitės kriptografijos pagrindų.