CN111310817B - 谱聚类方法、装置、系统、计算机设备和存储介质 - Google Patents
谱聚类方法、装置、系统、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111310817B CN111310817B CN202010083854.6A CN202010083854A CN111310817B CN 111310817 B CN111310817 B CN 111310817B CN 202010083854 A CN202010083854 A CN 202010083854A CN 111310817 B CN111310817 B CN 111310817B
- Authority
- CN
- China
- Prior art keywords
- encrypted
- target
- server
- matrix
- similarity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Abstract
本申请涉及一种谱聚类方法、装置、系统、计算机设备和存储介质。该方法包括:将第一加密目标样本集合发送给第二服务器,第一加密目标样本集合中的第一加密目标样本由第一公钥加密得到;接收第二服务器发送的根据第一加密目标样本集合得到的第一加密目标相似度集合;通过第一私钥解密第一加密目标相似度集合中的第一加密目标相似度,得到第一解密目标相似度集合;向协调服务器发送加密后的第一目标拉普拉斯矩阵,第一目标拉普拉斯矩阵根据第一解密目标相似度集合得到;接收协调服务器发送的根据加密后的第一目标拉普拉斯矩阵得到的加密聚类样本集合;基于加密聚类样本集合与第二服务器进行联合聚类。采用本方法能够提高数据的保密性。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种谱聚类方法、装置、系统、计算机设备和存储介质。
背景技术
随着计算机技术的发展以及数据处理技术领域的发展,在很多应用场景下都需要对数据进行聚类分析,并出现了很多聚类算法,例如Mean-Shift聚类算法以及谱聚类算法。由于谱聚类对数据分布的普遍适用性和对数据稀疏性不敏感的特点,已成为了主流聚类算法。
目前,在对数据进行聚类分析之前,首先需要获取大量的有效数据,然而单个数据所有者的数据往往是有限的,要获取大量的数据,通常需要来自于多个数据所有者。
然而,数据往往是保密的,将保密的数据进行聚类分析时,往往会需要将保密的数据提供给他人,使得数据泄露,导致数据保密性低。
发明内容
基于此,有必要针对上述聚类分析中数据泄露的技术问题,提供一种能够提高数据保密性的谱聚类方法、装置、系统、计算机设备和存储介质。
一种谱聚类方法,所述方法包括:获取第一非对称密钥对,所述第一非对称密钥对包括第一公钥以及第一私钥,所述第一非对称密钥对根据同态加密算法得到;将第一加密目标样本集合发送给第二服务器,所述第一加密目标样本集合中的第一加密目标样本根据所述第一公钥对第一目标样本加密得到;接收所述第二服务器发送的第一加密目标相似度集合,所述第一加密目标相似度集合根据第二目标样本集合以及所述第一加密目标样本集合进行相似度计算并进行混淆处理得到;通过所述第一私钥分别对所述第一加密目标相似度集合中的各个第一加密目标相似度进行解密,得到第一解密目标相似度集合;向协调服务器发送加密后的第一目标拉普拉斯矩阵,所述第一目标拉普拉斯矩阵是基于所述第一解密目标相似度集合计算得到的;接收协调服务器发送的加密聚类样本集合,所述加密聚类样本集合根据加密后的第二目标拉普拉斯矩阵以及所述加密后的第一目标拉普拉斯矩阵得到;基于所述加密聚类样本集合与所述第二服务器进行联合聚类。
一种谱聚类系统,所述系统包括第一服务器、第二服务器以及协调服务器:
所述第一服务器,用于获取第一非对称密钥对,所述第一非对称密钥对包括第一公钥以及第一私钥,所述第一非对称密钥对根据同态加密算法得到,将第一加密目标样本集合发送给第二服务器,所述第一加密目标样本集合中的第一加密目标样本根据所述第一公钥对第一目标样本加密得到;所述第二服务器,用于根据第二目标样本集合以及所述第一加密目标样本集合进行相似度计算并进行混淆处理得到第一加密目标相似度集合;所述第一服务器,还用于通过所述第一私钥分别对所述第一加密目标相似度集合中的各个第一加密目标相似度进行解密,得到第一解密目标相似度集合,基于所述第一解密目标相似度集合计算得到第一目标拉普拉斯矩阵,对所述第一目标拉普拉斯矩阵进行加密得到加密后的第一目标拉普拉斯矩阵,向所述协调服务器发送加密后的第一目标拉普拉斯矩阵;所述协调服务器,用于根据加密后的第二目标拉普拉斯矩阵以及所述加密后的第一目标拉普拉斯矩阵得到加密聚类样本集合,将所述加密聚类样本集合发送给所述第一服务器;所述第一服务器,还用于基于所述加密聚类样本集合与所述第二服务器进行联合聚类。
一种谱聚类装置,所述装置包括:第一非对称密钥对获取模块,用于获取第一非对称密钥对,所述第一非对称密钥对包括第一公钥以及第一私钥,所述第一非对称密钥对根据同态加密算法得到;第一加密目标样本集合发送模块,用于将第一加密目标样本集合发送给第二服务器,所述第一加密目标样本集合中的第一加密目标样本根据所述第一公钥对第一目标样本加密得到;第一加密目标相似度集合接收模块,用于接收所述第二服务器发送的第一加密目标相似度集合,所述第一加密目标相似度集合根据第二目标样本集合以及所述第一加密目标样本集合进行相似度计算并进行混淆处理得到;第一解密目标相似度集合得到模块,用于通过所述第一私钥分别对所述第一加密目标相似度集合中的各个第一加密目标相似度进行解密,得到第一解密目标相似度集合;加密后的第一目标拉普拉斯矩阵发送模块,用于向协调服务器发送加密后的第一目标拉普拉斯矩阵,所述第一目标拉普拉斯矩阵是基于所述第一解密目标相似度集合计算得到的;加密聚类样本集合接收模块,用于接收协调服务器发送的加密聚类样本集合,所述加密聚类样本集合根据加密后的第二目标拉普拉斯矩阵以及所述加密后的第一目标拉普拉斯矩阵得到;联合聚类模块,用于基于所述加密聚类样本集合与所述第二服务器进行联合聚类。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述谱聚类方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述谱聚类方法的步骤。
上述谱聚类方法、装置、系统、计算机设备和存储介质,获取第一非对称密钥对,第一非对称密钥对包括第一公钥以及第一私钥,将第一加密目标样本集合发送给第二服务器,接收第二服务器发送的第一加密目标相似度集合,通过第一私钥分别对第一加密目标相似度集合中的各个第一加密目标相似度进行解密,得到第一解密目标相似度集合,向协调服务器发送加密后的第一目标拉普拉斯矩阵,第一目标拉普拉斯矩阵是基于第一解密目标相似度集合计算得到的,接收协调服务器发送的加密聚类样本集合,加密聚类样本集合根据加密后的第二目标拉普拉斯矩阵以及加密后的第一目标拉普拉斯矩阵得到,基于加密聚类样本集合与第二服务器进行联合聚类。由于第一加密目标样本集合中的第一加密目标样本是根据第一公钥对第一目标样本加密得到的,而第二服务器并不知道第一私钥,因此在第二服务器不知道第一服务器的数据的情况下,可以根据第二目标样本集合以及第一加密目标样本集合进行相似度计算并进行混淆处理得到第一加密目标相似度集。另外,由于协调服务器接收到的是加密后的第一目标拉普拉斯矩阵,因此,在协调服务器不知道第一服务器以及第二服务器的数据的情况下完成了聚类,即在完成聚类的同时又保证了数据不被泄露,从而提高了数据的保密性。
附图说明
图1为一些实施例中谱聚类方法的应用场景图;
图2A为一些实施例中谱聚类方法的流程示意图;
图2B为一些实施例中谱聚类方法的原理图;
图3为一些实施例中加密后的第一目标拉普拉斯矩阵的得到步骤的流程示意图;
图4为一些实施例中谱聚类方法的流程示意图;
图5为一些实施例中谱聚类方法的流程示意图;
图6为一些实施例中第一加密目标相似度集合的得到步骤的流程示意图;
图7为一些实施例中谱聚类系统的架构图;
图8为一些实施例中谱聚类装置的结构框图;
图9为一些实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的谱聚类方法,可以应用于如图1所示的应用环境中。该应用环境包括第一服务器102、第二服务器104以及协调服务器106。其中,各个服务器之间通过网络进行通信。第一服务器102以及第二服务器104各自存储的数据是保密的,并且数据之间的特征相同但是数据本身不一定相同。协调服务器106用于协助第一服务器102以及第二服务器104完成谱聚类分析。当利用各个服务器的数据进行谱聚类分析时,需要保证服务器相互之间不能获知对方的数据。并且各个服务器的数据也不能让协调服务器获知,以免数据被泄露。
具体地,第一服务器可以根据同态加密算法生成两对非对称密钥,两对非对称密钥可以分别称为第一非对称密钥以及第二非对称密钥。第一非对称密钥包括第一公钥以及第一私钥。第二非对称密钥包括第二公钥以及第二私钥。第一服务器可以将第一公钥、第二公钥以及第二私钥发送给第二服务器。第一服务器可以生成正价矩阵,并通过第二公钥对正交矩阵进行加密,得到加密正交矩阵,并将正交矩阵发送给第二服务器,将加密正交矩阵发送给协调服务器。第一服务器可以获取存储第一目标样本,并通过第一公钥对第一目标样本进行加密,将加密后的第一目标样本发送给第二服务器,第二服务器可以根据存储的第二目标样本与加密后的第一目标样本进行相似度计算,得到对应的加密相似度,第二服务器可以为对应的加密相似度分别生成混淆码,通过混淆码对加密相似度进行混淆,得到混淆后的加密相似度,并将混淆后的加密相似度发送给第一服务器。第一服务器可以根据第一私钥对混淆后的加密相似度进行解密,得到混淆后的相似度,并根据各个混淆后的相似度,生成第一拉普拉斯矩阵,并通过正交矩阵对第一拉普拉斯矩阵进行加密,将加密后的第一拉普拉斯矩阵发送给协调服务器。第二服务器可以根据各个混淆码生成第二拉普拉斯矩阵,并通过正交矩阵对第二拉普拉斯矩阵进行加密,将加密后的第二拉普拉斯矩阵发送给协调服务器。协调服务器根据加密后的第一拉普拉斯矩阵、加密后的第二拉普拉斯矩阵以及加密正交矩阵进行计算,得到第一服务器以及第二服务器分别对应的新的样本数据,并将新的样本数据发送给对应的服务器。各个服务器通过第二私钥对新的样本数据进行解密,利用解密后的新的样本数据进行聚类分析,得到各个解密后的新的样本数据分别对应的聚类标签,从而确定第一目标样本、以及第二目标样本对应的聚类标签。
需要说明的是,由于第一服务器可以通过存储的第一私钥对加密后的第二目标样本进行解密,得到第二目标样本,使得第二目标样本泄露,因此,第二服务器的数据不发送给第一服务器。
其中,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。第一服务器102以及第二服务器104可以是专门用于存储的数据的服务器,例如数据库服务器。
可以理解,上述应用场景仅是一种示例,并不构成对本申请实施例提供的方法的限定,本申请实施例提供的方法还可以应用在其他场景中,例如,进行谱聚类分析的服务器还有第三服务器,第三服务器可以是一个或者多个。第三服务器可以根据存储的第三目标样本与加密后的第一目标样本进行相似度计算,得到对应的加密相似度。第三服务器可以将加密后的第三目标样本发送给第二服务器,第二服务器可以根据存储的第二目标样本与加密后的第三目标样本进行相似度计算,得到对应的加密相似度。当然,也可以是第二服务器将加密后的第二目标样本发送给第三服务器,由第三服务器计算第三目标样本与加密后的第二目标样本之间的相似度,得到对应的加密相似度。第三服务器可以为对应的加密相似度分别生成混淆码,通过混淆码对加密相似度进行混淆,得到混淆后的加密相似度,并将混淆后的加密相似度发送给第一服务器,将生成的混淆码发送给第二服务器。协调服务器得到第二服务器对应的新的样本数据,并将新的样本数据发送给第三服务器。第三服务器通过第二私钥对新的样本数据进行解密,利用解密后的新的样本数据与其他服务器进行聚类分析,得到各个解密后的新的样本数据分别对应的聚类标签,从而确定第三目标样本对应的聚类标签。其中,第三目标样本是根据第三服务器拥有的用于与其他服务器进行谱聚类的数据得到的。第三目标样本可以为第三服务器拥有的用于与其他服务器进行谱聚类的数据,也可以是对第三服务器拥有的用于与其他服务器进行谱聚类的数据进行离散化得到的。
在一些实施例中,如图2A所示,提供了一种谱聚类方法,以该方法应用于图1中的第一服务器102为例进行说明,包括以下步骤:
S202,获取第一非对称密钥对,第一非对称密钥对包括第一公钥以及第一私钥,第一非对称密钥对根据同态加密算法得到。
具体地,非对称密钥对中的公钥与私钥不相同,并且不能根据公钥推导出私钥。可以通过第一公钥对数据进行加密,得到加密后的数据,可以通过第一私钥对加密后的数据进行解密得到该数据。对经过第一公钥加密的数据进行处理得到一个结果,利用第一私钥对得到的结果进行解密,解密得到的结果与用同一方法处理未加密的数据得到的结果相同。
在一些实施例中,同态加密算法包括加法同态加密算法以及乘法同态加密算法。如E(X+Y)=E(X)⊕E(Y)或者X+Y=D(E(X)⊕E(Y))成立,并且不泄漏X和Y,则称加法同态加密算法;如果E(XY)=E(X)⊕E(Y)或者XY=D(E(X)⊕E(Y))成立,并且不泄漏X和Y,则称为乘法同态加密算法。其中,⊕为密文相关的运算符,E是加密算法,D是解密算法。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。如图2B所示,(pk1,sk1)表示第一服务器生成的第一非对称密钥对,其中,pk1表示第一公钥,sk1表示第一私钥。
在一些实施例中,第一服务器可以利用同态加密算法Paillier生成第一非对称密钥对。Paillier加密算法满足加法同态和乘法同态,其主要算法为:随机选择两个大质数p和q,并且p和q满足gcd(pq,(p-1)(q-1))=1,该公式用于保证两个质数长度相等。gcd为最大公约数函数。计算n1=pq和λ=lcm(p-1,q-1)。lcm为最小公倍数函数。选择随机整数g,使得满足n1整除g的阶。公钥为(n1,g),私钥为λ。加密时选择随机数r1,计算明文m的密文c为:其中,表示0到n范围内与n互质的整数。解密公式为:其中,mod为求余函数,对于任意的α,
在一些实施例中,第一服务器将第一公钥发送给第二服务器以及第三服务器,以使得第二服务器可以根据第一公钥对第二目标样本进行加密,得到第二加密目标样本,并且使得第三服务器可以根据第一公钥对第三目标样本进行加密,得到第三加密目标样本。如图2B所示,第一服务器将pk1发送给了第二服务器以及第三服务器。需要说明的是,如果服务器不需要向其他的服务器发送加密目标样本,则可以不执行利用第一公钥加密目标样本生成加密目标样本的步骤。
S204,将第一加密目标样本集合发送给第二服务器,第一加密目标样本集合中的第一加密目标样本根据第一公钥对第一目标样本加密得到。
具体地,第一目标样本是根据第一服务器拥有的用于与其他服务器进行谱聚类的数据得到的。第一目标样本可以为第一服务器拥有的用于与其他服务器进行谱聚类的数据,也可以是对第一服务器拥有的用于与其他服务器进行谱聚类的数据进行离散化得到的。例如,第一服务器拥有的用于与其他服务器进行谱聚类的数据为[-0.2,-0.9],则通过对数据乘上一个整数,例如10,则可以的到离散化后的数据[-2,-9],将[-2,-9]作为第一目标样本。如图2B所示,第一服务器根据第一公钥pk1对第一目标样本进行加密,将得到的第一加密目标样本发送给第二服务器以及第三服务器,第二服务器可以利用pk1对第二目标样本进行加密,得到第二加密目标样本,第三服务器可以利用pk1对第三目标样本进行加密,得到第三加密目标样本。第一加密目标样本集合是由各个第一加密目标样本组成的集合。
在一些实施例中,可以预先对各个目标样本设置对应的样本编号。样本编号用于唯一识别一个目标样本。例如,假设第一服务器、第二服务器以及第三服务器分别对应有2个目标样本,则可以将第一服务器对应的2个第一目标样本的样本编号分别设置为1和2,将第二服务器对应的2个第二目标样本的样本编号分别设置为3和4,将第三服务器对应的2个第三目标样本的样本编号分别设置为5和6。下面将样本编号为n的目标样本称为目标样本n。第一服务器可以将目标样本1以及目标样本2进行加密,得到加密目标样本1以及加密目标样本2,将加密目标样本1以及加密目标样本2发送给第二服务器以及第三服务器。
S206,接收第二服务器发送的第一加密目标相似度集合,第一加密目标相似度集合根据第二目标样本集合以及第一加密目标样本集合进行相似度计算并进行混淆处理得到。
具体地,第二目标样本集合包括至少一个第二目标样本。第二目标样本是根据第二服务器拥有的用于与其他服务器进行谱聚类的数据得到的。第二目标样本可以为第二服务器拥有的用于与其他服务器进行谱聚类的数据,也可以是对第二服务器拥有的用于与其他服务器进行谱聚类的数据进行离散化得到的。第一加密目标样本集合是由各个第一加密目标样本组成的集合。相似度用于表示样本之间的相似程度,相似度越大,样本之间的相似程度越大,被划分为相同聚类类别的可能性越大。由于第一加密目标样本是加密的,因此计算得到的相似度也是加密的,可以将加密样本与未加密样本计算得到的相似度称为加密相似度。如图2B所示,[x]表示加密相似度,x表示未加密的相似度。第一加密目标相似度集合是由各个第一加密目标相似度组成的集合。
在一些实施例中,第一加密目标相似度可以是根据第一加密目标样本以及第二目标样本进行相似度计算并进行混淆处理得到的。当第二服务器接收到第一加密目标样本集合时,可以获取所属的各个第二目标样本,分别计算各个第二目标样本与各个第一加密目标样本之间的加密相似度,并为各个加密相似度生成对应的混淆码,通过混淆码对对应的加密相似度进行混淆,得到根据第一加密目标样本与第二目标样本得到的混淆加密相似度,将得到的混淆加密相似度作为第一加密目标相似度。其中,混淆码可以为随机正整数。如图2B所示,r表示混淆码,[x+r]表示混淆加密相似度,其中,第二服务器生成的[x+r]表示第一加密目标相似度。例如,第二服务器可以计算得到加密目标样本1与目标样本3的加密相似度:[x13]、加密目标样本1与目标样本4的加密相似度:[x14]、目标样本2与目标样本3的加密相似度:[x23]以及加密目标样本2与目标样本4的加密相似度:[x24],并为[x13]生成混淆码r13、[x14]生成混淆码r14、[x23]生成混淆码r23以及[x24]生成混淆码r24,从而得到混淆加密相似度[x13+r13]、[x14+r14]、[x23+r23]以及[x24+r24],将[x13+r13]、[x14+r14]、[x23+r23]以及[x24+r24]分别作为第一加密目标相似度。
在一些实施例中,第一加密目标相似度可以是对不同样本编号的第二目标样本之间的相似度进行混淆处理后得到的。例如,第一加密目标相似度可以是目标样本3与目标样本4的混淆加密相似度:[x34+r34]。
在一些实施例中,第一加密目标相似度可以是根据第一加密目标样本、第二目标样本以及第三加密目标样本计算得到。第三服务器可以将各个第三加密目标样本发送给第二服务器。第二服务器可以分别计算各个第二目标样本与各个第三加密目标样本之间的加密相似度,并对各个加密相似度进行混淆,得到根据第三加密目标样本与第二目标样本得到的混淆加密相似度,将根据第一加密目标样本与第二目标样本得到的混淆加密相似度、以及根据第三加密目标样本与第二目标样本得到的混淆加密相似度,将得到的混淆加密相似度作为第一加密目标相似度。例如,第三服务器可以对目标样本5以及目标样本6进行加密,得到加密目标样本5以及加密目标样本6,将加密目标样本5以及加密目标样本6发送给第二服务器。第二服务器可以计算加密目标样本5与目标样本3的加密相似度:[x53]、加密目标样本5与目标样本4的加密相似度:[x54]、加密目标样本6与目标样本3的加密相似度:[x63]以及加密目标样本6与目标样本4的加密相似度:[x64],并为[x53]生成混淆码r53、[x54]生成混淆码r54、[x63]生成混淆码r63以及[x64]生成混淆码r64,从而得到混淆加密相似度[x53+r53]、[x54+r54]、[x63+r63]以及[x64+r64],将[x53+r53]、[x54+r54]、[x63+r63]以及[x64+r64]分别作为第一加密目标相似度。
在一些实施例中,第三服务器可以计算各个第一加密目标样本与各个第三目标样本之间的加密相似度以及不同样本编号的第三目标样本之间的加密相似度,采用上述相同的方法,生成对应的混淆加密相似度,并将混淆加密相似度发送给第一服务器。如图2B所示,第三服务器将混淆加密相似度[x+r]发送给第一服务器。
S208,通过第一私钥分别对第一加密目标相似度集合中的各个第一加密目标相似度进行解密,得到第一解密目标相似度集合。
具体地,第一解密目标相似度集合是由各个第一解密目标相似度组成的集合。第一解密目标相似度指的是未加密的相似度被混淆后的结果。第一服务器可以通过第一私钥对第一加密目标相似度进行解密,得到未加密的相似度被混淆后的结果,即得到第一解密目标相似度。如图2B所示,第一加密目标相似度[x+r]是通过混淆码r对第一公钥pk1加密相似度[x]混淆得到的,则可以通过第一私钥sk1对[x+r]进行解密,得到未加密的相似度被混淆后的结果:x+r,即x+r表示第一解密目标相似度。
由于第一服务器拥有第一私钥,因此,如果其他服务器直接将加密相似度发送给第一服务器,那么第一服务器就可以利用第一私钥对加密相似度进行解密,得到未加密的相似度。由于未加密的相似度与各个服务器所属的目标样本相关性很大,从而第一服务器可以间接的获取其他服务器的数据,使得数据泄露。因此,将加密相似度进行混淆后再发送给第一服务器,使得第一服务器解密得到的是混淆后的未加密的相似度,并不能得到未加密的相似度,从而防止了数据的泄露,提高了数据的保密性。
S210,向协调服务器发送加密后的第一目标拉普拉斯矩阵,第一目标拉普拉斯矩阵是基于第一解密目标相似度集合计算得到的。
具体地,加密后的第一目标拉普拉斯矩阵是对第一目标拉普拉斯矩阵加密得到的。第一服务器可以根据第一解密目标相似度集合中的各个第一解密目标相似度生成对应的矩阵,例如,可以将各个第一解密目标相似度按照预先设置的顺序填充到矩阵中,生成对应的矩阵。其中,预先设置的顺序可以是根据得到第一解密目标相似度所用到的目标样本的样本编号确定的。第一服务器可以对生成的矩阵进行转换,根据转换后的矩阵生成第一目标拉普拉斯矩阵。
在一些实施例中,第一目标拉普拉斯矩阵是根据第一解密目标相似度集合以及第二解密目标相似度集合计算得到的。其中,第二解密目标相似度集合中的第二解密目标相似度是对接收到的第三服务器发送的混淆加密相似进行解密得到的。第一服务器可以根据各个第一解密目标相似度以及各个第二解密目标相似度生成对应的矩阵,并对生成的矩阵进行转换,根据转换后的矩阵生成第一目标拉普拉斯矩阵。另外,第一服务器可以计算不同样本编号的第一目标样本之间的相似度,以及相同样本编号的第一目标样本之间的相似度,根据生成的各个相似度、各个第一解密目标相似度以及各个第二解密目标相似度生成对应的矩阵,并对生成的矩阵进行转换,根据转换后的矩阵生成第一目标拉普拉斯矩阵。如图2B所示,L1表示第一目标拉普拉斯矩阵,第一服务器利用各个x+r构造第一目标拉普拉斯矩阵L1。
在一些实施例中,第一服务器可以通过特定的矩阵对第一目标拉普拉斯矩阵进行加密,得到加密后的第一目标拉普拉斯矩阵。其中,特定的矩阵例如可以是正交矩阵。加密的方法例如可以是:加密后的第一目标拉普拉斯矩阵=正交矩阵×第一目标拉普拉斯矩阵×正交矩阵的转置。
S212,接收协调服务器发送的加密聚类样本集合,加密聚类样本集合根据加密后的第二目标拉普拉斯矩阵以及加密后的第一目标拉普拉斯矩阵得到。
具体地,加密聚类样本集合是由加密聚类样本组成的集合,加密聚类样本可以是利用加密后的第一目标拉普拉斯矩阵与加密后的第二目标拉普拉斯矩阵相减后得到的矩阵得到的。第一服务器、第二服务器以及第三服务器均可以接收到对应的加密聚类样本。
在一些实施例中,加密后的第二目标拉普拉斯矩阵是根据混淆码生成的。具体地,第一服务器以及第三服务器可以将生成的混淆码发送给第二服务器,其中,第一服务器生成的是第一目标样本之间的相似度对应的混淆码,例如目标样本1与目标样本2的相似度对应的混淆码。如图2B所示,第一服务器以及第三服务器将混淆码r发送给第二服务器。第二服务器可以根据接收到的混淆码以及本地生成的混淆码,得到第二目标拉普拉斯矩阵,并对第二目标拉普拉斯矩阵进行加密,得到加密后的第二目标拉普拉斯矩阵。
在一些实施例中,加密后的第二目标拉普拉斯矩阵是利用第一服务器生成的正交矩阵对第二目标拉普拉斯矩阵进行加密得到的。具体地,第一服务器可以将生成的正交矩阵发送给第二服务器,第二服务器将第二目标拉普拉斯矩阵与正交矩阵以及该正交矩阵对应的转置矩阵进行矩阵相乘,得到加密后的第二目标拉普拉斯矩阵。如图2B所示,L′2表示加密后的第二目标拉普拉斯矩阵,P表示第一服务器生成的正交矩阵,第一服务器将正交矩阵P发送给第二服务器,第二服务器通过正交矩阵P对第二目标拉普拉斯矩阵L2加密,得到加密后的第二目标拉普拉斯矩阵L′2=PL2PT。其中,PT表示正交矩阵P的转置矩阵。
S214,基于加密聚类样本集合与第二服务器进行联合聚类。
具体地,联合聚类指的是多个服务器数据共同进行聚类。协调服务器可以将属于第二服务器的各个加密聚类样本发送给第二服务器,将属于第三服务器的各个加密聚类样本发送给第三服务器,从而各个服务器均具有对应的加密聚类样本。第一服务器、第二服务器以及第三服务器可以对加密聚类样本进行解密,得到各个解密后的聚类样本,通过各个解密后的聚类样本进行联合聚类。
在一些实施例中,可以通过特定的聚类算法实现联合聚类。其中,特定的聚类算法例如可以是隐私保护的k-means。如图2B所示,第一服务器、第二服务器以及第三服务器通过联合的隐私保护的k-means进行联合聚类。
上述谱聚类方法中,获取第一非对称密钥对,第一非对称密钥对包括第一公钥以及第一私钥,将第一加密目标样本集合发送给第二服务器,接收第二服务器发送的第一加密目标相似度集合,通过第一私钥分别对第一加密目标相似度集合中的各个第一加密目标相似度进行解密,得到第一解密目标相似度集合,向协调服务器发送加密后的第一目标拉普拉斯矩阵,第一目标拉普拉斯矩阵是基于第一解密目标相似度集合计算得到的,接收协调服务器发送的加密聚类样本集合,加密聚类样本集合根据加密后的第二目标拉普拉斯矩阵以及加密后的第一目标拉普拉斯矩阵得到,基于加密聚类样本集合与第二服务器进行联合聚类。由于第一加密目标样本集合中的第一加密目标样本是根据第一公钥对第一目标样本加密得到的,而第二服务器并不知道第一私钥,因此在第二服务器不知道第一服务器的数据的情况下,可以根据第二目标样本集合以及第一加密目标样本集合进行相似度计算并进行混淆处理得到第一加密目标相似度集。另外,由于协调服务器接收到的是加密后的第一目标拉普拉斯矩阵,因此,在协调服务器不知道第一服务器以及第二服务器的数据的情况下完成了聚类,即在完成聚类的同时又保证了数据不被泄露,从而提高了数据的保密性。
在一些实施例中,如图3所示,得到加密后的第一目标拉普拉斯矩阵的步骤包括:
S302,将第一解密目标相似度集合中的各个第一解密目标相似度作为矩阵中的值,得到第一解密目标相似度矩阵。
具体地,若参与聚类分析的目标样本的总数为N,则第一解密目标相似度矩阵是N×N的矩阵。
在一些实施例中,可以预先设置各个第一解密目标相似度在矩阵中分别对应的预设位置,按照预设位置将对应的第一解密目标相似度填充到矩阵中,得到第一解密目标相似度矩阵。其中,预设位置可以根据得到第一解密目标相似度所用到的目标样本的样本编号确定。例如,第一加密目标相似度[x13+r13]的第一解密目标相似度可以表示为x13+r13,x13+r13是目标样本1以及目标样本3得到的,因此,可以将x13+r13在矩阵中的位置设为第1行第3列。因此,得到的第一解密目标相似度矩阵可以表示为:
其中,第a行第b列的xab与第b行第a列的xba相同,第a行第b列的rab与第b行第a列的rba相同。由于第一解密目标相似度矩阵对角线上的数据是目标样本与其自身的相似度得到的,因此,对角线上的值是相同的,并且由于目标样本与其自身的相似度是100%的,因此可以不需要对目标样本与其自身的相似度进行混淆等处理,可以直接将解密目标相似度设置为预设值,预设值例如为0。具体地,可以将目标样本自身的加密目标相似度对应的解密目标相似度设置为预设值。例如,可以将第一解密目标相似度矩阵对角线上的值设置为预设值。
S304,根据第一解密目标相似度矩阵进行计算,得到第一目标拉普拉斯矩阵。
具体地,当第一解密目标相似度矩阵是N×N的矩阵,第一目标拉普拉斯矩阵也是N×N的矩阵。可以将第一解密目标相似度矩阵中的第a行数据的和填充到N×N矩阵的第a行第a列,将第一解密目标相似度矩阵中第a行第b列的数据的相反数填充到N×N矩阵中第a行第b列,将填充后的N×N矩阵作为第一目标拉普拉斯矩阵。例如,第一目标拉普拉斯矩阵L1可以表示为:
第二目标拉普拉斯矩阵与第一目标拉普拉斯矩阵得到的方式相似,则对应的第二目标拉普拉斯矩阵L2可以表示为:
S306,获取正交矩阵对应的转置矩阵。
具体地,对于M阶实矩阵A,若AAT=E(E为单位矩阵,AT表示矩阵A的转置矩阵)或ATA=E,则矩阵A称为正交矩阵。正交矩阵可以是第一服务器生成的。
S308,将第一目标拉普拉斯矩阵与正交矩阵以及转置矩阵进行矩阵相乘,得到加密后的第一目标拉普拉斯矩阵。
具体地,如图2B所示,L′1表示加密后的第一目标拉普拉斯矩阵,第一服务器通过正交矩阵P对第一目标拉普拉斯矩阵L1加密,得到加密后的第一目标拉普拉斯矩阵L′1=PL1PT。
上述本申请实施例中,通过正交矩阵对第一目标拉普拉斯矩阵进行加密,得到加密后的第一目标拉普拉斯矩阵,使得协调服务器在得到加密后的第一目标拉普拉斯矩阵以及加密后的第二目标拉普拉斯矩阵时,并不能通过计算得到未加密的相似度,由于未加密的相似度与样本数据相关,因此协调服务器并不能得到与样本数据相关的数据,从而提高了数据的保密性。
在一些实施例中,如图4所示,该方法还包括:
S402,通过第二非对称密钥对中的第二公钥对正交矩阵进行加密,得到加密正交矩阵。
具体地,第二非对称密钥对的生成方法参考第一非对称密钥对的生成方法。第二非对称密钥包括第二公钥以及第二私钥,可以通过第二公钥对正交矩阵进行加密,得到加密正交矩阵。如图2B所示,第一服务器利用第二公钥pk2对正交矩阵P进行加密得到加密正交矩阵[P]。当对加密正交矩阵进行处理,得到处理后的加密正交矩阵时,可以使用第二私钥对处理后的加密正交矩阵进行解密,得到对正交矩阵进行相同的处理后的结果。
S404,将加密正交矩阵发送给协调服务器,以使得协调服务器根据加密正交矩阵以及差异矩阵进行计算,得到加密聚类样本集合,差异矩阵根据加密后的第一目标拉普拉斯矩阵与加密后的第二目标拉普拉斯矩阵的差异得到。
具体地,第一服务器可以将加密后的第一目标拉普拉斯矩阵发送给协调服务器,第二服务器可以将加密后的第二目标拉普拉斯矩阵发送给协调服务器。如图2B所示,第一服务器将L′1发送给协调服务器,第二服务器将L′2发送给协调服务器。协调服务器可以根据加密后的第一目标拉普拉斯矩阵以及加密后的第二目标拉普拉斯矩阵进行矩阵相减,得到差异矩阵。
在一些实施例中,差异矩阵可以是加密后的第一目标拉普拉斯矩阵减去加密后的第二目标拉普拉斯矩阵后得到的矩阵。如图2B所示,L′=L′1-L′2表示差异矩阵。
在一些实施例中,协调服务器可以计算差异矩阵的各个特征值,得到特征值集合,从特征值集合中选取至少一个的特定的特征值,计算各个特定的特征值分别对应的特征向量,将计算出的各个特征向量作为矩阵的列向量,得到特征向量矩阵。根据特征向量矩阵,得到加密聚类样本集合中的各个加密聚类样本。其中,特征向量为具有N行的列向量。例如,协调服务器可以将特征值集合中的特征值从小到大排序,取前k个特征值(以下称作前小特征值),作为特定的特征值,并根据前小特征值对应的特征向量得到特征向量矩阵,其中,k大于等于1。特征向量矩阵的大小为N×k。如图2B所示,协调服务器计算L′=L′1-L′2的前小特征值对应的特征向量,组成的特征向量矩阵Q′。
在一些实施例中,协调服务器可以通过加密正交矩阵的转置矩阵对特征向量矩阵进行加密,得到加密特征向量矩阵,将加密特征向量矩阵中的各个行分别作为与各个服务器对应的加密聚类样本。如图2B所示,第一服务器将加密正交矩阵[P]发送给协调服务器,协调服务器将加密正交矩阵[P]对应的转置矩阵[P]T与特征向量矩阵Q′进行矩阵相乘,得到[Q]=[P]TQ′,其中[Q]表示用第二公钥pk2对Q加密得到的加密特征向量矩阵,[Q]中的每一行表示一个加密聚类样本。Q表示L=L1-L2的前小特征值对应的特征向量组成的矩阵,Q中的每一行表示一个解密后的聚类样本。由于加密正交矩阵的转置矩阵与特征向量矩阵进行矩阵相乘时需要用到第二公钥,因此,第一服务器可以将第二公钥发送给协调服务器。如图2B所示,第一服务器将第二公钥pk2发送给协调服务器。另外,加密特征向量矩阵中的每一行对应一个目标样本与其他目标样本的相似度,例如加密特征向量矩阵中的第一行对应目标样本1与其他目标样本的相似度。协调服务器可以存储样本编号,以及样本编号标识的目标样本所属于的服务器。从而,协调服务器可以根据样本编号以及样本编号标识的目标样本所属于的服务器,确定加密特征向量矩阵中每一行数据对应的服务器,将加密特征向量矩阵中的行数据作为加密聚类样本发送给对应的服务器。如图2B所示,协调服务器确定[Q]中每一行数据对应的服务器,将[Q]中每一行数据作为加密聚类样本发送给对应的服务器。例如,若协调服务器中存储有“目标样本1对应的服务器为第一服务器”,则可以将加密特征向量矩阵中的每一行作为加密聚类样本发送给第一服务器。
上述本申请实施例中,第一服务器发送给协调服务器加密正交矩阵,而不发送正交矩阵,可以避免协调服务器获知目标样本的相关数据,提高了目标样本的保密性。原因如下所述:根据矩阵的性质,可以得出Q=PTQ′,如果第一服务器发送给协调服务器的不是加密正交矩阵,而是正交矩阵,则协调服务器可以根据Q=PTQ′得到Q。然而,Q中的数据与目标样本的相关度很大,若协调服务器可以获取Q,则可以间接的获取目标样本或者目标样本的相关信息,从而使得目标样本的保密性降低。
在一些实施例中,如图5所示,步骤S214即基于加密聚类样本集合与第二服务器进行联合聚类包括:
S502,利用第二非对称密钥中的第二私钥分别对加密聚类样本集合中的加密聚类样本进行解密,得到各个加密聚类样本分别对应的解密聚类样本。
具体地,解密聚类样本指的是利用第二私钥对加密聚类样本解密得到的样本。由于加密聚类样本集合是由加密正交矩阵加密得到的,而加密正交矩阵是由第二非对称密钥中的第二公钥加密的,因此,加密聚类样本集合中的各个加密聚类样本均可以理解为由第二公钥加密,从而可以通过第二私钥对加密聚类样本进行解密,得到各个加密聚类样本分别对应的解密聚类样本。第一服务器可以将第二私钥发送给第二服务器以及第三服务器,使得第二服务器以及第三服务器可以通过第二私钥解密对应的加密聚类样本,从而得到对应的解密聚类样本。如图2B所示,第一服务器将第二私钥sk2发送给第二服务器以及第三服务器,各个服务器通过第二私钥sk2对加密聚类样本进行解密,得到未加密的样本,即解密聚类样本。需要说明的是,加密聚类样本是加密的,不能用于聚类分析,而解密聚类样本是未加密的样本,可以用于聚类分析。因此,需要对加密聚类样本进行解密得到解密聚类样本。由于在利用第二私钥对加密聚类样本进行解密的过程中需要用到第二公钥,因此第一服务器可以将第二公钥发送给第二服务器以及第三服务器。如图2B所示,第一服务器将第二公钥pk2发送给第二服务器以及第三服务器。
S504,根据各个解密聚类样本与第二服务器进行联合聚类。
具体地,各个服务器均可以对接收到的加密聚类样本进行解密,得到对应的解密聚类样本。第一服务器可以利用得到的各个解密聚类样本与第二服务器以及第三服务器得到的各个解密聚类样本进行联合聚类。
用一个例子来说明联合聚类的过程:假设第一服务器、第二服务器以及第三服务器用于谱聚类的数据均为50个来自于样本个数为150的iris数据集的样本,并且各个服务器的样本不重复,即服务器的样本组合起来可以得到iris数据集。则联合聚类的结果与单独对iris数据集进行谱聚类的结果相似。其中,iris数据集中的每个样本拥有4个浮点数属性,一个浮点数属性对应一个数据值。具体地,第一服务器使用同态加密方案创建两份密钥对(pk1,sk1)以及(pk2,sk2),将pk1以及(pk2,sk2)发送给第二服务器以及第三服务器。各个服务器将拥有的50个样本进行标准化,得到标准化后的样本,利用pk1对标准化后的样本中的4个属性对应的值分别进行加密,得到加密后的样本,将加密后的样本发送给对应的服务器,例如,第一服务器将加密后的样本发送给第二服务器以及第三服务器。接收到其他服务器发送的加密后的样本后,服务器可以利用余弦相似度公式计算接收到的加密后的样本与服务器自身拥有的标准化后的样本之间的加密相似度[x]。比如,第一服务器拥有样本编号为1的样本,简称为样本1,第二服务器拥有样本编号为51的样本,简称为样本51,第一服务器将加密后的样本1发送给第二服务器,第二服务器可以计算加密后的样本1与样本51的余弦相似度,得到样本1与样本51的余弦相似度对应的加密相似度。第一服务器以及第三服务器将生成的混淆码r发送给第二服务器,第二服务器以及第三服务器将生成的混淆加密相似度[x+r]发送第一服务器。第一服务器通过sk1解密[x+r]得到x+r,并将各个接收到的x+r以及本地生成的x+r分别作为矩阵的值,生成150×150的第一解密目标相似度矩阵,并计算得到第一解密目标相似度矩阵对应的第一目标拉普拉斯矩阵L1。第三服务器将接收到的混淆码r以及本地生成的混淆码r作为矩阵的值,生成150×150的第二解密目标相似度矩阵,并计算得到第二解密目标相似度矩阵对应的第二目标拉普拉斯矩阵L2。一个混淆加密相似度对应一个混淆码,x+r在第一解密目标相似度矩阵中的位置与对应的r在第二解密目标相似度矩阵中的位置相同。第一服务器以及第二服务器分别使用正交矩阵P对第一目标拉普拉斯矩阵L1以及第二目标拉普拉斯矩阵L2进行加密,得到加密后的第一目标拉普拉斯矩阵L′1以及加密后的第二目标拉普拉斯矩阵L′2,并将L′1以及L′2发送给协调服务器。协调服务器利用L′=L′1-L′2的前3个最小特征值对应的特征向量组合得到150×3的特征向量矩阵Q′,并得到[Q]=[P]TQ′。协调服务器将[Q]每行作为加密聚类样本发送给对应的服务器。比如[Q]中第一行在第一解密目标相似度矩阵中是样本1与其他样本的相似度,并且第一服务器拥有样本1,则将[Q]中第一行数据发送给第一服务器。各个服务器接收到对应的加密聚类样本后,利用sk2解密加密聚类样本得到解密后的聚类样本。各个服务器对解密后的聚类样本进行联合k-means后得到对应的聚类标签。具体方法如下:各个服务器统一初始化相同的类簇中心Cj,j=1,2,3;各服务器重复不断更新类簇中心直到类簇中心不再发生变化。当类簇中心不再发生变化时,可以得出每个样本所属类簇,即得到最终的联合k-means聚类结果,其结果即为iris数据集样本分散在3个服务器上进行的聚类的结果。联合k-means中更新类簇中心的方法例如为:各个服务器利用样本与类簇中心的欧式距离统计样本属于类簇j的个数dj以及属于类簇j的样本的和sj,第一服务器生成随机数se1以及de1,并将se1以及de1发送到第t服务器,t=2,3。第t服务器计算得到set=sj+set-1以及det=dj+det-1,并将set以及det发送到第t+1服务器,当t+1>3时,则发送到第1服务器。第一服务器可以利用以下公式更新类簇中心Cj:
上述本申请实施例中,利用第二私钥对加密聚类样本进行解密,得到解密聚类样本,由于加密聚类样本是加密的,因此不能反映未加密的相似度,因此,协调服务器并不能根据加密聚类样本推测出未加密的相似度,更不能推测出目标样本的相关信息,从而提高了数据的保密性。然而,由于加密聚类样本不能反映未加密的相似度,则加密聚类样本不能用于聚类分析,需要对加密聚类样本进行解密,用解密聚类样本进行聚类,因此,第一服务器将第二私钥发送给第二服务器以及第三服务器,使得第二服务器以及第三服务器可以通过第二私钥解密对应的加密聚类样本,从而得到对应的解密聚类样本,使用解密聚类样本进行聚类。从而实现了在不泄漏样本数据的前提下,使得各个服务器得到了用于聚类的样本数据。
在一些实施例中,如图6所示,第二服务器得到第一加密目标相似度集合的步骤包括:
S602,分别计算第二目标样本集合中的各个第二目标样本与各个第一加密目标样本集合中的各个第一加密目标样本之间的加密余弦相似度。
具体地,加密余弦相似度指的是一个加密样本与一个不加密样本之间的余弦相似度。加密余弦相似度用于表示样本间的加密相似度。其中,余弦相似度的计算公式为:其中,cos(θ)表示余弦相似度;A·B表示样本A与样本B的点积,||A||||B||表示样本A的大小与样本B的大小的相乘。另外,可以将样本进行标准化,得到标准化(归一化)后的样本,计算标准化后的样本之间的点积,得到对应的余弦相似度。例如,假设第一服务器所属的标准化的目标样本1为(A1,A2,A3,A4),加密目标样本1为([A1],[A2],[A3],[A4])第二服务器所属的标准化的目标样本3为(B1,B2,B3,B4),则加密目标样本1与目标样本3之间的加密余弦相似度为[x]=[A1]*B1+[A2]*B2+[A3]*B3+[A4]*B4,其中,“*”和“+”代表Paillier的乘法和加法操作,并不是四则运算中的乘法和加法。
S604,获取各个加密余弦相似度分别对应的混淆码。
S606,通过混淆码对对应的加密余弦相似度进行混淆,得到混淆后的加密余弦相似度,将混淆后的加密余弦相似度组成的集合作为第一加密目标相似度集合。
上述本申请实施例中,通过余弦相似度计算公式,可以快速的计算出样本间的加密余弦相似度,通过混淆码对对应的加密余弦相似度进行混淆,得到混淆后的加密余弦相似度,由于混淆后的加密余弦相似度与加密余弦相似度不同,不能对混淆后的加密余弦相似度进行解密得到未加密的余弦相似度。因此,虽然第一服务器存储有第一私钥,也不能对混淆后的加密余弦相似度进行解密得到未加密的余弦相似度,从而也不能推断出其它服务器的样本数据,从而提高了数据的保密性。
在一些实施例中,方法还包括:将正交矩阵发送给第二服务器,以使得第二服务器执行以下步骤:将各个混淆码作为矩阵中的值,得到混淆码矩阵;根据混淆码矩阵进行计算,得到第二目标拉普拉斯矩阵;将第二目标拉普拉斯矩阵与正交矩阵以及正交矩阵对应的转置矩阵进行矩阵相乘,得到加密后的第二目标拉普拉斯矩阵。
上述本申请实施例中,根据混淆码得到加密后的第二目标拉普拉斯矩阵,因此可以将加密后的第二目标拉普拉斯矩阵发送给协调服务器,使得协调服务器将接收到的加密后的第一目标拉普拉斯矩阵与加密后的第二目标拉普拉斯矩阵进行矩阵相减,得到不包括混淆码相关的信息,只包括相似度相关的信息,以便于得到加密聚类样本。
应该理解的是,虽然上述各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各实施例的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一些实施例中,如图7所示,提供了一种谱聚类系统,该系统包括第一服务器、第二服务器以及协调服务器,其中:第一服务器,用于获取第一非对称密钥对,第一非对称密钥对包括第一公钥以及第一私钥,第一非对称密钥对根据同态加密算法得到,将第一加密目标样本集合发送给第二服务器,第一加密目标样本集合中的第一加密目标样本根据第一公钥对第一目标样本加密得到。第二服务器,用于根据第二目标样本集合以及第一加密目标样本集合进行相似度计算并进行混淆处理得到第一加密目标相似度集合。第一服务器,还用于通过第一私钥分别对第一加密目标相似度集合中的各个第一加密目标相似度进行解密,得到第一解密目标相似度集合,基于第一解密目标相似度集合计算得到第一目标拉普拉斯矩阵,对第一目标拉普拉斯矩阵进行加密得到加密后的第一目标拉普拉斯矩阵,向协调服务器发送加密后的第一目标拉普拉斯矩阵。协调服务器,用于根据加密后的第二目标拉普拉斯矩阵以及加密后的第一目标拉普拉斯矩阵得到加密聚类样本集合,将加密聚类样本集合发送给第一服务器。第一服务器,还用于基于加密聚类样本集合与第二服务器进行联合聚类。
在一些实施例中,如图8所示,提供了一种谱聚类装置,包括:第一非对称密钥对获取模块802、第一加密目标样本集合发送模块804、第一加密目标相似度集合接收模块806、第一解密目标相似度集合得到模块808、加密后的第一目标拉普拉斯矩阵发送模块810、加密聚类样本集合接收模块812和联合聚类模块814,其中:第一非对称密钥对获取模块802,用于获取第一非对称密钥对,第一非对称密钥对包括第一公钥以及第一私钥,第一非对称密钥对根据同态加密算法得到。第一加密目标样本集合发送模块804,用于将第一加密目标样本集合发送给第二服务器,第一加密目标样本集合中的第一加密目标样本根据第一公钥对第一目标样本加密得到。第一加密目标相似度集合接收模块806,用于接收第二服务器发送的第一加密目标相似度集合,第一加密目标相似度集合根据第二目标样本集合以及第一加密目标样本集合进行相似度计算并进行混淆处理得到。第一解密目标相似度集合得到模块808,用于通过第一私钥分别对第一加密目标相似度集合中的各个第一加密目标相似度进行解密,得到第一解密目标相似度集合。加密后的第一目标拉普拉斯矩阵发送模块810,用于向协调服务器发送加密后的第一目标拉普拉斯矩阵,第一目标拉普拉斯矩阵是基于第一解密目标相似度集合计算得到的。加密聚类样本集合接收模块812,用于接收协调服务器发送的加密聚类样本集合,加密聚类样本集合根据加密后的第二目标拉普拉斯矩阵以及加密后的第一目标拉普拉斯矩阵得到。联合聚类模块814,用于基于加密聚类样本集合与第二服务器进行联合聚类。
在一些实施例中,该装置还包括加密后的第一目标拉普拉斯矩阵的得到模块,加密后的第一目标拉普拉斯矩阵的得到模块包括:第一解密目标相似度矩阵得到单元,用于将第一解密目标相似度集合中的各个第一解密目标相似度作为矩阵中的值,得到第一解密目标相似度矩阵。第一目标拉普拉斯矩阵得到单元,用于根据第一解密目标相似度矩阵进行计算,得到第一目标拉普拉斯矩阵。转置矩阵获取单元,用于获取正交矩阵对应的转置矩阵。加密后的第一目标拉普拉斯矩阵得到单元,用于将第一目标拉普拉斯矩阵与正交矩阵以及转置矩阵进行矩阵相乘,得到加密后的第一目标拉普拉斯矩阵。
在一些实施例中,该装置还包括:加密正交矩阵得到模块,用于通过第二非对称密钥对中的第二公钥对正交矩阵进行加密,得到加密正交矩阵。加密正交矩阵发送模块,用于将加密正交矩阵发送给协调服务器,以使得协调服务器根据加密正交矩阵以及差异矩阵进行计算,得到加密聚类样本集合,差异矩阵根据加密后的第一目标拉普拉斯矩阵与加密后的第二目标拉普拉斯矩阵的差异得到。
在一些实施例中,联合聚类模块814包括:解密聚类样本得到单元,用于利用第二非对称密钥中的第二私钥分别对加密聚类样本集合中的加密聚类样本进行解密,得到各个加密聚类样本分别对应的解密聚类样本。联合聚类单元,用于根据各个解密聚类样本与第二服务器进行联合聚类。
在一些实施例中,该装置还包括:正交矩阵发送模块,用于将正交矩阵发送给第二服务器,以使得第二服务器执行以下步骤:将各个混淆码作为矩阵中的值,得到混淆码矩阵;根据混淆码矩阵进行计算,得到第二目标拉普拉斯矩阵;将第二目标拉普拉斯矩阵与正交矩阵以及正交矩阵对应的转置矩阵进行矩阵相乘,得到加密后的第二目标拉普拉斯矩阵。
关于谱聚类装置的具体限定可以参见上文中对于谱聚类方法的限定,在此不再赘述。上述谱聚类装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一些实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储谱聚类所用到的样本数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种谱聚类方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一些实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述谱聚类方法的步骤。
在一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述谱聚类方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种谱聚类方法,由第一服务器执行,所述方法包括:
获取第一非对称密钥对,所述第一非对称密钥对包括第一公钥以及第一私钥,所述第一非对称密钥对根据同态加密算法得到;
将第一加密目标样本集合发送给第二服务器,所述第一加密目标样本集合中的第一加密目标样本根据所述第一公钥对第一目标样本加密得到;
接收所述第二服务器发送的第一加密目标相似度集合,所述第一加密目标相似度集合中包括多个第一加密目标相似度,所述第二服务器计算所述第一加密目标样本与第二目标样本之间的相似度,得到加密相似度,利用所述加密相似度对应的混淆码对所述加密相似度进行混淆处理,得到所述第一加密目标相似度;
通过所述第一私钥分别对所述第一加密目标相似度集合中的各个第一加密目标相似度进行解密,得到第一解密目标相似度集合;
向协调服务器发送加密后的第一目标拉普拉斯矩阵,所述第一目标拉普拉斯矩阵是基于所述第一解密目标相似度集合计算得到的;
接收协调服务器发送的加密聚类样本集合,所述加密聚类样本集合包括多个加密聚类样本,所述加密聚类样本根据加密后的第二目标拉普拉斯矩阵与所述加密后的第一目标拉普拉斯矩阵之间的差异得到;所述第二目标拉普拉斯矩阵是所述第二服务器根据从第一服务器接收到的混淆码以及所述第二服务器本地生成的混淆码得到的矩阵;
基于所述加密聚类样本集合与所述第二服务器进行联合聚类。
2.根据权利要求1所述的方法,其特征在于,得到所述加密后的第一目标拉普拉斯矩阵的步骤包括:
将所述第一解密目标相似度集合中的各个第一解密目标相似度作为矩阵中的值,得到第一解密目标相似度矩阵;
根据所述第一解密目标相似度矩阵进行计算,得到所述第一目标拉普拉斯矩阵;
获取正交矩阵对应的转置矩阵;
将所述第一目标拉普拉斯矩阵与所述正交矩阵以及所述转置矩阵进行矩阵相乘,得到加密后的第一目标拉普拉斯矩阵。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
通过第二非对称密钥对中的第二公钥对所述正交矩阵进行加密,得到加密正交矩阵;
将所述加密正交矩阵发送给所述协调服务器,以使得所述协调服务器根据所述加密正交矩阵以及差异矩阵进行计算,得到所述加密聚类样本集合,所述差异矩阵根据所述加密后的第一目标拉普拉斯矩阵与所述加密后的第二目标拉普拉斯矩阵的差异得到。
4.根据权利要求3所述的方法,其特征在于,所述基于所述加密聚类样本集合与所述第二服务器进行联合聚类包括:
利用所述第二非对称密钥中的第二私钥分别对所述加密聚类样本集合中的加密聚类样本进行解密,得到各个所述加密聚类样本分别对应的解密聚类样本;
根据各个所述解密聚类样本与所述第二服务器进行联合聚类。
5.根据权利要求1所述的方法,其特征在于,所述第二服务器得到第一加密目标相似度集合的步骤包括:
分别计算第二目标样本集合中的各个第二目标样本与各个所述第一加密目标样本集合中的各个第一加密目标样本之间的加密余弦相似度;
获取各个所述加密余弦相似度分别对应的混淆码;
通过所述混淆码对对应的加密余弦相似度进行混淆,得到混淆后的加密余弦相似度,将所述混淆后的加密余弦相似度组成的集合作为所述第一加密目标相似度集合。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将正交矩阵发送给所述第二服务器,以使得所述第二服务器执行以下步骤:
将各个所述混淆码作为矩阵中的值,得到混淆码矩阵;
根据所述混淆码矩阵进行计算,得到所述第二目标拉普拉斯矩阵;
将所述第二目标拉普拉斯矩阵与所述正交矩阵以及所述正交矩阵对应的转置矩阵进行矩阵相乘,得到加密后的第二目标拉普拉斯矩阵。
7.一种谱聚类系统,所述系统包括第一服务器、第二服务器以及协调服务器:
所述第一服务器,用于获取第一非对称密钥对,所述第一非对称密钥对包括第一公钥以及第一私钥,所述第一非对称密钥对根据同态加密算法得到,将第一加密目标样本集合发送给第二服务器,所述第一加密目标样本集合中的第一加密目标样本根据所述第一公钥对第一目标样本加密得到;
所述第二服务器,用于根据第二目标样本集合以及所述第一加密目标样本集合进行相似度计算并进行混淆处理得到第一加密目标相似度集合;所述第一加密目标相似度集合中包括多个第一加密目标相似度,所述第二服务器,还用于计算所述第一加密目标样本与第二目标样本之间的相似度,得到加密相似度,利用所述加密相似度对应的混淆码对所述加密相似度进行混淆处理,得到所述第一加密目标相似度;
所述第一服务器,还用于通过所述第一私钥分别对所述第一加密目标相似度集合中的各个第一加密目标相似度进行解密,得到第一解密目标相似度集合,基于所述第一解密目标相似度集合计算得到第一目标拉普拉斯矩阵,对所述第一目标拉普拉斯矩阵进行加密得到加密后的第一目标拉普拉斯矩阵,向所述协调服务器发送加密后的第一目标拉普拉斯矩阵;
所述协调服务器,用于根据加密后的第二目标拉普拉斯矩阵与所述加密后的第一目标拉普拉斯矩阵之间的差异得到加密聚类样本,将各个所述加密聚类样本组成加密聚类样本集合,将所述加密聚类样本集合发送给所述第一服务器;所述第二目标拉普拉斯矩阵是所述第二服务器根据从第一服务器接收到的混淆码以及所述第二服务器本地生成的混淆码得到的矩阵;
所述第一服务器,还用于基于所述加密聚类样本集合与所述第二服务器进行联合聚类。
8.一种谱聚类装置,其特征在于,所述装置包括:
第一非对称密钥对获取模块,用于获取第一非对称密钥对,所述第一非对称密钥对包括第一公钥以及第一私钥,所述第一非对称密钥对根据同态加密算法得到;
第一加密目标样本集合发送模块,用于将第一加密目标样本集合发送给第二服务器,所述第一加密目标样本集合中的第一加密目标样本根据所述第一公钥对第一目标样本加密得到;
第一加密目标相似度集合接收模块,用于接收所述第二服务器发送的第一加密目标相似度集合,所述第一加密目标相似度集合中包括多个第一加密目标相似度,所述第二服务器计算所述第一加密目标样本与第二目标样本之间的相似度,得到加密相似度,利用所述加密相似度对应的混淆码对所述加密相似度进行混淆处理,得到所述第一加密目标相似度;
第一解密目标相似度集合得到模块,用于通过所述第一私钥分别对所述第一加密目标相似度集合中的各个第一加密目标相似度进行解密,得到第一解密目标相似度集合;
加密后的第一目标拉普拉斯矩阵发送模块,用于向协调服务器发送加密后的第一目标拉普拉斯矩阵,所述第一目标拉普拉斯矩阵是基于所述第一解密目标相似度集合计算得到的;
加密聚类样本集合接收模块,用于接收协调服务器发送的加密聚类样本集合,所述加密聚类样本集合包括多个加密聚类样本,所述加密聚类样本根据加密后的第二目标拉普拉斯矩阵与所述加密后的第一目标拉普拉斯矩阵之间的差异得到;所述第二目标拉普拉斯矩阵是所述第二服务器根据从第一服务器接收到的混淆码以及所述第二服务器本地生成的混淆码得到的矩阵;
联合聚类模块,用于基于所述加密聚类样本集合与所述第二服务器进行联合聚类。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述谱聚类方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述谱聚类方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010083854.6A CN111310817B (zh) | 2020-02-10 | 2020-02-10 | 谱聚类方法、装置、系统、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010083854.6A CN111310817B (zh) | 2020-02-10 | 2020-02-10 | 谱聚类方法、装置、系统、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111310817A CN111310817A (zh) | 2020-06-19 |
CN111310817B true CN111310817B (zh) | 2022-02-11 |
Family
ID=71150917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010083854.6A Active CN111310817B (zh) | 2020-02-10 | 2020-02-10 | 谱聚类方法、装置、系统、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111310817B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112149728B (zh) * | 2020-09-22 | 2023-11-17 | 成都智遥云图信息技术有限公司 | 一种快速的多模态图像模板匹配方法 |
CN113657338A (zh) * | 2021-08-25 | 2021-11-16 | 平安科技(深圳)有限公司 | 传动装置状态识别方法、装置、计算机设备及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130136298A1 (en) * | 2011-11-29 | 2013-05-30 | General Electric Company | System and method for tracking and recognizing people |
CN104573710B (zh) * | 2014-12-25 | 2018-11-13 | 北京交通大学 | 一种基于潜在空间平滑自表征的子空间聚类方法 |
US10607005B2 (en) * | 2017-06-20 | 2020-03-31 | Ca, Inc. | Systems and methods for labeling automatically generated reports |
US10411891B2 (en) * | 2017-06-28 | 2019-09-10 | Nxp B.V. | Distance-revealing encryption |
CN107241182B (zh) * | 2017-06-29 | 2020-10-13 | 电子科技大学 | 一种基于向量同态加密的隐私保护层次聚类方法 |
CN110233730B (zh) * | 2019-05-22 | 2022-05-03 | 暨南大学 | 一种基于k均值聚类的隐私信息保护方法 |
CN110493142B (zh) * | 2019-07-05 | 2023-04-18 | 南京邮电大学 | 基于谱聚类和随机森林算法的移动应用程序行为识别方法 |
-
2020
- 2020-02-10 CN CN202010083854.6A patent/CN111310817B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111310817A (zh) | 2020-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11606203B2 (en) | Method for faster secure multiparty inner product with SPDZ | |
US11201734B2 (en) | Method and system for fault tolerant and secure multiparty computation with SPDZ | |
Zhou et al. | Efficient homomorphic encryption on integer vectors and its applications | |
Gupta et al. | Secure data storage and sharing techniques for data protection in cloud environments: A systematic review, analysis, and future directions | |
WO2019098941A1 (en) | System and method for private integration of datasets | |
CN108111294B (zh) | 一种基于ML-kNN的保护隐私的多标记分类方法 | |
WO2013080320A1 (ja) | データ処理装置及びデータ処理方法及びプログラム | |
CN111310817B (zh) | 谱聚类方法、装置、系统、计算机设备和存储介质 | |
CN112751670B (zh) | 一种多中心密文策略的属性基可搜索加密及相应的搜索获取数据的方法 | |
US9910478B2 (en) | Collation system, node, collation method, and computer readable medium | |
WO2016153430A1 (en) | Method of obfuscating data | |
CN112241537A (zh) | 纵向联邦学习建模方法、系统、介质及设备 | |
US11101975B2 (en) | Ciphertext matching system and ciphertext matching method | |
CN112328639A (zh) | 数据查询方法、装置、系统以及数据集处理方法 | |
Emura et al. | Secure-channel free searchable encryption with multiple keywords: A generic construction, an instantiation, and its implementation | |
CN111475690B (zh) | 字符串的匹配方法和装置、数据检测方法、服务器 | |
CN115776667A (zh) | 面向便携式诊所的安全数据共享系统 | |
CN113965320A (zh) | 一种支持快速撤销的密文策略属性加密方法 | |
Blanton et al. | Secure and oblivious maximum bipartite matching size algorithm with applications to secure fingerprint identification | |
WO2022191770A1 (en) | Encoding data for homomorphic computation and performing homomorphic computation on encoded data | |
CN109873701A (zh) | 生成密钥的方法及装置 | |
CN111782662B (zh) | 基于分布式重构的用户隐私信息查询实现方法及装置 | |
US20230379136A1 (en) | Secure provision of keys for fully homomorphic encryption | |
CN115396241B (zh) | 一种数据加密方法及数据加密系统 | |
EP4024755B1 (en) | Secured performance of an elliptic curve cryptographic process |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |