random(9)
NAME
- arc4rand, arc4random, random, read_random, srandom - supply
- pseudo-random
numbers
SYNOPSIS
#include <sys/libkern.h>
void
srandom(u_long seed);
u_long
random(void);
void
arc4rand(void *ptr, u_int length, int reseed);
u_int32_t
arc4random(void);
#include <sys/random.h>
int
read_random(void *buffer, int count);
DESCRIPTION
- The random() function will by default produce a sequence of
- numbers that
can be duplicated by calling srandom() with `1' as the seed.
- The
srandom() function may be called with any arbitrary seed
- value to get
slightly more unpredictable numbers. It is important to re
- member that
the random() function is entirely predictable, and is there
- fore not of
use where knowledge of the sequence of numbers may be of
- benefit to an
attacker.
- The arc4rand() function will return very good quality random
- numbers,
slightly better suited for security-related purposes. The
- random numbers
from arc4rand() are seeded from the entropy device if it is
- available.
Automatic reseeds happen after a certain timeinterval and
- after a certain
number of bytes have been delivered. A forced reseed can be
- forced by
passing a non-zero value in the reseed argument.
- The read_random() function is used to return entropy direct
- ly from the
entropy device if it has been loaded. If the entropy device
- is not
loaded, then the buffer is filled with output generated by
- random(). The
buffer is filled with no more than count bytes. It is ad
- vised that
read_random() is not used; instead use arc4rand()
- All the bits generated by random(), arc4rand() and
- read_random() are
usable. For example, `random()&01' will produce a random
- binary value.
- The arc4random() is a convenience function which calls
- arc4rand() to
return a 32 bit pseudo-random integer.
RETURN VALUES
- The random() function uses a non-linear additive feedback
- random number
generator employing a default table of size 31 long integers
- to return
successive pseudo-random numbers in the range from 0 to
- (2**31)-1. The
period of this random number generator is very large, ap
- proximately
16*((2**31)-1).
- The arc4rand() function uses the RC4 algorithm to generate
- successive
pseudo-random bytes. The arc4random() function uses
- arc4rand() to generate pseudo-random numbers in the range from 0 to (2**32)-1.
- The read_random() function returns the number of bytes
- placed in buffer.
AUTHORS
- Dan Moschuk wrote arc4random().
Mark R V Murray wrote read_random().
- BSD September 25, 2000