0Pricing
Cryptology Academy · Урок

Стандартные кривые: P-256, Curve25519, secp256k1

Сравните кривые NIST, Curve25519 Бернштейна и secp256k1, используемую в Bitcoin

«Стандартные кривые: P-256, Curve25519, secp256k1» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Введение

Разные эллиптические кривые используются для разных целей. В этом уроке мы сравним три наиболее важные: NIST P-256, Curve25519 Бернштейна и secp256k1, используемую в Bitcoin.

NIST P-256 (secp256r1)

NIST P-256 стандартизировали в 1999 году. В ней используется кривая Вейерштрасса с a=-3 (для быстрого удвоения точек). Уровень безопасности — 128 бит. Обязательна для правительства US (FIPS). Широко используется в TLS, JWT и при подписывании кода.

Споры вокруг P-256

Параметры кривой P-256 были выбраны с использованием необъяснённого начального значения. Этот процесс напоминает Dual_EC_DRBG, в котором обнаружили лазейку NSA. Лазейка не была доказана, но многие не доверяют кривым NIST.

Curve25519 (X25519 / Ed25519)

Бернштейн разработал Curve25519 в 2005 году, обеспечив полностью прозрачный и проверяемый выбор параметров. Форма Монтгомери: y²=x³+486662x²+x mod (2^255-19). Каждый параметр обоснован эффективностью, а не произвольным выбором.

Свойства Curve25519

Уровень безопасности — 128 бит. Кофактор 8 (обрабатывается реализацией X25519). На большинстве платформ естественным образом работает за постоянное время. Нет точек с особыми граничными случаями. IETF принял её в RFC 7748 и RFC 8032. WireGuard, Signal и SSH используют её исключительно.

Ed25519: форма Эдвардса

Ed25519 — алгоритм подписи на скрученной форме Эдвардса кривой Curve25519. Детерминированный (случайный одноразовый параметр не нужен). По замыслу работает за постоянное время. Подписи имеют размер 64 байта, ключи — 32 байта. Проверка выполняется быстрее, чем у любой другой схемы подписи.

secp256k1: кривая Bitcoin

secp256k1 — кривая Коблица: y²=x³+7 (a=0, b=7) над 256-битным простым полем. Сатоси Накамото выбрал её для Bitcoin в 2008 году. Она также используется в Ethereum. Кривые Коблица имеют некоторые преимущества по эффективности перед кривыми NIST.

secp256k1 и P-256

Обе являются 256-битными кривыми с уровнем безопасности около 128 бит. secp256k1: a=0 позволяет эффективно использовать эндоморфизм для быстрого скалярного умножения. P-256: a=-3 обеспечивает быстрое удвоение. secp256k1 быстрее при создании подписей, а P-256 — при их проверке.

Curve448

Curve448 (X448) обеспечивает 224-битный уровень безопасности — сопоставимый с RSA-8192. Использует простое число Голдилокс 2^448-2^224-1. Подходит для приложений, которым требуется долговременная безопасность выше уровня P-256. Signal использует её как резервный вариант наряду с X25519.

Выбор подходящей кривой

TLS и универсальные задачи: P-256 (FIPS) или X25519 (производительность и доверие). SSH: Ed25519 (в большинстве современных клиентов). Bitcoin и Ethereum: secp256k1 (выбора нет). Высокий уровень безопасности (более 20 лет): P-384 или X448.

Проверка параметров кривой

Для P-256 стандарт NIST FIPS 186-5 перечисляет все параметры и начальное значение, использованное при их создании. Для Curve25519 в статье Бернштейна объясняется выбор каждой константы. Прозрачность выбора параметров — важный критерий безопасности.

Быстрая проверка

Какая кривая используется в Bitcoin и была выбрана Сатоси Накамото?

Итоги

Стандартные кривые сравнены. Далее мы проанализируем компромиссы между ECC и RSA с точки зрения уровня безопасности, производительности и размера ключа.

Часто задаваемые вопросы

Урок «Стандартные кривые: P-256, Curve25519, secp256k1» бесплатный?

Да — полный текст урока «Стандартные кривые: P-256, Curve25519, secp256k1» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Стандартные кривые: P-256, Curve25519, secp256k1»?

Сравните кривые NIST, Curve25519 Бернштейна и secp256k1, используемую в Bitcoin Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Стандартные кривые: P-256, Curve25519, secp256k1»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Групповой закон для эллиптических кривых
  2. Скалярное умножение и ECDLP
  3. Стандартные кривые: P-256, Curve25519, secp256k1
  4. ECC и RSA: компромиссы между безопасностью и производительностью
← Назад к Cryptology Academy