I was read in paper in searchable encryption that encrypt bloom filter index in the following way:
1- generate secret key to encrypt bloom filter and query is:
the secret key sk (M1, M2, s ), where M1, M2 ∊ Rm×m are invertible matrices and s∊{0,1}m is a vector.
2- then encrypt bloom filter as following: split bloom filter i into two vector i',i"
, set i=i'=i" if s is one; else i'=1/2 i+ r and i"=1/2i-r , as r is a random number. Then encrypt i',i" with transpose of two matrix M1 and M2 .
secondly, encrypt query in the following way:
1-split query bloom filter into two vectors q',q"
set q=q'=q" if s is zero; else q'=1/2 i+ r and q"=1/2i-r , as r is a random number. Then encrypt q',q" with inverse of two matrix M1 and M2 .
what i want to ask why multiply bloom filter index by transpose of matrix and query by inverse of matrix and the way used to split vectors?