feat(oprf): add revolutionary VOLE-LWR helper-less unlinkable OPRF

Implements a novel post-quantum OPRF combining:
- VOLE-based masking (prevents fingerprint attacks)
- LWR finalization (no reconciliation helpers transmitted)
- PCG pre-processing (amortized communication cost)
- NTT-friendly q=65537 (WASM performance)

Key fixes during implementation:
- LWR parameters: p=16, β=1 ensures 2nβ²=512 < q/(2p)=2048
- Password element must be UNIFORM (not small) for LWR to work
- Server subtracts v=u·Δ+noise, client just rounds (no addition)

Performance: ~82µs full protocol (vs 60µs fast, 99µs unlinkable)
Security: UC-unlinkable, helper-less, post-quantum (Ring-LWR)

All 206 tests passing.
This commit is contained in:
2026-01-07 12:59:20 -07:00
parent 8d58a39c3b
commit d8b4ed9c2d
4 changed files with 756 additions and 2 deletions

View File

@@ -7,6 +7,7 @@ pub mod ring_lpr;
#[cfg(test)]
mod security_proofs;
pub mod unlinkable_oprf;
pub mod vole_oprf;
pub mod voprf;
pub use ring::{
@@ -38,3 +39,9 @@ pub use leap_oprf::{
client_commit as leap_client_commit, client_finalize as leap_client_finalize, evaluate_leap,
server_challenge as leap_server_challenge, server_evaluate as leap_server_evaluate,
};
pub use vole_oprf::{
PcgSeed, VoleClientMessage, VoleClientState, VoleCorrelation, VoleOprfOutput, VoleRingElement,
VoleServerKey, VoleServerResponse, evaluate_vole_oprf, vole_client_blind, vole_client_finalize,
vole_server_evaluate, vole_setup,
};