Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

Notes on seeding 'random/seed (long)

 [1/3] from: reboler::programmer::net at: 20-Mar-2004 22:08


Here are some things I found out will working on 'random/secure and 'random/seed that may be of help to others. I wanted to completely utilize the time provided by 'now/precise as the seed for 'random/seed. (for some cryptography related scripts) (the following messages are from the escribe archives and console output is from view 1.2.5.3.1 From an earlier question on using 'random Joel Neely wrote: Date: Thu, 22 Aug 2002 15:09:45 "The documentation should state what types of values are acceptable as seeds. I believe that you need to restrict yourself to date!, time!, or integer! values for legitimate seeds." And Frank Sievertsen wrote: [REBOL] Re: True Random Date: Mon, 20 Aug 2001 00:09:35 Try this: random/seed checksum form now/precise CU, Frank With Petr Krenzelok adding: Date: Mon, 20 Aug 2001 00:32:38 you can even use checksum/secure .... -pekr- But please observe the following... It appears that 'random/seed seeded with time ('now/precise) only seeds to the second! ... randomize-series: func [series][ random/seed now/precise random/secure series ]
>> loop 10 [print [now/precise randomize-series "12345"]]
15-Jan-2004/12:20:06.968-5:00 14532 15-Jan-2004/12:20:06.968-5:00 14532 15-Jan-2004/12:20:06.968-5:00 14532 15-Jan-2004/12:20:06.984-5:00 14532 15-Jan-2004/12:20:06.984-5:00 14532 15-Jan-2004/12:20:07-5:00 13524 15-Jan-2004/12:20:07-5:00 13524 15-Jan-2004/12:20:07.015-5:00 13524 15-Jan-2004/12:20:07.015-5:00 13524 15-Jan-2004/12:20:07.015-5:00 13524 .... as you see the randomized string only changes with the second. Changing the time to an integer won't work ...
>> loop 10 [print [now/precise to-integer now/time/precise]]
15-Jan-2004/12:13:32.953-5:00 44012 15-Jan-2004/12:13:32.968-5:00 44012 15-Jan-2004/12:13:32.968-5:00 44012 15-Jan-2004/12:13:32.968-5:00 44012 15-Jan-2004/12:13:32.984-5:00 44012 15-Jan-2004/12:13:32.984-5:00 44012 15-Jan-2004/12:13:33-5:00 44013 15-Jan-2004/12:13:33-5:00 44013 15-Jan-2004/12:13:33-5:00 44013 15-Jan-2004/12:13:33.015-5:00 44013 .... as you can see that the integer changes only with the second. Also, note that I only changed the time (not the date) to integer, because ...
>> to-integer now/precise
** Script Error: Invalid argument: 15-Jan-2004/12:30:15.734-5:00 ** Where: to-integer ** Near: to integer! :value .... thus not using the date portion in the potential seed. You cannot use checksum/secure on the time because ...
>> random/seed checksum/secure form now/precise
== {=EEen|^E=80^A=94d=A6=97=C2=EA/=CC^K^G=AC=D1=FD} .... and ...
>> seed: checksum/secure form now/precise
== #{70C9F0D1D65FD88B6093DF38FD972ABCA56724B3}
>> random/seed seed
== "=8B`$=97p*=C9=DF=BCg=D8=B3_=D6=A5=F08=FD=93=D1"
>> random/seed seed
== "g=8B_=F0=93=DF=C9`=BCp=FD=D1=D6=A5*$8=97=B3=D8"
>> random/seed seed
== "=A5`=BC=D1_=97p$=D8=F0=8B=FD=D6=C98*=93=B3=DFg" .... returns a value! Thus the "seed" given above is scrambled , but not passed to random/seed as a seed. If "checksum/secure form now/precise" was providing a legitimate seed then the follwing sequences would be identical ...
>> seed: checksum/secure form now/precise
== #{70C9F0D1D65FD88B6093DF38FD972ABCA56724B3}
>> random/seed seed
== "=93*g`=D1=8B=A5=BC=F0=B3=D8$=C98=D6_=97p=DF=FD"
>> loop 5 [print random/secure "12345"]
53142 31254 32514 25143 32145
>> random/seed seed
== "*=FDg`=D6=D1=B3=DFp=C9=97=93$=A5=D8_8=BC=F0=8B"
>> loop 5 [print random/secure "12345"]
32415 13524 15432 45231 43251 ... but they are not the same. So, to use _all_ of the information provided by 'now/precise (all of 15-Jan-2004/12:34:16.437-5:00) as a seed to 'random/seed you must random/seed to-integer checksum/secure form now/precise Now we see all the behavior we expect ...
>> seed: to-integer checksum/secure form now/precise
== 1264002547
>> random/seed seed >> loop 5 [print random/secure "12345"]
45213 41325 45321 35124 14523
>> random/seed seed >> loop 5 [print random/secure "12345"]
45213 41325 45321 35124 14523 Notice that there is nothing returned when providing the seed and that the two sequences are identical. Other Observations: 'random/seed will take a date ...
>> seed: now/date
== 16-Jan-2004
>> random/seed seed >>
... because nothing is returned. A 'binary is not a legitimate seed ...
>> seed: to-binary 100
== #{313030}
>> random/seed seed
== "010" .... because a value is returned. A 'time is a legitimate seed ...
>> seed: now/time
== 22:11:03
>> random/seed seed >>
.... but remember that it is good only to the second! So, you need to do two tests to determine if a seed is legitimate: 1) Nothing returned from 'random/seed your-seed 2) Identical random sequences produced when reseeding from the same seed. To conclude: apparently only dates, times, and integers are legitimate seeds, and one way to use all of a 'now (including both date and sub-second precision) is to random/seed to-integer checksum/secure form now/precise Here's a handy function to reseed to sub-second precision ... randomize: func [ {Reseed the random number generator using 'now/precise, or enter a date! time! integer! argument.} seed [any-type!] ][ random/seed either value? 'seed [seed][to-integer checksum/secure form now/precise] ] As a bonus (as if this wasn't long enough already!) I have included my gleanings from the archives about 'random in the following binary!. Just decompress. probe decompress useful-stuff-on-random: 64#{ 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} -- ___________________________________________________________ Sign-up for Ads Free at Mail.com http://promo.mail.com/adsfreejump.htm

 [2/3] from: moliad:aei:ca at: 20-Mar-2004 22:37


