February 2017
« Nov    

Recent Posts

XDiceLock for Apple Mac OS X, DiscreteFourierTransformTest class (Discrete Fourier Transform random number test) verified with PhysicalCryptoRandomStream class (memory pages kept in RAM, not swapped to file) and NIST SP 800-22rev1a “data.e” file

XDiceLock for Apple Mac OS X 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 (AES 128, AES 192 and AES 256) with different block cipher operation modes and stream ciphers as HC 128 and HC 256 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 and Ripemd 320.

As the new version XDiceLock for Apple Mac OS X is developed, all individual components must be tested and verified, and in this article we verify Discrete Fourier Transform class (computing Discrete Fourier Transform random number test) with NIST FIPS 800-22rev1a “data.e” test file.

At the bottom of the post you can find C++ source code being used to perform this test.

Verified XDiceLock for Apple Mac OS X

Verification components:

– Random number test: DiscreteFourierTransformTest class
– NIST FIPS 800-22rev1a test file: data.e
– 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 mlock that uses physical nonpaged memory, preventing that memory from being paged to the swap area, so memory is not swapped to hard disk. The pages are guaranteed to stay in RAM until later PhysicalCryptoRansomStream object is deleted.
In order to use PhysicalCryptoRandomStream class, the process must be privileged (CAP_IPC_LOCK) in order to lock memory, and since Linux 2.6.9, no limits are placed on the amount of memory that a privileged process can lock and the RLIMIT_MEMLOCK soft resource defines the limit on how much memory an unprivileged process may lock.

Random test performed with alpha set to 0.01, that is, confidence level is 99.00 %.


NIST data.e file

Once computed we’ve got the following result:

Expected PValue: 0.847187
Computed PValue: 0.847187 OK

XDiceLock for Apple Mac OS X C++ source code used in this test:

XDiceLock for Apple Mac OS X


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 Self-corrector randomisation-encryption and method, european patent EP1182777 granted 08/21/2003 and US patent US7508945 granted 03/24/2009.

Leave a Reply