两方协同生成分片的方法及装置与流程

文档序号:29404980发布日期:2022-03-26 10:23阅读:82来源:国知局
两方协同生成分片的方法及装置与流程

1.本说明书一个或多个实施例涉及数据处理技术领域,尤其涉及一种两方协同生成分片的方法及装置。


背景技术:

2.安全多方计算(secure multi-party computation,简称mpc)技术研究的是:各方如何在不泄露各自私有数据的情况下,计算出共同约定函数的问题。两方安全选择是mpc技术中的基本计算单元,两方各自持有两个数所对应的分片(share),以及该两个数的选择比特所对应的分片,在进行安全选择后,两方各自持有针对两个数中某个数的新分片。两方安全选择可以用于构造if-else逻辑、max/min功能,以及用于进行mpc通用计算和隐私保护机器学习,等等。
3.然而,目前的两方安全选择算法难以满足日益提高的实际应用需求。因此,需要一种方案,能够取得更好的实施效果,包括有效减少两方安全选择中的通信量和计算量等。


技术实现要素:

4.本说明书一个或多个实施例描述了一种两方协同生成分片的方法及装置,可以有效减少新分片生成过程中的通信量和计算量。
5.根据第一方面,提供一种两方协同生成分片的方法,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述方法包括:所述第二方利用预设掩码对所述第一数值的第二原始分片和第二数值的第二原始分片分别进行处理,得到两个掩码原分片,并对所述第二异或分片和第二比特进行异或运算,得到中间值;所述第一方利用其生成的第一新分片、所述第一数值的第一原始分片和第二数值的第一原始分片,对接收的所述两个掩码原分片进行处理,得到两个掩码新分片;并且,利用所述第一异或分片对接收的所述中间值进行异或运算,得到最终值,从而根据该最终值指示的对应关系,利用所述两个密钥对应加密所述两个掩码新分片,得到两个加密掩码新分片;所述第二方利用所述选取的密钥和预设掩码,基于接收的所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
6.在一个实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为加法分片,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片;其中,所述第二方利用预设掩码对所述第一数值的第二原始分片和第二数值的第二原始分片进行处理,得到两个掩码原分片,包括:利用所述预设掩码,对所述第一数值的第二原始分片进行第一运算,得到所述第一数掩码原分片;所述第一运算为加法运算或减法运算;利用所述预设掩码,对所述第二数值的第二原始分片进行所述第一运算,得到所述第二数掩码原分片。
7.在一个实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为异
或分片,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片;其中,所述第二方利用预设掩码对所述第一数值的第二原始分片和第二数值的第二原始分片进行处理,得到两个掩码原分片,包括:利用所述预设掩码对所述第一数值的第二原始分片进行异或运算,得到所述第一数掩码原分片;利用所述预设掩码对所述第二数值的第二原始分片进行异或运算,得到所述第二数掩码原分片。
8.在一个实施例中,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片,所述两个掩码新分片包括第一数掩码新分片和第二数掩码新分片;其中,所述第一方利用其生成的第一新分片、所述第一数值的第一原始分片和第二数值的第一原始分片,对接收的所述两个掩码原分片进行处理,得到两个掩码新分片,包括:利用所述第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理,得到所述第一数掩码新分片;利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理,得到所述第二数掩码新分片。
9.进一步,在一个具体的实施例中,所述第一数值的第一原始分片和第二数值的第一原始分片为加法分片;其中,利用所述第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理,得到所述第一数掩码新分片,包括:在所述第一数掩码原分片的基础上加上所述第一数值的第一原始分片并减去所述第一新分片,得到所述第一数掩码新分片;其中,利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理,得到所述第二数掩码新分片,包括:在所述第二数掩码原分片的基础上加上所述第二数值的第一原始分片并减去所述第一新分片,得到所述第二数掩码新分片。
10.在另一个具体的实施例中,所述第一数值的第一原始分片和第二数值的第一原始分片为异或分片;其中,利用所述第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理,得到所述第一数掩码新分片,包括:对所述第一新分片、第一数值的第一原始分片和第一数掩码原分片进行异或运算,得到所述第一数掩码新分片;其中,利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理,得到所述第二数掩码新分片,包括:对所述第一新分片、第二数值的第一原始分片和第二数掩码原分片进行异或运算,得到所述第二数掩码新分片。
11.在一个实施例中,所述两个掩码新分片包括对应第一数值的第一数掩码新分片和对应第二数值的第二数掩码新分片,所述对应关系包含从所述两个密钥到两个数值的映射。
12.在一个实施例中,在所述第二方利用所述选取的密钥和预设掩码,对接收的所述两个加密掩码新分片进行处理之前,所述方法还包括:所述第二方通过与所述第一方共同执行不经意传输ot协议,从所述第一方获取所述两个密钥中与所述第二比特对应的密钥。
13.在一个实施例中,所述第二方利用所述选取的密钥和预设掩码,基于接收的所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片,包括:利用所述选取的密钥,对所述两个加密掩码新分片中对应该密钥的加密掩码新分片进行解密,得到掩码新分片;利用所述预设掩码对解密得到的掩码新分片进行还原,得到所述第二新分片。
14.进一步,在一个具体的实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为加法分片;其中,利用所述预设掩码对解密得到的掩码新分片进行还原,得到所述第二新分片,包括:利用所述预设掩码对所述掩码新分片进行加法或减法运算,得到所
述第二新分片。
15.在另一个具体的实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为异或分片;其中,利用所述预设掩码对解密得到的掩码新分片进行还原,得到所述第二新分片,包括:利用所述预设掩码对所述掩码新分片进行异或运算,得到所述第二新分片。
16.根据第二方面,提供另一种两方协同生成分片的方法,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述方法应用于第二方,包括:利用预设掩码分别对第一数值的第二原始分片和第二数值的第二原始分片进行处理,得到两个掩码原分片,并且,对所述第二异或分片和第二比特进行异或运算,得到中间值;向所述第一方发送所述两个掩码原分片和中间值;从所述第一方接收根据最终值所指示的对应关系,利用所述两个密钥对应加密两个掩码新分片而得到的两个加密掩码新分片;其中,所述最终值是利用所述第一异或分片对所述中间值进行异或运算而得到;所述两个掩码新分片是利用所述第一数值的第一原始分片、第二数值的第一原始分片以及所述第一方生成的第一新分片,对所述两个掩码原分片进行处理而得到;利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
17.根据第三方面,提供又一种两方协同生成分片的方法,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述方法应用于第一方,包括:从所述第二方接收利用预设掩码分别对所述第一数值的第二原始分片和第二数值的第二原始分片进行处理,而得到两个掩码原分片,以及,对所述第二异或分片和第二比特进行异或运算而得到中间值;利用所述第一方生成的第一新分片、所述第一数值的第一原始分片和第二数值的第一原始分片,对所述两个掩码原分片进行处理,得到两个掩码新分片;利用所述第一异或分片对接收的所述中间值进行异或运算,得到最终值,从而根据该最终值指示的对应关系,利用所述两个密钥对应加密接收的所述两个掩码新分片,得到两个加密掩码新分片;向所述第二方发送所述两个加密掩码新分片,以使所述第二方利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到对应所述第一新分片的第二新分片。
18.根据第四方面,提供一种两方协同生成分片的系统,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述系统包括:所述第二方,用于利用预设掩码对所述第一数值的第二原始分片和第二数值的第二原始分片分别进行处理,得到两个掩码原分片,并对所述第二异或分片和第二比特进行异或运算,得到中间值;所述第一方,用于利用其生成的第一新分片、所述第一数值的第一原始分片和第二数值的第一原始分片,对接收的所述两个掩码原分片进行处理,得到两个掩码新分片;并且,
利用所述第一异或分片对接收的所述中间值进行异或运算,得到最终值,从而根据该最终值指示的对应关系,利用所述两个密钥对应加密所述两个掩码新分片,得到两个加密掩码新分片;所述第二方,还用于利用所述选取的密钥和预设掩码,对接收的所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
19.根据第五方面,提供另一种两方协同生成分片的装置,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述装置集成于第二方,包括:掩码处理单元,配置为利用预设掩码分别对所述第一数值的第二原始分片和第二数值的第二原始分片进行处理,得到两个掩码原分片;中间值确定单元,配置为对所述第二异或分片和第二比特进行异或运算,得到中间值;发送单元,配置为向所述第一方发送所述两个掩码原分片和中间值;接收单元,配置为从所述第一方接收根据最终值所指示的对应关系,利用所述两个密钥对应加密两个掩码新分片而得到的两个加密掩码新分片;其中,所述最终值是利用所述第一异或分片对所述中间值进行异或运算而得到;所述两个掩码新分片是利用所述第一数值的第一原始分片、第二数值的第一原始分片以及所述第一方生成的第一新分片,对所述两个掩码原分片进行处理而得到;新分片确定单元,配置为利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
20.根据第六方面,提供又一种两方协同生成分片的装置,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述装置集成于第一方,包括:接收单元,配置为从所述第二方接收利用预设掩码分别对所述第一数值的第二原始分片和第二数值的第二原始分片进行处理,而得到两个掩码原分片,以及,对第二异或分片和第二比特进行异或运算而得到中间值;分片确定单元,配置为利用所述第一方生成的第一新分片、所述第一数值的第一原始分片和第二数值的第一原始分片,对所述两个掩码原分片进行处理,得到两个掩码新分片;分片加密单元,配置为利用所述第一异或分片对接收的所述中间值进行异或运算,得到最终值,从而根据该最终值指示的对应关系,利用所述两个密钥对应加密接收的所述两个掩码新分片,得到两个加密掩码新分片;发送单元,配置为向所述第二方发送所述两个加密掩码新分片,以使所述第二方利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到对应所述第一新分片的第二新分片。
21.根据第七方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面、第二方面或第三方面的方法。
22.根据第八方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,该处理器执行所述可执行代码时,实现第一方面、第二方面或第三方面的方法。
23.采用本说明书实施例提供的方法和装置,在保护各方隐私数据均不被泄露的情况下,只需要进行单轮通信,以及进行加、减、异或等少量简单计算,即可实现分片的协同生成,从而有效降低通信量和计算量。
附图说明
24.为了更清楚地说明本发明实施例的技术方案,下面对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
25.图1示出根据一个实施例的两方协同生成分片的交互示意图;
26.图2示出根据一个具体实施例的两方协同生成分片的交互示意图;
27.图3示出根据另一个具体实施例的两方协同生成分片的交互示意图;
28.图4示出根据又一个具体实施例的两方协同生成分片的交互示意图;
29.图5示出根据一个实施例的两方协同生成分片的系统结构示意图;
30.图6示出根据一个实施例的两方协同生成分片的装置结构示意图;
31.图7示出根据另一个实施例的两方协同生成分片的装置结构示意图。
具体实施方式
32.下面结合附图,对本说明书提供的方案进行描述。
33.承前所述,需要一种两方安全选择算法,能够更好地满足日益提高的实际应用需求。由此,本说明书实施例披露一种两方协同生成分片的方案,在保护各方隐私数据均不被泄露的情况下,只需要进行单轮通信和少量简单计算,即可实现分片的协同生成,从而有效降低通信量和计算量。其中简单计算涉及异或运算(符号为^、

、或者xor)、加法运算(+)和减法运算(-)中的一种或多种。
34.图1示出根据一个实施例的两方协同生成分片的交互示意图,其中两方包括第一方(记作p0方)和第二方(记作p1方),需理解,第一方和第二方各自持有私有数据,并且,可以实现为任何具有计算、处理能力的装置、平台、计算单元、服务器或设备集群等。
35.如图1所示,其中p0方持有第一数值(记作a)的第一原始分片(记作a0)、第二数值(记作b)的第一原始分片(记作b0)和第一比特(记作s)的第一异或分片(记作s0),以及两个密钥(记作k0和k1);p1方持有数值a的第二原始分片(记作a1)、数值b的第二原始分片(记作b1),比特s的第二异或分片(记作s1),以及利用第二比特(记作c)从密钥k0和k1中选取的密钥kc。可以理解,p0方和p1方均未获知数值a、数值b和比特s的具体取值。
36.需说明,上述分片a0、b0、a1、b1、s0和s1的产生方式有多种,例如,可以是基于mpc计算的中间计算结果a、b和s分别进行安全分片而产生,对此不作限定。
37.此外,对于p1方中持有的上述密钥kc,是其通过与p0方共同执行不经意传输(oblivious transfer,简称ot)协议而得到。ot协议是一种基于密码学的通信协议,在执行ot协议后,p1方只能得到密钥kc,而不能知晓密钥k0和k1中的另一密钥,并且,p0方不能获知p1方选取的密钥kc是密钥k0和k1中的哪一个。
38.进一步,对于上述ot协议的执行,在一种可能的场景下,p0方预先生成密钥k0和k1,p1方预先确定比特c(如0或1),从而,p0方将密钥k0和k1作为ot协议的输入,并且,p1方将比特c作为ot协议的输入,进而,p1方得到ot协议的执行结果,即比特c对应的密钥kc。
39.在另一种可能的场景下,p0方与p1方共同执行随机不经意传输(random oblivious transfer,简称rot)协议,于是,p0方得到在rot协议的执行中随机生成的两个标签(或称两
条消息),并将此两个标签作为上述两个密钥,可以理解,这两个标签也可以是在rot协议执行完成后再发生给p0方,因此适用于p0方离线的场景。另一方面,p1方可以预先确定比特c,并将之作为rot协议的输入,或者,p1方也可以在获取通过执行rot协议而输出的密钥kc的同时,获取在rot协议的执行中随机确定的比特c。
40.上述ot协议和其变种协议,如rot协议的执行方式,可以采用已有的多种方式实现,不作赘述。
41.以上对p0方和p1方各自持有的私有数据进行介绍。接下来,对这两方各自基于私有数据,协同生成针对上述第一数值a或第二数值b的新分片的交互步骤进行介绍。图1中示出的交互过程包括以下步骤:
42.步骤s10,p1方利用预设掩码t分别对第一数值的第二原始分片a1和第二数值的第二原始分片b1进行处理,得到第一数掩码原分片a
1_t
和第二数掩码原分片b
1_t
。需说明,其中利用预设掩码t对原分片进行处理的方式,与原分片的分片类型(或称分片形式)相适应。
43.在一种实施情况中,a1和b1均为加法分片(add share),需理解,一个数在整数环上用减法可以拆分出两个加法分片,这两个加法分片在整数环上相加可以获得原数,加法分片是无符号数。相应,a=a0+a1,b=b0+b1,此时,可以利用预设掩码t,分别与原分片a1和b1进行加法或减法运算,从而得到掩码原分片a
1_t
和b
1_t
。需说明,p1方无从知晓最后是针对a还是b产生新分片,所以本步骤中对原分片a1和b1的处理方式完全一致。
44.进一步,在一个实施例中,可以将本步骤实现为图2中示出的步骤s200,在原分片a1的基础上减去预设掩码t,得到掩码原分片a
1_t
,即,a
1_t
=a
1-t,并且,在原分片b1的基础上减去预设掩码t,得到掩码原分片b
1_t
,即,b
1_t
=b
1-t。
45.在另一个实施例中,可以将本步骤实现为:利用预设掩码t减去原分片a1,得到掩码原分片a
1_t
,即,a
1_t
=t-a1,并且,利用预设掩码t减去原分片b1,得到掩码原分片b
1_t
,即,b
1_t
=t-b1。
46.在又一个实施例中,可以将本步骤实现为:在原分片a1的基础上加上预设掩码t,得到掩码原分片a
1_t
,即,a
1_t
=a1+t,并且,在原分片b1的基础上加上预设掩码t,得到掩码原分片b
1_t
,即,b
1_t
=b1+t。
47.在另一种实施情况中,a1和b1均为减法分片,进一步,a1和b1均为减数,即a=a
0-a1,b=b
0-b1;或者,a1和b1均为被减数,即,a=a
1-a0,b=b
1-b0。基于此,可以利用预设掩码t,分别与原分片a1和b1进行加法或减法运算,从而得到掩码原分片a
1_t
和b
1_t
。示例性地,可以将本步骤实现为图中示出的步骤s300,在原分片a1的基础上加上预设掩码t,得到掩码原分片a
1_t
,即,a
1_t
=a1+t,并且,原分片b1的基础上加上预设掩码t,得到掩码原分片b
1_t
,即,b
1_t
=b1+t。
48.在又一种实施情况中,a1和b1均为异或分片,相应,a=a0^a1,b=b0^b1,此时,参见图4,可以将本步骤实现为图4中示出的步骤s400,对原分片a1和预设掩码t进行异或运算,得到掩码原分片a
1_t
,即,a
1_t
=a1^t,并且,对原分片b1和预设掩码t进行异或运算,得到掩码原分片b
1_t
,即,b
1_t
=b1^t。
49.由上,p1方可以得到第一数掩码原分片a
1_t
和第二数掩码原分片b
1_t
。并且,在步骤s11,p1方对第二异或分片s1和第二比特c进行异或运算,得到中间值s
1_c
,即,s
1_c
=s1^c。需说明,本说明书实施例对步骤s10和步骤s11的相对执行顺序,不作限定。
50.之后,在步骤s12,p1方将第一数掩码原分片a
1_t
和第二数掩码原分片b
1_t
,以及中间值s
1_c
发送至p0方。
51.接着,在步骤s13,p0方利用其生成的第一新分片r0、第一数值的第一原始分片a0和第二数值的第一原始分片b0,对第一数掩码原分片a
1_t
和第二数掩码原分片b
1_t
进行处理,得到第一数掩码新分片和第二数掩码新分片在一个实施例中,上述第一新分片r0可以由p0方随机生成。
52.需说明,因p0方无从知晓第一新分片r0最终是针对a还是b产生的分片,所以本步骤中对a0和b0的处理思路是一致的。具体,利用第一新分片r0和第一数值的第一原始分片a0,对第一数掩码原分片a
1_t
进行第一处理,得到第一数掩码新分片利用第一新分片r0和第二数值的第一原始分片b0,对第二数掩码原分片b
1_t
进行第二处理,得到第二数掩码新分片此外需说明,为避免冗余描述,以下主要对上述第一处理进行详细介绍,其可以作为对第二处理介绍的参照。
53.在一种实施情况中,第一数值a的原分片a0和a1,以及第二数值b的原分片b0和b1均为加法分片,此时,上述第一处理涉及加法运算和/或减法运算。需理解,第一处理所采用的计算式有多种可能的设计,只需使得计算出的掩码新分片等价于:利用预设掩码t对新分片进行处理而得到的分片,其中新分片是对第一数值a进行拆分而得到的与新分片r0对应的另一新分片,即,
54.在一个实施例中,参照图2,可以将本步骤实现为图2中示出的步骤s230,在掩码原分片a
1_t
的基础上加上原分片a0并减去新分片r0,得到掩码新分片即,可推导出,这意味着,等价于需注意,实际并未发生利用减去t的计算。此外,在步骤s230中,还在掩码原分片b
1_t
的基础上加上原分片b0并减去新分片r0,从而得到掩码新分片即,同理可以推导出等价于其中
55.在另一个实施例中,假定掩码原分片a
1_t
=t-a1,此时,本步骤可以实现为:在掩码原分片a
1_t
的基础上减去原分片a0并加上新分片r0,得到掩码新分片即,即,可推导出,这意味着,等价于需注意,实际并未发生利用t减去的计算。此外,本步骤中还包括:在掩码原分片b
1_t
的基础上减去原分片b0并加上新分片r0,得到掩码新分片即,如此得到的等价于
56.在另一种实施情况中,原分片a0和a1,以及原分片b0和b1均为减法分片,此时,上述第一处理涉及加法运算和/或减法运算。需理解的是,第一处理采用的计算式有多种可能的设计,只需使得计算出的掩码新分片等价于:利用预设掩码t对新分片进行处理而得到的分片,其中新分片是对第一数值a进行拆分而得到的与新分片r0对应的另一新分片,具体,若原分片a0和a1符合a=a
0-a1,那么否则,若符合a=a
1-a0,那么
57.示例性地,可以将本步骤实现为图中示出的步骤s330,在掩码原分片a
1_t
的基础上减去原分片a0并加上新分片r0,得到掩码新分片即,[a
1_t
]
r0
=a
1_t-a0+r0;可推导出,这意味着,等价于需注意,实际并未发生利用t减去的计算。此外,本步骤中还包括:在掩码原分片b
1_t
的基础上减去原分片b0并加上新分片r0,得到掩码新分片即,如此得到的等价于其中
[0058]
在又一种实施情况中,a1和b1均为异或分片,此时,参见图4,可以将本步骤实现为图4中示出的步骤s430,对新分片r0、原分片a0和掩码原分片a
1_t
进行异或运算,得到掩码新分片即,可推导出,这意味着,等价于需注意,实际并未发生和t之间的异或运算。此外,步骤s430中还包括:对新分片r0、原分片b0和掩码原分片b
1_t
进行异或运算,得到掩码新分片即,如此得到的等价于其中
[0059]
由上,p0方可以得到第一数掩码新分片[a
1_t
]
r0
和第二数掩码新分片并且,p0方还执行步骤s14,利用第一异或分片s0对中间值s
1_c
进行异或运算,得到最终值c
_s
,即,c
_s
=s0^s
1_c
;可推导出,s0^s
1_c
=s0^s1^c=s^c,也就是说,最终值c
_s
等价于对第一比特s和第二比特c进行异或运算的结果,需强调,实际并未直接对s和c进行异或运算。
[0060]
进一步,p0方执行步骤s15,根据最终值c
_s
指示的两个密钥和两个数值间映射关系,利用两个密钥对应加密第一数掩码新分片和第二数掩码新分片得到第一数加密掩码新分片和第二数加密掩码新分片需理解,其中两个数值包含上述第一数值a和第二数值b;此外,其中k是两个密钥之一,为k0或k1,表示两个密钥中不同于k的另一密钥。
[0061]
需说明,两个密钥和两个数值之间的映射关系总共存在两种,一种是第一密钥k0对应第一数值a,第二密钥k1对应第二数值b,可记作,另一种是第一密钥k0对应第二数值b,第二密钥k1对应第一数值a,可记作,进一步地,最终值c
_s
的取值为0和1,可以分别指示这两种映射关系,比如,c
_s
=0时指示前一种,c
_s
=1时指示后一种,又或者,c
_s
=0时指示后一种,c
_s
=1时指示前一种。
[0062]
为便于理解,下面以最终值c
_s
=0时指示且c
_s
=1时指示=1时指示为示例,对本步骤的实施进行说明。此外可以理解的是,上述第一数掩码新分片对应第一数值a,第二数掩码新分片对应第二数值b。
[0063]
基于以上,本步骤中,在最终值c
_s
=0的情况下,利用第一密钥k0加密第一数掩码新分片得到第一数加密掩码新分片并且,利用第二密钥k1加密第二数掩码新分片得到第二数加密掩码新分片需理解,第一密钥k0和第二密钥k1均为对称密钥,对称密钥是指,加密和解密数据采用的是相同密钥。示例性地,可以利用对称密
钥对明文进行异或运算从而得到密文,即,对此还可参见图2中示出的步骤s250或参见图3中示出的步骤s350。
[0064]
否则,在最终值c
_s
=1的情况下,利用第一密钥k0加密第二数掩码新分片得到第二数加密掩码新分片并且,利用第二密钥k1加密第一数掩码新分片得到第一数加密掩码新分片示例性地,可以通过异或运算实现加密,即,示例性地,可以通过异或运算实现加密,即,对此还可以参见图4中示出的步骤s450。
[0065]
由上,p0方可以确定第一数加密掩码新分片和第二数加密掩码新分片在一种可能的情况中,和分别为和在另一种可能的情况中,和分别为和
[0066]
接着,在步骤s16,p0方将第一数加密掩码新分片和第二数加密掩码新分片发送至p1方。在一个实施例中,步骤s16实现为步骤s260或步骤s360,将和发送至p1方。在另一个实施例中,步骤s16实现为步骤s460,将和发送至p1方。
[0067]
另一方面,在一个实施例中,p0方还可以一并将掩码新分片与密钥之间的映射关系发送给p1方。示例性地,假定和分别为和此时,还可以一并发送与比特值0之间以及与比特值1之间的对应关系,也即,与比特值1之间的对应关系,也即,
[0068]
之后,在步骤s17,p1方利用密钥kc和预设掩码t,基于第一数加密掩码新分片和第二数加密掩码新分片进行处理,得到与第一新分片r0对应的第二新分片r1。需说明,对于p1方,其只能获知和的加密密钥与比特值0和1之间的映射关系,而无法获知和与数值a、b之间的对应关系,也就无从获知确定出的第二新分片r1是针对a还是针对b的分片。
[0069]
本步骤中,先利用密钥kc,对加密掩码新分片和中对应该密钥kc的加密掩码新分片进行解密,得到掩码新分片。需理解,解密出的掩码新分片可能为上述第一数掩码新分片也可能为上述第二数掩码新分片图1中将解密出的掩码新分片记作r
1_t

