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ų. 

Nuotrauka paimta iš http://en.wikipedia.org/wiki/Caesar_cipher

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

raidžių dažnumo lentelė

angliško alfabeto raidžių dažnumo lentelė

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

Dalink
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • Netvibes
  • PDF
  • StumbleUpon
  • Twitter

Panašūs įrašai

  1. kai reikai versti tekstą EN->LT

Komentarų: 3

Parašykite komentarą