Is the following possible with homomorphic encryption (or some other technique)?

Suppose the cloud server keeps a key-value list for a user with each value field encrypted (prv key with user). Now, the cloud server needs to include some of its own key-value pairs to this list and sign the whole list homomorphically and return the list to the user. The major objective is to keep the user values hidden from a cloud server.

$$\{ K_1: \{V_1\}_{U}, K_2: \{V_2\}_{U} \}$$ Or

$$\{ \{K_1: V_1\}_{U}, \{K_2: V_2\}_{U} \}$$

is turned to

$$\{ \{ K_1: V_1, K_2: V_2 \}_{CS} \}_{U}$$

$$ $$ Let me rephrase...

Party 1 (user) encrypts few items $V_1, V_2, V_3$ using homomorphic encryption key $U$ to yield $\{V_1\}_{U}, \{V_2\}_{U}, \{V_3\}_{U}$ and sends them to party 2 (cloud server).

Since, it is homomorphic encryption, party 2 can multiply ciphertexts $\{V_1\}_{U} × \{V_2\}_{U} ×\{V_3\}_{U}$ to obtain $\{V_1, V_2, V_3\}_{U}$. Right?

My question is, can it do something more with the available ciphertexts?

Can party 2 compute $\{\ \{V_1, V_2, V_3\}_{P2}\ \}_{U}$ ?

  • $\begingroup$ I assume you mean to keep a K-V list for "each single user". Why can't you sign the whole list with a regular signature scheme such as RSA-PSS, ECDSA, EdDSA, or the post-quantum Dilithium, Falcon? $\endgroup$
    – DannyNiu
    Mar 1, 2020 at 6:25
  • $\begingroup$ Yes, i want to keep a K-V list for each user. $\endgroup$
    – user60588
    Mar 1, 2020 at 8:05
  • $\begingroup$ Why is the user encrypting her/his K-V set? Do you want server to produce K-V pairs that can be correctly decrypted by the user (in which case there's no need for any signature scheme)? What do you want to be integrity-protected with signature schemes? $\endgroup$
    – DannyNiu
    Mar 1, 2020 at 8:18
  • $\begingroup$ User is encrypted it to hide it from cloud. Cloud just knows that it is some genuine value but not what it is. $\endgroup$
    – user60588
    Mar 1, 2020 at 8:38
  • 1
    $\begingroup$ Your transformation doesn't make any sense. The 1st sample looks like a reasonalbe associative array with encrypted values; the 2nd is a linear array with encrypted key-value tuple; the 3rd is even stranger - it's an associative array signed by server and encrypted by use? I suggest you use JavaScript notations ({} for dict, [] for list, f() for functions) to rewrite your samples and add some comments to it for clarification. $\endgroup$
    – DannyNiu
    Mar 1, 2020 at 8:53


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.