jnsiemer/scalable_rbe_prototype
Prototype for the paper 'Scalable RBE from Lattices'
Prototype of 'Scalable Registration-Based Encryption from Lattices'
Dependencies
Rustversion >= 1.86.0 (optional:nightlytoolchain to enable AVX-512 hardware acceleration if available by passing--features=nightlytocargo bench)- Installation of several standard libraries such as
cc, which come out-of-the-box with several Linux distributions but can be installed usingsudo apt install build-essential
To check the version and toolchain, use rustc --version. To update rustup update. To install the nightly toolchain, rustup toolchain install nightly.
Relevant Commands
To build the library, run
cargo build --releaseThe documentation is available at docs.rs or you can generate it yourself by executing
cargo doc --openIf you're using WSL and your browser does not open, retry after installing wslu.
To run all unit-tests, which also ensure correctness of the parameters and construction, execute the following line.
cargo test --release -- --test-threads=1 # single threaded to prevent simoultaneous writes to the database from different testsTo benchmark all RBE algorithms, you can use
cargo bench RBEIf you have criterion installed, you can also execute
cargo criterion RBETo benchmark just a single algorithm, we refer to ./benches/rbe.rs.
Parameter Generation
The script for parameter generation can be found in the directory params. Please follow the instructions in the README to execute the script.
License
This library is distributed under the Mozilla Public License Version 2.0.
Permissions of this weak copyleft license are conditioned on making the source code of licensed files and modifications of those files available under the same license (or in certain cases, under one of the GNU licenses). Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. However, a larger work using the licensed work may be distributed under different terms and without source code for files added to the larger work.