RM0090 Rev 18 741/1749
RM0090 Cryptographic processor (CRYP)
766
cryptographic algorithm (for the AES, the block length is four 32-bit words, but swapping
only takes place at word level, so it is identical to the one described here for the TDES).
Note: The same swapping is performed between the IN FIFO and the CRYP data block, and
between the CRYP data block and the OUT FIFO.
Figure 229. 64-bit block construction according to DATATYPE
Byte 0,3Byte 0,2Byte 0,1Byte 0,0
M25...32M17...24
M9...16M1...8
IN FIFO
bit string
M1 M2 M30 M31 M32
bit swapping operation
IN FIFO
bit string
byte swapping operation
Byte 0,0Byte 0,1Byte 0,2Byte 0,3
bits 7...0bits 7...0
bits 7...0bits 7...0
IN FIFO
bit string
hald-word swapping operation
Half-word 0,0
bits 15...0
DATATYPE = 11b
DATATYPE = 10b
DATATYPE = 01b
Half-word 0,1
bits 15...0
Half-word 0,0
M1...16
Half-word 0,1
M17...32
M33 M34 M62 M63 M64
bit 0bit 1bit 2bit 30bit 31
bit 0bit 1bit 2bit 30bit 31
first word written into the CRYP_DIN register
second word written into the CRYP_DIN register
Byte 1,0Byte 1,1Byte 1,2Byte 1,3
bits 7...0
bits 7...0
bits 7...0bits 7...0
first word written into the CRYP_DIN register
second word written into the CRYP_DIN register
Byte 1,3Byte 1,2Byte 1,1Byte 1,0
M57...64M49...56
M41...48M33...40
(bit ordering within byte is unchanged)
Half-word 1,0
bits 15...0
Half-word 1,1
bits 15...0
first word written into the CRYP_DIN register
second word written into the CRYP_DIN register
Half-word 1,0
M33...48
Half-word 1,1
M49...64
IN FIFO
bit string
No swapping operation
DATATYPE = 00b
Word 0
bits 31...0
Word 0
M1...32
Word 1
bits 31...0
first word written into the CRYP_DIN register
second word written into the CRYP_DIN register
Word 1
M33...64
ai16075