Vigenerova šifra

Počátky této šifry sahají až do 15. století k Leonu Brattistovi Albertimu. Alberti navrhl použití dvou čí více cifrových abeced, které by se pravidelně střídaly. I když to byl počátek jednoho z největších objevů, tak Alberti ho již dál nerozvinul. V tom pokračoval německý opat Johannes Trithemius, dále italský vědec Giovanni Porta a konečně Blaise de Vigenere, francouzský diplomat, narozený roku 1523. Přes nesporný význam příspěvků Albertiho, Trithemia a Porty se šifra nazývá po Vigenerovi, který ji dopracoval do konečné podoby. Síla Vigenerovy šifry spočívá v tom, že k zašifrování zprávy používá 26 odlišných šifrových abeced. A nyní se vrhnene na popis šifry a zašifrujeme si jako příklad nějakou větu.

Jako první si nakreslíme Vigenerův čtverec, což je otevřená abeceda následovaná 26 šifrovými abecedami, z nich každá je oproti té předchozí posunuta o jeden znak. První řádek tedy odpovídá šifrové abecedě s Caesarovým posunem 1, druhý řádek odpovídá šifrové abecedě s Caesarovým posunem 2 a tak pokračujeme až do konce. Tady máte celý Vigenerův čtverec:



Nejvrchnější řádek čtverce reprezentuje otevřený text. Každé písmeno lze zašifrovat kteroukoli z 26 šifrových abeced. Pokud například použijeme abecedu 6, pak písmeno a šifrujeme jako G, při abecedě 16 bude písmeno a jako M atd. Abychom využili sílu Vigenerovy šifry, tak každé písmeno zašifrujeme pomocí jiného řádku. Aby ovšem nebyl proces šifrování a dešifrování moc složitý, tak použijeme nějaké klíčové, podle jehož délky použije různý počet šifrových abeced. Ale zpátky k našemu příkladu. Budeme šifrovat například tuto větu:

Zlato je ulozeno v jeskyni

Jako naše klíčové slovo použijeme třeba poklad. A nyní můžeme začít šifrovat. Nad náš text, který chceme zašifrovat, napíšeme naše klíčové slovo poklad, které opakujeme až do konce otevřeného textu. Nyní si vezmeme první písmeno našeho otevřeného textu, což je z a najdeme ho v nejvrchnějším řádku Vigenerova čtverce, čímž definujeme sloupec. Dále se podíváme na písmeno klíčového slova, které jsme si nadepsali nad náš otevřený text, písmeno P a najdeme ho v prvním sloupci Vigenerova čtverce a definujeme tím řádek. Tam, kde se nám protne náš sloupec s řádkem, nalezneme písmeno našeho šifrového textu, čili písmeno O. Dále na řadě máme písmeno otevřeného textu l a nad ním písmeno klíčového slova O. Jakmile písmeno l najdeme ve vrchním řádku, získáme opět sloupec, ve kterém najdeme písmeno našeho šifrového textu. V levém sloupci najdeme písmeno O a získáme tak řádek s šifrovým písmenem. Jakmile protneme ten sloupec a řádek, tak získáme písmeno Z. Postup takhle opakujeme, než zašifrujeme všechna písmena otevřeného textu. Dostanete to, co naleznete v následující tabulce:

POKLADPOKLADPOKLADPOKL
zlatojeulozenovjeskyni
OZKEOMTIVZZHCCFUEVZMXT



Po zašifrování celého textu jsme dostali tento zašifrovaný text:

OZKEOMTIVZZHCCFUEVZMXT

Tímto jsme pomocí Vigenerovy šifry zašifrovali naši zprávu. Velká výhoda je v tom, že jsme střídali 6 různých abeced, takže na prolomení naší šifry nestačí obyčejná frekvenční analýza. Dešifrování šifry pomocí klíče je opět jednoduché, jenom uděláme celý proces od konce. Čím delší použijeme heslo, tím více různých abeced se použije a tím bezpečnější je náš zašifrovaný text. Kdybychom chtěli tuto šifru prolomit, museli bychom použít pokročilou frekvenční analýzu, která je ovšem složitější než obyčejná frekvenční analýza a celou ji popíšu v jednom z dalších článků.

Doufám, že se vám článek líbil a jako vždy, pokud budete mít jakékoli přípomínky, klidně zanechejte komentáře.