Datasheet

Table Of Contents
Projective representation:  =
Pr < ×
15
Pr  < ×
15
Pr  < ×
15
Note: 
1. The minimum value for u2ModLength is 12 bytes. Therefore, the significant length of the modulus
must be at least three 32-bit words.
2. In some cases the point can be the infinite point. In this case it is represented with its Z coordinates
equal or congruent to zero.
43.3.7.1.4 Modulus and Modular Constant Parameters
In most of the services the following parameters must be provided:
P the Modulus (often pointed by {nu1ModBase,u2ModLength + 4}): This parameter contains the
Modulus Polynomial P[X] defining the Galois Field used in points coordinates computations. The
Modulus must be u2ModLength bytes long, while having a supplemental zeroed 32-bit word on the
MSB side.
Note:  Most of the Elliptic Curve computations are reduced modulo P. In many functions the
reductions are made with the Fast Reduction.
Cns the Modular Constant (often pointed by {nu1CnsBase,u2ModLength + 12}): This parameter
contains the Modular Constant associated to the Modulus.
Important:  The Modular Constant must be calculated before using the GF(2
n
) Elliptic Curves
functions by a call to the Setup for Modular Reductions with the GF(2
n
) option (see 43.3.5.1
Modular Reduction).
43.3.7.1.5 Curve Parameters in Memory
Some services need one or both of the Elliptic Curve Equation Parameters a and b. In this case these
values are organized in memory as follows:
The a Parameter relative to the Elliptic Curve Equation (often pointed by {nu1ABase,u2ModLength
+4}). The a Parameter is written in a classical way in memory. It is u2ModLength bytes long and has
a supplemental zeroed 32-bit word on the MSB side.
The a and b Parameters relative to the Elliptic Curve Equation (often pointed by {nu1ABBase,
2*u2ModLength + 8}):
The a Parameter is written in memory on u2ModLength bytes long, with a supplemental zeroed
32-bit word on the MSB side.
The b Parameter is written in memory after the a Parameter at an offset of (u2ModLength + 4)
bytes. It is written in memory on u2ModLength bytes long, with a supplemental zeroed 32-bit
word on the MSB side.
43.3.7.2 Point Addition
43.3.7.2.1 Purpose
This service is used to perform a point addition, based on a given elliptic curve over GF(2
n
).
Please note that this service is not intended to add the same point twice. In this particular case, use the
doubling service (see 43.3.7.3 Point Doubling).
SAM D5x/E5x Family Data Sheet
Public Key Cryptography Controller (PUKCC)
© 2019 Microchip Technology Inc.
Datasheet
DS60001507E-page 1546