Кривая Эдвардса¶
Кривая Эдвардса — это семейство эллиптических кривых, используемых в криптографии, описываемое уравнением вида \(x^2 + y^2 = 1 + d \cdot x^2 \cdot y^2\), где \(d\) — параметр, не равный 0 или 1. Предложены американским математиком Гарольдом Эдвардсом в 2007 году как альтернатива традиционным эллиптическим кривым в форме Вейерштрасса. Отличаются высокой скоростью выполнения арифметических операций, устойчивостью к некоторым типам атак и простотой реализации, что делает их привлекательными для современных криптографических систем, включая протоколы цифровой подписи и обмена ключами.
¶История
Кривые Эдвардса были впервые описаны Гарольдом Эдвардсом в 2007 году в статье «A normal form for elliptic curves». Эдвардс предложил новую форму записи эллиптических кривых, которая упрощает вычисления и уменьшает количество операций, необходимых для сложения точек. В 2008 году Дэниел Бернстайн и Таня Ланге опубликовали работу, в которой показали, что кривые Эдвардса могут быть использованы для создания высокоэффективных криптографических систем, и ввели понятие «скрученных кривых Эдвардса» (twisted Edwards curves), описываемых уравнением \(a \cdot x^2 + y^2 = 1 + d \cdot x^2 \cdot y^2\), где \(a\) — дополнительный параметр. Это расширение позволило включить в семейство большее количество кривых, включая те, которые ранее использовались в стандартах, таких как Curve25519.
С 2010-х годов кривые Эдвардса начали активно внедряться в практические криптографические протоколы. В 2013 году они были включены в стандарт Национального института стандартов и технологий США (NIST) для цифровых подписей EdDSA (Edwards-curve Digital Signature Algorithm). В России кривые Эдвардса не являются стандартизированными для государственных нужд, но используются в коммерческих и открытых проектах.
¶Математическое описание
¶Уравнение и параметры
Кривая Эдвардса задается уравнением:
\[ x^2 + y^2 = 1 + d \cdot x^2 \cdot y^2 \]
где \(x\) и \(y\) — координаты точки на кривой, а \(d\) — параметр, отличный от 0 и 1. Для скрученной кривой Эдвардса уравнение принимает вид:
\[ a \cdot x^2 + y^2 = 1 + d \cdot x^2 \cdot y^2 \]
где \(a\) — дополнительный параметр, обычно равный 1 или -1. Параметры \(a\) и \(d\) выбираются так, чтобы кривая была невырожденной (не имела сингулярностей) и обладала криптографической стойкостью.
¶Арифметика точек
Основное преимущество кривых Эдвардса — простота и скорость операций сложения и удвоения точек. Сложение двух точек \((x_1, y_1)\) и \((x_2, y_2)\) на кривой выполняется по формулам:
\[ x_3 = \frac{x_1 \cdot y_2 + y_1 \cdot x_2}{1 + d \cdot x_1 \cdot x_2 \cdot y_1 \cdot y_2} \] \[ y_3 = \frac{y_1 \cdot y_2 - a \cdot x_1 \cdot x_2}{1 - d \cdot x_1 \cdot x_2 \cdot y_1 \cdot y_2} \]
Эти формулы не требуют деления на координаты (что замедляет вычисления на других кривых) и являются симметричными, что упрощает реализацию. Удвоение точки (сложение точки с собой) является частным случаем этих формул.
¶Нейтральный элемент
На кривой Эдвардса нейтральным элементом (точкой «бесконечности» в традиционных кривых) является точка \((0, 1)\). Это упрощает реализацию протоколов, так как не требует специальной обработки для нулевого элемента.
¶Классификация
¶Обычные кривые Эдвардса
Описываются уравнением \(x^2 + y^2 = 1 + d \cdot x^2 \cdot y^2\). Параметр \(a\) равен 1. Пример: кривая Ed25519, используемая в алгоритме EdDSA.
¶Скрученные кривые Эдвардса
Описываются уравнением \(a \cdot x^2 + y^2 = 1 + d \cdot x^2 \cdot y^2\), где \(a\) может быть отличен от 1 (часто \(a = -1\)). Это расширение позволяет включать в семейство кривые, которые не могут быть представлены в обычной форме. Пример: кривая Ed448-Goldilocks, используемая в некоторых реализациях.
¶Кривые с параметром d, не являющимся квадратом
Для криптографической стойкости важно, чтобы параметр \(d\) не был квадратом в поле \(F_p\) (где \(p\) — простое число). Это предотвращает атаки, основанные на изоморфизмах.
¶Применение
¶Цифровая подпись (EdDSA)
Основное применение кривых Эдвардса — алгоритм цифровой подписи EdDSA (Edwards-curve Digital Signature Algorithm), который является вариантом схемы Шнорра. EdDSA использует кривые Ed25519 (на основе Curve25519) и Ed448. Преимущества EdDSA перед ECDSA (Elliptic Curve Digital Signature Algorithm) включают:
- Высокую скорость генерации и верификации подписей.
- Отсутствие необходимости в генерации случайных чисел (детерминированная подпись), что снижает риск утечки ключа.
- Устойчивость к атакам по времени (side-channel attacks) благодаря постоянному времени выполнения операций.
EdDSA стандартизирован в RFC 8032 (2017 год) и используется в протоколах SSH, TLS, DNSSEC, а также в криптовалютах, таких как Monero и Stellar.
¶Обмен ключами
Кривые Эдвардса могут быть использованы для протоколов обмена ключами, таких как X25519 (на основе Curve25519). X25519 — это функция Диффи-Хеллмана на эллиптической кривой, которая использует скрученную кривую Эдвардса Ed25519. Она обеспечивает высокую скорость и безопасность, и широко применяется в TLS 1.3, Signal Protocol и других системах.
¶Криптография на эллиптических кривых (ECC)
Кривые Эдвардса являются подмножеством эллиптических кривых, и могут использоваться в любых протоколах ECC, включая шифрование (например, ElGamal) и аутентификацию. Однако на практике они чаще применяются именно для подписей и обмена ключами.
¶Преимущества и недостатки
¶Преимущества
- Высокая скорость: операции сложения и удвоения на кривых Эдвардса выполняются быстрее, чем на кривых в форме Вейерштрасса, благодаря меньшему количеству умножений в поле.
- Устойчивость к атакам: симметричные формулы сложения и отсутствие деления на координаты делают кривые менее уязвимыми к атакам по времени и атакам на основе анализа мощности.
- Простота реализации: нейтральный элемент \((0, 1)\) и отсутствие необходимости в специальной обработке для точки бесконечности упрощают код.
- Детерминированность: в EdDSA подпись не зависит от генератора случайных чисел, что исключает уязвимости, связанные с плохой случайностью.
¶Недостатки
- Ограниченное семейство: не все эллиптические кривые могут быть преобразованы в форму Эдвардса. Например, кривые с параметром \(a = 0\) (как некоторые стандартные кривые NIST) не могут быть представлены в этой форме.
- Меньшая распространенность: хотя кривые Эдвардса становятся популярнее, многие старые системы и стандарты (например, ГОСТ Р 34.10-2012 в России) используют кривые Вейерштрасса, что затрудняет миграцию.
- Зависимость от параметра \(d\): неправильный выбор параметра \(d\) (например, если он является квадратом) может привести к снижению стойкости.
¶Примеры кривых
¶Ed25519
- Уравнение: \(x^2 + y^2 = 1 + (121665/121666) \cdot x^2 \cdot y^2\) над полем \(F_p\), где \(p = 2^{255} - 19\).
- Используется в EdDSA (Ed25519) и X25519.
- Обеспечивает 128-битный уровень безопасности.
¶Ed448-Goldilocks
- Уравнение: \(x^2 + y^2 = 1 - 39081 \cdot x^2 \cdot y^2\) над полем \(F_p\), где \(p = 2^{448} - 2^{224} - 1\).
- Используется в EdDSA (Ed448) и X448.
- Обеспечивает 224-битный уровень безопасности.
¶Критика
Кривые Эдвардса критикуются за то, что они не являются универсальными: не все кривые, используемые в существующих стандартах, могут быть преобразованы в эту форму. Это создает проблемы совместимости при переходе с традиционных кривых. Кроме того, некоторые исследователи отмечают, что упрощенная арифметика может скрывать потенциальные уязвимости, связанные с атаками на основе изогении (isogeny attacks), хотя на практике таких атак для кривых Эдвардса не обнаружено.
¶Интересные факты
- Кривая Ed25519 была разработана Дэниелом Бернстайном и используется в протоколе Signal, который применяется в мессенджерах WhatsApp (продукт Meta, признанной экстремистской и запрещённой в РФ) и Signal (признаны экстремистскими и запрещены в РФ — прим. автора: на момент написания статьи статус не подтвержден, но упоминается для контекста).
- В 2019 году в стандарт TLS 1.3 были включены алгоритмы на основе кривых Эдвардса (Ed25519 и Ed448) для аутентификации серверов.
- В России кривые Эдвардса не входят в государственные стандарты (ГОСТ Р 34.10-2012 использует кривые Вейерштрасса), но применяются в коммерческих продуктах, например, в некоторых реализациях блокчейн-платформ.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


