Skip to content

Privacy preserving face matching using Secure Multiparty Computation

Notifications You must be signed in to change notification settings

Fluxmux/securefacematching

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Secure Face Matching

To read my thesis download this pdf

We are affected with machine learning in many aspects of our daily lives, applications ranges from facial recognition to enhanced healthcare to self-driving cars. As companies outsource image classification tasks to cloud computing service providers, we see a rise in privacy concerns for both the users wishing to keep their data confidential, as for the company wishing to keep their classifier obfuscated.

In this thesis we study the applicability of secure multiparty computation protocols on deep learning-based face matching and try to implement a privacy-preserving face matching algorithm.

Workflow

The workflow commences by acquiring an image of the clients face, this can be done by taking a photograph with the front-facing camera of the clients smartphone. The client then performs secret sharing on the image and sends the shared secret to the participating parties. The parties receive their shares and jointly compute the output of the face recognition model on the given shared image of the face.

Following software was used in this project:

Installation

Make sure following dependencies are installed

To install Pytorch go to their website (pytorch.com)

To install MPyC (the secure multiparty computation framework):

pip install mpyc

Run demo

  • First of all make sure the correct hostnames and ports are set in the environment files and the config files.
  • Launch the 3 Docker containers by running the "build_and_launch_servers.bat" files.
  • Execute a python script from the "device/mpyc/demo" folder.
  • The Docker containers should begin computing and some time later an output should be returned to the devices prompt.
  • If no output is returned or a status other than 200 is returned the application has crashed and you should try to set the allocated memory for the Docker containers higher (default is too low for bigger demos).

Commands

Launch the 3 mpc parties:

server/build_and_launch_servers.bat

Execute the secure algorithm:

python device/mpyc/demos/cnn.py

About

Privacy preserving face matching using Secure Multiparty Computation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages