← Back to context

Comment by CodeWriter23

1 month ago

> get an encrypted result set.

seems to me at that point, the server knows what segment of the overall dataset is being returned.

I don't completely understand the maths of how this works, but no, they don't.

Here's a theoretical way I wrote in another comment:

> I think they have more efficient ways, but theoretically what you could do is apply each row in your database to this encrypted value, in such a way that the encrypted value becomes the name of the POI of the best match, or otherwise junk is appended (completely changing the encrypted value) Again, the server has not read the encrypted value, it does not know which row won out. Only the client will know when it decrypts the new value.

They do something like this, using homomorphic encryption. Whatever they do, there is no doubt they incur serious performance hits.

You may also be interested: https://arxiv.org/abs/2406.06761

  • > They do something like this, using homomorphic encryption. Whatever they do, there is no doubt they incur serious performance hits.

    Right, I've seen similar engineering efforts to target this sort of functionality fail because of the computational cost and resulting latency. I'm curious to read the paper for the tradeoffs they made toward practicality at Apple's scale of users.