一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种文件共享方法、共享文件的搜索方法及装置

2022-05-21 06:02:34 来源:中国专利 TAG:


1.本发明属于计算机技术领域,尤其涉及一种文件共享方法、共享文件的搜索方法及装置。


背景技术:

2.随着互联网、5g技术的发展,以及社会发展对效率的追求,远程办公必然是趋势,并在未来5-10年成为普遍现象渗透到各个行业各个层级职员。从互联网安全角度来看,在线办公人数增多、网络流量激增带来的不仅是服务器、网络方面的高并发压力,还有安全方面的挑战。
3.近年来,facebook、推特等大型网络公司数据泄漏事件层出不穷。在一个远程办公系统中,数据方(例如,企业某个部门)会将任务相关数据以密文的形式存储在第三方服务器中,而且为了利于搜索方(其它任务接收部门)的查询,数据方会设置授权访问策略,当数据方将多个任务相关数据上传到第三方服务器后,搜索方会基于属性的密文搜索方法在第三方服务器中进行查询并获得相关任务数据。在这种基于属性的密文搜索方法中,搜索方搜索密文时首先需要计算判断自身属性是否满足数据方定义的访问策略,这往往需要过多的计算量。除此之外,在执行搜索方的关键词搜索时,往往会返回大量无关的搜索结果,降低了数据的获取效率。


技术实现要素:

4.本发明的目的在于提供一种文件共享方法、共享文件的搜索方法及装置,旨在解决由于现有技术无法提供一种用于云服务器的共享密文搜索方法,导致密文搜索效率较低的问题。
5.一方面,本发明提供了一种文件共享方法,所述方法包括下述步骤:
6.使用对称密钥加密待共享的明文文件集,以得到对应的密文文件集;
7.获取文件拥有者公钥的公开参数以及主密钥的秘密参数,基于所述公开参数以及秘密参数,对所述对称密钥进行加密,以得到对称密钥密文,并获取所述对称密钥密文的密钥关联参数;
8.为所述明文文件集中每个明文文件建立关键字索引集合,基于所述公开参数,对所述关键词索引集合进行加密,以得到关键词索引密文集合,并获取对应的索引关联参数;
9.构建所述明文文件集的访问树,获取所述访问树的叶子节点属性集,基于所述叶子节点属性集以及所述公开参数,计算叶子节点秘密值对应的秘密值密文以及叶子节点属性值对应的属性值密文;
10.对所述访问树的二进制编码后的子树进行hmac操作,以得到子策略 hmac集合;
11.计算所述明文文件集的关键词与所述明文文件集中每个文件的相关性分数,对所述相关性分数进行加密,以得到的相关性分数密文集;
12.将所述密文文件集、对称密钥密文、密钥关联参数、关键词索引密文集合、索引关
联参数、秘密值密文、属性值密文、子策略hmac集合以及相关性分数密文集上传到云服务器。
13.另一方面,本发明提供了一种共享文件的搜索方法,所述方法包括:
14.搜索客户端根据接收到的文件搜索者的搜索请求,获取所述文件搜索者的属性集,所述搜索请求包括搜索关键词;
15.所述搜索客户端基于所述文件搜索者的属性集、文件拥有者公钥的公开参数以及主密钥的秘密参数,获取所述文件搜索者私钥的秘密参数;
16.所述搜索客户端基于所述搜索关键词、所述文件拥有者公钥的公开参数以及所述文件搜索者私钥的秘密参数,获取搜索请求对应的搜索令牌;
17.所述搜索客户端将所述文件搜索者私钥的秘密参数以及搜索令牌发送给云服务器,以使云服务器执行对应的文件搜索。
18.另一方面,本发明提供了一种文件共享装置,所述装置包括:
19.文件加密单元,用于使用对称密钥加密待共享的明文文件集,以得到对应的密文文件集;
20.密钥加密单元,用于获取文件拥有者公钥的公开参数以及主密钥的秘密参数,基于所述公开参数以及秘密参数,对所述对称密钥进行加密,以得到对称密钥密文,并获取所述对称密钥密文的密钥关联参数;
21.索引加密单元,用于为所述明文文件集中每个明文文件建立关键字索引集合,基于所述公开参数,对所述关键词索引集合进行加密,以得到关键词索引密文集合,并获取对应的索引关联参数;
22.密文计算单元,用于构建所述明文文件集的访问树,获取所述访问树的叶子节点属性集,基于所述叶子节点属性集以及所述公开参数,计算叶子节点秘密值对应的秘密值密文以及叶子节点属性值对应的属性值密文;
23.hmac操作单元,用于对所述访问树的二进制编码后的子树进行hmac 操作,以得到子策略hmac集合;
24.分数加密单元,用于计算所述明文文件集的关键词与所述明文文件集中每个文件的相关性分数,对所述相关性分数进行加密,以得到的相关性分数密文集;以及
25.文件上传单元,用于将所述密文文件集、对称密钥密文、密钥关联参数、关键词索引密文集合、索引关联参数、秘密值密文、属性值密文、子策略hmac 集合以及相关性分数密文集上传到云服务器。
26.本发明在文件共享时,将密文文件集、对称密钥密文、密钥关联参数、关键词索引密文集合、索引关联参数、秘密值密文、属性值密文、子策略hmac 集合以及相关性分数密文集上传到云服务器,从而通过对访问树的二进制编码后的子树进行hmac操作,保证子策略匹配的安全性,通过计算明文文件集的关键词与明文文件集中每个文件的相关性分数,对相关性分数进行加密,以支持后续的排序搜索,提高了后续密文搜索时的搜索效率。
附图说明
27.图1是本发明实施例一提供的文件共享方法的实现流程图;
28.图2是本发明实施例二提供的共享文件的搜索方法的实现流程图;以及
29.图3是本发明实施例三提供的文件共享装置的结构示意图。
具体实施方式
30.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
31.以下结合具体实施例对本发明的具体实现进行详细描述:
32.实施例一:
33.图1示出了本发明实施例一提供的文件共享方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
34.在步骤s101中,使用对称密钥加密待共享的明文文件集,以得到对应的密文文件集;
35.本发明实施例适用于计算终端,例如,个人计算机,具体地,适用于计算终端上文件共享客户端或上传客户端,在文件拥有者选择待共享的明文文件集后,使用对称密钥加密待共享的明文文件集,以得到对应的密文文件集。
36.在步骤s102中,获取文件拥有者公钥的公开参数以及主密钥的秘密参数,基于公开参数以及秘密参数,对对称密钥进行加密,以得到对称密钥密文,并获取对称密钥密文的密钥关联参数;
37.在本发明实施例中,首先获取文件拥有者公钥的公开参数以及主密钥的秘密参数,公钥的公开参数会被公开,而主密钥的秘密参数会通过物理线路发送给具备共享权限的用户,之后基于文件拥有者公钥的公开参数以及主密钥的秘密参数,对对称密钥进行加密,以得到对称密钥密文,并获取对称密钥密文的密钥关联参数。
38.在一实施例中,具体地,在获取文件拥有者公钥的公开参数时,获取文件拥有者公钥的公开参数g,g,h1,h2,β1,β2,β3,g
t
,e(g,g)
α
,在获取文件拥有者主密钥的秘密参数时,获取文件拥有者主密钥的秘密参数a、b、c、α、β,其中,g 和g
t
表示阶为素数p的乘法循环群,η为随机值,g的生成元为g,且g和g
t
满足双线性映射e:g
×g→gt
,β1=ga,β2=gb,β3=gc,h1、h2表示哈希函数h1:{0,1}
*

