一种安全多方计算数据异常个数的方法及系统与流程

未命名 07-27 阅读:100 评论:0


1.本技术涉及安全多方计算的技术领域,尤其是涉及一种安全多方计算数据异常个数的方法及系统。


背景技术:

2.安全多方计算(smc)是解决一组互不信任的参与方之间保护隐私的协同计算问题,安全多方计算要确保输入的独立性、计算的正确性,同时不泄露输入值给参与计算的其他成员,主要是针对在无可信第三方的情况下,如何安全地计算一个约定函数的问题,安全多方计算在电子选举、电子投票、电子拍卖、秘密共享、门限签名等场景中有着重要的作用。
3.上述中的现有技术方案存在以下缺陷:在不存在可信第三方的情况下如何计算数据异常个数。


技术实现要素:

4.本技术提供一种安全多方计算数据异常个数的方法和系统,其能够解决在不存在可信第三方的情况下计算数据异常个数的问题。
5.在本技术的第一方面,提供了一种安全多方计算数据异常个数的方法,设裁判方、参与方和申请计算数据异常个数的申请方,参与方有k个,k≥1,参与方的数据记为di,其中,i∈i,i={i|i∈n
*
且i≤k},申请方的数据记为d0,申请方还包括异常最大值d
umax
和异常最小值d
umin
,所述方法包括:裁判方获取申请方发送的请求指令,调取一组素数p和q,并向申请方和参与方发送公钥(n,g),其中,n=pq,g∈g,g={g|g∈n
*
,g《n2且(l(g
λ
modn2))-1
为整数,其中,λ=lcm(p-1,q-1),lcm(,)是最小公倍数函数};裁判方还用于根据请求指令和估算规则确定数值a;参与方根据数值a和数据di加密生成加密值mi,再根据随机值ri和接收到的公钥(n,g)对加密值mi加密得到第一加密结果ci,并发送给申请方,ri∈h,h={ri|ri∈n
*
且ri《n};申请方根据数值a、数据d0、异常最大值d
umax
和异常最小值d
umin
加密生成加密值m0、第一异常加密值m
umax
和第二异常加密值m
umin
,再根据随机值r0、r
umax
、r
umin
和接收到的公钥(n,g)对加密值m0、第一异常加密值m
umax
和第二异常加密值m
umin
加密得到第二加密结果c0、第一异常加密结果c
umax
和第二异常加密结果c
umin
,r0∈h,r
umax
∈h,r
umin
∈h;所述申请方还用于在接收到参与方发送的第一加密结果ci时,根据第二加密结果c0、第一异常加密结果c
umax
、第二异常加密结果c
umin
和第一加密结果ci构造比值序列(f1,f2,

,fk,f
umax
,f
umin
),并将所述比值序列(f1,f2,

,fk,f
umax
,f
umin
)发送至裁判方;裁判方根据所述比值序列(f1,f2,

,fk,f
umax
,f
umin
)和解密模型得到解密序列(y1,y2,

,yk,y
umax
,y
umin
);设定y0=0;将y0加入所述解密序列(y1,y2,

,yk,y
umax
,y
umin
)形成新的解密序列(y0,y1,y2,

,
yk,y
umax
,y
umin
);获取y0至yk的k+1个数据中大于y
umax
或小于y
umin
的数据个数,并将所述数据个数发送给申请方;申请方接收到所述数据个数,所述数据个数即为异常个数。
6.由以上技术方案可知,在申请方向裁判方发送请求指令,裁判方获取到请求指令后,建立公钥(n,g),将公钥(n,g)分别发送给申请方和参与方,同时还搭建解密模型。参与方在获取到公钥(n,g)时,对自身持有的数据做加密处理后传输至申请方,而申请方不仅在获取到公钥(n,g)时,对自身持有的数据做加密处理,还根据自身加密后的数据和参与方发送的加密后的数据构造比值序列,再将比值序列发送至裁判方中,裁判方根据比值序列和解密模型得到解密序列,并根据解密序列判断包括申请方在内的所有参与方中数据的异常个数,并将异常个数发送至申请方。由此可知,在计算过程中不会泄露任意一方的数据,即可获取到包括申请方在内的所有参与方中数据的异常个数,解决了在不存在可信第三方的情况下计算数据异常个数的问题。
7.在一种可能的实现方式中,所述裁判方还用于根据请求指令和估算规则确定数值a包括:所述请求指令包括数据类型;根据所述数据类型在数据库中匹配与所述数据类型对应的w组数组,所述数组中包括多个数值,其中,w∈w,w={w|w∈n
*
且w≥2};计算每一组数组中任意两个数值的差值;提取w组数组的差值最小值对应的精度值构建精度值序列(t1,t2,t3,

,tw);获取所述精度值序列(t1,t2,t3,

,tw)中的第一众数、第一众数对应的第一占比值、第二众数以及第二众数对应的第二占比值,所述第一众数是指精度值序列(t1,t2,t3,

,tw)中占比值最高的精度值,所述第二众数是指第二占比值仅小于第一占比值的精度值;当所述第一占比值达到第一预设值时,将所述第一众数作为目标数值t;当所述第一占比值低于第一预设值时,判断第一占比值和第二占比值之和是否大于第一预设值;若是,则将所述第一众数和第二众数的平均值向下取整作为目标数值t;若否,将精度值序列(t1,t2,t3,

,tw)中精度值对应的占比值高于第二预设值的精度值作为目标精度值;将目标精度值的平均值向下取整作为目标数值t;计算数值a=10
t

