Is there a category of hash functions that hash a 64/32 bit input to exactly 64/32 bits output, such that all inputs are uniquely preserved? This could be an interesting property for a hash table of integers, because a hash match implies a key match.
Even if you used such a bijective hash, your hash table would have to have 2^32 available buckets in order for the hash match to be all you need for lookup. Or 2^64 for 64-bit… which is why nobody really does this. (And if you did this, why even hash the input? The input integer could just be the key, and you’re basically using a really big sparse array.)
Linear congruential generators in some cases can do that, though more often they are used to convert n bits of input data into a uniform distribution over a range from 0-m. For instance simulating chance in a game (dice rolls, or % probability).
Excellent tutorial for bitwise arithmetic this is. The key is the motivation you receive from the prospect of being able to do something that seems "l33t".
rurban|4 years ago
But only 3 so far.
elsamuko|4 years ago
https://cryptopals.com/sets/3/challenges/23
https://github.com/elsamuko/cryptopals/blob/610ab19bf6823a34...
Retr0id|4 years ago
superjan|4 years ago
ninkendo|4 years ago
JD557|4 years ago
However, if you can use a permutation as a hash function, you might be fine with just using the identity function.
judofyr|4 years ago
hinkley|4 years ago
praptak|4 years ago
namibj|4 years ago
omegalulw|4 years ago
Retr0id|4 years ago
blastonico|4 years ago
This is when I know for sure that I'm not included in that "you".
clon|4 years ago
unknown|4 years ago
[deleted]
duckfacts|4 years ago
[deleted]