Sun Microsystems, Inc.
spacerspacer
spacer   www.sun.com docs.sun.com | | |  
spacer
black dot
   
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z
    
 
Devicesrandom(7D)


NAME

 random, urandom - Strong random number generator device

SYNOPSIS

 
/dev/random
 
/dev/urandom

DESCRIPTION

 

The /dev/random and /dev/urandom files are special files that are a source for random bytes generated by the kernel random number generator device. The /dev/random and /dev/urandom files are suitable for applications requiring high quality random numbers for cryptographic purposes.

The generator device produces random numbers from data and devices available to the kernel and estimates the amount of randomness (or "entropy") collected from these sources. The entropy level determines the amount of high quality random numbers that are produced at a given time.

Applications retrieve random bytes by reading /dev/random or /dev/urandom. The /dev/random interface returns random bytes only when sufficient amount of entropy has been collected. If there is no entropy to produce the requested number of bytes, /dev/random blocks until more entropy can be obtained. Non-blocking I/O mode can be used to disable the blocking behavior. The /dev/random interface also supports poll(2). Note that using poll(2) will not increase the speed at which random numbers can be read.

Bytes retrieved from /dev/random provide the highest quality random numbers produced by the generator, and can be used to generate long term keys and other high value keying material.

The /dev/urandom interface returns bytes regardless of the amount of entropy available. It does not block on a read request due to lack of entropy. While bytes produced by the /dev/urandom interface are of lower quality than bytes produced by /dev/random, they are nonetheless suitable for less demanding and shorter term cryptographic uses such as short term session keys, paddings, and challenge strings.

Data can be written to /dev/random and /dev/urandom. Data written to either special file is added to the generator's internal state. Data that is difficult to predict by other users may contribute randomness to the generator state and help improve the quality of future generated random numbers.

By default, write access is restricted to the super-user. An administrator may change the default read/write restriction by changing the permissions on the appropriate special files.

ERRORS

 

EAGAIN
O_NDELAY or O_NONBLOCK was set and no random bytes are available for reading from /dev/random.
EINTR
A signal was caught while reading and no data was transferred.

FILES

 
/dev/random
/dev/urandom

ATTRIBUTES

 

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPEATTRIBUTE VALUE
Availability SUNWcsr (32-bit)
  SUNWcarx (64-bit)
Interface StabilityEvolving

SEE ALSO

 

poll(2), attributes(5)

NOTES

 

An implementation of the /dev/random and /dev/urandom kernel-based random number generator first appeared in Linux 1.3.30.

A /dev/random interface for Solaris first appeared as part of the CryptoRand implementation.


SunOS 5.9Go To TopLast Changed 01 Mar 2001

 
      
      
Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.