MAX32665-MAX32668 User Guide
Maxim Integrated Page 441 of 457
The modulus (m) is always stored in memory instance 5.
When an exponentiation operation is selected, the exponent (e) is always stored in memory instance 4. If another
operation is selected, memory instance 4 is free to hold another parameter.
Parameters m, b, t and r must be stored in different memory instances (not segments) even if MAA_MAWS.msgsz < 1024
bits. For example, if b is stored in memory instance 0, then neither t nor r is stored in memory instance 1 when word size is
smaller than 1024. Each memory instance is 256 bytes.
Table 23-5. MAA Memory Segments and Locations
MEMORY SEGMENT
(MAWS >= 1024)
MEMORY SEGMENT
(MAWS <1024)
23.6.2.1 Memory Blinding
Memory blinding is an effective cryptographic technique that increases the difficulty of side channel attacks against
cryptographic operations. In a poorly designed application, the MAA memory segments are in a fixed location, leaving them
vulnerable to timing and power analysis attacks.
The memory blinding features provides the option of shifting the starting position of the a, b, e, and m parameters within
their respective memory instances. Although you can alter the starting position, the entire parameter is still stored within a
single memory instance. Each parameter can be independently configured with the default “unblinded” and three blinded
starting positions. Memory blinding for each parameter is controlled by its corresponding Memory Select bits (AMS, BMS,
EMS, MMS).
Table 23-6. MAA Memory Blinding Example (Memory Instance 0, MAWS > 1024)
0x0100 ... 0x01FF (no blinding)
0x0140 ... 0x01FF, 0x0100 ... 0x013F
0x0180 ... 0x01FF, 0x0100 ... 0x017F 1
0x01C0 ... 0x01FF, 0x0100 ... 0x01BF
23.6.2.2 MAA Clock Source
The MAA operates at either the LPCLK or LPCLK/2 frequency as determined by the GCR_CLKCL.ccd field and the frequency
specified in the relevant data sheet.