09.12.2012 Views

RM0090: Reference manual - STMicroelectronics

RM0090: Reference manual - STMicroelectronics

RM0090: Reference manual - STMicroelectronics

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>RM0090</strong> Cryptographic processor (CRYP)<br />

20 Cryptographic processor (CRYP)<br />

This section applies to the whole STM32F4xx family, unless otherwise specified.<br />

20.1 CRYP introduction<br />

The cryptographic processor can be used to both encipher and decipher data using the<br />

DES, Triple-DES or AES (128, 192, or 256) algorithms. It is a fully compliant implementation<br />

of the following standards:<br />

● The data encryption standard (DES) and Triple-DES (TDES) as defined by Federal<br />

Information Processing Standards Publication (FIPS PUB 46-3, 1999 October 25). It<br />

follows the American National Standards Institute (ANSI) X9.52 standard.<br />

● The advanced encryption standard (AES) as defined by Federal Information<br />

Processing Standards Publication (FIPS PUB 197, 2001 November 26)<br />

The CRYP processor performs data encryption and decryption using DES and TDES<br />

algorithms in Electronic codebook (ECB) or Cipher block chaining (CBC) mode.<br />

The CRYP peripheral is a 32-bit AHB2 peripheral. It supports DMA transfer for incoming and<br />

processed data, and has input and output FIFOs (each 8 words deep).<br />

20.2 CRYP main features<br />

● Suitable for AES, DES and TDES enciphering and deciphering operations<br />

● AES<br />

– Supports the ECB, CBC, CTR, CCM and GCM chaining algorithms (CCM and<br />

GCM are available on STM32F42x and STM32F43x only)<br />

– Supports 128-, 192- and 256-bit keys<br />

– 4 × 32-bit initialization vectors (IV) used in the CBC, CTR, CCM and GCM modes<br />

Table 87. Number of cycles required to process each 128-bit block (STM32F40x and STM32F41x)<br />

Algorithm / Key size ECB CBC CTR<br />

128b 14 14 14<br />

192b 16 16 16<br />

256b 18 18 18<br />

Table 88. Number of cycles required to process each 128-bit block (STM32F42x and STM32F43x)<br />

Algorithm /<br />

Key size<br />

ECB CBC CTR<br />

GCM CCM<br />

Init Header Payload Tag Init Header Payload Tag<br />

128b 14 14 14 24 10 14 14 12 14 25 14<br />

192b 16 16 16 28 10 16 16 14 16 29 16<br />

256b 18 18 18 32 10 18 18 16 18 33 18<br />

Doc ID 018909 Rev 3 544/1416

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!