Datasheet

Table Of Contents
Important: 
When using this service, be sure to strictly follow the directives given for the RNG on the chip
you use (particularly initialization, seeding) and compulsorily start the RNG. If the directives
require not to use this service, follow them and use the proposed method to get random
numbers.
This service only has the option to get random numbers and does not seed, initialize or start the
RNG. Other options are reserved for future use.
Neither continuous testing nor entropy testing is included in this service. If this is needed (FIPS
140, ZKA, ...), this service should not be used and the users shall develop their own command.
The DRNG is compatible with both ANSI X9.31 and FIPS 186-2 standards (see the important note
below). The DRNG is designed according to:
The algorithm described in the document ANSI Digital Signatures Using Reversible Public Key
Cryptography for the Financial Services Industry (rDSA) X9.31 dated September 9, 1998.
The Change recommendation for ANSI X9.0 - 1995 (Part 1) and ANSI X9.31 -1998:
The algorithm B.2.1 Algorithm for computing m Values of x is the one applied in the Toolbox 3 X9.31
DRNG. The DRNG is compatible with:
The DRNG is described in the document NIST Digital Signature Standard (DSS) FIPS Pub 186-2
January 27, 2000 Appendix 3.1
The FIPS 186-2 Change Notice 1 dated October 5, 2001 modifies this algorithm.
Important:  To apply the FIPS 186-2 algorithm, the parameters XSeed[0] and XSeed[1] must
be set to the same value.
43.3.4.13.2 How to Use the Service
43.3.4.13.3 Description
This service has four possible options described in Table 43-41. Two of these options are reserved for
future use. This service performs the following operations:
Generation of a random number from the Hardware RNG
Generation of a random number from the Deterministic RNG
Generation of a Random Number from the Hardware RNG
This service, activated with the option PUKCL_RNG_GET, makes it possible to get a random number R
from the Hardware RNG:
R = HardwareRandomGenerate()
In the Generation of random from the RNG service, the following parameters need to be provided:
R the generated number area (pointed by{nu1RBase,u2RLength})
43.3.4.13.4 Generation of a Random Number from the Deterministic RNG
This service, activated with the option PUKCL_RNG_X931_GET, makes it possible to get a random
number R from the Deterministic Random Number Generator with input parameters the Key XKey and
the Seed XSeed:
(XKey, R) = DeterministicRandomGenerateFromSeed ( XKey, XSeed, Q)
SAM D5x/E5x Family Data Sheet
Public Key Cryptography Controller (PUKCC)
© 2019 Microchip Technology Inc.
Datasheet
DS60001507E-page 1480