1.本发明属于区块链技术领域分布式存储技术领域,特别涉及一种基于区块链的加密分片重组数据存储方法及系统。
背景技术:
2.在分布式系统中,传统的分布式系统如hdfs的存储策略如图1(a)和(b)所示,hdfs把数据分成若干个128mb大小的块进行存储,典型的情况每块数据将有3个副本,第一个副本存储在本机,第二个存储在相同机架的随机机器上,第3块副本存储在相邻机架的机器上,传统的分布式存储策略有如下缺点:1、数据块内容具有连续性,如果要存储的文件大小小于128m,则一个数据块副本就是一个完整的文件,如果文件大于128m,那一个数据副本也是文件中一块连续的数据块,如果没有权限的用户想窃取数据,只需遍历该数据存放的机架上的所有存储即可获得全部数据或部分连续数据。
3.2、数据安全性没有保证,传统的分布式系统的数据没有对数据进行加解密。
4.发明人发表的论文“面向云存储的数据安全技术研究与应用”公开了一种面向云存储的数据安全技术,其核心思想是先分片,再加密。这里是加密和分片技术一起使用,而且是先分片,再加密,然而每一片的安全度并没有增加,没有从根本上确保数据安全性。
5.此外,本发明人在早日申请2020100849625“一种基于密码学的分布式安全存储策略”(目前已经授权)公布了一种数据安全存储方案,方案先加密,再分片,最后再加密。即使能够破解最后一次加密(例如使用量子计算),由于打开的是密文的分片,以至于第2次解密要难的多,例如分片10片,在不改变加密算法环境下,却增加解密的难度1百万倍。分片越多,解密越困难。然而对于目前的现有计算力虽然具有安全保证,对于未来算力增强的情况却需要安全度更高的方案。
6.因此对于“一种基于密码学的分布式安全存储策略”的方案进行延申是必要的。
技术实现要素:
7.本发明为了解决现有技术存在的一项或多项技术问题,创造性的提供一种基于区块链技术的安全存储策略,首先原始数据加密后,对数据进行分块,乱序以及数据混合处理再次将加密后的数据进行二次加密,之后进行存储,这样的数据加密方法将大大增强数据的安全性,使得数据几乎不可能被窃取。相比于现有技术中的专利技术,除了同样加密后再分片,加入了数据混乱机制,使解密难度大大增加而这新机制的一个特点,并且同时间不改变加密算法,也不增加原来加密2次的设计和分片数目,但可以却大大增加破解的难度,使得密文更加不可能破解;并且该方案并不改变分布式存储的存储架构,仅改变存储策略以及数据组织形式,因此成本和开销更小。
8.本发明的目的在于提供一种基于区块链的加密分片重组数据存储方法,包括:步骤1,对数据进行加密;
步骤2,将加密数据分片;步骤3,将分片后的加密数据进行乱码加入处理和/或数据加密分片处理;步骤4,将处理后的数据进行再次分片加密后进行存储。
9.优选的,所述数据加密分片处理方法包括:数据块乱序分片、数据块重组分片以及数据颠倒分片,所述数据加密分片处理方法中的每一种可以单独使用,也可以任意混合使用。
10.优选的,所述数据的加密分片乱序后再分片加密的流程,包括:步骤11,将原始文件加密;步骤12,对密文数据进行分片;步骤13,乱序步骤,使用哈希算法或是其他算法决定乱序的位置后形成新的分片次序;步骤14,根据所述新的分片次序重新组织密文;步骤15,为每一个分片重新加密后进行存储。
11.优选的,所述数据的加密分片重组后再分片加密的流程包括:步骤21,将原始文件加密;步骤22,对密文数据进行分片;步骤23,重组步骤,使用哈希算法或是其他算法决定需要重组的一个或多个分片并形成新的分片次序,所有分片都参与重组,或是部分分片参与重组。
12.步骤24,根据所述新的分片次序重新组织密文;步骤25,将重组后的分片再度加密后存储。
13.优选的,数据的重组方式可以多分片重组,每次重组可以使用不同分片重组。
14.优选的,所述数据加密之后进行数据颠倒分片存储再进行加密的流程包括:步骤31,将原始文件加密;步骤32,对密文数据进行分片;步骤33,颠倒步骤,使用哈希算法或是其他算法决定颠倒的分片形成新的分片次序;步骤34,根据所述新的分片次序颠倒这些分片并重新组织密文;步骤35,将颠倒后的分片重新加密后存储。
15.本发明的目的还在于提供一种基于区块链的加密分片重组数据存储系统,包括:传统的分布式存储架构以及新增加的一台服务器,所述服务器包括分片重组加解密服务器、元数据服务器以及数据服务器,所述分片重组加解密服务器用于进行数据的加解密以及分片重组工作,所述元数据服务器用于存储数据的元数据信息,分片重组加解密服务器用于进行数据的分片重组以及加解密工作,所述数据服务器用于存储经过加密后的数据块。
16.优选的,所述数据的写流程包括:s1,客户端向元数据服务器提出数据写入请求,数据进行首次加密;s2,元数据服务器根据数据文件大小以及当前存储情况确定元数据形式(m,n,x)和(a1,a2,...as),将元数据以及文件信息传输给分片重组加解密服务器;s3,分片重组加解密服务器根据元数据以及数据文件信息将数据文件进行分片并
进行乱序处理以及进行数据混合处理;s4,数据服务器返回数据写入操作完成的信息;s5,分片重组加解密服务器将各个数据块的数据存储情况反馈给元数据服务器;s6,元数据服务器创建该数据文件的元数据表并存储所述元数据表。
17.优选的,所述数据的读流程包括:s1’,客户端向元数据服务器提出读文件请求;s2’,元数据服务器查询元数据表获得数据文件的分片信息;s3’,元数据服务器将数据文件的分片信息传输给分片重组加解密服务器;s4’,分片重组加解密服务器根据文件的分片信息获得数据文件块进行解密后重构成原始数据文件;s5’,分片重组加解密服务器将原始数据文件反馈给客户端。
18.本发明的目的还在于提供一种基于区块链的加密分片重组数据存储系统,包括:分片重组加解密服务器、数据服务器和客户端,用户提交请求后,分片重组加解密服务器在处理好数据后使用一致性哈希算法进行数据的存储工作。
19.本发明的有益效果:基于区块链技术的安全存储策略,首先原始数据加密后,对数据进行分块,乱序以及数据混合处理再次将加密后的数据进行二次加密,之后进行存储,这样的数据加密方法将大大增强数据的安全性,使得数据几乎不可能被窃取。相比于现有技术中的专利技术,除了同样加密后再分片,加入了数据混乱机制,使解密难度大大增加而这新机制的一个特点,并且同时间不改变加密算法,也不增加原来加密2次的设计和分片数目,但可以却大大增加破解的难度,使得密文更加不可能破解;并且该方案并不改变分布式存储的存储架构,仅改变存储策略以及数据组织形式,因此成本和开销更小。
20.根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
21.后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:图1(a)和(b)为根据现有技术的hdfs架构示意图。
22.图2为根据本发明实施例的乱序分片方法流程图。
23.图3为根据本发明实施例的重组分片方法流程图。
24.图4为根据本发明实施例的颠倒分片方法流程图。
25.图5为根据本发明实施例的基于区块链的加密分片重组数据存储系统架构示意图。
26.图6为根据本发明实施例的数据写流程图。
27.图7为根据本发明实施例的数据读流程图。
28.图8为根据本发明实施例的元数据与数据共同存储的分片重组加解密分布式存储
系统架构示意图。
29.图9为根据本发明第一实施例的乱序分片流程示意图。
30.图10为根据本发明第二实施例的重组分片流程示意图。
31.图11为根据本发明第四实施例的使用乱序分片和添加乱码混合方法的流程示意图。
32.图12为根据本发明第五实施例的使用乱序和重组分片混合方法的流程示意图。
具体实施方式
33.为了使得本发明能够针对其发明要点更加明显易懂,下面将结合附图和实例对本发明作进一步的说明。在下面的描述中阐述了很多细节和具体实例,提供这些实例是为了能够更透彻地理解本发明,并且能够将本发明完整形象地传达给本领域的技术人员。虽然本发明能够以很多不同于此描述的其它方式实施,但是本领域技术人员可以在不违背本发明内涵的情况下做相应的推广,因此本发明不受下面公开的具体实例及具体附图所限制。
34.基于区块链的加密分片重组数据存储方法,包括:步骤1,对数据进行加密;步骤2,将加密数据分片;步骤3,将分片后的加密数据进行乱码加入处理和/或数据加密分片处理;步骤4,将处理后的数据进行再次分片加密后进行存储。
35.数据加密分片处理方法包括:第1种,(哈希)数据块乱序分片、第2种,(哈希)数据块重组分片以及第三种,(哈希)数据颠倒分片,所述数据加密分片处理方法中的每一种可以单独使用,也可以任意混合使用,例如第1种+第2种;第2种+第3种,第1种+第3种,或是第1种+第2种+第3种一起使用。混合使用可以重复使用每一种方法,会得到更难破解的密文。例如先乱序,再重组,再颠倒,再乱序,再重组(使用两次乱序分片,两次重组分片和一次颠倒分片)。混合使用越复杂,越难破解,安全度越高。
36.参见图2,所示为数据的加密分片乱序后再分片加密的流程,包括:步骤11,将原始文件加密;步骤12,对密文数据进行分片;步骤13,乱序步骤,使用哈希算法或是其他算法决定乱序的位置后形成新的分片次序;步骤14,根据所述新的分片次序重新组织密文;步骤15,为每一个分片重新加密后进行存储。
37.参见图3,所示为数据的加密分片重组后再分片加密的流程,包括:步骤21,将原始文件加密;步骤22,对密文数据进行分片;步骤23,重组步骤,使用哈希算法或是其他算法决定需要重组的一个或多个分片并形成新的分片次序;例如第4分片和第7分片,需要重组,4.1和7.2合并为一新分片;7.1 和4.2合并为一新分片,其中4.1代表第4分片前半片,4.2 代表第4分片后半片,7.1 和7.2具有类似的定义。所有分片都参与重组,或是部分分片参与重组。
38.步骤24,根据所述新的分片次序重新组织密文;
步骤25,将重组后的分片再度加密后存储。
39.数据的重组方式可以多分片重组,例如三分片重组或四分片重组例如第4分片和第7分片各分为3片,分别为4.1,4.2,4.3;7.1,7.2,7.3;数据的重组方式可以为4.1,7.2,4.3;7.1,4.2,7.3;即数据块4.2和7.2调换位置。
40.每次重组可以使用不同分片重组,例如2分片重组和2分片重组一起使用,一半使用2分片重组,另外一半使用3分片重组。其他组合也是可能的。
41.参见图4,所示为数据加密之后进行数据颠倒分片存储再进行加密的流程,包括:步骤31,将原始文件加密;步骤32,对密文数据进行分片;步骤33,颠倒步骤,使用哈希算法或是其他算法决定颠倒的分片形成新的分片次序;步骤34,根据所述新的分片次序颠倒这些分片并重新组织密文;步骤35,将颠倒后的分片重新加密后存储。
42.本实施例还提供一种基于区块链的加密分片重组数据存储系统,包括:传统的分布式存储架构以及新增加的一台服务器,所述服务器包括分片重组加解密服务器、元数据服务器以及数据服务器,分片重组加解密服务器用于进行数据的加解密以及分片重组工作,存储架构如图5所示,所述元数据服务器用于存储数据的元数据信息,分片重组加解密服务器用于进行数据的分片重组以及加解密工作,数据服务器用于存储经过加密后的数据块。
43.数据的读写流程如图6和图7所示:一、写数据:s1,客户端向元数据服务器提出数据写入请求,数据进行首次加密;s2,元数据服务器根据数据文件大小以及当前存储情况确定元数据形式(m,n,x)和(a1,a2,...as),将元数据以及文件信息传输给分片重组加解密服务器;s3,分片重组加解密服务器根据元数据以及数据文件信息将数据文件进行分片并进行乱序处理以及进行数据混合处理;s4,数据服务器返回数据写入操作完成的信息。
44.s5,分片重组加解密服务器将各个数据块的数据存储情况反馈给元数据服务器。
45.s6,元数据服务器创建该数据文件的元数据表并存储所述元数据表。
46.二、读数据:s1’,客户端向元数据服务器提出读文件请求;s2’,元数据服务器查询元数据表获得数据文件的分片信息;s3’,元数据服务器将数据文件的分片信息传输给分片重组加解密服务器;s4’,分片重组加解密服务器根据文件的分片信息获得数据文件块进行解密后重构成原始数据文件;s5’,分片重组加解密服务器将原始数据文件反馈给客户端。
47.本实施例的安全存储策略同样适用于元数据与数据共同存储的分布式存储系统,因此本发明的目的还在于提供一种基于区块链的加密分片重组数据存储系统,存储架构如图8所示,包括:分片重组加解密服务器、数据服务器和客户端,用户提交请求后,分片重组
加解密服务器在处理好数据后使用一致性哈希算法进行数据的存储工作。
48.第一实施例:采用乱序分片的具体实施案例和流程案例:(1)假设原来密文分为4分片:(第1, 第2, 第3, 第4)分片;(2)假设哈希算法决定次序改为 (3,1,4,2);(3)后来分片为(原第3,原第1,原第4,原第 2;)(4)要破解密码,需要将所有次序更正后,才能破解。
49.如图9所示为乱序流程图,包括:ss1,首先将原始数据进行初次加密,此时系统自动生成加密数据的元数据。
50.ss2,元数据形式分为两行,其中元数据的第一行为(m,n,x),其中m代表数据的分片数量,n代表数据存储是否乱序处理,可以是0 或是 1,0表示数据不进行乱序处理,1代表数据进行乱序存储,x代表第x块数据进行数据混合,数据混合处理例如x=2时代表第2块数据和第三块数据进行数据混合,其中第二块数据的后半部分和第三块数据的后半部分调换次序组合成为新的第二块数据和第三块数据。
51.ss3,元数据的第二行表示形式为(a1,a2,...as),即表述数据的存储顺序,其中s=m(数据的分片数量),各个数据块的顺序可以采用哈希的办法进行排序,具体的排序流程如下:3.1将所有的数据块采用哈希算法进行哈希,并计算每一块的所有位的ascii码相加之和(b1,b2,...bs);3.2 将(b1,b2,...bs)进行升序排序,如果值相同则原始数据块更靠前的数据块排列在前,得到最终的排序结果(a1,a2,...as),并存储(a1,a2,...as),流程如图9所示。
52.ss4,将处理后的数据进行二次加密。
53.ss5,将最终数据存储到数据存储服务器,将元数据存储到元数据服务器。
54.以元数据为(4,1,3),(2,3,4,1)为例,数据的处理流程如下所示:数据进行首次加密后,系统生成的元数据形式为(4,1,3),(2,3,4,1),其中(4,1,3)代表数据分块为4块,进行乱序处理,并在第三块数据处进行数据混合操作,(2,3,4,1)表示数据乱序后的排列次序,即按照分片2,分片3,分片4,分片1的顺序存储数据,数据进行乱序处理后,将第三块数据(即分片4)的后半部分数据和第四块数据(即分片1)的后半部分数据进行调换,得到新的第三块和第四块数据,之后再次进行数据加密,将加密数据和元数据进行存储。
55.第二实施例:采用重组分片具体实施流程案例和流程(一)案例:数据混合方案包括全部混合与部分混合。
56.1、下面是一个具体重组的结果,这次是全部都重组。原来有4分片,原来第1分片 = 1.1 + 1.2 (第1分片是前半片和后半片组成)原来第2分片 = 2.1 + 2.2 (第2分片是前半片和后半片组成)原来第3分片 = 3.1 + 3.2 (第3分片是前半片和后半片组成)原来第4分片 = 4.1 + 4.2 (第4分片是前半片和后半片组成)2、4分片重组后:
新第1分片 = 1.1 + 2.2 (由原1.1 + 原 2.2组成)新第2分片 = 2.1 + 3.2 (由原2.1 + 原 3.2组成)新第3分片 = 3.1 + 4.2 (由原3.1 + 原 4.2组成)新第4分片 = 4.1 + 1.2 (由原4.1 + 原 1.2组成)3、要破解,需要把原来分片回复回来。
57.(二)实际算法新的2分片采用以下混合方案:设数据编号为s1,s2,...sa,其中s1分块的序号应大于s2,即该序列为降序排列,此时将sa的后半部分数据放置在s(a-1)的后半部分,s(a-1)的后半部分数据放置在s(a-2)的后半部分,s1的后半部分数据放置在sa的后半部分。如图10所示。
58.第三实施例:颠倒分片具体实施案例和流程(一)案例:1、假设原来密文分为4分片:(第1, 第2, 第3, 第4)分片2、假设哈希算法决定第2和第3分片需要颠倒,后来分片为:(第1,倒置(第2),倒置(第3),第 4);3、要破解,需要将倒置的分片恢复回来。
59.由于各种组合流程都可以使用,而且可以重复使用。例如先乱序,再重组,再乱序,再颠倒,再重组。这里只是演示2个流程,分别对应第四实施例和第五实施例。
60.第四实施例:混合使用案例场景1:使用乱序和添加乱码;第五实施例:混合使用案例场景2:乱序和重组方法合用。
61.第四实施例:添加乱码是通用方法,可以和本发明的方法一起使用,这样破解的难度更大。
62.如图11所示,数据进行首次加密后,系统生成的元数据形式为(5,200,sha128,4),其中数据被分为5块,每块数据加入200字节的乱码,哈希算法采用sha128,哈希基数为4,数据首先被分为5块,之后在每块数据的末尾处加入200字节的乱码数据组成新的分块数据,将新的分块数据采用sha128哈希算法进行哈希得到每一块的哈希值,再把哈希值的每一位的ascii码想加之后除以4得到余数为最终的哈希值,其中数据分块1和数据分块5的数据哈希值相同,将两块数据进行重组,之后将数据进行再次加密,将最终数据存入数据存储服务器,将元数据存入元数据服务器。
63.第五实施例,如图12所示,乱序和重组混合使用,图12所示为乱序和重组一起使用。下面是先乱序,后重组;但是也可以先重组,后乱序。不论是那个流程,破解难度都大大提高。
64.基于区块链技术的安全存储策略,首先原始数据加密后,对数据进行分块,乱序以及数据混合处理再次将加密后的数据进行二次加密,之后进行存储,这样的数据加密方法将大大增强数据的安全性,使得数据几乎不可能被窃取。相比于现有技术中的专利技术,除了同样加密后再分片,加入了数据混乱机制,使解密难度大大增加而这新机制的一个特点,并且同时间不改变加密算法,也不增加原来加密2次的设计和分片数目,但可以却大大增加破解的难度,使得密文更加不可能破解;并且该方案并不改变分布式存储的存储架构,仅改变存储策略以及数据组织形式,因此成本和开销更小。
65.虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。
技术特征:
1.一种基于区块链的加密分片重组数据存储方法,其特征在于包括:步骤1,对数据进行加密;步骤2,将加密数据分片;步骤3,将分片后的加密数据进行乱码加入处理和/或数据加密分片处理;步骤4,将处理后的数据进行再次分片加密后进行存储。2.根据权利要求1所述的一种基于区块链的加密分片重组数据存储方法,其特征在于所述数据加密分片处理方法包括:数据块乱序分片、数据块重组分片以及数据颠倒分片,所述数据加密分片处理方法中的每一种可以单独使用,也可以任意混合使用。3.根据权利要求2所述的一种基于区块链的加密分片重组数据存储方法,其特征在于所述数据的加密分片乱序后再分片加密的流程包括:步骤11,将原始文件加密;步骤12,对密文数据进行分片;步骤13,乱序步骤,使用哈希算法或是其他算法决定乱序的位置后形成新的分片次序;步骤14,根据所述新的分片次序重新组织密文;步骤15,为每一个分片重新加密后进行存储。4.根据权利要求2所述的一种基于区块链的加密分片重组数据存储方法,其特征在于所述数据的加密分片重组后再分片加密的流程包括:步骤21,将原始文件加密;步骤22,对密文数据进行分片;步骤23,重组步骤,使用哈希算法或是其他算法决定需要重组的一个或多个分片并形成新的分片次序,所有分片都参与重组,或是部分分片参与重组:步骤24,根据所述新的分片次序重新组织密文;步骤25,将重组后的分片再度加密后存储。5.根据权利要求4所述的一种基于区块链的加密分片重组数据存储方法,其特征在于数据的重组方式可以多分片重组,每次重组可以使用不同分片重组。6.根据权利要求2所述的一种基于区块链的加密分片重组数据存储方法,其特征在于所述数据加密之后进行数据颠倒分片存储再进行加密的流程包括:步骤31,将原始文件加密;步骤32,对密文数据进行分片;步骤33,颠倒步骤,使用哈希算法或是其他算法决定颠倒的分片形成新的分片次序;步骤34,根据所述新的分片次序颠倒这些分片并重新组织密文;步骤35,将颠倒后的分片重新加密后存储。7.一种基于区块链的加密分片重组数据存储系统,用于数据的写操作和数据的读操作,其特征在于包括:传统的分布式存储架构以及新增加的一台服务器,所述服务器包括分片重组加解密服务器、元数据服务器以及数据服务器,所述分片重组加解密服务器用于进行数据的加解密以及分片重组工作,所述元数据服务器用于存储数据的元数据信息,分片重组加解密服务器用于进行数据的分片重组以及加解密工作,所述数据服务器用于存储经过加密后的数据块。8.根据权利要求7所述的一种基于区块链的加密分片重组数据存储系统,其特征在于
所述数据的写操作的流程包括:s1,客户端向元数据服务器提出数据写入请求,数据进行首次加密;s2,元数据服务器根据数据文件大小以及当前存储情况确定元数据形式(m,n,x)和(a1,a2,...as),将元数据以及文件信息传输给分片重组加解密服务器;s3,分片重组加解密服务器根据元数据以及数据文件信息将数据文件进行分片并进行乱序处理以及进行数据混合处理;s4,数据服务器返回数据写入操作完成的信息;s5,分片重组加解密服务器将各个数据块的数据存储情况反馈给元数据服务器;s6,元数据服务器创建该数据文件的元数据表并存储所述元数据表。9.根据权利要求7所述的一种基于区块链的加密分片重组数据存储系统,其特征在于所述数据的读操作的流程包括:s1’,客户端向元数据服务器提出读文件请求;s2’,元数据服务器查询元数据表获得数据文件的分片信息;s3’,元数据服务器将数据文件的分片信息传输给分片重组加解密服务器;s4’,分片重组加解密服务器根据文件的分片信息获得数据文件块进行解密后重构成原始数据文件;s5’,分片重组加解密服务器将原始数据文件反馈给客户端。10.一种基于区块链的加密分片重组数据存储系统,其特征在于包括:分片重组加解密服务器、数据服务器和客户端,用户提交请求后,分片重组加解密服务器在处理好数据后使用一致性哈希算法进行数据的存储工作。
技术总结
本发明提供一种基于区块链的加密分片重组数据存储方法,包括:对数据进行加密;将加密数据分片;将分片后的加密数据进行乱码加入处理和/或数据加密分片处理;将处理后的数据进行再次分片加密后进行存储。还提供了两种相应的存储系统,包括:传统的分布式存储架构以及服务器,服务器包括分片重组加解密服务器、元数据服务器以及数据服务器,除了同样加密后再分片,加入了数据混乱机制,使解密难度大大增加而这新机制的一个特点,并且同时间不改变加密算法,也不增加原来加密2次的设计和分片数目,但可以却大大增加破解的难度,使得密文更加不可能破解;并且该方案并不改变分布式存储的存储架构,仅改变存储策略以及数据组织形式,因此成本和开销更小。因此成本和开销更小。因此成本和开销更小。
技术研发人员:蔡维德
受保护的技术使用者:天民(青岛)国际沙盒研究院有限公司
技术研发日:2021.07.15
技术公布日:2022/3/8