Im in my final year of PhD in computer vision and my supervisor has given me a task that I am not very familiar with. So I am teaching myself homomorphic encryption everyday. This question is mostly about clarifying my understandings as well.
He wants me to setup an encrypted dataset for an internal competition among his first year students. The task is to identify faces within the encrypted domain using homomorphic properties.
So to begin with I started reading about Paillier encryption and coded the encryption and decryption part from the equations in the literature review. So now I can encrypt data into ciphertext and decrypt that ciphertext back into its original text successfully. I then tested homomorphism and that is working as well. I can add together the ciphertexts and also multiply a scalar value to the ciphertexts. So the implementation and practical side that I taught myself was done.
I understand that in Paillier system we have a public key
n = p * q) and
g, and a private key
lambda. The client and the server know the public keys and the server can use this public key to perform homomorphic addition/multiplication and only the client knows the private key as only the client can decrypt the messages. Now from my understanding, his idea is for me to encrypt a simple face dataset like the ORL dataset and make available the encrypted dataset and the public keys for his students to perform operations on and hopefully determine the correct identity of another encrypted query image.
Now my main concern is about the practicality and possibility of all of this. My supervisor did not give me much details and just basically said make this happen.
My understanding is that to have a decent level of encryption for such a local dataset a
n of size 1024 bits would suffice. So I should encrypt the images with a key size of
1024 and then give the encrypted dataset along with the public key to the students. Maybe I should also give the private key so that they can decrypt their results to see if they identified correctly.
Sorry for the long post but Im trying to understand is all of this possible? Can the students perform identification in the encrypted domain using only the data I provide them?