summaryrefslogtreecommitdiff
path: root/cryptography/lectures/lecture4.tex
blob: c367e0892177cb0cd4a40703565bafb452ed611f (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
161
162
163
164
165
166
167
168
169
170
171
172
% Лекция 4 (26.09.22)
\subsubsection{Критерий распознавания открытого текста}

\paragraph{}
Открытый текст представляет собой реализацию независимых испытаний случайной
величины, значениями которой являются буквы алфавита $A = \{a_1, a_2, \dots,
a_n\}$, появляющиеся в соответствии с распределением вероятностей $P(A) =
(p(a_1), p(a_2), \dots, p(a_n))$.

Требуется определить, является ли случайная последовательность $c_1 c_2 \dots
c_l$ букв алфавита $A$ открытым текстом или нет.

Пусть $H_0$ --- гипотеза, состоящая в том, что данная последовательность ---
открытый текст, $H_1$ --- альтернативная гипотеза.

В простейшем случае при гипотезе $H_1$ последовательность $c_1 c_2 \dots
c_l$ можно рассматривать как случайную и равносильную, то есть при
расшифровании криптограммы с помощью ложного ключа получается <<бессмысленная>>
последовательность знаков.

В более общем случае можно считать, что при гипотезе $H_1$ последовательность
$c_1 c_2 \dots c_l$ представляет собой реализацию независимых испытаний
некоторой случайной величины, значениями которой являются буквы алфавита
$A = \{ a_1, \dots, a_n \}$, появляющиеся в соответствии с распределением
вероятностей $Q(A) = (q(a_1), \dots, q(a_n))$.

При таких договорённостях можно применить, например, \emph{наиболее мощный
критерий} различения двух простых гипотез, который даёт \emph{лемма
Неймана-Пирсона}.

В силу своего вероятностного характера такой критерий может совершать ошибки
двух родов:
\begin{enumerate}
  \item
    Критерий может принять открытый текст за случайный набор знаков. Такая
    ошибка называется \emph{ошибкой первого рода}, её вероятность равна $\alpha
    = p(H_1/H_0)$;
  \item
    Критерий может принять случайный набор знаков за открытый текст. Такая
    ошибка называется \emph{ошибкой второго рода} и её вероятность $\beta =
    p(H_0/H_1)$.
\end{enumerate}

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

Лемма Неймана-Пирсона при заданной вероятности первого рода минимизирует также
вероятность ошибки второго рода.

\paragraph{}
Критерии на открытый текст, использующие запретные сочетания знаков,
например, $k$-граммы подряд идущих букв, называются \emph{критериями запретных
$k$-грамм}.

Отбирается некоторое число $s$ редких $k$-грамм, которые объявляются запретными.

Теперь, просматривая последовательно $k$-грамму за $k$-граммой анализируемой
последовательности $c_1 c_2 \dots c_l$, она объявляется случайной, как только
в ней встретится одна из запретных k-грамм, и открытым текстом в противном
случае.

Такие критерии также могут совершить ошибки в принятии решения. В простейших
случаях их можно рассчитать. Несмотря на свою простоту, критерии запретных
$k$-грамм являются весьма эффективными.

\subsection{(1.4) Математические модели шифров}

\subsubsection{(1) Алгебраическая модель шифра}

Введём алгебраическую модель шифра (шифрсистемы), предложенную К.~Шенноном.

Пусть $X, K, Y$ --- конечные множества возможных открытых текстов, ключей и
криптограмм соответственно; $E_k : X \to Y$ --- правило зашифрования на ключе
$k \in K$.

Множество $\{ E_k : k \in K \}$ обозначим через $E$, а множество $\{ E_k(x) : x
\in X \}$ --- через $E_k(X)$.

Пусть $D_k : E_k(X) \to X$ --- правило расшифрования на ключе $k \in K$, и $D$
--- множество $\{ D_k : k \in K \}$.

Если ключ $k \in K$ представляется в виде $k = (k_o, k_p)$, где $k_o$ --- ключ
зашифрования, а $k_p$ --- ключ расшифрования (причём $k_o \neq k_p$), то $E_k$
понимается как функция $E_{k_p}$, а $D_k$ --- как функция $D_{k_p}$.

\emph{Шифром (шифрсистемой)} называется совокупность $$\sum_A = (X, K, Y, E,
D)$$ введённых множеств, для которых выполняются следующие свойства:
\begin{enumerate}
  \item Для любых $x \in X$ и $k \in K$ выполняется равенство $D_k(E_k(x)) = x$;
  \item $Y = \cup_{k \in K} E_k(X)$.
\end{enumerate}

Неформально, шифр --- это совокупность множеств возможных открытых текстов (то,
что шифруется), возможных ключей (то, с помощью чего шифруется), возможных
шифртекстов (то, во что шифруется), правил зашифрования и правил расшифрования.

Условие (1) отвечает требованию однозначности расшифрования. Из условия (1)
следует свойство инъективности функции $E_k$: если $x_1, x_2 \in X$, причём
$x_1 \neq x_2$, то при любых $k \in K$ выполняется неравенство $E_k(x_1) \neq
E_k(x_2)$.

Условие (2) означает, что любой элемент $y \in Y$ может быть представлен в виде
$E_k(x)$ для подходящих элементов $x \in X$ и $k \in K$.

В общем случае утверждение <<для любых $k \in K$ и $y \in E_k(X)$ выполняется
равенство $E_k(D_k(y)) = y$>> является неверным.

Реальный шифр отождествляется с его математической моделью $\sum_A$, которая
называется \emph{алгебраической моделью шифра}.

\subsubsection{(2) Вероятностная модель шифра}

Следуя К.~Шеннону, введём априорные распределения вероятностей $P(X)$ и $P(K)$
на множестве $X$ и $K$ соответственно.

Для любого $x \in X$ определена вероятность $p_X(x) \in P(X)$ и для любого $k
\in K$ --- вероятность $p_K(k) \in P(K)$, причём выполняются равенства $$\sum_{x
\in X} p_X(x) = 1 \, \land \, \sum_{k \in K} p_K(k) = 1$$

В тех случаях, когда требуется знание распределений $P(X)$ и $P(K)$,
используется вероятностная модель $\Sigma_B$, состоящая из пяти множеств,
связанных условиями (1) и (2) определения шифра и двух вероятностных
распределений: $$\Sigma_B = (X, K, Y, E, D, P(X), P(K))$$

Вероятностные характеристики шифров используются только в криптоанализе.

В большинстве случаев множества $X$ и $Y$ представляют собой объединения
декартовых степеней некоторых множеств $A$ и $B$ соответственно, так что для
некоторых натуральных $L$ и $L_1$: $$X = \cup_{L = 1}^L A^l \, \land \, Y =
\cup_{L = 1}^{L_1} B^l$$

Множества $A$ и $B$ называются соответственно \emph{алфавитом открытого текста}
и \emph{алфавитом шифрованного текста}.

\subsubsection{(3) Основные требования к шифрам}

Для современных криптографических систем защиты информации сформулированы
следующие общепринятые требования:
\begin{enumerate}
  \item
    зашифрованное сообщение должно поддаваться чтению только при наличии ключа;
  \item
    число операция, необходимых для определения использованного ключа шифрования
    по фрагменту шифрованного сообщения и соответствующего ему открытого текста,
    должно быть не меньше общего числа возможных ключей;
  \item
    число операция, необходимых для расшифровывания информации путём перебора
    всевозможных ключей должно иметь строгую нижнюю оценку и выходить за пределы
    возможностей современных компьютеров (с учётом возможности использования
    сетевых вычислений);
  \item знание алгоритма шифрования не должно влиять на надёжность защиты;
  \item
    незначительное изменение ключа (сообщения?) должно приводить к существенному
    изменению вида зашифрованного сообщения даже при использовании одного и того
    же ключа;
  \item структурные элементы алгоритма шифрования должны быть неизменными;
  \item
    дополнительные биты, вводимые в сообщение в процессе шифрования, должны
    быть полностью и надёжно скрыты в шифрованном тексте;
  \item длина шифрованного текста должна быть равной длине исходного текста;
  \item
    не должно быть простых и легко устанавливаемых зависимостью между ключами,
    последовательно используемыми в процессе шифрования;
  \item
    любой ключ из множества возможных должен обеспечивать надёжную защиту
    информации;
  \item
    алгоритм должен допускать как программную, так и аппаратную реализацию,
    при этом изменение длины ключа не должно вести к качественному ухудшению
    алгоритма шифрования.
\end{enumerate}