All Projects → trailofbits → reverie

trailofbits / reverie

Licence: AGPL-3.0 license
An efficient and generalized implementation of the IKOS-style KKW proof system (https://eprint.iacr.org/2018/475) for arbitrary rings.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to reverie

starknet.js
JavaScript library for StarkNet
Stars: ✭ 159 (+211.76%)
Mutual labels:  zk
dotfiles
🗿 dotfilery, configuration, environment settings, automation, etc. 🛖
Stars: ✭ 67 (+31.37%)
Mutual labels:  zk
zk-nvim
Neovim extension for zk
Stars: ✭ 207 (+305.88%)
Mutual labels:  zk
zkspringboot
ZK - Spring Boot integration
Stars: ✭ 38 (-25.49%)
Mutual labels:  zk
zk.nvim
Neovim plugin as a lightweight wrapper around https://github.com/mickael-menu/zk
Stars: ✭ 24 (-52.94%)
Mutual labels:  zk
Programmer-Learning-materials
程序员 学习资料,以及一些书籍电子书,如果对您有所帮助,还希望大家多多star,更多资料请关注《Java有货》微信公众号获取
Stars: ✭ 140 (+174.51%)
Mutual labels:  zk
ZooHelper
ZooKeeper可视化工具
Stars: ✭ 15 (-70.59%)
Mutual labels:  zk
rulegin
基于JavaScript Engine的轻量级规则引擎系统,重构于开源IOT项目thingboard
Stars: ✭ 100 (+96.08%)
Mutual labels:  zk
Cryptography-Guidelines
Guidance on implementing cryptography as a developer.
Stars: ✭ 15 (-70.59%)
Mutual labels:  blake3
XChaCha8Blake3Siv
XChaCha8Blake3Siv is a nonce-reuse misuse-resistant (NRMR) and key-committing authenticated encryption with associated data (AEAD) algorithm
Stars: ✭ 14 (-72.55%)
Mutual labels:  blake3
noble-hashes
Audited & minimal JS implementation of SHA2, SHA3, RIPEMD, BLAKE2/3, HMAC, HKDF, PBKDF2 & Scrypt
Stars: ✭ 213 (+317.65%)
Mutual labels:  blake3
wombatforensics
linux c++, qt5, multi-threaded forensic gui tool
Stars: ✭ 27 (-47.06%)
Mutual labels:  blake3
veil
Veil is an incredibly experimental hybrid cryptosystem for sending and receiving confidential, authentic multi-recipient messages which are indistinguishable from random noise by an attacker.
Stars: ✭ 15 (-70.59%)
Mutual labels:  blake3
scala-blake3
This is a highly optimized blake3 implementation for scala, scala-js and scala-native
Stars: ✭ 17 (-66.67%)
Mutual labels:  blake3

Reverie

An efficient implementation of the NIZKPoK outlined in KKW 2018

CI

Reverie is an implementation (prover and verifier) of the MPC-in-the-head NIZKPoK outlined in Improved Non-Interactive Zero Knowledge with Applications to Post-Quantum Signatures. Reverie seeks to offer concrete prover efficiency (linear proving time with small constants) for complex predicates. The implementation seeks to offer 128-bits of (classical) security and support arbitrary rings, most efficiently Z2 and Z64.

Reverie provides both a library (with a simplified and a streaming interface), in addition to a CLI program for proving/verifying statements specified in Bristol format to enable easy experimentation.

Running

Reverie requires a relatively recent nightly Rust.

Using SSE+AESNI

time RUSTFLAGS="-C target-cpu=native -C target-feature=+aes,+ssse3,+sse2" cargo run --release

Or even better with AVX2+AESNI

time RUSTFLAGS="-C target-cpu=native -C target-feature=+aes,+ssse3,+sse2,+avx2" cargo run --release

Improvements in 0.3+

  • Pack 8 instances of 8 players over GF(2) into a single 64-bit integer (see gist for details).
  • Switch to AES with AESNI
  • Just-in-time preprocessing to condense proving into a single pass
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].