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:
@@ -3,12 +3,11 @@
|
||||
//! A |t-value| > 5 indicates a timing leak with high confidence.
|
||||
//! Functions should show |t-value| < 5 after sufficient samples.
|
||||
|
||||
use dudect_bencher::{BenchRng, Class, CtRunner, ctbench_main};
|
||||
use dudect_bencher::{BenchRng, Class, CtRunner, ctbench_main, rand::Rng};
|
||||
use opaque_lattice::oprf::fast_oprf::{
|
||||
PublicParams, Q, RING_N, ReconciliationHelper, RingElement, ServerKey, client_blind,
|
||||
client_finalize, server_evaluate,
|
||||
};
|
||||
use rand::Rng;
|
||||
|
||||
fn coin_flip(rng: &mut BenchRng) -> bool {
|
||||
rng.gen_range(0u8..2) == 0
|
||||
|
||||
Reference in New Issue
Block a user