{"id":27290775,"url":"https://github.com/hellman/wboxkit","last_synced_at":"2025-04-11T21:38:59.688Z","repository":{"id":63296911,"uuid":"531880842","full_name":"hellman/wboxkit","owner":"hellman","description":"White-box Design and Analysis kit","archived":false,"fork":false,"pushed_at":"2023-05-22T11:17:31.000Z","size":11120,"stargazers_count":23,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-04T11:05:52.437Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hellman.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}},"created_at":"2022-09-02T10:30:22.000Z","updated_at":"2025-03-04T11:52:08.000Z","dependencies_parsed_at":"2022-11-16T14:20:35.807Z","dependency_job_id":null,"html_url":"https://github.com/hellman/wboxkit","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellman%2Fwboxkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellman%2Fwboxkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellman%2Fwboxkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellman%2Fwboxkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hellman","download_url":"https://codeload.github.com/hellman/wboxkit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248485408,"owners_count":21111850,"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":[],"created_at":"2025-04-11T21:38:58.535Z","updated_at":"2025-04-11T21:38:59.669Z","avatar_url":"https://github.com/hellman.png","language":"Jupyter Notebook","readme":"# `wboxkit`: White-box Cryptography Design and Analysis kit\n\nThis project is a successor of the previous [`cryptolu/whitebox`](https://github.com/cryptolu/whitebox/tree/master/synthesis) framework proposed at the [WhibOx 2019](https://www.cryptoexperts.com/whibox2019/) workshop, which was written in Python 2 and used custom Boolean circuits. The new version (this repo) is rewritten for Python 3 and also is based on the recent more generic circuit framework [circkit](https://github.com/cryptoexperts/circkit). It also brings improved interfaces and some [tutorials](./tutorials/) (first presented at the [CHES 2022 White-box Cryptography tutorial](https://ches.iacr.org/2022/tutorials.php), see (outdated) [repo](https://github.com/hellman/ches2022wbc)).\n\nThe primary use-case of `wboxkit` is research and experiments on white-box cryptography implementations. Currently, it has attacks/circuit only for AES-128, but general countermeasures (ISW03 linear masking, BU18 nonlinear masking, SEL21 nonlinear masking, BU21 dummy shuffling).\n\nIt is not yet documented, but the examples in the tutorials should be sufficient for many purposes.\n\n## Installation\n\nIt can be installed from PyPI using pip (a C extension requires a compiler and the python-dev package). It is recommended to use [PyPy3](https://www.pypy.org/download.html) which offers much better performance.\n\n```sh\npip install wboxkit\n# or\npypy -m pip install wboxkit\n```\n\nFor the LDA (linear algebraic / linear decoding attack) to work, it has to be installed with [SageMath](https://www.sagemath.org/):\n\n```sh\nsage -pip install wboxkit\nsage -sh\n$ wboxkit.lda traces/\n```\n\n## Scripts\n\nThe package installs a few scripts:\n\n- `wboxkit.trace` records a set of computational traces of a given Boolean circuit (serialized in a file).\n- `wboxkit.exact` performs the exact matching attack.\n- `wboxkit.lda` performs the linear decoding / linear algebraic attack (LDA).\n\n\n## Tutorials\n\n- [Tutorial 1 - Circuits](./tutorials/Tutorial%201%20-%20Circuits.ipynb)\n- [Tutorial 2 - Countermeasures](./tutorials/Tutorial%202%20-%20Countermeasures.ipynb)\n- [Tutorial 3 - Tracing](./tutorials/Tutorial%203%20-%20Tracing.ipynb)\n- [Tutorial 4 - Attacks](./tutorials/Tutorial%204%20-%20Attacks.ipynb)\n\nSee also `circkit` [documentation/tutorials](https://circkit.readthedocs.io/en/latest/).","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellman%2Fwboxkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhellman%2Fwboxkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellman%2Fwboxkit/lists"}