Preskočiť na obsah

Hillova šifra

Šifrujte a dešifrujte text maticovým kľúčom — klasickou polygrafickou šifrou založenou na lineárnej algebre.

Vstup
Výstup

Hillova šifra

Hillova šifra, ktorú v roku 1929 vynašiel Lester Hill, šifruje text tak, že písmená prevedie na čísla a bloky týchto čísel vynásobí štvorcovou kľúčovou maticou modulo veľkosť abecedy. Vložte otvorený text na zašifrovanie, alebo šifrový text na dešifrovanie — tento nástroj funguje v oboch smeroch s rovnakým kľúčom.

Vyberte si veľkosť matice 2×2 alebo 3×3 a zadajte kľúč buď ako holé čísla (riadok po riadku, oddelené medzerami alebo čiarkami), alebo ako slovo — jeho písmená vyplnia maticu v poradí čítania. Veľkosť abecedy môže byť 26 (iba A–Z) alebo 29, ktorá pridáva medzeru, bodku a otáznik, takže krátke frázy si zachovajú interpunkciu. Znaky mimo zvolenej abecedy sa vynechajú a písmená s diakritikou sa najprv prevedú na svoj základný tvar. Ak počet písmen nie je násobkom veľkosti matice, posledný blok doplní vypĺňacie písmeno.

Dešifrovanie vyžaduje, aby bola kľúčová matica invertovateľná modulo veľkosť abecedy — jej determinant nesmie mať s číslom 26 (alebo 29) žiadneho spoločného deliteľa. Ak táto podmienka nie je splnená, nástroj namiesto nezmyselného výstupu vysvetlí prečo, keďže neinvertovateľná matica nemá jednoznačnú inverznú maticu potrebnú na dešifrovanie. Zapnutím zobrazenia matice, determinantu a inverznej matice uvidíte presne, ako sa kľúč rozkladá, čo sa hodí pri ručnom overovaní kľúča alebo pri sledovaní príkladu z učebnice.

Všetko prebieha lokálne vo vašom prehliadači — nič z toho, čo napíšete, sa nikam neodosiela. Výsledok skopírujte, stiahnite ako súbor .txt, alebo pošlite výstup rovno späť na vstup a zreťazte ďalšiu úpravu.

Časté otázky

Ako presne Hillova šifra šifruje blok písmen?
Každé písmeno sa zmení na číslo (A=0, B=1, …), pevne veľký blok týchto čísel sa chápe ako stĺpcový vektor a tento vektor sa vynásobí kľúčovou maticou modulo veľkosť abecedy. Výsledné čísla sa stanú šifrovými písmenami daného bloku.
Prečo dešifrovanie zlyhalo s chybou o determinante?
Dešifrovanie potrebuje inverznú maticu ku kľúču, ktorá existuje iba vtedy, keď determinant nemá spoločného deliteľa s veľkosťou abecedy (26 alebo 29). Zvoľte iné hodnoty kľúča tak, aby bol determinant s týmto číslom nesúdeliteľný.
Na čo slúži vypĺňacie písmeno?
Hillova šifra pracuje iba s úplnými blokmi 2 alebo 3 písmen. Ak počet písmen vášho textu nie je násobkom veľkosti matice, vypĺňacie písmeno doplní posledný blok — z rovnakého dôvodu môže dešifrovaný výstup končiť jedným alebo dvoma vypĺňacími písmenami.
Mám kľúč zadať ako čísla, alebo ako slovo?
Funguje oboje. Čísla vám dávajú presnú kontrolu nad maticou; slovo sa ľahšie zapamätá a jeho písmená vyplnia maticu riadok po riadku, pričom ak je slovo kratšie, ako matica potrebuje, použije sa vypĺňacie písmeno.
Odosiela sa môj text niekam?
Nie. Hillova šifra beží úplne vo vašom prehliadači — text ani kľúč nikdy neopustia vaše zariadenie.