区块链隐私数据存证方法、系统及存储介质与流程

文档序号:17892088发布日期:2019-06-13 15:43阅读:255来源:国知局
区块链隐私数据存证方法、系统及存储介质与流程

本发明一般涉及电子数据存证领域,具体涉及区块链隐私数据存证方法、系统及存储介质。



背景技术:

目前企业信息交换与数据共享中,因为涉及到机密信息较多,有较大的经济价值,因此保证传输的文件不被篡改以及保证文件的发送人的身份有着重要的作用。在一些情况下,当企业的文件重要文件的传输,不仅需要保证文件的真实性,还需要对文件进行存证。

目前往往是通过第三方存证机构进行存证,使得存证的真实性受到第三方存证机构自身的安全性的影响。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种基于数字指纹的区块链隐私数据存证方法及系统,能够解决文件存证的真实性受到第三方存证机构自身的安全性的影响的问题。

第一方面,本发明提供了一种基于数字指纹的区块链隐私数据存证方法,包括如下步骤:

计算原始文件的信息摘要;

通过私钥对所述信息摘要签名;

上传签名过的信息摘要到区块链系统存储,使得与所述私钥对应的公钥能对信息摘要验签以验证所述原始文件。

第二方面,本发明提供了一种基于数字指纹的区块链隐私数据存证方法,包括如下步骤:

获取区块链系统存储的应用于原始文件的签名过的信息摘要;

通过对应于原始文件的公钥对所获取的信息摘要进行验签;

计算对比文件的信息摘要;

对比验签得到的信息摘要和对比文件的信息摘要,当两者相同时,将所述对比文件确定为原始文件。

第三方面,本发明提供了一种基于数字指纹的区块链隐私数据存证系统,包括:

摘要计算单元,用于计算原始文件的信息摘要;

摘要签名单元,用于通过私钥对所述信息摘要签名;

摘要上传单元,用于上传签名过的信息摘要到区块链系统存储,使得与所述私钥对应的公钥能对信息摘要验签以验证所述原始文件。

第四方面,本发明提供了一种基于数字指纹的区块链隐私数据存证系统,包括:

摘要获取单元,用于获取区块链系统存储的应用于原始文件的签名过的信息摘要;

摘要验签单元,用于通过对应于原始文件的公钥对所获取的信息摘要进行验签;

摘要计算单元,用于计算对比文件的信息摘要;

摘要对比单元,用于对比验签得到的信息摘要和对比文件的信息摘要,当两者相同时,将所述对比文件确定为原始文件。

第五方面,本发明提供了一种设备,包括:处理器、存储器和总线,其中,

所述处理器和所述存储器通过对所述总线完成相互间的通信;

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令执行上述任一项所述的方法。

第六方面,本发明提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使得所述计算机执行上述任一项所述的方法。

本发明提供的基于数字指纹的区块链隐私数据存证方法,通过对原始文件的摘要签名后存储到区块链系统,利用区块链系统的不易被篡改性保证签名的摘要真实性,再通过签名的摘要来保证原始文件的真实性。从而能够解决文件存证的真实性受到第三方存证机构自身的安全性的影响的问题。本发明还对应提供了基于数字指纹的区块链隐私数据存证系统。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本发明的实施例中一种基于数字指纹的区块链隐私数据存证方法的流程图;

图2为本发明的另一实施例中一种基于数字指纹的区块链隐私数据存证方法的流程图;

图3为本发明的实施例中一种基于数字指纹的区块链隐私数据存证系统的示意图;

图4为本发明的另一实施例中一种基于数字指纹的区块链隐私数据存证系统的示意图;

图5为本发明的实施例中一种计算机系统的示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

为了解决文件存证的真实性受到第三方存证机构自身的安全性的影响的问题,在本发明的一个实施例中,公开了一种基于数字指纹的区块链隐私数据存证方法,如图1所示,为本发明的实施例中一种基于数字指纹的区块链隐私数据存证方法的流程图,包括步骤:

s101.计算原始文件的信息摘要。信息摘要可以是多种形式的摘要,如整个文件的散列值(sha-256、sha-384、sha-512等等),或散列值的组合(不同散列值的直接连接等),可以通过多种散列算法得到原始文件的信息摘要。由文件发送方在发送原始文件之前或之后计算原始文件的信息摘要。其中,散列(散列算法)指的是把任意长度的输入(又叫做预映射)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间。

s102.通过私钥对所述信息摘要签名。文件发送方使用自己的私钥对原始文件的信息摘要进行签名。签名可以证明文件的真实性和所属者。

