Skip to content

Commit

Permalink
Tmo
Browse files Browse the repository at this point in the history
  • Loading branch information
claucece committed Jan 16, 2024
1 parent 78900d6 commit 199e036
Showing 1 changed file with 2 additions and 17 deletions.
19 changes: 2 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
# Chalamet

![Chalamet workflow](https://github.com/claucece/chalamet/actions/workflows/rust.yml/badge.svg)

An implementation of the Chalamet Private Information Retrieval scheme. Find the details over [our eprint paper](https://eprint.iacr.org/2022/981.pdf).
An implementation of the Chalamet Private Information Retrieval scheme.

We introduce **ChalametPIR**: a single-server Private Information Retrieval (PIR) scheme supporting fast, low-bandwidth keyword queries, with a conceptually very simple design. In particular, we develop a generic framework for converting from PIR schemes for flat arrays (based on the Learning With Errors problem) into keyword PIR, by representing a key-value map using any data storage filter. In particular, we make use of recently developed Binary Fuse Filters to achieve a keyword PIR scheme with minimal blow-up (bounded by a factor of ≤ 1.08) compared with state-of-the-art index-based schemes. We implement ChalametPIR in Rust, and show that it achieves runtimes and financial costs that are factors of
between 6×-11× and 3.75×-11.4× more efficient, respectively, for varying database configurations. Bandwidth costs are either reduced or competitive depending on the configuration. While our focus is clearly on PIR, we believe that our application of Binary Fuse Filters may have independent value for other systems and cryptographic primitives.
Expand All @@ -11,7 +9,7 @@ between 6×-11× and 3.75×-11.4× more efficient, respectively, for varying dat

## Requirements

In order to [natively](#native) build, run, test and benchmark the library, you will need the following:
In order to natively build, run, test and benchmark the library, you will need the following:

```
Rust >= 1.61.0
Expand Down Expand Up @@ -102,16 +100,3 @@ We have two big tests that the library executes:
2. `client_query_to_server_attempt_params_reuse` test which executes the client-to-server
functionality one time. It asserts that once parameters for a query are used, they
are marked as so, and cannot be reused.

## Citation

```
@misc{cryptoeprint:2024/949,
author = {Sofía Celi and Alex Davidson},
title = {Call Me By My Name: Simple, Practical Private Information Retrieval for Keyword Queries},
howpublished = {Cryptology ePrint Archive, Paper 2022/981},
year = {2024},
note = {\url{https://eprint.iacr.org/2022/981}},
url = {https://eprint.iacr.org/2022/981}
}
```

0 comments on commit 199e036

Please sign in to comment.