本申请涉及安全多方计算的,尤其是涉及一种安全多方计算数据和值方法及系统。
背景技术:
1、安全多方计算是解决一组互不信任的参与方之间保护隐私的协同计算问题,安全多方计算要确保输入的独立性、计算的正确性,同时不泄露输入值给参与计算的其他成员,主要是针对在无可信第三方的情况下,如何安全地计算一个约定函数的问题,安全多方计算在电子选举、电子投票、电子拍卖、秘密共享、门限签名等场景中有着重要的作用。
技术实现思路
1、本申请目的一是提供一种安全多方计算数据和值方法,具有安全计算多方数据和值的特点。
2、本申请的上述申请目的一是通过以下技术方案得以实现的:
3、一种安全多方计算数据和值方法,设裁判方、参与方和申请计算数据和值的申请方,申请方的数据记为d0,参与方有k个,k≥1,参与方的数据记为di,其中,i∈i,i={i|i∈n*,并且i≤k},所述方法包括:
4、裁判方获取申请方发送的需求指令,调取一组素数p和q,根据素数p和q确定公钥(n,g),根据素数p、q和预设的一次函数l(x)调取一组私钥(λ,μ),并向申请方和参与方发送公钥(n,g),其中,n=pq,λ=lcm(p-1,q-1),g∈g,g={g|g∈n*,g<n2,且满足[l(gλmodn2)]-1是整数},μ=l(x1)-1modn,x1=gλmodn2,所述一次函数l(x)为非正比例函数;
5、参与方根据随机值ri和接收到的公钥(n,g)对数据di加密得到第一加密结果ci,并发送给申请方,其中,第一加密结果ci为与成比例的数值,mi为di的指定倍a,ri∈h,h={ri|ri∈n*,并且ri<n};
6、申请方根据随机值r0和接收到的公钥(n,g)对数据d0加密得到第二加密结果c0,将所述第二加密结果c0与多个第一加密结果ci连乘得到乘积结果f,并将所述乘积结果f发送至裁判方,其中,第二加密结果c0为与成比例的数值,m0为d0的指定倍a,r0∈h;
7、裁判方将乘积结果f代入y=(l(x2)·μ)modn中得到解密值y,将所述解密值y发送给申请方,其中,x2=fλmodn2;
8、申请方根据和接收到的解密值y确定和值s。
9、可选的,所述第一加密结果ci的加密公式为:
10、可选的,所述第二加密结果c0的加密公式为:
11、可选的,所述一次函数l(x)为
12、可选的,所述指定倍a为10t,其中,t∈n。
13、可选的,所述调取一组素数p和q包括:
14、所述需求指令包括身份信息和参与者范围;
15、根据所述身份信息和参与者范围确定影响因素;
16、基于费米估算模型,根据所述影响因素确定参与者范围内的最大值估算结果;
17、根据最大值估算结果确定一组相关联的素数p和q。
18、可选的,所述根据最大值估算结果确定一组相关联的素数p和q包括:
19、确定所述最大值估算结果的算数平方根,并上取整;
20、选取两个与上取整结果最为接近且数值大于上取整结果的两个素数作为p和q。
21、本申请目的二是提供一种安全多方计算数据和值系统,具有安全计算多方数据和值的特点。
22、本申请的上述申请目的二是通过以下技术方案得以实现的:
23、一种安全多方计算数据和值系统,包括多个用户终端,所述用户终端与第一方面所述的参与方相一一对应,所述系统用于执行如第一方面的方法。
24、综上所述,本申请包括以下至少一种有益技术效果:
25、本申请提供了一种安全多方计算数据和值方法,其能够在参与方不泄露自身数据的情况下实现计算申请方与参与方的数据和值的功能。
1.一种安全多方计算数据和值方法,其特征在于,设裁判方、参与方和申请计算数据和值的申请方,申请方的数据记为d0,参与方有k个,k≥1,参与方的数据记为di,其中,i∈i,i={i|i∈n*,并且i≤k},所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第一加密结果ci的加密公式为:
3.根据权利要求2所述的方法,其特征在于,所述第二加密结果c0的加密公式为:
4.根据权利要求3所述的方法,其特征在于,所述一次函数l(x)为
5.根据权利要求1所述的方法,其特征在于,所述指定倍a为10t,其中,t∈n。
6.根据权利要求1所述的方法,其特征在于,所述调取一组素数p和q包括:
7.根据权利要求6所述的方法,其特征在于,所述根据最大值估算结果确定一组相关联的素数p和q包括:
8.一种安全多方计算数据和值系统,其特征在于,包括多个用户终端,所述用户终端与权利要求1-7中任意一项所述的参与方相一一对应,所述系统用于执行如权利要求1-7中任意一项所述的方法。