Spring 2018

Past projects

Browser Plugin for Anonymous and Secure Email Communication (Semester/Thesis/Master)


Emails are still one of the most dominant ways for business and academic communication nowadays, but the email protocols do not provide any data protection by default. While OpenPGP is currently a de-facto standard for encrypting email content, it leaks important metadata in plain text, such as identities of recipients,  encryption algorithms used and an actual length of the content. In addition to deanonymizing the communicating parties, it can lead to various problems, as breaking archived-for-years emails due to a discovered vulnerability in an encryption algorithm or inferring the results of an email exchange by the content length.

In DEDIS, we have designed a novel technique that enables encoding encrypted data and its related metadata as a uniform random string, only comprehensible by the intended recipient. The goal of this master project is to develop a browser plugin for anonymous and secure email communication using the designed technique. The starting point can be an open-source PGP plugin, like Mailvelope or E2Email, where the PGP part will be substituted. 

Substantial knowledge of JavaScript is required for this project.

Contact: Kirill Nikitin

Cothority Web-Frontend – Interacting with Blockchains (Semester/Bachelor/Master)


We built a decentralized cryptography framework called cothority, that we use for testing as well as for deployment of our distributed, decentralized cryptographic algorithms. The current web-frontend can display the state and do simple interactions with our cothority. As time goes by, new services are added and need to fit into the frontend.

For a bachelor- or mster-student, this project will be adding a service to the website. For a master-thesis-student, you could chose one of our ongoing research projects, work out the details and implement both the backend and the frontend.

  • Cryptographic challenge: Replace the gopherjs code with javascript
  • Blockchains: Create SkipChains and evolve the access-control to those
  • Anonymity sets: Write a login-module for the PoP-service
  • Applications: Manage ssh-keys through our skipchain

The web-frontend is written in javascript and uses gopherjs to access our crypto-library. The backend is written in go. Our internal blockchain has some novel features that make it fast and lightweight.

Contact: Linus Gasser

Cothority Android Application (Semester/Bachelor/Master)


The cothority is a set of nodes programmed to perform decentralized, distributed cryptographic algorithms. These nodes can interact with the outside world through services. One of the latest services added is a blockchain that has been developed at DEDIS and that is both fast and secure.

In the 2017 fall semester a cross-platform application using NativeScript. Your job is to extend our application and add the following functionality (pick 2):

  • Surf on the blockchain – add a browser for the blockchain-data
  • Use the blockchain for a chat program
  • Use our identity framework to mange and share addresses and/or calendars in a privacy-conscious way
  • Add a password-manager that is kept on the private blockchain
  • Blockchain-manager – change or add access control to our blockchains

For a master-thesis student, you can also chose one of our ongoing research-projects and work out the details, before doing both the backend-implementation in go and the frontend implementation in javascript.

Contact: Linus Gasser


Improvements on Distributed Key Generation cryptography (Semester/Bachelor/Master)


Distributed Key Generation enables a set of nodes to generate a private public key pair whose private part is shared amongst different nodes such as a threshold is required to reconstruct the private key. DKG’s protocol are at the heart of many distributed protocols to enable decentralization of trust.

At dedis, we implemented the cryptographic part of some DKG protocols. Your work  will be to augment this library with new useful features such as how to re-seed a distributed key or how to safely add/remove participating nodes.

You will need to be proficient at coding (we use Go but it’s OK if you don’t know it yet), be ready to learn the basics of DKG (it’s easy math) and to delve into the literature on how to perform these improvements,i.e. the research part.

It is a challenging project that requires quite some time to get into at first but it is an exciting project since it is one of the core pieces of many of our distributed applications we develop here at DEDIS. Depending on the type of project (master or bachelor, etc), the workload can be adjusted. Finally, if the student is really motivated and depending on his/her skills, we are also open to supervise implementation of this DKG project in Rust.

Contact: nicolas.gailly@epfl.ch


Transparency Enforcing Cothority using Blockchains (Master Thesis)


The Internet relies on many centralized services, e.g., for name resolution, authentication, and content provisioning which provides authorities an easy way to monitor users or even censor unwanted content. Even though the negative consequences are well-known, the centralization of the Internet has steadily increased even more over the last years. One approach to mitigate these threats is to establish transparency mechanisms for authoritative records (such as DNS entries or TLS certificates) and expose them to public scrutiny. Various systems, like Google’s Certificate Transparency project or CONIKS provide transparency guarantees but only in a retroactive manner provided a victim has access to an honest monitor. The goal of this project is to develop a proactive validation mechanism for record consistency to detect misbehavior before a client is deceived using blockchain technology and cothorities. All implementations will be done with Google’s Go programming language using the cothority framework of EPFL’s DEDIS lab.

Contact: Eleftherios Kokoris Kogias

OmniLedger: How to Scale Blockchains (Master Thesis, Master Semester)

Designing a secure permissionless distributed ledger that performs on par with centralized payment processors such as Visa is challenging. Most existing distributed ledgers are unable to “scale-out” – growing total processing capacity with number of participants – and those that do compromise security or decentralization. This work presents OmniLedger, the first scaleout distributed ledger that can preserve long-term security under permissionless operation. OmniLedger ensures strong correctness and security by using a bias-resistant public randomness protocol to choose large statistically representative shards to process transactions, and by introducing an efficient cross-shard commit protocol to handle transactions affecting multiple shards atomically. In addition, OmniLedger optimizes performance via scalable intra-shard parallel transaction processing, ledger pruning via collectively-signed state blocks, and optional low-latency “trustbut-verify” validation of low-value transactions. 

OmniLedger PoC has received a lot of industrial interest. The aim of this project is to create a better version of OmniLedger’s software (and  demo). On the process you will get in touch with the most important concepts of blockchain and distributed systems design and get to know the Go language. A final demoable version is highly recommended 

Advisors: Eleftherios Kokoris Kogias, Linus Gasser.


Re-Decentralizing the Internet: Censorship Resistant Websites (Semester/Master Thesis)


The Internet relies on many centralized services, e.g., for name resolution, authentication, and content provisioning which provides authorities an easy way to monitor users or even censor unwanted content. Even though the negative consequences are well-known, the centralization of the Internet has steadily increased even more over the last years. To counter this centralization-trend, multiple projects have emerged recently aiming to “re-decentralized” the web, including IPFSBlockstack, and ZeroNet. One of the problems that all these approaches share is that consensus on the content of a website is hard, due to the dynamic nature of today’s Internet. The goal of projects in this topic is to develop algorithms that can enable censorship resistence, ideally while preserving privacy of the clients. All implementations will be done with Google’s Goprogramming language using the cothority framework of EPFL’s DEDIS lab.

Contact: Eleftherios Kokoris Kogias, Kirill Nikitin