CN115134078B - 一种基于秘密分享的统计方法、装置及存储介质 - Google Patents

一种基于秘密分享的统计方法、装置及存储介质 Download PDF

Info

Publication number
CN115134078B
CN115134078B CN202210796852.0A CN202210796852A CN115134078B CN 115134078 B CN115134078 B CN 115134078B CN 202210796852 A CN202210796852 A CN 202210796852A CN 115134078 B CN115134078 B CN 115134078B
Authority
CN
China
Prior art keywords
data
subinterval
secret
target
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210796852.0A
Other languages
English (en)
Other versions
CN115134078A (zh
Inventor
冯黎明
马煜翔
刘洋
王玥
邢冰
刘文博
吴泽成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lanxiang Zhilian Hangzhou Technology Co ltd
Original Assignee
Lanxiang Zhilian Hangzhou Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lanxiang Zhilian Hangzhou Technology Co ltd filed Critical Lanxiang Zhilian Hangzhou Technology Co ltd
Priority to CN202210796852.0A priority Critical patent/CN115134078B/zh
Publication of CN115134078A publication Critical patent/CN115134078A/zh
Application granted granted Critical
Publication of CN115134078B publication Critical patent/CN115134078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)

Abstract

本申请实施例公开了一种基于秘密分享的统计方法、装置及存储介质,其中基于秘密分享的统计方法包括步骤:S1、发起方和参与方通过秘密分享算法密态求解出多方数据的数据量总和,发起方确定出所要寻找的目标数据在多方数据排序后所处的索引值;S2、确定多方数据区间的上界和下界,并将多方数据区间划分为n个子区间,各方本地统计对应的本方数据落在对应的子区间的集合;S3、计算出索引值对应的目标数据所落在的目标子区间,判断目标数据是否为目标子区间对应的多方数据中的最大值或最小值;S4、如果是,则求解多方数据在目标子区间的最大值或最小值即可得到目标数据;S5、如果不是,则将目标子区间作为新的多方数据区间并重新执行步骤S2至S5。

Description

