summaryrefslogtreecommitdiff
path: root/cryptography/lectures/lecture9.tex
blob: 76c9261637664261b31977fb826bf2b8c165fc52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
% Лекция 9 (31.10.22)

\subsubsection{Дисковые многоалфавитные шифры замены}

\paragraph{}
Рассмотрим правило зашифрования и некоторые свойства такого шифра. Пусть
алфавитом является множество $Z_n = \set{0, 1, \dots, n - 1}$. Запишем
преобразование символов алфавита, осуществляемое движущимся диском. Рассмотрим
два соседних угловых положения диска при повороте по часовой стрелке.

Пусть в исходном положении диск реализует подстановку
$$X = \begin{pmatrix}
  0   & 1   & \dots & n - 1     \\
  x_0 & x_1 & \dots & x_{n - 1} \\
\end{pmatrix}$$

Для того, чтобы выписать подстановку, реализуемую диском после поворота на угол
$\frac{2 \pi}{n}$ посмотрим на соответствующие рисунки.

\begin{figure}[H]
  \centering
  \includegraphics[width=0.9\textwidth]{lecture9/start_disk.pdf}
  \caption{Начальное положение диска}
\end{figure}

\begin{figure}[H]
  \centering
  \includegraphics[width=0.9\textwidth]{lecture9/disk_after_rotation.pdf}
  \caption{Положение диска после поворота}
\end{figure}

Так как диск сдвигается как твёрдое тело, символ открытого текста поступающий
на него с входной розетки, проходит затем по имеющимся в диске соединениям,
превращаясь в символ шифртекста.

Разница между двумя рассматриваемыми положениями диска состоит в том, что после
поворота символы с входной розетки поступают на входные контакты диска, номер
которых уменьшаются на единицу (по модулю $n$).

Можно перенумеровать входные символы, уменьшив каждый на единицу. Тогда входные
контакты диска будут совпадать с выходными символами, которые пройдя по своим
траекториям через диск, попадут на контакты выходной розетки.

Чтобы вернуться к исходной нумерации символов, следует их увеличить на единицу.
Введём подстановку
$$T = \begin{pmatrix}
  0 & 1 & \dots & n - 2 & n - 1 \\
  1 & 2 & \dots & n - 1 & 0     \\
\end{pmatrix}$$

После поворота диск реализует подстановку, представимую в виде произведения
подстановок: $$T^{-1} \cdot X \cdot T = \left( \frac{i}{i - 1} \right) \cdot
\left( \frac{i - 1}{x_{i - 1}} \right) \cdot \left( \frac{x_{i - 1}}{x_{i - 1} +
1} \right) = \left( \frac{i}{x_{i - 1} + 1} \right)$$

Таким образом, при повороте диска на угол $\frac{2 m \pi}{n}, \, m =
\overline{1, n - 1}$, диск будет реализовывать подстановку $T^{-m} \cdot X \cdot
T^m$.

\paragraph{}
Рассмотрим дисковый шифратор, состоящий из нескольких насаженных на общую
ось дисков, так что символы с входной розетки, попадая на блок дисков,
последовательно проходят перепайки каждого из дисков, попадая на контакты
выходной розетки.

Обычно при работе такого шифратора диски при шифровании очередного знака
открытого текста сдвигаются по определённому правилу на некоторые угловые
положения, кратные $\frac{2 \pi}{n}$.

Схема движения дисков является ключевым элементом шифратора.
Найдём правило зашифрования текущего знака открытого текста такого шифратора.

Пусть в начальных угловых положениях рассматриваемые диски реализуют подстановки
$X_1, \dots, X_N$ из симметрической группы $S_n$ (они также являются ключевыми
элементами) и в данный такт шифрования данные диски находятся в соответствующих
угловых положениях $\gamma_1, \dots, \gamma_N, \, \gamma_i \in \overline{0, n -
1}$.

Это означает, что $i$-й диск реализует подстановку $T^{-\gamma_i} \cdot X_i
\cdot T^{\gamma_i}$.

