Joomla! Joomla!
DiceLock-x for Linux

DiceLock cipher architecture has been implemented in DiceLock-x 9.0.0.1 shared object library for Linux.

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.

A special feature of DiceLock-x 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 Linux operating system may need configuration and programs executed as it's pointed out in using physical memory.

DiceLock-x 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-x
Test vectors description:
Base security algorithm tests
Test vectors:
harcoded
  Linux CheckDiceLockBaseAlgorithms-x 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-x
Test vectors description:
Symmetric key modifier tests
Test vectors:
harcoded
  Linux CheckDiceLockKeyModifiers-x 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 Windows version of these programs and any porting that can be done.
 
Validation program:
CheckDiceLockIndexed-x
Test vectors description:
DiceLockIndexed test vectors
Test vectors:
CheckDiceLockIndexed-9.0.0.1-ResponseTests
  Linux CheckDiceLockIndexed-x addressing the use of DiceLockIndexed class with any combination of usable stream ciphers, by index key modifiers and memory managers.
 
Validation program:
CheckDiceLockDigested-x
Test vectors description:
DiceLockDigested test vectors
Test vectors:
CheckDiceLockDigested-9.0.0.1-ResponseTests
  Linux CheckDiceLockDigested-x 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-x
Test vectors description:
DiceLockIVIndexed with CBC operation mode
Test vectors:
CheckDiceLockIVIndexed-CBC-9.0.0.1-ResponseTests
  Linux CheckDiceLockIVIndexed-CBC-x 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-x
Test vectors description:
DiceLockIVIndexed with CFB operation mode
Test vectors:
CheckDiceLockIVIndexed-CFB-9.0.0.1-ResponseTests
  Linux CheckDiceLockIVIndexed-CFB-x 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-x
Test vectors description:
DiceLockIVIndexed with OFB operation mode
Test vectors:
CheckDiceLockIVIndexed-OFB-9.0.0.1-ResponseTests
  Linux CheckDiceLockIVIndexed-OFB-x 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-x
Test vectors description:
DiceLockIVIndexed with no operation mode
Test vectors:
CheckDiceLockIVIndexed-noOM-9.0.0.1-ResponseTests
  Linux CheckDiceLockIVIndexed-noOM-x 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-x
Test vectors description:
DiceLockIVDigested with CBC operation mode
Test vectors:
CheckDiceLockIVDigested-CBC-9.0.0.1-ResponseTests
  Linux CheckDiceLockIVDigested-CBC-x 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-x
Test vectors description:
DiceLockIVDigested with CFB operation mode
Test vectors:
CheckDiceLockIVDigested-CFB-9.0.0.1-ResponseTests
  Linux CheckDiceLockIVDigested-CFB-x 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-x
Test vectors description:
DiceLockIVDigested with OFB operation mode
Test vectors:
CheckDiceLockIVDigested-OFB-9.0.0.1-ResponseTests
  Linux CheckDiceLockIVDigested-OFB-x 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-x
Test vectors description:
DiceLockIVDigested with no operation mode
Test vectors:
CheckDiceLockIVDigested-noOM-9.0.0.1-ResponseTests
  Linux CheckDiceLockIVDigested-noOM-x 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-x
Test vectors description:
DiceLockXTSIndexed over full text
Test vectors:
CheckDiceLockXTSIndexedFull-9.0.0.1-ResponseTests
  Linux CheckDiceLockXTSIndexedFull-x 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-x
Test vectors description:
DiceLockXTSIndexed sector based
Test vectors:
CheckDiceLockXTSIndexedSector-9.0.0.1-ResponseTests
  Linux CheckDiceLockXTSIndexedSector-x 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-x
Test vectors description:
DiceLockXTSDigested over full text
Test vectors:
CheckDiceLockXTSDigestedFull-9.0.0.1-ResponseTests
  Linux CheckDiceLockXTSDigestedFull-x 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-x
Test vectors description:
DiceLockXTSDigested sector based
Test vectors:
CheckDiceLockXTSDigestedSector-9.0.0.1-ResponseTests
  Linux CheckDiceLockXTSDigestedSector-x 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.