g,a,b,c,α,β∈zn,a,b,c,α,β为随机值, zn表示整数。
39.具体地,在对对称密钥进行加密并获取对称密钥密文的密钥关联参数时,通过公式c=k
·
e(g,g)
αs
对对称密钥进行加密,以得到对称密钥密文c,通过公式c

=g
βs
获取对称密钥密文相应的密钥关联参数c’,以用于后续解密对称密钥密文,其中,k表示对称密钥,s为随机数,
40.在步骤s103中,为明文文件集中每个明文文件建立关键字索引集合,基于公开参数,对关键词索引集合进行加密,以得到关键词索引密文集合,并获取对应的索引关联参数;
41.在本发明实施例中,为明文文件集中每个明文文件建立关键字索引,放入集合,基于文件拥有者公钥的公开参数,对关键词索引集合进行加密,以得到关键词索引密文集合,并获取对应的索引关联参数,从而保证后续搜索的安全性。
42.在一实施例中,具体地,在对关键词索引集合进行加密并获取对应的索引关联参数时,通过公式对关键词索引集合进行加密,以得到关键词索引密文i
i,j
集合,通过公式获取对应的索引关联参数η1、η2和η3,其中,β1、β2、β3、h2表示文件拥有者公钥的公开参数,α1、s为随机数,wj表示关键词。
43.在步骤s104中,构建明文文件集的访问树,获取访问树的叶子节点属性集,基于叶子节点属性集以及公开参数,计算叶子节点秘密值对应的秘密值密文以及叶子节点属性值对应的属性值密文;
44.在本发明实施例中,根据文件拥有者的访问策略构建明文文件集的访问树,进而获取访问树的叶子节点属性集,基于叶子节点属性集以及公开参数,计算叶子节点秘密值对应的秘密值密文以及叶子节点属性值对应的属性值密文。
45.在一实施例中,在根据文件拥有者的访问策略构建明文文件集的访问树时,具体地,从树的根节点开始,自树从上而下访问树的任一节点x,选取阶为d
x
=k
x-1多项式q
x
(
·
),其中k
x
表示门限值,假定某个节点x的孩子节点数量为num
x
, 0《k
x
≤num
x
。对于树的根节点root,有令q
root
(0)=s,然后选择其它d
root
个点定义多项式q
root
(
·
)。不同于根节点,为另外的非根节点x定义q
x
(0)=q
parent(x)
(index(x))并选择其它个d
x
点定义q
x
(
·
)。其中,parent(x)表示访问树t上非根节点x的父节点;index(x)表示访问树中非叶节点x的孩子节点的特定序列,从左至右按1至num
x
编号,从而提供了恒定的门限大小,提高了后续文件的搜索效率。
46.在一实施例中,基于叶子节点属性集以及文件拥有者公钥的公开参数,计算叶子节点秘密值对应的秘密值密文以及叶子节点属性值对应的属性值密文时,具体地,通过公式计算叶子节点秘密值对应的秘密值密文,通过公式计算叶子节点属性值对应的属性值密文,其中,y∈γ,γ为访问树中所有叶子节点组成的集合,qy(0)表示叶子节点秘密值,g表示文件拥有者公钥的公开参数。
47.在步骤s105中,对访问树的二进制编码后的子树进行hmac操作,以得到子策略hmac集合;
48.在本发明实施例中,对于步骤s104中构建的访问树,对于非根节点z为根节点的子树t
x
,对每个t
x
进行二进制编码,如果攻击者获取了某个元素对应的二进制编码集合,则其不难恢复出元素的值,在这里,采用hmac的单向性对数据进行保护。将二进制编码后的子树(子策略)经过hmac操作后,得到一个不可逆的hmac集合,令非根节点集合x={x1,
……
,x1},以xq(q∈[1,l])为根节点的子树对应为每个对应一个从而得到子策略hmac集合。
[0049]
在步骤s106中,计算明文文件集的关键词与明文文件集中每个文件的相关性分数,对相关性分数进行加密,以得到的相关性分数密文集;
[0050]
在本发明实施例中,通过计算明文文件集的关键词与明文文件集中每个文件的相关性分数,可支持后续文件搜索时的排序搜索,提高了后续密文搜索时的搜索效率。
[0051]
在一实施例中,在计算明文文件集的关键词与明文文件集中每个文件的相关性分数,对相关性分数进行加密,以得到的相关性分数密文集,包括:
[0052]
(1)通过公式计算明文文件集的关键词与明文文件集中每个文件的相关性分数,其中,|fi|表示文件fi的长度,表示关键词wj在文件fi的频率,表示包含关键词wj的文件数量,n表示文件的总数;
[0053]
(2)利用公式对相关性分数进行加密,其中,a
j,k
表示m(score(fi,wj),j)和m(y,k)的系数,τ表示的阶,函数m(score(fi,wj),.)用于保持分数score(fi,wj)的序列,函数m(y,.)用于处理文件拥有者的标识y,r
aof
表示扰动部分。
[0054]
在这里,通过上述加密方式加密关键词与文件的相关性分数,可以保护原始相关性分数不被攻击者恶意获取,同时也能保持加密后的分数大小排序序列,在搜索文件时若根据搜索者请求在云服务器上搜索到密文文件时,云服务器可以返回最相关的top-k个文件给搜索者,以支持排序搜索,从而提高搜索效率。
[0055]
在步骤s107中,将密文文件集、对称密钥密文、密钥关联参数、关键词索引密文集合、索引关联参数、秘密值密文、属性值密文、子策略hmac集合以及相关性分数密文集上传到云服务器。
[0056]
本发明实施例在文件共享或上传到云服务器时,将密文文件集、对称密钥密文、密钥关联参数、关键词索引密文集合、索引关联参数、秘密值密文、属性值密文、子策略hmac集合以及相关性分数密文集上传到云服务器,从而通过对访问树的二进制编码后的子树进行hmac操作,保证子策略匹配的安全性,通过计算明文文件集的关键词与明文文件集中每个文件的相关性分数,对相关性分数进行加密,以支持后续的排序搜索,提高了后续密文搜索时的搜索效率。
[0057]
实施例二:
[0058]
图2示出了本发明实施例二提供的共享文件的搜索方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
[0059]
在步骤s201中,搜索客户端根据接收到的文件搜索者的搜索请求,获取文件搜索者的属性集,搜索请求包括搜索关键词;
[0060]
本发明实施例适用于计算终端,例如,个人计算机,具体地,适用于计算终端上文件共享或搜索客户端,搜索客户端根据接收到的文件搜索者的搜索请求,获取文件搜索者的属性集,搜索请求包括搜索关键词,也可以包括文件搜索者的属性集。
[0061]
在步骤s202中,搜索客户端基于文件搜索者的属性集、文件拥有者公钥的公开参数以及主密钥的秘密参数,获取文件搜索者私钥的秘密参数;
[0062]
在本发明实施例中,搜索客户端可获取文件搜索者的属性集、文件拥有者公开的公钥公开参数,并通过物理线路获得文件拥有者主密钥的秘密参数,之后,基于文件搜索者的属性集、文件拥有者公钥的公开参数以及主密钥的秘密参数,获取文件搜索者私钥的秘
密参数,以用于后续搜索令牌的生成。
[0063]
在一实施例中,具体地,在基于文件搜索者的属性集、文件拥有者公钥的公开参数以及主密钥的秘密参数,获取文件搜索者私钥的秘密参数时,通过公式获取文件搜索者私钥的秘密参数,其中,j∈[1,p],g、h1表示文件拥有者公钥的公开参数,r
j、
θ为随机值,θ为随机值,a,b,c,α,β表示文件拥有者主密钥的秘密参数,θ为文件搜索者的标识符,aj表示属性集中的属性。
[0064]
在步骤s203中,搜索客户端基于搜索关键词、文件拥有者公钥的公开参数以及文件搜索者私钥的秘密参数,获取搜索请求对应的搜索令牌;
[0065]
在本发明实施例中,搜索客户端在获取搜索关键词、文件拥有者公钥的公开参数以及文件搜索者私钥的秘密参数后,基于搜索关键词、文件拥有者公钥的公开参数以及文件搜索者私钥的秘密参数,获取搜索请求对应的搜索令牌,以用于在云服务器上进行文件搜索。
[0066]
在一实施例中,具体地,基于搜索关键词、文件拥有者公钥的公开参数以及文件搜索者私钥的秘密参数,获取搜索请求对应的搜索令牌的步骤,包括:
[0067]
(1)通过公式、t2=δ
1v
,计算令牌参数,其中,用户查询关键词集为w
*
={w1,
……
,w
t
},t表示w
*
中关键词的数量,v为随机值,τ∈[1,t];
[0068]
(2)根据令牌参数得到获取搜索请求对应的搜索令牌。
[0069]
在本发明实施例中,搜索令牌可表示为令牌参数的集合,即搜索令牌
[0070]
在步骤s204中,搜索客户端将文件搜索者私钥的秘密参数以及搜索令牌发送给云服务器,以使云服务器执行对应的文件搜索。
[0071]
在本发明实施例中,搜索客户端将文件搜索者私钥的秘密参数以及搜索令牌发送给云服务器,以使云服务器执行对应的文件搜索。具体地,可将dj、d
′j,发送给云服务器。
[0072]
在本发明实施例中,搜索客户端接收到的文件搜索者的搜索请求后,获取文件搜索者的属性集,基于文件搜索者的属性集、文件拥有者公钥的公开参数以及主密钥的秘密参数,获取文件搜索者私钥的秘密参数,进而基于搜索关键词、文件拥有者公钥的公开参数以及文件搜索者私钥的秘密参数,获取搜索请求对应的搜索令牌,最后将文件搜索者私钥的秘密参数以及搜索令牌发送给云服务器,以使云服务器执行对应的文件搜索,提高了云服务器的搜索效率。
[0073]
进一步地,在本发明一实施例中,云服务器接收到文件搜索者私钥的秘密参数以及搜索令牌发送给云服务器后,云服务器检查文件搜索者属性是否满足访问策略,当满足访问策略时,判断搜索关键字是否与关键词索引密文集合中的加密索引匹配,若匹配则向搜索客户端返回top-k个相关密文文件、对应的对称密钥密文以及密钥关联参数。
[0074]
具体地,云服务器检查文件搜索者属性是否满足访问策略,当满足访问策略时,判
断搜索关键字是否与关键词索引密文集合中的加密索引匹配,若匹配则向搜索客户端返回top-k个相关密文文件、对应的对称密钥密文以及密钥关联参数,分为两种情况:
[0075]
(1)如果是第一次搜索,若x是云服务器存储密文的访问树t的叶节点,则基于收到的文件搜索者私钥的秘密参数、叶子节点秘密值对应的秘密值密文、以及叶子节点属性值对应的属性值密文,用下述公式1)计算结点x的秘密值f
x
,其中:
[0076][0077]
若x是访问树t的非叶节点,通过递归计算fz得到f
x
,其中z是x的孩子节点,令s
x
是结点x的子结点集,用公式2)计算f
x

