# public key cryptography standard (PKCS)

The Public Key Encryption Standards (PKCS) is a standard published by RSA Data Security Inc. for asymmetric encryption using the public key method.

PKCS supports the RSA method and the Diffie-Hellman method. In addition, PKCS includes an algorithm-independent syntax for digital signatures and digital envelopes. The procedure covers several documents:

PKCS#1 is the RSA Cryptography Standard, which contains the recommendations for implementing public-key procedures based on the RSA algorithm. PKCS#1 defines the mechanisms for encrypting and signing data macj de, RSA procedures.

PKCS#3 is the Diffie-Hellman Key Agreement Standard, which describes the procedure for implementing the Diffie-Hellman algorithm. It describes the necessary data exchange formats for the Diffie-Hellman method.

PKCS #5 The Password-Based Cryptography Standard gives recommendations for the implementation of password-based cryptography. The encryption of the data is derived from the password.

PKCS #6 The Extended-Certificate Syntax Standard describes the syntax for extended certificates. The extended certificates consist of a set of attributes that are confirmed by the certificate owner.

PKCS#7 is the standard for the Cryptographic Message Syntax( CMS). It describes the cryptographic formats for encrypted and signed messages. PKCS#7 is used as syntax in S/ MIME and in Simple Certificate Enrollment Protocol( SCEP), among others.

PKCS#8 in the Private-Key Information Syntax Standard describes the syntax for symmetric cryptography. In this format RSA Private Keys can be stored together with further attributes.

PKCS #9 The Selected Attribute Types define selected attributes for use in PKCS #6 extended certificates, PKCS #7 digitally signed messages, PKCS #8 private cipher keys, and PKCS #10 certification requests.

PKCS#10 is the Certification Request Syntax Standard. It describes the syntax for a certification request for a public key

PKCS#11 is called the Cryptographic Token Interface Standard (Cryptoki). It specifies an application programming interface( API) called Cryptoki for cryptographic information, such as the generic interface to smart cards. Cryptoki modules support cryptographic functions for digital signatures and are used to encrypt and decrypt user data.

PKCS#12 is the Personal Information Exchange Syntax Standard for a portable format for sensitive data such as private keys. PKSC#12 can be used to store and transport a user's private keys and certificates

PKCS#13 is the Elliptic Curve Cryptography Standard for the Elliptic Curve Cryptosystem( ECC) including parameter and key generation, validation, digital signatures, public key encryption, key agreement, and ASN.1 syntax

PKCS #14 is the pseudorandom number generation standard. This standard addresses the generation of pseudorandom numbers.

PKCS#15 is the Cryptographic Token Information Format standard. This standard allows users to use cryptographic tokens to identify themselves to various applications, independent of the interface.