Криптоаналитик может быть: \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}$.