一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

隐私保护k-means聚类方法、设备、介质、终端与流程

2021-11-09 20:44:00 来源:中国专利 TAG:

隐私保护k

means聚类方法、设备、介质、终端
技术领域
1.本发明属于隐私保护技术领域,尤其涉及一种隐私保护k

means聚类方法、设备、介质、终端。


背景技术:

2.目前:在目前的环境下机器学习是一个重要的也是一个热门的话题。机器学习的出现解决各种领域的众多问题带来了突破,例如,推荐服务、垃圾邮件过滤、网络搜索引擎、欺诈检测、股市分析和认证技术。虽然最近的技术支持对大数据进行更高效的存储和计算,但保护来自不同来源的组合数据仍然是一大挑战。
3.而机器学习需要依赖大量的训练数据,原始的数据杂乱无章,同时现有的直接在明文的情况使用k

means算法对数据进行分类,会导致用户的隐私信息和分类的结果极其容易被泄露。
4.目前现有的技术都不能够很好的解决以上的问题,就如同专利一种物联网医疗系统中增强数据隐私性的数据聚类方法所提出的方法,该专利中所提到的方法在一定的程度上保护了用户隐私不被泄露,但是由于仅仅只有一个数据分析端,导致所有的运算全在密文的情况下进行。时间成本太大。
5.通过上述分析,现有技术存在的问题及缺陷为:现有的聚类方法导致用户的隐私信息和分类的结果极其容易被泄露,安全性不够,同时现有基于隐私保护的聚类方法时间成本大,聚类效率低,且聚类结果不准确。
6.解决以上问题难度和意义为:如何在不泄露隐私和保证结果的准确性的前提下,大幅度的提高聚类的效率,降低时间成本。解决此问题后,隐私保护下的聚类算法均可按照本专利所提供的方法来达到一个较为理想的时间成本。


技术实现要素:

7.针对现有技术存在的问题,本发明提供了一种隐私保护k

means聚类方法、设备、介质、终端。
8.本发明是这样实现的,一种隐私保护k

means聚类方法,所述隐私保护k

means聚类方法包括:
9.采集并加密原始数据,利用两个服务器处理加密后的数据,通过k

means算法将数据分类,根据距离度量将相似数据进行分组。
10.进一步,所述隐私保护k

means聚类方法包括以下步骤:
11.步骤一,进行数据收集:数据拥有者即用户使用服务器s1的公钥pk1加密数据发送给服务器s0,同时使用服务器s0的公钥pk0加密数据发送给服务器s1;由于用户的隐私被自身加密,提高了安全性。
12.步骤二,生成初始中心:服务器s0将所有密文数据初始化分类,并计算得到初始密文中心点;
13.步骤三,进行相似度测量:服务器s0将密文中心点信息发给服务器s1,服务器s1解密并利用同态技术计算得到各点到中心点的密文距离,并将密文距离发送给服务器s0;使用了同态技术,在不泄露用户的隐私前提下,极大的提高了聚类计算的效率。
14.步骤四,比较更新迭代:服务器s0解密并根据距离比较结果重新进行分类,得到新一轮的分类结果,重复步骤二至步骤三直至分类结果不再发生改变。通过迭代对结果进行比较以达到与明文下的聚类算法相同的正确性。
15.进一步,所述数据收集包括:
16.(1)进行初始化,服务器s0利用paillier算法生成公钥pk0以及对应私钥sk0,服务器s1生成公钥pk1和对应的私钥sk1;服务器s0与服务器s1将自己的公钥发送给各个用户;
17.(2)用户使用公钥pk1加密用户的隐私信息即向量e
i
=(e1,e2,...,e
n
)得到密文使用公钥pk0加密向量e
i
=(e1,e2,...,e
n
)得到密文
18.(3)用户将发送给服务器s0,将发送给服务器s1。
19.进一步,所述生成初始中心包括:
20.1)服务器s0将所有数据n表示用户的总数,按照初始的分类方法的分成k类,并记录下分类结果r0;
21.2)服务器s0根据本轮的分类结果r0,基于下式计算明文下各类的和向量的密文:
[0022][0023][0024]
其中:表示第c
j
类的所有向量相加的和向量;表示第c
j
类的所有向量相加的和向量的第a维数据;表示第c
j
类中的第i个用户信息向量;表示第c
j
类中的第i个用户信息向量的第a维的数据,对于每一类而言,1≤i≤t
j
;∑表示累加符号;∏表示累乘符号;
[0025]
3)服务器s0得到被公钥pk1加密后的各类明文数据的和向量的密文,再将其除以各类含有的用户向量的数量,得到初始中心点或者新一轮的中心点;服务器s0将密文下的中心点信息向量发送给服务器s1。
[0026]
进一步,所述初始的分类方法包括:将第i个用户信息划分给第(i%k) 1类;
[0027]
其中,(i%k) 1表示i除以k的余数再加上1;表示第j类的第一个用户向量;第j类记为并且记录下第j类的用户信息向量的个数t
j
;记录下分类结果r0。
[0028]
进一步,所述初始中心点计算公式如下:
[0029]
[0030]
其中,表示被服务器s1的公钥pk1加密的中心点向量;所述中心点向量被放大106倍;表示第c
j
类的所有向量相加的和向量;t
j
表示第c
j
类包含的用户信息向量的个数。
[0031]
进一步,所述进行相似性度量包括:
[0032]
首先,服务器s1接收到服务器s0发送的数据服务器s1用私钥sk1解密后得到其中1≤j≤k;计算此时表示新一轮的中心点;
[0033]
其次,服务器s1计算每一个用户信息向量到每类的中心点的欧几里得距离:
[0034][0035]
其中,表示密文下的用户信息向量e
i
到第c
j
类中心点向量z
j
的相对距离;表示第c
j
类的中心点的第i维数据的平方;e
a
表示用户信息e
i
的第a维数据,a≤n,i≤n;表示两倍的第c
j
类中心点向量的第b维数据,b≤n;q表示paillier算法中的模;
[0036]
最后,服务器s1将所有的密文下的距离发送给服服务器s0。
[0037]
进一步,所述进行更新迭代包括:
[0038]
服务器s0收到服务器s1发送的密文下的距离服务器s0使用私钥sk0解密得到所有用户向量距离每一类中心点的相对欧几里得距离的明文信息
[0039]
服务器s0通过比较各个用户的距离每个中心点的相对欧几里得距离,给用户重新分类,得到分类结果r1;
[0040]
服务器s0将这次的分类r1结与上一轮的分类结果r0进行比较;若分类结果没有发生改变,则结束;若分类结果发生改变,服务器s0将这次的分类r1记为r0,服务器s0返回按照分类的结重新计算新一轮的中心点一直迭代至分类结果未发生改变。
[0041]
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述隐私保护k

