PKA key algorithms
Public key cryptography uses a key pair consisting of a public key and a private key.
The PKA public key uses one of the following algorithms:
- CRYSTALS-Kyber Key Encapsulation Method (Kyber-KEM)
- CRYSTALS-Kyber is an IND-CCA2-secure key encapsulation mechanism (KEM), whose security is based on the hardness of solving the learning-with-errors (LWE) problem over module lattices. CRYSTALS-Kyber lists three different parameter sets aiming at different security levels. Specifically, Kyber-768 targets security of AES-192, and Kyber-1024 targets security of AES-256.
- Rivest-Shamir-Adleman (RSA)
- The RSA algorithm is the most widely used and accepted of the public key algorithms. It uses
three quantities to encrypt and decrypt text: a public exponent (PU), a private exponent (PR), and a
modulus (M). Given these three and some cleartext data, the algorithm generates ciphertext as
follows:
ciphertext = cleartextPU (modulo M)
Similarly, the following operation recovers cleartext from ciphertext:cleartext = ciphertextPR (modulo M)
- Elliptic Curve Cryptography (ECC)
- Elliptic curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. One of the main benefits in comparison with non-ECC cryptography is the same level of security provided by keys of smaller size. CCA uses ECC for digital signatures and symmetric keys using the Diffie-Hellman key agreement scheme.
- Elliptic Curve Digital Signature Algorithm (ECDSA and EdDSA)
- The ECDSA and EdDSA algorithms use elliptic curve cryptography (an encryption system based on the properties of elliptic curves) to provide a variant of the Digital Signature Algorithm.
- CRYSTALS-Dilithium Digital Signature Algorithm (CRDL-DSA)
- CRYSTALS-Dilithium is a lattice-based digital signature scheme whose security is based on the
hardness of finding short vectors in lattices. The CRYSTALS-Dilithium Digital Signature Algorithm
(CRDL-DSA) is a quantum safe algorithm (QSA) and is a member of the CRYSTALS (Cryptographic Suite
for Algebraic Lattices) suite of algorithms. The strength of a CRYSTALS-Dilithium key is represented
by the size of its matrix of polynomials. For example, CRYSTALS-Dilithium (6,5) has a matrix size of
6x5. The larger the matrix size, the stronger the key. CRYSTALS-Dilithium keys can only be used for
digital signature generation and verification (see Digital Signature Generate (CSNDDSG)
and Digital Signature Verify (CSNDDSV)).
The required hash method for CRYSTALS-Dilithium DSA is SHAKE-256.