From: Mok-Kong Shen on
Mok-Kong Shen wrote:

> (b) A good candidate for Fi(B_i) seems to be a key dependent (randomly
> generated) permutation polynomial mod 2^n of full period, say, of 2nd
> or higher degree.[snip]

To avoid misunderstanding: For the same i, Fi(B_i) is different for
different rounds and, since the availability of PRNGs is implicitly
assumed (I personally favour the scheme presented in my thread "A simple
scheme of combining PRNGs of 01.06.2010), it may vary from block to
block.

M. K. Shen




From: Maaartin on
On Jul 29, 2:52 pm, Mok-Kong Shen <mok-kong.s...(a)t-online.de> wrote:
> To avoid misunderstanding: if the words of a block are numbered 1..n,
> then the pivot sequence is a pseudo-random permutation of that.

What if there are more than n rounds?

You wrote "B_2 = F1(B_1) ^ B_2 B_3 = F1(B_1) ^ B_3 Below we'll say
that in the above B_1 is the pivot field in the
operation. Should it mean that F1(B_1) gets xored to all other fields?
If yes, why? If no, how you choose the field(s) to be modified?
From: Mok-Kong Shen on
Maaartin wrote:
> wrote:
>> To avoid misunderstanding: if the words of a block are numbered 1..n,
>> then the pivot sequence is a pseudo-random permutation of that.
>
> What if there are more than n rounds?
>
> You wrote "B_2 = F1(B_1) ^ B_2 B_3 = F1(B_1) ^ B_3 Below we'll say
> that in the above B_1 is the pivot field in the
> operation. Should it mean that F1(B_1) gets xored to all other fields?
> If yes, why? If no, how you choose the field(s) to be modified?

Sorry that there are apparently still stuffs not very clear.

In the original Feistel scheme (that was used in DES) there were only
2 fields. From that it was unclear what Feistel would have done if
there are more than 2 fileds. One possibility is that a non-linear
function of one field is xored to only one another field. The other
possibility is that the xoring is done to more than one field. As I
said, the computation of the non-linear function is certainly more
expensive than one xoring operation. So, once a non-linear function
is evaluated, it could advantageously be used to xor (thus affect)
more than one field. Thus I choose to xor all the other fields. For
that way it would be more 'economical'/efficient for the scheme as
a whole.

A pivot sequence of round j is a pseudo-random permutation Q_j of 1..n
(a block has n fields), which is dependent on j, i.e. different for
different j. Since F_i of all rounds are pseudo-randomly generated and
hence, for the same i, F_i of one round is different from F_i of
another round (the probability of identity is practically zero with
a properly implemented PRNG), it doesn't matter, if the last element
of Q_(j-1) happens to be identical to the first element of Q_j.
(Otherwise the two xoring from the same pivot would have cancelled
each other.)

xor can be replaced by addition/subtraction. If desired, the choice
of the three operations could also be pseudo-randomly dynamically
determined.

I like to stress once again that all the randomizations stated can be
dynamically done for the individual blocks, i.e. they can be different
for different blocks. The message key, from which all the randominations
depend (since the PRNG or PRNGs are constructed from it), should be
unique to the meaasge. This could be easily done through suitably
combining a master key (which is used for a longer period for different
messages) with message specific informations, e.g. time and message
number.

It may be noted that practically nothing in our scheme is thus 'fixed'.
Almost everything is 'dynamic' and this, so to say, knocks the bottom
out of all those known analysis techniques of block encryptions that
assume that the algorithm to be attacked is a static one.

For pseudo-random number generation I am taking the liberty to once
again mention my personal favourite, a combination of two or more
constituent PRNGs, as described in the thread "A simple scheme of
combining PRNGs" of 01.06.2010.

Many thanks for you detailed examinations.

M. K. Shen
From: Mok-Kong Shen on
Mok-Kong Shen wrote:
> Maaartin wrote:
[snip]

I forgot to address your question "What if there are more than
n rounds?" For e.g. n=4, there are only 24 different permutations.
It could thus happen that successive pivot sequences generated,
Q_j and Q_(j+1), are the same. This doesn't matter in our scheme.
(Cf. DES, where the pivot sequence is a constant one.)

M. K. Shen