保护数据隐私的选择问题处理方法与流程

文档序号:26006265发布日期:2021-07-23 21:24阅读:119来源:国知局
保护数据隐私的选择问题处理方法与流程

本说明书涉及信息技术领域,特别涉及保护数据隐私的选择问题处理方法。



背景技术:

安全多方计算又称为多方安全计算,即多方共同计算出一个函数的结果,而不泄露这个函数各方的输入数据,计算的结果以和共享形式存储于多方或公开给其中的一方或多方。因此,通过安全多方计算,能够让参与的各方在不暴露各自原始数据的情况下,计算出函数的结果。

安全选择可视为一种选择问题的等效函数在多方安全计算上的实现,在面临大量计算的场景下,安全选择步骤中若交互次数和传输数据量过多,会导致系统传输压力过大。



技术实现要素:

本说明书实施例之一提供一种保护数据隐私的选择问题处理方法。特殊选择问题被描述为:当条件元素a=1时,选择目标结果元素x;当条件元素a=0时,选择0。参与特殊选择问题的两方中的任一方记为第一方,所述两方中的另一方记为第二方,条件元素a的第一分片a0和目标结果元素x的第一分片x0保存于第一方的设备,条件元素a的第二分片a1和目标结果元素x的第二分片x1保存于第二方的设备,条件元素a属于第一商群,目标结果元素x属于第二商群。特殊选择问题等效于计算条件元素a的模转换结果i(a)和目标结果元素x的乘积i(a)x,其中,i()表示将属于所述第一商群的输入保持值不变转换至所述第二商群的运算。所述方法由第一方的设备执行,其包括:获得第一随机数的第一分片第二随机数的第一分片第一随机数的模转换结果的第一分片b0和乘积的第一分片c0,其中,第一随机数属于所述第一商群,第二随机数属于所述第二商群;计算条件元素a的第一分片a0与第一随机数的第一分片的差值,得到条件元素a与第一随机数的差值δa的第一分片δa0;计算目标结果元素x的第一分片x0与第二随机数的第一分片的差值,得到目标结果元素x与第二随机数的差值δx的第一分片δx0;将差值δa的第一分片δa0和差值δx的第一分片δx0发送给第二方的设备,从第二方的设备接收差值δa的第二分片δa1和差值δx的第二分片δx1;基于差值δa的第一分片δa0、差值δa的第二分片δa1、差值δx的第一分片δx0、差值δx的第二分片δx1、模转换结果的第一分片b0、乘积的第一分片c0和第二随机数的第一分片计算乘积i(a)x的第一分片。

本说明书实施例之一提供一种保护数据隐私的选择问题处理系统。所述系统在第一方的设备上实现,其包括:第一获得模块,用于获得第一随机数的第一分片第二随机数的第一分片第一随机数的模转换结果的第一分片b0和乘积的第一分片c0,其中,第一随机数属于所述第一商群,第二随机数属于所述第二商群;第一计算模块,用于计算条件元素a的第一分片a0与第一随机数的第一分片的差值,得到条件元素a与第一随机数的差值δa的第一分片δa0;计算目标结果元素x的第一分片x0与第二随机数的第一分片的差值,得到目标结果元素x与第二随机数的差值δx的第一分片δx0;第一交换模块,用于将差值δa的第一分片δa0和差值δx的第一分片δx0发送给第二方的设备,从第二方的设备接收差值δa的第二分片δa1和差值δx的第二分片δx1;第二计算模块,用于基于差值δa的第一分片δa0、差值δa的第二分片δa1、差值δx的第一分片δx0、差值δx的第二分片δx1、模转换结果的第一分片b0、乘积的第一分片c0和第二随机数的第一分片计算乘积i(a)x的第一分片。

