Hi Stephan,

Would you please provide a recent NIST document which asks the entropy source 
to pass the NIST randomness tests ?

Thanks,
Miaoqing

-----Original Message-----
From: Stephan Mueller [mailto:smuel...@chronox.de] 
Sent: Wednesday, August 10, 2016 2:25 PM
To: Pan, Miaoqing <miaoq...@qti.qualcomm.com>
Cc: Herbert Xu <herb...@gondor.apana.org.au>; Matt Mackall <m...@selenic.com>; 
miaoq...@codeaurora.org; Valo, Kalle <kv...@qca.qualcomm.com>; 
linux-wirel...@vger.kernel.org; ath9k-devel <ath9k-de...@qca.qualcomm.com>; 
linux-crypto@vger.kernel.org; ja...@lakedaemon.net; Sepehrdad, Pouyan 
<pouy...@qti.qualcomm.com>
Subject: Re: [PATCH 2/2] ath9k: disable RNG by default

Am Mittwoch, 10. August 2016, 06:04:32 CEST schrieb Pan, Miaoqing:

Hi Miaoqing,

> Hi Stephan,
> 
> FIPS RNG test is supposed to be run on the output of an RNG, and not 
> on the RNG entropy source. It is not surprising that the RNG input 
> fails the entropy tests from NIST. Check the following example.
> 
> Imagine you have a perfectly random sequence, a_1, a_2, .., a_n, where 
> each a_i is a byte. And imagine, this sequence passes all randomness tests.
> 
> Now, let's say I create a new sequence a_1, 0, a_2, 0, a_3, 0, ..., 0, 
> a_n, where each zero is a byte
> 
> If you give this sequence (as an entropy source) to a randomness test, 
> it will fail most of the tests, if not all. This does not mean this 
> sequence is not appropriate as an entropy source, it just means we 
> need twice more bytes to gain the same amount of entropy.

Agreed. But that is a very simplistic view.
> 
> I can give this 2n byte sequence to an RNG as an entropy source and it 
> provides the same amount of security as if I give the n byte stream.

Well, I am working with standards bodies like NIST and BSI on RNG assessments. 
They all require that the noise source (pre-whitening, of
course) pass statistical tests like the AIS20 tests, SP800-22 and similar. If 
you fail, you better have a good argument.

And the only argument that is kind of allowed is that you oversample your noise 
source to seed a DRNG from (i.e. have an entropy to data ratio of significantly 
below 1). And the argument for the oversampling rate is always a very 
interesting discussion. You apply 10/32. In private, I am wondering about that 
ratio, but this should not be discussed here as I hope you have a valid 
argument for that.

As we are talking about the current rngd, we have to consider that it does
*not* perform an oversampling (yet) as mentioned in the previous emails.

Do not get me wrong on my initial patch: your RNG may provide some entropy. 
But there are quite some folks who want to understand and audit a noise source 
before using it. Your current implementation simply does not allow switching 
the noise source off to feed the input_pool with data that increases the 
entropy estimator (at runtime).

Ciao
Stephan
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to