P-521 est une courbe de Weierstrass réduite y² = x³ + ax + b sur un corps premier de 521 bits, avec un sous-groupe d’ordre premier de 521 bits et un cofacteur de 1 ; son niveau de sécurité estimé est de 256 bits. Statut : recommandée pour les nouveaux systèmes.
P-521 est la courbe y² = x³ − 3x + b sur le corps défini par le nombre premier de Mersenne 2^521 − 1, ce qui ramène la réduction modulaire à un décalage et une addition. L’ordre du groupe est un nombre premier de 521 bits, pour environ 256 bits de sécurité.
Cette taille inhabituelle piège les implémentations : les coordonnées et les clés privées occupent 66 octets, une signature ECDSA brute 132 octets, et l’algorithme ES512 de JOSE désigne P-521 avec SHA-512, alors que les deux noms évoquent 512 bits (RFC 7518, §3.4). Un code qui complète ou tronque ces valeurs à 64 octets produit des clés et des signatures que les autres bibliothèques rejettent.
Elle est enregistrée pour TLS (secp521r1, non marquée comme recommandée par l’IANA), JOSE, COSE (ES512, ESP512) et SSH (ecdsa-sha2-nistp521), mais les déploiements choisissent surtout P-256 ou P-384, plus rapides.
Paramètres de domaine
corps premier de 521 bits · sécurité d’environ 256 bits
- Nombre premier p du corps
- 0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
- Coefficient a
- 0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
- Coefficient b
- 0x51953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00
- Coordonnée x du point de base
- 0xc6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66
- Coordonnée y du point de base
- 0x11839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650
- Ordre n du point de base
- 0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409
- Cofacteur h
- 0x1
- Graine
- 0xd09e8800291cb85396cc6717393284aaa0da64ba