table of contents
RANDOM(9) | Kernel Developer's Manual | 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);
uint32_t
arc4random
(void);
#include
<sys/random.h>
int
read_random
(void
*buffer, int
count);
DESCRIPTION¶
Therandom
() 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 remember that the
random
() function is entirely predictable,
and is therefore 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 directly 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 advised 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¶
Therandom
() 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,
approximately 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 wrotearc4random
().
Mark R V Murray wrote
read_random
().September 25, 2000 | Debian |