- Notifications
You must be signed in to change notification settings - Fork37
Cryptography Educational Foundations
License
pluto/ronkathon
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Ronkathon is a collection of cryptographic primitives implemented in Rust. It is inspired by thepython plonkathon repository andplonk-by-hand. We use the same curve and field as plonk-by-hand (which is not secure) and the goal of this repository is to work towards building everything from scratch to understand everything from first principles.
- Fundamental Algebraic Structures
- Curves and Their Pairings
- Polynomials
- KZG Commitments
- Reed-Solomon Codes
- Merkle Proofs
- DSL
Ciphers:
- ECB, CBC, CTR, GCM
We have found the following resources helpful in understanding the foundational mathematics behind this implementation. After going through these, you should be able to understand the codebase
To see computations used in the background, go to themath/
directory.From there, you can run the.sage
files in a SageMath environment.In particular, themath/field.sage
computes roots of unity in thePlutoField
which is of size 101. To install sage on your machine, follow the instructionshere. If you are on a Mac, you can install it via homebrew withbrew install --cask sage
.
To locally build/serve themdBook site, install mdBook andmdbook-katex:
cargoinstallmdbookcargoinstallmdbook-katex
To build, run:
cargorun--bincreate_mdbookcp-rassetsbook/mdbookbuild
If you want to serve locally, runmdbook serve
.
Licensed under the Apache License, Version 2.0 (LICENSE-APACHE orhttp://www.apache.org/licenses/LICENSE-2.0)
We welcome contributions to our open-source projects. If you want to contribute or follow along with contributor discussions, join ourmain Telegram channel to chat about Pluto's development.
Our contributor guidelines can be found atCONTRIBUTING.md. A good starting point is issues labelled 'bounty' in our repositories.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.
About
Cryptography Educational Foundations