forked from vlsergey/infosec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ECIES.tex
33 lines (27 loc) · 5.19 KB
/
ECIES.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
29
30
31
32
33
\subsection{ECIES}
\selectlanguage{russian}
Схема ECIES (\langen{Elliptic Curve Integrated Encryption Scheme}) является частью сразу нескольких стандартов, в том числе ANSI X9.63, IEEE 1363a, ISO 18033-2 и SECG SEC 1. Эти стандарты по-разному описывают выбор параметров схемы~\cite{Martinez:Encinas:Avila:2010}:
\begin{itemize}
\item ENC (\langen{Encryption}) -- блочный режим шифрования (в том числе простое гаммирование, 3DES\index{шифр!3DES}, AES\index{шифр!AES}, MISTY1\index{шифр!MISTY1}, CAST-128\index{шифр!CAST-128}, Camelia\index{шифр!Camelia}, SEED\index{шифр!SEED});
\item KA (\langen{Key Agreement}) -- метод для генерации общего секрета двумя сторонами (оригинальный метод, описанный в протоколе Диффи~---~Хеллмана\index{протокол!Диффи~---~Хеллмана}~\cite{Diffie:Hellman:1976} либо его модификации~\cite{Miller:1986});
\item KDF (\langen{Key Derivation Function}) -- метод получения ключей из основной и дополнительной информации;
\item HASH -- криптографическая хэш-функция (SHA-1\index{хэш-функция!SHA-1}, SHA-2\index{хэш-функция!SHA-2}, RIPEMD\index{хэш-функция!RIPEMD}, WHIRLPOOL\index{хэш-функция!WHIRLPOOL});
\item MAC (\langen{Message Authentication Code}) -- функция вычисления имитовставки\index{имитовставка} (DEA, ANSI X9.71, MAC1, HMAC-SHA-1, HMAC-SHA-2, HMAC-RIPEMD, CMAC-AES).
\end{itemize}
К параметрам относится выбор группы точек над эллиптической кривой $\group{E}$, а также некоторой большой циклической подгруппы $\group{G}$ в группе $\group{E}$, задаваемой точкой-генератором $G$. Мощность циклической группы обозначается $n$.
\[n = \left\| \group{G} \right\|.\]
Предположим, что в нашем сценарии Алиса хочет послать сообщение Бобу. У Алисы есть открытый ключ Боба $P_B$, а у Боба -- соответствующий ему закрытый ключ $p_B$. Для отправки сообщения Алиса также сгенерирует временную (\langen{ephemeral}) пару из открытого ($P_A$) и закрытого ($p_A$) ключей. Закрытыми ключами являются некоторые натуральные числа, меньшие $n$, а открытыми ключами являются произведения закрытых на точку-генератор $G$:
\[ \begin{array}{ll}
p_A \in \Z, & p_B \in \Z, \\
1 < p_A < n, & 1 < p_B < n, \\
P_A = p_A \times G, & P_B = p_B \times G, \\
P_A \in \group{G} \in \group{E}, & P_B \in \group{G} \in \group{E}.\\
\end{array} \]
\begin{enumerate}
\item С помощью метода генерации общего секрета KA Алиса вычисляет общий секрет $s$. В случае использования оригинального протокола Диффи~---~Хеллмана\index{протокол!Диффи~---~Хеллмана} общим секретом будет являться результат умножения закрытого ключа Алисы на открытый ключ Боба $s = p_a \times P_B$.
\item Используя полученный общий секрет $s$ и метод получения ключей из ключевой и дополнительной информации KDF, Алиса получает ключ шифрования $k_{ENC}$, а также ключ для вычисления имитовставки $k_{MAC}$.
\item С помощью симметричного алгоритма шифрования ENC Алиса шифрует открытое сообщение $m$ ключом $k_{ENC}$ и получает шифртекст $c$.
\item Взяв ключ $k_{MAC}$, зашифрованное сообщение $c$ и другие заранее обговорённые сторонами параметры, Алиса вычисляет тэг сообщения (\langen{tag}) с помощью функции MAC.
\item Алиса отсылает Бобу $\{P_A, tag, c\}$.
\end{enumerate}
В процессе расшифрования Боб последовательно получает общий секрет $s = p_b \times P_A$, ключи шифрования $k_{ENC}$ и имитовставки $k_{MAC}$, вычисляет тэг сообщения и сверяет его с полученным тэгом. В случае совпадения вычисленного и полученного тэгов Боб расшифровывает исходное сообщение $m$ из шифртекста $c$ с помощью ключа шифрования $k_{ENC}$.