means聚类方法。
[0042]
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述隐私保护k

means聚类方法。
[0043]
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的隐私保护k

means聚类方法。
[0044]
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明能够整个k

means聚类算法的过程中,很好的保护用户的隐私信息,且计算成本和时间两个方面都是
友好的。
[0045]
本发明具备用户友好性:每个用户仅仅需要使用服务器s0和服务器s1的公钥加密自己的隐私数据,再将加密后的数据分别发送给服务器s1和服务器s0即可。用户的计算成本与时间成本都非常小。
[0046]
本发明安全性与正确性:由于在整个算法中,用户的信息利用都是在密文的情况下所利用,且两个服务器仅仅拥有自己的私钥,所以用户的隐私信息被完全的隐藏。整个算法的结果经过推导与实验后与明文下的k

means聚类算法结果一致。
[0047]
本发明具备有效性:在服务器s0和服务器s1的通信成本与计算成本方面,本方明所提出的一种高效的隐私保护k

means聚类算法是高效的,均为线性复杂度。本方案利用的同态技术,可以将整个算法过程中一些不敏感的数据转化为明文如中心点信息以及用户向量距离各中心点的距离。这样一些在密文下十分耗时的计算可以转化为明文下高效的计算。如此可节省大量的计算时间成本。
[0048]
本发明与使用欧几里德距离作为相似性度量的明文k

means算法方达到相同的准确度。明文情况下集中式的k

means算法可以达到最好的分类效果,但是由于载明文情况下会泄露大量的隐私,用户的隐私信息不能得到保护。但是通过了基于同态的两方安全计算的k

means聚类算法,本发明可以得到与在明文完全正确的分类结果。并且在整个算法过程中用户的隐私信息不会被泄露。
附图说明
[0049]
图1是本发明实施例提供的隐私保护k

means聚类方法原理图。
[0050]
图2是本发明实施例提供的隐私保护k

means聚类方法流程图。
[0051]
图3是本发明实施例提供的数据收集阶段流程图。
[0052]
图4是本发明实施例提供的生成初始中心阶段流程图。
[0053]
图5是本发明实施例提供的相似度测量阶段流程图。
[0054]
图6是本发明实施例提供的比较更新迭代阶段流程图。
[0055]
图7是本发明实施例提供的隐私保护k

