一种安全选择方法和系统

文档序号:1378821 发布日期:2020-08-14 浏览:16次 >En<

阅读说明:本技术 一种安全选择方法和系统 (Safety selection method and system ) 是由 张祺智 李漓春 殷山 于 2020-07-08 设计创作,主要内容包括:本说明书涉及信息安全领域,特别涉及一种基于双方隐私保护的安全选择方法和系统,该方法一方面能够在进行安全选择计算的过程中,基于安全选择问题处理方法参与方能够仅一次交互即获得问题的结果,相对于现有方案,减少了交互次数,减轻了系统传输压力,另一方面两参与方在进行处理过程中,不会泄露各方的隐私数据,保护各方的数据安全。(The method can be used for reducing the interaction times and lightening the transmission pressure of the system compared with the prior scheme, and on the other hand, the two parties can not reveal privacy data of each party in the processing process to protect the data security of each party.)

一种安全选择方法和系统

技术领域

本说明书涉及信息安全领域,特别涉及一种基于双方隐私保护的安全选择方法和系统。

背景技术

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

安全选择可视为一种具体函数(即选择问题)的多方安全计算实现,在面临大量计算的场景下,安全选择步骤中若交互次数过多的情况下,造成系统传输压力过大。

发明内容

本说明书实施例之一提供一种安全选择问题处理方法,安全选择问题参与方包括第一方和第二方,所述安全选择问题描述为当条件元素a=1时,选择第一结果元素m,当条件元素a=0时,选择第二结果元素n;所述安全选择问题的条件元素a、第一结果元素m和第二结果元素n分别以和共享分片存储于第一方和第二方,第一结果元素的和共享分片与第二结果元素的和共享分片均属于第一群,所述条件元素的和共享分片属于第二群,该方法由安全选择问题参与方中的任一方执行,其包括:确定第一结果元素的第一分片与第二结果元素的第一分片的差值为等效结果元素的第一分片;基于所述条件元素的第一分片生成第一中间元素;其中,第一中间元素的可能取值属于第三群;用于存储第三群中元素的存储单元的位数小于用于存储第一群中元素的存储单元的位数;基于所述条件元素的第一分片与所述等效结果元素的第一分片得到第一中间数值;第一中间数值属于第一群;基于所述第一中间元素与第一中间数值,与另一方按照多方安全计算协议协同计算,获得交叉结果的第一分片;基于等效结果元素的第一分片与交叉结果的第一分片,计算初始选择结果的第一分片;基于所述初始选择结果的第一分片与所述第二结果元素的第一分片,计算所述安全选择问题的结果的第一分片。

本说明书实施例之一提供一种安全选择问题处理系统,安全选择问题参与方包括第一方和第二方,所述安全选择问题描述为当条件元素a=1时,选择第一结果元素m,当条件元素a=0时,选择第二结果元素n;所述安全选择问题的条件元素a、第一结果元素m和第二结果元素n分别以和共享分片存储于第一方和第二方,第一结果元素的和共享分片与第二结果元素的和共享分片均属于第一群,所述条件元素的和共享分片属于第二群,用于存储第一群中元素的存储单元的位数大于用于存储第二群中元素的存储单元的位数,其包括:等效结果元素获取模块,用于确定第一结果元素的第一分片与第二结果元素的第一分片的差值为等效结果元素的第一分片;第一中间元素获取模块,用于基于所述条件元素的第一分片生成第一中间元素;其中,第一中间元素的取值属于第三群;用于存储第三群中元素的存储单元的位数小于用于存储第一群中元素的存储单元的位数;第一中间数值获取模块,用于基于所述条件元素的第一分片与所述等效结果元素的第一分片得到第一中间数值;第一中间数值属于第一群;交叉结果获取模块,用于基于所述第一中间元素与第一中间数值,与另一方按照多方安全计算协议协同计算,获得交叉结果的第一分片;初始选择结果获取模块,用于基于等效结果元素的第一分片与交叉结果的第一分片,计算初始选择结果的第一分片;问题结果获取模块,用于基于所述初始选择结果的第一分片与所述第二结果元素的第一分片,计算所述安全选择问题的结果的第一分片。

本说明书实施例之一提供一种安全选择问题处理装置,包括处理器以及存储质,所述存储介质用于存储计算机指令,所述处理器用于执行所述计算机指令中的至少一部分以实现上述方法。

在本说明书的一些实施例中,还提供了一种多方安全计算方法,其中,所述多方安全计算协议为交叉G-module计算协议,所述交叉G-module计算参与方包括两方,其中一方拥有属于有限群G的第一元素与属于有限群A的第二元素,另一方拥有属于有限群G的第三元素与属于有限群A的第四元素,有限群A具有G模结构,且存在有限群G在有限群A上的作用到有限群A的映射满足分配率,所述交叉G-module计算描述为所述两方协同计算,计算结果以和共享分片存储于所述两方;所述交叉G-module计算协议中,有限群G为所述第三群,有限群A为所述第一群,,其包括:获取属于有限群G的第一随机数、属于有限群A的第二随机数和第一中间分片;所述第一中间分片和与第二方的第二中间分片为随机数运算结果的和共享分片,均属于有限群A;所述随机数运算结果基于得到;其中,h1表示另一方的属于有限群G的第三随机数,表示所述另一方的属于有限群A的第四随机数;发送属于有限群G的第一传输数据至所述另一方;所述第一传输数据基于得到;获取所述另一方的属于有限群G的第二传输数据;所述第二传输数据基于得到;发送属于有限群A的第三传输数据至所述另一方,所述第三传输数据基于得到;获取所述另一方的属于有限群A的第四传输数据;所述第四传输数据基于得到;基于得到所述交叉结果的第一分片

附图说明

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

图1是根据本说明书一些实施例所示的安全选择问题处理系统的应用场景示意图;

图2是根据本说明书一些实施例所示第一方与第二方计算安全选择问题的交互流程的示意图;

图3是根据本说明书一些实施例所示的两方进行交叉G-module计算的交互流程示意图;

图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,其中,G模是指群G与M中的阿贝尔群结构兼容后生成的阿贝尔群M。其中,对于每个都有唯一确定积g·,并且对于任何,都满足:(1)、g·(a+n)=ga+gn,(2)、g·(ma)=(gm)·a,(3)、ka=a,k为群G中的单位元素,则称M为左G模;若ga=a,则称M为平凡左G模。

进一步地,本说明书涉及一种基于整数阿贝尔群的商群,其数学表示可以是G:=Z/nZ,其中,Z为整数集合,n为任何正整数,nZ为n的所有倍数构成的Z的子群,商Z/nZ为模以n的余数的n阶循环群,等同于mod n。

值得说明的是,由于计算设备通常使用固定位数(如bit)来存储计算过程中产生的数值,多方协同计算时会频繁使用涉及取模的群加法、群乘法、群减法等等。本说明书中,在没有特别说明额情况下,涉及符号的数学表示可优先按群加法、群乘法、群减法而非四则运算来理解。计算设备存储群元素的存储单元位数可以由群的规模确定,对于给定群,群元素越多,用于存储该群元素的存储单元位数越多,不难理解,传输该群元素时的通信量也越大。不同群之间的元素不能直接进行运算,需要对其中一个群元素进行转换,得到该群元素在另一群中的等效值,在所述另一群中完成与其元素的运算。本说明书中,为使表述简洁,在描述两个群元素进行运算时默认已经完成了前述转换。

