*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> urandom (4)              
Title
Content
Arch
Section
 

random(4)

Contents


NAME    [Toc]    [Back]

       random, urandom - Kernel random number source devices

DESCRIPTION    [Toc]    [Back]

       The  /dev/random and /dev/urandom character device special
       files provide an interface to  the  kernel  random  number
       generator. The random number generator gathers environmental
 data from device drivers and  other  sources  into  an
       entropy  pool. The generator keeps an estimate of the number
 of bits of data in the entropy  pool.  Random  numbers
       are generated from this entropy pool.

       Writing  data  to  the  /dev/random or /dev/urandom device
       will mix the new data into the entrophy pool to  make  the
       random  data better, but it will not increase the entrophy
       estimate. This prevents a user from writing lots  of  lowentrophy
  data  to  the  pool  and  having the /dev/random
       device generate poor random data.

FILES    [Toc]    [Back]

       A character device special file that provides an interface
       to  the  kernel  random  number generator.  When read, the
       /dev/random file will return only random bytes within  the
       estimated  number  of  bits  of noise in the entropy pool.
       This is suitable for uses that need high  quality  randomness,
  such  as  one-time  pad  or  key generation. If the
       entropy pool is empty or does not  contain  enough  bytes,
       reads  to the /dev/random file will be blocked until additional
 environment noise is gathered.  A character  device
       special file that provides an interface to the kernel random
 number generator. When  read,  the  /dev/urandom  file
       will  return  as  many random bytes as are requested. As a
       result, if there are not sufficient bytes in  the  entropy
       pool,  reads  to  the /dev/urandom will not be blocked and
       the returned values  are  theoretically  vulnerable  to  a
       cryptographic attack on the algorithms used by the driver.
       If this  is  a  concern  for  your  application,  use  the
       /dev/random device instead.

EXAMPLES    [Toc]    [Back]

       To  generate a 16-byte random value and display it in hexadecimal
 characters, enter: % dd bs=16 count=1 < /dev/random
 | od -An -tx2 dfd5 7b74 0049 359f 35ed b2db e70d e629

       To generate eight random printable characters, enter: % dd
       bs=10 count=10 < /dev/random | tr -cd '[:print:]'  |  head
       -c8 sHp3#t6w

       To  select  4  random  words from a document, for example,
       Project Gutenberg's "Complete Works of Shakespeare"  (this
       example  is  for  csh), enter: % tr -cs '[:alpha:]' '\n' <
       shaks12.txt > shaks12.temp % set wc=`wc -l < shaks12.temp`
       %  set  words=(`dd  bs=16  count=1 < /dev/random | od -tu4
       -An`) % set w1=`expr $words[1] % $wc + 1` %  set  w2=`expr
       $words[2] % $wc + 1` % set w3=`expr $words[3] % $wc + 1` %
       set w4=`expr $words[4] % $wc + 1` % sed -n -e "$w1  p"  -e
       "$w2  p"  -e  "$w3  p"  -e  "$w4 p" < shaks12.temp wrested
       affected Cyprus least




LEGAL NOTICES    [Toc]    [Back]

       Derived from linux/drivers/char/random.c 2.4.0-test9

       random.c -- A strong random number generator

       Version 1.89, last modified 19-Sep-99

       Copyright Theodore Ts'o, 1994,  1995,  1996,  1997,  1998,
       1999.  All rights reserved.

       Redistribution and use in source and binary forms, with or
       without modification, are permitted provided that the following
  conditions are met: Redistributions of source code
       must retain the above copyright  notice,  and  the  entire
       permission  notice  in  its  entirety,  including the disclaimer
 of warranties.   Redistributions  in  binary  form
       must  reproduce  the  above copyright notice, this list of
       conditions and the following disclaimer in the  documentation
  and/or  other  materials provided with the distribution.
  The name of the author may not be used  to  endorse
       or  promote  products  derived  from this software without
       specific prior written permission.

       ALTERNATIVELY, this product may be distributed  under  the
       terms  of the GNU Public License, in which case the provisions
 of  the  GPL  are  required  INSTEAD  OF  the  above
       restrictions.   (This  clause is necessary due to a potential
 bad interaction between the GPL and the  restrictions
       contained in a BSD-style copyright.)

       THIS  SOFTWARE  IS  PROVIDED  ``AS IS'' AND ANY EXPRESS OR
       IMPLIED WARRANTIES, INCLUDING, BUT  NOT  LIMITED  TO,  THE
       IMPLIED  WARRANTIES  OF  MERCHANTABILITY AND FITNESS FOR A
       PARTICULAR PURPOSE, ALL OF WHICH  ARE  HEREBY  DISCLAIMED.
       IN  NO  EVENT  SHALL  THE AUTHOR BE LIABLE FOR ANY DIRECT,
       INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
       DAMAGES  (INCLUDING,  BUT  NOT  LIMITED TO, PROCUREMENT OF
       SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR  PROFITS;
  OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
       THEORY OF LIABILITY, WHETHER IN CONTRACT,  STRICT  LIABILITY,
  OR  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
       IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,  EVEN  IF  NOT
       ADVISED OF THE POSSIBILITY OF SUCH  DAMAGE.



                                                        random(4)
[ Back ]
 Similar pages
Name OS Title
prandom OpenBSD random data source devices
random OpenBSD random data source devices
urandom OpenBSD random data source devices
arandom OpenBSD random data source devices
srandom OpenBSD random data source devices
rand OpenBSD bad random number generator
rand_r OpenBSD bad random number generator
random Linux random number generator.
rand Linux random number generator.
srand OpenBSD bad random number generator
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service