CN113468575B - 一种支持访问模式隐藏的密态流式数据检索系统及方法 - Google Patents
一种支持访问模式隐藏的密态流式数据检索系统及方法 Download PDFInfo
- Publication number
- CN113468575B CN113468575B CN202110829220.5A CN202110829220A CN113468575B CN 113468575 B CN113468575 B CN 113468575B CN 202110829220 A CN202110829220 A CN 202110829220A CN 113468575 B CN113468575 B CN 113468575B
- Authority
- CN
- China
- Prior art keywords
- keyword
- document
- filling
- index
- keywords
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004364 calculation method Methods 0.000 claims abstract description 13
- 239000013598 vector Substances 0.000 claims description 50
- 239000000945 filler Substances 0.000 claims description 19
- 230000001174 ascending effect Effects 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 9
- 238000005192 partition Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 4
- 230000005856 abnormality Effects 0.000 claims description 3
- 238000013450 outlier detection Methods 0.000 claims description 3
- 238000001914 filtration Methods 0.000 claims description 2
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000013500 data storage Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 238000012946 outsourcing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种支持访问模式隐藏的密态流式数据检索系统及方法,涉及信息安全技术领域。本发明通过在构建安全索引前对流式数据进行填充,能在查询时不带来额外加解密计算开销的前提下有效隐藏关键词和对应文档数量的关系,攻击者无法通过返回结果的文档数量得到攻击所需的信息,也无法有效区分填充内容与真实内容之间的差别,且批量上传的模式适用于随时间增长的流式数据存储,有效保证了云存储流式数据的安全性和可用性。同时,本发明使用聚类算法有效控制了填充量,避免了过多填充导致的数据库冗余问题。
Description
技术领域
本发明涉及信息安全技术领域,具体涉及一种支持访问模式隐藏的密态流式数据检索系统及方法。
背景技术
流式数据是一个实时增长的数据集合,应用于物联网、航空航天、金融服务等领域。随着这些领域的规模不断扩大,流式数据的存储量也不断增长,如何廉价且高效地存储这些数据成为了值得重视的问题,因此基于云基础设施的外包存储受到广泛关注。但由于外包存储云服务器环境的复杂性和半可信特性,数据在上传到云服务器之前需要先加密。这种方法虽然可以保护数据的隐私性,但是对数据进行检索时需要将数据全部下载到本地再解密,这对于流式数据而言是不现实的,外包存储的实用性也被极大地削弱。
可搜索加密被认为是该问题的解决方案之一,其允许对加密后上传到云服务器中的数据进行检索操作而不泄露数据的隐私,保证了外包存储数据的隐私性,并且整个检索过程中不涉及对密文数据的解密,使用这种方法处理过的数据即为密态数据,为有效检索密态数据所建立的索引即为安全索引。
而近年来的研究发现,存在一种针对可搜索加密访问模式的攻击方法,具有数据库背景知识的攻击者通过对检索返回的加密的结果集中的结果数量(或长度)进行观察,推断关键词在数据库中的词频比例,再结合公开数据集中的关键词频率来恢复数据访问者查询的关键词。为应对该威胁,一种对检索效率影响较小的方式是对云存储可接收到的全部数据进行填充以使每个关键词的频率保持一致。但这种方式一方面会导致低频关键词需要大量填充从而造成冗余问题,严重影响网络传输和存储效率;另一方面,由于流式数据随时间不断增长,而对云存储而言,需要等待全部数据到达之后才能进行填充,这对于流式数据是不切实际的。
综上,如何在实现密态流式数据检索的过程中有效保护数据的访问模式,避免过多填充带来的冗余并使其适用于不间断地到达的流式数据,是亟需解决的问题。
发明内容
针对上述现有技术存在的不足,本发明提供一种支持访问模式隐藏的密态流式数据检索系统及方法。
本发明的技术方案为:
本发明第一方面提供一种支持访问模式隐藏的密态流式数据检索系统,该系统包括:
数据拥有者,将文档形式的流式数据发送给填充加密服务器;
填充加密服务器,用于设置安全参数;针对样本数据集中出现的所有关键词,根据其词频生成关键词聚类;根据关键词聚类,对接收到的流式数据进行填充;为填充过的流式数据构建安全索引;根据安全参数生成加密密钥,使用加密密钥对填充的流式数据进行加密,并与安全索引一并上传到云服务器中;接收到数据访问者的查询请求后,使用数据访问者提供的关键词生成检索令牌并将其发送给云服务器,且在本地检索包含该关键词的文档;对从云服务器接收的检索结果进行解密,并删去其中的填充文档后与本地检索的包含数据访问者提供的关键词的文档合并为文档集合返回给数据访问者;
云服务器,用于对安全索引和填充并加密过的流式数据进行存储;根据从填充加密服务器接收的查询令牌进行检索,并将检索后的结果返回给填充加密服务器;
数据访问者,输入关键词向填充加密服务器发起查询请求并接收填充加密服务器返回的文档集合。
本发明第二方面提供一种支持访问模式隐藏的密态流式数据检索方法,该方法包括如步骤:
步骤1:填充加密服务器执行初始化操作,包括对样本数据集中的关键词进行聚类处理、根据聚类处理结果初始化缓存、初始化填充文档集B和初始化关键词状态映射ST为空;
步骤2:填充加密服务器从数据拥有者接收文档形式的流式数据,并根据其中的关键词以及关键词所属的类,在类对应的缓存中构建缓存中的索引条目,不断重复步骤2,直到满足约束条件:存在一个或多个类,类中所有关键词在缓存中都有与之相应的索引条目存在;
步骤3:填充加密服务器根据待填充关键词以及待填充关键词所属的类,构造填充的索引条目对索引进行填充;
步骤4:填充加密服务器对填充后的索引条目所对应的文档集进行加密,并根据填充后的索引条目建立安全索引;
步骤5:填充加密服务器将安全索引和加密后的文档集上传给云服务器,云服务器接收和存储安全索引和加密后的文档集;
步骤6:数据访问者输入关键词wi向填充加密服务器发起检索请求,填充加密服务器初始化本地文档结果集RLocal为空,在关键词wi所属类的缓存中检索包含关键词wi的索引条目,并将其索引条目所对应的文档添加到本地文档结果集RLocal中;
步骤7:根据关键词wi,填充加密服务器生成检索令牌,并将该检索令牌发送给云服务器;
步骤8:云服务器根据接收到的检索令牌执行检索操作,返回检索到的文档结果集RRemote给填充加密服务器;
步骤9:填充加密服务器对RRemote中的文档进行解密,从解密的文档结果集中过滤掉出现在填充文档集B中的填充文档后与本地文档结果集RLocal中的文档合并为文档集合R返回给数据访问者。
进一步地,根据所述的支持访问模式隐藏的密态流式数据检索方法,所述填充加密服务器对样本数据集中的关键词进行聚类处理,包括如下步骤:
步骤1-1-1:填充加密服务器将样本数据集中的关键词按照关键词频率进行升序排列,得到升序的关键词序列{w1,w2,...,wl},对于序列中的关键词wi,其频率为具有如下性质:
其中,l为所述关键词序列中关键词的总数,所述关键词序列中的关键词互不相同;
步骤1-1-2:设置类中关键词的最小数量α;
步骤1-1-3:按公式(2)设置类的个数为X:
步骤1-1-4:填充加密服务器对升序的关键词序列{w1,w2,...,wl}进行聚类划分,每个类至少包含α个连续的关键词,划分到最后时,如果剩余关键词个数不足α个则将这不足α个关键词并入到最后一个类,以此类推,不断调整在关键词序列上划分的位置来得到X为当前值时的所有划分;
步骤1-1-5:令X=X-1,转至步骤1-1-4,重复执行步骤1-1-4至步骤1-1-5,直到X=1;步骤1-1-6:填充加密服务器计算每种划分的填充开销γ,并选取γ值最小的聚类划分作为对样本数据集中的关键词的聚类处理结果。
进一步地,根据所述的支持访问模式隐藏的密态流式数据检索方法,所述填充加密服务器根据聚类处理结果初始化缓存的方法为:填充加密服务器根据每个类中关键词频率之和为每个类分配缓存空间,每个类对应的缓存空间记为为各个类分配的缓存空间为/>
其中,m为类的数量;N为流式数据索引条目的总缓存空间;|N|表示索引条目的总缓存空间大小;t为第一个类中的关键词的数量;u-t为第二个类中的关键词的数量;l-v为第m个类中的关键词的数量;为第一个类中关键词频率的和,/>为第二个类中关键词频率的和,/>为最后一个类中关键词频率的和。
进一步地,根据所述的支持访问模式隐藏的密态流式数据检索方法,填充加密服务器初始化由填充文档集B的方法为:填充加密服务器调用基于距离的离群点检测算法迭代构造填充文档集B。
进一步地,根据所述的支持访问模式隐藏的密态流式数据检索方法,所述填充加密服务器构造填充文档集B具体包括如下步骤:
步骤1-3-1:为样本数据集中的所有文档分别构造文档向量,将得到的向量集合记为样本文档向量集VB,每个文档向量由l个元素构成,其中每个元素的取值为关键词在文档中出现的次数;
步骤1-3-2:计算填充文档集B中每个关键词wi应当出现的频率其中fmax为关键词wi所在类中词频最高的关键词的频率,/>为关键词wi的频率;
步骤1-3-3:根据每个关键词在填充文档集B中的频率,计算每个关键词wi对应的文档数量将集合/>记为E,其中|B|为填充文档集B中文档的数量;
步骤1-3-4:提取样本数据集中文档长度的最大值max_len和最小值min_len,并根据文档长度的最大值和最小值随机生成填充文档的长度lpd∈[max_len,min_len],其中pd为待生成的文档;
步骤1-3-5:以E作为关键词分布,在保证每个关键词wi对应的文档数量均不超出的前提下,随机选取lpd个可重复的关键词组成填充文档pd,同时对填充文档pd构造长度为l的向量/>其中元素/>的取值为关键词w1在填充文档pd中出现的次数,元素/>的取值为关键词w2在填充文档pd中出现的次数,元素的取值为关键词wl在填充文档pd中出现的次数;
步骤1-3-6:采用欧几里得算法计算向量之间的距离,从样本文档向量集VB中选取k个距离向量vpd最近的向量作为一个集合,记为NE(vpd);
步骤1-3-7:从集合NE(vpd)中选取距离vpd最远的向量为vpd的第k近向量,记为kd(vpd):
步骤1-3-8:分别计算vpd与NE(vpd)中的每个向量的可达距离rd(vpd,vμ):
步骤1-3-9:计算vpd和NE(vpd)中的元素的局部可达密度
步骤1-3-10:计算vpd的局部异常因子
步骤1-3-11:判断是否成立,若不成立,则重新执行步骤1-3-5到步骤1-3-11,若成立,则将填充文档pd添加到填充文档集合B中;
步骤1-3-12:重复步骤1-3-4到步骤1-3-11,直到各关键词wi对应的文档数量满足条件为止。
进一步地,根据所述的支持访问模式隐藏的密态流式数据检索方法,所述步骤3包括如下步骤:
步骤3-1:填充加密服务器初始化临时索引集M为空、初始化集合V为空;
其中,临时索引集M用于临时存放缓存中的索引条目和填充的索引条目,集合V为填充后的索引条目集合;
步骤3-2:填充加密服务器对于每个类的缓存执行以下操作:
a)将类的缓存中所有索引条目添加到临时索引集M中,并将类的缓存清空;
b)对于类Lj中的所有关键词wi,根据填充文档集B在临时索引集M中构建条填充的索引条目;其中/>是关键词wi在缓存/>被清空前所匹配的索引条目数量,cmax是缓存/>被清空前包含索引条目数量最多的关键词所对应的索引条目数量;
c)将临时索引集M中剩余的索引条目添加到V中,并将临时索引集M清空;
d)不断重复步骤3-2直到所有类都不满足所述约束条件为止;
所述约束条件为:存在一个或多个类,类中所有关键词在缓存中都有与之相应的索引条目存在。
进一步地,根据所述的支持访问模式隐藏的密态流式数据检索方法,所述步骤4包括如下步骤:
步骤4-1:填充加密服务器生成加密密钥SK对V中索引条目所对应的文档集进行加密;
步骤4-2:填充加密服务器调用random()函数为伪随机函数生成种子k1和k2后,通过伪随机函数F和关键词wi生成构造安全索引所需的两个中间值和kid,分别记为/> 和kid←F(k2,wi);
步骤4-3:填充加密服务器通过关键词状态映射ST中关键词wi的状态值,来判断关键词wi是否存在于云服务器中,若不存在则初始化关键词wi的状态值,记为其中/>为随机生成的二进制位串,/>初始化为0,此时b-1=0,即b=1;若存在则将关键词wi在第b-1次批量传输时存储的状态值取出,记为/>b为批量上传关键词wi对应的文档和索引时的次序号;
步骤4-4:填充加密服务器调用random()方法随机生成密钥通过调用陷门函数的编码函数G,使用密钥/>将/>转换成/>并将/>存入关键词wi的状态映射ST[wi]中,其中/>为关键词wi第b次填充后V中的索引条目数量;
其中,密钥是陷门函数的编码函数G与陷门函数的解码函数P-1的一个输入,用于实现/>与/>之间的转换;
步骤4-5:填充加密服务器初始化计数器cnt1的值为0,对填充后的索引条目集V中每个与wi匹配的文档id,执行下述操作:
(1)调用哈希函数H1计算与/>串联后的哈希值,得到关键词wi在第b次批量上传时对应安全索引的键/>
(2)调用哈希函数H2计算kid与的串联后的哈希值,并与id进行异或操作得到与cnt1的值相关的、关键词wi在第b次批量上传时含有关键词wi的文档id的安全索引的值/>
(3)将存入安全索引I;
(4)计数器cnt1自增1;
(5)重复(1)到(4),直到为止;
其中H1与H2是不同的两个哈希函数。
步骤4-6:填充加密服务器调用哈希函数H1计算与/>串联后的哈希值,得到的值记为/>
步骤4-7:填充加密服务器调用哈希函数H2计算kid与串联后的哈希值后将其与/>和/>的串联结果进行异或操作,得到/>
步骤4-8:填充加密服务器将加入到安全索引I中;
步骤4-9:填充加密服务器不断重复步骤4-2到步骤4-8,直到填充后的索引条目集V中的所有关键词都在安全索引I中构建了索引条目为止。
进一步地,根据所述的支持访问模式隐藏的密态流式数据检索方法,所述步骤8包括如下步骤:
步骤8-1:云服务器接收填充加密服务器发来的检索令牌,令计数器iter=b,并初始化文档结果集RRemote为空;
步骤8-2:云服务器对于关键词wi在第iter次批量上传的条记录,初始化计数器cnt2为0,执行以下操作:
步骤8-2-1:调用哈希函数H1,对与/>的串联结果进行计算,得到关键词wi在第iter次批量上传时对应的安全索引键/>
步骤8-2-2:通过从安全索引中得到关键词wi在第iter次批量上传时含有关键词wi的文档id的安全索引值/>
步骤8-2-3:调用哈希函数H2,计算的哈希值,并与/>进行异或操作,得到文档id;
步骤8-2-4:通过文档id进行检索,并将得到的文档添加到文档结果集RRemote中;
步骤8-2-4:计数器cnt2自增1;
步骤8-2-5:不断重复步骤8-2-1至步骤8-2-4,直到cnt2与相等为止;
步骤8-3:云服务器寻找关键词wi状态值中/>的上一次批量传输状态/>及其对应的文档数量/>
步骤8-4:令iter=iter-1;
步骤8-5:不断重复步骤8-2到步骤8-4,直到为止。
进一步地,根据所述的支持访问模式隐藏的密态流式数据检索方法,所述步骤8-3包括如下步骤:
步骤8-3-1:调用哈希函数H1,计算与/>串联结果的哈希值
步骤8-3-2:使用在安全索引I中查找包含了密钥/>的、在第iter-1次批量上传时关键词wi的安全索引值/>
步骤8-3-3:对计算得到的哈希值与/>进行异或操作,得到被保护的/>和/>的串联结果;
步骤8-3-4:调用陷门函数的解码函数P-1,使用对/>进行转换,得到上一次批量传输状态/>
总体而言,通过本发明所构思的以上技术方案较现有技术具有以下有益效果:本发明通过在构建安全索引前对流式数据进行填充,能在查询时不带来额外加解密计算开销的前提下有效隐藏关键词和对应文档数量的关系,攻击者无法通过返回结果的文档数量得到攻击所需的信息,也无法有效区分填充内容与真实内容之间的差别,且批量上传的模式适用于随时间增长的流式数据存储,有效保证了云存储流式数据的安全性和可用性。同时,本发明使用聚类算法有效控制了填充量,避免了过多填充导致的数据库冗余问题。
附图说明
图1为本实施方式一种支持访问模式隐藏的密态流式数据检索系统的结构示意图;
图2为本实施方式一种支持访问模式隐藏的密态流式数据检索方法的流程示意图;
图3为本实施方式安全索引的构建流程示意图;
图4为本实施方式云服务器的检索流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优势更加清晰,下面结合附图和具体实施例对本发明做进一步详细说明。此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
图1是本实施方式的支持访问模式隐藏的密态流式数据检索系统的结构示意图,所述支持访问模式隐藏的密态流式数据检索系统中参与的实体包括数据拥有者、填充加密服务器、云服务器和数据访问者,如图1所示,其中填充加密服务器位于数据拥有者和数据访问者所在网络的网关服务器上,云服务器是位于网络上的半可信存储设备。数据拥有者和数据访问者通过填充加密服务器与云服务器进行交互。具体为:
数据拥有者,将文档形式的流式数据发送给填充加密服务器;
填充加密服务器,用于设置安全参数;针对样本数据集中出现的所有关键词,根据其词频生成关键词聚类;根据关键词聚类,对接收到的流式数据进行填充;为填充过的流式数据构建安全索引;根据安全参数生成加密密钥,使用加密密钥对填充的流式数据进行加密,并与安全索引一并上传到云服务器中;接收到数据访问者的查询请求后,使用数据访问者提供的关键词生成检索令牌并将其发送给云服务器,且在本地检索包含该关键词的文档;对从云服务器接收的检索结果进行解密,并删去其中的填充文档后与本地检索的包含数据访问者提供的关键词的文档合并为文档集合返回给数据访问者;
云服务器,用于对安全索引和填充并加密过的流式数据进行存储;根据从填充加密服务器接收的查询令牌进行检索,并将检索后的结果返回给填充加密服务器;
数据访问者,输入关键词向填充加密服务器发起查询请求并接收填充加密服务器返回的文档集合。
图2是本实施方式的支持访问模式隐藏的密态流式数据检索方法的流程示意图,如图2所示,所述支持访问模式隐藏的密态流式数据检索方法包括如下步骤:
步骤1:填充加密服务器执行初始化操作,包括对样本数据集中的关键词进行聚类处理、根据聚类处理结果初始化缓存、初始化关键词状态映射、初始化填充文档集B和设置安全参数λ;
所述样本数据集,是指由某一领域的流式数据构成的集合,其可以是开放数据集,也可以通过采集获得,其中包含了数据所涉及领域的关键词,以及关键词在长期使用过程中表现出的词频信息。本实施方式的样本数据集是通过采集数据拥有者提供的部分流式数据获得的。
所述流式数据表现为按时间顺序不断到达的文档序列。所述文档是指对数据按照某种划分方式进行划分后可被有效利用的基本单位,如某位病人的心率数据的每一天、每一月或每一年等都可视作一个文档,本发明假设接收到的流式数据都可按照某种划分方式进行划分,并作为持续到达的文档进行处理。
所述步骤1只在初始化阶段执行一次,其具体内容包括:
步骤1-1:填充加密服务器对样本数据集中的关键词进行聚类处理,具体过程如下:步骤1-1-1:填充加密服务器将样本数据集中的关键词按照关键词频率进行升序排列,得到升序的关键词序列{w1,w2,...,wl},对于序列中的关键词wi,其频率为具有如下性质:
其中,l为所述关键词序列中关键词的总数,所述关键词序列中的关键词互不相同;表示/>所述关键词频率,是给定关键词词频占所有关键词词频总和的比例。所述关键词词频,为关键词在样本数据集中出现的次数,为不小于0的任何自然数;所述关键词频率,为关键词在样本数据集中出现次数占所有关键词在样本数据集中出现次数之和的比例,为0~1之间的实数。
步骤1-1-2:类中关键词的最小数量为α,本实施方式中根据经验将α设置为64;
步骤1-1-3:按公式(2)设置类的个数为X:
其中l为关键词序列中关键词的数量,α为类中关键词的最小数量,为向下取整符号;
步骤1-1-4:填充加密服务器对升序的关键词序列{w1,w2,...,wl}进行聚类划分,每个类至少包含α个连续的关键词,划分到最后时,如果剩余关键词个数不足α个则将这不足α个关键词并入到最后一个类,以此类推,不断调整在关键词序列上划分的位置来得到X为当前值时的所有划分;
步骤1-1-5:令X=X-1,转至步骤1-1-4,重复执行步骤1-1-4至步骤1-1-5,直到X=1;
由于在关键词序列上划分的位置不同,即使在类的个数X固定的情况下,填充加密服务器也能得到多种划分,例如存在关键词序列{w1,w2,...,w10},设置α=3,当X=3时,可以得到以下三种划分,即X=3时的所有划分:{(w1,w2,w3),(w4,w5,w6),(w7,w8,w9,w10)},{(w1,w2,w3),(w4,w5,w6,w7),(w8,w9,w10)},{(w1,w2,w3,w4),(w5,w6,w7),(w8,w9,w10)};步骤1-1-6:填充加密服务器按照公式(3)计算每种划分的填充开销γ后选取γ值最小的聚类划分,作为对样本数据集中的关键词的聚类结果;
其中,t为第一个类中的关键词的数量;为关键词wt的频率,由关键词频率的升序可知,wt为第一个类中频率最高的关键词,即/>为/>中的最大值,/>表示 即第一个类中关键词频率的和;u-t为第二个类中的关键词的数量;/>为关键词wu的频率,易得wu为第二个类中频率最高的关键词,即/>为/>中的最大值,/>表示/>即第二个类中关键词频率的和;l-v-1为最后一个类中的关键词的数量;/>为关键词wl的频率,易得wl为最后一个类中频率最高的关键词,即/>为/>中的最大值,/>表示/>即最后一个类中关键词频率的和。
填充加密服务器从所有聚类划分中选取γ值最小的聚类划分,记作{(w1,...,wt),(wt+1,...,wu),...,(wv,...,wl)},简记为{L1,L2,...,Lm},其中w1≤i≤l为互不相同的关键词,l为互不相同的关键词数量,L1≤i≤m是由词频相近的关键词构成的类,m为聚类处理后得到的类的总数;
步骤1-2:填充加密服务器根据每个类中关键词频率之和为每个类分配缓存空间,每个类对应的缓存空间记为其中m为类的数量;为各个类分配的缓存空间为
其中,N为流式数据索引条目的总缓存空间,|N|表示索引条目的总缓存空间大小,其中t为第一个类中的关键词的数量,u-t为第二个类中的关键词的数量,l-v为第m个类中的关键词的数量,表示/>即第一个类中关键词频率的和,/>表示/>即第二个类中关键词频率的和,表示/>即最后一个类中关键词频率的和。
步骤1-3:填充加密服务器调用基于距离的离群点检测算法迭代构造由填充文档组成的填充文档集B;
步骤1-3-1:为样本数据集中的所有文档分别构造文档向量,将得到的向量集合记为样本文档向量集VB,每个文档向量由l个元素构成,l为步骤1-1-1中关键词序列中关键词的总数,其中每个元素的取值为关键词在文档中出现的次数;
步骤1-3-2:计算填充文档集B中每个关键词wi应当出现的频率其中fmax为关键词wi所在类中词频最高的关键词的频率,/>为关键词wi的频率;
其中,计算填充文档集B中每个关键词wi应当出现的频率的目的在于,加密填充服务器在对于每个关键词wi在填充文档集B中都有充足且不重复的填充文档可用,这可以有效避免填充文档重复出现在检索结果集进而导致填充文档容易从检索结果集中被区分的问题。
步骤1-3-3:根据每个关键词在填充文档集B中的频率,计算每个关键词wi对应的文档数量将集合/>记为E,其中|B|为填充文档集B中文档的数量,本实施方案假设填充文档集B中文档的数量|B|足够大,/>为填充文档集B中每个关键词wi应当出现的频率;
步骤1-3-4:提取样本数据集中文档长度的最大值max_len和最小值min_len,并根据文档长度的最大值和最小值随机生成填充文档的长度lpd∈[max_len,min_len],其中pd为待生成的文档,其中lpd介于最大值max_len和最小值min_len之间;
步骤1-3-5:以E作为关键词分布,在保证每个关键词wi对应的文档数量均不超出的前提下,随机选取lpd个可重复的关键词组成填充文档pd,同时对填充文档pd构造长度为l的向量/>其中元素/>的取值为关键词w1在填充文档pd中出现的次数,元素/>的取值为关键词w2在填充文档pd中出现的次数,元素/>的取值为关键词wl在填充文档pd中出现的次数;
步骤1-3-6:根据公式(4)采用欧几里得距离计算向量之间的距离,从样本文档向量集VB中选取k个距离向量vpd最近的向量作为一个集合,记为NE(vpd);
其中,k为预设的正整数;均为向量vη中的元素,/>均为向量vpd中的元素,向量vη为样本文档向量集合VB中的向量,1≤η≤|B|,d(vpd,vη)为vpd与vη之间的距离;
步骤1-3-7:根据步骤1-3-6得到的k个向量,按公式(5)选取距离vpd最远的向量为vpd的第k近向量,记为kd(vpd):
kd(vpd)=max{d(vpd,vμ)} (5)
其中max{}为取最大值函数,vμ为NE(vpd)中的向量,1≤μ≤k,向量vpd为填充文档pd的向量,d(vpd,vμ)为vpd与vμ之间的距离;
步骤1-3-8:按公式(6)分别计算vpd与NE(vpd)中每个vμ的可达距离rd(vpd,vμ):
rd(vpd,vμ)=max{kd(vμ),d(vpd,vμ)} (6)
其中向量vpd为填充文档pd的向量,vμ为NE(vpd)中的向量,1≤μ≤k,kd(vμ)为vμ的第k近向量,d(vpd,vμ)为vpd与vμ之间的距离;
步骤1-3-9:按公式(7)计算vpd和v1≤i≤k的局部可达密度
其中,k为NE(vpd)中向量的个数,向量vpd为填充文档pd的向量,NE(vpd)为k个距离向量vpd最近的向量构成的集合,vμ为NE(vpd)中的向量,rd(vpd,vμ)为vpd与NE(vpd)中每个vμ的可达距离,表示rd(vpd,v1)+rd(vpd,v2)+…+rd(vpd,vk-1)+rd(vpd,vk),其中v1,v2,vk-1,vk均为NE(vpd)中的元素;
步骤1-3-10:按公式(8)计算vpd的局部异常因子
其中,为vμ的局部可达密度,/>为vpd的局部可达密度;
步骤1-3-11:判断是否成立,若不成立则重新执行步骤1-3-5到步骤1-3-11,若成立则将填充文档pd添加到填充文档集合B中;
步骤1-3-12:重复步骤1-3-4到步骤1-3-11,直到各关键词wi对应的文档数量满足条件为止。
步骤1-4:填充加密服务器初始化关键词状态映射ST为空;
所述关键词状态映射ST是一个哈希表,表中的每个元素是一个链表的首地址,链表上存放的数据值是关键词状态值;
步骤1-5:填充加密服务器调用random()函数为伪随机函数生成种子k1和k2;
所述伪随机函数是一种密码学原语,用于产生伪随机位串,其输入为种子和特定值。本实施例中涉及的伪随机函数可以使用多种哈希函数,包括但不限于SHA-1、SHA-256等。
步骤1-6:填充加密服务器设置安全参数λ;
步骤2:填充加密服务器从数据拥有者接收以文档形式存储的流式数据,并根据其中的关键词以及关键词所属的类,在类对应的缓存中以(wi,id)形式构建索引条目,其中wi∈{w1,w2,...,wl},文档id表示为唯一区分文档的编号;不断重复步骤2,直到满足以下约束条件:
填充加密服务器上存在一个或多个类,每个类对应着一个缓存,其中的所有关键词在缓存中都有与之相应的索引条目存在。
步骤3:填充加密服务器初始化临时索引集M,根据待填充关键词以及待填充关键词所属的类,构造索引条目对索引进行填充,具体过程为:
步骤3-1:填充加密服务器初始化临时索引集M为空、初始化集合V为空;
其中,临时索引集M用于临时存放缓存中的索引条目和填充的索引条目,集合V为填充后的索引条目集合;
步骤3-2:填充加密服务器对于每个符合步骤2中约束条件的类的缓存执行以下操作:
a)将类的缓存中所有索引条目添加到临时索引集M中,并将类的缓存清空;
b)对于类Lj中的所有关键词wi,根据填充文档集B在临时索引集M中构建条填充的索引条目;其中/>是关键词wi在缓存/>被清空前所匹配的索引条目数量,cmax是缓存/>被清空前包含索引条目数量最多的关键词所对应的索引条目数量;
c)将临时索引集M中剩余的索引条目添加到V中,并将临时索引集M清空;
d)不断重复步骤3-2直到所有类都不满足步骤2中的约束条件为止。
步骤3的具体算法如算法1所示;
步骤4:填充加密服务器对V中索引条目所对应的文档集进行加密,并根据V中的索引条目建立安全索引I,如图3所示,具体包括:
其中,V表示为填充后的索引条目集合;所述安全索引,是通过哈希函数、伪随机函数等密码学原语进行保护的索引。
步骤4-1:填充加密服务器根据安全参数λ生成对称加密密钥SK,并使用AES加密算法以SK为密钥对V中索引条目所对应的文档集进行加密;
步骤4-2:填充加密服务器分别使用步骤1-5生成的k1和k2,通过伪随机函数F和关键词wi生成构造安全索引所需的两个中间值和kid,分别记为/>和kid←F(k2,wi)。
所述中间值和/>用于安全索引I的构建和关键词wi的检索,其中安全参数λ是步骤1-6由加密填充服务器设置的。
步骤4-3:填充加密服务器通过查看步骤1-4中生成的关键词状态映射ST中关键词wi的状态值,来判断关键词wi是否存在于云服务器中,若不存在则初始化关键词wi的状态值,记为其中/>为随机生成的二进制位串,/>初始化为0,此时b-1=0,即b=1;若存在则将关键词wi在第b-1次批量传输时存储的状态值取出,记为
易得,若某个关键词首次上传,则关键词状态映射ST中必不存在关键词wi的状态值,进而必有初始化关键词状态值且b-1=0。
其中,b为批量上传关键词wi对应的文档和索引时的编号,即填充加密服务器第b次上传关键词wi对应的文档和索引。
进一步,为避免与幂运算混淆,故使用带有小括号的上标表示批量上传的批次编号。
步骤4-4:填充加密服务器调用random()方法随机生成密钥通过调用陷门函数的编码函数G,使用密钥/>将/>转换成/>并将/>存入关键词wi的状态映射ST[wi]中,其中/>为关键词wi第b次填充后V中的索引条目数量。
其中,密钥是陷门函数的编码函数G与陷门函数的解码函数P-1的输入之一,用于实现/>与/>之间的转换。
所述的陷门函数是基于对称密钥的陷门函数,其中G称为编码函数,P-1称为解码函数。
步骤4-5:填充加密服务器初始化计数器cnt1的值为0,对填充后的索引条目集V中每个与wi匹配的文档id,执行下述操作:
(1)使用SHA-256哈希函数计算与/>串联后的哈希值,得到关键词wi在第b次批量上传时对应安全索引的键/>其中/>是步骤4-2中得到的;
(2)使用SHA-512哈希函数计算kid与的串联后的哈希值,并与id进行异或操作得到与cnt1的值相关的、关键词wi在第b次批量上传时含有关键词wi的文档id的安全索引的值/>其中kid是步骤4-2中得到的;
(3)将存入安全索引I;
(4)计数器cnt1自增1;
(5)重复(1)到(4),直到为止。
其中F为伪随机函数,用于生成与输入参数相关的唯一随机值,并将输入参数隐藏。
本实施例中涉及的计数器一律用整型值实现。
本实施例中涉及的哈希函数,均可通过调用现有的密码学库实现,如OpenSSL。
步骤4-6:填充加密服务器使用SHA-256哈希函数计算与/>串联后的哈希值,得到的值记为/>
所述的串联,是将两个值的字面连接在一起,如值123与值456的串联结果为123456。
步骤4-7:填充加密服务器使用SHA-512哈希函数计算kid与串联后的哈希值后将其与/>和/>的串联结果进行异或操作,得到/>
步骤4-8:填充加密服务器将加入到安全索引I中。
步骤4-9:填充加密服务器不断重复步骤4-2到步骤4-8,直到填充后的索引条目集V中的所有关键词都在安全索引I中构建了索引条目为止。
步骤5:填充加密服务器将加密后的V中索引条目所对应的文档集和安全索引I使用HTTP方式批量上传给云服务器,云服务器接收和存储加密后的V中索引条目所对应的文档集和安全索引I,其中云服务器将安全索引I存储到数据库中;
本实施例中用于存储加密后的V中索引条目所对应的文档集的方式是多样的,不局限于使用数据库存储,也可直接使用文件系统存储,只要能保证可以通过文档id检索到相应的文档即可。
本实施例中用于存储安全索引的数据库可以是任何键值型数据库,如LevelDB、Redis等。
步骤6:数据访问者使用HTTP方式向填充加密服务器发起关键词wi的检索请求,填充加密服务器初始化本地文档结果集RLocal为空,在关键词wi所在类Lj的缓存中检索包含关键词wi的索引条目,并将其索引条目所对应的文档添加到本地文档结果集RLocal中。
步骤7:填充加密服务器查看关键词状态映射ST中待检索关键词wi的状态值,若关键词wi的状态值存在于ST中,则将关键词wi的状态值取出,并使用伪随机函数F(k1,wi)和F(k2,wi)分别生成中间值/>和kid,将/>作为检索令牌,使用HTTP方式发送检索令牌给云服务器。/>
其中,k1和k2是步骤1-4生成的种子,用作伪随机函数的输入,F为伪随机函数。
步骤8:云服务器根据接收到的检索令牌执行检索操作,返回检索到的文档结果集RRemote给填充加密服务器,具体过程如图4所示,包括:
步骤8-1:云服务器接收填充加密服务器发来的检索令牌,令计数器iter=b,并初始化文档结果集RRemote为空;
步骤8-2:云服务器对于关键词wi在第iter次批量上传的条记录,初始化计数器cnt2为0,执行以下操作:
步骤8-2-1:使用SHA-256哈希函数对与/>的串联结果进行计算,得到关键词wi在第iter次批量上传时对应的安全索引键/>
步骤8-2-2:通过从安全索引中得到关键词wi在第iter次批量上传时含有关键词wi的文档id的安全索引值/>
步骤8-2-3:使用SHA-512哈希函数计算的哈希值,并与进行异或操作,得到文档id;
步骤8-2-4:通过文档id进行检索,并将得到的文档添加到文档结果集RRemote中;
步骤8-2-4:计数器cnt2自增1;
步骤8-2-5:不断重复步骤8-2-1至步骤8-2-4,直到cnt2与相等为止;
步骤8-3:云服务器寻找关键词wi状态值中/>的上一次批量传输状态/>及其对应的文档数量/>具体方法为:
步骤8-3-1:使用SHA-256哈希函数计算与/>串联结果的哈希值
步骤8-3-2:使用在安全索引I中查找包含了密钥/>的、在第iter-1次批量上传时关键词wi的安全索引值/>
步骤8-3-3:使用SHA-512哈希函数对计算得到的哈希值与/>进行异或操作,得到被保护的/>和/>的串联结果;
步骤8-3-4:调用陷门函数的解码函数P-1,使用对/>进行转换,得到上一次批量传输状态/>
其中,为步骤4-4生成的密钥,是陷门函数的编码函数G与陷门函数的解码函数P-1的输入之一。
步骤8-4:令iter=iter-1;
步骤8-5:不断重复步骤8-2到步骤8-4,直到为止。
步骤9:云服务器返回文档结果集RRemote给填充加密服务器,填充加密服务器对RRemote中的文档调用AES解密算法,使用密钥SK进行解密,并删去文档结果集RRemote中出现在填充文档集B中的文档,将上述处理后的结果与RLocal中的结果合并为文档结果集R,云服务器将文档结果集R使用HTTP方式返回给数据访问者。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;因而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
Claims (8)
1.一种支持访问模式隐藏的密态流式数据检索方法,其特征在于,该方法包括如步骤:
步骤1:填充加密服务器执行初始化操作,包括对样本数据集中的关键词进行聚类处理、根据聚类处理结果初始化缓存、初始化填充文档集B和初始化关键词状态映射ST为空;
步骤2:填充加密服务器从数据拥有者接收文档形式的流式数据,并根据其中的关键词以及关键词所属的类,在类对应的缓存中构建缓存中的索引条目,不断重复步骤2,直到满足约束条件:所有关键词在缓存中都有与之相应的索引条目存在;
步骤3:填充加密服务器,根据待填充关键词以及待填充关键词所属的类,构造填充的索引条目对索引进行填充;
步骤4:填充加密服务器对填充后的索引条目所对应的文档集进行加密,并根据填充后的索引条目建立安全索引;
步骤5:填充加密服务器将安全索引和加密后的文档集上传给云服务器,云服务器接收和存储安全索引和加密后的文档集;
步骤6:数据访问者输入关键词wi向填充加密服务器发起检索请求,填充加密服务器初始化本地文档结果集RLocal为空,在关键词wi所属类的缓存中检索包含关键词wi的索引条目,并将其索引条目所对应的文档添加到本地文档结果集RLocal中;
步骤7:根据关键词wi,填充加密服务器生成检索令牌,并将该检索令牌发送给云服务器;
步骤8:云服务器根据接收到的检索令牌执行检索操作,返回检索到的文档结果集RRemote给填充加密服务器;
步骤9:填充加密服务器对RRemote中的文档进行解密,从解密的文档结果集中过滤掉出现在填充文档集B中的填充文档后与本地文档结果集RLocal中的文档合并为文档集合R返回给数据访问者;
所述步骤3包括如下步骤:
步骤3-1:填充加密服务器初始化临时索引集M为空、初始化集合V为空;
其中,临时索引集M用于临时存放缓存中的索引条目和填充的索引条目,集合V为填充后的索引条目集合;
步骤3-2:填充加密服务器对于每个类的缓存执行以下操作:
a)将类的缓存中所有索引条目添加到临时索引集M中,并将类的缓存/>清空;
b)对于类Lj中的所有关键词wi,根据填充文档集B在临时索引集M中构建条填充的索引条目;其中/>是关键词wi在缓存/>被清空前所匹配的索引条目数量,cmax是缓存/>被清空前包含索引条目数量最多的关键词所对应的索引条目数量;
c)将临时索引集M中剩余的索引条目添加到V中,并将临时索引集M清空;
d)不断重复步骤3-2直到所有类都不满足所述约束条件为止;
所述约束条件为:所有关键词在缓存中都有与之相应的索引条目存在;
所述步骤4包括如下步骤:
步骤4-1:填充加密服务器生成加密密钥SK对V中索引条目所对应的文档集进行加密;
步骤4-2:填充加密服务器调用random()函数为伪随机函数生成种子k1和k2后,通过伪随机函数F和关键词wi生成构造安全索引所需的两个中间值和kid,分别记为/> 和kid←F(k2,wi);
步骤4-3:填充加密服务器通过关键词状态映射ST中关键词wi的状态值,来判断关键词wi是否存在于云服务器中,若不存在则初始化关键词wi的状态值,记为其中为随机生成的二进制位串,/>初始化为0,此时b-1=0,即b=1;若存在则将关键词wi在第b-1次批量传输时存储的状态值取出,记为/>b为批量上传关键词wi对应的文档和索引时的次序号;
步骤4-4:填充加密服务器调用random()方法随机生成密钥通过调用陷门函数的编码函数G,使用密钥/>将/>转换成/>并将/>存入关键词wi的状态映射ST[wi]中,其中/>为关键词wi第b次填充后V中的索引条目数量;
其中,密钥是陷门函数的编码函数G与陷门函数的解码函数P-1的一个输入,用于实现/>与/>之间的转换;
步骤4-5:填充加密服务器初始化计数器cnt1的值为0,对填充后的索引条目集V中每个与wi匹配的文档id,执行下述操作:
(1)调用哈希函数H1计算与/>串联后的哈希值,得到关键词wi在第b次批量上传时对应安全索引的键/>
(2)调用哈希函数H2计算kid与的串联后的哈希值,并与id进行异或操作得到与cnt1的值相关的、关键词wi在第b次批量上传时含有关键词wi的文档id的安全索引的值
(3)将存入安全索引I;
(4)计数器cnt1自增1;
(5)重复(1)到(4),直到为止;
步骤4-6:填充加密服务器调用哈希函数H1计算与/>串联后的哈希值,得到的值记为/>
步骤4-7:填充加密服务器调用哈希函数H2计算kid与串联后的哈希值后将其与/>和/>的串联结果进行异或操作,得到/>
步骤4-8:填充加密服务器将加入到安全索引I中;
步骤4-9:填充加密服务器不断重复步骤4-2到步骤4-8,直到填充后的索引条目集V中的所有关键词都在安全索引I中构建了索引条目为止。
2.根据权利要求1所述的支持访问模式隐藏的密态流式数据检索方法,其特征在于,所述填充加密服务器对样本数据集中的关键词进行聚类处理,包括如下步骤:
步骤1-1-1:填充加密服务器将样本数据集中的关键词按照关键词频率进行升序排列,得到升序的关键词序列{w1,w2,...,wl},对于序列中的关键词wi,其频率为 具有如下性质:
其中,l为所述关键词序列中关键词的总数,所述关键词序列中的关键词互不相同;
步骤1-1-2:设置类中关键词的最小数量α;
步骤1-1-3:按公式(2)设置类的个数为X:
步骤1-1-4:填充加密服务器对升序的关键词序列{w1,w2,...,wl}进行聚类划分,每个类至少包含α个连续的关键词,划分到最后时,如果剩余关键词个数不足α个则将这不足α个关键词并入到最后一个类,以此类推,不断调整在关键词序列上划分的位置来得到X为当前值时的所有划分;
步骤1-1-5:令X=X-1,转至步骤1-1-4,重复执行步骤1-1-4至步骤1-1-5,直到X=1;步骤1-1-6:填充加密服务器计算每种划分的填充开销γ,并选取γ值最小的聚类划分作为对样本数据集中的关键词的聚类处理结果。
3.根据权利要求2所述的支持访问模式隐藏的密态流式数据检索方法,其特征在于,所述填充加密服务器根据聚类处理结果初始化缓存的方法为:填充加密服务器根据每个类中关键词频率之和为每个类分配缓存空间,每个类对应的缓存空间记为为各个类分配的缓存空间为/>
其中,m为类的数量;N为流式数据索引条目的总缓存空间;|N|表示索引条目的总缓存空间大小;t为第一个类中的关键词的数量;u-t为第二个类中的关键词的数量;l-v为第m个类中的关键词的数量;为第一个类中关键词频率的和,/>为第二个类中关键词频率的和,/>为最后一个类中关键词频率的和。
4.根据权利要求1所述的支持访问模式隐藏的密态流式数据检索方法,其特征在于,填充加密服务器初始化由填充文档集B的方法为:填充加密服务器调用基于距离的离群点检测算法迭代构造填充文档集B。
5.根据权利要求4所述的支持访问模式隐藏的密态流式数据检索方法,其特征在于,所述填充加密服务器构造填充文档集B具体包括如下步骤:
步骤1-3-1:为样本数据集中的所有文档分别构造文档向量,将得到的向量集合记为样本文档向量集VB,每个文档向量由l个元素构成,其中每个元素的取值为关键词在文档中出现的次数;
步骤1-3-2:计算填充文档集B中每个关键词wi应当出现的频率其中fmax为关键词wi所在类中词频最高的关键词的频率,/>为关键词wi的频率;
步骤1-3-3:根据每个关键词在填充文档集B中的频率,计算每个关键词wi对应的文档数量将集合/>记为E,其中|B|为填充文档集B中文档的数量;
步骤1-3-4:提取样本数据集中文档长度的最大值max_len和最小值min_len,并根据文档长度的最大值和最小值随机生成填充文档的长度lpd∈[max_len,min_len],其中pd为待生成的文档;
步骤1-3-5:以E作为关键词分布,在保证每个关键词wi对应的文档数量均不超出的前提下,随机选取lpd个可重复的关键词组成填充文档pd,同时对填充文档pd构造长度为l的向量/>其中元素/>的取值为关键词w1在填充文档pd中出现的次数,元素/>的取值为关键词w2在填充文档pd中出现的次数,元素的取值为关键词wl在填充文档pd中出现的次数;
步骤1-3-6:采用欧几里得算法计算向量之间的距离,从样本文档向量集VB中选取k个距离向量vpd最近的向量作为一个集合,记为NE(vpd);
步骤1-3-7:从集合NE(vpd)中选取距离vpd最远的向量为vpd的第k近向量,记为kd(vpd):
步骤1-3-8:分别计算vpd与NE(vpd)中的每个向量的可达距离rd(vpd,vμ),其中vμ代表NE(vpd)中的一个向量:
步骤1-3-9:计算vpd和NE(vpd)中的元素的局部可达密度
步骤1-3-10:计算vpd的局部异常因子
步骤1-3-11:判断是否成立,若不成立,则重新执行步骤1-3-5到步骤1-3-11,若成立,则将填充文档pd添加到填充文档集合B中;
步骤1-3-12:重复步骤1-3-4到步骤1-3-11,直到各关键词wi对应的文档数量满足条件为止。
6.根据权利要求5所述的支持访问模式隐藏的密态流式数据检索方法,其特征在于,所述步骤8包括如下步骤:
步骤8-1:云服务器接收填充加密服务器发来的检索令牌,令计数器iter=b,并初始化文档结果集RRemote为空;
步骤8-2:云服务器对于关键词wi在第iter次批量上传的条记录,初始化计数器cnt2为0,执行以下操作:
步骤8-2-1:调用哈希函数H1,对与/>的串联结果进行计算,得到关键词wi在第iter次批量上传时对应的安全索引键/>
步骤8-2-2:通过从安全索引中得到关键词wi在第iter次批量上传时含有关键词wi的文档id的安全索引值/>
步骤8-2-3:调用哈希函数H2,计算的哈希值,并与/>进行异或操作,得到文档id;
步骤8-2-4:通过文档id进行检索,并将得到的文档添加到文档结果集RRemote中;
步骤8-2-4:计数器cnt2自增1;
步骤8-2-5:不断重复步骤8-2-1至步骤8-2-4,直到cnt2与相等为止;
步骤8-3:云服务器寻找关键词wi状态值中/>的上一次批量传输状态/>及其对应的文档数量/>
步骤8-4:令iter=iter-1;
步骤8-5:不断重复步骤8-2到步骤8-4,直到为止。
7.根据权利要求6所述的支持访问模式隐藏的密态流式数据检索方法,其特征在于,所述步骤8-3包括如下步骤:
步骤8-3-1:调用哈希函数H1,计算与/>串联结果的哈希值/>
步骤8-3-2:使用在安全索引I中查找包含了密钥/>的、在第iter-1次批量上传时关键词wi的安全索引值/>
步骤8-3-3:对计算得到的哈希值与/>进行异或操作,得到被保护的/>和/>的串联结果;
步骤8-3-4:调用陷门函数的解码函数P-1,使用对/>进行转换,得到上一次批量传输状态/>
8.实现上述任一项所述支持访问模式隐藏的密态流式数据检索方法的支持访问模式隐藏的密态流式数据检索系统,其特征在于,该系统包括:
数据拥有者,将文档形式的流式数据发送给填充加密服务器;
填充加密服务器,用于设置安全参数;针对样本数据集中出现的所有关键词,根据其词频生成关键词聚类;根据关键词聚类,对接收到的流式数据进行填充;为填充过的流式数据构建安全索引;根据安全参数生成加密密钥,使用加密密钥对填充的流式数据进行加密,并与安全索引一并上传到云服务器中;接收到数据访问者的查询请求后,使用数据访问者提供的关键词生成检索令牌并将其发送给云服务器,且在本地检索包含该关键词的文档;对从云服务器接收的检索结果进行解密,并删去其中的填充文档后与本地检索的包含数据访问者提供的关键词的文档合并为文档集合返回给数据访问者;
云服务器,用于对安全索引和填充并加密过的流式数据进行存储;根据从填充加密服务器接收的查询令牌进行检索,并将检索后的结果返回给填充加密服务器;
数据访问者,输入关键词向填充加密服务器发起查询请求并接收填充加密服务器返回的文档集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110829220.5A CN113468575B (zh) | 2021-07-22 | 2021-07-22 | 一种支持访问模式隐藏的密态流式数据检索系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110829220.5A CN113468575B (zh) | 2021-07-22 | 2021-07-22 | 一种支持访问模式隐藏的密态流式数据检索系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113468575A CN113468575A (zh) | 2021-10-01 |
CN113468575B true CN113468575B (zh) | 2023-09-19 |
Family
ID=77881895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110829220.5A Active CN113468575B (zh) | 2021-07-22 | 2021-07-22 | 一种支持访问模式隐藏的密态流式数据检索系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113468575B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117353926B (zh) * | 2023-12-01 | 2024-02-27 | 苏州元脑智能科技有限公司 | 一种基于芯片的sm2算法密码处理方法、装置及设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010029559A1 (en) * | 2008-09-15 | 2010-03-18 | Vaultive Ltd. | Method and system for secure use of services by untrusted storage providers |
JP2013125445A (ja) * | 2011-12-15 | 2013-06-24 | Toshiba Corp | 暗号化された文書の転置インデックス作成方法及び転置インデックスを使用する検索方法 |
CN104636462A (zh) * | 2015-02-06 | 2015-05-20 | 中国科学院软件研究所 | 一种能抵抗统计分析攻击的快速密文检索方法和系统 |
CN106127075A (zh) * | 2016-06-27 | 2016-11-16 | 湖南大学 | 一种云存储环境下基于隐私保护的可搜索加密方法 |
CN107766739A (zh) * | 2017-09-18 | 2018-03-06 | 北京理工大学 | 面向加密文本数据的短语检索方法及其装置 |
CN108647529A (zh) * | 2018-05-09 | 2018-10-12 | 上海海事大学 | 一种基于语义的多关键词排序搜索隐私保护系统及方法 |
CN109165226A (zh) * | 2018-10-15 | 2019-01-08 | 东北大学 | 一种面向密文大型数据集的可搜索加密方法 |
CN109740362A (zh) * | 2019-01-03 | 2019-05-10 | 中国科学院软件研究所 | 一种基于熵编码的密文索引生成与检索方法及系统 |
CN110334526A (zh) * | 2019-05-30 | 2019-10-15 | 西安电子科技大学 | 一种支持验证的前向安全可搜索加密存储系统及方法 |
CN110866135A (zh) * | 2019-11-12 | 2020-03-06 | 重庆邮电大学 | 一种基于响应长度隐藏的k-NN图像检索方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9405928B2 (en) * | 2014-09-17 | 2016-08-02 | Commvault Systems, Inc. | Deriving encryption rules based on file content |
KR101668957B1 (ko) * | 2015-07-09 | 2016-10-24 | 라인 가부시키가이샤 | 통신 비용의 절감을 위한 컨텐츠 스트리밍 서비스 방법 및 시스템 |
-
2021
- 2021-07-22 CN CN202110829220.5A patent/CN113468575B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010029559A1 (en) * | 2008-09-15 | 2010-03-18 | Vaultive Ltd. | Method and system for secure use of services by untrusted storage providers |
JP2013125445A (ja) * | 2011-12-15 | 2013-06-24 | Toshiba Corp | 暗号化された文書の転置インデックス作成方法及び転置インデックスを使用する検索方法 |
CN104636462A (zh) * | 2015-02-06 | 2015-05-20 | 中国科学院软件研究所 | 一种能抵抗统计分析攻击的快速密文检索方法和系统 |
CN106127075A (zh) * | 2016-06-27 | 2016-11-16 | 湖南大学 | 一种云存储环境下基于隐私保护的可搜索加密方法 |
CN107766739A (zh) * | 2017-09-18 | 2018-03-06 | 北京理工大学 | 面向加密文本数据的短语检索方法及其装置 |
CN108647529A (zh) * | 2018-05-09 | 2018-10-12 | 上海海事大学 | 一种基于语义的多关键词排序搜索隐私保护系统及方法 |
CN109165226A (zh) * | 2018-10-15 | 2019-01-08 | 东北大学 | 一种面向密文大型数据集的可搜索加密方法 |
CN109740362A (zh) * | 2019-01-03 | 2019-05-10 | 中国科学院软件研究所 | 一种基于熵编码的密文索引生成与检索方法及系统 |
CN110334526A (zh) * | 2019-05-30 | 2019-10-15 | 西安电子科技大学 | 一种支持验证的前向安全可搜索加密存储系统及方法 |
CN110866135A (zh) * | 2019-11-12 | 2020-03-06 | 重庆邮电大学 | 一种基于响应长度隐藏的k-NN图像检索方法及系统 |
Non-Patent Citations (7)
Title |
---|
DRIVEN: A framework for efficient data retrieval and clustering in vehicular networks;Bastian Havers 等;Journal & Books;第107卷;1-17 * |
Secure and Efficient Data Retrieval Process based on Hilbert Space Filling Curve;N.S. Jeya Karthikka 等;International Journal of Computer Applications;第91卷(第4期);36-40 * |
双服务器模型下支持相关度排序的多关键字密文搜索方案;李宇溪 等;计算机研究与发展;第55卷(第10期);2149-2163 * |
基于R-LWE的密文域多比特可逆信息隐藏算法;柯彦 等;计算机研究与发展;第53卷(第10期);2307-2322 * |
基于同态加密的密文数据库统计模型的设计与实现;陈志伟 等;信息网络安全(第03期);12-15 * |
基于空间填充曲线的安全最近邻检索算法研究;房思勤;《中国优秀硕士学位论文全文数据库 信息科技辑》(第05期);I138-1441 * |
隐藏访问模式的高效安全云存储方案;李宇溪 等;东北大学学报( 自然科学版);第39卷(第8期);1086-1091 * |
Also Published As
Publication number | Publication date |
---|---|
CN113468575A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11843687B2 (en) | Systems, devices, and processes for homomorphic encryption | |
CN106815350B (zh) | 一种云环境中动态的密文多关键词模糊搜索方法 | |
Wang et al. | Searchable encryption over feature-rich data | |
US9275250B2 (en) | Searchable encryption processing system | |
Kamara et al. | Dynamic searchable symmetric encryption | |
CN111026788B (zh) | 一种混合云中基于同态加密的多关键词密文排序检索方法 | |
JP6208586B2 (ja) | 検索可能暗号処理システムおよび検索可能暗号処理方法 | |
CN109740362B (zh) | 一种基于熵编码的密文索引生成与检索方法及系统 | |
CN110866135B (zh) | 一种基于响应长度隐藏的k-NN图像检索方法及系统 | |
CN112000632B (zh) | 密文的分享方法、介质、分享客户端及系统 | |
US20150270958A1 (en) | Decryptable index generation method for range search, search method, and decryption method | |
CN113468575B (zh) | 一种支持访问模式隐藏的密态流式数据检索系统及方法 | |
CN112199698A (zh) | 一种健壮的可搜索对称加密方法与系统 | |
CN107086917B (zh) | 一种并行化和结构化公钥可搜索的加密方法 | |
CN113630250B (zh) | 基于数据加密的模型训练方法及系统 | |
Liu et al. | EncSIM: An encrypted similarity search service for distributed high-dimensional datasets | |
CN111552988B (zh) | 基于蒙特卡罗抽样的前向安全k近邻检索方法及系统 | |
KR101232385B1 (ko) | 대칭키 기반의 암호 생성 및 검색 방법과 그 시스템 | |
Sheikhalishahi et al. | Privacy preserving hierarchical clustering over multi-party data distribution | |
KR100951034B1 (ko) | 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법 | |
Hwang et al. | Encrypted keyword search mechanism based on bitmap index for personal storage services | |
Zhang | Semantic-based searchable encryption in cloud: issues and challenges | |
CN114416720A (zh) | 云环境中高效灵活可验证的多属性范围检索方法及系统 | |
KR102424856B1 (ko) | Rlwe 암호문들의 압축 및 불확정적 확장 | |
CN109165226B (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 |