DiceLockx 9.0.0.1 Linux
 Details
DiceLockx 9.0.0.1 is the shared object library for Linux that implements DiceLock cipher architecture.
DiceLock concept is:
(a) correctively randomisingencrypting plaintext sequence (X) with encryption key (K) and generating candidate randomisedencrypted text sequence (AP),
(b) verifying randomness of said candidate randomisedencrypted text sequence (AP) based on a predetermined randomness test and repeating said step (a) as many times as necessary until said candidate randomisedencrypted text sequence (AP) is at random, being supplied said candidate randomisedencrypted text sequence (AP) as randomisedencrypted text sequence (A) when said randomness test indicates that said candidate randomisedencrypted text sequence (AP) is random,
This key concept, which allows a lot of different optional constructions, has been implemented in DiceLockx 9.0.0.1 .so shared object library on six defined variants:
 DiceLockIndexed,
 DiceLockDigested,
 DiceLockIVIndexed,
 DiceLockIVDigested,
 DiceLockXTSIndexed, and
 DiceLockXTSDigested.
These DiceLock architectures allow to use DiceLock concept to generate encrypted text sequences which are at the same time at random.
DiceLock architecture encrypts plaintexts with encryption symmetric key generating such encryptedrandomized text sequences. Obviously, in order to recover the original plaintext from generated encryptedrandomized text sequences the same encryption symmetric key is used.
DiceLock implementations work with underlying known symmetric key encryption and security algorithms. Depending on such base encryption algorithms and the target of such encryption process, above six (#6#) individual architectures have been designed.
DiceLockx 9.0.0.1 .so currently implements the following encryption and security algorithms that can be used to implement DiceLock concept:
Block cipher operation modes  CBC (cipherblock chaining), CFB (cipher feedback), OFB (output feedback) and XTS (XEXbased tweakedcodebook mode with ciphertext stealing XTS block cipher operation mode algorithm) 
Encryption block ciphers  Advanced Encryption System (128, 192, 256), Camellia (128, 192, 256), Serpent (128, 192, 256), Twofish (128, 192, 256) and TDEA (192) 
Encryption strema ciphers  ARC 4, HC 128, HC 256, Rabbit, Salsa 20/20 128, Salsa 20/20 256, Sosemanuk 128 and Sosemanuk 256 
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 
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 
The relationship between DiceLock architectures and mentioned encryption and security algorithms can be found in DiceLockx 9.0.0.1 download page. All above shown encryption and security algorithms can be used within the different and appropiate DiceLock architectures and they can be used also as single and individual workable algorithms.
As it has been previously mentioned, DiceLock concept is to generate encryptedrandomized text sequences. One of the possible methods to produce such encryptedrandomized text sequences is to change the base symmetric encryption key until the goal is achieved (to perform decryption, appropriate reverse process is applied). So, encryption symmetric key modification has been implemented to achieve randomness .To perform such modifications, the following algorithms have been developed within DiceLockx 9.0.0.1 until now (new and individualized algorithms can be developed):
DiceLock cipher architecture 

DiceLockIndexed DiceLockIVIndexed DiceLockXTSIndexed 


DiceLockDigested DiceLockIVDigested DiceLockXTSDigested 

Export control
As DiceLockx 9.0.0.1 cipher download package contains strong cryptographic algorithms in executable and full C++ source code forms and due to current Export Policy applied in the European Community this package is only available to systems located within it for now.
Software
DiceLockx 9.0.0.1 download package contains libDiceLockCipherx.so shared object library and all precise files to use it. It can be used with any other program or library.
Any developed software must be assured that it works as expected. For this reason, quality assurance software must be developed to verify that all possible implementations are correct. DiceLock Security has developed the following programs to perform such verifications (base encryption and security software and DiceLock architectures):
Encryption and security algorithms  CheckDiceLockBaseAlgorithmsx  
Encryption key modifiers  CheckDiceLockKeyModifiersx  
DiceLockIndexed  CheckDiceLockIndexedx  
DiceLockDigested  CheckDiceLockDigestedx  
DiceLockIVIndexed 


DiceLockIVDigested 


DiceLockXTSIndexed 


DiceLockXTSDigested 

All previous quality assurance software downloads contain libDiceLockCipherx.so library (with source code) to perform such verifications.
All quality programs work with preestablished input data and an expected output that must be produced. For base encryption and security algorithms, as well as for symmetric encryption key modifers, such input and output data has been harcoded in C++ source code. Due to the big amount of combinations that can be selected to instantiate one single DiceLock instance, for DiceLock cipher architectures the approach that has been selected is to generate known test vector files, containing the input and expected output data, which are input files for those quality programs.
With such known test vector files, these quality programs generate output files that allows to verify easily that all executed tests have been done correctly.
These known test vector files input response test vector files can be downloaded from different sources depending on verification subject:  
DiceLock class  Response test vector files 
DiceLockIndexed  DiceLockIndexed test vectors 
DiceLockDigested  DiceLockDigested test vectors 
DiceLockIVIndexed  DiceLockIVIndexed test vectors 
DiceLockIVDigested  DiceLockIVDigested test vectors 
DiceLockXTSIndexed  DiceLockXTSIndexed test vectors 
DiceLockXTSDigested  DiceLockXTSDigested test vectors 
Above links leads you to known test vector files pages with a description of test targets, execution options, test vector files naming conventions and explanations about how to perform quick output verification. If you prefer to download directly all known test vector files get to Known test vectors where they are shown as raw list.
All Linux software packages contain executable, C++ source code and instructions to generate Release and Debug versions.
A special feature of DiceLockx 9.0.0.1 is the ability to work with DefaultCryptoRandomStream and PhysicalCryptoRandomStream memory handler objects at user will. DefaultCryptoRandomStream objects handle memory data in the usual way, they can be swapped to storage file. While PhysicalCryptoRandomStream objects handle memory data that it's stored on memory pages locked in RAM. To use PhysicalCryptoRandomStream objects Linux operating system must be properly configured and programs executed as it's pointed out in using physical memory in Linux.
If before downloading it you prefer to take a look to DiceLock cipher C++ library source code, you can access base used C++ source code section where all relevant header and object C++ source code files are shown.