[0070]
在一种可能的情况中,对应比特c,也即对应密钥kc,此时,利用kc解密相应得到的掩码新分片为需理解的是,解密的方式与加密的方式相适应,示例性地,加密是采用异或运算实现的,于是,解密也可以是采用异或运算实现的,也即,进一步,在一个实施例中,参见图2,p1方持有的比特c=0,密钥kc=k0,相
应,可以将本步骤实现为步骤s270,利用密钥k0解密即,从而得到解密出的掩码新分片
[0071]
在另一种可能的情况中,对应比特c,也即对应密钥kc,此时,利用kc解密相应得到的掩码新分片为进一步,在一个实施例中,参见图3,p1方持有的比特c=1,密钥kc=k1,相应,可以将本步骤实现为步骤s370,利用密钥k1解密即,从而得到解密出的掩码新分片在另一个实施例中,参见图4,p1方持有的比特c=0,密钥kc=k0,相应,可以将本步骤实现为步骤s470,利用密钥k0解密即,从而得到解密出的掩码新分片
[0072]
进一步,在解密出掩码新分片后,利用预设掩码t,对解密出的掩码新分片进行预设掩码t的去除处理,从而得到第二新分片r1。需理解,此处去除处理涉及的运算为加法运算、减法运算或异或运算中的一种,具体的运算方式与前述步骤中预设掩码t已经参与的运算相适应。
[0073]
在一个实施例中,假定解密出的掩码新分片为进一步,在一个具体的实施例中,参见图2,其中示出的等价于此时,将本步骤执行为s270,通过在掩码新分片的基础上加上预设掩码t,可以得到新分片作为第二新分片r1。
[0074]
在另一个实施例中,假定解密出的掩码新分片为进一步,在一个具体的实施例中,参见图3,其中示出的等价于此时,将本步骤执行为s370,通过利用掩码新分片减去预设掩码t,可以得到新分片作为第二新分片r1;在另一个具体的实施例中,参见图4,其中示出的等价于此时,将本步骤执行为s470,利用预设掩码t与掩码新分片进行异或运算,可以得到新分片作为第二新分片r1。
[0075]
如此,p1方可以得到与p0方持有的第一新分片r0相对应的第二新分片r1。
[0076]
需说明,对于图2中示出的步骤s210、s220、s240和s260,图3中示出的步骤s310、s320、s340和s260,以及图4中示出的步骤s410、s420、s440和s460,可以参见对图2中步骤s12、s14和s16的描述,不作赘述。
[0077]
综上,通过采用本说明书实施例披露的两方协同生成分片的方法,p0方和p1方在各自的隐私数据不被泄露的情况下,只需要进行单轮通信和少量简单计算(+、-、或^),即可对应获得针对上述两个数值之一的新分片r0和新分片r1,从而实现两方安全选择,并有效降低通信成本(包括通信字节数和通信轮数)和计算量。
[0078]
与上述分片的生成方法相对应地,本说明书实施例还披露分片的生成系统和装置。具体如下:
[0079]
图5示出根据一个实施例的两方协同生成分片的系统结构示意图,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥。如图5所
示,所述系统500包括:
[0080]
所述第二方520,用于利用预设掩码对所述第一数值的第二原始分片和第二数值的第二原始分片分别进行处理,得到两个掩码原分片,并对所述第二异或分片和第二比特进行异或运算,得到中间值;所述第一方510,用于利用其生成的第一新分片、所述第一数值的第一原始分片和第二数值的第一原始分片,对接收的所述两个掩码原分片进行处理,得到两个掩码新分片;并且,利用所述第一异或分片对接收的所述中间值进行异或运算,得到最终值,从而根据该最终值指示的对应关系,利用所述两个密钥对应加密所述两个掩码新分片,得到两个加密掩码新分片;所述第二方520,还用于利用所述选取的密钥和预设掩码,基于接收的所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
[0081]
图6示出根据一个实施例的两方协同生成分片的装置结构示意图,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述装置集成于第二方,具体可以实现为任何具有计算、处理能力的服务器或设备集群等。如图6所示,所述装置600包括:
[0082]
掩码处理单元610,配置为利用预设掩码分别对所述第一数值的第二原始分片和第二数值的第二原始分片进行处理,得到两个掩码原分片;中间值确定单元620,配置为对所述第二异或分片和第二比特进行异或运算,得到中间值;发送单元630,配置为向所述第一方发送所述两个掩码原分片和中间值;接收单元640,配置为从所述第一方接收根据最终值所指示的对应关系,利用所述两个密钥对应加密两个掩码新分片而得到的两个加密掩码新分片;其中,所述最终值是利用所述第一异或分片对所述中间值进行异或运算而得到;所述两个掩码新分片是利用所述第一数值的第一原始分片、第二数值的第一原始分片以及所述第一方生成的第一新分片,对所述两个掩码原分片进行处理而得到;新分片确定单元650,配置为利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到与所述第一新分片对应的第二新分片。
[0083]
在一个实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为加法分片,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片;其中,所述掩码处理单元610具体配置为:利用所述预设掩码,对所述第一数值的第二原始分片进行第一运算,得到所述第一数掩码原分片;所述第一运算为加法运算或减法运算;利用所述预设掩码,对所述第二数值的第二原始分片进行所述第一运算,得到所述第二数掩码原分片。
[0084]
在另一个实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为异或分片,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片;其中,所述掩码处理单元610具体配置为:利用所述预设掩码对所述第一数值的第二原始分片进行异或运算,得到所述第一数掩码原分片;利用所述预设掩码对所述第二数值的第二原始分片进行异或运算,得到所述第二数掩码原分片。
[0085]
在一个实施例中,所述装置600还包括:密钥获取单元660,配置为通过与所述第一方共同执行不经意传输ot协议,从所述第一方获取所述两个密钥中与所述第二比特对应的密钥。
[0086]
在一个实施例中,所述新分片确定单元650包括:分片解密子单元651,配置为利用所述选取的密钥,对所述两个加密掩码新分片中对应该密钥的加密掩码新分片进行解密,得到掩码新分片;分片还原子单元652,配置为利用所述预设掩码对解密得到的掩码新分片进行还原,得到所述第二新分片。
[0087]
进一步,在一个具体的实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为加法分片;其中,所述分片还原子单元652具体配置为:利用所述预设掩码对所述掩码新分片进行加法或减法运算,得到所述第二新分片。
[0088]
在另一个具体的实施例中,所述第一数值的第二原始分片和第二数值的第二原始分片为异或分片;其中,所述分片还原子单元652具体配置为:利用所述预设掩码对所述掩码新分片进行异或运算,得到所述第二新分片。
[0089]
图7示出根据另一个实施例的两方协同生成分片的装置结构示意图,该两方中的第一方持有第一数值的第一原始分片、第二数值的第一原始分片、第一比特的第一异或分片以及两个密钥;第二方持有所述第一数值的第二原始分片、所述第二数值的第二原始分片,所述第一比特的第二异或分片,以及利用第二比特从所述两个密钥中选取的密钥;所述装置集成于第二方,具体可以实现为任何具有计算、处理能力的服务器或设备集群等。如图7所示,所述装置700包括:
[0090]
接收单元710,配置为从所述第二方接收利用预设掩码分别对所述第一数值的第二原始分片和第二数值的第二原始分片进行处理,而得到两个掩码原分片,以及,对所述第二异或分片和第二比特进行异或运算而得到中间值;分片确定单元720,配置为利用所述第一方生成的第一新分片、所述第一数值的第一原始分片和第二数值的第一原始分片,对所述两个掩码原分片进行处理,得到两个掩码新分片;分片加密单元730,配置为利用所述第一异或分片对接收的所述中间值进行异或运算,得到最终值,从而根据该最终值指示的对应关系,利用所述两个密钥对应加密接收的所述两个掩码新分片,得到两个加密掩码新分片;发送单元740,配置为向所述第二方发送所述两个加密掩码新分片,以使所述第二方利用所述选取的密钥和预设掩码,对所述两个加密掩码新分片进行处理,得到对应所述第一新分片的第二新分片。
[0091]
在一个实施例中,所述两个掩码原分片包括第一数掩码原分片和第二数掩码原分片,所述两个掩码新分片包括第一数掩码新分片和第二数掩码新分片;其中,所述分片确定单元720包括:
[0092]
第一确定子单元721,配置为利用所述第一新分片和第一数值的第一原始分片,对所述第一数掩码原分片进行处理,得到所述第一数掩码新分片;第二确定子单元722,配置为利用所述第一新分片和第二数值的第一原始分片,对所述第二数掩码原分片进行处理,得到所述第二数掩码新分片。
[0093]
进一步,在一个具体的实施例中,所述第一数值的第一原始分片和第二数值的第一原始分片为加法分片;其中,所述第一确定子单元721具体配置为:在所述第一数掩码原分片的基础上加上所述第一数值的第一原始分片并减去所述第一新分片,得到所述第一数掩码新分片;所述第二确定子单元722具体配置为:在所述第二数掩码原分片的基础上加上所述第二数值的第一原始分片并减去所述第一新分片,得到所述第二数掩码新分片。
[0094]
在另一个具体的实施例中,所述第一数值的第一原始分片和第二数值的第一原始
分片为异或分片;其中,所述第一确定子单元721具体配置为:对所述第一新分片、第一数值的第一原始分片和第一数掩码原分片进行异或运算,得到所述第一数掩码新分片;所述第二确定子单元722具体配置为:对所述第一新分片、第二数值的第一原始分片和第二数掩码原分片进行异或运算,得到所述第二数掩码新分片。
[0095]
在一个实施例中,所述两个掩码新分片包括对应第一数值的第一数掩码新分片和对应第二数值的第二数掩码新分片,所述对应关系包含从所述两个密钥到两个数值的映射。
[0096]
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图1或图2或图3或图4所描述的方法。
[0097]
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图1或图2或图3或图4所描述的方法。
[0098]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
[0099]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1