# Public Key Cryptographic Standards

Les PKCS (Public-Key Cryptography Standards), ou standards de cryptographie à clé publique, sont un ensemble de spécifications conçues par les laboratoires RSA en Californie. La société RSA Security est spécialisée dans les solutions de sécurité cryptographiques. Elle est également propriétaire de licences d'exploitations de plusieurs algorithmes (dont RSA avant l'expiration de son brevet le 21 septembre 2000). C'est pour ces raisons que la société a développé et promu les PKCS, permettant l'implantation des techniques de cryptographie à clé publique.
La société RSA Security n'est pas un organisme de normalisation, et pourtant, elle contrôle complètement l'élaboration et l'évolution des PKCS. L'appellation des PKCS comme standards au sens strict est donc abusive. Répondant à un réel besoin technique, les PKCS ont néanmoins été très largement adoptés par le milieu informatique. Le groupe de travail PKIX de l'IETF a depuis reformulé certains des PKCS dans des RFC, les standards Internet. L'abus de langage confondant le PKCS au lieu de la RFC correspondante est très répandu.
Résumé des PKCS :
| | Version | Nom | Commentaires |
| PKCS#1 | 2.2 | Standard de cryptographie RSA | RFC 8017. Définit le chiffrement et la signature RSA (notamment les schémas de remplissage OAEP, PSS et PKCS1-v1.5). |
| PKCS#2 | - | Obsolète | Décrivait le chiffrement RSA de condensés de message, mais a été intégré dans PKCS#1. |
| PKCS#3 | 1.4 | Standard d'échange de clés Diffie-Hellman | |
| PKCS#4 | - | Obsolète | Décrivait la syntaxe de clé RSA, mais a été intégré dans PKCS#1. |
| PKCS#5 | 2.0 | Standard de chiffrement par mot de passe | cf. RFC 2898 (rendu obsolète par la RFC 8018) et PBKDF2. |
| PKCS#6 | 1.5 | Obsolète | Définissait les extensions de l'ancienne spécification de certificat X.509 v1. |
| PKCS#7 | 1.5 | Standard de syntaxe de message cryptographique | Cf. RFC 2315. Utilisé pour signer et/ou chiffrer des messages dans le cadre d'une infrastructure à clés publiques. Sert également à la transmission de certificats (notamment en réponse à un message PKCS#10). À l'origine de S/MIME, qui est désormais décrit sous le nom Cryptographic Message Syntax (CMS) dans la RFC 5652. |
| PKCS#8 | 1.2 | Standard de syntaxe d'information de clé privée | Cf. RFC 5958. |
| PKCS#9 | 2.0 | Types d'attributs sélectionnés | RFC 2985 |
| PKCS#10 | 1.7 | Standard de requête de certificat | Cf. RFC 2986. Format des messages envoyés à une autorité de certification et demandant la signature d'une paire de clés. |
| PKCS#11 | 2.20 | Interface de périphérique cryptographique (cryptoki) | Une API définissant une interface générique pour périphérique cryptographique. |
| PKCS#12 | 1.0 | Standard de syntaxe d'information personnelle | Définit un format de fichier généralement utilisé pour stocker la clé privée et le certificat de clé publique correspondant en les protégeant par un mot de passe. |
| PKCS#13 | – | Standard de Cryptographie sur les courbes elliptiques | (En cours de développement) |
| PKCS#14 | – | Générateur de nombres pseudo-aléatoires | (En cours de développement) |
| PKCS#15 | 1.1 | Standard de format d'information sur les périphériques cryptographiques | Définit un standard permettant aux utilisateurs de périphériques cryptographiques de s'identifier auprès des applications, indépendamment de l'implantation de la cryptoki par l'application (PKCS #11) ou une autre API. La partie de cette spécification concernant les cartes IC a été intégrée dans le standard ISO/IEC 7816-15. |