DiceLockXTSDigestedSectorBasedCheck, C++ program for Windows to verify DiceLock encryption cipher architecture with DiceLockXTSDigested class encrypting storage sector based
DiceLockXTSDigestedSectorBasedCheck is a C++ program to verify that DiceLockXTSDigested class implementing one of DiceLock different architectures is working as expected.
DiceLockXTSDigested class is the cryptographic architecture aimed to storage devices based on XTS operation mode (XEX-based tweaked-codebook mode with ciphertext stealing encryption algorithm) and providing same intrinsic characteristics of DiceLock cipher architecture.
DiceLockXTSDigested class is the class that implements DiceLock architecture with the following characteristics:
– storage devide sector length is any value multiple of 128 bits bigger than 512 bits,
– base encryption cipher/decipher is a block cipher working with symmetric key,
– any hash digest algorithm is used to generate message hash digest from plaintext to be encrypted,
– ciphertext plus ciphered hash digest of plaintext is checked for random number test properties,
– any function that is able to change original symmetric key with new values,
– bit random number tests that can verify that encrypted ciphertext is at random.
Current algorithm classes that can be used with DiceLockXTSDigested architecture are:
– as base encryption cipher/decipher:
– hash digest algorithms: Sha 1, Sha 224, Sha 256, Sha 384, Sha 512, Ripemd 128, Ripemd 160, Ripemd 256, Ripemd 320, Md 2, Md 4 and Md5,
– symmetric key changers: IncreaseKeyModifier_6_0_0_1 and DecreaseKeyModifier_6_0_0_1,
– random number tests: Frequency, Block Frequency, Cumulative Sum Forward, Cumulative Sum Reverse, Runs, Longest Run Of Ones, Rank, Universal, Approximate Entropy, Serial, Discrete Fourier Transform tests and random number test Suite with any or all previous enumerated random number tests.
Because DiceLockXTSDigested class can work on full length plaintext length or sector based length, there are different alternatives for encryption/decryption, we have split DiceLockXTSDigested class tests in two main C++ program tests:
– DiceLockXTSDigestedSectorBasedCheck C++ Source Code program applying DiceLockXTSDigested encryption/decryption on sector base,, and
– DiceLockXTSDigestedFullBasedCheck C++ Source Code program applying DiceLockXTSDigested encryption/decryption on full plaintext length basis,.
In this test we verify DiceLockXTSDigestedSectorBasedCheck C++ Source Code program encryption/decryption on device storage sector base with the configuration shown below.
DiceLockXTSDigested is able to work on device storage sector basis lengths. For these tests sector length can be in bytes = 512, 1024, 1536, 2048, 2560, 3072, 3584, 4096, 16384, 32768, (selected in a random basis),