RSA Algorithm Functions

This section introduces Intel® Integrated Performance Primitives (Intel® IPP) Cryptography functions for RSA algorithm. The section describes a set of primitives to perform operations required for RSA cryptographic systems. This set of primitives offers a flexible user interface that enables scalability of the RSA crypto key size with the limit of up to 4096 bits.

According to [PKCS 1.2.1], a de facto standard for RSA implementations, a pair of keys (public and private) defines forward and inverse transforms of text (or operations on a public and secret key). Mathematical expressions for the forward and inverse transforms are similar. If x is plain text and y is the corresponding ciphertext, the mathematical expressions are as follows:

  • y = x^e mod n for the forward transform, or encryption

  • x = y^d mod n for the inverse transform, or decryption

In these expressions, e is the public exponent, d is the private exponent, and n is the RSA modulus. To enable direct and inverse transforms, a mathematical relationship exists between these values.

The (n,e) pair is called the public key. With the known modulus n, the public or private exponent determines whether the RSA cryptosystem is public or private. Intel IPP supports these, interrelated, representations of the private key:

  • Private key type 1 is the (n,d) pair.

  • Private key type 2 is the (p,q,dP,dQ,qInv) quintuple (for details, see [PKCS 1.2.1] ).

    This representation speeds computations by using the Chinese Remainder Theorem (CRT).

RSA algorithm functions include:

Note

Important

To provide minimum security, the length of the RSA modulus must be equal to or greater than 1024 bits.