Эллиптическая кривая в криптографическом контексте задаётся уравнением вида:
y² = x³ + ax + b
При этом коэффициенты a и b принадлежат конечному полю, чаще всего простому полю вида ?ₚ, где p — большое простое число. Ключевое ограничение:
4a³ + 27b² ≠ 0
Это условие исключает вырожденные кривые, которые теряют гладкость и перестают образовывать корректную алгебраическую группу.
Работа в конечном поле означает, что все операции выполняются по модулю p. Таким образом, координаты точек кривой всегда лежат в дискретном множестве, что критично для криптографической стойкости.
Эллиптическая кривая в криптографии — это не просто множество точек, а абелева группа. Это означает наличие операции сложения точек, обладающей следующими свойствами:
Особая точка обозначается как O (точка на бесконечности). Она играет роль нуля:
P + O = P
Геометрическая интерпретация помогает понять структуру операции, но в криптографии используются алгебраические формулы.
Если P = (x₁, y₁), Q = (x₂, y₂), то:
наклон прямой:
λ = (y₂ − y₁) / (x₂ − x₁)
координаты результата R = P + Q:
x₃ = λ² − x₁ − x₂ y₃ = λ(x₁ − x₃) − y₁
Все вычисления выполняются по модулю p.
Если точки совпадают:
наклон касательной:
λ = (3x₁² + a) / (2y₁)
результат:
x₃ = λ² − 2x₁ y₃ = λ(x₁ − x₃) − y₁
Основная операция ECC — это не сложение, а скалярное умножение:
Q = k · P
где:
Скалярное умножение реализуется через повторяющееся сложение, но на практике используется алгоритм “double-and-add”, позволяющий вычислять результат за O(log k).
Суть метода:
Представить число k в двоичном виде
Итеративно:
Псевдоструктура:
Это делает ECC вычислительно эффективной даже при больших значениях k.
Все операции происходят в поле ?ₚ, где:
Обратные элементы критически важны для вычисления наклонов λ.
Безопасность ECC основана на сложности задачи:
дано P и Q = kP, найти k
Это называется ECDLP (Elliptic Curve Discrete Logarithm Problem).
В отличие от классического дискретного логарифма, для эллиптических кривых не существует эффективных субэкспоненциальных алгоритмов общего вида. Это позволяет использовать меньшие ключи при той же криптостойкости.
В прикладных библиотеках, включая SJCL, используются различные системы координат:
(x, y)
Плюс:
Минус:
(x : y : z)
Преобразование:
Преимущество:
В криптографических библиотеках проективные координаты предпочтительнее.
Библиотека SJCL ориентируется на стандартные кривые, например:
Общие параметры включают:
В SJCL эллиптическая криптография реализуется как набор низкоуровневых операций над точками кривой и полями.
Основные компоненты:
JavaScript накладывает ограничения на работу с большими числами, поэтому SJCL использует:
Скаляр k разбивается на биты:
k = ∑ kᵢ 2ⁱ
Каждый бит определяет:
Это создаёт последовательную цепочку операций, эквивалентную возведению в “экспоненту” в группе точек кривой.
На базе описанных математических конструкций строятся:
Во всех случаях ключевой операцией остаётся скалярное умножение точки.
Хотя операции можно визуализировать через геометрию (касательные, пересечения), криптографическая стойкость не связана с геометрией напрямую. Она определяется:
Размер поля p напрямую влияет на безопасность:
Для 256-битных кривых пространство ключей составляет порядка 2²⁵⁶.
ECC в SJCL реализует строго алгебраическую модель:
Такая абстракция позволяет строить единообразные и переносимые криптографические примитивы поверх JavaScript-ограничений.