本发明属于加密去重领域,特别涉及一种抵抗收敛密钥泄露的加密去重方法。
背景技术:
::1、目前,随着互联网技术的发展,越来越多的人开始上网,人均数据量急剧增加。根据
statista的分析和预测,到
2035年,全球数据量预计将达到
2142zb。不断增加的数据和存储数据所需的存储空间已成为一个重要问题。由于个人用户或中小企业有限的存储和数据维护能力,越来越多的人们选择将数据外包给存储成本低廉的云存储提供商。为了节省存储成本,云服务提供商采用了重复数据删除技术。重复数据删除技术可以检测并删除不同用户外包的数据中相同的文件,只保留一份密文备份。为了在密文状态下依旧能够检测出重复数据,
douceur 等人[
douceur
j
r,
adya
a,
bolosky
w
j,
et
al.
reclaiming
space
from
duplicate
files
in
a
serverless
distributed
file
system[
c].
proceedings
22nd
international
conference
on
distributed
computing
systems.
2002.
617-
624.]提出使用文件的指纹作为加密密钥的收敛加密算法(
ce)。不同的用户使用
ce加密同一个文件可以得到相同的密文。但是
ce方法容易遭受到离线暴力攻击。
bellare等人[
keelveedhi
s,
bellare
m,
ristenpart
t.
dupless:
server-
aided
encryption
for
deduplicated
storage[
c].
proceedings
of
the
22nd
usenix
conference
on
security.
2013.
179-
194.]提出了
dupless算法,该算法引入了可信第三方密钥服务器协助用户生成收敛密钥抵抗离线暴力攻击,并通过限制用户的访问频次来抵抗在线暴力攻击。但是,基于
dupless方案的加密去重方案依旧可能收到来自内部和外部的各种攻击。比如,单点故障问题,密钥保留攻击,频率分析攻击,侧信道攻击等。很多相关工作也相继提出。
2、
2015年,
liu等人[
liu
j,
asokan
n,
pinkas
b.
secure
deduplication
of
encrypted
data
without
additional
independent
servers[
c].
proceedings
of
the
22nd
acm
sigsac
conference
on
computer
and
communications
security.
2015.
874-
885.]提出了第一种不需要额外服务器来抵御暴力攻击的重复数据删除方案,从而解决了单点故障问题。他们的方案利用短哈希的高碰撞率来抵抗离线暴力攻击。
3、
2016年,
li等人[
li
j,
qin
c,
lee
p
p
c,
et
al.
rekeying
for
encrypted
deduplication
storage[
c].
2016
46th
annual
ieee/
ifip
international
conference
on
dependable
systems
and
networks (
dsn).
2016.
618-
629.]基于
the
convergent
all-
or-
nothing
transform (
caont)和属性加密(
abe)提出了一种部分重加密解决所有权控制的
reed算法。
4、
2019年,
yuan等人[
yuan
h,
chen
x,
li
j,
et
al.
secure
cloud
data
deduplication
with
efficient
re-
encryption[
j].
ieee
transactions
on
services
computing.
2019.
442-
456.]发现
reed容易受到存根保留攻击,并使用布隆过滤器(
bloom
filter)随机采样部分比特重新加密来解决存根保留攻击。
5、
2020年,
li等人[
li
j,
yang
z,
ren
y,
et
al.
balancing
storage
efficiency
and
data
confidentiality
with
tunable
encrypted
deduplication[
c].
proceedings
of
the
fifteenth
european
conference
on
computer
systems.
2020.
1-
15.]提出传统的加密重复数据删除方法通过始终从数据块内容中获取加密/解密密钥来保留对加密后的重复数据块的重复数据删除能力,但这种确定性由于频率分析导致信息泄露。他们提出了一个抵抗频率攻击的加密去重方案
ted,一个可调的加密重复数据删除原语,它提供了一种可调的机制来平衡存储效率和数据机密性之间的权衡。
6、
2023年,
ha等人[
ha
g,
jia
c,
chen
y,
et
al.
a
secure
client-
side
deduplication
scheme
based
on
updatable
server-
aided
encryption[
j].
ieee
transactions
on
cloud
computing,
2023.
3672-
3684]认为基于密钥服务器辅助的加密去重方案中,一旦密钥服务器的主密钥泄露,所有用户的隐私数据都可能收到离线包里攻击。并且,他们提出了一种基于可更新加密(
ue)的可更新服务器辅助加密方案,该方案实现了高效的加密和系统级主密钥的用户透明密钥更新。
7、上述的加密去重方案中都忽略了撤销所有权的用户保留了收敛加密密钥,然后通过监听或攻击存储服务器获取部分密文后或全部密文进行解密获取明文的信息,节省数据外包成本。我们假设撤销所有权的用户无法获取存储服务器的主密钥。8、公开号为
cn110278087a 利用非对称加密和零知识证明技术,设计了一套文件级的加密去重方法。该方法使用零知识验证方法和二次哈希,实现了密钥与文件分离、完整所有权认证等功能。缓解了收敛加密(
ce)对相同的文件的加密操作导致计算开销随着数据负载去重率的提高而增加的问题。
hsn网络上实现了不同的用户间相同文件去重,网络中只需要保存一份加密后的内容副本,有效保护了用户数据内容和隐私,提升了
hsn网络中的存储效率。
9、授权号为
cn112637153 公开了一种加密去重方法,所述方法先将文件分割成变长文件块;然后计算出每个明文文件块的散列特征值;最后将各个散列特征值与重复删除存储服务器上的特征数据比较;如果重删存储上没有存储某个文件块
m的散列特征值,则对文件块
m进行加密,并发送给重删存储服务器。该发明使用明文的数据特征生成加密密钥,在实现加密去重的同时又保证了数据的安全性,并实现了有效的访问控制。
技术实现思路1、本发明提出一种抵抗收敛密钥泄露,即使攻击者获取了收敛密钥也无法解密出明文信息。使用多集合哈希,实现文件局部块更新,做到安全高效的多用户之间重复数据去重。2、本发明的技术方案是这样实现的:一种抵抗收敛密钥泄露的加密去重方法,所述方法包括如下步骤:3、
s1:设置安全参数、数据块分片的个数和
n×
n阶矩阵,并将其中的元素值进行设定,输出定长的哈希函数和基于异或操作的多集散列函数,设置存储服务器的主密钥;
4、
s2:客户端首先计算文件
f的文件密钥,将文件
f分割成固定大小的文件块
f:{
f1,
f2,
f3...,
fn}. 计算每一个文件块的哈希值,获得收敛密钥;
5、
s3:通过合法身份认证后,客户端将文件标签上传到存储服务器,存储服务器对上传文件标签进行核验,若已经存储并且所有权列表中有客户端的身份
pid,则返回给客户端确认信息;若已经被存储,但是所有权列表中没有客户端的身份
pid,则存储服务器随机生成一个
n维向量
u=[
u1,
u2,
u3,...
un]发给客户端,客户端通过向量和文件密文生成所有权证明;若没有进行存储,则反馈未存储信息给客户端,客户端在接收到未存储信息后,将计算文件
f中各文件块的标签上传到存储服务器,并与存储服务器进行块级别的重复数据检测和所有权验证;
6、
s4:客户端向存储服务器发送文件下载请求,并将文件标签发送给存储服务器,存储服务器查询文件
f对应的文件所有者列表,若用户的身份
pid在文件所有者列表中,则通过文件配方找到所有的密文分块,并将服务器再次加密的文件块解密后发送至客户端,并同时文件块和余下密文分块一起发给客户端;若用户的身份
pid不在所有者列表中,则拒绝发送;
7、
s5:客户端收到服务器按序发送的密文块集合后,计算转换矩阵
a的逆
a-
1,然后对每一个分块使用收敛密钥解密文件块密文,直到解密所有的文件块然后将文件恢复成原始文件
f;
8、
s6:当客户端对文件
f的所有权到期时,存储服务器将客户端的身份
pid从文件
f的用户所有者列表中移除,然后将文件块解密,存储服务器根据剩余的文件所有者集合重新计算新的文件加密密钥并从非重复密文块中任取两个文件块重新加密得到新的文件块;
9、
s7:当有客户端更新文件
f的部分文件块时,客户端首先从旧的文件标签中计算出更新后的新文件标签,客户端发送更新请求,将文件标签,更新后的文件标签,文件块号,新的文件密文块,密钥密文发送给存储服务器,存储服务器收到更新请求后,计算出更新后的文件标签,并与客户端上传的标签进行比较,检查是否相同,若相同,检查新的文件密文块是否已经被存储,如果没有存储,将文件块进行存储并将存储地址和文件块标签添加到
f的文件配方中,若已经存储,则反馈存储信息。
10、作为一优选的实施方式,所述
s1中的安全参数设置为 l ,数据块分片的个数设置为
n,
n阶矩阵表示为
a
n×
n,在输出定长的哈希函数时表示为
h1:{
0,
1}*→
g,将任意长输入映射群
g中元素,所述存储服务器的主密钥表示为
k
csp,表示字符串拼接。
11、作为一优选的实施方式,所述步骤
s2中的文件密钥表示为
kf =
h(
f),每一个文件块的哈希值表示为
ki=
h(
fi) (
1≤
i≤
n),在对每一个文件块
f
i使用指纹作为收敛密钥对文件块进行加密,客户端通过使用文件密钥加密收敛密钥。
12、作为一优选的实施方式,客户端将进行加密后的文件块分成大小相同的分片,分片大小为|
ki|,将分片导入
n阶向量中进行运算,运算中的加法和乘法分别用
xor和
and运算执行。
13、作为一优选的实施方式,所述步骤
s3中客户端收到
n维向量
u后,计算所有权证明,并将所有权证明发给存储服务器,所述存储服务器收到所有权证明后,对所有权证明进行核验,若一致则客户端反馈确认,并将客户端身份
pid添加到文件所有者列表内,若不一致则拒绝用户服务。
14、所述步骤
s3中反馈未存储信息给客户端时,存储服务器收到客户端上传的文件块标签集合后,逐个查询文件块是否已经存储,并生成一个
n维向量
v=[
v1,
v2,...,
vn],其中没有被存储的文件块在向量中对应的元素值为0,并将v发送给客户端。用户只会通过值是否为0 ,判断出哪些已经被存储了。这些已经被存储的就不需要再上传密文了,只需要计算出一个针对这些块的所有权证明,而没有被存储的则需要上传密文。
15、作为一优选的实施方式,客户端收到向量
v后,检查向量
v中每个元素数值,并将其中所有值不为
0的元素进行标记,客户端根据v中不为0的元素和对应的文件块密文计算出文件块所有权证明,并将所有权证明和其余值为0的向量元素对应的文件块密文和密钥密文上传给服务器并将文件标签保存在本地。
16、作为一优选的实施方式,所述存储服务器收到用户的所有权证明和密文块集合之后,首先验证用户的所有权证明的有效性,根据用户上传的文件块和已经存储的文件块分片进行对比验证。17、采用了上述技术方案后,本发明的有益效果是:本发明支持文件级别和块级别两级去重。客户端与存储服务器先进行文件级别去重,没有重复时再进行块级去重,最大程度的节省存储空间。其次,本发明支持客户端去重,降低了客户端和存储服务器之间的通信代价。本发明支持文件的块级更新(文件块的删除,增加,以及更新),客户端不需要下载完整的文件密文也可以进行文件更新。客户端将更新后的文件块和更新后的文件标签,块级标签构建一个更新请求,供存储服务器进行文件更新。客户端与服务器可以进行批量去重,双方交互轮数与文件块的数量无关,降低了双方的通信代价。此外,当恶意客户端撤销所有权时保留了收敛密钥,并且通过一些手段获取存储服务器存储的密文时(这里指包含没有解密的
package文件块),该客户端依旧无法成功解密出明文的相关消息。有效的实现了访问控制。
当前第1页12当前第1页12
技术特征:1.一种抵抗收敛密钥泄露的加密去重方法,其特征在于,所述方法包括如下步骤:
2.如权利要求1所述的一种抵抗收敛密钥泄露的加密去重方法,其特征在于:所述s1中的安全参数设置为l,数据块分片的个数设置为n,n*n的矩阵表示为an×n,在输出定长的哈希函数时表示为h1:{0,1}*→g,将任意长输入映射群g中元素,所述存储服务器的主密钥表示为kcsp,||表示字符串拼接。
3.如权利要求1所述的一种抵抗收敛密钥泄露的加密去重方法,其特征在于:所述步骤s2中的文件密钥表示为kf =h(f),每一个文件块的哈希值表示为ki=h(fi) (1≤i≤n),在对每一个文件块fi使用指纹作为收敛密钥对文件块进行加密,客户端通过使用文件密钥加密收敛密钥。
4.如权利要求3所述的一种抵抗收敛密钥泄露的加密去重方法,其特征在于:客户端将加密后的文件块分成大小相同的分片,分片大小为|ki|,将分片构成一个n阶向量与an×n进行乘法运算,运算中的加法和乘法分别用xor和and运算执行。
5.如权利要求1所述的一种抵抗收敛密钥泄露的加密去重方法,其特征在于:所述步骤s3中客户端收到n维向量u后,计算所有权证明,并将所有权证明发给存储服务器,所述存储服务器收到所有权证明后,对所有权证明进行核验,若一致则客户端反馈确认,并将客户端身份pid添加到文件所有者列表内,若不一致则拒绝用户服务。
6.如权利要求1所述的一种抵抗收敛密钥泄露的加密去重方法,其特征在于:所述步骤s3中反馈未存储信息给客户端时,存储服务器收到客户端上传的文件块标签集合后,逐个查询文件块是否已经存储,并生成一个n维向量v=[v1,v2,...,vn],其中没有被存储的文件块在向量中对应的元素值为0,并将v发送给客户端。
7.如权利要求6所述的一种抵抗收敛密钥泄露的加密去重方法,其特征在于:客户端收到向量v后,检查向量v中每个元素数值,并将其中所有值不为0的元素进行标记,客户端根据v中不为0的元素和对应的文件块密文计算出文件块所有权证明,并将所有权证明和其余值为0的向量元素对应的文件块密文和密钥密文上传给服务器并将文件标签保存在本地。
8.如权利要求7所述的一种抵抗收敛密钥泄露的加密去重方法,其特征在于:所述存储服务器收到用户的所有权证明和密文块集合之后,首先验证用户的所有权证明的有效性,根据用户上传的文件块和已经存储的文件块分片进行对比验证。
技术总结本发明提出了一种抵抗收敛密钥泄露的加密去重方法,所述方法包括如下步骤:S1:设置安全参数、数据块分片的个数和n×n阶矩阵,并将其中的元素值进行设定,输出定长的哈希函数和基于异或操作的多集散列函数,设置存储服务器的主密钥;S2:客户端首先计算文件F的文件密钥,将文件F分割成固定大小的文件块F:{f1,f2,f3...,fn}.计算每一个文件块的哈希值,获得收敛密钥;本发明支持文件级别和块级别两级去重。客户端与存储服务器先进行文件级别去重,没有重复时再进行块级去重,最大程度的节省存储空间。其次,本发明支持客户端去重,降低了客户端和存储服务器之间的通信代价。
技术研发人员:黄小刚
受保护的技术使用者:北京华隐熵策数据科技有限公司
技术研发日:技术公布日:2024/11/26