DiceLockx 8.0.0.1 for Linux is the cryptographic architecture that ensures that ciphertext it’s not just encrypted but also randomized.
DiceLock cipher architecture presents two main configurations:
– Dicelock Digested, and
– Dicelock Indexed.
DiceLock encryption architecture improves symmetric ciphers like block cipher as Advanced Encryption Standard, Camellia, Serpent, Twofish (128, 192 and 256 bit key lengths) with different block cipher operation modes (like CBC, CFB, OFB and XTS) and stream ciphers as HC 128, HC 256, Rabbit, Salsa 20/20, Sosemanuk and others.
DiceLock (both configurations) makes use of the following random number tests: Frequency Test, Block Frequency Test, Cumulative Sum Forward Test, Cumulative Sum Reverse Test, Runs Test, Longest Run Of Ones Test, Rank Test, Universal Test, Approximate Entropy Test, Serial Test and Discrete Fourier Transform Test.
Additionally DiceLock Digested configuration makes use currently of following hash digest algorithms: Sha 1, Sha 224, Sha 256, Sha 384, Sha 512, Ripemd 128, Ripemd 160, Ripemd 256, Ripemd 320, Md2, Md4 and Md5.
Previous version DiceLockx 7.0.0.1 for Linux incorporated XTSAES (XEXbased tweakedcodebook mode with ciphertext stealing XTS block cipher operation mode algorithm) for Advanced Encryption Algorithm (AES) for 128 and 256 bit symmetric keys.
New version DiceLockx 8.0.0.1 for Linux has made significant improvements:
 added block encryption ciphers like Camellia, Serpent and Twofish with all accepted key lengths of 128, 192 and 256 bits,
 added stream ciphers like Rabbit, Salsa 20/20 with 128 and 256 bit key lengths, and general Sosemanuk, as well as Sosemanuk with 128 and 256 bit key lengths,
 added old hash algorithms like Message Digest 2, Message Digest 4 and Message Digest 5,
 modified DiceLockIndexed and DiceLockDigested classes to be used with encryption ciphers that does not make use of initialization vector (IV),
 created DiceLockIVDigested and DiceLockIVIndexed classes to be used with encryption ciphers that makes use of initialization vector (IV),
 extended DiceLockXTSDigested and DiceLockXTSIndexed classes to be use with newly added Camellia, Serpent and Twofish block ciphers and all three key lengths (128, 192 and 256 bit key lengths),
 added old encryption ciphers like DEA (Data Encryption Algorithm), TDEA (Triple Data Encryption Algorithm), and ARC4 (alleged RC4) for compatibillity reasons.
As the new version DiceLockx 8.0.0.1 for Linux is developed, all individual components must be tested and verified, and in this article we verify ARC 4 Discarding class (computing ARC 4 Discarding stream cipher algorithm).
At the bottom of the post you can find C++ source code being used to perform this test.
Verified DiceLockx 8.0.0.1 for Linux
Verification components:
– Stream encryption cipher algorithm: ARC4_Discarding class
– Discarded initial bytes: 1008
– Test set: IETF RFC 6229, 80 bit key, set 1
– Bit stream memory management: PhysicalCryptoRandomStream class (memory pages kept in RAM, not swapped to file)
Memory characteristic used in this test:
PhysicalCryptoRandomStream class makes use of AWE (Address Windowing Extensions) that uses physical nonpaged memory, so memory is not swapped to hard disk.
In order to use PhysicalCryptoRandomStream class, which works with AWE it requires that “Lock Pages In Memory” Windows security setting policy permission must be granted in “Local Policy Settings” to the account executing the program, and in some versions the program must have “Run this program as an administrator” “Privilege Level” option checked.

Input plaintext: 4112 zero bytes 


Key: 0102030405060708090a 

Once computed we’ve got the following results:


Byte offset: 0 

Expected

a64f70af88ae56b6f87581c0e23e6b08 

Computed

a64f70af88ae56b6f87581c0e23e6b08 


Result: OK






Byte offset: 16 

Expected

f449031de312814ec6f319291f4a0516 

Computed

f449031de312814ec6f319291f4a0516 


Result: OK






Byte offset: 512 

Expected

bdae85924b3cb1d0a2e33a30c6d79599 

Computed

bdae85924b3cb1d0a2e33a30c6d79599 


Result: OK






Byte offset: 528 

Expected

8a0feddbac865a09bcd127fb562ed60a 

Computed

8a0feddbac865a09bcd127fb562ed60a 


Result: OK






Byte offset: 1024 

Expected

b55a0a5b51a12a8be34899c3e047511a 

Computed

b55a0a5b51a12a8be34899c3e047511a 


Result: OK






Byte offset: 1040 

Expected

d9a09cea3ce75fe39698070317a71339 

Computed

d9a09cea3ce75fe39698070317a71339 


Result: OK






Byte offset: 2048 

Expected

552225ed1177f44584ac8cfa6c4eb5fc 

Computed

552225ed1177f44584ac8cfa6c4eb5fc 


Result: OK






Byte offset: 2064 

Expected

7e82cbabfc95381b080998442129c2f8 

Computed

7e82cbabfc95381b080998442129c2f8 


Result: OK






Byte offset: 3072 

Expected

1f135ed14ce60a91369d2322bef25e3c 

Computed

1f135ed14ce60a91369d2322bef25e3c 


Result: OK






Byte offset: 3088 

Expected

08b6be45124a43e2eb77953f84dc8553 

Computed

08b6be45124a43e2eb77953f84dc8553 


Result: OK




DECIPHERING

Checking deciphered text with input plaintext: OK


DiceLockx 8.0.0.1 for Linux C++ source code used in this test:
– DiceLockx 8.0.0.1 for Linux
– DiceLockCipher.h
– cryptoRandomStreams.h
– baseCryptoRandomStream.h
– baseCryptoRandomStream.cpp
– physicalCryptoRandomStream.h
– physicalCryptoRandomStream.cpp
– symmetricCiphers.h
– baseSymmetricCipher.h
– baseSymmetricCipher.cpp
– symmetricStreamers.h
– symmetricStreamerSpecialTypes.h
– baseSymmetricStreamer.h
– baseSymmetricStreamer.cpp
– streamCiphers.h
– baseStreamCipher.h
– baseStreamCipher.cpp
– ARC4.h
– ARC4.cpp
– ARC4_Discarding.h
– ARC4_Discarding.cpp
So, DiceLock cipher test and analysis can go on …
DiceLock is a trademark or registered trademark of his owner where applies. DiceLock research is the research to implement Selfcorrector randomisationencryption and method, european patent EP1182777 granted 08/21/2003 and US patent US7508945 granted 03/24/2009.
Leave a Reply
You must be logged in to post a comment.