Криптографическая эллиптическая кривая

Криптографическая эллиптическая кривая — это специальный вид эллиптической кривой, используемый в информационной безопасности. Формально кривая задаётся совокупностью точек, удовлетворяющих кубическому уравнению вида y2=x3+ax+by^2 = x^3 + ax + b, дополненному «точкой на бесконечности», и рассматривается над выбранным полем (например, над действительными числами, над рациональными или над конечным полем). Для применения в криптографии важно, чтобы кривая была невырожденной, что выражается условием на дискриминант Δ=16(4a3+27b2)0\Delta = -16(4a^3+27b^2) \neq 0. {IMAGE_0}

На множестве таких точек вводится абелева группа с операцией «сложения точек». Если P и Q — разные точки, то для нахождения суммы используются формулы через множитель наклона λ=y2y1x2x1\lambda = \dfrac{y_2-y_1}{x_2-x_1} и координаты результата x3=λ2x1x2x_3 = \lambda^2 - x_1 - x_2, y3=λ(x1x3)y1y_3 = \lambda(x_1 - x_3) - y_1. Для удвоения точки применяется формула наклона λ=3x12+a2y1\lambda = \dfrac{3x_1^2 + a}{2y_1}. Повторное сложение точки с собой даёт операцию скалярного умножения kP=P+P++Pk разkP = \underbrace{P+P+\dots+P}_{k\ \text{раз}}. Криптографическая стойкость основывается на трудности обратной задачи: зная P и Q = kP, найти k (задача дискретного логарифма на эллиптической кривой) крайне сложно при правильно выбранных параметрах.

Практические применения включают обмен ключами, электронные подписи и протоколы аутентификации (например, ECDSA, ECDH). По сравнению с системами на основе обычных целочисленных логарифмов (DH, RSA), эллиптические кривые дают сопоставимую безопасность при гораздо меньших размерах ключей и быстрых операциях над конечными полями, когда уравнение рассматривается в форме y2x3+ax+b(modp)y^2 \equiv x^3 + ax + b \pmod p. Это делает их особенно удобными для мобильных устройств и блокчейн-приложений.

Пример. Явный пример кривой над простым полем: y2x3+2x+2(mod17)y^2 \equiv x^3 + 2x + 2 \pmod{17}. На этой кривой точка P = P=(5,1)P=(5,1). При удвоении точки по формулам из теории (см. λ=3x12+a2y1\lambda = \dfrac{3x_1^2 + a}{2y_1} и выше) получаем 2P = 2P=(6,3)2P=(6,3). Такой пример показывает, как алгебраические правила переводятся в конкретные вычисления по модулю простого числа.