Working with encrypted data without decrypting: CryptDB, ZeroDB and homomorphic
zdnet.com
zdnet.com
1. What happens with data shared among a dynamic group of users? A temporary password could be saved and then re-encrypted for each one of them?
2. If a suer changes its password or certificate, all its records of the databse should be updated? In a cloud service or backup that could be expensive (unless a all the information and password travels back to the user and it is reencrypted)
3. In case an attacker breaks into the remote system or database: game over. He installs custom code there and waits that the user logs in again. Or exploits the client doing a personalized MITM for the DB.
2. Same as (1). You either re-encrypt all the content keys on the client side, which could be an expensive process. Or you use proxy re-encryption to let the server re-encrypt data for your new key.
3. That I don't understand. Ok, attacker breaks into remote database. What can he do? When user logs in, he[user] doesn't ever say decryption key to the server. That was the whole point of this article :-)
For example, how could a server using FHE possibly execute any algorithm whose steps are data-dependent? Like, if the client gives the server an encrypted number and asks it to "return 'good' if the number is even and 'bad' if the number is odd", how could the server possibly do that without actually knowing what it's returning? Heck, even knowing the LENGTH of the return string would be enough to tell the server what the input was!
Basically, fundamentally I just can't see how computation could be efficient with FHE (and this has nothing to do with the efficiency of FHE itself).
We're talking about fixed-size operations, so there's no notion of asymptotic expensiveness here, but yes, FHE "addition" and "multiplication" are very expensive.
Edit: Also I'm wondering how secure the encryption really is.
How big a problem is this?