This repository contains several Rust implementations of different hash functions for zero-knowledge applications and will be extended frequently.
The repository already contains the following implementations:
plain_implscontains a comparison of the plain performance of various hash functions.bountiescontains toy instances and implementations of some hash functions used for the Cryptanalysis Bounties.bellmancontains a comparison of different hash functions in zero-knowledge applications using the bellman_ce library.
Please use the following BibTeX entry to cite our work in academic papers.
@misc{HashZKP,
title = {Hash functions for Zero-Knowledge applications Zoo},
howpublished = {\url{https://extgit.iaik.tugraz.at/krypto/zkfriendlyhashzoo}},
month = aug,
year = 2021,
note = {{IAIK}, Graz University of Technology},
}This repository contains Rust implementations of different hash functions for Zero-Knowledge applications. For benchmarks we refer to [1] and [2].
The following hash functions are already implemented:
- ReinforcedConcrete
- Monolith
- Poseidon
- Rescue
- Rescue-Prime
- Griffin
- Neptune
- Feistel-MiMC
- Pedersen-Hash, code extracted from Zcash
- Sinsemilla, code extracted from Orchard
We also benchmark against various classical hash algorithms implemented in RustCrypto.
[1] https://eprint.iacr.org/2021/1038.pdf [2] https://eprint.iacr.org/2023/1025.pdf