在一些分布式场景中,需要多方安全计算得到目标运算结果,目标运算可以是安全乘法、安全模转换或者安全选择,安全可以指输出结果的正确性和输入信息、输出信息的保密性。例如,在一些机器学习场景中,一方持有私密的特征数据,另一方持有私密的标签数据。若直接计算关于私密数据(特征数据/标签数据)的目标运算结果时,一旦该目标运算结果被泄露可能导致私密数据被反推出。为此,一方可以将自身持有的私密数据x拆分成两份,保留其中一份并将另一份发送给对方,的合值为x,即为x的和共享形式。然后,两方运行安全计算协议,各自得到该目标运算结果的一个分片。两方得到的分片的合值即目标运算结果,攻击者若想获知隐私数据需要得到两方的分片。现有技术中,一些安全多方计算过程涉及选择问题,选择问题一般描述为,当条件元素a=1时,选择第一结果元素m,当条件元素a=0时,选择第二结果元素n。仅作为示例,在利用树模型进行多方预测的场景中,两方分别持有树模型某节点的分裂阈值、对应的左右叶节点分值以及对应特征的特征值的和共享分片。示例性的等效集中预测过程包括,当特征值大于分裂阈值时,选择左叶节点分值,当特征值不大于分裂阈值时,选择右叶节点分值。不难理解,特征值与分裂阈值的比较结果可以规约为条件元素=1或0的二分类情况。当前述数据涉及隐私安全时,需要双方基于多方安全计算原则,在不泄露各方私密的分片的前提下,完成选择问题。一般选择问题可以等效为计算a(m-n)+n,进一步,可以将一般安全选择问题转换为特殊安全问题,故而上式可以进一步等效为az和z=m-n,计算得到az后,加上第二结果元素n便可获得一般选择问题的结果。一般来说,条件元素取值仅为两种,这意味着条件元素属于的群(如第二群)可以仅具有两个元素,在计算设备内部,可占用较少的存储空间。结果元素的取值则较为广泛,这意味着结果元素属于的群(如第一群)具有更多的元素,在计算设备内容,占用较多的存储空间。在一些实施例中,双方可以通过安全模转换协议将位于第二群的条件元素分片转换到第一群中,再与另一方按照多方安全乘法协议计算az,便可获得az的和共享分片,最后各方将az的和共享分片加上第二结果元素n的和共享分片,便可得到一般选择问题的结果分片。然而这种方式需要双方完成3轮交互。具体的,安全模转换计算环节中涉及一轮交互,安全乘法计算环节中涉及有两轮交互因此,总的交互为3轮,当面临大量计算场景下,会产生庞大交互次数。

本说明书中的实施例提供了另一种交互次数更少的基于多方安全计算协议的安全选择问题处理方法和系统。

图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)计算安全选择问题的交互流程的示意图。

在一些实施例中,安全选择问题可以描述为当条件元素a=1时,选择第一结果元素m,当条件元素a=0时,选择第二结果元素n。安全选择问题参与方包括第一方和第二方。条件元素a、第一结果元素m以及第二结果元素n分别以和共享形式存储于两方。

安全选择问题中,第一结果元素m的和共享分片与第二结果元素n的和共享分片可以均属于第一群,其中第一群可以是任意有限群。例如,第一结果元素m包括第一分片和第二分片,第二结果元素n包括第一分片和第二分片,其中存储于第一方,存储于第二方。

条件元素a的和共享分片属于第二群,其中第二群也可以是任意有限群。仅作为示例,条件元素a可以包括第一分片 和第二分片,其中,存储于第一方,存储于第二方。

在一些实施例中,第一群为第一商群Z/NZ,第二群为第二商群Z/2Z,N为大于2的整数。第一商群、第二商群均为阿贝尔群。由前述数学知识可知,第一商群Z/NZ为模以N的余数的N阶循环群,第一商群Z/NZ有N个元素,可以表示为{0,1,2,…,N-1};第二商群Z/2Z为模以2的余数的2阶循环群,故第二商群Z/2Z有2个元素可以表示为{0,1}。不难理解,在计算设备中,存储条件元素分片的存储单元位数可以小于或远小于存储结果元素分片的存储单元位置。

从图2中不难看出,在进行安全选择问题处理时,双方执行的流程是对称的。即,流程200(包括步骤210~250)可以由安全选择问题参与方中的任一方执行。当其中一方作为第一方执行流程200时,另一方则为第二方。为便于描述,下文中以第一方的角度进行说明,流程200可以包括:

步骤210,确定第一结果元素的第一分片与第二结果元素的第一分片的差值为等效结果元素的第一分片。在一些实施例中,步骤210可以由等效结果元素获取模块410执行。

在一些实施例中,安全选择问题可以划分为一般安全选择问题和特殊安全选择问题两类。在一些实施例中,一般安全选择问题可以描述为:安全计算 if a=1 then m elsen。其中,条件元素a、第一结果元素m和第二结果元素n以和共享形式存储于两方,选择的结果仍然以和共享的形式存储于两方。在一些实施例中,一般安全选择问题可以表示为a(m-n)+n,对该式运算可以得知,其结果等价于安全计算if a=1 then m else n的结果。

在一些实施例中,特殊安全选择问题可以描述为:安全计算if a=1 then z else0,其中,条件元素a、结果元素z以和共享形式存储于两方。在一些实施例中,特殊安全选择问题可以表示为az,对该式运算可以得知,其结果等价于安全计算if a=1 then z else 0的结果。

在一些实施例中,可以通过将一般安全选择问题归约为特殊选择问题,以简化计算。令z=m-n,则有az+n=a(m-n)+n,即特殊安全选择问题的结果与n相加等效于一般安全选择问题的结果。在一些实施例中,将第一结果元素m与第二结果元素n的差值z定义为等效结果元素。

在一些实施例中,由于第一方持有第一结果元素的第一分片与第二结果元素的第一分片,故等效结果元素z的第一分片可以表示为:

(1)

在一些实施例中,第二方持有第一结果元素的第二分片与第二结果元素的第二分片,故等效结果元素z的第二分片可以表示为:

需要说明的是,由于第一方和第二方在流程200中所进行的步骤是对称的,即第二方根据其持有的和共享形式数据的第二分片。故在后文无特别说明的情况下,第二方还需要以第一方所进行计算的相同规则进行计算。

步骤220,基于所述条件元素的第一分片生成第一中间元素。在一些实施例中,步骤220可以由第一中间元素获取模块420执行。

由前述内容可知,条件元素的第一分片属于第二群,在一些实施例中,第一中间元素被设计为存储单元的位数小于第一群中元素的存储单元。在一些实施例中,可令第一中间元素的取值属于第三群。

在一些实施例中,继续采用第一群为第一商群Z/NZ的示例,第一中间元素可以表示为,显然此时第三群为{-1,1},且可以看出,用于存储第三群中元素的存储单元的位数小于用于存储第一群中元素的存储单元的位数。

应当理解,第二方可以以类似的方法,可以基于所述条件元素的第二分片得到第二中间元素,相应的,第二中间元素也属于第三群。

步骤230,基于所述条件元素的第一分片与等效结果元素的第一分片得到第一中间数值。在一些实施例中,步骤230可以由第一中间数值获取模块430执行。

等效结果元素z的两个分片,由两方分别保留且对另一方保密。为了避免直接某一方同时持有,造成结果的泄露,在一些实施例中,可以基于条件元素的第一分片与等效结果元素的第一分片生成第一中间数值

在一些实施例中,当第一中间元素按计算时,第一中间数值的结果可以等效为下式计算的结果:

其中,表示第一中间元素的等效值,公式(3)可以等效为当时,,当。等效结果元素的第一分片属于第一群,故第一中间数值也属于第一群。

应当理解,第二方可以以类似的方法,可以基于所述条件元素的第二分片与等效结果元素的第二分片得到第二中间数值,相应的,第二中间数值也属于第一群。

步骤240,基于所述第一中间元素与第一中间数值,与另一方按照多方安全计算协议协同计算,获得交叉结果的第一分片。在一些实施例中,步骤240可以由交叉结果获取模块440执行。

