Modes of Operation

Modes of Operation

The mode of operation used by TrueCrypt for encrypted partitions, drives, and virtual volumes is XTS.

XTS mode is in fact XEX mode [12], which was designed by Phillip Rogaway in 2003, with a minor modification (XEX mode uses a single key for two different purposes, whereas XTS mode uses two independent keys). XTS mode was approved as the IEEE 1619 standard for cryptographic protection of data on block-oriented storage devices in December 2007.

Description of XTS mode:

Ci = EK1(Pi ^ (EK2(n) Multiplication ai)) ^ (EK2(n) Multiplication ai)

Where:

K1
is the encryption key

K2
is the secondary key

i
is the cipher block index within a data unit; for the first cipher block within a data unit, i = 0

n
is the data unit index within the scope of K1; for the first data unit, n = 0

a
is a primitive element of Galois Field (2128) that corresponds to polynomial x (i.e., 2)

Multiplication
denotes multiplication of two polynomials over the binary field GF(2) modulo x128+x7+x2+x+1

The size of each data unit is always 512 bytes (regardless of the sector size).

For further information pertaining to XTS mode, see e.g. [12].