[0078][0079]
其中,j=index(z),s
x

={index(z):z∈s
x
},
[0080]
将解密过程中每个子树策略解密结果保存到表1中,之后发送给搜索客户端,由搜索客户端保存在本地数据库中;
[0081]
表1
[0082][0083]
其中,
[0084]
之后,用公式3)验证搜索令牌是否与关键词加密索引匹配,若公式3) 不成立,则搜索结果为空,否则返回top-k个相关密文文件、对应的对称密钥密文以及密钥关联参数给搜索客户端,公式3)为:
[0085][0086]
其中,
[0087]
(2)如果不是第一次搜索,搜索客户端查找云服务器中存储用户id以及访问子策略是否与存储的表1子策略hmac值相匹配,若能找到同一文件拥有者的相同子树策略,则解密如下:
[0088]
对于非子策略树的叶节点x,计算方式与公式1)相同,对于子策略的部分,每个子策略相当于一个叶节点;
[0089]
对于子策略树的根节点{x1,x2,
……
,x
sub
},可以把每个子树看成一个叶节点,该叶节点计算得到的值分别为f1,f2,
……
,f
sub

[0090]
对于新构成访问树的非叶节点x,计算
[0091][0092]
其中,令r
x
是新构成访问树的非叶结点x的子结点集,用公式4)计算f
x
,其中j=index(z),r
x