另一参与方即第二方进行与第一方对称的计算,在一些实施例中,步骤230中第二方持有第二中间元素与第二中间数值,第一方基于所述第一中间元素与第一中间数值,与第二方持有第二中间元素与第二中间数值按照多方安全计算协议协同计算,获得交叉结果。在一些实施例中,交叉结果同样是以和共享形式存储与两方,交叉结果的第一分片存储于第一方,交叉结果的第二分片存储于第二方。两参与方按照多方安全计算协议协同计算获得的交叉结果其并不会泄露各方隐私信息,又能够实现对等效结果元素的交互。

在一些实施例中,具体的,交叉结果可以等效表示为:

其中,式(4)中表示第二方持有的第二中间元素的等效值,表示第二方持有的第二中间数值。

在一些实施例中,获取交叉结果的第一分片所进行的协同计算是按照交叉G-module计算协议进行的。关于交叉G-module计算协议,可以进一步参见图3的相关说明。

步骤250,基于等效结果元素的第一分片与交叉结果的第一分片,计算初始选择结果的第一分片。在一些实施例中,步骤250可以由初始选择结果获取模块450执行。

在一些实施例中,初始选择结果等价于,以及 。其中,等价于交叉结果。

在一些实施例中,初始选择结果的第一分片的计算可以是对 向上取整或对向下取整。需要说明的是由于初始选择结果等价于az,基于条件元素以及结果元素的群性质(元素均为整数),az其必定为整数,故在一些实施例中,当结果存在小数的情况下,对其进行向上取证或向下取整。

在一些实施例中,第二方基于等效结果元素的第二分片与交叉结果的第一分片得到的初始选择结果的第二分片的计算可以是对 向上取整或对向下取整,需要说明的是,当初始选择结果的第一分片计算时采用向上取整时,初始选择结果的第二分片采用向下取整;当初始选择结果的第一分片计算时采用向下取整时,初始选择结果的第二分片采用向上取整,以此保证初始选择结果的第一分片和初始选择结果的第二分片之和,即初始选择结果的正确性。双方可以预先对各方的初始选择结果的和共享分片的取整方式达成共识。

步骤260,确定安全选择问题的结果的第一分片。在一些实施例中,步骤240可以由问题结果获取模块460执行。

在一些实施例中,基于所述初始选择结果的第一分片与所述第二结果元素的第一分片确定安全选择问题的结果的第一分片。

在一些实施例中,参见步骤210可知,安全选择问题的结果为az+n=a(m-n)+n,即安全选择问题的结果的第一分片为初始选择结果的第一分片与所述第二结果元素的第一分片的和值。

在一些实施例中,第二方确定安全选择问题的结果的第二分片,安全选择问题的结果的第二分片为初始选择结果的第二分片与所述第二结果元素的第一分片的和值。

此时,第一方和第二方已经完成安全选择问题,并且安全选择问题的结果的第一分片和第二分片即为安全选择问题的结果,同时第一方和第二方未获得任何其他数据,保护了各方隐私数据。

在本说明书的一些实施例中,还提供了一种多方安全计算方法或称为交叉G-module计算协议,所述多方安全计算参与方包括两方,其中一方拥有属于有限群G的第一元素与属于有限群A的第二元素,另一方拥有属于有限群G的第三元素与属于有限群A的第四元素,有限群A具有G模结构,且存在有限群G在有限群A上的作用到有限群A的映射满足分配率,所述多方安全计算任务为所述两方协同计算,计算结果以和共享分片存储于所述两方。

图3是根据本说明书一些实施例所示的两方进行交叉G-module计算的交互流程示意图。

在一些实施例中,协议300中其中一方可以是流程200中的第一方,另一方为流程200中的第二方。所述第三群相当于有限群G,所述第一群相当于有限群A,

需要说明的是,有限群G在有限群A上的作用可以解释为,存在一个映射G×A→A,有限群G中包括元素g、有限群A中包括元素a,那么(g,a)在该映射下的像称为g在a上的作用,记为ga。

