Sa forme dépend de l’algorithme : un scalaire de 32 octets pour P-256 et secp256k1, une graine de 32 octets pour Ed25519 et X25519, (n, e, d, p, q, dP, dQ, qInv) pour RSA, et une graine de 32 octets (ou une clé développée de 2560 à 4896 octets) pour ML-DSA. Les fichiers l’enveloppent en PKCS #8 (BEGIN PRIVATE KEY, ou BEGIN ENCRYPTED PRIVATE KEY avec un mot de passe), en PKCS #1 (BEGIN RSA PRIVATE KEY), en SEC 1 (BEGIN EC PRIVATE KEY), dans des bundles PKCS #12, au format OpenSSH ou dans des JWK avec un membre d.
Options de protection, de la plus faible à la plus forte : un simple fichier aux permissions restreintes ; un fichier chiffré par mot de passe (PBES2 avec une KDF lente) ; un magasin de clés du système d’exploitation (Keychain, DPAPI, Android Keystore) ; et du matériel non exportable (TPM, Secure Enclave, carte à puce, HSM, KMS cloud), où la clé signe à l’intérieur de l’appareil et ne peut pas en être extraite.
N’envoyez jamais de clés privées à des services web, ne les collez jamais dans des tickets et ne les journalisez jamais ; les outils de ce site qui inspectent des clés s’exécutent localement et refusent les éléments privés là où une clé publique suffit. Si une clé privée fuit, révoquez tout ce qui y est lié (certificat, entrée JWKS, ligne authorized_keys) et procédez à une rotation des clés.