本公开涉及设施选址技术领域,特别涉及一种基于加密位置数据的设施选址方法及系统。
背景技术:
本部分的陈述仅仅是提供了与本公开相关的背景技术,并不必然构成现有技术。
设施选址是企业决策经常需要面临的重要问题,如加油站、存取款机、物流中心、服务网点、通信基站等设施的位置选择,往往关系到企业的商业利益。设施选址的基本原则之一是让数量有限的设施尽可能覆盖更广的客户群体,同时让所有客户与其最近设施的距离总和最小。
本公开发明人发现,基于客户的位置进行k-均值聚类计算是解决上述问题的典型方法,但是客户的位置数据涉及到客户的隐私,企业往往无权获取,因此最终得到的选址案往往不能满足要求。
技术实现要素:
为了解决现有技术的不足,本公开提供了一种基于加密位置数据的设施选址方法及系统,客户在共享其位置数据前对位置数据进行加密,从而保护了隐私,企业能够利用加密的位置数据进行聚类计算,从而获得设施的建设位置,极大的提高了设施选址的准确性。
为了实现上述目的,本公开采用如下技术方案:
本公开第一方面提供了一种基于加密位置数据的设施选址方法。
一种基于加密位置数据的设施选址方法,包括以下步骤:
多个位置提供终端对其坐标信息进行加密后发送给第一终端;
第二终端根据设施的数量选择多个聚类中心,进行加密后发给第一终端;
第一终端和第二终端执行聚类算法,具体为:
第一终端以所有客户坐标的密文和所有聚类中心坐标的密文为输入,与第二终端执行乘法子协议,并输出第一计算结果给第二终端;
第二终端对第一计算结果进行解密并重新赋值排序后得到第二计算结果,输出第二计算结果给第一终端;
第一终端对第二计算结果进行逆变换后得到第三计算结果,第一终端以位置提供终端提供的精度坐标和第三计算结果为输入,与第二终端调用乘法子协议,得到第一矩阵和第二矩阵;
第一终端对第一矩阵和第二矩阵的某一列数据进行提取和计算后得到第四计算结果,第二终端根据接收到的第四计算结果,计算得到该列数据对应的编号所对应的聚类中心的坐标;
重复聚类算法的步骤,得到所有聚类中心的坐标作为设施的建设位置。
作为可能的一些实现方式,所述加密和解密均采用加法同态加密方案。
作为可能的一些实现方式,首先进行初始化设置,位置提供终端ci(i=1,2,...,n)的输入为其坐标信息
位置提供终端对坐标信息加密后,将密文
第二终端对聚类中心
作为进一步的限定,第一终端以所有客户坐标的密文和所有聚类中心坐标的密文为输入,与第二终端执行乘法子协议,并输出第一计算结果给第二终端,具体为:
计算
计算
与第二终端执行乘法子协议,得到
计算
计算
对向量([d1],[d2],...,[dk])进行随机置换,即πi(([d1],[d2],...,[dk])),得到
作为更进一步的限定,第二终端对第一计算结果进行解密得到
将向量中值最小的元素序号记为t。令bi,t=1,bi,j≠t=0,计算向量bi=([bi,1],[bi,2],...,[bi,k])作为第二计算结果,其中[bi,j]=enc(pk,bi,j)。
作为更进一步的限定,第一终端对第二计算结果进行逆置换
作为更进一步的限定,第一终端以位置提供终端提供的精度坐标和第三计算结果为输入,与第二终端调用乘法子协议,得到第一矩阵和第二矩阵,具体为:
第一终端能够获得两个n×k阶的矩阵,分别为第一矩阵m1和第二矩阵m2:
作为更进一步的限定,第一终端对第一矩阵和第二矩阵的某一列数据进行提取和计算后得到第四计算结果,具体为:
对于每个矩阵的第j列,j∈{1,...,k},第一终端计算:
对于j=1,...,k,第一终端随机选择
作为更进一步的限定,解密得到
本公开第二方面提供了一种基于加密位置数据的设施选址系统,多个位置提供终端、第一终端和第二终端,所述位置提供终端与第一终端通信连接,第一终端与第二终端通信连接,所述位置提供终端、第一终端和第二终端执行本公开第一方面所述的基于加密位置数据的设施选址方法进行设施选址。
与现有技术相比,本公开的有益效果是:
1、本公开所述的选址方法及系统,用户在共享其位置数据前对位置数据进行加密,从而保护了隐私,企业能够利用加密的位置数据进行聚类计算,从而获得设施的建设位置,极大的提高了设施选址的准确性。
2、本公开所述的选址方法及系统,要求聚类计算方和辅助计算方不能合谋,企业能够获取设备选址的结果,但无法获取任何客户的位置信息,辅助计算方仅提供辅助计算服务,无法获得设备选址结果、客户的位置以及其它中间结果和相关信息,在精确选址的同时保证了用户的信息安全。
3、本公开所述的选址方法及系统通过引入一个独立的辅助计算方,并设计相应的安全计算协议,采用paillier同态加密方案,对位置数据进行加密,解决了paillier同态加密方案不支持聚类计算中的乘法运算和比较运算的问题。
附图说明
图1为本公开实施例1提供的基于加密位置数据的设施选址方法的流程示意图。
图2为本公开实施例2提供的基于加密位置数据的设施选址系统的结构示意图。
具体实施方式
应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文采用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所采用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所采用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中采用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
实施例1:
如图1所示,本公开实施例1提供了一种基于加密位置数据的设施选址方法,使用paillier同态加密方案,对位置数据进行加密,也可以采用任何具有加法同态性质加密方案代替。
paillier同态加密方案是一个加法同态加密方案,仅支持密文的加法运算。但聚类计算中,需要用到乘法运算和比较运算,这是paillier同态加密方案不支持的。本实施例通过引入一个独立的辅助计算方,并设计相应的安全计算协议,解决上述问题。
在本实施例中,涉及的实体包括:若干位置提供方(客户),一个聚类计算方(有设备选址需求的企业),一个辅助计算方(可使用任何独立的公有云计算服务,如阿里云、亚马逊云、腾讯云等),要求聚类计算方和辅助计算方不能合谋。通过使用本实施例所述的选址方法,企业能够获取设备选址的结果,但无法获取任何客户的位置信息。辅助计算方仅提供辅助计算服务,无法获得设备选址结果、客户的位置以及其它中间结果和相关信息。
具体方法如下:
(1)paillier同态加密方案
paillier同态加密方案,是一个支持加法同态运算的公钥加密方案,该方案包含3个算法:
keygen(1k)→pk,sk:即密钥生成算法。任选两个大素数p和q,其中|p|=|q|=1k,计算n=pq和
enc(pk,m)→[m]:即加密算法。以公钥pk=n,明文m∈zn为输入,选择一个随机的
dec(sk,[m])→m:即解密算法。以私钥sk=λ,密文[m]为输入,计算:
paillier同态加密方案具有加法同态性质:
[m1]·[m2]=[m1+m2],k·[m]=[k·m]。
(2)乘法子协议
该协议涉及两个参与方p1和p2。
初始化:p1调用paillier加密方案中的密钥生成算法,生成公钥pk和私钥sk。
输入:p1的输入为pk、sk;
p2的输入为使用pk加密得到的密文[x]和[y]。
协议执行:
(2-1)p2随机选择rx,ry∈zn,计算x=[x]·[rx],y=[y]·[ry],并将x和y发送给p1;
(2-2)p1对x和y解密后得到x+rx和y+ry,计算h=(x+rx)(y+ry),并对其加密[h]=enc(pk,h),将密文[h]发送给p2;
(2-3)p2计算
h·s1·s2·s3=[h-x·ry-y·rx-rx·ry]=[x·y]。
输出:p1无输出;
p2输出[x·y]。
(3)基于加密位置数据的设施选址方法
在本实施例中,存在n个位置提供方(客户){ci}i∈{1,...,n},1个聚类计算方(有设备选址需求的企业)s,以及1个辅助计算方as(可使用任何独立的公共云计算服务,如阿里云、亚马逊云、腾讯云等),要求聚类计算方s和辅助计算方as不能合谋。
在本实施例中,所用到的坐标数据均采用十进制,并保留6位小数,为了使用整数表示,我们将所有的坐标数据乘以106。因此,坐标数据均可以使用9位整数表示,该数据长度严格小于||n||/2-1,其中n为paillier加密方案的公钥,||n||表示n的长度。
初始化:聚类计算方s调用paillier加密方案中的密钥生成算法,生成公钥pk和私钥sk。
输入:位置提供方ci(i=1,2,...,n)的输入为其坐标信息
聚类计算方s的输入为公钥pk、私钥sk,以及设备的数量k;
辅助计算方as的输入为公钥pk。
协议执行:
(3-1)数据加密阶段
(a)位置提供方ci(i=1,2,...,n)对其坐标信息
(b)聚类计算方s根据设施的数量,随机选择k个初始的聚类中心
(3-2)聚类计算阶段
(a)在本阶段辅助计算方as掌握所有客户坐标的密文
a进行如下运算:
辅助计算方as将
(b)对于i=1,2,...,n,s对
(c)对于i=1,2,...,n,as对向量bi=([bi,1],[bi,2],...,[bi,k])进行逆置换
(d)对于i=1,2,...,n,as以
此时,as能够获得两个n×k阶的矩阵:
(e)对于每个矩阵的第j列,j∈{1,...,k},as计算
(f)对于j=1,...,k,as随机选择
(g)s解密得到
为本轮编号为j的聚类中心的坐标。
(f)重复(a)~(g),直到达到收敛条件。
输出:s输出k个聚类中心的坐标
实施例2:
如图2所示,本公开实施例2提供了一种基于加密位置数据的设施选址系统,多个客户(位置提供终端)、辅助计算方as(第一终端)和聚类计算方s(第二终端),所述位置提供终端与第一终端通信连接,第一终端与第二终端通信连接,所述位置提供终端、第一终端和第二终端执行本公开实施例1所述的基于加密位置数据的设施选址方法进行设施选址。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。