Perhaps I am misunderstanding FHE, but from my knowledge, an FHE system is theoretically capable of arbitrary computation. Since this is theoretical talk, let's forget the practicality of actually implementing that today.
A common use case of FHE is secure cloud computation:
1. Encrypt M, call this E(M)
2. Send E(M) to cloud to compute f(E(M)), where f is some arbitrary computation
3. Cloud sends back result and we decrypt to get f(M)
In principle, the cloud never knew M or f(M) as it only operated on ciphertext.
Now my question is: Since this is a FHE scheme that allows arbitrary computation, the cloud service builds a full-text search function on the ciphertext and starts querying E(M) to check for partial matches or even full equality of M. What part of FHE prevents the cloud service from doing this?
E(M)is encrypted. The cloud service doesn't know the key. So whatever it does toE(M)without the key, all it can produce is encrypted results that it cannot make sense of. The only correspondence betweenMand anything inE(M)comes from the encryption scheme. – David Schwartz 3 hours ago