论文部分内容阅读
谓词加密算法是可搜索加密算法领域的研究热点,提供了外包数据的密文查询功能。谓词加密算法中假设外包方(例如云服务商)会正确地执行查询算法,并将真实的查询结果返回给用户。然而在现实生活中,云服务商很可能为了达成某些目的而拒绝提供正确的查询结果,所以云服务商返回的查询结果并不一定是完全可信的。因此,如何验证云的密文查询结果就成为一个亟待解决的问题。本文提出了通用公共可验证的谓词加密(PVPE)方案。该方案通过扩展谓词加密算法,在谓词加密算法密文查询功能的基础上,实现密文查询结果的正确性、完整性和可信性验证。在该方案中,任何授权的公共用户均可以对服务器返回的查询结果进行验证,不需要再次与服务器进行交互。同时该方案具有通用性,适用于任何具有属性隐藏性质的谓词加密算法。通用公共可验证谓词加密方案结合了谓词加密算法和可验证计算协议。该方案在谓词加密已有的四个多项式时间算法的基础上增加了验证(Verify)算法,加密阶段生成两条互斥的密文C0和C1,分别与属性x和属性x相关。这使得在正常情况下,无论属性x是否满足用户密钥关联的谓词,一定有且仅有一条密文可以被用户密钥解密。当属性满足谓词条件时,则C0可解而C1不可解,反之则C1可解而C0不可解。验证阶段根据解密结果验证服务器是否正确地返回查询结果,实现了查询结果正确性、完整性和可信性的验证。在安全性方面,提出了公共可验证的谓词加密方案的安全模型,并将该方案的安全性规约到谓词加密属性隐藏的安全模型上。由于谓词加密的属性隐藏已被证明安全,所以攻击者也只能以一个可忽略的概率攻破通用公共可验证谓词加密方案,从而证明本方案安全。在此基础上结合实际应用,本文进一步对通用公共可验证谓词加密方案进行了完善和改进。通过结合布隆过滤器,降低了通用公共可验证谓词加密方案的用户计算量,提高了用户的验证效率。最后,结合数据库实现了通用公共可验证谓词加密方案,在真实环境中模拟可验证谓词加密方案并分析验证结果,为通用公共可验证的谓词加密方案的实际应用打下了坚实的基础。