Treti prednaska z Kodovani a sifrovani

Zaklady kryptoanalyzy

Obsah

Zaklady kryptoanalyzy

Zakladni ulohou kryptoanalyzy je odhaleni inverzniho zobrazeni ke kryptograficke transofrmaci, tedy k zobrazeni Tk n-tic prvku okruhu Zm do sebe. Existuje tri zakladni typy teto ulohy
Ciphertext only attack
Desifrovani na zaklade znalosti zasifrovaneho textu --- to je nejklasictejsi uloha kryptoanalyzy
Known plaintext attack
Desifrovani s castecnou znalosti primeho textu (a uplnou znalosti textu zasifrovaneho). Protivnik ma k dispozici nejakym zpusobem ziskane nektere prime texty a veskere texty zasifrovane.
Chosen plaintext attack
Desifrovani s neomezenou znalosti zasifrovaneho textu. Protivnik ma k dispozici libovolny jim zvoleny primy text a jeho zasifrovanou verzi. Napriklad spravce systemu muze vyrobit libovolneho uzivatele a jeho heslo prohlizet v prime i zasifrovane podobe.

Kryptoanalyza monoalfabetickych sifer

Metody kryptoanalyzy monoalfabetickych sifer jsou v zasade statisticke. Pro ruzne jazyky existuji tabulky udavajici pravdepodobnost vyskytu jednotlivych znaku. Nap[riklad pro ceskou abecedu s mezerou vypada takova tabulka takto:
A 5.4%
A 2.1%
B 1.4%
C 1.9%
C 0.8%
D 2.6%
D 0.5%
E 7.3%
E 1.0%
E 0.7%
F 0.2%
G 0.2%
H 2.0%
I 3.4%
I 2.5%
J 2.2%
K 3.3%
L 3.4%
M 2.9%
N 4.0%
N 1.5%
O 6.8%
P 2.7%
Q 0.0% (po zaokrouhleni)
R 2.9%
R 0.9%
S 4.0%
S 0.8%
T 3.9%
T 0.7%
U 3.0%
U,U 0.5%
V 3.9%
W 0.0%
X 0.1%
Y 1.6%
Y 0.8%
Z 1.9%
Z 0.9%
mezera 16.3%
Tato tabulka byla ovsem ziskana analyzou velkeho mnozstvi ceskych textu ruzneho charakteru. V textech nejakym smerem zamerenym lze ocekavat vyssi frekvenci nekterych slov a tim padem mirne jine rozlozeni frekvence jednotlivych znaku. Ani u monoalfabeticke sifry tedy nelze postupovat prostym prirazenim ekvivalentu zasifrovanym znakum.

Dalsim krokem muze byt pouziti tabulky vyskytu dvojic, ci trojic za sebou nasledujicich znaku.

Index koincidence.

Index koincidence je hodnota, ktera muze pomoci rozhodnout, zda byla pro zasifrovani textu pouzita monoalfabeticka ci polyalfabeticka sifra.

Index koincidence pro dany jazyk je roven sume p(c)^2 pres vsechny znaky c dane abecedy. Pritom p(c) je pravdepodobnost vyskytu znaku c v textu.

Pozorovani
Necht n je velikost nejake abecedy a I index koincidence jazyka nad touto abecedou.

Plati I-1/n = suma p(c)^2 - 1/n = suma (p(c)^2 - 1/n^2) = suma (p(c) - 1/n)^2,

nebot suma p(c) = 0.

Plati tedy

Tabulka indexu koincidence
pro nektere jazyky prevedene do anglicke abecedy (26 znaku ABCDEFGHIJKLMNOPQRSTUVWXYZ)
nahodne generovana slova 1/26 = 0.03846
cestina/slovenstina 0.06027
anglictina 0.06689
danstina 0.07073
finstina 0.07380
francouzstina 0.07460
holandstina 0.07981
nemcina 0.07667
italstina 0.07329
rustina 0.05607
spanelstina 0.07661
Jak vyuzit index koincidence
Je-li text zasifrovan monoalfabetickou sifrou, mel by se jeho index koincidence blizit indexu koincidence jazyka, ve kterem byl napsan. Je-li text zasifrovan polyalfabetickou sifrou, bude se jeho index koincidence blizit indexu koincidence nahodne generovaneho jazyka.
Tuto stranku vytvoril Tomas Vanicek a jedna se o soucast volitelnych prednasek z Kodovani a sifrovani pro vsechny obory Stavebni fakulty Ceskeho vysokeho uceni technickeho v Praze.