{"id":31389048,"url":"https://github.com/armfazh/rhizomes","last_synced_at":"2026-02-13T23:34:02.376Z","repository":{"id":316268523,"uuid":"1061490640","full_name":"armfazh/rhizomes","owner":"armfazh","description":"Rhizomes and the Roots of Efficiency — Improving Prio","archived":false,"fork":false,"pushed_at":"2025-09-23T15:32:37.000Z","size":3820,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"welcome","last_synced_at":"2025-09-23T17:35:13.670Z","etag":null,"topics":["crypto","cryptography","lagrange","polynomials","prio","rhizomes"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/armfazh.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-22T01:46:13.000Z","updated_at":"2025-09-22T21:52:28.000Z","dependencies_parsed_at":"2025-09-23T17:35:15.602Z","dependency_job_id":null,"html_url":"https://github.com/armfazh/rhizomes","commit_stats":null,"previous_names":["armfazh/rhizomes"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/armfazh/rhizomes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armfazh%2Frhizomes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armfazh%2Frhizomes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armfazh%2Frhizomes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armfazh%2Frhizomes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/armfazh","download_url":"https://codeload.github.com/armfazh/rhizomes/tar.gz/refs/heads/welcome","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/armfazh%2Frhizomes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277443449,"owners_count":25818752,"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","status":"online","status_checked_at":"2025-09-28T02:00:08.834Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["crypto","cryptography","lagrange","polynomials","prio","rhizomes"],"created_at":"2025-09-28T23:23:14.043Z","updated_at":"2026-02-13T23:34:02.366Z","avatar_url":"https://github.com/armfazh.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rhizomes and the Roots of Efficiency — Improving Prio\n\n[![License: MPL 2.0](https://img.shields.io/badge/License-MPL_2.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0)\n\nThis repository contains supplemental material of the article titled\n**\"Rhizomes and the Roots of Efficiency—Improving Prio**\npublished at [Progress in Cryptology — LATINCRYPT 2025](https://doi.org/10.1007/978-3-032-06754-8_16).\n\nThis project is a fork of\n[divviup/libprio-rs](https://github.com/divviup/libprio-rs),\na rust implementation of Prio.\n\n## Improvements\n\n- Speeds up Polynomial Evaluation in the Lagrange basis.\n- Polynomials Basis Extension in the Lagrange basis.\n- Polynomial Multiplication in the Lagrange basis.\n  - Textbook vs Stolon vs *Rhizome*.\n- Use of the Pólya polynomial basis.\n- Reduces the number of NTTs.\n\n|[Branches](#branches)|[Applications](#applications)|[Benchmarks](#benchmarks)|[Cite](#citation)|\n|--|--|--|--|\n\n**Download the Source Code**\n[verifier.zip](https://github.com/armfazh/rhizomes/archive/refs/heads/rhizomes/verifier.zip)\nor\n[full.zip](https://github.com/armfazh/rhizomes/archive/refs/heads/rhizomes/full.zip)\n\n## Branches\n\n- [welcome](https://github.com/armfazh/rhizomes/tree/welcome): This branch\ncontains pointers to the content in this repository.\n- [main](https://github.com/armfazh/rhizomes/tree/main): It follows the main\nbranch of [divviup/libprio-rs](https://github.com/divviup/libprio-rs).\n- [baseline](https://github.com/armfazh/rhizomes/tree/baseline): This is\nlibprio-rs version\n[0.18.1-alpha.2](https://github.com/divviup/libprio-rs/tree/0.18.1-alpha.2)\nused to make comparisons.\n- [rhizomes/verifier](https://github.com/armfazh/rhizomes/tree/rhizomes/verifier):\nCode changes to improve Prio PrepInit verification only.\n- [rhizomes/full](https://github.com/armfazh/rhizomes/tree/rhizomes/full):\nCode changes to improve Prio both prover and verification.\n\n## Applications\n\nThe [VDAF](https://datatracker.ietf.org/doc/draft-irtf-cfrg-vdaf/) document\nspecifies Prio, a protocol for private aggregation of measurements.\n\nThe algorithms introduced in this research work speed up Prio operations as\ndescribed in the benchmarks section.\n\nProposed changes to the specification:\n\n- Use faster polynomial evaluation. (Adopted in [v17](https://datatracker.ietf.org/doc/draft-irtf-cfrg-vdaf/17/))\n  - [Issue #573](https://github.com/cfrg/draft-irtf-cfrg-vdaf/issues/573)\n    [PR #578](https://github.com/cfrg/draft-irtf-cfrg-vdaf/pull/578)\n\n- Keep polynomials in Lagrange basis.\n  - [Issue #574](https://github.com/cfrg/draft-irtf-cfrg-vdaf/issues/574)\n    [PR #585](https://github.com/cfrg/draft-irtf-cfrg-vdaf/pull/585)\n\n## Benchmarks\n\n### Improving Prio: PrepInit Verifier\n\nClone and benchmark the code using the following commands:\n\n```sh\nmake clone_verifier\nmake bench_verifier\nmake graph_verifier\n```\n\n![comparison](comparison_verifier.png)\n\n## Improving Prio: Both Prover and Verifier\n\nClone and benchmark the code using the following commands:\n\n```sh\nmake clone_full\nmake bench_full\nmake graph_full\n```\n\n![comparison](comparison_full.png)\n\n## Citation\n\nDOI: [10.1007/978-3-032-06754-8_16](https://doi.org/10.1007/978-3-032-06754-8_16)\n\nePrint: [https://eprint.iacr.org/2025/1727](https://ia.cr/2025/1727/)\n\n```bibtex\n@inproceedings{faz25_rhizomes,\n  doi = {10.1007/978-3-032-06754-8_16},\n  title = {{Rhizomes and the Roots of Efficiency—Improving Prio}},\n  author = {Armando {Faz-Hernandez}},\n  booktitle = {{Progress in Cryptology — LATINCRYPT 2025}},\n  pages = {425-449},\n  publisher = {Springer},\n  series = {Lecture Notes in Computer Science},\n  year = {2025},\n  month = oct,\n}\n```\n\n## License\n\nLicense is [MPL-2.0](./LICENSE.txt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farmfazh%2Frhizomes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farmfazh%2Frhizomes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farmfazh%2Frhizomes/lists"}