一种基于区块链的云存储密钥安全管理方法

文档序号:25309789发布日期:2021-06-04 15:24阅读:257来源:国知局
一种基于区块链的云存储密钥安全管理方法

1.本发明属于区块链领域,特别是涉及一种基于区块链的云存储密钥安全管理方法。


背景技术:

2.近年来,随着云计算技术的快速发展,越来越多的云存储服务提供商为用户提供数据存储的服务,此时用户可以选择将自己的数据外包给云存储服务提供商,以节省本地的存储空间。然而,随着数据量的快速增长,外包数据的存储空间和传输带宽也随之呈现出爆炸式增长趋势。为了提高存储效率、节省数据存储空间,云存储服务提供商需要采用重复数据删除技术(又称为数据去重技术)对外包数据进行重复性检测,以此消除其中的冗余数据,避免存储重复的数据,并最终只保留一份数据副本到云存储服务器上。尽管重复数据删除技术能够提高存储利用率,但由于数据存储在非完全可信云存储平台上,此时数据的控制权和管理权分离,数据已脱离了用户的直接管理。为了保障云服务器上数据的安全性,用户需要对数据明文执行额外的加密操作,然而使用传统加密算法会导致相同的数据产生不同密文,使得无法执行有效的数据去重操作。
3.为了实现有效的安全数据去重,相关研究者提出了收敛加密算法,即先对数据进行哈希运算得到收敛密钥,然后利用收敛密钥对数据进行加密操作,以此得到密文。收敛加密能够使得相同的数据生成相同的密文,确保去重操作顺利执行。然而,在收敛加密算法中,收敛密钥的数量与数据量呈线性相关,即收敛密钥也会随着数据量的不断增长而快速增长,导致用户自身需要承担大量密钥管理的负担。相关研究者提出了高可靠性的密钥管理方案,通过秘密共享方案机制将编码后的密钥分布式地存储在多个云服务器上,在一定数据范围内的密钥即使丢失受损也能通过其余的密钥进行重构恢复,提高了密钥的容错性。其中引入了可信的密钥服务器对收敛密钥进行存储并管理,然而完全可信的密钥服务器在现实中并不存在,该方案易受到云存储服务提供商的串谋攻击,即云存储服务提供商可能会与密钥服务器进行共谋合作,窃取用户的收敛密钥并最终获取其原始数据。实际上,现有的大多支持收敛密钥管理的云存储方案都过于依赖可信的密钥服务器的引入,而易遭受此类的串谋攻击。
4.因此,寻找一种更好的云存储密钥安全管理方法来保证收敛密钥的安全性和机密性,避免可信密钥服务器的引入和抵制敌手发起的串谋、窃取及篡改等恶意攻击成为研究人员关注的问题。


技术实现要素:

