History-Independent Cuckoo Hashing

Cuckoo hashing is an efficient and practical dynamic dictionary. It provides expected amortized constant update time, worst case constant lookup time, and good memory utilization. Various experiments demonstrated that cuckoo hashing is highly suitable for modern computer architectures and distributed settings, and offers significant improvements compared to other schemes. In this work we construct a practical history-independentdynamic dictionary based on cuckoo hashing. In a history-independent data structure, the memory representation at any point in time yields no information on the specific sequence of insertions and deletions that led to its current content, other than the content itself. Such a property is significant when preventing unintended leakage of information, and was also found useful in several algorithmic settings. Our construction enjoys most of the attractive properties of cuckoo hashing. In particular, no dynamic memory allocation is required, updates are performed in expected amortized constant time, and membership queries are performed in worst case constant time. Moreover, with high probability, the lookup procedure queries only two memory entries which are independent and can be queried in parallel. The approach underlying our construction is to enforce a canonical memory representation on cuckoo hashing. That is, up to the initial randomness, each set of elements has a unique memory representation.

[1]  Peter Bro Miltersen Error correcting codes, perfect hashing circuits, and deterministic dynamic dictionaries , 1998, SODA '98.

[2]  Martin Dietzfelbinger,et al.  Balanced allocation and dictionaries with tightly packed constant size bins , 2005, Theor. Comput. Sci..

[3]  Kai-Min Chung,et al.  Why simple hash functions work: exploiting the entropy in a data stream , 2008, SODA '08.

[4]  Anna Pagh,et al.  Uniform hashing in constant time and linear space , 2003, STOC '03.

[5]  D. Golovin,et al.  Linear Equations Modulo 2 and the L1 Diameter of Convex Bodies , 2007, FOCS 2007.

[6]  Úlfar Erlingsson,et al.  A cool and practical alternative to traditional hash tables , 2006 .

[7]  János Komlós,et al.  Storing a sparse table with O(1) worst case access time , 1982, 23rd Annual Symposium on Foundations of Computer Science (sfcs 1982).

[8]  Moni Naor,et al.  Anti-persistence: history independent data structures , 2001, STOC '01.

[9]  Svante Janson,et al.  Random graphs , 2000, Wiley-Interscience series in discrete mathematics and optimization.

[10]  Michael Mitzenmacher,et al.  More Robust Hashing: Cuckoo Hashing with a Stash , 2008, ESA.

[11]  Daniele Micciancio,et al.  Oblivious data structures: applications to cryptography , 1997, STOC '97.

[12]  Paul G. Spirakis,et al.  Space Efficient Hash Tables with Worst Case Constant Access Time , 2003, Theory of Computing Systems.

[13]  Marcin Zukowski,et al.  Architecture-conscious hashing , 2006, DaMoN '06.

[14]  Brent Waters,et al.  Cryptographic Methods for Storing Ballots on a Voting Machine , 2007, NDSS.

[15]  Guy E. Blelloch,et al.  Strongly History-Independent Hashing with Applications , 2007, 48th Annual IEEE Symposium on Foundations of Computer Science (FOCS'07).

[16]  Friedhelm Meyer auf der Heide,et al.  Dynamic perfect hashing: upper and lower bounds , 1988, [Proceedings 1988] 29th Annual Symposium on Foundations of Computer Science.

[17]  Noga Alon,et al.  Derandomization, witnesses for Boolean matrix multiplication and construction of perfect hash functions , 1994, Algorithmica.

[18]  Paul F. Dietz,et al.  Two algorithms for maintaining order in a list , 1987, STOC.

[19]  Martin Dietzfelbinger,et al.  Almost random graphs with simple hash functions , 2003, STOC '03.

[20]  Rina Panigrahy,et al.  Efficient hashing with lookups in two memory accesses , 2004, SODA '05.

[21]  Moni Naor,et al.  Deterministic History-Independent Strategies for Storing Information on Write-Once Memories , 2007, Theory Comput..

[22]  Richard Cole,et al.  Two Simplified Algorithms for Maintaining Order in a List , 2002, ESA.

[23]  Mihir Bellare,et al.  Incremental Cryptography: The Case of Hashing and Signing , 1994, CRYPTO.

[24]  David A. Wagner,et al.  Tamper-evident, history-independent, subliminal-free data structures on PROM storage -or- how to store ballots on a voting machine , 2006, 2006 IEEE Symposium on Security and Privacy (S&P'06).

[25]  Mihir Bellare,et al.  Incremental cryptography and application to virus protection , 1995, STOC '95.

[26]  Rasmus Pagh,et al.  Cuckoo Hashing , 2001, Encyclopedia of Algorithms.

[27]  Erez Petrank,et al.  Lower and upper bounds on obtaining history independence , 2006, Inf. Comput..

[28]  Edwin S. Hong,et al.  Characterizing History Independent Data Structures , 2002, Algorithmica.

[29]  Alan M. Frieze,et al.  Random graphs , 2006, SODA '06.

[30]  Svante Janson,et al.  Random graphs , 2000, ZOR Methods Model. Oper. Res..

[31]  Alan Siegel,et al.  On universal classes of fast high performance hash functions, their time-space tradeoff, and their applications , 1989, 30th Annual Symposium on Foundations of Computer Science.

[32]  Kenneth A. Ross Efficient Hash Probes on Modern Processors , 2007, 2007 IEEE 23rd International Conference on Data Engineering.

[33]  Reinhard Kutzelnigg Bipartite Random Graphs and Cuckoo Hashing , 2006 .