本说明书实施例之一提供一种保护数据隐私的选择问题处理方法。一般选择问题被描述为:当条件元素a=1时,选择第一结果元素m;当条件元素a=0时,选择第二结果元素n。参与一般选择问题的两方中的任一方记为第一方,所述两方中的另一方记为第二方,条件元素a的第一分片a0、第一结果元素m的第一分片m0和第二结果元素n的第一分片n0保存于第一方的设备,条件元素a的第二分片a1、第一结果元素x的第二分片x1、第一结果元素m的第二分片m1和第二结果元素n的第二分片n1保存于第二方的设备,条件元素a属于第一商群,第一结果元素m和第二结果元素n属于第二商群。一般选择问题等效于计算目标多项式i(a)(m-n)+n,其中,i()表示将属于所述第一商群的输入保持值不变转换至所述第二商群的运算。所述方法由第一方的设备执行,其包括:计算第一结果元素m的第一分片m0与第二结果元素n的第一分片n0的差值,得到目标结果元素x的第一分片x0;获得第一随机数的第一分片第二随机数的第一分片第一随机数的模转换结果的第一分片b0和乘积的第一分片c0,其中,第一随机数属于所述第一商群,第二随机数属于所述第二商群;计算条件元素a的第一分片a0与第一随机数的第一分片的差值,得到条件元素a与第一随机数的差值δa的第一分片δa0;计算目标结果元素x的第一分片x0与第二随机数的第一分片的差值,得到目标结果元素x与第二随机数的差值δx的第一分片δx0;将差值δa的第一分片δa0和差值δx的第一分片δx0发送给第二方的设备,从第二方的设备接收差值δa的第二分片δa1和差值δx的第二分片δx1;基于差值δa的第一分片δa0、差值δa的第二分片δa1、差值δx的第一分片δx0、差值δx的第二分片δx1、模转换结果的第一分片b0、乘积的第一分片c0和第二随机数的第一分片计算乘积i(a)x的第一分片;求和乘积i(a)x的第一分片和第二结果元素n的第一分片n0,得到所述目标多项式的第一分片。

本说明书实施例之一提供一种保护数据隐私的选择问题处理系统。所述系统在第一方的设备上实现,其包括:第三计算模块,用于计算第一结果元素m的第一分片m0与第二结果元素n的第一分片n0的差值,得到目标结果元素x的第一分片x0;第二获得模块,用于获得第一随机数的第一分片第二随机数的第一分片第一随机数的模转换结果的第一分片b0和乘积的第一分片c0,其中,第一随机数属于所述第一商群,第二随机数属于所述第二商群;第四计算模块,用于计算条件元素a的第一分片a0与第一随机数的第一分片的差值,得到条件元素a与第一随机数的差值δa的第一分片δa0;计算目标结果元素x的第一分片x0与第二随机数的第一分片的差值,得到目标结果元素x与第二随机数的差值δx的第一分片δx0;第二交换模块,用于将差值δa的第一分片δa0和差值δx的第一分片δx0发送给第二方的设备,从第二方的设备接收差值δa的第二分片δa1和差值δx的第二分片δx1;第五计算模块,用于基于差值δa的第一分片δa0、差值δa的第二分片δa1、差值δx的第一分片δx0、差值δx的第二分片δx1、模转换结果的第一分片b0、乘积的第一分片c0和第二随机数的第一分片计算乘积i(a)x的第一分片;第六计算模块,用于求和乘积i(a)x的第一分片和第二结果元素n的第一分片n0,得到所述目标多项式的第一分片。

本说明书实施例提供一种保护数据隐私的选择问题处理装置,所述装置包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的保护数据隐私的选择问题处理方法。

附图说明

本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:

图1是根据本说明书一些实施例所示的计算系统的应用场景示意图;

图2是根据本说明书一些实施例所示的第一方与第二方安全计算i(a)x的交互示意图;

图3是根据本说明书一些实施例所示的保护数据隐私的选择问题处理系统的示例性模块图;

图4是根据本说明书另一些实施例所示的保护数据隐私的选择问题处理系统的示例性模块图。

具体实施方式

为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。

应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。

如本说明书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。

本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。

在数学中,“群”表示一个满足封闭性、满足结合律、有单位元、有逆元的二元运算的代数结构,包括阿贝尔群、同态和共轭类。其中,通常可以使用乘法符号“*”(在无歧义时可省略)或加法符号“+”作为该二元运算的符号,但需要注意的是,该二元运算不一定等同于四则运算中的乘法或加法。若干元素通过一次或多次二元运算产生的结果可称为合值。

