Skip to content

Latest commit

 

History

History
30 lines (24 loc) · 1.4 KB

File metadata and controls

30 lines (24 loc) · 1.4 KB

Secure Aggregation Survey

Experimental secure survey software based on cryptography. Using this setup, researchers see sums/averages of participant responses, but no individualized responses.

Installing/running instructions

  1. Ensure all requirements are met. The expected way to run is in a Python environment .venv
python -m venv .venv
source .venv/bin/activate
pip install requirements.txt
  1. Run run_all.sh to run a demo with three clients and a server. Logs will be placed in logs/
$ ./run_all.sh 
Starting server, logging to secure-aggregation-survey/log/server.log...
Starting client 1, logging to secure-aggregation-survey/log/client1.log...
Starting client 2, logging to secure-aggregation-survey/log/client2.log...
Starting client 3, logging to secure-aggregation-survey/log/client3.log...
Client 2461289 finished.
Client 2461301 finished.
Client 2461304 finished.
Server 2461280 stopped.
Done.

Detailed information about the cryptography protocol and this implementation

Version 0.1 is a new implementation of the semi-honest version of "Practical Secure Aggregation for Privacy-Preserving Machine Learning" by Bonawitz et al. at CCS'17 [official link, open preprint]. The implementation was done by Scheffler in 2025 to support PRESTO research (not affiliated with the original protocol).