Let's separate the core Rust functionality from the Python wrapper!
Some things to do in this PR:
Refactoring some traits (FSSKey doesn't need to be Numpy-compatible)
Exposing cleaner interfaces
Generic DPF and DIF functionalities instead of AriaNN-tailored code (e.g. in AriaNN, we use a special case of DPF where α is random and additively shared, while β = 1).
First step to make Sycret usable as a standalone Rust crate :crab:
Let's separate the core Rust functionality from the Python wrapper!
Some things to do in this PR: