CN115758468B - 具有前后向隐私支持非交互多用户可搜索加密方法及系统 - Google Patents

具有前后向隐私支持非交互多用户可搜索加密方法及系统 Download PDF

Info

Publication number
CN115758468B
CN115758468B CN202211552174.XA CN202211552174A CN115758468B CN 115758468 B CN115758468 B CN 115758468B CN 202211552174 A CN202211552174 A CN 202211552174A CN 115758468 B CN115758468 B CN 115758468B
Authority
CN
China
Prior art keywords
key
encryption
data
cloud server
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211552174.XA
Other languages
English (en)
Other versions
CN115758468A (zh
Inventor
徐畅
张涵琦
沈啸东
祝烈煌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN202211552174.XA priority Critical patent/CN115758468B/zh
Publication of CN115758468A publication Critical patent/CN115758468A/zh
Application granted granted Critical
Publication of CN115758468B publication Critical patent/CN115758468B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了具有前后向隐私支持非交互多用户可搜索加密方法及系统,方法包括以下步骤:数据拥有者生成密钥后通过安全通道发送给数据使用者;数据拥有者将加密索引以及加密文件上传到云服务器中;数据使用者通过密钥在云服务器中执行相关令牌操作,云服务器返回操作结果。本发明基于多客户端的设置,更加适用于现实生活场景,可以进一步扩展适用于医疗数据共享系统、地理位置查询系统等;本发明为了避免数据使用者频繁与数据拥有者交互,提供了一个可以实现非交互的方法;并在此基础上还保证了前向和后向隐私,因为过去的时间范围是不能搜索到新添加的时间戳的;除此之外,我们为了减轻客户端存储负担,还实现了小客户端存储。

Description

具有前后向隐私支持非交互多用户可搜索加密方法及系统
技术领域
本发明涉及可搜索加密领域,具体涉及一种具有前后向隐私支持非交互多用户可搜索加密方法及系统。
背景技术
现如今云服务器具有海量的存储空间和超强计算速度,为了节省存储空间并且方便与其他用户共享数据,越来越多的数据拥有者选择将数据上传到云服务器中;如果直接将数据上传到云服务器中,可能会危害数据隐私,所以数据拥有者会选择加密数据后再上传到云服务器中;但是加密操作限制了云服务器的计算和搜索性能,为了在保证数据安全的前提下实现密文下的关键字搜索操作,可搜索加密技术被提出。
现有的可搜索加密方案主要集中在单客户端,即数据拥有者上传数据到云服务器,只允许它自己查询使用数据;这在现实生活中并不适用,比如地理位置查询、医疗数据共享、推荐任务等场景,由此本发明主要研究多客户端设置;现有的多客户端方案分为交互式可搜索加密方案和非交互式可搜索加密方案;交互式可搜索加密方案需要数据使用者每次查询前与数据拥有者交互获取生成搜索令牌的必要信息;非交互式可搜索加密不需要每次查询交互,但是现有的方案只能支持静态数据库,或者不能同时支持前向和后向隐私;前向隐私和后向隐私是动态可搜索加密方案中重要的安全属性,其中前向隐私针对的是添加操作,保证了新添加的关键字不能够被过去的搜索陷门搜索到;后向隐私针对的是删除操作,保证删除文件后,后续的搜索操作不能泄露删除的文件是哪个。
除此之外,在大多数动态可搜索加密方案中,删除令牌是根据关键字/文档对生成的,如果要删除一个文件,需要根据每一个关键字生成一个删除令牌;这极大地提高了删除操作的通讯开销,而且数据拥有者必须要本地存储一个倒排索引(或前向索引)用来存储所有的关键字/文档对;这还给数据拥有者存储造成了沉重的负担,与数据拥有者最初想要将存储和计算服务外包给云服务器违背。
发明内容
本发明的目的在于解决现有基于多客户端场景的可搜索加密技术中存在的数据拥有者和数据使用者频繁交互的技术缺陷,提出了一种具有前向和后向隐私的多客户端非交互的医疗DSSE方案,并且解决客户端存储开销大的问题,实现小客户端存储。
为达到上述目的,本申请提供了以下方案:
一种具有前后向隐私支持非交互多用户可搜索加密方法及系统,包括以下步骤:
S1、由数据拥有者生成密钥,并通过安全信道发送给数据使用者;
S2、所述数据拥有者将加密索引以及加密文件上传到云服务器中;
S3、所述数据使用者通过所述密钥在所述云服务器中对所述加密索引和加密文件执行相关令牌操作,所述云服务器返回操作结果。
优选的,生成密钥的方法包括:
由所述数据拥有者随即生成密钥msk,
Figure SMS_1
其中,/>
Figure SMS_2
是伪随机函数的种子,sk是对称加密密钥,M1和M2是两个用于加密的n×n可逆矩阵,n是加密前索引向量的维度。
优选的,所述加密索引包括:
所述加密索引由加密关键字或加密文档对生成的一个块结构,与关键字链头块密钥生成加密矩阵两部分组成。
优选的,所述块结构具体包括:
设置块结构为(key,(data,kpr)),其中,key为块的密钥,(data,kpr)为被加密的值,kpr为前一个块的密钥。
优选的,所述相关令牌操作具体包括:
删除令牌:根据文件标识符生成所述删除令牌发送给所述云服务器完成删除操作;
查询令牌:通过计算要查询关键字的哈希值,并转换为预设维度布尔向量后,根据当前时间生成加密矩阵,利用所述加密矩阵完成搜索操作。
优选的,删除令牌操作的具体过程包括:
所述数据拥有者使用伪随机数进行计算,并发送到云无服务器中;
所述云服务器收到删除令牌后,开始检索,找到对应文件并删除。
优选的,利用所述加密矩阵完成搜索操作的过程包括:
所述云服务器随机选择一个矩阵与所述加密矩阵进行计算、比对后得到关键字链头块密钥;
所述云服务器通过计算索引地址找到加密值,得到头块密钥;
根据所述头块密钥得到搜索结果,并返回给数据使用者。
本申请的有益效果为:
1.现有的可搜索加密技术大多基于单客户端,但是这在实际场景中并不适用,数据拥有者上传自己的数据到云服务器中,稍后可以自己去查找相关数据;这对于医疗数据共享场景、任务推荐系统、地理位置查询等场景并不适用,因为在这些场景中,数据拥有者和数据使用者是不同的用户,数据拥有者上传数据后供其他用户查询使用;由此,本发明基于多客户端设置,这在现实世界中更加实用;
2.现有的多客户端方案分为交互可搜索加密方案和非交互式可搜索加密方案;在交互可搜索加密方案中,数据拥有者需要随时在线,因为数据使用者查询数据时,需要与数据拥有者进行交互以获取相关关键字信息,帮助生成搜索令牌;而非交互式可搜索加密方案,数据使用者不需要与数据拥有者进行交互;但是现有的非交互式可搜索加密方案只能实现基于静态数据库的搜索或者基于动态数据库但是不能实现前向和后向隐私;由此,本发明基于多客户端设置,能够非交互查询数据,并且本发明实现了前向和后向隐私;
3.现有前向和后向隐私方案,大多需要本地存储关键字状态信息,而且很多后向隐私方案输入需要关键字/文档对,这就需要本地维持一个前向索引或者倒排索引,用来存储数据库中所有的关键字/文档对;这对数据拥有者造成了很大的存储负担;而且删除时,客户端需要产生多个删除令牌发送给云服务器,删除效率不高;由此,本发明还实现了小客户端存储,减少了客户端存储压力,还实现了高效的删除;
4.数据拥有者选择将数据加密后再上传到云服务器中存储,但是加密操作给计算和搜索都带来了很大的不便,为了实现在密文上进行搜索,可搜索加密已经获得了广泛的关注;本发明基于多客户端的设置,更加适用于现实生活场景,可以进一步扩展适用于医疗数据共享系统、地理位置查询系统等;本发明为了避免数据使用者频繁与数据拥有者交互,提供了一个可以实现非交互的方法;我们观察到现有交互方案多需要数据拥有者存储关键字状态信息,数据使用者与其交互获取该信息再生成搜索令牌,我们需要找到一个不需要交互且多客户端同步的状态,时间可以满足这个特性,因此,我们使用时间范围查询实现非交互,并在此基础上还保证了前向和后向隐私,因为过去的时间范围是不能搜索到新添加的时间戳的;除此之外,我们为了减轻客户端存储负担,还实现了小客户端存储。
附图说明
为了更清楚地说明本申请的技术方案,下面对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例具有前后向隐私支持非交互多用户可搜索加密方法的流程图。
图2是本申请实施例具有前后向隐私支持非交互多用户可搜索加密方法及系统的系统模型图;
图3是本申请实施例具有前后向隐私支持非交互多用户可搜索加密方法及系统的实施例中关键字链生成的示意图;
图4是本申请实施例具有前后向隐私支持非交互多用户可搜索加密方法及系统的实施例1中加密头块密钥的示意图;
图5是本申请实施例具有前后向隐私支持非交互多用户可搜索加密方法及系统的关键字匹配性能的仿真结果图;
图6为本申请具有前后向隐私支持非交互多用户可搜索加密方法及系统与其他五种可搜索加密技术的仿真结果图;
图7为本申请具有前后向隐私支持非交互多用户可搜索加密系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
实施例一
在本实施例一中,如图1-2所示,一种云存储中支持多用户非交互并具有前向和后向隐私的可搜索加密方法具体实施时的典型应用过程,包括以下步骤:
假设数据拥有者会随时生成一些文件,并以文件集DOC={doc}(文件数量不受限)的形式上传到云服务器中,每个文件doc对应一个文件标识符ind,并且可以提取一些关键字组成关键字集合Wind;假设本实例更新n次文件集合,第一次更新文件集合DOC1={doc1},其中文件中的关键字集合W1={w1,w2},第二次更新文件集合DOC2={doc2,doc3},其中文件中的关键字集合W2={w2},W3={w1};
S100:数据拥有者生成密钥后通过安全信道发送给数据使用者;初始化,具体位置:对应图2数据拥有者部分生成密钥,接收数据拥有者的注册信息,将密钥通过安全信道发送给数据拥有者使用;将初始化的加密数据数据库发送给云服务器存储;包括如下子步骤:
S101:数据拥有者部分生成密钥,接收数据拥有者的注册信息,将密钥通过安全信道发送给数据拥有者使用;将初始化的加密数据数据库发送给云服务器存储。生成密钥的方法包括:
由所述数据拥有者随即生成密钥msk,
Figure SMS_3
其中,/>
Figure SMS_4
是伪随机函数的种子,sk是对称加密密钥,M1和M2是两个用于加密的n×n可逆矩阵,n是加密前索引向量的维度。
其中,
Figure SMS_5
Figure SMS_6
是伪随机函数的种子/>
Figure SMS_7
对称加密密钥sk=″q4FYUbvj″,M1和M2是两个用于加密的10×10可逆矩阵,1=4是哈希函数转换后向量的维度,τ=4是时间向量维度,向量总维度是n=1+τ+2=10);M1=[[1,1,1,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,],[0,0,0,1,0,0,0,0,0,0],[0,1,0,0,1,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,1]],M2=[[1,1,1,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,1]]
S102:初始化全局变量ctr为0;设置两个伪随机函数
Figure SMS_8
和两个哈希函数
Figure SMS_9
S103:将msk发送给数据使用者们通过安全信道;
S104:初始化两个表
Figure SMS_10
和/>
Figure SMS_11
将EDB=(CDB,Mat)发送给服务器存储;
S200:数据拥有者将加密索引以及加密文件上传到云服务器中;添加文件集合;如图2所示,数据拥有者可以添加一个文件集合,根据从文件中提取出来的关键字生成安全索引;在这个步骤中,为了方便理解实例,我们添加两次文件集,如前面假设的一样;所述加密索引由加密关键字或加密文档对生成的一个块结构,与关键字链头块密钥生成加密矩阵两部分组成。所述块结构具体包括:
设置块结构为(key,(data,kpr)),其中,key为块的密钥,(data,kpr)为被加密的值,kpr为前一个块的密钥。
S201:将全局变量ctr增加1,此时ctr=1;初始化表
Figure SMS_12
和/>
Figure SMS_13
S202:因为第一次更新关键字集合中没有任何关键字,所以这一步省略;
S203:如图3所示,数据拥有者想要加密文件集合DOC1={doc1},其中文件中的关键字集合W1={w1,w2};首先为该文件设置标识符地址为
Figure SMS_14
Figure SMS_15
并加密文件标识符为Enc(sk,ind1)=′QyvxBwq2QFCnOAtKmjrwgw==\n′;将(eid1,Enc(ind1))加入dic,如图2左下所示;
S204:针对关键字集合W1,随机选取一个关键字w1使用链结构加密,因为w1是第一次出现,将w1添加到关键字集合W中;我们接下来会构建一个块(key,(data,kpr));数据拥有者随机从{0,1}λ集合中选取一个数字作为块的密钥key=r1=62346,将kpr设置为前一个块的密钥0λ;构建完成块(r1,(eid1,0λ));
S 205:加密索引地址eid1和0λ,计算扰动值
Figure SMS_16
Figure SMS_17
用来扰动想要加密的数值value=eid1||0λ=′73305000000′,得到密文/>
Figure SMS_18
为它计算一个地址
Figure SMS_19
将/>
Figure SMS_20
(′23f7dfea42′:′fa949c5e46′)加入表dic中;将Key[w1]设置为r1
对关键字w2重复S 204-S 205,选取key=r2=66234;得到
Figure SMS_21
加入表dic中,将Key[w2]设置为r2
S206:DOC中只有一个文件,跳过该步骤;
S207:对关键字字典中每个关键字执行如下操作:
选取关键字w1,生成关键字链的头块(key,(data,kpr)),如图3链
Figure SMS_23
搜索,首先生成头块密钥/>
Figure SMS_26
将kpr设置为前一个块的密钥Key[w1]=r1=62346;计算扰动值/>
Figure SMS_31
Figure SMS_24
用来扰动想要加密的数值value=1λ||r1=1111162346,得到密文
Figure SMS_27
为它计算一个地址/>
Figure SMS_28
将/>
Figure SMS_30
加入到表dic中;接下来要加密/>
Figure SMS_22
并发送给云服务器,如图5第1部分生成索引阶段所示,首先计算关键字w1的哈希值/>
Figure SMS_25
并转换为4维布尔向量W=[1,0,1,0];再为其添加时间戳Ts=3,如图4“0011”节点所示,转换为4维布尔向量T=[0,0,1,1];将向量W和T连接起来生成8维向量P=[1,0,1,0,0,0,1,1],根据前面提到的规则将向量P转换为9维向量P′=[-1,1,-1,1,1,1,-1,-1,1];生成一个10维向量U,随机选取一个随机数ru=62345前9位为向量ru·P',最后一位设置为/>
Figure SMS_29
数据拥有者生成一个随机的10×10的主对角元素为向量U的下三角随机矩阵
Figure SMS_32
一个随机的10×10的主对角元素为向量(1,1,…,1)的下三角矩阵Ix。最后使用随机矩阵M1,M2加密/>
Figure SMS_33
Figure SMS_34
对于关键字w2,重复上面操作;生成
Figure SMS_35
Figure SMS_36
添加到表dic中,加密/>
Figure SMS_37
得到/>
Figure SMS_38
S208:将
Figure SMS_39
存储在Nmat,并将Nmat和dic一起发送给云服务器存储;
S209:云服务器将dic加入CDB中,将Nmat替换原来的Mat;至此,一次添加操作已经完成;为了便于理解,我们再次添加文件集DOC2,DOC2={doc2,doc3},其中文件中的关键字集合W2={w2},W3={w1};
其中,S202为所有关键字链生成当前关键字链的头块密钥,存储在表Key中;首先计算关键字w1对应链的当前的头块密钥,
Figure SMS_40
Figure SMS_41
接着计算关键字w2对应链的当前的头块密钥Key[w2];
至此,两次更新已经全部完成;
S300:所述数据使用者通过所述密钥在所述云服务器中执行相关令牌操作,所述云服务器返回操作结果。删除令牌:根据文件标识符生成所述删除令牌发送给所述云服务器完成删除操作;其中包括:查询令牌:通过计算要查询关键字的哈希值,并转换为预设维度布尔向量后,根据当前时间生成所述加密矩阵,利用所述加密矩阵完成搜索操作。删除令牌操作的具体过程包括:所述数据拥有者使用伪随机数进行计算,并发送到云无服务器中;云服务器收到删除令牌后,开始检索,找到对应文件并删除。
利用所述加密矩阵完成搜索操作的过程包括:所述云服务器随机选择一个矩阵与所述加密矩阵进行计算、比对后得到所述关键字链头块密钥;所述云服务器通过计算索引地址找到加密值,得到头块密钥;根据所述头块密钥得到搜索结果,并返回给数据拥有者。
S301:删除文件;数据拥有者删除一个文件时,只需要根据文件标识符生成一个删除令牌发送给云服务器完成删除操作:假设数据拥有者想要删除文件doc1,包括如下子步骤:
S302:数据拥有者使用伪随机数计算
Figure SMS_42
将其发送给云服务器;
S303:云服务器收到删除令牌后,检索CDB,找到(eid1,Enc(ind1)),并删除;
S304:查询数据;数据使用者想要查询包含关键字w1的文件,生成搜索令牌并发送给云服务器查询,包含如下子步骤:
S305:如图5第二部分令牌生成阶段所示,数据使用者计算关键字w1的哈希值
Figure SMS_43
并转换为4维布尔向量W=[1,0,1,0];根据当前时间数据拥有者生成一个时间范围Tr=[0,7](从初始时间T=0到当前时间T=7),如图4“0***”节点所示,使用前缀树将其转换为一个4维布尔通配符向量Tr=[0,*,*,*](如果根据前缀树有多个通配符向量组成,则时间范围转换为一组向量集合);数据拥有者将向量W和Tr连接起来生成8维向量Y=[1,0,1,0,0,*,*,*],根据前面提到的规则将向量P转换为9维向量Y'=[-1,1,-1,1,1,0,0,0,-5];生成一个10维向量Q,随机选取一个随机数rm=26374,Q的前9位为向量rm·Y',第10位设置为1;
数据使用者生成一个随机的10×10的主对角元素为向量Q的下三角随机矩阵
Figure SMS_44
一个随机的10×10的主对角元素为向量(1,1,…,1)的下三角矩阵Iy。最后使用随机矩阵M1,M2加密/>
Figure SMS_45
Figure SMS_46
数据使用者将加密矩阵
Figure SMS_47
发送给云服务器;
S306:云服务器从Mat中随机选择一个矩阵与加密矩阵
Figure SMS_48
中每个矩阵进行乘积计算,并计算他们的迹/>
Figure SMS_49
如图5第3部分搜索阶段所示,如果两个矩阵乘积的迹大于0,代表着找到了关键字匹配、时间范围匹配的关键字链头块密钥,这里我们会得到/>
Figure SMS_50
S307:云服务器计算索引地址为
Figure SMS_51
并从CDB中找到加密值CDB[addr],计算/>
Figure SMS_52
再计算/>
Figure SMS_53
得到1λ||r4,1λ表示这是头块;
S308:将key更新为r4,重复步骤S307,解密得到
Figure SMS_54
从CDB中找到CDB[eid3],将Enc(ind2)加入到结果集中;将key更新为/>
Figure SMS_55
解密得到1λ||r2;将key更新为r2,解密得到eid1||0λ,从CDB中搜索不到CDB[eid3],因为已经被删除;最后将结果{Enc(ind2)}返回给数据拥有者;所述云服务器通过使用头块密钥计算得到索引地址找到加密值,并通过头块密钥恢复得到①包含该关键字的文件的标识符加密后的地址②前一个包含该关键字的文件对应的块密钥;重复使用块密钥,最终得到所有包含该关键字的文件标记符加密集合。
S309:数据使用者经过解密,得到最后的结果;
至此,经过上述步骤,完成了一种云存储中支持多用户非交互的可搜索加密方法,并且实现了前向和后向隐私。
在所述方法中,我们基于多客户端设置,数据拥有者可以与其他用于共享数据,数据使用者通过向数据拥有者申请访问权限获得访问数据的权利;本发明可以进一步扩展使用在医疗数据共享场景、任务推荐系统、地理位置查询等方案中;
在所述方法中,通过引入时间范围查询,实现了多客户端非交互式可搜索加密,因为时间状态是多客户端同步增加的,且不需要客户端之间交互;根据当前时间产生的时间范围是搜索不到未来的时间点,只能搜索到当前时间之前的时间点;所以我们通过时间范围查询实现了非交互的前向隐私,因为我们将文件标识符加密,删除时云服务器也不知道删除的具体文件,由此实现了后向隐私。
在所述方法中,数据拥有者只需要维持一个全局变量ctr,用来记录数据拥有者更新的次数,而不需要记录所有的关键字/文档对;与此同时,本方法实现了高效的删除,因为只需要根据文件标识符生成一个删除令牌即可,与其他方案相比,本发明实现了高效的删除操作和小的客户端存储。
在所述方法中,首先使用矩阵乘法运算匹配得到头块密钥,最多只需要|W|次矩阵乘法运算;得到头块密钥后,恢复整个关键字链,需要|DB(w)|次操作,实现了高效的亚线性搜索,而且通过使用矩阵乘法、哈希值计算、异或操作,搜索操作效率高;图6为本发明与其他五种可搜索加密技术的仿真结果图,横坐标是文件集的大小,纵坐标是运行时间;从图中可以看出,本发明方法性能优势非常明显。
实施例二:
一种具有前后向隐私支持非交互的多用户可搜索加密系统,如图7所示,包括存储模块、传输模块和执行模块;
其中,存储模块用来将数据拥有者生成的密钥通过安全信道发送给数据使用者;
假设数据拥有者会随时生成一些文件,并以文件集DOC={doc}(文件数量不受限)的形式上传到云服务器中,每个文件doc对应一个文件标识符ind,并且可以提取一些关键字组成关键字集合Wind;假设本实例更新n次文件集合,第一次更新文件集合DOC1={doc1},其中文件中的关键字集合W1={w1,w2},第二次更新文件集合DOC2={doc2,doc3},其中文件中的关键字集合W2={w2},W3={w1};
存储模块通过数据拥有者生成密钥后通过安全信道发送给数据使用者;初始化,如图2所示,数据拥有者生成密钥,接收数据拥有者的注册信息,将密钥通过安全信道发送给数据使用者使用;将初始化的加密数据数据库发送给云服务器存储。
存储模块还包括密钥生成单元和数据保存单元。
密钥生成模块由数据拥有者部分生成密钥,接收数据拥有者的注册信息,将密钥通过安全信道发送给数据拥有者使用;将初始化的加密数据数据库发送给云服务器存储。由所述数据拥有者随即生成密钥msk,
Figure SMS_56
其中,/>
Figure SMS_57
是伪随机函数的种子,sk是对称加密密钥,M1和M2是两个用于加密的n×n可逆矩阵,n是加密前索引向量的维度。其中,/>
Figure SMS_58
是伪随机函数的种子/>
Figure SMS_59
对称加密密钥sk=″q4FYUbvj″,M1和M2是两个用于加密的10×10可逆矩阵,1=4是哈希函数转换后向量的维度,τ=4是时间向量维度,向量总维度是n=1+τ+2=10);M1=[[1,1,1,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0,],[0,0,0,1,0,0,0,0,0,0],[0,1,0,0,1,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,1]],M2=[[1,1,1,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,1,0,0,0,0],[0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,1]]
数据保存单元通过初始化全局变量ctr为0;设置两个伪随机函数
Figure SMS_60
和两个哈希函数/>
Figure SMS_61
将msk发送给数据使用者们通过安全信道;初始化两个表/>
Figure SMS_62
Figure SMS_63
将EDB=(CDB,Mat)发送给服务器存储。
传输模块用来将加密索引以及加密文件上传到云服务器中;
传输模块还包括加密索引生成单元、加密文件生成单元、数据上传单元。
所述加密索引生成单元由数据拥有者将加密索引以及加密文件上传到云服务器中;添加文件集合;如图3所示,数据拥有者可以添加一个文件集合,根据从文件中提取出来的关键字生成安全索引;添加两次文件集,如前面假设的一样;所述加密索引由加密关键字或加密文档对生成的一个块结构,与关键字链头块密钥生成加密矩阵两部分组成。所述块结构具体包括:设置块结构为(key,(data,kpr)),其中,key为块的密钥,(data,kpr)为被加密的值,kpr为前一个块的密钥。将全局变量ctr增加1,此时ctr=1;初始化表
Figure SMS_79
和/>
Figure SMS_67
因为第一次更新关键字集合中没有任何关键字,所以这一步省略;所述加密文件生成单元如图3所示,数据拥有者想要加密文件集合DOC1={doc1},其中文件中的关键字集合W1={w1,w2};首先为该文件设置标识符地址为
Figure SMS_76
并加密文件标识符为Enc(sk,ind1)='QyvxBwq2QFCnOAtKmjrwgw==\n';将(eid1,Enc(ind1))加入dic,如图3左下所示;针对关键字集合W1,随机选取一个关键字w1使用链结构加密,因为w1是第一次出现,将w1添加到关键字集合W中;我们接下来会构建一个块(key,(data,kpr));数据拥有者随机从{0,1}λ集合中选取一个数字作为块的密钥key=r1=62346,将kpr设置为前一个块的密钥0λ;构建完成块(r1,(eid1,0λ));加密索引地址eid1和0λ,计算扰动值
Figure SMS_65
Figure SMS_72
用来扰动想要加密的数值value=eid1||0λ=′73305000000′,得到密文/>
Figure SMS_78
为它计算一个地址/>
Figure SMS_82
Figure SMS_70
Figure SMS_81
加入表dic中;将Key[w1]设置为r1;对关键字w2重复S204-S205,选取key=r2=66234;得到
Figure SMS_64
加入表dic中,将Key[w2]设置为r2;DOC中只有一个文件,跳过该步骤;对关键字字典中每个关键字执行如下操作:选取关键字w1,生成关键字链的头块(key,(data,kpr)),如图3链/>
Figure SMS_75
头块搜索,首先生成头块密钥/>
Figure SMS_68
Figure SMS_77
将kpr设置为前一个块的密钥Key[w1]=r1=62346;计算扰动值/>
Figure SMS_71
用来扰动想要加密的数值value=1λ||r1=1111162346,得到密文
Figure SMS_73
为它计算一个地址/>
Figure SMS_69
将/>
Figure SMS_84
加入到表dic中;接下来要加密/>
Figure SMS_80
并发送给云服务器,如图5第1部分生成索引阶段所示,首先计算关键字w1的哈希值/>
Figure SMS_83
并转换为4维布尔向量W=[1,0,1,0];再为其添加时间戳Ts=3,如图4“0011”节点所示,转换为4维布尔向量T=[0,0,1,1];将向量W和T连接起来生成8维向量P=[1,0,1,0,0,0,1,1],根据前面提到的规则将向量P转换为9维向量P′=[-1,1,-1,1,1,1,-1,-1,1];生成一个10维向量U,随机选取一个随机数ru=62345前9位为向量ru·P′,最后一位设置为/>
Figure SMS_66
数据拥有者生成一个随机的10×10的主对角元素为向量U的下三角随机矩阵/>
Figure SMS_74
一个随机的10×10的主对角元素为向量(1,1,…,1)的下三角矩阵Ix。最后使用随机矩阵M1,M2加密u为
Figure SMS_85
对于关键字w2,重复上面操作;
数据上传单元根据生成的
Figure SMS_86
(′1a028475b9:′053ceaa4ca′),添加到表dic中,加密/>
Figure SMS_87
得到/>
Figure SMS_88
将/>
Figure SMS_89
Figure SMS_90
存储在Nmat,并将Nmat和dis一起发送给云服务器存储;云服务器将dic加入CDB中,将Nmat替换原来的Mat;至此,一次添加操作已经完成;为了便于理解,我们再次添加文件集DOC2,DOC2={doc2,doc3},其中文件中的关键字集合W2={w2},W3={w1};
所有关键字链生成当前关键字链的头块密钥,存储在表Key中;首先计算关键字w1对应链的当前的头块密钥,
Figure SMS_91
Figure SMS_92
接着计算关键字w2对应链的当前的头块密钥Key[w2];至此,两次更新已经全部完成。
执行模块用于数据使用者通过所述密钥在所述云服务器中执行相关令牌操作,所述云服务器返回操作结果。
执行模块还包括删除单元和查询单元和解密单元;
删除单元通过所述密钥在所述云服务器中执行删除令牌操作,所述云服务器返回操作结果。删除令牌操作:根据文件标识符生成所述删除令牌发送给所述云服务器完成删除操作;云服务器收到删除令牌后,开始检索,找到对应文件并删除。利用所述加密矩阵完成搜索操作的过程包括:所述云服务器随机选择一个矩阵与所述加密矩阵进行计算、比对后得到所述关键字链头块密钥;所述云服务器通过计算索引地址找到加密值,得到头块密钥;根据所述头块密钥得到搜索结果,并返回给数据拥有者。删除文件;数据拥有者删除一个文件时,只需要根据文件标识符生成一个删除令牌发送给云服务器完成删除操作:假设数据拥有者想要删除文件doc1,数据拥有者使用伪随机数计算
Figure SMS_93
Figure SMS_94
将其发送给云服务器;云服务器收到删除令牌后,检索CDB,找到(eid1,Enc(ind1)),并删除。
查询单元通过计算要查询关键字的哈希值,并转换为预设维度布尔向量后,根据当前时间生成所述加密矩阵,利用所述加密矩阵完成搜索操作。数据使用者想要查询包含关键字w1的文件,生成搜索令牌并发送给云服务器查询,如图5所示,第二部分令牌生成阶段所示,数据使用者计算关键字w1的哈希值
Figure SMS_95
Figure SMS_96
并转换为4维布尔向量W=[1,0,1,0];根据当前时间数据拥有者生成一个时间范围Tr=[0,7](从初始时间T=0到当前时间T=7),如图4“0***”节点所示,使用前缀树将其转换为一个4维布尔通配符向量Tr=[0,*,*,*](如果根据前缀树有多个通配符向量组成,则时间范围转换为一组向量集合);数据拥有者将向量W和Tr连接起来生成8维向量Y=[1,0,1,0,0,*,*,*],根据前面提到的规则将向量P转换为9维向量Y′=[-1,1,-1,1,1,0,0,0,-5];生成一个10维向量Q,随机选取一个随机数rm=26374,Q的前9位为向量rm·Y',第10位设置为1;
数据使用者生成一个随机的10×10的主对角元素为向量Q的下三角随机矩阵Q,一个随机的10×10的主对角元素为向量(1,1,…,1)的下三角矩阵Iy。最后使用随机矩阵M1,M2加密
Figure SMS_97
为:/>
Figure SMS_98
解密单元数据根据使用者上传的加密矩阵
Figure SMS_101
云服务器从Mat中随机选择一个矩阵与加密矩阵/>
Figure SMS_104
中每个矩阵进行乘积计算,并计算他们的迹/>
Figure SMS_106
Figure SMS_100
如图5第3部分搜索阶段所示,如果两个矩阵乘积的迹大于0,代表着找到了关键字匹配、时间范围匹配的关键字链头块密钥,这里我们会得到/>
Figure SMS_102
云服务器计算索引地址为
Figure SMS_105
并从CDB中找到加密值CDB[addr],计算
Figure SMS_108
再计算/>
Figure SMS_99
得到1λ||r4,1λ表示这是头块;将key更新为r4,重复步骤S307,解密得到/>
Figure SMS_103
从CDB中找到CDB[eid3],将Enc(ind2)加入到结果集中;将key更新为/>
Figure SMS_107
解密得到1λ||r2;将key更新为r2,解密得到eid1||0λ,从CDB中搜索不到CDB[eid3],因为已经被删除;最后将结果{Enc(ind2)}返回给数据拥有者,数据使用者解密结果,得到最后的结果;支持多用户非交互的可搜索加密功能,也实现了前向和后向隐私的功能。
以上所述的实施例仅是对本发明优选方式进行的描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。

Claims (5)

1.具有前后向隐私支持非交互多用户可搜索加密方法,其特征在于,包括以下步骤:
S1、由数据拥有者生成密钥,并通过安全信道发送给数据使用者;
S2、所述数据拥有者将加密索引以及加密文件上传到云服务器中;
S3、所述数据使用者通过所述密钥在所述云服务器中对所述加密索引和加密文件执行相关令牌操作,所述云服务器返回操作结果;
所述加密索引包括加密关键字或加密文档对生成的一个块结构和关键字链头块密钥生成的加密矩阵两个部分;
所述块结构具体包括:
设置块结构为(key,(data,kpr)),其中,key为块的密钥,(data,kpr)为被加密的值,kpr为前一个块的密钥;
所述相关令牌操作具体包括:
删除令牌操作:根据文件标识符生成删除令牌操作发送给所述云服务器完成删除;
查询令牌操作:通过计算要查询关键字的哈希值,并转换为预设维度布尔向量后,根据当前时间生成加密矩阵,利用所述加密矩阵完成查询;
利用所述加密矩阵完成查询的过程包括:
所述云服务器随机选择一个矩阵与所述加密矩阵进行计算、比对后得到关键字链头块密钥;
所述云服务器通过使用头块密钥计算得到索引地址找到加密值,并通过头块密钥恢复得到包含该关键字的文件的标识符加密后的地址和前一个包含该关键字的文件对应的块密钥;
重复使用块密钥,最终得到所有包含该关键字的文件标记符加密集合;
根据所述关键字链头块密钥与所述头块密钥得到查询结果,并返回给数据拥有者。
2.根据权利要求1所述具有前后向隐私支持非交互多用户可搜索加密方法,其特征在于,生成密钥的方法包括:
由所述数据拥有者随即生成密钥msk,
Figure FDA0004239913430000021
其中,/>
Figure FDA0004239913430000022
是伪随机函数的种子,sk是对称加密密钥,M1和M2是两个用于加密的n×n可逆矩阵,n是加密前索引向量的维度。
3.根据权利要求2所述具有前后向隐私支持非交互多用户可搜索加密方法,其特征在于,通过所述安全信道的过程包括:
将所述密钥msk发送给所述数据使用者,数据使用者利用密钥msk通过安全信道。
4.根据权利要求1所述的具有前后向隐私支持非交互多用户可搜索加密方法,其特征在于,所述删除令牌操作的具体过程包括:
所述数据拥有者使用伪随机数进行计算,得到所述删除令牌操作,并发送到云服务器中;
所述云服务器收到删除令牌后,开始检索,找到对应文件并删除。
5.具有前后向隐私支持非交互多用户可搜索加密系统,其特征在于,包括存储模块、传输模块和执行模块;
所述存储模块用于数据拥有者生成密钥后通过安全信道发送给数据使用者;
传输模块用于数据拥有者将加密索引以及加密文件上传到云服务器中;
执行模块用于数据使用者通过所述密钥在所述云服务器中执行相关令牌操作,所述云服务器返回操作结果;
所述加密索引包括加密关键字或加密文档对生成的一个块结构和关键字链头块密钥生成的加密矩阵两个部分;
所述块结构具体包括:
设置块结构为(key,(data,kpr)),其中,key为块的密钥,(data,kpr)为被加密的值,kpr为前一个块的密钥;
所述相关令牌操作具体包括:
删除令牌操作:根据文件标识符生成删除令牌操作发送给所述云服务器完成删除;
查询令牌操作:通过计算要查询关键字的哈希值,并转换为预设维度布尔向量后,根据当前时间生成加密矩阵,利用所述加密矩阵完成查询;
利用所述加密矩阵完成查询的过程包括:
所述云服务器随机选择一个矩阵与所述加密矩阵进行计算、比对后得到关键字链头块密钥;
所述云服务器通过使用头块密钥计算得到索引地址找到加密值,并通过头块密钥恢复得到包含该关键字的文件的标识符加密后的地址和前一个包含该关键字的文件对应的块密钥;
重复使用块密钥,最终得到所有包含该关键字的文件标记符加密集合;
根据所述关键字链头块密钥与所述头块密钥得到查询结果,并返回给数据拥有者。
CN202211552174.XA 2022-12-05 2022-12-05 具有前后向隐私支持非交互多用户可搜索加密方法及系统 Active CN115758468B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211552174.XA CN115758468B (zh) 2022-12-05 2022-12-05 具有前后向隐私支持非交互多用户可搜索加密方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211552174.XA CN115758468B (zh) 2022-12-05 2022-12-05 具有前后向隐私支持非交互多用户可搜索加密方法及系统

