@@ -28,20 +28,19 @@ const RAND_SIZE: usize = 1 << RAND_SIZE_LEN;
28
28
/// series of array based random number generator designed by Robert Jenkins
29
29
/// in 1996[1][2].
30
30
///
31
- /// Although ISAAC is designed to be cryptographically secure, its design is not
32
- /// founded in cryptographic theory. Therefore it is _not recommended for_
33
- /// cryptographic purposes. It is however one of the strongest non-cryptograpic
34
- /// RNGs, and that while still being reasonably fast.
31
+ /// ISAAC is notably fast and produces excellent quality random numbers for
32
+ /// non-cryptographic applications.
35
33
///
36
- /// Where fast random numbers are needed which should still be secure, but where
37
- /// speed is more important than absolute (cryptographic) security (e.g. to
38
- /// initialise hashes in the std library), a generator like ISAAC may be a good
39
- /// choice.
34
+ /// In spite of being designed with cryptographic security in mind, ISAAC hasn't
35
+ /// been stringently cryptanalyzed and thus cryptographers do not not
36
+ /// consensually trust it to be secure. When looking for a secure RNG, prefer
37
+ /// [`Hc128Rng`] instead, which, like ISAAC, is an array-based RNG and one of
38
+ /// the stream-ciphers selected the by eSTREAM contest.
40
39
///
41
40
/// In 2006 an improvement to ISAAC was suggested by Jean-Philippe Aumasson,
42
- /// named ISAAC+[3]. But because the specification is not complete, there is no
43
- /// good implementation, and because the suggested bias may not exist, it is not
44
- /// implemented here.
41
+ /// named ISAAC+[3]. But because the specification is not complete, because
42
+ /// there is no good implementation, and because the suggested bias may not
43
+ /// exist, it is not implemented here.
45
44
///
46
45
/// ## Overview of the ISAAC algorithm:
47
46
/// (in pseudo-code)
@@ -84,6 +83,8 @@ const RAND_SIZE: usize = 1 << RAND_SIZE_LEN;
84
83
///
85
84
/// [3]: Jean-Philippe Aumasson, [*On the pseudo-random generator ISAAC*](
86
85
/// https://eprint.iacr.org/2006/438)
86
+ ///
87
+ /// [`Hc128Rng`]: prng/hc128/struct.Hc128Rng.html
87
88
#[ cfg_attr( feature="serde-1" , derive( Serialize , Deserialize ) ) ]
88
89
pub struct IsaacRng {
89
90
#[ cfg_attr( feature="serde-1" , serde( with="super::isaac_serde::rand_size_serde" ) ) ]
0 commit comments