From: Mok-Kong Shen on

Quite a time ago I had the humble idea of building a compound PRNG
consisting of a number of constituent PRNGs. I have recently updated
it in some details and would like very much to subject it again to
comments and critiques from the group. The scheme can be briefly
described in terms of four levels.

The 1st level is a PRNG, which we choose to be a higher degree
permutation polynomial mod 2^32 (assuming 32 bit words). More exactly,
it is to be one with full cycle in [0,2^32-1]. The coefficients of the
polynomial and the starting value (seed of PRNG) shall come from a
correspondingly long master key together with some time-varying
informations such as time and message number, so that the resulting
PRNG (termed master-PRNG below) is unique for each message that uses
our scheme.

The 2nd level uses the output of the master-PRNG to generate a pool of
PRNGs that are lower degree (e.g. 2nd degree) permutation polynomials
together with their seeds. Each such PRNG has an associated
pseudo-randomly determined constant value b in the range [0,31].

The 3rd level activates the PRNGs in the pool in a pseudo-random order
as follows: Each PRNG, when it gets activated, outputs a number R.
Using a bit mask, one obtains from R a value p as the index of the next
PRNG in the pool to be activated. R is subsequently cyclically shifted
by b bits to become R' for further treatment in the 4th level.

The 4th level consists of a single PRNG G(x), again a lower degree
permutation polynomial. It takes each R' from the 3rd level and outputs
G(R') as the external output of our scheme. (Currently I tend to think
that the 4th level may be unnecessary and thus left out or be optional.)

Thanks,

M. K. Shen
From: biject on
On Mar 20, 11:19 am, Mok-Kong Shen <mok-kong.s...(a)t-online.de> wrote:
> Quite a time ago I had the humble idea of building a compound PRNG

I know I am wasting bandwidth even trying to communicate with you
but I want to know what a "humble idea" is. Does that mean it's
worthless and you are ashamed of it but have this inner need to
regurgitate it yet again?
I know what "humble pie" is. Is that similar to what you mean?
Sorry if the humble question is to complicated, if so I humbly ask for
your humble understanding of this humble question.


David A. Scott
--
My Crypto code
http://bijective.dogma.net/crypto/scott19u.zip
http://www.jim.com/jamesd/Kong/scott19u.zip old version
My Compression code http://bijective.dogma.net/
**TO EMAIL ME drop the roman "five" **
Disclaimer:I am in no way responsible for any of the statements
made in the above text. For all I know I might be drugged.
As a famous person once said "any cryptograhic
system is only as strong as its weakest link"

From: Mok-Kong Shen on
biject wrote:

> I know what "humble pie" is.

And you seem not to know what the abbreviation IMHO is??

M. K. Shen
From: unruh on
On 2010-03-20, Mok-Kong Shen <mok-kong.shen(a)t-online.de> wrote:
>
> Quite a time ago I had the humble idea of building a compound PRNG
> consisting of a number of constituent PRNGs. I have recently updated
> it in some details and would like very much to subject it again to
> comments and critiques from the group. The scheme can be briefly
> described in terms of four levels.
>
> The 1st level is a PRNG, which we choose to be a higher degree
> permutation polynomial mod 2^32 (assuming 32 bit words). More exactly,
> it is to be one with full cycle in [0,2^32-1]. The coefficients of the
> polynomial and the starting value (seed of PRNG) shall come from a
> correspondingly long master key together with some time-varying
> informations such as time and message number, so that the resulting
> PRNG (termed master-PRNG below) is unique for each message that uses
> our scheme.
>
> The 2nd level uses the output of the master-PRNG to generate a pool of
> PRNGs that are lower degree (e.g. 2nd degree) permutation polynomials
> together with their seeds. Each such PRNG has an associated
> pseudo-randomly determined constant value b in the range [0,31].
>
> The 3rd level activates the PRNGs in the pool in a pseudo-random order
> as follows: Each PRNG, when it gets activated, outputs a number R.
> Using a bit mask, one obtains from R a value p as the index of the next
> PRNG in the pool to be activated. R is subsequently cyclically shifted
> by b bits to become R' for further treatment in the 4th level.
>
> The 4th level consists of a single PRNG G(x), again a lower degree
> permutation polynomial. It takes each R' from the 3rd level and outputs
> G(R') as the external output of our scheme. (Currently I tend to think
> that the 4th level may be unnecessary and thus left out or be optional.)

The purpose of all this is what? It is certainly not a fast prng. What
do you want to use it for?

You could just use your first prng to create say 5 bytes as the date for
the new york times, and then the next five bytes as the number of the
letter to take out of that issue for the next byte in teh PRNG. Now you
may have to wait a few centuries for the output, but since speed is not
of any concern to you....
Actually that output is liable to be biased, but you get the idea.

>
> Thanks,
>
> M. K. Shen
From: Mok-Kong Shen on
unruh wrote:

> The purpose of all this is what? It is certainly not a fast prng. What
> do you want to use it for?

It is certainly unfavourable in computing efficiency (especially
when compared to such PRNGs as RC4). The purpose is show that, if
one needs for whatever reasons a fairly secure (hard to predict)
PRNG of very long period and has to implement one oneself from scratch
(without having/consulting and/or relying on expert's opinions), that
seems to be one (there certainly might be several others) of the
'practical' ways to go. (This is what I personally term the poorman's
situation.)

M. K. Shen