Joomla! Joomla!
DiceLock for Windows

DiceLock cipher architecture has been implemented in DiceLock 9.0.0.1 dynamic-link library for Windows.

In order to check that it has been correctly implemented, C++ test driver programs have been developed allowing everybody to perform such verification.

DiceLock verification programs focus on the six variants that implement its concept:

  • DiceLockIndexed class,
  • DiceLockDigested class,
  • DiceLockIVIndexed class,
  • DiceLockIVDigested class,
  • DiceLockXTSIndexed class, and
  • DiceLockXTSDigested class.

As well as with proper DiceLock cipher architecture, an important point of DiceLock development is to verify that the implementation of underlying well known and tested base individual encryption and security algorithms is correctly done. An another important individual aspect of DiceLock is the use of encryption symmetric key modifiers to achive encrypted text that it's at the same time at random, and we must be sure that its implementation is correctly done as well.

As these programs have been developed with Visual Studio 2013 Express for Windows Desktop using the option "Visual Studio 2013 - Windows XP (v120_xp)" you may need to install previously Visual C++ 2013 Redistributable Package. A special feature of DiceLock 9.0.0.1 is the ability to work with data that it's stored on memory pages locked in RAM, to use such feature Windows operating system must be configured and programs executed as it's pointed out in using physical memory.

DiceLock 9.0.0.1 implementation verification is composed of two differentiated test groups:

Tests of individual base components: Base encryption and security algorithm implementation verification
DiceLock proper tests: Proper DiceLock cipher architecture implementation verification

Base encryption and security algorithm implementation verification

Before proceeding with DiceLock cipher architecture verification, underlying base individual encryption and security algorithms must be verified. In this section you can find the programs to verify that base individual encryption and security algorithms have been correctly implemented. As an individual element of DiceLock cipher architecture, encryption symmetric key modification algorithms are also verfied with their own test driver program. This verification is based on known test vectors which are hardcoded in C++ source code program.
 
Validation program:
CheckDiceLockBaseAlgorithms
Test vectors description:
Base security algorithm tests
Test vectors:
harcoded
  Windows CheckDiceLockBaseAlgorithms addressing implementation verification of:
Random number tests Frequency, Block Frequency, Cumulative Sum Forward, Cumulative Sum Reverse, Runs, Longest Run of Ones, Rank, Universal, Approximate Entropy, Serial and Discrete Fourier Transform and a Suite grouping all them.
Hash digest algorithms Sha 1, Sha 224, Sha 256, Sha 384, Sha 512, Sha 512/224, Sha 512/256, Ripemd 128, Ripemd 160, Ripemd 256, Ripemd 320, Md 2, Md 4 and Md 5.
Block cipher algorithms AES 128, AES 192, AES 256, Camellia 128, Camellia 192, Camellia 256, Serpent 128, Serpent 192, Serpent 256, Twofish 128, Twofish 192, Twofish 256 and TDEA.
Crypto pad systems ANSI X.923, ISO/IEC 9797-1 or PKCS7
Block cipher operation mode algorithms CBC Mode - Cipher-block chaining, CFB Mode - Cipher feedback, OFB Mode - Output feedback and XTS Mode - XEX-based tweaked-codebook mode with ciphertext stealing.
Stream ciphers that work with initialization vector HC 128, HC 256, Rabbit, Salsa 20/20 128, Salsa 20/20 256, Sosemanuk, Sosemanuk 128 and Sosemanuk25.
Stream ciphers that work with NO initialization vector ARC4 (alleged RC 4 stream cipher) and ARC4 (alleged RC 4 stream cipher) discarding intial bits.
 
Validation program:
CheckDiceLockKeyModifiers
Test vectors description:
Symmetric key modifier tests
Test vectors:
harcoded
  Windows CheckDiceLockKeyModifiers addressing the use of symmetric encryption key modifiers to modify the encryption symmetric key to achieve encrypted-randomized sequences, if it is necessary, that is used to perform the encryption and decryption.
 

Proper DiceLock cipher architecture implementation verification

DiceLock cipher architecture allows a great amount of different configurations which can make hard to set an individual test driver program grouping all them together. With the focus in allowing to verify DiceLock in a manageable way, DiceLock verification has been splitted in 14 (fourteen) individual programs. These programs are grouped by first level of DiceLock alternative implementation.
All the programs work with Known Answer Test files which are input data to them and can be found in DiceLock Response Test Vectors raw list - Full_packed_test_vectors_by_program. These test vectors are also input test files for Linux version of these programs and any porting that can be done.
 
Validation program:
CheckDiceLockIndexed
Test vectors description:
DiceLockIndexed test vectors
Test vectors:
CheckDiceLockIndexed-9.0.0.1-ResponseTests
  Windows CheckDiceLockIndexed addressing the use of DiceLockIndexed class with any combination of usable stream ciphers, by index key modifiers and memory managers.
 
Validation program:
CheckDiceLockDigested
Test vectors description:
DiceLockDigested test vectors
Test vectors:
CheckDiceLockDigested-9.0.0.1-ResponseTests
  Windows CheckDiceLockDigested addressing the use of DiceLockDigested class with any combination of usable stream ciphers, hash digest algorithms, key modifiers and memory managers.
 
Validation program:
CheckDiceLockIVIndexed-CBC
Test vectors description:
DiceLockIVIndexed with CBC operation mode
Test vectors:
CheckDiceLockIVIndexed-CBC-9.0.0.1-ResponseTests
  Windows CheckDiceLockIVIndexed-CBC addressing the use of DiceLockIVIndexed class making use of CBC_Mode operation mode (CBC - cipher block chaining) with any combination of usable block ciphers, by index key modifiers and memory managers.
 
