Crates.io | mc-oblivious-map |
lib.rs | mc-oblivious-map |
version | 2.3.0 |
source | src |
created_at | 2021-03-09 07:25:39.42055 |
updated_at | 2023-03-25 17:44:07.942131 |
description | Implementation of Oblivious Hash Map data structures on top of Oblivious RAM |
homepage | |
repository | https://github.com/mobilecoinofficial/mc-oblivious |
max_upload_size | |
id | 366125 |
size | 96,154 |
This crate provides an implementation of an oblivious hashmap on top of oblivious RAM,
meeting the requirements in the trait described in mc-oblivious-traits
.
In crate right now:
access-or-insert
method is novel in this work, see code comments for discussion.For more background, see also "power of two choices" hashing (ABKU99, Mitzenmacher). And wikipedia for additional background. This is conceptually an ancestor of cuckoo hashing. The main reason to use this, or cuckoo hashing, in our context, is that it guarantees that reads make exactly two accesses to the table, which makes the constant-time property easy to verify. Cuckoo hashing achieves good memory utilization, better than "power of two choices", which is what we tried first.