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,