# Is it possible using homomorphic encryption (or some other technique)

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}$$ ?

• 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? Mar 1, 2020 at 6:25
• Yes, i want to keep a K-V list for each user. Mar 1, 2020 at 8:05
• 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? Mar 1, 2020 at 8:18
• User is encrypted it to hide it from cloud. Cloud just knows that it is some genuine value but not what it is. Mar 1, 2020 at 8:38
• 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. Mar 1, 2020 at 8:53