{"id":21107599,"url":"https://github.com/muqsitnawaz/libfss","last_synced_at":"2025-03-14T09:22:40.602Z","repository":{"id":236576079,"uuid":"792781964","full_name":"muqsitnawaz/libfss","owner":"muqsitnawaz","description":"Pure Modern C++ library for Function Secret Sharing","archived":false,"fork":false,"pushed_at":"2024-04-27T19:48:59.000Z","size":372,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-21T03:42:47.140Z","etag":null,"topics":["cpp","cryptogrpahy"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/muqsitnawaz.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-27T15:06:10.000Z","updated_at":"2024-05-15T11:42:10.000Z","dependencies_parsed_at":"2024-04-27T21:45:44.082Z","dependency_job_id":null,"html_url":"https://github.com/muqsitnawaz/libfss","commit_stats":null,"previous_names":["muqsitnawaz/libfss"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muqsitnawaz%2Flibfss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muqsitnawaz%2Flibfss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muqsitnawaz%2Flibfss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muqsitnawaz%2Flibfss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muqsitnawaz","download_url":"https://codeload.github.com/muqsitnawaz/libfss/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243551509,"owners_count":20309353,"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":["cpp","cryptogrpahy"],"created_at":"2024-11-20T00:41:07.305Z","updated_at":"2025-03-14T09:22:40.563Z","avatar_url":"https://github.com/muqsitnawaz.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FSS\n\nFSS implements a two-party Function Secret Sharing protocol that allows non-colluding parties to execute a function\nwithout knowing the original inputs of the user.\n\nThe inputs and the function are secret shared between the parties making it information therotic secure against an\nadversary (given the non-colluding assumption).\n\n## Theory\n\n- [Function Secret Sharing](https://cs.idc.ac.il/~elette/FunctionSecretSharing.pdf)\n- [Function Secret Sharing: Improvements and Extensions](https://eprint.iacr.org/2018/707.pdf)\n\n## Applications\n\n- [Pika: Secure Computation\n  using Function Secret Sharing over Rings](https://petsymposium.org/popets/2022/popets-2022-0113.pdf)\n\n## Dependencies\n\n```bash\nbrew install openssl\n```\n\n## Installation\n\n```bash\ncmake -S .. -B build\ncd build\nmake\nsudo make install\n```\n\nThis will install the library at `/usr/local/include/fss`.\n\n## Usage\n\n```cpp\n#include \u003cfss/fsscontext.hpp\u003e\n#include \u003cfss/fssgenerator.hpp\u003e\n#include \u003cfss/fssevaluator.hpp\u003e\n\nconst auto fss_context = FSSContext::Create(plain_modulus, 10); // Creates a ring of size 2^10\n\nFSSGenerator generator(fss_context); // Used for generating keys\n\nReLUKey key_p0, key_p1;\ngenerator.relu(key_p0, key_p1);\n\nFSSEvaluator evaluator_p0(fss_context, 0); // Used for evaluating the function\nFSSEvaluator evaluator_p1(fss_context, 1); // Used for evaluating the function\n\nconst auto output_p0 = evaluator_p0.relu(key_p0, \u003cmasked_exchanged_input\u003e);\nconst auto output_p1 = evaluator_p1.relu(key_p1, \u003cmasked_exchanged_input\u003e);\n\nconst auto output = (output_p0 + output_p1) % plain_modulus; // Output of the function\n```\n\n## License\n\n[MIT License](LICENSE)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuqsitnawaz%2Flibfss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuqsitnawaz%2Flibfss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuqsitnawaz%2Flibfss/lists"}