System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及信息安全领域,具体涉及一种基于秘密共享和纠删码的分布式云存储系统、方法及客户端。
技术介绍
1、随着云计算技术的发展,数据存储已进入云存储时代。数据单点备份方式上云存储的方式,会存在因云存储服务器损坏而导致无法恢复数据的情况。但是,对数据实施多点完全备份方式上云存储又会造成占用云存储空间过大,从而造成存储成本巨大。并且,如何保证上云存储数据的机密性和完整性以及用户对数据的自主拥有权,也成为了云存储最为关注的问题。
2、为提高云存储的存储空间利用率,同时保证数据的完整性,目前大多数的多云存储模型使用纠删码算法将待存储的数据进行分割并计算出一些冗余块来提高数据的冗余性。在ec(n,m)方案中,所有(n+m)个数据分块(其包括m个冗余的数据分块)在多个云存储服务器上分散存储,当需要恢复数据时只需拿到一定数额的任意数据分块即可恢复出原数据。这种方式大大提高了多云存储的存储空间利用率,但纠删方式只能保证数据的完整性,无法提供数据的机密性。
3、为保证数据的机密性,多云存储模型也使用秘密共享算法。通过秘密共享处理对数据(原秘密)计算出多个子份额(秘密份额)。在ss(t,n)方案中,只需按照要求从所有n个子份额中获得任意t个子份额即可恢复出原数据。这种秘密共享算法可以保证数据的机密性,但同时会带来存储空间的剧增,造成用户存储成本增加。因此,对于尺寸较大的数据不适合使用秘密共享方式存储。还有采用例如ramp(k,l,n)方案等不完美秘密共享方案,虽然与上述秘密共享方案相比存储空间减少为1/l,有效压缩了存储
技术实现思路
1、针对现有技术中的不足,本专利技术提出了一种基于秘密共享和纠删码的分布式云存储系统、方法及客户端。其中,没有直接对可能具有大尺寸的用户数据直接采用秘密共享方案处理,而是先用密钥对用户数据加密,再对加密数据纠删处理后的数据分块进行分布式云存储,既保证存储数据的冗余性,又通过数据加密保证了存储数据的机密性。同时,对尺寸较小的密钥本身应用秘密共享方案,在实现密钥分散存储的同时有效保证密钥本身的机密性。由此,通过将秘密共享方案和纠删码技术有机结合,以较少的存储空间要求实现了存储数据的机密性和冗余性。
2、进一步地,针对传统的基于秘密共享的密钥分散存储方式中,用户手中不保留或仅保留一份秘密份额,导致用户缺少对密钥恢复的控制权,且分散存储在外面的秘密份额也缺少安全防护,无法保证敌人不会拿到足够数量的份额从而恢复出密钥,即无法保证份额分散存储后密钥的安全的缺陷。本专利技术在基于秘密共享方案实现密钥分散存储时,还具体引入了基于传统shamir秘密共享方案实现的特殊的密钥份额分配及分散存储保护方案,以及基于秘密共享的密文密钥同存保护方案。其中,通过利用秘密共享方案对密钥生成的子密钥份额进行合理分配和分散存储保护,合理增加用户保存子密钥份额,并将用户保存子密钥作为密码资源对外部分散存储子密钥进行认证,可以在对外部分散存储子密钥实施安全认证的同时,达到控制外部分散存储的子密钥的目的,使用户拥有对密钥恢复的绝对控制权,并允许用户手中密钥资源具有一定的容错能力。此外,借助基于秘密共享的密文密钥同存保护方案,可以在单一用户环境下,既无需其他授权用户,也无需配置存储服务器,便能实现秘密份额的分散存储,同时通过使密钥和密文存储在一起,还能够保证即使敌人拿到密文密钥同存数据,也无法获得有效的密钥来解密密文。
3、具体而言,本专利技术的第一方面涉及一种基于秘密共享和纠删码的分布式云存储方法,其包括数据上云步骤和数据下云步骤;其中,
4、在数据上云步骤中,由客户端利用加密密钥k对数据d加密生成密文e,利用认证密钥r对加密密钥k加密生成密钥加密数据kr,利用认证密钥r生成位置参数n1并根据位置参数n1将密钥加密数据kr插入密文e生成密文e’,基于shamir秘密共享方案ss(t,n)或递归的shamir秘密共享方案rss(t,n)针对认证密钥r构造生成n份子密钥,将q1个外部分散存储子密钥rq(i)插入密文e’生成密文e”,形成包含密文e”的数据n并将其发送给纠删服务器端,n1为不大于密文e的尺寸的自然数,i=1、...、q1,(t-p)≤q1≤q,p和q分别为用户保存子密钥和外部分散存储子密钥的份数,p+q=n;以及,由纠删服务器端对数据n进行纠删处理生成多个数据分块,并将多个数据分块随机分散存储于云存储端;
5、在数据下云步骤中,由纠删服务器端从云存储端获取数据分块以恢复数据n并发送给客户端;由客户端对数据n解析得到密文e”,从密文e”提取外部分散存储子密钥rq(i)并得到密文e’,利用用户保存子密钥和外部分散存储子密钥基于shamir秘密共享方案ss(t,n)或递归的shamir秘密共享方案rss(t,n)重构认证密钥r,利用认证密钥r生成位置参数n1以根据位置参数n1从密文e’提取密钥加密数据kr并得到密文e,利用认证密钥r对密钥加密数据kr解密得到加密密钥k,利用加密密钥k对密文e解密得到数据d的明文。
6、进一步地,在数据上云步骤中,由客户端利用用户保存子密钥生成输入数据,利用输入数据生成与外部分散存储子密钥rq(i)唯一对应的位置参数pq(i),并根据位置参数pq(i)将外部分散存储子密钥rq(i)插入密文e’生成密文e”,pq(i)为不大于密文e’的尺寸的自然数;
7、在数据下云步骤中,由客户端根据位置参数pq(i)从密文e”提取外部分散存储子密钥rq(i)并得到密文e’。
8、进一步地,在数据上云步骤中,由客户端利用认证密钥r对密文e”进行完整性校验以生成认证值m1,并将认证值m1与密文e”合并成数据n;
9、在数据下云步骤中,由客户端利用重构得到的认证密钥r对从数据n中解析得到的密文e”进行完整性校验以生成认证值m1’,并将认证值m1’与从数据n中解析得到的认证值m1进行比对,以校验从纠删服务器端获取的数据n的完整性。
10、更进一步地,在数据下云步骤中,由客户端利用用户保存子密钥生成输入数据,并利用输入数据生成与外部分散存储子密钥rq(i)唯一对应的位置参数pq(i)。
11、更进一步地,q1=t-p,且在数据上云步骤中,由客户端将位置参数pq(i)和未包含于密文e”中的外部分散存储子密钥rq(j)合并成数据b’,形成包含数据b’的备份数据b并将其发送给纠删服务器端,j=q1+1、...、q;并且,将备份数据b保存于纠删服务器端;
12、在数据下云步骤中,客户端在用户保存子密钥部分缺失时还向纠删服务器端请求获取备份数据b,并对备份数据b解析得到外部分散存储子密钥rq(j)和位置参数pq(i)。
13、更进一步地,在数据上云步骤中,由客户端利用用户保存子密钥rp(k)对数据b’进行完整性校验以生成认证值m2(k),并将数据b’与认证值m2(k)合并成备份数据b,k=1、...、p;
<本文档来自技高网...【技术保护点】
1.一种基于秘密共享和纠删码的分布式云存储方法,其包括数据上云步骤和数据下云步骤;其中,
2.如权利要求1所述的分布式云存储方法,其中:
3.如权利要求1所述的分布式云存储方法,其中:
4.如权利要求2所述的分布式云存储方法,其中,在数据下云步骤中,由客户端利用用户保存子密钥生成输入数据,并利用输入数据生成与外部分散存储子密钥Rq(i)唯一对应的位置参数Pq(i)。
5.如权利要求2所述的分布式云存储方法,其中,q1=t-p;
6.如权利要求5所述的分布式云存储方法,其中:
7.如权利要求2所述的分布式云存储方法,其中,输入数据为用户保存子密钥中的一部分或全部之间的异或值。
8.如权利要求1-7中任一项所述的分布式云存储方法,其中,采用Shamir秘密共享方案SS(3,4)或递归的Shamir秘密共享方案RSS(3,4);以及/或者,加密密钥K和认证密钥R为随机数;以及/或者,密钥加密数据KR为认证密钥R与加密密钥K的异或值;以及/或者,借助单向散列函数生成位置参数。
9.一种用于基于
10.如权利要求9所述的客户端,其包括随机数获取模块、加解密模块、秘密共享模块和客户端主程序模块;
11.如权利要求10所述的客户端,其中,所述客户端主程序模块还被设置用于:在数据上云时,利用用户保存子密钥生成输入数据,利用输入数据生成与外部分散存储子密钥Rq(i)唯一对应的位置参数Pq(i),根据位置参数Pq(i)将外部分散存储子密钥Rq(i)插入密文E’生成密文E”,Pq(i)为不大于密文E’的尺寸的自然数;以及,在数据下云时,根据位置参数Pq(i)从密文E”提取外部分散存储子密钥Rq(i)并得到密文E’。
12.如权利要求10所述的客户端,其中,所述客户端主程序模块还被设置用于:在数据上云时,利用认证密钥R对密文E”进行完整性校验以生成认证值M1,并将认证值M1与密文E”合并成数据N;以及,在数据下云时,利用重构得到的认证密钥R对从数据N中解析得到的密文E”进行完整性校验以生成认证值M1’,并将认证值M1’与从数据N中解析得到的认证值M1进行比对,以校验从纠删服务器端获取的数据N的完整性。
13.如权利要求11所述的客户端,其中,所述客户端主程序模块还被设置用于:在数据下云时,利用用户保存子密钥生成输入数据,并利用输入数据生成与外部分散存储子密钥Rq(i)唯一对应的位置参数Pq(i)。
14.如权利要求11所述的客户端,其中,所述客户端主程序模块还被设置用于:在数据上云时,将位置参数Pq(i)和未包含于密文E”中的外部分散存储子密钥Rq(j)合并成数据B’,并形成包含数据B’的备份数据B以发送给纠删服务器端进行保存,j=q1+1、…、q,q1=t-p;以及,在数据下云时,在用户保存子密钥部分缺失时向纠删服务器端请求获取备份数据B,并对备份数据B解析得到外部分散存储子密钥Rq(j)和位置参数Pq(i)。
15.如权利要求14所述的客户端,其中,所述客户端主程序模块还被设置用于:在数据上云时,利用用户保存子密钥Rp(k)对数据B’进行完整性校验以生成认证值M2(k),并将数据B’与认证值M2(k)合并成备份数据B,k=1、…、p;以及,在数据下云时,对备份数据B解析得到认证值M2(k)和数据B’,利用用户保存子密钥中的一个Rp(I)对解析得到的数据B’进行完整性校验以生成认证值M2’(I),并将认证值M2’(I)与从备份数据B解析得到的认证值M2(I)进行比对,以校验从纠删服务器端获取的备份数据B的完整性。
16.如权利要求11所述的客户端,其中,输入数据为用户保存子密钥中的一部分或全部之间的异或值。
17.如权利要求9-16中任一项所述的客户端,其中,采用Shamir秘密共享方案SS(3,4)或递归的Shamir秘密共享方案RSS(3,4);以及/或者,密钥加密数据KR为认证密钥R与加密密钥K的异或值;以及/或者,借助单向散列函数生成位置参数。
18.一种基于秘密共享和纠删码的分布式云存储系统,其包括纠删服务器端,云存储端,以及如权利要求9-17中任一项所述的客户端;其中,
19.如权利要求18所述的分布式云存储系统,其还包括QKD网络,其被设置用于在客户端与纠删服务器端之间和纠删服务器端与云存储端之间分发共享量子密钥;
...【技术特征摘要】
1.一种基于秘密共享和纠删码的分布式云存储方法,其包括数据上云步骤和数据下云步骤;其中,
2.如权利要求1所述的分布式云存储方法,其中:
3.如权利要求1所述的分布式云存储方法,其中:
4.如权利要求2所述的分布式云存储方法,其中,在数据下云步骤中,由客户端利用用户保存子密钥生成输入数据,并利用输入数据生成与外部分散存储子密钥rq(i)唯一对应的位置参数pq(i)。
5.如权利要求2所述的分布式云存储方法,其中,q1=t-p;
6.如权利要求5所述的分布式云存储方法,其中:
7.如权利要求2所述的分布式云存储方法,其中,输入数据为用户保存子密钥中的一部分或全部之间的异或值。
8.如权利要求1-7中任一项所述的分布式云存储方法,其中,采用shamir秘密共享方案ss(3,4)或递归的shamir秘密共享方案rss(3,4);以及/或者,加密密钥k和认证密钥r为随机数;以及/或者,密钥加密数据kr为认证密钥r与加密密钥k的异或值;以及/或者,借助单向散列函数生成位置参数。
9.一种用于基于秘密共享和纠删码的分布式云存储系统的客户端,其被设置用于:
10.如权利要求9所述的客户端,其包括随机数获取模块、加解密模块、秘密共享模块和客户端主程序模块;
11.如权利要求10所述的客户端,其中,所述客户端主程序模块还被设置用于:在数据上云时,利用用户保存子密钥生成输入数据,利用输入数据生成与外部分散存储子密钥rq(i)唯一对应的位置参数pq(i),根据位置参数pq(i)将外部分散存储子密钥rq(i)插入密文e’生成密文e”,pq(i)为不大于密文e’的尺寸的自然数;以及,在数据下云时,根据位置参数pq(i)从密文e”提取外部分散存储子密钥rq(i)并得到密文e’。
12.如权利要求10所述的客户端,其中,所述客户端主程序模块还被设置用于:在数据上云时,利用认证密钥r对密文e”进行完整性校验以生成认证值m1,并将认证值m1与密文e”合并成数据n;以及,在数据下云时,利用重构得到的认证密钥r对从数据n中解析得到的密文e”进行完整性校验以生成认证值m1’,并将认证值m1’与从数据n...
【专利技术属性】
技术研发人员:赵勇,马春利,黄强,李亚麟,丁松燕,王军,
申请(专利权)人:科大国盾量子技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。