Hi,

If you want to get rid of RC4, use AES in CTR mode. It is standard,
compact, clean, and really fast solution. May sound boring, but gives
me a feel of solid security engineering.

Note that majority of systems now have the AES-NI instructions which
speed up AES implementations by an order of magnitude. The
implementations have a really small code + ram footprint. And it is a
freaking military standard: NSA "Suite B", classified up to top secret
:)

Note that eSTREAM is not a standard. It was basically an EU-funded
academic exercise for the PhD factories in EU that do cryptography. I
was there; I was one of those crypto PhD students; and I did break
some of the other proposals. I would not call HC ciphers as robust,
well studied ciphers.

Cheers,
- markku

Dr. Markku-Juhani O. Saarinen <m...@iki.fi>  US +1 (424) 666 2713


On Fri, Apr 18, 2014 at 7:47 PM, Taylor R Campbell
<campbell+netbsd-tech-k...@mumble.net> wrote:
>    Date: Fri, 18 Apr 2014 12:38:38 -0400
>    From: Thor Lancelot Simon <t...@panix.com>
>
>            3) If the algorithm's use of state-dependent array indices
>               presents a real weakness in practice, why aren't there any
>               published results on this and why was it chosen as, and
>               does it still remain in, the eSTREAM software portfolio?
>
> Hardly anyone uses HC-128, so there's no glory in publishing a
> practical timing attack on it.  It has been clear since 1996, and it
> has become abundantly clear in the past year with multiple practical
> timing attacks on OpenSSL and GnuPG, that timing side channels are a
> serious issue.  It would be irresponsible of us to make new choices
> that invite timing side channels, and secret-dependent array indices
> do precisely that.
>
> For what it's worth, there has been some work on cache-timing attacks
> on HC-128/256: <http://erikzenner.name/docs/2008_cache_sac.pdf>.
>
>            4) If you've got a better suggestion of a stream cipher to use
>               for this purpose, please make it.  I looked at all the eSTREAM
>               ciphers and this one really looks like the best suited to me.
>
> I would still suggest Salsa20 or ChaCha.  My measurements with naive C
> code suggest that, if you buffer the output for short outputs, these
> take on average 40-50 Ivy Bridge cycles per request.  (If you don't
> buffer the output, it's 300 cycles.)  Long requests get ~4 cpb.  In
> contrast, libc random(3) takes on average 50-60 Ivy Bridge cycles per
> request, and long requests get ~13 cpb.
>
> There's high public confidence in Salsa20 and ChaCha, we don't have to
> worry about cache-timing side channels, we don't have to worry about
> hurting the cache, and we don't have to worry about using an obscure
> algorithm even if eSTREAM did select it.
>
>    Here's what I don't want to do: adjust the bookkeeping and leave us
>    using RC-4.  It is dangerously broken.  I am very hesitant to commit
>    any changes to HEAD which overhaul this code in any way but leave RC-4
>    in use.
>
> We certainly need to get rid of RC4.  We don't need to get rid of it
> in one single commit, though.  A commit that makes it easier to get
> rid of RC4 by separating the algorithm from the bookkeeping is still
> worthwhile.

Reply via email to