{"id":13818384,"url":"https://github.com/ikizhvatov/pysca","last_synced_at":"2025-05-15T23:31:56.248Z","repository":{"id":217622310,"uuid":"91240994","full_name":"ikizhvatov/pysca","owner":"ikizhvatov","description":"Toolbox for advanced differential power analysis of symmetric key cryptographic algorithm implementations","archived":false,"fork":false,"pushed_at":"2018-09-15T09:38:59.000Z","size":223,"stargazers_count":44,"open_issues_count":0,"forks_count":16,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-19T16:43:34.931Z","etag":null,"topics":["cryptography-tools","differential-power-analysis","dpa","linear-regression","side-channel"],"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/ikizhvatov.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}},"created_at":"2017-05-14T12:11:42.000Z","updated_at":"2024-10-03T05:12:51.000Z","dependencies_parsed_at":"2024-01-17T15:07:14.784Z","dependency_job_id":"401c98b1-2930-4997-adca-d0317e338f18","html_url":"https://github.com/ikizhvatov/pysca","commit_stats":null,"previous_names":["ikizhvatov/pysca"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikizhvatov%2Fpysca","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikizhvatov%2Fpysca/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikizhvatov%2Fpysca/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ikizhvatov%2Fpysca/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ikizhvatov","download_url":"https://codeload.github.com/ikizhvatov/pysca/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254442321,"owners_count":22071863,"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-tools","differential-power-analysis","dpa","linear-regression","side-channel"],"created_at":"2024-08-04T07:00:44.634Z","updated_at":"2025-05-15T23:31:55.780Z","avatar_url":"https://github.com/ikizhvatov.png","language":"Python","funding_links":[],"categories":["Conference"],"sub_categories":[],"readme":"# Pysca toolbox\r\n\r\nThis toolbox was started in 2014 to experiment with efficient differential power analysis (DPA) techniques from the paper \"Behind the Scene of Side Channel Attacks\" by Victor Lomné, Emmanuel Prouff, and Thomas Roche (https://eprint.iacr.org/2013/794).\r\n\r\nTo clone this repo with the included example traces you will need [Git-LFS](https://git-lfs.github.com). Without Git-LFS, only pointers to traces will be cloned.\r\n\r\n## Why\r\nThe toolbox was designed with the following in mind:\r\n* state-of-the-art DPA techniques\r\n* performance\r\n* visualization of metrics for security evaluations purpose (and not just attack)\r\n* simplicity and flexibility through use of a language suitable for scientific computing\r\n\r\nIn terms of these points, Pysca (still) outperforms some commercial tooling. Pysca is nowadays mostly superseded by https://github.com/Riscure/Jlsca.\r\n\r\n## What\r\nPysca implements:\r\n* non-profiled linear-regression analysis (LRA) with configurable basis functions\r\n* classical correlation power analysis (CPA)\r\n* significant speed-up of the above by conditional averaging\r\n* targets: AES (S-box out) and DES (round in XOR round out, round out, S-box out)\r\n* visualization of results\r\n\r\n## How\r\n\r\nFor usage basics refer to the [HOWTO](howto/HOWTO.md).\r\n\r\nFor a deeper dive into [leakage modelling using linear regression](https://github.com/ikizhvatov/leakage-modelling-tutorial), clone the tutorial into the subfolder:\r\n\r\n    git clone https://github.com/ikizhvatov/leakage-modelling-tutorial.git\r\n\r\n## Details\r\nPysca works on traces stored in npz (numpy zipped) format. Example tracesets are included in the repo using git-lfs. The conversion script from Riscure Inspector trs format is included. The trs reader was originally implemented by Erik van den Brink.\r\n\r\nUnder the hood, the most interesting technical tricks in pysca are perhaps:\r\n* fast computation of correlation (see https://github.com/ikizhvatov/efficient-columnwise-correlation for a dedicated study)\r\n* conditional averaging implementation for DES (because of all the bit permutations, it requires splitting the leakage function into two stages)\r\n\r\nAuthor: Ilya Kizhvatov\u003cbr\u003e\r\nVersion: 1.0, 2017-05-14\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fikizhvatov%2Fpysca","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fikizhvatov%2Fpysca","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fikizhvatov%2Fpysca/lists"}