A template for 2-server 1-bit Distributed Point Function. The construction is from "Function Secret Sharing: Improvements and Extensions" from Boyle et al.
Paper: https://cs.idc.ac.il/~elette/FSS-CCS.pdf
| Directory | Language | Description |
|---|---|---|
libdpf-c/ |
C | Native implementation with hardware-accelerated AES (x86_64 & ARM64) |
libdpf-rust/ |
Rust | Rust implementation |
libdpf-ts/ |
TypeScript | TypeScript implementation |
The C implementation supports hardware-accelerated AES on:
- x86_64/x64: Uses Intel AES-NI instructions
- ARM64/Apple Silicon: Uses ARMv8-A Cryptographic Extension (NEON AES instructions)
cd libdpf-c
mkdir build && cd build
cmake ..
make
./fss # Run self-testAdd this to your Cargo.toml:
[dependencies]
libdpf = { git = "https://github.com/weikengchen/libdpf.git" }Or to use a specific branch:
[dependencies]
libdpf = { git = "https://github.com/weikengchen/libdpf.git", branch = "main" }Add this to your package.json:
{
"dependencies": {
"libdpf": "github:weikengchen/libdpf#main"
}
}Or with npm:
npm install weikengchen/libdpfOr with yarn:
yarn add weikengchen/libdpfThe TypeScript package will be automatically built from libdpf-ts/ during installation.
- Boyle et al. "Function Secret Sharing: Improvements and Extensions" CCS'16
- Frank Wang et al. "Splinter: Practical Private Queries on Public Data" NSDI'17
OpenSSL-compatible licensing. See individual files for details.