DiceLock architecture
 Details
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. 

Encryption architecture
The basic architecture ofÂ DiceLock cipher is as follows:
Where: P = Plaintext to be encrypted K = encryption Key SCRE = SelfCorrector RandomizerEncrypter algorithm CC = Candidate Ciphertext RNTS = Random Number Test Suite S = reencrypt Signal RC = Randomized Ciphertext 
SCRE
SelfCorrector RandomizerEncrypter 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 randomizedencrypted 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.
RNTS
Random Number Test Suite is a suite of random number tests. It can implement NIST's FIPS 80022 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 = SelfCorrector RandomizerEncrypter algorithm  corrective randomisingencrypting means for correctively randomisingencrypting said plaintext sequence (X) with said encryption key (K) generating a candidate randomisedencrypted text sequence (AP), and for generating on the basis of a randomness verification result (T) a new candidate randomisedencrypted text sequence (AP), 
RNTS = Random Number Test Suite  randomness verifying means (603) for verifying randomness of said candidate randomisedencrypted text sequence (AP) based on a predetermined randomness test and supplying said randomness verification result (T) in order to generate said new candidate randomisedencrypted text sequence (AP), and supplying said candidate randomisedencrypted text sequence (AP) as randomisedencrypted text sequence (A) if said randomness test indicates that said candidate randomisedencrypted 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.
Â