法律状态公告日
法律状态信息
法律状态
2018-07-27
授权
授权
2015-05-27
实质审查的生效 IPC(主分类):H04L29/08 申请日:20150123
实质审查的生效
2015-04-29
公开
公开
技术领域
本发明涉及隐私保护和云计算领域,具体涉及一种基于云的二值向量距离计算方法、装置及服务器。
背景技术
随着移动设备用户数量的不断增长,基于移动设备的涉及二值向量的距离计算的应用越来越多的采用云计算的框架,借助强大的计算中心为用户提供丰富的应用。
将计算托管给云端虽然为移动用户带来了很大的便利,但是不可信的云端也对数据中的个人隐私(如好友关系,位置信息,活动信息等)造成了极大的威胁。比如,一些基于傅里叶变换的二值向量的距离计算方法,在近似的保持数据间欧式距离的前提下隐藏数据的敏感信息。该方法对在数据集上进行数据挖掘很奏效,但使用该方法使向量之间的距离信息是公开的,即搜索结果是公开的,因此会泄露用户隐私。
发明内容
本发明所要解决的技术问题是现有的基于云的二值向量距离计算不能保护用户隐私的问题。
为此目的,本发明提出一种基于云的二值向量距离计算方法,包括:
获取预先确定的要与当前用户的二值向量进行距离计算的二值向量所属用户所对应的Paillier加密的公钥PK,Paillier加密的私钥SK,随机种子s,两个对称加密密钥K0和K1,利用所述Paillier加密的公钥PK对0进行加密的加密结果HE.E(0),以及利用所述Paillier加密的公钥PK对1进行加密的加密结果HE.E(1);
从云服务器获取所述二值向量的每一比特位的扰码电路的所 有可能的输入;所述二值向量的每一比特位的扰码电路的所有可能的输入根据所述二值向量的该比特位的可能的值,所述二值向量的该比特位的位数,所述二值向量所属用户所对应的随机种子s,以及两个对称加密密钥K0和K1,并利用哈希算法生成,所述二值向量的每一比特位的扰码电路的每一种可能的输出是以所述二值向量的该比特位的该种可能的输出所对应的输入为密钥,对所述加密结果HE.E(0)或者所述加密结果HE.E(1)进行Paillier加密,并对加密结果进行高级加密标准加密方法加密生成的;
利用所述二值向量的每一比特位的扰码电路的所有可能的输入对所述二值向量的对应比特位进行编码确定出所述二值向量的该比特位的扰码电路的输入,并将确定出的所述二值向量的每一比特位的扰码电路的输入发送给所述云服务器;所述二值向量与所述二值向量相对应的比特位具有相同的比特位的位数;
接收所述云服务器发送的利用所述Paillier加密的公钥PK对所述二值向量和所述二值向量之间的距离进行加密的加密结果;
利用所述Paillier加密的私钥SK对所述云服务器发送的加密结果进行解密,确定出所述二值向量和所述二值向量之间的距离。
另一方面,本发明提出一种基于云的二值向量距离计算方法,包括:
接收用户发送的二值向量的每一比特位的扰码电路的输入;
根据所述用户发送的二值向量的每一比特位的扰码电路的输入查询预先存储的该比特位的扰码电路的所有可能的输入和所有可能的输出,确定出该比特位的扰码电路的输出,对所述用户发送的二值向量的每一比特位的扰码电路的输出进行解密,并求和;
将所述求和的结果发送给用户。
另一方面,本发明提出一种基于云的二值向量距离计算装置,包括:
第一获取单元,用于获取预先确定的要与当前用户的二值向量进行距离计算的二值向量所属用户所对应的Paillier加密的公钥PK,Paillier加密的私钥SK,随机种子s,两个对称加密密钥K0和K1,利用所述Paillier加密的公钥PK对0进行加密的加密结果HE.E(0),以及利用所述Paillier加密的公钥PK对1进行加密的加密结果HE.E(1);
第二获取单元,用于从云服务器获取所述二值向量的每一比特位的扰码电路的所有可能的输入;所述二值向量的每一比特位的扰码电路的所有可能的输入根据所述二值向量的该比特位的可能的值,所述二值向量的该比特位的位数,所述二值向量所属用户所对应的随机种子s,以及两个对称加密密钥K0和K1,并利用哈希算法生成,所述二值向量的每一比特位的扰码电路的每一种可能的输出是以所述二值向量的该比特位的该种可能的输出所对应的输入为密钥,对所述加密结果HE.E(0)或者所述加密结果HE.E(1)进行Paillier加密,并对加密结果进行高级加密标准加密方法加密生成的;
编码单元,用于利用所述二值向量的每一比特位的扰码电路的所有可能的输入对所述二值向量的对应比特位进行编码确定出所述二值向量的该比特位的扰码电路的输入,并将确定出的所述二值向量的每一比特位的扰码电路的输入发送给所述云服务器;所述二值向量与所述二值向量相对应的比特位具有相同的比特位的位数;
第一接收单元,用于接收所述云服务器发送的利用所述Paillier加密的公钥PK对所述二值向量和所述二值向量之间的距离进行加密的加密结果;
解密单元,用于利用所述Paillier加密的私钥SK对所述云服务器发送的加密结果进行解密,确定出所述二值向量和所述二值向 量之间的距离。
另一方面,本发明提出一种服务器,包括:
第二接收单元,用于接收用户发送的二值向量的每一比特位的扰码电路的输入;
查询单元,用于根据所述用户发送的二值向量的每一比特位的扰码电路的输入查询预先存储的该比特位的扰码电路的所有可能的输入和所有可能的输出,确定出该比特位的扰码电路的输出,对所述用户发送的二值向量的每一比特位的扰码电路的输出进行解密,并求和;
第二发送单元,用于将所述求和的结果发送给用户。
本发明实施例基于云的二值向量距离计算方法、装置及服务器,其优点在于:为移动设备的使用者提供了保护数据隐私的数据托管和搜索服务。任何的云服务都可以将利用本发明在原有的搜索功能上将隐私保护服务作为可选服务项目提供给感兴趣的用户。通过该发明,用户可以将向量数据加密放至云端,在不暴露自身向量的数值的情况下,计算查询向量与云端所有向量的距离。消耗最大的距离计算和向量存储任务都托管给云端,极大减轻了客户端的开销,但并不会暴露任何隐私向量或者查询向量(包括计算结果)给云或其他未授权方。因此该发明可以广泛应用于各类云计算服务,在不破坏计算功能的情况下保障用户隐私的安全。此外采用二值向量进行相似度计算,其计算效率得到了进一步提高,使其更适合面向资源受限设备的计算系统。
附图说明
图1为本发明一种基于云的二值向量距离计算方法一实施例的流程示意图;
图2为本发明一种基于云的二值向量距离计算方法一实施例的流程示意图;
图3为本发明一种基于云的二值向量距离计算装置一实施例的方框结构示意图;
图4为本发明一种服务器一实施例的方框结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本实施例公开一种基于云的二值向量距离计算方法,包括:
S1、获取预先确定的要与当前用户的二值向量进行距离计算的二值向量所属用户所对应的Paillier加密的公钥PK,Paillier加密的私钥SK,随机种子s,两个对称加密密钥K0和K1,利用所述Paillier加密的公钥PK对0进行加密的加密结果HE.E(0),以及利用所述Paillier加密的公钥PK对1进行加密的加密结果HE.E(1);
S2、从云服务器获取所述二值向量的每一比特位的扰码电路的所有可能的输入;所述二值向量的每一比特位的扰码电路的所有可能的输入根据所述二值向量的该比特位的可能的值,所述二值向量的该比特位的位数,所述二值向量所属用户所对应的随机种子s,以及两个对称加密密钥K0和K1,并利用哈希算法生成,所述二值向量的每一比特位的扰码电路的每一种可能的输出是以所述二值向量的该比特位的该种可能的输出所对应的输入为密钥,对所述加密结果HE.E(0)或者所述加密结果HE.E(1)进行Paillier加密,并对加密结果进行高级加密标准加密方法加密生成的;
S3、利用所述二值向量的每一比特位的扰码电路的所有可能 的输入对所述二值向量的对应比特位进行编码确定出所述二值向量的该比特位的扰码电路的输入,并将确定出的所述二值向量的每一比特位的扰码电路的输入发送给所述云服务器;所述二值向量与所述二值向量相对应的比特位具有相同的比特位的位数;
S4、接收所述云服务器发送的利用所述Paillier加密的公钥PK对所述二值向量和所述二值向量之间的距离进行加密的加密结果;
S5、利用所述Paillier加密的私钥SK对所述云服务器发送的加密结果进行解密,确定出所述二值向量和所述二值向量之间的距离。
可选地,在本发明基于云的二值向量距离计算方法的另一实施例中,还包括:
确定出当前用户所对应的Paillier加密的公钥,Paillier加密的私钥,随机种子,两个对称加密密钥,利用所述Paillier加密的公钥对0进行加密的加密结果,以及利用所述Paillier加密的公钥对1进行加密的加密结果;
根据当前用户的二值向量的每一比特位的可能的值,所述当前用户的二值向量的该比特位的位数,所述当前用户所对应的随机种子,以及两个对称加密密钥,并利用哈希算法生成所述当前用户的二值向量的该比特位的扰码电路的所有可能的输入,以所述当前用户的二值向量的每一比特位的扰码电路的每一种可能的输入为密钥,对所述利用所述Paillier加密的公钥对0进行加密的加密结果或者所述利用所述Paillier加密的公钥对1进行加密的加密结果进行Paillier加密,并对加密结果进行高级加密标准加密方法加密生成所述当前用户的二值向量的该比特位的扰码电路的该种可能的输入所对应的输出;
将所述当前用户的二值向量的每一比特位的扰码电路的所有可 能的输入和输出发送给所述云服务器。
如图2所示,本实施例公开一种基于云的二值向量距离计算方法,包括:
T1、接收用户发送的二值向量的每一比特位的扰码电路的输入;
T2、根据所述用户发送的二值向量的每一比特位的扰码电路的输入查询预先存储的该比特位的扰码电路的所有可能的输入和所有可能的输出,确定出该比特位的扰码电路的输出,对所述用户发送的二值向量的每一比特位的扰码电路的输出进行解密,并求和;
T3、将所述求和的结果发送给用户。
可选地,在本发明基于云的二值向量距离计算方法的另一实施例中,还包括:
接收用户发送的二值向量的每一比特位的扰码电路的所有可能的输入和所有可能的输出,并进行存储。
如图3所示,本实施例公开一种基于云的二值向量距离计算装置,包括:
第一获取单元1,用于获取预先确定的要与当前用户的二值向量进行距离计算的二值向量所属用户所对应的Paillier加密的公钥PK,Paillier加密的私钥SK,随机种子s,两个对称加密密钥K0和K1,利用所述Paillier加密的公钥PK对0进行加密的加密结果HE.E(0),以及利用所述Paillier加密的公钥PK对1进行加密的加密结果HE.E(1);
第二获取单元2,用于从云服务器获取所述二值向量的每一比特位的扰码电路的所有可能的输入;所述二值向量的每一比特位的扰码电路的所有可能的输入根据所述二值向量的该比特位的可能的值,所述二值向量的该比特位的位数,所述二值向量所属用户所对应的随机种子s,以及两个对称加密密钥K0和K1,并利用哈希算法生成,所述二值向量的每一比特位的扰码电路的每一种可能的 输出是以所述二值向量的该比特位的该种可能的输出所对应的输入为密钥,对所述加密结果HE.E(0)或者所述加密结果HE.E(1)进行Paillier加密,并对加密结果进行高级加密标准加密方法加密生成的;
编码单元3,用于利用所述二值向量的每一比特位的扰码电路的所有可能的输入对所述二值向量的对应比特位进行编码确定出所述二值向量的该比特位的扰码电路的输入,并将确定出的所述二值向量的每一比特位的扰码电路的输入发送给所述云服务器;所述二值向量与所述二值向量相对应的比特位具有相同的比特位的位数;
第一接收单元4,用于接收所述云服务器发送的利用所述Paillier加密的公钥PK对所述二值向量和所述二值向量之间的距离进行加密的加密结果;
解密单元5,用于利用所述Paillier加密的私钥SK对所述云服务器发送的加密结果进行解密,确定出所述二值向量和所述二值向量之间的距离。
可选地,在本发明基于云的二值向量距离计算装置的另一实施例中,还包括:
确定单元,用于确定出当前用户所对应的Paillier加密的公钥,Paillier加密的私钥,随机种子,两个对称加密密钥,利用所述Paillier加密的公钥对0进行加密的加密结果,以及利用所述Paillier加密的公钥对1进行加密的加密结果;
计算单元,用于根据当前用户的二值向量的每一比特位的可能的值,所述当前用户的二值向量的该比特位的位数,所述当前用户所对应的随机种子,以及两个对称加密密钥,并利用哈希算法生成所述当前用户的二值向量的该比特位的扰码电路的所有可能的输入,以所述当前用户的二值向量的每一比特位的扰码电路的每一种 可能的输入为密钥,对所述利用所述Paillier加密的公钥对0进行加密的加密结果或者所述利用所述Paillier加密的公钥对1进行加密的加密结果进行Paillier加密,并对加密结果进行高级加密标准加密方法加密生成所述当前用户的二值向量的该比特位的扰码电路的该种可能的输入所对应的输出;
第一发送单元,用于将所述当前用户的二值向量的每一比特位的扰码电路的所有可能的输入和输出发送给所述云服务器。
如图4所示,本实施例公开一种服务器,包括:
第二接收单元6,用于接收用户发送的二值向量的每一比特位的扰码电路的输入;
查询单元7,用于根据所述用户发送的二值向量的每一比特位的扰码电路的输入查询预先存储的该比特位的扰码电路的所有可能的输入和所有可能的输出,确定出该比特位的扰码电路的输出,对所述用户发送的二值向量的每一比特位的扰码电路的输出进行解密,并求和;
第二发送单元8,用于将所述求和的结果发送给用户。
可选地,在本发明服务器的另一实施例中,还包括:
第三接收单元,用于接收用户发送的二值向量的每一比特位的扰码电路的所有可能的输入和所有可能的输出,并进行存储。
本发明的目的是提出一种保护隐私的基于云的二值向量距离计算方法、装置及服务器,在不暴露用户具体数据的前提下,使用简单的乱码电路结合同态加密,实现数据的云存储和距离计算,以满足用户在使用云端存储计算资源的同时对个人数据隐私的需求。
两个二值向量与的距离可以表示为:
其中x(k)和y(k)分别表示向量和向量的第k个比特位,⊕表示异或操作。
本发明提出的保护隐私的基于云的二值向量距离计算方法,包 括以下步骤:
加入系统。当新用户A加入系统时,会生成一对Paillier的公私密钥对PK,SK,并选择两个对称加密秘钥K0,K1和一个随机种子s。然后使用PK对0、1进行同态加密以备后用,记为HE.E(0),HE.E(1)。这里HE.E表示Paillier同台加密的加密函数。
当用户A需要上传其隐私向量时,则使用防冲突的哈希算法H(·)和对称秘钥对来生成扰码电路,具体方法如下(其中Hk(·)代表进行k次哈希):对于每一个向量中的每一位x(k),生成如下的经过混淆的表:
if x(k)=0
if x(k)=1
该表代表了x(k)的扰码门电路G(x(k))。用户A将该扰码门电路上传至云端。
当一个用户B想计算其隐私向量与之间的距离时,他需要得到用户A的授权,即获取到A的PK,SK,K0,K1和s。然后进一步使用Hk(s)K0或Hk(s)K1对每一比特y(k)进行编码生成扰乱电路的输入GI(y(k))。该输入集合将被作为查询数据包上传至云端进行进一步计算。
托管计算。云端收到请求后利用以下步骤计算得到距离的密文,并将其返回给查询者。
对每一个扰码门电路云服务器都会查找经过混淆的表得到HE.E(x(k)⊕y(k)),并进行解密。
然后服务器计算
查询者通过SK解密得到最终计算结果。
本发明实施例基于云的二值向量距离计算方法、装置及服务器,其优点在于:为移动设备的使用者提供了保护数据隐私的数据托管和搜索服务。任何的云服务都可以将利用本发明在原有的搜索功能上将隐私保护服务作为可选服务项目提供给感兴趣的用户。通过该发明,用户可以将向量数据加密放至云端,在不暴露自身向量的数值的情况下,计算查询向量与云端所有向量的距离。消耗最大的距离计算和向量存储任务都托管给云端,极大减轻了客户端的开销,但并不会暴露任何隐私向量或者查询向量(包括计算结果)给云或其他未授权方。因此该发明可以广泛应用于各类云计算服务,在不破坏计算功能的情况下保障用户隐私的安全。此外采用二值向量进行相似度计算,其计算效率得到了进一步提高,使其更适合面向资源受限设备的计算系统。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
机译: 用于IC引擎控制的两点之间的欧式距离的近似值计算方法,具有每个参考系统方向上的点之间的二次距离之和,用于寻址特性场
机译: 设定值计算装置,轧机操作信息计算装置,轧机,制造钢带的方法,设定值计算方法和过程模型服务器
机译: 基于减少的运动向量预测值候选的运动向量的编码和解码方法和装置。