mirror of
https://github.com/rdragos/awesome-mpc.git
synced 2026-01-09 01:57:54 -05:00
first commit
This commit is contained in:
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
* text=auto
|
||||
readme.md merge=union
|
||||
74
code-of-conduct.md
Normal file
74
code-of-conduct.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, gender identity and expression, level of experience,
|
||||
nationality, personal appearance, race, religion, or sexual identity and
|
||||
orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at r.dragos0@gmail.com. All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at [http://contributor-covenant.org/version/1/4][version]
|
||||
|
||||
[homepage]: http://contributor-covenant.org
|
||||
[version]: http://contributor-covenant.org/version/1/4/
|
||||
25
contributing.md
Normal file
25
contributing.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Contribution Guidelines
|
||||
|
||||
Please note that this project is released with a
|
||||
[Contributor Code of Conduct](code-of-conduct.md). By participating in this
|
||||
project you agree to abide by its terms.
|
||||
|
||||
---
|
||||
|
||||
Ensure your pull request adheres to the following guidelines:
|
||||
|
||||
- Make an individual pull request for each suggestion.
|
||||
- Additions should be added to the bottom of the relevant category.
|
||||
- The pull request should have a useful title and explanation why it should be included.
|
||||
|
||||
Thank you for your suggestions!
|
||||
|
||||
|
||||
## Updating your PR
|
||||
|
||||
A lot of times, making a PR adhere to the standards above can be difficult.
|
||||
If the maintainers notice anything that we'd like changed, we'll ask you to
|
||||
edit your PR before we merge it. There's no need to open a new PR, just edit
|
||||
the existing one. If you're not sure how to do that,
|
||||
[here is a guide](https://github.com/RichardLitt/docs/blob/master/amending-a-commit-guide.md)
|
||||
on the different ways you can update your PR so that we can merge it.
|
||||
78
readme.md
Normal file
78
readme.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# awesome-mpc [](https://github.com/sindresorhus/awesome)
|
||||
|
||||
The list format was inspired from [awesome list](https://github.com/sindresorhus/awesome) and after a fruitful lunch discussion at [TPMPC](http://www.multipartycomputation.com/). It is designed to have a central place where everyone can find open-source software designed for MPC as well as introductory material to this topic.
|
||||
|
||||
Moreover, the list of libraries is given alphabetically and divided into categories which are actively maintained or recently developed.
|
||||
|
||||
Please feel free to do a pull request with any MPC software or resource you know and it is not on the list. The current classification might not be most suitable one and I am open to any suggestions.
|
||||
|
||||
### Index
|
||||
- [Theory](#theory)
|
||||
- [Books](#books)
|
||||
- [Courses](#courses)
|
||||
- [Tutorials](#tutorials)
|
||||
- [MPC Software](#mpc-software)
|
||||
- [Frameworks](#frameworks)
|
||||
- [Primitives](#primitives)
|
||||
- [Protocols](#protocols)
|
||||
- [Tools](#tools)
|
||||
|
||||
## Theory
|
||||
|
||||
### Books
|
||||
|
||||
- [Secure Multiparty Computation and Secret Sharing](http://www.cambridge.org/dk/academic/subjects/computer-science/cryptography-cryptology-and-coding/secure-multiparty-computation-and-secret-sharing?format=HB) - comprehensive treatment of unconditionally secure techniques for multiparty computation (MPC) and secret sharing.
|
||||
|
||||
### Courses
|
||||
|
||||
- [FHE-MPC Advanced Grad Course](https://www.cs.bris.ac.uk/home/nigel/FHE-MPC/) - `informal grad course' in FHE and MPC.
|
||||
|
||||
### Tutorials
|
||||
|
||||
- [How To Simulate It](https://eprint.iacr.org/2016/046) - A Tutorial on the Simulation Proof Technique.
|
||||
- [OSU Bibliography](https://web.engr.oregonstate.edu/~rosulekm/scbib/index.php?n=Main.GettingStarted) - An Annotated Bibliography of Practical Secure Computation.
|
||||
|
||||
## MPC Software
|
||||
|
||||
Here I tried to reference the most recent article found on specific software since enumerating all changes including the original paper is too cumbersome.
|
||||
|
||||
## Frameworks
|
||||
|
||||
- [ABY](https://github.com/encryptogroup/ABY) - 2PC with secret sharing and garbled circuits; secure against semi-honest adversaries | [NDSS'15](http://encrypto.de/papers/DSZ15.pdf).
|
||||
- [batchDualEx](https://github.com/osu-crypto/batchDualEx) - 2PC with garbled circuits; secure against malicious adversaries | eprint: [2016/632](https://eprint.iacr.org/2016/632).
|
||||
- [Duplo](https://github.com/AarhusCrypto/DUPLO) - 2PC with garbled circuits; secure against malicious adversaries.
|
||||
- [Fresco](http://fresco.readthedocs.io/en/latest/) - MPC supporting BGW or SPDZ protocols; secure against semi-honest or malicious adversaries | [Practice'15](http://practice-project.eu/downloads/publications/D22.1-State-of-the-art-analysis-PU-V1.1.pdf).
|
||||
- [Obliv-C](http://oblivc.org/) - 2PC with garbled circuits; secure against semi-honest adversaries | eprint: [2015/1153](http://eprint.iacr.org/2015/1153).
|
||||
- [Sharemind](https://sharemind.cyber.ee/) - 2PC or 3PC with secret sharing; secure against semi-honest adversaries | [Cyber'13](https://cyber.ee/uploads/2013/04/Jagomagis_msc.pdf).
|
||||
- [SPDZ](https://www.cs.bris.ac.uk/Research/CryptographySecurity/SPDZ/) - general MPC with secret sharing; secure against malicious adversaries | eprint: [2016/505](http://eprint.iacr.org/2016/505).
|
||||
- [TinyLEGO](https://github.com/AarhusCrypto/TinyLEGO) - 2PC with garbled circuits; secure against malicious adversaries | eprint: [2015/309](http://eprint.iacr.org/2015/309).
|
||||
|
||||
## Primitives
|
||||
- [ARICOT](https://github.com/bristolcrypto/apricot) - OT Extension secure against malicious adversaries | [2015/546](http://eprint.iacr.org/2015/546).
|
||||
- [libOTe](https://github.com/osu-crypto/libOTe) - Library with various OT Extensions.
|
||||
- [OT Extension](https://github.com/encryptogroup/OTExtension) - OT Extension secure against malicious adversaries | [2015/061](https://eprint.iacr.org/2015/061).
|
||||
- [SCAPI](https://github.com/cryptobiu/scapi) - various secure computation API's carefully documented with a clean code design in mind | [2012/629](http://eprint.iacr.org/2012/629).
|
||||
- [SplitCommit](https://github.com/AarhusCrypto/SplitCommit) - Additively homomorphic commitment scheme | [2015/694](http://eprint.iacr.org/2015/694).
|
||||
|
||||
## Protocols
|
||||
- [BaRK-OPRF](https://github.com/osu-crypto/BaRK-OPRF) - Private Set Intersection | [2016/799](https://eprint.iacr.org/2016/799).
|
||||
- [Linreg](https://github.com/schoppmp/linreg-mpc/) - Privacy preserving linear regression | [2016/892](https://eprint.iacr.org/2016/892).
|
||||
- [Geppetri](https://github.com/meilof/geppetri) - Verifiable 3PC | [2017/013](https://eprint.iacr.org/2017/013).
|
||||
- [ORAM (Obliv-C)](http://oblivc.org/sqoram/) - Oblivous RAM | [S&P'16](http://oblivc.org/docs/sqoram.pdf).
|
||||
- [PSI](https://github.com/encryptogroup/PSI) - Private Set Intersection | [2014/447](https://eprint.iacr.org/2014/447).
|
||||
|
||||
## Tools
|
||||
- [CBMC-GC](http://www.seceng.informatik.tu-darmstadt.de/index.php/research/software/cbmc-gc/) - creates Boolean circuits from ANSI-C code optimized for secure computation | [ShallowCC](http://www.seceng.informatik.tu-darmstadt.de/assets/buescher/ShallowCC16.pdf).
|
||||
- [UC Compiler](https://github.com/encryptogroup/UC) - Valiant's Universal Circuit Compiler | [2016/093](https://eprint.iacr.org/2016/093).
|
||||
|
||||
## Contribute
|
||||
|
||||
Contributions welcome! Read the [contribution guidelines](contributing.md) first.
|
||||
|
||||
|
||||
## License
|
||||
|
||||
[](http://creativecommons.org/publicdomain/zero/1.0)
|
||||
|
||||
To the extent possible under law, Dragoș Rotaru has waived all copyright and
|
||||
related or neighboring rights to this work.
|
||||
Reference in New Issue
Block a user