一种基于置换的发布轨迹隐私保护方法
技术领域
本发明属于数据挖掘与信息安全
技术领域
,具体涉及一种基于置换的发布轨迹隐私保护方法。背景技术
随着移动通信设备和定位技术的广泛应用,基于位置的服务不断涌现。位置服务提供者可以通过位置服务请求的内容和地理位置得到大量的轨迹数据。轨迹特征可以应用于智能交通、供应链管理等诸多领域,但是轨迹拥有者可能需要将轨迹发布给不可信的第三方进行分析。如果第三方能够将特定轨迹与轨迹主体关联,主体的隐私就可能受到威胁。因此,在轨迹发布之前必须经过处理,以保护隐私安全。
以对轨迹数据的操作进行划分,发布轨迹的隐私保护方法分为三类,分别对应于对关系数据库的三种基本操作,即添加、删除和更新。
基于添加虚拟数据的方法:
其主要思想是在原始数据中加入虚拟数据,其中的虚拟数据是根据原始数据的特性生成的。该类方法在保证不发生严重数据丢失的前提下,提高了混合数据的匿名性水平。这类方法增加了处理的数据量。由于轨迹的时空相关性和多维性,现有的虚拟方法在保护用户轨迹隐私方面的成功率不超过15%。此类别通常用于基于位置的服务中的隐私保护。
基于抑制敏感数据的方法:
这类方法的目的是在发布轨迹数据之前删除敏感点。敏感点可以具体到不同的问题:用户经常访问的位置、具有重要语义特征的位置等。这一类方法都是基于准标识符已知(QID-aware)的,对敌手的背景知识有具体的限制。这类问题的难点在于如何准确提前了解轨迹数据中的敏感点和对手的背景知识。大量的敏感点被抑制,导致大量的信息丢失,限制了发布轨迹数据的可用性。
基于泛化的方法:
泛化方法生成代表原始轨迹的发布轨迹。在保留原始轨迹数据的重要特征的同时,防止了敏感信息的泄露或降低了对手识别轨迹体的概率。发布轨迹不是一个个新的轨迹,而是代表原始轨迹的一个取值范围,因此可以认为是原始轨迹的一个泛化。
轨迹数据的k匿名是典型的基于泛化的发布轨迹数据隐私保护方法,通过聚簇和重构两个步骤实现。在第一步中,每条轨迹被归并到一个簇中,每个簇包含至少k条轨迹。为了使簇中的k条轨迹满足相似性要求,k条轨迹中的(nk2-nk)/2个点对间的平均距离不能超过聚簇半径,其中n是轨迹的平均长度。在重构阶段,每个簇中的轨迹被重构为不可区分的k条轨迹。重构使发布轨迹产生失真,失真程度与簇半径正相关。簇半径会随着n的增加而快速增长,这种数据失真随着数据维度的增加而加剧的现象被称作维数灾难。为了减少数据失真,另一类典型的方法是将轨迹点泛化成一个区域来达到脱敏的效果。基于轨迹点泛化的方法克服了这种严重的信息失真,然而,这种方法不能将隐私保护的水平量化。
发明内容
本发明提供一种基于置换的发布轨迹隐私保护方法,用以解决基于添加虚拟数据的方法成功率低;基于抑制敏感数据的方法大量的敏感点被抑制,导致大量的信息丢失,限制了发布轨迹数据的可用性;基于轨迹泛化的方法造成严重的信息失真;基于轨迹点泛化的方法不能将隐私保护的水平量化的问题。
本发明通过以下技术方案实现:
一种基于置换的发布轨迹隐私保护方法,所述保护方法具体包括以下步骤:
步骤1:确定一个基于脱敏和有效性的可互换的轨迹点之间的距离关系;
步骤2:基于步骤1的距离关系,使轨迹点之间连边,建立轨迹点关系网络;
步骤3:基于步骤2的轨迹点关系网络,建立k核子网;
步骤4:基于步骤3的k核子网,通过交换k核子网上相邻节点间的位置来实现轨迹点的k匿名性。
进一步的,所述步骤1具体为,定义一个敏感区域As,敏感区域As为时空敏感阈值对<Sr,Tr>和一个敏感区域的距离区域模型RM1组成,其中,As中的点与轨迹点p不进行交换位置,只有离开p的敏感区域才能实现p的脱敏;
定义一个有效区域Ae,有效区域Ae为时空有效阈值对<Se,Te>和一个有效区域的距离区域模型RM2组成,其中,Ae外的点与轨迹点p不进行交换位置,p只有置换到Ae区域才能保证发布轨迹点的有效性;
轨迹点p的转换目标位置要在As外,且目标位置要在Ae内。
进一步的,所述步骤2使轨迹点之间连边具体为,当时,没有同时满足脱敏要求和可用性要求的置换区域;
当时,形成了p的可交换区域,这个区域等于从Ae中移除一个核As,形成一个壳域SIR;
在轨迹点转换的过程中,p仅能与分布在壳域SIR内的轨迹点置换。
进一步的,所述步骤2建立轨迹点关系网络具体为,将轨迹点存储在轨迹点关系网络中节点链表,并将其作为轨迹点关系网络的存储结构;节点链表的数据结构依次包括指向当前节点的前一个节点Pprevious、分配给每个节点的唯一的序列号NodeNum、节点主体的轨迹标识符TID、轨迹点的时空位置(t,x,y)、指向当前节点的下一个节点Pnext、网络中节点的度NeighborNum和指向节点的邻居集Pneighbour;
将每个节点的邻居集以二叉搜索树的形式保存,将算法的时间复杂度从k2降低到log(k);
因此邻居树中节点的数据结构依次包括指向当前节点的父节点Pfather、相邻节点的唯一序列号NodeNum、指向当前节点的左子节点Pleft、指向当前节点的右子节点Pright和指向主存储链表中当前邻居的节点Pneighbor。
进一步的,所述步骤3建立k核子网具体为,根据当且仅当相邻节点在k-核网络中随机交换位置时,交换后的节点被恢复的概率才不超过1/k的定理得到发布轨迹数据中轨迹点的k匿名性,必须将交换限制在轨迹点关系网络的k核子网中,在轨迹点关系网络中,通过反复删除所有度小于k的节点,能得到k核子网。
进一步的,所述步骤4在轨迹点关系网络的k核子网上,通过相邻节点位置的互换,得到满足轨迹点k-匿名性的发布轨迹数据通过以下步骤完成:
步骤4.1:建立基于度的节点二叉搜索树,并将所有节点标记为active;
步骤4.2:选择KTN中度最小的活动节点pmin,将pmin的位置与其度最小的相邻节点置换,标记为interchanged;
步骤4.3:基于步骤4.2的交换,交换后删除两个交换节点的共有节点以外的所有邻居;
步骤4.4:对步骤2的两个interchanged状态下的节点及其原始邻居节点的度进行修正,并对基于度的二叉搜索树进行更新;
步骤4.5:基于步骤4.4的更新,若active状态下的最小度节点没有邻居节点,则将其标记为frozen;
步骤4.6:重复步骤4.2到4.5的过程,直到没有active状态的节点为止;
步骤4.7:将每个frozen状态下的节点随机插入到它的相邻轨迹中,以保证发布轨迹数据中轨迹点的k匿名性不被破坏。
本发明的有益效果是:
本发明的使得发布轨迹数据满足发布者的隐私需求和分析者的可用性要求;相较于基于假轨迹、抑制的方法以及基于轨迹匿名的方法,本方法在很大程度上减少了信息失真;算法能够实现量化的隐私需求在有用性和脱敏性两方面的要求,同时实现隐私水平的量化(轨迹点k匿名)。
附图说明
图1本发明的方法步骤示意图。
图2本发明的算法步骤示意图。
图3本发明的类壳的可置换区域示意图。
图4本发明的轨迹点关系网络中节点的数据结构示意图,其中(a)为轨迹点关系网络中节点链表,(b)为邻居树中节点的数据结构。
图5本发明的在2核网络上的两种轨迹点置换方案示意图,其中(a)为等待置换的2核网络,(b)为第一种置换方案,(c)为第二种置换方案。
图6本发明的算法生成的满足轨迹点k-匿名的发布轨迹的隐私攻击示意图。
具体实施方式
下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,一种基于置换的发布轨迹隐私保护方法,所述保护方法具体包括以下步骤:
步骤1:确定一个基于脱敏和有效性的可互换的轨迹点之间的距离关系;
步骤2:基于步骤1的距离关系,使轨迹点之间连边,建立轨迹点关系网络;
步骤3:基于步骤2的轨迹点关系网络,建立k核子网;
步骤4:基于步骤3的k核子网,通过交换k核子网上相邻节点间的位置来实现轨迹点的k匿名性。
图2描述了该方法的步骤:a.原始轨迹,b.轨迹点集,c.轨迹点关系网络,d.轨迹点关系网络的k核子网,e.轨迹点互换位置,f.重构轨迹。在图1中,空间维度在横坐标中仅用一个维度表示,k=3。
进一步的,所述步骤1具体为,定义一个敏感区域As,敏感区域As为时空敏感阈值对<Sr,Tr>和一个敏感区域的距离区域模型RM1组成,其中,As中的点与轨迹点p不进行交换位置,只有离开p的敏感区域才能实现p的脱敏;
定义一个有效区域Ae,有效区域Ae为时空有效阈值对<Se,Te>和一个有效区域的距离区域模型RM2组成;其中,Ae外的点与轨迹点p不进行交换位置,p只有置换到Ae区域才能保证发布轨迹点的有效性;除非p与Ae外的轨迹点互换,否则p的畸变不会影响发布轨迹的可用性;
轨迹点p的转换目标位置要在As外,且目标位置要在Ae内。
进一步的,所述步骤2使轨迹点之间连边具体为,当时,没有同时满足脱敏要求和可用性要求的置换区域;
当时,形成了p的可交换区域,这个区域等于从Ae中移除一个核As,形成一个壳域SIR;
在轨迹点转换的过程中,p仅能与分布在壳域SIR内的轨迹点置换。如图3所示。
进一步的,所述步骤2建立轨迹点关系网络具体为,将轨迹点存储在轨迹点关系网络中节点链表,并将其作为轨迹点关系网络的存储结构;节点链表的数据结构依次包括指向当前节点的前一个节点Pprevious、分配给每个节点的唯一的序列号NodeNum、节点主体的轨迹标识符TID、轨迹点的时空位置(t,x,y)、指向当前节点的下一个节点Pnext、网络中节点的度NeighborNum和指向节点的邻居集Pneighbour;
将每个节点的邻居集以二叉搜索树的形式保存,将算法的时间复杂度从k2降低到log(k);
因此邻居树中节点的数据结构依次包括指向当前节点的父节点Pfather、相邻节点的唯一序列号NodeNum、指向当前节点的左子节点Pleft、指向当前节点的右子节点Pright和指向主存储链表中当前邻居的节点Pneighbor。如图4所示。
进一步的,所述步骤3建立k核子网具体为,根据当且仅当相邻节点在k-核网络中随机交换位置时,交换后的节点被恢复的概率才不超过1/k的定理得到发布轨迹数据TD*中轨迹点的k匿名性,必须将交换限制在轨迹点关系网络TN的k核子网中,在轨迹点关系网络中,通过反复删除所有度小于k的节点,能得到k核子网。
证明定理过程如下
充分性证明:假设p1和p2是k-核网络G中的两个邻接轨迹点,p1的度是g1(g1≥k),p2的度是g2(g2≥k);交换p1和p2的位置形成新的轨迹点p1*和p2*.由此可得g1*=g2≥k,g2*=g1≥k;p1*可能是与新的g1*个邻居中的任意一个交换得到的;推断得到正确的p1位置的概率是1/g1*(1/g1*≤1/k);类似的,推断p2*原始位置的概率为1/g2*(1/g2*≤1/K);
必要性证明:假设p1和p2是网络G中的两个相邻接点;p1是仅有的度小于k的节点,p1的度是g1(g1<k);p2的度是g2(g2≥k);交换p1和p2的位置上形成p1*和p2*,则有g1*=g2≥K,g2*=g1<k;p2*可能是通过p2与p2*邻域中g2*个轨迹点中的任意一个交换位置得到,因此从p2*推断p2的概率为1/g2*(1/g2*>1/k);
进一步的,网络上交换节点对的最优选择是一个复杂的问题。在图5所示的2核网络中,按照第一个方案交换位置将会留下一个无法交换的单节点。利用第二种方案,可以得到满足轨迹点2匿名性的发布轨迹。为了最大限度地提高网络中节点的置换成功的概率,设计了一种基于最小优先级的置换算法。
所述步骤4在轨迹点关系网络的k核子网上,通过相邻节点位置的互换,得到满足轨迹点k-匿名性的发布轨迹数据通过以下步骤完成:
步骤4.1:建立基于度的节点二叉搜索树,并将所有节点标记为active;能提高小度节点被成功置换的概率;
步骤4.2:选择KTN中度最小的活动节点pmin,将pmin的位置与其度最小的相邻节点置换,标记为interchanged;
步骤4.3:基于步骤4.2的交换,交换后删除两个交换节点的共有节点以外的所有邻居;目的是增加相邻节点的可交换机会;
步骤4.4:对步骤2的两个interchanged状态下的节点及其原始邻居节点的度进行修正,并对基于度的二叉搜索树进行更新;
步骤4.5:基于步骤4.4的更新,若active状态下的最小度节点没有邻居节点,则将其标记为frozen;
步骤4.6:重复步骤4.2到4.5的过程,直到没有active状态的节点为止;
步骤4.7:将每个frozen状态下的节点随机插入到它的相邻轨迹中,以保证发布轨迹数据中轨迹点的k-匿名性不被破坏。
通过基于置换的发布轨迹隐私保护方法,发布轨迹中的轨迹点满足k匿名隐私要求,因此其隐私保护水平满足隐私要求且是显性的。同时,发布轨迹数据产生的信息失真被限制在分析者提出的可用范围内,保证了其可用性。图5为轨迹点6匿名的隐私保护效果。假设对手掌握了轨迹Ti的pi1和pi2,那么至少可以在pi1的SIR中找出6个可交换位置,因此至少可以关联到6个相关轨迹。使用TS1来表示与pi1关联的轨迹集。类似地,可以得到与pi2关联的轨迹集TS2。Ti*必然在这两个集合的交点上,所以交点轨迹的数目不小于1。在极端情况下,交集只包含一条轨迹T*,则T*为Ti的转换轨迹Ti*。任意时间t3上的轨迹Ti的位置必须在pi3*的SIR内,且其邻域内包含至少6个轨迹点,因此确定pi3的原始位置的概率不超过1/6。
基于轨迹点位置互换的策略保持了发布轨迹的原始位置。基于轨迹点的k匿名策略减少了发布轨迹的抑制和失真。然而,这些优点是在放弃轨迹k匿名的前提下获得的。轨迹点k匿名降低了对隐私要求的限制;因此,本方法适用于不需要隐藏轨迹主体身份,但需要隐藏轨迹点敏感位置的轨迹数据。
假设待发布轨迹数据中的轨迹数为N,平均轨迹长度为n,算法的运行时间消耗在三个子进程中:
构造轨迹点关系网络:该算法比较了时间窗口内每个点与其相邻点之间的距离,其时间复杂度为O(ΔT·n·N2);
构造网络的k核子网:在轨迹点关系网络中,递归遍历不满足k-核要求的轨迹点,并将其从相邻的轨迹点中删除,其时间复杂度为O(n·N·Trash·log(K)),其中Trash为轨迹点的最大抑制率;
在轨迹点位置交换的过程中,需要遍历和交换相邻节点的轨迹位置,其时间复杂度为O(n·N)。
该方法的主要的运行时间是由重复检测和删除不满足k-核需求的轨迹点造成的,时间复杂度为O(n·N·Trash·log(k)),其中n·N是TD中的轨迹点个数,k是匿名阈值。
实施例2
在实际应用时,取待发布轨迹数据、SIR(Se0=50;ΔSe=10;Ss=Seα;Te=Se/v;Ts=Ss/v)和k作为输入。其中,Se0为SIR中有效阈值的初值;ΔSe是Se每次的增量;Ss为敏感阈值,v为轨迹数据中的平均速度。Ss/Se用α表示,分别设定为0、0.25、0.5和0.75。通过算法各步骤的连续处理,得到了满足轨迹点k-匿名性的发布轨迹数据。轨迹主体的脱敏要求(As,k)和轨迹数据使用者的效能要求(Ae)都在发布轨迹中得到满足。其中有几个需要说明的备选方案:
轨迹点间的时空距离关系
这种关系取决于具体的应用,可以有多种模型,例如:
当以pi为参考点时,符合不等式(1)的距离关系的pj的位置被限制在以pi为中心的椭圆区域内。如果以欧氏距离来度量轨迹点之间的空间距离sij,代入sij=((xi-xj)2+(yi-yj)2)1/2,则该距离关系表现为以pi为中心的椭球体。使用RM1来表示这个距离区域模型。
根据具体的应用需求,可以选择其他时空关系作为轨迹点之间的距离关系。例如:
Trsij+Srtij≤SrTr (2)
在这种距离关系中,pj的位置仅限于以pi为中心的菱形区域。若将轨迹点之间的空间距离sij定义为Manhattan距离,s=|x|+|y|,则在t、x、y构成的三维空间中,轨迹点之间的距离关系表示为pi为中心的八面体。使用RM2来表示这个距离区域模型。
或者,可以剥离这两个维度之间的关系,并简单地将其定义如下:
sij≤Sr,tij≤Tr (3)
此时,pj被限制在pi为圆心的矩形区域内。当使用欧氏距离sij=((xi-xj)2+(yi-yj)2)1/2作为轨迹点之间的空间距离时,距离关系用圆柱表示。使用RM3来表示这个距离区域模型。
轨迹点置换算法的改进算法
发明中的方法优先处理低度节点,尽可能地实现所有节点的配对和交换。然而,在基于度的二叉搜索树中频繁的搜索和修改降低了操作效率。为了提高效率,对算法进行了简化。在最小优先级的置换算法步骤[2]中,将每个节点的位置与它的随机邻居交换。这大大减少了对轨迹点的比较和排序,时间复杂度从k2降低到log(k)。简化算法描述如下步骤:
步骤S1:检测当前轨迹点是否为Active状态且其邻居数大于0,如果不满足条件则将该节点完全匿名;
步骤S2:如果满足条件则任意选择其中一个邻居节点;
步骤S3:交换当前Active节点和其选定邻居节点的位置;
步骤S4:标记当前节点及其选定邻居节点为Interchanged状态;
步骤S5:删除当前节点与其选定邻居节点间的链接关系;
步骤S6:删除当前节点和选定邻居节点与其所有非共有邻居的链接;
步骤S7:如果共有邻居的邻居数量为0且为Active状态,则将其移到当前节点,并标记为Interchanged状态;
步骤S8:遍历所有轨迹点,并执行上述1-7步骤,就完成了轨迹点的置换和k匿名。