PEKS关键词可搜索加密详解

PEKS算法主要实现了四个步骤。

第一步:

生成公私钥,初始化安全参数P(数值为质数,这里我认识跟哈希类似,减少冲突)(普通的安全参数一般是指比特的长度,长度越大说明越安全)。

具体流程

输入P安全参数,对于循环群G来讲(循环的实现是通过模P)。该群的阶数等于 P内的质数个数-P的质因子分解个数+1(1除外)。

咱们这里设定阶数为q,如何来求G群的原根?

可以用穷举方法,穷举P的质因子组成的所有循环群。可以参考14=2*7这个例子

该图中可以看出阶数是6,说明6个数值为一个循环。所以3和5是生成元(合数的原因,质数可能会只有一个生成元)最终会取得生成元g。

进而得到了对于任意的整数k,g的k次幂都属于群G。计算a=g^k^(mod p)。a属于G

而求k的是logg(a)是离散对数问题。(这就把NP离散对数问题联系在一起啦)

扫描二维码关注公众号,回复: 11539104 查看本文章

密钥的生成  选取阿尔法属于Z的群,Z的内容为{0,1,2...P-1}  这个数是随机取得的。公钥为g的阿尔法次幂。表示的时候用[g,g的阿埃尔次幂] 这个是为了以后能够便于运算。

第二步:

PEKS对关键词进行加密,这里是用了两个哈希,首先对W进行哈希H1(W)  这个哈希是把关键字映射到群G里。e(H1(W),h的r次幂)。h的r次幂就是H1(W) (r也是随机数)  也是为了创造双线性对。然后进行二次哈希进行加密H2W(t),表示为[g的r次幂,H2(t)]  

第三步:

生成陷门,接收方指定某些关键字W2  生成陷门H1(W2)的阿尔法次幂。

第四步:

查找,输入S=【A,B】 其中A=h的r次幂  这个就是待查找的单词(哈希表示的)B加密后的密文。TEST(公钥,TW,S)

经过推导可知H2(e(Tw,A))==B​   这个可以这么理解 把文字我们哈希成A,加密成B。我现在查关键词A经过一系列步骤后等于B  说明查找成功

推导公式公式如图

猜你喜欢

转载自blog.csdn.net/zhuiyunzhugang/article/details/107673670