杨高明,方贤进,陆 奎,王 静
(1.安徽理工大学计算机科学与工程学院,安徽 淮南232001;2.中国民航大学中国民航信息技术科研基地,天津300300)
信息技术的发展使企业更容易收集到大量的个人隐私数据。为更好地服务社会,需要发布这些数据或者由第三方数据处理公司处理这些数据。如果原始数据不经处理就直接发布,将不可避免地导致用户隐私泄露[1,2],因此,近几年隐私保护的数据发布受到越来越多的研究者关注。如果数据发布者仅仅移除用户的标识信息,如身份证号码、姓名等,这并不能有效地阻止用户的隐私泄露。攻击者可以使用准标识符属性(QI),如生日、性别、邮政编码等识别出用户的具体信息。
为保护用户的隐私信息,Sweeney L 等[3]提出了k-匿名的隐私保护数据发布模型,该匿名化模型要求每个匿名化组内包含至少k个元组,且该匿名化组的所有准标识符属性有相同的属性值。由于k-匿名模型只能抵御记录连接(Record Linkage)攻击,而不能抵御同质攻击(Homogeneity Attack),因此,Machanavajjhala A 等[4]提出l-多样性模型解决这个问题。除了k-匿名和l-多样性,还有许多其他的隐私保护模型,如t-逼近[5]、(α,k)-匿名[6]、差分隐私保护[7]等。所有这些隐私保护模型假设攻击者具有不同的背景知识,然而仅仅有部分工作关注数据集中存在数据关联而导致的隐私泄露[8]。例如,Martin D J等[8]研究元组之间存在关联而导致的隐私泄露。他们在研究中发现,如果元组之间存在关联,一定会导致发布的数据隐私泄露。Kifer D 等[9]的研究显示攻击者可以使用交互的方法引入关联,从而使数据集面临攻击时异常脆弱。在隐私保护的数据发布领域,文献[10]考虑存在函数依赖时如何保护用户隐私,但是他们的方法仅仅考虑如何把敏感属性划分为组,而没有涉及到如何把准标识符属性匿名化。为有效地保护用户隐私,本文研究数据集中存在函数依赖时隐私保护的数据发布问题,同时结合了数据扰动和划分的方法。
本部分首先引入函数依赖的概念,给出基于函数依赖的攻击模型以及数据扰动的基本方法,然后给出基于函数依赖的(l,α)-多样性隐私保护模型。
函数依赖FDs(Functional Dependencies)在数据库领域被广泛研究,它是设计关联数据库的最基本概念和基础。假设X和Y是关联数据库中的属性集合,X和Y之间的函数依赖关系表示为X→Y,它指定了数据集之间的一致性要求。如果关系R的两个元组拥有同样的X属性值,则存在函数依赖时,它们一定有相同的Y属性值。当这个要求满足的时候,我们就说关系R中存在函数依赖关系。对于函数依赖X→Y来说,属性集X称为确定性属性,属性集Y称为依赖属性,相应地,它们的值分别称为确定性属性值和依赖性属性值。
为预防 同 质 攻 击,Machanavajjhala A 等[4]提出了强健的l-多样性模型,这个模型要求每个准标识符组(QI-group)至少有l个不同的敏感属性值。其他的很多模型基本上都是在l-多样性的基础上演化而来,这些具有相同理论基础的l-多样性簇,在面临数据集存在函数依赖的时候,并不能有效地阻止隐私泄露。下面我们将论述数据集中存在函数依赖时,如何导致l-多样性失效。
Table 1 Original data table表1 原始数据表
Table 2 Anonymized data table表2 匿名化数据表
如果不同的QI组共享某些准标识符属性值或者敏感属性值,隐私就会泄露。例如:准标识符组G1和G2包含敏感属性值x∈X,此处X是函数依赖F:X→Y的确定性值,如表1 中电话号码86518665。假设y∈Y,如表1 中的邮政编码232921,是原始数据集中x∈X相应的依赖属性。如果y∈Y在组G1中被概化为,在组G2中被概化为。如表1中的邮政编码被概化为232***和232**,如表2 所示,而在组G1和G2中x∈X并没有被概化。那么攻击者可以很容易的推导出和一定有相同的原始数据值,因此他们求解和的交集,可以很容易得到更为确定的值。下面就y∈Y的不同情况予以讨论。
(1)如果y∈Y是数值属性,和是两个区间,假设y′1的区间是[l1,u1],的区间是[l2,u2]。如果这两个区间相交,则min(u1,u2)],否则
(2)如果y∈Y是分类(Categorical)属性,我们用TaxoTree 表示属性Y的分类树(Taxonomy Tree)。假设N1和N2是y1和y2在分类树TaxoTree上所对应的节点。那么N1和N2就是y的概化节点,它们一定处于叶节点y和根节点Null的路径上。因此,将返回分类树上节点N1和N2中较小的一个。
需要注意的是y′1和y′2是由相同的属性值y概化而来的,因此概化分类树上一定存在由叶节点y到根节点Null的路径,所以一定会返回一个非空的结果。而攻击者就可以使用更具体的来代替和。由于每个准标识符组具有相同的属性值,我们可以使用G[A]表示准标识符组G的概化值。
定义1(基于函数依赖的准标识符组交、差运算) 设给定数据集DS中存在函数依赖F:X→Y,匿名化准标识符组分别为G1和G2,若IG={t|t1∈G1∧t2∈G2s.t.t1[X]=t2[X]},则G1∩G2为元组IG的集合,即每一个元组t∈IG,存在至少一个元组t′∈IG,且满足:
(1)对每个元组x∈X,t′[X]=t[X];
(2)对每个y∈Y:
进一步来说,对于存在函数依赖关系的准标识符组G1和G2的差,有G1-G2=G1-G12,其中G12是组G1与组G2的交集。
定义2((l,α)-多样性) 给定数据集DS以及它的匿名化版本DS′,如果对任意元组t∈DS′,它所在的准标识符组G包含至少l个不同的敏感值,且每个敏感值所占的比率为α,此处α∈[αmin,αmax],αmin是隐私保护度的最小值,αmax是隐私保护度的最大值,这时我们称数据集DS′满足(l,α)-多样性。
在很多情况下,数据集中都存在函数依赖关系。如果在匿名化时仅考虑使用概化值取代具体值,而不考虑数据集中存在的函数依赖,通常会导致隐私泄露。定义3正式定义基于函数依赖的隐私攻击模型。
定义3(基于函数依赖的隐私攻击) 给定数据集DS,DS′是与之对应的满足(l,α)-多样性的匿名化版本。如果存在两个准标识符属性组G1,G2∈DS′,至少下面两个条件:G1∩G2、G1-G2是非空集且不满足(l,α)-多样性,则函数依赖F:X→Y(X⊆QI,Y⊆QI∪S)可以很容易受到基于函数依赖的隐私攻击。否则,我们称数据集DS′在函数依赖F:X→Y(X⊆QI,Y⊆QI∪S)存在的情况下是安全的。
本节首先给出隐私保护算法中用到的数据扰动方法,接着给出匿名化的具体方法。
对于实现匿名化的技术而言,由于采用隐匿的方法需要改变所有元组的属性到最大化模糊状态,因此信息损失大,此处采用概化和扰动结合的方法以降低信息损失。当构造匿名化组时,若某些准标识符属性会导致过大的信息损失,这时采用扰动的方法将是一个明智的选择。采用概化和扰动结合的方法分为两个阶段:首先要对数据集进行计数,计算每个属性值出现的比率;其次是产生一个随机数,根据随机数采用轮盘赌的方法选择一个属性以取代原先的属性。由于文章篇幅所限,我们不再详述扰动的具体方法,有兴趣的研究者可以参考文献[11]。
目前最流行的匿名化方法是概化/隐匿。度量匿名化导致的信息损失是设计匿名算法很重要的一个方面。比较常见的度量信息损失的方法是概化高度、聚集查询精度以及差别度量。为度量信息损失,本文综合考虑数值属性和分类属性,而对于分类属性,假设每个分类属性已经存在分类系统树。与前人工作类似,由概化/隐匿所导致的信息损失如下:
(1)对隐匿方法来说,元组t的信息损失为:InfoLost=1;
(2)对概化方法来说,信息损失需要考虑两种情况:①对数值属性NA,设NAv是属性NA的值,被概化为[L,U],设Min和Max是属性NA的属性域的最小值和最大值,则NA的信息损失为:ILNA=(U-L)/(Max-Min)。②对分类属性CA,设TCA是分类系统树,VCA是分类系统树上的原始值,是其对应的概化值,设N是分类系统 树TCA的对 应 的 节 点 叶 子 数。则VCA的 信 息损失为InfoLosCA=(MN-1)/(M-1),此处M是分类系统树TCA的全部叶节点数,MN是分类系统树TCA上以N为节点的子树叶节点数。
给定信息损失的定义以后,则元组t由于概化/隐匿所导致的信息损失为:InfoLost=,此处m是元组t的准标识符属性数。整个数据集的信息损失为:InfoLosDS=(∑t∈DSInfoLost)/|DS|。例如:若age属性的域范围为[0,100],如果概化age属性值75到[70,80],则其信息损失为:(80-70)/(100-0)=0.1。
本节首先给出实现(l,α)-多样性算法所需的基于函数依赖的分组策略,然后给出详细的(l,α)-多样性算法。
实现(l,α)-多样性的关键是把数据集合理地分组,使每一个组都满足(l,α)-多样性约束,另外,分组时还需要考虑数据集中存在的函数依赖关系。一般情况下,若数据集DS中存在函数依赖X→Y,X⊆QI,Y⊆QI,这时匿名化数据集时不需要考虑函数依赖,因为这时函数依赖是安全的。然而,若X→Y,X⊆QI,Y⊆S,在匿名化时就必须考虑函数依赖关系,即匿名化时必须切断属性X和Y之间的关联。给定准标识符以后,它们构成的分组只有两种情况,即不相交或者重叠。为说明匿名的准标识符之间的关系,下面针对相交、不交、包含进行讨论。
4.1.1 不相交关系
准标识符组不相交意味着所有的匿名化准标识符组没有重叠的元组。也就是说,如果数值属性x∈A被概化为A1,A2,…,Am,则∀Ai,Aj,Ai∩Aj=∅,1≤i,j≤m;对于分类属性x∈A被概化为A1,A2,…,Am,则∀Ai,Aj,不存在一条路径包含Ai和Aj,1≤i,j≤m,此处m是分组的个数。在这种条件下,对∀Ai∩Aj=∅,不会有隐私泄露。如果任意的匿名化组Ai、Aj不相交,存在函数依赖X→Y,x∈X⊆QI,y∈Y⊆QI,有Ai→Aj,此处Ai、Aj分别是x和y的概化域。
4.1.2 包含关系
准标识符属性的包含关系意味着一个匿名化组的元组被另外一个匿名化组所包含。如属性A1被概化为A11,A12,…,A1m,则存在着包含关系A11⊆A12⊆A13⊆…⊆A1m。在这种情况下,我们可以仅考虑A11,因为A11是最具体的值。对于包含n个属性匿名化元组,包含关系要求一个匿名化组包含另外一个匿名化组的所有元组。
4.1.3 相交关系
当把准标识符属性概化为Ai、Aj等,若存在Ai∩Aj≠∅,我们就必须考虑X和S之间的关系,此处X⊆QI。因此,针对相交设计了处理策略,要求不同匿名化组共享l个不同的敏感值。另外,在考虑相交关系时,本文不允许出现多于两个匿名化组相交,若出现多于两个匿名化组相交,则它们的交集与两个匿名化组的交集必须满足最大重叠准标识符组。
给定数据集DS,存在函数依赖F:X→Y,首先构造桶,使每个桶包含相同的敏感属性值。其次是构造匿名化组,在构造匿名化组时结合概化和数据扰动,以降低信息损失,提高数据效用。
4.2.1 桶的构造
桶的构造即是把数据集划分为小的桶,使每个桶包含一类敏感属性值。对于给定的数据集DS,其包含不同的敏感属性值集合为Sen{S1,S2,…,Sn},则针对敏感属性值集Sen的划分模式为:(1)∀i≠j,Si∩Sj=∅;(2)因此,在把数据集划分为桶之后,每个元组属于一个桶,每个桶里面具有相同的敏感属性值。如果存在n个不同的敏感属性值,则存在n个桶。图1是根据敏感属性值划分桶的示意图。
4.2.2 匿名化组构造
仅仅简单地应用概化会导致大量的信息损失。为实现隐私保护,满足(l,α)-多样性,减少信息损失,需要根据每个桶的敏感属性值以及它们之间的相似度构造具有k个元组的准标识符组,此处k≥l,使每个组均满足(l,α)-多样性,直到所有的元组都属于一个组为止。对于剩余的不能构成准标识符组的敏感属性值s所在的元组,有三种选择:(1)把它删除掉;(2)把它添加到已经存在的匿名化组;(3)与其他剩余的每个属性值构成一个新的匿名化组。
Figure 1 Example of the bucket图1 依据敏感属性构造分桶
对于第二种选择,选择这样的准标识符组,它包含的敏感属性最大频度值要大于敏感值s的频度。对于第三种情况,选择其他与s的频度比较接近的l-1个剩余的敏感属性,构成一个新的匿名化组。另外,为满足(l,α)-多样性,还需要考虑数据集中存在的函数依赖关系。
对于函数依赖X→Y,X⊆QI,Y⊆QI,对于这种情况,X和Y是数值属性或者分类属性,概化它们为属性阈值或者分类系统树节点。由于确定性属性的发布不影响敏感属性,因此是否概化敏感属性就不需要考虑。
(2)对于函数依赖X→Y,Y→Z,X⊆QI,Y⊆QI,S⊆Sen,这种情况类似于X→Y,X⊆QI,Y⊆Sen,因此,在此处我们就不再讨论。
对于划分到一个匿名化组内的元组,若概化时导致信息损失过大,必须根据前面讨论的扰动方法,对其进行扰动处理。在前述的基础上,下面给出使用分组方法实现基于函数依赖的(l,α)-多样性 算 法LDFD(the (L,α)-Diversity algorithm with Function Dependence)。
算法1 基于函数依赖的(l,α)-多样性算法
输入:数据集DS,多样性约束条件l,隐私保护程度αmin和αmax,此处αmin和αmax分别是隐私保护的最小概率和最大概率;
输出:满足(l,α)-多样性的数据集DS′。
步骤1 统计数据集的DS个数和不同敏感属性值的个数。
步骤2 设定αmin和αmax的阈值,计算每个匿名化组的范围(kmin,kmax),此处kmax=l/αmin,kmin=l/αmax。
湖北省县市区地理国情普查图涉及到比例尺范围为1:15000-1:14000,比例尺跨度大,使用传统的缩编手段先将1:10000数据,缩编为1:50000,然后在1:50000的基础上再缩编为更小比例尺数据,耗时耗力,WJ-III地图工作站能够实现从1:10000到1:140000逐级或跨尺度综合与成图,解决了从传统单一比例尺制图到多比例尺融合制图,从单一比例尺静态地图显示到多比例尺平滑动态连续显示技术难题,从而使多尺度空间数据能够在PC机、掌上电脑、网络上无级显示。
步骤3 按照敏感属性值的不同,将元组分别放入桶Bi(i=1,2,…,m),此处m是敏感属性值的个数。
步骤4 计算每一个QI组Ci(i=1,2,…,m)的质心,此处m是敏感属性值的个数。
步骤5 选择一个包含元组数最大的桶Bj,再由桶Bj中任意选择一个元组t1匿名化组构造G1,计算元组到每个桶质心的距离。
步骤6 选择到元组t1最近的桶Bi,计算匿名化组G1到桶Bi的距离;选择一个到桶Bi最近的元组,并把这个元组放入桶G1,计算G1的质心。
步骤7 如果组G1内的元组数少于l,则需要按照步骤6把l个不同的元组放入组G1。
步骤8 如果|DS|>l,转步骤5。
步骤9 把剩余的l个元组放入距离它们最近的匿名化组Gi。
步骤10 按照4.2.1节的内容调整匿名化组。
步骤11 计算每个匿名化组的信息损失、总信息损失、以及每个组的质心。
步骤12 标记最大信息损失的组,把它组内的元组放到其他的组内,若其他的组达到组分裂条件,则分裂这个组,然后计算总的信息损失,若总信息损失小于未标记前的信息损失,则正式解散标记的最大信息损失组,把其内的元组放到其他匿名化组。
步骤13 检查每个匿名化组,如果每个匿名化组内的不同敏感属性个数的比率小于αmin或者大于αmax,按照3.1节所述生成准标识符属性。
步骤14 发布满足(l,α)-多样性的匿名化数据集DS′。
4.2.3 算法的复杂度分析
根据敏感属性构造桶的时间复杂度为O(n),此处n是不同敏感属性值的个数。构造匿名化组G1的复杂度为(m-1+n/m)×l,此处m是敏感属性值的个数。构造匿名化组G2的复杂度为(m-1+(n-1)/m)×l,以此类推,构造匿名化组G[n/l]的复杂度为(m-1+(n-n+l)/m)×l。因此,总的复杂度为O(nlogn),此处我们假设n>>m,n>>l。在最坏情况下,若数据分布是严重倾斜的,构造匿名化组G的复杂度为O(n2)。
为实现隐私保护,概化/隐匿方法使用粗粒度的值代替细粒度的值,这无疑会降低数据效用。在极端情况下,可以导致数据完全失去效用。因此,本文不仅使用概化/隐匿方法,还使用扰动的方法。采用数据扰动的方法使原始的数据分布不发生改变,但是对于具体的值,有可能会导致查询精度降低。
测试实验使用的数据来源于Adult 数据集[12],总共有45 222个数据记录可用,这个数据集是隐私保护领域常用的数据集。此处使用其中的9个属性,8个属性作为准标识符属性,1个属性作为敏感属性。另外,假设函数依赖为salary-class→occupation 和age→marital-status,occupation作为敏感属性。所用算法的执行环境是VC++,Intel Core i-3,2.2GHz,2GB RAM,Windows 7操作系统。
(l,α)-多样性匿名化算法以文献[10]中的自顶向下的划分分组的方法作为比较对象,为方便起见,下文把比较对象称之为TDGA。在具体的算法中通过改变参数l、α、QI等验证算法的效率和有效性。
为验证时间性能,首先通过该变QI属性值的大小,存在函数依赖时与TDGA[10]比较评估时间性能。图2是使用Adult数据集得到的结果。实验中参数l设置为3、5、7,参数α设置为0.2,其变动范围设置为[0.15,0.25]。对于不同的参数l,其构成的匿名化组的大小也会发生相应的变化,图2针对不同的l值,固定设置了不同的匿名化组值,即k值的大小。
由图2 可知,LDFD 的运行时间比TDGA 稍微快一些。对于常量参数l和α,QI的增加会导致运行时间的响应增加,但是增加范围有限。总体说来,LDFD 运行时间较快,但是与TDGA 处于同一个数量级,在可以接受的范围之内。LDFD 运行稍快是由于LDFD 采用自顶向下的方法,按照敏感属性数构造QI组,且采用全局编码方式。
由这些评估结果可知,LDFD 算法的运行时间足够快,在实际的匿名化发布中完全可以应用,事实上LDFD 模型可以在存在函数依赖时有效地阻止相似性攻击以确保隐私保护度。
此处,使用两种度量标准测试数据效用,分别是信息损失、KL-散度。信息损失在隐私保护的数据发布是比较常见的一种度量方法,该方法有很多变种,本文采用3.2节所描述的方法。KL-散度主要用于度量查询误差估计,采用该度量方法主要是检测匿名化以后查询精度的改变情况。另外,为简单起见,算法不执行任何元组隐匿,则差异性度量就等于匿名化组内元组个数的平方和数。
Figure 2 Running time of Adult dataset图2 采用Adult数据集的运行时间
LDFD 和TDGA 算法信息损失的度量采用Adult数据集。算法的运行结果如图3所示,算法的参数设置为l=4,6,8;α=0.25,其变化范围为±0.05,如前面一样,对每个不同的l值均有相应的匿名化组k与之对应。当固定参数l和α,增加QI时,信息损失几乎以指数增长。由图3可以看出,LDFD 算法初始时产生的信息损失小于TDGA,随着QI的增长,LDFD 算法优势就开始体现。这是由于更多的QI会导致更多的属性参与运算,为达到最优化概化就会搜索更多的空间。随着QI的增加,信息损失的增长趋势也不是一成不变,其增长幅度也有一定的变化,这主要是由于每个属性的域不同所致的。
Figure 3 Information loss of Adult dataset when l andαare constant,and the QIchanges图3 固定l和α,变化QI,Adult数据集的信息损失
为检验匿名化数据集的查询精度,使用KL-散度来度 量 数 据 效 用[13],并 与TDGA[10]和TPP[14]相比较。图4 是运用Adult数据集产生的结果。在每一个图中,期望发布一个连接分布QI×S能被很好估计的数据表。此处,设置敏感属性S=occupation。QI分别为多维属性{age,gender,race}、{age,gender,maritalstatus,race}和{age,education,gender,maritalstatus,race}。每一个图显示一个基线,它相对于匿名化组内所有QI属性被隐匿的KL-散度,这时候结果表内仅仅有一个敏感属性。在图4中可以看出,在l=2,4,6,8,10,QI=3,5,7 时,LDFD 的散度接近于TTP 的散度。同时差于TDGA 的散度。正如所期望的那样,值l越大,(l,α)-多样性的效用越低。在l=8,10时,基准表基本上与基线相同了。
Figure 4 KL_divergence utility measurational图4 KL-散度效用度量
本文研究了存在函数依赖时如何进行隐私保护的数据发布问题,特别是在前人的工作基础上,根据数据集所包含的函数依赖关系,提出了(l,α)-多样性模型,并设计了鲁棒的、有效的算法予以实现,使匿名化数据集时保持较少的信息损失。实验结果显示了我们算法的有效性和效率。然而算法还有需要完善的地方,如αmin和αmax是人为设定的,缺少理论支持。另外,隐私保护的数据发布方面还有许多工作需要做,比如大数据的隐私保护问题就是一个值得研究的课题。因此,我们计划将来开展大数据方面的隐私研究工作。
[1] Wu Wei-min,Huang Huan-kun.A DP-DBScan clustering algorithm based on differential privacy preserving[J].Computer Engineering & Science,2015,37(4):830-834.(in Chinese)
[2] Srisungsittisunti B,Natwichai J.An incremental privacypreservation algorithm for the(k,e)-anonymous model[J].Computers &Electrical Engineering,2015,41:126-141.
[3] Sweeney L.Achievingk-anonymity privacy protection using generalization and suppression[J].International Journal of Uncertainty Fuzziness and Knowledge-Based Systems,2002,10(5):571-588.
[4] Machanavajjhala A,Gehrke J,Kifer D,et al.l-Diversity:Privacy beyondk-anonymity[C]∥Proc of the 22nd International Conference on Data Engineering,2006:24-36.
[5] Ninghui L,Tiancheng L,Venkatasubramanian S.t-Closeness:Privacy beyondk-anonymity andl-diversity[C]∥Proc of the 23rd International Conference on Data Engineering,2007:106-115.
[6] Zhang Xiao-lin,Wang Ying,Li Yu-feng.A(α,k)-anonymity method based on social networks[J].Computer Engineering &Science,2012,34(11):50-54.(in Chinese)
[7] Holohan N,Leith D J,Mason O.Differential privacy in metric spaces:Numerical,categorical and functional data under the one roof[J].Information Sciences,2015,305:256-268.
[8] Martin D J,Kifer D,Machanavajjhala A,et al.Worst-case background knowledge for privacy-preserving data publishing[C]∥Proc of the 23rd International Conference on Data Engineering,2007:126-135.
[9] Kifer D.Attacks on privacy and deFinetti’s theorem[C]∥Proc of the 2009ACM SIGMOD International Conference on Management of Data,2009:127-138.
[10] Wang H,Liu R.Privacy-preserving publishing microdata with full functional dependencies[J].Data & Knowledge Engineering,2011,70(3):249-268.
[11] Giannella C R,Liu K,Kargupta H.Breaching Euclidean distance-preserving data perturbation using few known inputs[J].Data & Knowledge Engineering,2013,83:93-110.
[12] http://archive.ics.uci.edu/ml/datasets/Adult.
[13] Navarro-Arribas G,Torra V,Erola A,et al.Userk-anonymity for privacy preserving data mining of query logs[J].Information Processing & Management,2012,48(3):476-487.
[14] Xiao X,Yi K,Tao Y.The hardness and approximation algorithms forl-diversity[C]∥Proc of the 13th International Conference on Extending Database Technology:Advances in Database Technology,2010:135-146.
附中文参考文献:
[1] 吴伟民,黄焕坤.基于差分隐私保护的DP-DBScan聚类算法研究[J].计算机工程与科学,2015,37(4):830-834.
[6] 张晓琳,王颖,李玉峰.基于社会网络的(α,k)-匿名方法[J].计算机工程与科学,2012,34(11):50-54.