
Implementazione efficiente del sistema di prova a conoscenza zero KKW per anelli arbitrari, che fornisce a dimostratore e verificatore un tempo di dimostrazione lineare e sicurezza a 128 bit.
Un'implementazione efficiente del NIZKPoK descritto in KKW 2018
Reverie è un'implementazione (prover e verifier) del NIZKPoK MPC-in-the-head descritto in Improved Non-Interactive Zero Knowledge with Applications to Post-Quantum Signatures. Reverie punta a offrire una concreta efficienza del prover (tempo di dimostrazione lineare con piccole costanti) per predicati complessi. L'implementazione mira a fornire 128 bit di sicurezza (classica) e supportare anelli arbitrari, in modo più efficiente Z2 e Z64.
Reverie fornisce sia una libreria (con interfaccia semplificata e streaming) sia un programma CLI per dimostrare/verificare asserzioni specificate in formato Bristol, al fine di consentire una facile sperimentazione.
Reverie richiede un Rust nightly relativamente recente.
Usando SSE+AESNI
time RUSTFLAGS="-C target-cpu=native -C target-feature=+aes,+ssse3,+sse2" cargo run --release
O ancora meglio con AVX2+AESNI
time RUSTFLAGS="-C target-cpu=native -C target-feature=+aes,+ssse3,+sse2,+avx2" cargo run --release