Information Security Institute A university for the real world
QUT Home
Contact us


Resources
Crypt-X
 *Tests
Order
LILI Stream Ciphers
Dragon Cipher
ARC Reports
[ Print-friendly version ]

CRYPT-X TESTS

Crypt-X tests are applied based on the type of algorithm being tested. Crypt-X supports stream ciphers, block ciphers and keystream generators. The tests supported by Crypt-X for each of these algorithm types are listed below.

Stream Cipher Tests
These tests are applied to the binary bit stream (prior to mixing with plaintext).

Frequency
Tests for an equal number of ones and zeros in the bit stream.
Binary Derivative
Tests that the binary source is 1-bit memoryless, such that 50% of the bits differ from the previous bit value.
Change Point
Tests for the uniformity of non-overlapping sub-blocks of a chosen length.
Runs
Tests the distribution of run lengths, based on the frequency test.
Sequence Complexity
Tests that there is a sufficient number of new patterns encountered throughout the stream.
Linear Complexity
Tests that the number of bits required to reconstruct the stream is as long as the stream itself.

Key Generator Tests
These tests are applied to the key generator blocks.

Frequency
Tests the distribution of the the number of ones in the block, based on an equal proportion of ones and zeros.
Binary Derivative
Tests the distribution of the number of bit changes in each block, based on a 1-bit memoryless source.
Sub-blocks
Tests the uniformity of all 1-bit positions and pairwise independence of all 2-bit positions in the block.  Tests the uniformity of sub-blocks for a chosen number of bit positions in the block.
Entropy
An estimate of the block entropy (number of independent bits in the block) is obtained on the whole block or by dividing the block into smaller sub-blocks.

Block Cipher Tests
These tests are applied to output blocks from:

  1. highly-patterned data, or
  2. the bitwise addition of plaintext and ciphertext blocks, or
  3. the user's own block data.
Frequency
Tests the distribution of the number of ones in the block, based on an equal proportion of ones and zeros.
Binary Derivative
Tests the distribution of the number of bit changes in each block, based on a 1-bit memoryless source.
Sub-blocks
Tests the uniformity of sub-blocks for a chosen number of bit positions in the block.  This includes estimating the block entropy (the number of independent bits in the block).
Avalanche Criteria
Tests that half the output bits change for a 1-bit change in input (plaintext of key).  The avalanche matrix displays the test results of changes in output bit positions for a change in each input bit position.  The frequency test is applied to test the number of changes in output for each input position change.
Avalanche Variable
Avalanche vectors are formed by the bitwise modulo-two addition of the input and output blocks, and represent changes in bit positions.  Each pair of avalanche variable positions is compared for independence.
Block Cipher Properties
Affine
Checks whether the ciphertext block may be expressed as a linear function of the plaintext and key blocks.
Complementation
Checks if ciphertext C* = C' (the bitwise complement of ciphertext C) for any plaintext-key combination, where C* is the encryption of the complements of the plaintext and key used in obtaining C.
Linear Relationship
Determines the existence of any linear combinations of ciphertext bits expressed as linear combinations of plaintext or key bits.