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 encryptionx = 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:
Functions for Building RSA System, the system being then used by functions listed below.
RSA Primitives, which perform RSA encryption and decryption.
RSA Encryption Schemes and RSA Signature Schemes, which combine RSA cryptographic primitives with other techniques, such as computing hash message digests or applying mask generation functions (MGFs), to achieve a particular security goal.
Note
Important
To provide minimum security, the length of the RSA modulus must be equal to or greater than 1024 bits.