Joomla! Joomla!
DiceLock is an architecture for cryptographic protection of data making use of well known block and stream symmetric key ciphers. It ensures that the cipher text is not only encrypted, it's randomized, there are no hidden patterns on it.
Block (making use of block cipher operation modes like CBC, CFB or OFB) and stream cipher generate good random ciphertexts, but the user is not sure that it is at random. With DiceLock the user is assured that the ciphertext is at random and he is able to check it.
DiceLock architectures
DiceLock Digested
DiceLock Indexed

Encryption architecture

The basic architecture of DiceLock cipher is as follows:

P = Plaintext to be encrypted
K = encryption Key
SCRE = Self-Corrector Randomizer-Encrypter algorithm
CC = Candidate Ciphertext
RNTS = Random Number Test Suite
S = reencrypt Signal
RC = Randomized Ciphertext


Self-Corrector Randomizer-Encrypter algorithm makes use of well known block ciphers (working with CBC, CFB or OFB operation mode) like AES 1298, AES 192 and AES 256 and stream ciphers like HC 128 and HC 256.

SCRE encrypts the plaintext sequence with the above mentioned algorithms. If RNTS signals (S, reencrypt Signal) that the encrypted text sequence is not at random SCRE is able to change the key (for example) and reencrypts the plaintext sequence with the new key to generate a new candidate ciphertext (CC, Candidate Ciphertext).

To get randomized-encrypted text sequences maybe a change on input data has been performed, thus on decryption the same change must be applied. There exist different ways to accomplish it and it implies that SCRE can get different implementations.


Random Number Test Suite is a suite of random number tests. It can implement NIST's FIPS 800-22 rev1a titled "A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications" random number tests.

Rnadom number test candidcates to be implemented are 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.

SCRE & RNTS definitions

These elements correspond to the following definitions specified in patent document:

SCRE = Self-Corrector Randomizer-Encrypter algorithm corrective randomising-encrypting means for correctively randomising-encrypting said plaintext sequence (X) with said encryption key (K) generating a candidate randomised-encrypted text sequence (AP), and for generating on the basis of a randomness verification result (T) a new candidate randomised-encrypted text sequence (AP),
RNTS = Random Number Test Suite randomness verifying means (603) for verifying randomness of said candidate randomised-encrypted text sequence (AP) based on a predetermined randomness test and supplying said randomness verification result (T) in order to generate said new candidate randomised-encrypted text sequence (AP), and supplying said candidate randomised-encrypted text sequence (AP) as randomised-encrypted text sequence (A) if said randomness test indicates that said candidate randomised-encrypted text sequence (AP) is random,

Decryption architecture

As has been previously explained, SCRE can be implemented in different ways in order to point out when a change in the key (for example) has been performed and the same change must be done on decryption to get the correct plaintext.

Because of this decryption architecture depends on the specific SCRE architecture.

Two main optional architectures can be processed

- DiceLock Digested, where plaintext and hash digest of the plaintext are encrypted for encryption until they are randomized, and

- DiceLock Indexed, where a decryption index and the paintext are encrypted until they are randomized.