# Distinct keys but value revealing

Suppose we have a trust party $P_A$ that can be used to manage a data transfer from parties $P_I = P_i, \ldots, P_{i+n}$ which do not trust each others to a party $P_R$ which is also not trusted. However, parties $P_I$ would like to send some obfuscated values to $P_R$ without going to through $P_A$ and would like $P_R$ to know if two obfuscated values from say party $P_{i+k}$ and party $P_{i+j}$ are obfuscations of the same value.

A slightly weaker example would be: $P_A$ create a secret key $k_a$ and transfer that to all parties in $P_I$ and they we would HMAC their values and send them to $P_R$. However, since they are all using the same $k_a$, a party $P_{i+k}$ is worried that party $P_{i+j}$ might give that key to $P_R$ and $P_R$ is now able to brute-force the values (small input space).

Is it even possible to achieve such a system? I believe it might be impossible because if $P_R$ knows that two obfuscations are the same and knows the key of one of them then it can try that small input space with that key and be able to match the values of the other party.

I'm wondering if there's maybe a smart way to overcome that even with a guarantee between the example and what's desired.

• You say that $P_A$ is trusted but then that $P_{i+k}$ is worried about $P_A$ brute-forcing their values. I think you need to straighten this out a bit. :) – Elias Mar 16 '17 at 12:31
• You are right, I meant $P_R$. – hmash Mar 16 '17 at 12:42