Crypto++
8.6
Free C++ class library of cryptographic schemes

Classes for XTS block cipher mode of operation. More...
Go to the source code of this file.
Classes  
class  XTS_ModeBase 
XTS block cipher mode of operation default implementation. More...  
class  XTS_Final< CIPHER > 
XTS block cipher mode of operation implementation. More...  
struct  XTS< CIPHER > 
XTS block cipher mode of operation. More...  
Macros  
#define  CRYPTOPP_XTS_WIDE_BLOCK_CIPHERS 0 
Enable XTS for wide block ciphers. More...  
#define  XTS_Mode XTS 
Classes for XTS block cipher mode of operation.
XTS mode is a wide block mode defined by IEEE P16192008. NIST SP80038E approves the mode for storage devices citing IEEE 16192007. IEEE 16192007 provides both a reference implementation and test vectors. The IEEE reference implementation fails to arrive at the expected result for some test vectors.
Definition in file xts.h.
#define CRYPTOPP_XTS_WIDE_BLOCK_CIPHERS 0 
Enable XTS for wide block ciphers.
XTS is only defined for AES. The library can support wide block ciphers like Kaylna and Threefish since we know the polynomials. To enable wide block ciphers define CRYPTOPP_XTS_WIDE_BLOCK_CIPHERS
to nonzero. Note this is a library compile time define.
There is risk involved with using XTS with wider block ciphers. According to Phillip Rogaway, "The narrow width of the underlying PRP and the poor treatment of fractional final blocks are problems."