Anything but Random - Page 2
Page 2 of 2 FirstFirst 12
Results 11 to 18 of 18

Thread: Anything but Random

  1. #11
    Senior Member therenegade's Avatar
    Join Date
    Apr 2003

    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'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

  2. #12
    Senior Member
    Join Date
    Mar 2004

    as for "pseudo-random numbers":

    It has been stated here, random numbers produced by computers are not completely random,
    ie they are deterministic, hence they are called "pseudo-random numbers". This of course,
    is completely true. A very simple "pseudo-random-generator"-algorithm is
    long int a,b,c,d;
    // initialisation (set the "seed")
    // 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 "pseudo-random generator" is a very large correlation time, ie the time where the numbers
    start to repeat. Me for example, I use a "pseudo-random 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 "pseudo-randomness" is a fundamental criterion of a random-generator,
    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.


    If the only tool you have is a hammer, you tend to see every problem as a nail.
    (Abraham Maslow, Psychologist, 1908-70)

  3. #13
    Senior Member
    Join Date
    Oct 2001
    sec_ware: Does that source use something related to the double-slit experiment to generate numbers? At least that is all I can get from semi-transparent 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:

    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

  4. #14
    Senior Member
    Join Date
    Mar 2004
    Hi Tim_axe

    ad code-sniplet.
    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 double-slit 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 double-slit experiment:
    There is no reason for particles to show some interference-pattern. 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 double-slit 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 double-slit
    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, 1908-70)

  5. #15
    Senior Member
    Join Date
    Oct 2001
    I followed the links around a bit and ended up here as to what they use to generate the numbers:

    I think this operates by firing a photon at a semi-transparent 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 non-predictable keys needed for secure symetric-key-encryption. 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 pseudo-randomness.

  6. #16
    Senior Member
    Join Date
    Apr 2002
    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:


  7. #17
    Senior Member
    Join Date
    Jul 2003
    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 data-types]
    - 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 two-state 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 bit-space.

    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 pseudo-random 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.

  8. #18
    Senior Member
    Join Date
    Mar 2004
    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
    important point for a "pseudo-random 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 pseudo-random 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...).

    If the only tool you have is a hammer, you tend to see every problem as a nail.
    (Abraham Maslow, Psychologist, 1908-70)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

 Security News


       Security Trends


           Buying Guides