Hlavní obsah

Vigenèrova šifra: rozluštíme nerozluštitelné

Foto: Pixabay. Awsloley. Dostupné z: https://pixabay.com/cs/photos/počítač-jistič-technika-stroj-3229814

Říkalo se jí „le chiffre indéchiffrable“, nerozluštitelná šifra. Pojďme se podívat blíže na šifru, která nebyla prolomena po čtyřista let. A rovnou se ji naučíme používat, šifrovat a dešifrovat.

Článek

Nejdříve jsme popsali v článku Caesarovu šifru: Caesarova šifra: Historické bohatství pro rozvoj matematických dovedností - Médium.cz. Tento typ šifry používá pro zašifrování posun abecedy o předem určený počet míst. Teď se zaměříme na šifru, která posouvá jednotlivá písmena podle předem určeného klíče a tím je o něco složitější. Zůstala nerozluštěna po dlouhých 400 let a je pojmenována po člověku, který ji vlastně nevymyslel.

V 15. století se šifrování opíralo hlavně o jednoduché substituce – každé písmeno se nahrazovalo jiným, podle pevného klíče. Rozluštění takové šifry bylo jednoduché i pro člověka, který měl jen minimum znalostí. Leon Battista Alberti přišel s převratnou myšlenkou: co kdyby se abeceda měnila během šifrování? Jeho kovový šifrovací disk z roku 1467 umožnil střídání abeced, a tím položil základ polyalfabetické šifry. Jedno písmeno bylo v textu zašifrováno různými písmeny, proto bylo prolomení těžší.

O pár desetiletí později byla vytvořena mřížka, která umožňovala systematicky měnit posuny. Skutečný průlom nastal v roce 1553, kdy Giovan Battista Bellaso představil šifru s opakujícím se klíčovým slovem. Díky tomu stačilo znát krátké heslo pro dešifrování. Bez znalosti hesla bylo dešifrování velmi složité až nemožné. A o této šifře je tento text.

Tak proč se jmenuje Vigenèrova?

Bellaso byl ten, kdo šifru vymyslel, ale historie mu nebyla nakloněna. V 19. století byla jeho metoda omylem připsána Blaiseovi de Vigenèrovi, který sice publikoval vlastní variantu, ale ta neobsahovala žádné zásadní změny. Pod jménem „Vigenèrova šifra“ se pak stala legendou, která byla dlouho považována za „neprolomitelnou“. Sláva však netrvala věčně. Kolem roku 1854 Charles Babbage našel způsob, jak šifru prolomit, a Friedrich Kasiski jeho metodu zveřejnil. Ukázalo se, že opakující se klíč zanechává stopy, které lze odhalit. Až moderní kryptografie ji definitivně odsunula do historie. Nicméně ji můžeme využít jako osvěžení do výuky dějepisu, nebo jako jednu ze základních metod pro výuku, propagaci a popularizaci kryptografie. A kdo ví, možná si v ní děti najdou zálibu.

Jak na zašifrování textu?

Po představení šifry se zaměříme na šifrování textu. Dejme tomu, že text, který chcete zašifrovat s použitím Vigenèrovy šifry, zní následovně: Ahoj, moje jméno je Jan. Nejdříve si musíte zvolit krátký klíč, který může mít libovou délku, ale je vhodné používat slovo s alespoň třemi písmeny a neměl by být delší než text k zašifrování. Náš klíč bude slovo: Šifra. A teď jak z textu, tak z klíče, odstraníme diakritická a interpunkční znaménka a mezery. Vznikne následující.

Naše upravená věta: AHOJMOJEJMENOJEJAN

Náš upravený klíč: SIFRA

Vigenèrova šifra pracuje s páry písmen, která udávají souřadnice řádku a sloupce podobně jako při hře lodě. V průsečíku vybraného řádku a sloupce se následně objeví zašifrované písmeno. Abychom měli pro každé písmeno věty i druhé písmeno z klíče, budeme klíč opakovat tak dlouho, až bude mít stejný počet písmen jako věta. Příklad je níže.

Foto: Jan Bratt - Profesorskey

Vigenerova šifra 1. krok

Nyní již máme vše připraveno na začátek šifrování textu. Vezmeme písmeno věty, které určí sloupec ve Vigenerově čtverci a poté vezeme písmeno klíče, které určí řádek. Na průsečíku řádku a sloupce je poté písmeno již zašifrovaného textu. Níže je graficky znázorněné zašifrování textu. První písmeno věty „A“ vybere první sloupec, první písmeno klíče „S“ vybere řádek. Na průsečíku tohoto řádku a sloupce se nachází „S“, což je zašifrované písmeno (v obrázku je průsečík a jeho nalezení označeno modrou barvou). Druhé písmeno věty „H“ udá sloupec, druhé písmeno klíče „I“ dodá řádek, v průsečíku se nachází „P“ (v obrázku vyznačeno oranžovou). Všimněte si, že můžete u písmen šifrované věty a klíče prohodit řádky a sloupce. Na průsečíku je stále stejné písmeno. Finálně zašifrovaný text je: SPTAMGRJAMWVTAEBIS

