Datasheet
2015 Microchip Technology Inc. Preliminary DS60001320B-page 403
PIC32MZ Embedded Connectivity with Floating Point Unit (EF) Family
26.0 CRYPTO ENGINE
The Crypto Engine is intended to accelerate applica-
tions that need cryptographic functions. By execut-
ing these functions in the hardware module, software
overhead is reduced, and actions such as encryp
-
tion, decryption, and authentication can execute
much more quickly.
The Crypto Engine uses an internal descriptor-based
DMA for efficient programming of the security associ
-
ation data and packet pointers (allowing scatter/
gather data fetching). An intelligent state machine
schedules the Crypto Engines based on the protocol
selection and packet boundaries. The hardware
engines can perform the encryption and authentica
-
tion in sequence or in parallel.
Key features of the Crypto Engine are:
• Bulk ciphers and hash engines
• Integrated DMA to off-load processing:
- Buffer descriptor-based
- Secure association per buffer descriptor
• Some functions can execute in parallel
Bulk ciphers that are handled by the Crypto Engine
include:
• AES:
- 128-bit, 192-bit, and 256-bit key sizes
- CBC, ECB, CTR, CFB, and OFB modes
• DES/TDES:
- CBC, ECB, CFB, and OFB modes
Authentication engines that are available through the
Crypto Engine include:
•SHA-1
•SHA-256
•MD-5
• AES-GCM
• HMAC operation (for all authentication engines)
The rate of data that can be processed by the Crypto
Engine depends on a number of factors, including:
• Which engine is in use
• Whether the engines are used in parallel or in series
• The demands on source and destination memories
by other parts of the system (i.e., CPU, DMA, etc.)
• The speed of PBCLK5, which drives the Crypto
Engine
Table 26-1 shows typical performance for various
engines.
TABLE 26-1: CRYPTO ENGINE
PERFORMANCE
FIGURE 26-1: CRYPTO ENGINE BLOCK DIAGRAM
Note: This data sheet summarizes the
features of the PIC32MZ EF family of
devices. It is not intended to be a
comprehensive reference source. To
complement the information in this data
sheet, refer to Section 49. “Crypto
Engine (CE) and Random Number
Generator (RNG)” (DS60001246) in
the “PIC32 Family Reference Manual”
,
which is available from the Microchip
web site (www.microchip.com/PIC32).
Engine/
Algorithm
Performance
Factor
(Mbps/MHz)
Maximum Mbps
(PBCLK5 = 100 MHz)
DES 14.4 1440
TDES 6.6 660
AES-128 9.0 900
AES-192 7.9 790
AES-256 7.2 720
MD5 15.6 1560
SHA-1 13.2 1320
SHA-256 9.3 930
DMA
Controller
System
INB
FIFO
OUTB
FIFO
Crypto
FSM
Packet
RD
Packet
WR
AES
TDES
SHA-1
MD5
Local Bus
SFR
System
Bus
Bus
PBCLK5
SHA-256