
Implementação eficiente do sistema de prova de conhecimento zero KKW para anéis arbitrários, fornecendo ao provador e ao verificador tempo de prova linear e segurança de 128 bits.
Uma implementação eficiente do NIZKPoK descrito em KKW 2018
Reverie é uma implementação (provador e verificador) do NIZKPoK MPC-in-the-head descrito em Improved Non-Interactive Zero Knowledge with Applications to Post-Quantum Signatures. Reverie busca oferecer eficiência concreta ao provador (tempo de prova linear com constantes pequenas) para predicados complexos. A implementação busca oferecer 128 bits de segurança (clássica) e suportar anéis arbitrários, mais eficientemente Z2 e Z64.
Reverie fornece tanto uma biblioteca (com uma interface simplificada e uma de fluxo contínuo), quanto um programa de CLI para provar/verificar declarações especificadas no formato Bristol para permitir experimentação fácil.
Reverie requer um Rust nightly relativamente recente.
Usando SSE+AESNI
time RUSTFLAGS="-C target-cpu=native -C target-feature=+aes,+ssse3,+sse2" cargo run --release
Ou ainda melhor com AVX2+AESNI
time RUSTFLAGS="-C target-cpu=native -C target-feature=+aes,+ssse3,+sse2,+avx2" cargo run --release