We are now going to review the Public Key Cryptography Standards, or PKCS. These are specifications that have been produced by RSA. They were first published in 1991 from various groups and early adopters of PKI technology. Currently, there are 15 standards (though some listed here have been combined) defined by RSA:
PKCS #1: RSA Cryptography Standard Describes rsaEncryption and syntax for RSA public keys and private keys. Also defines three signature algorithms.
PKCS #2 Has been incorporated into PKCS #1.
PKCS #3: Diffie-Hellman Key Agreement Standard Describes a method for implementing Diffie-Hellman key agreement.
PKCS #4 Has been incorporated into PKCS #1.
PKCS #5: Password-Based Cryptography Standard Describes a method for encryption with a secret key derived from a password.
PKCS #6: Extended-Certificate Syntax Standard Describes syntax for extended certificates.
PKCS #7: Cryptographic Message Syntax Standard Describes syntax for data that may have cryptography applied to it. PKCS #7 is compatible with Privacy-Enhanced Mail (PEM).
PKCS #8: Private-Key Information Syntax Standard Describes syntax for private-key information. Private-key information includes a private key and public-key algorithm.
PKCS #9: Selected Attribute Types Defines attribute types for use in
PKCS #6 extended certificates, also PKCS #7 digitally signed messages, and PKCS #8 private-key information.
PKCS #10: Certification Request Syntax Standard Describes syntax for certification requests. A certification request consists of a distinguished name, a public key, and optionally, a set of attributes.
PKCS #11: Cryptographic Token Interface Standard Specifies an API to devices, which hold cryptographic information and implement cryptographic functions.
PKCS #12: Personal Information Exchange Syntax Standard Specifies a portable format for storing and/or transporting a user's private keys and certificates.
PKCS #13: Elliptic Curve Cryptography Standard This standard is still under development.
PKCS #14: Pseudorandom Number Generation Standard This standard is still under development.
PKCS #15: Cryptographic Token Information Format Standard This standard is targeted at establishing a standard that ensures that users will be able to use cryptographic tokens to identify themselves to multiple standards-aware applications.
Abstract Syntax Notation number one, or ASN.1, is a standard that defines a formal notation for the specification of abstract data types. ASN.1 is a formal notation used for describing data transmitted by telecommunications protocols. Also, ASN.1 covers the structural aspects of information. A main reason for the success of ASN.1 is that this notation is linked with several standardized encoding rules, such as the BER (Basic Encoding Rules) and the PER (Packed Encoding Rules). ASN.1 has been used in PKCS documents, including PKCS #5 v2.0, PKCS #12 v1.0, and PKCS #15 v1.0.
See RFCs 1421 1424.