一种支持多用户的高效且安全的可搜索加密方法

文档序号:35922578发布日期:2023-11-04 08:42阅读:21来源:国知局
一种支持多用户的高效且安全的可搜索加密方法

本发明涉及数据加密领域,具体涉及在云环境下一种支持多用户的高效且安全的可搜索加密方法。


背景技术:

1、云计算是当今社会互联网领域最为重要的几项技术的发展与实现。包括分布式计算、并行计算、虚拟化等。云计算具有强大的计算能力、可扩展性好、价格低廉等特点。随着云计算技术的日趋成熟和快速发展,资源受限的用户将数据存储在云端,只需较小的代价就能享受高效快捷的文件存储和查询服务,在享受高质量数据服务的同时大大降低了本地管理开销,但是安全和隐私的问题已经成为一项重要的挑战,例如关键字猜测攻击。因此如何保证高质量的数据服务同时保证数据的安全性成为云计算中亟待解决的关键问题。目前主要方式在上传到云服务器之前对数据进行加密是处理这些问题的有效方法,但是也带来了其他问题,例如密文检索。

2、可搜索加密是一种支持用户在密文上根据关键词进行搜索的密码学原语。其出现的主要目的是为了解决用户在加密云数据上进行数据查询的难题,可搜索加密机制中,首先数据拥有者根据其加密算法对明文数据进行加密存储至云服务器,当数据用户想要获取到云服务器上的数据时,就发送检索所需要的凭证至云服务,云服务器根据发送的凭证在云服务器其中进行检索匹配,若匹配成功,则将查询结果以密文的形式返回给数据用户,数据用户收到返回的结果后在本地解密。现在可搜索加密技术主要分为公钥可搜索加密和对称可搜索加密两种。现在有的公钥可搜索加密虽然能够解决用户在加密数据上进行数据查询的难题,但是随着加密文件数据的增加,巨大的存储开销和沉重的检索成本成为当下面临的新的问题。

3、关键字猜测攻击可分为在线关键字猜测攻击和离线关键字猜测攻击。在线关键字猜测攻击中,攻击者将所选关键字进行加密上传到云服务器,当密文被测试匹配时,攻击者就能猜测出数据使用者查询的关键字。在离线关键字猜测攻击中,攻击者不会上传密文,而是通过便利关键字空间,攻击者运行测试匹配算法猜测出数据使用者想要搜索的关键字。离线关键字猜测攻击属于被动攻击,相比于在线关键字猜测攻击更加棘手。离线关键字猜测攻击又分为内部关键字猜测攻击和外部关键字猜测攻击,即关键字猜测攻击分别由云服务器内部的攻击者和云服务器外部的攻击者发起。外部攻击者可能是云的恶意用户或云服务器外的其他黑客;内部的攻击者通常是云服务器本身,它有测试被查询的陷门是否与某些密文匹配的特权。大多数公钥可搜索加密方案都容易受到内部关键字猜测攻击,因为它允许任何用户(包括云服务器)生成有效的密文。


技术实现思路

1、为了解决上述技术问题,本发明提供了一种支持多用户的高效且安全的可搜索加密方法。

2、本发明解决上述技术问题的技术方案是:一种支持多用户的高效且安全的可搜索加密方法,包括步骤如下:

3、步骤一,初始化阶段;

4、步骤二,密钥生成阶段:密钥生成中心为数据拥有者,数据使用者和云服务器生成相对应的公私钥,并分别分发给对应的实体;

5、步骤三,加密阶段:数据拥有者根据明文提取出关键字,生成一个关键字列表。根据关键字列表中的每一个关键字使用数据用户公钥和自己的私钥为加密,之后上传至云服务器;

6、步骤四,密文压缩阶段:云服务器可以根据一个或者多个数据拥有者上传的密文进行计算对比,将密文相同的文档链接指针插入到同一个头指针下,并将重复的密文删除;

7、步骤五,陷门生成阶段:数据使用者根据自己想要搜索的关键字,使用相应密钥加密生成陷门上传至云服务器;

8、步骤六,匹配阶段:云服务器根据数据使用者上传的陷门,和密文进行检测是否匹配,若匹配云服务器返回1,否则返回0;

9、上述一种支持多用户的高效且安全的可搜索加密方法,所述步骤一中,系统初始化阶段的具体步骤为:

