Криптоаналитик может быть:
\begin{itemize}
  \item
    \emph{пассивным} --- пытается найти сообщение/ключ, которое А хочет передать
    Б исходя из криптограммы;
  \item
    \emph{активным} --- пытается активно манипулировать передаваемыми данными.
\end{itemize}

Различают 3 уровня криптоанализа:
\begin{itemize}
  \item
    \emph{Атака только с шифротекстом} --- криптоаналитику известен только
    отрывок шифротекста;
  \item
    \emph{Метод тотального опробывания} --- происходит случайное опробывание
    ключей, при этом при каждом опробуемом ключе проводится расшифрование
    криптограммы и проверка полученного текста на принадлежность допустимых
    текстов;
  \item
    \emph{Атака с известным открытым текстом} --- известен отрывок шифротекста
    и соответствующий открытый текст;
  \item
    \emph{Атака с выбранным открытым текстом} --- криптоаналитик может выбрать
    любой открытый текст и сгенерировать соответствующий шифротекст.
\end{itemize}

В теории криптологии выделяется три периода:
\begin{itemize}
  \item Интуитивная, донаучная криптология,
  \item Научная криптография
  \item Компьютерная криптография
\end{itemize}

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

\subsection{Алгебраические структуры}

Пусть $a$ и $n$ --- натуральные числа. $a \divby n$ с остатком $r$, если
$\exists q \in \Z : a = qn + r$. $a$ и $b$ сравнимы по модулю $n$, если их
остатки при делении на $n$ совпадают. Обозначим $a \equiv b \pmod{n}$ $\implies$
$n$ делит разность $a$ и $b$.

Множество целых чисел $a_0, \dots, a_{n - 1} : \forall B \in Z \, \exists k \in
\set{0, \dots, n - 1}$ со свойством $a_k \equiv b \pmod{n}$, называется полной
системой вычетов по модулю $n$.

Если $a$ и $n$ взаимно просты, то $\exists a' : a \cdot a' \equiv 1 \pmod{n}$.
$a'$ называется обратным к $a$ по модулю $n$ и обозначается $a^{-1} \pmod{n}$.
