发明内容
本发明要解决的技术问题是:目前缺乏将电子数据实时存证的技术方案的问题。提出了一种基于区块链的电子数据实时存证系统及方法,本系统及方法能够几乎实时的将电子设备产生的运行数据立即存证,有效提高了电子数据的可信度。
为解决上述技术问题,本发明所采取的技术方案为:一种基于区块链的电子数据实时存证系统,本系统安装于电子设备中,将电子设备的运行数据实时存证,所述电子设备具有唯一的编号,包括:
数据缓冲模块,电子设备运行数据的增量电子数据被实时写入数据缓冲模块,数据缓冲模块具有若干个数据缓冲区;
数据存证模块,与数据缓冲模块连接,当数据缓冲模块的缓冲区被写满时取出其中的电子数据,关联电子设备的编号及时间戳作为数据块,将数据块及上一个数据块的哈希值一起提取哈希值,存储所提取的哈希值;
上链模块,与数据存证模块连接,以预设的周期,将周期内所述数据存证模块产生的全部哈希值打包为存证包,提取存证包的哈希值,将存证包的哈希值关联编号及时间戳后上传到区块链存储,获得区块链返回的区块高度和区块哈希值;
数据存储模块,与数据存证模块及上链模块连接,获得并以线性存储方式存储数据块、哈希值、存证包、区块高度以及区块哈希值,完成电子数据的存证。
作为优选,还包括锚点生成模块,所述锚点生成模块与数据存储模块连接,所述锚点生成模块在存档存储区紧随已被使用空间之后建立锚点,所述锚点占用预设长度的存储空间,将锚点和上一个锚点之间存储的数据块、哈希值以及上一个锚点哈希值一起提取哈希值,作为锚点哈希值,建立猜测值,使锚点哈希值和猜测值的哈希值满足预设工作量证明条件,将锚点哈希值和猜测值写入锚点占用的存储空间内,在获得满足条件的猜测值期间,数据存储模块存入了新的数据,此时所述锚点生成模块再次在已被使用的存储空间的末尾建立锚点,并再次尝试获得满足工作量证明的猜测值,所述上链模块产生存证包时,将锚点哈希值加入存证包。
作为优选,还包括交叉锚定模块,所述电子设备与其他电子设备建立通信连接,所述交叉锚定模块在所述锚点生成模块产生锚点哈希值后,将锚点哈希值关联电子设备的编号及时间戳后,发送给若干个其他电子设备的交叉锚定模块,其他电子设备的交叉锚定模块收到锚点哈希值后,将收到的锚点哈希值、编号和时间戳存储在已使用存储空间之后,所述的其他电子设备在随后生成锚点哈希值时,将锚点哈希值及锚点哈希值产生的时间戳反馈给所述电子设备,所述电子设备收到所述的其他电子设备反馈的锚点哈希值及锚点哈希值产生的时间戳时,将收到的所述的其他电子设备反馈的锚点哈希值、锚点哈希值产生的时间戳及所述的其他电子设备的编号存储到对应锚点占用的存储空间内。
作为优选,所述电子设备连接数据服务器,所述数据存储模块划分有至少两块存储区,当存储区内数据存储量达到设定值时,所述数据存储模块将其存储的数据上传到数据服务器,而后将存储区清空以供再次使用。
作为优选,还包括备份存储模块,所述备份存储模块与数据存储模块连接,所述数据存储模块存入数据时制作数据的副本发送至所述备份存储模块;
所述备份存储模块包括数据接收单元和若干个数据存储单元,所述数据接收单元与所述数据存储模块连接,接收数据存储单元发送的数据,若干个所述数据存储单元均与数据接收单元连接,所述数据存储单元将其存储空间划分出预设大小的空间段,为所述空间段建立地址表,所述地址表记录空间段的真实地址及指代地址,指代地址和真实地址一一对应,所述指代地址为十六进制数,所述数据存储单元将指代地址发送给数据接收单元,所述数据接收单元将数据存储单元发送的数据划分为与空间段长度匹配的数据段,赋予数据段唯一标识,为数据段分配指代地址并将数据段和指代地址发送给数据存储单元,而后将数据段唯一标识与对应的指代地址关联存储,所述数据存储单元收到数据段和指代地址后,将数据段存入所述指代地址对应的空间段,使用变换函数将所述指代地址进行变换并更新地址表,所述数据接收单元和数据存储单元约定若干个变换函数,所述数据存储单元从约定的若干个变换函数中随机选取一个变换函数对所述指代地址进行变换;读取数据时,所述数据接收单元将数据段对应的指代地址进行变换,将变换后的指代地址发送给数据存储单元,若数据存储单元能够从地址表中找到所述变换后的指代地址,则将对应真实地址的空间段内的数据反馈给所述数据接收单元,所述数据接收单元遍历全部变换函数,能够确保读取出数据段,所述数据接收单元读取出全部数据段时,即读取出完整的数据。
一种基于区块链的电子数据实时存证方法,使用如前述的一种基于区块链的电子数据实时存证系统,包括:
将增量电子数据写入数据缓冲区,若干个数据缓冲区轮流使用;
当数据缓冲区被写满时,取出其中的电子数据,关联分配的唯一的编号及时间戳作为数据块,将数据块及上一个数据块的哈希值一起提取哈希值,将数据块及所提取的哈希值存储在临时存储区;
达到预设的周期时,将临时存储区内存储的全部哈希值打包为存证包,提取存证包的哈希值,将存证包的哈希值关联编号及时间戳后上传到区块链存储,获得区块链返回的区块高度和区块哈希值;
将临时存储区内的数据块、对应的哈希值、存证包、区块高度以及区块哈希值按产生时间顺序排列,以线性存储方式存储在存档存储区。
作为优选,还包括以下步骤:在存档存储区的起始位置设置锚点,所述锚点占据预设长度的存储空间,所述锚点存储预设的随机数作为锚点哈希值,等待预设时长;
在存档存储区已被使用存储空间之后建立锚点,将锚点和上一个锚点之间存储的数据块、哈希值以及上一个锚点哈希值一起提取哈希值,作为当前锚点的锚点哈希值;
建立猜测值,使锚点哈希值与猜测值的提取哈希值满足预设工作量证明条件,将锚点哈希值和猜测值写入锚点占用的存储空间内;
在获得满足条件的猜测值期间,数据存储模块存入了新的数据,此时再次在已被使用的存储空间的末尾建立锚点,并再次尝试获得满足工作量证明的猜测值;
达到预设的周期时,将周期内存储的全部哈希值及锚点哈希值打包入存证包。
作为优选,当锚点哈希值产生后,将锚点哈希值关联编号,发送给若干个其他电子设备;
所述的其他电子设备将收到的锚点哈希值、编号和时间戳存储在已使用存储空间之后;
所述的其他电子设备在随后生成锚点哈希值时,将锚点哈希值及锚点哈希值产生的时间戳反馈给所述电子设备;
所述电子设备收到所述的其他电子设备反馈的锚点哈希值及锚点哈希值产生的时间戳时,将收到的所述的其他电子设备反馈的锚点哈希值、锚点哈希值产生的时间戳及所述的其他电子设备的编号存储到对应锚点占用的存储空间内。
作为优选,当所述存档存储区内的数据存储量达到预设值时,提取存档存储区存储数据的哈希值;
将存档存储区内的数据上传到数据服务器,并重置所述存档存储区;
在重置后的所述存档存储区的开头设置锚点,将提取获得的存档存储区存储数据的哈希值写入所述的锚点。
本发明的实质性效果是:1)通过将数据输入缓冲区,并在缓冲区被写满时即将缓冲区内存储数据及上一次获得哈希值一起提取哈希值,在电子设备本地即形成哈希值链,上传区块链前即达到了大幅提高了篡改数据的难度的效果,有力提升了电子设备的运行数据的可信度;2)通过工作量证明,进一步大幅提高了对电子数据篡改的难度,使事后更改电子数据而不留痕迹几乎不可能完成,进一步提高了电子数据的可信度;3)通过交叉锚定,在电子设备之间形成哈希值网,攻破和修改一个电子设备不能无痕迹的修改电子数据,为电子数据的真实性提供了可靠保证;4)通过将数据存储到数据服务器和备份存储模块,提高了电子数据的安全性,避免电子数据的丢失损毁,提高了电子数据安全性。
具体实施方式
下面通过具体实施例,并结合附图,对本发明的具体实施方式作进一步具体说明。
实施例一:
一种基于区块链20的电子数据实时存证系统,本系统安装于电子设备中,将电子设备的运行数据实时存证,电子设备具有唯一的编号,请参阅附图1,本实施例包括:
数据缓冲模块11,电子设备运行数据的增量电子数据被实时写入数据缓冲模块11,数据缓冲模块11具有若干个数据缓冲区。若干个数据缓冲区交叉使用,对于实时产生的数据流,能够不遗漏的接收数据,保证电子数据接收的流畅和完整。
数据存证模块12,与数据缓冲模块11连接,当数据缓冲模块11的缓冲区被写满时取出其中的电子数据,关联电子设备的编号及时间戳作为数据块102,将数据块102及上一个数据块102的哈希值一起提取哈希值,存储所提取的哈希值。将数据块102和上一个数据块102的哈希值一起提取哈希值作为当前数据块102的哈希值,形成了哈希值的连接,随着时间的推移,恶意修改数据块102中的内容,会导致其后的全部数据块102的哈希值都发生改变,需要全部重新提取哈希值,给恶意修改数据块102带来极高的算力成本。且缩小数据缓冲区的存储空间,更为频繁的生成数据块102,以更为频繁的产生数据块102的哈希值,并不会给实时存证系统带来明显的运算压力,但能够大幅提高数据恶意修改的成本。如表1所示,本实施例用于视频监控设备的监控数据的实时存证,将每3分钟产生的视频监控文件作为数据块102,提取数据块102的哈希值。本实施例采用SHA265函数进行哈希值的提取。
表1 本实施例产生的数据块102和数据块102的哈希值
数据块102 |
数据块哈希值103 |
数据块10250:视频监控50.cif|6002352|1620832032 |
4a43ba7fb761410119b894ead1fdb213033a2afa7760d12c1e363aa6f23ced46 |
数据块10251:视频监控51.cif|6002352|1620832211 |
77e1ef41a3b1c90b55225b06bc8944b27f9b9fe376f56ad95f626a752076609a |
数据块10252:视频监控52.cif|6002352|1620832395 |
e02be95b03a4dabe0a386803fe1dffe709fe66e333c35ed0287393535164bd37 |
数据块10253:视频监控53.cif|6002352|1620832575 |
2f31338125b5e8bb1795ca33c49bb5ee202bd5f9bd53f3a93ea0c44fae0a664b |
… |
… |
上链模块14,与数据存证模块12连接,以预设的周期,将周期内数据存证模块12产生的全部哈希值打包为存证包104,提取存证包104的哈希值,将存证包104的哈希值关联编号及时间戳后上传到区块链20存储,获得区块链20返回的区块高度和区块哈希值。将周期内的数据存证模块12产生的全部哈希值打包成存证包104,并将存证包104的哈希值上传到区块链20后,即能够保证存证包104内的数据不能被无痕迹的修改。本实施例的周期为9分钟,即每产生3个数据块102,进行上链处理。本实施例所指周期并非严格时间上的9分钟周期,而是以数据块102数量为周期,即3个数据块102为一个周期。如表2所示,为本实施例在第18个周期时产生的存证包104的内容,即包含了数据块10251至数据块10253的哈希值,将这些数据一起使用SHA256提取哈希值,获得存证包104的哈希值为:561a6461be8123d9ca0a4f225e0ad649d34bae483d2df9fb1eb4b97d402c0dc4,将该哈希值关联电子设备的编号6002352和对应的时间戳1620832595,即将数据:“561a6461be8123d9ca0a4f225e0ad649d34bae483d2df9fb1eb4b97d402c0dc4|6002352|1620832595”上传到区块链20存储。从区块链20获得反馈的区块高度和区块哈希值。将其存入数据存储模块13。
表2 第18个周期所产生的存证包104包含的内容
77e1ef41a3b1c90b55225b06bc8944b27f9b9fe376f56ad95f626a752076609a |
e02be95b03a4dabe0a386803fe1dffe709fe66e333c35ed0287393535164bd37 |
2f31338125b5e8bb1795ca33c49bb5ee202bd5f9bd53f3a93ea0c44fae0a664b |
数据存储模块13,与数据存证模块12及上链模块14连接,获得并以线性存储方式存储数据块102、哈希值、存证包104、区块高度以及区块哈希值,完成电子数据的存证。如表3所示,为第18个周期所产生的数据。
表3 第18个周期内数据存储模块13存储的内容
数据块10251 |
哈希值51 |
数据块10252 |
哈希值52 |
数据块10253 |
哈希值53 |
存证包10418 |
存证包哈希值10518|区块高度|区块哈希值 |
锚点101 |
锚点生成模块16,锚点生成模块16与数据存储模块13连接,锚点生成模块16在存档存储区紧随已被使用空间之后建立锚点101,锚点101占用预设长度的存储空间,将锚点101和上一个锚点101之间存储的数据块102、哈希值以及上一个锚点哈希值一起提取哈希值,作为锚点哈希值,建立猜测值,使锚点哈希值和猜测值的哈希值满足预设工作量证明条件,将锚点哈希值和猜测值写入锚点101占用的存储空间内,在获得满足条件的猜测值期间,数据存储模块13存入了新的数据,此时锚点生成模块16再次在已被使用的存储空间的末尾建立锚点101,并再次尝试获得满足工作量证明的猜测值,上链模块14产生存证包104时,将锚点哈希值加入存证包104。由于在区块链20上存储数据,需要支付相应费用,若频繁的将存证包104的哈希值上链存储,虽然能提高电子数据的可信度,但同时也抬高了电子数据存证的成本。尤其是在有大量设备同时运行的情况下,会带来成本过高的问题。
工作量证明(Proof-of-Work,PoW)是一种对应服务与资源滥用、或是阻断服务攻击的经济对策。一般是要求用户进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。工作量证明最常用的技术原理是散列函数。由于输入散列函数hash()的任意值n,会对应到一个hash(n)结果,而n只要变动一个比特,就会引起雪崩效应,所以几乎无法从hash(n)反推回n,因此借由指定查找hash(n)的特征,让用户进行大量的穷举运算,就可以达成工作量证明。比如若指定16进制值的哈希值的前4位必须为0,求满足哈希值的前4位为0的n。这种运算的统计学平均穷举次数约要运行2的16次方次hash(n)散列运算,才会得到答案,但验算只要进行一次就可以了。通过工作量证明,能够大幅延长恶意修改数据时,抹去修改痕迹所需要的时间,通过建立锚点生成模块16,在数据块102之间填入锚点101,并在锚点101中填入符合预设工作量证明条件的随机数,当数据块102内的内容被恶意修改时,修改者不仅需要更新每个数据块102的哈希值,还需要更新被修改的数据块102之后的每个锚点101内的内容,即使被修改的数据块102还没有被打包入存证包104,也已经具有了很高的抗修改性,对其恶意修改会带来非常高的算力成本,且不能保证修改能够在多长的时间内完成,大幅提高了恶意修改数据块102的风险成本。
为方便锚点101的定位,本实施例中锚点生成模块16总是在某个周期的末尾之后添加锚点101。在第1个周期之前添加的锚点101为初始锚点101,而后在第18个周期之后添加了第二个锚点101。第二个锚点101记录了一个哈希值,该哈希值为从第1个周期开始,直到第18个周期内的全部数据提取获得的哈希值,记为锚点哈希值。而后锚点101还记录了一个猜测值,猜测值和锚点哈希值一起提取获得哈希值的前5位取值为0,每个猜测值满足前5位取值为0的概率为1/1048576。能够足够提高篡改数据的难度。尤其是篡改数据跨越多个锚点101时。
交叉锚定模块17,电子设备与其他电子设备建立通信连接,交叉锚定模块17在锚点生成模块16产生锚点哈希值后,将锚点哈希值关联电子设备的编号及时间戳后,发送给若干个其他电子设备的交叉锚定模块17,其他电子设备的交叉锚定模块17收到锚点哈希值后,将收到的锚点哈希值、编号和时间戳存储在已使用存储空间之后,的其他电子设备在随后生成锚点哈希值时,将锚点哈希值及锚点哈希值产生的时间戳反馈给电子设备,电子设备收到的其他电子设备反馈的锚点哈希值及锚点哈希值产生的时间戳时,将收到的的其他电子设备反馈的锚点哈希值、锚点哈希值产生的时间戳及的其他电子设备的编号存储到对应锚点101占用的存储空间内。将锚点101内的锚点哈希值与其他电子设备之间进行交叉存储,并记录交叉存储其锚点哈希值的电子设备编号,能够从其他电子设备的对应时间内的存储数据内找到相应的锚点哈希值。从而使得即使成功的修改了本电子设备的存储数据,也会因交叉锚定而暴露修改痕迹。同时控制并修改多个电子设备的存储数据成本将是十分高昂的,从而使得电子数据在未被上链前,就可以形成几乎不可被修改的可信度。请参阅附图2,为数据存储模块13存储的数据的结构示意图。本实施例提供的方案能够降低上链存储的频率,从而降低电子数据存证的成本,并同时保证了电子数据存证的可信度,适合大量投入使用的且产生大量运行数据的电子设备的数据的实施存证。如表4记载了位于第18个周期后的锚点101内存储的内容,第二个锚点101内存储了3个其他设备的编号、锚点哈希值及时间戳,即在产生第二个锚点101时,本电子设备将锚点哈希值发生给了3个其他电子设备,进行交叉锚定。第二个锚点101所占用的存储空间还存在部分空间未被使用。
表4 位于第18个周期后的锚点101内存储的内容
锚点哈希值 |
猜测值 |
编号1|锚点哈希值1|时间戳1 |
编号2|锚点哈希值2|时间戳2 |
编号3|锚点哈希值3|时间戳3 |
NULL |
电子设备连接数据服务器30,数据存储模块13划分有至少两块存储区,当存储区内数据存储量达到设定值时,数据存储模块13将其存储的数据上传到数据服务器30,而后将存储区清空以供再次使用。
一种基于区块链20的电子数据实时存证方法,请参阅附图3,包括:
步骤A)将增量电子数据写入数据缓冲区,若干个数据缓冲区轮流使用;
步骤B)当数据缓冲区被写满时,取出其中的电子数据,关联分配的唯一的编号及时间戳作为数据块102;
步骤C)将数据块102及上一个数据块102的哈希值一起提取哈希值,将数据块102及所提取的哈希值存储在临时存储区;
步骤D)达到预设的周期时,将临时存储区内存储的全部哈希值打包为存证包104,提取存证包104的哈希值,将存证包104的哈希值关联编号及时间戳后上传到区块链20存储,获得区块链20返回的区块高度和区块哈希值;
步骤E)将临时存储区内的数据块102、对应的哈希值、存证包104、区块高度以及区块哈希值按产生时间顺序排列,以线性存储方式存储在存档存储区。
请参阅附图4,生成锚点101的方法包括:
步骤F1)在存档存储区的起始位置设置锚点101,锚点101占据预设长度的存储空间,锚点101存储预设的随机数作为锚点哈希值,等待预设时长;
步骤F2)在存档存储区已被使用存储空间之后建立锚点101,将锚点101和上一个锚点101之间存储的数据块102、哈希值以及上一个锚点哈希值一起提取哈希值,作为当前锚点101的锚点哈希值;
步骤F3)建立猜测值,使锚点哈希值与猜测值的提取哈希值满足预设工作量证明条件,将锚点哈希值和猜测值写入锚点101占用的存储空间内;
在获得满足条件的猜测值期间,数据存储模块13存入了新的数据,此时再次在已被使用的存储空间的末尾建立锚点101,并再次尝试获得满足工作量证明的猜测值;
达到预设的周期时,将周期内存储的全部哈希值及锚点哈希值打包入存证包104。
请参阅附图5,进行交叉锚定的方法包括:
步骤G1)当锚点哈希值产生后,将锚点哈希值关联编号,发送给若干个其他电子设备;
步骤G2)其他电子设备将收到的锚点哈希值、编号和时间戳存储在已使用存储空间之后;
步骤G3)其他电子设备在随后生成锚点哈希值时,将锚点哈希值及锚点哈希值产生的时间戳反馈给电子设备;
步骤G4)电子设备收到的其他电子设备反馈的锚点哈希值及锚点哈希值产生的时间戳时,将收到的的其他电子设备反馈的锚点哈希值、锚点哈希值产生的时间戳及的其他电子设备的编号存储到对应锚点101占用的存储空间内。
为方便数据的汇集,本实施例还设置了数据服务器30。当存档存储区内的数据存储量达到预设值时,提取存档存储区存储数据的哈希值,将存档存储区内的数据上传到数据服务器30,并重置存档存储区,在重置后的存档存储区的开头设置锚点101,将提取获得的存档存储区存储数据的哈希值写入的锚点101。虽然数据被写入了数据服务器30,但数据之间存在的哈希值链接关系并未被改变,因而上传到数据服务器30的电子数据同样具有非常高的抗修改性,且具有上传到区块链20的存证包哈希值105,能够证明数据的真实性。
本实施例应用在网络监控摄像头中,将网络监控摄像头产生的监控视频数据实时的进行存证。
具体过程包括:
为每个网络摄像头分配编号,如编号为6002352的网络摄像头,在监控过程中其不间断的产生监控视频数据,即待存证的电子数据,将不间断产生的监控视频数据输入到数据缓冲区,但一个数据缓冲区被写满时,输入到另一个数据缓冲区,被写满的数据缓冲区内的数据被数据存证模块12取出,取出后重置数据缓冲区,从而轮流使用两个数据缓冲区,不间断的读取网络摄像头的监控视频数据。
数据存证模块12取出数据缓冲区内的视频监控数据后,将视频监控数据关联网络摄像头的编号6002352以及当前时间戳关联后,作为数据块102,提取数据块102的哈希值。将数据块102和数据块102的哈希值存储起来。
当产生三个数据块102时,到达存证周期,将三个数据块102的哈希值打包为存证包104,将存证包104存储,并将存证包104的哈希值与编号6002352及时间戳,上传到区块链20存储,获得区块链20反馈的当前区块高度和区块哈希值,将存证包哈希值105、区块高度以及区块哈希值存储起来。
当完成第18个存证包104的获取和存储时,在其后设置锚点101,锚点101占用预设长度的存储空间,锚点101记录了一个哈希值,该哈希值为从第1个周期开始,直到第18个周期内的全部数据提取获得的哈希值,记为锚点哈希值。锚点101还存储了一个猜测值,猜测值和锚点哈希值一起提取获得哈希值的前5位取值为0,每个猜测值满足前5位取值为0的概率为1/1048576,因而需要锚点生成模块16进行大量的穷举猜测。
当产生锚点哈希值后,将锚点哈希值发送给任意的其他网络摄像头,本实施例的第二个锚点101发送给了3个其他的网络摄像头,并在收到3个其他网络摄像头反馈回来的编号、锚点哈希值及时间戳后,将其填入锚点101占用的存储空间内。本实施例中锚点101占用的存储空间还剩余一段未使用,若参与交叉锚定其他的网络摄像头较多,则丢弃无法完整存储的网络摄像头反馈的编号、锚点哈希值及时间戳。
当数据存储模块13的存储空间将要被用完时,数据存储模块13将其内存储的数据上传到数据服务器30,腾出相应的空间循环使用。
本实施例的有益技术效果是:将电子设备实时产生的运行数据输入缓冲区,并在缓冲区被写满时即将缓冲区内存储数据及上一次获得哈希值一起提取哈希值,在电子设备本地即形成哈希值链,上传区块链20前即达到了大幅提高了篡改数据的难度的效果,有力提升了电子设备的运行数据的可信度。
附加了工作量证明,进一步大幅提高了对电子数据篡改的难度,使事后更改电子数据而不留痕迹几乎不可能完成。再结合交叉锚定技术,在电子设备之间形成哈希值网,攻破和修改一个电子设备不能无痕迹的修改电子数据,为电子数据的真实性提供了可靠保证。将数据存储到数据服务器30和备份存储模块15,提高了电子数据的安全性,避免电子数据的丢失损毁,使电子设备不需要配备大容量的存储设备,降低电子设备的运行成本。
实施例二:
一种基于区块链20的电子数据实时存证系统,本实施例在实施例一的基础上增加了备份存储模块15,以进一步提高电子数据的安全性,避免电子数据的丢失。请参阅附图6,备份存储模块15与数据存储模块13连接,数据存储模块13存入数据时制作数据的副本发送至备份存储模块15。
备份存储模块15的工作方法包括:
步骤E1)备份存储模块15包括数据接收单元151和若干个数据存储单元152,数据接收单元151与数据存储模块13连接,接收数据存储单元152发送的数据,若干个数据存储单元152均与数据接收单元151连接,数据存储单元152将其存储空间划分出预设大小的空间段,为空间段建立地址表,地址表记录空间段的真实地址及指代地址,指代地址和真实地址一一对应,指代地址为十六进制数,数据存储单元152将指代地址发送给数据接收单元151。如表5所示,为本实施例中数据存储单元152建立的地址表。
表5 数据存储单元152建立的地址表
指代地址 |
真实地址 |
1A25C512H |
(62,13,8) |
5DC4250EH |
(62,13,9) |
6A586EF1H |
(62,13,10) |
… |
… |
步骤E2)数据接收单元151和数据存储单元152约定若干个变换函数。变换函数双方约定一致即可,对其形式无任何约束,如按位取反、按位循环左移/右移、仅取前32位、丢弃最后4位、将最后8位向前挪移16位、最后8位取反或与一个预设值按位异或。只要双方约定一致,即可保证能够获得正确的变换结果。将指代地址更新后,原指代地址将不能操作任何数据,数据接收单元151以原指代地址进行读取、修改或删除操作,都不会产生任何实际数据的变化,从而使得备份存储模块15具有极高的安全性。
步骤E3)数据接收单元151将数据存储单元152发送的数据划分为与空间段长度匹配的数据段,赋予数据段唯一标识。
步骤E4)为数据段分配指代地址并将数据段和指代地址发送给数据存储单元152,而后将数据段唯一标识与对应的指代地址关联存储。
步骤E5)数据存储单元152收到数据段和指代地址后,将数据段存入指代地址对应的空间段。
步骤E6)使用变换函数将指代地址进行变换并更新地址表,数据接收单元151和数据存储单元152约定若干个变换函数,数据存储单元152从约定的若干个变换函数中随机选取一个变换函数对指代地址进行变换。如表6所示,真实地址对应的存储空间被存入数据后,相应的指代地址即被变换。表6中可见同样的真实地址,其指代地址已发生变化。使得数据接收单元151无法再对数据存储单元152的数据进行读取、修改和删除,从而保护了数据的安全。
表6 数据存储单元152进行变换后的地址表
指代地址 |
真实地址 |
25C512H |
(62,13,8) |
9AE4250EH |
(62,13,9) |
6E6A58F1H |
(62,13,10) |
… |
… |
步骤E7)读取数据时,数据接收单元151将数据段对应的指代地址进行变换,将变换后的指代地址发送给数据存储单元152。
步骤E8)若数据存储单元152能够从地址表中找到变换后的指代地址,则将对应真实地址的空间段内的数据反馈给数据接收单元151。数据存储单元152仅将其地址表中存在的指代地址对应的数据反馈给数据接收单元151。
步骤E9)数据接收单元151遍历全部变换函数,能够确保读取出数据段,数据接收单元151不断重复,读取出全部数据段时,即能够读取出完整的数据。其余步骤同实施例一。
相对于实施例一,本实施例在电子设备处配备了能够快速写入,但读取却十分缓慢的备份存储模块15,使得对备份存储模块15的读取、修改或删除,都会十分缓慢。当约定的变换函数足够多时,或者数据段足够短,会导致对备份存储模块15的修改需要消耗极大的算力和时间成本,从而能够有效的保护电子数据的安全。当数据服务器30上的电子数据丢失时,通过备份存储模块15虽然缓慢,但能够复原出数据,从而提供最为真实的电子设备运行产生的电子数据,助于事后查证。
以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。