{"id":33049763,"url":"https://github.com/gravity-postquantum/prune-horst","last_synced_at":"2025-11-18T20:01:40.985Z","repository":{"id":201524812,"uuid":"104754304","full_name":"gravity-postquantum/prune-horst","owner":"gravity-postquantum","description":"Signature scheme submitted to NIST's Post-Quantum Cryptography Project ","archived":false,"fork":false,"pushed_at":"2018-01-17T14:07:13.000Z","size":22886,"stargazers_count":27,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-07-11T09:44:13.556Z","etag":null,"topics":["cyber","hash-functions","merkle-tree","post-quantum-cryptography","quantum","signature"],"latest_commit_sha":null,"homepage":"https://post-quantum.ch","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gravity-postquantum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-09-25T13:35:10.000Z","updated_at":"2024-04-25T09:58:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"c3b80cfa-a5bf-41fb-bd2e-cf1a9e2f3292","html_url":"https://github.com/gravity-postquantum/prune-horst","commit_stats":null,"previous_names":["gravity-postquantum/prune-horst"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gravity-postquantum/prune-horst","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gravity-postquantum%2Fprune-horst","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gravity-postquantum%2Fprune-horst/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gravity-postquantum%2Fprune-horst/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gravity-postquantum%2Fprune-horst/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gravity-postquantum","download_url":"https://codeload.github.com/gravity-postquantum/prune-horst/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gravity-postquantum%2Fprune-horst/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285129556,"owners_count":27119601,"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-11-18T02:00:05.759Z","response_time":61,"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":["cyber","hash-functions","merkle-tree","post-quantum-cryptography","quantum","signature"],"created_at":"2025-11-14T02:00:35.003Z","updated_at":"2025-11-18T20:01:40.980Z","avatar_url":"https://github.com/gravity-postquantum.png","language":"C","funding_links":[],"categories":["Other Algorithms"],"sub_categories":["Round 4 submissions"],"readme":"# PRUNE-HORST\n\nSubmission to NIST's Post-Quantum Cryptography Project, structured as per\n\u003chttps://csrc.nist.gov/groups/ST/post-quantum-crypto/submission-requirements/digital-optical-media.html\u003e.\n\nPRUNE-HORST is a stateless hash-based signature scheme designed by Jean-Philippe Aumasson and Guillaume Endignoux while working in Kudelski Security's research team.\n\n\n## Content of this submission package\n\n### Documentation\n\n* [Supporting_Documentation/submission.pdf](Supporting_Documentation/submission.pdf): Reference documentation of PRUNE-HORST, include specification, security analysis, performance analysis.\n\n* [Supporting_Documentation/latex_source/](Supporting_Documentation/latex_source/): LaTeX source of the reference documentation.\n\n* [Supporting_Documentation/master_thesis_endignoux_guillaume.pdf](Supporting_Documentation/master_thesis_endignoux_guillaume.pdf): Masters thesis of Guillaume Endignoux, containing detailed analyses related to PRUNE-HORST's security.\n\n* [Supporting_Documentation/parameters.py](Supporting_Documentation/parameters.py): Python script to compute the security of a PRUNE-HORST instance given a set of parameters.\n\n\n### Implementations\n\n* [Reference_Implementation/](Reference_Implementation): Our reference C89 implementation, without AES-NI nor SIMD instructions.\n\n* [Additional_Implementations/fast](Additional_Implementations/fast): Our fast C89 implementation, with AES-NI and SIMD instructions.\n\n* [Additional_Implementations/debug](Additional_Implementations/debug): A version of the fast implementation that prints intermediate values.  This directory includes intermediate values files for each of the three PRUNE-HORST versions.\n\nThe directory [Optimized_Implementation/](Optimized_Implementation) contains a placeholder referring to the code under [Reference_Implementation/](Reference_Implementation), since our optimized implementation (as per NIST's requirements) is the same as our reference implementation.\n\nThe [Makefile](Reference_Implementation/Makefile) included in the [reference](Reference_Implementation) and [fast](Additional_Implementations/fast) implementations has the following targets:\n```\n$ make\nPlease choose a target:\n        analyze          runs static analyzers\n        bench            runs speed benchmarks\n        clean            cleans up\n        format           formats the code using .clang-format rules\n```\nWarning: `make bench` with the [reference](Reference_Implementation) implementation is slow because of the textbook AES implementation.\n\nThe [Makefile](Additional_Implementations/debug/Makefile) of the [debug](Additional_Implementations/debug) implementation in addition provides `make ivs` and `make check` targets.\n\n\n### Test values\n\n* [KAT/](KAT): Includes NIST's s [PQCgenKAT_sign.c](KAT/PQCgenKAT_sign.c), [rng.c](KAT/rng.c), and [rng.h](KAT/rng.h), as well as a [Makefile](KAT/Makefile) that we created to generate the files PQCsignKAT_64.req and PQCsignKAT_64.rsp required by NIST, using [fast](Additional_Implementations/fast/) implementation.\n\n* [KAT/PQCsignKAT_64_all.req](KAT/PQCsignKAT_64_all.req): .req KAT file generated by running `make`, same for all PRUNE-HORST versions.\n\n* [KAT/PQCsignKAT_64_S.rsp](KAT/PQCsignKAT_64_S.rsp), [KAT/PQCsignKAT_64_M.rsp](KAT/PQCsignKAT_64_M.rsp), [KAT/PQCsignKAT_64_L.rsp](KAT/PQCsignKAT_64_L.rsp): .rsp KAT file generated by running `make`, for the PRUNE-HORST versions S, M, and L.\n\n\n## Intellectual property\n\nCopyright notices are included in the header of each source code file.\nOur original source code of PRUNE-HORST is copyright © 2017 Nagravision S.A., and was written by Jean-Philippe Aumasson and Guillaume Endignoux.\n\nThe fast, AES-NI-based Haraka implementation is copyright © 2016 Stefan Kölbl.\n\nOur source code is released under [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) license.\n\nPatent situation: We haven't filed any patent related to PRUNE-HORST nor are we aware of existing patent or patent application covering PRUNE-HORST.\n\n\n## Acknowledgments\n\nThanks to Samuel Neves for helping optimize our code.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgravity-postquantum%2Fprune-horst","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgravity-postquantum%2Fprune-horst","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgravity-postquantum%2Fprune-horst/lists"}