Non-cryptographer here, but I think homomorphic encryption is fascinating. IIRC, it allows a user to perform operations on encrypted data, without being able to decrypt the original data. I see it as the holy grail of data anonymization and I understand it to be cutting edge stuff.
I mainly thought it was neat there's a way to do matching on encrypted data without deterministic encryption. It's based on this example - https://github.com/homenc/HElib/tree/master/examples/BGV_cou... - which explains more about how it works and why it's O(N).
Homomorphic encryption reveals less information to the server about the query than if you were to encrypt keys (with deterministic encryption) and values. It hides the fact that the same query was run multiple times and which key (if any) was matched.
Couldn't you just use a file with (normally) encrypted keys and values? I'm probably slightly misunderstanding the premise of this project.