From ffad5422f94ce7e51b29e7f309dd29baecf1c3ed Mon Sep 17 00:00:00 2001 From: Kelong Cong Date: Fri, 22 Mar 2024 17:06:59 +0100 Subject: [PATCH] Update README --- README.md | 32 +++----------------------------- 1 file changed, 3 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 3d7cd2d..6b8f97a 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,15 @@ -# Efficient and Secure k-NN Classification from Improved Data-Oblivious Programs and Homomorphic Encryption +# ppknn [![Rust](https://github.com/kc1212/ppknn/actions/workflows/rust.yml/badge.svg)](https://github.com/kc1212/ppknn/actions/workflows/rust.yml) -This is the code used in the paper "[Efficient and Secure k-NN Classification from Improved Data-Oblivious Programs and Homomorphic Encryption](https://eprint.iacr.org/2023/852)" by Kelong Cong, Robin Geelen, Jiayi Kang and Jeongeun Park. +This is the code used in the paper "[Revisiting Oblivious Top-k Selection with Applications to Secure k-NN Classification](https://eprint.iacr.org/2023/852)" by Kelong Cong, Robin Geelen, Jiayi Kang and Jeongeun Park. *WARNING:* This is proof-of-concept implementation. It may contain bugs and security issues. Please do not use in production systems. ## Building and testing +Only tested on x84-64, on Linux. ``` cargo build --release cargo test --release # might take a few minutes @@ -28,30 +29,3 @@ and should not contain values higher than 255. For running longer experiments, especially to reproduce the results from the paper, see the scripts `scripts/bench-cancer.sh` and `scripts/bench-mnist.sh`. - -## Internals - -This is an improvement over the k-NN -paper by Zuber and Sirdey [0]. -We use Batcher's odd-even sorting network -as described by Knuth [1]. -The algorithm is optimized to output `k` -sorted elements instead of `n`, -where `n` is the length of the array. -This modification results in much fewer comparison, -which is expensive to do homomorphically, -when `k` is low. - -The homomorphic encryption scheme we use is TFHE [2] -from the [tfhe-rs](tfhe.rs) library. -Some internal data structures are not exposed -by default in tfhe-rs, so we use a -[forked version](https://github.com/kc1212/tfhe-rs/tree/expose-sk). - -## References - -[0] https://petsymposium.org/popets/2021/popets-2021-0020.pdf - -[1] The Art of Computer Programming, Vol. 3 Sorting and Searching, Donald E. Knuth - -[2] https://eprint.iacr.org/2018/421.pdf