Тогда очередная буква открытого текста $x$ будет зашифрована в букву $y =
E_k(x)$, где $$y = T^{-\gamma_1} \cdot X_1 \cdot T^{\gamma_1 - \gamma_2} \cdot
X_2 \cdot T^{\gamma_2 - \gamma_3} \cdot \dots T^{\gamma_{N - 1} - \gamma_N}
\cdot X_N \cdot T^{\gamma_N}(x)$$.

\paragraph{}
Формально определить правило зашифрования любого открытого текста для дискового
шифратора сложно в связи с обилием различных ключевых элементов.

Для поточных шифров, как правило, бывает достаточно знания правила зашифрования
буквы текста.

Число простых замен, из которых <<состоит>> многоалфавитный шифр, реализуемый
дисковым шифратором, может быть очень большим. Чем больше это число, тем сложнее
криптоанализ такого шифра. В связи с этим параметры дисковых схем должны быть
тщательно продуманы.

Схемы токопрохождения электрических импульсов в дисковом шифраторе могут
усложняться за счёт введения <<отражающего экрана>> вместо выходной розетки.
В результате этого импульс тока вторично проходит через блок дисков, только в
противоположную сторону.

Криптоанализ дисковых шифраторов является весьма сложной задачей.

\subsection{Шифры гаммирования}

Во второй половине XIX века появился весьма устойчивый способ усложнения
числовых кодов --- гаммирование.

\paragraph{Шифр Виженера.}

Исторически первый шифр гаммирования совпадал, по сути, с шифром Виженера,
однако без использования самой таблицы Виженера (квадрат, каждая строка и каждый
столбец которой --- некоторая перестановка знаков данного алфавита).

Французский криптограф Б. Виженер опубликовал свой метод в <<Трактате о шифрах>>
в 1585 году. С тех пор на протяжении трёх столетий шифр Виженера считался
нераскрываемым, пока с ним не справился Ф. Казински (в 1863 году).

Открытый текст разбивается на блоки длины $n > 1$. Задаётся ключ ---
последовательность из $n$ натуральных чисел $(a_1, a_2, \dots, a_n)$. В каждом
блоке первая буква циклически сдвигается вправо на $a_1$ позиций в алфавите,
вторая --- на $a_2$, $\dots$, последняя --- на $a_n$.

\paragraph{Табличное гаммирование.}

Латинский квадрат --- таблица $n \times n$, заполненная $n$ различными символами
таким образом, чтобы в каждой строке и в каждом столбце встречались все $n$
символов (каждый по одному разу).

\begin{table}[H]
  \centering
  \begin{tabular}{|c|c|c|}
    \hline
    1 & 2 & 3 \\ \hline
    2 & 3 & 1 \\ \hline
    3 & 1 & 2 \\ \hline
  \end{tabular}
\end{table}

Шифр табличного гаммирования в алфавите $A = \set{a_1, \dots, a_n}$
определяется произвольным латинским квадратом $L$ на $A$ и способом получения
последовательности букв из $A$, называемой \emph{гаммой шифра}.

\begin{figure}[H]
  \centering
  \includegraphics[width=0.45\textwidth]{lecture9/gamma.pdf}
  \caption{Гамма шифра}
\end{figure}

Буква $a_i$ открытого текста под действием гаммы $a_j$ переходит в букву $a_k$
шифрованного текста, содержащуюся в $j$-й строке и $i$-м столбце квадрата $L$
(подразумевается, что строки и столбцы в $L$ занумерованы в соответствии с
порядковым следованием букв в алфавите $A$).

\emph{Квазигруппой} называют пару $(Q, \cdot)$ из непустого множества $Q$ с
бинарной операцией $\cdot : Q \times Q \to Q$, удовлетворяющей следующему
условию: для любых элементов $a, b \in Q$ найдутся единственные элементы
$x, y \in Q$, такие что $a \cdot x = b,\, y \cdot a = b$.