Anti-persistence: history independent data structures

Many data structures give away much more information than they were intended to. Whenever privacy is important, we need to be concerned that it might be possible to infer information from the memory representation of a data structure that is not available through its “legitimate” interface. Word processors that quietly maintain old versions of a document are merely the most egregious example of a general problem. We deal with data structures whose current memory representation does not reveal their history. We focus on dictionaries, where this means revealing nothing about the order of insertions or deletions. Our first algorithm is a hash table based on open addressing, allowing O(1) insertion and search. We also present a history independent dynamic perfect hash table that uses space linear in the number of elements inserted and has expected amortized insertion and deletion time O(1). To solve the dynamic perfect hashing problem we devise a general scheme for history independent memory allocation. For fixed-size records this is quite efficient, with insertion and deletion both linear in the size of the record. Our variable-size record scheme is efficient enough for dynamic perfect hashing but not for general use. The main open problem we leave is whether it is possible to implement a variable-size record scheme with low overhead.

[1]  Donald E. Knuth,et al.  The Art of Computer Programming, Volumes 1-3 Boxed Set , 1998 .

[2]  Rafail Ostrovsky,et al.  Software protection and simulation on oblivious RAMs , 1996, JACM.

[3]  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).

[4]  Leonidas J. Guibas,et al.  The Analysis of Double Hashing , 1978, J. Comput. Syst. Sci..

[5]  George S. Lueker,et al.  More analysis of double hashing , 1993, Comb..

[6]  Robert E. Tarjan,et al.  Making Data Structures Persistent , 1989, J. Comput. Syst. Sci..

[7]  Donald E. Knuth,et al.  Sorting and Searching , 1973 .

[8]  Friedhelm Meyer auf der Heide,et al.  A New Universal Class of Hash Functions and Dynamic Hashing in Real Time , 1990, ICALP.

[9]  Cecilia R. Aragon,et al.  Randomized search trees , 1989, 30th Annual Symposium on Foundations of Computer Science.

[10]  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.

[11]  Andrew Chi-Chih Yao Uniform hashing is optimal , 1985, JACM.

[12]  Richard P. Brent,et al.  Reducing the retrieval time of scatter storage techniques , 1973, Commun. ACM.

[13]  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.

[14]  A. Siegel,et al.  On Aspects of Universality and Performance for Closed Hashing (Extended Abstract) , 1989, STOC 1989.

[15]  A. Andersson,et al.  Faster uniquely represented dictionaries , 1991, [1991] Proceedings 32nd Annual Symposium of Foundations of Computer Science.

[16]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

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

[18]  Jeanette P. Schmidt,et al.  The analysis of closed hashing under limited randomness , 1990, STOC '90.

[19]  Friedhelm Meyer auf der Heide,et al.  Dynamic Perfect Hashing: Upper and Lower Bounds , 1994, SIAM J. Comput..

[20]  Donald E. Knuth,et al.  Ordered Hash Tables , 1974, Comput. J..