diff options
Diffstat (limited to 'crypto-algebra/lectures/lecture13.tex')
| -rw-r--r-- | crypto-algebra/lectures/lecture13.tex | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/crypto-algebra/lectures/lecture13.tex b/crypto-algebra/lectures/lecture13.tex new file mode 100644 index 0000000..7b6414f --- /dev/null +++ b/crypto-algebra/lectures/lecture13.tex @@ -0,0 +1,183 @@ +% Лекция 13 (04.12.23) + +Соответствие $x \\ x'$ является взаимно однозначным и легко вычислимым. + +\begin{example} + Встроим открытый текст в координату точки эллиптической кривой, определённой + над конечным полем $\FF_{32} = \FF_{2^5}$. Пусть эллиптическая кривая $E(\FF_{32})$ + задана уравнением + \begin{equation*} + y^2 + xy = x^3 + t; + \end{equation*} + поле $\FF_{32}$ задано полиномом + \begin{equation*} + t^5 + t^2 + 1, + \end{equation*} + таким образом, $\FF_{32} = \FF_2 / (t^5 + t^2 + 1)$. + + Кривая имеет 16 точек. Открытый текст $t^3 + 1$ не является $x$-координатой + точки кривой. Вычисляем + \begin{align*} + \sqrt{t} &= t^{2^{5 - 1}} = t^{16} = * \\ + t^5 &= -t^2 - 1 = t^2 + 1; \\ + t^6 &= tt^5 = t(t^2 + 1) = t^3 + t; \\ + t^7 &= t^4 + t^2; \\ + t^8 &= t^5 + t^3 = t^3 + t^2 + 1; \\ + t^{16} &= (t^8)^2 = t^6 + 2t^5 + t^4 + 2t^3 + 2t^3 + 2t^2 + 1 + = t^4 + t^3 + t + 1. \\ + * &= t^4 + t^3 + t + 1. + \end{align*} + + Заменяем элемент $t^3 + 1$ на элемент, заданный уравнением + \begin{equation*} + \frac{1}{x} = \frac{1}{t^4 + t^3 + t + 1} + \frac{1}{t^3 + 1}. + \end{equation*} + + Получаем необходимую $x$-координату точки кривой: + \begin{align*} + \frac{1}{x} &= \frac{t^4 + t^3 + t + 1 + t^3 + 1}{(t^4 + t^3 + t + 1)(t^3 + 1)} = \\ + &= \frac{t(t^3 + 1)}{(t^4 + t^3 + t + 1)(t^3 + 1)} = \\ + &= \frac{t}{t^4 + t^3 + t + 1}; \\ + x &= t^3 + t^2 + \frac{1}{t} + 1 = \\ + &= t^3 + t^2 + (t^4 + t) + 1 = \\ + &= t^4 + t^3 + t^2 + t + 1. + \end{align*} +\end{example} + +%% NOTE: 3.3.2 +\subsubsection{Установление сеансового ключа} + +Рассмотрим аналог ключевого обмена Диффи--Хеллмана. Предположим, что Алиса и Боб +хотят договориться о ключе, которым будут впоследствии пользоваться в некоторой +классической криптосистеме. + +Ключом может служить <<случайная>> точка на эллиптической кривой $E$, так как +Алиса и Боб могут заранее договориться о способе преобразования её в целое число +(например, взять образ её координаты $x$ при некотором установленном в системе +простом отображении из $\FF_q$ в натуральные числа). + +Итак, предположим, что $E$ --- эллиптическая кривая над $\FF_q$, а $Q$ --- +согласованная (и общеизвестная) точка на кривой. Желательно, чтобы точка $Q$ +имела весьма большой порядок (равный либо $\#E(\FF_q)$, либо большому делителю +$\#E(\FF_q)$). + +Здесь точка $Q$ играет ту же роль, что и образующий элемент $g$ в системе +Диффи--Хеллмана для конечных полей. + +Договорённость может быть предварительной, или эллиптическая кривая может +создаваться непосредственно в ходе сеанса связи. + +Для установления сеансового ключа Алиса и Боб выполняют следующий протокол: +\begin{enumerate} + \item + Алиса случайным образом выбирает целое число $k_A$, которое держит в секрете. + \item + Алиса вычисляет точку $k_A Q \in E$ и посылает её Бобу (возможно открыто). + \item + Боб случайным образом выбирает целое число $k_B$, которое держит в секрете. + \item + Боб вычисляет точку $k_B Q \in E$ и посылает её Алисе (возможно открыто). + \item + Алиса умножает точку, которую она получила от Боба, на свой секретный ключ + $k_A$. Боб умножает точку, которую он получил от Алисы, на свой секретный + ключ $k_B$, тем самым получая общий ключ + \begin{equation*} + P = k_A k_B Q \in E + \end{equation*} +\end{enumerate} + +Ева, которая бы хотела шпионить за Алисой и Бобом, должна была бы определить $P += k_A k_B Q$, зная $Q$, $k_A Q$ и $k_B Q$, но не зная $k_A$ или $k_B$. + +Задача подслушивателя называется <<задачей Диффи--Хеллмана для эллиптических +кривых>>. + +Систему Диффи--Хеллмана можно взломать, если решить <<проблему дискретного +логарифма>> в группе точек эллиптической кривой $E$. + +\subsubsection{Шифрование} + +Протокол Диффи--Хеллмана модифицируется для передачи сообщений, используя +идею Эль-Гамаля. Пусть $E$ --- эллиптическая кривая над $\FF_q$, а $Q$ --- +согласованная (и общеизвестная) точка на кривой. + +Предположим, что набор единиц сообщения был встроен в $E$ некоторым +согласованным образом, и Боб хочет послать Алисе сообщение $M \in E$. + +\begin{enumerate} + \item + Алиса случайным образом выбирает целое число $k_A$, которое держит в секрете. + \item + Алиса вычисляет точку $k_A Q \in E$ и посылает её Бобу (возможно открыто). + \item + Боб случайным образом выбирает целое число $k_B$, которое держит в секрете. + \item + Боб вычисляет точку $k_B Q \in E$ и посылает её Алисе (возможно открыто). + \item + Боб выбирает другое секретное случайное целое число $l$. + \item + Боб отправляет Алисе пару точек + \begin{equation*} + (lQ, M + l(k_A q)). + \end{equation*} + \item + Чтобы расшифровать сообщение, Алиса умножает первую точку в паре на своё + секретное $k_A$, а затем вычитает результат из второй точки в паре: + \begin{equation*} + (M + l(k_A Q)) - k_A(lQ) = M. + \end{equation*} +\end{enumerate} + +Данную систему также можно будет взломать, если решить <<проблему дискретного +логарифма>> в группе точек эллиптической кривой $E$. + + +\subsubsection{Цифровая подпись} + +\paragraph{Протокол цифровой подписи Эль-Гамаля.} + +В протоколе цифровой подписи Эль-Гамаля открытый ключ проверки подписи сожержит +уравнение эллиптической кривой $E(F)$, образующую $Q$ простого порядка $r$ и +точку $P = lQ$. + +Секретным ключом формирования подписи является показатель $l$. Кроме того, в +протоколе подписи используется хэш-функция $h$ и функция $f$. В качестве +функции $f(R)$ могут использоваться функции от координат: $x_R$, $y_R$, +$x_R + y_R$ и т. п. + +Для получения цифровой подписи под сообщением $M$ необходимо выполнять +следующие действия (шаги) по алгоритму: +\begin{enumerate} + \item вычислить хэш-код сообщения $M: h(m)$; + \item + сгенерировать случайное (псевдослучайное) целое число $k$, удовлетворяющее + неравенству + \begin{equation*} + 0 < k < r; + \end{equation*} + \item + вычислить точку эллиптической кривой $R = kQ$, $R = (x_R, y_R)$; + \item + вычислить значение $s$ из решения сравнения + \begin{equation} + h(m) \equiv lf(R) + ks \pmod{r} + \label{eq:23} + \end{equation} +\end{enumerate} + +При этом необходимо, чтобы выполнялось неравенство $f(R) \neq 0 \pmod{r}$, в +противном случае вернуться к шагу 2. Если $f(R) \equiv 0 \pmod{r}$, то подпись +не зависит от персонального ключа. + +Исходными данными этого процесса являются ключ подписи $l$ и подписываемое +сообщение $M$, а входным результатом --- цифровая подпись $(R, s)$. + +При этом можно сократить объём подписи, задав вместо $R$ только координату +$x_R$ и знак координаты $y_R$ (0, если $y_R < \frac{p}{2}$, и 1, если $y_R +> \frac{p}{2}$), тогда при проверке подписи необходимо будет восстановить +координату $y_R$ решением квадратного уравнения в поле $F$. + +Для проверки цифровой подписи $(R, s)$ под полученным сообщением $M$ необходимо +выполнять следующие действия (шаги) по алгоритму: + +%% TODO: дописать |