安全多方计算数据排序方法及系统技术方案

技术编号:38140756 阅读:12 留言:0更新日期:2023-07-08 09:55
本发明专利技术涉及一种安全多方计算数据排序方法及系统,其方法包括裁判方获取申请方发送的需求指令,调取一组素数p和q,并向申请方和参与方发送公钥;参与方根据随机值和公钥对数据加密得到第一加密结果,并发送给申请方。申请方根据随机值和公钥对数据加密得到第二加密结果,将第二加密结果与第一加密结果对比得到k个比值以构造比值序列并输出。裁判方根据比值序列和解密模型得到解密序列,根据解密序列构造k+1方数据序列。本申请具有安全计算多方数据排序的效果。请具有安全计算多方数据排序的效果。请具有安全计算多方数据排序的效果。

【技术实现步骤摘要】
安全多方计算数据排序方法及系统


[0001]本申请涉及安全多方计算的
,尤其是涉及一种安全多方计算数据排序方法及系统。

技术介绍

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

技术实现思路

[0003]本申请目的一是提供一种安全多方计算数据排序方法,具有安全计算多方数据排序的特点。
[0004]本申请的上述申请目的一是通过以下技术方案得以实现的:一种安全多方计算数据排序方法,设裁判方、参与方和申请计算数据排序和/或极值的申请方,申请方的数据记为d0,参与方有k个,k≥1,参与方的数据记为d
i
,其中,i∈I,I={i|i∈N
*
且i≤k},所述方法包括:裁判方获取申请方发送的需求指令,调取一组素数p和q,根据素数p和q确定公钥(n,g),根据素数p、q和预设的一次函数Lx调取一组私钥(λ,μ),并向申请方和参与方发送公钥(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=gr/>λ
modn2,所述一次函数L(x)为非正比例函数;参与方根据随机值r
i
和接收到的公钥(n,g)对数据d
i
加密得到第一加密结果c
i
,并发送给申请方,其中,第一加密结果c
i
为与成比例的数值,m
i
为d
i
的指定倍A,r
i
∈H,H={r
i
|r
i
∈N
*
且r
i
<n};申请方根据随机值r0和接收到的公钥(n,g)对数据d0加密得到第二加密结果c0,将所述第二加密结果c0与第一加密结果c
i
对比得到k个比值以构造比值序列(f1,f2,f3,
……
,f
k
),并将所述比值序列(f1,f2,f3,
……
,f
k
)发送至裁判方,其中,第二加密结果c0为与成比例的数值,m0为d0的指定倍A,r0∈H;裁判方将所述比值序列(f1,f2,f3,
……
,f
k
)代入解密值y
i
=(L(x2)
·
μ)modn中得到解密序列(y1,y2,y3,
……
,y
k
),根据解密序列(y1,y2,y3,
……
,y
k
)构造k+1方数据序列(s0,s1,s2,s3,
……
,s
k
),将所述数据序列(s0,s1,s2,s3,
……
,s
k
)发送给申请方,其中,s
i
表示第i个参与方的数据d
i
在k+1方数据中的排序序号,x2=f

modn2。
[0005]可选的,所述第一加密结果c
i
的加密公式为:所述第二加密结果c0的加密公式为:
[0006]可选的,所述根据解密序列(y1,y2,y3,
……
,y
k
)构造k+1方数据序列(s0,s1,s2,
s3,
……
,s
k
)包括:将所述解密序列(y1,y2,y3,
……
,y
k
)中解密值y
i
按照数值大小排序得到排序序号(s'1,s'2,s'3,
……
,s'
k
),s'
i
表示第i个参与方的数据d
i
在k方数据中的排序序号,基于更新规则,在排序序号(s'1,s'2,s'3,
……
,s'
k
)中插入s0,并更新s'
i
所对应的排序值,以构造k+1方数据序列(s0,s1,s2,s3,
……
,s
k
),其中,s0为k+1减去所述解密序列(y1,y2,y3,
……
,y
k
)中y
i
所对应的解密值小于0的个数。
[0007]可选的,还包括:所述基于更新规则,在排序序号(s'1,s'2,s'3,
……
,s'
k
)中插入s0,并更新s'
i
所对应的排序值包括:若f
i
≤0,则s
i
=s'
i
;若f
i
>0,则s
i
=s'
i
+1。
[0008]可选的,还包括:裁判方基于极值计算规则,根据所述解密序列(y1,y2,y3,
……
,y
k
)中解密值y
i
的最大值和最小值确定B=(B1,B2)并发送给申请方;申请方根据和接收到的B=(B1,B2)确定极大值max和极小值min。
[0009]可选的,所述裁判方基于极值计算规则,根据所述解密序列(y1,y2,y3,
……
,y
k
)中解密值y
i
的最大值和最小值确定B=(B1,B2)包括:若解密序列(y1,y2,y3,
……
,y
k
)中解密值y
i
的最大值和最小值均大于等于0,那么B1=0,B2=最大值;若解密序列(y1,y2,y3,
……
,y
k
)中解密值y
i
的最大值和最小值均小于0,那么B1=

最小值,B2=0;若解密序列(y1,y2,y3,
……
,y
k
)中解密值y
i
的最大值大于0,最小值小于0,那么B1=

最小值,B2=

最大值。
[0010]可选的,所述指定倍A为10
t
,其中,t∈N。
[0011]可选的,所述调取一组素数p和q包括:所述需求指令包括身份信息和参与者范围;根据所述身份信息和参与者范围确定影响因素;基于费米估算模型,根据所述影响因素确定参与者范围内的最大值估算结果;根据最大值估算结果确定一组相关联的素数p和q。
[0012]可选的,所述根据最大值估算结果确定一组相本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种安全多方计算数据排序方法,其特征在于,设裁判方、参与方和申请计算数据排序和/或极值的申请方,申请方的数据记为d0,参与方有k个,k≥1,参与方的数据记为d
i
,其中,i∈I,I={i|i∈N
*
且i≤k},所述方法包括:裁判方获取申请方发送的需求指令,调取一组素数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)为非正比例函数;参与方根据随机值r
i
和接收到的公钥(n,g)对数据d
i
加密得到第一加密结果c
i
,并发送给申请方,其中,第一加密结果c
i
为与成比例的数值,m
i
为d
i
的指定倍A,r
i
∈H,H={r
i
|r
i
∈N
*
且r
i
<n};申请方根据随机值r0和接收到的公钥(n,g)对数据d0加密得到第二加密结果c0,将所述第二加密结果c0与第一加密结果c
i
对比得到k个比值以构造比值序列(f1,f2,f3,
……
,f
k
),并将所述比值序列(f1,f2,f3,
……
,f
k
)发送至裁判方,其中,第二加密结果c0为与g
m0
成比例的数值,m0为d0的指定倍A,r0∈H;裁判方将所述比值序列(f1,f2,f3,
……
,f
k
)代入解密值y
i
=(L(x2)
·
μ)modn中得到解密序列(y1,y2,y3,
……
,y
k
),根据解密序列(y1,y2,y3,
……
,y
k
)构造k+1方数据序列(s0,s1,s2,s3,
……
,s
k
),将所述数据序列(s0,s1,s2,s3,
……
,s
k
)发送给申请方,其中,s
i
表示第i个参与方的数据d
i
在k+1方数据中的排序序号,x2=f

modn2。2.根据权利要求1所述的方法,其特征在于,所述第一加密结果c
i
的加密公式为:的加密公式为:所述第二加密结果c0的加密公式为:3.根据权利要求2所述的方法,其特征在于,所述根据解密序列(y1,y2,y3,
……
,y
k
)构造k+1方数据序列(s0,s1,s2,s3,
……
,s
k
)包括:将所述解密序列(y1,y2,y3,
……
,y
k
)中解密值y
i
按照数值大小排序得到排序序号(s'1,s'2,s'3,...

【专利技术属性】
技术研发人员:廖方平郑伟海
申请(专利权)人:北京龙腾佳讯科技股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1