All Projects → arkworks-rs → crypto-primitives

arkworks-rs / crypto-primitives

Licence: Apache-2.0, MIT licenses found Licenses found Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT
Interfaces and implementations of cryptographic primitives, along with R1CS constraints for them

Programming Languages

rust
11053 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to crypto-primitives

Zero Allocation Hashing
Zero-allocation hashing for Java
Stars: ✭ 561 (+638.16%)
Mutual labels:  hash-functions
Scala Hashing
Fast non-cryptographic hash functions for Scala
Stars: ✭ 66 (-13.16%)
Mutual labels:  hash-functions
Data.hashfunction
C# library to create a common interface to non-cryptographic hash functions.
Stars: ✭ 226 (+197.37%)
Mutual labels:  hash-functions
Highwayhash
Native Go version of HighwayHash with optimized assembly implementations on Intel and ARM. Able to process over 10 GB/sec on a single core on Intel CPUs - https://en.wikipedia.org/wiki/HighwayHash
Stars: ✭ 670 (+781.58%)
Mutual labels:  hash-functions
Swift Crypto
Open-source implementation of a substantial portion of the API of Apple CryptoKit suitable for use on Linux platforms.
Stars: ✭ 1,005 (+1222.37%)
Mutual labels:  hash-functions
Bitcoin Cryptography Library
Nayuki's implementation of cryptographic primitives used in Bitcoin.
Stars: ✭ 81 (+6.58%)
Mutual labels:  hash-functions
Cdsa
A library of generic intrusive data structures and algorithms in ANSI C
Stars: ✭ 549 (+622.37%)
Mutual labels:  hash-functions
node-express-reddit-clone
Build a Node, Express and MySQL-based clone of Reddit for DecodeMTL web development bootcamp
Stars: ✭ 28 (-63.16%)
Mutual labels:  hash-functions
Nabhash
An extremely fast Non-crypto-safe AES Based Hash algorithm for Big Data
Stars: ✭ 62 (-18.42%)
Mutual labels:  hash-functions
Python Hashes
Interesting (non-cryptographic) hashes implemented in pure Python.
Stars: ✭ 213 (+180.26%)
Mutual labels:  hash-functions
Smhasher
Hash function quality and speed tests
Stars: ✭ 719 (+846.05%)
Mutual labels:  hash-functions
Java Crypto Utils
Java Cryptographic, Encoding and Hash Utilities
Stars: ✭ 15 (-80.26%)
Mutual labels:  hash-functions
Mum Hash
Hashing functions and PRNGs based on them
Stars: ✭ 117 (+53.95%)
Mutual labels:  hash-functions
Multihash
Self describing hashes - for future proofing
Stars: ✭ 656 (+763.16%)
Mutual labels:  hash-functions
neuralRDEs
Code for: "Neural Rough Differential Equations for Long Time Series", (ICML 2021)
Stars: ✭ 102 (+34.21%)
Mutual labels:  signatures
Xxhash
Extremely fast non-cryptographic hash algorithm
Stars: ✭ 5,783 (+7509.21%)
Mutual labels:  hash-functions
Meow hash
Official version of the Meow hash, an extremely fast level 3 hash
Stars: ✭ 1,204 (+1484.21%)
Mutual labels:  hash-functions
4bytes
List of 4byte identifiers for EVM smart contract functions
Stars: ✭ 326 (+328.95%)
Mutual labels:  signatures
LibSWIFFT
LibSWIFFT - A fast C/C++ library for the SWIFFT secure homomorphic hash function
Stars: ✭ 23 (-69.74%)
Mutual labels:  hash-functions
Hash Identifier
Software to identify the different types of hashes used to encrypt data and especially passwords
Stars: ✭ 198 (+160.53%)
Mutual labels:  hash-functions

ark-crypto-primitives

The arkworks ecosystem consist of Rust libraries for designing and working with zero knowledge succinct non-interactive arguments (zkSNARKs). This repository contains efficient implementations of cryptographic primitives such as collision-resistant hash functions, hiding commitments, pseudo-random functions, signatures, and, optionally, R1CS constraints for these.

This library is released under the MIT License and the Apache v2 License (see License).

WARNING: This is an academic proof-of-concept prototype, and in particular has not received careful code review. This implementation is NOT ready for production use.

Build guide

The library compiles on the stable toolchain of the Rust compiler. To install the latest version of Rust, first install rustup by following the instructions here, or via your platform's package manager. Once rustup is installed, install the Rust toolchain by invoking:

rustup install stable

After that, use cargo, the standard Rust build tool, to build the library:

git clone https://github.com/arkworks-rs/crypto-primitives.git
cargo build --release

This library comes with unit tests for each of the provided crates. Run the tests with:

cargo test

License

This library is licensed under either of the following licenses, at your discretion.

Unless you explicitly state otherwise, any contribution submitted for inclusion in this library by you shall be dual licensed as above (as defined in the Apache v2 License), without any additional terms or conditions.

Acknowledgements

This work was supported by: a Google Faculty Award; the National Science Foundation; the UC Berkeley Center for Long-Term Cybersecurity; and donations from the Ethereum Foundation, the Interchain Foundation, and Qtum.

An earlier version of this library was developed as part of the paper "ZEXE: Enabling Decentralized Private Computation".

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].