Public-Key Cryptography Standards

From RaySoft

These are a group of Public-Key Cryptography Standards devised and published by 'RSA Security LLC', starting in the early 1990s. The company published the standards to promote the use of the cryptography techniques to which they had patents, such as the RSA algorithm, the Schnorr signature algorithm and several others. Though not industry standards (because the company retained control over them), some of the standards in recent years have begun to move into the 'standards-track' processes of relevant standards organizations such as the IETF and the PKIX working-group.[1]

PKCS #1: RSA Cryptography Standard

This document provides recommendations for the implementation of public-key cryptography based on the RSA algorithm, covering the following aspects:[2]

  • Cryptographic primitives
  • Encryption schemes
  • Signature schemes with appendix
  • ASN.1 syntax for representing keys and for identifying the schemes

Request for Comments (RFC)

PKCS #3: Diffie-Hellman Key Agreement Method

This document standardizes one particular Diffie-Hellman variant, based on the 'ANSI X9.42' draft, developed by the 'ANSI X9F1' working group. Diffie-Hellman is a key agreement algorithm used by two parties to agree on a shared secret. An algorithm for converting the shared secret into an arbitrary amount of keying material is provided. The resulting keying material is used as a symmetric encryption key. The Diffie-Hellman variant described requires the recipient to have a certificate, but the originator may have a static key pair (with the public key placed in a certificate) or an ephemeral key pair.[3]

Request for Comments (RFC)

PKCS #5: Password-Based Cryptography Standard

This document provides recommendations for the implementation of password-based cryptography, covering the following aspects:[4]

  • Key derivation functions
  • Encryption schemes
  • Message-authentication schemes
  • ASN.1 syntax identifying the techniques

Request for Comments (RFC)

PKCS #10: Certification Request Syntax Standard

This document describes syntax for certification requests. A certification request consists of a distinguished name, a public key, and optionally a set of attributes, collectively signed by the entity requesting certification. Certification requests are sent to a certification authority, which transforms the request into an X.509 public-key certificate.[5]

Request for Comments (RFC)

PKCS #12: Personal Information Exchange Syntax Standard

This document describes a transfer syntax for personal identity information, including private keys, certificates, miscellaneous secrets, and extensions. Machines, applications, browsers, Internet kiosks, and so on, that support this standard will allow a user to import, export, and exercise a single set of personal identity information. This standard supports direct transfer of personal information under several privacy and integrity modes.[6]

Request for Comments (RFC)

References

  1. https://en.wikipedia.org/wiki/PKCS
  2. RFC 8017
  3. RFC 2631
  4. RFC 8018
  5. RFC 2986
  6. RFC 7292