Négynégyzet-rejtjel

A Wikipédiából, a szabad enciklopédiából

A négynégyzet-rejtjel egy szimmetrikus kézi kódolási technika, amelyet a híres francia kriptográfus, Felix Delastelle talált fel.

Ezzel a módszerrel betűpárokat (digráfiák vagy bigrammák) kódolunk, és ezáltal a poligrafikus helyettesítő rejtjelek kategóriájába tartozik. Ezek a rejtjelek jelentős erőtöbbletet képviselnek a monografikus helyettesítő rejtjelekhez képest, amelyek szimpla karakterekkel dolgoznak. A betűpárok használata a négynégyzet-rejtjelet a gyakoriságelemzéssel szemben védettebbé teszi, hiszen a vizsgálatot egy adott nyelv betűi helyett az azokból előállítható betűpárokra kell elvégezni, ami az angol nyelv esetén 26 helyett 676 lehetőséget jelent (az ábécé betűinek számát önmagával szorozva kapjuk az összes lehetséges betűpár számát). Természetesen a betűpárok gyakoriságelemzése is lehetséges, de jóval bonyolultabb – nem beszélve arról, hogy sokkal nagyobb kódolt szövegre van szükség, hogy legyen valami haszna.

A négy négyzet használata[szerkesztés]

A négynégyzet-rejtjel négy darab 5×5-ös mátrixot használ, amelyek egy nagy négyzetet alkotnak. Mindegyik négyzet tartalmazza az angol ábécé betűit, rendszerint vagy a Q-t elhagyva, vagy pedig az I-t és a J-t egy betűnek tekintve, hogy az amúgy 26 betűből álló angol ábécé betűi elférjenek. Általában a bal felső és jobb alsó négyzetek az eredeti szöveghez tartozó négyzetek, melyek egy-egy standard ábécét tartalmaznak. A jobb felső és bal alsó négyzetek pedig értelemszerűen a kódolt szöveghez tartoznak, és az ábécének egy-egy kevert sorrendjét tartalmazzák.

A kódolt szöveghez tartozó négyzetek elkészítéséhez először a kulcsszó vagy -kifejezés betűivel kell kitölteni a négyzetet (mindkét másodszor előforduló betűt elhagyva), majd az ábécé fennmaradó betűivel ki kell tölteni a négyzet üresen maradt mezőit (ismét elhagyva a 'Q'-t, hogy elférjenek a betűk). A kulcsszót írhatjuk a négyzet felső sorába, balról jobbra haladva, vagy valamilyen spirális elrendezésben, például a bal felső sarokból csigavonalban a négyzet közepe felé tartva, de más módszert is kitalálhatunk. A kulcsszó a négyzet kitöltési módszerével együtt alkotja a kód kulcsát. A négynégyzetes algoritmus két különböző kulcs használatát teszi lehetővé, mindkét, kódolt szöveghez tartozó mátrixhoz egyet.

Példaképpen nézzük meg, hogy fest a négynégyzetes mátrix a "pelda" és a "kulcsszo" szavakra (ahol a 'cs' és 'sz' betűket két különálló betűként kezeljük, másképp nem tudnánk magyar szavakra alkalmazni az eljárást). Az eredeti szöveghez tartozó mátrixokban kisbetűk, míg a kódolt szöveghez tartozó mátrixokban nagybetűk szerepelnek a jobb láttatás érdekében:

a b c d e   P E L D A
f g h i j   B C F G H
k l m n o   I J K M N
p r s t u   O R S T U
v w x y z   V W X Y Z
 
K U L C S   a b c d e
Z O A B D   f g h i j
E F G H I   k l m n o
J M N P R   p r s t u
T V X Y Z   v w x y z

Az algoritmus[szerkesztés]

Egy üzenet kódolásához az alábbi lépéseket kell végrehajtani:

  • a szöveg betűpárokba rendezése (HELLÓ VILÁG-ból HE LL OV IL AG lesz)
  • a betűpár első tagjának megkeresése a bal felső mátrixban
a b c d e   P E L D A
f g h i j   B C F G H
k l m n o   I J K M N
p r s t u   O R S T U
v w x y z   V W X Y Z
 
K U L C S   a b c d e
Z O A B D   f g h i j
E F G H I   k l m n o
J M N P R   p r s t u
T V X Y Z   v w x y z
  • a betűpár második tagjának megkeresése a jobb alsó mátrixban
a b c d e   P E L D A
f g h i j   B C F G H
k l m n o   I J K M N
p r s t u   O R S T U
v w x y z   V W X Y Z
 