means聚类方法示意图。
具体实施方式
[0056]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0057]
针对现有技术存在的问题,本发明提供了一种隐私保护k

means聚类方法、设备、介质、终端。提供的聚类方案可以运用在智能电网分析用户数据,按照每个用户每天的用电量对用户进行聚类时使用。同样的可以应用在任何需要聚类算法的场合。
[0058]
下面结合附图对本发明作详细的描述。
[0059]
如图1所示,本发明实施例提供的隐私保护k

means聚类方法包括:
[0060]
采集并加密原始数据,利用两个服务器处理加密后的数据,通过k

means算法将数据分类,根据距离度量将相似数据进行分组。
[0061]
如图2所示,本发明实施例提供的隐私保护k

means聚类方法包括以下步骤:
[0062]
s101,进行数据收集:数据拥有者即用户使用服务器s1的公钥pk1加密数据发送给服务器s0,同时使用服务器s0的公钥pk0加密数据发送给服务器s1;
[0063]
s102,生成初始中心:服务器s0将所有密文数据初始化分类,并计算得到初始密文中心点;
[0064]
s103,进行相似度测量:服务器s0将密文中心点信息发给服务器s1,服务器s1解密并利用同态技术计算得到各点到中心点的密文距离,并将密文距离发送给服务器s0;
[0065]
s104,比较更新迭代:服务器s0解密并根据距离比较结果重新进行分类,得到新一轮的分类结果,重复步骤s102至步骤s103直至分类结果不再发生改变。
[0066]
本发明实施例提供的数据收集包括:
[0067]
(1)进行初始化,服务器s0利用paillier算法生成公钥pk0以及对应私钥sk0,服务器s1生成公钥pk1和对应的私钥sk1;服务器s0与服务器s1将自己的公钥发送给各个用户;
[0068]
(2)用户使用公钥pk1加密用户的隐私信息即向量e
i
=(e1,e2,...,e
n
)得到密文使用公钥pk0加密向量e
i
=(e1,e2,...,e
n
)得到密文
[0069]
(3)用户将发送给服务器s0,将发送给服务器s1。
[0070]
本发明实施例提供的生成初始中心包括:
[0071]
1)服务器s0将所有数据n表示用户的总数,按照初始的分类方法的分成k类,并记录下分类结果r0;
[0072]
2)服务器s0根据本轮的分类结果r0,基于下式计算明文下各类的和向量的密文:
[0073][0074][0075]
其中:表示第c
j
类的所有向量相加的和向量;表示第c
j
类的所有向量相加的和向量的第a维数据;表示第c
j
类中的第i个用户信息向量;表示第c
j
类中的第i个用户信息向量的第a维的数据,对于每一类而言,1≤i≤t
j
;∑表示累加符号;∏表示累乘符号;
[0076]
3)服务器s0得到被公钥pk1加密后的各类明文数据的和向量的密文,再将其除以各类含有的用户向量的数量,得到初始中心点或者新一轮的中心点;服务器s0将密文下的中心点信息向量发送给服务器s1。
[0077]
本发明实施例提供的初始的分类方法包括:将第i个用户信息划分给第(i%k) 1类;
[0078]
其中,(i%k) 1表示i除以k的余数再加上1;表示第j类的第一个用户向量;第j类记为并且记录下第j类的用户信息向量的个数t
j
;记录下分类结果r0。
[0079]
本发明实施例提供的初始中心点计算公式如下:
[0080][0081]
其中,表示被服务器s1的公钥pk1加密的中心点向量;所述中心点向量被放大106倍;表示第c
j
类的所有向量相加的和向量;t
j
表示第c
j
类包含的用户信息向量的个数。
[0082]
本发明实施例提供的进行相似性度量包括:
[0083]
首先,服务器s1接收到服务器s0发送的数据服务器s1用私钥sk1解密后得到其中1≤j≤k;计算此时表示新一轮的中心点;
[0084]
其次,服务器s1计算每一个用户信息向量到每类的中心点的欧几里得距离:
[0085][0086]
其中,表示密文下的用户信息向量e
i
到第c
j
类中心点向量z
j
的相对距离;表示第c
j
类的中心点的第i维数据的平方;e
a
表示用户信息e
i
的第a维数据,a≤n,i≤n;表示两倍的第c
j
类中心点向量的第b维数据,b≤n;q表示paillier算法中的模;
[0087]
最后,服务器s1将所有的密文下的距离发送给服服务器s0。
[0088]
本发明实施例提供的进行更新迭代包括:
[0089]
服务器s0收到服务器s1发送的密文下的距离服务器s0使用私钥sk0解密得到所有用户向量距离每一类中心点的相对欧几里得距离的明文信息
[0090]
服务器s0通过比较各个用户的距离每个中心点的相对欧几里得距离,给用户重新分类,得到分类结果r1;
[0091]
服务器s0将这次的分类r1结与上一轮的分类结果r0进行比较;若分类结果没有发生改变,则结束;若分类结果发生改变,服务器s0将这次的分类r1记为r0,服务器s0返回按照分类的结重新计算新一轮的中心点一直迭代至分类结果未发生改变。
[0092]
下面结合具体实施例对本发明的技术方案做进一步说明。
[0093]
实施例1:
[0094]
本发明实例提供的一种高效的隐私保护k

