Přeskočit na obsah

Hillova šifra

Šifrujte i dešifrujte text maticovým klíčem — klasickou polygrafickou šifrou založenou na lineární algebře.

Vstup
Výstup

Hillova šifra

Hillovu šifru vynalezl v roce 1929 Lester Hill. Šifruje text tak, že písmena převede na čísla a bloky těchto čísel vynásobí čtvercovou klíčovou maticí modulo velikost abecedy. Vložte otevřený text pro zašifrování, nebo šifrový text pro dešifrování — tento nástroj funguje oběma směry se stejným klíčem.

Zvolte velikost matice 2×2 nebo 3×3 a zadejte klíč buď jako holá čísla (řádek po řádku, oddělená mezerami nebo čárkami), nebo jako slovo — jeho písmena vyplní matici v pořadí čtení. Velikost abecedy může být 26 (pouze A–Z), nebo 29, která přidává mezeru, tečku a otazník, takže krátké fráze si zachovají interpunkci. Znaky mimo zvolenou abecedu se vynechají a písmena s diakritikou se nejprve převedou na základní tvar. Pokud počet písmen není násobkem velikosti matice, poslední blok doplní vyplňovací písmeno.

Dešifrování vyžaduje, aby byla klíčová matice invertovatelná modulo velikost abecedy — její determinant nesmí mít s číslem 26 (nebo 29) žádného společného dělitele. Pokud tato podmínka není splněna, nástroj místo nesmyslného výstupu vysvětlí proč, protože neinvertovatelná matice nemá jednoznačnou inverzní matici potřebnou k dešifrování. Zapnutím zobrazení matice, determinantu a inverzní matice uvidíte přesně, jak se klíč rozkládá, což se hodí při ručním ověřování klíče nebo při sledování příkladu z učebnice.

Vše probíhá lokálně ve vašem prohlížeči — nic z toho, co napíšete, se nikam neodesílá. Výsledek zkopírujte, stáhněte jako soubor .txt, nebo pošlete výstup rovnou zpět na vstup a zřetězte další úpravu.

Časté dotazy

Jak přesně Hillova šifra šifruje blok písmen?
Každé písmeno se změní na číslo (A=0, B=1, …), pevně velký blok těchto čísel se chápe jako sloupcový vektor a tento vektor se vynásobí klíčovou maticí modulo velikost abecedy. Výsledná čísla se stanou šifrovými písmeny daného bloku.
Proč dešifrování selhalo s chybou o determinantu?
Dešifrování potřebuje inverzní matici ke klíči, která existuje jen tehdy, když determinant nemá společného dělitele s velikostí abecedy (26 nebo 29). Zvolte jiné hodnoty klíče tak, aby byl determinant s tímto číslem nesoudělný.
K čemu slouží vyplňovací písmeno?
Hillova šifra pracuje pouze s úplnými bloky 2 nebo 3 písmen. Pokud počet písmen vašeho textu není násobkem velikosti matice, vyplňovací písmeno doplní poslední blok — ze stejného důvodu může dešifrovaný výstup končit jedním nebo dvěma vyplňovacími písmeny.
Mám klíč zadat jako čísla, nebo jako slovo?
Funguje obojí. Čísla vám dávají přesnou kontrolu nad maticí; slovo se snáz zapamatuje a jeho písmena vyplní matici řádek po řádku, přičemž pokud je slovo kratší, než matice potřebuje, použije se vyplňovací písmeno.
Odesílá se můj text někam?
Ne. Hillova šifra běží zcela ve vašem prohlížeči — text ani klíč nikdy neopustí vaše zařízení.