{"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/arxiv-2601-09460","title":"SoK: Enhancing Cryptographic Collaborative Learning with Differential Privacy","arxiv_id":"2601.09460","date":"2026-01-14","proceeding":null,"authors":["Francesco Capano","Jonas Böhler","Benjamin Weggenmann"],"abstract":"In collaborative learning (CL), multiple parties jointly train a machine learning model on their private datasets. However, data can not be shared directly due to privacy concerns. To ensure input confidentiality, cryptographic techniques, e.g., multi-party computation (MPC), enable training on encrypted data. Yet, even securely trained models are vulnerable to inference attacks aiming to extract memorized data from model outputs. To ensure output privacy and mitigate inference attacks, differential privacy (DP) injects calibrated noise during training. While cryptography and DP offer complementary guarantees, combining them efficiently for cryptographic and differentially private CL (CPCL) is challenging. Cryptography incurs performance overheads, while DP degrades accuracy, creating a privacy-accuracy-performance trade-off that needs careful design considerations. This work systematizes the CPCL landscape. We introduce a unified framework that generalizes common phases across CPCL paradigms, and identify secure noise sampling as the foundational phase to achieve CPCL. We analyze trade-offs of different secure noise sampling techniques, noise types, and DP mechanisms discussing their implementation challenges and evaluating their accuracy and cryptographic overhead across CPCL paradigms. Additionally, we implement identified secure noise sampling options in MPC and evaluate their computation and communication costs in WAN and LAN. Finally, we propose future research directions based on identified key observations, gaps and possible enhancements in the literature.","url_abs":"https://arxiv.org/abs/2601.09460","url_pdf":"https://arxiv.org/pdf/2601.09460","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2601.09460","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2601.09460"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/SAP/sok-cpcl","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":6},"by_repo_kind":{"found_in_text":{"samples":6,"ran":0,"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":0,"samples":[{"code_sha256_prefix":"00081abc60a5e1a8","entry":"calculate_confidence_interval","repo":"SAP/sok-cpcl","repo_kind":"found_in_text","path":"trade_offs_evaluation/performance_eval/fl_evaluation.py","file_url":"https://github.com/SAP/sok-cpcl/blob/HEAD/trade_offs_evaluation/performance_eval/fl_evaluation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"00081abc60a5e1a8"}},{"code_sha256_prefix":"5c4c487d8bdcc150","entry":"compute_stats","repo":"SAP/sok-cpcl","repo_kind":"found_in_text","path":"mpc_noise_sampling/utils/stats.py","file_url":"https://github.com/SAP/sok-cpcl/blob/HEAD/mpc_noise_sampling/utils/stats.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5c4c487d8bdcc150"}},{"code_sha256_prefix":"9cb6a767cf01f8d9","entry":"exact_sampler","repo":"SAP/sok-cpcl","repo_kind":"found_in_text","path":"mpc_noise_sampling/src/python/dgauss_exact.py","file_url":"https://github.com/SAP/sok-cpcl/blob/HEAD/mpc_noise_sampling/src/python/dgauss_exact.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9cb6a767cf01f8d9"}},{"code_sha256_prefix":"4d1aaa45bcea9a9c","entry":"parse_log_file","repo":"SAP/sok-cpcl","repo_kind":"found_in_text","path":"mpc_noise_sampling/utils/parser.py","file_url":"https://github.com/SAP/sok-cpcl/blob/HEAD/mpc_noise_sampling/utils/parser.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4d1aaa45bcea9a9c"}},{"code_sha256_prefix":"7b1d40766464a7ea","entry":"poisson_uni","repo":"SAP/sok-cpcl","repo_kind":"found_in_text","path":"mpc_noise_sampling/src/python/skellam.py","file_url":"https://github.com/SAP/sok-cpcl/blob/HEAD/mpc_noise_sampling/src/python/skellam.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7b1d40766464a7ea"}},{"code_sha256_prefix":"4ae85adb8206e4fd","entry":"sample_discrete_gaussian","repo":"SAP/sok-cpcl","repo_kind":"found_in_text","path":"mpc_noise_sampling/src/python/discrete_gaussian.py","file_url":"https://github.com/SAP/sok-cpcl/blob/HEAD/mpc_noise_sampling/src/python/discrete_gaussian.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4ae85adb8206e4fd"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}