5 ms·
Wanted to highlight it since it looks like it's a significant Pareto frontier jump from existing techniques.
by vlovich123 3y ago
Wanted to highlight it since it looks like it's a significant Pareto frontier jump from existing techniques.
- not_a_dane 3y agohow do we know it is a robust one ?
- ted_dunning 3y agoDid you read the article?
- rurban 3y agoHaven't checked it in smhasher yet. just saw this, claiming to be the very best. Well, maybe a PR will come soon. The rust framework for hashes is prepared, there just haven't been any good rust hashes yet.
- llimllib 3y agoi know nothing about this algorithm, but I went and checked that already; it does have a PR for smhasher: https://github.com/rurban/smhasher/pull/279 https://github.com/rurban/smhasher/pull/279 The note in there that the output of the algorithm is different for different SIMD widths seems to indicate that this isn't so much an algorithm as a family of related algorithms
- vlovich123 3y agoThat's a bit weird since it says on the front page that: > All generated hashes for a given version of GxHash are stable, meaning that for a given input the output hash will be the same across all supported platforms. The github repo is more recent so maybe it wasn't stable at the time they tried to get it into smhasher from last year?
- aidenn0 3y agoLooks like the original failed smhasher, since the PR modified the compress function
- ted_dunning 3y agoThe article quotes results from smhasher runs. It passes.
- AlotOfReading 3y agoHonestly, the paper is pretty confusing. It's a weird mix of explaining things people reading a hash paper should already know (e.g. avalanche effect) and not explaining the important bits. The mixing stage looks a lot like a Davies-meyer hash, but it's hard to be sure without reading code. If so, this will be susceptible to fixed point attacks (among others). It doesn't particularly matter because this isn't presented as secure, but worth noting. The paper also doesn't exhaustively verify numbers when domain=codomain, which is a super common scenario and a weird omission. 32 bits is small enough to check everything.
- vlovich123 3y agoThe hash internally is a 128bit hash & can output 32 or 64 bit as well. Can you speak more to how fixed point attacks are relevant? The only reference I found online was in a cryptographic context which wouldn't be relevant here. Are other hashes like SipHash-1-3 (Rust stdlib hashmap) or XXH3 susceptible to it?
- AlotOfReading 3y agoA fixed point attack would allow creating collisions. Whether that's an issue or not depends on your use case, but the answer is going to be yes surprisingly often in my experience.
- vlovich123 3y agoI don’t know about this at all, but ChatGPT suggests that this attack is thwarted by a secure compression function and block function. As you point out elsewhere, it uses AES for compression but not sure if that’s enough. Do you know?
- AlotOfReading 3y agoChatGPT would be wrong in this case. It applies to (and was originally identified with) hash functions built from cryptographically secure hash functions. Note that this isn't as strong as AES. It's just built with some of the same machinery as AES, it doesn't carry over its guarantees. Still an interesting construction I'll play around with some more when I have time.