
Implémentation efficace du système de preuve à divulgation nulle de connaissance KKW pour des anneaux arbitraires, offrant au prouveur et au vérificateur un temps de preuve linéaire et une sécurité de 128 bits.
Une implémentation efficace du NIZKPoK décrit dans KKW 2018
Reverie est une implémentation (prouveur et vérificateur) du NIZKPoK MPC-in-the-head décrit dans Improved Non-Interactive Zero Knowledge with Applications to Post-Quantum Signatures. Reverie vise à offrir une efficacité concrète du prouveur (temps de preuve linéaire avec de petites constantes) pour des prédicats complexes. L'implémentation vise à offrir 128 bits de sécurité (classique) et prend en charge des anneaux arbitraires, le plus efficacement Z2 et Z64.
Reverie fournit à la fois une bibliothèque (avec une interface simplifiée et une interface de streaming), ainsi qu'un programme CLI pour prouver/vérifier des énoncés spécifiés au format Bristol afin de faciliter l'expérimentation.
Reverie nécessite un Rust nightly relativement récent.
Avec SSE+AESNI
time RUSTFLAGS="-C target-cpu=native -C target-feature=+aes,+ssse3,+sse2" cargo run --release
Ou encore mieux avec AVX2+AESNI
time RUSTFLAGS="-C target-cpu=native -C target-feature=+aes,+ssse3,+sse2,+avx2" cargo run --release