Visible to Intel only — GUID: GUID-F3449660-2AA3-48EB-9A13-AFA827B69000
Visible to Intel only — GUID: GUID-F3449660-2AA3-48EB-9A13-AFA827B69000
RSA Algorithm Functions
This section introduces Intel® Cryptography Primitives Library 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® Cryptography Primitives Library 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.
Important
To provide minimum security, the length of the RSA modulus must be equal to or greater than 1024 bits.