| « enRUPT Related-key Attack | ïrRUPT Collision Resistance » |
After studying Sebastiaan’s linearization attack in detail, we have come to the conclusion that EnRUPT does not require any structural changes, corrections or tweaks and that its dismissal is more than premature. It is only a matter of setting the ‘s’ parameter to a slightly higher value increasing the amount of diffusion in the state between inputs.
It is incorrect to call EnRUPT or EnRUPT/s broken in general as there is no structural flaw exploited in the recent collision attack. Only EnRUPT/4 is broken so far. After a detailed study of this attack, we can recommend the following variants:
EnRUPT64x2-224/8, s=H=8
EnRUPT64x2-256/8, s=H=8
EnRUPT64x2-384/12, s=H=12
EnRUPT64x2-512/16, s=H=16
That is, EnRUPT64x2/H by simply setting s=H. In general, s should be set to approximately (h+63)/64+4P-2 for all the different EnRUPT variants throwing all such linearization based collision searches well beyond the birthday bound. At such speed, ïrRUPT preimage resistance will also be higher.
In regard to the other variants included in the submission, we also recommend:
EnRUPT32x2-128/8, s=H=8
EnRUPT32x2-160/10, s=H=10
EnRUPT32x2-192/12, s=H=12
As NIST requested, we have submitted a highly parameterised algorithm to the SHA-3 competition. It looks like we have chosen a variant that is a little too fast to resist linearization based collision searches. Even being 2-4 times slower, EnRUPT still has a competitive performance at 10-20 CPB on 64-bit CPUs, much faster than most submissions. Or maybe we should have submitted EnRUPT/2H or EnRUPT/64 like Professor Bernstein did with CubeHash/1 just to avoid someone labelling it as “broken” in a hurry? Are we looking for a good algorithm or are we looking to get rid of all the most competitive algorithms as quickly as possible?
We hope that Sebastiaan will have the time to include in his paper his own measurements of what values of s are sufficient for EnRUPT to resist such attacks. We sincerely apologise for any inconvenience caused. We will publish a paper with our findings after Sebastiaan Indesteege publishes the details of his cryptanalysis.
Unless proven otherwise, it is still unnecessary to use such high values of s for the stream cipher modes as the cost of finding linearized collisions in the unkeyed unrandomised ïrRUPT has no impact on other attack scenarios. EnRUPT can still use s=2 to operate as a PRNG or authenticated or unauthenticated stream cipher (running at 2-2.5 CPB on 64-bit Core 2 Duo).