Given (A ^ C) * (B ^ C) = y where ^ is equivalent to XOR and * is equivalent to some operation (i.e. multiplication), is there any way of determining what A * B would have been equal to? It is assumed that you know A, B, C, and y, but that you don't know the operation * being used.
Is there any additional operations that could be included into the equation for y such as modulo?
Edit: It should be assumed that there are potentially infinite variations of *, hence trial and error of all possible operations might be impossible.
Edit: The scenario here is that person P has 'encrypted' A and B using XOR operations with C (encryption is a very loose word here). Person P now wants person Q to perform some function (i.e. multiplication) on A and B without decrypting them (i.e. fully homomorphic encryption). Having performed the function, person Q gives the result y back to person P who will 'decrypt' y to get the true result they are after.
AandB, and 'decrypt' it afterwards to get the result we are after. – James Jul 01 '22 at 08:03(A + C) * (B + C)is there any way to change it toA * B(which I believe might be impossible). This is because XOR is modular addition. – James Jul 01 '22 at 11:55A*Bfrom the given data would be if^is right-distributive over the operation*in which case the equation is(A*B)^C=yand you can XOR both sides withCto getA*B=y^C. Otherwise, there is very little information to determine the result you seek. You need to know at least some property of*to manipulate the equation and isolate theA*Bpart that you need. – Prasun Biswas Jul 01 '22 at 12:34*(beyond multiplication as an example) is because if one knows what this operation is there is almost no use case for homomorphic encryption (why not just perform the function yourself if you know what the function is). I am assuming that these functions only use addition or multiplication, but in differing manners. – James Jul 02 '22 at 02:46