4.16: /dev/random - a new approach

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

The patch set available at [1] provides a different approach to /dev/random 
which I call Linux Random Number Generator (LRNG) to collect entropy within 
the Linux kernel. The main improvements compared to the legacy /dev/random is 
to provide sufficient entropy during boot time as well as in virtual 
environments and when using SSDs. A secondary design goal is to limit the 
impact of the entropy collection on massive parallel systems and also allow 
the use accelerated cryptographic primitives. Also, all steps of the entropic 
data processing are testable.

The design and implementation is driven by a set of goals described in [1]
that the LRNG completely implements. Furthermore, [1] includes a
comparison with RNG design suggestions such as SP800-90B, SP800-90C, and
AIS20/31.

The LRNG provides a complete separation of the noise source maintenance
and the collection of entropy into an entropy pool from the post-processing
using a pseudo-random number generator. Different PRNGs are supported,
including:

* Built-in ChaCha20 PRNG which has no dependency to other kernel
  frameworks.

* SP800-90A DRBG using the kernel crypto API including its accelerated
  raw cipher implementations.

* Arbitrary PRNGs registered with the kernel crypto API

Booting the patch with the kernel command line option
"dyndbg=file drivers/char/lrng* +p" generates logs indicating the operation
of the LRNG. Each log is pre-pended with "lrng:".

The LRNG has a flexible design by allowing an easy replacement of the
deterministic random number generator component.

[1] http://www.chronox.de/lrng.html

Changes (compared to the previous patch set for 4.15):

 * Addition of SPOX copyright identifier
 * Use the updated poll infrastructure
 * Add the kernel crypto API PRNG support
-- 
2.14.3







[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux