From: Maaartin on
On Mar 12, 6:24 pm, Mok-Kong Shen <mok-kong.s...(a)t-online.de> wrote:
> Maaartin wrote:
> > There's a problem with polynomials you was already told about: They
> > propagate only towards higher bits (unless you use non-power of two
> > modulus which is slow). So you can be sure, that a couple of least
> > significant bits can be found out easily, no matter how many rounds
> > you do. Starting from them, higher bit can be found, etc. I already
> > recomennded a remedy, so use it or find another.
>
> Extremely sorry for my poor memory. Could you kindly sketch your remedy
> once again or provide a pointer? Concerning predictability of
> congruential PRNGs, I previously suggested to use (pseudo-random)
> cyclic shift of bits in computer words of the output as a counter-
> measure. That could also be done in the present context.

I can't find the link anymore, but it was very simple: Using something
like
rotate(p(x), distance)
or
p(x) ^ (p(x) >> distance)
or
p(x) + (p(x) >> distance)
with 0<distance && distance<32 propagates the higher order bits to the
lower order bits, Fixed distance makes it easier to analyse, while
variable distance makes the lowest 5 bits to influence the result in
quite an "unpredictable" way.

For an algorithm using both fixed and variable rotations and
multiplication see
http://en.wikipedia.org/wiki/RC6

From: Greg Rose on
In article <hndosi$b1a$02$1(a)news.t-online.com>,
Mok-Kong Shen <mok-kong.shen(a)t-online.de> wrote:
>rossum wrote:
>
>> If you are prepared to move away from block cyphers to a stream cypher
>> then RC4 is easily memorisable and programmable from memory. It is
>> not perfectly secure but is certainly easily memorized.
>
>If I don't err, stream ciphers have difficulties in issues of
>authentication. That's why I considered block encryption. (Note in this
>respect that the scheme depicted allows large block sizes.)

Block ciphers also have difficulties in issues
of authentication. Don't listen to M-K.

If you need message integrity, get it from a message
integrity primitive (which may, or may not, be based
on a block cipher).

Greg.
--
From: Mok-Kong Shen on
Maaartin wrote:
> Mok-Kong Shen wrote:

>> Extremely sorry for my poor memory. Could you kindly sketch your remedy
>> once again or provide a pointer? Concerning predictability of
>> congruential PRNGs, I previously suggested to use (pseudo-random)
>> cyclic shift of bits in computer words of the output as a counter-
>> measure. That could also be done in the present context.
>
> I can't find the link anymore, but it was very simple: Using something
> like
> rotate(p(x), distance)
> or
> p(x) ^ (p(x)>> distance)
> or
> p(x) + (p(x)>> distance)
> with 0<distance&& distance<32 propagates the higher order bits to the
> lower order bits, Fixed distance makes it easier to analyse, while
> variable distance makes the lowest 5 bits to influence the result in
> quite an "unpredictable" way.
>
> For an algorithm using both fixed and variable rotations and
> multiplication see
> http://en.wikipedia.org/wiki/RC6

I suppose that in the context of outputs of congruential PRNGs, it
suffices to do the conceivably simplest scheme as follows: One uses
one output to provide 5 shift amounts (5*8=30<32) to cyclicly shift
the following 5 outputs from the PRNG, etc. Since these shift amounts
are pseudo-random, i.e. variable�, the analyst can't know where are
the lower and where are the higher order bits of the original outputs
from the PRNG and hence the sort of attacks of Boyar et al. would fail
to work.

Thanks.

M. K. Shen
From: Mok-Kong Shen on
Greg Rose wrote:
> Mok-Kong Shen wrote:
>> rossum wrote:
>>
>>> If you are prepared to move away from block cyphers to a stream cypher
>>> then RC4 is easily memorisable and programmable from memory. It is
>>> not perfectly secure but is certainly easily memorized.
>>
>> If I don't err, stream ciphers have difficulties in issues of
>> authentication. That's why I considered block encryption. (Note in this
>> respect that the scheme depicted allows large block sizes.)
>
> Block ciphers also have difficulties in issues
> of authentication. Don't listen to M-K.
>
> If you need message integrity, get it from a message
> integrity primitive (which may, or may not, be based
> on a block cipher).

That nothing in crypto "pratice" can be "perfect" is trivial. Thus
certainly "block ciphers also have difficulties in issues of
authentication". (Did I ever claim anything against that???)
My point was, to fomulate stronger, that there is no authentication
scheme based on a (strict) stream cipher at all (to my humble
knowledge). Or are you of different opinion?

On the other hand, I myself recently proposed an authentication
scheme that, compared to one known scheme, has the advantage of
using one key instead of two and with a chaining value that is
unknown to the analyst. Comments and critiques to that would
be very appreciated.

M. K. Shen

From: Mok-Kong Shen on
[Addendum]

In the present context, one could advantageously employ what
I mentioned in the thread "Introducing dynamics into block
encryptions" as the third example of "inner" dynamics, namely
to permute and/or cyclicly bit-shift the computer words of the input
and/or output of a block depending on certain values taken during
the processing of a preceding block.

M. K. Shen