一种集成攻击算法库的图数据隐私安全检测系统及检测方法与流程

文档序号:14950435发布日期:2018-07-17 22:25阅读:194来源:国知局

本发明涉及数据隐私保护发布领域,尤其涉及一种集成攻击算法库的图数据隐私安全检测系统及检测方法。



背景技术:

图数据是指具有图结构的数据,随着互联网的发展,图数据不仅在大数据中占的比例迅速上升,而且在数量上也迎来了爆发式的增长,已经达到泽字节(zb)数量级。这些图数据主要来源于社交网络、邮箱系统、传感器网络、移动电话网络、电子商务、物流等。

图数据蕴含着巨大的商业价值,人工智能技术的蓬勃发展使人们能够进一步从不同角度挖掘数据的价值。然而,这些数据集大部分是专有的,许多包含个人和/或商业敏感信息。比如患者就诊记录、用户的社交轨迹、税务记录、客户购买记录、移动呼叫等。这样的数据集的非常敏感的性质,使得它们被禁止发布或用于进一步的数据挖掘,除非得到实际有效的隐私保护技术来提供足够的保护。如果对图数据隐私保护处理发布不当,很可能会泄露大量敏感信息,给国家、公司和个人造成无法挽回的损失。

目前有大量的图数据隐私保护技术(也称为图匿名化技术),这些技术可以保护图数据的敏感信息不被泄露,使攻击者无法识别或发现图中节点的真实主体身份,同时攻击者在一定概率上不能够确认某个节点或某条边在图中的存在性。图数据隐私保护技术主要分为:基于标识符移除的保护技术、基于边编辑的保护技术、基于k匿名的保护技术、基于群(cluster)聚合的保护技术和基于差分隐私的保护技术等。尽管有如此多的图数据隐私保护技术,但大多数保护技术只能保护图数据的部分隐私安全,比如节点的度、子图自同构性等。目前图数据隐私保护技术缺乏现实的充分的、有效的、匿名图数据隐私安全性检测方法。图数据隐私保护技术保护片面性的特点及图隐私保护技术隐私安全性检测方法的缺乏,使图数据隐私保护技术在实际部署中难以达到理想的隐私安全性。

匿名图数据是指经过图隐私保护技术(图匿名化技术)处理后的图数据。辅助图是指用于辅助实现去匿名化攻击的已知图中节点真实身份的图。针对匿名图数据的攻击称为图去匿名化攻击。攻击者的目的是识别或发现图数据中节点的真实身份以及某个实体是否存在于图数据中。现有的去匿名化攻击主要是基于图数据的图结构特征匹配自迭代的进行去匿名化。主流的基于图结构的去匿名化攻击是一个两步攻击框架,即第一步,预识别少量匿名图数据和辅助图的节点对作为种子节点对;第二步,根据图结构特征,种子节点对,匿名图和辅助图,自迭代地匹配新节点。这种基于图结构的去匿名化攻击可以实现仅仅依靠少量种子节点,即实现了大规模自迭代的节点匹配发现。目前已经发现了大量采取两步攻击框架的去匿名化攻击。基于图结构的去匿名化攻击可以很好地成为一个具有实际意义的有效的对匿名图数据隐私安全性进行检测的方法,保证匿名图数据发布的安全性,防止图数据中敏感信息的泄露。



技术实现要素:

本发明提供一种集成攻击算法库的图数据隐私安全性检测系统,以实现对图数据隐私保护技术安全性的检测。

本发明提供了如下技术方案:

一种集成攻击算法库的图数据隐私安全性检测系统,包括:

攻击算法库,存储有攻击算法对象及其相关信息,根据用户的调用列表调用相应的攻击算法对象,组成检测攻击算法集,获取检测攻击算法集权重列表;

图数据预处理器,将用户的图数据读取至内存中,组成图数据集;

并行执行器,根据主机cpu核数、检测攻击算法集大小和权重列表,并行执行检测攻击算法集攻击图数据集,输出各个检测攻击算法的执行结果;

安全分析器,对执行结果进行安全性分析处理,得到图数据隐私安全性的评价结果。

