{"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/salsa-verde-a-machine-learning-attack-on","title":"SALSA VERDE: a machine learning attack on Learning With Errors with sparse small secrets","arxiv_id":"2306.11641","date":"2023-06-20","proceeding":null,"authors":["Cathy Yuanchen Li","Emily Wenger","Zeyuan Allen-Zhu","Francois Charton","Kristin Lauter"],"abstract":"Learning with Errors (LWE) is a hard math problem used in post-quantum cryptography. Homomorphic Encryption (HE) schemes rely on the hardness of the LWE problem for their security, and two LWE-based cryptosystems were recently standardized by NIST for digital signatures and key exchange (KEM). Thus, it is critical to continue assessing the security of LWE and specific parameter choices. For example, HE uses secrets with small entries, and the HE community has considered standardizing small sparse secrets to improve efficiency and functionality. However, prior work, SALSA and PICANTE, showed that ML attacks can recover sparse binary secrets. Building on these, we propose VERDE, an improved ML attack that can recover sparse binary, ternary, and narrow Gaussian secrets. Using improved preprocessing and secret recovery techniques, VERDE can attack LWE with larger dimensions ($n=512$) and smaller moduli ($\\log_2 q=12$ for $n=256$), using less time and power. We propose novel architectures for scaling. Finally, we develop a theory that explains the success of ML LWE attacks.","url_abs":"https://arxiv.org/abs/2306.11641v2","url_pdf":"https://arxiv.org/pdf/2306.11641v2.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":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"salsa-verde-a-machine-learning-attack-on","repo_url":"https://github.com/facebookresearch/verde","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2306.11641","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.11641"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/facebookresearch/verde","reach":null}],"summary":{"ran":2,"ran_draft_wrong":1,"ran_fixture":1,"unverified":4},"by_repo_kind":{"listed":{"samples":8,"ran":4,"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":8,"samples":[{"code_sha256_prefix":"71fe19a3f5d7a9fe","entry":"Gate","repo":"facebookresearch/verde","repo_kind":"listed","path":"src/train/model/transformer.py","file_url":"https://github.com/facebookresearch/verde/blob/HEAD/src/train/model/transformer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"71fe19a3f5d7a9fe"}},{"code_sha256_prefix":"9271e9b696441fb3","entry":"TransformerFFN","repo":"facebookresearch/verde","repo_kind":"listed","path":"src/train/model/transformer.py","file_url":"https://github.com/facebookresearch/verde/blob/HEAD/src/train/model/transformer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"9271e9b696441fb3"}},{"code_sha256_prefix":"f6ed858344bb92c7","entry":"gelu","repo":"facebookresearch/verde","repo_kind":"listed","path":"src/train/model/transformer.py","file_url":"https://github.com/facebookresearch/verde/blob/HEAD/src/train/model/transformer.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"f6ed858344bb92c7"}},{"code_sha256_prefix":"5166549dd1f14dc7","entry":"get_masks","repo":"facebookresearch/verde","repo_kind":"listed","path":"src/train/model/transformer.py","file_url":"https://github.com/facebookresearch/verde/blob/HEAD/src/train/model/transformer.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"5166549dd1f14dc7"}},{"code_sha256_prefix":"1a2f7a2315dece7d","entry":"AdaptiveHalt","repo":"facebookresearch/verde","repo_kind":"listed","path":"src/train/model/transformer.py","file_url":"https://github.com/facebookresearch/verde/blob/HEAD/src/train/model/transformer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"1a2f7a2315dece7d"}},{"code_sha256_prefix":"4385a5e689c16e41","entry":"MultiHeadAttention","repo":"facebookresearch/verde","repo_kind":"listed","path":"src/train/model/transformer.py","file_url":"https://github.com/facebookresearch/verde/blob/HEAD/src/train/model/transformer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"4385a5e689c16e41"}},{"code_sha256_prefix":"166dadb82071acb9","entry":"TransformerLayer","repo":"facebookresearch/verde","repo_kind":"listed","path":"src/train/model/transformer.py","file_url":"https://github.com/facebookresearch/verde/blob/HEAD/src/train/model/transformer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"166dadb82071acb9"}},{"code_sha256_prefix":"ae64a7b21235f5e5","entry":"TransformerModel","repo":"facebookresearch/verde","repo_kind":"listed","path":"src/train/model/transformer.py","file_url":"https://github.com/facebookresearch/verde/blob/HEAD/src/train/model/transformer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"ae64a7b21235f5e5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}