Для записи протоколов, связанных с реализацией функций защиты информации, не используют выражения вроде «участник с ролью «Отправитель»», а заменяют их на краткие обозначения вроде «отправитель» или используют общепринятые экземплификанты
Экземплификант или экземплификатив – конкретное понятие или имя собственное, используемое в качестве примера для обозначения неизвестного места или личности. (Википедия, свободная энциклопедия; 5 июля 2019)
: Алиса, Боб, Клара, Ева ит. д. При этом используют следующие соглашения.
Алиса, Боб (от англ. A, B) – отправитель и получатель.
Карл, Клара, Чарли (от англ. C) – равноправная третья сторона.
Ева (от англ. eavesdropper) – пассивный криптоаналитик.
Меллори (от англ. malicious) – активный криптоаналитик.
Трент (от англ. trust) – доверенная сторона.
Не существует общепринятого формата записи протоколов, они могут отличаться как по внешнему виду, так и по полноте описания. Например, вот наиболее полный формат записи протокола Диффи—Хеллмана.
Предварительный этап.
Все стороны выбрали общие $g$ и $p$.
Проход 1.
Алиса генерирует случайное $a$.
Алиса вычисляет $A = g^a \bmod p$.
Алиса отправляет Бобу $A$.
Проход 2.
Боб принимает от Алисы $A$.
Боб генерирует случайное $b$.
Боб вычисляет $B = g^b \bmod p$.
Боб отправляет Алисе $B$.
Боб вычисляет $s = A^b \bmod p$.
Проход 2.
Алиса принимает от Боба $B$.
Алиса вычисляет $s = B^a \bmod p$.
Результат протокола.
Стороны вычислили общий сеансовый ключ $s$.
Теперь сравните с краткой записью того же самого протокола.
$A \to B : A = g^a \bmod p$
$B \to A : B = g^b \bmod p$
В краткой записи опускаются инициализация и предварительные требования, вычисления непередаваемых данных (в данном примере – общего сеансового ключа $s$), а также любые проверки.
В данном пособии мы будем придерживаться промежуточного формата записи.
samepage==
Алиса генерирует $a$.
$Alice \to \left\{ A = g^a \bmod p \right\} \to Bob$.
Боб генерирует $b$.
Боб вычисляет $s = A^b \bmod p$.
$Bob \to \left\{ B = g^b \mod p \right\} \to Alice$.
Алиса вычисляет $s = B^a \bmod p$.
Также условимся о правилах записи случая, когда активный криптоаналитик (Меллори) выдаёт себя за легального пользователя.
$$
\begin{array}{llllc}
(1) & A & \to M \left(B\right) & : & A = g^a \bmod p, \\
(2) & M \left(A\right) & \to B & : & A^* = g^{a^*} \bmod p, \\
(3) & B & \to M \left(A\right) & : & B = g^b \bmod p, \\
(4) & M \left(B\right) & \to A & : & B^* = g^{b^*} \bmod p. \\
\end{array}
$$
Либо, отводя отдельный столбец для каждого участника.
$$
\begin{array}{lllclllc}
(1) & A & \to & M \left(B\right) & {} & {} & : & A = g^a \bmod p, \\
(2) & {} & {} & M \left(A\right) & \to & B & : & A^* = g^{a^*} \bmod p, \\
(3) & {} & {} & M \left(A\right) & \gets & B & : & B = g^b \bmod p, \\
(4) & A & \gets & M \left(B\right) & {} & {} & : & B^* = g^{b^*} \bmod p. \\
\end{array}
$$
Для сокращения описания и упрощения сравнения разных протоколов используют следующие соглашения об обозначениях передаваемых данных.
$A$, $B$, и т.п. – идентификаторы участников протокола: Алисы и Боба, соответственно.
$M$ (от англ. message) – сообщение в исходном виде, открытый текст вне зависимости от кодировки. То есть под $M$ может пониматься и исходный текст в виде текста или, например, звука, либо уже некоторое число или массив бит, однозначно соответствующие этому сообщению.
$K$ (от англ. key) – некоторый ключ. Без дополнительных уточнений обычно обозначает секретный сеансовый ключ.
$K_A$ – общий секретный ключ между Алисой и Трентом (для симметричных криптосистем).
$K_A$ – открытый ключ Алисы (для асимметричных криптосистем).
$L$ (от англ. lifetime) – время жизни, например, сертификата.
$E_K \left( \dots \right)$ (от англ. encrypt) – данные, зашифрованные на ключе $K$.
$E_A \left( \dots \right)$, $E_B \left( \dots \right)$ – данные, зашифрованные на ключах Алисы и Боба, соответственно.
$S_K \left( \dots \right)$ (от англ. sign) – данные и соответствующая цифровая подпись на открытом ключе $K$.
$T_A$, $T_B$ (от англ. timestamp) – метки времени от соответствующих участников.
$E_{K_B}( M )$ или просто $E_B( M )$ – сообщение $M$, зашифрованное ключом Боба $K_B$.
$S_A( R_A )$ – случайное число $R_A$, сгенерированное Алисой и ей же подписанное. То есть в сообщении будет и случайное число (открытым текстом), и электронная подпись этого числа.
$S_T( A, K_A, T_T, L)$ – идентификатор и ключ Алисы, метка времени и срок жизни данной записи, всё вместе подписанное открытым ключом доверенного центра (Трента). То есть фактически сертификат ключа Алисы.