
October 16th, 2004, 10:43 AM
#11
On that, I agree with you. But, applying pattern to something seemingly random to a point where it has a very precise, predictable, behavior? that's another story.
Something on the lines of the lack of a pattern being a pattern?
And surely there's no reason to take into account all the factors...consider the rolling dice for example:If you only consider a few 'primary' factors like how the person threw it,the hardness factor etc..you'd be on your way to getting a first degree 'simulation' of your model(throwing the dice in this case)..then,depending on your requirements,you could either make do with your present model or make another simulation taking into account a few more 'secondary' factors and thus getting a higer degree of accuracy in predicting the outcome..ofcourse,to be entirely sure you'd have to make an infinite number of simulations..but you'd only need to get a certain amount so that you could get the accuracy to reasonable proportions,thereby reducing the number of choices..and then trying them all or guessing(anyone think this can be extended to that password idea?)
And yes,I agree..this is fast turning into great cosmos material lol

October 17th, 2004, 05:49 PM
#12
Hi
as for "pseudorandom numbers":
It has been stated here, random numbers produced by computers are not completely random,
ie they are deterministic, hence they are called "pseudorandom numbers". This of course,
is completely true. A very simple "pseudorandomgenerator"algorithm is
Code:
long int a,b,c,d;
// initialisation (set the "seed")
a=14;
// pseudo random generator that generates number between 0 and 100
for (i...){
b=23472985; // these two numbers define the "random number generator"
c=394749587; // these two numbers define the "random number generator"
d=a*b % c; // typical pseudo"random number"algorithm
a=((d%100)+100)%100; // a is a random number between 0 and 100. Used as the "next" seed.
}
}
With the same initial seed "a", and the same parameteres "b" and "c" you generate the same "random numbers"
always. The quality of a random generator is measured by two characteristics:
 uniformness of the distribution of "random numbers"
 correlation between the "random numbers"
The above algorithm, I haven't tested it, should generate quite a nice uniformness, if I recall correctly.
However, the correlation between the "random numbers" is very high, ie. after producing some (quite) large
numbers of "random numbers", they start to repeat. Set b and c to small values, like b=123 and c=165 and you
will easily recognise a scheme.
For encryption techniques, for simulations of large systems (using socalled "Monte Carlo" techniques), etc., the
important point for a "pseudorandom generator" is a very large correlation time, ie the time where the numbers
start to repeat. Me for example, I use a "pseudorandom generator" with a correlation time that is orders larger
than the number of atoms within the universe  ie if you do not know the "seed", you cannot use information,
for whatever purpose, coming from the random generator itself. However, your algorithm might be restricted in
some "subspace" such that you can try to obtain additional information, for whatever purpose.
Note: Especially in scientific simulations, the "pseudorandomness" is a fundamental criterion of a randomgenerator,
since the published results based on simulations have to be reproducible.
as for chaotic systems:
Chaotic behaviour has nothing to do with randomness and/or unpredictability. This has
been pointed out and illustrated nicely by ShagDevil. Chaotic systems are defined as
systems, as it has been stated here, where solutions are heavily dependent of the initial conditions.
Mathematically (however not rigorously spoken):
If I change the initial conditions by some small number ("neighborhood"),
the solutions have no a priori "neighborhood", ie the solution may change from here to mars.
It's just a mathematical phenomenon, and quite a lot chaotic systems can be solved
or at least described analytically.
as for "complete randomness":
There is indeed a source out there, that is "perfectly" random. Namely, quantum effects. As an example, the
radioactive decay of elements is a purely random process and cannot be "fixed" by knowing ALL involving factors,
as with the example of the flipping coin. Actually, "perfect" random numbers are being generated [1].
I hope, I was not too technical.
Cheers.
[1] http://www.randomnumbers.info/content/Press.htm
If the only tool you have is a hammer, you tend to see every problem as a nail.
(Abraham Maslow, Psychologist, 190870)

October 17th, 2004, 08:20 PM
#13
sec_ware: Does that source use something related to the doubleslit experiment to generate numbers? At least that is all I can get from semitransparent mirror and light particle and reading the website of the company that made the generator. For those interested in this experiment and wanting to see the results that as far as I know nobody has been able to explain/analyze/predict because they cannot be measured due to quantum mechanics, Wikipedia has an article here: http://en.wikipedia.org/wiki/Double_slit_experiment
Also, that is a code sniplet that explains a lot to me since I'd never have thought about it myself. But why the "a=((d%100)+100)%100;"? Variable d has to be positive to return a number between 0 and 100, and that code sniplet is apparently designed to make it positive. Infact, d=a*b % c; would be wrong if that is the purpose to the a=... part since it would be negative if you intended a to be signed. So make the input unsigned and get rid of the sign changing part in a=... Basically, you want between 0 and 100 so make sure it will always return between those two numbers

