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
== {îen|^E€^A”d¦—Âê/Ì^K^G¬Ñý}

... and ...

>> seed: checksum/secure form now/precise
== #{70C9F0D1D65FD88B6093DF38FD972ABCA56724B3}
>> random/seed seed
== "‹`$—p*Éß¼gس_Ö¥ð8ý“Ñ"
>> random/seed seed
== "g‹_ð“ßÉ`¼pýÑÖ¥*$8—³Ø"
>> random/seed seed
== "¥`¼Ñ_—p$Øð‹ýÖÉ8*“³ßg"

... 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
== "“*g`Ñ‹¥¼ð³Ø$É8Ö_—pßý"
>> loop 5 [print random/secure "12345"]
53142
31254
32514
25143
32145
>> random/seed seed
== "*ýg`ÖѳßpÉ—“$¥Ø_8¼ð‹"
>> 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


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.

Reply via email to