s103.上传签名过的信息摘要到区块链系统存储,使得与所述私钥对应的公钥能对信息摘要验签以验证所述原始文件。文件发送方将用自己的私钥签名过的摘要信息发送到区块链系统进行存储,从而使得文件接收方可以通过文件发送方的公钥对区块链系统中存储的签名过的摘要信息进行验签,并根据验签结果得到的信息摘要与接收到的对比文件的信息摘要进行比较,如一致,则可以确定对比文件的真实性(未被第三方修改也未被文件发送方修改)以及发送方的身份。其中,使用公钥进行验签的主要作用是验证原始文件的文件发送方的身份是否正确,而对比信息摘要的作用则是验证文件的真实性(文件完整且未被替换,是正确的文件)。文件发送方把原始文件通过其他途径(一般为加密渠道)发送给文件接收方,原始文件的保存方式没有限制,文件发送方可以把原始文件保存到自己的服务器,硬盘,闪存中,也可以放在云端服务器上。文件发送方式也没有限制,可以通过网络协议传输,或者线下邮寄等。

本发明提供的实施例通过对原始文件的摘要签名后存储到区块链系统,利用区块链系统的不易被篡改性保证签名的摘要真实性,再通过签名的摘要来保证原始文件的真实性。从而能够解决文件存证的真实性受到第三方存证机构自身的安全性的影响的问题。

为了与现有的加密系统兼容,增加基于数字指纹的区块链隐私数据存证方法的适用范围,在本发明的一个实施例中,所述公钥的公钥证书为x.509格式。x.509格式的公钥可以适用于大部分企业环境。所述私钥和所述公钥为通过openssl工具生成。由于openssl工具生成密钥(公钥和私钥)简单方便,方便在多种情况下使用。

为了充分利用区块链系统的存储空间,增加信息摘要的抗碰撞性,在本发明的一个施例例中,所述计算原始文件的信息摘要,包括步骤:

散列原始文件得到原始文件的散列值。散列值可以由任意常用的散列算法(如sha-256、sha-384、sha-512等等)得到;

散列原始文件的多个部分得到每一部分的散列值。可以将原始文件分成多个部分,如分成3个部分或4个部分,可以是均分切分也可以是不均匀切分,一般来说均匀切分的计算效率最高,然后对每一部分进行散列,得到每一部分的散列值。或者只选取原始文件的几个部分进行散列,如可以只取文件中一定长度的部分来计算散列值,比如一个1g的文件,分别选取0-1000字节、20000-21000字节和1000000-1001000字节三个部分,并对这三个部分分别做散列,由于做散列的文件小,所以计算更快,而且由于增加了散列的位置信息,同样可以增强抗碰撞性。一般来说,可以根据区块链系统中的可用空间来确定散列的方法和所述多个部分的数量,可用空间越大则可以用更强的散列算法或选取更多的文件部分进行散列,以使由原始文件的散列值、所述原始文件的多个部分在原始文件中的位置和每一部分的散列值确定为原始文件的信息摘要能够更充分的利用区块链系统的存储空间(例如使用比特币中的op_return区域作为存储空间,其存储空间大小为80字节)。

将原始文件的散列值、所述原始文件的多个部分在原始文件中的位置和每一部分的散列值确定为原始文件的信息摘要。所述信息摘要的大小一般要受限于区块链系统中的存储空间大小。

一种优选的解决方法是,将信息摘要分成多个部分,每一部分的大小适用于区块链系统中区块的存储空间的大小,将这多个部分的信息摘要分别签名后存储到区块链系统的不同区块中,用于文件接收方对接收到的文件进行验证。

本发明实施例提供的方法,通过散列原始文件的多个部分,并加入所述多个部分在原始文件中的位置信息,能够调整摘要信息的大小,从而可以充分利用区块链系统的存储空间以增加信息摘要的抗碰撞性。

为了加快散列原始文件的多个部分的速度,在本发明的一个实施例中,所述散列原始文件的多个部分得到每一部分的散列值,包括步骤:

将原始文件平均分为预设数量的文件片段。由于一般文件的文件头和文件尾可能会有特定的数据用来表示文件的格式和大小,因此该部分数据和其他文件更有可能相同,因此,通过平均切分文件,可以保证有文件内部的数据参与散列,避免散列值相同。

从每一文件片段的头部开始选取预设长度的数据片段。选取一小部分数据进行散列可以明显加快散列的速度,其中,预设长度不宜过长或过短,过长会导致散列时间边长,过短则会导致散列值没有区分度。可以选取1000字节或者10000字节作为预设长度。当每一文件片段小于预设长度时,将每一文件片段作为选取的数据片段。

散列所选取的每一数据片段得到每一部分的散列值。

本发明的实施例通过在原始文件中选取多个预设长度的数据片段进行散列,减少了散列数据的大小,能够加快散列原始文件的多个部分的速度。

在本发明的另一个实施例中,公开了一种基于数字指纹的区块链隐私数据存证方法,如图2所示,为本发明的另一实施例中一种基于数字指纹的区块链隐私数据存证方法的流程图,包括步骤:

s201.获取区块链系统存储的应用于原始文件的签名过的信息摘要。即文件接收方从区块链系统中获取应用于原始文件的签名过的信息摘要。

s202.通过对应于原始文件的公钥对所获取的信息摘要进行验签。文件接收方在获取信息摘要后,通过文件发送方的公钥对所获取的信息摘要进行验签,确定所获取的信息摘要的真实性和所属人。

s203.计算对比文件的信息摘要。文件接收方根据所获取的信息摘要的形式,计算接收到的对比文件的信息摘要。

s204.对比验签得到的信息摘要和对比文件的信息摘要,当两者相同时,将所述对比文件确定为原始文件。文件接收方将验签得到的信息摘要与对比文件的信息摘要进行对比,当两者相同时,即可认为接收到的对比文件即为文件发送方所要发送的原始文件,否则,接收到的对比文件为不完整的文件或遭到篡改的文件。

本发明提供的实施例通过对比存储于区块链系统中的签过名的信息摘要和接收到的对比文件的信息摘要的异同,能够确定接收到的文件的真实性(未被第三方修改也未被文件发送方修改)。通过区块链系统的不易被篡改性可以解决文件存证的真实性受到第三方存证机构自身的安全性的影响的问题。

在本发明的一个实施例中,公开了一种基于数字指纹的区块链隐私数据存证系统,如图3所示,为本发明的实施例中一种基于数字指纹的区块链隐私数据存证系统的示意图,包括:

摘要计算单元,用于计算原始文件的信息摘要;

摘要签名单元,用于通过私钥对所述信息摘要签名;

摘要上传单元,用于上传签名过的信息摘要到区块链系统存储,使得与所述私钥对应的公钥能对信息摘要验签以验证所述原始文件。

在本发明的一个实施例中,所述摘要计算单元,包括:

第一散列单元,用于散列原始文件得到原始文件的散列值;

第二散列单元,用于散列原始文件的多个部分得到每一部分的散列值;

摘要生成单元,用于将原始文件的散列值、所述原始文件的多个部分在原始文件中的位置和每一部分的散列值确定为原始文件的信息摘要。

在本发明的一个实施例中,所述第二散列单元,包括:

文件切分单元,用于将原始文件平均分为预设数量的文件片段;

数据片段选取单元,用于从每一文件片段的头部开始选取预设长度的数据片段;

数据片段散列单元,用于散列所选取的每一数据片段得到每一部分的散列值。

在本发明的另一个实施例中,公开了一种基于数字指纹的区块链隐私数据存证系统,如图4所示,为本发明的另一实施例中一种基于数字指纹的区块链隐私数据存证系统的示意图,包括:

摘要获取单元,用于获取区块链系统存储的应用于原始文件的签名过的信息摘要;

摘要验签单元,用于通过对应于原始文件的公钥对所获取的信息摘要进行验签;

摘要计算单元,用于计算对比文件的信息摘要;

摘要对比单元,用于对比验签得到的信息摘要和对比文件的信息摘要,当两者相同时,将所述对比文件确定为原始文件。

本发明的实施例及优选实施例所提供的一种基于数字指纹的区块链隐私数据存证系统,可以执行上述方法的实施例,其实现原理和技术效果类似,在此不再赘述。

在本发明的一个实施例中,公开了一种计算机系统,如图5所示,为本发明的实施例中一种计算机系统的示意图,包括:中央处理单元(cpu)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储部分加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram503中,还存储有系统操作所需的各种程序和数据。cpu501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。

以下部件连接至i/o接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分;包括硬盘等的存储部分508;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至i/o接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。

特别地,根据本发明的实施例,上文参考流程图1和图2所描述的过程可以被实现为计算机软件程序。例如,本发明的实施例中包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(cpu)501执行时,执行本申请的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例中的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括摘要计算单元、摘要签名单元、摘要上传单元。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,摘要签名单元还可以被描述为“用于通过私钥对所述信息摘要签名的摘要签名单元”。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的基于数字指纹的区块链隐私数据存证方法。

例如,所述电子设备可以实现如图1中所示的步骤:s101.计算原始文件的信息摘要;s102.通过私钥对所述信息摘要签名;s103.上传签名过的信息摘要到区块链系统存储,使得与所述私钥对应的公钥能对信息摘要验签以验证所述原始文件。又如,所述电子设备可以实现如图2中所示的步骤:s201.获取区块链系统存储的应用于原始文件的签名过的信息摘要;s202.通过对应于原始文件的公钥对所获取的信息摘要进行验签;s203.计算对比文件的信息摘要;s204.对比验签得到的信息摘要和对比文件的信息摘要,当两者相同时,将所述对比文件确定为原始文件。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1