Перейти к содержимому
ecdsa.com
РекомендуемаяКороткая форма Вейерштрасса

P-521

P-521 (secp521r1) — самая большая из кривых NIST над простыми полями; её модуль — простое число Мерсенна 2^521 − 1, то есть 521 бит, а не 512.

P-521 — кривая в короткой форме Вейерштрасса y² = x³ + ax + b над 521-битным простым полем с 521-битной подгруппой простого порядка и кофактором 1; оценочный уровень стойкости — 256 бит. Статус: рекомендуется для новых систем.

P-521 — кривая y² = x³ − 3x + b над полем по модулю простого числа Мерсенна 2^521 − 1, благодаря которому приведение по модулю сводится к сдвигу и сложению. Порядок группы — 521-битное простое число, что даёт стойкость около 256 бит.

Из-за необычного размера реализации часто ошибаются: координаты и закрытые ключи занимают 66 байт, подпись ECDSA в формате raw — 132 байта, а ES512 в JOSE означает P-521 с SHA-512, хотя оба названия намекают на 512 бит (RFC 7518, § 3.4). Код, который дополняет или обрезает значения до 64 байт, создаёт ключи и подписи, не принимаемые другими библиотеками.

Кривая зарегистрирована для TLS (secp521r1, без пометки Recommended в реестре IANA), JOSE, COSE (ES512, ESP512) и SSH (ecdsa-sha2-nistp521), но на практике чаще выбирают более быстрые P-256 или P-384.

Названия в стандартах

СтандартНазвание
NIST FIPS 186-5 / SP 800-186P-521
SEC 2secp521r1
JOSE / COSEP-521
SSHnistp521

Идентификаторы объектов

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

521-битное простое поле · примерно 256-битная стойкость

Простой модуль поля p
0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Коэффициент a
0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
Коэффициент b
0x51953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00
Координата x базовой точки
0xc6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66
Координата y базовой точки
0x11839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650
Порядок n базовой точки
0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409
Кофактор h
0x1
Seed
0xd09e8800291cb85396cc6717393284aaa0da64ba

Где используется

  • TLS 1.3
  • X.509
  • JOSE (ES512)
  • COSE (ES512, ESP512)
  • SSH (ecdsa-sha2-nistp521)

Идентификаторы в реестрах

Поддерживаемые группы TLS
secp521r1 0x0019
Схемы подписи TLS
ecdsa_secp521r1_sha512 0x0603
Алгоритмы JOSE
ES512HPKE-2HPKE-2-KE
Кривые JWK
P-521
Алгоритмы COSE
ESP512 -52
Эллиптические кривые COSE
P-521 3
Методы обмена ключами SSH
ecdh-sha2-nistp521gss-nistp521-sha512-*
Алгоритмы открытых ключей SSH
ecdsa-sha2-nistp521x509v3-ecdsa-sha2-nistp521
Идентификаторы KEM в HPKE
DHKEM(P-521, HKDF-SHA512) 0x0012DHKEM(CP-521, HKDF-SHA512) 0x0015

Стандарты и ссылки

Все кривые