Unalmas délutánjaim során, kitaláltam egy játékot. A játék lényege, hogy a mitsem sejtő játékos csak ezt látja:
Crypted string__: tvpaeáydlqiápiáxxuhögfntdptdxrrqxrythlrduacklöekdyüx (52)
ABC_TABLE____: aábcdeéfghijklmnoöpqrstuüvxyz (len:29)
CODE_________: 458
HELP:_________: Jules Verne ( Verne Gyula (iró))
Nos mi is lehet ez? Ezt a titkosítási módot Verne Gyula egyik művében (800 mérföld az Amazonason) láttam, és mivel megtetszett leprogramoztam.
Itt segítségnek megadtam a kódót is, hiszen a kód hiányában átlag usernek lehetetlen vissza fejtenie a szöveget. Persze nagy erőforrással, és sok idővel vissza lehet
A titkosítása menetét a könyvből idézném:
Válasszunk egy mondatot pl: Jarriquez bíró nagyon okos
Most válasszunk egy számot, mondjuk, egy háromjegyű számot. Legyen ez a szám 423. Most az előbb választott mondat betűit külön-külön leírjuk, aztán aláírjuk a sifreként választott számot.
Tehát:
Válasszunk egy mondatot pl: Jarriquez bíró nagyon okos
Most válasszunk egy számot, mondjuk, egy háromjegyű számot. Legyen ez a szám 423. Most az előbb választott mondat betűit külön-külön leírjuk, aztán aláírjuk a sifreként választott számot.
Tehát:
Jarriquez | bíró | nagyon | okos |
423423423 | 4234 | 234234 | 2342 |
Most írjuk még le az ábécét, és lássuk el sorszámmal az egyes betűket, így:
a 1 f 8 m 15 s 22
á 2 g 9 n 16 t 23
b 3 h 10 o 17 u 24
c 4 i 11 ö 18 ü 25
d 5 j 12 p 19 v 26
e 6 k 13 q 20 x 27
é 7 l 14 r 21 y 28
z 29
Ezek után nézzük csak a választott mondatot. Az első betű j, szám szerinti jele a 4. Az ábécében megkeresem a j betűt, szám szerinti jele 12. 12 + 4= 16, a j betűt tehát a 16-os betű, vagyis az n helyettesíti. A választott mondat második betűje az a, számjele 2, vagyis az a helyett a mi titkosírásunkban b-t írunk.
A választott mondat első szava, a Jarriquez ezek szerint így íródik le:
J + 4 = n
a + 2 = b
r + 3 = u
r + 4 = ü
i + 2 = k
q + 3 = t
u + 4 = y
e + 2 = f
z + 3 = b
vagyis egybe: nbuüktyfb, s a mondat következő szavai is ilyen furcsák lesznek, ha a betűket átírjuk.
Az ábécé végén levő betűk esetében is egyszerű a megoldás. Nézzük például a nevem végén szereplő z betűt. Az utána három hellyel hátrább szereplő betűvel kellene helyettesítenünk, minthogy azonban a fölírt ábécében utolsóként szerepel, visszamegyek, és az ábécé első betűjénél kezdek el számolni, vagyis: z + 3 = b.
Tehát : nbuüktyfb
A crypternek és decrypternek a php-t választottam.
A forrás itt érhető el.