123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .\
- .Dd April 15, 1997
- .Dt ARC4RANDOM 3
- .Os
- .Sh NAME
- .Nm arc4random ,
- .Nm arc4random_stir ,
- .Nm arc4random_addrandom
- .Nd arc4 random number generator
- .Sh SYNOPSIS
- .Fd #include <stdlib.h>
- .Ft uint32_t
- .Fn arc4random "void"
- .Ft void
- .Fn arc4random_stir "void"
- .Ft void
- .Fn arc4random_addrandom "u_char *dat" "int datlen"
- .Sh DESCRIPTION
- The
- .Fn arc4random
- function provides a high quality 32-bit pseudo-random
- number very quickly.
- .Fn arc4random
- seeds itself on a regular basis from the kernel strong random number
- subsystem described in
- .Xr random 4 .
- On each call, an ARC4 generator is used to generate a new result.
- The
- .Fn arc4random
- function uses the ARC4 cipher key stream generator,
- which uses 8*8 8-bit S-Boxes.
- The S-Boxes can be in about (2**1700) states.
- .Pp
- .Fn arc4random
- fits into a middle ground not covered by other subsystems such as
- the strong, slow, and resource expensive random
- devices described in
- .Xr random 4
- versus the fast but poor quality interfaces described in
- .Xr rand 3 ,
- .Xr random 3 ,
- and
- .Xr drand48 3 .
- .Pp
- The
- .Fn arc4random_stir
- function reads data from a pseudo-random device, usually
- .Pa /dev/urandom,
- and uses it to permute the S-Boxes via
- .Fn arc4random_addrandom .
- .Pp
- There is no need to call
- .Fn arc4random_stir
- before using
- .Fn arc4random ,
- since
- .Fn arc4random
- automatically initializes itself.
- .Sh SEE ALSO
- .Xr rand 3 ,
- .Xr rand48 3 ,
- .Xr random 3
- .Sh HISTORY
- An algorithm called
- .Pa RC4
- was designed by RSA Data Security, Inc.
- It was considered a trade secret.
- Because it was a trade secret, it obviously could not be patented.
- A clone of this was posted anonymously to USENET and confirmed to
- be equivalent by several sources who had access to the original cipher.
- Because of the trade secret situation, RSA Data Security, Inc. can do
- nothing about the release of the ARC4 algorithm.
- Since
- .Pa RC4
- used to be a trade secret, the cipher is now referred to as
- .Pa ARC4 .
- .Pp
- These functions first appeared in
- .Ox 2.1 .
|