如何高效地搜索加密数据->公钥加密关键字搜索(PEKS)
带关键字搜索的公钥加密方案(PEKS)由以下五种(概率)多项式时间算法组成:
- •Setup(λ):它将安全参数λ作为输入,并输出全局系统参数Param。
- •KeyGen(Param):将系统参数Param作为输入,输出公钥/秘钥对(Pk, Sk)。算法由数据接收端运行。
- •PEKS(w, Pk):输入关键字w和接收方的公钥Pk,输出w的密文C。算法由数据发送方运行。
- •Trapdoor(w, Sk):输入关键字w和秘钥Sk,输出对应的Trapdoor Tw。算法由数据接收端运行。
- •Test(Pk,C, Tw):输入接收方的公钥Pk、密文C和活板门Tw,输出1表示C和Tw包含相同的关键字,输出0表示不包含相同的关键字。该算法由云服务器运行。
创新点:
如何抵御PEKS中的内部关键词猜测攻击->基于关键字搜索的公钥认证加密( PAEKS)
数据发送方不仅要对关键字进行加密,还要对关键字进行认证,从而使验证方确信加密的关键字只能由发送方生成。
算法实现步骤:
- Setup(λ):全局参数生成算法以安全参数λ为输入,输出全局系统参数Param。
- KeyGenS(Param):发送方的密钥对生成算法以全局系统参数Param为输入,输出发送方的公钥/密钥对(pk、sk)。
- KeyGenR(Param):接收方的密钥对生成算法以全局系统参数Param为输入,输出接收方的公钥/私钥对(PkR, SkR)。
- PEKS(w, SkS,PkR):关键字加密算法以关键字w、接收方公钥PkR和发送方秘钥SkS为输入,输出关键字w的PEKS密文C。
- 陷阱门(w,PkS, SkR):陷阱门生成算法以关键字w、发送方公钥PkS和接收方秘钥SkR作为输入,输出一个陷阱门Tw。
- Test(Tw,C,PkS,PkR):测试算法取一个活门Tw,一个PEKS密文C,发送方公钥PkS和接收方公钥PkR,如果C和Tw包含相同的关键字,输出1,否则输出0。