群的二元运算满足:1.封闭律,对于g中的任意元素a、b,a*b仍在g中;2.结合律,对于g中的任意元素a、b和c,有(a*b)*c=a*(b*c);3.有单位元,g中存在元素e,使得a*e=e*a;4.有逆元,对于g中的任一元素a,g中存在b,使得a*b=b*a=e,a、b互为逆元,此处e为单位元。值得说明的是,对于“+”表示的二元运算,e也可称为零元,逆元也可称为负元,对于g中的任意元素a、b,a-b可以表示a+(b的逆元)。群运算的次序很重要,把元素a与元素b结合,所得到的结果不一定与把元素b与元素a结合相同,即交换律a*b=b*a不一定恒成立。满足交换律的群称为阿贝尔群(交换群),不满足交换律的群称为非阿贝尔群(非交换群),阿贝尔群由自身的集合g和二元运算*构成。

在数学中,映射经常等同于函数。例如,假设a和b为两个非空集合,若对a中的任一元素x,依照某种规律(或法则)f,恒有b中的唯一确定的元素y与之对应,则称对应规律f为一个从a到b的映射。记作f:a→b,称y为x的像,记作y=f(x),并称x为y的原像,集合a称为映射f的定义域,集合b称为f的陪域。

进一步地,本说明书涉及一种基于(非负)整数阿贝尔群的商群,其数学表示可以是g:=z/nz,其中,z为(非负)整数集合,n为任何正整数,“/”左边的z表示群元素为1的整数倍,“/”右边的nz表示群的模为n,商群z/nz为模以n的余数的n阶循环群。

值得说明的是,由于计算设备通常使用固定位数(如bit)来存储计算过程中产生的数值,多方协同计算时会频繁使用涉及取模的群加法、群乘法、群减法等等。本说明书中,在没有特别说明的情况下,涉及符号的数学表示可优先按群加法、群乘法、群减法而非四则运算来理解,相关术语(如求和、和值、差值、乘积等)也优先按群加法、群乘法、群减法而非四则运算来理解。

在一些分布式场景中,需要多方安全计算得到目标运算结果,目标运算可以是安全乘法、安全模转换或者安全选择,其中,安全可以指输出结果的正确性和输入信息、输出信息的保密性。例如,在一些机器学习场景中,一方持有私密的特征数据,另一方持有私密的标签数据。若直接计算关于私密数据(特征数据/标签数据)的目标运算结果时,一旦该目标运算结果被泄露可能导致私密数据被反推出。为此,一方可以将自身持有的私密数据x拆分成两份,保留其中一份x_l并将另一份x_r发送给对方,x_l与x_r的和值为x,即x_l与x_r为x的和共享形式。然后,两方运行安全计算协议,各自得到该目标运算结果的一个分片。两方得到的分片的和值即目标运算结果,攻击者若想获知隐私数据需要得到两方的分片。

一些安全多方计算过程涉及选择问题,选择问题一般情况下可被描述为,当条件元素a=1时,选择第一结果元素m,当条件元素a=0时,选择第二结果元素n。一般性的选择问题(简称一般选择问题)可以等效为计算a(m-n)+n。仅作为示例,在利用树模型进行多方预测的场景中,两方分别持有树模型某节点的分裂阈值、对应的左右叶节点分值以及对应特征的特征值的和共享分片。示例性的等效集中预测过程包括,当特征值大于分裂阈值时,选择左叶节点分值,当特征值不大于分裂阈值时,选择右叶节点分值。不难理解,特征值与分裂阈值的比较结果可以归结为条件元素等于1或0的二分类情况。当前述数据涉及隐私安全时,需要双方基于多方安全计算原则,在不泄露各方私密的分片的前提下,完成选择问题。

特殊选择问题是一般选择问题的一种特殊情况,特殊选择问题可被描述为,当条件元素a=1时,选择目标结果元素x,当条件元素a=0时,选择0。不难看出,一般选择问题和特殊选择问题之间可以互相规约:令x=m-n,再求和ax和n可得到一般选择问题的选择结果;将m=x和n=0代入a(m-n)+n,可得到特殊选择问题的选择结果。无论是处理一般选择问题还是特殊选择问题,都可以通过计算ax来实现。

