StreamSec  

 

 
News
Products
Research
How to - algorithms with proofs
PCFB-mode
Steak
Key Setup Scheme
Feedback process
Main Function
Algorithm
Matrix Table Transform
Hash Scheme
PRNG test results
Security proof
Source - Steak
Source - SecUtils
Source - CombUtils
Order
Demos
Downloads
About Streamsec
Contact

2001-02-19

Differential analysis

Steak was designed with several types of differential attacks in mind:

Different keys -> Different cipher/plain text:
The key set up scheme and the error propagation of PCFB mode ensures that two different keys used to encrypt the same plain text will result in cipher text without any traceable relation. There is however a small number of exceptions to this rule. If the keys result in key data with identical vectors A and V and S-boxes that are equal but in a couple of positions (at least two), the same plain text will be encrypted to the same cipher text up to expectedly k=(27)/n Once the variable B at step (2.2) or (4) of the encryption algorithm has taken a value such that E will be different, error propagation will take off and no traceable relation will any longer be found. The key pairs in question can actually be found, but as far as we know at least one member of each such pair (all keys belongs to the same number of such pairs) is of maximum size (i.e. 837 bytes plus two times the size of the vectors).

Different plain text -> Different cipher text:
Steak is two way error propagating and has a block size of 8 bits, so this kind of analysis would have to focus on what happens to the cipher text the first few bytes after a change to one byte of the plain text. This is what happens after P1 has changed to P1':

  • (P1 xor P1') = (C1 xor C1')
  • The value of (P2 xor C2) and of (P2' xor C2') will be determined by the choice of key and of P1 or P1' respectively. In an experimental situation where the key and (P1 xor P1') are constant but the plain text changes, the values of (C2 xor C2') will be distributed in about the same way as the sequence of bit differences of 256 pairs of random bytes would: A frequency of one would be most probable (~0.37) and a frequency of zero almost as probable, some values would have a relatively high frequency etc. However, these results depend on a random selection of both P1 and P1'. An exhaustive test of all 256 times 255 possible combinations for a fixed key would be equivalent to doing the corresponding test on the frequency of f(x) xor f(x') for a random function f from [0..255] to [0..255] and would hence result in a probability of ~0.6 for a frequency of zero, ~0.30 for a frequency of two, etc. (Obviously, all frequencies would be even since f(x) xor f(x') = f(x') xor f(x).)
  • In the same kind of experimental situation, the distribution of the values (Ck xor Ck') will rapidly converge to an equal distance distribution as k and the amount of tests increases. The speed of convergence corresponds practically exactly to what should be expected for a deterministic but unpredictable byte valued function of a limited number of bytes. Our tests reveals no unexpected distribution of bit difference frequencies for any key or any plain text.

Different cipher text -> Different plain text:
The expected results as well as the results we actually got are identical to the results from the converse test described above.

Inner workings of the Steak Algorithm:
Changing Pk results in a change of Vk+1[n][3]. This change will be reflected in a change of PV for I=n at step (2.3) of the encryption algorithm, such that four least significant bits and four most significant bits of PV will change. Let PV' denote the altered value. For I=n-1 at step (2.1), addition with A[n-1] will possible induce a change through a carry on some more of the least significant bits of PV'. At step (2.2) B' will (in theory) first pass through the S-boxes. If the S-boxes are unknown, the values of (SBox(0,B[0]) xor SBox(0,B'[0])) and (SBox(3,B[3]) xor SBox(3,B'[3])) will both be unpredictable with an equal distance distribution. Since the MT-transform matrix is known, the 255 times 255 possible values of (E xor E') would be known (provided that bit 8 of B did not change at step (2.1)). However, most of the 255 times 255 possible values of (E xor E') are non-zero in all four bytes, so for I=n-1 at step (2.3) the same is probable to be true for PV. Our testing shows that a vector size of n=8 is sufficient to eliminate significant key dependent differential tracks from (Pk xor Pk') to (Ck+1 xor Ck+1').

©2000-2001StreamSec