October 17th, 2004, 09:33 PM
#14
Hi Tim_axe
ad codesniplet.
thanks for the hint about the unsigned. of course, you are completely right.
i did the example in 10secs, realised that i have negative d's, and changed
it with that horrible construct. Sometimes, a brain pops up complicated
ideas faster than the simpler ones
[slightly off topic]
ad the experiment.
a little clarification to the doubleslit experiment: If people think of electrons, they
think in terms of "particles"  and so people tend to describe the properties, like
momentum etc., in terms of the old Newton Law's. Then, around 1920 or so, people
like Schroedinger, Heisenberg and Dirac thought about different ways how to
describe such small particles  quantum theory began to take form.
The reason: More and more experiments could not be explained in terms of particle/waves,
since some experiments with waves have shown clear characteristics of particles, while
experiments with particles have shown clear characteristics of waves
(this is known as "duality of particles and waves") 
like the doubleslit experiment:
There is no reason for particles to show some interferencepattern. Hence,
one had to think about the validity of our description of small particles like the electron.
As a result, the Schroedinger equation and Wavefunctions of the electrons were "invented".
Nowadays, the doubleslit experiment can be "explained", thanks to Feynman. The solution:
It's the question you ask the system that is reflected in the result...quite metaphysical !
To finish this up: There is no explanation of what they do in that Press article. Although I am
not an expert in quantum electronics I make the following (reasonable ? ) guess: The base
system they use is based on a laser  and here your thought about the doubleslit
experiment comes in: in order to get such kind of interference, you need "coherence" in
your light ray ("coherence" is some property of laser"light")  and within a laser, to "produce"
a laser"ray", there are processes involving "spontaneous emission"  which is a purely
undeterministic process  like the decay of radioactive material (or a neutron, proton, ...)
This, I guess, can be used to create a series of "perfect" random numbers.
Sideremark: Actually LASER (light amplification by stimulated emission of radiation) is just
one part of the actually "object" we call a "LASER".: It should be called
"light oscillation by stimulated emission of radiation)  but who wants to call its
own device a "LOSER"
[/slightly off topic]
A final thought about whether these process "I" claim to be undeterministic really
are undeterministic or seem just so, because we do not know enough. All quantum
theories have one underlying assumption: quantum processes ARE random and
happen as they wish  as long as you do not measure, the system is in ANY possible
state. If it decides to do something, it is a priori not deterministic what it will do.
But what if these quantum theories are wrong? There is no proof, a rigorous proof
in the precise mathematical meaning, of the validity of these theories. However,
so far one can explain every experiment human beings have been able to perform 
based on these theories. As soon as we find one experiment that is violating a
prediction, these quantum theories might be wrong  still, it is not clear, "how" wrong
they then will be.
If the only tool you have is a hammer, you tend to see every problem as a nail.
(Abraham Maslow, Psychologist, 190870)

October 19th, 2004, 04:58 AM
#15
I followed the links around a bit and ended up here as to what they use to generate the numbers: http://www.idquantique.com/qrng.html
I think this operates by firing a photon at a semitransparent mirror and seeing where it ends up  does it reflect or go through? They probably opperate fairly continously because they are rated at 4mbit/sec speeds. So I guess it isn't directly related, but in a way it is like finding out which path the photon took and using that as the bit to return.
At 4mbit/sec for keys, you can easily come up with huge nonpredictable keys needed for secure symetrickeyencryption. You just need a safe way to get the key from point a to point b
Anyways, once again, nice code example. Provided the OP knows some C/C++, you could expand and play from there and have a fair understanding of pseudorandomness.

October 19th, 2004, 05:44 AM
#16
Senior Member
Hi all, once I stumbled into this link. It is a pretty cool project that uses the randomness and chaos of LavaLamps as a source for generating random numbers. Check it out:
http://www.lavarnd.org/
cheers
J

October 19th, 2004, 07:16 AM
#17
Just a quick speculation:
 use a large enough variable [32 bit or 64 bit if it's a primitive type, any size if one build one's own datatypes]
 init the first 16 bits with the timestamp
 init the last 16 bits with a collection of bitstates in CPU registers
 permute the bits 'randomly' to the left or right by a 'random' number of bits within the bit space
To get the last two random values:
 left or right choice is a twostate system, therefore a bit value [the function itself called to choose a memory address] indicates either direction
 bit permutation [<< >>] chosen from a modulus of the sum of the int value of some addresses on the RAM against the value of the bitspace.
The appearing 0s [from the permutation] to be filled similarly with one of the above methods.
This just shows how mahy methods there are to write out a pseudorandom algorithm. Schneier considers a 'random enough' number to be part of a sequence who's period is large enough to make it unfeasible, given a seed, to compute one whole period [that is, until the whole sequence repeats itself]. This is by cryptographic standards, and it is far more complex than most application that use random numbers care to have.
P.S. Sorry for the brief post on such a complex subject.
/ \\

October 19th, 2004, 09:25 AM
#18
tim_axe: thanks for the link. the process is still not explained, but at least now, we have
an idea (as you already have posted earlier!).
johnnymier: the inventiveness of human beings is astonishing. you also might check out [1].
hypronix: Good that there are people who are able to put
the
important point for a "pseudorandom generator" is a very large correlation time, ie the time where the numbers
start to repeat.
in understandeable words
For convenience, I attached a fairly complicated pseudorandom number generator, that
generates random numbers without detecteable correlation time  and it can be arbitrarily
tuned. Credits to the inventor and adaptor are given in the file.
The initialisation of the generator can, for example, be coupled to one of the, meanwhile
3 other devices and/or , as also already mentioned, with the speed of the user typing his
password or whatever additional source, like a microphone input ("wind" in your room...).
[1] http://www.physorg.com/news1147.html
If the only tool you have is a hammer, you tend to see every problem as a nail.
(Abraham Maslow, Psychologist, 190870)
Posting Permissions
 You may not post new threads
 You may not post replies
 You may not post attachments
 You may not edit your posts

Forum Rules

