Andrew Kozlík @

Domácí úkol č. 1 z předmětu Kryptografické systémy


Modifikovaná Vigenèrova šifra

E-mailem dostanete šifrový text, který vznikl zašifrováním kousku anglického textu modifikovanou Vigenèrovou šifrou. Cílem je odhalit použité heslo. Modifikace šifry spočívá ve dvou aspektech:

  1. Na začátek abecedy je přidáno 6 interpunkčních znamének.
  2. Místo sčítání modulo 26 se používá bitový operátor XOR.

Můžete si prohlédnout šifrovací skript.

Následující tabulka ukazuje přiřazení čísel jednotlivým znakům abecedy. Máme tak např. "Q" ⊕ "?" = 22 ⊕ 5 = 101102 ⊕ 001012 = 100112 = 19 = "N". Tabulka navíc udává relativní četnost jednotlivých znaků v původním textu.

Číslo 0 1 2 3 4 5 6 7
Znak ! ' , . ; ? A B
Četnost 0.137 % 1.244 % 2.117 % 0.853 % 0.306 % 0.109 % 8.006 % 1.372 %
Číslo 8 9 10 11 12 13 14 15
Znak C D E F G H I J
Četnost 1.725 % 5.079 % 12.274 % 1.879 % 2.078 % 7.728 % 5.698 % 0.084 %
Číslo 16 17 18 19 20 21 22 23
Znak K L M N O P Q R
Četnost 0.989 % 4.023 % 2.034 % 6.462 % 7.155 % 1.185 % 0.069 % 4.873 %
Číslo 24 25 26 27 28 29 30 31
Znak S T U V W X Y Z
Četnost 5.347 % 9.137 % 2.512 % 0.754 % 2.887 % 0.067 % 1.785 % 0.034 %

Pro účely programování vám jistě bude lépe vyhovovat následující formát tabulky:

abeceda = ["!", "'", ",", ".", ";", "?", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]

p = [0.137, 1.244, 2.117, 0.853, 0.306, 0.109, 8.006, 1.372, 1.725, 5.079, 12.274, 1.879, 2.078, 7.728, 5.698, 0.084, 0.989, 4.023, 2.034, 6.462, 7.155, 1.185, 0.069, 4.873, 5.347, 9.137, 2.512, 0.754, 2.887, 0.067, 1.785, 0.034]