means聚类算法包括以下步骤:
[0095]
1.数据收集:数据拥有者(用户)使用服务器s1的公钥pk1加密数据发送给服务器s0,然后再使用服务器s0的公钥pk0加密数据发送给服务器s1。
[0096]
2.相似度测量:服务器s0将密文中心点信息发给服务器s1,服务器s1解密并利用同态技术计算出各点到中心点的密文距离,并将密文距离发送给服务器s0。
[0097]
3.比较更新迭代:服务器s0解密并根据距离比较结果重新进行分类,得到新一轮的分类结果,重复二、三步迭代至分类结果不再发生改变。
[0098]
4.比较更新迭代:服务器s0收到了服务器s1发送的距离信息,服务器s0解密,然后重新进行分类,得到新一轮的分类结果,与上一轮的分类结果进行比较,若发生改变则回到第二步,迭代至分类结果不再发生改变。
[0099]
下面结合附图对本发明的应用原理作进一步的描述。
[0100]
本发明实施例提供的一种高效的隐私保护k

means聚类算法具体包括以下步骤:
[0101]
第一步的数据收集阶段具体包括:
[0102]
步骤一:算法初始化,服务器s0利用paillier算法生成公钥pk0以及对应私钥sk0,服务器s1生成公钥pk1和对应的私钥sk1。两个服务器将自己的公钥发送给各个用户。
[0103]
其中,记表示明文下的某个数据被公钥pk
i
所加密的密文。pk
i
只能为公钥pk0或者公钥pk1。
[0104]
步骤二:用户的隐私信息为向量e
i
=(e1,e2,...,e
n
)。用户使用公钥pk1加密向量e
i
=(e1,e2,...,e
n
)得到密文使用公钥pk0加密向量e
i
=(e1,e2,...,e
n
)得到密文用户将发送给服务器s0,将发送给服务器s1。所有用户均完成这个步骤后,服务器s0就拥有了完整的使用服务器s1的公钥加密的用户信息数据,同样的服务器s1就拥有了完整的使用服务器s0的公钥加密的用户信息数据。
[0105]
第二步生成初始中心阶段具体包括:
[0106]
步骤一:服务器s0将所有数据n表示用户的总数。按照初始的分类方法的分成k类。初始的分类方法:将第i个用户信息划分给第(i%k) 1类。其中,(i%k) 1表示i除以k的余数再加上1。表示第j类的第一个用户向量。第j类记为并且记录下第j类的用户信息向量的个数t
j
。并记录下分类结果r0。
[0107]
步骤二:服务器s0根据本轮的分类结果r0,服务器s0按照如下的公式来计算明文下各类的和向量的密文各类的和向量的密文
[0108][0109]
其中:
[0110]
表示第c
j
类的所有向量相加的和向量。表示第c
j
类的所有向量相加的和向量的第a维数据。表示第c
j
类中的第i个用户信息向量。表示第c
j
类中的第i个用户信息向量的第a维的数据,对于每一类而言,1≤i≤t
j
。∑表示累加符号。∏表示累乘符号。
[0111]
步骤三:服务器s0得到了被公钥pk1加密后的各类明文数据的和向量的密文,再将
其除以各类含有的用户向量的数量,便可以得到初始中心点或者新一轮的中心点。服务器s0按照下列公式来计算中心。
[0112][0113]
其中,表示被服务器s1的公钥pk1加密的中心点向量。该中心点向量被放大了106倍。表示第c
j
类的所有向量相加的和向量。t
j
表示第c
j
类包含的用户信息向量的个数。
[0114]
步骤四:服务器s0将密文下的中心点信息向量发送给服务器s1。
[0115]
第三步相似性度量阶段具体包括:
[0116]
步骤一:服务器s1接收到服务器s0发送过来的数据服务器s1用私钥sk1解密后得到其中1≤j≤k。计算此时z
cj
表示新一轮的中心点。
[0117]
步骤二:服务器s1计算每一个用户信息向量到每类的中心点的欧几里得距离k