10、密钥生成中心选择安全参数λ作为输入,定义一个双线性映射e:g0×g0→g1,其中g0、g1是阶为q的群,g1是群g1的生成元。密钥生成中心选择安全哈希函数h1:{0,1}*→g0,h2:{0,1}*→g0,h3:g1→{0,1}n。生成并发布全局参数gp=(h1,h2,h3,g1,q,e,g0,g1)。

11、上述一种支持多用户的高效且安全的可搜索加密方法,所述步骤二中,密钥生成阶段的具体步骤为:

12、密钥生成中心随机选择为数据拥有者生成其私钥skdo=x,随机选择为数据使用者生成其私钥skdu=y,随机选择为云服务器生成其私钥skcs=z。然后分别为数据拥有者,数据使用者和云服务器计算公钥,其中数据拥有者的公钥为pkdo=g1x,数据使用者公钥pkdu=g1y,云服务器公钥pkcs=g1z。最后将对应的公私钥分发给对应的实体。

13、上述一种支持多用户的高效且安全的可搜索加密方法,所述步骤三中,加密阶段的具体步骤为:

14、数据拥有者根据明文提取出关键字,生成关键字列表w={w1,w2,…,wn}。然后随机选择关键字为每一个关键字计算生成关键字密文其中i∈[1,n]。具体计算过程如下:

15、c1=pkduxt=g1yxt

16、c2=pkdot=g1xt

17、

18、

19、上述一种支持多用户的高效且安全的可搜索加密方法,所述步骤四中,密文压缩阶段的具体步骤为:

20、首先假设数据拥有者a上传密文数据拥有者b上传密文云服务器根据上传的密文进行计算具体计算过程如下:

21、

22、

23、如果数据拥有者a中的关键字w1等于数据拥有者b中的关键字w2,则说明数据拥有者a上传的密文和数据有者b上传的密文相同。那么将文档链接指针插入到同一个头指针下,并删除重复的数据。一旦ca与数据使用者上传的陷门匹配,则无需在和密文cb进行匹配,直接返回同一个密文。

24、上述一种支持多用户的高效且安全的可搜索加密方法,所述步骤五中,陷门生成阶段的具体步骤为:

25、数据拥有者根据自己想要搜索的关键字,随机选择使用密钥加密生成陷门并将生成的陷门提交至云服务器。具体计算过程如下:

26、t1=h1(pkdoyr)=h1(g1yxr)

27、t2=pkcszr=g1yzr

28、t3=g1r

29、

30、上述一种支持多用户的高效且安全的可搜索加密方法,所述步骤六中,匹配阶段的具体步骤为:

31、云服务器根据数据使用者上传的陷门t,和密文c进行测试匹配计算。首先计算然后计算是否成立。具体计算过程如下:

32、

33、

34、

35、若wi=wj,则匹配成功,返回1;否则匹配失败返回0。

36、本发明的有益效果在于:

37、1、本发明提出了一种支持多用户的高效且安全的可搜索加密方法。该方案包括数据拥有者、密钥生成中心、云服务器和数据使用者。根据系统模型进一步给出了相关算法的详细定义。在我们的模型中,密钥生成中心生成所有的初试参数,并把相对应的密钥分发给相对应的实体后,数据拥有者加密数据和相关关键字,然后并把密文上传至云服务器。云服务器根据上传的密文执行密文压缩算法检测同一个数据拥有者或者不同数据拥有者上传的密文是否为相同的文件,如果密文相同则将相同的密文的文档链接指针插入到同一个列表的头指针后面,并删除重复数据。数据使用者根据自己感兴趣的数据使用密钥生成陷门上传至云服务器进行搜索。云服务器接收到数据使用者发送来的陷门后进行匹配运算,若其中一份文档匹配成功则返回链接在列表后所有文档至数据使用者。

38、2、本发明提出了一种新的公钥可搜索加密方法,本方法支持对不同用户上传的密文中的重复关键字进行检测。通过检测删除密文中重复的数据,压缩了密文的存储空间,减少了存储开销。

39、3、本发明为所有的数据拥有建立一个总倒排索引表,在进行检测时,把密文相同文档链接指针插入到同一个头指针下,把不相同关键字插入到关键字列表的表尾。当数据使用者提交一个陷门时,不需要遍历所有数据拥有者的倒排索引列表,可以显著提高检索的效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1