Core3DES
Contents
General Description
The Core3DES macro implements the Triple Data
Encryption Standard (3DES or Triple DES), which provides
a means of securing data. The Triple DES algorithm is
described in the Federal Information Processing
Standards (FIPS) Publication (PUB) 46-3, and is an
extension of the DES (Data Encryption Standard)
algorithm (Figure 1) and also described in FIPS PUB 46-3.
General Description .................................................... 2
Core3DES Device Requirements ................................ 4
Core3DES Verification ................................................ 5
I/O Signal Descriptions ............................................... 5
Core3DES Operation .................................................. 6
Encryption ................................................................... 7
Decryption .................................................................. 8
Pause/Resume ............................................................. 9
Clear/Abort ............................................................... 10
Modes of Operation ................................................. 10
Ordering Information .............................................. 11
Export Restrictions .................................................... 11
List of Changes ......................................................... 12
Datasheet Categories ............................................... 12
The Triple DES algorithm takes as inputs 64 bits of
plaintext data and 192 bits of a cipher key, and after 48
cycles, produces a 64-bit ciphered version of the original
plaintext data as output.1 The entire 168-bit cipher key
consists of three sub-keys, denoted as K1, K2, and K3,
representing the left third (MSB), the middle third, and
the right third (LSB) of the cipher key, respectively. During
the 48 cycles, or iterations, of the algorithm, the data bits
are subjected to permutation and addition functions,
which consist of key schedules, calculated by rotations and
permutations applied to the original 168-bit cipher key.
Left and Right
R0
L0
+
Data Halves after
Initial Permutation
K1
Key Schedule 1
f
Input
Key
Initial
Permutation
Left and Right
Data Halves after
Round 1
R1 = L0
f(R0,K1)
L1 = R0
K2
Key Schedule 2
16 Rounds
of Computation
+
f
Inverse Initial
Permutation
Output
Left and Right
Data Halves
R2 = L1
f(R1,K2)
L2 = R1
after Round 2
R16 = L15
f(R15,K16)
L16 = R15
Left and Right
Data Halves
after Round 16
Figure 1 • DES Algorithm
1. Only 168 of the 192 bits of the key are used in the calculations, as the least significant bit of each byte of the cipher key is
used to provide odd parity for the key bytes.
2
v5.0