4.3. Egyszerű rejtjelezés

iDevice ikon

Az összetett feladatok egyikében szó volt egy jelszó titkosításáról mátrix segítségével. A titkosítás - szakszerűen rejtjelezés - egyik módja, amikor már nem az egyes karaktereket titkosítjuk (az azonosakat mindig ugyanúgy), de még nem az óriás prímek szorzatának időben reménytelen tényezőkre bontásán alapuló módszert célozzuk meg.

Már a mátrix-műveletek után vettünk egy konkrét, legfeljebb 6 hosszú karakterláncból álló jelszót: BABUS . Ez a nyílt szöveg, melynek a titkosított párját rejtjelezett szövegnek nevezi a szakirodalom.

A J jelszómátrix 2x3 típusú, melyben a BABUS egy szóközzel kiegészítve oszlop-folytonosan tartalmazta a karakterek ascii-kódját:

Példánkban a titkosító mátrix: , ami arra is alkalmas, hogy a segítségével egyértelműen visszafejtsünk egy titkosított jelszót, hiszen az inverze is csupa egész számból álló visszafejtő mátrix volt: .

Megjegyzés: ez a feltétel itt azért fontos, mert az ascii-kódok egész számok.

A K*J szorzat a titkosított jelszó ascii-kódjait csak akkor tartalmazza oszlop-folytonosan, ha a kapott számok mindegyikének vesszük a 256-tal való egészosztás maradékát.

Következett a kapott mátrix elemeinek karakterré alakítása, majd a karakterlánc kiolvasása oszlopfolytonosan: „ĹΠŮIĆ˙" - ez a titkosított (vagy rejtjelezett) szöveg.

 

Tehát újra elvégeztük a „BABUS " titkosítását; titkosított párja a „ĹΠŮIĆ˙" lett.

Másik feladat: a „ĹΠŮIĆ˙" titkosított jelszó visszafejtése.

Ahhoz, hogy visszafejtsünk egy titkosított jelszót, az előző műveletsor ellentettjét kell végigcsinálni. A karakterek ascii-kódjából hasonlóan felállított mátrixot a titkosító mátrix inverzével, a visszafejtő mátrixszal kell összeszorozni.

Amikor a szorzatok között negatív számok is lesznek, már nem olyan egyszerű az egészosztás maradékainak meghatározása; legalábbis szoftveresen. Matematikailag természetes, hogy a 256-tal való egész osztás maradékai nem negatív számok (0, 1, ..., 255), tehát például a (-4) mod 3 nem -1, hanem +2, ui. a (-4)-ben (-2)-szer van meg a 3, és marad +2.

 

 

Megoldás:

Vesszük a titkosított jelszó ascii-kódjaiból álló J' mátrixot: ,

majd azt a visszafejtő mátrixszal (a titkosító mátrix inverzével) összeszorozzuk:

 

A matematikai egészosztás 256-tal a következő maradékokat adja elemenként:

.

Végül az elemek karakterré alakítása és oszlopfolytonosan történő kiolvasása nagyon helyesen a „BABUS " jelszót eredményezi.