[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: True Random (short c-source)




What you are doing, basically, is using the processor execution time
loops to measure jitter in the return of the value of clock(). I don't
know how clock() works but I would venture to guess that the jitter in
more predictable than you think.

.pm

Frank Andrew Stevenson writes:
> I have written a short random number generator which appears to produce
> reasonable random numbers even in DOS, at the heart of the code is the
> short function fGetRand, the amount of entropy derived from this
> function varies from >1 to >>6 depending on system load, I haven't
> made any effort to whiten it at all. I am not making any claims about
> its usefulness. I am only trying to demonstrate the ease at which
> good random number may be obtained. Any comments and analysis will be
> mostly welcome, the source is hereby placed in the public domain:
> 
> I have used WATCOM10 to compile and test under DOS/WIN95, where
> clock is running at 18hz. I have also tested on IRIX with impressive
> results.
> 
> --- START ----
> #include <time.h>
> #include <stdio.h>
> 
> int   fGetRand (void);
> 
> main (void) {
>    long vCount;
>    FILE *out;
>    int byte;
>    int tick;
> 
>    out=fopen("random.bin","wb");
>    if(out==NULL) {
>       printf("cant write to file random.bin\n");
>       exit(1);
>    }
> 
>    for(vCount=1;vCount<=512;vCount++) {
>       tick=fGetRand()&0x01;
>       byte=byte+byte+tick;
>       if((vCount & 0x7)==0) fputc((char)byte,out);
>       fputc((char)tick,out);
>    }
> 
>    fclose(out);
> }
> 
> 
> int   fGetRand (void) {
>    int count;
>    clock_t tick;
> 
>    tick=clock();
>    while(tick==clock()) count++;
> 
>    return (count);
> }
> ----- END -----
> 
> PGP encrypted mail preferred, finger for key.
> The above views are ONLY endorsed by BoggleMind Inc. (not to be confused
> with MindBoggle Ltd.)
> 
> 
>