本发明属于云计算,具体涉及一种动态多用户对称可搜索加密、搜索及验证方法。
背景技术:
1、随着云计算和云存储技术的发展,外包数据的安全性已成为热点话题。对称可搜索加密技术能够在泄漏少量预定义信息的情况下,支持云服务器在密文上进行高效检索,因而受到了广泛关注。然而,目前大多数对称可搜索加密方案仅支持单用户场景,也就是说,只有数据拥有者可以访问外包数据。在许多实际应用场景中,多个用户希望通过安全的数据共享进行协作(如医院之间希望共享患者数据)。在这种场景下,单用户可搜索加密技术不再适用。因此,多用户对称可搜索加密技术被提出,其中数据拥有者将加密数据上传至云服务器,并有选择性地授权其他用户访问其部分或全部数据。其中,针对存在恶意用户与云服务器合谋来获取额外信息的场景,许多技术提出了抗合谋的多用户可搜索加密方案。目前来看,仅有少量方法在恶意用户与云服务器合谋的情况下保护了诚实用户的查询隐私,且都只支持静态数据集。
2、动态对称可搜索加密技术支持在密文数据上进行添加和删除操作,因而更加符合实际应用需求。然而,动态对称可搜索加密方案相比对称可搜索加密方案会产生额外的信息泄漏并可能遭受一些攻击(如文件注入攻击),因此前后向安全成为了动态对称可搜索加密方案必须具备的性质。
3、目前大多数前后向安全的动态对称可搜索加密方案仅支持单用户场景且只考虑了诚实且好奇的云服务器模型。在某些情况下,如系统故障、传输异常、利益驱使等原因,云服务器可能没有正确地执行检索操作,因而会给查询用户返回不正确或不完整的检索结果。这种情况下,用户对于检索结果的正确性和完整性进行验证是非常必要的,可验证的对称可搜索加密方案得到广泛关注。
4、王等人公开了一种多用户场景下可验证的多密钥可搜索加密方法,该方法在多用户模型下,支持对搜索结果的正确性与完整性进行有效验证。然而,该方案未考虑数据集动态更新场景。徐等人公开了具有前后向隐私支持非交互多用户可搜索加密方法及系统,该方法避免了数据使用者频繁与数据拥有者交互,且实现了较小的客户端存储,然而该方法未考虑恶意云服务模型,未对数据使用者的检索结果进行验证。李等人公开了一种基于可验证的对称可搜索加密的隐私保护方法,该方法支持多个授权用户对数据拥有者存储于云端的数据发起查询操作,且支持用户对查询结果的完整性和新鲜度进行验证。但该方法未考虑数据动态更新场景,且由于采用了公钥算法,因而方案存在性能瓶颈。chamani等人提出了第一个抵抗恶意用户与恶意服务器合谋的动态多用户对称可搜索加密方案,并将其拓展到支持检索结果的可验证性。然而该方案的验证过程是在原有动态多用户可搜索加密方案的基础上直接套上默克尔树的验证结构,计算和通信开销大。
5、也就是说,目前现有技术中存在的相关方法存在以下问题:
6、(1)可验证过程是在原有动态多用户可搜索加密方案的基础上直接套上默克尔树的验证结构,共享、更新以及验证算法计算和通信开销大;
7、(2)借助复杂密码工具,如omap、加密队列等实现动态操作,更新以及检索算法计算和通信开销大;
8、(3)搜索陷门与搜索结果与目标关键词的所有插入条目成正比,搜索通信开销大,且用户解密时计算开销大;
9、(4)未实现多用户场景下非交互式真实删除。
技术实现思路
1、为了解决相关技术中存在的上述问题,本发明提供了一种动态多用户对称可搜索加密、搜索及验证方法。本发明要解决的技术问题通过以下技术方案实现:
2、本发明提供一种动态多用户对称可搜索加密方法,其特征在于,包括:
3、确定共享数据、所述共享数据的文档标识符id、所述共享数据的合法访问用户、所述合法访问用户的身份标识符u,以及所述合法访问用户的第一密钥、第二密钥和第三密钥;
4、采用所述第三密钥加密所述文档标识符id,得到密文;
5、基于所述共享数据中每个关键词、所述第一密钥、所述第二密钥、所述文档标识符id、预设安全参数和共享操作标志,采用多重集合哈希函数生成所述关键词与所述合法访问用户共同对应的更新验证证明,以及生成所述关键词的加密索引和所述关键词与所述合法访问用户共同对应的更新状态;
6、将所述更新状态和所述更新验证证明上传至超级账本;所述超级账本用于向所述合法访问用户共享所述状态和所述验证证明;所述状态和所述验证证明用于验证所述密文;
7、将所述加密索引和所述密文构成的全局加密索引,以及所述文档标识符id和所述身份标识符u构成的信息,全部发送至云服务器存储,并使所述云服务器将所述全局加密索引存储至加密索引表te,将所述信息存储至用户访问列表accesslist。
8、在一些实施例中,所述基于所述共享数据中每个关键词、所述第一密钥、所述第二密钥、所述文档标识符id、预设安全参数和共享操作标志,采用多重集合哈希函数生成所述关键词与所述合法访问用户共同对应的更新验证证明,以及生成所述关键词的加密索引和所述关键词与所述合法访问用户共同对应的更新状态,包括:
9、根据所述第一密钥、所述第二密钥和所述共享数据中每个关键词,生成所述关键词对应的第一伪随机值和第二伪随机值;
10、从所述超级账本中读取所述关键词和所述合法访问用户共同对应的最新状态和最新验证证明,得到读取结果;
11、根据所述读取结果、所述文档标识符id、所述预设安全参数、所述共享操作标志、所述第一伪随机值和所述第二伪随机值,分别生成所述关键词的加密索引,以及所述关键词与所述合法访问用户共同对应的更新状态;
12、根据所述读取结果、所述文档标识符id、所述第一伪随机值、所述第二伪随机值和所述更新状态,采用多重集合哈希函数生成所述关键词与所述合法访问用户共同对应的更新验证证明。
13、在一些实施例中,所述预设安全参数包括:第一预设安全参数和第二预设安全参数;所述根据所述读取结果、所述文档标识符id、所述预设安全参数、所述共享操作标志、所述第一伪随机值和所述第二伪随机值,分别生成所述关键词的加密索引,以及所述关键词与所述合法访问用户共同对应的更新状态,包括:
14、根据所述第一预设安全参数,生成所述关键词与所述合法访问用户共同对应的更新状态;
15、将所述第一伪随机值和所述更新状态级联后采用第一哈希函数进行处理,得到第一哈希值;
16、采用第二哈希函数对所述第二伪随机值和所述文档标识符id进行哈希计算,得到第二哈希值;
17、将长度为所述第二预设安全参数的0字符串与所述读取结果中的状态读取结果,以及所述共享操作标志和所述第二哈希值依次进行级联,得到级联结果;
18、将所述第一哈希值和所述级联结果进行异或处理,得到所述关键词的加密索引。
19、在一些实施例中,所述根据所述读取结果、所述文档标识符id、所述第一伪随机值、所述第二伪随机值和所述更新状态,采用多重集合哈希函数生成所述关键词与所述合法访问用户共同对应的更新验证证明,包括:
20、当所述读取结果表明不存在所述最新状态和所述最新验证证明时,将所述第一伪随机值与所述文档标识符id级联,采用多重集合哈希函数对所述第二伪随机值与级联后的第一伪随机值和文档标识符id进行计算,以及采用多重集合哈希函数对所述第二伪随机值和所述更新状态进行计算,根据计算结果,得到所述关键词与所述合法访问用户共同对应的更新验证证明;或,
21、当所述读取结果表明存在所述最新状态和所述最新验证证明时,采用多重集合哈希函数对所述第二伪随机值与级联后的第一伪随机值和文档标识符id进行计算,以及采用多重集合哈希函数对所述第二伪随机值和所述更新状态进行计算,采用多重集合哈希函数对所述第二伪随机值和所述最新状态进行计算,根据计算结果和所述最新验证证明,得到所述关键词与所述合法访问用户共同对应的更新验证证明。
22、在一些实施例中,在所述将所述加密索引和所述密文构成的全局加密索引,以及所述文档标识符id和所述身份标识符u构成的信息,全部发送至云服务器存储之后,还包括:
23、当要更新所述共享数据中的至少一个关键词时,获取所述共享数据的合法访问用户的所述第一密钥和所述第二密钥;
24、基于每个要更新的关键词、所述第一密钥、所述第二密钥、所述文档标识符id、所述预设安全参数和更新操作类型标志,采用多重集合哈希函数生成所述要更新的关键词与所述合法访问用户共同对应的更新验证证明,以及生成所述关键词的加密索引和所述关键词与所述合法访问用户共同对应的更新状态;所述更新操作类型标志表征增加或删除;
25、将所述要更新的关键词的所述更新状态和所述更新验证证明上传至所述超级账本;
26、将所述密文和所述要更新的关键词的加密索引所构成的更新的全局加密索引,发送至云服务器,并使所述云服务器采用所述更新的全局加密索引对所述加密索引表te进行更新;所述要更新的关键词的加密索引中包含所述要更新的关键词的所述第二哈希值。
27、在一些实施例中,所述确定共享数据、所述共享数据的文档标识符id、所述共享数据的合法访问用户、所述合法访问用户的身份标识符u,以及所述合法访问用户的第一密钥、第二密钥和第三密钥,包括:
28、选择要共享的用户,以及要向所述用户共享的数据;
29、获取所述用户的身份标识符u、所述第一密钥、所述第二密钥和所述第三密钥,以及所述共享数据的文档标识符id;
30、通过将所述身份标识符u和所述文档标识符id添加至所述用户访问列表accesslist,将所述用户作为所述共享数据的合法访问用户。
31、在一些实施例中,在所述获取所述用户的身份标识符u、所述第一密钥、所述第二密钥和所述第三密钥,以及所述共享数据的文档标识符id之前,包括:
32、获取所述用户发送的注册请求;
33、根据所述预设安全参数,为所述用户生成所述第一密钥、所述第二密钥和所述第三密钥;
34、将所述第一密钥、所述第二密钥和所述第三密钥发送至所述用户,并将所述第一密钥、所述第二密钥和所述第三密钥存储至用户密钥列表userskeys。
35、本发明还提供一种搜索方法,应用于云服务器,所述云服务器存储有采用上述方法得到的加密索引表te,所述方法包括:
36、接收用户发送的查询陷门,根据所述查询陷门生成key;所述查询陷门包含要查询的关键词对应的第一伪随机值和更新状态;
37、根据key从所述加密索引列表te中索引出对应的value;
38、根据key、所述第一伪随机值、所述更新状态和value,得到至少一个对应的子密文信息;每个子密文信息包含第二哈希值,以及共享操作标志或更新操作类型标志;所述更新操作类型标志表征增加或删除;
39、根据所述第二哈希值、用于存储删除的密文信息的删除条目列表δ、用于存储上一次查询结果的缓存列表tc,以及所述共享操作标志或所述更新操作类型标志,得到所述要查询的关键词的查询结果,以及更新后的所述缓存列表tc。
40、在一些实施例中,所述根据所述第二哈希值、用于存储删除的密文信息的删除条目列表δ、用于存储上一次查询结果的缓存列表tc,以及所述共享操作标志或所述更新操作类型标志,得到所述要查询的关键词的查询结果,以及更新后的所述缓存列表tc,包括:
41、当所述至少一个子密文信息包含所述共享操作标志,或所述至少一个子密文信息包含所述更新操作类型标志且所述更新操作类型标志表征增加时,判断所述第二哈希值是否存在于所述删除条目列表δ,若存在,将所述第二哈希值从所述删除条目列表δ中删除,若不存在,将所述第二哈希值和所述要查询的关键词的密文所构成的id密文信息存储至中间查询结果列表r′,并从所述加密索引列表te中删除value,得到更新后的加密索引列表te;
42、当所述至少一个子密文信息包含所述更新操作类型标志且所述更新操作类型标志表征删除时,将所述第二哈希值添加至所述删除条目列表δ,之后,判断所述第二哈希值和所述要查询的关键词的密文所构成的id密文信息是否存在于所述缓存列表tc中,若存在,则将所述缓存列表tc中的所述id密文信息删除;
43、在依次遍历所述至少一个子密文信息中包含的所有操作标志之后,得到更新后的所述缓存列表tc;
44、将更新后的所述缓存列表tc和所述中间查询检索结果列表r′中,所述要查询的关键词的密文取出,作为所述要查询的关键词的所述查询结果。
45、本发明还提供一种验证方法,包括:
46、从超级账本读取要查询的关键词的更新状态和更新验证证明;
47、当所述最新状态和所述最新验证证明均存在时,根据所述要查询的关键词、所述第一密钥和所述第二密钥,生成所述要查询的关键词对应的第一伪随机值和第二伪随机值;
48、根据所述第一伪随机值和所述最新状态组成查询陷门,并将所述查询陷门发送至云服务器;
49、接收所述云服务器发送的采用上述搜索方法生成的查询结果;
50、采用第三密钥对所述查询结果进行解密,得到包含所述要查询的关键词的所有共享数据的文档标识符id;
51、采用多重集合哈希函数对所述第二伪随机值与所述更新状态进行计算,得到第一多重集合哈希函数值,并采用多重集合哈希函数对根据所述第二伪随机值与级联后的所述第一伪随机值和解密后的查询结果中所有文档标识符id进行计算,得到所有的第二多重集合哈希函数值;
52、对所述第一多重集合哈希函数值和所述第二多重集合哈希函数值进行求和,得到重新生成的所述要查询的关键词对应的更新验证证明;
53、当重新生成的所述要查询的关键词的更新验证证明与从所述超级账本读取的所述要查询的关键词的更新验证证明相同时,表明对所述查询结果的验证通过;否则,表明验证失败。
54、本发明具有如下有益技术效果:
55、本发明由于在生成加密索引时,会采用多重集合哈希函数生成关键词与合法访问用户共同对应的最新验证证明,并且,该验证证明用于验证关键词所在的共享数据的密文,因而,可以基于多重集合哈希函数实现对关键词的查询结果的可验证性,并且,在验证过程中仅需o(1)的通信开销以及o(rw)的计算开销,(rw)表示与需要查询的关键词w匹配的有效条目数),相比于采用默克尔树实现验证的方法而言,可以降低用户对查询结果的验证操作的计算和通信开销,从而大大降低了用户进行验证操作的计算和通信开销,在动态多用户可搜索加密场景下实现了更加高效的查询结果的可验证性。
56、本发明由于以超级账本作为数据拥有者(向云端服务器上传全局索引的用户)与用户(向云端服务器发送查询陷门的用户)同步信息的媒介,避免引入omap等复杂且高开销的密码工具,从而提升了共享、动态更新以及搜索时的性能,在数据拥有者与查询用户间可以更加高效地同步更新信息,实现了更加高效的动态操作。
57、本发明由于采用状态链构造加密索引,并采用搜索已缓存的搜索结果的方法,因而大大降低了搜索过程中的计算和通信开销,实现了更好的搜索性能。
58、本发明由于在多用户场景下构造的加密索引中可以包含用于表征增加或删除的更新操作类型标志,因而,可以在加密索引中添加删除条目的索引,从而可以支持非交互式真实删除,实现了多用户场景下非交互式真实删除。
59、以下将结合附图及实施例对本发明做进一步详细说明。