In cryptography, PKCS stands for “Public Key Cryptography Standards”. 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[when?] have begun to move into the “standards-track” processes of relevant standards organizations such as the IETF and the PKIX working-group.
Public key cryptography is based on asymmetric cryptographic algorithms that use two related keys, a public key and a private key; the two keys have the property that, given the public key, it is computationally infeasible to derive the private key. A user publishes his/her public key in a public directory such as an LDAP directory and keeps his/her private key to himself/herself
.
According to the purpose of the algorithm, there are public-key encryption/decryption algorithms and signature algorithms. An encryption algorithm could be used to encrypt a data (for example, a symmetric key) using the public key so that only the recipient who has the corresponding private key could decrypt the data. Typical public key encryption algorithms are RSA and ECIES (Elliptic Curve Integrated Encryption Scheme, see, SECG 2000). A signature algorithm together with a message digest algorithm could be used to transform a message of any length using the private key to a signature in such a way that, without the knowledge of the private key, it is computationally infeasible to find two messages with the same signature, to find a message for a pre-determined signature, or to find a signature for a given message. Anyone who has the corresponding public key could verify the validity of the signature. Typical public key digital signature algorithms are RSA, DSA, and ECDSA.