XTS-AES

The Advanced Encryption Standard (AES) is a Symmetric Block Cipher. AES comprises three block ciphers, AES-128, AES-192 and AES-256. Each cipher encrypts and decrypts data in blocks of 128 bits. When more than 128 bits are processed the method used is known as a mode of operation and there are different modes for different purposes such as ECB, CBC, OFB, CFB, CTR, and XTS. The Cipher Feedback (CFB) mode, which is similar to CBC, makes a block cipher into a self-synchronising Stream Cipher. The XEX mode (XOR-Encrypt-XOR) is a tweakable encryption mode created by Rogaway that offers efficient processing of consecutive blocks within one data unit.

XTS builds upon XEX mode with a method of extending input data strings called ciphertext stealing. Whilst XEX can only encrypt sequences of complete blocks, the data for XTS may also consist of one or more complete blocks followed by a single, non-empty partial block. This is not suitable for encrypting data in transit but ideal for encrypted storage devices that have fixed size disk sectors. Apple’s new file system (APFS) uses XTS-AES or CBC-AES, depending on hardware. It is also used in Apple FileVault 2, TrueCrypt and VeraCrypt. The full name for XTS-AES is XOR-Encrypt-XOR Tweakable Block Cipher with Ciphertext Stealing Advanced Encryption Standard.