Comment by dave1010uk
1 year ago
This is my understanding of how it works, without knowing the actual maths behind the functions:
# client
r = random_blinding_factor()
x = client_secret_input()
x_blinded = blind(x, r)
# Server
y_blinded = OPRF(k, x_blinded)
# Client
y = unblind(y_blinded, r)
So you end up with y = OPRF(k, x). But the server never saw x and the client never saw k.
This feels like the same kind of unintuitive cryptography as homomorphic encryption.
No comments yet
Contribute on Hacker News ↗