Homofonní substituční šifra je substituční šifra , ve které je každý znak otevřeného textu nahrazen jedním z několika znaků abecední šifry a počet náhradních znaků pro jedno písmeno je úměrný četnosti tohoto písmene. To umožňuje skrýt skutečnou frekvenci výskytu daného písmene v šifrovém textu [1] .
Šifrování metodou homofonní substituce je známé již od 15. století [2] .
Simeone de Crema v roce 1401 poprvé použil homofonní tabulky pro jednotnou frekvenci samohlásek pomocí vícehodnotové substituce [3] .
Leon Battista Alberti ve svém Pojednání o šifrách , publikovaném v roce 1466, popsal substituční šifru, ve které je několik prvků přiřazeno jednomu písmenu [3] .
Tradiční monoalfabetické substituční šifry byly v 17. století stále relevantní pro triviální úkoly, jako je šifrování osobní korespondence za účelem skrytí informací před služebnictvem nebo ochrana deníku před manželkou nebo manželem. Monoalfabetická substituce vytváří jednoduchou a rychlou ochranu informací před lidmi neznalými kryptoanalýzy . Pro vážnější účely však takové šifrování již nebylo bezpečné, a tak bylo nutné hledat šifru, kterou by bylo obtížnější prolomit než monoalfabetická substituční šifra , ale která by byla snáze použitelná než polyalfabetická substituční šifra . Bylo předloženo několik variant takových šifer, nejúčinnějším řešením tohoto problému byla homofonní substituční šifra, neboli homofonní substituce [1] .
Dovolit být znak abecedy, který se používá v otevřeném textu. Pro každý sestavíme sadu symbolů tak, aby se pro různé symboly a sady a neprotínaly. Prvky množiny jsou obvykle čísla. V homofonním šifrování se počet substitucí pro každý znak bere v poměru k pravděpodobnosti, že se tento znak objeví v otevřeném textu. V šifrování se náhrada za znak otevřeného textu volí buď náhodně (generátor náhodných čísel), nebo specifickým způsobem (např. v pořadí). K zapamatování písmen, která se v textech nejčastěji vyskytují, používají kombinace písmen „senovaliter“ a „tetrishonda“ pro ruštinu a angličtinu, resp. Tyto kombinace jsou podobné slovům, a proto jsou snadno zapamatovatelné [4] .
Pravděpodobnost výskytu písmen ruské abecedy | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
(*) (Tabulka ukazuje výsledky frekvenční analýzy literárních a vědeckých textů o celkovém objemu více než 1 milion znaků. Za stejných podmínek je pravděpodobnost „mezery“ 0,146.)
Vzhledem k tomu, že pravděpodobnost setkání s nejvzácnějším písmenem je přibližně tisícina, lze šifrování pomocí metody homofonní substituce otevřeného textu provést pomocí substituční tabulky šifry, kde každá substituce šifry se skládá ze 3 číslic a jejich celkový počet je 1000. V tomto případě pro nejvzácnější prvek, přesně jeden znak [ 4] .
Příklad takové tabulky je uveden níže.
Ne. | ALE | B | V | … | E | … | Ó | P | R | … | E | YU | já |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
jeden | 012 | 128 | 325 | … | 037 | … | 064 | 058 | 265 | … | 501 | 064 | 106 |
2 | 659 | 556 | 026 | … | 700 | … | 149 | 073 | 333 | … | 248 | 749 | 098 |
… | … | … | … | … | … | … | … | … | … | … | … | … | |
17 | 111 | 061 | … | 144 | … | 903 | 656 | 476 | … | 453 | |||
… | … | … | … | … | … | … | … | … | … | ||||
38 | 366 | 804 | … | … | … | 123 | 865 | … | |||||
… | … | … | … | … | … | … | … | ||||||
69 | 095 | … | 010 | ||||||||||
… | … | … | |||||||||||
71 | 541 | 268 | |||||||||||
… | … | ||||||||||||
94 | 479 |
Některá pole v tabulce jsou prázdná, protože počet nahrazení každého znaku zdrojové abecedy je jiný. Tento fragment lze například použít k zašifrování slova „VERA“. Každé písmeno původní zprávy, v tomto případě slovo, by mělo být nahrazeno jednou z náhrad šifry ve sloupci pro dané písmeno. Pokud jsou písmena nahrazena takovými substitucemi šifry: "B" - , "E" - , "P" - , "A" - , pak má zašifrované slovo tvar číselné sekvence " " [4] .
Homofonní substituční šifrování je nejjednodušší obranou proti kryptografickým útokům s frekvenční analýzou, protože při šifrování písmene zdrojového textu je náhodně vybrána jedna z jeho substitucí. Při tomto způsobu šifrování se prvky šifrového textu objevují se stejnou pravděpodobností, takže běžný výpočet četnosti písmen je pro kryptoanalytika k ničemu . Úspěšnější však bude frekvenční kryptoanalýza založená na počítání dvojic, trojic písmen nebo slov. Například článek the je nejběžnější v anglickém prostém textu. Také za písmenem q je pouze jedno písmeno - u. Když si tedy všimnete některých kombinací znaků, můžete dešifrovat část textu a poté, podle obdržených informací, obnovit zbytek [5] [4] .
V současné době moderní počítače dešifrují texty zašifrované homofonní substitucí během několika sekund [6] .
Zvláštností této metody je, že se záměny šifry neopakují. To znamená, že pokud písmeno "Ф" má 3 substituce šifry, například , a , pak substituce šifry , a označují pouze písmeno "Ф" [7] .
Homofonní šifra může vypadat jako polyalfabetická ( polyalfabetická ) šifra, protože každé písmeno abecedy může být zašifrováno mnoha způsoby, ale ve skutečnosti je homofonní substituční šifra typem monoalfabetické ( monoalfabetické ) šifry. Hlavním důvodem, proč je homofonní šifra monoalfabetická, je to, že šifrová abeceda se během procesu šifrování nemění [7] .
Homofonní substituční šifra je charakterizována dvěma parametry - délkou šifrového textu a složitostí , kde je počet různých znaků šifrové abecedy použitých v tomto šifrovém textu. Složitost je samozřejmě omezená . Když je složitost šifry dostatečně blízká 0, je šifra jednoduchou substituční šifrou. Při určité hodnotě se rozložení znaků šifrové abecedy sjednotí (asi 0,3 pro šifrovaný text o 200 znacích), ale pokud budete pokračovat ve zvyšování složitosti, můžete dosáhnout hraniční hodnoty, při které již není možné jednoznačně dešifrovat text. Homofonní substituce vyšších řádů mají stejný šifrový text pro různé otevřené texty, proto v případech, kdy je délka šifrového textu menší než vzdálenost jedinečnosti , není možné pochopit, která verze otevřeného textu bude správná [8] .
Homofonní substituce druhého řádu je homofonní substituce taková, že šifrový text lze dešifrovat dvěma způsoby. Například " " pomocí jednoho klíče (klíč 1) lze dešifrovat jako "MAMA SOAPED THE FRAME" a pomocí druhého klíče (klíč 2) jako "AMUR WASHED URAL". Oba otevřené texty nemají velký význam, ale dobře ilustrují, že za stejným šifrovým textem se mohou skrývat zcela odlišné zprávy [9] .
|
|
Abychom pochopili, jak lze takovou šifru získat, zapišme si pod sebe stejně dlouhé otevřené texty.
M | ALE | M | ALE | M | S | L | ALE | R | ALE | M | V |
ALE | M | V | R | V | M | S | L | V | R | ALE | L |
Nyní si všimněte, že pokud budeme číst výsledný záznam nikoli v řádcích, ale ve sloupcích, dostaneme 9 různých digramů (dvojic písmen): "MA", "AM", "MU", "AP", "YM", " LY" , "AL", "RU", "UL". Všechny digramy kromě "MA", "MU" a "AR" se jednou opakují. Dále náhodně vyplňte matici (6 je počet písmen v abecedě prostého textu; pokud je v textu použita celá abeceda, budeme mít matici nebo pro ruskou a anglickou abecedu) čísly, například, od 1 do 36 [10] .
ALE | L | M | R | V | S | |
ALE | 21 | deset | 9 | 32 | 26 | 34 |
L | 16 | 6 | 7 | čtrnáct | třicet | 27 |
M | 13 | osmnáct | 23 | 28 | 2 | 5 |
R | čtyři | patnáct | 36 | 22 | osm | 35 |
V | 25 | 3 | 17 | 29 | dvacet | 33 |
S | jeden | 31 | 19 | 24 | 12 | jedenáct |
Každý řádek a každý sloupec je mapován na jeden z abecedních znaků prvního a druhého otevřeného textu. Nyní každý diagram odpovídá určitému číslu (v průsečíku odpovídajících řádků a sloupců), takže nahrazením diagramu odpovídajícím číslem můžeme zašifrovat texty. Matice s čísly odpovídajícími diagramům hraje v tomto případě roli klíče. Aby byla úplná matice utajena, je rozdělena na dvě matice: jedna se získá seřazením prvků řádků, druhá setříděním sloupců a transponováním . Na výstupu budeme mít dvě matice, v každé z nich jsou prvky v řádcích seřazeny vzestupně (sestupně) a jednu matici lze použít k získání pouze jednoho otevřeného textu. Například se berou texty se stejnými abecedami, protože se předpokládá, že v obecném případě bude k vytvoření šifry použita celá abeceda a že šifra by měla pokrývat všechny možné digramy [11] .
|
|
Pro zlepšení metody lze dosáhnout minimální redundance šifrové abecedy. Algoritmus
|
|
|
Přečtete-li písmena v pořadí označeném čísly odpovídajícími každému písmenu, získáte prostý text. Z tohoto důvodu je použití takové šifry nemožné, protože k získání prostého textu bude stačit útočníkovi mít klíč, aniž by měl soukromý text. Díky tomu je zbytečné snižovat redundanci textu. Na druhé straně dříve používaná maticová forma homofonní substituce druhého řádu má poměrně dobrou kryptografickou sílu, pokud je použita plná abeceda. Dva texty poskytnou ( ) možné diagramy, které se nebudou příliš opakovat, pokud není text příliš velký. V důsledku toho bude redundance šifrovaných zpráv nízká, zatímco zpráva bude používat velké množství různých znaků, což jsou vážné překážky pro kryptoanalýzu [12] .
Kryptogramy slavného sériového vraha Zodiac jsou zašifrovány homofonní substituční šifrou. Jeden ze dvou kryptogramů se zatím nepodařilo rozluštit [13] .
Baleovy kryptogramy se považují za zašifrované homofonní substituční šifrou prvního řádu a pravděpodobnost rozluštění druhého kryptogramu (jediného ze tří, který bylo možné rozluštit) tak, aby se získal další smysluplný text, je nejmenší [ 14] [15] .
Genetický kód je homofonní substituce, ve které aminokyseliny hrají roli symbolů otevřeného textu a kodony jsou trojice nukleotidů - symboly šifrového textu [16] .