CN107516046A - 数据保护方法及装置、电子设备、计算机存储介质 - Google Patents

数据保护方法及装置、电子设备、计算机存储介质 Download PDF

Info

Publication number
CN107516046A
CN107516046A CN201710575943.0A CN201710575943A CN107516046A CN 107516046 A CN107516046 A CN 107516046A CN 201710575943 A CN201710575943 A CN 201710575943A CN 107516046 A CN107516046 A CN 107516046A
Authority
CN
China
Prior art keywords
data
lattice
area
bloom filter
reversible
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710575943.0A
Other languages
English (en)
Other versions
CN107516046B (zh
Inventor
汪德嘉
郭宇
王少凡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Payegis Technology Co Ltd
Original Assignee
Jiangsu Payegis Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu Payegis Technology Co Ltd filed Critical Jiangsu Payegis Technology Co Ltd
Publication of CN107516046A publication Critical patent/CN107516046A/zh
Application granted granted Critical
Publication of CN107516046B publication Critical patent/CN107516046B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种数据保护方法及装置、电子设备、计算机存储介质,其中,方法用于对任意两组数据进行比较,任意两组数据包括第一组数据和第二组数据,方法包括:分别获取存储第一组数据的第一可逆布隆过滤器和存储第二组数据的第二可逆布隆过滤器;将第一可逆布隆过滤器和第二可逆布隆过滤器进行位运算处理,得到第三可逆布隆过滤器;根据第三可逆布隆过滤器中各个区格的数值,得到第一组数据和第二组数据的比较结果。本发明在存储数据时性能开销小,不受待存储数据的数据量限制。在比较时,仅需要在对两组可逆布隆过滤器进行简单的位运算处理即可检测数据是否一致。

Description

数据保护方法及装置、电子设备、计算机存储介质
技术领域
本发明涉及数据安全领域,尤其涉及一种数据保护方法及装置、电子设备、计算机存储介质。
背景技术
随着信息技术的不断发展和网络的普及,大数据技术已经应用至多个领域,并引起广泛关注。使保存的数据具有完整性和真实性是大数据技术能够被有效利用的重要保障。只有数据信息真实可靠,才能有效的提供可靠的信息支持。一旦数据信息被篡改为其他的信息,或者更危险的被篡改为病毒或木马时,不但会造成数据信息的无效,还有可能导致数据信息直接成为安全的威胁。尤其对如银行等金融类公司的敏感数据,一旦遭到攻击和篡改,使用篡改的数据进行生产会给用户造成难以估量的损失。
现有技术一般采用如基于哈希函数对数据进行验证,先使用散列函数(HashFunction)把消息或数据压缩成摘要,缩小数据量,将数据的格式固定化。散列函数将数据顺序打乱重新混合,创建散列值指纹。使用该方法对数据进行验证时,将数据按一定顺序排序后,提取最初的哈希值,若与一段时间后重新提取数据的哈希值不同时,则验证该数据已经被改动过。或者利用梅克尔树(merkle tree)对数据进行验证。首先为每一个区块去计算一个哈希值,然后将每两个相邻的区块的哈希值再次进行计算得出新的哈希值,以此向上类推,直至生成根节点的哈希值,从而生成一棵树的结构。梅克尔树即一棵身份证树。使用该方法在进行校验时,根据哈希值的不同,直接定位到被篡改的数据位置。在校验整个区块的所有数据是否未被篡改时,通过最顶端的根节点的哈希值进行验证即可。
但采用现有技术时,都需要对大量的数据进行哈希运算,使得极其损耗性能。且在验证时只能得知数据一致或者不一致,而无法知晓其中具体被篡改的数据,更无法对被篡改的数据进行恢复。并且,现有技术无法在哈希运行的结果上进行增量运算。当数据发生更新,如添加了新数据,则之前生成的哈希运行结果均需要重新进行运算,重新计算得带整个哈希值或梅克尔树,效率不高。因此,需要一种从根本上可以检测数据的完整性与准确性的数据保护方法。
发明内容
本发明的发明目的是针对现有技术的缺陷,提供了一种数据保护方法及装置、电子设备、计算机存储介质,用于解决现有技术中数据保护存在的运算量大、性能消耗多、无法知晓具体被篡改数据、数据被篡改后无法恢复等问题。
根据本发明的一个方面,提供了一种数据保护方法,方法用于对任意两组数据进行比较,任意两组数据包括第一组数据和第二组数据,包括:
分别获取存储第一组数据的第一可逆布隆过滤器和存储第二组数据的第二可逆布隆过滤器;其中,第一可逆布隆过滤器和第二可逆布隆过滤器均包括预设数量的区格;
将第一可逆布隆过滤器和第二可逆布隆过滤器进行位运算处理,得到第三可逆布隆过滤器;
根据第三可逆布隆过滤器中各个区格的数值,得到第一组数据和第二组数据的比较结果。
根据本发明的另一个方面,还提供了一种数据保护装置,装置用于对任意两组数据进行比较,任意两组数据包括第一组数据和第二组数据,包括:
获取模块,用于分别获取存储第一组数据的第一可逆布隆过滤器和存储第二组数据的第二可逆布隆过滤器;其中,第一可逆布隆过滤器和第二可逆布隆过滤器均包括预设数量的区格;
比较模块,用于将第一可逆布隆过滤器和第二可逆布隆过滤器进行位运算处理,得到第三可逆布隆过滤器;根据第三可逆布隆过滤器中各个区格的数值,得到第一组数据和第二组数据的比较结果。
根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述数据保护方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述数据保护方法对应的操作。
根据本发明提供的数据保护方法及装置、电子设备、计算机存储介质,利用可逆布隆过滤器对数据进行存储,在存储时可以无需使用复杂的密码学安全的哈希函数,以减小性能开销。同时,存储所使用的可逆布隆过滤器大小固定,与待存储数据的数据量大小无关,不受待存储数据的数据量限制。在对两组数据进行比较时,仅需要在对两组可逆布隆过滤器进行简单的位运算处理即可检测数据是否一致。进一步,本发明还可以检测出两组数据中具体的不同的数据值。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的数据保护方法的流程示意图;
图2示出了将数据存储至可逆布隆过滤器中对应区格的算法示意图;
图3示出了数据存储至各个区格时数据值的示意图;
图4示出了根据本发明另一个实施例的数据保护方法的流程示意图;
图5a-图5e示出了两组数据存储至各个区格时的数据值及对第三可逆布隆过滤器进行操作后的数据值的示意图;
图6示出了根据本发明一个实施例的数据保护装置的功能结构示意图;
图7示出了根据本发明另一个实施例的数据保护装置的功能结构示意图;
图8示出了根据本发明一个实施例的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的数据保护方法的流程示意图,如图1所示,该方法具体包括如下步骤:
步骤S101,分别获取存储第一组数据的第一可逆布隆过滤器和存储第二组数据的第二可逆布隆过滤器。
本发明可以用于对任意两组数据进行比较,任意两组数据包括第一组数据和第二组数据。通过比较两组数据可以得到两组数据的比较结果。这两组数据可以为本地的两组数据,或者一组数据在本地存储,另一组数据存储在其他位置。
当两组数据已经存储在其对应的可逆布隆过滤器中时,可以直接获取到其对应的可逆布隆过滤器,若两组数据的其中一组或两组数据都还没有存储到可逆布隆过滤器时,可以通过以下方式进行存储:
首先,初始化一个可逆布隆过滤器。对每一组数据均初始化一个可逆布隆过滤器,如为第一组数据初始化一个第一可逆布隆过滤器,和/或为第二组数据初始化一个第二可逆布隆过滤器。每个可逆布隆过滤器均包括预设数量的区格,且两个可逆布隆过滤器的区格数量相同。
每个区格中都包括了数据个数、数据值总和及哈希值总和。其中,数据个数、数据值总和及哈希值总和的初始值均为0。数据个数用于记录区格中存储的数据的总个数。
其次,对一组数据中的所有数据均依次进行第一哈希运算,根据每个数据的第一哈希运算的结果,将每个数据依次存储至可逆布隆过滤器对应的区格。
对一组数据中的所有数据依次进行第一哈希运算,其中,第一哈希运算包括预设数量的第一哈希函数。对每个数据均执行预设数量的第一哈希函数。预设数量可以根据实施情况进行设置。在本实施例中采用3个第一哈希函数,分别为Hk1、Hk2和Hk3。对每个数据分别执行Hk1、Hk2和Hk3,得到该数据对应的Hk1、Hk2和Hk3的3个第一哈希值。根据这3个第一哈希值,将该数据存储至可逆布隆过滤器中3个第一哈希值分别对应的区格。如图2所示,本实施例初始化一个包括8个区格的可逆布隆过滤器,其中区格位置为0-7。一组数据包括了S1-S12,存储数据以S6为例。对数据S6分别执行Hk1、Hk2和Hk3。得到S6对应的3个第一哈希值,分别为4、3和5,将数据S6分别存储在可逆布隆过滤器中位置为4、3和5的区格中。若第一哈希值较大时,如第一哈希值为12,可以将第一哈希值按照可逆布隆过滤器的区格的预设数量8进行取余运算,对12按照8取余,得到对应的余数为4。再根据余数4将该数据存储至可逆布隆过滤器中余数4对应的区格4中。即将一个数据存储至3个第一哈希值对应的3个区格中。
将数据存储至对应的区格时,区格中的数据个数为将区格中原数据个数的值加一。区格中数据值总和更新为区格中原数据值总和与该数据进行按位异或后的数据值总和。区格中哈希值总和更新为区格中原哈希值总和与该数据进行第二哈希运算得到的第二哈希值进行按位异或后的哈希值总和。其中,第二哈希运算为预先选定的一个哈希函数。如图3所示,数据S6分别存储到区格3、区格4和区格5中。其中,各区格中的数据个数count更新为原数据个数count的值加1。区格中数据值总和idSum更新为区格中原数据值总和idSum与数据S6进行按位异或(xor操作)后的数据值总和。区格中哈希值总和hashSum更新为区格中原哈希值总和hashSum与数据S6进行第二哈希运算(哈希函数为Hc)得到的第二哈希值进行按位异或后的哈希值总和。
进一步,当第一组数据在存储至第一可逆布隆过滤器后,又增加了新的数据时,在已经存储的第一可逆布隆过滤器的基础上,可以仅对新增加的数据进行第一哈希运算,根据新增加的数据的第一哈希运算的结果,将新增加的数据存储至第一可逆布隆过滤器对应的区格,而不需要将之前已经处理的数据重新存储,减少了数据更新对存储的影响,使得已经存储的第一可逆布隆过滤器可以继续使用。同理,第二可逆布隆过滤器也可以适用于第二组数据又增加新数据需要存储的情况。
步骤S102,将第一可逆布隆过滤器和第二可逆布隆过滤器进行位运算处理,得到第三可逆布隆过滤器。
经过上述步骤得到了存储有第一组数据的第一可逆布隆过滤器和存储有第二组数据的第二可逆布隆过滤器,将第一可逆布隆过滤器和第二可逆布隆过滤器按照区格位置,对各区格中的数据分别进行位运算处理,得到第三可逆布隆过滤器。
在对区格中的数据进行位运算处理时,数据个数的处理为依次对第一可逆布隆过滤器中区格的数据个数和第二可逆布隆过滤器中相同位置的区格的数据个数进行减法处理,得到第三可逆布隆过滤器中相同位置的区格的数据个数。其中,第一可逆布隆过滤器中区格的数据个数为被减数;第二可逆布隆过滤器中相同位置的区格的数据个数为减数。当第一可逆布隆过滤器中区格的数据个数与第二可逆布隆过滤器中相同位置的区格的数据个数的值大小相同时,即第一可逆布隆过滤器中区格存储的数据个数与第二可逆布隆过滤器中相同位置的区格存储的数据个数相同,得到的第三可逆布隆过滤器中相同位置的区格的数据个数的值为0,否则,即第一可逆布隆过滤器中区格存储的数据个数与第二可逆布隆过滤器中相同位置的区格存储的数据个数不同,得到的第三可逆布隆过滤器中相同位置的区格的数据个数的值不为0。
数据值总和的处理为依次对第一可逆布隆过滤器中区格的数据值总和与第二可逆布隆过滤器中相同位置的区格的数据值总和进行按位异或处理,得到第三可逆布隆过滤器中相同位置的区格的数据值总和。当第一可逆布隆过滤器中区格中存储的数据值总和与第二可逆布隆过滤器中相同位置的区格存储的数据值总和进行按位异或处理时,若第一可逆布隆过滤器中区格中存储的数据与第二可逆布隆过滤器中相同位置的区格存储的数据相同时,根据按位异或处理的原理,相同值异或处理后,值为0,不同值异或处理后,值为1。得到的第三可逆布隆过滤器中相同位置的区格的数据值总和为0。否则,即第一可逆布隆过滤器中区格存储的数据与第二可逆布隆过滤器中相同位置的区格存储的数据不同,得到的第三可逆布隆过滤器中相同位置的区格的数据值总和不为0。
哈希值总和的处理为依次对第一可逆布隆过滤器中区格的哈希值总和与第二可逆布隆过滤器中相同位置的区格的哈希值总和进行按位异或处理,得到第三可逆布隆过滤器中相同位置的区格的哈希值总和。当第一可逆布隆过滤器中区格中存储的哈希值总和与第二可逆布隆过滤器中相同位置的区格存储的哈希值总和进行按位异或处理时,若第一可逆布隆过滤器中区格中存储的数据与第二可逆布隆过滤器中相同位置的区格存储的数据相同时,根据按位异或处理的原理,相同值异或处理后,值为0,不同值异或处理后,值为1。得到的第三可逆布隆过滤器中相同位置的区格的哈希值总和为0。否则,即第一可逆布隆过滤器中区格存储的数据与第二可逆布隆过滤器中相同位置的区格存储的数据不同,得到的第三可逆布隆过滤器中相同位置的区格的哈希值总和不为0。
步骤S103,根据第三可逆布隆过滤器中各个区格的数值,得到第一组数据和第二组数据的比较结果。
若第三可逆布隆过滤器中各个区格的数据个数、数据值总和及哈希值总和均为0,即第一组数据和第二组数据完全相同。若第三可逆布隆过滤器中某个区格的数据个数、数据值总和及哈希值总和有一个不为0,即第一组数据和第二组数据不同。
通过对第一组数据和第二组数据的比较,可以方便的了解到第一组数据是否与第二组数据相同。若第一组数据为本地数据,第二组数据为线上数据,通过两组数据的比较结果,可以检测线上数据是否被病毒木马等恶意程序进行篡改,以提醒用户,避免用户使用被篡改的数据造成用户的损失。
根据本发明提供的数据保护方法,利用可逆布隆过滤器对数据进行存储,在存储时可以无需使用复杂的密码学安全的哈希函数,以减小性能开销。同时,存储所使用的可逆布隆过滤器大小固定,与待存储数据的数据量大小无关,不受待存储数据的数据量限制。在对两组数据进行比较时,仅需要在对两组可逆布隆过滤器进行简单的位运算处理即可检测数据是否一致。本发明对多个数据在存储时,采用异或处理的方式进行存储,方便后续在比较时,执行一步位运算处理即可检测两组数据是否相同,处理方便高效。
图4示出了根据本发明另一个实施例的数据保护方法的流程示意图,如图4所示,该方法具体包括如下步骤:
本发明可以用于对任意两组数据进行比较,任意两组数据包括第一组数据和第二组数据。通过比较两组数据可以得到两组数据的比较结果。这两组数据可以如本地数据和线上数据、不同时间段的两组数据等。
对第一组数据和第二组数据中的每一组数据均执行以下步骤S401和步骤S402的处理。
步骤S401,分别获取存储第一组数据的第一可逆布隆过滤器和存储第二组数据的第二可逆布隆过滤器。
步骤S402,将第一可逆布隆过滤器和第二可逆布隆过滤器进行位运算处理,得到第三可逆布隆过滤器。
以上步骤可参考图1方法实施例中的步骤S101-S102,此处不再赘述。
步骤S403,判断第三可逆布隆过滤器中各个区格的数值是否均为0。
判断第三可逆布隆过滤器中各个区格中数据个数、数据值总和及哈希值总和的值是否均为0,若均为0,执行步骤S404;否则,执行步骤S405。
步骤S404,若第三可逆布隆过滤器中各个区格的数据个数、数据值总和及哈希值总和均为0,确认第一组数据和第二组数据完全相同。
第三可逆布隆过滤器中区格的数据个数为0,即第一可逆布隆过滤器和第二可逆布隆过滤器的区格中存储的数据个数相同,相减后得到的第三可逆布隆过滤器的区格中的数据个数为0。
第三可逆布隆过滤器中区格的数据值总和的值为0,由于按位异或操作相同的数据时,结果为0,即第一可逆布隆过滤器和第二可逆布隆过滤器的区格中存储的数据值总和的值相同。
第三可逆布隆过滤器中区格的哈希值总和的值为0,由于按位异或操作相同的数据时,结果为0,即第一可逆布隆过滤器和第二可逆布隆过滤器的区格中存储的哈希值总和的值相同。
当第三可逆布隆过滤器中各个区格的数据个数、数据值总和及哈希值总和均为0,可以确认第一组数据和第二组数据完全相同。
步骤S405,查找第三可逆布隆过滤器中区格的数据个数的值为1或-1的区格。
当第三可逆布隆过滤器中某个或某些区格的数据个数、数据值总和及哈希值总和不为0时,即第一组数据和第二组数据中存在不同的数据。本发明还可以进一步查找出两组数据中不同的数据。在查找不同数据时,从第三可逆布隆过滤器的所有区格中找出区格中数据个数的值为1或者-1的区格。
步骤S406,判断该区格是否仅存储一个数据。
判断步骤S405中找出的第三可逆布隆过滤器的区格中是否仅存储了一个数据。
判断区格是否仅存储一个数据时,可以将该区格中存储的数据值总和进行第二哈希运算得到的第二哈希值与该区格中存储的哈希值总和进行比较,若相同,即可确认该区格仅存储一个数据。执行步骤S408;否则,该区格可能存储多个数据。
参照图5a-图5c所示,第一组数据包括V、W、X和Y,通过步骤S401和S402将其存储在第一可逆布隆过滤器中。第一可逆布隆过滤器各个区格的数据如图5a所示。第二组数据包括W、Y和Z,通过步骤S401和S402将其存储在第二可逆布隆过滤器中。第二可逆布隆过滤器各个区格的数据如图5b所示。将第一可逆布隆过滤器和第二可逆布隆过滤器进行位运算处理,得到第三可逆布隆过滤器。第三可逆布隆过滤器各个区格的数据如图5c所示。第三可逆布隆过滤器中的各个区格的值不是均为0,可以确定第一组数据和第二组数据不是相同的数据。从第三可逆布隆过滤器中的各个区格的数据个数中查找值为1或者-1的区格,可以找区格2、区格4和区格5。对区格2、区格4和区格5中的数据进行判断,是否仅存储了一个数据。对区格2中的数据值总和V xor X xor Z进行第二哈希运算得到的第二哈希值Hc(V xor Xxor Z),与区格2中的哈希值总和Hc(V)xor Hc(X)xor Hc(Z)进行比较,两者不一致,因此,区格2中存储的不是一个数据。对区格4中的数据值总和V进行第二哈希运算得到的第二哈希值Hc(V),与区格4中的哈希值总和Hc(V)进行比较,两者一致,因此,区格4中存储的是一个数据。对区格5中的数据值总和Z进行第二哈希运算得到的第二哈希值Hc(Z),与区格5中的哈希值总和Hc(Z)进行比较,两者一致,因此,区格5中存储的是一个数据。
在判断区格中仅存储一个数据时,执行步骤S407。
步骤S407,若是,对数据进行第一哈希运算,得到数据的第一哈希运算的结果对应的区格。
对该区格中的数据进行第一哈希运算,得到该数据的第一哈希运算的结果对应的区格。对图5c中的区格4的数据V进行第一哈希运算,得到其对应的区格分别为1、2和4,对图5c中的区格5的数据Z进行第一哈希运算,得到其对应的区格分别为2、3和5。
步骤S408,根据该区格中数据个数的值,将第三可逆布隆过滤器中该数据对应的区格进行数据消除操作或数据添加操作。
根据该区格中数据个数的值,当第三可逆布隆过滤器中区格4的数据个数的值为1时,由于第三可逆布隆过滤器中区格4的数据个数是由第一可逆布隆过滤器中区格4的数据个数减去第二可逆布隆过滤器中区格4的数据个数得到的,即第一可逆布隆过滤器中区格4存储的数据比第二可逆布隆过滤器中区格4存储的数据多一个,第三可逆布隆过滤器中区格4中的数据V仅存在第一组数据中不存在第二组数据中。为进一步比较两组数据中是否还存在其他不同数据,可以对该数据V进行数据消除操作。在将第三可逆布隆过滤器中的数据V进行数据消除操作时,需要将第三可逆布隆过滤器中该数据V对应的区格1、2和4中的数据个数的值均减一,将区格1、2和4中数据值总和更新为区格1、2和4中原数据值总和与该数据V进行按位异或后的数据值总和,将区格1、2和4中哈希值总和更新为区格1、2和4中原哈希值总和与该数据V进行第二哈希运算得到的第二哈希值Hc(V)进行按位异或后的哈希值总和。数据消除操作后得到的第三可逆布隆过滤器中的数据如图5d所示。
根据该区格中数据个数的值,当第三可逆布隆过滤器中区格5的数据个数的值为-1时,由于第三可逆布隆过滤器中区格5的数据个数是由第一可逆布隆过滤器中区格5的数据个数减去第二可逆布隆过滤器中区格5的数据个数得到的,即第一可逆布隆过滤器中区格5存储的数据比第二可逆布隆过滤器中区格5存储的数据少一个,第三可逆布隆过滤器中区格5中的数据Z仅存在第二组数据中不存在第一组数据中。为进一步比较两组数据中是否还存在其他不同数据,可以对该数据Z进行数据添加操作。在将第三可逆布隆过滤器中的数据Z进行数据添加操作时,需要将第三可逆布隆过滤器中该数据Z对应的区格2、3和5中的数据个数的值均加一,将区格2、3和5中数据值总和更新为区格2、3和5中原数据值总和与该数据Z进行按位异或后的数据值总和,将区格2、3和5中哈希值总和更新为区格2、3和5中原哈希值总和与该数据V进行第二哈希运算得到的第二哈希值Hc(Z)进行按位异或后的哈希值总和。数据添加操作后得到的第三可逆布隆过滤器中的数据如图5e所示。
本实施例按照举例说明的顺序依次执行数据消除操作和数据添加操作,实施时根据实际数据情况执行,数据添加操作和数据消除操作的执行顺序不做限定。
在执行该步骤后,再执行步骤S403,判断第三可逆布隆过滤器中各个区格的数值是否均为0,若不是均为0,则重复执行上述步骤,直至第三可逆布隆过滤器中各个区格的数据个数、数据值总和及哈希值总和均为0,即找出第一组数据和第二组数据中的不同数据为止。就本实施例而言,图5e中第三可逆布隆过滤器的区格1、2和3中还存在数据X,该数据X仅存在第一组数据中不存在第二组数据中。进一步执行上述步骤,对数据X进行数据消除操作。在对数据X进行数据消除操作后,第三可逆布隆过滤器中各个区格的数值均为0。即第一组数据和第二组数据的不同之处在于:第一组数据中还包括了数据X和V,第二组数据中还包括了数据Z。
进一步,若第一组数据为本地数据,第二组数据为线上数据,当第二组数据被进行了恶意篡改后,还可以利用步骤S405-S407,在对第三可逆布隆过滤器进行数据消除操作或数据添加操作的同时,对第二可逆布隆过滤器进行相同的数据消除操作或数据添加操作,将第二组数据恢复成与第一组数据相同的数据,以保障数据的安全。
根据本发明提供的数据保护方法,不仅能够比较任意两组数据是否相同,还可以进一步找出两组数据中具体不同的数据。在对数据进行比较的同时,还可以通过比较结果将不同于第一组数据的第二组数据恢复为与第一组数据相同的数据。尤其适用于当第二组数据被篡改后,可以将数据进行有效恢复,避免数据错误造成的损失。
图6示出了根据本发明一个实施例的数据保护装置的功能框图,如图6所示,本装置中包含以下模块:
本装置用于对任意两组数据进行比较,任意两组数据包括第一组数据和第二组数据。
获取模块610,用于分别获取存储第一组数据的第一可逆布隆过滤器和存储第二组数据的第二可逆布隆过滤器。
本发明可以用于对任意两组数据进行比较,任意两组数据包括第一组数据和第二组数据。这两组数据可以为本地的两组数据,或者一组数据在本地存储,另一组数据存储在其他位置。
当两组数据已经存储在其对应的可逆布隆过滤器中时,获取模块610可以直接获取到其对应的可逆布隆过滤器。
比较模块620,用于将第一可逆布隆过滤器和第二可逆布隆过滤器进行位运算处理,得到第三可逆布隆过滤器;根据第三可逆布隆过滤器中各个区格的数值,得到第一组数据和第二组数据的比较结果。
经过获取模块610得到了存储有第一组数据的第一可逆布隆过滤器和存储有第二组数据的第二可逆布隆过滤器,比较模块620将第一可逆布隆过滤器和第二可逆布隆过滤器按照区格位置,对各区格中的数据分别进行位运算处理,得到第三可逆布隆过滤器。
比较模块620在对区格中的数据进行位运算处理时,比较模块620对数据个数的处理为依次对第一可逆布隆过滤器中区格的数据个数和第二可逆布隆过滤器中相同位置的区格的数据个数进行减法处理,得到第三可逆布隆过滤器中相同位置的区格的数据个数。其中,第一可逆布隆过滤器中区格的数据个数为被减数;第二可逆布隆过滤器中相同位置的区格的数据个数为减数。当第一可逆布隆过滤器中区格的数据个数与第二可逆布隆过滤器中相同位置的区格的数据个数的值大小相同时,即第一可逆布隆过滤器中区格存储的数据个数与第二可逆布隆过滤器中相同位置的区格存储的数据个数相同,比较模块620得到的第三可逆布隆过滤器中相同位置的区格的数据个数的值为0,否则,即第一可逆布隆过滤器中区格存储的数据个数与第二可逆布隆过滤器中相同位置的区格存储的数据个数不同,比较模块620得到的第三可逆布隆过滤器中相同位置的区格的数据个数的值不为0。
比较模块620对数据值总和的处理为依次对第一可逆布隆过滤器中区格的数据值总和与第二可逆布隆过滤器中相同位置的区格的数据值总和进行按位异或处理,得到第三可逆布隆过滤器中相同位置的区格的数据值总和。当比较模块620对第一可逆布隆过滤器中区格中存储的数据值总和与第二可逆布隆过滤器中相同位置的区格存储的数据值总和进行按位异或处理时,若第一可逆布隆过滤器中区格中存储的数据与第二可逆布隆过滤器中相同位置的区格存储的数据相同时,根据按位异或处理的原理,相同值异或处理后,值为0,不同值异或处理后,值为1。比较模块620得到的第三可逆布隆过滤器中相同位置的区格的数据值总和为0。否则,即第一可逆布隆过滤器中区格存储的数据与第二可逆布隆过滤器中相同位置的区格存储的数据不同,比较模块620得到的第三可逆布隆过滤器中相同位置的区格的数据值总和不为0。
比较模块620对哈希值总和的处理为依次对第一可逆布隆过滤器中区格的哈希值总和与第二可逆布隆过滤器中相同位置的区格的哈希值总和进行按位异或处理,比较模块620得到第三可逆布隆过滤器中相同位置的区格的哈希值总和。当比较模块620对第一可逆布隆过滤器中区格中存储的哈希值总和与第二可逆布隆过滤器中相同位置的区格存储的哈希值总和进行按位异或处理时,若第一可逆布隆过滤器中区格中存储的数据与第二可逆布隆过滤器中相同位置的区格存储的数据相同时,根据按位异或处理的原理,相同值异或处理后,值为0,不同值异或处理后,值为1。比较模块620得到的第三可逆布隆过滤器中相同位置的区格的哈希值总和为0。否则,即第一可逆布隆过滤器中区格存储的数据与第二可逆布隆过滤器中相同位置的区格存储的数据不同,比较模块620得到的第三可逆布隆过滤器中相同位置的区格的哈希值总和不为0。
比较模块620还包括:第一差值判断模块621,用于若第三可逆布隆过滤器中各个区格的数据个数、数据值总和及哈希值总和均为0,则第一组数据和第二组数据相同。
第一差值判断模块621判断第三可逆布隆过滤器中区格的数据个数为0,即第一可逆布隆过滤器和第二可逆布隆过滤器的区格中存储的数据个数相同,比较模块620相减后得到的第三可逆布隆过滤器的区格中的数据个数为0。
第一差值判断模块621判断第三可逆布隆过滤器中区格的数据值总和的值为0,由于比较模块620按位异或操作相同的数据时,结果为0,即第一可逆布隆过滤器和第二可逆布隆过滤器的区格中存储的数据值总和的值相同。
第一差值判断模块621第三可逆布隆过滤器中区格的哈希值总和的值为0,由于比较模块620按位异或操作相同的数据时,结果为0,即第一可逆布隆过滤器和第二可逆布隆过滤器的区格中存储的哈希值总和的值相同。
当第三可逆布隆过滤器中各个区格的数据个数、数据值总和及哈希值总和均为0,第一差值判断模块621可以确认第一组数据和第二组数据完全相同。
比较模块620对第一组数据和第二组数据的比较,可以方便的了解到第一组数据是否与第二组数据相同。若第一组数据为本地数据,第二组数据为线上数据,比较模块620对两组数据的进行比较后,可以检测线上数据是否被病毒木马等恶意程序进行篡改,以提醒用户,避免用户使用被篡改的数据造成用户的损失。
根据本发明提供的数据保护装置,利用可逆布隆过滤器对数据进行存储,在存储时可以无需使用复杂的密码学安全的哈希函数,以减小性能开销。同时,存储所使用的可逆布隆过滤器大小固定,与待存储数据的数据量大小无关,不受待存储数据的数据量限制。在对两组数据进行比较时,仅需要在对两组可逆布隆过滤器进行简单的位运算处理即可检测数据是否一致。本发明对多个数据在存储时,采用异或处理的方式进行存储,方便后续在比较时,执行一步位运算处理即可检测两组数据是否相同,处理方便高效。
图7示出了根据本发明另一个实施例的数据保护装置的功能框图,如图7所示,与图6相比,本装置还包括如下模块:
当两组数据的其中一组或两组数据都还没有存储到可逆布隆过滤器时,在获取模块610获取可逆布隆过滤器之前,本装置还包括了存储模块630。存储模块630用于将第一组数据存储至第一可逆布隆过滤器和/或将第二组数据存储至第二可逆布隆过滤器。
其中,所述存储模块630包括了:初始化模块631和数据存储模块632。
初始化模块621,用于初始化一个可逆布隆过滤器。
对第一组数据和/或第二组数据中的每一组数据均初始化一个可逆布隆过滤器,为第一组数据初始化一个第一可逆布隆过滤器,和/或为第二组数据初始化一个第二可逆布隆过滤器。每个可逆布隆过滤器均包括预设数量的区格,且两个可逆布隆过滤器的区格数量相同。
每个区格中都包括了数据个数、数据值总和及哈希值总和。其中,数据个数、数据值总和及哈希值总和的初始值均为0。数据个数用于记录区格中存储的数据的总个数。
数据存储模块632,用于对第一组数据和/或第二组数据中的每一组数据中的所有数据依次进行第一哈希运算,根据每个数据的第一哈希运算的结果,将每个数据依次存储至可逆布隆过滤器对应的区格。
数据存储模块632将第一组数据存储至第一可逆布隆过滤器,和/或将第二组数据存储至第二可逆布隆过滤器。以下就数据存储模块632存储一组数据为例进行说明。
数据存储模块632还包括:第一哈希模块6321和区格存储模块6322。
第一哈希模块6321,用于对每个数据执行预设数量的第一哈希函数,得到该数据对应的预设数量的第一哈希值。
区格存储模块6322,用于根据预设数量的第一哈希值,将该数据存储至可逆布隆过滤器中第一哈希值对应的区格。
第一哈希模块6321对一组数据中的所有数据依次进行第一哈希运算,其中,第一哈希运算包括预设数量的第一哈希函数。第一哈希模块6321对每个数据均执行预设数量的第一哈希函数。预设数量可以根据实施情况进行设置。在本实施例中采用3个第一哈希函数,分别为Hk1、Hk2和Hk3。第一哈希模块6321对每个数据分别执行Hk1、Hk2和Hk3,得到该数据对应的Hk1、Hk2和Hk3的3个第一哈希值。
区格存储模块6322根据这3个第一哈希值,将该数据存储至可逆布隆过滤器中3个第一哈希值分别对应的区格。如图2所示,本实施例初始化一个包括8个区格的可逆布隆过滤器,其中区格位置为0-7。一组数据包括了S1-S12,以存储模块630存储数据S6为例。第一哈希模块6321对数据S6分别执行Hk1、Hk2和Hk3。得到S6对应的3个第一哈希值,分别为4、3和5,区格存储模块6322将数据S6分别存储在可逆布隆过滤器中位置为4、3和5的区格中。
进一步,若第一哈希值较大时,如第一哈希值为12,超过可逆布隆过滤器中区格的预算数量时,数据存储模块632还包括:取余模块6323。
取余模块6323,用于将预设数量的第一哈希值按照可逆布隆过滤器的区格的预设数量进行取余运算,得到对应的余数。
当第一哈希值为12,取余模块6323可以将第一哈希值按照可逆布隆过滤器的区格的预设数量8进行取余运算,取余模块6323对12按照8取余,得到对应的余数为4。数据存储模块632再根据余数4将该数据存储至可逆布隆过滤器中余数4对应的区格4中。
数据存储模块632将数据存储至对应的区格时,区格中的数据个数为将区格中原数据个数的值加一。区格中数据值总和更新为区格中原数据值总和与该数据进行按位异或后的数据值总和。区格中哈希值总和更新为区格中原哈希值总和与该数据进行第二哈希运算得到的第二哈希值进行按位异或后的哈希值总和。其中,第二哈希运算为预先选定的一个哈希函数。如图3所示,数据存储模块632将数据S6分别存储到区格3、区格4和区格5中。其中,各区格中的数据个数count更新为原数据个数count的值加1。区格中数据值总和idSum更新为区格中原数据值总和idSum与数据S6进行按位异或(xor操作)后的数据值总和。区格中哈希值总和hashSum更新为区格中原哈希值总和hashSum与数据S6进行第二哈希运算(哈希函数为Hc)得到的第二哈希值进行按位异或后的哈希值总和。
进一步,当数据存储模块632将第一组数据在存储至第一可逆布隆过滤器后,第一组数据又增加了新的数据时,在已经存储的第一可逆布隆过滤器的基础上,数据存储模块632可以仅对新增加的数据进行第一哈希运算,根据新增加的数据的第一哈希运算的结果,数据存储模块632将新增加的数据存储至第一可逆布隆过滤器对应的区格,而不需要将之前已经处理的数据重新存储,减少了数据更新对存储的影响,使得已经存储的第一可逆布隆过滤器可以继续使用。同理,第二可逆布隆过滤器也可以适用于第二组数据又增加新数据需要存储的情况。
在比较模块620中还包括了第二差值判断模块622、第二差值消除模块623、第三差值判断模块624、第三差值添加模块625和循环模块626。
第二差值判断模块622,用于若第三可逆布隆过滤器中区格的数据个数的值为1,判断区格是否仅存储一个数据,若是,则数据存在第一组数据中不存在第二组数据中。
第二差值消除模块623,用于对数据进行第一哈希运算,得到数据的第一哈希运算的结果对应的区格;将第三可逆布隆过滤器中该数据对应的区格进行数据消除操作。
第三差值判断模块624,用于若第三可逆布隆过滤器中区格的数据个数的值为-1,判断区格是否仅存储一个数据,若是,则数据存在第二组数据中不存在第一组数据中。
第三差值添加模块625,用于对数据进行第一哈希运算,得到数据的第一哈希运算的结果对应的区格;将第三可逆布隆过滤器中该数据对应的区格进行数据添加操作。
循环模块626,用于重复执行第二差值判断模块622、第二差值消除模块623、第三差值判断模块624和/或第三差值添加模块625,直至第三可逆布隆过滤器第三可逆布隆过滤器中各个区格的数据个数、数据值总和及哈希值总和均为0。
其中,第二差值判断模块622和/或第三差值判断模块624还包括:
单数据判断模块627,用于将区格中数据值总和进行第二哈希运算得到的第二哈希值与区格中的哈希值总和进行比较,若相同,则区格仅存储一个数据;否则,区格存储不是一个数据。
当比较模块620判断第三可逆布隆过滤器中某个或某些区格的数据个数、数据值总和及哈希值总和不为0时,即第一组数据和第二组数据中存在不同的数据。本发明还可以进一步查找出两组数据中不同的数据。在查找不同数据时,从第三可逆布隆过滤器的所有区格中找出区格中数据个数的值为1或者-1的区格。第二差值判断模块622用于对区格中数据个数的值为1的数据进行判断,第三差值判断模块624用于对区格中数据个数的值为-1的数据进行判断。通过单数据判断模块627判断找出的第三可逆布隆过滤器的区格中是否仅存储了一个数据。
单数据判断模块627判断区格是否仅存储一个数据时,可以将该区格中存储的数据值总和进行第二哈希运算得到的第二哈希值与该区格中存储的哈希值总和进行比较,若相同,即可确认该区格仅存储一个数据。否则,该区格可能存储多个数据。
参照图5a-图5c所示,第一组数据包括V、W、X和Y,通过初始化模块621和数据存储模块632将其存储在第一可逆布隆过滤器中。第一可逆布隆过滤器各个区格的数据如图5a所示。第二组数据包括W、Y和Z,通过初始化模块631和数据存储模块632将其存储在第二可逆布隆过滤器中。第二可逆布隆过滤器各个区格的数据如图5b所示。比较模块620将第一可逆布隆过滤器和第二可逆布隆过滤器进行位运算处理,得到第三可逆布隆过滤器。第三可逆布隆过滤器各个区格的数据如图5c所示。第三可逆布隆过滤器中的各个区格的值不是均为0,可以确定第一组数据和第二组数据不是相同的数据。第二差值判断模块622和/或第三差值判断模块624从第三可逆布隆过滤器中的各个区格的数据个数中查找值为1或者-1的区格,可以找区格2、区格4和区格5。单数据判断模块627对区格2、区格4和区格5中的数据进行判断,是否仅存储了一个数据。单数据判断模块627对区格2中的数据值总和V xor X xorZ进行第二哈希运算得到的第二哈希值Hc(V xor X xor Z),与区格2中的哈希值总和Hc(V)xor Hc(X)xor Hc(Z)进行比较,两者不一致,因此,区格2中存储的不是一个数据。单数据判断模块627对区格4中的数据值总和V进行第二哈希运算得到的第二哈希值Hc(V),与区格4中的哈希值总和Hc(V)进行比较,两者一致,因此,区格4中存储的是一个数据。单数据判断模块627对区格5中的数据值总和Z进行第二哈希运算得到的第二哈希值Hc(Z),与区格5中的哈希值总和Hc(Z)进行比较,两者一致,因此,区格5中存储的是一个数据。
第二差值消除模块623和/或第三差值添加模块625对该区格中的数据进行第一哈希运算,得到该数据的第一哈希运算的结果对应的区格。对图5c中的区格4的数据V进行第一哈希运算,得到其对应的区格分别为1、2和4,对图5c中的区格5的数据Z进行第一哈希运算,得到其对应的区格分别为2、3和5。
根据该区格中数据个数的值,当第三可逆布隆过滤器中区格4的数据个数的值为1时,由于第三可逆布隆过滤器中区格4的数据个数是由第一可逆布隆过滤器中区格4的数据个数减去第二可逆布隆过滤器中区格4的数据个数得到的,即第一可逆布隆过滤器中区格4存储的数据比第二可逆布隆过滤器中区格4存储的数据多一个,第三可逆布隆过滤器中区格4中的数据V仅存在第一组数据中不存在第二组数据中。为进一步比较两组数据中是否还存在其他不同数据,第二差值消除模块623可以对该数据V进行数据消除操作。第二差值消除模块623将第三可逆布隆过滤器中的数据V进行数据消除操作时,需要将第三可逆布隆过滤器中该数据V对应的区格1、2和4中的数据个数的值均减一,将区格1、2和4中数据值总和更新为区格1、2和4中原数据值总和与该数据V进行按位异或后的数据值总和,将区格1、2和4中哈希值总和更新为区格1、2和4中原哈希值总和与该数据V进行第二哈希运算得到的第二哈希值Hc(V)进行按位异或后的哈希值总和。第二差值消除模块623数据消除操作后得到的第三可逆布隆过滤器中的数据如图5d所示。
根据该区格中数据个数的值,当第三可逆布隆过滤器中区格5的数据个数的值为-1时,由于第三可逆布隆过滤器中区格5的数据个数是由第一可逆布隆过滤器中区格5的数据个数减去第二可逆布隆过滤器中区格5的数据个数得到的,即第一可逆布隆过滤器中区格5存储的数据比第二可逆布隆过滤器中区格5存储的数据少一个,第三可逆布隆过滤器中区格5中的数据Z仅存在第二组数据中不存在第一组数据中。为进一步比较两组数据中是否还存在其他不同数据,第三差值添加模块625可以对该数据Z进行数据添加操作。第三差值添加模块625将第三可逆布隆过滤器中的数据Z进行数据添加操作时,需要将第三可逆布隆过滤器中该数据Z对应的区格2、3和5中的数据个数的值均加一,将区格2、3和5中数据值总和更新为区格2、3和5中原数据值总和与该数据Z进行按位异或后的数据值总和,将区格2、3和5中哈希值总和更新为区格2、3和5中原哈希值总和与该数据V进行第二哈希运算得到的第二哈希值Hc(Z)进行按位异或后的哈希值总和。第三差值添加模块625数据添加操作后得到的第三可逆布隆过滤器中的数据如图5e所示。
本实施例按照举例说明的顺序依次执行第二差值消除模块623和第三差值添加模块625,实施时根据实际数据情况执行,第二差值消除模块623和第三差值添加模块625的执行顺序不做限定。
在执行上述模块后,再继续进行判断第三可逆布隆过滤器中各个区格的数值是否均为0,若不是均为0,则执行循环模块626,直至第三可逆布隆过滤器中各个区格的数据个数、数据值总和及哈希值总和均为0,即找出第一组数据和第二组数据中的不同数据为止。就本实施例而言,第二差值判断模块622判断图5e中第三可逆布隆过滤器的区格1、2和3中还存在数据X,该数据X仅存在第一组数据中不存在第二组数据中。进一步执行第二差值消除模块623,对数据X进行数据消除操作。在第二差值消除模块623对数据X进行数据消除操作后,第三可逆布隆过滤器中各个区格的数值均为0。即第一组数据和第二组数据的不同之处在于:第一组数据中还包括了数据X和V,第二组数据中还包括了数据Z。
进一步,若第一组数据为本地数据,第二组数据为线上数据,当第二组数据被进行了恶意篡改后,还可以利用上述模块,在对第三可逆布隆过滤器进行数据消除操作或数据添加操作的同时,对第二可逆布隆过滤器进行相同的数据消除操作或数据添加操作,将第二组数据恢复成与第一组数据相同的数据,以保障数据的安全。
除以上模块之外的其他模块可参考图6装置实施例的描述,此处不再赘述。
根据本发明提供的数据保护装置,不仅能够比较任意两组数据是否相同,还可以进一步找出两组数据中具体不同的数据。在对数据进行比较的同时,还可以通过比较结果将不同于第一组数据的第二组数据恢复为与第一组数据相同的数据。尤其适用于当第二组数据被篡改后,可以将数据进行有效恢复,避免数据错误造成的损失。
本申请还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的数据保护方法。
图8示出了根据本发明一个实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图8所示,该电子设备可以包括:处理器(processor)802、通信接口(Communications Interface)804、存储器(memory)806、以及通信总线808。
其中:
处理器802、通信接口804、以及存储器806通过通信总线808完成相互间的通信。
通信接口804,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器802,用于执行程序810,具体可以执行上述数据保护方法实施例中的相关步骤。
具体地,程序810可以包括程序代码,该程序代码包括计算机操作指令。
处理器802可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器806,用于存放程序810。存储器806可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序810具体可以用于使得处理器802执行以下操作:
在一种可选的实施方式中,程序810用于使得处理器802分别获取存储第一组数据的第一可逆布隆过滤器和存储第二组数据的第二可逆布隆过滤器;将第一可逆布隆过滤器和第二可逆布隆过滤器进行位运算处理,得到第三可逆布隆过滤器;根据第三可逆布隆过滤器中各个区格的数值,得到第一组数据和第二组数据的比较结果。
在一种可选的实施方式中,程序810用于使得处理器802将第一组数据存储至第一可逆布隆过滤器和/或将第二组数据存储至第二可逆布隆过滤器;其中,将数据存储至可逆布隆过滤器进一步包括:初始化一个可逆布隆过滤器;对一组数据中的所有数据依次进行第一哈希运算,根据每个数据的第一哈希运算的结果,将每个数据依次存储至所述可逆布隆过滤器对应的区格。
在一种可选的实施方式中,区格中包括数据个数、数据值总和及哈希值总和;其中,数据个数、数据值总和及哈希值总和的初始值均为0。
在一种可选的实施方式中,第一哈希运算包括预设数量的第一哈希函数,程序810用于使得处理器802对每个数据执行预设数量的第一哈希函数,得到该数据对应的预设数量的第一哈希值;根据预设数量的第一哈希值,将该数据存储至可逆布隆过滤器中第一哈希值对应的区格;其中,存储时将区格中数据个数的值加一;将区格中数据值总和更新为区格中原数据值总和与该数据进行按位异或后的数据值总和;将区格中哈希值总和更新为区格中原哈希值总和与该数据进行第二哈希运算得到的第二哈希值进行按位异或后的哈希值总和。
在一种可选的实施方式中,程序810用于使得处理器802将预设数量的第一哈希值按照可逆布隆过滤器的区格的预设数量进行取余运算,得到对应的余数;根据余数将该数据存储至可逆布隆过滤器中余数对应的区格。
在一种可选的实施方式中,程序810用于使得处理器802依次对第一可逆布隆过滤器中区格的数据个数和第二可逆布隆过滤器中相同位置的区格的数据个数进行减法处理,得到第三可逆布隆过滤器中相同位置的区格的数据个数;其中,第一可逆布隆过滤器中区格的数据个数为被减数;第二可逆布隆过滤器中相同位置的区格的数据个数为减数;依次对第一可逆布隆过滤器中区格的数据值总和与第二可逆布隆过滤器中相同位置的区格的数据值总和进行按位异或处理,得到第三可逆布隆过滤器中相同位置的区格的数据值总和;依次对第一可逆布隆过滤器中区格的哈希值总和与第二可逆布隆过滤器中相同位置的区格的哈希值总和进行按位异或处理,得到第三可逆布隆过滤器中相同位置的区格的哈希值总和。
在一种可选的实施方式中,程序810用于使得处理器802若第三可逆布隆过滤器中各个区格的数据个数、数据值总和及哈希值总和均为0,则第一组数据和第二组数据相同。
在一种可选的实施方式中,程序810用于使得处理器802若第三可逆布隆过滤器中区格的数据个数的值为1,判断区格是否仅存储一个数据,若是,则数据存在第一组数据中不存在第二组数据中;对数据进行第一哈希运算,得到数据的第一哈希运算的结果对应的区格;将第三可逆布隆过滤器中该数据对应的区格进行数据消除操作;若第三可逆布隆过滤器中区格的数据个数的值为-1,判断区格是否仅存储一个数据,若是,则数据存在第二组数据中不存在第一组数据中;对数据进行第一哈希运算,得到数据的第一哈希运算的结果对应的区格;将第三可逆布隆过滤器中该数据对应的区格进行数据添加操作;重复执行上述步骤,直至第三可逆布隆过滤器第三可逆布隆过滤器中各个区格的数据个数、数据值总和及哈希值总和均为0。
在一种可选的实施方式中,程序810用于使得处理器802将区格中数据值总和进行第二哈希运算得到的第二哈希值与区格中的哈希值总和进行比较,若相同,则区格仅存储一个数据;否则,区格存储不是一个数据。
在一种可选的实施方式中,程序810用于使得处理器802将第三可逆布隆过滤器中该数据对应的区格的数据个数的值减一;将区格中数据值总和更新为区格中原数据值总和与该数据进行按位异或后的数据值总和;将区格中哈希值总和更新为区格中原哈希值总和与该数据进行第二哈希运算得到的第二哈希值进行按位异或后的哈希值总和。
在一种可选的实施方式中,程序810用于使得处理器802将第三可逆布隆过滤器中该数据对应的区格的数据个数的值加一;将区格中数据值总和更新为区格中原数据值总和与该数据进行按位异或后的数据值总和;将区格中哈希值总和更新为区格中原哈希值总和与该数据进行第二哈希运算得到的第二哈希值进行按位异或后的哈希值总和。
程序810中各步骤的具体实现可以参见上述加密程序识别实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
通过本实施例提供的方案,利用可逆布隆过滤器对数据进行存储,在存储时可以无需使用复杂的密码学安全的哈希函数,以减小性能开销。同时,存储所使用的可逆布隆过滤器大小固定,与待存储数据的数据量大小无关,不受待存储数据的数据量限制。在对两组数据进行比较时,仅需要在对两组可逆布隆过滤器进行简单的位运算处理即可检测数据是否一致。进一步,本发明还可以检测出两组数据中具体的不同的数据值。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:A1.一种数据保护方法,所述方法用于对任意两组数据进行比较,所述任意两组数据包括第一组数据和第二组数据,其特征在于,包括:
分别获取存储第一组数据的第一可逆布隆过滤器和存储第二组数据的第二可逆布隆过滤器;其中,所述第一可逆布隆过滤器和第二可逆布隆过滤器均包括预设数量的区格;
将所述第一可逆布隆过滤器和所述第二可逆布隆过滤器进行位运算处理,得到第三可逆布隆过滤器;
根据所述第三可逆布隆过滤器中各个区格的数值,得到所述第一组数据和所述第二组数据的比较结果。
A2.根据A1所述的方法,其特征在于,所述方法还包括:
将所述第一组数据存储至所述第一可逆布隆过滤器和/或将所述第二组数据存储至所述第二可逆布隆过滤器;其中,将数据存储至可逆布隆过滤器进一步包括:
初始化一个可逆布隆过滤器;
对一组数据中的所有数据依次进行第一哈希运算,根据每个数据的第一哈希运算的结果,将每个数据依次存储至所述可逆布隆过滤器对应的区格。
A3.根据A1所述的方法,其特征在于,所述区格中包括数据个数、数据值总和及哈希值总和;其中,所述数据个数、数据值总和及哈希值总和的初始值均为0。
A4.根据A3所述的方法,其特征在于,所述第一哈希运算包括预设数量的第一哈希函数;
所述对这组数据中的所有数据依次进行第一哈希运算,根据每个数据的第一哈希运算的结果,将每个数据依次存储至所述可逆布隆过滤器对应的区格进一步包括:
对每个所述数据执行预设数量的第一哈希函数,得到该数据对应的预设数量的第一哈希值;
根据所述预设数量的第一哈希值,将该数据存储至所述可逆布隆过滤器中所述第一哈希值对应的区格;其中,存储时将区格中数据个数的值加一;将区格中数据值总和更新为区格中原数据值总和与该数据进行按位异或后的数据值总和;将区格中哈希值总和更新为区格中原哈希值总和与该数据进行第二哈希运算得到的第二哈希值进行按位异或后的哈希值总和。
A5.根据A4所述的方法,其特征在于,所述根据所述预设数量的第一哈希值,将该数据存储至所述可逆布隆过滤器中所述第一哈希值对应的区格进一步包括:
将所述预设数量的第一哈希值按照所述可逆布隆过滤器的区格的预设数量进行取余运算,得到对应的余数;
根据所述余数将该数据存储至所述可逆布隆过滤器中所述余数对应的区格。
A6.根据A3所述的方法,其特征在于,所述将所述第一可逆布隆过滤器和所述第二可逆布隆过滤器进行位运算处理,得到第三可逆布隆过滤器进一步包括:
依次对所述第一可逆布隆过滤器中区格的数据个数和所述第二可逆布隆过滤器中相同位置的区格的数据个数进行减法处理,得到第三可逆布隆过滤器中相同位置的区格的数据个数;其中,所述第一可逆布隆过滤器中区格的数据个数为被减数;所述第二可逆布隆过滤器中相同位置的区格的数据个数为减数;
依次对所述第一可逆布隆过滤器中区格的数据值总和与所述第二可逆布隆过滤器中相同位置的区格的数据值总和进行按位异或处理,得到第三可逆布隆过滤器中相同位置的区格的数据值总和;
依次对所述第一可逆布隆过滤器中区格的哈希值总和与所述第二可逆布隆过滤器中相同位置的区格的哈希值总和进行按位异或处理,得到第三可逆布隆过滤器中相同位置的区格的哈希值总和。
A7.根据A3所述的方法,其特征在于,所述根据所述第三可逆布隆过滤器中各个区格的数值,得到所述第一组数据和所述第二组数据的比较结果进一步包括:
若所述第三可逆布隆过滤器中各个区格的数据个数、数据值总和及哈希值总和均为0,则所述第一组数据和所述第二组数据相同。
A8.根据A3所述的方法,其特征在于,所述根据所述第三可逆布隆过滤器中各个区格的数值,得到所述第一组数据和所述第二组数据的比较结果进一步包括:
若所述第三可逆布隆过滤器中区格的数据个数的值为1,判断所述区格是否仅存储一个数据,若是,则所述数据存在第一组数据中不存在第二组数据中;
对所述数据进行第一哈希运算,得到所述数据的第一哈希运算的结果对应的区格;将所述第三可逆布隆过滤器中该数据对应的区格进行数据消除操作;
若所述第三可逆布隆过滤器中区格的数据个数的值为-1,判断所述区格是否仅存储一个数据,若是,则所述数据存在第二组数据中不存在第一组数据中;
对所述数据进行第一哈希运算,得到所述数据的第一哈希运算的结果对应的区格;将所述第三可逆布隆过滤器中该数据对应的区格进行数据添加操作;
重复执行上述步骤,直至所述第三可逆布隆过滤器第三可逆布隆过滤器中各个区格的数据个数、数据值总和及哈希值总和均为0。
A9.根据A8所述的方法,其特征在于,所述判断所述区格是否仅存储一个数据包括:
将所述区格中数据值总和进行第二哈希运算得到的第二哈希值与所述区格中的哈希值总和进行比较,若相同,则所述区格仅存储一个数据;否则,所述区格存储不是一个数据。
A10.根据A8所述的方法,其特征在于,所述将所述第三可逆布隆过滤器中该数据对应的区格进行数据消除操作进一步包括:
将所述第三可逆布隆过滤器中该数据对应的所述区格的数据个数的值减一;将所述区格中数据值总和更新为区格中原数据值总和与该数据进行按位异或后的数据值总和;将所述区格中哈希值总和更新为区格中原哈希值总和与该数据进行第二哈希运算得到的第二哈希值进行按位异或后的哈希值总和。
A11.根据A8所述的方法,其特征在于,所述将所述第三可逆布隆过滤器中该数据对应的区格进行数据添加操作进一步包括:
将所述第三可逆布隆过滤器中该数据对应的所述区格的数据个数的值加一;将所述区格中数据值总和更新为区格中原数据值总和与该数据进行按位异或后的数据值总和;将所述区格中哈希值总和更新为区格中原哈希值总和与该数据进行第二哈希运算得到的第二哈希值进行按位异或后的哈希值总和。
本发明还公开了:B12.一种数据保护装置,所述装置用于对任意两组数据进行比较,所述任意两组数据包括第一组数据和第二组数据,其特征在于,包括:
获取模块,用于分别获取存储第一组数据的第一可逆布隆过滤器和存储第二组数据的第二可逆布隆过滤器;其中,所述第一可逆布隆过滤器和第二可逆布隆过滤器均包括预设数量的区格;
比较模块,用于将所述第一可逆布隆过滤器和所述第二可逆布隆过滤器进行位运算处理,得到第三可逆布隆过滤器;根据所述第三可逆布隆过滤器中各个区格的数值,得到所述第一组数据和所述第二组数据的比较结果。
B13.根据B12所述的装置,其特征在于,所述装置还包括:
存储模块,用于将所述第一组数据存储至所述第一可逆布隆过滤器和/或将所述第二组数据存储至所述第二可逆布隆过滤器;其中,所述存储模块包括:
初始化模块,用于初始化一个可逆布隆过滤器;
数据存储模块,用于对一组数据中的所有数据依次进行第一哈希运算,根据每个数据的第一哈希运算的结果,将每个数据依次存储至所述可逆布隆过滤器对应的区格。
B14.根据B11所述的装置,其特征在于,所述区格中包括数据个数、数据值总和及哈希值总和;其中,所述数据个数、数据值总和及哈希值总和的初始值均为0。
B15.根据B14所述的装置,其特征在于,所述第一哈希运算包括预设数量的第一哈希函数;
所述存储模块还包括:
第一哈希模块,用于对每个所述数据执行预设数量的第一哈希函数,得到该数据对应的预设数量的第一哈希值;
区格存储模块,用于根据所述预设数量的第一哈希值,将该数据存储至所述可逆布隆过滤器中所述第一哈希值对应的区格;其中,存储时将区格中数据个数的值加一;将区格中数据值总和更新为区格中原数据值总和与该数据进行按位异或后的数据值总和;将区格中哈希值总和更新为区格中原哈希值总和与该数据进行第二哈希运算得到的第二哈希值进行按位异或后的哈希值总和。
B16.根据B15所述的装置,其特征在于,所述存储模块还包括:
取余模块,用于将所述预设数量的第一哈希值按照所述可逆布隆过滤器的区格的预设数量进行取余运算,得到对应的余数;
所述区格存储模块进一步用于:根据所述余数将该数据存储至所述可逆布隆过滤器中所述余数对应的区格。
B17.根据B14所述的装置,其特征在于,所述比较模块进一步用于:
依次对所述第一可逆布隆过滤器中区格的数据个数和所述第二可逆布隆过滤器中相同位置的区格的数据个数进行减法处理,得到第三可逆布隆过滤器中相同位置的区格的数据个数;其中,所述第一可逆布隆过滤器中区格的数据个数为被减数;所述第二可逆布隆过滤器中相同位置的区格的数据个数为减数;
依次对所述第一可逆布隆过滤器中区格的数据值总和与所述第二可逆布隆过滤器中相同位置的区格的数据值总和进行按位异或处理,得到第三可逆布隆过滤器中相同位置的区格的数据值总和;
依次对所述第一可逆布隆过滤器中区格的哈希值总和与所述第二可逆布隆过滤器中相同位置的区格的哈希值总和进行按位异或处理,得到第三可逆布隆过滤器中相同位置的区格的哈希值总和。
B18.根据B14所述的装置,其特征在于,所述比较模块还包括:
第一差值判断模块,用于若所述第三可逆布隆过滤器中各个区格的数据个数、数据值总和及哈希值总和均为0,则所述第一组数据和所述第二组数据相同。
B19.根据B14所述的装置,其特征在于,所述比较模块还包括:
第二差值判断模块,用于若所述第三可逆布隆过滤器中区格的数据个数的值为1,判断所述区格是否仅存储一个数据,若是,则所述数据存在第一组数据中不存在第二组数据中;
第二差值消除模块,用于对所述数据进行第一哈希运算,得到所述数据的第一哈希运算的结果对应的区格;将所述第三可逆布隆过滤器中该数据对应的区格进行数据消除操作;
第三差值判断模块,用于若所述第三可逆布隆过滤器中区格的数据个数的值为-1,判断所述区格是否仅存储一个数据,若是,则所述数据存在第二组数据中不存在第一组数据中;
第三差值添加模块,用于对所述数据进行第一哈希运算,得到所述数据的第一哈希运算的结果对应的区格;将所述第三可逆布隆过滤器中该数据对应的区格进行数据添加操作;
循环模块,用于重复执行所述第二差值判断模块、第二差值消除模块、第三差值判断模块和/或第三差值消除模块,直至所述第三可逆布隆过滤器第三可逆布隆过滤器中各个区格的数据个数、数据值总和及哈希值总和均为0。
B20.根据B19所述的装置,其特征在于,所述第二差值判断模块和/或所述第三差值判断模块还包括:
单数据判断模块,用于将所述区格中数据值总和进行第二哈希运算得到的第二哈希值与所述区格中的哈希值总和进行比较,若相同,则所述区格仅存储一个数据;否则,所述区格存储不是一个数据。
B21.根据B19所述的装置,其特征在于,所述第二差值消除模块进一步用于:
将所述第三可逆布隆过滤器中该数据对应的所述区格的数据个数的值减一;将所述区格中数据值总和更新为区格中原数据值总和与该数据进行按位异或后的数据值总和;将所述区格中哈希值总和更新为区格中原哈希值总和与该数据进行第二哈希运算得到的第二哈希值进行按位异或后的哈希值总和。
B22.根据B19所述的装置,其特征在于,所述第三差值添加模块进一步用于:
将所述第三可逆布隆过滤器中该数据对应的所述区格的数据个数的值加一;将所述区格中数据值总和更新为区格中原数据值总和与该数据进行按位异或后的数据值总和;将所述区格中哈希值总和更新为区格中原哈希值总和与该数据进行第二哈希运算得到的第二哈希值进行按位异或后的哈希值总和。
本发明还公开了:C23.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如A1-A11中任一项所述的数据保护方法对应的操作。
本发明还公开了:D24.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如A1-A11中任一项所述的数据保护方法对应的操作。

Claims (10)

1.一种数据保护方法,所述方法用于对任意两组数据进行比较,所述任意两组数据包括第一组数据和第二组数据,其特征在于,包括:
分别获取存储第一组数据的第一可逆布隆过滤器和存储第二组数据的第二可逆布隆过滤器;其中,所述第一可逆布隆过滤器和第二可逆布隆过滤器均包括预设数量的区格;
将所述第一可逆布隆过滤器和所述第二可逆布隆过滤器进行位运算处理,得到第三可逆布隆过滤器;
根据所述第三可逆布隆过滤器中各个区格的数值,得到所述第一组数据和所述第二组数据的比较结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述第一组数据存储至所述第一可逆布隆过滤器和/或将所述第二组数据存储至所述第二可逆布隆过滤器;其中,将数据存储至可逆布隆过滤器进一步包括:
初始化一个可逆布隆过滤器;
对一组数据中的所有数据依次进行第一哈希运算,根据每个数据的第一哈希运算的结果,将每个数据依次存储至所述可逆布隆过滤器对应的区格。
3.根据权利要求1所述的方法,其特征在于,所述区格中包括数据个数、数据值总和及哈希值总和;其中,所述数据个数、数据值总和及哈希值总和的初始值均为0。
4.根据权利要求3所述的方法,其特征在于,所述第一哈希运算包括预设数量的第一哈希函数;
所述对这组数据中的所有数据依次进行第一哈希运算,根据每个数据的第一哈希运算的结果,将每个数据依次存储至所述可逆布隆过滤器对应的区格进一步包括:
对每个所述数据执行预设数量的第一哈希函数,得到该数据对应的预设数量的第一哈希值;
根据所述预设数量的第一哈希值,将该数据存储至所述可逆布隆过滤器中所述第一哈希值对应的区格;其中,存储时将区格中数据个数的值加一;将区格中数据值总和更新为区格中原数据值总和与该数据进行按位异或后的数据值总和;将区格中哈希值总和更新为区格中原哈希值总和与该数据进行第二哈希运算得到的第二哈希值进行按位异或后的哈希值总和。
5.根据权利要求4所述的方法,其特征在于,所述根据所述预设数量的第一哈希值,将该数据存储至所述可逆布隆过滤器中所述第一哈希值对应的区格进一步包括:
将所述预设数量的第一哈希值按照所述可逆布隆过滤器的区格的预设数量进行取余运算,得到对应的余数;
根据所述余数将该数据存储至所述可逆布隆过滤器中所述余数对应的区格。
6.根据权利要求3所述的方法,其特征在于,所述将所述第一可逆布隆过滤器和所述第二可逆布隆过滤器进行位运算处理,得到第三可逆布隆过滤器进一步包括:
依次对所述第一可逆布隆过滤器中区格的数据个数和所述第二可逆布隆过滤器中相同位置的区格的数据个数进行减法处理,得到第三可逆布隆过滤器中相同位置的区格的数据个数;其中,所述第一可逆布隆过滤器中区格的数据个数为被减数;所述第二可逆布隆过滤器中相同位置的区格的数据个数为减数;
依次对所述第一可逆布隆过滤器中区格的数据值总和与所述第二可逆布隆过滤器中相同位置的区格的数据值总和进行按位异或处理,得到第三可逆布隆过滤器中相同位置的区格的数据值总和;
依次对所述第一可逆布隆过滤器中区格的哈希值总和与所述第二可逆布隆过滤器中相同位置的区格的哈希值总和进行按位异或处理,得到第三可逆布隆过滤器中相同位置的区格的哈希值总和。
7.根据权利要求3所述的方法,其特征在于,所述根据所述第三可逆布隆过滤器中各个区格的数值,得到所述第一组数据和所述第二组数据的比较结果进一步包括:
若所述第三可逆布隆过滤器中各个区格的数据个数、数据值总和及哈希值总和均为0,则所述第一组数据和所述第二组数据相同。
8.一种数据保护装置,所述装置用于对任意两组数据进行比较,所述任意两组数据包括第一组数据和第二组数据,其特征在于,包括:
获取模块,用于分别获取存储第一组数据的第一可逆布隆过滤器和存储第二组数据的第二可逆布隆过滤器;其中,所述第一可逆布隆过滤器和第二可逆布隆过滤器均包括预设数量的区格;
比较模块,用于将所述第一可逆布隆过滤器和所述第二可逆布隆过滤器进行位运算处理,得到第三可逆布隆过滤器;根据所述第三可逆布隆过滤器中各个区格的数值,得到所述第一组数据和所述第二组数据的比较结果。
9.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的数据保护方法对应的操作。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-7中任一项所述的数据保护方法对应的操作。
CN201710575943.0A 2017-06-26 2017-07-14 数据保护方法及装置、电子设备、计算机存储介质 Active CN107516046B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710494146X 2017-06-26
CN201710494146 2017-06-26

Publications (2)

Publication Number Publication Date
CN107516046A true CN107516046A (zh) 2017-12-26
CN107516046B CN107516046B (zh) 2019-11-12

Family

ID=60721878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710575943.0A Active CN107516046B (zh) 2017-06-26 2017-07-14 数据保护方法及装置、电子设备、计算机存储介质

Country Status (1)

Country Link
CN (1) CN107516046B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110209874A (zh) * 2019-04-24 2019-09-06 北京奇艺世纪科技有限公司 信息处理方法、装置、电子设备及存储介质
CN111667264A (zh) * 2020-05-08 2020-09-15 深圳市路云区链网络科技有限公司 区块数据的传输方法、装置、电子设备及非易失性计算机存储介质
CN111882310A (zh) * 2020-05-15 2020-11-03 马上消费金融股份有限公司 一种数据对比方法、装置、设备及计算机可读存储介质
CN115225697A (zh) * 2022-06-16 2022-10-21 阿里云计算有限公司 状态同步方法、装置、设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230221864A1 (en) * 2022-01-10 2023-07-13 Vmware, Inc. Efficient inline block-level deduplication using a bloom filter and a small in-memory deduplication hash table

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853260A (zh) * 2009-04-01 2010-10-06 赛门铁克公司 检测电子邮件内容包含的系统和方法
CN101901316A (zh) * 2010-07-15 2010-12-01 哈尔滨工程大学 基于Bloom Filter的数据完整性保护方法
CN103488952A (zh) * 2013-09-24 2014-01-01 华为技术有限公司 文件完整性验证方法及文件处理器
CN103902408A (zh) * 2012-12-27 2014-07-02 阿普赛尔有限公司 使用布隆过滤器检测副本之间的偏差

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853260A (zh) * 2009-04-01 2010-10-06 赛门铁克公司 检测电子邮件内容包含的系统和方法
CN101901316A (zh) * 2010-07-15 2010-12-01 哈尔滨工程大学 基于Bloom Filter的数据完整性保护方法
CN103902408A (zh) * 2012-12-27 2014-07-02 阿普赛尔有限公司 使用布隆过滤器检测副本之间的偏差
CN103488952A (zh) * 2013-09-24 2014-01-01 华为技术有限公司 文件完整性验证方法及文件处理器

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110209874A (zh) * 2019-04-24 2019-09-06 北京奇艺世纪科技有限公司 信息处理方法、装置、电子设备及存储介质
CN111667264A (zh) * 2020-05-08 2020-09-15 深圳市路云区链网络科技有限公司 区块数据的传输方法、装置、电子设备及非易失性计算机存储介质
CN111667264B (zh) * 2020-05-08 2023-04-14 深圳启元信息服务有限公司 区块数据的传输方法、装置、电子设备及非易失性计算机存储介质
CN111882310A (zh) * 2020-05-15 2020-11-03 马上消费金融股份有限公司 一种数据对比方法、装置、设备及计算机可读存储介质
CN115225697A (zh) * 2022-06-16 2022-10-21 阿里云计算有限公司 状态同步方法、装置、设备及存储介质
CN115225697B (zh) * 2022-06-16 2024-04-09 阿里云计算有限公司 状态同步方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN107516046B (zh) 2019-11-12

Similar Documents

Publication Publication Date Title
CN107516046A (zh) 数据保护方法及装置、电子设备、计算机存储介质
CN109314642B (zh) 用区块链实施的用于安全投票和分配的计数系统和方法
JP6743141B2 (ja) サービス処理方法及び装置
CN107770154B (zh) 基于云存储的区块链可靠数据存储方法、终端及系统
US20180033010A1 (en) System and method of identifying suspicious user behavior in a user's interaction with various banking services
EP3321819B1 (en) Device, method and program for securely reducing an amount of records in a database
CN108182581A (zh) 一种区块链的记账方法及装置
CN110383279A (zh) 用于检测重放攻击的系统和方法
WO2020199621A1 (zh) 基于知识图谱检测欺诈
CN107277810A (zh) 用于安全交互的智能电话防欺诈授权和验证
TW201800997A (zh) 一種用區塊鏈來實現金融交易的管理方法
CN110431577A (zh) 用于检测重放攻击的系统和方法
CN108292133A (zh) 用于在工业控制系统内识别已泄密设备的系统和方法
US20180101831A1 (en) System and method for performing secure online banking transactions
US20200210402A1 (en) Systems and methods for performing programmable smart contract execution
WO2016089993A1 (en) Proprietary token-based universal payment processing system
CN105099983A (zh) 授权方法、权限设置方法及装置
CN114638704A (zh) 非法资金转移的识别方法及其装置、电子设备及存储介质
CN107506355B (zh) 对象分组方法及装置
CN107623693A (zh) 域名解析防护方法及装置、系统、计算设备、存储介质
Chaudhary et al. Auto-PUFChain: an automated interaction tool for PUFs and blockchain in electronic supply chain
CN106487510B (zh) 模幂计算的保护
CN113656497A (zh) 一种基于区块链的数据验证方法和装置
Khedekar et al. Protection to Personal Data Using Decentralizing Privacy of Blockchain.
CN108154372A (zh) 一种账户通联方法和装置

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant