发明内容
本申请提出一种基于隐藏数据的大数据再发现方法,包括以下步骤:
S1、向预设的第一大数据存储服务器和第二大数据存储服务器,分别发送隐藏数据调取报文和字符分布规律调取报文;其中,隐藏数据是在真实数据的基础上修改得到的,并且真实数据的字符排列符合预设的字符分布规律,隐藏数据存储在第一大数据存储服务器中,字符分布规律存储在第二大数据存储服务器中,隐藏数据为二进制数据;
S2、获取所述第一大数据存储服务器发送的第一加密数据,以及获取所述第二大数据存储服务器发送的第二加密数据;
S3、根据预设的解密方法,对所述第一加密数据和所述第二加密数据分别进行解密处理,以对应得到指定隐藏数据和指定字符分布规律;其中,所述指定隐藏数据对应的指定真实数据的字符排列,符合所述指定字符分布规律;
S4、根据所述指定字符分布规律,对所述指定隐藏数据中的部分字符进行多次相反字符替换处理,以对应得到多个替换后数据;其中,每个替换后数据的字符排列均符合所述指定字符分布规律;
S5、根据预设的散列算法,对所述多个替换后数据分别进行散列计算处理,以得到多个散列值;
S6、对所述多个散列值进行三三分组处理,以生成多个散列值组;其中,每个散列值仅存在于一个散列值组中;
S7、提取同一个散列值组中第一个散列值的前端三分之一字符、第二个散列值的中间三分之一字符和第三个散列值的后端三分之一字符,并顺序连接为混合散列值,并对所有的散列值组分别进行混合散列值生成处理,以得到多个混合散列值;
S8、向预设的第三大数据存储服务器发送信息核实报文,以要求所述第三大数据存储服务器核实是否存储有指定散列值;其中,所述信息核实报文携带有所述多个混合散列值,所述指定散列值的三分之一字符与一个混合散列值中的三分之一字符完全相同,所述第三大数据存储服务器预先存储有所述指定真实数据经由散列计算得到的散列值;
S9、获取所述第三大数据存储服务器发送的返回报文,并判断所述返回报文是否为存储有指定散列值;
S10、若所述返回报文为存储有指定散列值,则获取所述指定散列值中的重合三分之一字符的位置,并根据指定散列值、混合散列值和重合三分之一字符的位置,从所述替换后数据中选出指定替换后数据,并将所述指定替换后数据记为再发现数据;其中,所述指定替换后数据经由散列计算得到的散列值与所述指定散列值相同。
进一步地,所述向预设的第一大数据存储服务器和第二大数据存储服务器,分别发送隐藏数据调取报文和字符分布规律调取报文的步骤S1之前,包括:
S01、获取多个待存储的一号数据,并进行数据筛选处理,以筛选出字符排列符合至少一种分布规律的多个二号数据;
S02、根据预设的散列算法,对所述多个二号数据分别进行散列计算处理,以得到多个二号散列值;
S03、对每个二号数据的部分字符均进行相反字符替换处理,以得到多个三号数据;其中,进行相反字符替换处理时被替换的字符数量占比不大于预设的占比阈值;
S04、将所述多个三号数据发送至第一大数据存储服务器;
S05、将所述多个二号数据分别对应的多个字符分布规律发送至第二大数据存储服务器;
S06、将所述多个二号散列值发送至第三大数据存储服务器。
进一步地,所述根据所述指定字符分布规律,对所述指定隐藏数据中的部分字符进行多次相反字符替换处理,以对应得到多个替换后数据的步骤S4中,每个替换后数据被替换的字符数量占比均不大于所述占比阈值。
进一步地,所述第一加密数据是使用第一对称密钥对指定隐藏数据加密得到的,所述第二加密数据是使用第二对称密钥对指定字符分布规律加密得到的;
所述根据预设的解密方法,对所述第一加密数据和所述第二加密数据分别进行解密处理,以对应得到指定隐藏数据和指定字符分布规律的步骤S3,包括:
采用所述第一对称密钥对所述第一加密数据进行解密处理,从而得到指定隐藏数据;
采用所述第二对称密钥对所述第二加密数据进行解密处理,从而得到指定字符分布规律。
进一步地,所述若所述返回报文为存储有指定散列值,则获取所述指定散列值中的重合三分之一字符的位置,并根据指定散列值、混合散列值和重合三分之一字符的位置,从所述替换后数据中选出指定替换后数据,并将所述指定替换后数据记为再发现数据的步骤S10,包括:
S101、所述返回报文为存储有指定散列值,则判断所述指定散列值的数量是否为一;
S102、若所述指定散列值的数量为一,则获取所述指定散列值中的重合三分之一字符的位置;
S103、判断所述指定散列值中的重合三分之一字符的位置是否处于前端;
S104、若所述指定散列值中的重合三分之一字符的位置处于前端,则将包括重合三分之一字符的混合散列值记为指定混合散列值;
S105、根据混合散列值-散列值组-第一个散列值-替换后数据的关联关系,获取与所述指定混合散列值关联的替换后数据,并记为指定替换后数据;
S106、将所述指定替换后数据记为再发现数据。
本申请提供一种基于隐藏数据的大数据再发现装置,应用于大数据分析服务器,包括:
调取报文发送单元,用于向预设的第一大数据存储服务器和第二大数据存储服务器,分别发送隐藏数据调取报文和字符分布规律调取报文;其中,隐藏数据是在真实数据的基础上修改得到的,并且真实数据的字符排列符合预设的字符分布规律,隐藏数据存储在第一大数据存储服务器中,字符分布规律存储在第二大数据存储服务器中,隐藏数据为二进制数据;
加密数据获取单元,用于获取所述第一大数据存储服务器发送的第一加密数据,以及获取所述第二大数据存储服务器发送的第二加密数据;
解密处理单元,用于根据预设的解密方法,对所述第一加密数据和所述第二加密数据分别进行解密处理,以对应得到指定隐藏数据和指定字符分布规律;其中,所述指定隐藏数据对应的指定真实数据的字符排列,符合所述指定字符分布规律;
相反字符替换单元,用于根据所述指定字符分布规律,对所述指定隐藏数据中的部分字符进行多次相反字符替换处理,以对应得到多个替换后数据;其中,每个替换后数据的字符排列均符合所述指定字符分布规律;
散列计算单元,用于根据预设的散列算法,对所述多个替换后数据分别进行散列计算处理,以得到多个散列值;
散列值组生成单元,用于对所述多个散列值进行三三分组处理,以生成多个散列值组;其中,每个散列值仅存在于一个散列值组中;
混合散列值生成单元,用于提取同一个散列值组中第一个散列值的前端三分之一字符、第二个散列值的中间三分之一字符和第三个散列值的后端三分之一字符,并顺序连接为混合散列值,并对所有的散列值组分别进行混合散列值生成处理,以得到多个混合散列值;
信息核实报文发送单元,用于向预设的第三大数据存储服务器发送信息核实报文,以要求所述第三大数据存储服务器核实是否存储有指定散列值;其中,所述信息核实报文携带有所述多个混合散列值,所述指定散列值的三分之一字符与一个混合散列值中的三分之一字符完全相同,所述第三大数据存储服务器预先存储有所述指定真实数据经由散列计算得到的散列值;
返回报文判断单元,用于获取所述第三大数据存储服务器发送的返回报文,并判断所述返回报文是否为存储有指定散列值;
数据再发现单元,用于若所述返回报文为存储有指定散列值,则获取所述指定散列值中的重合三分之一字符的位置,并根据指定散列值、混合散列值和重合三分之一字符的位置,从所述替换后数据中选出指定替换后数据,并将所述指定替换后数据记为再发现数据;其中,所述指定替换后数据经由散列计算得到的散列值与所述指定散列值相同。
本申请的基于隐藏数据的大数据再发现方法、装置,发送隐藏数据调取报文和字符分布规律调取报文;获取第一加密数据,以及获取第二加密数据;对应得到指定隐藏数据和指定字符分布规律;进行多次相反字符替换处理,以对应得到多个替换后数据;进行散列计算处理,以得到多个散列值;生成多个散列值组;进行混合散列值生成处理,以得到多个混合散列值;发送信息核实报文;获取所述第三大数据存储服务器发送的返回报文;若所述返回报文为存储有指定散列值,则获取所述指定散列值中的重合三分之一字符的位置,并从所述替换后数据中选出指定替换后数据,将所述指定替换后数据记为再发现数据,提高了数据安全性。其中,本申请在传统方案的对称加密技术的基础上实现了大数据的再发现,提高了数据安全性。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
实施例1:
参照图1,本实施例提供了一种基于隐藏数据的大数据再发现方法,应用于大数据分析服务器,其包括:
S1、向预设的第一大数据存储服务器和第二大数据存储服务器,分别发送隐藏数据调取报文和字符分布规律调取报文;其中,隐藏数据是在真实数据的基础上修改得到的,并且真实数据的字符排列符合预设的字符分布规律,隐藏数据存储在第一大数据存储服务器中,字符分布规律存储在第二大数据存储服务器中,隐藏数据为二进制数据;
S2、获取所述第一大数据存储服务器发送的第一加密数据,以及获取所述第二大数据存储服务器发送的第二加密数据;
S3、根据预设的解密方法,对所述第一加密数据和所述第二加密数据分别进行解密处理,以对应得到指定隐藏数据和指定字符分布规律;其中,所述指定隐藏数据对应的指定真实数据的字符排列,符合所述指定字符分布规律;
S4、根据所述指定字符分布规律,对所述指定隐藏数据中的部分字符进行多次相反字符替换处理,以对应得到多个替换后数据;其中,每个替换后数据的字符排列均符合所述指定字符分布规律;
S5、根据预设的散列算法,对所述多个替换后数据分别进行散列计算处理,以得到多个散列值;
S6、对所述多个散列值进行三三分组处理,以生成多个散列值组;其中,每个散列值仅存在于一个散列值组中;
S7、提取同一个散列值组中第一个散列值的前端三分之一字符、第二个散列值的中间三分之一字符和第三个散列值的后端三分之一字符,并顺序连接为混合散列值,并对所有的散列值组分别进行混合散列值生成处理,以得到多个混合散列值;
S8、向预设的第三大数据存储服务器发送信息核实报文,以要求所述第三大数据存储服务器核实是否存储有指定散列值;其中,所述信息核实报文携带有所述多个混合散列值,所述指定散列值的三分之一字符与一个混合散列值中的三分之一字符完全相同,所述第三大数据存储服务器预先存储有所述指定真实数据经由散列计算得到的散列值;
S9、获取所述第三大数据存储服务器发送的返回报文,并判断所述返回报文是否为存储有指定散列值;
S10、若所述返回报文为存储有指定散列值,则获取所述指定散列值中的重合三分之一字符的位置,并根据指定散列值、混合散列值和重合三分之一字符的位置,从所述替换后数据中选出指定替换后数据,并将所述指定替换后数据记为再发现数据;其中,所述指定替换后数据经由散列计算得到的散列值与所述指定散列值相同。
本申请的实施针对的是隐藏数据,并非适用于所有数据,在此先行声明。其中,隐藏数据是在真实数据的基础上修改得到的,并且真实数据的字符排列符合预设的字符分布规律,隐藏数据存储在第一大数据存储服务器中,字符分布规律存储在第二大数据存储服务器中,隐藏数据为二进制数据。因此,没有规律的数据是不在本申请的实施范围中的。相对而言,有规律分布的数据是较少的,但是本申请应用于大数据领域,涉及到的是庞大的数据量,而在其中,有规律分布的数据的数量更为可观。其中,分布规律可为任意可行规律,例如为等差排列、等比排列、字符按周期排列(需要标记出单个周期的特点)、0字符和1字符的数量相等,奇数排列的字符呈等差数据等等。某个数据可能同时具有多个分布规律,因此应当同时存储多个分布规律。注意,某个数据本身可能不存在分布规律,但是对其分拆后的子数据存在分布规律,那么可以将该数据分拆出来,成为两部分子数据,一部分子数据由于没有分布规律因此用普通的存储方式,另一部分子数据具有分布规律,因此以隐藏数据的方式存储,再采用本申请的方案实现数据再发现,以提高信息安全性。另外,本申请对于隐藏数据与对应的真实数据之间相对的字符长度没有限定,但若是真实数据的字符长度远大于隐藏数据的的字符长度,本申请还能够实现减少数据存储量的目的。
之所以只针对于这种由特殊数据修改得到的隐藏数据,是因为在本申请中,这种特殊数据本身未被存储,其是待发现的数据。正是因为这种特殊数据本身未被存储,因此数据安全性得到了提高。并且,本申请应用的不是普通的数据加密技术,是不能通过逆操作的方式实现数据再发现的。更进一步地,本申请是在普通数据加密的技术上,利用了有规律分布的数据的调整次数有限的规律,实现了进一步提高数据安全的目的。
本申请的数据存储,采用的是分布式互相隔离的设置,即第一大数据存储服务器、第二大数据存储服务器和第三大数据存储服务器分别存储不同类型的数据,从而不仅利于数据的批量存储,也能够提高数据安全性。并且,采用分布式互相隔离存储,也是本申请所需要的,因为,若是采用单服务器的普通表格式存储,则隐藏数据、分布规律和散列值可能被非授权方同时获取,那么非授权方有可能进行尝试计算以得到正确的数据,因此数据安全性无法保证。
本申请在此举例说明本申请对于某一个数据的再发现过程:
对于一个真实数据0000010101,其分布规律为奇数位的字符相同,对应的隐藏数据为1000010101,其采用SHA384算法计算得到的散列值为一个384位的二进制字符串(过长因此在此不展示,但其数值是唯一的)。此时,第一大数据存储服务器将存储隐藏数据为1000010101,第二大数据存储服务器将存储分布规律,第三大数据存储服务器将存储对应的散列值,从而实现分布式隔离存储。
当需要进行数据再发现时,从第一大数据存储服务器中获取隐藏数据为1000010101,从第二大数据存储服务器中获取分布规律(奇数位的字符相同)。对隐藏数据进行调整,其进行调整后的数据为1010111111、0000010101、0000010100、0100010100…。分布规律限定的越细,其调整的可能性就越少,因此再发现的速度就越快。并且为了进一步提高再发现的速度,本申请进一步限定了,字符调整时,被替换的字符占比不大于预设的占比阈值。因此,上述1010111111的字符替换占比大于0000010101,若占比阈值设置为二者之间,则1010111111是被排除在外的。因此在限定了分布规律,并且限定了替换字符的占比阈值后,需要进行调整的次数就有限了,因此在实施过程中只需要进有限次的散列计算,而散列计算的速度极快,从而有利于本申请的实施。
再对0000010101、0000010100、0100010100…多个调整后数据进行SHA384算法计算(此时限定散列算法为SHA384算法),得到多个散列值。再进行三三分组,例如将0000010101、0000010100、0100010100计算得到的散列值划为一组,而0000010101计算得到的散列值为ABC(A代表前端128位字符,B代表中间128位字符,C代表后端128位字符),0000010100计算得到的散列值为DEF,0100010100计算得到的散列值为GHI,那么将构成一个混合散列值AEI。
将AEI及其他混合散列值发送至第三大数据存储服务器,则第三大数据存储服务器能够核实AEI为正确的混合散列值,更具体的,A为正确的重合三分之一散列值,因此第三大数据存储服务器进行返回报文的发送。因此,大数据分析服务器将得到A对应的0000010101为真实数据,即为再发现得到的数据。
另外,本申请不允许第三大数据存储服务器直接发送哈希值,因此这存在数据泄露的可能,并且本申请只需要第三大数据存储服务器确定是否存在对应的哈希值,以及哈希值所处位置即可,因此本申请的数据安全性进一步得到提高。
对于上述例子,真实数据和隐藏数据的字符长度均不长,这是为了便于说明,但对于长度更长的数据而言,其采用的过程与原理仍相同。
如上述步骤S1-S5所述,向预设的第一大数据存储服务器和第二大数据存储服务器,分别发送隐藏数据调取报文和字符分布规律调取报文;其中,隐藏数据是在真实数据的基础上修改得到的,并且真实数据的字符排列符合预设的字符分布规律,隐藏数据存储在第一大数据存储服务器中,字符分布规律存储在第二大数据存储服务器中,隐藏数据为二进制数据;获取所述第一大数据存储服务器发送的第一加密数据,以及获取所述第二大数据存储服务器发送的第二加密数据;根据预设的解密方法,对所述第一加密数据和所述第二加密数据分别进行解密处理,以对应得到指定隐藏数据和指定字符分布规律;其中,所述指定隐藏数据对应的指定真实数据的字符排列,符合所述指定字符分布规律;根据所述指定字符分布规律,对所述指定隐藏数据中的部分字符进行多次相反字符替换处理,以对应得到多个替换后数据;其中,每个替换后数据的字符排列均符合所述指定字符分布规律;根据预设的散列算法,对所述多个替换后数据分别进行散列计算处理,以得到多个散列值。
由于本申请的隐藏数据与字符分布规律是采用分布式隔离存储的方式,分别存储在第一大数据存储服务器和第二大数据存储服务器上的,因此分别发送调取报文,以得到第一加密和第二加密数据。其中,加密数据可采用对称密钥加密技术进行加密,因此解密时也应当采用对就的对称密钥进行解密,从而得到指定隐藏数据和指定字符分布规律。
相反字符替换处理,指的是将1字符替换为0字符,或者0字符替换为1字符。本申请的隐藏数据为二进制数据,因此每个位置的占位符号只有0或者1两个可能。进行一次相反字符替换处理后,即可得到一个新的替换后数据。本申请对于如何进行字符替换并没有过多的限定,不过必须使得每个替换后数据的字符排列均符合所述指定字符分布规律。而指定字符分布规律的数量越多、限定条件越严苛,则能够进行字符替换处理的可能性就越少,越利于大数据的再发现。
进一步地,字符替换的数量占总字符的数量占比,不大于预设的占比阈值,从而使得本申请更容易实现大数据的再发现,对应地,由于隐藏数据是在真实数据的基础上修改得到的,因此真实数据在进行修改时(也是通过字符替换的方式实现的),替换字符的数量占比也不能大于占比阈值。所述占比阈值例如为百分之一、千分之一等等。占比阈值越小,数据再发现越容易,当然数据安全性则较差。
散列算法可以采用任意可行算法,例如MD2、MD5、SHA384算法等等,优选SHA384算法。SHA384算法能够将任意长度的输入,转化为384位的输出,并且无法进行逆运算,即不能根据输出逆推回输入数据,因此其不是加密算法。并且对于某个特定的输入,其输出是一定的,而且对于不同的输入,其输出是不同的,这也是本申请得以实施的一个前提。
在一个实施方式中,所述向预设的第一大数据存储服务器和第二大数据存储服务器,分别发送隐藏数据调取报文和字符分布规律调取报文的步骤S1之前,包括: S01、获取多个待存储的一号数据,并进行数据筛选处理,以筛选出字符排列符合至少一种分布规律的多个二号数据;
S02、根据预设的散列算法,对所述多个二号数据分别进行散列计算处理,以得到多个二号散列值;
S03、对每个二号数据的部分字符均进行相反字符替换处理,以得到多个三号数据;其中,进行相反字符替换处理时被替换的字符数量占比不大于预设的占比阈值;
S04、将所述多个三号数据发送至第一大数据存储服务器;
S05、将所述多个二号数据分别对应的多个字符分布规律发送至第二大数据存储服务器;
S06、将所述多个二号散列值发送至第三大数据存储服务器。
从而实现数据的分布式隔离存储,以保证隐藏数据、字符分布规律和散列值彼此存储在不同服务器的存储器中,以保证数据安全。其中,三号数据即为隐藏数据。进一步地,在将所述多个二号散列值发送至第三大数据存储服务器的步骤之后,还包括:将二号数据删除。
在一个实施方式中,所述根据所述指定字符分布规律,对所述指定隐藏数据中的部分字符进行多次相反字符替换处理,以对应得到多个替换后数据的步骤S4中,每个替换后数据被替换的字符数量占比均不大于所述占比阈值。
从而利于本申请的实施,以保证在进行部分字符进行多次相反字符替换处理时,无需进行过多次的替换处理,从而提高大数据再发现的实施速度。
在一个实施方式中,所述第一加密数据是使用第一对称密钥对指定隐藏数据加密得到的,所述第二加密数据是使用第二对称密钥对指定字符分布规律加密得到的;
所述根据预设的解密方法,对所述第一加密数据和所述第二加密数据分别进行解密处理,以对应得到指定隐藏数据和指定字符分布规律的步骤S3,包括:
采用所述第一对称密钥对所述第一加密数据进行解密处理,从而得到指定隐藏数据;
采用所述第二对称密钥对所述第二加密数据进行解密处理,从而得到指定字符分布规律。
从而以对称加密技术结合的方式,提高数据安全性。本申请属于大数据领域,涉及的数据量庞大,不适合采用非对称加密技术进行加密。虽然采用的对称加密技术在数据安全方面低于非对称加密技术,但是本申请只是在加密数据的基础上实现的,对于整体方案而言,数据安全性不低于非对称加密技术。
上述步骤S6-S10,对所述多个散列值进行三三分组处理,以生成多个散列值组;其中,每个散列值仅存在于一个散列值组中;提取同一个散列值组中第一个散列值的前端三分之一字符、第二个散列值的中间三分之一字符和第三个散列值的后端三分之一字符,并顺序连接为混合散列值,并对所有的散列值组分别进行混合散列值生成处理,以得到多个混合散列值;向预设的第三大数据存储服务器发送信息核实报文,以要求所述第三大数据存储服务器核实是否存储有指定散列值;其中,所述信息核实报文携带有所述多个混合散列值,所述指定散列值的三分之一字符与一个混合散列值中的三分之一字符完全相同,所述第三大数据存储服务器预先存储有所述指定真实数据经由散列计算得到的散列值;获取所述第三大数据存储服务器发送的返回报文,并判断所述返回报文是否为存储有指定散列值;若所述返回报文为存储有指定散列值,则获取所述指定散列值中的重合三分之一字符的位置,并根据指定散列值、混合散列值和重合三分之一字符的位置,从所述替换后数据中选出指定替换后数据,并将所述指定替换后数据记为再发现数据;其中,所述指定替换后数据经由散列计算得到的散列值与所述指定散列值相同。
本申请的另一个特点在于,采用三三分组的方式,进而形成混合散列值。通过这种设置,使得不仅第三大数据存储服务器不会发送正确的散列值,而本申请的大数据分析服务器也不会发送正确的散列值,因此未授权的终端也是无法通过由大数据分析服务器指向第三大数据存储服务器的信息传输中,获取有用的信息,从而提高了数据安全。并且,由于三三分组再形成混合散列值的方式,不会对本申请的实施结果的可靠性有影响,因此散列值是唯一的,虽然散列值的三分之一可能不唯一,但其可能性较低,并且纵使存在这种可能,只需要再进行一次通信即可确定(例如再发送另一个混合散列值,该混合散列值包括其他三分之一的字符,即可进行唯一确定,例如,混合散列值ABC中A被存储在第三大数据存储服务器中,且大数据分析服务器计算的单个包括A的散列值为ADE,且第三大数据存储服务器存储的有两个散列值均包括A,那么就再发送混合散列值FDG或者FGE至第三大数据存储服务器即可,此时第三大数据存储服务器中既包括A又包括D或E的散列值为正确散列值)。
并且,采用三三分组的方式,减少了数据传输量。若采用传输完全散列值的方式,不仅对于数据安全性没有帮助,而且会增加数据传输量,而采用三三分组后,数据传输量只需要原有的三分之一即可。
在发送混合散列值时,可采用多次发送的方式来实现。即第一次发送一定数量的混合散列值;若返回报文表明未存储有指定散列值,则继续第二次发送一定数量的新的混合散列值,直至找到指定散列值;若返回报文表明存储有指定散列值,则不必继续进行散列计算并发送混合散列值。
进一步地,所述若所述返回报文为存储有指定散列值,则获取所述指定散列值中的重合三分之一字符的位置,并根据指定散列值、混合散列值和重合三分之一字符的位置,从所述替换后数据中选出指定替换后数据,并将所述指定替换后数据记为再发现数据的步骤S10,包括:
S101、所述返回报文为存储有指定散列值,则判断所述指定散列值的数量是否为一;
S102、若所述指定散列值的数量为一,则获取所述指定散列值中的重合三分之一字符的位置;
S103、判断所述指定散列值中的重合三分之一字符的位置是否处于前端;
S104、若所述指定散列值中的重合三分之一字符的位置处于前端,则将包括重合三分之一字符的混合散列值记为指定混合散列值;
S105、根据混合散列值-散列值组-第一个散列值-替换后数据的关联关系,获取与所述指定混合散列值关联的替换后数据,并记为指定替换后数据;
S106、将所述指定替换后数据记为再发现数据。
从而根据指定散列值、混合散列值和重合三分之一字符的位置,实现了大数据的再发现。其中,重合三分之一字符,指的是指定散列值与混合散列值是完全相同的三分之一字符部分,其位置只可能出现在前端三分之一字符、中间三分之一字符和后端三分之一字符这三个位置。因此,只需要确定该位置是在这三个位置中的哪一个,即可确定意图获取的散列值,例如该位置是前端三分之一字符处,则指定混合散列值对应的散列值组中的第一个散列值为意图获取的散列值,这是由于存在唯一的关联关系,混合散列值-散列值组-第一个散列值-替换后数据的关联关系,所能够实现的。
本申请的基于隐藏数据的大数据再发现方法,发送隐藏数据调取报文和字符分布规律调取报文;获取第一加密数据,以及获取第二加密数据;对应得到指定隐藏数据和指定字符分布规律;进行多次相反字符替换处理,以对应得到多个替换后数据;进行散列计算处理,以得到多个散列值;生成多个散列值组;进行混合散列值生成处理,以得到多个混合散列值;发送信息核实报文;获取所述第三大数据存储服务器发送的返回报文;若所述返回报文为存储有指定散列值,则获取所述指定散列值中的重合三分之一字符的位置,并从所述替换后数据中选出指定替换后数据,将所述指定替换后数据记为再发现数据,提高了数据安全性。
实施例2:
参照图2,本实施例提供了一种用于实现实施例1中所述再发现方法的基于隐藏数据的大数据再发现装置,应用于大数据分析服务器,其包括:
调取报文发送单元10,用于向预设的第一大数据存储服务器和第二大数据存储服务器,分别发送隐藏数据调取报文和字符分布规律调取报文;其中,隐藏数据是在真实数据的基础上修改得到的,并且真实数据的字符排列符合预设的字符分布规律,隐藏数据存储在第一大数据存储服务器中,字符分布规律存储在第二大数据存储服务器中,隐藏数据为二进制数据;
加密数据获取单元20,用于获取所述第一大数据存储服务器发送的第一加密数据,以及获取所述第二大数据存储服务器发送的第二加密数据;
解密处理单元30,用于根据预设的解密方法,对所述第一加密数据和所述第二加密数据分别进行解密处理,以对应得到指定隐藏数据和指定字符分布规律;其中,所述指定隐藏数据对应的指定真实数据的字符排列,符合所述指定字符分布规律;
相反字符替换单元40,用于根据所述指定字符分布规律,对所述指定隐藏数据中的部分字符进行多次相反字符替换处理,以对应得到多个替换后数据;其中,每个替换后数据的字符排列均符合所述指定字符分布规律;
散列计算单元50,用于根据预设的散列算法,对所述多个替换后数据分别进行散列计算处理,以得到多个散列值;
散列值组生成单元60,用于对所述多个散列值进行三三分组处理,以生成多个散列值组;其中,每个散列值仅存在于一个散列值组中;
混合散列值生成单元70,用于提取同一个散列值组中第一个散列值的前端三分之一字符、第二个散列值的中间三分之一字符和第三个散列值的后端三分之一字符,并顺序连接为混合散列值,并对所有的散列值组分别进行混合散列值生成处理,以得到多个混合散列值;
信息核实报文发送单元80,用于向预设的第三大数据存储服务器发送信息核实报文,以要求所述第三大数据存储服务器核实是否存储有指定散列值;其中,所述信息核实报文携带有所述多个混合散列值,所述指定散列值的三分之一字符与一个混合散列值中的三分之一字符完全相同,所述第三大数据存储服务器预先存储有所述指定真实数据经由散列计算得到的散列值;
返回报文判断单元90,用于获取所述第三大数据存储服务器发送的返回报文,并判断所述返回报文是否为存储有指定散列值;
数据再发现单元100,用于若所述返回报文为存储有指定散列值,则获取所述指定散列值中的重合三分之一字符的位置,并根据指定散列值、混合散列值和重合三分之一字符的位置,从所述替换后数据中选出指定替换后数据,并将所述指定替换后数据记为再发现数据;其中,所述指定替换后数据经由散列计算得到的散列值与所述指定散列值相同。
在一个实施方式中,所述向预设的第一大数据存储服务器和第二大数据存储服务器,分别发送隐藏数据调取报文和字符分布规律调取报文之前,包括: 获取多个待存储的一号数据,并进行数据筛选处理,以筛选出字符排列符合至少一种分布规律的多个二号数据;
根据预设的散列算法,对所述多个二号数据分别进行散列计算处理,以得到多个二号散列值;
对每个二号数据的部分字符均进行相反字符替换处理,以得到多个三号数据;其中,进行相反字符替换处理时被替换的字符数量占比不大于预设的占比阈值;
将所述多个三号数据发送至第一大数据存储服务器;
将所述多个二号数据分别对应的多个字符分布规律发送至第二大数据存储服务器;
将所述多个二号散列值发送至第三大数据存储服务器。
在一个实施方式中,所述根据所述指定字符分布规律,对所述指定隐藏数据中的部分字符进行多次相反字符替换处理,以对应得到多个替换后数据中,每个替换后数据被替换的字符数量占比均不大于所述占比阈值。
在一个实施方式中,所述第一加密数据是使用第一对称密钥对指定隐藏数据加密得到的,所述第二加密数据是使用第二对称密钥对指定字符分布规律加密得到的;
所述根据预设的解密方法,对所述第一加密数据和所述第二加密数据分别进行解密处理,以对应得到指定隐藏数据和指定字符分布规律,包括:
采用所述第一对称密钥对所述第一加密数据进行解密处理,从而得到指定隐藏数据;
采用所述第二对称密钥对所述第二加密数据进行解密处理,从而得到指定字符分布规律。
在一个实施方式中,所述若所述返回报文为存储有指定散列值,则获取所述指定散列值中的重合三分之一字符的位置,并根据指定散列值、混合散列值和重合三分之一字符的位置,从所述替换后数据中选出指定替换后数据,并将所述指定替换后数据记为再发现数据,包括:
所述返回报文为存储有指定散列值,则判断所述指定散列值的数量是否为一;
若所述指定散列值的数量为一,则获取所述指定散列值中的重合三分之一字符的位置;
判断所述指定散列值中的重合三分之一字符的位置是否处于前端;
若所述指定散列值中的重合三分之一字符的位置处于前端,则将包括重合三分之一字符的混合散列值记为指定混合散列值;
根据混合散列值-散列值组-第一个散列值-替换后数据的关联关系,获取与所述指定混合散列值关联的替换后数据,并记为指定替换后数据;
将所述指定替换后数据记为再发现数据。
其中上述单元分别用于执行的操作与前述实施方式的基于隐藏数据的大数据再发现方法的步骤一一对应,在此不再赘述。
本申请的基于隐藏数据的大数据再发现装置,发送隐藏数据调取报文和字符分布规律调取报文;获取第一加密数据,以及获取第二加密数据;对应得到指定隐藏数据和指定字符分布规律;进行多次相反字符替换处理,以对应得到多个替换后数据;进行散列计算处理,以得到多个散列值;生成多个散列值组;进行混合散列值生成处理,以得到多个混合散列值;发送信息核实报文;获取所述第三大数据存储服务器发送的返回报文;若所述返回报文为存储有指定散列值,则获取所述指定散列值中的重合三分之一字符的位置,并从所述替换后数据中选出指定替换后数据,将所述指定替换后数据记为再发现数据,提高了数据安全性。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。