一种基于秘密分享的统计方法、装置及存储介质
技术领域
本申请涉及多方安全计算技术领域,具体涉及一种基于秘密分享的统计方法、装置及存储介质。
背景技术
随着信息化时代的到来,数字经济快速发展,信息即资源,如何处理好保护个人信息与数字经济发展的关系,是当今急需解决的问题。因此,可以达到数据达到可用不可见的隐私计算技术在蓬勃发展。现实生活中,隐私计算技术逐渐在帮助越来越多的相关企业蓬勃发展,经常需要使用隐私计算技术对某类数据进行统计、对比、分析等操作。比如:销售厂家希望评估附近多家公司中年轻人的整体购买能力,方便推销对应的商品。基于隐私保护的前提下,每家公司不能公布各自公司中每个年轻人的月收入。通过隐私计算技术可以在不暴露各公司员工月收入的前提下得到多家公司年轻人整体收入的中位数,以反应出整体的购买力。在多方数据密态统计求解出第k大数据的相关算法中,通常需要将多方的数据在密态下进行排序,再找出第k大数据的密态值后恢复出明文,然而由于密态比较算法开销较大,在整体数据量较大的情况下,通过密态排序求解出第k大的数据的方法将付出极高的计算成本。因此,如何在不暴露多方所有明文数据的情形下,高效求解出多方数据中的第k大的数据(即目标数据)是亟待解决的问题。
发明内容
本申请实施例的目的在于提供一种基于秘密分享的统计方法、装置及存储介质,用以解决现有技术在多方数据密态统计求解出第k大数据也即目标数据的相关算法中计算成本高、效率较低的问题。
为实现上述目的,本申请实施例提供一种基于秘密分享的统计方法,包括步骤:S1、发起方和参与方通过秘密分享算法密态求解出多方数据的数据量总和,所述发起方确定出所要寻找的目标数据在所述多方数据排序后所处的索引值;S2、确定所述多方数据区间的上界和下界,并将所述多方数据区间划分为n个子区间,所述发起方和参与方各方本地统计对应的本方数据落在对应的所述子区间的集合;S3、利用秘密分享算法计算出所述索引值对应的目标数据所落在的目标子区间,并且判断所述目标数据是否为所述目标子区间对应的所述多方数据中的最大值或最小值;S4、如果所述目标数据是所述目标子区间对应的所述多方数据中的最大值或最小值,则利用秘密分享算法求解所述多方数据在所述目标子区间的最大值或最小值即可得到所述目标数据;S5、如果所述目标数据不是所述目标子区间对应的所述多方数据中的最大值或最小值,则将所述目标子区间作为新的所述多方数据区间并重新执行步骤S2至S5,直至得到所述目标数据。
可选地,所述发起方和参与方各方本地统计所述本方数据的数据量得到对应的数值,并根据所述数值通过秘密分享算法在发起方密态求解得到所述多方数据的数据量总和,所述发起方确定出所要寻找的所述目标数据在所述多方数据排序后所处的所述索引值。
可选地,所述发起方和参与方各方统一确定所述多方数据区间的上界和下界,根据确定好的所述上界和下界将所述多方数据区间划分为n个所述子区间,所述发起方和参与方本地计算对应的所述本方数据落在对应的所述子区间内的集合。
可选地,所述发起方对所述索引值和各个所述子区间内的对应的所述本方数据的数据量进行秘密分享,所述参与方对各个所述子区间内的对应的所述本方数据的数据量进行秘密分享,利用秘密分享算法中的加法减法和密态比较运算确定所述索引值对应的所述目标数据所在的所述目标子区间,判断所述目标数据是否为所述目标子区间对应的所述多方数据中的最大值或最小值。
可选地,如果根据所述密态比较运算的结果确定在所要找的所述目标数据是位于所述目标子区间的最大值后,对所述目标子区间内的所述多方数据的集合密态求解出最大值;如果根据所述密态比较运算的结果确定在所要找的所述目标数据是位于所述目标子区间的最小值后,对所述目标子区间内的所述多方数据的集合密态求解出最小值。
可选地,如果所述密态比较结果确定所述目标数据不是所述目标子区间对应的所述多方数据中的最大值或最小值,则对所述目标数据所在的所述目标子区间继续进行划分,根据所述密态比较结果选择是否更新当前的秘密分片。
可选地,在利用秘密分享算法计算相应的秘密分片过程中,用到的计算公式包括:
<Indexnew> = sub(<Indexold>, add(<NA1>,<NB1>,<NC1>))、
<Result1> = eqz(<Indexnew>)、<Result2> = gt(<Indexnew>)、
<Result3> = eqz(sub(<Indexnew>,<1>)) ,
其中,<Indexold>为第三秘密分片,<NA1>为第一秘密分片,<NB1>、<NC1>为第二秘密分片。
为实现上述目的,本申请还提供一种基于秘密分享的统计装置,包括:存储器;以及
与所述存储器连接的处理器,所述处理器被配置成:
S1、发起方和参与方通过秘密分享算法密态求解出多方数据的数据量总和,所述发起方确定出所要寻找的目标数据在所述多方数据排序后所处的索引值;S2、确定所述多方数据区间的上界和下界,并将所述多方数据区间划分为n个子区间,所述发起方和参与方各方本地统计对应的本方数据落在对应的所述子区间的集合;S3、利用秘密分享算法计算出所述索引值对应的目标数据所落在的目标子区间,并且判断所述目标数据是否为所述目标子区间对应的所述多方数据中的最大值或最小值;S4、如果所述目标数据是所述目标子区间对应的所述多方数据中的最大值或最小值,则利用秘密分享算法求解所述多方数据在所述目标子区间的最大值或最小值即可得到所述目标数据;S5、如果所述目标数据不是所述目标子区间对应的所述多方数据中的最大值或最小值,则将所述目标子区间作为新的所述多方数据区间并重新执行步骤S2至S5,直至得到所述目标数据。
为实现上述目的,本申请还提供一种计算机存储介质,其上存储有计算机程序,其中所述计算机程序被机器执行时实现如上所述的方法的步骤。
本申请实施例具有如下优点:
1.本申请实施例提供一种基于秘密分享的统计方法,包括步骤:S1、发起方和参与方通过秘密分享算法密态求解出多方数据的数据量总和,所述发起方确定出所要寻找的目标数据在所述多方数据排序后所处的索引值;S2、确定所述多方数据区间的上界和下界,并将所述多方数据区间划分为n个子区间,所述发起方和参与方各方本地统计对应的本方数据落在对应的所述子区间的集合;S3、利用秘密分享算法计算出所述索引值对应的目标数据所落在的目标子区间,并且判断所述目标数据是否为所述目标子区间对应的所述多方数据中的最大值或最小值;S4、如果所述目标数据是所述目标子区间对应的所述多方数据中的最大值或最小值,则利用秘密分享算法求解所述多方数据在所述目标子区间的最大值或最小值即可得到所述目标数据;S5、如果所述目标数据不是所述目标子区间对应的所述多方数据中的最大值或最小值,则将所述目标子区间作为新的所述多方数据区间并重新执行步骤S2至S5,直至得到所述目标数据。
通过上述方法,在没有暴露每方数据明文的基础上,实现高效地求解出第k大数据也即目标数据,并且本方案没有暴露每一方数据在不同子区间数据的数量,极大程度上保护了各方数据的明文信息。本方案相比普通的密文排序方案,有效地减少了计算开销较大的密态比较的次数,同时在面对多方数据数据量不平衡的场合下,依旧保持其适用性,从而降低了计算成本和实际使用过程中的复杂度,提高了计算效率。
附图说明
为了更清楚地说明本申请的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
图1为本申请实施例提供的一种基于秘密分享的统计方法的流程图;
图2为本申请实施例提供的一种基于秘密分享的统计方法的示例性步骤示意图;
图3为本申请实施例提供的一种基于秘密分享的统计装置的模块框图。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,下面所描述的本申请不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本申请一实施例提供一种基于秘密分享的统计方法,参考图1,图1为本申请的一实施方式中提供的一种基于秘密分享的统计方法的流程图,应当理解的是,该方法还可以包括未示出的附加框和/或可以省略所示出的框,本申请的范围在此方面不受限制。
本申请所涉及的关于秘密分享的相关计算包括:
add(·):给定秘密共享值 <x1>和<x2>,add(·) 输出秘密值的共享值。假设最终求和的结果为共享值<xs>=(xs,1,xs,2,...,xs,n),则对于xs,i的计算 过程如下:
sub(·):对应上述密文间加法运算,将“+”改为“-”即可实现密文减法计算。
ltz(·):给定秘密共享值 <xi>,ltz(·) 输出秘密值的共享值是否小于零 。该函数只需将第一位的符号位进行提取即可(参考定点数的数据表示方法,第一 位恰好会是符号位,一般符号位为1表示小于零)。
gtz(·):给定秘密共享值 <xi>,gtz(·) 输出秘密值的共享值是否大于零 。该函数只需将第一位的符号位进行提取即可(参考定点数的数据表示方法,第一 位恰好会是符号位,一般符号位01表示大于零)。
eqz(·) :给定秘密共享值 <xi>,输出秘密值的共享值是否为零 。该函 数的计算基于以下原理,给定一个数的布尔值α,设其第k位的布尔值为 α[k],则该数等于 0,必须满足:
其中,l 为数据的长度。因此,我们只需将上述公式中的“或”运算全部用密文“或”计算完成即可。
密态求解数据xa小于xb运算即: lt(<xa> , <xb>):
密态求解xa 小于 xb核心思想:使用秘密分享算法求解xa 减去xb,得到的算数电路下的秘密分片转为bool电路下的秘密分片<bxc>,再密态求解秘密分片<bxc>所对应的明文是否小于零
<xc> = sub(<xa> , <xb>);
<bxc> = atob(<xc>);
<xr> = ltz(<bxc>);
密态求解数据xa大于xb运算即: gt(<xa> , <xb>):
密态求解xa 大于 xb核心思想:使用秘密分享算法求解xa 减去xb,得到的算数电路下的秘密分片转为bool电路下的秘密分片<bxc>,再密态求解秘密分片<bxc>所对应的明文是否大于零
<xc> = sub(<xa> , <xb>);
<bxc> = atob(<xc>);
<xr> = gtz(<bxc>);
密态求解数据xa和数据xb密态求解等于运算即: eq(<xa> , <xb>):
密态求解xa 等于 xb核心思想:使用秘密分享算法求解xa 减去xb, 得到的算数电路下的秘密分片转为bool电路下的秘密分片<bxc>, 再密态求解秘密分片<bxc>所对应的明文是否等于零。
<xc> = sub(<xa> , <xb>);
<bxc> = atob(<xc>);
<xr> = eqz(<bxc>);
密态求解xa xb xc三方数据中的最大值:
<c1> = lt(<xa> , <xb>)
<xd> = mux(<xa>, <xb>, <c1>)
<c2> = lt(<xd> , <xc>)
<xmax> = mux(<xd>, <xc>, <c2>)
密态求解xa xb xc三方数据中的最小值:
<c1> = lt(<xa> , <xb>)
<xd> = mux(<xb>, <xa> , <c1>)
<c2> = lt(<xd> , <xc>)
<xmin> = mux( <xc>, <xd>, <c2>)
其中 lt(<xa> , <xb>)的得到的密态值对应的明文值为0或1,1代表 xa < xb成立,0代表 xa < xb不成立,mux为选择电路,根据输入的第三个参数决定选择的对象,第三个参数对应的明文是0时选择输入参数的第一个值,第三个参数对应的明文是1时选择输入参数的第二个值。
执行步骤S1,发起方和参与方通过秘密分享算法密态求解出多方数据的数据量总和,所述发起方确定出所要寻找的目标数据在所述多方数据排序后所处的索引值。
在一些实施例中,所述发起方和参与方各方本地统计所述本方数据的数据量得到对应的数值,并根据所述数值通过秘密分享算法在发起方密态求解得到所述多方数据的数据量总和,所述发起方确定出所要寻找的所述目标数据在所述多方数据排序后所处的所述索引值。
执行步骤S2,确定所述多方数据区间的上界和下界,并将所述多方数据区间划分为n个子区间,所述发起方和参与方各方本地统计对应的本方数据落在对应的所述子区间的集合。
在一些实施例中,所述发起方和参与方各方统一确定所述多方数据区间的上界和下界,根据确定好的所述上界和下界将所述多方数据区间划分为n个所述子区间,所述发起方和参与方本地计算对应的所述本方数据落在对应的所述子区间内的集合。
具体地,本实施例中,以三方数据为例,发起方A和参与方B、C统计自身数据量NA,NB,NC,利用秘密分享算法协同计算<N>= sub(<NA> ,<NB>,<NC>),其中<NA> ,<NB>,<NC>分别代表NA,NB,NC对应的秘密分片,<N>代表密态求加后对应的秘密分片,总数据量的明文值N在发起方A恢复得到。发起方A根据得到的N本地计算出目标数据在所述多方数据排序后所处的索引值,以下实施例中以求解的目标数据为中位数为例进行说明,中位数的索引值Index = ceil(N / 2)(向上取整)。发起方和参与方一同确定多方数据初始区间的上界Vmax和下界Vmin,确保发起方和参与方的数据都能落在[Vmin, Vmax]区间范围内。发起方和参与方统一确定子区间数n=2,同时本地计算子区间划分位置Vd = (Vmax+Vmin) / 2,将[Vmin, Vmax]区间划分为两个区间Bin1 = [Vmin, Vd]和Bin2 = (Vd, Vmax],Bin1即第一子区间,Bin2即第二子区间。发起方和参与方本地计算自身数据(即各方的本方数据)落在Bin1子区间中数据的个数NX1,并根据Bin1和Bin2的区间将数据划分为两个集合P1和P2,P1中数据即第一子区间数据,P2中数据即第二子区间数据,集合P1中存放的数据都在Bin1区间内中,集合P2中存放的数据都在Bin2的子区间范围内,需要注意的是多次循环下来P1和P2是有可能为空集合。发起方和参与方将各自手中的NX1(A方为NA1,B方为NB1,C方为NC1)进行秘密分享,得到<NA1>, <NB1>, <NC1>。<NA1>, <NB1>, <NC1>分别对应为NA1, NB1, NC1的秘密分片,<NA1>为所述第一秘密分片,<NB1>、<NC1>为所述第二秘密分片。
执行步骤S3,利用秘密分享算法计算出所述索引值对应的目标数据所落在的目标子区间,并且判断所述目标数据是否为所述目标子区间对应的所述多方数据中的最大值或最小值。
在一些实施例中,所述发起方对所述索引值和各个所述子区间内的对应的所述本方数据的数据量进行秘密分享,所述参与方对各个所述子区间内的对应的所述本方数据的数据量进行秘密分享,利用秘密分享算法中的加法减法和密态比较运算确定所述索引值对应的所述目标数据所在的所述目标子区间,判断所述目标数据是否为所述目标子区间对应的所述多方数据中的最大值或最小值。
具体地,利用秘密分享的方式计算公式(1),其中<NA1>, <NB1>, <NC1>分别对应为NA1, NB1, NC1的秘密分片,第一次循环时<Indexold>对应中位数位置Index 的秘密分片,即第三秘密分片,后面会根据计算结果进行更新。
<Indexnew> = sub(<Indexold>, add(<NA1>,<NB1>,<NC1>)) (1)
<Result1> =eqz(<Indexnew>) (2)
<Result2> = gt(<Indexnew>) (3)
<Result3> = eqz(sub(<Indexnew>,<1>)) (4)
计算表达式(2)、(3)、(4),并且获取计算结果对应的明文结果。
基于所述明文结果,结合所述第一子区间数据和所述第二子区间数据,通过密态求解算法确定所述发起方和所述参与方的目标隐私结果,其中,所述目标隐私结果用于指示所述目标数据。
执行步骤S4,如果所述目标数据是所述目标子区间对应的所述多方数据中的最大值或最小值,则利用秘密分享算法求解所述多方数据在所述目标子区间的最大值或最小值即可得到所述目标数据。
在一些实施例中,如果根据所述密态比较运算的结果确定在所要找的所述目标数据是位于所述目标子区间的最大值后,对所述目标子区间内的所述多方数据的集合密态求解出最大值;如果根据所述密态比较运算的结果确定在所要找的所述目标数据是位于所述目标子区间的最小值后,对所述目标子区间内的所述多方数据的集合密态求解出最小值。
在一些实施例中,基于所述明文结果,结合所述第一子区间数据和所述第二子区间数据,通过密态求解算法确定所述发起方和所述参与方的所述目标隐私结果包括:当所述明文结果为第一明文结果时,表明所述目标数据为所述第一子区间数据,并且为各方的所有所述第一子区间数据中的最大值,通过密态求解算法确定的所述发起方和所述参与方各方的所述第一子区间数据中的最大值即为所述目标隐私结果,将所述目标隐私结果恢复为明文得到所述目标数据,第一子区间即为所述目标子区间。
具体地,如果明文结果为第一明文结果时即表达式(2)成立。首先计算表达式(2)并恢复出表达式(2)的结果明文result1,如果result1的明文结果表示表达式(2)成立,则表明整体数据的中位数在子区间Bin1内,并且为多方数据在Bin1子区间中的最大值。此时需要求解多方数据中的最大值。各参与方本地计算在Bin1子区间对应集合P1中的最大值P1_max_x,如果P1为空,则将P1_max_x的值取Bin1子区间范围的下界B1min,密态求解各个参与方中P1_max_x的最大值,即密态求解max(P1_max_A, P1_max_B, P1_max_C)。将得到的结果恢复成明文后得到的值即为最终结果,即目标数据,计算结束。
在一些实施例中,基于所述明文结果,结合所述第一子区间数据和所述第二子区间数据,通过密态求解算法确定所述发起方和所述参与方的所述目标隐私结果包括:当所述明文结果为第二明文结果时,表明所述目标数据为所述第二子区间数据,并且为各方的所有所述第二子区间数据中的最小值,通过密态求解算法确定的所述发起方和所述参与方各方的所述第二子区间数据中的最小值即为所述目标隐私结果,将所述目标隐私结果恢复为明文得到所述目标数据,第二子区间即为所述目标子区间。
具体地,如果明文结果为第二明文结果时即表达式(2)不成立、表达式(3)成立、表达式(4)成立。首先密态计算表达式(3),恢复出表达式(3)的结果明文result2,如果result2表示表达式(3)成立,则密态计算表达式(4),其中<1>代表1的秘密分片,恢复出表达式(4)的结果明文result3,如果result3表示表达式(4)成立,则表明整体数据的中位数在子区间Bin2内,并且为多方数据在Bin2子区间中的最小值。此时需要求解多方数据中的最小值。各参与本地计算在Bin2子区间对应集合P2中的最小值P2_min_x,如果P2为空,则将P2_min_x的值取Bin2子区间的上界B2max,密态求解各个参与方中P2_min_x的最小值,即密态求解min(P2_min_A, P2_min_B, P2_min_C)。将得到的结果恢复成明文后得到的值即为最终结果,计算结束。
执行步骤S5,如果所述目标数据不是所述目标子区间对应的所述多方数据中的最大值或最小值,则将所述目标子区间作为新的所述多方数据区间并重新执行步骤S2至S5,直至得到所述目标数据。
在一些实施例中,如果所述密态比较结果确定所述目标数据不是所述目标子区间对应的所述多方数据中的最大值或最小值,则对所述目标数据所在的所述目标子区间继续进行划分,根据所述密态比较结果选择是否更新当前的秘密分片。
在一些实施例中,基于所述明文结果,结合所述第一子区间数据和所述第二子区间数据,通过密态求解算法确定所述发起方和所述参与方的所述目标隐私结果包括:当所述明文结果为第三明文结果时,表明所述目标数据为所述第一子区间数据,并且小于各方的所有所述第一子区间数据中的最大值,将所述第一子区间重新确定为所述数据区间,进行区间划分,重新确定所述发起方和所述参与方各方的所述第一子区间数据和第二子区间数据,重新执行步骤S2至S5,直至得到所述目标数据。
具体地,如果明文结果为第三明文结果时即表达式(2)不成立、表达式(3)不成立。则表明整体数据的中位数在子区间Bin1内,并且不是Bin1子区间中的最大值。将Bin1的上界B1max和下界B1min重新定为搜索空间的上界和下界,确定子区间数n=2,重新确定子区间划分位置Vd = (B1max+B1min)/2,搜索空间重新划分为两个区间Bin1 = [B1min, Vd]和Bin2 = (Vd, B1max],并统计集合P1在区间Bin1和Bin2中信息进而更新Nx1,P1,P2。发起方A和参与方B,C对分别对NA1, NB1, NC1进行秘密分享,每一方都得到对应的秘密分片<NA1>, <NB1>, <NC1>,密态计算式(1), 得到新的<Indexnew>。然后重新执行步骤S2至S5,直至得到所述目标数据。
在一些实施例中,基于所述明文结果,结合所述第一子区间数据和所述第二子区间数据,通过密态求解算法确定所述发起方和所述参与方的所述目标隐私结果包括:当所述明文结果为第四明文结果时,表明所述目标数据为所述第二子区间数据,并且大于各方的所有所述第二子区间数据中的最小值,将所述第二子区间重新确定为所述数据区间,进行区间划分,重新确定所述发起方和所述参与方各方的所述第一子区间数据和第二子区间数据,重新获取所述第一秘密分片和所述第二秘密分片,重新赋值所述第三秘密分片,重新执行步骤S2至S5,得到所述目标数据。
具体地,如果明文结果为第四明文结果时即表达式(2)不成立、表达式(3)成立、表达式(4)不成立。则表明整体数据的中位数在子区间Bin2内,并且不是Bin2子区间中的最小值。将Bin2的上界B2max和下界B2min重新定为搜索空间的上界和下界,确定子区间数n=2,重新确定子区间划分位置Vd = (B2max+B2min)/2,搜索空间重新划分为两个区间Bin1 =(B2min, Vd]和Bin2 = (Vd, B2max],并统计集合P2在区间Bin1和Bin2中信息进而更新Nx1,P1,P2。发起方A和参与方B,C对分别对NA1, NB1, NC1进行秘密分享,每一方都得到对应的秘密分片<NA1>, <NB1>, <NC1>,将<Indexnew>赋值给<Indexold>后密态计算式(1)。重新执行步骤S3至S4,得到所述目标数据。
具体请参考图2,图2为实例说明本申请的方法步骤,其中:
假设A,B,C三方数据数据分别为
A = [76, 27, 93, 67, 96, 57, 83, 42, 56, 35, 93, 88, 46, 90, 78, 59](16个)
B = [65, 77, 12, 94, 49, 76, 94, 57, 71, 58, 17, 62, 95, 37, 44, 86,50, 13] (18个)
C = [79, 74, 85, 44, 68, 20, 32, 87, 28, 25, 37, 40, 66, 80, 36, 90,16] (17个)
由明文计算可得A,B,C三方整体的中位数结果是62,假设A为发起方,B和C为参与方。
通过上述方法,在没有暴露每方数据明文的基础上,实现高效地求解出第k大数据也即目标数据,并且本方案没有暴露每一方数据在不同子区间数据的数量,极大程度上保护了各方数据的明文信息。本方案相比普通的密文排序方案,有效地减少了计算开销较大的密态比较的次数,同时在面对多方数据数据量不平衡的场合下,依旧保持其适用性,从而降低了计算成本和实际使用过程中的复杂度,提高了计算效率。
图3为本申请实施例提供的一种基于秘密分享的统计装置的模块框图。该装置包括:
存储器201;以及与所述存储器201连接的处理器202,所述处理器202被配置成:S1、发起方和参与方通过秘密分享算法密态求解出多方数据的数据量总和,所述发起方确定出所要寻找的目标数据在所述多方数据排序后所处的索引值;S2、确定所述多方数据区间的上界和下界,并将所述多方数据区间划分为n个子区间,所述发起方和参与方各方本地统计对应的本方数据落在对应的所述子区间的集合;S3、利用秘密分享算法计算出所述索引值对应的目标数据所落在的目标子区间,并且判断所述目标数据是否为所述目标子区间对应的所述多方数据中的最大值或最小值;S4、如果所述目标数据是所述目标子区间对应的所述多方数据中的最大值或最小值,则利用秘密分享算法求解所述多方数据在所述目标子区间的最大值或最小值即可得到所述目标数据;S5、如果所述目标数据不是所述目标子区间对应的所述多方数据中的最大值或最小值,则将所述目标子区间作为新的所述多方数据区间并重新执行步骤S2至S5,直至得到所述目标数据。
在一些实施例中,所述处理器202还被配置成:所述发起方和参与方各方本地统计所述本方数据的数据量得到对应的数值,并根据所述数值通过秘密分享算法在发起方密态求解得到所述多方数据的数据量总和,所述发起方确定出所要寻找的所述目标数据在所述多方数据排序后所处的所述索引值。
在一些实施例中,所述处理器202还被配置成:所述发起方和参与方各方统一确定所述多方数据区间的上界和下界,根据确定好的所述上界和下界将所述多方数据区间划分为n个所述子区间,所述发起方和参与方本地计算对应的所述本方数据落在对应的所述子区间内的集合。
在一些实施例中,所述处理器202还被配置成:所述发起方对所述索引值和各个所述子区间内的对应的所述本方数据的数据量进行秘密分享,所述参与方对各个所述子区间内的对应的所述本方数据的数据量进行秘密分享,利用秘密分享算法中的加法减法和密态比较运算确定所述索引值对应的所述目标数据所在的所述目标子区间,判断所述目标数据是否为所述目标子区间对应的所述多方数据中的最大值或最小值。
在一些实施例中,所述处理器202还被配置成:如果根据所述密态比较运算的结果确定在所要找的所述目标数据是位于所述目标子区间的最大值后,对所述目标子区间内的所述多方数据的集合密态求解出最大值;如果根据所述密态比较运算的结果确定在所要找的所述目标数据是位于所述目标子区间的最小值后,对所述目标子区间内的所述多方数据的集合密态求解出最小值。
在一些实施例中,所述处理器202还被配置成:如果所述密态比较结果确定所述目标数据不是所述目标子区间对应的所述多方数据中的最大值或最小值,则对所述目标数据所在的所述目标子区间继续进行划分,根据所述密态比较结果选择是否更新当前的秘密分片。
在一些实施例中,所述处理器202还被配置成:在利用秘密分享算法计算相应的秘密分片过程中,用到的计算公式包括:
<Indexnew> = sub(<Indexold>, add(<NA1>,<NB1>,<NC1>))、
<Result1> = eqz(<Indexnew>)、<Result2> = gt(<Indexnew>)、
<Result3> = eqz(sub(<Indexnew>,<1>)) ,
其中,<Indexold>为第三秘密分片,<NA1>为第一秘密分片,<NB1>、<NC1>为第二秘密分片。
具体实现方法参考前述方法实施例,此处不再赘述。
本申请可以是方法、装置、***和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本申请的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里参照根据本申请实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
注意,除非另有直接说明,否则本说明书(包含任何所附权利要求、摘要和附图)中所揭示的所有特征皆可由用于达到相同、等效或类似目的的可替代特征来替换。因此,除非另有明确说明,否则所公开的每一个特征仅是一组等效或类似特征的一个示例。在使用到的情况下,进一步地、较优地、更进一步地和更优地是在前述实施例基础上进行另一实施例阐述的简单起头,该进一步地、较优地、更进一步地或更优地后带的内容与前述实施例的结合作为另一实施例的完整构成。在同一实施例后带的若干个进一步地、较优地、更进一步地或更优地设置之间可任意组合的组成又一实施例。
虽然,上文中已经用一般性说明及具体实施例对本申请作了详尽的描述,但在本申请基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本申请精神的基础上所做的这些修改或改进,均属于本申请要求保护的范围。

