数据分布式加解密的系统、方法、装置、电子设备及介质与流程

文档序号:17443463发布日期:2019-04-17 05:08阅读:148来源:国知局
数据分布式加解密的系统、方法、装置、电子设备及介质与流程

本发明涉及数据加解密技术领域,特别是涉及一种数据分布式加解密的系统、方法、装置、电子设备及介质。



背景技术:

为了提升加解密速度,对于比较大的数据进行加解密,可以采用分布式加解密的方法。

现有的技术方案中,针对数据的分布式加解密,每个分布式节点都共享相同的加解密密钥,对于不同的数据加解密来说,每次加解密的密钥是不同的,这样就会在分布式节点之间传输密钥,任意两个节点之间传输密钥时泄露密钥,就会导致本次数据加解密被完全破解,密钥泄露的风险较高。



技术实现要素:

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据分布式加解密的系统、方法、装置、电子设备及介质。

依据本发明的第一方面,提供了一种数据分布式加解密的系统,包括:

主节点,用于接收请求方发送的对指定数据的加解密请求,并根据设定分段长度将所述指定数据分为分段数据,确定每个分段数据对应的分段密钥,将所述分段数据、分段密钥和对应的分段号发送给至少两个从节点,其中,每个分段数据对应的分段密钥不同;

至少两个从节点,用于根据所述分段密钥,对所述分段数据进行加解密,将加解密后的分段数据和对应的分段号发送给所述主节点;

所述主节点还用于根据所述分段号,将所述加解密后的分段数据组装为加解密后的数据,将所述加解密后的数据返回给所述请求方。

依据本发明的第二方面,提供了一种数据分布式加密的方法,包括:

主节点接收到请求方对指定数据的加密请求时,生成密钥和对应的数据标识,并保存所述密钥和对应的数据标识;

所述主节点根据设定分段长度,对所述指定数据进行分段,得到分段数据,并确定分段数及每个分段数据的分段号;

所述主节点根据所述设定分段长度,生成数量与所述分段数相同的随机数;

所述主节点根据所述密钥和所述随机数,确定每个分段数据对应的分段密钥;

所述主节点将所述分段数据、分段密钥和对应的分段号发送给至少两个从节点,以指示所述从节点根据所述分段密钥对所述分段数据进行加密;

所述主节点接收所述至少两个从节点返回的加密后的分段数据和对应的分段号;

所述主节点根据所述分段号,将所述数据标识、随机数和加密后的分段数据组装为加密数据,并返回给所述请求方。

可选的,所述主节点根据所述密钥和所述随机数,确定每个分段数据对应的分段密钥,包括:

所述主节点将所述随机数与所述密钥进行预设运算,以生成每个分段数据对应的分段密钥。

可选的,所述预设运算包括hash运算或异或运算。

可选的,所述主节点根据所述分段号,将所述数据标识、随机数和加密后的分段数据组装为加密数据,包括:

所述主节点根据所述分段号,将所述数据标识、设定分段长度、随机数和加密后的分段数据组装为加密数据。

依据本发明的第三方面,提供了一种数据分布式解密的方法,包括:

主节点接收请求方发送的对指定数据的解密请求;

所述主节点根据所述指定数据中的数据标识,获取对应的密钥;

所述主节点根据设定分段长度,将所述指定数据拆分为分段数据和对应的随机数,并确定每个分段数据的分段号;

所述主节点根据所述密钥和所述随机数,确定每个分段数据对应的分段密钥;

所述主节点将所述分段数据、分段密钥和对应的分段号发送至至少两个从节点,以指示所述从节点根据所述分段密钥对所述分段数据进行解密;

所述主节点接收所述至少两个从节点返回的解密后的分段数据和对应的分段号;

所述主节点根据所述分段号,将所述解密后的分段数据组装为解密数据,并返回给所述请求方。

可选的,所述主节点根据所述密钥和所述随机数,确定每个分段数据对应的分段密钥,包括:

所述主节点将所述随机数与所述密钥进行预设运算,以生成每个分段数据对应的分段密钥。

可选的,所述预设运算包括hash运算或异或运算。

可选的,在所述主节点根据设定分段长度,将所述指定数据拆分为分段数据和对应的随机数之前,还包括:

所述主节点提取所述指定数据中的设定分段长度。

