Aller au contenu
ecdsa.com
AcceptableWeierstrass réduite

secp256k1

secp256k1 est la courbe de Koblitz de 256 bits y² = x³ + 7 qui sécurise Bitcoin, Ethereum et Nostr.

secp256k1 est une courbe de Weierstrass réduite y² = x³ + ax + b sur un corps premier de 256 bits, avec un sous-groupe d’ordre premier de 256 bits et un cofacteur de 1 ; son niveau de sécurité estimé est de 128 bits. Statut : sûre, mais régionale ou de niche.

secp256k1 est définie dans SEC 2 modulo le nombre premier p = 2^256 − 2^32 − 977, avec a = 0 et b = 7. Son groupe d’ordre premier offre environ 128 bits de sécurité, et la combinaison de a = 0 et de p ≡ 1 (mod 3) fournit l’endomorphisme GLV qui accélère la multiplication scalaire. Contrairement aux courbes du NIST, ses paramètres ont été choisis pour l’efficacité plutôt que dérivés d’une graine.

Bitcoin l’a adoptée en 2009 pour ECDSA, et BIP 340 (Taproot) a ajouté les signatures Schnorr sur la même courbe ; Ethereum signe avec elle les transactions et les messages, et les événements Nostr portent des signatures Schnorr BIP 340. Ethereum (depuis l’EIP-2) et la politique de relais de Bitcoin rejettent la forme high-s des signatures ECDSA pour écarter la malléabilité (voir low-s).

Hors des blockchains, elle est peu courante : la RFC 8422 l’a rendue obsolète pour TLS (point de code 22), JOSE (ES256K, RFC 8812) et COSE (algorithme −47) l’enregistrent, et la NIST SP 800-186 ne l’autorise que pour les applications liées aux blockchains.

Noms dans les normes

NormeNom
SEC 2secp256k1
JOSE / COSEsecp256k1

Identifiants d’objet

Paramètres de domaine

corps premier de 256 bits · sécurité d’environ 128 bits

Nombre premier p du corps
0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
Coefficient a
0x0
Coefficient b
0x7
Coordonnée x du point de base
0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
Coordonnée y du point de base
0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8
Ordre n du point de base
0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141
Cofacteur h
0x1

Utilisée dans

  • Bitcoin
  • Ethereum
  • Nostr
  • JOSE (ES256K)
  • COSE (ES256K)

Identifiants dans les registres

Groupes pris en charge par TLS
secp256k1 0x0016
Algorithmes JOSE
ES256K
Courbes JWK
secp256k1
Algorithmes COSE
ES256K -47
Courbes elliptiques COSE
secp256k1 8
Identifiants de KEM HPKE
DHKEM(secp256k1, HKDF-SHA256) 0x0016

Normes et références

Toutes les courbes