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 nfor the forward transform, or encryption
- x = y^d mod nfor 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.
- 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.
To provide minimum security, the length of the RSA modulus must be
equal to or greater than 1024 bits.