{"id":19711317,"url":"https://github.com/netesf13d/py-ecc","last_synced_at":"2026-06-17T10:31:46.953Z","repository":{"id":233299052,"uuid":"786943935","full_name":"netesf13d/py-ecc","owner":"netesf13d","description":"Python implementation of elliptic curve cryptography","archived":false,"fork":false,"pushed_at":"2026-03-15T19:10:39.000Z","size":81,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-16T07:23:41.638Z","etag":null,"topics":["cryptanalysis","cryptography","elliptic-curve-cryptography"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/netesf13d.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2024-04-15T15:41:52.000Z","updated_at":"2026-03-15T19:10:42.000Z","dependencies_parsed_at":"2024-04-15T17:13:36.037Z","dependency_job_id":"0a27f532-a33d-49ef-b445-699619865102","html_url":"https://github.com/netesf13d/py-ecc","commit_stats":null,"previous_names":["netesf13d/py-ecc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/netesf13d/py-ecc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netesf13d%2Fpy-ecc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netesf13d%2Fpy-ecc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netesf13d%2Fpy-ecc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netesf13d%2Fpy-ecc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netesf13d","download_url":"https://codeload.github.com/netesf13d/py-ecc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netesf13d%2Fpy-ecc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34445179,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"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":["cryptanalysis","cryptography","elliptic-curve-cryptography"],"created_at":"2024-11-11T22:11:02.968Z","updated_at":"2026-06-17T10:31:46.946Z","avatar_url":"https://github.com/netesf13d.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# py-ecc\n\nPython implementation of elliptic curve cryptography primitives, elliptic curve algebra, and some cryptanalysis algorithms. It is intended for educational purposes, and the implementation aims to expose as much as possible the components to experiment with them. The jupyter notebook _ecc_examples.ipynb_ illustrates the use of the package.\n\n\n## Overview\n\nThe package provides:\n\n* Elliptic curve cryptography algorithms\n    - Elliptic Curve Digital Signature Algorithm (ECDSA)\n    - Edwards Curve Digital Signature Algorithm (EdDSA)\n    - Elliptic Curve Diffie-Hellman (ECDH) key exchange\n* Elliptic curve algebra with different forms of curves\n    - Weierstrass curves (the canonical form)\n    - Montgomery curves\n    - (twisted) Edwards curves\n* Some cryptanalysis algorithms\n    - Attacks on the discrete logarithm problem\n    - Partially known nonces attack on ECDSA\n\nHowever, this package does NOT provide:\n\n* A fast and secure implementation of the algorithms and elliptic curve algebra.\n* Support for elliptic curves over finite fields $\\mathrm{F}_q$ with non-prime $q$ (eg $q = 2^m$).\n* Random key generation for the various protocols.\n\n\n## Usage\n\nApart from the `cryptanalysis` module, the package uses only the standard library. Third party packages are necessary to run cryptanalysis algorithms:\n- [numpy](https://numpy.org/)\n- [sympy](https://www.sympy.org/) (for integer factorization)\n- [python-flint](https://pypi.org/project/python-flint/) (for LLL reduction)\n\nSetup the Python environment to run the notebook `ecc_examples.ipynb`.\n- With `pip`,\n  ```bash\n  pip install -r requirements.txt\n  ```\n- Using `conda`,\n  ```bash\n  conda create --name \u003cenv_name\u003e --file requirements.txt\n  conda activate \u003cenv_name\u003e\n  ```\n- Using `uv`,\n  ```bash\n  uv venv .venv\n  source .venv/bin/activate   # On Windows: .venv\\Scripts\\activate\n  uv pip install -r requirements.txt\n  ```\n\n\n## Notes\n\nThe typing annotations in the code are by no means rigorous. They are made to facilitate the understanding of the nature of various parameters.\n\n\n## References\n\n* [_SEC 1: Elliptic Curve Cryptography_](https://www.secg.org/sec1-v2.pdf)\n* [_SEC 2: Recommended Elliptic Curve Domain Parameters_](https://www.secg.org/sec2-v2.pdf)\n* [RFC 6090](https://www.rfc-editor.org/rfc/rfc6090) _Fundamental Elliptic Curve Cryptography Algorithms_\n* [RFC 6979](https://www.rfc-editor.org/rfc/rfc6979) _Deterministic Usage of the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)_\n* [RFC 7748](https://www.rfc-editor.org/rfc/7748) _Elliptic Curves for Security_\n* [RFC 8032](https://www.rfc-editor.org/rfc/rfc8032) _Edwards-Curve Digital Signature Algorithm (EdDSA)_\n* [https://safecurves.cr.yp.to/](https://safecurves.cr.yp.to/) ; detailed info about the security of ECC\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetesf13d%2Fpy-ecc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetesf13d%2Fpy-ecc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetesf13d%2Fpy-ecc/lists"}