K U L C S   a b c d e
Z O A B D   f g h i j
E F G H I   k l m n o
J M N P R   p r s t u
T V X Y Z   v w x y z
  • a kódolt betűpár első tagját az eredeti betűpár első tagjának sorában, második tagjának oszlopában találjuk
a b c d e   P E L D A
f g h i j   B C F G H
k l m n o   I J K M N
p r s t u   O R S T U
v w x y z   V W X Y Z
 
K U L C S   a b c d e
Z O A B D   f g h i j
E F G H I   k l m n o
J M N P R   p r s t u
T V X Y Z   v w x y z
  • a kódolt betűpár második tagját az eredeti betűpár második tagjának sorában, első tagjának oszlopában találjuk
a b c d e   P E L D A
f g h i j   B C F G H
k l m n o   I J K M N
p r s t u   O R S T U
v w x y z   V W X Y Z
 
K U L C S   a b c d e
Z O A B D   f g h i j
E F G H I   k l m n o
J M N P R   p r s t u
T V X Y Z   v w x y z

A négynégyzet-rejtjel használatával az alábbi módon kódolhatunk tehát:

Eredeti szöveg: he ll ov il ag
Kódolt szöveg:  HL JF IZ CH EZ

Az alábbi ábra azt szemlélteti, hogy a "he" "HL"-lé való kódolási hogy néz ki a nem használt mezők kitörlésével:

– – – – –   – – – – -
– – h – –   – – – – H
– – – – –   – – – – -
– – – – –   – – – – -
– – – – –   – – – – -
 
– – L – –   – – – – e
– – – – –   – – – – -
– – – – –   – – – – -
– – – – –   – – – – -
– – – – –   – – – – -

Mint az könnyen belátható, a kódoláshoz csupán meg kell találnunk annak a téglalapnak a két másik csúcsát, melynek két csúcsát már ismerjük, s ezekben a csúcsokban található betűk adják a kódolt szöveget. A dekódolás ugyanezen az elven működik, csak fordítva: a betűpár tagjait nem az eredeti szöveg, hanem a kódolt szövegnek megfelelő mátrixokban helyezzük el, és így keressük a kialakuló téglalap csúcsait.

Kriptanalízis[szerkesztés]

Mint minden klasszikus rejtjel, a négynégyzet-rejtjel is könnyen feltörhető, ha elegendő hosszú szöveg áll rendelkezésre. Ha mind az eredeti, mind a kódolt szöveget ismerjük, a kulcs megszerzése nem okoz komoly gondot, ám ha csak a kódolt szöveget ismerjük, akkor a szöveg (feltételezett) nyelvének ismert betűpár-gyakoriságai és a rejtjelezett szöveg betűpár-gyakoriságai közötti egyezések keresésével elemezhetjük a szöveget.

A négynégyzet-rejtjel kriptoanalízise magában foglalja az ismétlődő betűk által létrehozott motívumok vizsgálatát is. Ez a módszer akkor alkalmazható, ha a négyből két mátrixot ismerünk, ami a legtöbb esetben így is van, hiszen a négy négyzet közül kettőben (általában) ábécésorrendben szerepelnek a betűk, persze léteznek ettől eltérő variációk is. Tehát ha tudjuk, hogy két mátrixban ábécésorrendben szerepelnek a betűk, azt is tudjuk, hogy azokban a szavakban, ahol megfelelő (páros vagy páratlan) helyen ismétlődik egy betű az eredeti szövegben, akkor a kódolt szövegben is ismétlődni fog az adott betű kódolt változata. Például a KA TO NA I szó lefordításakor bármilyen kulcs használata esetén az A betűk helyén azonos karakter fog szerepelni. Ezeket a motívumok feljegyezhetjük és összevethetjük a kódolt szöveg betűinek gyakoriságával, és a lehetséges mátrixelemek próbálgatásával juthatunk közelebb a kódolt szöveghez tartozó négyzetek megfejtéséhez.

A Playfair-rejtjeltől eltérően a négynégyzet-rejtjellel fordított betűpárokat kódolva nem kapunk fordítottakat (például a Playfair-rejtjellel AB BA valamilyen XY YX-re lesz kódolva, de a négy négyzettel nem). Mindez persze csak akkor áll fenn, ha a két kulcsszó különböző.

Mindent összevetve a négy négyzet erősebb kódolási rendszer a Playfairnél, azonban fáradságosabb is, a két kulcs használata és a kódoló/dekódoló lap előkészítése miatt. Mégis, mivel a négy négyzet erőfölénye túl csekély a Playfairrel szemben, és mindkét rendszer könnyen feltörhető, ha elegendő kódolt szöveg ismert, a Playfair terjedt el szélesebb körben.