Claims (4)

1.一种基于秘密分享的统计方法,其特征在于,所述方法应用于发起方和若干参与方,包括以下步骤:
S1、发起方和参与方通过秘密分享算法密态求解出多方数据的数据量总和,所述发起方确定出所要寻找的目标数据在所述多方数据排序后所处的索引值;
S2、确定所述多方数据区间的上界和下界,并将所述多方数据区间划分为n个子区间,所述发起方和参与方各方本地统计对应的本方数据落在对应的所述子区间的集合;
S3、利用秘密分享算法计算出所述索引值对应的目标数据所落在的目标子区间,并且判断所述目标数据是否为所述目标子区间对应的所述多方数据中的最大值或最小值;
S4、如果所述目标数据是所述目标子区间对应的所述多方数据中的最大值或最小值,则利用秘密分享算法求解所述多方数据在所述目标子区间的最大值或最小值即可得到所述目标数据;
S5、如果所述目标数据不是所述目标子区间对应的所述多方数据中的最大值或最小值,则将所述目标子区间作为新的所述多方数据区间并重新执行步骤S2至S5,直至得到所述目标数据;
其中,在所述S3中,所述发起方对所述索引值和各个所述子区间内的对应的所述本方数据的数据量进行秘密分享,所述参与方对各个所述子区间内的对应的所述本方数据的数据量进行秘密分享,利用秘密分享算法中的加法减法和密态比较运算确定所述索引值对应的所述目标数据所在的所述目标子区间,判断所述目标数据是否为所述目标子区间对应的所述多方数据中的最大值或最小值;在利用秘密分享算法计算相应的秘密分片过程中,用到的计算公式包括:
<Indexnew> = sub(<Indexold>, add(<NA1>,<NB1>,<NC1>))、 (1)
<Result1> = eqz(atob(<Indexnew>))、 (2)
<Result2> = gtz(atob(<Indexnew>))、 (3)
<Result3> = eqz(atob(sub(<Indexnew>,<1>))) , (4);
其中,发起方A和参与方B、C统计自身数据量NA,NB,NC;发起方A落在Bin1子区间中数据的个数NA1;参与方B落在Bin1子区间中数据的个数NB1;C落在Bin1子区间中数据的个数NC1;<Indexold>为第三秘密分片,<NA1>为第一秘密分片,<NB1>、<NC1>为第二秘密分片;其中,add(·):给定秘密共享值<x1>和<x2>,add(·)输出秘密值的共享值sub(·):对应密文间加法运算,将“+”改为“-”即可实现密文减法计算;atob(·):将算数电路秘密分享值转为bool电路秘密分享值;ltz(·):给定秘密共享值<xi>,输出秘密值的共享值是否小于零<xa<0?>;gtz(·):给定秘密共享值<xi>,gtz(·)输出秘密值的共享值是否大于零<xa>0?>;eqz(·):给定秘密共享值<xi>,输出秘密值的共享值是否为零<xa=0?>;
计算公式(1),第一次循环时<Indexold>对应中位数位置Index的秘密分片,即第三秘密分片,后面会根据计算结果进行更新计算表达式(2)、(3)、(4),并且获取计算结果对应的明文结果基于所述明文结果,结合所述第一子区间数据和所述第二子区间数据,通过密态求解算法确定所述发起方和所述参与方的目标隐私结果,其中,所述目标隐私结果用于指示所述目标数据;
其中,发起方和参与方一同确定多方数据初始区间的上界Vmax和下界Vmin,确保发起方和参与方的数据都能落在[Vmin,Vmax]区间范围内,发起方和参与方统一确定子区间数n=2,同时本地计算子区间划分位置Vd=(Vmax+Vmin)/2,将[Vmin,Vmax]区间划分为两个区间Bin1=[Vmin,Vd]和Bin2=(Vd,Vmax],Bin1即第一子区间,Bin2即第二子区间;发起方和参与方本地计算自身数据落在Bin1子区间中数据的个数NX1,并根据Bin1和Bin2的区间将数据划分为两个集合P1和P2,P1中数据即第一子区间数据,P2中数据即第二子区间数据,集合P1中存放的数据都在Bin1区间内中,集合P2中存放的数据都在Bin2的子区间范围内;发起方和参与方将各自手中的NX1进行秘密分享,得到<NA1>,<NB1>,<NC1>;
在执行S4时,对秘密分片<Result1>、<Result2>、<Result3>恢复出对应的明文值Result1、Result2、Result3,如果Result1为真,则表明秘密分片<Indexnew>所对应的明文值Indexnew是等于0的;根据上述结果不难发现目标数据在子区间Bin1内,并且为多方数据在Bin1子区间中的最大值,此时需要求解多方数据中的最大值,各参与方本地计算在Bin1子区间对应集合P1中的最大值P1_max_x,如果P1为空,则将P1_max_x的值取Bin1子区间范围的下界B1min,密态求解各个参与方中P1_max_x的最大值,即密态求解max(P1_max_A,P1_max_B,P1_max_C),将得到的结果恢复成明文后得到的值即为最终结果,即目标数据,计算结束;
如果明文结果Result1为假、Result2为真、Result3为真,则表明目标数据在子区间Bin2内,并且为多方数据在Bin2子区间中的最小值,此时需要求解多方数据中的最小值,各参与本地计算在Bin2子区间对应集合P2中的最小值P2_min_x,如果P2为空,则将P2_min_x的值取Bin2子区间的上界B2max,密态求解各个参与方中P2_min_x的最小值,即密态求解min(P2_min_A,P2_min_B,P2_min_C),将得到的结果恢复成明文后得到的值即为最终结果,计算结束;
如果明文结果Result1为假且Result2为假,则表明目标数据在子区间Bin1内,并且不是Bin1子区间中的最大值,将Bin1的上界B1max和下界B1min重新定为搜索空间的上界和下界,确定子区间数n=2,重新确定子区间划分位置Vd=(B1max+B1min)/2,搜索空间重新划分为两个区间Bin1=[B1min,Vd]和Bin2=(Vd,B1max],并统计集合P1在区间Bin1和Bin2中信息进而更新Nx1,P1,P2;发起方A和参与方B,C对分别对NA1,NB1,NC1进行秘密分享,每一方都得到对应的秘密分片<NA1>,<NB1>,<NC1>,密态计算式(1),得到新的<Indexnew>,然后重新执行步骤S2至S5,直至得到所述目标数据;
如果明文结果Result1为假、Result2为真、Result3为假,则表明目标数据在子区间Bin2内,并且不是Bin2子区间中的最小值,将Bin2的上界B2max和下界B2min重新定为搜索空间的上界和下界,确定子区间数n=2,重新确定子区间划分位置Vd=(B2max+B2min)/2,搜索空间重新划分为两个区间Bin1=(B2min,Vd]和Bin2=(Vd,B2max],并统计集合P2在区间Bin1和Bin2中信息进而更新Nx1,P1,P2,发起方A和参与方B,C对分别对NA1,NB1,NC1进行秘密分享,每一方都得到对应的秘密分片<NA1>,<NB1>,<NC1>,将<Indexnew>赋值给<Indexold>后密态计算式(1),重新执行步骤S3至S4,得到所述目标数据。
2.根据权利要求1所述的基于秘密分享的统计方法,其特征在于,包括:
如果所述密态比较结果确定所述目标数据不是所述目标子区间对应的所述多方数据中的最大值或最小值,则对所述目标数据所在的所述目标子区间继续进行划分,根据所述密态比较结果选择是否更新当前的秘密分片。
3.一种基于秘密分享的统计装置,其特征在于,包括:
存储器;以及
与所述存储器连接的处理器,所述处理器被配置成执行权利要求1所述的方法。
4.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被机器执行时实现如权利要求1至2中任一项所述的方法的步骤。
CN202210796852.0A 2022-07-08 2022-07-08 一种基于秘密分享的统计方法、装置及存储介质 Active CN115134078B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210796852.0A CN115134078B (zh) 2022-07-08 2022-07-08 一种基于秘密分享的统计方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210796852.0A CN115134078B (zh) 2022-07-08 2022-07-08 一种基于秘密分享的统计方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN115134078A CN115134078A (zh) 2022-09-30
CN115134078B true CN115134078B (zh) 2024-02-06

