forked from vlsergey/infosec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mti.tex
28 lines (24 loc) · 2.79 KB
/
mti.tex
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
\subsection{Взаимная аутентификация шифрованием}
\selectlanguage{russian}
К протоколам взаимной аутентификации принадлежит семейство протоколов, разработанных Т. Мацумото (T. Matsumoto), И. Такашима (Y. Takashima) и Х. Имаи (H. Imai) и названных по первым буквам фамилий авторов -- \textbf{протокол MTI}\index{протокол!MTI}.
Здесь к открытым данным относятся
\[ p, ~~ g, ~~ \PK_A = g^a \mod p, ~~ \PK_B = g^b \mod p. \]
Каждый пользователь $A$ и $B$ обладает парой долговременных ключей для \emph{схемы шифрования с открытым ключом}: секретный ключ расшифрования $\SK$ и открытый ключ шифрования $\PK$.
\[ \begin{array}{ll}
A: & ~ \SK_A = a, ~~ \PK_A = g^a \mod p, \\
B: & ~ \SK_B = b, ~~ \PK_B = g^b \mod p. \\
\end{array} \]
\textbf{протокол MTI}
\begin{enumerate}
\item Сторона $A$ генерирует случайное число $x, ~ 2\leq x\leq p-1$, создает и отправляет $B$ сообщение:
\[ A \rightarrow B: ~ g^x \mod p. \]
\item Сторона $B$ генерирует случайное число $y, ~ 2\leq y\leq p-1$, создает и отправляет $A$ сообщение:
\[ A \leftarrow B: ~ g^y \mod p. \]
\item Сторона $A$, используя открытые данные и полученное сообщение, создает сеансовый ключ:
\[ K_A = (g^b)^x \cdot (g^y)^a = g^{bx+ay} \mod p. \]
\item Сторона $B$, используя открытые данные и полученное сообщение, создает сеансовый ключ:
\[ K_B = (g^x)^b \cdot (g^a)^y = g^{bx+ay} \mod p. \]
Сеансовые ключи обоих сторон совпадают:
\[ K_{A} =K_{B} = K. \]
\end{enumerate}
В описанном протоколе происходит взаимная аутентификация сторон как и в протоколе Эль-Гамаля\index{криптосистема!Эль-Гамаля}: открытые ключи сторон незаметно подменить невозможно. Наблюдая сообщения протокола, вычислить $g^{bx+ay}$ можно, только если известны значения $a,x$ или $b,y$, что представляет собой задачу дискретного логарифма, трудную в вычислительном смысле в настоящее время.