Vigenère-kód

Már a XVI. században komoly titkosítási módszereket találtak ki az üzenetek elrejtésére. A század egyik legjobb kriptográfusának Blaise de Vigenère-nek a módszerét olvashatja a következőkben. A kódoláshoz egy táblázatot és egy ún. kulcsszót használt.

A tábla adatai a vtabla.txt fájlban találhatók.

ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZA
CDEFGHIJKLMNOPQRSTUVWXYZAB
...

Készítsen programot kodol néven a következő feladatok végrehajtására!

  • A program megírásakor a felhasználó által megadott adatok helyességét, érvényességét nem kell ellenőriznie.
  • A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát!
  • Ha a felhasználótól kér be adatot, jelenítse meg a képernyőn, hogy milyen értéket vár!
  • Az ékezetmentes kiírás is elfogadott.
  1. Kérjen be a felhasználótól egy maximum 255 karakternyi, nem üres szöveget! A továbbiakban ez a nyílt szöveg.
1. feladat:
Nyílt szöveg: Ez a próba szöveg, amit kódolunk!
  1. Alakítsa át és írja ki a képernyőre az átalakított nyílt szöveget, hogy a későbbi kódolás feltételeinek megfeleljen! A kódolás feltételei:
  • A magyar ékezetes karakterek helyett ékezetmenteseket kell használni. (Például á helyett a; ő helyett o stb.)
  • A nyílt szövegben az átalakítás után csak az angol ábécé betűi szerepelhetnek.
  • A nyílt szöveg az átalakítás után legyen csupa nagybetűs.
2. feladat:
Szöveg átalakítása: EZAPROBASZOVEGAMITKODOLUNK
  1. Kérjen be a felhasználótól egy maximum 5 karakteres, nem üres kulcsszót! A kulcsszó a kódolás feltételeinek megfelelő legyen! Alakítsa át a kulcsszót csupa nagybetűssé!
3. feladat:
Kulcsszó: auto
Kulcsszó nagybetűssé alakítása: AUTO
  1. A kódolás első lépéseként fűzze össze a kulcsszót egymás után annyiszor, hogy az így kapott karaktersorozat (továbbiakban kulcsszöveg) hossza legyen egyenlő a kódolandó szöveg hosszával! Írja ki a képernyőre az így kapott kulcsszöveget!
4. feladat:
Kulcsszöveg: AUTOAUTOAUTOAUTOAUTOAUTOAU
  1. A kódolás második lépéseként a következőket hajtsa végre! Vegye az átalakított nyílt szöveg első karakterét, és keresse meg a vtabla.txt fájlból beolvasott táblázat első oszlopában! Ezután vegye a kulcsszöveg első karakterét, és keresse meg a táblázat első sorában! Az így kiválasztott sor és oszlop metszéspontjában lévő karakter lesz a kódolt szöveg első karaktere. Ezt ismételje a kódolandó szöveg többi karakterével is!
  2. Írja ki a képernyőre és a kodolt.txt fájlba a kapott kódolt szöveget!
6. feladat:
Kódolt szöveg: ETTDRIUOSTHJEATAINDCDIEINE