={index(z):z∈r
x
},
[0093]
之后,判断公式3)是否成立,若成立返回top-k个相关密文文件、对应的对称密钥密文以及密钥关联参数给搜索客户端,否则返回空的搜索结果。
[0094]
当搜索客户端接收到top-k个相关密文文件、对应的对称密钥密文以及密钥关联参数后,基于密钥关联参数,对对称密钥密文进行解密,得到对称密钥,使用对称密钥解密top-k个相关密文文件,以得到top-k个明文文件。具体地,基于搜索客户端解密{c,c

}获取对称密钥,k=c/(e(c

,δ2))/f
root
,搜索客户端用对称密钥解密{ci}
i∈[1,n]
获取明文文档,从而在第二次之后的搜索过程中,无需再次解决子策略树的非根节点的秘密值,有效减少了计算量。
[0095]
实施例三:
[0096]
图3示出了本发明实施例三提供的文件共享装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:
[0097]
文件加密单元31,用于使用对称密钥加密待共享的明文文件集,以得到对应的密文文件集;
[0098]
密钥加密单元32,用于获取文件拥有者公钥的公开参数以及主密钥的秘密参数,基于公开参数以及秘密参数,对对称密钥进行加密,以得到对称密钥密文,并获取对称密钥密文的密钥关联参数;
[0099]
索引加密单元33,用于为明文文件集中每个明文文件建立关键字索引集合,基于公开参数,对关键词索引集合进行加密,以得到关键词索引密文集合,并获取对应的索引关联参数;
[0100]
密文计算单元34,用于构建明文文件集的访问树,获取访问树的叶子节点属性集,基于叶子节点属性集以及公开参数,计算叶子节点秘密值对应的秘密值密文以及叶子节点属性值对应的属性值密文;
[0101]
hmac操作单元35,用于对访问树的二进制编码后的子树进行hmac操作,以得到子策略hmac集合;
[0102]
分数加密单元36,用于计算明文文件集的关键词与明文文件集中每个文件的相关性分数,对相关性分数进行加密,以得到的相关性分数密文集;以及
[0103]
文件上传单元37,用于将密文文件集、对称密钥密文、密钥关联参数、关键词索引密文集合、索引关联参数、秘密值密文、属性值密文、子策略hmac 集合以及相关性分数密文集上传到云服务器。
[0104]
在本发明实施例中,文件共享装置的各单元可由相应的硬件或软件单元实现,各单元可以为独立的软、硬件单元,也可以集成为一个软、硬件单元,在此不用以限制本发明。
各单元的具体实施方式可参考实施例一的描述,在此不再赘述。
[0105]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献