CN103034814B - 一种数据存取方法 - Google Patents

一种数据存取方法 Download PDF

Info

Publication number
CN103034814B
CN103034814B CN201210538809.0A CN201210538809A CN103034814B CN 103034814 B CN103034814 B CN 103034814B CN 201210538809 A CN201210538809 A CN 201210538809A CN 103034814 B CN103034814 B CN 103034814B
Authority
CN
China
Prior art keywords
byte
vector
data
matrix
dimension
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210538809.0A
Other languages
English (en)
Other versions
CN103034814A (zh
Inventor
马然
姜晓红
吴朝晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201210538809.0A priority Critical patent/CN103034814B/zh
Publication of CN103034814A publication Critical patent/CN103034814A/zh
Application granted granted Critical
Publication of CN103034814B publication Critical patent/CN103034814B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据存取方法,该方法以字节为单位处理原始数据,根据需要灵活拆分其字节值,假设拆分为k(k>1)份;引入数据冗余策略进一步处理拆分后的数据,使得k份数据最终转换为n(n>k)份冗余拆分数据,支持分布式存储;需要访问原始数据时,本方法能够以n份拆分数据中的任取k份重建原始数据,保证数据的完整和准确,同时数据冗余的存在也有效解决了某些拆分数据发生损坏等因素导致的不可用问题。此外,重建原始数据至少需要获得k份拆分数据,并且获悉算法和相关参数,使得来自外部攻击者或者存储服务提供商的安全威胁被极大降低;故本发明能够有效提高数据存储的私密性和可用性,且非常适用于现下广泛的分布式存储模式。

Description

一种数据存取方法
技术领域
本发明属于数据存取技术领域,具体涉及一种数据存取方法。
背景技术
存储方式的发展经过了内置存储时代、直连存储时代、网络存储时代一直到集群存储时代的变迁。其中在网络存储时代涌现出了NAS(网络连接存储)、SAN(存储区域网络)等存储技术,而在现如今的集群存储时代,高可用性集群、负载均衡集群、高性能集群等各种类型的集群也各具特点和优势,同时分布式存储的方式也逐渐流行开来。
分布式的存储方式一般可以根据存储的数据类型划分为结构化、半结构化和非结构化的存储;或者根据存储系统的体系架构划分为主从式和对等式(即P2P形式)的存储。主从式的存储系统也有结构化的如Oracle集群等,半结构化的如BigTable(由Google开发的半结构化分布式存储系统)、Hbase(BigTable的开源实现版本)等,非结构化的如GFS(Google File System,由Google开发的分布式文件系统,主要针对非结构化的数据)和HDFS(Hadoop Distributed FileSystem,GFS的开源实现版本)等。但这些分布式存储系统往往在私密性和可用性上存在一些问题。众多周知,数据存储过程中的数据私密性非常重要,原始数据泄漏对用户的损害极大,同时由于服务器宕机等原因造成的存储节点拒绝服务或者数据损坏造成的无法读取等问题将严重影响用户数据的可用性。所以,数据存储的私密性和可用性是存储方法和存储系统必须重点关注的两个问题。
针对以上两点,目前比较常见的策略是一种显式安全策略,一般是将数据存储在单一的服务器上,并且进行适当的备份。在这种情况下,用户只需要录入密码进行安全认证来获取数据。因此,需要密码具有较高的复杂程度以防破解,并且一般需要用户频繁的更换密码。但是用户往往希望自己的密码简单好记,如此反而容易成为攻击者的目标。另外,由于目前大多数存储系统不提供数据加密模块,所以需要用户在向存储系统提交数据之前自己进行加密。常用的加密算法如MD5(Message-Digest Algorithm 5,信息-摘要算法5)、PGP(SecureHash Algorithm,安全哈希算法)、RSA(基于数论的非对称性加密算法)等。这种方式对用户要求较高,也增加了用户使用的时间成本等。并且用户数据往往需要长期在线存储,这种情况下,目前能够为数据提供足够安全性的密钥可能在一段时间之后就不再可靠。基于以上种种原因,对数据的在线存储服务来说,以显式安全策略为基础的安全体系在很大程度上已经不再适用。
发明内容
针对现有技术所存在的上述技术缺陷,本发明提供了一种数据存取方法,兼具高私密性和高可用性。
一种数据存取方法,包括如下步骤:
数据存储:
(1)将用户输入的数据的每个字节通过根式拆分转换成k维特征向量;k为大于1的自然数;
(2)构建n×k维的中间矩阵,根据中间矩阵使所述的k维特征向量扩充为n维冗余向量,并保存中间矩阵;n为自然数且n大于k;
(3)将每个字节对应n维冗余向量中的n个元素值分别写入n个文本文档中,进而将这n个写有m个元素值的文本文档分别存储于n个服务器中,m为输入数据的字节个数;
数据读取:
(a)从n个服务器中任选k个服务器,并从中获取对应的k个文本文档;读取这k个文本文档中的每个元素值,重建得到m个与字节对应的k维中间向量;
(b)根据所述的k维中间向量和中间矩阵,构建k×k维的还原矩阵;根据还原矩阵使所述的k维中间向量还原成k维字节向量;
(c)依次对每个字节对应的k维字节向量进行模合并,得到每个字节的字节值,从而还原得到用户输入的数据。
所述的步骤(1)中,将每个字节通过根式拆分转换成k维特征向量的方法为:首先,构建k次多项式如下:
xk+ak-1xk-1+ak-2xk-2+…+a1x+a0=0
然后,将以上k次多项式转化为以下表达式:
(x-r1)(x-r2)…(x-rk)=0
其中,r1~rk为该k次多项式的k个根,则r1×r2×...×rk=a0
最后,令任一字节的字节值为a0,并随机生成r1~rk-1的值,进而求得rk;使r1~rk为向量的k个元素,则得到的向量即为该字节对应的k维特征向量;依此遍历数据的每个字节。
所述的步骤(2)中,构建n×k维的中间矩阵的方法为:建立一n×k维的矩阵,随机生成该矩阵中的每个元素值,且保证该矩阵的各行向量线性无关,则该矩阵即为中间矩阵。
优选地,所述的中间矩阵采用Vandermonde(范德蒙德)矩阵;构造简便。
所述的步骤(2)中,通过公式C=AR使k维特征向量扩充为n维冗余向量;其中,C为n维冗余向量,R为k维特征向量,A为中间矩阵。
所述的步骤(3)中,将每个字节对应n维冗余向量中的n个元素值分别写入n个文本文档中的方法为:对于数据中的第i字节,将该字节对应n维冗余向量中的n个元素值分别写入n个文本文档中的第i输入位;依此按数据中字节的顺序,遍历每个字节对应的n维冗余向量,得到n个写有m个元素值的文本文档,i为自然数且1≤i≤m。
所述的步骤(a)中,读取k个文本文档中的每个元素值,重建m个k维中间向量的过程如下:对于数据中的第i字节,读取k个文本文档中该字节对应输入位上的k个元素值,使这k个元素值为向量的k个元素,则得到的向量即为第i字节对应的k维中间向量;依此遍历文本文档中每个输入位上的元素值,得到m个与字节对应的k维中间向量。
所述的步骤(b)中,构建k×k维的还原矩阵的方法为:从中间矩阵中提取k个行向量,所述的k个行向量与k维中间向量中的k个元素一一对应;根据k维中间向量中k个元素的顺序,将这k个行向量组合成k×k维的还原矩阵。
所述的步骤(b)中,通过公式S=B-1D使k维中间向量还原成k维字节向量;其中,D为k维中间向量,S为k维字节向量,B为k×k维的还原矩阵。
所述的步骤(c)中,对每个字节对应的k维字节向量进行模合并的方法为:对于任一字节对应的k维字节向量,使该k维字节向量中的k个元素值相乘,得到的数值即为该字节的字节值。
存储操作中的k维特征向量与读取操作中的k维字节向量,这两个向量中的元素相同,但排列顺序不同。
本发明具有以下有益效果:
(1)高私密性:本发明存储节点上保存的是处理后的数据,而非原始数据直接存储,同时无需进一步加密。拆分结果本身并不具备任何价值,只有获取到足够多的拆分结果,并且经过逆向处理,才能还原用户的原始数据。在本发明方法中,原始数据的重建需要一定数量(不低于k)的拆分结果,而原始数据的拆分策略(有限域、多项式以及中间矩阵的信息)、拆分结果的存储位置等信息在重建过程中缺一不可,算法的复杂性和灵活性也使得非法攻击和获取用户数据的机率极低。通过本发明的安全机制,能够有效的减少来自外部攻击者或者存储服务提供商的安全威胁,降低原始数据泄漏的机率,增强数据存储的私密性,并且非常适用于现下应用广泛的分布式存储模式。
(2)高可用性:在本发明方法中,由于数据冗余策略的引入,原始数据的重建过程无需全部拆分结果而只需其中部分即可完成;同时,多份拆分结果支持不同地域、不同节点间的分布式存储;上述两个特点极大的增强了本发明的灵活性,与其他加密或非加密的存储方法相比,本发明方法能够有效避免一部分存储节点不可用而导致的无法获取数据块的问题,或者一部分拆分数据发生损坏或丢失的问题,能够有效减少存储节点拒绝服务或者数据丢失等安全威胁,提高数据质量,增强数据的可用性和完整性。
附图说明
图1为本发明方法数据拆分的示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
一种数据存取方法,包括如下步骤:
数据存储:
(1)将用户User输入的数据Data的每个字节通过根式拆分转换成5维特征向量;
首先,构建5次多项式如下:
x5+a4x4+a3x3+a2x2+a1x+a0=0
然后,将以上5次多项式转化为以下表达式:
(x-r1)(x-r2)(x-r3)(x-r4)(x-r5)=0
其中,r1~r5为该5次多项式的k个根,则r1×r2×r3×r4×r5=a0
最后,令任一字节的字节值(0~255)为a0,并随机生成r1~r4的值,进而求得r5;使r1~r5为向量的5个元素,则得到的向量即为该字节对应的5维特征向量;依此遍历数据的每个字节。
(2)构建10×5维的中间矩阵;
建立一10×5维的矩阵,随机生成该矩阵中的每个元素值,且保证该矩阵的各行向量线性无关,则该矩阵即为中间矩阵;
为了构造的简便,本实施方式采用Vandermonde矩阵作为中间矩阵,其形式如下:
A = 1 x 1 x 1 2 x 1 3 x 1 4 1 x 2 x 2 2 x 2 3 x 2 4 · · · · · · · · · · · · · · · 1 x 10 x 10 2 x 10 3 x 10 4
根据中间矩阵通过公式C=AR使5维特征向量扩充为10维冗余向量,并保存中间矩阵;其中,C为10维冗余向量,R为5维特征向量,A为中间矩阵。
公式C=AR可用如下矩阵形式来表示:
1 x 1 x 1 2 x 1 3 x 1 4 1 x 2 x 2 2 x 2 3 x 2 4 · · · · · · · · · · · · · · · 1 x 10 x 10 2 x 10 3 x 10 4 r 1 r 2 · · · r 5 = c 1 c 2 · · · c 10
(3)将每个字节对应10维冗余向量中的10个元素值分别写入10个文本文档Txt.1~10中,如图1所示;其中:
对于数据中的第i字节,将该字节对应10维冗余向量中的10个元素值分别写入10个文本文档中的第i输入位;依此按数据中字节的顺序,遍历每个字节对应的10维冗余向量,得到10个写有m个元素值的文本文档,i为自然数且1≤i≤m,m为输入数据的字节个数。
进而将这10个写有m个元素值的文本文档Txt.1~10分别存储于10个服务器中。
数据读取:
(a)从10个服务器中任选5个服务器,并从中获取对应的5个文本文档(Txt.2、Txt.5、Txt.7、Txt.9、Txt.10);读取这5个文本文档中的每个元素值,重建得到m个与字节对应的5维中间向量;其中:
对于数据中的第i字节,读取5个文本文档中该字节对应输入位上的5个元素值,使这5个元素值为向量的5个元素,则得到的向量即为第i字节对应的5维中间向量;依此遍历文本文档中每个输入位上的元素值,得到m个与字节对应的5维中间向量。
(b)根据所述的k维中间向量和中间矩阵,构建5×5维的还原矩阵:
从中间矩阵中提取5个行向量,且这5个行向量需与5维中间向量中的5个元素一一对应;根据5维中间向量中5个元素的顺序,将这5个行向量组合成5×5维的还原矩阵。
根据还原矩阵通过公式S=B-1D使5维中间向量还原成5维字节向量;其中,D为5维中间向量,S为5维字节向量,B为5×5维的还原矩阵。
公式S=B-1D可用如下矩阵形式来表示:
s 1 s 2 s 3 s 4 s 5 = b 11 b 12 b 13 b 14 b 15 b 21 b 22 b 23 b 24 b 25 b 31 b 32 b 33 b 34 b 35 b 41 b 42 b 43 b 44 b 45 b 51 b 52 b 53 b 54 b 55 - 1 d 1 d 2 d 3 d 4 d 5
一般情况下,存储操作中的5维特征向量与读取操作中的5维字节向量,这两个向量中的元素相同,但可能排列顺序不同。
(c)依次对每个字节对应的k维字节向量进行模合并,其中:
对于任一字节对应的5维字节向量,使该5维字节向量中的5个元素值相乘,得到的数值即为该字节的字节值;依次遍历每个字节,从而还原得到用户输入的数据Data。

Claims (1)

1.一种数据存取方法,包括如下步骤:
数据存储:
(1)将用户输入的数据的每个字节通过根式拆分转换成k维特征向量,k为大于1的自然数,具体过程如下:
首先,构建k次多项式如下:
xk+ak-1xk-1+ak-2xk-2+…+a1x+a0=0
然后,将以上k次多项式转化为以下表达式:
(x-r1)(x-r2)…(x-rk)=0
其中,r1~rk为该k次多项式的k个根,则r1×r2×…×rk=a0
最后,令任一字节的字节值为a0,并随机生成r1~rk-1的值,进而求得rk;使r1~rk为向量的k个元素,则得到的向量即为该字节对应的k维特征向量;依此遍历数据的每个字节;
(2)构建n×k维的中间矩阵,即建立一n×k维的矩阵,随机生成该矩阵中的每个元素值,且保证该矩阵的各行向量线性无关,则该矩阵即为中间矩阵;
根据中间矩阵通过公式C=AR使所述的k维特征向量扩充为n维冗余向量,并保存中间矩阵,n为自然数且n大于k;其中,C为n维冗余向量,R为k维特征向量,A为n×k维的中间矩阵;所述的中间矩阵采用Vandermonde矩阵;
(3)将每个字节对应n维冗余向量中的n个元素值分别写入n个文本文档中:即对于数据中的第i字节,将该字节对应n维冗余向量中的n个元素值分别写入n个文本文档中的第i输入位;依此按数据中字节的顺序,遍历每个字节对应的n维冗余向量,得到n个写有m个元素值的文本文档,i为自然数且1≤i≤m;
进而将这n个写有m个元素值的文本文档分别存储于n个服务器中,m为输入数据的字节个数;
数据读取:
(a)从n个服务器中任选k个服务器,并从中获取对应的k个文本文档;读取这k个文本文档中的每个元素值,重建得到m个与字节对应的k维中间向量:即对于数据中的第i字节,读取k个文本文档中该字节对应输入位上的k个元素值,使这k个元素值为向量的k个元素,则得到的向量即为第i字节对应的k维中间向量;依此遍历文本文档中每个输入位上的元素值,得到m个与字节对应的k维中间向量;
(b)根据所述的k维中间向量和中间矩阵,构建k×k维的还原矩阵:即从中间矩阵中提取k个行向量,所述的k个行向量与k维中间向量中的k个元素一一对应;根据k维中间向量中k个元素的顺序,将这k个行向量组合成k×k维的还原矩阵;
根据还原矩阵通过公式S=B-1D使所述的k维中间向量还原成k维字节向量;其中,D为k维中间向量,S为k维字节向量,B为k×k维的还原矩阵;
(c)依次对每个字节对应的k维字节向量进行模合并,得到每个字节的字节值,从而还原得到用户输入的数据;即对于任一字节对应的k维字节向量,使该k维字节向量中的k个元素值相乘,得到的数值即为该字节的字节值。
CN201210538809.0A 2012-12-11 2012-12-11 一种数据存取方法 Active CN103034814B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210538809.0A CN103034814B (zh) 2012-12-11 2012-12-11 一种数据存取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210538809.0A CN103034814B (zh) 2012-12-11 2012-12-11 一种数据存取方法

Publications (2)

Publication Number Publication Date
CN103034814A CN103034814A (zh) 2013-04-10
CN103034814B true CN103034814B (zh) 2015-10-21

Family

ID=48021700

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210538809.0A Active CN103034814B (zh) 2012-12-11 2012-12-11 一种数据存取方法

Country Status (1)

Country Link
CN (1) CN103034814B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829899B (zh) * 2014-07-24 2021-08-20 北京古盘创世科技发展有限公司 数据表储存、修改、查询和统计方法
CN106612285B (zh) * 2016-12-30 2020-05-19 Tcl集团股份有限公司 基于对等网络的分布式云数据管理方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101192924A (zh) * 2006-11-24 2008-06-04 北京大学 基于Reed-Solomon码的P2P存储系统编码方法
CN101488104A (zh) * 2009-02-26 2009-07-22 北京世纪互联宽带数据中心有限公司 一种实现高效安全存储的系统和方法
CN101834898A (zh) * 2010-04-29 2010-09-15 中科院成都信息技术有限公司 一种网络分布式编码存储方法
CN102624866A (zh) * 2012-01-13 2012-08-01 北京大学深圳研究生院 一种存储数据的方法、装置及分布式网络存储系统
CN102710757A (zh) * 2012-05-21 2012-10-03 北京航空航天大学 一种分布式云存储数据完整性保护方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101192924A (zh) * 2006-11-24 2008-06-04 北京大学 基于Reed-Solomon码的P2P存储系统编码方法
CN101488104A (zh) * 2009-02-26 2009-07-22 北京世纪互联宽带数据中心有限公司 一种实现高效安全存储的系统和方法
CN101834898A (zh) * 2010-04-29 2010-09-15 中科院成都信息技术有限公司 一种网络分布式编码存储方法
CN102624866A (zh) * 2012-01-13 2012-08-01 北京大学深圳研究生院 一种存储数据的方法、装置及分布式网络存储系统
CN102710757A (zh) * 2012-05-21 2012-10-03 北京航空航天大学 一种分布式云存储数据完整性保护方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
姜英豪.《基于RS和Chord的分布式存储系统的设计》.《中国优秀硕士学位论文全文数据库(信息科技辑)》.2011,(第S1期),第I137-35页(正文第19页). *
孙程.《基于纠删码的分布式存储系统的设计与实现》.《中国优秀硕士学位论文全文数据库(信息科技辑)》.2011,(第04期),第I137-24页(正文第6、10-11页). *
肖哲锋.《基于Erasure Code的高可用分布式存储系统的设计与实现》.《中国优秀硕士学位论文全文数据库(信息科技辑)》.2007,(第05期),第I137-30页(全文). *

Also Published As

Publication number Publication date
CN103034814A (zh) 2013-04-10

Similar Documents

Publication Publication Date Title
TWI737392B (zh) 電腦實現的用於由區塊鏈網路的區塊鏈節點在可信賴執行環境tee中處理區塊鏈資料的方法、通信共享區塊鏈資料的系統及用於通信共享區塊鏈資料的裝置
EP3769499B1 (en) Indexing and recovering encoded blockchain data
CN111902817A (zh) 基于共享节点和纠错编码的区块链数据存储
CA3098934C (en) Consenus of shared blockchain data storage based on error correction code
CN110800255A (zh) 更新区块链世界状态默克尔帕特里夏字典树子树
JP7025566B2 (ja) 許可型ブロックチェーンネットワークのための、誤り訂正コードに基づくブロックチェーンデータ記憶
EP3769217B1 (en) Prioritizing shared blockchain data storage
EP3769216B1 (en) Data security of shared blockchain data storage based on error correction code
CN103763362A (zh) 一种安全的分布式重复数据删除方法
CN111837117A (zh) 可信执行环境中基于纠错编码的共享区块链数据存储
CN111095210A (zh) 基于纠错编码存储共享的区块链数据
EP3794532B1 (en) Shared blockchain data storage based on error correction code
CN111095218A (zh) 基于纠错编码存储共享的区块链数据
CN111386519B (zh) 基于纠错码的动态区块链数据存储
CN103034814B (zh) 一种数据存取方法
Liu et al. BTDSI: A blockchain-based trusted data storage mechanism for Industry 5.0
Zhang et al. Research on the application of network coding technology in cloud storage and digital signature
CN114793237A (zh) 基于区块链技术的智慧城市数据共享方法、设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant