intel / he-transformer

nGraph-HE: Deep learning with Homomorphic Encryption (HE) through Intel nGraph
Apache License 2.0
172 stars 35 forks source link

Support of softmax operation only for plain text and not for encrypted data. #55

Open adam-dziedzic opened 4 years ago

adam-dziedzic commented 4 years ago

The tf.softmax is supported by he-transformer but it gives incorrect results when a client sends encrypted data to a server. The implementation of softmax on the server side does not contact the client to compute it.

tf.softmax as underpinned by he-transformer: the logs from he-transformer show that softmax is not executed collaboratively with the client and then the final result on the client side is incorrect.

We would like softmax to be supported in the same way as ReLU and MaxPool (via MPC).

Log from the he-transformer: [WARN] 2020-09-17T17:26:03z src/seal/kernel/divide_seal.cpp 44 Dividing ciphertext / ciphertext without client is not privacy-preserving

Logs: he_client_softmax.log he_client_with_client_encryption.log he_client_without_client_encryption.log he_server_logits.log he_server_softmax.log he_server_softmax_with_client_encryption.log he_server_softmax_without_client_encryption.log