Generated by GPT-5-mini| PKCS#1 | |
|---|---|
| Name | PKCS#1 |
| Caption | Public-Key Cryptography Standards |
| Developer | RSA Laboratories |
| Introduced | 1991 |
| Latest release | RFC 8017 (2016) |
| Type | Cryptography standard |
PKCS#1 PKCS#1 is a technical standard specifying the mathematical and encoding methods for the RSA public-key algorithm and associated primitives. It defines key formats, encryption and signature schemes, and padding techniques used by implementations across products from Microsoft Corporation, Apple Inc., Google LLC, Mozilla Foundation, and many IETF standards. PKCS#1 underpins interoperability among libraries such as OpenSSL, Bouncy Castle, LibreSSL, and GnuTLS as well as applications including OpenSSH, Apache HTTP Server, nginx, and Java SE.
PKCS#1 specifies key generation parameters, ASN.1 structures, and encoding rules closely aligned with X.509 certificate profiles and ASN.1 notation used by ITU-T, ISO/IEC, and the IETF. It standardizes operations for RSA-based signatures and encryption, referencing hash functions like SHA-1, SHA-256, SHA-512, and signature algorithms accepted by authorities such as the NIST and the ETSI. Implementations often interoperate with protocols defined by TLS, SSH, S/MIME messaging, and the SMTP ecosystem governed by organizations including Internet Society.
The original PKCS series originated at RSA Security LLC and was promulgated by RSA Laboratories in the early 1990s amid debates involving actors like Phil Zimmermann and standards work by Whitfield Diffie and Martin Hellman. Subsequent revisions were influenced by cryptographic reviews by scholars such as Ronald Rivest, Adi Shamir, Len Adleman, and audits from institutions like UC Berkeley and MIT. Later harmonization with the IETF resulted in RFCs such as RFC 3447 and RFC 8017, reflecting input from groups like the Internet Engineering Steering Group and vendors including IBM, Oracle Corporation, and Red Hat. Security incidents examined by researchers from Stanford University, ETH Zurich, and École Polytechnique Fédérale de Lausanne prompted clarifications and migrations in recommended practices.
PKCS#1 details RSA-based primitives: modular exponentiation as in algorithms employed by implementers like Ernst Mayer and described by theoreticians including Shafi Goldwasser and Silvio Micali. It prescribes RSAES for encryption and RSASSA for signatures, aligning with cryptographic assumptions studied at Princeton University, Harvard University, and Carnegie Mellon University. Key structures are encoded using ASN.1 definitions compatible with X.509 certificates issued by authorities such as DigiCert, Let's Encrypt, and Entrust. The document references entropy sources and key generation guidance used by NSA-compliant toolchains and community projects like Debian and Fedora Project.
Critical to PKCS#1 are padding schemes including OAEP and EMSA-PSS which respond to attacks analyzed by researchers from Bell Labs, Microsoft Research, and Google Project Zero. OAEP was introduced to mitigate chosen-ciphertext attacks exemplified in studies by Daniel Bleichenbacher and later refinements by teams at SRI International. PSS was proposed to provide provable security in the random oracle model with contributions from academics affiliated with Weizmann Institute of Science and Jerusalem College of Technology. The standard discusses implementation pitfalls highlighted by advisories from CVE (Common Vulnerabilities and Exposures), coordination via CERT Coordination Center, and guidance adopted by regulatory bodies including FIPS programs.
PKCS#1 enumerates parameter choices: modulus sizes (2048-bit, 3072-bit, 4096-bit), public exponents such as 65537, mask generation functions like MGF1, and hash-to-sign mappings referencing SHA-3 work by researchers from NIST and Keccak Team. These choices reflect recommendations from panels including ENISA, Council of the European Union cybersecurity initiatives, and academic evaluations performed at University of Cambridge and University of Oxford. The document aligns encoding practices with DER and BER subsets of ASN.1 specified by ITU-T and interoperates with key storage formats used by PKCS#12 and PEM tooling.
PKCS#1 is implemented widely in open-source projects such as OpenSSL, BoringSSL, WolfSSL, GnuPG, and LibreOffice, and in commercial products from Microsoft, Apple, Google, Amazon Web Services, and VMware. Interoperability testing is organized by consortia including the IETF TLS Working Group, CA/Browser Forum, and testing labs like Interoperability Lab at University of New Hampshire. Compatibility matrices involve operating systems such as Windows Server, macOS, Linux, and distributions maintained by Canonical and SUSE. Security evaluations and certifications reference programs like Common Criteria and audits by firms including KPMG and Deloitte.
Category:Cryptographic standards