本发明涉及信息安全,特别涉及一种安全多方计算方法、装置、设备、介质及计算机程序产品。
背景技术:
1、安全多方计算(secure multi-party computation,mpc)是一种重要的隐私计算技术,它允许多个参与方在不泄露数据隐私的前提下协同计算某个约定的函数。
2、在安全多方计算方案中通常采用秘密分享技术,shamir(沙米尔)秘密分享是最常用的秘密分享技术之一,它通过将秘密数据作为常数项隐藏于某个秘密选取的多项式(shamir多项式)中,然后计算该多项式在若干点处的函数值(秘密份额),即得到秘密数据的一个shamir分享,只有获得足够多的秘密份额才能恢复秘密数据。在shamir秘密分享技术中,加法运算比较简单,参与方之间无需交互,在本地即可完成,乘法运算则相对复杂,原因是在初始shamir多项式次数选定的情况下,参与方数量限制了在本地进行乘法运算的次数。为了解决shamir多项式次数随乘法运算深度呈指数增长的问题,参与方之间需要进行频繁的交互,以便对中间过程的shamir多项式进行降阶,这就导致参与方之间的通信开销过大,在较差的网络环境中难以保障安全多方计算技术的稳定性和可靠性。此外,现有的安全多方计算技术通常致力于解决数据在使用过程中的隐私保护问题,但很少考虑计算模型(或任务函数)的隐私性问题,也即当前对于计算模型的隐私性保护还存在不足。
3、综上,如何减少安全多方计算过程中的计算和通信开销,并保障计算模型隐私性是目前有待解决的问题。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种安全多方计算方法、装置、设备、介质及计算机程序产品,能够减少安全多方计算过程中的计算和通信开销,并保障计算模型隐私性。其具体方案如下:
2、第一方面,本技术公开了一种安全多方计算方法,应用于计算方,包括:
3、获取各数据方通过沙米尔秘密分享方式分享的秘密数据的秘密份额;
4、按照预设规则对各所述秘密份额进行处理,并将处理结果发送至需求方,以便所述需求方根据所述处理结果构建所述秘密数据的高阶幂的加法分解式;其中,所述高阶幂的阶数为第一预设阶数阈值;
5、获取所述需求方利用所述加法分解式对目标任务函数进行降阶后得到的简化任务函数,并基于所述简化任务函数计算任务函数值的秘密份额;
6、将所述任务函数值的秘密份额发送至所述需求方,以便所述需求方恢复得到所述任务函数值。
7、可选的,所述计算方本地存储由所述需求方预先分配的公开标识,所述公开标识为所述需求方从有限域中选取的非零值,各计算方分配的所述公开标识互异;
8、相应的,所述获取各数据方通过沙米尔秘密分享方式分享的秘密数据的秘密份额,包括:
9、获取各数据方基于所述公开标识和沙米尔秘密分享方式计算并分享的秘密数据的秘密份额。
10、可选的,所述按照预设规则对各所述秘密份额进行处理,并将处理结果发送至需求方,以便所述需求方根据所述处理结果构建所述秘密数据的高阶幂的加法分解式,包括:
11、基于各所述秘密份额计算所述秘密数据的高阶幂及低阶交叉乘积项对应的秘密份额,并基于所述数据方的数量生成相应数量组随机数;其中,所述低阶交叉乘积项的阶数不大于第二预设阶数阈值;
12、基于所述秘密数据的高阶幂及低阶交叉乘积项对应的秘密份额和各组所述随机数计算相应数量个待定随机值的秘密份额;
13、将所述待定随机值的秘密份额发送至需求方,以便所述需求方恢复得到所述待定随机值后,利用所述待定随机值和基于所述数据方的数量生成的相应数量组随机数构建所述秘密数据的高阶幂的加法分解式。
14、可选的,所述计算方与所述需求方之间共享伪随机数生成器和随机种子;所述计算方和所述需求方利用所述伪随机数生成器和所述随机种子生成多组随机数,所述随机数的组数与所述数据方的数量相同。
15、可选的,各所述计算方采用下述公式计算所述秘密数据的高阶幂及低阶交叉乘积项对应的秘密分享:
16、;
17、其中,a1,a2,…,am∈分别为m个数据方d1,d2,…dm的秘密数据,为有限域,u为所述第一预设阶数阈值,v为所述第二预设阶数阈值;,…,为秘密数据的高阶幂对应的秘密分享;为秘密数据的低阶交叉乘积项对应的秘密分享;其中,表示的q次幂,表示ai的t阶沙米尔分享,t为预设重构阈值,表示交叉乘积项ai·aj的2t阶沙米尔分享,i∈{1,2,…,m},j∈{1,2,…,m};表示秘密数据的秘密分享的乘积,t1,…,tm为一系列非负整数。
18、可选的,各所述计算方采用下述公式计算相应数量个待定随机值的秘密分享:
19、;
20、其中,为所述待定随机值,、…,为待定随机值的秘密分享;t1,…,tm为一系列非负整数,u为第一预设阶数阈值,v为第二预设阶数阈值,(u-1)mt<n,且v<u,t为预设重构阈值,n为计算方的总数量;为基于数据方的数量m生成的m组随机数,i∈{1,2,…,m}。
21、可选的,采用下述公式构建所述秘密数据的高阶幂的加法分解式,包括:
22、;
23、其中,、、…、为所述秘密数据的高阶幂,为所述待定随机值,t1,…,tm为一系列非负整数,v为第二预设阶数阈值,为基于数据方的数量m生成的m组随机数,i∈{1,2,…,m},为低阶交叉乘积项的仿射变换式。
24、可选的,所述将所述待定随机值的秘密份额发送至需求方,以便所述需求方恢复得到所述待定随机值,包括:
25、将所述待定随机值的秘密份额发送至需求方,以便所述需求方对所述待定随机值的秘密份额进行正确性校验,并在校验通过后基于重组向量恢复得到所述待定随机值;其中,所述重组向量基于各计算方的公开标识计算得到。
26、可选的,采用下述公式计算所述重组向量:
27、;
28、其中,为所述重组向量,d1至dn为重组向量的分量;
29、;
30、为所述需求方预先为n个计算方分别分配的公开标识。
31、可选的,所述基于重组向量恢复得到所述待定随机值,包括:
32、通过所述需求方将本地持有的所述待定随机值的秘密份额分别与所述重组向量中的相应分量进行乘积运算,并基于所有乘积运算结果的和值恢复所述待定随机值。
33、可选的,所述需求方对所述待定随机值的秘密份额进行正确性校验的过程包括:
34、所述需求方基于各所述计算方发送的所述待定随机值的秘密份额构建目标向量,并基于所述目标向量和预设校验矩阵构建校验表达式,以利用所述校验表达式对所述待定随机值的秘密份额进行正确性校验;其中,所述预设校验矩阵基于各计算方的公开标识计算得到。
35、可选的,采用下述公式确定所述预设校验矩阵:
36、;
37、其中,h为所述预设校验矩阵且为满秩矩阵,g为矩阵m的前(u-1)mt+1行构成的子矩阵,ht为h的转置矩阵,g的行向量在有限域上张成的线性空间为一个里德-所罗门码,u为所述第一预设阶数阈值,m为数据方的总数量,t为预设重构阈值。
38、可选的,采用下述公式确定所述目标向量和所述校验表达式:
39、;
40、;
41、其中,为所述目标向量,为待定随机值的秘密份额,n为计算方的总数量;为根据所述校验表达式计算得到的结果,h为所述预设校验矩阵;
42、相应的,所述利用所述校验表达式对所述待定随机值的秘密份额进行正确性校验的过程中,还包括:
43、若,则判定所述待定随机值的秘密分享无误;
44、若,则基于里德-所罗门码译码算法对所述目标向量进行译码操作,以从各所述计算方中识别出恶意攻击方的位置。
45、可选的,所述基于里德-所罗门码译码算法对所述目标向量进行译码操作,以从各所述计算方中识别出恶意攻击方的位置,包括:
46、基于里德-所罗门码译码算法对所述目标向量进行译码操作得到非零向量;
47、基于所述非零向量中非零分量的位置从各所述计算方中确定出恶意攻击方的位置;
48、其中,所述非零向量、所述目标向量和所述预设校验矩阵满足以下公式:
49、;
50、其中,为所述非零向量,为所述目标向量,h为所述预设校验矩阵。
51、可选的,所述获取所述需求方利用所述加法分解式对目标任务函数进行降阶后得到的简化任务函数,包括:
52、通过所述需求方循环迭代所述加法分解式,以利用所述加法分解式中右侧低阶交叉乘积项的仿射变换式替换所述目标任务函数中的高阶幂,直至所述目标任务函数中所有秘密数据的阶次均小于所述第一预设阶数阈值时,得到对所述目标任务函数进行降阶后的简化任务函数;
53、获取所述需求方发送的所述简化任务函数。
54、可选的,所述将所述任务函数值的秘密份额发送至所述需求方,以便所述需求方恢复得到所述任务函数值,包括:
55、将所述任务函数值的秘密份额发送至需求方,以便所述需求方对所述任务函数值的秘密份额进行正确性校验,并在校验通过后基于重组向量恢复得到所述任务函数值;其中,所述重组向量基于各计算方的公开标识计算得到。
56、可选的,所述基于重组向量恢复得到所述任务函数值,包括:
57、通过所述需求方将本地持有的所述任务函数值的秘密份额分别与重组向量中的相应分量进行乘积运算,并基于所有乘积运算结果的和值恢复所述任务函数值。
58、第二方面,本技术公开了一种安全多方计算装置,应用于计算方,包括:
59、秘密份额获取模块,用于获取各数据方通过沙米尔秘密分享方式分享的秘密数据的秘密份额;
60、加法分解式构建模块,用于按照预设规则对各所述秘密份额进行处理,并将处理结果发送至需求方,以便所述需求方根据所述处理结果构建所述秘密数据的高阶幂的加法分解式;其中,所述高阶幂的阶数为第一预设阶数阈值;
61、任务函数降阶模块,用于获取所述需求方利用所述加法分解式对目标任务函数进行降阶后得到的简化任务函数,并基于所述简化任务函数计算任务函数值的秘密份额;
62、任务函数发送模块,用于将所述任务函数值的秘密份额发送至所述需求方,以便所述需求方恢复得到所述任务函数值。
63、第三方面,本技术公开了一种电子设备,包括:
64、存储器,用于保存计算机程序;
65、处理器,用于执行所述计算机程序,以实现前述公开的安全多方计算方法的步骤。
66、第四方面,本技术公开了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现前述公开的安全多方计算方法的步骤。
67、第五方面,本技术公开了一种非易失性存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的安全多方计算方法的步骤。
68、可见,本技术公开了一种安全多方计算方法,应用于计算方,包括:获取各数据方通过沙米尔秘密分享方式分享的秘密数据的秘密份额;按照预设规则对各所述秘密份额进行处理,并将处理结果发送至需求方,以便所述需求方根据所述处理结果构建所述秘密数据的高阶幂的加法分解式;其中,所述高阶幂的阶数为第一预设阶数阈值;获取所述需求方利用所述加法分解式对目标任务函数进行降阶后得到的简化任务函数,并基于所述简化任务函数计算任务函数值的秘密份额;将所述任务函数值的秘密份额发送至所述需求方,以便所述需求方恢复得到所述任务函数值。
69、有益效果:本技术中各计算方首先获取各数据方通过沙米尔秘密分享方式分享的秘密数据的秘密份额,然后按照预设规则对各秘密份额进行处理,再将处理结果发送至需求方,以便需求方根据处理结果构建秘密数据的高阶幂的加法分解式,从而利用加法分解式对目标任务函数进行降阶处理得到简化任务函数。进一步的,需求方将简化任务函数发送给各计算方,并基于简化任务函数计算任务函数值的秘密份额,最后将任务函数值的秘密份额发送至需求方,以便需求方恢复得到任务函数值。上述方案中,各计算方之间无需进行通信,计算方只涉及到与需求方的交互,且各计算方的操作均在本地进行,不仅降低了计算和通信开销,也减少了恶意计算方合谋攻击的途径,从而提升了安全性。并且,需求方发送给计算方的是利用加法分解式对目标任务函数进行降阶处理后得到的简化任务函数,并非是目标任务函数本身,如此一来,计算方无法得知原始目标任务函数的任何信息,从而保障了计算模型隐私性。
1.一种安全多方计算方法,其特征在于,应用于计算方,包括:
2.根据权利要求1所述的安全多方计算方法,其特征在于,所述计算方本地存储由所述需求方预先分配的公开标识,所述公开标识为所述需求方从有限域中选取的非零值,各计算方分配的所述公开标识互异;
3.根据权利要求1所述的安全多方计算方法,其特征在于,所述按照预设规则对各所述秘密份额进行处理,并将处理结果发送至需求方,以便所述需求方根据所述处理结果构建所述秘密数据的高阶幂的加法分解式,包括:
4.根据权利要求3所述的安全多方计算方法,其特征在于,所述计算方与所述需求方之间共享伪随机数生成器和随机种子;所述计算方和所述需求方利用所述伪随机数生成器和所述随机种子生成多组随机数,所述随机数的组数与所述数据方的数量相同。
5.根据权利要求3所述的安全多方计算方法,其特征在于,各所述计算方采用下述公式计算所述秘密数据的高阶幂及低阶交叉乘积项对应的秘密分享:
6.根据权利要求5所述的安全多方计算方法,其特征在于,各所述计算方采用下述公式计算相应数量个待定随机值的秘密分享:
7.根据权利要求6所述的安全多方计算方法,其特征在于,采用下述公式构建所述秘密数据的高阶幂的加法分解式,包括:
8.根据权利要求3所述的安全多方计算方法,其特征在于,所述将所述待定随机值的秘密份额发送至需求方,以便所述需求方恢复得到所述待定随机值,包括:
9.根据权利要求8所述的安全多方计算方法,其特征在于,采用下述公式计算所述重组向量:
10.根据权利要求9所述的安全多方计算方法,其特征在于,所述基于重组向量恢复得到所述待定随机值,包括:
11.根据权利要求9所述的安全多方计算方法,其特征在于,所述需求方对所述待定随机值的秘密份额进行正确性校验的过程包括:
12.根据权利要求11所述的安全多方计算方法,其特征在于,采用下述公式确定所述预设校验矩阵:
13.根据权利要求11所述的安全多方计算方法,其特征在于,采用下述公式确定所述目标向量和所述校验表达式:
14.根据权利要求13所述的安全多方计算方法,其特征在于,所述基于里德-所罗门码译码算法对所述目标向量进行译码操作,以从各所述计算方中识别出恶意攻击方的位置,包括:
15.根据权利要求1至14任一项所述的安全多方计算方法,其特征在于,所述获取所述需求方利用所述加法分解式对目标任务函数进行降阶后得到的简化任务函数,包括:
16.根据权利要求15所述的安全多方计算方法,其特征在于,所述将所述任务函数值的秘密份额发送至所述需求方,以便所述需求方恢复得到所述任务函数值,包括:
17.根据权利要求16所述的安全多方计算方法,其特征在于,所述基于重组向量恢复得到所述任务函数值,包括:
18.一种安全多方计算装置,其特征在于,应用于计算方,包括:
19.一种电子设备,其特征在于,包括:
20.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至17任一项所述安全多方计算方法的步骤。
21.一种非易失性存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述的安全多方计算方法的步骤。
