Where Would You Find a Cuckoo In Cybersecurity?
In cybersecurity, we often hear of a canary, and which is a file that is used to probe for a response. But where would we find a cuckoo?
Well, cuckoo hashing involves a method that avoids having collisions in a hash table. Overall we in our table we have a hashkey-value pair, and where we take a look up term and hash it to provide a lookup hash. This hash then has an associated value. With a cuckoo hashing table, a new key inserted into a cuckoo hashing table can push an older key into a different location in the table. In a traditional hashing table, two keys could produce the same hash and thus cause a collision. With the cuckoo table, we create two hashes to avoid this. They were first proposed by Pagh and Rodler [here]:
The two hashes provide two possible locations in the hash table for each key. We can either split into two tables, or can have an index that merges the two hash functions. Let’s say we have four words (“apple”, “coconut”, “pear” and “banana”, we can use the BitHash() function to create two hash values for each:
v1 = BitHash(word1); v2 = BitHash(word1, v1); print(f"{word1}: {v1}, {v2}")