8.在一种可能的实现方式中,所述参与方根据数值a和数据di加密生成加密值mi包括:mi=[adi]。
[0009]
在一种可能的实现方式中,所述根据随机值ri和接收到的公钥(n,g)对加密值mi加密得到第一加密结果ci包括:
[0010]
在一种可能的实现方式中,所述裁判方根据所述比值序列(f1,f2,

,fk)和解密模型得到解密序列(y1,y2,

,yk)之前,还需要建立解密模型,包括:
基于所述函数搭建函数μ=(l(g
λ
modn2))-1
modn,其中,λ=lcm(p-1,q-1),lcm(,)是最小公倍数函数;基于所述函数μ和所述函数λ得到私钥(λ,μ);基于所述私钥(λ,μ)得到解密模型
[0011]
在一种可能的实现方式中,所述申请方根据数值a和数据d0加密生成加密值m0包括:m0=[ad0]。
[0012]
在一种可能的实现方式中,所述根据随机值r0和接收到的公钥(n,g)对加密值m0加密得到第二加密结果c0包括:
[0013]
在一种可能的实现方式中,该方法还包括所述异常最大值d
umax
和所述异常最小值d
umin
的确定方法:计算所述w组数组中,每个数组的第一极差和第二极差,所述第一极差为最大值与最小值的差值,所述第二极差为仅次于最大值的较大值和仅大于最小值的较小值的差值;依次计算每一个数组中所述第二极差与所述第一极差的比值,当所述比值小于占比预设值时,所述第一极差对应的最大值和最小值存在异常;获取所述数组中存在异常的最大值和最小值,将所述存在异常的最大值中的最小值作为异常最大值d
umax
,将所述存在异常的最小值中的最大值作为异常最小值d
umin
,所述裁判方将所述异常最大值d
umax
和所述异常最小值d
umin
发送至所述申请方。
[0014]
在一种可能的实现方式中,所述第一异常加密结果c
umax
的加密公式为:的加密公式为:第二异常加密结果c
umin
的加密公式为:
[0015]
在本技术的第二方面,提供了一种安全多方计算数据异常个数的系统。该系统包括多个用户终端,所述系统用于执行如上述安全多方计算数据异常个数的方法,所述多个用户终端作为所述方法中的所述参与方。
[0016]
综上所述,本技术包括以下至少一种有益技术效果:1.参与方将数据di放大指定倍a后得到mi,再对mi进行加密得到第一加密结果ci,提高了第一加密结果ci的破解难度,从而解决了在不存在可信第三方的情况下计算数据异常个数的问题;2.申请方将数据d0放大指定倍a后得到m0,再对m0进行加密得到第二加密结果c0,提高了第二加密结果c0的破解难度,从而解决了在不存在可信第三方的情况下计算数据异常个数的问题;3.裁判方使用解密模型时,并未直接解密出申请方和参数方的数据,所以解密过程也不会泄露任意一方的原始数据,从而解决了在不存在可信第三方的情况下计算数据异常个数的问题。
附图说明
[0017]
图1示出了本技术实施例中一种安全多方计算数据异常个数的系统的环境示意图。
[0018]
图2示出了本技术实施例中一种安全多方计算数据异常个数的方法的流程图。
[0019]
附图标记说明:110、用户终端;111、裁判方终端;112、参与方终端;113、申请方终
端;200、安全多方计算数据异常个数的系统。
具体实施方式
[0020]
为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0021]
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
[0022]
本技术提供了一种安全多方计算数据异常个数的方法及系统,其能够保障在所涉及到的多方的数据均不泄露的情况下,确定所涉及到的多方数据的异常个数,且算法简单、高效、实用、可靠。在本实施例中,所涉及到的多方包括裁判方、参与方以及申请方,上述裁判方可以为所有参与方中的任意一方或除参与方和申请方以外的第三方。
[0023]
本技术提供一种安全多方计算数据异常个数的系统,参照图1,该系统100包括多个用户终端110,多个用户终端110互相通讯连接,每一个用户终端110均能够与任意其他用户终端110进行数据交互,用户终端110之间的通信连接方式可以是通过局域网、互联网连接,也可以是通过移动通信网络、卫星通信网络或wifi模块、lora模块等通信手段连接,具体通信方式不作限定。用户终端110具有终端标识,以使每个用户终端110发出的数据能够确定来源。
[0024]
系统100中的一个用户终端110是裁判方、参与方以及申请方三种角色中的任意一种。在该系统100中,裁判方设置有一个,参与方设置有多个,而申请方设置有一个,申请方实际是参与方中的一员,只是在该系统100中,申请方能够触发裁判方计算参与方和申请方的数据的异常个数。因此,申请方对于裁判方来说,有可能在下一次计算多方的数据的异常个数时,申请方的身份就转换为了参与方。
[0025]
可以了解的是,每个用户终端110中均包含一份隐私数据,在一个用户终端110需要确定隐私数据的异常个数时,需要首先选定参与方范围,即哪些用户终端110参与计算,而后进行数据异常个数的计算。
[0026]
基于以上设定有裁判方、参与方、申请方的场景,本技术实施例提供一种安全多方计算数据异常个数的方法。该方法可以在图1的系统中运行。
[0027]
所述方法的主要流程描述如下。
[0028]
设裁判方、参与方和申请计算数据异常个数的申请方,申请方的数据记为d0,申请方还包括异常最大值d
umax
和异常最小值d
umin
,参与方有k个,k≥1,参与方的数据记为di,其中,i∈i,i={i|i∈n
*
,并且i≤k}。
[0029]
如图2所示:s101:申请方发送请求指令。
[0030]
在申请方需要获取多个参与方的数据以及自己数据组成的序列中的异常数据的个数时,向上述多个参与方以及裁判方发送请求指令,上述请求指令包括数据类型和请求内容,上述请求内容表示申请方需要计算异常个数,上述数据类型表示申请方想要计算的
数据的数据类型,例如,工资、营业额或销售量。当数据类型为工资时,表示申请方需要计算工资的异常个数。
[0031]
s102:裁判方获取申请方发送的请求指令,向申请方和参与方发送公钥(n,g)。
[0032]
其中,n=pq,g∈g,g={g|g∈n
*
,g《n2且(l(g
λ
modn2))-1
为整数,为整数,λ=lcm(p-1,q-1),lcm(,)是最小公倍数函数}。
[0033]
具体的,当用户接收到请求指令后,会调取一组素数p、q,根据上述公式和素数p、q确定本次申请对应的公钥,并将上述公钥发送给申请方和参与方。
[0034]
s103:参与方接收公钥(n,g),对数据di加密得到第一加密结果ci,并发送给申请方。
[0035]
具体的,为了防止自身所拥有的数据di泄露,参与方根据数值a和数据di加密生成加密值mi,再根据随机值ri和接收到的公钥(n,g)对加密值mi加密得到第一加密结果ci,并发送给申请方,ri∈h,h={ri|ri∈n
*
且ri《n}。其中mi=[adi],即mi为di扩大a倍后再进行向下取整,函数y=[x]称为取整函数。ci的计算公式为
[0036]
上述a=10
t
。由mi的确定过程可知,如果t取任意值,当t值趋于正无穷时,会导致mi的数据量级很大,在一定程度上会降低后续计算的计算效率;当t值趋于0时,会导致mi可能等于di,即不能起到对数据进行加密的作用,此时再对mi进行向下取整,可能会出现多个参与方取整后的数据相同,对后续的计算结果也会产生影响。为此,本技术还提出了一种确定t值的方法,上述t值即a值由裁判方根据请求指令和估算规则确定。
[0037]
上述确定t值的方法包括:上述请求指令包括数据类型;根据上述数据类型在数据库中匹配与上述数据类型对应的w组数组,上述数组中包括多个数值,其中,w∈w,w={w|w∈n
*
且w≥2};计算每一组数组中任意两个数值的差值;提取w组数组的差值最小值对应的精度值构建精度值序列(t1,t2,t3,

,tw);获取上述精度值序列(t1,t2,t3,

,tw)中的第一众数、第一众数对应的第一占比值、第二众数以及第二众数对应的第二占比值,上述第一众数是指精度值序列(t1,t2,t3,

,tw)中占比值最高的精度值,上述第二众数是指第二占比值仅小于第一占比值的精度值;当上述第一占比值达到第一预设值时,将上述第一众数作为目标数值t;当上述第一占比值低于第一预设值时,判断第一占比值和第二占比值之和是否大于第一预设值;若是,则将上述第一众数和第二众数的平均值向下取整作为目标数值t;若否,将精度值序列(t1,t2,t3,

,tw)中精度值对应的占比值高于第二预设值的精度值作为目标精度值;将目标精度值的平均值向下取整作为目标数值t;计算数值a=10
t
。上述w组数组是根据数据的来源不同以及数据类型进行分组的,即获取数据库中数据类型与请求指令中的数据类型相同的数据,再根据这些数据的来源进行分组得到w组数组。例如第一组数据是a公司的数据、第二组数据为b公司的数据。
[0038]
上述数据库可以为通过爬虫技术获取网络中的数据并构建数据库,也可以通过用户一致的数据来构建数据库,也可以通过网络上的数据和用户的已知数据共同构建数据库。
[0039]
在一种实施方式中,有五个数组,每个数组中包含五个数据,其中一个数组为[π,5,1.2,1.34,3],计算任意两个值的差值,并获取差值中的最小值,对于上述数组而言,差值最小值为0.14,0.14小数点后的有效位数为两位,则差值最小值对应的精度值为2。若小数
点后的有效位数为零位,则差值最小值对应的精度值为0。计算每个数组的差值最小值的精度值并构建精度值序列,在本实施方式中,第一预设值为80%,第二预设值为8%,精度值序列为(0,1,1,1,2)。上述精度值序列中的众数为1,即第一众数为1,第一占比值为3/5=60%,第一占比值为众数出现的次数除以精度值序列中精度值的总个数。第二众数为0和2,第二占比值为20%,上述第一占比值小于第一预设值,则计算第二占比值和第一占比值之和,因为第二众数存在两个,则在进行占比值和第一预设值比较时,需要加两次即第一占比值和第二占比值之和为60%+20%+20%=100%大于第一预设值,则计算第一众数和第二众数的平均数即(0+1+2)/3=1,即t值为1。当第一占比值和第二占比值之和小于上述低于预设值时,获取所有对应占比值大于第二预设值的众数并求平均数。例如,第一众数1对应的第一占比值为40%,第二众数2对应的占比值为30%,第三众数3对应的第三占比值为15%,第四众数4对应的第四占比值为8%,第五众数5对应的第五占比值为7%。此时第五众数和第四众数对应的占比值均小于等于第二预设值,所以计算第一众数、第二众数和第三众数的平均数作为t值。确定t值即确定a值。
[0040]
s104:申请方接收公钥(n,g),对数据d0、异常最大值d
umax
和异常最小值d
umin
加密得到第二加密结果c0、第一异常加密结果c
umax
和第二异常加密结果c
umin

