Hacker News new | past | comments | ask | show | jobs | submit login

This example is unfortunately somewhat broken: the 'salt' in that case does not yield an exponential but only linear increase of the number of dictionaries.

Contrary to what the post says, it is not necessary to compute the 3,125 possible orders. Only 5 reverse dictionaries are enough, with reverse(n, w) = "the set of definitions the nth word of which is w". Then, iterate the reverse lookup following backwards the provided salt.

It makes the attack much more tractable, in particular since the length of definitions is bounded (you know how many dictionaries you need to compute).

True. I'll add a PS pointing to this comment and set it as an exercise for the reader that it would be possible to reduce the number of dictionaries.

Perhaps the salt could be strengthened to include an additional midstep..."find the 3rd word in the definition five words behind the given word"...not exactly exponential, but it doesn't add a huge burden of work in the implementation

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact