Table of contents generated with markdown-toc
Homomorphic encryption (
HE
) is a form of encryption that permits users to perform computations on its encrypted data without first decrypting it. These resulting computations are left in an encrypted form which, when decrypted, result in an identical output to that produced had the operations been performed on the unencrypted data. Homomorphic encryption can be used for privacy-preserving outsourced storage and computation. (Source)
In this application the Euclidean distance is computed on a remote server using encrypted data. Only the client can see the initial data and the final result.
- Angular - web app
- NestJS - server app
- Microsoft SEAL - homomorphic encryption library
- node-seal - SEAL WebAssembly wrapper
node.js
is required both for client-side and server-side
cd client
npm install
npm start
cd cloud
npm install
npm start
- This is just a Proof-of-Concept in order to test how homomorphic encryption can be used in web applications
- The square root operator that is used in the Euclidean distance formula is computed on the client-side using
Math.sqrt(..)
due library limitations HE
seems to be good candidate for future applications that are doing compute-intensive operations on private data