[0041]
具体的,申请方根据数值a、数据d0、异常最大值d
umax
和异常最小值d
umin
加密生成加密值m0、第一异常加密值m
umax
和第二异常加密值m
umin
,再根据随机值r0、r
umax
、r
umin
和接收到的公钥(n,g)对加密值m0、第一异常加密值m
umax
和第二异常加密值m
umin
加密得到第二加密结果c0、第一异常加密结果c
umax
和第二异常加密结果c
umin
,r0∈h,r
umax
∈h,r
umin
∈h。其中m0=[ad0],即m0为d0扩大a倍后再进行向下取整;m
umax
=[ad
umax
],即m
umax
为d
umax
扩大a倍后再进行向下取整;m
umin
=[ad
umin
],即m
umin
为d
umin
扩大a倍后再进行向下取整。c0的计算公式为c
umax
的计算公式为c
umax
=c
umin
的计算公式为
[0042]
s105:申请方根据第二加密结果c0、第一异常加密结果c
umax
、第二异常加密结果c
umin
和第一加密结果ci构造比值序列,并将比值序列发送给裁判方。
[0043]
具体的,上述申请方还用于在接收到参与方发送的第一加密结果ci时,根据第二加密结果c0、第一异常加密结果c
umax
、第二异常加密结果c
umin
和第一加密结果ci构造比值序列(f1,f2,

,fk,f
umax
,f
umin
),并将上述比值序列(f1,f2,

,fk,f
umax
,f
umin
)发送至裁判方。比值序列(f1,f2,

,fk,f
umax
,f
umin
)为第二加密结果c0、第一异常加密结果c
umax
、第二异常加密结果c
umin
和第一加密结果ci的比值,即并将上述比值序列发送给裁判方。
[0044]
s106:裁判方根据比值序列(f1,f2,

,fk,f
umax
,f
umin
)和解密模型得到解密序列(y1,y2,

,yk,y
umax
,y
umin
);设定y0=0;将y0加入解密序列(y1,y2,

,yk,y
umax
,y
umin
)形成新的解密序列(y0,y1,y2,

,yk,y
umax
,y
umin
)。
[0045]
具体的,在获取到解密序列之前,还需要建立解密模型,包括:基于函数搭建函数μ=(l(g
λ
modn2))-1
modn,其中,λ=lcm(p-1,q-1),lcm(,)是最小公倍数函数;基于上述函数μ和上述函数λ得到私钥(λ,μ);基于上述私钥(λ,
μ)得到解密模型裁判方将比值序列(f1,f2,

,fk,f
umax
,f
umin
)中的数据带入解密模型中,可以得到解密序列(y1,y2,

,yk,y
umax
,y
umin
),即),即解密序列中k+2个数值之间的相对大小关系和d1到dk以及d
umax
和d
umin
的k+2个数值之间的相对大小关系一致,即d1大于dk则y1大于yk。
[0046]
为了将申请方的数据加入到解密序列中,设定y0=0;将y0加入解密序列(y1,y2,

,yk,y
umax
,y
umin
)形成新的解密序列(y0,y1,y2,

,yk,y
umax
,y
umin
);新的解密序列中y0至yk以及y
umax
和y
umin
的k+3个数据的大小关系与d0至di以及d
umax
和d
umin
的k+3个数据的大小关系相同。将fi带入解密模型得到yi,fi为其他参与方的加密后的数据和申请方加密后的数据之比,通过解密模型得到的yi表示其他参与方的扩大a倍后的数据和申请方扩大a倍后的数据之差,可以理解的是,y0应该为申请方扩大a倍后的数据和申请方扩大a倍后的数据之差即为0。
[0047]
s107:裁判方获取y0至yk的k+1个数据中大于y
umax
或小于y
umin
的数据个数,并将数据个数发送给申请方,数据个数即为异常个数。
[0048]
具体的,新的解密序列中y0至yk以及y
umax
和y
umin
的k+3个数据的大小关系与d0至di以及d
umax
和d
umin
的k+3个数据的大小关系相同,则获取新的解密序列中大于y
umax
或小于y
umin
的数据个数。
[0049]
安全多方计算数据异常个数的方法还包括异常最大值d
umax
和异常最小值d
umin
的确定方法,上述异常最大值d
umax
和异常最小值d
umin
的确定由裁判方进行计算:根据裁判方从数据库中获取的与上述请求指令中的数据类型对应的w组数组,计算w组数组中每个数组的第一极差和第二极差,上述第一极差为最大值与最小值的差值,上述第二极差为仅次于最大值的较大值和仅大于最小值的较小值的差值,上述差值表示两个数值差值的绝对值,即上述差值大于等于零;依次计算每一个数组中第二极差与第一极差的比值,当上述比值小于占比预设值时,上述第一极差对应的最大值和最小值存在异常;获取上述数组中存在异常的最大值和最小值,将上述存在异常的最大值中的最小值作为异常最大值,将上述存在异常的最小值中的最大值作为异常最小值,上述异常最小值和上述异常最大值发送至申请方。
[0050]
在第一种实施示例中,申请方想要获取同岗级的人员的工资最大值和最小值,则从数据库获取对应岗级不同月份的工资,每个月份的工资组成一个数组。占比预设值为60%,w为6即存在6组数组,其中一个数组为[1000,5000,6000,5500,7000,8000,100000],该数组的第一极差为100000-1000=9900;第二极差为8000-5000=3000,第二极差与第一极差的比值=第二极差/第一极差=3000/9900=30.3%《60%,所以上述第一极差对应的最大值和最小值存在异常。依次判断其他五组数组,其中四组数组的第二极差与第一极差的比值大于60%,另外一组数组的第二极差与第一极差的比值小于60%,则其对应的最大值和最小值存在异常,上述另外一组数组的最大值为80000、最小值为2000。将存在异常的最小值中的最大值作为异常最小值,上述异常最小值为2000和1000,2000大于1000,则将2000作为异常最小值d
umin
,上述异常最大值为80000和100000,80000大于100000,则将80000作为异常最大值d
umax