具体的,交叉G-module计算协议300的具体步骤则包括:

步骤231,获取属于有限群G的第一随机数、属于有限群A的第二随机数和第一中间分片;第一中间分片和与第二方的第二中间分片为随机数运算结果的和共享分片,均属于有限群A。在一些实施例中,所述随机数运算结果基于得到;其中,表示另一方的属于有限群G的第三随机数,表示所述另一方的属于有限群A的第四随机数。

在一些实施例中,所述第一随机数、第二随机数、第三随机数、第四随机数、第一中间分片和第二中间分片由第三方生成。在一些实施例中,第三方具体的可以是半可信第三方设备130,此外,在一些具体实施方式中,步骤231中随机数运算结果的和共享分片也可以由该第三方计算得到。

步骤232,发送属于有限群G的第一传输数据至所述另一方;所述第一传输数据基于得到;获取所述另一方的属于有限群G的第二传输数据;所述第二传输数据基于得到。

步骤233,发送属于有限群A的第三传输数据至所述另一方,所述第三传输数据基于得到;获取所述另一方的属于有限群A的第四传输数据;所述第四传输数据基于得到。

步骤234,基于得到所述交叉结果的第一分片

在一些实施例中,另一方基于得到交叉结果的第二分片即为交叉结果。该协议的原理可以表示为:

在一些实施例中,在步骤220中交叉G-module计算协议可以表示为,有限群G为第三群,有限群A为第一群,其中在一些实施例中,通过计算得到的公式(4)形式的交叉结果。

由上述步骤可知,由于交叉G-module计算协议仅需一次交互。因此,结合前述数学知识可知通信量也相应减少。

应当注意的是,上述有关流程200的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程200进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,安全选择问题为特殊安全选择问题时,第二结果元素n为0,因此在一些实施例中,可以不执行步骤210和步骤260,而是直接通过步骤220~250获得特殊安全选择问题等效计算结果az;此外,例如在步骤233中,发送属于有限群A的第三传输数据至所述另一方,获取所述另一方的属于有限群A的第四传输数据,并不代表先发送第三传输数据至另一方,再获取另一方的第四传输数据,在实际执行时可以是先发送再获取,也可以是先获取再发送,还可以是在发送的同时获取。

图4是根据本说明书一些实施例所示的安全选择问题处理系统的模块图。

如图4所示,安全选择问题处理系统400可以包括等效结果元素获取模块410、第一中间元素获取模块420、第一中间数值获取模块430、交叉结果获取模块440、初始选择结果获取模块450和问题结果获取模块460。这些模块也可以作为应用程序或一组由处理引擎读取和执行的指令实现。此外,模块可以是硬件电路和应用/指令的任何组合。例如,当处理引擎或处理器执行应用程序/一组指令时,模块可以是处理器的一部分。

等效结果元素获取模块410可以用于确定第一结果元素的第一分片与第二结果元素的第一分片的差值为等效结果元素的第一分片

的更多描述可以在本说明书的其他地方(如步骤210及其相关描述中)找到,在此不作赘述。

第一中间元素获取模块420可以用于基于所述条件元素的第一分片生成第一中间元素;其中,第一中间元素的取值属于第三群;用于存储第三群中元素的存储单元的位数小于用于存储第一群中元素的存储单元的位数。

关于第一中间元素的更多描述可以在本说明书的其他地方(如步骤220及其相关描述中)找到,在此不作赘述。

第一中间数值获取模块430可以用于基于所述条件元素的第一分片与所述等效结果元素的第一分片得到第一中间数值;第一中间数值属于第一群。

关于第一中间数值的更多描述可以在本说明书的其他地方(如步骤230及其相关描述中)找到,在此不作赘述。

交叉结果获取模块440可以用于基于所述第一中间元素与第一中间数值,与另一方按照多方安全计算协议协同计算,获得交叉结果的第一分片