Validation program:
CheckDiceLockIVIndexed-CFB
Test vectors description:
DiceLockIVIndexed with CFB operation mode
Test vectors:
CheckDiceLockIVIndexed-CFB-9.0.0.1-ResponseTests
  Windows CheckDiceLockIVIndexed-CFB addressing the use of DiceLockIVIndexed class making use of CFB_Mode operation mode (CFB - cipher feedback) with any combination of usable block ciphers, by index key modifiers and memory managers.
 
Validation program:
CheckDiceLockIVIndexed-OFB
Test vectors description:
DiceLockIVIndexed with OFB operation mode
Test vectors:
CheckDiceLockIVIndexed-OFB-9.0.0.1-ResponseTests
  Windows CheckDiceLockIVIndexed-OFB addressing the use of DiceLockIVIndexed class making use of OFB_Mode operation mode (OFB - output feedback) with any combination of usable block ciphers, by index key modifiers and memory managers.
 
Validation program:
CheckDiceLockIVIndexed-noOM
Test vectors description:
DiceLockIVIndexed with no operation mode
Test vectors:
CheckDiceLockIVIndexed-noOM-9.0.0.1-ResponseTests
  Windows CheckDiceLockIVIndexed-noOM addressing the use of DiceLockIVIndexed class with any combination of usable stream ciphers that make use of initialization vector, by index key modifiers and memory managers.
 
Validation program:
CheckDiceLockIVDigested-CBC
Test vectors description:
DiceLockIVDigested with CBC operation mode
Test vectors:
CheckDiceLockIVDigested-CBC-9.0.0.1-ResponseTests
  Windows CheckDiceLockIVDigested-CBC addressing the use of DiceLockIVDigested class making use of CBC_Mode operation mode (CBC - cipher block chaining) with any combination of usable block ciphers, hash digest algorithms, key modifiers and memory managers.
 
Validation program:
CheckDiceLockIVDigested-CFB
Test vectors description:
DiceLockIVDigested with CFB operation mode
Test vectors:
CheckDiceLockIVDigested-CFB-9.0.0.1-ResponseTests
  Windows CheckDiceLockIVDigested-CFB addressing the use of DiceLockIVDigested class making use of CFB_Mode operation mode (CFB - cipher feedback) with any combination of usable block ciphers, hash digest algorithms, key modifiers and memory managers.
 
Validation program:
CheckDiceLockIVDigested-OFB
Test vectors description:
DiceLockIVDigested with OFB operation mode
Test vectors:
CheckDiceLockIVDigested-OFB-9.0.0.1-ResponseTests
  Windows CheckDiceLockIVDigested-OFB addressing the use of DiceLockIVDigested class making use of OFB_Mode operation mode (OFB - cipher feedback) with any combination of usable block ciphers, hash digest algorithms, key modifiers and memory managers.
 
Validation program:
CheckDiceLockIVDigested-noOM
Test vectors description:
DiceLockIVDigested with no operation mode
Test vectors:
CheckDiceLockIVDigested-noOM-9.0.0.1-ResponseTests
  Windows CheckDiceLockIVDigested-noOM addressing the use of DiceLockIVDigested class with any combination of usable stream ciphers that make use of initialization vector, hash digest algorithms, key modifiers and memory managers.
 
Validation program:
CheckDiceLockXTSIndexedFull
Test vectors description:
DiceLockXTSIndexed over full text
Test vectors:
CheckDiceLockXTSIndexedFull-9.0.0.1-ResponseTests
  Windows CheckDiceLockXTSIndexedFull addressing the use of DiceLockXTSIndexed class making use of XTS_Mode operation mode (XEX-based tweaked-codebook mode with ciphertext stealing XTS block cipher operation mode algorithm) with any combination of usable block ciphers, hash digest algorithms, by index key modifiers and memory managers.
 
Validation program:
CheckDiceLockXTSIndexedSector
Test vectors description:
DiceLockXTSIndexed sector based
Test vectors:
CheckDiceLockXTSIndexedSector-9.0.0.1-ResponseTests
  Windows CheckDiceLockXTSIndexedSector addressing the use of DiceLockXTSIndexed class making use of XTS_Mode operation mode (XEX-based tweaked-codebook mode with ciphertext stealing XTS block cipher operation mode algorithm) with any combination of usable block ciphers, hash digest algorithms, by index key modifiers and memory managers.
 
Validation program:
CheckDiceLockXTSDigestedFull
Test vectors description:
DiceLockXTSDigested over full text
Test vectors:
CheckDiceLockXTSDigestedFull-9.0.0.1-ResponseTests
  Windows CheckDiceLockXTSDigestedFull addressing the use of DiceLockXTSDigested class making use of XTS_Mode operation mode (XEX-based tweaked-codebook mode with ciphertext stealing XTS block cipher operation mode algorithm) with any combination of usable block ciphers, hash digest algorithms, key modifiers and memory managers.
 
Validation program:
CheckDiceLockXTSDigestedSector
Test vectors description:
DiceLockXTSDigested sector based
Test vectors:
CheckDiceLockXTSDigestedSector-9.0.0.1-ResponseTests
  Windows CheckDiceLockXTSDigestedSector addressing the use of DiceLockXTSDigested class making use of XTS_Mode operation mode (XEX-based tweaked-codebook mode with ciphertext stealing XTS block cipher operation mode algorithm) with any combination of usable block ciphers, hash digest algorithms, key modifiers and memory managers.