Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
RANDOM(9)		 BSD Kernel Developer's	Manual		     RANDOM(9)

NAME
     arc4rand, arc4random, random, read_random,	srandom	-- supply pseudo-ran-
     dom 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 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 us-
     able.  For	example, `random()&01' will produce a random binary value.

     The arc4random() is a convenience function	which calls arc4rand() to re-
     turn 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, approximately
     16*((2**31)-1).

     The arc4rand() function uses the RC4 algorithm to generate	successive
     pseudo-random bytes.  The arc4random() function uses arc4rand() to	gener-
     ate 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			   BSD

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | AUTHORS

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=arc4random&sektion=9&manpath=FreeBSD+6.4-RELEASE>

home | help