Foto: Jan Bratt - Profesorskey

Vigenerova šifra 2. krok

Dešifrování textu

Dešifrování bývá složitější, jelikož právě tomuto se chtěl pisatel vždy vyhnout. Ale když máme zašifrovanou větu, známe klíč a máme Vigenerův čtverec, můžeme se do dešifrování vrhnout. Dejme tomu, že zašifrovaný text vypadá následovně: SPTAJSRXVMBISR a klíč k dešifrování je znovu: SIFRA. Vytvoříme pomocnou tabulku, do které vložíme zašifrovaný text a pod něj opakující se slova klíče. Vznikne následující:

Foto: Jan Bratt - Profesorskey

Dešifrování 1. krok

Jak je patrné, první krok dešifrování se neliší od zašifrování. Nicméně teď dochází k první změně. Musíme otočit kroky, které jsme dělali při zašifrování. Vybereme si písmeno klíče a pokračujeme v daném řádku tak daleko, až najdete písmeno zašifrovaného textu. No a dešifrované písmeno najdete nahoře v popisku sloupce.

Foto: Jan Bratt - Profesorskey

Dešifrování 2. krok

Začneme tedy na řádku „S“ a hledáme v něm písmeno „S“. To je hned na první pozici, tak vystoupáme nahoru do popisku sloupců a vidíme, že první písmeno, které hledáme, je „A“ (na obrázku výše je znázorněno modře). Druhé písmeno najdeme tak, že si vezmeme řádek „I“ (druhé písmeno slova SIFRA) a hledáme v něm písmeno „P“ (druhé písmo zašifrovaného textu). Dojdeme k němu a zjistíme, že patří sloupci „H“ - to je druhé písmeno dešifrovaného textu (na obrázku výše je znázorněno oranžově). Všimněte si, že můžete znovu přehodit řádky a sloupce i při dešifrování, je to jedno. A když se dáte do dešifrování textu, přidáte mezery, tak by vám mělo vyjít: Ahoj já jsem Jana

Něco delšího

Pokud vás to alespoň trochu zaujalo, mám tu pro vás zašifrovaný delší text. Šifra k dešifrování je MEDIUM. A text je následující:

YIGQOYEICVUYVISTUFRSUUUWMQPCTQBWDBEPAORTCHVIGWVDQWLBIBMQDBIHMXSZIFADHVYHEIFWMQLHHVUBUWHRYBDEYLU

Na konci článku, pod zdroji, je text dešifrován, takže můžete zkontrolovat správnost řešení. Nezapomeňte doplnit mezery mezi slovy, diakritická a interpunkční znaménka.

Proč se učit šifrování a kryptografii?

Šifrování není jen technická dovednost, je to dobrodružství pro mozek. Učí nás skrývat skutečný význam slov, což může být nejen praktické, ale i zábavné. Možná se to zdá nepravděpodobné, ale po jedné lekci se šifrováním se z něj často stane oblíbený koníček, alespoň na chvíli. Při šifrování a dešifrování zapojujeme stejné mentální procesy jako při luštění rébusů, řešení bludišť nebo matematických úloh. Postup podle přesně daných pravidel a jejich obrácení při dešifrování připravuje na principy, které stojí i za matematikou a informatikou. Stejně jako v HTML, kde značky a písmena skrývají funkce, které nejsou na první pohled vidět, i šifra učí, že věci mohou mít skrytý význam. A hlavně, šifrování je zábava. Je to hra, která rozvíjí logiku, kreativitu a schopnost vidět svět z jiné perspektivy.

Zdroje

CIMINO, Al. The Story of Codebreaking: From Ancient Ciphers to Quantum Cryptography. Sirius Entertainment, 2017. ISBN 1784284610.

OULEHLA, Milan a JAŠEK, Roman. Moderní kryptografie: průvodce světem šifrování. [Praha]: IFP Publishing, 2017. ISBN 9788087383674.

SINGH, Simon. Kniha kódů a šifer: Tajná komunikace od starého Egypta po kvantovou kryptografii. Dokořán, 2009. ISBN 9788073638504.

Řešení

Médium seznam je platforma, kam může psát kdokoliv. Je dobré si to pamatovat, protože ne vše, co se zde napíše, je pravda.

Máte na tohle téma jiný názor? Napište o něm vlastní článek.

Texty jsou tvořeny uživateli a nepodléhají procesu korektury. Pokud najdete chybu nebo nepřesnost, prosíme, pošlete nám ji na medium.chyby@firma.seznam.cz.

Sdílejte s lidmi své příběhy

Stačí mít účet na Seznamu a můžete začít psát. Ty nejlepší články se mohou zobrazit i na hlavní stránce Seznam.cz