Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az I. 385. feladat (2015. november)

I. 385. A Playfair-féle titkosítási eljárást (Forrás: https://hu.wikipedia.org/wiki/Playfair-rejtjel) a fizikai tanulmányainkból ismert Charles Wheatstone találta ki 1854-ben, de azt barátjáról, a módszert népszerűsítő Lord Playfairről nevezték el. Magát az eljárást már az első világháború előtt feltörték, azonban az ausztrálok még a II. világháborúban is használták. (Akkoriban, számítógépek nélkül, a feltöréshez szükséges idő még hosszabb volt, mint amennyi ideig az információ titkosnak számított.)

Az eljárás alapját egy \(\displaystyle 5\times 5\)-ös táblázat alkotja, amely az angol ábécé betűit tartalmazza (az angol ábécé 26 betűs, így ebből egyet, esetünkben a Q-t, el kell hagyni). Természetesen ezt a táblát csak a küldő és fogadó fél ismerheti.

A titkosítandó szöveget (példánkban FINOM IZ) betűpárokra tagoljuk, szükség esetén az utolsót egy megválasztott jellel (a feladatban legyen X) kiegészítjük. Hasonló módon járunk el, ha a betűpár két eleme azonos, például az AA betűpárt AX AX betűpárokká alakítjuk át.

Az eljárás a betűpárokhoz rendel betűpárokat az alábbiak szerint:

\(\displaystyle \bullet\) Ha a két betű a táblázatban egy sorban van, akkor azokat a tőlük eggyel jobbra lévő betű rejtjelezi. Az utolsó oszlopban lévő betűt az adott sor első betűje követi (FI \(\displaystyle \to\) RN).

\(\displaystyle \bullet\) Ha a két betű egy oszlopban van, akkor azokat az alattuk lévő betű rejtjelezi. Az utolsó sorban lévő betűt az adott oszlop első betűje követi (NO \(\displaystyle \to\) VN).

\(\displaystyle \bullet\) Végül, ha a két betű különböző sorban és különböző oszlopban van, akkor tekintsük azt a ,,betűtéglalapot'', amelyben a két betű egy ,,átló'' két végpontja. A betűket ekkor a saját sorukban, a téglalap másik csúcsánál lévő betűkkel helyettesítjük (MI \(\displaystyle \to\) KF).

A program első parancssori argumentuma egy karakter, amely megadja, hogy a felhasználó az adatokat rejtjelezni vagy visszafejteni szeretné-e (R/V), második a Playfair-rejtjelező táblázatot sorfolytonosan tartalmazó fájl neve, a harmadik a rejtjelezendő/visszafejtendő adatokat tartalmazó fájl neve, a negyedik pedig a kimeneti fájl neve legyen.

Feltételezhetjük, hogy a bemeneti adatok csak az angol ábécé fentieknek megfelelő nagybetűit tartalmazzák. A programot úgy készítsük el, hogy a rejtjelezendő/visszafejtendő állomány mérete tetszőleges, akár több GB-os is lehet.

Beküldendő egy i385.zip tömörített állományban a program forráskódja és dokumentációja, amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.

Letölthető fájlok (egy lehetséges Playfair-rejtjel, valamint egy lehetséges rejtjelezendő fájl): kod.txt, be.txt.

(10 pont)

A beküldési határidő 2015. december 10-én LEJÁRT.


A Playfair-féle eljárás nem definiálja egyértelműen hogy dekódoláskor mi történjen az 'X'-ekkel. Ezért nem tekintettük hibának azt sem ha dekódolás után benne maradtak és azt sem ha valamennyi törlődött.

Gyakori problémák: Sajnos sok helytelen megoldás érkezett a rejtjelezésre. Többen például az azonos sorban lévő betűknek nem az oszlopát, hanem a sorszámát növelték meg. (Ezt egyszerűen a lapban közölt FINOMIZ példáján ellenőrizni lehetett volna.) Ugyancsak többször előfordult, hogy azonos betűk esetén a program egyszerűen kifagyott. A feladat kitűzésében szerepelt, hogy a bemenet tetszőleges hosszúságú lehet, ezért azt nem tárolhatjuk a memóriában pl. egy szöveges változóban. Elvárt volt az argumentumok parancssori megadása, de pontot csak abban az esetben vontunk le, ha a felhasználónak nem volt lehetősége a program futása során sem beírni a fájlneveket.

10 megoldás érkezett. Az eredmények: 10 pont: 2 beküldő, 8 pont: 3 beküldő, 7 pont: 1 beküldő, 6 pont: 2 beküldő, 4 pont: 1 beküldő. Egy tanuló - bár tökéletes megoldást adott - nem a versenykiírásnak megfelelő nyelvet választott, ezért nem kaphatott pontot.

A közölt megoldás Olexó Gergely (Budapesti Fazekas Mihály Gyakorló Általános Iskola és Gimnázium) 11. osztályos tanulótól származik. i385.zip


Statisztika:

9 dolgozat érkezett.
10 pontot kapott:Nagy Ábel, Olexó Gergely.
8 pontot kapott:3 versenyző.
7 pontot kapott:1 versenyző.
6 pontot kapott:2 versenyző.
4 pontot kapott:1 versenyző.

A KöMaL 2015. novemberi informatika feladatai