一般来说,条件元素取值仅为两种,这意味着条件元素属于的群(以下称为第一商群)可以仅具有两个元素(即模为2),在计算设备内部,可占用较少的存储空间(如1bit)。结果元素的取值通常较为广泛,这意味着结果元素属于的群(以下称为第二商群)可能具有更多的元素(取决于群的模),在计算设备内容,占用较多的存储空间。在一些实施例中,双方可以通过安全模转换协议获得i(a)的分片。本说明书中,i()表示将第一商群中的元素保持值不变转换到第二商群中的运算(即模转换)。进而,双方可按照多方安全乘法协议计算i(a)x的分片。整个过程需要双方完成3轮交互。具体地,以二进制计算机为例,安全模转换计算环节中,一轮交互涉及的实时通信量(online)为2,固有通信量(offline)为2+2log2n,若使用伪随机函数固有通信量可降至log2n,其中,n为第二商群的模;安全乘法计算环节中,两轮交互涉及的实时通信量(online)为4log2n,固有通信量(offline)为4log2n,若使用伪随机函数固有通信量可降至log2n。因此,总的通信量为4+10log2n或2+6log2n。其中,实时通信量是指参与安全多方计算的双方之间的通信量,固有通信量是指协助双方进行安全多方计算的第三方服务器与双方之间的通信量。

本说明书中的实施例提供了另一种通信量较小的基于多方安全计算协议的选择问题处理方法。

图1是根据本说明书一些实施例所示的计算系统的应用场景示意图。

如图1所示,计算系统100可以包括计算设备110、计算设备120以及网络140,计算设备110和计算设备120可以是参与两方安全计算的两方的设备。

计算设备可以包括各类具备计算能力的设备,如服务器。在一些实施例中,服务器可以是独立的服务器或者服务器组,该服务器组可以是集中式的或者分布式的。在一些实施例中,服务器可以是区域的或者远程的。在一些实施例中,服务器可在云平台上执行。例如,该云平台可包括私有云、公共云、混合云、社区云、分散式云、内部云等中的一种或其任意组合。

网络140连接系统的各组成部分,使得各部分之间可以进行通讯。在系统中各部分之间的网络可以包括有线网络和/或无线网络。例如,网络140可以包括电缆网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络(lan)、广域网络(wan)、无线局域网络(wlan)、城域网(man)、公共交换电话网络(pstn)、蓝牙网络、紫蜂网络(zigbee)、近场通信(nfc)、设备内总线、设备内线路、线缆连接等或其任意组合。每两个部分之间的网络连接可以是采用上述一种方式,也可以是采取多种方式。

在一些实施例中,计算系统100还可以包括第三方服务器130,第三方服务器130可协助两方计算设备运行安全计算协议,例如,第三方服务器130可以生成随机数、计算分片值、分发随机数和/或分片值给计算设备110、计算设备120等。

图2是根据本说明书一些实施例所示的第一方(如计算设备110)与第二方(如计算设备120)安全计算i(a)x的交互示意图。第一方可以是参与安全多方计算的双方中的任一方,第二方为所述双方中的另一方。如图2所示,第一方的设备p0和第二方的设备p1可借助第三方服务器p2获取随机数(如第一随机数和第二随机数)分片以及基于随机数的运算结果(如模转换结果和乘积)的分片。

参考前述内容,对于特殊安全选择问题,双方可基于条件元素a的分片和目标结果元素x的分片,计算选择结果i(a)x的分片。

具体地,条件元素a的第一分片a0和目标结果元素x的第一分片x0保存于第一方的设备,条件元素a的第二分片a1和目标结果元素x的第二分片x1保存于第二方的设备,条件元素a属于第一商群,目标结果元素x属于第二商群。一般来说,为了保证第一商群中的每个群元素都可以进行模转换,第二商群的模可以大于或等于第一商群的模。第一方可基于条件元素a的第一分片a0和目标结果元素x的第一分片x0,计算选择结果i(a)x的第一分片。类似地,第二方可基于条件元素a的第二分片a1和目标结果元素x的第二分片x1,计算选择结果i(a)x的第二分片。

