Joomla! Joomla!

DiceLock cipher architecture in order to operate as it should and to achieve its purposes implements and can make use of following encryption and security algorithms:

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.

Test driver programs have been developed for Windows and Linux operating systems to verify that DiceLock cipher architecture has been implemented correctly and works as expected. These driver programs can be found at:

DiceLock 9.0.0.1 Windows - C++ Software Test Drivers   Set of Windows programs to verify that DiceLock cipher architecture implementation works as expected with common Known Test Vectors.
DiceLock 9.0.0.1 Linux - C++ Software Test Drivers   Set of Linux programs to verify that DiceLock cipher architecture implementation works as expected with common Known Test Vectors.

As DiceLock depends on all previously mentioned encryption and security algorithms, the first step that must be performed is to check that all those algorithms are correctly implemented and perform as expected.

Test driver programs to verify base security and encryption algorithms implemented and used by DiceLock cipher architecture are:
CheckDiceLockBaseAlgorithms for Windows   Windows program to verify DiceLock cipher implementation of base security and cryptographic algorithms used.
CheckDiceLockBaseAlgorithms-x for Linux   Linux program to verify DiceLock cipher implementation of base security and cryptographic algorithms used.

Unlike test driver programs addressed to verify proper DiceLock cipher architecture which rely on test vector input files, base algorithm verification does not rely in this kind of input data.

Base algorithm verification is performed over a limited set of input data and expected results for each verified algorithm. CheckDiceLockBaseAlgorithms and CheckDiceLockBaseAlgorithms-x implements base algorithm verification based on hardcoded test data (test data is inserted in C++ source code program).

The expected results that will be returned for each one of evaluated hash digest algorithm tests are those specified individually in the following pages:

 
Random number tests
Hash digest algorithm tests
Block cipher tests
Crypto text padding tests
Block cipher Operation Mode tests
Stream cipher with IV tests
Stream cipher with no IV tests
 

CheckDiceLockBaseAlgorithms and CheckDiceLockBaseAlgorithms-x will generate corresponding output test files in './OutputTests' folder within the folder where specific verification driver program is located. These output test vector files allow to verify at any moment that the corresponding algorithm has generated the correct operations.

An 'OK' string is inserted following each individual test if harcoded expected result matches computed result, and a '@@@-ERROR-@@@' string otherwise.

Each output test vector file will be generated twice if the relevant options are selected to execute the two kinds of data memory that may be used (memory that can be swapped to file - DefaultCryptoRandomStream - or memory locked in RAM - PhysicalCryptoRandomStream -).