Term Project

Project objectives
  1. Identify the privacy requirements of existing computer systems and infrastructures

  2. Evaluate the criticize existing security and privacy controls

  3. Design (or apply) solutions and technologies to enhance the data privacy on emerging computer systems and infrastructure

Type of projects
  1. Detailed privacy assessment of existing national or international companies with artifacts that prove any claims

  2. A theoretical model of a new privacy-preserving technology for an existing application

  3. An implementation of an existing privacy-enhancing technology for a novel application

Deliverables
  1. Project proposal (Week 8; 20/10/2020)

    1. Proposal will be discussed and feedback will be provided

    2. Project topic needs to be approved 

  2. Progress report (2-3 pages) (Week 11;  10/11/2020)

  3. Final report: 5-10 pages (Week 15; 8/12/2020)

  4. Presentations (Week 15)

  5. Resources

    1.      PyDP: A Differential privacy Python Wrapper https://github.com/OpenMined/PyDP

    2.      PySyft: A python library for MPC and HE https://github.com/OpenMined/PySyft

    3.      SEAL: A homomorphic encryption library https://github.com/microsoft/SEAL

    4.      A collection of Multi-party Computation libraries https://github.com/rdragos/awesome-mpc#software

    5.      Stegano: A library for image steganography https://github.com/cedricbonhomme/Stegano

     

    Example project from previous semester (This list will be updated)

    1. GDPR Compliance

    In this project, you will choose a service provided by a local or international company and study the compliance with the GPDR principles, e.g., data minimization, storage limitation, purpose limitation etc. Then, you need to propose at least two privacy preserving mechanisms that compliment any privacy issues in their services. You have to include a detailed technical description of the provided service, the compliance (or incompliance) with GDPR, and the proposed solutions.

    1. Implementation of Garbled Circuits protocol In this project, you will implement the garbled circuit protocol using any programming language. You might restrict your implementation to two parties. However, your implementation needs to support arbitrary functions. For that, you need to develop a subroutine that transforms any function to a Boolean circuit of AND, OR, and NOT gates. Your implementation should clearly show the output of each step at different parties using Socket programming, i.e., Client-Server.

    References:
    https://homepages.cwi.nl/~schaffne/courses/crypto/2014/presentations/Kostis_Yao.pdf

     

     

    1. Differentially Privacy K-means Clustering

    In this project, you will implement a differentially private K-means clustering algorithm. K-mean clustering is a popular unsupervised machine learning algorithm used to cluster points into similar groups. An efficient solution to K-means uses Lloyd algorithm, which is an iterative algorithm that performs two phases repeatedly; in the first phase, the center (mean) of the group is chosen; in the second phase, the nearest points to that center is assigned.

    https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0206832

    https://ieeexplore.ieee.org/document/8005466

     

    1. Implementation of an anonymous remailer service

    In this project, you will implement an anonymous remailer, which is a is specialized kind of mail server designed to send e-mail messages without identifying the sender. There are multiple types of anonymous remailers: Pseudonymous remailers (Type 0), Cypherpunk remailers (Type I), Mixmaster remailers (Type II), and Mixminion remailers (Type III). Each type has its own advantage and disadvantage. You need to implement at least two types and study the pros/cons of each one.

    https://pdos.csail.mit.edu/papers/nymserver:ccs5.pdf

     

     

    1. Collaborative Homomorphic-based Texteditor

    In this project, you will implement a collaborative privacy-preserving Texteditor using Homomorphic encryption. Your texteditor can support editing text with command lines without the need of developing a graphical user interface. For example, to add a sentence in the third line, you can send a command (ADD LINE 3 "This is cool!"), or the command (DEL 4) to delete line number 4. You can create your set of commands that interactively edit the texts. Your command should be encrypted using homomorphic encryption before sent to an untrusted third party, which processes the command on the encrypted text. The third party only executes the encrypted command without being able to recognize what is the content of the ciphertext. The ciphertext is then sent to all collaborative users, which in turn decrypted into a plaintext including the changes done by the commands. Your implementation should use Socket programming.

     

    1. Implementation of Privacy preserving IP Traceback

In this project, you will implement an IP Traceback technique that preserves the privacy of users in the network. In specific, IP Traceback allows to track the source of any malicious packet within the network. However, such technique can disclose all "benign" users in the network. Using privacy-preserving technique, the implemented IP Traceback should allow to identify the source of the malicious packets without exposing any information about other users.

    http://www.nict.go.jp/publication/shuppan/kihou-journal/journal-vol58no3_4/journal-vol58no3-4_0306.pdf

    https://ieeexplore.ieee.org/document/8311469