KKW 2018 中所概述的 NIZKPoK 的高效实现
Reverie 是 Improved Non-Interactive Zero Knowledge with Applications to Post-Quantum Signatures 中概述的 MPC-in-the-head NIZKPoK 的实现(证明器与验证器)。 Reverie 旨在为复杂谓词提供具体的证明器效率(线性证明时间,且常数较小)。 该实现力求提供 128 位(经典)安全性,并支持任意环,最高效地支持 Z2 和 Z64。
Reverie 既提供了一个库(带有简化和流式接口), 也提供了一个 CLI 程序,用于以 Bristol 格式声明和验证语句, 以便于轻松进行实验。
Reverie 需要一个相对较新的 nightly Rust。
使用 SSE+AESNI
time RUSTFLAGS="-C target-cpu=native -C target-feature=+aes,+ssse3,+sse2" cargo run --release
或者使用 AVX2+AESNI 效果更佳
time RUSTFLAGS="-C target-cpu=native -C target-feature=+aes,+ssse3,+sse2,+avx2" cargo run --release