means算法将n个用户分成了k类故一共要计算n*k个距离。
[0118]
由于本发明到时候是比较每个用户信息向量到各类中心点间的距离,要选出距离每个用户信息最近的那个中心点,以便于将该用户信息向量划分给距离该点最近的中心点。所以||e
i
||2是相同的,这里可以直接省略。所以有服务器s1没有掌握用户信息的明文数据。不能计算故上述的计算便可以转化为:
[0119][0120]
其中:表示密文下的用户信息向量e
i
到第c
j
类中心点向量z
j
的相对距离。表示第c
j
类的中心点的第i维数据的平方。e
a
表示用户信息e
i
的第a维数据,a≤n,i≤n。表示两倍的第c
j
类中心点向量的第b维数据,b≤n。q表示paillier算法中的模。
[0121]
步骤三:服务器s1将所有的密文下的距离发送给服服务器s0。共有n组距离,每一组k个。
[0122]
第四步比较更新迭代阶段具体包括:
[0123]
步骤一:服务器s0收到服务器s1发送过来的密文下的距离服务器s0使用私钥sk0解密得到所有用户向量距离每一类中心点的相对欧几里得距离的明文信息
[0124]
步骤二:服务器s0通过比较各个用户的距离每个中心点的相对欧几里得距离,从
而给用户重新分类,得到分类结果r1。
[0125]
步骤三:服务器s0将这次的分类r1结与上一轮的分类结果r0进行比较。若分类结果没有发生改变,则算法结束。若分类结果发生改变,服务器s0将这次的分类r1记为r0,服务器s0回到第二步的步骤二按照分类的结重新计算新一轮的中心点一直迭代至分类结果未发生改变。
[0126]
综上所述,本发明有着以下的有益效果。
[0127]
1.理论分析正确性与安全性:本发明与使用欧几里德距离作为相似性度量的明文k

means算法方达到相同的准确度。明文情况下集中式的k

means算法可以达到最好的分类效果,但是由于载明文情况下会泄露大量的隐私,用户的隐私信息不能得到保护。但是通过了基于同态的两方安全计算的k

means聚类算法,本发明可以得到与在明文完全正确的分类结果。并且在整个算法过程中用户的隐私信息不会被泄露。
[0128]
证明:一开始的两个服务器所得到的的信息分别是由对方的公钥加密。由于该协议是诚实好奇模型。两个服务器均不会泄露自己的私钥。并且在整个算法的过程中没有交换原始的加密后的数据步骤。故用户的隐私数据不会被泄露。计算每一个用户信息向量到每类的中心点的欧几里得距离[d(e
i
,z
cj
)]
pk0
=[||e
i
||2 (||z
cj
||2‑
2(e
i
·
z
cj
)]
pk0
,一共要计算n*k个距离。由于本发明到时候是比较每个用户信息向量到各类中心点间的距离,要选出距离每个用户信息最近的那个中心点,以便于将该用户信息向量划分给距离该点最近的中心点。所以||e
i
||2是相同的,这里可以直接省略。所以有[d(e
i
,z
cj
)]
pk0
=[||z
cj
||2‑
2(e
i
·
z
cj
]
pk0
,由于在paillier中不支持减法和负数运算,在比较距离的,一个数减去x和该数加上(q

x)的相对大小不会改变,q是paillier运算中的模。故上述的计算便可以转化为
[0129][0130]
其中:表示第c
j
类的中心点的第i维数据的平方。e
a
表示用户信息e
i
的第a维数据,a≤n,i≤n。表示两倍的第c
j
类中心点向量的第b维数据,b≤n。q表示paillier算法中的模。
[0131]
2.实验分析有效性:在移动用户和认证服务器的计算成本和通信成本方面,本发明所提出的认证方法是高效的。
[0132]
表1
[0133][0134]
本发明按照生成初始中心点的方式得出了两种不同的结果,第一种生成初始中心点的方式就如上述步骤中所提到的方式,首先表1中的生成初始中心的,是按照一定的规则得到的。该规则为:将每一个用户按照顺序编号,按照顺序将用户分成了五类,在此分类结果上算出初始中心点。凭借着这个初始中心点展开算法。
[0135]
表2
[0136][0137][0138]
表2,是随机选择五个用户信息,直接作为初始中心点的时间。并且重复十次,所得到的的平均的时间的。本发明可以看出不管怎么选取初始中心点,每一轮所需的时间都是可以接受的。
[0139]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献