
RM0453 Rev 2
699/1454
RM0453
Public key accelerator (PKA)
721
supplied before starting the operation. Performance improvement is detailed in
Section 24.5.2: Computation times
.
The operations using fast mode are modular exponentiation and scalar multiplication.
24.3.5
Typical applications for PKA
Introduction
The PKA can be used to accelerate a number of public key cryptographic functions. In
particular:
•
RSA encryption and decryption
•
RSA key finalization
•
CRT-RSA decryption
•
DSA and ECDSA signature generation and verification
•
DH and ECDH key agreement
Specifications of the above functions are given in following publications:
•
FIPS PUB 186-4, Digital Signature Standard (DSS), July 2013 by NIST
•
PKCS #1, RSA Cryptography Standard, v1.5, v2.1 and v2.2. by RSA Laboratories
•
IEEE1363-2000, IEEE Standard Specifications for Public-Key Cryptography, January
2000
•
ANSI X9.62-2005, Public Key Cryptography for the Financial Services Industry, The
Elliptic Curve Digital Signature Algorithm (ECDSA), November 2005
The principles of the main functions are described in this section, for a more detailed
description refer to the above cited documents.
RSA key pair
For following RSA operations a public key and a private key information are defined as
below:
•
Alice transmits her public key (
n
,
e
) to Bob. Numbers
n
and
e
are very large positive
integers.
•
Alice keeps secret her private key d, also a very large positive integer. Alternatively this
private key can also be represented by a quintuple (p, q, dp, dq, qInv).
For more information on above representations refer to the RSA specification.
RSA encryption/decryption principle
As recommended by the PKCS#1 specification, Bob, to encrypt message M using Alice’s
public key (
n
,
e
) must go through the following steps:
1.
Compute the encoded message EM = ENCODE(M), where ENCODE is an encoding
method.
2. Turn EM into an integer
m
, with 0
≤
m
<
n
and (
m
,
n
) being co-primes.
3. Compute ciphertext c =
m
e
mod
n
.
4. Convert the integer c into a string ciphertext C.