5.为了解决上述技术问题,本发明提供一种基于区块链的云存储密钥安全管理方法,该方案在云数据存储中引入秘密种子来生成加密密钥,从而提高了数据的机密性。为了实现安全可靠的密钥管理,数据拥有者可先利用消息认证码机制来生成密钥认证码,然后采用秘密共享方案将密钥划分为密钥碎片,最后与节点管理中心进行协作,将密钥碎片整
合成有效的交易并发布到区块链上。当需要下载数据时,数据所有者可以利用其有效的私钥从区块链中恢复完整的加密密钥,并可通过密钥认证码来验证加密密钥的正确性。本发明通过区块链技术实现云存储密钥的安全管理,抵制云存储服务提供商发起的串谋、窃取及篡改等恶意攻击,确保了数据拥有者的数据隐私安全。
6.为实现上述目的,本发明提出一种基于区块链的云存储密钥安全管理方法,具体包括以下步骤:
7.s1、对用户身份及所拥有的文件分别进行标识,并通过mod函数得到用户的公钥和私钥;然后将所述公钥公开,并将私钥存储在本地;
8.s2、计算所述文件的数据块标签,并发送给云存储服务提供商csp进行搜索;
9.s3、计算所述文件的加密密钥,并基于所述加密密钥对所述文件进行加密,得到密文;然后将密文发送给所述云存储服务提供商csp中进行存储;
10.s4、通过利用消息认证码机制生成密钥认证码,并验证所述加密密钥的完整性;
11.s5、采用秘密共享方案中的share切分算法对所述加密密钥k
f
进行划分,得到密钥碎片集合,并计算所述密钥的摘要信息和密文;
12.s6、将所述密钥的摘要信息整合成一笔交易,并将所述交易上传到区块链进行存储,同时将所述密文发送到云服务器进行存储;
13.s7、对所述交易进行解析,得到完整的加密密钥和密钥认证码,并通过检测所述密钥认证码的正确性来验证所述加密密钥是否为正确的密钥;
14.s8、当验证通过时,根据所述完整的加密密钥计算出原始文件。
15.优选地,所述步骤s1具体为:
16.s1.1、对用户的身份及拥有的文件分别进行标识;
17.s1.2、将用户公开的rsa指数e输入到mod函数ed≡1modф(n)中,输出n和d,其中,n为两个不同素数e和d的乘积,且n<e;
18.s1.3、基于所述步骤s1.2,得到用户的公钥pk=(n,e)和私钥sk=(n,d);
19.s1.4、将用户的公钥pk公开,并将私钥sk存储在本地。
20.优选地,所述步骤s2具体为:
21.s2.1、计算用户文件的数据块标签;
22.s2.2、将所述数据块标签发送给云存储服务提供商csp,所述云存储服务提供商csp在标签数据上对所述数据块标签执行搜索操作;
23.s2.3、若所述标签数据库已存储所述数据块标签,则无需上传文件,csp将向用户返回块指针;否则,执行步骤s3。
24.优选地,所述步骤s3具体为:
25.s3.1、基于用户所拥有的文件,计算哈希数;
26.s3.2、基于所述哈希数和用户选取的随机数,计算盲因子;
27.s3.3、基于所述盲因子,将所述哈希数发送到节点管理中心进行签名,得到盲因子的签名,并将所述盲因子的签名返回给用户;
28.s3.4、基于所述随机数,计算安全秘密种子;并根据所述安全秘密种子,得到用户的加密密钥;
29.s3.5、基于所述加密密钥对所述文件进行加密,得到密文;然后将密文发送给所述
云存储服务提供商csp中进行存储,并将所述数据块标签添加到标签数据库中。
30.优选地,所述步骤s4具体为:
31.基于所述加密密钥,计算得到密钥哈希值,并根据所述密钥哈希值,得到密钥认证码;然后采用秘密共享方案的切分算法函数将所述密钥认证码进行切分。
32.优选地,所述步骤s6具体为:
33.s6.1、基于所述用户身份标识、用户所拥有的文件标识和所述密文,计算出密钥摘要信息data,并将所述密钥摘要信息data发送到所述节点管理中心;
34.s6.2、所述节点管理中心接收到所述密钥摘要信息data后,创建一个交易;
35.s6.3、所述节点管理中心将所述交易发布在区块链上,并向用户返回交易的指针。
36.优选地,所述交易包括:发送方的账户地址、接收方的账户地址、创建交易需要支付的费用、存储在交易中的数据和交易的签名。
37.优选地,所述步骤s7具体为:
38.s7.1、当需要下载文件f时,先发送交易指针给所述节点管理中心,所述节点管理中心通过获取所述交易指针返回所述密钥摘要信息data,并通过所述私钥得到明文;
39.s7.2、检查时间戳的正确性,并从所述明文中解析得到密钥碎片和认证码碎片,即利用秘密共享方案的重构算法recover来恢复完整的加密密钥和密钥认证码;
40.s7.3、最后通过检测所述密钥认证码的正确性来验证加密密钥是否为正确的密钥。
41.优选地,所述步骤s7.3具体为:
42.步骤一、利用哈希函数h2计算出k
fm1
,并通过哈希函数h1和所述k
fm1
,得到mac
f1

43.步骤二、将所述mac
f1
和解析出来的密钥认证码进行最终对比;
44.步骤三、若相同,则解析出来的加密密钥为完整的加密密钥;否则,解析出来的加密密钥在传输阶段已被非法篡改。
45.优选地,所述步骤s8中的原始文件是通过aes对称解密算法计算得到的。
46.与现有技术相比,本发明的有益效果在于:
47.本发明在云数据存储中引入秘密种子来生成加密密钥,从而提高了数据的机密性。为了实现安全可靠的密钥管理,数据拥有者可先利用消息认证码机制来生成密钥认证码,然后采用秘密共享方案将密钥划分为密钥碎片,最后与节点管理中心进行协作,将密钥碎片整合成有效的交易并发布到区块链上。当需要下载数据时,数据所有者可以利用其有效的私钥从区块链中恢复完整的加密密钥,并可通过密钥认证码来验证加密密钥的正确性。本发明通过区块链技术实现云存储密钥的安全管理,抵制云存储服务提供商发起的串谋、窃取及篡改等恶意攻击,确保了数据拥有者的数据隐私安全。
附图说明
48.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
49.图1为本发明方法流程示意图;
50.图2为本发明系统模块示意图。
具体实施方式
51.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
52.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
53.实施例1
54.参照图1所示,本发明提出一种基于区块链的云存储密钥安全管理方法,具体包括以下步骤:
55.s1、用户信息标识
56.假定用户的身份标识为id
u
,其所拥有的文件的标识为id
f
。用户以公开的rsa指数e作为mod函数ed≡1modф(n)的输入,输出n、d,其中,n<e,n为两个不同素数的乘积。因此,用户的公钥为pk=(n,e),私钥为sk=(n,d)。用户将公钥pk公开并将私钥sk存储在本地。
57.s2、重复性检测
58.用户先计算出文件的数据块标签t
f
=taggen(f),其中taggen(.)可为sha128哈希函数,其中,数据块标签t
f
用于数据块的重复性检测。接着,用户向云存储服务提供商(csp)发送数据块标签t
f
。csp在标签数据库上执行搜索操作。如果标签数据库已经存储该数据块标签t
f
,则表明用户不需要上传文件f,csp将向用户返回块指针σ(f)。如果标签数据库没有存储该文件标签t
f
,用户将继续执行步骤3。
59.s3、数据加密
60.用户需要计算出文件f的加密密钥k
f
。具体为,用户先选取一个随机数r、y

