掌桥专利:专业的专利平台
掌桥专利
首页

一种联盟链数据快速加密存储方法

文献发布时间:2023-06-19 11:29:13


一种联盟链数据快速加密存储方法

技术领域

本发明涉及区块链技术领域,具体涉及一种联盟链数据快速加密存储方法。

背景技术

联盟链是只针对某个特定群体的成员和有限的第三方,其内部指定多个预选节点为记账人,每个块的生成由所有的预选节点共同决定。其他接入节点可以参与交易,但不过问记账过程。第三方可以通过该区块链开放的API进行限定查询。为了获得更好的性能,联盟链对于共识或验证节点的配置和网络环境有一定要求。有了准入机制,可以使得交易性能更容易提高,避免由参次不齐的参与者产生的一些问题。联盟链使用的主要群体是银行、保险、证券、商业协会、集团企业及上下游企业。这些行业都有这较高的数据保密需求,因而需要对联盟链节点的数据安全进行管控。目前联盟链节点的存储采用落盘加密的方式进行联盟链数据的保密,避免联盟链数据被泄露到联盟链之外。落盘加密采用KeyManager来管理加密数据的访问权限。Key Manager是部署在机构内网内,专门管理节点硬盘数据访问秘钥的服务,外网无法访问。然而目前的落盘加密技术仅涉及联盟链节点和Key Manager两方,当两方合伙作恶时能够轻易将联盟链数据泄露出去。因而联盟链数据的安全性还有待提高。

中国专利CN110083757A,公开日2019年8月2日,一种基于联盟链网络的异常数据存取与查询方法、系统,涉及区块链领域,包括:通过终端上传异常数据至服务器,服务器对异常数据进行计算生成异常数据摘要,连同服务器标识生成键值对,并将键值对存储至联盟链网络中。当其他节点想要查询异常数据时发送数据请求信息给该服务器,该服务器通过链下安全信道传输异常数据至其他节点,从而解决了多方参与监控场景下多个参与方的信任问题以及无法通过异常数据定位异常原因的问题。但其技术方案仍然有可能带来联盟链数据的泄露。

发明内容

本发明要解决的技术问题是:目前联盟链中的数据存在泄露隐患的技术问题。提出了一种联盟链数据快速加密存储方法,本方法能够有效避免联盟链数据泄露到外网环境,保护联盟链数据的安全。

为解决上述技术问题,本发明所采取的技术方案为:一种联盟链数据快速加密存储方法,包括存储监听节点、读取监听节点和若干个数据存取节点,若干个所述数据存取节点向存储监听节点提交若干个映射地址,所述数据存取节点存储有映射地址对应的真实地址,所述存储监听节点将映射地址关联数据存取节点标识后打乱顺序并编号后作为地址条目;所述存储监听节点将所述编号以及数据存取节点标识发送给所述读取监听节点保存;联盟链节点将数据提交给所述存储监听节点,所述存储监听节点分配唯一数据标识并关联数据所有者标识,所述存储监听节点将所述数据拆分成若干个子数据,子数据的大小等于预设的值,所述存储监听节点从地址条目中选择与子数据的数量相同的地址条目,将子数据、映射地址、唯一数据标识以及数据所有者标识发送给对应的数据存取节点,所述数据存取节点将子数据存入映射地址对应的真实地址,所述数据存取节点将真实地址、唯一数据标识以及数据所有者标识关联建立存储索引,所述存储监听节点将数据分配到的编号、唯一数据标识以及数据所有者标识发送给所述读取监听节点保存;当联盟链中的节点需要读取数据时,将分配到的唯一数据标识以及编号发送给所述读取监听节点,所述读取监听节点验证数据所有者标识后,根据编号将唯一数据标识发送给对应的数据存取节点,所述数据存取节点根据存储索引将对应的子数据发送给所述读取监听节点,所述读取监听节点集齐子数据后将数据发送给联盟链节点。联盟链节点将数据提交给所述存储监听节点前,使用自己的公钥加密所述数据。通过将存储和读取分别单独设置存储监听节点和读取监听节点,降低了存储监听节点和读取监听节点的功能权限,数据的进出需要通过相应通道,对数据的进出流转进行了限制,同时又不影响数据的存储效率。通过本技术方案存储的数据,在每个联盟链节点中均有子数据被存储,因而必须要处于联盟链内网环境中才能复原完整的数据,有效保障了联盟链敏感数据不被泄露到外网。

作为优选,所述映射地址为所述数据存取节点生成的随机码,所述真实地址指向大小等于预设的存储空间,所述数据存取节点周期性在其存储空间中预分配若干个存储块,所述存储块大小等于预设,为每个所述的存储块关联一个随机码,所述随机码即为映射地址,将随机码作为映射地址条目,周期性将映射地址条目提交给所述存储监听节点。在数据存取节点空闲时产生映射地址并预先开辟好存储空间,待需要存储数据时,可以直接分配映射地址,快速找到预设的存储空间,完成数据的存储,因为映射地址不能用于数据的读取,想要读取数据则需要映射地址对应的唯一数据标识以及编号发送给读取监听节点才能完成数据的读取。由于数据读取最终由数据存取节点根据规则验证后执行,因而即使存储监听节点及读取监听节点作恶,也无法使联盟链数据外泄。

作为优选,所述数据存取节点根据存储索引读取对应的子数据前验证数据所有者标识,所述数据所有者标识为所述联盟链节点使用其私钥签名的节点标识,若使用所述联盟链节点的公钥能够验证出节点标识,则验证通过,若验证不通过则拒绝提供数据。验证数据所有者标识,仅允许数据所有者进行数据的解密复原,保障数据所有者对数据的使用权,提高数据的安全性。

作为优选,所述存储监听节点将使用后的地址条目删除,所述数据存取节点将使用后的映射地址删除。映射地址使用一次后即销毁,能够进一步提高数据的安全性。

作为优选,所述数据存取节点在预设的空闲时段从其存储空间中预分配若干个存储块并关联随机码。所述数据存取节点空闲时段完成存储空间的分配和随机码关联,降低数据的加密存储对联盟链运行效率的影响。

作为优选,所述联盟链节点在预设的空闲时段通过投票选举产生存储监听节点和读取监听节点,并在所述存储监听节点产生后,向所述存储监听节点提交映射地址,联盟链节点将数据提交给所述存储监听节点后,记录当前读取监听节点的标识,当需要读取数据时,将分配到的唯一数据标识以及编号发送给所记录的读取监听节点的标识对应的联盟链节点。通过选举完成存储监听节点和读取监听节点的设立,保证了联盟链节点之间的地位对等,有助于提高联盟链运行的稳定性和安全性。

作为优选,所述存储监听节点从地址条目中选择多于子数据的数量的地址条目,每个子数据被分配至少两个地址条目,而后将子数据、映射地址、唯一数据标识以及数据所有者标识发送给对应的数据存取节点。通过形成备份数据存储,在存在联盟链节点意外离线时,仍然能够正常读取数据,提高了数据的安全性。

作为优选,所述数据存取节点存储的映射地址对应多个不相邻的真实地址,每个真实地址的大小均为预设值,当所述数据存取节点存储收到待存储的子数据时,再次将子数据拆分成若干个数据片段,每个数据片段均关联唯一数据标识,分别将若干个所述数据片段按次序存入所述映射地址对应的多个真实地址中,所述数据存取节点建立存储索引时,仅记录第一个数据片段对应的真实地址,读取子数据时,首先读取第一数据片段,而后按预设大小顺移读取并验证唯一标识,直到凑够预设长度的数据片段,拼接后即为所需要的子数据。通过再次将子数据拆分成数据片段,对数据读取的效率影响较低,但能够大幅度的提高数据恶意复原的难度,有效保障数据的安全性。

作为优选,所述数据存取节点存储的映射地址对应的多个真实地址之间的距离具若干种预设的模式,当成功读取出若干个数据片段后,与预设的若干种模式对比,获得真实地址之间的距离的模式后,按所述模式直接读取数据片段。通过预设的模式能够快速完成数据的读取,且预设的模式仅数据存取节点知晓,不需要离开本地,具有很高的安全性,多种模式之间可以互为插补,能够有效的利用数据存取节点的存储空间。

本发明的实质性效果是:1)通过将存储和读取分别单独设置存储监听节点和读取监听节点,降低了存储监听节点和读取监听节点的功能权限,数据的进出需要通过相应通道,对数据的进出流转进行了限制,同时又不影响数据的存储效率,提高了数据流转的可控性,进而提高了数据的安全性;2)通过本技术方案存储的数据,在每个联盟链节点中均有子数据被存储,因而必须要处于联盟链内网环境中才能复原完整的数据,有效保障了联盟链敏感数据不被泄露到外网。

附图说明

图1为实施例一联盟链数据快速加密存储系统示意图。

图2为实施例一联盟链数据快速加密存储预处理方法流程框图。

图3为实施例一联盟链数据快速加密存储数据存储方法流程框图。

图4为实施例一联盟链数据快速加密存储数据读取方法流程框图。

图5为实施例二联盟链数据快速加密存储系统监听节点轮换方法流程框图。

其中:101、数据存取节点,102、存储监听节点,103、读取监听节点,104、联盟链节点。

具体实施方式

下面通过具体实施例,并结合附图,对本发明的具体实施方式作进一步具体说明。

实施例一:

一种联盟链数据快速加密存储方法,在联盟链中选举产生若干个节点,构建联盟链数据快速加密存储系统,请参阅附图1,快速加密存储系统包括存储监听节点102、读取监听节点103和若干个数据存取节点101。存储监听节点102、读取监听节点103和若干个数据存取节点101均从联盟链节点104中选取节点担任。数据存取节点101既可以是全部联盟链节点104参与,也可以选择部分存储容量和网络带宽充足的节点担任。进行快速加密存储前,需要对系统进行预处理操作,以生成数据快速加密存储所需要的环境。在数据存取节点101空闲时产生映射地址并预先开辟好存储空间,待需要存储数据时,可以直接分配映射地址,快速找到预设的存储空间,完成数据的存储。请参阅附图2,预处理步骤包括:A01)若干个数据存取节点P向存储监听节点102提交若干个映射地址,数据存取节点101存储有映射地址对应的真实地址;A02)存储监听节点102将映射地址关联数据存取节点101标识后打乱顺序并编号后作为地址条目;A03)存储监听节点102将编号以及数据存取节点101标识发送给读取监听节点103保存。

映射地址为数据存取节点101生成的随机码,真实地址指向大小等于预设的存储空间,数据存取节点101周期性在其存储空间中预分配若干个存储块,存储块大小等于预设,为每个的存储块关联一个随机码,随机码即为映射地址,将随机码和编号关联作为映射地址条目,周期性将映射地址条目提交给存储监听节点102。

表1 存储监听节点102存储的地址条目

执行完预处理操作后,存储监听节点102将保存有若干条地址条目,请参阅表1,表1中记载存储监听节点102将保存有N个地址条目。地址条目指向预先开辟好的存储空间,该存储空间随机分布在全部数据存取节点101中,属于分布式存储的形式。同时读取监听节点103也将保存有用于取出数据的编号的记录, 请参阅表2。但读取监听节点103从未得到过映射地址,既无法得知真实地址在存入数据时,存入了哪个数据的哪个子数据,因而读取监听节点103无法主动的泄露出数据。

表2 读取监听节点103保存的编号及数据存取节点101信息

请参阅附图3,联盟链节点104存储数据的方法包括:

B01)联盟链节点104将数据D提交给存储监听节点102,联盟链节点104将数据提交给存储监听节点102前,使用自己的公钥加密数据;B02)存储监听节点102分配唯一数据标识K并关联数据所有者标识Sgn;B03)存储监听节点102将数据拆分成若干个子数据d,子数据d的大小等于预设的值,存储监听节点102从地址条目中选择与子数据d的数量相同的地址条目,将使用后的地址条目删除;B04)将子数据d、映射地址rep_addr、唯一数据标识以及数据所有者标识发送给对应的数据存取节点101;B05)数据存取节点101将子数据存入映射地址对应的真实地址,数据存取节点101将使用后的映射地址删除,请参阅表3,数据存取节点101将真实地址、唯一数据标识以及数据所有者标识关联建立存储索引;B06)存储监听节点102将数据分配到的编号、唯一数据标识以及数据所有者标识发送给读取监听节点103保存。本实施例中存储监听节点102从地址条目中选择多于子数据的数量的地址条目,每个子数据被分配至少两个地址条目,而后将子数据、映射地址、唯一数据标识以及数据所有者标识发送给对应的数据存取节点101。形成了数据存储的备份,在存在联盟链节点104意外离线时,仍然能够正常读取数据。

表3 数据存取节点P1保存的映射地址信息

当联盟链中的节点需要读取数据时,执行数据读取步骤,请参阅附图4,包括:C01)将分配到的唯一数据标识以及编号发送给读取监听节点103;C02)读取监听节点103验证数据所有者标识后,根据编号将唯一数据标识发送给对应的数据存取节点101;C03)数据存取节点101根据存储索引读取对应的子数据前验证数据所有者标识,数据所有者标识为联盟链节点104使用其私钥签名的节点标识,若使用联盟链节点104的公钥能够验证出节点标识,则验证通过,若验证不通过则拒绝提供数据,验证数据所有者标识,仅允许数据所有者进行数据的解密复原,验证通过后数据存取节点101根据存储索引将对应的子数据发送给读取监听节点103;C04)读取监听节点103集齐子数据后将数据发送给联盟链节点104。

本实施例的有益技术效果是:1)通过将存储和读取分别单独设置存储监听节点102和读取监听节点103,降低了存储监听节点102和读取监听节点103的功能权限,数据的进出需要通过相应通道,对数据的进出流转进行了限制,同时又不影响数据的存储效率,提高了数据流转的可控性,进而提高了数据的安全性;2)通过本技术方案存储的数据,在每个联盟链节点104中均有子数据被存储,因而必须要处于联盟链内网环境中才能复原完整的数据,有效保障了联盟链敏感数据不被泄露到外网;3)数据存取节点101在预设的空闲时段从其存储空间中预分配若干个存储块并关联随机码。数据存取节点101空闲时段完成存储空间的分配和随机码关联,降低数据的加密存储对联盟链运行效率的影响。

实施例二:

一种联盟链数据快速加密存储方法,本实施例在实施例一的基础上,对联盟链节点104担任存储监听节点102和读取监听节点103的方法进行了具体的改进。请参阅附图5,本实施例包括:S01)联盟链节点104在预设的空闲时段通过投票选举产生存储监听节点102和读取监听节点103;S02)在存储监听节点102产生后,向存储监听节点102提交映射地址;S03)联盟链节点104将数据提交给存储监听节点102后,记录当前读取监听节点103的标识;S04)当需要读取数据时,将分配到的唯一数据标识以及编号发送给所记录的读取监听节点103的标识对应的联盟链节点104。其余步骤同实施例一。

本实施例相对于实施例一,采用了周期性投票产生新的存储监听节点102和读取监听节点103,能够确保联盟链节点104之间地位均等,有助于联盟链的稳定可靠运行。

实施例三:

一种联盟链数据快速加密存储方法,本实施例应用在司法机构建立的司法联盟链中。建立司法联盟链的机构包括法院一、法院二、公证处一、公证处二、公证处三、鉴定中心一、仲裁委员会一以及仲裁委员会二。本实施例所应用的联盟链需要接收和流转大量案件卷宗、鉴定结果以及仲裁情况等,这些数据既需要在需要的机构之间方便的流转,又因涉及大量隐私不宜泄露到联盟链之外,以避免带来难以确定的损失。选择法院一、公证处一和仲裁委员会一所维护的联盟链节点104作为数据存取节点101,记为数据存取节点P1、数据存取节点P2和数据存取节点P3,其他机构维护的联盟链节点104中投票产生存储监听节点102和读取监听节点103。

在存储监听节点102和读取监听节点103产生后,数据存取节点P1、数据存取节点P2和数据存取节点P3分别在自己的存储设备中开辟一定大小的存储空间,关联随机码后作为映射地址提交给存储监听节点102。如表1所示,本实施例中,存储监听节点102收到的映射地址随机排序并编号后建立的地址条目同实施例一。而后,存储监听节点102将编号和所属数据存取节点101发送给读取监听节点103保存,如表2所示,为读取监听节点103保存的数据。

当某个联盟链节点104产生新的公证证据的数据需要存储时,联盟链节点104将数据D使用自己的公钥加密后发送给存储监听节点102。数据D的长度需要使用两个映射地址,因而存储监听节点102将数据D拆分成两个子数据,并分配编号1和编号2两个映射地址给数据D的两个子数据d1和d2,存储监听节点102同时为数据D分配了唯一数据标识Sgn:92130,联盟链节点104从存储监听节点102得知所分配的编号为1、2,唯一数据标识Sgn:92130,将编号1、2以及唯一数据标识Sgn:92130保存后,即完成了数据的存储,可进行其他事务的处理。

存储监听节点102查询到编号1真实地址位于数据存取节点P1上,编号2真实地址位于数据存取节点P3上,将子数据d1、映射地址d9e8di9e29k、唯一数据标识Sgn:92130以及数据所有者标识发送给数据存取节点P1。数据存取节点P1根据映射地址d9e8di9e29k查表3得到真实地址(54,1,4)@P1,将子数据d1与唯一数据标识Sgn:92130关联后,存入真实地址(54,1,4)@P1。数据存取节点P1建立存储索引,如表4所示。

表4 数据存取节点P1建立的存储索引

将子数据d2、映射地址u8ie18di90o、唯一数据标识Sgn:92130以及数据所有者标识发送给数据存取节点P3。数据存取节点P3根据映射地址d9e8di9e29k查表3得到真实地址,将子数据d2与唯一数据标识Sgn:92130关联后,存入相应真实地址。数据存取节点P3建立存储索引,所建立的存储索引如表5所示。存储监听节点102将数据分配到的编号1、2、唯一数据标识Sgn:92130以及数据所有者标识Owner:90123发送给读取监听节点103保存。存储监听节点102随后删除编号1和2两条地址条目,或标注编号1和2两条地址条目已使用后,完成数据的存储过程。读取监听节点103保存编号1、2、唯一数据标识Sgn:92130以及数据所有者标识Owner:90123后,即完成数据的存储过程。

表5 数据存取节点P3建立的存储索引

当联盟链节点104需要取出公证证据的数据D时,将保存的编号1、2以及唯一数据标识Sgn:92130提交给读取监听节点103,读取监听节点103查记录得知编号1对应真实地址位于数据存取节点P1上,编号2对应真实地址位于数据存取节点P3上,并得到唯一数据标识Sgn:92130对应的数据所有者标识Owner:90123。判断请求读取数据的联盟链节点104即为数据所有者后,将唯一数据标识Sgn:92130和数据所有者标识Owner:90123发送给数据存取节点P1和数据存取节点P3。数据存取节点P1收到唯一数据标识Sgn:92130后,查存储索引获得数据所有者标识和对应的真实地址(54,1,4)@P1,核对通过后将真实地址(54,1,4)@P1存储的数据,既子数据d1,发送给读取监听节点103。数据存取节点P3做同样操作。读取监听节点103收到子数据d1和子数据d2后,复原出完整的数据D,将数据D发送给联盟链节点104,联盟链节点104使用自己的私钥解密即可。数据D也可以采用其他加密方式加密,复原出完整的数据D后,采用相应的解密方法解密即可。实施例三与实施例一及实施例二可同时实施。

实施例四:

一种联盟链数据快速加密存储方法,本实施例的应用环境同实施例三。在实施例三的基础上,数据存取节点101存储的映射地址对应多个不相邻的真实地址,每个真实地址的大小均为预设值,如表6所示。数据存取节点P1产生的每个映射地址,均关联有3个不连续的真实地址。

表6 数据存取节点P1保存的映射地址信息

当数据存取节点101存储收到待存储的子数据d1时,再次将子数据d1拆分成若干个数据片段,数据片段da1、da2和da3,每个数据片段均关联唯一数据标识,分别将若干个数据片段按次序存入映射地址对应的多个真实地址中,数据存取节点101建立存储索引时,仅记录第一个数据片段对应的真实地址。既所建立的存储索引同实施例三,如表7所示。

表7 数据存取节点101建立的存储索引

读取子数据时,首先读取第一数据片段da1,其物理地址(54,1,4)@P1记录在存储索引中,因而可以直接找到。而后按预设大小顺移读取并验证唯一标识,即验证(54,1,5)@P1发现不属于唯一数据标识Sgn:92130的数据,接着验证(54,1,5)@P1和(54,1,5)@P1,发现属于唯一数据标识Sgn:92130的数据,从而得到数据片段da2和数据片段da3,凑够预设长度,预设长度为3,的数据片段后,拼接后即为所需要的子数据d1,如表7所示。其余步骤同实施例三。

本实施例中再次将子数据拆分成数据片段,对数据读取的效率影响较低,但能够大幅度的提高数据恶意复原的难度。数据存取节点101存储的映射地址对应的多个真实地址之间的距离具若干种预设的模式,当成功读取出若干个数据片段后,与预设的若干种模式对比,获得真实地址之间的距离的模式后,按模式直接读取数据片段。通过预设的模式能够快速完成数据的读取,且预设的模式仅数据存取节点101知晓,不需要离开本地,具有很高的安全性,多种模式之间可以互为插补,能够有效的利用数据存取节点101的存储空间。实施例四与实施例一及实施例二可同时实施。

以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。

相关技术
  • 一种联盟链数据快速加密存储方法
  • 一种链式数据加密、解密方法、加密数据的分离式存储方法
技术分类

06120112941121