对于一般安全选择问题,双方可先在本地各自计算m的分片与n的分片的差值,得到目标结果元素x(即m-n)的分片。然后,双方可基于条件元素a的分片和目标结果元素x的分片,计算乘积i(a)x的分片。获得i(a)x的分片后,双方可在本地各自求和乘积i(a)x的分片和第二结果元素n的分片,得到选择结果(即目标多项式i(a)(m-n)+n的值)的第一分片。具体地,条件元素a的第一分片a0、第一结果元素m的第一分片m0和第二结果元素n的第一分片n0保存于第一方的设备,条件元素a的第二分片a1、第一结果元素m的第二分片m1和第二结果元素n的第二分片n1保存于第二方的设备,条件元素a属于第一商群,第一结果元素x属于第二商群。第一方可计算第一结果元素m的第一分片m0与第二结果元素n的第一分片n0的差值,得到目标结果元素x的第一分片x0。然后,第一方可可基于条件元素a的第一分片a0和目标结果元素x的第一分片x0,计算乘积i(a)x的第一分片。获得i(a)x的第一分片后,第一方可求和乘积i(a)x的第一分片和第二结果元素n的第一分片n0,得到选择结果的第一分片。类似地,第二方可计算第二结果元素m的第二分片m1与第二结果元素n的第二分片n1的差值,得到目标结果元素x的第二分片x1。然后,第二方可可基于条件元素a的第二分片a1和目标结果元素x的第二分片x1,计算乘积i(a)x的第二分片。获得i(a)x的第二分片后,第二方可求和乘积i(a)x的第二分片和第二结果元素n的第二分片n1,得到选择结果的第二分片。

对于常见的二进制计算机,第一商群可以是z/2z,z/2z包括0和1两个群元素,第二商群可以是z/2kz,其中,k为正整数。

下面对安全计算i(a)x的流程进行详细介绍。

如图2所示,首先,p0可以获得第一随机数的第一分片第二随机数的第一分片第一随机数的模转换结果的第一分片b0和乘积的第一分片c0。然后,p0可以计算条件元素a的第一分片a0与第一随机数的第一分片的差值,得到条件元素a与第一随机数的差值δa的第一分片δa0,以及计算目标结果元素x的第一分片x0与第二随机数的第一分片的差值,得到目标结果元素x与第二随机数的差值δx的第一分片δx0。

类似地,p1可以获得第一随机数的第二分片第二随机数的第二分片第二随机数的模转换结果的第二分片b1和乘积的第二分片c1,以及计算得到差值δa的第二分片δa1和差值δx的第二分片δx1。

如图2所示,p0和p1通过交换差值δa的分片和差值δx的分片,分别可获得对方计算出的差值δa的分片和差值δx的分片。进而,p0和p1可各自在本地对分片进行求和,得到差值δa和差值δx。

获得差值δa和差值δx后,p0可在本地计算并将y0作为i(a)x的第一分片。相应地,p1可以在本地计算并将y1作为i(a)x的第二分片。

应当理解,在满足y0+y1=i(a)x的前提下,可以对上述y0和y1的计算式做出任意适当的变换。例如,在p0和p1都知晓差值δa和差值δx的情况下,p0可在本地计算p1可以在本地计算又如,可以将δa=δa0+δa1和δx=δx0+δx1代入上述y0和y1的计算式并进行展开,相应地,p0和p1都可以在不计算差值δa和差值δx的情况下计算乘积i(a)x的分片,即基于差值δa的第一分片、差值δa的第二分片、差值δx的第一分片、差值δx的第二分片、模转换结果的分片、乘积的分片和第二随机数的第一分片计算乘积i(a)x的第一分片。其中,(-1)δa可展开为(-1)δa0(-1)δa1,乘积项i(δa)可根据第一等式展开(具体可令g=δa0+δa1且令或δa1)。

值得说明的是,借助所述第一等式,可以对i(a)x进行一系列变换进而拆解出图1中的y0和y1(亦可证明y0+y1=i(a)x)。首先,有第二等式成立,将代入所述第二等式并进行展开,展开过程中用δa和δx分别代替可以得到第三等式鉴于以及从所述第三等式的右边不难拆解出图1中y0和y1的各个求和项。