关于交叉结果的更多描述可以在本说明书的其他地方(如步骤240及其相关描述中)找到,在此不作赘述。

初始选择结果获取模块450可以用于基于等效结果元素的第一分片与交叉结果的第一分片,计算初始选择结果的第一分片

关于初始选择结果的更多描述可以在本说明书的其他地方(如步骤250及其相关描述中)找到,在此不作赘述。

问题结果获取模块460可以用于基于所述初始选择结果的第一分片与所述第二结果元素的第一分片,计算所述安全选择问题的结果的第一分片。

关于问题结果的更多描述可以在本说明书的其他地方(如步骤260及其相关描述中)找到,在此不作赘述。

在一些实施例中,第一中间元素获取模块包括:计算得到所述第一中间元素;所述基于所述条件元素的第一分片与所述等效结果元素的第一分片得到第一中间数值,包括:按计算所述第一中间数值。

在一些实施例中,所述交叉结果等效表示为;其中,表示另一方的第二中间元素,表示所述另一方的第二中间数值。

在一些实施例中,所述基于等效结果元素的第一分片与交叉结果的第一分片,计算初始选择结果的第一分片,包括:对向上取整或对向下取整,得到所述初始选择结果的第一分片;所述安全选择问题的结果的第一分片为初始选择结果的第一分片与所述第二结果元素的第一分片的和值。

在一些实施例中,第一群为第一商群Z/NZ,所述第二群为第二商群Z/2Z,所述第三群为{-1,1},N为大于2的整数。

在一些实施例中,多方安全计算协议为交叉G-module计算协议,所述交叉G-module计算参与方包括两方,其中一方拥有属于有限群G的第一元素与属于有限群A的第二元素,另一方拥有属于有限群G的第三元素与属于有限群A的第四元素,有限群A具有G模结构,且存在有限群G在有限群A上的作用到有限群A的映射满足分配率,所述交叉G-module计算描述为所述两方协同计算,计算结果以和共享分片存储于所述两方;所述交叉G-module计算协议中,有限群G为所述第三群,有限群A为所述第一群,,其包括:获取属于有限群G的第一随机数、属于有限群A的第二随机数和第一中间分片;所述第一中间分片和与第二方的第二中间分片为随机数运算结果的和共享分片,均属于有限群A;所述随机数运算结果基于得到;其中,表示另一方的属于有限群G的第三随机数,表示所述另一方的属于有限群A的第四随机数;发送属于有限群G的第一传输数据至所述另一方;所述第一传输数据基于得到;获取所述另一方的属于有限群G的第二传输数据 ;所述第二传输数据基于得到;发送属于有限群A的第三传输数据 至所述另一方,所述第三传输数据基于得到;获取所述另一方的属于有限群A的第四传输数据;所述第四传输数据基于得到;基于得到所述交叉结果的第一分片

在一些实施例中,所述第一随机数、第二随机数、第三随机数、第四随机数、第一中间分片和第二中间分片由第三方生成。

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

需要注意的是,以上对于装置及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该装置的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子装置与其他模块连接。例如,图4中第一中间元素获取模块420和第一中间数值获取模块430可以为同一个模块;此外,还可以等效结果元素获取模块410、第一中间元素获取模块420、第一中间数值获取模块430、初始选择结果获取模块450和问题结果获取模块460均为同一个模块,任意模块能够进行所需的计算。又例如,上述系统中的各个模块可以位于同一服务器上,也可以分属不同的服务器。诸如此类的变形,均在本说明书的保护范围之内。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本说明书实施例可能带来的有益效果包括但不限于:(1)在进行安全选择计算的过程中,基于安全选择问题处理方法参与方能够仅一次交互即获得问题的结果,相对于现有方案,减少了交互次数,减轻了系统传输压力;(2)两参与方在进行处理过程中,不会泄露各方的隐私数据,保护各方的数据安全。

需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。

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

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

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

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

一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。

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

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

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于核心数据文件可信存储的安全操作方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类