依据本发明的第四方面,提供了一种数据分布式加密的装置,配置于如第一方面所述的分布式加解密的系统的主节点中,包括:

密钥生成模块,用于接收到请求方对指定数据的加密请求时,生成密钥和对应的数据标识,并保存所述密钥和对应的数据标识;

加密分段模块,用于根据设定分段长度,对所述指定数据进行分段,得到分段数据,并确定分段数及每个分段数据的分段号;

随机数生成模块,用于根据所述设定分段长度,生成数量与所述分段数相同的随机数;

加密分段密钥确定模块,用于根据所述密钥和所述随机数,确定每个分段数据对应的分段密钥;

加密信息发送模块,用于将所述分段数据、分段密钥和对应的分段号发送给至少两个从节点,以指示所述从节点根据所述分段密钥对所述分段数据进行加密;

加密数据接收模块,用于接收所述至少两个从节点返回的加密后的分段数据和对应的分段号;

加密数据组装模块,用于根据所述分段号,将所述数据标识、随机数和加密后的分段数据组装为加密数据,并返回给所述请求方。

可选的,所述加密分段密钥确定模块具体用于:

将所述随机数与所述密钥进行预设运算,以生成每个分段数据对应的分段密钥。

可选的,所述预设运算包括hash运算或异或运算。

可选的,所述加密数据组装模块具体用于:

根据所述分段号,将所述数据标识、设定分段长度、随机数和加密后的分段数据组装为加密数据。

依据本发明的第五方面,提供了一种数据分布式解密的装置,包括:

解密请求接收模块,用于接收请求方发送的对指定数据的解密请求;

密钥获取模块,用于根据所述指定数据中的数据标识,获取对应的密钥;

解密分段模块,用于根据设定分段长度,将所述指定数据拆分为分段数据和对应的随机数,并确定每个分段数据的分段号;

解密分段密钥确定模块,用于根据所述密钥和所述随机数,确定每个分段数据对应的分段密钥;

解密信息发送模块,用于将所述分段数据、分段密钥和对应的分段号发送至至少两个从节点,以指示所述从节点根据所述分段密钥对所述分段数据进行解密;

解密后数据接收模块,用于接收所述至少两个从节点返回的解密后的分段数据和对应的分段号;

解密数据组装模块,用于根据所述分段号,将所述解密后的分段数据组装为解密数据,并返回给所述请求方。

可选的,所述解密分段密钥确定模块具体用于:

将所述随机数与所述密钥进行预设运算,以生成每个分段数据对应的分段密钥。

可选的,所述预设运算包括hash运算或异或运算。

可选的,还包括:

分段长度提取模块,用于在根据设定分段长度,将所述指定数据拆分为分段数据和对应的随机数之前,提取所述指定数据中的设定分段长度。

依据本发明的第六方面,提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第二方面中所述的数据分布式加密的方法或第三方面中所述的数据分布式解密的方法。

依据本发明的第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第二方面中所述的数据分布式加密的方法或第三方面中所述的数据分布式解密的方法。

本发明具备如下优点:

本发明提供的数据分布式加解密的系统、方法、装置、电子设备及介质,通过主节点接收请求方发送的对指定数据的加解密请求,并根据设定分段长度将指定数据分为分段数据,并分发给至少两个从节点进行加解密,接收从节点返回的加解密后的分段数据,并组装为加解密后的数据,返回给请求方,由主节点统一接收加解密请求并分发分段数据给从节点进行加解密,各个分段数据的密钥不同,从而降低了密钥泄露的风险,提高了数据的安全性。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。

图1是本发明实施例提供的一种数据分布式加解密的系统的结构框图;

图2是本发明实施例提供的一种数据分布式加密的方法的步骤流程图;

图3是本发明实施例提供的一种分布式数据解密的方法的步骤流程图;

图4是本发明实施例提供的一种数据分布式加密的装置的结构框图;

图5是本发明实施例提供的一种数据分布式解密的装置的结构框图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

图1是本发明实施例提供的一种数据分布式加解密的系统的结构框图,如图1所示,该数据分布式加解密的系统100包括一个主节点101和至少两个从节点102。

其中,主节点101,用于接收请求方发送的对指定数据的加解密请求,并根据设定分段长度将所述指定数据分为分段数据,确定每个分段数据对应的分段密钥,将所述分段数据、分段密钥和对应的分段号发送给至少两个从节点102,其中,每个分段数据对应的分段密钥不同;

至少两个从节点102,用于根据所述分段密钥,对所述分段数据进行加解密,将加解密后的分段数据和对应的分段号发送给主节点101;

主节点101还用于根据所述分段号,将所述加解密后的分段数据组装为加解密后的数据,将所述加解密后的数据返回给所述请求方。

主节点101用于接收请求方对指定数据的加解密请求,并拆分指定数据为分段数据,从而可以分配给至少两个从节点102进行分布式加解密。

主节点101在接收到请求方对指定数据的加密请求时,生成密钥和对应的数据标识,并保存密钥和对应的数据标识;主节点101根据设定分段长度对指定数据进行分段,得到分段数据,并确定分段数据的分段号,生成数量与分段数相同的随机数,根据密钥和随机数,确定每个分段数据对应的分段密钥,将分段数据、分段密钥和对应的分段号发送给至少两个从节点102;至少两个从节点102根据自己接收到的分段密钥对分段数据进行加密,并将加密后的分段数据和对应的分段号返回给主节点101;主节点101接收到所有从节点返回的加密后的分段数据和对应的分段号后,根据分段号,将数据标识、设定分段长度、随机数和加密后的分段数据组装为加密数据,并返回给请求方。

主节点101在接收到请求方对指定数据的解密请求时,根据指定数据中的数据标识,获取对应的密钥,根据设定分段长度,将指定数据拆分为分段数据和对应的随机数,并确定每个分段数据的分段号,根据密钥和随机数确定每个分段数据对应的分段密钥,将分段数据、分段密钥和对应的分段号发送至至少两个从节点102;至少两个从节点102根据自己接收到的分段密钥对分段数据进行解密,并将解密后的分段数据和对应的分段号返回给主节点101;主节点101在接收到所有从节点返回的解密后的分段数据和对应的分段号后,根据分段号,将解密后的分段数据组装为解密数据,并返回给请求方。

本实施例提供的数据分布式加解密的系统,通过主节点接收请求方发送的对指定数据的加解密请求,并根据设定分段长度将指定数据分为分段数据,并分发给至少两个从节点进行加解密,接收从节点返回的加解密后的分段数据,并组装为加解密后的数据,返回给请求方,由主节点统一接收加解密请求并分发分段数据给从节点进行加解密,各个分段数据的密钥不同,从而降低了密钥泄露的风险,提高了数据的安全性。

图2是本发明实施例提供的一种数据分布式加密的方法的步骤流程图,该方法可以由上述实施例提供的数据分布式加解密的系统中的主节点执行,如图2所示,该方法可以包括:

步骤201,主节点接收到请求方对指定数据的加密请求时,生成密钥和对应的数据标识,并保存所述密钥和对应的数据标识。

其中,请求方是发起加密请求的一方,例如可以是计算机等电子设备。

主节点接收请求方对指定数据的加密请求,可以根据预设的密钥规则生成密钥,并生成指定数据的数据标识,并保存密钥和对应的数据标识,便于解密时查询数据标识对应的密钥。所述数据标识是指定数据的唯一标识,用于区分指定数据与其他数据,例如可以是指定数据的编号,或者是根据预设规则生成的数据标识。

步骤202,所述主节点根据设定分段长度,对所述指定数据进行分段,得到分段数据,并确定分段数及每个分段数据的分段号。

其中,设定分段长度可以是用户预先设定的分段长度,也可以是用户针对指定数据设置的分段长度。

主节点将指定数据按照设定分段长度分为一个分段数据,从而将指定数据分为至少两个分段数据,至少两个分段数据中除最后一个分段数据外的其他分段数据的数据长度均为设定分段长度,最后一个分段数据的数据长度可以是设定分段长度,也可以小于设定分段长度。统计分段数据的数量,作为分段数。可以根据每个分段数据在指定数据中的顺序,确定每个分段数据的分段号。

步骤203,所述主节点根据所述设定分段长度,生成数量与所述分段数相同的随机数。

主节点可以根据设定分段长度,生成数据长度为设定分段长度的多个随机数,生成的随机数的数量和分段数相同。生成的随机数和分段数据对应,可以根据各自的顺序进行对应,如第三个分段数据和第三个随机数对应。

步骤204,所述主节点根据所述密钥和所述随机数,确定每个分段数据对应的分段密钥。

主节点将密钥和每个随机数进行一定的运算,得到每个分段数据对应的分段密钥,得到的各个分段数据的分段密钥不同。

可选的,所述主节点根据所述密钥和所述随机数,确定每个分段数据对应的分段密钥,包括:

所述主节点将所述随机数与所述密钥进行预设运算,以生成每个分段数据对应的分段密钥。

其中,所述预设运算可选包括hash运算或异或运算。hash运算是把任意长度的输入通过散列算法变换成固定长度的输出。

主节点将密钥分别与每个随机数进行预设运算,从而生成每个分段数据对应的分段密钥,由于生成的随机数各不相同,所以生成的分段密钥也不相同,降低了数据泄露的风险。

步骤205,所述主节点将所述分段数据、分段密钥和对应的分段号发送给至少两个从节点,以指示所述从节点根据所述分段密钥对所述分段数据进行加密。

主节点将拆分得到的分段数据,及分段数据对应的分段密钥和分段号发送至至少两个从节点,从而从节点根据分段密钥对分段数据进行加密,并将加密后的分段数据和对应的分段号返回给主节点,即具体的数据加密的工作由从节点来完成。可以将一个分段数据及对应的分段密钥和分段号发送给一个从节点,由一个从节点来完成一个分段数据的加密。在分段数多于可参与运算的从节点的数量时,可以先将每个可参与运算的从节点均分配到一个分段数据及对应的分段密钥和分段号,在从节点加密完成返回加密后的分段数据后,再分配一个分段数据及对应的分段密钥和分段号给该从节点,直至所有的分段数据均加密完成。

所述主节点将所述分段数据、分段密钥和对应的分段号发送给至少两个从节点时,还可以同时将对应的随机数发送给至少两个从节点,在从节点加密完成后返回加密后的分段数据时同时返回对应的随机数,从而主节点可以不用保存各个分段数据对应的随机数,节省存储空间。

步骤206,所述主节点接收所述至少两个从节点返回的加密后的分段数据和对应的分段号。

步骤207,所述主节点根据所述分段号,将所述数据标识、随机数和加密后的分段数据组装为加密数据,并返回给所述请求方。

主节点接收到至少两个从节点返回的加密后的分段数据和对应的分段号后,根据分段号及数据组装规则,将对应的数据标识、随机数和加密后的分段数据组装为加密数据,并返回给请求方。例如,可以首先将数据标识放在数据的起始位置,之后是第一个分段数据和对应的随机数,第二个分段数据和对应的随机数,直至组装完成所有的分段数据和对应的随机数;还可以是按照分段号,首先将所有的分段数据组装在一起,之后再按照对应的顺序将对应的随机数组装在一起,数据标识可以放在组装后的数据的起始位置,也可以放在组装后的数据的末尾;当然,还有其他的组装方式,只要约定的组装方式可以在解密时进行正确拆分即可。可以预先设定数据标识所占有的数据长度,从而便于在解密时获取数据标识。

可选的,所述主节点根据所述分段号,将所述数据标识、随机数和加密后的分段数据组装为加密数据,包括:

所述主节点根据所述分段号,将所述数据标识、设定分段长度、随机数和加密后的分段数据组装为加密数据。

主节点组装加密后的分段数据时,还可以将设定分段长度组装到加密数据中,从而主节点可以不必保存设定分段长度,而且对于每个指定数据的设定分段长度可以不同,从而进一步提高数据的安全性。在组装数据时可以预先设置设定分段长度所占有的数据长度及在组装后的数据中的位置,从而便于在解密时获取设定分段长度。可以将设定分段长度组装在数据标识之后,也可以组装在数据标识之前。

例如,主节点接收到请求方对指定数据d的加密请求时,生成密钥k和数据标识id,并将id和k保存在主节点,然后根据设定分段长度以及从节点数量将d分成分段数据,分段数为n,则得到的分段数据为(d1、d2、…、dn)(其中前n-1份分段数据长度相等,均为设定分段长度l),然后生成设定分段长度的n个随机数(s1、s2、…、sn),将(s1、s2、…、sn)与k经过预设运算(hash、异或等)生成分段密钥(k1、k2、…、kn),然后组装(i,si,ki,di)发给一个从节点,其中,i=1,2,…,n,该从节点使用ki对di加密得到di’,然后将(i,si,di’)发回主节点。主节点收到所有节点的回复后,根据i的顺序组装加密数据为d’=(id,l,s1,d1’,s2,d2’,…,sn,dn’,),最后将加密数据d’返回请求方。

本实施例提供的数据分布式加密的方法,通过主节点接收请求方对指定数据的加密请求,生成密钥和对应的数据标识,并保存密钥和对应的数据标识,主节点根据设定分段长度对指定数据进行分段,得到分段数据,并确定分段数和每个分段数据的分段号,主节点生成数量与分段数相同的随机数,根据密钥和随机数,确定每个分段数据对应的分段密钥,从而将分段数据、分段密钥和对应的分段号发送给至少两个从节点,由从节点根据分段密钥对分段数据进行加密,并接收从节点返回的加密后的分段数据和对应的分段号,根据分段号,将数据标识、随机数和加密后的分段数据组装为加密数据,从而只有主节点存储密钥,从节点只参与运算,降低了密钥泄露风险,而且每个从节点使用的密钥不同,一个从节点的密钥泄露后不影响其他节点的数据,降低了数据泄露的范围。

图3是本发明实施例提供的一种分布式数据解密的方法的步骤流程图,该方法可以由上述实施例提供的数据分布式加解密的系统中的主节点执行,如图3所示,该方法可以包括:

步骤301,主节点接收请求方发送的对指定数据的解密请求。

其中,请求方是发起加密解密请求的一方,例如可以是计算机。

主节点统一接收请求方发送的对指定数据的解密请求。

步骤302,所述主节点根据所述指定数据中的数据标识,获取对应的密钥。

主节点在接收到请求方发送的对指定数据的解密请求时,获取指定数据中的数据标识,根据数据标识在加密时存储的数据标识与密钥的对应关系中查询指定数据的数据标识对应的密钥。获取指定数据的数据标识时可以根据预先设定的数据标识的数据长度,在指定数据的起始位置或者末尾位置,获取预先设定的数据长度的数据,该数据即为指定数据的数据标识。

步骤303,所述主节点根据设定分段长度,将所述指定数据拆分为分段数据和对应的随机数,并确定每个分段数据的分段号。

其中,随机数是主节点在进行加密时生成的,随机数的数量与分段数据的数量相同,随机数是用来确定各个分段数据的分段密钥,使得各个分段密钥均不同。设定分段长度为对数据进行加密形成指定数据时设置的分段长度,可以保存在主节点中。

主节点根据数据组装规则和设定分段长度,将指定数据拆分为分段数据和对应的随机数,并根据分段数据的顺序确定每个分段数据的分段号。例如,数据组装规则为按照顺序一个分段数据紧邻一个对应的随机数时,可以按照设定分段长度拆分出一个分段数据后,拆分出该分段数据对应的随机数;数据组装规则为按照顺序将分段数据组装完成后,再在之后按照顺序组装随机数时,可以先按照设定分段长度拆分出各个分段数据和各个随机数,根据各自的对应顺序,确定分段数据对应的分段数;当然,还有其他的拆分规则,这里仅为举例,不做限定。

可选的,在所述主节点根据设定分段长度,将所述指定数据拆分为分段数据和对应的随机数之前,还包括:

所述主节点提取所述指定数据中的设定分段长度。

其中,设定分段长度包含在指定数据中,可以是针对本次加密使用的分段长度,再对其他数据进行加密时可以采用不同的设定分段长度,从而进一步提高数据的安全性,而且节省主节点的存储空间。

在对指定数据进行解密时,首先提取出指定数据中的设定分段长度,可以根据预先设置的设定分段长度在指定数据中的位置,从指定数据中提取出设定分段长度。在指定数据中包含设定分段长度时,每次加密使用的设定分段长度可以不同,从而在解密时直接从指定数据中提取出设定分段长度即可,节省了主节点的存储空间,而且可以进一步提高数据的安全性。

步骤304,所述主节点根据所述密钥和所述随机数,确定每个分段数据对应的分段密钥。

主节点将密钥和每个随机数进行一定的运算,得到每个分段数据对应的分段密钥,得到的各个分段数据的分段密钥不同。

可选的,所述主节点根据所述密钥和所述随机数,确定每个分段数据对应的分段密钥,包括:

所述主节点将所述随机数与所述密钥进行预设运算,以生成每个分段数据对应的分段密钥。

其中,所述预设运算可选包括hash运算或异或运算。

主节点将密钥分别与每个随机数进行预设运算,从而生成每个分段数据对应的分段密钥,由于生成的随机数各不相同,所以生成的分段密钥也不相同,降低了数据泄露的风险。生成的分段密钥的规则与加密时生成分段密钥的规则相同,保证能够正确解密。

步骤305,所述主节点将所述分段数据、分段密钥和对应的分段号发送至至少两个从节点,以指示所述从节点根据所述分段密钥对所述分段数据进行解密。

主节点将拆分得到的分段数据,及分段数据对应的分段密钥和分段号发送至至少两个从节点,从而从节点根据分段密钥对分段数据进行解密,并将解密后的分段数据和对应的分段号返回给主节点,即具体的数据解密的工作由从节点来完成。可以将一个分段数据及对应的分段密钥和分段号发送给一个从节点,由一个从节点来完成一个分段数据的加密。在分段数多于可参与运算的从节点的数量时,可以先将每个可参与运算的从节点均分配到一个分段数据及对应的分段密钥和分段号,在从节点解密完成返回解密后的分段数据后,再分配一个分段数据及对应的分段密钥和分段号给该从节点,直至所有的分段数据均解密完成。

步骤306,所述主节点接收所述至少两个从节点返回的解密后的分段数据和对应的分段号。

步骤307,所述主节点根据所述分段号,将所述解密后的分段数据组装为解密数据,并返回给所述请求方。

例如,主节点接收到请求方对指定数据d’的解密请求时,根据数据标识id获取密钥k,根据设定分段长度l从d’中得到随机数(s1、s2、…、sn)和分段数据(d1’、d2’、…、dn’)。然后将(s1、s2、…、sn)与k经过预设运算(hash、异或等)生成分段密钥(k1、k2、…、kn),然后组装(i,ki,di’)发给一个从节点,其中,i=1,2,…,n,该从节点使用ki对di’解密得到di,然后将(i,di)发回主节点。主节点接收到所有节点的回复后,根据i的顺序组装解密数据d,最后将解密数据d返回请求方。

本实施例提供的分布式数据解密的方法,通过主节点接收请求方发送的对指定数据的解密请求,根据指定数据中的数据标识获取对应的密钥,根据设定分段长度,将指定数据拆分为分段数据和对应的随机数,并确定每个分段数据的分段号,主节点根据密钥和随机数确定每个分段数据对应的分段密钥,主节点将分段数据、分段密钥和对应的分段号发送至至少两个从节点,由从节点根据分段密钥对分段数据进行解密,主节点接收到至少两个从节点返回的解密后的分段数据和对应的分段号后,根据分段号将解密后的分段数据组装为解密数据,并返回给请求方,实现了对于不同密钥的分段数据的解密,从而只有主节点存储密钥,从节点只参与运算,降低了密钥泄露风险,而且每个从节点使用的密钥不同,一个从节点的密钥泄露后不影响其他节点的数据,降低了数据泄露的范围。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

图4是本发明实施例提供的一种数据分布式加密的装置的结构框图,该数据分布式加密的装置可以配置于本发明实施例所述的分布式加解密的系统的主节点中,如图4所示,该数据分布式加密的装置400可以包括:

密钥生成模块401,用于接收到请求方对指定数据的加密请求时,生成密钥和对应的数据标识,并保存所述密钥和对应的数据标识;

加密分段模块402,用于根据设定分段长度,对所述指定数据进行分段,得到分段数据,并确定分段数及每个分段数据的分段号;

随机数生成模块403,用于根据所述设定分段长度,生成数量与所述分段数相同的随机数;

加密分段密钥确定模块404,用于根据所述密钥和所述随机数,确定每个分段数据对应的分段密钥;

加密信息发送模块405,用于将所述分段数据、分段密钥和对应的分段号发送给至少两个从节点,以指示所述从节点根据所述分段密钥对所述分段数据进行加密;

加密数据接收模块406,用于接收所述至少两个从节点返回的加密后的分段数据和对应的分段号;

加密数据组装模块407,用于根据所述分段号,将所述数据标识、随机数和加密后的分段数据组装为加密数据,并返回给所述请求方。

可选的,所述加密分段密钥确定模块具体用于:

将所述随机数与所述密钥进行预设运算,以生成每个分段数据对应的分段密钥。

可选的,所述预设运算包括hash运算或异或运算。

可选的,所述加密数据组装模块具体用于:

根据所述分段号,将所述数据标识、设定分段长度、随机数和加密后的分段数据组装为加密数据。

本实施例提供的数据分布式加密的装置,通过密钥生成模块在接收请求方对指定数据的加密请求时,生成密钥和对应的数据标识,并保存密钥和对应的数据标识,加密分段模块根据设定分段长度对指定数据进行分段,得到分段数据,并确定分段数和每个分段数据的分段号,随机数生成模块,根据所述设定分段长度,生成数量与分段数相同的随机数,加密分段密钥确定模块根据密钥和随机数,确定每个分段数据对应的分段密钥,加密信息发送模块将分段数据、分段密钥和对应的分段号发送给至少两个从节点,由从节点根据分段密钥对分段数据进行加密,加密后数据接收模块接收从节点返回的加密后的分段数据和对应的分段号,加密数据组装模块根据分段号,将数据标识、随机数和加密后的分段数据组装为加密数据,并返回给请求方,从而只有主节点存储密钥,从节点只参与运算,降低了密钥泄露风险,而且每个从节点使用的密钥不同,一个从节点的密钥泄露后不影响其他节点的数据,降低了数据泄露的范围。

图5是本发明实施例提供的一种数据分布式解密的装置的结构框图,该数据分布式解密的装置可以配置于本发明实施例所述的分布式加解密的系统的主节点中,如图5所示,该数据分布式解密的装置500可以包括:

解密请求接收模块501,用于接收请求方发送的对指定数据的解密请求;

密钥获取模块502,用于根据所述指定数据中的数据标识,获取对应的密钥;

解密分段模块503,用于根据设定分段长度,将所述指定数据拆分为分段数据和对应的随机数,并确定每个分段数据的分段号;

解密分段密钥确定模块504,用于根据所述密钥和所述随机数,确定每个分段数据对应的分段密钥;

解密信息发送模块505,用于将所述分段数据、分段密钥和对应的分段号发送至至少两个从节点,以指示所述从节点根据所述分段密钥对所述分段数据进行解密;

解密后数据接收模块506,用于接收所述至少两个从节点返回的解密后的分段数据和对应的分段号;

解密数据组装模块507,用于根据所述分段号,将所述解密后的分段数据组装为解密数据,并返回给所述请求方。

可选的,所述解密分段密钥确定模块具体用于:

将所述随机数与所述密钥进行预设运算,以生成每个分段数据对应的分段密钥。

可选的,所述预设运算包括hash运算或异或运算。

可选的,还包括:

分段长度提取模块,用于在根据设定分段长度,将所述指定数据拆分为分段数据和对应的随机数之前,提取所述指定数据中的设定分段长度。

本实施例提供的数据分布式解密的装置,通过解密请求接收模块接收请求方发送的对指定数据的解密请求,密钥获取模块根据指定数据中的数据标识获取对应的密钥,解密分段模块根据设定分段长度,将指定数据拆分为分段数据和对应的随机数,并确定每个分段数据的分段号,解密分段密钥确定模块根据密钥和随机数确定每个分段数据对应的分段密钥,解密信息发送模块将分段数据、分段密钥和对应的分段号发送至至少两个从节点,由从节点根据分段密钥对分段数据进行解密,解密后数据接收模块接收至少两个从节点返回的解密后的分段数据和对应的分段号,解密数据组装模块根据分段号将解密后的分段数据组装为解密数据,并返回给请求方,实现了对于不同密钥的分段数据的解密,从而只有主节点存储密钥,从节点只参与运算,降低了密钥泄露风险,而且每个从节点使用的密钥不同,一个从节点的密钥泄露后不影响其他节点的数据,降低了数据泄露的范围。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

进一步地,根据本发明的一个实施例,提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现前述实施例的数据分布式加密的方法或数据分布式解密的方法。

根据本发明的一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括磁盘存储器、cd-rom、光学存储器等,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述实施例的数据分布式加密的方法或数据分布式解密的方法。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种数据分布式加解密的系统、方法、装置、电子设备及介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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