// 01 · Klasická kryptologie · Zápočet ZKR 2026

Vigenèrova
šifra

Typ: Polyalfabetická substituční
Vznik: 1553
Klíč: Slovo / fráze
Status: Prolomená (1854)

Polyalfabetická substituční šifra pojmenovaná po Blaisovi de Vigenèrovi. Po tři sta let považována za „le chiffre indéchiffrable" — nerozluštitelnou šifru. Dnes prolomitelná Kasiski testem a analýzou indexu koincidence.

Od nerozluštitelné šifry
k prolomené klasice

Vigenèrova šifra je polyalfabetická substituční šifra — každé písmeno zprávy je šifrováno jiným Caesarovým posunem, který závisí na aktuálním písmenu klíče. To ji zásadně odlišuje od jednoduché Caesarovy šifry, kde je posun konstantní.

1553
Giovan Battista Bellaso publikoval myšlenku šifry s klíčovým slovem. Vigenère ji o 30 let později propracoval a rozšířil.
1586
Blaise de Vigenère publikoval svůj Traicté des Chiffres — pojednání o šifrách. Šifra nese jeho jméno, přestože ji nevymyslel jako první.
1863
Friedrich Kasiski publikoval metodu prolomení šifry — Kasiski test. Opakující se sekvence v ciphertextu prozradí délku klíče.
1854
Charles Babbage (otec počítačů) šifru prolomil nezávisle na Kasiskym, výsledky však nepublikoval za svého života.

Jak šifra funguje

Klíčové slovo se opakuje (tzv. running key) přes celý plaintext. Každé písmeno plaintextu je posunuto o hodnotu odpovídající písmenu klíče na stejné pozici. A = 0, B = 1, ..., Z = 25.

Šifrovací a dešifrovací rovnice
Šifrování:   Ci = (Pi + Ki mod n) mod 26
Dešifrování: Pi = (Ci − Ki mod n + 26) mod 26
P = plaintext · C = ciphertext · K = klíč · n = délka klíče
Písmena jsou mapována A→0, B→1, ..., Z→25

Příklad s klíčem KLIC a textem AHOJ:

Plaintext:   A  H  O  J
Hodnoty P:   0  7  14  9
Klíč:        K  L  I  C
Hodnoty K:   10  11  8  2
Součet mod 26: 10  18  22  11
Ciphertext:  K  S  W  L
Jak číst tabulku: Řádek = písmeno klíče, sloupec = písmeno plaintextu. Průsečík = zašifrované písmeno. Vigenère v podstatě provádí Caesarovu šifru s jiným posunem pro každý znak.

Interaktivní šifrovací nástroj

Šifrování / Dešifrování
Zadej text a klíčové slovo. Nealfabetické znaky (mezery, čísla, interpunkce) jsou zachovány beze změny.
■ plaintext ■ klíč ■ ciphertext

Šifrování a dešifrování textu

Níže je ukázka šifrování delšího českého textu, jeho dešifrování správným klíčem a neúspěšné dešifrování při drobné úpravě klíče — změna jediného písmene způsobí, že výsledek je nečitelný.

Originální text
Kryptografie je věda zabývající se utajováním informací pomocí matematických metod. Vigenèrova šifra patří mezi klasické šifry a sloužila k ochraně diplomatické korespondence. Její bezpečnost spočívá v opakování klíčového slova přes celý text zprávy.
Proč špatný klíč vše rozbije?
Dešifrovací rovnice Pi = (Ci − Ki + 26) mod 26 odečítá hodnotu klíčového písmene. Pokud je klíč na jakékoli pozici jiný, výsledné písmeno bude zcela náhodné — neexistuje žádná „postupná degradace". Jeden špatný znak v klíči = nečitelný výstup.

Jak šifru prolomit

Vigenèrova šifra má dvě hlavní slabiny: opakující se klíč a zachovaná statistická distribuce písmen v rámci jedné „vrstva" abecedy. Útok probíhá ve dvou krocích.

Krok 1 — Kasiski test (délka klíče)
Pokud se v ciphertextu opakuje sekvence písmen, je pravděpodobné, že vznikla šifrováním stejného plaintextu stejnou částí klíče. Vzdálenosti opakujících se sekvencí jsou násobky délky klíče — jejich GCD (největší společný dělitel) prozradí délku klíče.
Krok 2 — Index koincidence (IC)
IC měří „nerovnoměrnost" distribuce písmen. Přirozený text (angličtina ≈ 0.065, čeština ≈ 0.061) má vyšší IC než náhodný text (≈ 0.038). Vigenèrova šifra s krátkým klíčem = střední hodnota.
Bezpečnostní pravidla použití:
1. Klíč musí být stejně dlouhý jako zpráva (one-time pad) pro teoretickou bezpečnost.
2. Klíč nesmí být slovo ze slovníku — slovníkový útok klíč rychle odhalí.
3. Stejný klíč nesmí být použit pro více zpráv.
4. Pro moderní použití je Vigenèrova šifra zcela nevhodná — nahrazena AES.
Důsledky porušení protokolu:
Použití krátkého nebo opakovaného klíče umožňuje Kasiski testem odhalit délku klíče. Poté stačí frekvenční analýza každého n-tého písmene (n = délka klíče) — každá taková skupinka je prostá Caesarova šifra, prolomitelná statisticky během sekund.