Publications (2)

Publication Number Publication Date
CN115758468A CN115758468A (zh) 2023-03-07
CN115758468B true CN115758468B (zh) 2023-07-07

Family

ID=85343608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211552174.XA Active CN115758468B (zh) 2022-12-05 2022-12-05 具有前后向隐私支持非交互多用户可搜索加密方法及系统

Country Status (1)

Country Link
CN (1) CN115758468B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112800445A (zh) * 2021-01-21 2021-05-14 西安电子科技大学 一种用于密文数据的前后向安全和可验证的布尔查询方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022099495A1 (zh) * 2020-11-11 2022-05-19 深圳技术大学 云计算环境中的密文搜索方法及系统、设备
CN113194078B (zh) * 2021-04-22 2023-04-07 西安电子科技大学 一种云端支持隐私保护的排序多关键字搜索加密方法
CN114912127A (zh) * 2022-03-10 2022-08-16 华东师范大学 一种基于区块链的多客户端可搜索加密方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112800445A (zh) * 2021-01-21 2021-05-14 西安电子科技大学 一种用于密文数据的前后向安全和可验证的布尔查询方法

Also Published As

Publication number Publication date
CN115758468A (zh) 2023-03-07

Similar Documents

Publication Publication Date Title
CN106815350B (zh) 一种云环境中动态的密文多关键词模糊搜索方法
US10740366B2 (en) Method and system for searching encrypted data
CN111026788B (zh) 一种混合云中基于同态加密的多关键词密文排序检索方法
CN105681280A (zh) 一种云环境中基于中文的可搜索加密方法
CN112270006A (zh) 电商平台中隐藏搜索模式和访问模式的可搜索加密方法
Egorov et al. ZeroDB white paper
CN104780161A (zh) 一种云存储中支持多用户的可搜索加密方法
Rashid et al. A secure data deduplication framework for cloud environments
WO2022099495A1 (zh) 云计算环境中的密文搜索方法及系统、设备
CN112783851A (zh) 恶意执行环境中安全且高效多服务器不经意随机访问机器
CN115438230A (zh) 安全高效的动态加密云数据多维范围查询方法
CN107294701B (zh) 具有高效密钥管理的多维密文区间查询装置及查询方法
Handa et al. A cluster based multi-keyword search on outsourced encrypted cloud data
Peng et al. LS-RQ: A lightweight and forward-secure range query on geographically encrypted data
CN109783456B (zh) 去重结构搭建方法、去重方法、文件取回方法、去重系统
Wang et al. An efficient and privacy-preserving range query over encrypted cloud data
Hoang et al. A multi-server oram framework with constant client bandwidth blowup
CN112231752B (zh) 一种无交互频率隐藏的密文插入查询删除方法
CN115758468B (zh) 具有前后向隐私支持非交互多用户可搜索加密方法及系统
Yan et al. Secure and efficient big data deduplication in fog computing
Rizomiliotis et al. Simple forward and backward private searchable symmetric encryption schemes with constant number of roundtrips
Zhang Semantic-based searchable encryption in cloud: issues and challenges
He et al. An efficient ciphertext retrieval scheme based on homomorphic encryption for multiple data owners in hybrid cloud
CN114912127A (zh) 一种基于区块链的多客户端可搜索加密方法
CN113626836A (zh) 一种基于lsm的对称可搜索加密方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant