A Multi-User Public Key Encryption with
Multi-Keyword Search out of Bilinear Pairings
一、总结
本文提出了四种针对关键字猜测攻击的方案。在 DDH 和 PF 假设下,证明了它们在安全模型中是安全的。本文实现了多关键字搜索、排序结果和多用户搜索的功能。此外,本文的方案只使用模指数化和模乘法,而不使用双线性配对,所有计算都由云服务器完成。因此, 方案符合物联网系统轻量化的要求。
二、预备知识
1.Decisional Diffie–Hellman assumption (DDH)问题
(G,·)是一个具有 n 阶的乘法循环群,g 是 G 的一个元素。给定 ga,gb 和 gc,如果没有a,b 和 c,很难判断等式 c=ab(mod n)是否成立。
2.Prime factorization assumption (PF)素因子分解假设
给定 n=pq,其中 p 和 q 都是大质数和|p|≈|q|,很难计算 p 和 q。
3.Secure Match Encryption (SME)
这是 ELGmal 加密的一种变体方案,所根据的原理是:求解离散对数是困难的,而其逆运算可以应用平方乘的方法有效的计算出来。速度也比较慢。
- ELGmal加密
三、无双线性配对的 PEKS
1、Setup(1k)阶段使用RSA公开密钥密码体制生成公私钥。原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,也就是PF素因子分解假设。因此可以将乘积公开作为加密密钥。RSA的安全性依赖于大数分解,由于进行的都是大数计算,使得 RSA 最快的情况也比 DES 慢上好几倍,缺点就是慢。
2、PEKS 阶段为啥用(ci1,ci2)两个数,不用三个或者一个呢。是因为要最后 Test 阶段时能够算出来匹配的上那个等式。而且这是elgmal加密形式,密文要分成两个部分。
3、trapdoor 阶段生成陷门后,要加一个随机数 x 一起当作陷门。是因为 x 使之更复杂化, 为了保护有固定顺序的关键词不被猜中。
在系统开始时,有一个关键字列表,其中包含满足系统需要的所有关键字。这些关键字是按字典顺序或任何其他固定顺序进行固定排序的。因此,系统需要每个关键字都可以获得
一个序号 i。
四、 基于关键词排序搜索
同样,关键词按顺序位置有编号是把这篇文章的关键词提炼出来,在关键词组里的位置编号。
五、多用户PEKS
六、多用户排名的PEKS
思考:这个方案用到elgaml加密和RSA,是基于离散对数的困难性问题。可以借鉴的点在setup阶段公钥pk(y,g,n),私钥为(p,q,e,d),大师兄17年的文章也用到了类似elgaml加密的形式。本文是精确匹配的多用户的多关键词搜索,如果结合语义多关键词搜索,利用语义关系图、word2vec来找到的某个关键词的k个近似关键词,是否能转化成精确关键词搜索,再结合此文中第三个无序关键词方案,生成一篇新的方案。但是这只是在明文上做改动,并没有在密文上有什么改动创新,还需要再找是否有更优化的方法。本篇文章的借鉴之处只有方案的数学巧妙设计,是标准的纯可搜索加密理论文章,包括证明的套路,其他没有什么创新点,因为是无双线性配对,所以可以抵抗离线关键词猜测攻击,背景应用在物联网系统上,方案加入了私有云来分发给多用户各自的密钥,大部分的计算都在公有云和私有云上,故符合物联网轻量级的要求。