[0051]
综上所述,本技术一种安全多方计算数据异常个数的方法的实施原理为:在申请方有计算数据异常个数的需求时,向裁判方发送请求指令,裁判方获取到请求指令后,根据请求指令调取一组素数p和q建立公钥(n,g)和私钥(λ,μ),一方面,将公钥(n,g)分别发送给申请方和参与方,另一方面,根据私钥(λ,μ)搭建解密模型。参与方在获取到公钥(n,g)时,对自身持有的数据做加密处理后传输至申请方,而申请方不仅在获取到公钥(n,g)时,对自身持有的数据做加密处理,还根据自身加密后的数据和参与方发送的加密后的数据构造比值序列,再将比值序列发送至裁判方,裁判方根据比值序列和解密模型得到解密序列,裁判方在解密序列中加入申请方对应的解密数据生成新的解密序列,根据新的解密序列获取包括申请方在内的所有参与方中数据的异常个数并将异常个数发送至申请方,申请方接收裁判方发送的异常个数。由上述实施原理可知,在计算过程中不会泄露任意一方的原始数据,即可实现申请方获取到包括申请方在内的所有参与方中数据的异常个数,解决了安全多方计算数据异常个数的问题。
[0052]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一种或多种用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0053]
以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

技术特征:
1.一种安全多方计算数据异常个数的方法,其特征在于:设裁判方、参与方和申请计算数据异常个数的申请方,参与方有k个,k≥1,参与方的数据记为d
i
,其中,i∈i,i={i|i∈n
*
且i≤k},申请方的数据记为d0,申请方还包括异常最大值d
umax
和异常最小值d
umin
,所述方法包括:裁判方获取申请方发送的请求指令,调取一组素数p和q,并向申请方和参与方发送公钥(n,g),其中,n=pq,g∈g,g={g|g∈n
*
,g<n2且(l(g
λ
modn2))-1
为整数,其中,λ=lcm(p-1,q-1),lcm(,)是最小公倍数函数};裁判方还用于根据请求指令和估算规则确定数值a;参与方根据数值a和数据d
i
加密生成加密值m
i
,再根据随机值r
i
和接收到的公钥(n,g)对加密值m
i
加密得到第一加密结果c
i
,并发送给申请方,r
i
∈h,h={r
i
|r
i
∈n
*
且r
i
<n};申请方根据数值a、数据d0、异常最大值d
umax
和异常最小值d
umin
加密生成加密值m0、第一异常加密值m
umax
和第二异常加密值m
umin
,再根据随机值r0、r
umax
、r
umin
和接收到的公钥(n,g)对加密值m0、第一异常加密值m
umax
和第二异常加密值m
umin
加密得到第二加密结果c0、第一异常加密结果c
umax
和第二异常加密结果c
umin
,r0∈h,r
umax
∈h,r
umin
∈h;所述申请方还用于在接收到参与方发送的第一加密结果c
i
时,根据第二加密结果c0、第一异常加密结果c
umax
、第二异常加密结果c
umin
和第一加密结果c
i
构造比值序列(f1,f2,

,f
k
,f
umax
,f
umin
),并将所述比值序列(f1,f2,

,f
k
,f
umax
,f
umin
)发送至裁判方;裁判方根据所述比值序列(f1,f2,

,f
k
,f
umax
,f
umin
)和解密模型得到解密序列(y1,y2,

,y
k
,y
umax
,y
umin
);设定y0=0;将y0加入所述解密序列(y1,y2,

,y
k
,y
umax
,y
umin
)形成新的解密序列(y0,y1,y2,

,y
k
,y
umax
,y
umin
);获取y0至y
k
的k+1个数据中大于y
umax
或小于y
umin
的数据个数,并将所述数据个数发送给申请方;提取y0至y
k
的k+1个数据中超出y
umin
至y
umax
范围内的数据个数,申请方接收到所述数据个数,所述数据个数即为异常个数。2.根据权利要求1所述的安全多方计算数据异常个数的方法,其特征在于:所述裁判方还用于根据请求指令和估算规则确定数值a包括:所述请求指令包括数据类型;根据所述数据类型在数据库中匹配与所述数据类型对应的w组数组,所述数组中包括多个数值,其中,w∈w,w={w|w∈n
*
且w≥2};计算每一组数组中任意两个数值的差值;提取w组数组的差值最小值对应的精度值构建精度值序列(t1,t2,t3,

,t
w
);获取所述精度值序列(t1,t2,t3,

,t
w
)中的第一众数、第一众数对应的第一占比值、第二众数以及第二众数对应的第二占比值,所述第一众数是指精度值序列(t1,t2,t3,

,t
w
)中占比值最高的精度值,所述第二众数是指第二占比值仅小于第一占比值的精度值;当所述第一占比值达到第一预设值时,将所述第一众数作为目标数值t;当所述第一占比值低于第一预设值时,判断第一占比值和第二占比值之和是否大于第
一预设值;若是,则将所述第一众数和第二众数的平均值向下取整作为目标数值t;若否,将精度值序列(t1,t2,t3,

,t
w
)中精度值对应的占比值高于第二预设值的精度值作为目标精度值;将目标精度值的平均值向下取整作为目标数值t;计算数值a=10
t
。3.根据权利要求1所述的安全多方计算数据异常个数的方法,其特征在于:所述参与方根据数值a和数据d
i
加密生成加密值m
i
包括:m
i
=[ad
i
]。4.根据权利要求1所述的安全多方计算数据异常个数的方法,其特征在于:所述根据随机值r
i
和接收到的公钥(n,g)对加密值m
i
加密得到第一加密结果c
i
包括:5.根据权利要求1所述的安全多方计算数据异常个数的方法,其特征在于,所述裁判方根据所述比值序列(f1,f2,f3,

,f
k
)和解密模型得到解密序列(y1,y2,y3,

,y
k
)之前,还需要建立解密模型,包括:基于所述函数搭建函数μ=(l(g
λ
modn2))-1
modn,其中,λ=lcm(p-1,q-1),lcm(,)是最小公倍数函数;基于所述函数μ和所述函数λ得到私钥(λ,μ);基于所述私钥(λ,μ)得到解密模型6.根据权利要求1所述的安全多方计算数据异常个数的方法,其特征在于:所述申请方根据数值a和数据d0加密生成加密值m0包括:m0=[ad0]。7.根据权利要求1所述的安全多方计算数据异常个数的方法,其特征在于:所述根据随机值r0和接收到的公钥(n,g)对加密值m0加密得到第二加密结果c0包括:8.根据权利要求2所述的安全多方计算数据异常个数的方法,其特征在于:该方法还包括所述异常最大值d
umax
和所述异常最小值d
umin
的确定方法:计算所述w组数组中,每个数组的第一极差和第二极差,所述第一极差为最大值与最小值的差值,所述第二极差为仅次于最大值的较大值和仅大于最小值的较小值的差值;依次计算每一个数组中所述第二极差与所述第一极差的比值,当所述比值小于占比预设值时,所述第一极差对应的最大值和最小值存在异常;获取所述数组中存在异常的最大值和最小值,将所述存在异常的最大值中的最小值作为异常最大值d
umax
,将所述存在异常的最小值中的最大值作为异常最小值d
umin
,所述裁判方将所述异常最大值d
umax
和所述异常最小值d
umin
发送至所述申请方。9.根据权利要求8所述的安全多方计算数据异常个数的方法,其特征在于:所述第一异常加密结果c
umax
的加密公式为:第二异常加密结果c
umin
的加密公式为:10.一种安全多方计算数据异常个数的系统,其特征在于:包括多个用户终端,所述系统用于执行如权利要求1~9中任意一项所述的方法,所述多个用户终端作为所述方法中的
所述参与方。

技术总结
本发明涉及一种安全多方计算数据异常个数的方法及系统,其方法包括裁判方获取申请方发送的请求指令并向申请方和参与方发送公钥;参与方根据数据d


技术研发人员:郑伟海 廖方平 李成
受保护的技术使用者:北京龙腾佳讯科技股份公司
技术研发日:2023.05.10
技术公布日:2023/7/25
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