|
|
|
|
|
by floody-berry
4261 days ago
|
|
Grøstl's round 3 specification document mentions 3 'strategies' for constant time implementations: AES-NI, vperm (AVX/XOP/NEON), or bitsliced (which they estimate "only a 50% overhead" for vs tables). Yet almost all of the implementations they provide that are not AES-NI are either table based or horrifically slow. ARM/NEON is the only non-AES-NI platform with a constant time implementation that is sometimes on par with the table based alternative. Their constant time approach is "assume use of hardware AES instructions, otherwise enjoy a speed hit if you want to be safe". |
|
There are many competing requirements when designing a primitive. Groestl's choices were not necessarily wrong, even when treating side-channel attacks as a "big issue". I don't like Groestl, but I get what they were trying to achieve; Keccak did it much better, though.
[1] http://www.groestl.info/groestl-implementation-guide.pdf