保护隐私数据的安全分片转换方法和装置与流程

文档序号:33631113发布日期:2023-03-28 22:58阅读:54来源:国知局
保护隐私数据的安全分片转换方法和装置与流程

1.本说明书一个或多个实施例涉及计算机领域,尤其涉及保护隐私数据的安全分片转换方法和装置。


背景技术:

2.当前,不同的数据持有方所持有的数据可能包含用户的隐私信息,数据持有方之间的数据共享可能会侵犯用户的隐私。为了能够打通多方之间的数据流通,利用安全多方计算支持多方之间的联合计算,挖掘出数据的价值,同时确保多方交互时不会泄露出各方隐私数据的明文信息。
3.安全多方计算能够使得多个互不信任的参与方安全地计算一个给定的函数,并且不会泄露除结果以外的输入、中间计算结果。秘密共享,是将一个秘密分散到不同参与方的方法,每方得到秘密的一部分,称为分片。只有当持有足够多的分片时,才能还原出秘密;单个分片无法还原出秘密。
4.秘密共享由于其对于算术计算以及线性代数运算具有较高的效率,被广泛用于各个场景的安全计算。基于秘密共享的计算常常会涉及分片转换,将一个秘密的分片在不同大小的环上进行转换,包含从大环到小环的分片减小,从小环到大环的分片扩展。现有技术中,在实现分片转换时,为了保护隐私数据,效率较低。因此,需要提供保护隐私数据的安全分片转换,能够既保护隐私数据,又具有高效率。


技术实现要素:

5.本说明书一个或多个实施例描述了一种保护隐私数据的安全分片转换方法和装置,能够既保护隐私数据,又具有高效率。
6.第一方面,提供了一种保护隐私数据的安全分片转换方法,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,该方法由所述第一方或第三方执行,包括:
7.通过对所述第一分片增加偏置量,更新本方持有的两个本方分片,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;
8.利用更新后的两个本方分片,与其他两方持有的分片进行多方联合计算,得到溢出位在对第二值取模的第二环中的两个溢出分片;其中,所述第二值为2的n次幂,m小于n;所述溢出位指示所述偏置数据是否大于或等于所述第一值;
9.根据更新后的两个本方分片、所述两个溢出分片以及所述偏置量,得到在所述第二环中的两个转换后分片。
10.在一种可能的实施方式中,所述得到在所述第二环中的两个转换后分片,包括:
11.针对每个更新后的本方分片,根据对应的溢出分片与第一值的乘积,在第二环中进行运算,得到对应的中间分片;
12.将第一分片对应的中间分片减去所述偏置量,得到其在所述第二环中的转换后分片;将另一中间分片作为另一转换后分片。
13.在一种可能的实施方式中,所述隐私数据的取值范围的下限为负的2的l-1次幂,上限为2的l-1次幂减去1,l小于m;所述偏置量为2的l-1次幂。
14.在一种可能的实施方式中,所述多方联合计算,包括:
15.本地构建更新后第一分片的第一最高位的两个第一布尔分片;
16.从第二方接收第二最高位的两个第二布尔分片;所述第二最高位对应于第二分片与第三分片之和对所述第一值取模后的第一转换数据的最高位;
17.利用所述两个第一布尔分片和两个第二布尔分片,与其他两方进行第一多方联合子计算,得到第一溢出位的两个第三布尔分片;其中,所述第一溢出位表示所述第一转换数据与更新后第一分片之和是否大于或等于所述第一值;
18.利用所述两个第三布尔分片,与其他两方进行第二多方联合子计算,得到所述第一溢出位在所述第二环中的两个第一溢出分片;
19.基于两个第一溢出分片进行本地计算,得到所述两个溢出分片。
20.进一步地,所述多方联合计算,还包括:
21.从第二方接收第二溢出位在所述第二环中的两个第二溢出分片;所述第二溢出位表示所述第二分片与第三分片之和是否大于或等于所述第一值;
22.所述基于两个第一溢出分片进行本地计算,得到所述两个溢出分片,包括:
23.对第一溢出分片和第二溢出分片进行本地求和,得到所述两个溢出分片中的一个溢出分片。
24.第二方面,提供了一种保护隐私数据的安全分片转换方法,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,该方法由所述第二方执行,包括:
25.利用本方持有的两个分片,与其他两方的更新分片进行多方联合计算,得到溢出位在对第二值取模的第二环中的两个溢出分片;其中,所述第二值为2的n次幂,m小于n;所述其他两方的更新分片在第一分片上添加了偏置量,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;所述溢出位指示所述偏置数据是否大于或等于所述第一值;
26.根据两个本方分片和所述两个溢出分片,得到在所述第二环中的两个转换后分片。
27.在一种可能的实施方式中,所述得到在所述第二环中的两个转换后分片,包括:
28.针对每个本方分片,根据对应的溢出分片与第一值的乘积,在第二环中进行运算,得到其在所述第二环中的转换后分片。
29.在一种可能的实施方式中,所述多方联合计算,包括:
30.选取约定的两个布尔值作为本地构建的所述第一分片的第一最高位的两个第一布尔分片;
31.本地计算第二最高位;所述第二最高位对应于第二分片与第三分片之和对所述第一值取模后的第一转换数据的最高位;
32.本地构建第二最高位的三个第二布尔分片,保留其中的两个第二布尔分片,并将
其布尔分片以秘密共享的方式共享给其他两方;
33.利用所述两个第一布尔分片和两个第二布尔分片,与其他两方进行第一多方联合子计算,得到第一溢出位的两个第三布尔分片;其中,所述第一溢出位表示所述第一转换数据与更新后第一分片之和是否大于或等于所述第一值;
34.利用所述两个第三布尔分片,与其他两方进行第二多方联合子计算,得到所述第一溢出位在所述第二环中的两个第一溢出分片;
35.基于两个第一溢出分片进行本地计算,得到所述两个溢出分片。
36.进一步地,所述多方联合计算,还包括:
37.本地计算第二溢出位;所述第二溢出位表示所述第二分片与第三分片之和是否大于或等于所述第一值;
38.本地构建第二溢出位在所述第二环中的三个第二溢出分片,保留其中的两个第二溢出分片,并将其溢出分片以秘密共享的方式共享给其他两方;
39.所述基于两个第一溢出分片进行本地计算,得到所述两个溢出分片,包括:
40.对第一溢出分片和第二溢出分片进行本地求和,得到所述两个溢出分片中的一个溢出分片。
41.第三方面,提供了一种保护隐私数据的安全分片转换方法,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,该方法由所述第一方或第三方执行,包括:
42.通过对所述第一分片增加偏置量,更新本方持有的两个本方分片,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;
43.获取随机数对应于本方的两组随机分片,以及所述随机数的最高位在对第二值取模的第二环中的两个高位分片;其中,所述第二值为2的n次幂,m小于n;
44.利用更新后的两个本方分片、所述两组随机分片和所述两个高位分片,通过与其他两方进行多方联合计算,得到溢出位在第二环中的两个溢出分片;所述溢出位用于指示所述偏置数据与随机数的和是否大于或等于所述第一值;
45.根据所述两个溢出分片、两组随机分片,以及所述偏置量,得到在所述第二环中的两个转换后分片。
46.在一种可能的实施方式中,所述两组随机分片包括,所述随机数在所述第一环中的两个第一随机分片,以及在第二环中的两个第二随机分片;
47.所述得到溢出位在第二环中的两个溢出分片,包括:
48.利用更新后的两个本方分片和两个第一随机分片,与其他两方进行第一联合计算,得到混淆数据;
49.根据所述混淆数据的最高位和所述两个高位分片,本地计算得到所述两个溢出分片。
50.进一步地,所述得到在所述第二环中的两个转换后分片,包括:
51.根据所述混淆数据、两个第二随机分片、两个溢出分片,本地计算得到两个中间分片;
52.将第一分片对应的中间分片减去所述偏置量,得到其在第二环中的转换后分片;
将另一中间分片作为另一转换后分片。
53.进一步地,所述两个第一随机分片、两个第二随机分片、两个高位分片采用如下方式预先生成:
54.与其他两方,通过多方联合子计算,在第二环中生成m个比特位中每个比特位的两个随机比特分片;所述m个比特位对应于所述随机数的各个位;
55.根据本方持有的随机比特分片,本地计算得到第二环中的随机数的两个第二随机分片;
56.基于本方持有的随机数的两个第二随机分片,通过本地计算得到所述两个第一随机分片。
57.进一步地,所述通过本地计算得到所述两个第一随机分片,包括:
58.对于本方持有的随机数的两个第二随机分片分别进行针对所述第一值的取模操作,得到所述两个第一随机分片。
59.进一步地,所述第一联合计算,包括:
60.本地计算所述更新后的两个本方分片与两个第一随机分片的对应求和,得到两个本地混淆分片;
61.从其他两方中的任一方接收所述两个本地混淆分片之外的交互混淆分片;
62.对所述两个本地混淆分片和交互混淆分片进行本地求和,得到所述混淆数据。
63.第四方面,提供了一种保护隐私数据的安全分片转换方法,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,该方法由所述第二方执行,包括:
64.获取随机数对应于本方的两组随机分片,以及所述随机数的最高位在对第二值取模的第二环中的两个高位分片;其中,所述第二值为2的n次幂,m小于n;
65.利用本方持有的两个分片、所述两组随机分片和所述两个高位分片,与其他两方的更新分片进行多方联合计算,得到溢出位在第二环中的两个溢出分片;所述其他两方的更新分片在第一分片上添加了偏置量,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;所述溢出位用于指示所述偏置数据与随机数的和是否大于或等于所述第一值;
66.根据所述两个溢出分片、两组随机分片,得到在所述第二环中的两个转换后分片。
67.在一种可能的实施方式中,所述两组随机分片包括,所述随机数在所述第一环中的两个第一随机分片,以及在第二环中的两个第二随机分片;
68.所述得到溢出位在第二环中的两个溢出分片,包括:
69.利用本方持有的两个分片和两个第一随机分片,与其他两方的更新分片进行第一联合计算,得到混淆数据;
70.根据所述混淆数据的最高位和所述两个高位分片,本地计算得到所述两个溢出分片。
71.进一步地,所述得到在所述第二环中的两个转换后分片,包括:
72.根据所述混淆数据、两个第二随机分片、两个溢出分片,本地计算得到所述两个转换后分片。
73.第五方面,提供了一种保护隐私数据的安全分片转换方法,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的n次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,该方法由所述第一方、所述第二方和所述第三方中的任一方执行,包括:
74.对本方持有的两个本方分片进行针对第二值的取模操作,得到所述隐私数据在对第二值取模的第二环中的两个转换后分片;所述第二值为2的m次幂;其中,m小于n。
75.第六方面,提供了一种保护隐私数据的安全分片转换装置,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,该装置设置于所述第一方或第三方,包括:
76.偏置单元,用于通过对所述第一分片增加偏置量,更新本方持有的两个本方分片,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;
77.溢出单元,用于利用所述偏置单元得到的更新后的两个本方分片,与其他两方持有的分片进行多方联合计算,得到溢出位在对第二值取模的第二环中的两个溢出分片;其中,所述第二值为2的n次幂,m小于n;所述溢出位指示所述偏置数据是否大于或等于所述第一值;
78.转换单元,用于根据所述偏置单元得到的更新后的两个本方分片、所述溢出单元得到的两个溢出分片以及所述偏置量,得到在所述第二环中的两个转换后分片。
79.第七方面,提供了一种保护隐私数据的安全分片转换装置,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,该装置设置于所述第二方,包括:
80.溢出单元,用于利用本方持有的两个分片,与其他两方的更新分片进行多方联合计算,得到溢出位在对第二值取模的第二环中的两个溢出分片;其中,所述第二值为2的n次幂,m小于n;所述其他两方的更新分片在第一分片上添加了偏置量,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;所述溢出位指示所述偏置数据是否大于或等于所述第一值;
81.转换单元,用于根据两个本方分片和所述溢出单元得到的两个溢出分片,得到在所述第二环中的两个转换后分片。
82.第八方面,提供了一种保护隐私数据的安全分片转换装置,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,该装置设置于所述第一方或第三方,包括:
83.偏置单元,用于通过对所述第一分片增加偏置量,更新本方持有的两个本方分片,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;
84.获取单元,用于获取随机数对应于本方的两组随机分片,以及所述随机数的最高位在对第二值取模的第二环中的两个高位分片;其中,所述第二值为2的n次幂,m小于n;
85.溢出单元,用于利用所述偏置单元得到的更新后的两个本方分片、所述获取单元
获取的两组随机分片和所述两个高位分片,通过与其他两方进行多方联合计算,得到溢出位在第二环中的两个溢出分片;所述溢出位用于指示所述偏置数据与随机数的和是否大于或等于所述第一值;
86.转换单元,用于根据所述溢出单元得到的两个溢出分片、所述获取单元获取的两组随机分片,以及所述偏置量,得到在所述第二环中的两个转换后分片。
87.第九方面,提供了一种保护隐私数据的安全分片转换装置,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,该装置设置于所述第二方,包括:
88.获取单元,用于获取随机数对应于本方的两组随机分片,以及所述随机数的最高位在对第二值取模的第二环中的两个高位分片;其中,所述第二值为2的n次幂,m小于n;
89.溢出单元,用于利用本方持有的两个分片、所述获取单元获取的两组随机分片和所述两个高位分片,与其他两方的更新分片进行多方联合计算,得到溢出位在第二环中的两个溢出分片;所述其他两方的更新分片在第一分片上添加了偏置量,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;所述溢出位用于指示所述偏置数据与随机数的和是否大于或等于所述第一值;
90.转换单元,用于根据所述溢出单元得到的两个溢出分片、所述获取单元获取的两组随机分片,得到在所述第二环中的两个转换后分片。
91.第十方面,提供了一种保护隐私数据的安全分片转换装置,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的n次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,所述装置设置于所述第一方、所述第二方和所述第三方中的任一方,包括:
92.取模单元,用于对本方持有的两个本方分片进行针对第二值的取模操作,得到所述隐私数据在对第二值取模的第二环中的两个转换后分片;所述第二值为2的m次幂;其中,m小于n。
93.第十一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面至第五方面中任一方面的方法。
94.第十二方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面至第五方面中任一方面的方法。
95.通过本说明书实施例提供的一种方法和装置,该方法用于实现小环到大环的分片扩展。首先基于三方的复制秘密共享的场景,由第一方或第三方通过对第一分片增加偏置量,更新本方持有的两个本方分片,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;然后第一方或第三方利用更新后的两个本方分片,与其他两方持有的分片进行多方联合计算,得到溢出位的两个溢出分片;其他两方也分别得到各自持有的溢出位的两个溢出分片,所述溢出位指示所述偏置数据是否大于或等于所述第一值;最后第一方或第三方根据更新后的两个本方分片、两个溢出分片以及所述偏置量,得到两个转换后分片;相应地,第二方根据两个本方分片和两个溢出分片,得到两个转换后分片。由上可见,本说
明书实施例,初始的时候,给隐私数据增加一个偏置量,使得偏置数据为一个正数,从而能够同时处理隐私数据为有符号整数和无符号整数两种情况。后续,通过多方联合计算得到溢出位的溢出分片,基于该溢出分片,从偏置数据中将潜在的溢出减去,以及将初始加的偏置量的影响消去,即得到期望的输出,该实施例通过直接计算溢出位实现分片扩展,能够既保护隐私数据,又具有高效率。
96.通过本说明书实施例提供的另一种方法和装置,该方法用于实现小环到大环的分片扩展。首先基于三方的复制秘密共享的场景,由第一方或第三方通过对第一分片增加偏置量,更新本方持有的两个本方分片,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;然后各方获取随机数对应于本方的两组随机分片,以及所述随机数的最高位的两个高位分片;接着第一方或第三方利用更新后的两个本方分片、所述两组随机分片和所述两个高位分片,通过与其他两方进行多方联合计算,得到溢出位的两个溢出分片;其他两方也分别得到各自持有的溢出位的两个溢出分片,所述溢出位用于指示所述偏置数据与随机数的和是否大于或等于所述第一值;最后第一方或第三方根据所述两个溢出分片、两组随机分片,以及所述偏置量,得到两个转换后分片;相应地,第二方根据两个溢出分片、两组随机分片,得到两个转换后分片。由上可见,本说明书实施例,初始的时候,给隐私数据增加一个偏置量,使得偏置数据为一个正数,从而能够同时处理隐私数据为有符号整数和无符号整数两种情况。后续,通过多方联合计算得到溢出位的溢出分片,该多方联合计算利用随机数对偏置数据进行了遮蔽,基于该溢出分片,从偏置数据中将潜在的溢出减去,以及将初始加的偏置量的影响消去,即得到期望的输出,该实施例通过随机数间接计算溢出位实现分片扩展,随机数可以在预计算阶段生成,从而减少在线阶段的开销,能够既保护隐私数据,又具有高效率。
97.通过本说明书实施例提供的另一种方法和装置,该方法用于实现大环到小环的分片减小。基于三方的复制秘密共享的场景,由三方中的任一方对本方持有的两个本方分片进行针对第二值的取模操作,得到所述隐私数据的两个转换后分片。由上可见,本说明书实施例,各方对本地持有的分片进行取模操作,即可实现分片减小,能够既保护隐私数据,又具有高效率。
附图说明
98.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
99.图1为本说明书披露的一个实施例的实施场景示意图;
100.图2示出根据一个实施例的保护隐私数据的安全分片转换方法流程图;
101.图3示出根据另一个实施例的保护隐私数据的安全分片转换方法流程图;
102.图4示出根据另一个实施例的保护隐私数据的安全分片转换方法流程图;
103.图5示出根据另一个实施例的保护隐私数据的安全分片转换方法流程图;
104.图6示出根据一个实施例的保护隐私数据的安全分片转换装置的示意性框图;
105.图7示出根据另一个实施例的保护隐私数据的安全分片转换装置的示意性框图;
106.图8示出根据另一个实施例的保护隐私数据的安全分片转换装置的示意性框图;
107.图9示出根据另一个实施例的保护隐私数据的安全分片转换装置的示意性框图。
具体实施方式
108.下面结合附图,对本说明书提供的方案进行描述。
109.图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及保护隐私数据的安全分片转换。可以理解的是,分片转换,用于将一个秘密的分片在不同大小的环上进行转换,包含从大环到小环的分片减小,从小环到大环的分片扩展。其中,上述秘密即隐私数据,安全分片转换需要保证隐私数据不会泄露,上述分片即秘密的一部分,是秘密共享中的分片。如图1所示,保护隐私数据的安全分片转换的场景涉及参与方a、参与方b、参与方c,或称为第一方、第二方、第三方,或称为a方、b方、c方,或称为p0、p1、p2。各个参与方可以实现为任何具有计算、处理能力的设备、平台、服务器或设备集群。各方要在保护数据隐私的情况下,联合实现分片转换。
110.实际的计算场景,如机器学习通常基于浮点数运算,然而使用秘密共享实现安全浮点数运算会导致较高的开销,效率难以满足实际的计算需求,因此通常的做法是使用定点数来近似浮点数,在一定精度损失的前提下,取得较大的效率优化。秘密共享协议通常定义在环或者域上,各有优劣。环上的计算由于其取模操作能够隐式地由硬件负责,相较于域上计算需要手动取模,计算效率更高。
111.本说明书实施例中,定点数可以被映射到环中进行运算。映射构造过程如下:假设x为一个有理数,需要将映射到整数域,令其中f为精度位数,即小数部分的位数,int(
·
)为四舍五入取整。接着对x进行模运算,使得其中k表示x的比特位数,将输入映射到的环上。
112.其中,分片转换涉及定点数的算术分享在不同大小的环上,即分别对应不同的参数k和f。此外,还结合了布尔分享,其计算在环上。
113.本说明书实施例中,涉及三个计算方p0、p1、p2,秘密输入x拆分为三个分片(x0,x1,x2),满足pi持有(xi,x
i+1
),以及x=(x0+x1+x2)mod 2k。
114.本说明书实施例可以对应于一种基于三方的复制秘密分享协议的安全高效分片转换协议,用于实现大环到小环的分片减小,或者小环到大环的分片扩展。举例来说,两个环分别为其中,从大环到小环的分片减小从小环到大环的分片扩展
115.以从大环到小环的分片减小为例,a方持有的环上的隐私数据x的两个分片x0,x1,b方持有的环上的隐私数据x的两个分片x1,x2,c方持有的环上的隐私数据x的两个分片x2,x0,也就是说,x=(x0+x1+x2)mod 2n;在不暴露隐私数据x的前提下求各方分别持有的的环上的隐私数据x的两个分片,从而实现安全分片转换,也就是说,需要求得a方持有的环上的隐私数据x的两个分片x0',x1',b方持有的环上的隐私数据x的两个分片x1',x2',c方持有的环上的隐私数据x的两个分片x2',x0',即满足,x=(x0'+
x1'+x2')mod 2m,或者,(x0+x1+x2)mod 2n=(x0'+x1'+x2')mod 2m。
116.对于从小环到大环的分片扩展与前述说明类似,在此不做赘述。
117.本说明书实施例,通过安全多方计算来实现安全分片转换。该方案用于三方,每方pi都有隐私数据的第一环的两个分片作为输入,表示为(xi,x
i+1
),三方一起想要计算隐私数据的第二环的两个分片,表示为(xi',x
i+1
'),而不泄露隐私数据。
118.本说明书实施例,针对在保护隐私数据的安全分片转换中提升转换效率,提出相应的解决方案。
119.本说明书实施例,可以用于各个场景的安全计算,例如机器学习模型的安全训练与安全预测。通过安全分片转换,可以灵活地针对不同子计算使用不同的精度、不同大小的环,进而减小通信开销,提高整体计算效率。
120.下面基于图1所示的实施场景,介绍如何实现从大环到小环的分片减小
121.考虑从大环到小环的分片减小由于m<n,因此(w*2n)mod 2m=0,其中w表示x在中的分片加和是否溢出2n。因此如下等式成立:
122.x=(x0+x1+x
2-w*2n)mod 2m123.=(x
0 mod 2m)+(x
1 mod 2m)+(x
2 mod 2m)
124.=(x0′
+x1′
+x2′
)mod 2m125.因此,能够得到即各方本地对持有的分片进行针对2m的取模操作,即可完成分片减小操作。可以理解的是,表示x在中的分片,表示x在中的分片,
126.本说明书实施例,提供了一种保护隐私数据的安全分片转换方法,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的n次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,所述方法由所述第一方、所述第二方和所述第三方中的任一方执行,包括:
127.对本方持有的两个本方分片进行针对第二值的取模操作,得到所述隐私数据在对第二值取模的第二环中的两个转换后分片;所述第二值为2的m次幂;其中,m小于n。
128.举例来说,三方中的任一方可以表示为pi,i∈[0,2],pi持有的分片记为(xi,x
i+1
),pi本地计算xi′
=x
i mod 2m,以及x
i+1

=x
i+1
mod 2m,从而使得(x0+x1+x2)mod 2n=(x0'+x1'+x2')mod 2m。
[0129]
通过本说明书实施例提供的方法,该方法用于实现大环到小环的分片减小。基于三方的复制秘密共享的场景,由三方中的任一方对本方持有的两个本方分片进行针对第二值的取模操作,得到所述隐私数据的两个转换后分片。由上可见,本说明书实施例,各方对本地持有的分片进行取模操作,即可实现分片减小,能够既保护隐私数据,又具有高效率。
[0130]
下面基于图1所示的实施场景,介绍如何实现从小环到大环的分片扩展
[0131]
考虑从小环到大环的分片扩展注意到此时由于m<n,因此(w*2m)mod 2n不一定等于0,需要显示地计算出这里的溢出位w。本说明书实施例提出了两种方式来高
效地计算w,一种方式是直接计算w,另一种方式是利用随机数间接计算w。基于得到的溢出位w实现分片扩展。假设输入x的取值范围为[-2
l-1
,2
l-1-1],l<m,即m比特的整数足够编码x。
[0132]
其中,直接计算w的方式如下:
[0133]
根据公式x=(x0+x1+x
2-w*2m)mod 2n,通过直接计算w完成分片扩展。为了同时处理有符号和无符号整数,首先给输入x加一个偏置2
l-1
,因此有x

=x+2
l-1
∈[0,2
l-1),一定为一个正数。接着,调用pos_wrap子协议计算得到w的分片,并将潜在的溢出减去,即xi′
=(xi′‑
wi*2m)mod 2n。最后需要将初始加的偏置的影响消去,因此将前面的结果减去偏置2
l-1
即得到期望的输出。
[0134]
接下来,对子协议pos_wrap进行介绍。
[0135]
此协议的输入为x在上的分片,输出为w在目标环上的分片。首先将2-out-of-3的复制秘密共享转换为2-out-of-2的加法秘密共享<x
′0,x1′
>,x
′0=x0,x1′
=(x1+x2)mod 2m,并由p1本地计算w0=(x1+x2)≥2m。p1接着使用复制秘密共享协议将w0进行分片并发送给其他计算方。此外还需要计算w1=(x0′
+x1′
)≥2m。根据等式可以计算得到,其中msb
x
表示x的最高位,msb0和msb1分别表示x
′0和x1′
的最高位。由于输入加了偏置,确保输入为正数,因此有msb
x
=0,上面等式可以简化为使用标准的布尔运算即可得到w1的布尔分享。接着使用b2a协议,将w1的布尔分享转化为算术分享,并计算w0和w1的加和即得到w在上的分片。
[0136]
图2示出根据一个实施例的保护隐私数据的安全分片转换方法流程图,该方法可以基于图1所示的实施场景,通过直接计算溢出位w的方式实现安全分片转换,隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,所述方法由所述第一方或第三方执行。如图2所示,该实施例中保护隐私数据的安全分片转换方法包括以下步骤:步骤21,通过对所述第一分片增加偏置量,更新本方持有的两个本方分片,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;步骤22,利用更新后的两个本方分片,与其他两方持有的分片进行多方联合计算,得到溢出位在对第二值取模的第二环中的两个溢出分片;其中,所述第二值为2的n次幂,m小于n;所述溢出位指示所述偏置数据是否大于或等于所述第一值;步骤23,根据更新后的两个本方分片、所述两个溢出分片以及所述偏置量,得到在所述第二环中的两个转换后分片。下面描述以上各个步骤的具体执行方式。
[0137]
首先在步骤21,通过对所述第一分片增加偏置量,更新本方持有的两个本方分片,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0。可以理解的是,隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,对第一分片增加偏置量,就是对隐私数据增加偏置量。
[0138]
可以理解的是,第一方和第三方都具有第一分片,二者对第一分片的操作是一致的。
[0139]
在一种可能的实施方式中,所述隐私数据的取值范围的下限为负的2的l-1次幂,
上限为2的l-1次幂减去1,l小于m;所述偏置量为2的l-1次幂。
[0140]
举例来说,隐私数据在第一环中的分片记为x0代表第一分片,x1代表第二分片,x2代表第三分片,增加偏置量2
l-1
,得到偏置数据在第一环中的分片记为
[0141]
然后在步骤22,利用更新后的两个本方分片,与其他两方持有的分片进行多方联合计算,得到溢出位在对第二值取模的第二环中的两个溢出分片;其中,所述第二值为2的n次幂,m小于n;所述溢出位指示所述偏置数据是否大于或等于所述第一值。可以理解的是,多方联合计算的输入包括偏置数据的分片、第一值和第二值。
[0142]
本说明书实施例,上述多方联合计算可以通过调用子协议pos_wrap来实现。举例来说,偏置数据在第一环中的分片记为则
[0143]
在一个示例中,所述多方联合计算,包括:
[0144]
本地构建更新后第一分片的第一最高位的两个第一布尔分片;
[0145]
从第二方接收第二最高位的两个第二布尔分片;所述第二最高位对应于第二分片与第三分片之和对所述第一值取模后的第一转换数据的最高位;
[0146]
利用所述两个第一布尔分片和两个第二布尔分片,与其他两方进行第一多方联合子计算,得到第一溢出位的两个第三布尔分片;其中,所述第一溢出位表示所述第一转换数据与更新后第一分片之和是否大于或等于所述第一值;
[0147]
利用所述两个第三布尔分片,与其他两方进行第二多方联合子计算,得到所述第一溢出位在所述第二环中的两个第一溢出分片;
[0148]
基于两个第一溢出分片进行本地计算,得到所述两个溢出分片。
[0149]
举例来说,第一分片为x0,第一分片的第一最高位为msb0=msb(x0),msb0的复制秘密共享形式的分片为(msb0,0,0),其中,第一方构建的两个第一布尔分片为(msb0,0),第三方构建的两个第一布尔分片为(0,msb0)。第一转换数据为x
′1=(x1+x2)mod 2m,第二最高位为msb1=msb(x
′1),第二布尔分片记为第一溢出位为第三布尔分片记为第一溢出分片记为
[0150]
进一步地,所述多方联合计算,还包括:
[0151]
从第二方接收第二溢出位在所述第二环中的两个第二溢出分片;所述第二溢出位表示所述第二分片与第三分片之和是否大于或等于所述第一值;
[0152]
所述基于两个第一溢出分片进行本地计算,得到所述两个溢出分片,包括:
[0153]
对第一溢出分片和第二溢出分片进行本地求和,得到所述两个溢出分片中的一个溢出分片。
[0154]
举例来说,第二溢出位为w0=(x1+x2)≥2m,第二溢出分片记为溢出分片
[0155]
最后在步骤23,根据更新后的两个本方分片、所述两个溢出分片以及所述偏置量,得到在所述第二环中的两个转换后分片。可以理解的是,在偏置数据的基础上,将潜在的溢出减去,再将初始加的偏置的影响消去,就得到期望的输出。
[0156]
在一个示例中,所述得到在所述第二环中的两个转换后分片,包括:
[0157]
针对每个更新后的本方分片,根据对应的溢出分片与第一值的乘积,在第二环中进行运算,得到对应的中间分片;
[0158]
将第一分片对应的中间分片减去所述偏置量,得到其在所述第二环中的转换后分片;将另一中间分片作为另一转换后分片。
[0159]
举例来说,的溢出分片记为wi,更新后的本方分片记为xi′
,中间分片为xi′
=(xi′‑
wi*2m)mod 2n,转换后分片第一方得到的转换后分片为(x0′‑2l-1
,x1′
),第三方得到的转换后分片为(x2′
,x0′‑2l-1
)。
[0160]
图3示出根据另一个实施例的保护隐私数据的安全分片转换方法流程图,该方法可以基于图1所示的实施场景,通过直接计算溢出位w的方式实现安全分片转换,隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,所述方法由所述第二方执行。如图3所示,该实施例中保护隐私数据的安全分片转换方法包括以下步骤:步骤31,利用本方持有的两个分片,与其他两方的更新分片进行多方联合计算,得到溢出位在对第二值取模的第二环中的两个溢出分片;其中,所述第二值为2的n次幂,m小于n;所述其他两方的更新分片在第一分片上添加了偏置量,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;所述溢出位指示所述偏置数据是否大于或等于所述第一值;步骤32,根据两个本方分片和所述两个溢出分片,得到在所述第二环中的两个转换后分片。下面描述以上各个步骤的具体执行方式。
[0161]
首先在步骤31,利用本方持有的两个分片,与其他两方的更新分片进行多方联合计算,得到溢出位在对第二值取模的第二环中的两个溢出分片;其中,所述第二值为2的n次幂,m小于n;所述其他两方的更新分片在第一分片上添加了偏置量,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;所述溢出位指示所述偏置数据是否大于或等于所述第一值。可以理解的是,多方联合计算的输入包括偏置数据的分片、第一值和第二值。
[0162]
可以理解的是,隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,对第一分片增加偏置量,就是对隐私数据增加偏置量。
[0163]
在一种可能的实施方式中,所述隐私数据的取值范围的下限为负的2的l-1次幂,上限为2的l-1次幂减去1,l小于m;所述偏置量为2的l-1次幂。
[0164]
举例来说,隐私数据在第一环中的分片记为x0代表第一分片,x1代表第二分片,x2代表第三分片,增加偏置量2
l-1
,得到偏置数据在第一环中的分片记为第二方持有的两个分片(x1,x2)没有变化。
[0165]
本说明书实施例,上述多方联合计算可以通过调用子协议pos_wrap来实现。举例来说,偏置数据在第一环中的分片记为则
[0166]
在一个示例中,所述多方联合计算,包括:
[0167]
选取约定的两个布尔值作为本地构建的所述第一分片的第一最高位的两个第一
布尔分片;
[0168]
本地计算第二最高位;所述第二最高位对应于第二分片与第三分片之和对所述第一值取模后的第一转换数据的最高位;
[0169]
本地构建第二最高位的三个第二布尔分片,保留其中的两个第二布尔分片,并将其布尔分片以秘密共享的方式共享给其他两方;
[0170]
利用所述两个第一布尔分片和两个第二布尔分片,与其他两方进行第一多方联合子计算,得到第一溢出位的两个第三布尔分片;其中,所述第一溢出位表示所述第一转换数据与更新后第一分片之和是否大于或等于所述第一值;
[0171]
利用所述两个第三布尔分片,与其他两方进行第二多方联合子计算,得到所述第一溢出位在所述第二环中的两个第一溢出分片;
[0172]
基于两个第一溢出分片进行本地计算,得到所述两个溢出分片。
[0173]
举例来说,第一分片为x0,第一分片的第一最高位为msb0=msb(x0),msb0的复制秘密共享形式的分片为(msb0,0,0),其中,第二方构建的两个第一布尔分片为(0,0)。第一转换数据为x
′1=(x1+x2)mod 2m,第二最高位为msb1=msb(x
′1),第二布尔分片记为第一溢出位为第三布尔分片记为第一溢出分片记为
[0174]
进一步地,所述多方联合计算,还包括:
[0175]
本地计算第二溢出位;所述第二溢出位表示所述第二分片与第三分片之和是否大于或等于所述第一值;
[0176]
本地构建第二溢出位在所述第二环中的三个第二溢出分片,保留其中的两个第二溢出分片,并将其溢出分片以秘密共享的方式共享给其他两方;
[0177]
所述基于两个第一溢出分片进行本地计算,得到所述两个溢出分片,包括:
[0178]
对第一溢出分片和第二溢出分片进行本地求和,得到所述两个溢出分片中的一个溢出分片。
[0179]
举例来说,第二溢出位为w0=(x1+x2)≥2m,第二溢出分片记为溢出分片
[0180]
然后在步骤32,根据两个本方分片和所述两个溢出分片,得到在所述第二环中的两个转换后分片。可以理解的是,第二方持有的两个本方分片并未收到偏置的影响,在偏置数据的基础上,将潜在的溢出减去,就得到期望的输出。
[0181]
在一个示例中,所述得到在所述第二环中的两个转换后分片,包括:
[0182]
针对每个本方分片,根据对应的溢出分片与第一值的乘积,在第二环中进行运算,得到其在所述第二环中的转换后分片。
[0183]
举例来说,的溢出分片记为wi,更新后的本方分片记为x
′i,中间分片为x
′i=(x

i-wi*2m)mod 2n,转换后分片第二方得到的转换后分片为(x
′1,x
′2),即上述中间分片。
[0184]
通过本说明书实施例提供的方法,该方法用于实现小环到大环的分片扩展。首先
基于三方的复制秘密共享的场景,由第一方或第三方通过对第一分片增加偏置量,更新本方持有的两个本方分片,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;然后第一方或第三方利用更新后的两个本方分片,与其他两方持有的分片进行多方联合计算,得到溢出位的两个溢出分片;其他两方也分别得到各自持有的溢出位的两个溢出分片,所述溢出位指示所述偏置数据是否大于或等于所述第一值;最后第一方或第三方根据更新后的两个本方分片、两个溢出分片以及所述偏置量,得到两个转换后分片;相应地,第二方根据两个本方分片和两个溢出分片,得到两个转换后分片。由上可见,本说明书实施例,初始的时候,给隐私数据增加一个偏置量,使得偏置数据为一个正数,从而能够同时处理隐私数据为有符号整数和无符号整数两种情况。后续,通过多方联合计算得到溢出位的溢出分片,基于该溢出分片,从偏置数据中将潜在的溢出减去,以及将初始加的偏置量的影响消去,即得到期望的输出,该实施例通过直接计算溢出位实现分片扩展,能够既保护隐私数据,又具有高效率。
[0185]
其中,利用随机数间接计算w的方式如下:
[0186]
利用预计算生成的随机数优化在线的开销。为了同时处理有符号和无符号整数,首先给输入x加一个偏置2
l-1
,因此有x

=x+2
l-1
∈[0,2
l-1),一定为一个正数。然后使用子协议mixed_share预先构造随机数在不同大小的环上的分片。接着使用这些随机数对秘密输入进行遮蔽和揭示(mask-and-reveal)的操作,并将潜在的加和溢出项减去。最后需要将初始加的偏置的影响消去,因此将前面的结果减去偏置2
l-1
即得到分片扩展的输出。
[0187]
可以理解的是,有如下等式成立:
[0188]
x=((x+r)mod 2
m-r)mod 2n[0189]
=(y+w*2
m-r)mod 2n。
[0190]
其中,y=(x+r)mod 2m,w=x+r≧2m。由于m<n,因此(w*2m)mod 2n不一定等于0,需要显示地计算w。由于x为正数,因此有等式由于y是遮蔽(mask)之后的值,可以恢复成明文形式,因此y
m-1
可以直接得到。而r
m-1
表示生成的随机数的最高位,也可以在预计算时拿到。因此可以直接将r
m-1
和相乘得到w。将溢出项减去的结果可以计算为x=y-r+w*2m。
[0191]
接下来介绍子协议mixed_share。
[0192]
此协议是利用随机比特生成协议randombit构造出m个在上的随机比特分片,通过计算得到一个在上的m位的随机数的分片。接着调用分片减小协议,将上述在上的随机数分片转换为在上的分片,这一步是不需要开销的。最后将r在两个环上的分片以及r最高位在上的分片输出。
[0193]
图4示出根据另一个实施例的保护隐私数据的安全分片转换方法流程图,该方法可以基于图1所示的实施场景,通过利用随机数间接计算溢出位w的方式实现安全分片转换,隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,所述方法由所述第一方或第三方执行。如图4所示,该实施例中保护隐私数据的安全分片转换方法包括以下步骤:步骤41,
通过对所述第一分片增加偏置量,更新本方持有的两个本方分片,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;步骤42,获取随机数对应于本方的两组随机分片,以及所述随机数的最高位在对第二值取模的第二环中的两个高位分片;其中,所述第二值为2的n次幂,m小于n;步骤43,利用更新后的两个本方分片、所述两组随机分片和所述两个高位分片,通过与其他两方进行多方联合计算,得到溢出位在第二环中的两个溢出分片;所述溢出位用于指示所述偏置数据与随机数的和是否大于或等于所述第一值;步骤44,根据所述两个溢出分片、两组随机分片,以及所述偏置量,得到在所述第二环中的两个转换后分片。下面描述以上各个步骤的具体执行方式。
[0194]
首先在步骤41,通过对所述第一分片增加偏置量,更新本方持有的两个本方分片,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0。可以理解的是,隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,对第一分片增加偏置量,就是对隐私数据增加偏置量。
[0195]
可以理解的是,第一方和第三方都具有第一分片,二者对第一分片的操作是一致的。
[0196]
在一种可能的实施方式中,所述隐私数据的取值范围的下限为负的2的l-1次幂,上限为2的l-1次幂减去1,l小于m;所述偏置量为2的l-1次幂。
[0197]
举例来说,隐私数据在第一环中的分片记为x0代表第一分片,x1代表第二分片,x2代表第三分片,增加偏置量2
l-1
,得到偏置数据在第一环中的分片记为
[0198]
然后在步骤42,获取随机数对应于本方的两组随机分片,以及所述随机数的最高位在对第二值取模的第二环中的两个高位分片;其中,所述第二值为2的n次幂,m小于n。可以理解的是,随机数可以是预先生成的,两组随机分片可以是随机数在不同大小的环上的分片。
[0199]
在一个示例中,所述两组随机分片包括,所述随机数在所述第一环中的两个第一随机分片,以及在第二环中的两个第二随机分片。
[0200]
举例来说,随机数为r,第一随机分片记为第二随机分片记为r属于区间[0,2m),高位分片记为
[0201]
进一步地,所述两个第一随机分片、两个第二随机分片、两个高位分片采用如下方式预先生成:
[0202]
与其他两方,通过多方联合子计算,在第二环中生成m个比特位中每个比特位的两个随机比特分片;所述m个比特位对应于所述随机数的各个位;
[0203]
根据本方持有的随机比特分片,本地计算得到第二环中的随机数的两个第二随机分片;
[0204]
基于本方持有的随机数的两个第二随机分片,通过本地计算得到所述两个第一随机分片。
[0205]
本说明书实施例,随机数可以通过调用子协议mixed_share来预先生成。举例来说,首先生成随机比特分片然后pi本地计算
其中,i∈{0,1,2};最后通过调用分片减小协议将转换为
[0206]
进一步地,所述通过本地计算得到所述两个第一随机分片,包括:
[0207]
对于本方持有的随机数的两个第二随机分片分别进行针对所述第一值的取模操作,得到所述两个第一随机分片。
[0208]
举例来说,三方中的任一方可以表示为pi,i∈[0,2],pi持有的分片记为(xi,x
i+1
),pi本地计算xi′
=x
i mod 2m,以及x
i+1

=x
i+1
mod 2m,从而使得(x0+x1+x2)mod 2n=(x0'+x1'+x2')mod 2m。
[0209]
接着在步骤43,利用更新后的两个本方分片、所述两组随机分片和所述两个高位分片,通过与其他两方进行多方联合计算,得到溢出位在第二环中的两个溢出分片;所述溢出位用于指示所述偏置数据与随机数的和是否大于或等于所述第一值。可以理解的是,利用随机数遮蔽的数据可以公开给各方。
[0210]
在一个示例中,所述两组随机分片包括,所述随机数在所述第一环中的两个第一随机分片,以及在第二环中的两个第二随机分片;
[0211]
所述得到溢出位在第二环中的两个溢出分片,包括:
[0212]
利用更新后的两个本方分片和两个第一随机分片,与其他两方进行第一联合计算,得到混淆数据;
[0213]
根据所述混淆数据的最高位和所述两个高位分片,本地计算得到所述两个溢出分片。
[0214]
举例来说,本方分片表示为第一随机分片表示为混淆数据y=x+r,高位分片表示为混淆数据的最高位表示为y
m-1

[0215]
进一步地,所述第一联合计算,包括:
[0216]
本地计算所述更新后的两个本方分片与两个第一随机分片的对应求和,得到两个本地混淆分片;
[0217]
从其他两方中的任一方接收所述两个本地混淆分片之外的交互混淆分片;
[0218]
对所述两个本地混淆分片和交互混淆分片进行本地求和,得到所述混淆数据。
[0219]
举例来说,第一方得到的两个本地混淆分片表示为y0、y1,第二方得到的两个本地混淆分片表示为y1、y2,第三方得到的两个本地混淆分片表示为y2、y0,第一方从第二方或第三方获得交互混淆分片y2,对y0、y1、y2求和得到混淆数据y。
[0220]
最后在步骤44,根据所述两个溢出分片、两组随机分片,以及所述偏置量,得到在所述第二环中的两个转换后分片。可以理解的是,在偏置数据的基础上,将潜在的溢出减去,再将初始加的偏置的影响消去,就得到期望的输出。
[0221]
在一个示例中,所述两组随机分片包括,所述随机数在所述第一环中的两个第一随机分片,以及在第二环中的两个第二随机分片;
[0222]
所述得到溢出位在第二环中的两个溢出分片,包括:
[0223]
利用更新后的两个本方分片和两个第一随机分片,与其他两方进行第一联合计算,得到混淆数据;
[0224]
根据所述混淆数据的最高位和所述两个高位分片,本地计算得到所述两个溢出分片。
[0225]
进一步地,所述得到在所述第二环中的两个转换后分片,包括:
[0226]
根据所述混淆数据、两个第二随机分片、两个溢出分片,本地计算得到两个中间分片;
[0227]
将第一分片对应的中间分片减去所述偏置量,得到其在第二环中的转换后分片;将另一中间分片作为另一转换后分片。
[0228]
举例来说,混淆数据为y,第二随机分片为溢出分片为中间分片为第一方和第三方均有第一分片对应的中间分片,将该中间分片减去所述偏置量,得到其在第二环中的转换后分片。
[0229]
图5示出根据另一个实施例的保护隐私数据的安全分片转换方法流程图,该方法可以基于图1所示的实施场景,通过利用随机数间接计算溢出位w的方式实现安全分片转换,隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,所述方法由所述第二方执行。如图5所示,该实施例中保护隐私数据的安全分片转换方法包括以下步骤:步骤51,获取随机数对应于本方的两组随机分片,以及所述随机数的最高位在对第二值取模的第二环中的两个高位分片;其中,所述第二值为2的n次幂,m小于n;步骤52,利用本方持有的两个分片、所述两组随机分片和所述两个高位分片,与其他两方的更新分片进行多方联合计算,得到溢出位在第二环中的两个溢出分片;所述其他两方的更新分片在第一分片上添加了偏置量,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;所述溢出位用于指示所述偏置数据与随机数的和是否大于或等于所述第一值;步骤53,根据所述两个溢出分片、两组随机分片,得到在所述第二环中的两个转换后分片。下面描述以上各个步骤的具体执行方式。
[0230]
首先在步骤51,获取随机数对应于本方的两组随机分片,以及所述随机数的最高位在对第二值取模的第二环中的两个高位分片;其中,所述第二值为2的n次幂,m小于n。可以理解的是,随机数可以是预先生成的,两组随机分片可以是随机数在不同大小的环上的分片。
[0231]
在一个示例中,所述两组随机分片包括,所述随机数在所述第一环中的两个第一随机分片,以及在第二环中的两个第二随机分片。
[0232]
举例来说,随机数为r,第一随机分片记为第二随机分片记为r属于区间[0,2m),高位分片记为
[0233]
本说明书实施例,对于随机数的生成方式在针对图4所示实施例中已有描述,在此不做赘述。
[0234]
然后在步骤52,利用本方持有的两个分片、所述两组随机分片和所述两个高位分片,与其他两方的更新分片进行多方联合计算,得到溢出位在第二环中的两个溢出分片;所述其他两方的更新分片在第一分片上添加了偏置量,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;所述溢出位用于指示所述偏置数据与随机数的和是否大于或等于所述第一值。可以理解的是,利用随机数遮蔽的数据可以公开给各方。
[0235]
在一个示例中,所述两组随机分片包括,所述随机数在所述第一环中的两个第一随机分片,以及在第二环中的两个第二随机分片;
[0236]
所述得到溢出位在第二环中的两个溢出分片,包括:
[0237]
利用本方持有的两个分片和两个第一随机分片,与其他两方的更新分片进行第一联合计算,得到混淆数据;
[0238]
根据所述混淆数据的最高位和所述两个高位分片,本地计算得到所述两个溢出分片。
[0239]
举例来说,本方分片表示为第一随机分片表示为混淆数据y=x+r,高位分片表示为混淆数据的最高位表示为y
m-1
。可以理解的是,本方持有的两个分片即第二分片和第三分片,由于偏置量加在第一分片上,因此第二方持有的分片不受偏置的影响。
[0240]
最后在步骤53,根据所述两个溢出分片、两组随机分片,得到在所述第二环中的两个转换后分片。可以理解的是,第二方持有的两个本方分片并未收到偏置的影响,在偏置数据的基础上,将潜在的溢出减去,就得到期望的输出。
[0241]
在一个示例中,所述得到在所述第二环中的两个转换后分片,包括:
[0242]
根据所述混淆数据、两个第二随机分片、两个溢出分片,本地计算得到所述两个转换后分片。
[0243]
举例来说,混淆数据为y,第二随机分片为溢出分片为转换后分片为
[0244]
通过本说明书实施例提供的方法,该方法用于实现小环到大环的分片扩展。首先基于三方的复制秘密共享的场景,由第一方或第三方通过对第一分片增加偏置量,更新本方持有的两个本方分片,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;然后各方获取随机数对应于本方的两组随机分片,以及所述随机数的最高位的两个高位分片;接着第一方或第三方利用更新后的两个本方分片、所述两组随机分片和所述两个高位分片,通过与其他两方进行多方联合计算,得到溢出位的两个溢出分片;其他两方也分别得到各自持有的溢出位的两个溢出分片,所述溢出位用于指示所述偏置数据与随机数的和是否大于或等于所述第一值;最后第一方或第三方根据所述两个溢出分片、两组随机分片,以及所述偏置量,得到两个转换后分片;相应地,第二方根据两个溢出分片、两组随机分片,得到两个转换后分片。由上可见,本说明书实施例,初始的时候,给隐私数据增加一个偏置量,使得偏置数据为一个正数,从而能够同时处理隐私数据为有符号整数和无符号整数两种情况。后续,通过多方联合计算得到溢出位的溢出分片,该多方联合计算利用随机数对偏置数据进行了遮蔽,基于该溢出分片,从偏置数据中将潜在的溢出减去,以及将初始加的偏置量的影响消去,即得到期望的输出,该实施例通过随机数间接计算溢出位实现分片扩展,随机数可以在预计算阶段生成,从而减少在线阶段的开销,能够既保护隐私数据,又具有高效率。
[0245]
下面对本说明书前述实施例中使用到的常规计算原语进行简单说明,包括:
[0246]
加法运算和常数乘法运算,可以直接根据原始的加法秘密共享协议完成。每一个参与方只需要在本地进行计算即可;
[0247]
乘法运算,一个定点数乘法操作包含两个关键计算;首先,参与方使用标准的乘法协议完成整数乘法运算;在乘法计算完成后,由于定点数数据的精度有限,还需要对计算结果进行截断操作;使用truncation协议对精度翻倍后的数据进行截断:截去数据的末f位数据,即除以2f;
[0248]
比较运算,使用msb协议判断输入的最高位为0还是1,进而判断输入的正负性;
[0249]
布尔运算,使用and和xor协议分别计算二元输入的与操作和异或操作;
[0250]
算术布尔转换运算,使用b2a协议将一个数的布尔分享转换为算术分享;
[0251]
随机比特生成,使用randombit协议得到随机比特b∈{0,1}在环上的分片。
[0252]
本说明书实施例提出的基于秘密共享的安全分片转换方法可以安全、正确地完成分片在不同大小的环上的相互转换,并且通信量相较通常的方案有较大减少,能够以常数轮的通信回合数完成计算,在实际的应用场景中更加高效,相较通常的方案效率上有量级的提升。本说明书实施例提出的基于秘密共享的安全分片转换方法可以作为底层协议应用到不同的计算场景中,动态调整不同子计算的环大小,优化效率。
[0253]
根据另一方面的实施例,还提供一种保护隐私数据的安全分片转换装置,该装置用于执行本说明书实施例提供的用于实现分片减小的方法,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的n次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,所述装置设置于所述第一方、所述第二方和所述第三方中的任一方,包括:
[0254]
取模单元,用于对本方持有的两个本方分片进行针对第二值的取模操作,得到所述隐私数据在对第二值取模的第二环中的两个转换后分片;所述第二值为2的m次幂;其中,m小于n。
[0255]
根据另一方面的实施例,还提供一种保护隐私数据的安全分片转换装置,该装置用于执行本说明书图2所示实施例提供的方法,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,所述装置设置于所述第一方或第三方。图6示出根据一个实施例的保护隐私数据的安全分片转换装置的示意性框图。如图6所示,该装置600包括:
[0256]
偏置单元61,用于通过对所述第一分片增加偏置量,更新本方持有的两个本方分片,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;
[0257]
溢出单元62,用于利用所述偏置单元61得到的更新后的两个本方分片,与其他两方持有的分片进行多方联合计算,得到溢出位在对第二值取模的第二环中的两个溢出分片;其中,所述第二值为2的n次幂,m小于n;所述溢出位指示所述偏置数据是否大于或等于所述第一值;
[0258]
转换单元63,用于根据所述偏置单元61得到的更新后的两个本方分片、所述溢出单元62得到的两个溢出分片以及所述偏置量,得到在所述第二环中的两个转换后分片。
[0259]
根据另一方面的实施例,还提供一种保护隐私数据的安全分片转换装置,该装置用于执行本说明书图3所示实施例提供的方法,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分
片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,所述装置设置于所述第二方。图7示出根据另一个实施例的保护隐私数据的安全分片转换装置的示意性框图。如图7所示,该装置700包括:
[0260]
溢出单元71,用于利用本方持有的两个分片,与其他两方的更新分片进行多方联合计算,得到溢出位在对第二值取模的第二环中的两个溢出分片;其中,所述第二值为2的n次幂,m小于n;所述其他两方的更新分片在第一分片上添加了偏置量,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;所述溢出位指示所述偏置数据是否大于或等于所述第一值;
[0261]
转换单元72,用于根据两个本方分片和所述溢出单元71得到的两个溢出分片,得到在所述第二环中的两个转换后分片。
[0262]
根据另一方面的实施例,还提供一种保护隐私数据的安全分片转换装置,该装置用于执行本说明书图4所示实施例提供的方法,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,所述装置设置于所述第一方或第三方。图8示出根据另一个实施例的保护隐私数据的安全分片转换装置的示意性框图。如图8所示,该装置800包括:
[0263]
偏置单元81,用于通过对所述第一分片增加偏置量,更新本方持有的两个本方分片,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;
[0264]
获取单元82,用于获取随机数对应于本方的两组随机分片,以及所述随机数的最高位在对第二值取模的第二环中的两个高位分片;其中,所述第二值为2的n次幂,m小于n;
[0265]
溢出单元83,用于利用所述偏置单元81得到的更新后的两个本方分片、所述获取单元82获取的两组随机分片和所述两个高位分片,通过与其他两方进行多方联合计算,得到溢出位在第二环中的两个溢出分片;所述溢出位用于指示所述偏置数据与随机数的和是否大于或等于所述第一值;
[0266]
转换单元84,用于根据所述溢出单元83得到的两个溢出分片、所述获取单元82获取的两组随机分片,以及所述偏置量,得到在所述第二环中的两个转换后分片。
[0267]
根据另一方面的实施例,还提供一种保护隐私数据的安全分片转换装置,该装置用于执行本说明书图5所示实施例提供的方法,所述隐私数据被拆分为对第一值取模的第一环中的第一分片、第二分片和第三分片,所述第一值为2的m次幂;第一方持有所述第一分片和所述第二分片,第二方持有所述第二分片和所述第三分片,第三方持有所述第三分片和所述第一分片,所述装置设置于所述第二方。图9示出根据另一个实施例的保护隐私数据的安全分片转换装置的示意性框图。如图9所示,该装置900包括:
[0268]
获取单元91,用于获取随机数对应于本方的两组随机分片,以及所述随机数的最高位在对第二值取模的第二环中的两个高位分片;其中,所述第二值为2的n次幂,m小于n;
[0269]
溢出单元92,用于利用本方持有的两个分片、所述获取单元91获取的两组随机分片和所述两个高位分片,与其他两方的更新分片进行多方联合计算,得到溢出位在第二环中的两个溢出分片;所述其他两方的更新分片在第一分片上添加了偏置量,所述偏置量使得更新后各方分片加和得到的偏置数据大于或等于0;所述溢出位用于指示所述偏置数据与随机数的和是否大于或等于所述第一值;
[0270]
转换单元93,用于根据所述溢出单元92得到的两个溢出分片、所述获取单元91获取的两组随机分片,得到在所述第二环中的两个转换后分片。
[0271]
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2至图5中任一所描述的方法。
[0272]
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2至图5中任一所描述的方法。
[0273]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
[0274]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1