Datasheet

Table Of Contents
The Normalize computation accept as entry a value whose length is lower or equal to
u2ModLength + 4 (that is, for example, a value yet reduced but not normalized.). The
u2ModLength + 4 MSB bytes are cleared at the beginning of the computation.
in case of Fast RedMod computations, the value X mayverify: X < (N
2
) *(2
32
).
include the supplementary bytes; see Note 3 in Table 43-45)
R (pointed by {nu1RBase,u2Modlength +4})
N (pointed by {nu1ModBase,u2ModLength +4})
Cns (pointed by {nu1CnsBase,u2ModLength +12})
u2ModLength is the Aligned Significant Length of the modulus and is not the byte Significant Length
(see 43.3.3.4 Aligned Significant Length).
The Fast Modular Reduction is able to reduce inputs up to <2*u2ModLength + 4> bytes. The input can
come from a multiplication of 2 <u2ModLength + 4> bytes numbers. The input X is considered as a
<2*u2ModLength + 8> bytes number.
Important:  Additionally the Fast Reduction and Normalize functions need supplemental bytes
located on the MSB side of the number to be reduced but these bytes are restored at the end of
the operation and are therefore unchanged. However, these bytes are to be taken into account
when the mapping is created, and could lead to unexpected results if overlapping with other
area used by the function.
The Fast Modular Reduction returns a <u2ModLength + 4> bytes number, but this number is in fact a
<u2ModLength + 2> significant bytes number. When using the Fast Modular Reduction, the two MSB
bytes of the <u2ModLength + 2> can have a maximum of two lsb bits set (depending on the reduced
number and the modulo).
The Normalize computation accepts as entry a resulting value of Fast Modular Reduction and computes
an exact result. It can not be applied to the result of the product of two numbers of size NLength: a Fast
Modular Reduction must be applied before.
For the Normalize computation, the X value is limited by the preceding formula but the area in memory is
bigger as described in Table 43-45.
As input, the Normalize sub-service only accept values, which length is lower or equal to u2ModLength
+ 4. The Most Significant u2ModLength + 4 bytes are firstly cleared by this service.
43.3.5.1.6 Big Modular Reduction Using Euclide's Division
This command calculates:
 < 2 ×  + 4 
= 
In this Big Modular Reduction computations, the following data must be provided:
X (pointed by {nu1XBase,2 * u2ModLength + 8}) (include the supplementary bytes; see Note 1 in
Table 43-46)
R (pointed by {nu1RBase,u2Modlength +4})
N (pointed by {nu1ModBase,u2ModLength +4})
u2ModLength is the Aligned Significant Length of the modulus and is not the byte Significant Length
(see 43.3.3.4 Aligned Significant Length)
Workspace (pointed by {nu1CnsBase,64 or 68}).
SAM D5x/E5x Family Data Sheet
Public Key Cryptography Controller (PUKCC)
© 2019 Microchip Technology Inc.
Datasheet
DS60001507E-page 1486