Caesarova šifra: Porovnání verzí

Smazaný obsah Přidaný obsah
m Styl
→‎Formální zápis: formulační úprava
Řádek 15:
 
== Formální zápis ==
Caesarovu šifru můžeme nadefinovatdefinovat pomocí [[Modulární aritmetika|Modulárnímodulární aritmetiky]], protože posun písmene o k pozic můžeme zapsat pomocí [[Zbytek po dělení#Operace modulo|modula]]. Pokud si nadefinujeme abecedu jako posloupnost čísel od 0 do 25, kde a=0, b=1, c=2, …, z=25, pak můžeme nadefinovat funkci Posun(o, k), kde ''o'' je znak, který se bude šifrovat a ''k'' klíč, kterým bude text šifrován, takto: Posun(o, k) = (o + k) mod 26. Funkci E<sub>k</sub>(x), která vrátí zašifrovaný text ''x'' pomocí klíče ''k'' nadefinujeme takto: E<sub>k</sub>(x) = Posun(x[i], k) pro všechna ''i'' menší nebo rovna než délka vstupního řetězce ''x'', kde x[i] znamená písmeno na ''i''-té pozici. Na popis dešifrování budeme potřebovat funkci PosunZpet(c, k), která posune zašifrované písmeno ''c'' zpět o ''k'' písmen. Nadefinujeme ji takto: PosunZpet(c, k) = (c - k + 26) mod 26. Dešifrovací funkci pro klíč k a šifrový text x definujeme takto: D<sub>k</sub>(x) = PosunZpet(x[i], k) pro všechna ''i'' menší nebo rovna než délka vstupního řetězce ''x''.
 
== Příklad šifrování ==