构造安全KNN加密函数的要求——非距离可恢复
满足以下条件,就不是距离可恢复加密了,便可以用于构造安全KNN
上面的定义就要求,E(q)!=E(p)
,即使q==p
最简单的构造是这样的:
p和q的标量积可以表示为pTIq=(pTM)(M-1q),那么我们让p’=ET(p,K)=MTp,同时q’=EQ(q,K)=M-1q
那么满足要求(i)p’Tq’=pTMM-1q =
pTq
同时满足要求(ii)p1’Tp2’=p1TMMTp2 !=
pTq
一个简单的KNN构造
比较方法:
这两个(d+1)维点的标量积可以表示为
但是这种方案不能对抗选择密文攻击
证明如下:
能抵抗选择密文攻击的KNN构造
Random Asymmetric Splitting
将查询向量q或者数据点p一分为二,假如
将d维向量扩展为d’维
将d维向量扩展为d’维,(d<d’)并保证增加的维度的乘积为零