Crypto++ 8.9
Free C++ class library of cryptographic schemes
|
XTS block cipher mode of operation. More...
#include <xts.h>
Public Types | |
typedef CipherModeFinalTemplate_CipherHolder< typename CIPHER::Encryption, XTS_Final< CIPHER > > | Encryption |
typedef CipherModeFinalTemplate_CipherHolder< typename CIPHER::Decryption, XTS_Final< CIPHER > > | Decryption |
Public Types inherited from SymmetricCipherDocumentation | |
typedef SymmetricCipher | Encryption |
implements the SymmetricCipher interface | |
typedef SymmetricCipher | Decryption |
implements the SymmetricCipher interface | |
XTS block cipher mode of operation.
CIPHER | BlockCipher derived class or type |
XTS mode is a wide block mode defined by IEEE P1619-2008. NIST SP-800-38E approves the mode for storage devices citing IEEE 1619-2007. IEEE 1619-2007 provides both a reference implementation and test vectors. The IEEE reference implementation fails to arrive at the expected result for some test vectors.
XTS is only defined for AES. The library can support wide block ciphers like Kaylna and Threefish since we know the polynomials. 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." To enable wide block cipher support define CRYPTOPP_XTS_WIDE_BLOCK_CIPHERS
to non-zero.
typedef CipherModeFinalTemplate_CipherHolder<typename CIPHER::Encryption, XTS_Final<CIPHER> > XTS< CIPHER >::Encryption |
typedef CipherModeFinalTemplate_CipherHolder<typename CIPHER::Decryption, XTS_Final<CIPHER> > XTS< CIPHER >::Decryption |