[ 
https://issues.apache.org/jira/browse/RNG-59?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gilles updated RNG-59:
----------------------
    Description: 
{{SeedFactory}} will produce the same seed when several instances of the same 
program are launched in rapid successions.

In the _static_ block of {{SeedFactory}}, an initial "random" seed is generated 
using {{System.currentTimeMillis()}}.

I think that it should be replaced by retrieving data from a {{SecureRandom}} 
instance.
The drawback is that instantiating such an object is necessary slower.  However 
if it is the way to go (to ensure different initial seeds in parallel runs of a 
program), the question is whether to use only {{SecureRandom}} to create the 
(relatively large) state of the RNG used by the {{SeedFactory}} or to use it 
only to generate 8 bytes (and proceed with the rest of the _static_ block as it 
is now).

I'm planning to follow the advice 
[here|https://tersesystems.com/blog/2015/12/17/the-right-way-to-use-securerandom/],
 i.e. fill the whole state with the system's default RNG.

  was:
{{SeedFactory}} will produce the same seed when several instances of the same 
program are launched in rapid successions.

In the {{static}} block of {{SeedFactory}}, an initial "random" seed is 
generated using {{System.currentTimeMillis()}}.

I think that it should be replaced by retrieving data from a {{SecureRandom}} 
instance.
The drawback is that instantiating such an object is necessary slower.  However 
if it is the way to go (to ensure different initial seeds in parallel runs of a 
program), the question is whether to use only {{SecureRandom}} to create the 
(relatively large) state of the RNG used by the {{SeedFactory}} or to use it 
only to generate 8 bytes (and proceed with the rest of the _static_ block as it 
is now).


> More robust "SeedFactory"
> -------------------------
>
>                 Key: RNG-59
>                 URL: https://issues.apache.org/jira/browse/RNG-59
>             Project: Commons RNG
>          Issue Type: Improvement
>          Components: simple
>    Affects Versions: 1.0, 1.1
>            Reporter: Gilles
>            Priority: Major
>             Fix For: 1.2
>
>
> {{SeedFactory}} will produce the same seed when several instances of the same 
> program are launched in rapid successions.
> In the _static_ block of {{SeedFactory}}, an initial "random" seed is 
> generated using {{System.currentTimeMillis()}}.
> I think that it should be replaced by retrieving data from a {{SecureRandom}} 
> instance.
> The drawback is that instantiating such an object is necessary slower.  
> However if it is the way to go (to ensure different initial seeds in parallel 
> runs of a program), the question is whether to use only {{SecureRandom}} to 
> create the (relatively large) state of the RNG used by the {{SeedFactory}} or 
> to use it only to generate 8 bytes (and proceed with the rest of the _static_ 
> block as it is now).
> I'm planning to follow the advice 
> [here|https://tersesystems.com/blog/2015/12/17/the-right-way-to-use-securerandom/],
>  i.e. fill the whole state with the system's default RNG.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to