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.

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

Figure 214. 64-bit block construction according to DATATYPE<br />

bit swapping operation<br />

IN FIFO<br />

bit string M1 M2 M30 M31 M32<br />

byte swapping operation<br />

Byte 1,3 Byte 1,2<br />

bits 7...0 bits 7...0<br />

IN FIFO<br />

Byte 0,3 Byte 0,2<br />

bits 7...0 bits 7...0<br />

bit string<br />

hald-word swapping operation<br />

IN FIFO<br />

bit string<br />

IN FIFO<br />

bit string<br />

bit 31<br />

bit 31<br />

bit 30<br />

bit 30<br />

Half-word 1,1<br />

bits 15...0<br />

Half-word 0,1<br />

bits 15...0<br />

Half-word 0,0<br />

M1...16<br />

bit 2<br />

bit 2<br />

Byte 1,1<br />

bits 7...0<br />

Byte 0,1<br />

bits 7...0<br />

bit 1<br />

bit 1<br />

Byte 1,0<br />

bits 7...0<br />

Byte 0,0<br />

bits 7...0<br />

Half-word 1,0<br />

bits 15...0<br />

Half-word 0,0<br />

bits 15...0<br />

Half-word 0,1<br />

M17...32<br />

bit 0<br />

bit 0<br />

Byte 0,0 Byte 0,1 Byte 0,2 Byte 0,3 Byte 1,0 Byte 1,1<br />

M1...8 M9...16 M17...24 M25...32 M33...40 M41...48<br />

20.3.4 Initialization vectors - CRYP_IV0...1(L/R)<br />

Initialization vectors are considered as two 64-bit data items. They therefore do not have the<br />

same data format and representation in system memory as plaintext or cypher data, and<br />

they are not affected by the DATATYPE value.<br />

Initialization vectors are defined by two consecutive 32-bit words, CRYP_IVL (left part, noted<br />

as bits IV1...32) and CRYP_IVR (right part, noted as bits IV33...64).<br />

565/1416 Doc ID 018909 Rev 3<br />

DATATYPE = 11b<br />

second word written into the CRYP_DIN register<br />

first word written into the CRYP_DIN register<br />

M33 M34 M62 M63 M64<br />

DATATYPE = 10b<br />

second word written into the CRYP_DIN register<br />

first word written into the CRYP_DIN register<br />

(bit ordering within byte is unchanged)<br />

Byte 1,2<br />

M49...56<br />

DATATYPE = 01b<br />

Byte 1,3<br />

M57...64<br />

second word written into the CRYP_DIN register<br />

first word written into the CRYP_DIN register<br />

Half-word 1,0<br />

M33...48<br />

Half-word 1,1<br />

M49...64<br />

No swapping operation DATATYPE = 00b<br />

Word 1<br />

bits 31...0<br />

Word 0<br />

bits 31...0<br />

Word 0<br />

M1...32<br />

second word written into the CRYP_DIN register<br />

first word written into the CRYP_DIN register<br />

Word 1<br />

M33...64<br />

ai16075

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

Saved successfully!

Ooh no, something went wrong!