CPRNG(8) BSD System Manager's Manual CPRNG(8)
NAME
cprng - CPU Oscillation Random Number Generator
SYNOPSIS
cprng [-p]
cprng [-p] -rnumber
DESCRIPTION
cprng generates random numbers by taking the difference between the cy-
clic clock of the mainboard and the CPU. This algorithm is often known as
"truerand" and only works if the CPU and timer interrupt are driven by
separate stroke sources, and works better the more idle the system is,
because otherwise basically the scheduler is measured.
Normal mode of operation is to run in the background and periodically
feed some bytes into the kernel random(9) subsystem by writes to
/dev/urandom. If you have better entropy sources, like a hardware RNG on
some chipsets, or a combination of much disc, network and interactive
I/O, or if your interrupt and CPU clocks are not driven by separate
ticks, you might want to disable cprng in /etc/rc.conf.
The options are as follows:
-p Use ITIMER_PROF as timer source. This one is often more reliably
from a different clock source than ITIMER_REAL, but does not ex-
ist on some operating systems.
-rnumber
Instead of becoming a daemon and running in the background with
low priority, feeding generated entropy into /dev/urandom, create
number bytes of entropy and write it to standard output while
running with high priority, then exit. The number argument must
be decimal and between 1 and 1024, inclusive. This is the pre-
ferred mode of operation on other operating systems. Output qual-
ity can be measured with MirPorts ports/math/ent and this option.
SEE ALSO
arc4random(3), RC4(3), random(4), random(9)
http://www.cs.berkeley.edu/~daw/rnd/mab-rand
http://fourmilab.ch/random/
HISTORY
The cprng daemon first appeared in MirBSD #10.
AUTHORS
The cprng utility was written by Thorsten Glaser <tg@mirbsd.de>.
CAVEATS
The output produced by the -r option is debiased using the von Neumann
compressor (whitener) algorithm, but still not yet suitable for direct
use. It can be fed into the kernel random(9) subsystem on MirBSD and
OpenBSD, but not, for example, on FreeBSD or GNU/Linux. Post-processing
with RC4(3) and mixing with other entropy sources is highly recommended.
Measure output quality with John Walker's ent utility before use on any
system. Take special attention to the Chi-Square values.
This utility has been retired and is no longer part of MirBSD.
MirBSD #10-current April 12, 2015 1