tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: cprng_fast implementation benchmarks
On Apr 22, 2014, at 11:59 PM, Thor Lancelot Simon <tls%panix.com@localhost>
wrote:
> ...
> RESULTS
>
> kernel cpb (32 bit) 4GB (1 way) 16GB (4 ways) Scaling
> Factor
> ------ ------------ ----------- -------------
> --------------
> arc4-mtx 35 42.58 398.83 0.106
> arc4-nomtx 24 42.12 2338.92 0.018
> arc4-percpu 27 33.63 41.59 0.808
> hc128-percpu 21 23.75 34.90 0.680
> hc128-inline 19 22.66 31.75 0.713
> chacha8 22 20.51 30.45 0.662
> chacha12 24 24.87 34.32 0.724
> chacha20 28 30.45 39.28 0.775
>
> I believe ChaCha8 is suitable for our purpose: we were previously considering
> ciphers with, at most, 128-bit security, and even 6-round ChaCha has 139-bit
> strength against the best currently known attack (at present, there is no
> attack better than brute force on ChaCha8, and the best attack on ChaCha7
> is 2^248). ChaCha8 appears to be somewhat faster than the old arc4
> implementation.
I’ve been watching this long stream of messages flying by, and I’m a bit
concerned about the approach.
As I understand it, there is a strong RNG, based on RC4 (“ARC4”) in the kernel
today. It is used by some things that require strong random numbers, and also
by things that don’t (or at most, have weaker requirements than the
cryptographic operations that require serious strength). It isn’t clear to me
what fraction of the workload really requires the cryptographically strong
generator.
Replacing the existing strong generator by a new one that is faster is
tempting. The question is: how much confidence do you need in the new
algorithm?
For things like port randomization, not much. One might argue that a PRNG is
fine for that. On the other hand, for those spots where cryptographic random
numbers are required, a lot.
It isn’t at all clear to me that the proposed replacements are sufficiently
well analyzed. If someone were to propose a replacement whose security is
demonstrably that of the AES block cipher, I’d be a whole lot more comfortable,
because AES is one of the very few cryptosystems out there that has had
significant analysis. (RC4 may be another, though in that case there have been
some results that raise concern.)
It would probably also be useful to identify the various uses of kernel RNGs,
and document clearly what their security requirements (if any) are.
paul
Home |
Main Index |
Thread Index |
Old Index