作为补充,这里证明所述第一等式的成立。一般来说,第一商群为z/2z,第二商群不妨记为z/nz,g和属于第一商群,故取值为0或1。当时,进一步地,当g=0且时,左边=i(0)=0∈z/nz,右边=-i(1)+i(1)=0∈z/nz,当gg=1且时,左边=i(1)=1∈z/nz,右边=-i(0)+i(1)=1∈z/nz。当时,左边=i(g)∈z/nz,右边=i(g)+i(0)=i(g)∈z/nz。

在一些实施例中,如图2所示,可以由第三方服务器p2生成第一随机数和第二随机数p2可按群加法将第一随机数拆成发送给p0的第一分片和发送给p1的第二分片以及按群加法将第二随机数拆成发送给p0的第一分片和发送给p1的第二分片生成第一随机数后,p2可按群加法将拆解成发送给p0的第一分片b0和发送给p1的第二分片b1。生成第一随机数和第二随机数后,p2可按群加法将拆解成发送给p0的第一分片c0和发送给p1的第二分片c1。

在一些实施例中,参与方可以通过伪随机数算法,基于种子生成伪随机数。在伪随机数算法中,需要预先设置伪随机数种子,各方再基于预设好的伪随机数种子,通过伪随机函数生成一组伪随机数。当输入相同的种子时,所生成的伪随机数序列也是相同的。作为示例,各方基于相同的种子各生产5个伪随机数,各方的第一伪随机数、第二伪随机数、…、以及第五伪随机数对应相同。需要说明的是,伪随机数种子可以在执行协议前提前配置于参与方。因此,在一些实施例中,为了减小通信量,第三方服务器可以使用与参与方提前约定好的种子值生成相同的伪随机数,从而第三方服务器在不与参与方的设备通信的情况下可获得第一随机数的两个分片和/或第二随机数的两个分片。对于基于第一随机数和/或第二随机数的运算结果(如),可以由p0和p1中的任一者生成伪随机数作为该运算结果的一个分片,在提前约定好的种子值的情况下,第三方服务器在不与参与方的设备通信的情况下可获得该运算结果的该分片,进而可计算该运算结果与该运算结果的该分片的差值,得到发送给p0和p1中的另一者的该运算结果的另一分片。

仅作为示例,p0可在本地利用伪随机函数生成第一随机数的第一分片和第二随机数的第一分片,p1可在本地利用伪随机函数生成第一随机数的第二分片和第二随机数的第二分片,应当理解,p0并不用有生成前述随机数的第二分片的种子,p0并不用有生成前述各随机数的第一分片的种子,第三方服务器p2可以拥有p0和p1的所有种子,进而p2可以在本地生成第一随机数的第一分片、第二分片以及第二随机数的第一分片和第二分片,因此,在不与参与方的设备通信的情况下p2可获得第一随机数的两个分片以及第二随机数的两个分片,进而得到进一步,p2可以计算得到p0和p1中的任一者可在本地利用伪随机函数生成的一个分片,p2也可以在本地利用伪随机函数生成同样的一个分片,并基于与所述一个分片(如两者的差值)得到的另一个分片,将的另一分片发送给p0和p1中的另一者。同理,p0和p1中的任一者可在本地利用伪随机函数生成的一个分片,p2同样可以在本地利用伪随机函数生成的所述一个分片,并基于与所述一个分片(即两者的差值)得到的另一个分片,将的另一分片发送给p0和p1中的另一者。

以常见的二进制计算机为例,参考图2,计算i(a)x过程中产生的固有通信量为2+6log2n,实时通信量为2+2log2n,总的通信量为4+8log2n。若使用伪随机函数,第三方服务器p2只需向p0和/或p1发送两次第二商群中的元素,固有通信量可降至2log2n,总的通信量降至2+4log2n。利用模转换协议和安全多方乘法协议计算i(a)x的过程中,产生的总通信量为4+10log2n或2+6log2n(使用伪随机函数后)。可以看出,无论是否使用伪随机函数,相较于利用安全模转换协议和安全多方乘法协议计算i(a)x的分片,按如图2所示的流程计算i(a)x的分片产生的通信量较小。值得注意的是,计算i(a)x的分片所需的通信量即决定了处理(一般/特殊)安全选择问题所需的通信量,因为将特殊安全选择问题规约为一般安全选择问题不会产生额外通信量。

