{"id":13532485,"url":"https://github.com/pluto/ronkathon","last_synced_at":"2025-05-15T20:04:07.164Z","repository":{"id":237537825,"uuid":"794674804","full_name":"pluto/ronkathon","owner":"pluto","description":"Cryptography Educational Foundations","archived":false,"fork":false,"pushed_at":"2025-05-12T23:24:02.000Z","size":19825,"stargazers_count":306,"open_issues_count":41,"forks_count":46,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-15T15:14:19.435Z","etag":null,"topics":["cryptography","mathematics","rustlang","zero-knowledge"],"latest_commit_sha":null,"homepage":"https://ronkathon.pluto.xyz","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pluto.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-05-01T18:00:52.000Z","updated_at":"2025-05-06T18:02:55.000Z","dependencies_parsed_at":"2024-05-05T20:43:32.153Z","dependency_job_id":"80871f6b-8105-4ecf-993c-bb78ffe2c1ef","html_url":"https://github.com/pluto/ronkathon","commit_stats":null,"previous_names":["pluto/ronkathon"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluto%2Fronkathon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluto%2Fronkathon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluto%2Fronkathon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluto%2Fronkathon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pluto","download_url":"https://codeload.github.com/pluto/ronkathon/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254414497,"owners_count":22067272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptography","mathematics","rustlang","zero-knowledge"],"created_at":"2024-08-01T07:01:11.276Z","updated_at":"2025-05-15T20:04:01.194Z","avatar_url":"https://github.com/pluto.png","language":"Rust","funding_links":[],"categories":["SNARKs","Frameworks and Libs","Cryptography"],"sub_categories":["Try","Rust","Others"],"readme":"\u003ch1 align=\"center\"\u003e\n  ronkathon\n\u003c/h1\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/pluto/ronkathon/graphs/contributors\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/contributors/pluto/ronkathon?style=flat-square\u0026logo=github\u0026logoColor=8b949e\u0026labelColor=282f3b\u0026color=32c955\" alt=\"Contributors\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/pluto/ronkathon/actions/workflows/test.yaml\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/tests-passing-32c955?style=flat-square\u0026logo=github-actions\u0026logoColor=8b949e\u0026labelColor=282f3b\" alt=\"Tests\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/pluto/ronkathon/actions/workflows/lint.yaml\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/lint-passing-32c955?style=flat-square\u0026logo=github-actions\u0026logoColor=8b949e\u0026labelColor=282f3b\" alt=\"Lint\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## Overview\n\nRonkathon is a collection of cryptographic primitives implemented in Rust. It is inspired by the [python plonkathon repository](https://github.com/0xPARC/plonkathon) and [plonk-by-hand](https://research.metastate.dev/plonk-by-hand-part-1/). 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.\n\n## Primitives\n\n- **Fundamental Algebraic Structures**\n    - [Group](src/algebra/group/README.md)\n    - [Fields and Their Extensions](src/algebra/field/README.md)\n        - [Binary Fields](src/algebra/field/binary_towers/README.md)\n- [Curves and Their Pairings](src/curve/README.md)\n- [Polynomials](src/polynomial/mod.rs)\n- [KZG Commitments](src/kzg/README.md)\n- [Reed-Solomon Codes](src/codes/README.md)\n- [Merkle Proofs](src/tree/README.md)\n- [DSL](src/compiler/README.md)\n\n### Signatures\n\n- [Digital Signature Algorithms](src/dsa/README.md)\n    - [Elliptic Curve Digital Signature Algorithm(ECDSA)](src/dsa/ecdsa.rs)\n    - [Edwards-Curve Digital Signature Algorithm(EdDSA)](src/dsa/eddsa/mod.rs)\n\n### Encryption\n\n####  Asymmetric\n- [RSA](src/encryption/asymmetric/rsa/README.md)\n\n#### Symmetric\n\n- **Ciphers:**\n    + [DES](src/encryption/symmetric/des/README.md)\n    + [AES](src/encryption/symmetric/aes/README.md)\n    + [ChaCha](src/encryption/symmetric/chacha/README.md)\n\n- [**Modes of Operation**](src/encryption/symmetric/modes/README.md)\n    + ECB, CBC, CTR, GCM\n\n### Hash\n\n- [Sha256 Hash](src/hashes/README.md)\n- [Poseidon Hash](src/hashes/poseidon/README.md)\n\n## Resources\n\nWe 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\n\n### Theoretic Resources\n\n- [Plonk by Hand P1](https://research.metastate.dev/plonk-by-hand-part-1/)\n- [Plonk by Hand P2](https://research.metastate.dev/plonk-by-hand-part-2-the-proof/)\n- [Plonk by Hand P3](https://research.metastate.dev/plonk-by-hand-part-3-verification/)\n\n### Code References\n\n- [Plonkathon](https://github.com/0xPARC/plonkathon/blob/main/README.md)\n- [Plonky3](https://github.com/Plonky3/Plonky3)\n- [py_pairing](https://github.com/ethereum/py_pairing/tree/master)\n- [arkworks](https://github.com/arkworks-rs)\n\n## Math\n\nTo see computations used in the background, go to the `math/` directory.\nFrom there, you can run the `.sage` files in a SageMath environment.\nIn particular, the `math/field.sage` computes roots of unity in the `PlutoField` which is of size 101. To install sage on your machine, follow the instructions [here](https://doc.sagemath.org/html/en/installation/index.html). If you are on a Mac, you can install it via homebrew with `brew install --cask sage`.\n\n## Building mdBook\n\nTo locally build/serve the [mdBook](https://github.com/rust-lang/mdBook) site, install mdBook and [mdbook-katex](https://github.com/lzanini/mdbook-katex):\n```ignore\ncargo install mdbook\ncargo install mdbook-katex\n```\n\nTo build, run:\n```ignore\ncargo run --bin create_mdbook\ncp -r assets book/\nmdbook build\n```\n\nIf you want to serve locally, run `mdbook serve`.\n\n## License\n\nLicensed under the Apache License, Version 2.0 ([LICENSE-APACHE](./LICENSE) or http://www.apache.org/licenses/LICENSE-2.0)\n\n## Contributing\n\nWe welcome contributions to our open-source projects. If you want to contribute or follow along with contributor discussions, join our [main Telegram channel](https://t.me/pluto_xyz/1) to chat about Pluto's development.\n\nOur contributor guidelines can be found at [CONTRIBUTING.md](https://github.com/pluto/.github/blob/main/profile/CONTRIBUTING.md). A good starting point is issues labelled 'bounty' in our repositories.\n\nUnless 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpluto%2Fronkathon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpluto%2Fronkathon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpluto%2Fronkathon/lists"}