Help me sort though some complex math



The questions stem from the following URL

http://64.233.167.104/search?q=cache:R1ERKgiy5L8J:www.phrack.org/issues.html%3Fid%3D10%26issue%3D64+phrack+GF(2)&hl=en&ct=clnk&cd=1&gl=us

"--[ 4 - Veins' DPA-128 description

DPA-128 is a 16 rounds block cipher providing 128 bits block
encryption
using an n bits key. Each round encryption is composed of 3 functions
which are rbytechain(), rbitshift() and S_E(). Thus for each input
block,
we apply the E() function 16 times (one per round) :

void E (unsigned char *key, unsigned char *block, unsigned int shift)
{
rbytechain (block);
rbitshift (block, shift);
S_E (key, block, shift);
}

where:

- block is the 128b input
- shift is a 32b parameter dependent of the round subkey
- key is the 128b round subkey

Consequently, the mathematical description of this cipher is:
f: |P x |K ----> |C

where:
- |P is the set of all plaintexts
- |K is the set of all keys
- |C is the set of all ciphertexts

For p element of |P, k of |K and c of |C, we have c = f(p,k)
with f = E'E...E'E = E'16 and ' meaning the composition of functions.

We are now going to describe each function. Since we sometimes may
need
mathematics to do so, we will assume that the reader is familiar with
basic algebra ;>

rbytechain() is described by the following C function:

void rbytechain(unsigned char *block)
{
int i;
for (i = 0; i < DPA_BLOCK_SIZE; ++i)
block[i] ^= block[(i + 1) % DPA_BLOCK_SIZE];
return;
}

where:
- block is the 128b input
- DPA_BLOCK_SIZE equals 16

Such an operation on bytes is called linear mixing and its goal is to
provide the diffusion of information (according to the well known
Shannon
theory). Mathematically, it's no more than a linear map between two
GF(2)
vector spaces of dimension 128. Indeed, if U and V are vectors over
GF(2)
representing respectively the input and the output of rbytechain()
then
V = M.U where M is a 128x128 matrix over GF(2) of the linear map
where
coefficients of the matrix are trivial to find. Now let's see
rbitshift().
Its C version is:"


What is a liner map between two GF(2) vector spaces of 128 dimensions?
Actually, I also don't see how they get 128 dimensions.
.



Relevant Pages

  • Re: Encyption of two 256-blocks
    ... I chose the mix type I did because it is trivially proven that the information from all bits is scattered across all blocks, forming an AONT for the specific size, provided the cipher is secure. ... The only reason I would not recommend using a 512-bit cipher is because none have withstood intense analysis, the closest would be HPC which was found to have slight flaws, these flaws almost certainly won't be a problem in your environment, but even the slightest flaw tends to send cryptanalysts running elsewhere. ... I still think any complete mixing strategy combined with a strong cipher is best, I chose mine for simplicity, but method that splits each block from the previous round equally among the blocks for the current round is equally good. ...
    (sci.crypt)
  • Re: Encyption of two 256-blocks
    ... provided the cipher is secure. ... the 2nd round cipher. ... The avalanche/diffusion is not complete until the end of the encryption in round 4. ... If a CBC_encrypt is inserted between them then at 4 rounds it is provable as a AONT, any earlier and the saturation limits the amount of entropy that can be stirred together. ...
    (sci.crypt)
  • Re: New RUIX cipher
    ... I think we can push a 'differential' through your cipher with a 100% ... we are at the top of the next round. ... > The implementation has a mainroutine that calls the encode ... > finally in each round i xor the key with the corresponding plaintext ...
    (sci.crypt)
  • Re: A chosen plaintext attack for XXTEA
    ... hold with a reasonable probability, so that the difference will remain ... eventually appears the cipher text. ... After the final round, ... The basic idea is the same as in a classic differential attack -- ...
    (sci.crypt)
  • Re: 2006/467 Chang Yung: silly?
    ... block cipher with the same output size and running it in one of the 12 ... of AES constants, or on the mixing in the final AES round. ...
    (sci.crypt)