DESCRIPTION

The
Fn arc4random
function uses the key stream generator employed by the
arc4 cipher, which uses 8*8 8 bit S-Boxes.
The S-Boxes
can be in about
(2**1700)
states.
The
Fn arc4random
function returns pseudo-random numbers in the range of 0 to
(2**32)-1,
and therefore has twice the range of
rand(3)
and
random(3).

Fn arc4random_uniform
will return a uniformly distributed random number less than
Fa upper_bound .
Fn arc4random_uniform
is recommended over constructions like
``arc4random() % upper_bound
''
as it avoids "modulo bias" when the upper bound is not a power of two.

The
Fn arc4random_stir
function reads data from
/dev/urandom
and uses it to permute the S-Boxes via
Fn arc4random_addrandom .

There is no need to call
Fn arc4random_stir
before using
Fn arc4random
functions family, since
they automatically initialize themselves.

EXAMPLES

The following produces a drop-in replacement for the traditional
Fn rand
and
Fn random
functions using
Fn arc4random :

"#define foo4random() (arc4random() % ((unsigned)RAND_MAX + 1))"

SEE ALSO

HISTORY

RC4
has been designed by RSA Data Security, Inc.
It was posted anonymously
to the USENET and was confirmed to be equivalent by several sources who
had access to the original cipher.
Since
RC4
used to be a trade secret, the cipher is now referred to as
ARC4