所述的攻击算法对象的相关信息包括调用频数和权重。

每一个攻击算法对象都是一个特定格式的算法类,其中包括类变量和类方法两部分。

(a)攻击算法对象类变量包括:

(i)算法名称:字符串格式(不能与现有攻击算法库中的攻击算法对象重名);

(ii)算法输入参数列表:列表格式,列表中元素为字典格式。字典元素形式为{输入参数名称:输入参数};

(iii)算法输出:列表格式,列表中元素为字典格式。列表中的字典元素形式为{匿名图节点编号:辅助图节点编号};

(iv)算法调用频数:整数格式,表示算法从添加入算法库到当前时间,该算法被调用的总的次数;

定义算法的调用频数初始值为1,某一算法每次调用后,其调用频数加1;

(v)算法权重:浮点数格式,表示攻击算法对象在攻击算法库所有攻击算法对象中所占权重大小,算法权重在攻击算法库添加、删除、请求或更新时自动根据算法库中当前所有算法的调用频数进行计算更新。

(b)攻击算法对象类方法包括:攻击算法执行函数,其输入由该攻击算法对象的输入参数列表指定,执行后按照该攻击算法对象的输出格式返回攻击结果,并保存至该攻击算法对象的输出类变量。

所述的攻击算法库提供三个接口对攻击算法库进行维护管理,三个接口分别为:

(a)查询接口:接收用户的查询请求,并根据查询请求返回用户所查询的攻击算法对象及其相关信息;

用户调用查询接口,该接口返回包含当前攻击算法库中所有攻击算法对象的列表,列表元素为攻击算法对象。用户可以根据返回算法对象列表获取算法名称、算法频数、算法权重、算法输入形式、算法输出形式等信息;

(b)请求接口:接收用户的调用请求,根据调用请求调用相关攻击算法对象,并更新攻击算法库中所调用攻击算法对象的相关信息;

该接口接收用户的调用请求列表,列表元素为字符串格式的攻击算法对象名称,然后对所有调用请求列表中的攻击算法对象频数加一,并更新攻击算法库中所有攻击算法对象的权重值。该接口返回一个包含请求列表所有算法对象的列表,列表元素为攻击算法对象;

(c)更新接口:用户通过更新接口对攻击算法库中的攻击算法对象进行添加或删除来完成攻击算法库的更新;

采用java技术实现攻击算法库的更新,每个攻击算法对应一个java类文件;调用该接口后,会检索系统给定的攻击算法库路径下目录名为algorithms下的所有java类文件。如果java类文件第一行以\\algorithm作为起始字符串,则将该java类文件作为攻击算法对象添加至攻击算法库;检索完毕之后,若攻击算法库中攻击算法对象在该目录下并不存在满足条件的java类文件,则删除攻击算法库中该攻击算法对象。

本发明还公开了基于上述图数据隐私安全性检测系统的图数据隐私安全性检测方法,包括以下步骤:

(1)用户根据需要从攻击算法库中选取任意数量的攻击算法对象,组成检测攻击算法集,获取检测攻击算法权重列表,并向攻击算法库发出调用请求;

(2)通过图数据预处理器将图数据读取到主机的内存中,组成图数据集;

(3)并行执行器根据主机的cpu核心数目、检测攻击算法集大小和检测攻击算法权重列表,并行化执行检测攻击算法集对图数据集进行攻击,输出各个检测攻击算法的执行结果;

(4)安全分析器对执行结果进行安全性分析处理,得到图数据隐私安全性的评价结果。

所述的图数据包括匿名图数据、辅助图数据和种子节点对数据三种类型文件数据。

步骤(1)中,用户根据需要从攻击算法库中选取任意数量的攻击算法对象,组成检测攻击算法集,获取检测攻击算法权重列表,包括以下步骤:

(1-1)定义a为攻击算法库中所有攻击算法对象集合,

a=[a1,a2,a3,……,an-1,an];

其中,ai为a中的一种攻击算法对象,i∈[1,n],n为攻击算法库中攻击算法对象个数;

从攻击算法库a中选取检测攻击算法对象,组成检测攻击算法集a′,

(1-2)获取攻击算法库中每个攻击算法对象的调用频数得到调用频数列表d,

d=[d1,d2,d3,……,dn-1,dn];

其中,di为对应攻击算法对象ai的调用频数;

定义攻击算法库的权重列表为w,每次更新攻击算法库后更新攻击算法权重列表,

w=[w1,w2,w3,……,wn-1,wn],

其中,wi为对应攻击算法对象ai的权重,

(1-3)根据攻击算法库的权重列表w获取检测攻击算法集权重列表w′,

其中,w′中每个元素wi是检测攻击算法集a′中对应攻击算法对象ai的权重。

优选的,攻击算法库中每个攻击算法对象的调用频数初始值默认为1,攻击算法对象每次被调用后,其调用频数加1。

优选的,攻击算法库中,每次调用、删除或添加攻击算法对象后,更新攻击算法权重列表。

步骤(3)中,并行执行器根据主机的cpu核心数目、检测攻击算法集大小和检测攻击算法权重列表,并行化执行检测攻击算法集对图数据集进行攻击,包括以下步骤:

(3-1)读取主机cpu的核数;

(3-2a)根据权重大小,将检测攻击算法对象按照降序次序分配至线程待执行队列,更新待执行线程列表;

(3-2b)若存在尚未分配线程的检测攻击算法对象,重复步骤(3-2a)直至检测攻击算法对象分配完毕;

(3-3)根据待执行线程列表并行化执行检测攻击算法集。

步骤(4)包括以下步骤:

(4-1)定义匿名图数据的节点总数为n,定义步骤(3)的执行结果为r,

r=[r1,r2,r3,……,rk-1,rk];

其中,ri为检测攻击算法集a′中对应攻击算法对象ai的返回结果,为攻击算法对象ai攻击成功节点数与n的比值;i∈[1,k];

(4-2)根据检测攻击算法集权重列表,计算得到加权列表q,

q=[q1,q2,q3,……,qk-1,qk],

qi=ri·wi,qi∈q,ri∈r,wi∈w′;

(4-3)对加权列表q求和评均得到图数据隐私安全性的评价结果:

由上述技术方案可知,本发明通过在攻击算法库中选取检测攻击算法集,并根据检测攻击算法集取得检测攻击算法集权重列表,然后分批读入匿名图数据、辅助图数据和种子节点对数据到内存,并根据主机cpu核数、检测攻击算法集大小和检测攻击算法集权重列表,自适应地分配线程组成待执行线程列表,然后并行化执行,最后获取检测攻击算法集中各个算法成功攻击的节点数目与匿名图数据节点个数的比值,根据权重列表进行加权,求和平均之后得到一个隐私安全性评分,作为最终隐私安全性的评价,进行输出并保存为本地文件。

与现有技术相比,本发明的有益效果为:

本发明可以有效解决当前由于缺乏隐私安全性检测方法导致无法有效检测图数据隐私安全的问题,为图数据的进一步发展和价值挖掘起到了推动作用。

附图说明

图1为图数据隐私安全检测系统的构架示意图;

图2为图数据隐私安全检测方法的流程示意图;

图3为检测攻击算法集与权重列表生成示意图;

图4为自适应线程分配示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步详细描述,需要指出的是,以下所述实施例旨在便于对本发明的理解,而对其不起任何限定作用。

本发明的图数据隐私安全检测系统集成了攻击算法库,其构架如图1所示,包括:攻击算法库、图数据预处理器、并行执行器和安全分析器。

攻击算法库是检测安全性的、由各种攻击算法对象组成的算法库。每一个攻击算法对象都是一个特定格式的算法类,其中包括类变量和类方法两部分。

(a)攻击算法对象类变量包括:

(i)算法名称:字符串格式(不能与现有攻击算法库中的攻击算法对象重名);

(ii)算法输入参数列表:列表格式,列表中元素为字典格式。字典元素形式为{输入参数名称:输入参数};

(iii)算法输出:列表格式,列表中元素为字典格式。列表中的字典元素形式为{匿名图节点编号:辅助图节点编号};

(iv)算法频数:整数格式,表示算法从添加入算法库到当前时间,该算法被调用的总的次数;

(v)算法权重:浮点数格式,表示攻击算法对象在攻击算法库所有攻击算法对象中所占权重大小,算法权重在攻击算法库添加、删除、请求或更新时自动根据算法库中当前所有算法的频数进行计算更新。

(b)攻击算法对象类方法包括:攻击算法执行函数,其输入由该攻击算法对象的输入参数列表指定,执行后按照该攻击算法对象的输出格式返回攻击结果,并保存至该攻击算法对象的输出类变量。

攻击算法库提供三个接口对攻击算法库进行维护管理,三个接口包括:

(a)查询接口:用户调用查询接口,该接口返回包含当前攻击算法库中所有攻击算法对象的列表,列表元素为攻击算法对象。用户可以根据返回算法对象列表获取算法名称、算法频数、算法权重、算法输入形式、算法输出形式等信息;

(b)请求接口:该接口接收用户的请求列表,列表元素为字符串格式的攻击算法对象名称,然后对所有请求列表中的攻击算法对象频数加一,并更新攻击算法库中所有攻击算法对象的权重值。该接口返回一个包含请求列表所有算法对象的列表,列表元素为攻击算法对象;

(c)更新接口:调用该接口后,会检索攻击算法库路径下目录名为algorithms下的所有java类文件。如果java类文件第一行以\\algorithm作为起始字符串,则将该java类文件作为攻击算法对象添加至攻击算法库;检索完毕之后,若攻击算法库中攻击算法对象在该目录下并不存在满足条件的java类文件,则删除攻击算法库中该攻击算法对象。

图数据预处理器用于将匿名图数据、辅助图数据以及种子节点对数据读取至内存中,组成图数据集。

并行执行器根据主机cpu核数及检测攻击算法集大小和权重,对检测攻击算法集进行线程分配得到执行线程列表,根据执行线程列表并行执行检测攻击算法集中的所有攻击算法对象攻击图数据集,输出各个攻击算法对象的执行结果。

安全分析器对执行结果进行安全性分析处理,得到图数据的安全性评价结果。

本发明的图数据隐私安全检测方法,其流程如图2所示,包括以下步骤:

(1)用户打开检测系统,从攻击算法库中选取任意数量的攻击算法对象组成检测攻击算法集,生产攻击算法列表并向攻击算法库发出请求,入图3所示,获取检测攻击算法集中检测攻击算法的权重列表;

(2)通过图数据预处理器从磁盘中分批读入匿名图数据、辅助图数据和种子节点对数据三种类型文件数据到内存中,组成图数据集;

(3)根据主机的cpu核心数目、检测攻击算法集大小和检测攻击算法集权重,自适应地分配线程组成待执行线程列表;并行化执行待执行线程列表中的检测攻击算法,对图数据集进行攻击;

(4)检测攻击算法集并行执行完毕后,获取产生的结果,基于加权求和再平均方法进行处理并输出检测结果,即对各个检测攻击算法攻击成功的节点数目的比值,根据权重列表进行加权求和,再平均之后得到一个综合评分,作为最终安全性的评价,进行输出并保存为本地文件。

步骤(1)包括:

(1-1)攻击算法库定义:攻击算法库是由多种攻击算法对象组成的库。令a表示攻击算法库中所有攻击算法对象集合,对任意的i∈[1,n],n为攻击算法库攻击算法对象个数,a中的每个元素ai是一种攻击算法对象,则有:

a=[a1,a2,a3,……,an-1,an];

(1-2)攻击算法库权重列表计算:获取攻击算法库中每个攻击算法对象的调用频数得到频数列表d,对任意的i∈[1,n],d中的每个元素di是攻击算法库a中对应攻击算法对象ai的调用频数,初始值默认为1,某一攻击算法对象被调用后,其调用频数加1;

d=[d1,d2,d3,……,dn-1,dn];

令攻击算法权重列表为w,对任意的i∈[1,n],w中的每个元素wi是攻击算法库a中对应攻击算法对象ai的权重;

w=[w1,w2,w3,……,wn-1,wn],

将w中权重元素值分别分配至对应攻击算法对象的权重值,每次更新攻击算法库后更新攻击算法权重列表。

例如,若n取3,即对大小为3的攻击算法库,包含的3个攻击算法对象分别记为a1、a2、a3,假设攻击算法对象调用的次数分别为:a1调用3次,a2调用4次,a3调用0次,那么根据公式“调用频数=默认数+调用次数”计算得到这三个攻击算法对象的调用频数分别为4、5、1,由此得到攻击算法对象a1、a2、a3分配的权重列表为w=[0.4=4/(4+5+1)、0.5=5/(4+5+1)、0.1=1/(4+5+1)]。

(1-3)选取检测攻击算法集:从攻击算法库a中选取检测攻击算法对象,组成检测攻击算法集a′,

(1-4)根据攻击算法库的权重列表获取检测攻击算法集权重列表对任意的i∈[1,k],w′中每个元素wi是检测攻击算法集a′中对应攻击算法ai的权重;

步骤(2)中,图数据预处理器读取匿名图数据、辅助图数据以及种子节点对数据的方式为:

(2-1)读入匿名图数据,格式为一行一行形式列出,每一行包含两个整数为节点编号,整数之间用空格隔开,表示从第一个节点到第二个节点的有向边。

(2-2)读入辅助图数据,格式类似匿名图数据,也为一行一行形式,每一行包含两个整数为节点编号,整数之间用空格隔开,表示从第一个节点到第二个节点的有向边。

(2-3)读入种子节点对数据,格式为一行一行形式列出,每一行包含两个整数为节点编号,整数之间用空格隔开,第一个整数表示匿名图中的节点编号,第二个整数表示辅助图中的节点编号,两者表示匿名图中节点的真实身份对应为该辅助图中节点。

步骤(3)包括:

(3-1)检测cpu核数:通过系统调用函数,读取cpu核数;

(3-2)自适应地分配线程组成待执行线程列表:

(a)按照攻击算法对象的权重大小,按照降序依次将检测攻击算法集中的攻击算法对象分配至线程待执行队列,然后更新待执行线程列表;

(b)如果仍存在尚未分配线程的攻击算法对象,那么在尚未分配线程的攻击算法对象集上执行步骤(a);

例如,cpu核心数为4,大小为6的检测攻击算法集根据权重降序排序后为{a1,a2,a3,a4,a5,a6},检测攻击算法集权重列表降序排序为[0.26,0.24,0.2,0.15,0.1,0.05],则待执行线程列表为[[a1,a5],[a2,a6],[a3],[a4]]。

(3-3)根据待执行线程列表并行化执行攻击算法。

步骤(4)包括:

(4-1)定义:匿名图节点总数为n,令攻击算法返回值列表为r,i∈[1,k],r中每个元素ri是检测攻击算法集a′中对应攻击算法ai的返回结果,其格式为攻击成功节点数与n的比值:

r=[r1,r2,r3,……,rk-1,rk];

(4-2)加权,计算得到加权列表:

q=[q1,q2,q3,……,qk-1,qk],

qi=ri*wi,qi∈q,ri∈r,wi∈w′;

(4-3)求和平均得到隐私安全性检测结果:

由上述技术方案可知,本发明通过在攻击算法库中选取检测攻击算法集,并根据检测攻击算法集取得检测攻击算法集权重列表,然后分批读入匿名图数据、辅助图数据和种子节点对数据到内存,并根据主机cpu核数、检测攻击算法集大小和检测攻击算法集权重列表,自适应地分配线程组成待执行线程列表,然后并行化执行,最后获取检测攻击算法集中各个算法成功攻击的节点数目与匿名图数据节点个数的比值,根据权重列表进行加权,求和平均之后得到一个隐私安全性评分,作为最终隐私安全性的评价,进行输出并保存为本地文件。本发明可以有效解决当前由于缺乏隐私安全性检测方法导致无法有效检测图数据隐私安全的问题,为图数据的进一步发展和价值挖掘起到了推动作用。

以上所述的实施例对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的具体实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1