Software Packages
– DPPH-developed privacy-conscious enabling libraries
These are low-level cryptographic libraries that enable secure and seamless inter-node communications and homomorphic processing, enabling the design and construction of complex secure processing distributed systems.
Spindle
- Description: Spindle is a distributed system to train, in a private-preserving way, simple federated machine learning models (linear/logistic regression, multinomial logistic regression) on data from multiple sources. It makes use of lattice-based cryptography (Lattigo).
- Code repository: private
Lattigo
- Description: The Lattigo library unleashes the potential of lattice-based cryptography in secure multiparty computation for modern software stacks. Lattigo is a Go package implementing lattice-based cryptographic primitives.
- Code repository: https://github.com/ldsec/lattigo
Unlynx
- Description: UnLynx is a library for simulating a privacy-preserving data sharing tool and is an implementation of our paper of the same name [paper]. It offers a series of independent protocols that when combined offer a verifiably-secure and safe way to share sensitive data (e.g., medical data). UnLynx is developed by LDS (Laboratory for Data Security at EPFL) in collaboration with DeDis (Laboratory for Decentralized and Distributed Systems).
- Code repository: https://github.com/ldsec/unlynx
Onet
- Description: Onet (Overlay NETwork) is the networking library and simulation framework at DEDIS. Unlike other networking libraries, onet sits on a much higher level so the users do not need to worry about uninteresting details such as serialization and message handling. It is optimized for building decentralized systems such as privacy-preserving medical data sharing and processing tools (UnLynx and Drynx from WP3) as well as decentralized ledger technologies used in cothority of WP5. The simulation component of onet is a way for users to deploy their system to large clusters such as DeterLab and evaluate their design and implementation.
- Code repository: https://github.com/dedis/onet
- Documentation: https://godoc.org/go.dedis.ch/onet
Kyber
- Description: Kyber is an advanced cryptographic library used in cothority, onet and unlynx. It provides the building blocks for constructing advanced crytographic protocols such as zero-knowledge proofs, verifiable shuffles and so on. Kyber is used internally for building secure distributed systems (onet and cothority) and externally for performing privacy-preserving computation on sensitive medical data (UnLynx and Drynx).
- Code repository: https://github.com/dedis/kyber
- Documentation: https://godoc.org/go.dedis.ch/kyber
– DPPH-developed secure machine learning frameworks
These are systems targeting a wide range of statistical and machine learning computations in distributed and federated settings, performed in a privacy-conscious way and with no single points of failure.
Drynx
- Description: Drynx is a library for simulating a privacy-preserving and verifiable data sharing/querying tool described in this [paper]. It offers a series of independent protocols that when combined offer a verifiably-secure and safe way to compute statistics and train basic machine learning models on distributed sensitive data (e.g., medical data).
- Code repository: https://github.com/ldsec/drynx
– DPPH-developed user-oriented privacy-conscious systems
These are systems that, by making use of the low-level libraries developed by DPPH together with external open-source tools, enable privacy-conscious operations (cohort exploration, risk analysis) in a usable way.
MedCo
- Description: MedCo is the first operational system that makes sensitive medical-data available for research in a simple, privacy-conscious and secure way. It enables hundreds of clinical sites to collectively protect their data and to securely share them with investigators, without single points of failure.
MedCo applies advanced privacy-enhancing techniques, such as: collective homomorphic encryption; secure distributed protocols; blockchains; and differential privacy.
- Code repository: https://github.com/ldsec/medco-documentation
- Documentation: https://medco.epfl.ch/documentation/
- Website: https://medco.epfl.ch/
GenoShare
- Description: GenoShare is a decision-support tool co-developed by CHUV and LDS whose goal is to provide citizens willing to share their genomic data for research with a systematic way to quantify the privacy risk stemming from such sharing and to enable them to take a privacy-conscious and informed decision.
- Code repository: https://github.com/DPPH/GenoShare
– Pre-existing or co-developed related libraries
These are external and/or pre-existing libraries to which DPPH partners have contributed.
Renku
- Description:
a) Renku is a software platform designed to enable reproducible and collaborative data science.
The platform:
– Allows data scientists to easily make their analyses reproducible by automatically capturing the lineage of results in a Knowledge Graph
– Turns parts of recorded data science pipelines into building blocks that can be reused by others in their own analyses
– Provides tools for working with the Knowledge Graph for the purposes of traceability and auditability
b) Renku brings some features (reusability, reproducibility, auditability) which are highly desirable for researchers in the context of DPPH. Our goal is to make Renku functional inside the secure compute environment which will emerge from the DPPH project, therefore making the Renku features available to researchers without compromising the high level of privacy and security envisioned for the DPPH platform.
- Code repository: https://github.com/SwissDataScienceCenter/renku
- Documentation: https://renku.readthedocs.io/en/latest/
Since April 2018 renku has been presented in the following workshops and conferences:
– Swiss Research Data Day, June 2018 (link)
– Opendata.ch2018, July 2018 (link)
– Jupytercon, August 2018 (link)
– daWos 2018 – EUROSTAT, September 2018 (link)
– Beilstein Open Science Sumposium, October 2018 (link)
– NTTS 2019 – EUROSTAT, March 2019 (link)
TFHE
- Description: TFHE is a C/C++ library which implements a very fast gate-by-gate bootstrapping, based on [CGGI16] and [CGGI17]. The library allows to evaluate an arbitrary boolean circuit composed of binary gates, over encrypted data, without revealing any information on the data. The library supports the homomorphic evaluation of the 10 binary gates (And, Or, Xor, Nand, Nor, etc…), as well as the negation and the Mux gate. Each binary gate takes about 13 milliseconds single-core time to evaluate, which improves [DM15] by a factor 53, and the mux gate takes about 26 CPU-ms. Unlike other libraries, the gate-bootstrapping mode of TFHE has no restriction on the number of gates or on their composition. This allows to perform any computation over encrypted data, even if the actual function that will be applied is not yet known when the data is encrypted. The library is easy to use with either manually crafted circuits, or with the output of automated circuit generation tools.
- Code repository: ttps://tfhe.github.io/tfhe/