4. Naloga

Šifriranje

Tajni agent Janez šifrira svoja sporočila s ključem dolžine 5 znakov po naslednjih pravilih:

  • Ključ sestavljajo same male črke angleške abecede (od a do z).
  • S prvo črko ključa šifrira 1., 6., 11., 16. itd. znak sporočila; z drugo črko ključa šifrira 2., 7., 12., 17. itd. znak sporočila; itd.
  • Šifriranje posameznega znaka sporočila (recimo z) z neko črko ključa (recimo c) poteka takole: če z ni črka angleške abecede, ostane pri šifriranju nespremenjen; sicer pogledamo, na katerem mestu v abecedi je tista črka c (tako nastane neko število n od 1 do 26), in nato znak z ciklično zamaknemo za n mest naprej po abecedi. Na primer, če je c = d, nastane iz njega n = 4 in pri cikličnem zamiku za 4 mesta se znak a zašifrira v e, znak b v f, itd., znak v v z, znak w v a, znak x v b, znak y v c in znak z v d.
Dobil si zašifrirano sporočilo, ključa pa ne poznaš. Toda veš, da se Janez, ki pošilja sporočila, vedno na koncu podpiše „Lp, Janez“, tako da bodo to gotovo zadnji znaki v sporočilu. Napiši program, ki odšifrira sporočilo in ga izpiše. Tvoj program lahko prebere sporočilo s standardnega vhoda ali pa iz datoteke sporocilo.txt (kar ti je lažje).  Predpostaviš lahko, da je celotno sporočilo v eni sami vrstici, dolgi največ 10 000 znakov.

Primer sporočila pred in po šifriranju, če za ključ uporabimo besedo labod:

Nešifrirano sporočilo:         Resi se, kdor se more! Lp, Janez
Znaki ključa:         labodlabodlabodlabodlabodlabodla
Šifrirano sporočilo:         Dfux ef, oppt wq odvq! At, Lprqa