thanks for this thesis on the randomizing of rebol Alan! another tidbit of information that wasn't obvious to realize! -MAx ----- Original Message ----- From: "alan parman" <[reboler--programmer--net]> To: <[rebol-list--rebol--com]> Sent: Saturday, March 20, 2004 10:08 PM Subject: [REBOL] Notes on seeding 'random/seed (long)
> Here are some things I found out will working on 'random/secure and
'random/seed that may be of help to others.
> I wanted to completely utilize the time provided by 'now/precise as the seed
for 'random/seed.
> (for some cryptography related scripts) > > (the following messages are from the escribe archives and console output is
from view 1.2.5.3.1
> >From an earlier question on using 'random Joel Neely wrote: > Date: Thu, 22 Aug 2002 15:09:45
<<quoted lines omitted: 14>>
> But please observe the following... > It appears that 'random/seed seeded with time ('now/precise) only seeds to the
second! ...
> randomize-series: func [series][ > random/seed now/precise
<<quoted lines omitted: 44>>
> == "=A5`=BC=D1_-p$=D8=F0<=FD=D6=C98*"=B3=DFg" > ... returns a value! Thus the "seed" given above is scrambled , but not passed
to random/seed as a seed.
> If "checksum/secure form now/precise" was providing a legitimate seed then the
follwing sequences would be identical ...
> >> seed: checksum/secure form now/precise > == #{70C9F0D1D65FD88B6093DF38FD972ABCA56724B3}
<<quoted lines omitted: 16>>
> .. but they are not the same. > So, to use _all_ of the information provided by 'now/precise (all of
15-Jan-2004/12:34:16.437-5:00) as a seed to 'random/seed you must
> random/seed to-integer checksum/secure form now/precise > Now we see all the behavior we expect ...
<<quoted lines omitted: 15>>
> 14523 > Notice that there is nothing returned when providing the seed and that the two
sequences are identical.
> Other Observations: > 'random/seed will take a date ...
<<quoted lines omitted: 20>>
> To conclude: apparently only dates, times, and integers are legitimate seeds, > and one way to use all of a 'now (including both date and sub-second
precision) is to
> random/seed to-integer checksum/secure form now/precise > > Here's a handy function to reseed to sub-second precision ... > > randomize: func [ > {Reseed the random number generator using 'now/precise, or enter a date!
time! integer! argument.}
> seed [any-type!] > ][ > random/seed either value? 'seed [seed][to-integer checksum/secure form
now/precise]
> ] > > As a bonus (as if this wasn't long enough already!) I have included my
gleanings from the archives about 'random in the following binary!. Just decompress.

 [3/3] from: lmecir:mbox:vol:cz at: 23-Mar-2004 9:22


Hi all, I would like to remind you, that there are more reliable methods of producing random numbers than using a pseudo-random generator function. You can e.g. use Andrew's function to access www.random.org I plan to post my version (usable as the Random function replacement) to www.compkarori.com/vanilla/display -L

Notes
  • Quoted lines have been omitted from some messages.
    View the message alone to see the lines that have been omitted