ignore .bbl, etc
[ach-master.git] / src / RNGs.tex
index 6f217ea..a873b46 100644 (file)
@@ -12,7 +12,7 @@ support for generating entropy is essential.
 
 Hardware random number generators in operating systems or standalone
 components collect entropy from various random events mostly by using
-the (low bit of the) time an event occurs as a entropy source. The
+the (low bits of the) time an event occurs as an entropy source. The
 entropy is merged into an entropy pool and in some implementations there
 is some bookkeeping about the number of random bits available.
 
@@ -35,20 +35,17 @@ Embedded devices lack some entropy sources other devices have, e.g.:
 Virtual machines emulate some hardware components so that the
 generated entropy is over-estimated. The most critical component that
 has been shown to return wrong results in an emulated environment is the
-timing
-source\footnote{\url{http://jakob.engbloms.se/archives/1374},\url{https://polarssl.org/tech-updates/security-advisories/polarssl-security-advisory-2011-02}}.
+timing source\cite{Eng11,POL11}.
 
 Typically the most vulnerable time where low-entropy situations occur is
 shortly after a reboot. Unfortunately many operating system installers
-create cryptographic keys shortly after a
-reboot\footnote{\url{https://factorable.net/weakkeys12.extended.pdf}}.
+create cryptographic keys shortly after a reboot\cite{HDWH12}.
 
 Another problem is that OpenSSL seeds its internal random generator only
 seldomly from the hardware random number generator of the operating
 system. This can lead to situations where a daemon that is started at a
 time when entropy is low keeps this low-entropy situation for hours
-leading to predictable session
-keys\footnote{\url{https://factorable.net/weakkeys12.extended.pdf}}.
+leading to predictable session keys\cite{HDWH12}.
 
 \subsection{Linux}
 
@@ -59,8 +56,7 @@ insufficient) entropy has been collected so far.
 
 Unfortunately most crypto implementations are using \verb+/dev/urandom+
 and can produce predictable random numbers if not enough entropy has
-been
-collected\footnote{\url{https://factorable.net/weakkeys12.extended.pdf}}.
+been collected\cite{HDWH12}.
 
 Linux supports the injection of additional entropy into the entropy pool
 via the device \verb+/dev/random+. On the one hand this is used for
@@ -82,17 +78,15 @@ software that generates entropy and feeds this to kernel entropy pool
 (e.g. by writing to \verb+/dev/random+ on Linux) is recommended. Note
 that only a process run as root can update the entropy counters in the
 kernel, each non-root user-process can feed entropy to the pool but
-cannot update the
-counters\footnote{\url{https://en.wikipedia.org/wiki/dev/random}}.
+cannot update the counters\cite{Wikipedia:/dev/random}.
 
 For Linux the \verb+haveged+
-implementation\footnote{\url{http://www.issihosts.com/haveged/}} based on the
-HAVEGE\footnote\url{http://www.irisa.fr/caps/projects/hipsor/scripts/down.php?id=13781296\&ext=.pdf}
+implementation\cite{HAV13a} based on the HAVEGE\cite{SS03}
 strong random number generator currently looks like the best choice. It
 can feed its generated entropy into the kernel entropy pool and recently
 has grown a mechanism to monitor the quality of generated random
-numbers\footnote{\url{http://www.issihosts.com/haveged/ais31.html}}. The
-memory footprint may be too high for small embedded devices, though.
+numbers\cite{HAV13b}. The memory footprint may be too high for small
+embedded devices, though.
 
 For systems where -- during the lifetime of the keys -- it is expected
 that low-entropy situations occur, RSA keys should be preferred over DSA
@@ -101,5 +95,4 @@ are used for signing this may lead to repeated ephemeral keys. An
 attacker who can guess an ephemeral private key used in such a signature
 can compromise the DSA secret key.
 For RSA this can lead to discovery of encrypted plaintext or forged
-signatures but not to the compromise of the secret
-key\footnote{\url{https://factorable.net/weakkeys12.extended.pdf}}.
+signatures but not to the compromise of the secret key\cite{HDWH12}.