应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。

图3是根据本说明书一些实施例所示的保护数据隐私的选择问题处理系统的示例性模块图。可以理解,这里的选择问题是指特殊选择问题。

系统300可以在第一方的设备上实现。系统300可以包括第一获得模块310、第一计算模块320、第一交换模块330和第二计算模块340。

第一获得模块310可以用于获得第一随机数的第一分片第二随机数的第一分片第一随机数的模转换结果的第一分片b0和乘积的第一分片c0。

第一计算模块320可以用于计算条件元素a的第一分片a0与第一随机数的第一分片的差值,得到条件元素a与第一随机数的差值δa的第一分片δa0;计算目标结果元素x的第一分片x0与第二随机数的第一分片的差值,得到目标结果元素x与第二随机数的差值δx的第一分片δx0。

第一交换模块330可以用于将差值δa的第一分片δa0和差值δx的第一分片δx0发送给第二方的设备,从第二方的设备接收差值δa的第二分片δa1和差值δx的第二分片δx1。

第二计算模块340可以用于基于差值δa的第一分片δa0、差值δa的第二分片δa1、差值δx的第一分片δx0、差值δx的第二分片δx1、模转换结果的第一分片b0、乘积的第一分片c0和第二随机数的第一分片计算乘积i(a)x的第一分片。

图4是根据本说明书另一些实施例所示的保护数据隐私的选择问题处理系统的示例性模块图。这里的选择问题是指一般选择问题。

系统400可以在第一方的设备上实现。系统400可以包括第三计算模块410、第二获得模块420、第四计算模块430、第二交换模块440、第五计算模块450和第六计算模块460。

第三计算模块410可以用于计算第一结果元素m的第一分片m0与第二结果元素n的第一分片n0的差值,得到目标结果元素x的第一分片x0。

第二获得模块420可以用于获得第一随机数的第一分片第二随机数的第一分片第一随机数的模转换结果的第一分片b0和乘积的第一分片c0。

第四计算模块430可以用于计算条件元素a的第一分片a0与第一随机数的第一分片的差值,得到条件元素a与第一随机数的差值δa的第一分片δa0;计算目标结果元素x的第一分片x0与第二随机数的第一分片的差值,得到目标结果元素x与第二随机数的差值δx的第一分片δx0。

第二交换模块440可以用于将差值δa的第一分片δa0和差值δx的第一分片δx0发送给第二方的设备,从第二方的设备接收差值δa的第二分片δa1和差值δx的第二分片δx1。

第五计算模块450可以用于基于差值δa的第一分片δa0、差值δa的第二分片δa1、差值δx的第一分片δx0、差值δx的第二分片δx1、模转换结果的第一分片b0、乘积的第一分片c0和第二随机数的第一分片计算乘积i(a)x的第一分片。

第六计算模块460可以用于求和乘积i(a)x的第一分片和第二结果元素n的第一分片n0,得到所述目标多项式的第一分片。

关于系统300/系统400及其模块的更多细节,可以参考图2及其相关描述。

应当理解,图3和图4所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。

需要注意的是,以上对于系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,第一计算模块320和第一交换模块330可以是一个系统中的不同模块,也可以是一个模块实现这两个模块的功能。又如,系统300可以包含于系统400,其中,第一获得模块310和第二获得模块420可以是同一模块,第一计算模块320和第四计算模块430可以是同一模块,第一交换模块330和第二交换模块440可以是同一模块,第二计算模块340和第五计算模块450可以是同一模块。诸如此类的变形,均在本说明书的保护范围之内。

本说明书实施例可能带来的有益效果包括但不限于:(1)提供了基于多方安全计算的选择问题处理方法,可以保护参与方的数据隐私;(2)提供了通信量较小的基于多方安全计算的选择问题处理方法;(3)使用伪随机函数可以进一步降低参与方与第三方服务器之间的固有通信量。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。

上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。

同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。

计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质,或任何上述介质的组合。

本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化编程语言如c语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。

此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。

最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1