基于隐私保持的分布式Top-k查询方法

文档序号:7979921阅读:281来源:国知局
专利名称:基于隐私保持的分布式Top-k查询方法
技术领域
本发明涉及一种基于隐私保持的分布式Top-k查询方法,确切地说,涉及一种在汇聚计算过程中对处理的数据对是经过本发明处理过的非真实值,但是最终获得的查询结果是真实、正确的,从而保护数据提供方的数据隐私;属于计算机网络中的网络管理、安全监控、数据挖掘隐私保护、分布式计算等多项技术,特别是分布式计算和数据挖掘、数据隐私保护的技术领域。
背景技术
本发明处理的数据对象为分布在不同地理位置的数据列表,该参见图1,分布式Top-k(前k项)查询是由中心计算节点通过汇聚分布在不同地理位置的数据列表,计算出全局汇聚值最大的前k个对象及汇聚值;其中数据列表的每一项都是一个数据对 < 对象,对象值 >,数据对中的对象和对象值都包含有数据提供方的敏感信息。分布式Top-k查询计算在网络和系统监控、信息采集、传感器网络、P2P系统以及数据流控制系统等技术领域都有广泛的应用。传统的分布式Top-k查询算法需要中心计算节点收集分布在不同地理位置的众多数据提供方提供的数据列表,通过汇聚排序后,再返回查询的结果,计算过程中数据提供方的数据隐私全部暴露给中心节点,中心计算节点信息的泄露就会导致数据提供方数据隐私的泄露。三阶段统一阀值算法(TPUT)是将分布式Top-k查询分为三个阶段第一阶段,中心计算节点汇聚计算各数据列表的前k项,计算出一个统一的阀值。第二阶段,各数据提供方将各自数据列表中对象值大于该阀值的数据对上传到中心计算节点,中心计算节点通过界限剪枝去除掉冗余的数据对,得到Top-k候选集。第三阶段,各数据提供方从各自的数据列表中找出候选集出现的对象,将对应的数据对上传到中心计算节点,中心计算节点通过汇聚计算,并降序排列得到最终的Top-k查询结果。该方法减少了数据提供方上传的数据量,可以通过有限次数的应答(即三次)获得精确的Top-k查询结果。然而,该算法没有考虑到数据提供方的数据分布性特点,只是假设所有数据提供方提供的数据具有相同的分布性。如果各个数据提供方拥有的数据分布差异较大时,数据上传量将大大增加,从而也会造成数据隐私的泄露。三阶段自适应阀值算法(TPAT)对TPUT算法的第一阶段进行了改进中心计算节点根据数据提供方各自数据列表数据对象的直方图进行统计,通过最优化算法计算出各个数据提供方对应的上传数据的阀值;这样有效减少了第一阶段数据上传的冗余,但是,当各数据提供方数据排序变化比较大时,仍会有大量数据隐私会被泄露。目前,安全多方计算研究已经取得了一定成果。概括地说,安全多方计算是为了研究一组互不信任的参与者如何在保护各自私有信息的基础上完成合作计算。基于二分查找的分布式Top-k查询方法通过使用安全多方计算中的比较等原子操作,再使用二分查找计算最终的全局汇聚值最大的前K个对象及汇聚值,该计算过程中无需中心计算节点的参与,数据提供方在不暴露数据列表中对象值的情况下,就可以获得最终正确的计算结果。但是,该方法计算过程中没有对数据列表中的对象的隐私进行处理,算法中大量的安全多方计算比较操作导致算法运行时间难以部署在实际应用环境中。基于Hash表的二分查找分布式Top-k查询方法是首先通过使用Hash表对各个数据提供方数据列表中的对象进行归一化,然后使用Siamir(人名)门限秘密共享方案,对归一化的数据进行安全汇聚,最后通过安全的二分查找获得最终的查询结果。由于Hash表对数据进行归一化会造成数据项的冲突,最终的查询结果只是一个近似结果,此外,计算过程中大量安全多方求和操作和比较操作也会使算法的运行时间随着Hash表的大小呈指数增长。分布式Top-k查询计算需要中心计算节点与各个数据提供方协同计算共同完成, 由于大多数的数据提供方分别属于不同的组织或管理机构,分布在不同的地理位置,同时数据提供方提供的数据列表中中还包含了大量的隐私敏感信息,然而,目前已有的分布式 Top-k查询算法在隐私保护、运行效率方面还不能满足实时、全面保护的要求,因此,如何在平衡算法的运行效率和安全保护就成为当前亟需解决的问题。

发明内容
有鉴于此,本发明的目的是提供一种基于隐私保持的分布式Top-k查询方法,该方法特点是在三阶段阀值算法基础上,使用安全多方计算操作分别对数据列表中的对象和对象值进行隐私保护处理,从而在最大化保护数据提供方隐私的同时,可以快速、精确地获得Top-k查询结果,使得数据提供方在不暴露自有数据隐私的前提下,就完成安全的数据汇聚查询操作。为了达到上述发明目的,本发明提供了一种基于隐私保持的分布式TOP-K查询方法,所述分布式Top-k查询是中心计算节点通过汇聚分布在不同地理位置的数据列表,计算出全局汇聚值中最大的前k个对象及汇聚值;其特征在于中心计算节点先对各数据提供方数据列表中的对象进行隐私保护处理,然后在三阶段阀值算法的基础上,利用安全多方计算操作对数据列表中的对象值进行隐私保护处理,以便在最大化保护数据提供方数据隐私的同时,能够快速、精确地获得Top-k查询结果;所述方法包括下列操作步骤(1)中心计算节点与数据提供方之间运行安全计算协议,对数据列表中的对象和对象值进行隐私保护处理;(2)中心计算节点与数据提供方之间根据阀值算法计算Top-k候选集;(3)数据提供方之间对候选集中的对象进行安全多方求和操作,中心计算节点通过降序排列得到经过隐私处理后的Top-k对象集及其对应的汇聚值。(4)中心计算节点还原Top-k对象集中的对象真实值,返回查询结果。本发明方法与现有技术相比较,主要有两方面的改进首先,本发明对数据隐私保护具有全面性;其次,本发明的运行效率和准确性都比较高。传统的基于阀值的分布式Top-k查询算法,虽然能经过有限次的交互查询就可以得到精确或近似的查询结果,但是,数据中涉及对象属性和对象的数值分布完全暴露给中心计算节点,中心计算节点的信息泄露会导致参与查询计算的数据提供方信息的泄露。基于安全多方计算的二分查找分布式Top-k查询算法只对对象值进行了隐私处理,当各个数据提供方对象分布不均勻时,会造成数据对象信息的泄露。如在网络监控应用中,不同管理域之间进行目的IP地址汇聚查询计算,使用该算法可能会造成各个管理域的大部分活跃IP地址泄露,从而可能引发不必要的网络攻击行为。目前,最好的可以隐私保持的分布式Top-k查询算法是基于Hash表和安全多方计算的的二分查找算法,该算法通过Hash表对数据对象实现了归一化和隐私保护,然后,再使用Siamir门限秘密共享方案对归一化的对象值进行安全汇聚,最后通过安全的二分查找获得最终近似的查询结果,从而实现了对数据对象和对象值的全面保护。但是,由于该算法利用hash表进行数据对象的归一化,在归一化的过程中会造成数据对象遗漏,从而造成查询结果的不准确。虽然通过增加hash表的长度可有效减少误差,然而,表长的增加,增加了安全多方计算比较和的求和操作,进而影响算法的运行效率,难以满足实时连续查询需求。因此,本发明在三阶段阀值算法基础上,使用安全多方计算操作分别对数据列表中的对象和对象值进行隐私保护处理,从而既最大化地保护数据提供方隐私,同时,能够快速、精确地获得Top-k查询结果,使得数据提供方在不暴露自有数据隐私的前提下,就能够快速、 安全地完成数据汇聚查询操作。所以,本发明在分布式网络协同安全监控、网络管理、数据挖掘隐私保护等许多领域具有很好的推广应用前景。


