Cezario šifras
Cezaro šifras
yra vienas iš seniausių šifravimų technikų. Šifravimas atliekamas pakeičiant abėcėlės raides per tam tikrą, žinomą pozicijų skaičių.
Pateiktame paveiksliuke abėcėlė perstumta yra per 3 vietas, tai Cezario šifravimo raktas lygus trim. Šifravimas naudoja tokį algoritmą:
šifravimui : Ci=(Pi +K) mod 26,
dešifravimui: Pi=(Ci-K+26) mod 26
kur Ci šifruoto teksto raidės, Pi žinutės raidės, K – šifravimo raktas.
Trūkumai
Šio algoritmo atsparumas atakom yra silpnas. Galima pakankamai greitai atšifruoti žinutę nežinant postūmio.
Rakto atspėjimo būdai
Jei yra užkoduotas angliškas tekstas, galima atlikti raidžių dažnumo analizę. Originalų tekstą gauname keičiant atitinkamo dažnumo raides. Angliško teksto raidžių dažnumo lentelė pateikta žemiau
Taikant šį būdą reikia pakankamai didelio užkoduoto teksto, kad būtų gautas kuo tikslesnis raidžių dažnumas. Dėl efektyvumo papildomai galima paskaičiuoti kiekvienos raidės postūmį. Dažniausia postūmio vertė - šifro raktas.
Kitas būdas naudoti „brute force“ metodą sudarant įvairius raidžių derinius ir juos tikrinant su žodžių duomenų lentele. Radus atitikimą paskaičiuoti postūmį.
Programa
Programa sukurta JAVA programavimo kalba ir moka užkoduoti tekstą, jį dekoduoti ir bandyti atspėti kodavimo raktą. Sukurta tik komandinės eilutės valdymas.
Programos pirminis tekstas priglaustas pastebin.lt sistemoje: main.java encode_decode.java
Plačiau galite pasiskaityti angliškoje wikipedijoje http://en.wikipedia.org/wiki/Caesar_cipher
Panašūs įrašai




2010 Liepos 2 21:27
Nesupratau, tu čia programuot pradėjai?
2010 Liepos 8 12:35
Paprasta parašyt programą, kai žinomas algoritmas ar formulės
2010 Liepos 8 19:45
ir kai tą programą reikia padaryti laboratoriniam darbui
Tiesiog norėjau pasidalinti su likimo broliais, jei kam reiks informacijos.