z
n
,计算出哈希数h'=h1(f)和盲因子x=h'
·
r
e
modn,其中,h1(.)可为sha256哈希函数;并发送哈希数h'给节点管理中心(即负责管理区块链网络下的所有节点)。节点管理中心对哈希数h'进行签名得到盲因子x的签名y=x
d
modn,并将y返回给用户。用户计算出z=y
·
r
‑1modn,并验证式子h'=z
e
modn是否成立。若成立,z为有效的秘密种子。用户计算出加密密钥其中,k
f
是指用于加密数据文件f的密钥,h2为sha256哈希函数,p是建立时预选定的安全参数,一般为固定值;z是通过随机数r和y计算出来的安全秘密种子,作用是用来随机化密钥k
f
,为异或运算。并使用加密密钥k
f
对文件f进行加密,得到密文c
f
=encrypt(k
f
,f),其中encrypt函数可为aes对称加密算法。最后,用户将密文c
f
发送给csp进行存储,并将文件标签t
f
添加到标签数据库中。
61.s4、密钥认证码生成
62.用户可利用消息认证码机制来生成密钥认证码mac
f
,以此来验证密钥k
f
的完整性。具体为,用户计算出密钥哈希值k
fm
和密钥认证码mac
f
,即k
fm
=h2(k
f
),其中h1、h2为安全的sha256哈希函数。最后,用户使用秘密共享方案的切分算法函数share(.)将mac
f
划分为j段,即{mac
fj
}=share(mac
f
)(1≤j≤l)。
63.s5、密钥切分
64.用户同样利用秘密共享方案中的切分算法函数share算法对加密密钥k
f
进行切分,即{k
fj
}=share(k
f
),其中,{k
fj
}指的是密钥k
f
切分后的密钥碎片集合,j表示密钥碎片的序号,share(.)是切分算法函数。然后计算出密钥k
f
的摘要信息i
j
=k
fj
||mac
fj
||t
k
及其密文c
ij
=e(pk,i
j
),其中,t
k
为时间戳/当前的时间,作为密钥的辅助信息记录在摘要信息中。
65.s6、交易生成
66.用户可将密钥的摘要信息整合成一笔交易,并将交易上传到区块链进行存储,同时将密文发送到云服务器进行存储;参照图2所示。具体为,用户先计算出密钥摘要信息data=h(id
u
)||h(id
f
)||h(j)||c
ij
,其中h为安全的sha256哈希函数。用户将密钥摘要信息data发送给节点管理中心。节点管理中心创建一个交易tx,其中tx包括了参数为:from=user's account(发送方的账户地址),to=csp's account(接收方的账户地址),value=keydistribution charge(创建tx需要支付的费用),data=h(id
u
)||h(id
f
)||h(j)||c
ij
(存储在交易tx中的数据),signature=sig(tx)(交易tx的签名)。最后,节点管理中心将交易tx发布在区块链上,并向用户返回交易的指针σ(tx)。
67.s7、交易解析
68.当需要下载文件f时,用户先发送交易指针σ(tx)给节点管理中心,节点管理中心通过获取交易指针σ(tx)返回密钥摘要信息data=h(id
u
)||h(id
f
)||h(j)||c
ij
。用户计算出h(id
u
)||h(id
f
)||h(j),并从密钥摘要信息data=h(id
u
)||h(id
f
)||h(j)||c
ij
中解析得到c
ii
,最后通过私钥sk得到出明文ii。用户可检查时间戳t
k
的正确性,并从i
i
中解析得到k
fj
||mac
fj
。因此当用户从区块链中获得k个密钥碎片{k
fj
}和认证码碎片{macfj},即可利用秘密共享方案的重构算法recover来恢复完整的加密密钥k
f
和密钥认证码mac
f
,即k
f
=recover({k
fj
}),mac
f
=recover({mac
fj
})。
69.用户可通过检测密钥认证码mac
f
的正确性来验证加密密钥k
f
是否为正确的密钥。具体为,用户先使用哈希函数h1和h2函数计算出k
fm1
=h2(k
f
),最终对比mac
f1
和解析出来的mac
f
是否相同,若相同,则密钥k
f
附加的密钥认证码mac
f
为正确的。即可判断加密密钥k
f
为完整的密钥。否则如果mac
f1
和mac
f
不相同,则表明密钥k
f
在传输阶段已被非法篡改。
70.s8、文件下载
71.当上述验证通过时,用户可以使用解析出来的密钥mac
f
计算出原始文件,即f=decrypt(k
f
,c
f
),其中decrypt函数可为aes对称解密算法。
72.以上所述的实施例仅是对本发明的优选方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1