图1是本发明基于隐私保持的分布式Top-k查询方法的一种应用场景系统结构示意图。图2是本发明基于隐私保持的分布式Top-k查询方法操作步骤流程图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明作进一步的详细描述。本发明基于隐私保持的分布式Top-k查询方法是中心计算节点先对各数据提供方数据列表中的对象进行隐私保护处理,然后在三阶段阀值算法的基础上,利用安全多方计算操作对数据列表中的对象值进行隐私保护处理,以便在最大化保护数据提供方数据隐私的同时,能够快速、精确地获得Top-k查询结果。本发明中,每个数据提供方提供的数据列表中的对象是m位字符串χ = (X1. . . . . Xm),式中,下标m的取值区间为(192,256),若字符串的长度超过256,则数据提供方使用统一的映射函数(例如哈希函数)将该字符串映射为m位字符串,然后中心计算节点对各数据提供方的数据列表中的对象和对象值执行隐私处理。参见图2,介绍本发明方法的下述具体操作步骤步骤1,中心计算节点与数据提供方之间运行安全计算协议,对数据列表中的对象和对象值进行隐私保护处理。该步骤包括下列操作内容(11)中心计算节点随机产生一个大素数ρ和ρ阶乘法群GP,以及(}P的生成元g,并
在整数模P乘法群《中随机产生ail个随机值Ia1,......,和Ir1,......,rm},再组成
m个数据对( , ^i),式中,自然数i的最大值为m,并计算固定值/ = g1/r^ ,并将这m 个数据对和固定值t发送给各个数据提供方;(12)数据提供方按照下述方式逐一计算数据列表中每个对象χ = (X1. . . . . I)对应的加密值M
若\ = 0,则记为 ,否则,记为^Xri ;再计算J = (ΠΓ=1 Α) Χ (Π =1 η),则该对象
的加密值M = tA,然后将该加密值与原对象建立一一映射关系;经过上述隐私处理后,中心计算节点就无法获知各数据列表中对象的真实值,且每个数据提供方数据列表中同一个对象的加密值是相同的,每个数据提供方能够还原加密对象的真实值;(13)数据提供方选择一个随机值,再将各自数据列表中所有对象的对象值减去该随机值,数据提供方之间共同运行Siamir门限秘密共享求和操作,计算这些随机值的总和,以使每个数据提供方也不能获知其他数据提供方相减后的随机值;然后,将该总和发送给中心计算节点;如此操作后,数据提供方与中心计算节点之间交互对象的对象值都是隐私处理后的非真实值。步骤2,中心计算节点与数据提供方之间根据阀值算法计算Top-k候选集。该步骤包括下列操作内容(21)数据提供方只将各数据列表中加密后中降序排列的前k个对象上传到中心计算节点,中心计算节点删除重复出现的对象后,将剩余的对象发送给各数据提供方,以使数据提供方再将这些对象对应的对象值上传给中心计算节点;(22)假设参与查询计算的数据提供方共有η个,各数据提供方将每个需要上传对象的对象值分成η份,该η份的和等于该对象值;再将(η-1)份发给其他数据提供方;如果该对象不在数据列表中,则认为该对象的对象值为以前减去的随机值,也分为η份发给其他数据提供方;其它数据提供方接收到该对象的(η-1)份数据后,重新汇聚求和,作为该对象的对象值;然后将这些对象及汇聚后的对象值上传到中心计算节点;(23)中心计算节点将上传的对象汇聚求和后,按降序排列,选取第k个对象的汇聚值为阀值,并将该阀值均分后发送给各数据提供方;数据提供方接收到均分的阀值后,将大于该阀值的对象及对象值上传到中心计算节点;(24)中心计算节点去除重复出现的对象,将剩余的对象组成Top-k候选集,再将该Top-k候选集发送到各个数据提供方。步骤3,数据提供方之间对候选集中的对象进行安全多方求和操作,中心计算节点通过降序排列得到经过隐私处理后的Top-k对象集及其对应的汇聚值。该步骤包括下列操作内容(31)各数据提供方从各自的数据列表中找出候选集出现的对象,将每个对象的对象值分成η份,该η份的和等于该对象值;再将(η-1)份发送给其他数据提供方;如果候选集中的该对象不在数据列表中,则认为该对象的对象值为以前减去的随机值,也分为η份发送给其他数据提供方;其它数据提供方接收到该对象的(η-1)份数据后,重新汇聚求和, 作为该对象的对象值;然后将该对象值上传到中心计算节点;(32)中心计算节点再次将上传的对象汇聚求和,并将该结果加上由步骤(13)减去随机值的总和,进行降序排列后,得到Top-k对象集合及汇聚值。步骤4,中心计算节点还原Top-k对象集中的对象真实值,返回查询结果,查询结束。该步骤包括下列操作内容(41)中心计算节点向各数据提供方查询Top-k对象集合中对象的真实值;(42)中心计算节点向各数据提供方返回真实的Top-k对象集合及对应的汇聚值,查询结束。 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种基于隐私保持的分布式Top-k查询方法,所述分布式Top-k查询是中心计算节点通过汇聚分布在不同地理位置的数据列表,计算出全局汇聚值中最大的前k个对象及汇聚值;其特征在于中心计算节点先对各数据提供方数据列表中的对象进行隐私保护处理,然后在三阶段阀值算法的基础上,利用安全多方计算操作对数据列表中的对象值进行隐私保护处理,以便在最大化保护数据提供方数据隐私的同时,能够快速、精确地获得 Top-k查询结果;所述方法包括下列操作步骤(1)中心计算节点与数据提供方之间运行安全计算协议,对数据列表中的对象和对象值进行隐私保护处理;(2)中心计算节点与数据提供方之间根据阀值算法计算Top-k候选集;(3)数据提供方之间对候选集中的对象进行安全多方求和操作,中心计算节点通过降序排列得到经过隐私处理后的Top-k对象集及其对应的汇聚值;(4)中心计算节点还原Top-k对象集中的对象真实值,返回查询结果。
2.根据权利要求1所述的方法,其特征在于每个数据提供方所提供的数据列表中的对象是m位字符串χ = (X1……I),式中,下标m的取值区间为(192,256),若字符串的长度超过256,则数据提供方使用统一的映射函数将该字符串映射为m位字符串,然后中心计算节点对各数据提供方的数据列表中的对象和对象值执行隐私处理。
3.根据权利要求2所述的方法,其特征在于所述映射函数是哈希函数。
4.根据权利要求1所述的方法,其特征在于所述步骤(1)包括下列操作内容(11)中心计算节点随机产生一个大素数ρ和ρ阶乘法群(}P,以及(^p的生成元g,并在整数模P乘法群《中随机产生ail个随机值Ia1,......,和Ir1,......,rm},再组成m个数据对(屮,屮·巧),式中,自然数i的最大值为m,并计算固定值/ =α·,并将这m个数据对和固定值t发送给各个数据提供方;(12)数据提供方按照下述方式逐一计算数据列表中每个对象χ= (X1.....xffl)对应的加密值M 若Xi = 0,则记为否则,记为屮Xri ;再计算J = (Π Ci1) χ (Π: η),则该对象的加密值M = tA,然后将该加密值与原对象建立一一映射关系;经过上述隐私处理后,中心计算节点就无法获知各数据列表中对象的真实值,且每个数据提供方数据列表中同一个对象的加密值是相同的,每个数据提供方能够还原加密对象的真实值;(13)数据提供方选择一个随机值,再将各自数据列表中所有对象的对象值减去该随机值,数据提供方之间共同运行Siamir门限秘密共享求和操作,计算这些随机值的总和,以使每个数据提供方也不能获知其他数据提供方相减后的随机值;然后,将该总和发送给中心计算节点;如此操作后,数据提供方与中心计算节点之间交互对象的对象值都是隐私处理后的非真实值。
5.根据权利要求1所述的方法,其特征在于所述步骤(2)包括下列操作内容(21)数据提供方只将各数据列表中加密后中降序排列的前k个对象上传到中心计算节点,中心计算节点删除重复出现的对象后,将剩余的对象发送给各数据提供方,以使数据提供方再将这些对象对应的对象值上传给中心计算节点;(22)假设参与查询计算的数据提供方共有η个,各数据提供方将每个需要上传对象的对象值分成η份,该η份的和等于该对象值;再将(η-1)份发给其他数据提供方;如果该对象不在数据列表中,则认为该对象的对象值为以前减去的随机值,也分为η份发给其他数据提供方;其它数据提供方接收到该对象的(η-1)份数据后,重新汇聚求和,作为该对象的对象值;然后将这些对象及汇聚后的对象值上传到中心计算节点;(23)中心计算节点将上传的对象汇聚求和后,按降序排列,选取第k个对象的汇聚值为阀值,并将该阀值均分后发送给各数据提供方;数据提供方接收到均分的阀值后,将大于该阀值的对象及对象值上传到中心计算节点;(24)中心计算节点去除重复出现的对象,将剩余的对象组成Top-k候选集,再将该 Top-k候选集发送到各个数据提供方。
6.根据权利要求1所述的方法,其特征在于所述步骤(3)包括下列操作内容(31)各数据提供方从各自的数据列表中找出候选集出现的对象,将每个对象的对象值分成η份,该η份的和等于该对象值;再将(η-1)份发送给其他数据提供方;如果候选集中的该对象不在数据列表中,则认为该对象的对象值为以前减去的随机值,也分为η份发送给其他数据提供方;其它数据提供方接收到该对象的(η-1)份数据后,重新汇聚求和,作为该对象的对象值;然后将该对象值上传到中心计算节点;(32)中心计算节点再次将上传的对象汇聚求和,并将该结果加上由步骤(13)减去随机值的总和,进行降序排列后,得到Top-k对象集合及汇聚值。
7.根据权利要求1所述的方法,其特征在于所述步骤(4)包括下列操作内容(41)中心计算节点向各数据提供方查询Top-k对象集合中对象的真实值;(42)中心计算节点向各数据提供方返回真实的Top-k对象集合及对应的汇聚值,查询结束。
8.根据权利要求1所述的方法,其特征在于所述方法用于分布式网络的协同安全监控、网络管理和数据挖掘隐私保护。
全文摘要
一种基于隐私保持的分布式Top-k查询方法,是由中心计算节点先对各数据提供方数据列表中的对象进行隐私保护处理,然后在三阶段阀值算法的基础上,利用安全多方计算操作分别对各个数据列表中的对象值进行隐私保护处理,以便在最大化保护数据提供方数据隐私的同时,能够快速、精确地获得Top-k查询结果,从而使得数据提供方在不暴露自有数据隐私的前提下,就完成安全的数据汇聚查询操作。所以,本发明在分布式网络协同安全监控、网络管理、数据挖掘隐私保护等许多领域具有很好的推广应用前景。
文档编号H04L12/24GK102394784SQ20111037106
公开日2012年3月28日 申请日期2011年11月21日 优先权日2011年11月21日
发明者吴军, 宁春雨, 张沛, 林昭文, 王振华, 苏玉洁, 赵钦, 郑希帆, 马严, 黄小红 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1