CN111767364A - 数据处理方法、装置和设备 - Google Patents
数据处理方法、装置和设备 Download PDFInfo
- Publication number
- CN111767364A CN111767364A CN201910232663.9A CN201910232663A CN111767364A CN 111767364 A CN111767364 A CN 111767364A CN 201910232663 A CN201910232663 A CN 201910232663A CN 111767364 A CN111767364 A CN 111767364A
- Authority
- CN
- China
- Prior art keywords
- data
- hash
- hash values
- words
- processing
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 150000003839 salts Chemical class 0.000 claims abstract description 63
- 230000011218 segmentation Effects 0.000 claims abstract description 60
- 238000012545 processing Methods 0.000 claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 43
- 239000012634 fragment Substances 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 11
- 230000001960 triggered effect Effects 0.000 claims description 7
- 238000010606 normalization Methods 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 abstract description 2
- 101150060512 SPATA6 gene Proteins 0.000 description 143
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/319—Inverted lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/325—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种数据处理方法、装置和设备,该方法包括:对待存储的数据进行分词处理以得到多个第一分词;分别对多个第一分词进行加盐哈希运算以得到多个第一哈希值;在多个第一哈希值分别对应的倒排列表中写入数据的数据标识。通过本方案,索引数据是以哈希值的形式存储的,而不是直接以明文形式存储,可以称为是密文索引;而且,通过对分词结果进行加盐哈希处理,避免了词典攻击问题,即黑客不能通过哈希值直接反推出对应的明文——分词结果。因此,通过密文索引解决了索引被窃取之后,直接分析就可以还原用户隐私信息的问题。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种数据处理方法、装置和设备。
背景技术
为实现数据查询,在对数据进行存储的时候需要对数据创建索引,其中一种索引创建形式为倒排索引,也称为反向索引(inverted index)。
在搜索引擎中,每个文件都会具有一个文件标识(也称为文件ID),文件内容可以表示为一系列关键词的集合。倒排索引,即为建立关键词(亦即词典)到文件ID的映射关系,每个关键词都对应着一系列的文件,这些文件中都出现这个关键词。
发明内容
本发明实施例提供一种数据处理方法、装置和设备,用以保护用户的隐私信息的安全。
第一方面,本发明实施例提供一种数据处理方法,该方法包括:
对待存储的数据进行分词处理以得到多个第一分词;
分别对所述多个第一分词进行加盐哈希运算以得到多个第一哈希值;
在所述多个第一哈希值分别对应的倒排列表中写入所述数据的数据标识。
第二方面,本发明实施例提供一种数据处理装置,该装置包括:
分词模块,用于对待存储的数据进行分词处理以得到多个第一分词;
哈希模块,用于分别对所述多个第一分词进行加盐哈希运算以得到多个第一哈希值;
索引建立模块,用于在所述多个第一哈希值分别对应的倒排列表中写入所述数据的数据标识。
第三方面,本发明实施例提供一种电子设备,包括处理器、存储器,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少实现上述第一方面中的数据处理方法。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现上述第一方面中的数据处理方法。
在本发明实施例中,当某用户需要存储自己的某份数据时,将该数据提交给比如云端的某存储服务器,该存储服务器可以先对该数据进行分词处理,得到多个分词(称为多个第一分词),之后分别对多个第一分词进行加盐哈希运算以得到对应的多个哈希值,(称为多个第一哈希值),进而根据多个第一哈希值进行倒排索引的建立:在多个第一哈希值分别对应的倒排列表中写入上述数据的数据标识(可以称为数据ID),亦即建立第一哈希值到数据ID的映射关系。
由此可知,通过本方案,索引数据是以哈希值的形式存储的,而不是直接以明文形式存储,可以称为是密文索引;而且,通过对分词结果进行加盐哈希处理,避免了词典攻击问题,即黑客不能通过哈希值直接反推出对应的明文——分词结果。因此,通过密文索引解决了索引被窃取之后,直接分析就可以还原用户隐私信息的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据处理方法的流程图;
图2为本发明实施例提供的另一种数据处理方法的流程图;
图3为本发明实施例提供的一种倒排列表分组结果的示意图;
图4为本发明实施例提供的又一种数据处理方法的流程图;
图5为本发明实施例提供的再一种数据处理方法的流程图;
图6为图5所示实施例对应的执行过程的示意图;
图7为本发明实施例提供的还一种数据处理方法的流程图;
图8为本发明实施例提供的一种数据处理装置的结构示意图;
图9为与图8所示实施例提供的数据处理装置对应的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式。除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
图1为本发明实施例提供的一种数据处理方法的流程图,该数据处理方法可以由提供数据存储服务的节点来执行,比如可以是云端的某个存储服务器。如图1所示,该方法包括如下步骤:
101、对待存储的数据进行分词处理以得到多个第一分词。
102、分别对多个第一分词进行加盐哈希运算以得到多个第一哈希值。
103、在多个第一哈希值分别对应的倒排列表中写入所述数据的数据标识。
在本发明实施例中,当某用户需要存储自己的某份数据(即为待存储的数据)时,可以将自己的用户标识以及该待存储的数据提交给比如云端的某存储服务器,由该存储服务器对该数据进行存储处理。
实际上,为了保证数据的安全性,用户在将自己待存储的数据发送至存储服务器时,可以对该数据进行加密,将加密后的密文发送至存储服务器,从而,存储服务器可以基于预先得到的密钥对密文进行解密,得到待存储的数据。
在对待存储的数据进行存储时,一方面是将待存储的数据存储在某个存储空间或者称为存储地址内,另一方面,为了便于后续用户对已存储的数据的查询操作,也会为待存储的数据建立数据索引。其中,待存储的数据可以以上述密文的形式被存储在某个存储空间内,而本文中着重说明数据索引的建立,其中,数据索引采用倒排索引的方式。
具体地,在接收到某用户发送的待存储的数据后,存储服务器首先可以对该数据进行分词处理,以得到多个分词,为了与后文提及的查询过程的分词结果相区别,该多个分词称为多个第一分词。
其中,分词处理的过程可以参照现有相关技术实现,在发明实施例中不赘述,只是,需要说明的是,在分词处理后,可以过滤掉其中的无实际意义的停用词,比如连接词、语气助词、介词、副词等,从而,上述多个第一分词可以是指过滤掉停用词之后的分词结果。
例如,假设待存储的某条数据内容为:全资收购小明的公司,分词的结果是:全资,收购,小明,公司。
在得到多个第一分词之后,可以分别对多个第一分词进行加盐哈希运算以得到多个第一哈希值,多个第一哈希值与多个第一分词一一对应。
以其中的任一个第一分词来说,对该第一分词进行加盐哈希运算可以表示为:hash(第一分词+盐值),其中,hash()表示某个哈希函数,+表示第一分词和盐值拼接在一起的结果。盐值可以是取自盐值表中的某个盐值,其实,盐值就是一串随机字符串。
多个第一分词共用一个盐值,也就是说,对其中的每个第一分词进行加盐哈希运算时,是采用相同的哈希函数和盐值进行运算的。
可选地,可以随机从盐值表中取出的某个盐值用于对上述多个第一分词进行加盐哈希运算。
可选地,用于对上述多个第一分词进行加盐哈希运算所用的盐值也可以是通过如下方式获得的:根据待存储的数据对应的数据所有者标识(Uid),确定该数据对应的盐值以用于对上述多个第一分词进行哈希加盐运算。
其中,这里的数据所有者标识对应的数据类型为整型,具体地,可以以该数据所有者标识(Uid)对盐值表中包含的盐值总数(假设为N)进行取余运算,假设余数为M,那么取出盐值表中的第M个盐值用于对上述多个第一分词进行加盐哈希运算。其中,盐值表可以表示为如下的表格:
Part | Salt |
0 | S0 |
1 | S1 |
… | … |
其中,Salt代表盐值,Part代表盐值在表格中的位置偏移。
在计算得到多个第一哈希值之后,可以根据该多个第一哈希值建立倒排索引表,亦即分别以多个第一哈希值为主键,建立多个第一哈希值到待存储数据的数据标识的映射关系。
举例来说,假设上述多个第一哈希值分别为H1、H2和H3,上述待存储数据的数据标识为X,且假设已经建立的倒排索引表中并无H1、H2和H3,从而,新生成的倒排索引表中包括如下记录:
H1:X
H2:X
H3:X
其中,:左右两侧分别表示词典项和词典项对应的倒排列表,本文中,词典项即为各第一哈希值。
如果假设已经建立的倒排索引表中已经包含有上述H1、H2和H3中的部分,则在针对当前的待存储数据得到H1、H2和H3后,可以在H1、H2和H3各自对应的倒排列表中写入该数据的数据标识X,如下:
H1:Y,X
H2:K,Q,X
H3:X。
综上,在本发明实施例中,创建倒排索引所使用的关键词是哈希值,即待存储的数据经过分词处理后得到的各分词被进行加盐哈希运算后得到的哈希值。由于该哈希值是对分词结果进行加盐哈希运算后得到的,是一种密文索引,黑客不能通过该哈希值直接反推出对应的分词结果,从而,通过避免词典攻击问题而防止了黑客通过分词结果反推出用户的隐私信息的风险。
另外,在一可选实施例中,针对当前待存储的数据,在得到多个第一哈希值后,还可以对该多个第一哈希值进行乱序处理,即对多个第一哈希值进行随机乱序重排,打乱其在倒排索引表中的相邻位置,使得该多个第一哈希值在倒排索引表中是不相邻的。
通过重排哈希值解决了关联规则攻击问题,所谓关联规则攻击是指:如果某些哈希值总是一起出现,那么这些哈希值对应的明文很有可能是反映某种固定搭配关系的关联规则,比如可能是术语或专有名词等,此时再结合用户背景,有可能能够进一步猜测出用户的明文数据。而通过重排哈希值,将这些关联规则打破,从而可以避免关联规则攻击问题。
图2为本发明实施例提供的另一种数据处理方法的流程图,该数据处理方法可以由存储服务器来执行。如图2所示,该方法可以包括如下步骤:
201、对待存储的数据进行分词处理以得到多个第一分词。
202、分别对多个第一分词进行加盐哈希运算以得到多个第一哈希值。
203、在多个第一哈希值分别对应的倒排列表中写入所述数据的数据标识。
对于多个第一哈希值中的目标第一哈希值来说,其对应的倒排列表中存储有一个或多个数据标识,而这些数据标识所对应的数据中均包含该目标第一哈希值对应的第一分词。其中,目标第一哈希值是多个第一哈希值中的任一个。
由此可知,一个第一哈希值对应的倒排列表中包含的数据标识的个数其实反映了该第一哈希值所对应的第一分词的词频信息,即多少个数据中包含了该第一分词。
而实际上,如果黑客获知某个第一哈希值对应的数据标识的个数众多,可以确定该第一哈希值的重要性,就会对该第一哈希值进行攻击,而导致对应的第一分词的泄露风险,这种攻击可以称为词频攻击问题。
为了克服词频攻击问题,本发明实施例提供了如下的解决方案,以隐藏词频信息:
204、对于多个第一哈希值中的目标第一哈希值,若目标第一哈希值对应的倒排列表中数据标识的个数大于设定阈值,则将该倒排列表中的数据标识分成多组。
205、随机确定多组数据标识各自对应的存储地址,其中,一组数据标识的存储地址中还加密存储有另一组数据标识的存储地址。
上述步骤204和205所提供的隐藏词频信息的解决方案,简单来说就是:对倒排列表进行分组,分组之间通过加密指针关联,以隐藏词频信息,从而避免词频攻击问题。
具体来说,以多个第一哈希值中的任一个作为目标第一哈希值,若目标第一哈希值对应的倒排列表中数据标识的个数大于设定阈值,则说明该目标第一哈希值所对应的第一分词的词频较高。此时,首先,将该倒排列表中的数据标识分成多组,可以进行平均划分以得到多组。进而,可以为每个分组随机分配存储地址,为了便于查询操作,在其中一个存储地址中,不仅存储对应的一组数据标识,还加密存储有另一组数据标识的存储地址,以便建立多组数据标识之间的关联关系。其中,该存储地址可以理解为是相对某参考地址的偏移量或者说偏移指针。
为便于理解,如图3所示,假设已经建立的倒排索引表的词典项中包括hash0、hash1和hashn这三个哈希值,这三个哈希值各自对应的数据标识的分组结果如图3中的箭头方向所示。图3中右侧一列示意的是各数据标识。
前述图1和图2所示实施例介绍了一种倒排索引的建立过程,下面结合图4来介绍在该建立过程下,用户的查询过程的一种实现方案。
图4为本发明实施例提供的又一种数据处理方法的流程图,该数据处理方法可以由存储服务器来执行。如图4所示,该方法可以包括如下步骤:
401、接收用户触发的查询语句。
402、对查询进行分词处理以得到多个第二分词。
403、分别对多个第二分词进行加盐哈希运算以得到多个第二哈希值。
404、在多个第二哈希值各自对应的倒排列表中查询与多个第二哈希值均对应的数据。
由此可知,对于查询语句的处理过程与对上述待存储的数据的处理过程相似,都经过分词、加盐哈希的处理。也就是说,为了避免用户触发的查询语句对用户的隐私信息的泄露,查询过程也是以密文的形式进行的,从而实现以密文检索密文的效果。
假设通过图1或图2所示实施例的执行,生成的倒排索引表如下:
H1:Y,X
H2:K,Q,X
H3:Y。
其中,上述H1、H2和H3是三个第一哈希值,冒号右边代表其各自对应的倒排列表中包含的数据标识。
假设多个第二分词对应的多个第二哈希值分别为:H1和H3,则以H1和H3查询倒排索引表得到,与H1对应的数据标识为X和Y,与H3对应的数据标识为Y,只有数据标识Y是与H1和H3均匹配的,因此确定数据标识Y对应的数据是用户所要查询的数据,将该数据反馈给用户。
值得说明的是,查询语句中会携带有用户标识,基于该用户标识可以确定加盐哈希运算所需采用的盐值,具体确定方式如前文所述。由此可见,在数据的所有者向存储服务器进行数据存储的情况下,往往也只有数据的所有者才能成功查询到自己存储的数据,因为如果是其他人查询,其他人对应的用户标识与数据所有者对应的用户标识不同,那么确定出的盐值则不同。而即使是相同的分词结果,经过不同的盐值的加盐哈希运算后得到的哈希值也是不同的。
图5为本发明实施例提供的再一种数据处理方法的流程图,如图5所示,该方法可以包括如下步骤:
501、对待存储的数据进行分词处理以得到多个第一分词。
502、分别对多个第一分词进行加盐哈希运算以得到多个第一哈希值。
503、在多个第一哈希值分别对应的倒排列表中写入数据的数据标识。
504、以设定的滑动窗口对数据进行数据分段处理以得到多个第一数据片段。
505、分别将多个第一数据片段输入布隆过滤器,以获取布隆过滤器输出的值为1的多个第一位置,其中,布隆过滤器使用多个哈希函数分别对多个第一数据片段进行加盐哈希运算。
506、在多个第一位置分别对应的倒排列表中写入数据的数据标识。
在本实施例中,相当于生成了两个倒排索引表,其中,第一个倒排索引表的词典由数据的分词结果所对应的哈希值构成,第二个倒排索引表的词典与数据被划分成的数据片段的哈希运算结果对应。
其中,步骤501至503对应于创建第一个倒排索引表的过程,详细的实现过程可以参考前述其他实施例中的说明,在此不赘述。
第二个倒排索引表的创建过程如下:
首先,针对待存储的数据,可以以设定的滑动窗口对该数据进行数据分段处理。具体地,比如对该数据进行N-GRAM算法的处理,其中,比如N=2。
实际上,也可以先对待存储的数据进行归一化处理(Normalize),对归一化处理后的数据再进行数据分段处理。其中,归一化处理包括但不限于去掉停用词、大写转换为小写、繁体转换为简体、词根还原等等。
举例来说,假设该待存储的数据为:我爱中国,则经过2-GRAM处理后,得到的数据片段为如下三个数据片段:我爱,爱中,中国。
将这三个数据片段依次输入到布隆过滤器进行处理。其中,布隆过滤器可以实现对每个数据片段的加盐哈希运算,此时所采用的盐值与前述实施例中的加盐哈希运算所用的盐值相同。
布隆过滤器与上述待存储的数据一一对应,也就是说,每当接收到一个待存储的数据时,会启动一个新的布隆过滤器用于该数据的处理。
下面对布隆过滤器的工作过程进行简单说明:布隆过滤器是一个bit向量或者说bit数组,以下图为例,假设布隆过滤器对应的数组长度为10,则初始情况下,这10个bit位都被置为0:
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
如果我们要映射一个数据片段到布隆过滤器中,我们需要使用多个不同的哈希函数生成多个哈希值,并将每个生成的哈希值所指向的bit位置为1.
例如针对数据片段“我爱”,通过三个不同的哈希函数进行加盐哈希运算后分别生成了哈希值1、4、7,则上图转变为:
1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
进而,将下一数据片段“爱中”输入布隆过滤器,通过上述三个不同的哈希函数进行加盐哈希运算后分别生成了哈希值3、4、8,则上图转变为:
1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
其中,对于第四个bit位,由于这两个数据片段都返回了这个bit位,因此它被覆盖了。
进而,将下一数据片段“中国”输入布隆过滤器,通过上述三个不同的哈希函数进行加盐哈希运算后分别生成了哈希值1、2、9,则上图转变为:
1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 |
至此,待存储的数据所被划分出来的多个第一数据片段都被布隆过滤器进行了处理,此时,获取布隆过滤器输出的值为0的bit位置作为多个第一位置,则多个第一位置包括:第1、2、3、4、7、8、9个bit位。
之后,在多个第一位置分别对应的倒排列表中写入待存储数据的数据标识,假设为X,则假设此时生成的倒排索引表如下:
1:Y,X
2:Y,K,X
3:P,Q,X
4:Y,Z,X
7:J,X
8:M,Z,Q,X
9:K,Z,J,X。
同样地,在以上述位置信息进行倒排索引构建的情况下,也可能会存在词频攻击问题,所以相类似地,为了克服词频攻击问题,在步骤506之后,还可以包括如下步骤:
对于多个第一位置中的目标第一位置,若目标第一位置对应的倒排列表中数据标识的个数大于设定阈值,则将该倒排列表中的数据标识分成多组,随机确定多组数据标识各自对应的存储地址,其中,一组数据标识的存储地址中还加密存储有另一组数据标识的存储地址。其中,该目标第一位置是多个第一位置中的任一个。
为便于更加直观地理解本实施例的执行过程,以图6示意了上述步骤的执行逻辑,图6中,用户待存储的数据被表示为<uid,msg>,其中,uid代表用户标识,即数据所有者标识,msg代表待存储的数据。由图6可知,一方面,msg经过分词处理,对分词结果进行加盐哈希处理,得到多个哈希值构成的哈希序列:hash0、hash1…;另一方面,msg经过归一化和数据分段处理,将数据片段输入布隆过滤器,由布隆过滤器输出由多个值为0的位置构成的位置序列:pos1、pos2…,从而,根据得到的哈希序列和位置序列进行倒排索引的构成。
基于图5所示的倒排索引创建过程,相对应地,用户的查询过程可以如图7所示,可以包括如下步骤:
701、接收用户触发的查询语句。
702、对查询语句进行分词处理以得到多个第二分词。
703、分别对多个第二分词进行加盐哈希运算以得到多个第二哈希值。
704、以设定的滑动窗口对查询语句进行数据分段处理以得到多个第二数据片段。
705、分别将多个第二数据片段输入布隆过滤器,以获取布隆过滤器输出的值为1的多个第二位置。
706、在多个第二哈希值和多个第二位置各自对应的倒排列表中查询与多个第二哈希值和多个第二位置均对应的数据。
可以理解的是,如果查询语句所对应的用户与前述其他实施例中存储数据的用户为同一人,那么上述加盐哈希运算中所用的盐值是相同的,并且,查询过程中设定的滑动窗口与倒排索引创建过程中所用的滑动窗口相同,所用的布隆过滤器亦具有相同的参数,比如具有相同的多个哈希函数、相同的数组长度。
为理解本实施例的查询过程,举例来说:如前文所述,假设基于多个第一哈希值创建的倒排索引表中包括如下记录:
H1:Y,X
H2:K,Q,X
H3:Y。
假设基于多个第一位置创建的倒排索引表中包括如下记录:
1:Y,X
2:Y,K,X
3:P,Q,X
4:Y,Z,X
7:J,X
8:M,Z,Q,X
9:K,Z,J,X。
另外,假设多个第二哈希值为H1、H2,多个第二位置为第1、2、3、4、7、8、9个bit位,那么,与H1和H2以及与多个第二位置匹配的数据标识为X,因此确定数据标识X对应的数据是用户所要查询的数据,将该数据反馈给用户。
也就是说,在查询过程中,多个第二哈希值和多个第二位置均作为查询条件,这些查询条件之间是与(and)的关系,最终的查询结果需要满足所有的查询条件。
综上,在图5和图7所示实施例中,通过对数据进行分段处理,根据数据片段所建立的倒排索引,可以保留数据的相关性信息,以便在用户进行数据查询时,能够基于该相关性为用户反馈更准确的查询结果。也就是说,通过布隆过滤器解决了查询时查询结果的相关性问题,使得查询结果更准确。
举例来说,假设用户所用查询的是“我爱中国”。并且,假设已经存储的数据中包括:“我爱中国”,以及“爱我中国”这两条数据。由上述数据分段以及布隆过滤器的处理过程可知,这两条数据对应的多个第一位置是不完全相同的,假设“我爱中国”这条数据对应的多个第一位置为:第1、2、3、4、7、8、9个bit位;“爱我中国”这条数据对应的多个第一位置为:第1、2、4、5、6、9个bit位。那么即时这两条数据对应的多个第一哈希值是相同的,在用户以“我爱中国”查询时,由于上述多个第一位置的差异性,反馈的查询结果会是“我爱中国”这条数据,而不会是“爱我中国”这条数据。
以下将详细描述本发明的一个或多个实施例的数据处理装置。本领域技术人员可以理解,这些数据处理装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图8为本发明实施例提供的一种数据处理装置的结构示意图,如图8所示,该装置包括:分词模块11、哈希模块12、索引建立模块13。
分词模块11,用于对待存储的数据进行分词处理以得到多个第一分词。
哈希模块12,用于分别对所述多个第一分词进行加盐哈希运算以得到多个第一哈希值。
索引建立模块13,用于在所述多个第一哈希值分别对应的倒排列表中写入所述数据的数据标识。
可选地,所述索引建立模块13还可以用于:对所述多个第一哈希值进行乱序处理。
可选地,所述装置还可以包括:分组模块,用于对于所述多个第一哈希值中的目标第一哈希值,若所述目标第一哈希值对应的倒排列表中数据标识的个数大于设定阈值,则将所述倒排列表中的数据标识分成多组;随机确定所述多组数据标识各自对应的存储地址,其中,一组数据标识的存储地址中还加密存储有另一组数据标识的存储地址。
可选地,所述哈希模块12还可以用于:根据所述数据对应的数据所有者标识,确定所述数据对应的盐值以用于所述哈希加盐运算。
可选地,所述装置还包括:分段模块,用于以设定的滑动窗口对所述数据进行数据分段处理以得到多个第一数据片段。过滤模块,用于分别将所述多个第一数据片段输入布隆过滤器,以获取所述布隆过滤器输出的值为1的多个第一位置,其中,所述布隆过滤器使用多个哈希函数分别对所述多个第一数据片段进行加盐哈希运算。从而,所述索引建立模块13还可以用于:在所述多个第一位置分别对应的倒排列表中写入所述数据的数据标识。
可选地,所述分段模块还可以用于:对所述数据进行归一化处理。
可选地,所述分组模块还可以用于:对于所述多个第一位置中的目标第一位置,若所述目标第一位置对应的倒排列表中数据标识的个数大于设定阈值,则将所述倒排列表中的数据标识分成多组;随机确定所述多组数据标识各自对应的存储地址,其中,一组数据标识的存储地址中还加密存储有另一组数据标识的存储地址。
可选地,所述装置还可以包括:查询模块,用于接收用户触发的查询语句;对所述查询语句进行分词处理以得到多个第二分词;分别对所述多个第二分词进行加盐哈希运算以得到多个第二哈希值;在所述多个第二哈希值各自对应的倒排列表中查询与所述多个第二哈希值均对应的数据。
可选地,所述查询模块还可以用于:接收用户触发的查询语句;对所述查询语句进行分词处理以得到多个第二分词;分别对所述多个第二分词进行加盐哈希运算以得到多个第二哈希值;以所述滑动窗口对所述查询语句进行数据分段处理以得到多个第二数据片段;分别将所述多个第二数据片段输入布隆过滤器,以获取所述布隆过滤器输出的值为1的多个第二位置;在所述多个第二哈希值和所述多个第二位置各自对应的倒排列表中查询与所述多个第二哈希值和所述多个第二位置均对应的数据。
图8所示装置可以执行前述各实施例提供的方法,本实施例未详细描述的部分,可参考前述实施例的相关说明,在此不再赘述。
在一个可能的设计中,上述图8所示的数据处理装置的结构可实现为一电子设备,该电子设备可以是具有存储功能的设备,比如为服务器,如图9所示,该电子设备可以包括:处理器21、存储器22。其中,所述存储器22上存储有可执行代码,当所述可执行代码被所述处理器21执行时,使所述处理器21可以执行如前述各实施例中提供的数据处理方法。
实际上,该电子设备中也可以包括通信接口23,用于与其他设备进行通信。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器可以执行如前述各实施例中提供的数据处理方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种数据处理方法,其特征在于,所述方法包括:
对待存储的数据进行分词处理以得到多个第一分词;
分别对所述多个第一分词进行加盐哈希运算以得到多个第一哈希值;
在所述多个第一哈希值分别对应的倒排列表中写入所述数据的数据标识。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述多个第一哈希值进行乱序处理。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于所述多个第一哈希值中的目标第一哈希值,若所述目标第一哈希值对应的倒排列表中数据标识的个数大于设定阈值,则将所述倒排列表中的数据标识分成多组;
随机确定所述多组数据标识各自对应的存储地址,其中,一组数据标识的存储地址中还加密存储有另一组数据标识的存储地址。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述数据对应的数据所有者标识,确定所述数据对应的盐值以用于所述哈希加盐运算。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
以设定的滑动窗口对所述数据进行数据分段处理以得到多个第一数据片段;
分别将所述多个第一数据片段输入布隆过滤器,以获取所述布隆过滤器输出的值为1的多个第一位置,其中,所述布隆过滤器使用多个哈希函数分别对所述多个第一数据片段进行加盐哈希运算;
在所述多个第一位置分别对应的倒排列表中写入所述数据的数据标识。
6.根据权利要求5所述的方法,其特征在于,所述对所述数据进行数据分段处理之前,还包括:
对所述数据进行归一化处理。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
对于所述多个第一位置中的目标第一位置,若所述目标第一位置对应的倒排列表中数据标识的个数大于设定阈值,则将所述倒排列表中的数据标识分成多组;
随机确定所述多组数据标识各自对应的存储地址,其中,一组数据标识的存储地址中还加密存储有另一组数据标识的存储地址。
8.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
接收用户触发的查询语句;
对所述查询语句进行分词处理以得到多个第二分词;
分别对所述多个第二分词进行加盐哈希运算以得到多个第二哈希值;
在所述多个第二哈希值各自对应的倒排列表中查询与所述多个第二哈希值均对应的数据。
9.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收用户触发的查询语句;
对所述查询语句进行分词处理以得到多个第二分词;
分别对所述多个第二分词进行加盐哈希运算以得到多个第二哈希值;
以所述滑动窗口对所述查询语句进行数据分段处理以得到多个第二数据片段;
分别将所述多个第二数据片段输入布隆过滤器,以获取所述布隆过滤器输出的值为1的多个第二位置;
在所述多个第二哈希值和所述多个第二位置各自对应的倒排列表中查询与所述多个第二哈希值和所述多个第二位置均对应的数据。
10.一种数据处理装置,其特征在于,包括:
分词模块,用于对待存储的数据进行分词处理以得到多个第一分词;
哈希模块,用于分别对所述多个第一分词进行加盐哈希运算以得到多个第一哈希值;
索引建立模块,用于在所述多个第一哈希值分别对应的倒排列表中写入所述数据的数据标识。
11.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至9中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910232663.9A CN111767364B (zh) | 2019-03-26 | 2019-03-26 | 数据处理方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910232663.9A CN111767364B (zh) | 2019-03-26 | 2019-03-26 | 数据处理方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111767364A true CN111767364A (zh) | 2020-10-13 |
CN111767364B CN111767364B (zh) | 2023-12-29 |
Family
ID=72717940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910232663.9A Active CN111767364B (zh) | 2019-03-26 | 2019-03-26 | 数据处理方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767364B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597524A (zh) * | 2021-03-03 | 2021-04-02 | 支付宝(杭州)信息技术有限公司 | 隐私求交的方法及装置 |
CN113726764A (zh) * | 2021-08-27 | 2021-11-30 | 杭州溪塔科技有限公司 | 一种隐私数据传输方法及装置 |
CN114785485A (zh) * | 2022-04-21 | 2022-07-22 | 中国联合网络通信集团有限公司 | 信息加密传输方法、装置、设备及存储介质 |
CN115630400A (zh) * | 2022-12-21 | 2023-01-20 | 成都卫士通信息产业股份有限公司 | 一种去标识化数据的查询方法、装置、设备及存储介质 |
WO2023051282A1 (zh) * | 2021-09-29 | 2023-04-06 | 华为技术有限公司 | 一种嵌入向量预取的方法、装置、系统及相关设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100332503A1 (en) * | 2009-06-30 | 2010-12-30 | Brad Buckley | System and Method for Using an Exemplar Document to Retrieve Relevant Documents from an Inverted Index of a Large Corpus |
CN102063446A (zh) * | 2009-11-13 | 2011-05-18 | 中国移动通信集团四川有限公司 | 一种建立倒排索引的方法及倒排索引装置 |
CN102708187A (zh) * | 2012-05-14 | 2012-10-03 | 成都信息工程学院 | 基于Hbase数据库的倒排索引混合压缩及解压方法 |
CN103440249A (zh) * | 2013-07-23 | 2013-12-11 | 南京烽火星空通信发展有限公司 | 一种非结构化数据快速检索的系统及方法 |
CN104765848A (zh) * | 2015-04-17 | 2015-07-08 | 中国人民解放军空军航空大学 | 混合云存储中支持结果高效排序的对称可搜索加密方法 |
CN104850564A (zh) * | 2014-02-18 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 数据文件的索引查找方法和系统 |
CN106656476A (zh) * | 2017-01-18 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 一种密码保护方法及装置 |
US20170161375A1 (en) * | 2015-12-07 | 2017-06-08 | Adlib Publishing Systems Inc. | Clustering documents based on textual content |
CN106971121A (zh) * | 2017-04-10 | 2017-07-21 | 深圳乐信软件技术有限公司 | 数据处理方法、装置、服务器及存储介质 |
CN107733656A (zh) * | 2017-10-23 | 2018-02-23 | 北京深思数盾科技股份有限公司 | 一种密码认证方法及装置 |
CN107766739A (zh) * | 2017-09-18 | 2018-03-06 | 北京理工大学 | 面向加密文本数据的短语检索方法及其装置 |
CN109213731A (zh) * | 2018-08-01 | 2019-01-15 | 安徽大学 | 云环境中基于迭代加密的多关键词密文检索方法 |
-
2019
- 2019-03-26 CN CN201910232663.9A patent/CN111767364B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100332503A1 (en) * | 2009-06-30 | 2010-12-30 | Brad Buckley | System and Method for Using an Exemplar Document to Retrieve Relevant Documents from an Inverted Index of a Large Corpus |
CN102063446A (zh) * | 2009-11-13 | 2011-05-18 | 中国移动通信集团四川有限公司 | 一种建立倒排索引的方法及倒排索引装置 |
CN102708187A (zh) * | 2012-05-14 | 2012-10-03 | 成都信息工程学院 | 基于Hbase数据库的倒排索引混合压缩及解压方法 |
CN103440249A (zh) * | 2013-07-23 | 2013-12-11 | 南京烽火星空通信发展有限公司 | 一种非结构化数据快速检索的系统及方法 |
CN104850564A (zh) * | 2014-02-18 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 数据文件的索引查找方法和系统 |
CN104765848A (zh) * | 2015-04-17 | 2015-07-08 | 中国人民解放军空军航空大学 | 混合云存储中支持结果高效排序的对称可搜索加密方法 |
US20170161375A1 (en) * | 2015-12-07 | 2017-06-08 | Adlib Publishing Systems Inc. | Clustering documents based on textual content |
CN106656476A (zh) * | 2017-01-18 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 一种密码保护方法及装置 |
CN106971121A (zh) * | 2017-04-10 | 2017-07-21 | 深圳乐信软件技术有限公司 | 数据处理方法、装置、服务器及存储介质 |
CN107766739A (zh) * | 2017-09-18 | 2018-03-06 | 北京理工大学 | 面向加密文本数据的短语检索方法及其装置 |
CN107733656A (zh) * | 2017-10-23 | 2018-02-23 | 北京深思数盾科技股份有限公司 | 一种密码认证方法及装置 |
CN109213731A (zh) * | 2018-08-01 | 2019-01-15 | 安徽大学 | 云环境中基于迭代加密的多关键词密文检索方法 |
Non-Patent Citations (5)
Title |
---|
MING LI等: "Toward privacy-assured and searchable cloud data storage services", 《IEEE NETWORK》, vol. 27, no. 4, pages 56 - 62, XP011522539, DOI: 10.1109/MNET.2013.6574666 * |
MOHANAD DAWOUD等: "Privacy-preserving Data Retrieval using Anonymous Query Authentication in Data Cloud Services", 《CLOSER 2016 - 6TH INTERNATIONAL CONFERENCE ON CLOUD COMPUTING AND SERVICES SCIENCE》, vol. 2, pages 171 - 180 * |
张心越;: "大规模关系图数据存储框架研究", no. 07, pages 25 - 27 * |
朱彦玲: "云环境中基于语义扩展的密文模糊检索技术研究", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》, no. 07, pages 138 - 59 * |
项菲;刘川意;方滨兴;王春露;钟睿明;: "云计算环境下密文搜索算法的研究", 通信学报, no. 07, pages 143 - 153 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597524A (zh) * | 2021-03-03 | 2021-04-02 | 支付宝(杭州)信息技术有限公司 | 隐私求交的方法及装置 |
CN113726764A (zh) * | 2021-08-27 | 2021-11-30 | 杭州溪塔科技有限公司 | 一种隐私数据传输方法及装置 |
CN113726764B (zh) * | 2021-08-27 | 2023-03-24 | 杭州溪塔科技有限公司 | 一种隐私数据传输方法及装置 |
WO2023051282A1 (zh) * | 2021-09-29 | 2023-04-06 | 华为技术有限公司 | 一种嵌入向量预取的方法、装置、系统及相关设备 |
CN114785485A (zh) * | 2022-04-21 | 2022-07-22 | 中国联合网络通信集团有限公司 | 信息加密传输方法、装置、设备及存储介质 |
CN115630400A (zh) * | 2022-12-21 | 2023-01-20 | 成都卫士通信息产业股份有限公司 | 一种去标识化数据的查询方法、装置、设备及存储介质 |
CN115630400B (zh) * | 2022-12-21 | 2023-05-26 | 中电科网络安全科技股份有限公司 | 一种去标识化数据的查询方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111767364B (zh) | 2023-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111767364A (zh) | 数据处理方法、装置和设备 | |
CN108334612B (zh) | 一种针对密文域的形近汉字全文模糊检索方法 | |
Fu et al. | Toward efficient multi-keyword fuzzy search over encrypted outsourced data with accuracy improvement | |
CN107025239B (zh) | 敏感词过滤的方法和装置 | |
CN107704501B (zh) | 一种识别同源二进制文件的方法及系统 | |
EP3091450B1 (en) | Method and system for performing binary searches | |
AU2015324282B2 (en) | Protected indexing and querying of large sets of textual data | |
CN108363686A (zh) | 一种字符串分词方法、装置、终端设备及存储介质 | |
CN109905413B (zh) | 一种ip地址的匹配方法及装置 | |
CN104866478A (zh) | 恶意文本的检测识别方法及装置 | |
JP6777612B2 (ja) | コンピュータシステムにおけるデータ損失を防止するためのシステム及び方法 | |
WO2017143907A1 (zh) | 一种字符串距离计算方法和装置 | |
CN108280197B (zh) | 一种识别同源二进制文件的方法及系统 | |
CN107168966B (zh) | 一种搜索引擎索引构建方法及装置 | |
US20030158725A1 (en) | Method and apparatus for identifying words with common stems | |
CN107273467A (zh) | 一种支持可搜索加密的安全索引结构及其构造方法 | |
US9195835B2 (en) | System and method for initializing tokens in a dictionary encryption scheme | |
CN111753312B (zh) | 数据处理方法、装置、设备和系统 | |
Fu et al. | A privacy-preserving fuzzy search scheme supporting logic query over encrypted cloud data | |
CN109359481B (zh) | 一种基于bk树的反碰撞搜索约减方法 | |
CN110532805B (zh) | 数据脱敏方法及装置 | |
CN115269585A (zh) | 搜索方法及装置 | |
CN109213972A (zh) | 确定文档相似度的方法、装置、设备和计算机存储介质 | |
JP5790768B2 (ja) | 検索方法及び情報管理装置 | |
CN113849538A (zh) | 一种基于模糊搜索多选项的智能提取方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
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 |