本发明属于数据挖掘技术领域,涉及一种纵向联邦k-means隐私保护方法、装置及电子设备。
背景技术:
随着互联网的快速发展,进入了大数据时代,而数据挖掘技术可以从大量的数据中分析并提取隐藏的关键数据信息,从而被广泛的应用到各个领域。聚类算法是数据挖掘技术中常用的方法,其中k-means聚类算法因其步骤简单、效果较好的优点被经常使用。k-means算法通过计算样本和聚类中心的距离,把每个样本划分到距离它最近的聚类中,使得一个聚类中的样本相似度很高。但是现实的情况中,数据往往分布在多个数据拥有者上,并且往往包含许多隐私信息,因此如何在保证数据拥有者隐私安全的前提下进行数据挖掘,有着非常重要的意义。联邦学习可以在满足数据隐私、安全和监管要求的前提下进行数据分析,能够用于实现具有隐私保护的数据挖掘。
考虑有多个数据拥有者,对数据集按照纵向(即特征纬度)划分,在联合数据集上进行k-means聚类操作,最终各个数据拥有者都得到k-means聚类结果。并且,在聚类操作过程中,数据拥有者不泄露自己的原始数据。
以往的k-means隐私保护方案,大多存在以下问题:
1、现有方案大多是针对数据横向分布情况下的k-means聚类,对数据纵向分布的k-means聚类研究不充分;
2、现有方案往往会泄露k-means聚类过程中的中间信息,比如新的聚类中心,安全性不高;
3、现有方案大多不能抵抗参与者合谋攻击。
技术实现要素:
有鉴于此,本发明的目的在于提供一种纵向联邦k-means隐私保护方法、装置及电子设备,本发明利用同态加密和数据切分的方式保证隐私安全。利用云服务器进行k-means聚类算法中的大部分操作,减轻参与者的计算压力;通过采用对数据进行切分的方式,充分保护了参与者的数据隐私,并且本发明不向参与者泄露新的聚类中心,能够抵抗合谋攻击从而具有更高的安全性。
为达到上述目的,本发明提供如下技术方案:
在本发明的第一方面,本发明提供了一种纵向联邦k-means隐私保护方法,所述方法包括:
参与者分别对自身的样本数据加密,并上传至云服务器;
云服务器随机选取出k个聚类中心,并利用安全乘法协议计算出每个参与者的子距离差,并将子距离差发送给对应的参与者;
每个参与者将收到的子距离差划分份额,自身保留一份份额后继续分发剩余份额给其他参与者,计算自身保留的份额和收到的份额之和,并将结果发送给云服务器;
云服务器计算所有参与者发送的子距离差份额,确定每个样本距离最近的聚类中心,将样本划分到距离最近的聚类中心所在的聚类中;
云服务器按照聚类结果计算出每个聚类中所有样本的每个特征之和,更新聚类中心;
云服务器判断出新的聚类中心与原聚类中心之间的距离差值是否小于阈值;
若小于阈值,则结束聚类操作,否则用新的聚类中心代替原聚类中心,并进行下一轮迭代。在本发明的第二方面,本发明还提供了一种纵向联邦k-means隐私保护装置,包括:
同态加密模块,用于对参与者的样本数据加密;
数据传输模块,用于实现参与者与云服务器之间的通信以及参与者之间的通信;
距离计算模块,用于利用安全乘法协议计算出每个参与者的子距离差;
分配模块,用于将收到的子距离差划分份额,参考者自身保留一份份额后继续分发剩余份额给其他参与者;
汇总模块,用于汇总每个参与者持有子距离份额和收到的份额之和;
k-means模块,用于在随机选取出k个聚类中心后,确定每个样本距离最近的聚类中心,将样本划分到距离最近的聚类中心所在的聚类中,按照聚类结果计算每个聚类中所有样本的每个特征之和,并利用随机数计算出新的聚类中心;
判断模块,用于判断新的聚类中心与原聚类中心之间的距离差值是否小于阈值,若小于阈值,则结束聚类操作;否则,用新的聚类中心代替原聚类中心,并进行下一轮迭代。在本发明的第三方面,本发明还提供了一种电子设备,包括:
处理器;
用于存储机器可执行的存储器;
其中,通过读取并执行所述存储器存储的与一种纵向联邦k-means隐私保护方法的控制逻辑对应的机器可执行指令,所述处理器被促使:
参与者分别对自身的样本数据加密,并上传至云服务器;
云服务器随机选取出k个聚类中心,并利用安全乘法协议计算出每个参与者的子距离差,并将子距离差发送给对应的参与者;
每个参与者将收到的子距离差划分份额,自身保留一份份额后继续分发剩余份额给其他参与者,计算自身保留的份额和收到的份额之和,并将结果发送给云服务器;
云服务器计算所有参与者发送的子距离差份额,确定每个样本距离最近的聚类中心,将样本划分到距离最近的聚类中心所在的聚类中;
云服务器按照聚类结果计算出每个聚类中所有样本的每个特征之和,更新聚类中心;
云服务器判断出新的聚类中心与原聚类中心之间的距离差值是否小于阈值;
若小于阈值,则结束聚类操作,否则用新的聚类中心代替原聚类中心,并进行下一轮迭代。
本发明的有益效果在于:
本发明提出了一种在无信任第三方并且样本纵向分布在多方的情况下,多个参与者可以安全地共享自身样本数据,保证自身数据隐私安全的情况下实现一个纵向的k-means聚类隐私保护方法,最终共享聚类结果,实现具有隐私保护的纵向联邦的k-means。
本发明中的参与者为多方,也就是数据纵向分布在不少于三方的参与者上;算法操作中的距离计算利用paillier同态加密的性质实现,并且通过作差值方式,避免参与者直接获取距离信息,杜绝参与者有可能利用距离信息推断出聚类中心和数据分布状态等敏感信息;利用数据切分再恢复的操作,避免了参与者泄露本身数据的分布情况;设计安全除法协议,通过云服务器和参与者交互的方式计算新的聚类中心,提高了方案的安全性。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
图1是本发明实施例中的应用场景模型图;
图2是本发明实施例中的一种纵向联邦k-means隐私保护方法流程图;
图3是本发明实施例中的一种纵向联邦k-means隐私保护装置结构图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
针对现有数据挖掘中存在的数据隐私安全问题,本发明对现有具有隐私保护的k-means聚类技术进行研究,最终提出一种样本数据纵向分布多方的k-means联邦学习方案,具体涉及到纵向联邦k-means隐私保护方法、装置及电子设备。本发明支持样本数据纵向分布在数据不少于三方,参与者将自身数据加密上传至云服务器,通过云服务器和参与者的相互协商,实现在多方联合数据集上的纵向联邦学习,完成了数据隐私保护。
图1是本发明实施例中的应用场景模型图,如图1所示,本实施例中将纵向联邦k-means隐私保护划分为两个层次。其中层次1是云服务器,云服务器主要用于存储参与者加密后的样本数据,并且通过与参与者交互的方式,利用同态加密算法和数据分割的方式实现k-means聚类算法中的距离计算和比较的功能,承担了k-means聚类算法中的主要计算,减轻参与者的计算压力;层次2是拥有样本数据的参与者,其中样本数据纵向分布在不少于三方的参与者上,用户需要对自身样本数据进行加密并上传至云服务器,并在k-means聚类算法中与云服务器交互进行距离计算、距离比较和更新聚类中心的功能。
图2是本发明实施例中的一种纵向联邦k-means隐私保护方法流程图,如图2所示,所述方法包括:
s1:参与者分别对自身的样本数据加密,并上传至云服务器;
首先,本发明可以选择任意一个参与者m1作为发起方节点,将参与者m1的样本数据加密后,上传至云服务器中;当然除此之外,本发明还可以将所有参与者的样本数据加密,这里的参与者可以指的是数据拥有者。
在本发明实施例中,本发明中采用了paillier加密,其中paillier加密支持密文加法操作,即具有加同态,它是一个四元组的概率性加密,表示为encpa={kengen,encrypt,decrypt,evaluate}。其中paillier加密方法具有如下性质:e(x)e(y)=e(x+y),e(x)y=e(xy);也就是说将加密结果进行累乘后,解密得出的结果即为累加结果。
在一些实施例中,所述样本数据加密的过程可以包括:
s11:每个参与者生成公钥pki,ski,其中1≤i≤n,n表示参与者数量;具体包括:
s111:每个参与者选取两个大素数p,q,并保证gcd(pq,(p-q)(q-1))=1;
s112:每个参与者计算n=pq,λ=(p-1,q-1);n的二进制表示时所占用的位数,也就是密钥长度,可以根据实际需要确定出相应的密钥长度,一般而言,p,q的位数可以在512位以上,保证密钥的机密性。
s113:每个参与者随机选取g,并且存在μ=(l(gxmodn2))-1modn,其中
s114:每个参与者的公钥是pk=(n,g),公钥是sk=(λ,μ);
s12:每个参与者选取随机数r,计算出样本密文c=gxrnmodn2,其中
s13:每个参与者计算
s14:每个参与者将样本密文ci上传至云服务器。
基于上述实施例展示的方式,即可将每个参与者自身的样本数据加密,形成样本密文后上传至云服务器,云服务器将在云端保存这些样本密文,便于后续数据请求者的请求。
s2:云服务器随机选取出k个聚类中心,并利用安全乘法协议计算出每个参与者的子距离差,并将子距离差发送给对应的参与者;
具体可以包括:
s21:云服务器从上传的加密数据中随机挑选k个样本作为k个初始聚类中心;
其中,初始聚类中心表示为φ={μc|1≤c≤k},
在一些实施例中,作为其中一个参与者的发起方节点m1可以随机选取k个样本id,这些样本id对应的样本作为该节点的样本中心,然后将这k个样本id传给其他参与者m1,m2,…,mn;其他参与者同样根据这些id找到己方所对应的样本中心,这样就可以找到k个样本作为初始聚类中心。
在一些优选实施例中,本发明实施例可以使用k-means++优化初始化聚类中心:发起方节点m1随机选取1个样本id作为第一个初始化聚类中心,这个id对应的样本作为该节点的样本中心,然后将这个样本id传给其他参与者m1,m2,…,mn,其他参与者同样根据这个id找到己方的所对应的样本中心,接着发起方计算每个样本距离自己一方已有样本中心的欧式距离平方和,再将这个值加上随机数并用公钥加密再传给下一个参与节点,下一个节点同样计算每个样本距离自己一方已有样本中心的欧式距离平方和并加上上一个节点传过来的欧式距离平方和,直到n个节点全部计算完毕并且第n个节点把最终的平方和汇总到发起方节点m1,发起方减去每个距离对应的随机数并用私钥解密,然后发起方节点计算每个样本与当前已有聚类中心的最短距离,用d(x)表示,接着计算每个样本被选为下一个聚类中心的概率
s22:云服务器计算每个样本与k个聚类中心的距离dis,距离dis被划分为n个子距离disi;
具体的,由于样本数据按照特征划分并分布在不同的参与者上,距离可以被划分为n个子距离;
其中每个样本与k个聚类中心的距离表示为:dis=dis1+dis2+…+disn同一样本与两个聚类中心所对应的两个距离之间的差值表示为dif=dif1+dif2+…+difn=(dis1-dis′1)+(dis2-dis′2)+…+(disn-dis′n),其中1≤i≤n,n表示参与者数量。
s23:云服务器将每个样本与任意两个聚类中心的对应参与者的子距离做差后,得到对应参与者的子距离差值difi;
difi=(disn-dis′n)
s24:云服务器利用安全乘法协议计算出每个子距离差值的密文e(difi)。
其中,为了计算出每个子距离差值的密文,首先需要计算出每个特征sl。
云服务器计算e(sl-μl)=e(sl)·e(μl)n-1,其中,
s25:云服务器利用安全乘法(sm)协议计算e((sl-μl)2),其中安全乘法协议sm(e(x),e(y))=e(xy)包括:
s251:云服务器挑选两个不一样的随机数rx,ry∈zn;
s252:云服务器计算x′=e(x)e(y),y′=e(rx)e(ry);
s253:云服务器计算x′=e(x)e(y),y′=e(rx)e(ry);
s254:用户pi计算hx=d(x′),hy=d(y′),h=hxhymodn,h′=e(h);
s255:用户pi将h′发送给云服务器;
s256:云服务器计算
s257:云服务器计算e(xy)=s′e(rxrx)n-1;
s26:云服务器计算
s27:云服务器计算e(difi)=∏(e((sl-μi,l)2)-e((sl-μj,l)2));
s28:云服务器将e(difi)发送给参与者pi。
s3:每个参与者将收到的子距离差划分份额,自身保留一份份额后继续分发剩余份额给其他参与者,计算自身保留的份额和收到的份额之和,并将结果发送给云服务器;
s31:参与者pi计算difi=d(e(difi));
s32:参与者pi将difi随机划分为n个份额difi,1,difi,2,…,difi,n,并自己保存其中的一个份额difi,x;
s33:参与者pi将除了difi,x之外的其他n-1个份额发送给其他的n-1个参与者;
s34:参与者pi接受其他参与者发送的份额;
s35:参与者pi计算自己保存的份额和接收到的其他参与者的份额之和sum.di;
s36:参与者pi将sum.di发送给云服务器。
s4:云服务器计算所有参与者发送的子距离差份额,确定每个样本距离最近的聚类中心,将样本划分到距离最近聚类中心所在的聚类中;
s41:云服务器接受参与者发送与每个样本和每个聚类中心距离相关的sum.di,1≤i≤n,n表示参与者数量;
s42:云服务器计算sum=sum.d1+sum.d2+…+sum.dn;
s43:云服务器得到每个样本和每个聚类中心的距离sum,将每个样本划分到距离最近的聚类中。
s5:云服务器按照聚类结果计算每个聚类中所有样本的每个特征之和,并利用随机数计算出新的聚类中心;
在一个实施例中,所述步骤s5可以包括:
s51、云服务器计算出每个聚类中样本的每个特征之和al的密文;
所述云服务器计算出每个聚类中样本的每个特征之和al的密文表示为e(al)=∏e(sl),其中,al表示每个聚类中所有样本的第l个特征之和;s表示属于每个聚类的样本;sl表示样本s的第l个特征;其中
s52、云服务器随机挑选出第一随机数和第二随机数;
在一些实施例中,所述第一随机数能被第二随机数整除。
s53、云服务器利用所述第一随机数对每个特征之和al的密文进行隐藏,利用所述第二随机数对每个聚类中的样本数量mc的密文进行隐藏;
在一些实施例中,所述云服务器利用所述第一随机数对每个特征之和al的密文进行隐藏,利用所述第二随机数对每个聚类中的样本数量mc的密文进行隐藏分别表示为
s54、云服务器将隐藏处理后的每个特征之和的密文以及样本数量的密文发送给参与者;
s55、参与者对接收到的密文采用其自身的私钥进行解密,并将两种密文按照除法方式处理,将除法计算结果发送给云服务器;
s56、云服务器抵消掉收到的计算结果中的两个随机数,获取新的聚类中心。
在一些实施例中,所述云服务器抵消掉收到的计算结果中的两个随机数,获取新的聚类中心包括计算
在另一些实施例中,所述步骤s5还可以包括:
s51*:云服务器计算每个聚类中样本的每个特征之和e(al)=∏e(sl),其中
s52*:云服务器随机选取两个随机数r1,r2;
s53*:云服务器计算
s54*:云服务器将e(al·r1)和e(mc·r2)发送给特征l对应的参与者;
s55*:参与者计算d(e(al·r1))和d(e(mc·r2)),其中d(·)表示解密操作;
s56*:参与者计算
s57*:云服务器计算
s6:若小于阈值,则结束聚类操作,否则用新的聚类中心代替原聚类中心,并进行下一轮迭代。
本实施例中需要判断更新后的聚类中心与初始聚类中心或者上一轮迭代过程更新后的聚类中心之间的距离差值,判断所述距离差值是否小于阈值,若小于阈值,说明当前的聚类中心不一定优于初始聚类中心或者上一轮迭代过程更新后的聚类中心,结束聚类操作,并确定上一轮迭代过程中的聚类中心为最优聚类中心;否则表明当前的聚类中心可能优于初始聚类中心或者上一轮迭代过程更新后的聚类中心,并用当前迭代过程中的聚类中心替换上一轮迭代的聚类中心。
若大于阈值,除了用新的聚类中心替代原来的聚类中心以外,还需要返回步骤s2中利用安全乘法协议计算出每个参与者的子距离差进行下一轮迭代。
在本发明的第二方面,本发明还提供了一种纵向联邦k-means隐私保护装置,包括:
同态加密模块,用于对参与者的样本数据加密;
在本发明实施例中,本发明中采用了paillier加密,其中paillier加密支持密文加法操作,即具有加同态,它是一个四元组的概率性加密,表示为encpa={kengen,encrypt,decrypt,evaluate}。其中paillier加密方法具有如下性质:e(x)e(y)=e(x+y),e(x)y=e(xy)。
数据传输模块,用于实现参与者与云服务器之间的通信以及参与者之间的通信;
所述数据传输模块用于通信的过程可以包括但不限于参与者将加密后的样本数据上传至服务器、参与者之间分发子距离差份额、参与者将持有的所有份额发送给云服务器以及云服务器将聚类结果返回给参与者等。
距离计算模块,用于利用安全乘法协议计算出每个参与者的子距离差,并将子距离差通过数据传输模块发送给对应的参与者;
所述距离计算模块与所述同态加密模块配合,利用安全乘法协议计算出每个参与者的子距离差,并将子距离差发送给对应的参与者;云服务器计算每个样本与k个聚类中心的距离dis,距离dis被划分为n个子距离disi,其中1≤i≤n,n表示参与者数量;关于每个样本与k个聚类中心的距离,云服务器计算每两个距离中对应参与者的子距离差值difi;云服务器利用安全乘法协议计算出每个子距离差值e(difi)。
分配模块,用于将收到的子距离差划分份额,参与者自身保留一份份额后继续分发剩余份额给其他参与者;
所述分配模块用于分割子距离差并分发,参与者将收到的子距离差划分份额,自身保留一份份额后继续分发剩余份额给其他参与者。
汇总模块,用于汇总每个参与者持有子距离份额和收到的份额之和;
所述汇总模块汇总每个参与者持有的所有份额以及汇总所有参与者发送的子距离差份额。
k-means模块,用于在随机选取出k个聚类中心后,确定每个样本距离最近的聚类中心,将样本划分到距离最近聚类中心所在的聚类中,按照聚类结果计算每个聚类中所有样本的每个特征之和,并利用随机数计算出新的聚类中心;
判断模块,用于判断新的聚类中心与原聚类中心之间的距离差值是否小于阈值,若小于阈值,则结束聚类操作;否则,用新的聚类中心代替原聚类中心,并进行下一轮迭代。
可以理解的是,所述数据通信模块作为数据交互端口,用于与外界进行通信,其余模块可以部分设置在参与者上,也可以设置部分在云服务器上,同时还可以全部设置在参与者上,还可以全部设置在云服务器上;除此以外,还可以另寻找第三方设备进行设置。
在本发明的第三方面,本发明还提供了一种电子设备,包括:
处理器;
用于存储机器可执行的存储器;
其中,通过读取并执行所述存储器存储的与一种纵向联邦k-means隐私保护方法的控制逻辑对应的机器可执行指令,所述处理器被促使:
参与者分别对自身的样本数据加密,并上传至云服务器;
云服务器随机选取出k个聚类中心,并利用安全乘法协议计算出每个参与者的子距离差,并将子距离差发送给对应的参与者;
每个参与者将收到的子距离差划分份额,自身保留一份份额后继续分发剩余份额给其他参与者,计算自身保留的份额和收到的份额之和,并将结果发送给云服务器;
云服务器计算所有参与者发送的子距离差份额,确定每个样本距离最近的聚类中心,将样本划分到距离最近的聚类中心所在的聚类中;
云服务器按照聚类结果计算出每个聚类中所有样本的每个特征之和,更新聚类中心;
云服务器判断出新的聚类中心与原聚类中心之间的距离差值是否小于阈值;
若小于阈值,则结束聚类操作,否则用新的聚类中心代替原聚类中心,并进行下一轮迭代。
在本发明的描述中,需要理解的是,术语“同轴”、“底部”、“一端”、“顶部”、“中部”、“另一端”、“上”、“一侧”、“顶部”、“内”、“外”、“前部”、“中央”、“两端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明中,除非另有明确的规定和限定,术语“安装”、“设置”、“连接”、“固定”、“旋转”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。