new idea for random number generation

Zenaan Harkness zen at freedbms.net
Thu Aug 3 19:15:15 PDT 2017


On Thu, Aug 03, 2017 at 01:54:06PM -0500, \0xDynamite wrote:
> Speaking of cryptography (harhar), I was contemplating an idea to
> generate random streams of random numbers using chaos theory (not the
> first), specifically the logistic equation [3.5x(1-x)], when I came
> across the argument (http://www.cs.utsa.edu/~wagner/laws/chaos.html)
> that such generators are "psuedo-random", but I don't think is true.
> 
> The equation is capable of producing an infinite stream of numbers
> that get more random as you continue to use the equation.  The amount
> of true randomness approaches the depth of your word size, but in
> theory you can create an implementation with arbitrary depth (say
> 10000 bits).
> 
> Is this interesting to anyone?

It's 100% deterministic still, since it's nothing but a deterministic
algorithm driving the "appearance of" random output - if you know the
algo, you know the output, simple as that.

Easy mistake to make - you're conflating infinite variation, with
infinite randomness. And yes there's a bit of the 100 monkeys tapping
away at a keyboard in the thought.

And to make it even clearer - yes the stream might be infinitely
varying in what can stochastically or in other ways be described as
random --if you didn't know the algorithm producing that stream--,
AND if you could, and here's the missing key perhaps: pick a random
starting spot in that stream, then yes, you'd have a sort of private
key.

But even there, here's the problem, with an infinite stream, you need
an infinitely large indexing ability to be able to choose a "truly
random" starting point - the point being, if you want it to be
random, you actually need random input: check out the difference
between /dev/random and /dev/urandomm, and grok these differences,
and it should all make sense.

So now what you're now asking is:
 - which algorithms generate usefully varying output, based on just a
   few bits of available truly random input

Another way to ask this: based on very limited single-bit bits of
truly random input, what is the "most random" output we can
deterministically generate to give the appearance of randomness.

This is /dev/urandom's job.

Once you're in the ballpark of "algorithms which usefully spread
input bits into output bits", next come questions like CPU cycle cost
to do such spreading.

Good luck,


More information about the cypherpunks mailing list