Homofonní šifra (z řeckého homosstejný a phonoszvuk) je substituční šifra, ve které se jedno písmeno z otevřeného textu může zašifrovat na různá písmena v šifrovém textu, jejichž počet je přímo úměrný frekvencí písmene. Přitom stále používá jednu šifrovací abecedu, není to polyalfabetická šifra.

Popis šifry editovat

Smyslem homofonní šifry je, aby ve výsledném šifrovém textu každé písmeno mělo přibližně stejnou relativní četnost, konkrétně 1 %. Toho docílíme tak, že jedno písmeno z otevřeného textu nebudeme šifrovat pouze jedním symbolem, jako je tomu u jednoduché monoalfabetické substituční šifry, ale více symboly. Konkrétně písmeno bude mít tolik obrazů v šifrovém textu, jaký má procentuální výskyt v otevřeném textu. Pokud má například písmeno „e“ 10% výskyt v otevřeném textu, bude mít deset různých obrazů v šifrovém textu. Pokud nechceme s každým textem počítat i výskyt písmen v něm, můžeme použít nějakou tabulku, která udává průměrný počet výskytů písmene v daném jazyku. Výsledek nemusí být tak dobrý, ale stále přijatelný a značně to ulehčuje práci.

Protože výsledných obrazů v šifrovém textu bude zákonitě více než písmen, která šifrujeme, nemůžeme v šifrovém textu používat pouze jednoduchá písmena, protože by nám na všechno nestačila. Musíme zvolit jiný způsob, například můžeme zobrazovat na čísla. Dále platí, že jedno písmeno se sice může šifrovat na více různých písmen, avšak stále není možné, aby se dvě různá písmena šifrovala na stejné písmeno. Tedy platí, že jeden obraz v šifrové abecedě může mít pouze jeden vzor v otevřené abecedě. Tím se šifra liší od polyalfabetických šifer, protože stále používá jen jednu šifrovou abecedu.

Pokud už máme hotovou tabulku substitucí, přichází na řadu úprava vstupního otevřeného textu tak, aby vyhovoval domluveným či stanoveným podmínkám. Ty mohou znít jakkoliv, často padá požadavek na odstranění diakritiky, interpunkce, mezer a podobně. Nicméně technicky není problém vytvořit substituční tabulku, která bude obsahovat jakékoliv znaky. Můžeme klidně zašifrovat „(mandelinka)“ na „(traktor)“.

Nyní máme upravený otevřený text a tabulku substitucí, která vypadá podobně jako u monoalfabatické šifry, pouze s tím rozdílem, že máme u některých písmen více obrazů. Můžeme začít s šifrováním. Znak po znaku čteme otevřený text a zaměníme daný znak za některý ze znaků ze substituční tabulky. Důležitým faktorem je, pokud máme na výběr z více obrazů, abychom je volili zcela náhodně. Pokud bychom obrazy například pravidelně střídali, snížili bychom tím bezpečnost homofonní šifry. Zašifrováním posledního písmene šifrování končí.

Dešifrování probíhá stejně, pouze v opačném pořadí. Máme tabulku substitucí a hledáme podle obrazů a zaměníme je za jejich původní vzory. Protože každý obraz má pouze jeden původní vzor, dostaneme původní šifrovou zprávu.

Příklad šifrování editovat

Chceme zašifrovat text „Lakomá lokomotiva“. Upravíme text: „lakomalokomotiva“ a vytvoříme tabulku substitucí. Pro jednoduchost v této tabulce budou jen písmena, která se vyskytují v otevřeném textu:

a: 10 15 17
o: 11 27 30
i: 26
l: 33 34
k: 18
m: 07 54
t: 01
v: 09 

Nyní podle této tabulky zašifrujeme text. Za písmeno „l“ můžeme dosadit buď 33 nebo 34. Zvolíme třeba 33. Dále za „a“ můžeme dosadit 10, 15 nebo 17. Zvolíme 17. Za „k“ můžeme dosadit pouze 18. A tak dále. Výsledný šifrový text může vypadat takto: „33 17 18 27 07 10 34 11 18 30 54 27 01 26 09 10“. Vidíme, že přestože v otevřeném textu bylo 8 různých písmen, v šifrovém textu jich je více.

Bezpečnost šifry editovat

Šifra disponuje velkým množstvím klíčů, útok hrubou silou je prakticky nemožný. Šifra je také odolná proti jednoduché frekvenční analýze, protože neposkytuje informace o četnosti jednotlivých písmen – v šifrovém textu mají všechna písmena stejnou četnost.

Nicméně stále není odolná proti všem částem frekvenční analýzy. Například v angličtině má velmi osobité chování písmeno „q“ (četnost přibližně 1 %), po kterém může následovat pouze písmeno „u“ (četnost přibližně 3 %). Najdeme-li v šifrovém textu písmeno, po němž následují pouze tři různá písmena, můžeme předpokládat, že se jedná právě o dvojici „q“ a „u“. Podobným způsobem můžeme dešifrovat i ostatní písmena.

Související články editovat

Literatura editovat