{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/exact-soft-analytical-side-channel-attacks","title":"Exact Soft Analytical Side-Channel Attacks using Tractable Circuits","arxiv_id":"2501.13748","date":"2025-01-23","proceeding":null,"authors":["Thomas Wedenig","Rishub Nagpal","Gaëtan Cassiers","Stefan Mangard","Robert Peharz"],"abstract":"Detecting weaknesses in cryptographic algorithms is of utmost importance for designing secure information systems. The state-of-the-art soft analytical side-channel attack (SASCA) uses physical leakage information to make probabilistic predictions about intermediate computations and combines these \"guesses\" with the known algorithmic logic to compute the posterior distribution over the key. This attack is commonly performed via loopy belief propagation, which, however, lacks guarantees in terms of convergence and inference quality. In this paper, we develop a fast and exact inference method for SASCA, denoted as ExSASCA, by leveraging knowledge compilation and tractable probabilistic circuits. When attacking the Advanced Encryption Standard (AES), the most widely used encryption algorithm to date, ExSASCA outperforms SASCA by more than 31% top-1 success rate absolute. By leveraging sparse belief messages, this performance is achieved with little more computational cost than SASCA, and about 3 orders of magnitude less than exact inference via exhaustive enumeration. Even with dense belief messages, ExSASCA still uses 6 times less computations than exhaustive inference.","url_abs":"https://arxiv.org/abs/2501.13748v1","url_pdf":"https://arxiv.org/pdf/2501.13748v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"exact-soft-analytical-side-channel-attacks","repo_url":"https://github.com/wedenigt/exsasca","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2501.13748","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2501.13748"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/wedenigt/exsasca","reach":null}],"summary":{"ran_honours":1,"ran":1,"ran_fixture":3,"ran_draft_wrong":2,"unverified":2},"by_repo_kind":{"official":{"samples":9,"ran":7,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":9,"samples":[{"code_sha256_prefix":"fa85a8aad5f097af","entry":"compute_first_last_bits","repo":"wedenigt/exsasca","repo_kind":"official","path":"exsasca/exhaustive_inference.py","file_url":"https://github.com/wedenigt/exsasca/blob/HEAD/exsasca/exhaustive_inference.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"fa85a8aad5f097af"}},{"code_sha256_prefix":"b1539093e84d69a9","entry":"get_mc_vars","repo":"wedenigt/exsasca","repo_kind":"official","path":"exsasca/exhaustive_inference.py","file_url":"https://github.com/wedenigt/exsasca/blob/HEAD/exsasca/exhaustive_inference.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"b1539093e84d69a9"}},{"code_sha256_prefix":"d8d9237a03f63cab","entry":"inv_xtime_permute_pmf","repo":"wedenigt/exsasca","repo_kind":"official","path":"exsasca/exhaustive_inference.py","file_url":"https://github.com/wedenigt/exsasca/blob/HEAD/exsasca/exhaustive_inference.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"d8d9237a03f63cab"}},{"code_sha256_prefix":"28e6e6bd365a7b49","entry":"mix_columns","repo":"wedenigt/exsasca","repo_kind":"official","path":"exsasca/exhaustive_inference.py","file_url":"https://github.com/wedenigt/exsasca/blob/HEAD/exsasca/exhaustive_inference.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"28e6e6bd365a7b49"}},{"code_sha256_prefix":"92ee17cbc560d244","entry":"pre_merge_pmfs","repo":"wedenigt/exsasca","repo_kind":"official","path":"exsasca/exhaustive_inference.py","file_url":"https://github.com/wedenigt/exsasca/blob/HEAD/exsasca/exhaustive_inference.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"92ee17cbc560d244"}},{"code_sha256_prefix":"86f7afa1d17f934d","entry":"xor_permute_pmf","repo":"wedenigt/exsasca","repo_kind":"official","path":"exsasca/exhaustive_inference.py","file_url":"https://github.com/wedenigt/exsasca/blob/HEAD/exsasca/exhaustive_inference.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"86f7afa1d17f934d"}},{"code_sha256_prefix":"14268792e396cc66","entry":"xtime","repo":"wedenigt/exsasca","repo_kind":"official","path":"exsasca/exhaustive_inference.py","file_url":"https://github.com/wedenigt/exsasca/blob/HEAD/exsasca/exhaustive_inference.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"14268792e396cc66"}},{"code_sha256_prefix":"4c53c3ad1743f2b4","entry":"exact_loop_solution_conditioned_on_g","repo":"wedenigt/exsasca","repo_kind":"official","path":"exsasca/exhaustive_inference.py","file_url":"https://github.com/wedenigt/exsasca/blob/HEAD/exsasca/exhaustive_inference.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"4c53c3ad1743f2b4"}},{"code_sha256_prefix":"255b97d680e8ab6f","entry":"exhaustive_inference","repo":"wedenigt/exsasca","repo_kind":"official","path":"exsasca/exhaustive_inference.py","file_url":"https://github.com/wedenigt/exsasca/blob/HEAD/exsasca/exhaustive_inference.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"255b97d680e8ab6f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}