Family

ID=83381168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210796852.0A Active CN115134078B (zh) 2022-07-08 2022-07-08 一种基于秘密分享的统计方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN115134078B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116579021B (zh) * 2023-07-12 2024-04-05 蓝象智联(杭州)科技有限公司 一种基于秘密分享的多方联合数据检索方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114595479A (zh) * 2022-05-10 2022-06-07 富算科技(上海)有限公司 一种数据中位数确定方法及装置
CN114662148A (zh) * 2022-03-25 2022-06-24 支付宝(杭州)信息技术有限公司 一种保护隐私的多方联合训练方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114662148A (zh) * 2022-03-25 2022-06-24 支付宝(杭州)信息技术有限公司 一种保护隐私的多方联合训练方法及装置
CN114595479A (zh) * 2022-05-10 2022-06-07 富算科技(上海)有限公司 一种数据中位数确定方法及装置

Also Published As

Publication number Publication date
CN115134078A (zh) 2022-09-30

Similar Documents

Publication Publication Date Title
US11176469B2 (en) Model training methods, apparatuses, and systems
CN112000990B (zh) 隐私保护的数据处理方法、装置、设备及机器学习***
Pan et al. Bit-level optimization of adder-trees for multiple constant multiplications for efficient FIR filter implementation
CN111144576A (zh) 模型训练方法、装置和电子设备
Krips et al. Hybrid model of fixed and floating point numbers in secure multiparty computations
CN115134078B (zh) 一种基于秘密分享的统计方法、装置及存储介质
Ebrahimi et al. How complex contagions spread quickly in preferential attachment models and other time-evolving networks
CN111931241A (zh) 基于隐私保护的线性回归特征显著性检验方法、装置
Riazi et al. MPCircuits: Optimized circuit generation for secure multi-party computation
CN115730333A (zh) 基于秘密分享和同态加密的安全树模型构建方法和装置
Arapostathis et al. The Dirichlet problem for stable-like operators and related probabilistic representations
CN116187433B (zh) 基于秘密分享的联邦拟牛顿训练方法、装置及存储介质
CN114254353A (zh) 基于隐私保护的数据处理方法、装置和服务器
Basilakis et al. Efficient parallel binary operations on homomorphic encrypted real numbers
CN111159730B (zh) 数据处理方法、查询方法、装置、电子设备和***
CN114880693B (zh) 生成激活函数方法、装置、电子设备和可读介质
CN111046431A (zh) 数据处理方法、查询方法、装置、电子设备和***
Borysenko et al. The Fibonacci numeral system for computer vision
CN114584284A (zh) 同态加密操作方法、装置和电子设备
US20210176252A1 (en) Secret equality determination system, secret equality determination method and secret equality determination program recording medium
Kumar et al. Duality results for a second-order multiobjective fractional programming problem with generalised convexity
Sghaier et al. Fast Constant-Time Modular Inversion over F p Resistant to Simple Power Analysis Attacks for IoT Applications
CN112434064A (zh) 数据处理方法、装置、介质及电子设备
US20200302307A1 (en) Graph based hypothesis computing
CN113111254B (zh) 推荐模型的训练方法、拟合方法、装置和电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant