CN112989421A - 一种安全选择问题处理方法和系统 - Google Patents

一种安全选择问题处理方法和系统 Download PDF

Info

Publication number
CN112989421A
CN112989421A CN202110354457.2A CN202110354457A CN112989421A CN 112989421 A CN112989421 A CN 112989421A CN 202110354457 A CN202110354457 A CN 202110354457A CN 112989421 A CN112989421 A CN 112989421A
Authority
CN
China
Prior art keywords
party
group
result
slice
random number
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.)
Pending
Application number
CN202110354457.2A
Other languages
English (en)
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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202110354457.2A priority Critical patent/CN112989421A/zh
Publication of CN112989421A publication Critical patent/CN112989421A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本说明书涉及信息安全领域,特别涉及一种安全选择方法和系统,该方法一方面能够在进行安全选择计算的过程中,基于安全选择问题处理方法参与方能够仅一轮全双工交互即获得问题的结果,相对于现有方案,减少了交互次数,减轻了系统传输压力,另一方面两参与方在进行处理过程中,不会泄露各方的隐私数据,保护各方的数据安全。

Description

一种安全选择问题处理方法和系统
技术领域
本说明书涉及信息安全领域,特别涉及一种安全选择问题处理方法和系统。
背景技术
安全多方计算又称为多方安全计算,即多方共同计算出一个函数的结果,而不泄露这个函数各方的输入数据,计算的结果以和共享形式存储于多方或公开给其中的一方或多方。因此,通过安全多方计算,能够让参与的各方在不暴露各自原始数据的情况下,计算出函数的结果。
安全选择可视为一种具体函数(即选择问题)的多方安全计算实现,在面临大量计算的场景下,安全选择步骤中若交互次数过多的情况下,造成系统传输压力过大。
发明内容
本说明书实施例之一提供一种安全选择问题处理方法,安全选择问题参与方包括第一方和第二方,所述安全选择问题描述为当条件元素a=1时,选择第一结果元素m,当条件元素a=0时,选择第二结果元素n;所述安全选择问题的条件元素a、第一结果元素m和第二结果元素n分别以和共享分片存储于第一方和第二方,第一结果元素的和共享分片与第二结果元素的和共享分片均属于第一群,所述条件元素的和共享分片属于第二群,该方法由安全选择问题参与方中的任一方执行,其包括:确定第一结果元素的第一分片m0与第二结果元素的第一分片n0的差值为等效结果元素的第一分片z0;基于所述条件元素的第一分片a0生成第一中间元素;其中,第一中间元素的取值属于第三群,且存在第三群在第一群上的作用能够映射到第一群;基于所述条件元素的第一分片a0与所述等效结果元素的第一分片z0得到第一中间数值y0;第一中间数值y0属于第一群;基于所述第一中间元素,与另一方按照第一多方安全计算协议协同计算,获得第一交叉结果的第一分片u0;基于所述第一中间数值y0,与另一方按照第二多方安全计算协议协同计算,获得第二交叉结果的第一分片w0;基于等效结果元素的第一分片z0、第一交叉结果的第一分片u0和第二交叉结果的第一分片w0,计算初始选择结果的第一分片v0;基于所述初始选择结果的第一分片v0与所述第二结果元素的第一分片n0,计算所述安全选择问题的结果的第一分片。
本说明书实施例之一提供一种安全选择问题处理系统,安全选择问题参与方包括第一方和第二方,所述安全选择问题描述为当条件元素a=1时,选择第一结果元素m,当条件元素a=0时,选择第二结果元素n;所述安全选择问题的条件元素a、第一结果元素m和第二结果元素n分别以和共享分片存储于第一方和第二方,第一结果元素的和共享分片与第二结果元素的和共享分片均属于第一群,所述条件元素的和共享分片属于第二群,所述系统部署于安全选择问题参与方中的任一方,其包括:等效结果元素获取模块,用于确定第一结果元素的第一分片m0与第二结果元素的第一分片n0的差值为等效结果元素的第一分片z0;第一中间元素获取模块,用于基于所述条件元素的第一分片a0生成第一中间元素;其中,第一中间元素的取值属于第三群,且存在第三群在第一群上的作用能够映射到第一群;用于存储第三群中元素的存储单元的位数小于用于存储第一群中元素的存储单元的位数;第一中间数值获取模块,用于基于所述条件元素的第一分片a0与所述等效结果元素的第一分片z0得到第一中间数值y0;第一中间数值y0属于第一群;第一交叉结果获取模块,用于基于所述第一中间元素,与另一方按照第一多方安全计算协议协同计算,获得第一交叉结果的第一分片u0;第二交叉结果获取模块,用于基于所述第一中间数值y0,与另一方按照第二多方安全计算协议协同计算,获得第二交叉结果的第一分片w0;初始选择结果获取模块,用于基于等效结果元素的第一分片z0、第一交叉结果的第一分片u0和第二交叉结果的第一分片w0,计算初始选择结果的第一分片v0;问题结果获取模块,用于基于所述初始选择结果的第一分片v0与所述第二结果元素的第一分片n0,计算所述安全选择问题的结果的第一分片。
本说明书实施例之一提供一种安全选择问题处理装置,包括处理器以及存储质,所述存储介质用于存储计算机指令,所述处理器用于执行所述计算机指令中的至少一部分以实现上述方法。
在本说明书的一些实施例中,还提供了一种多方安全计算方法,其中,所述多方安全计算参与方包括两方,其中第一方拥有属于有限群G的第一元素g,第二方拥有属于有限群A的第二元素l,有限群A为G模群,存在有限群G在有限群A上的作用到有限群A的映射满足分配率,所述多方安全计算描述为所述两方协同计算乘积gl,计算结果以和共享分片存储于所述两方;所述方法由第一方执行,其包括:获取属于有限群G的第一随机数h以及属于有限群A的第一中间分片i0;所述第一中间分片i0与所述第二方的第二中间分片i1为第一随机数h和第二随机数b乘积的和共享分片,均属于有限群A;其中,b表示第二方的属于有限群A的第二随机数;发送属于有限群G的第一传输数据f至所述第二方;所述第一传输数据f基于h-1g得到;获取所述第二方的属于有限群A的第二传输数据c;所述第二传输数据c基于l-b得到;基于gc+fi0得到所述乘积的第一分片j0
在本说明书的一些实施例中,还提供了一种多方安全计算方法,其中,所述多方安全计算参与方包括两方,其中第一方拥有属于有限群G的第一元素g,第二方拥有属于有限群A的第二元素l,有限群A为G模群,存在有限群G在有限群A上的作用到有限群A的映射满足分配率,所述多方安全计算描述为所述两方协同计算乘积gl,计算结果以和共享分片存储于所述两方;所述方法由第二方执行,其包括:获取属于有限群A的第二随机数b以及属于有限群A的第二中间分片i1;所述第二中间分片i1与第一方的第一中间分片i0为第一随机数h和第二随机数b乘积的和共享分片,均属于有限群A;其中,h表示第一方的属于有限群G的第一随机数;发送属于有限群A的第二传输数据c至所述另一方;所述第二传输数据c基于l-b得到;获取所述第一方的属于有限群G的第一传输数据f;所述第一传输数据f基于h-1g得到;基于fi1得到所述乘积的第二分片j1
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的安全选择问题处理系统的应用场景示意图;
图2是根据本说明书一些实施例所示第一方与第二方计算安全选择问题的交互流程的示意图;
图3a是根据本说明书一些实施例所示的两方执行第一多方安全计算协议的交互流程示意图;
图3b是根据本说明书一些实施例所示的两方执行第二多方安全计算协议的交互流程示意图;
图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∈G,a∈M,都有唯一确定积g·a∈M,并且对于任何g,m∈G和a,n∈M,都满足:(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拆分成两份,保留其中一份xL并将另一份xR发送给对方,xL与xR的合值为x,即xL与xR为x的和共享形式。然后,两方运行安全计算协议,各自得到该目标运算结果的一个分片。两方得到的分片的合值即目标运算结果,攻击者若想获知隐私数据需要得到两方的分片。现有技术中,一些安全多方计算过程涉及选择问题,选择问题一般描述为,当条件元素a=1时,选择第一结果元素m,当条件元素a=0时,选择第二结果元素n。仅作为示例,在利用树模型进行多方预测的场景中,两方分别持有树模型某节点的分裂阈值、对应的左右叶节点分值以及对应特征的特征值的和共享分片。示例性的等效集中预测过程包括,当特征值大于分裂阈值时,选择左叶节点分值,当特征值不大于分裂阈值时,选择右叶节点分值。不难理解,特征值与分裂阈值的比较结果可以规约为条件元素=1或0的二分类情况。当前述数据涉及隐私安全时,需要双方基于多方安全计算原则,在不泄露各方私密的分片的前提下,完成选择问题。一般选择问题可以等效为计算a(m-n)+n,进一步,可以将一般安全选择问题转换为特殊安全问题,故而上式可以进一步等效为az和z=m-n,计算得到az后,加上第二结果元素n便可获得一般选择问题的结果。一般来说,条件元素取值仅为两种,这意味着条件元素属于的群(如第二群)可以仅具有两个元素,在计算设备内部,可占用较少的存储空间。结果元素的取值则较为广泛,这意味着结果元素属于的群(如第一群)具有更多的元素,在计算设备内容,占用较多的存储空间。在一些实施例中,双方可以通过安全模转换协议将位于第二群的条件元素分片转换到第一群中,再与另一方按照多方安全乘法协议计算az,便可获得az的和共享分片,最后各方将az的和共享分片加上第二结果元素n的和共享分片,便可得到一般选择问题的结果分片。然而这种方式需要双方完成两轮交互。具体的,安全模转换计算环节中涉及一轮交互,通信量为log2N+2,安全乘法计算环节中涉及有一轮交互,通信量为5 log2N,总的通信量为2+6 log2N当面临大量计算场景下,则有必要减少交互次数以及减少通信量。
本说明书中的实施例提供了另一种交互次数更少的基于多方安全计算协议的安全选择问题处理方法和系统。
图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包括第一分片m0和第二分片m1,第二结果元素n包括第一分片n0和第二分片n1,其中m0、n0存储于第一方,m1、n1存储于第二方。
条件元素a的和共享分片属于第二群,其中第二群也可以是任意有限群。仅作为示例,条件元素a可以包括第一分片a0和第二分片a1,其中,a0存储于第一方,a1存储于第二方。
在一些实施例中,第一群为第一商群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,确定第一结果元素的第一分片m0与第二结果元素的第一分片n0的差值为等效结果元素的第一分片z0。在一些实施例中,步骤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定义为等效结果元素。
在一些实施例中,由于第一方持有第一结果元素的第一分片m0与第二结果元素的第一分片n0,故等效结果元素z的第一分片z0可以表示为:
z0=m0-n0; (1)
在一些实施例中,第二方持有第一结果元素的第二分片m1与第二结果元素的第二分片n1,故等效结果元素z的第二分片z1可以表示为:
z1=m1-n1。 (2)
需要说明的是,由于第一方和第二方在流程200中所进行的步骤是对称的,即第二方根据其持有的和共享形式数据的第二分片。故在后文无特别说明的情况下,第二方还需要以第一方所进行计算的相同规则进行计算。
步骤220,基于所述条件元素的第一分片a0生成第一中间元素。在一些实施例中,步骤220可以由第一中间元素获取模块420执行。
由前述内容可知,条件元素的第一分片a0属于第二群,在一些实施例中,第一中间元素被设计为存储单元的位数小于第一群中元素的存储单元。在一些实施例中,可令第一中间元素的取值属于第三群,且存在第三群在第一群上的作用能够映射到第一群。
在一些实施例中,继续采用第一群为第一商群Z/NZ的示例,第一中间元素可以表示为
Figure BDA0003001595820000101
显然此时第三群为{-1,1},且可以看出,用于存储第三群中元素的存储单元的位数小于用于存储第一群中元素的存储单元的位数。
应当理解,第二方可以以类似的方法,可以基于所述条件元素的第二分片a1得到第二中间元素,相应的,第二中间元素也属于第三群。
步骤230,基于所述条件元素的第一分片a0与等效结果元素的第一分片z0得到第一中间数值y0。在一些实施例中,步骤230可以由第一中间数值获取模块430执行。
等效结果元素z的两个分片,由两方分别保留且对另一方保密。为了避免直接某一方同时持有z0和z1,造成结果的泄露,在一些实施例中,可以基于条件元素的第一分片a0与等效结果元素的第一分片z0生成第一中间数值y0
在一些实施例中,当第一中间元素按
Figure BDA0003001595820000111
计算时,第一中间数值y0的结果可以等效为下式计算的结果:
Figure BDA0003001595820000112
其中,
Figure BDA0003001595820000113
表示第一中间元素,公式(3)可以等效为当
Figure BDA0003001595820000114
时,y0=z0,当
Figure BDA0003001595820000115
时,y0=-z0。等效结果元素的第一分片z0属于第一群,故第一中间数值y0也属于第一群。
应当理解,第二方可以以类似的方法,可以基于所述条件元素的第二分片a1与等效结果元素的第二分片z1得到第二中间数值y1,相应的,第二中间数值y1也属于第一群。
步骤240a,基于所述第一中间元素,与另一方按照第一多方安全计算协议协同计算,获得第一交叉结果的第一分片u0。在一些实施例中,步骤240可以由第一交叉结果获取模块440a执行。
在一些实施例中,步骤230中第二方持有第二中间数值y1,第一方基于所述第一中间元素,与第二方持有的第二中间数值y1按照第一多方安全计算协议协同计算,获得第一交叉结果。
在一些实施例中,第一交叉结果同样是以和共享形式存储与两方。具体的,第一交叉结果的第一分片u0存储于第一方,第一交叉结果的第二分片u1存储于第二方。两参与方按照第一多方安全计算协议协同计算获得的第一交叉结果其并不会泄露各方隐私信息。
在一些实施例中,具体的,第一交叉结果可以等效表示为:
Figure BDA0003001595820000121
其中,y1表示第二方持有的第二中间数值。
在一些实施例中,获取第一交叉结果的第一分片u0所进行的协同计算是按照G-module交互计算协议进行的。关于通过G-module交互计算协议获取第一交叉结果的具体方式,可以进一步参见图3a的相关说明。
步骤240b,基于所述第一中间数值y0,与另一方按照第二多方安全计算协议协同计算,获得第二交叉结果的第一分片w0。在一些实施例中,步骤240可以由第二交叉结果获取模块440b执行。
在一些实施例中,第二方持有第二中间元素,第一方基于第一中间数值y0和第二方持有的第二中间元素按照第二多方安全计算协议协同计算,获得第二交叉结果。
在一些实施例中,第二交叉结果同样是以和共享形式存储与两方。具体的,与步骤240a相似,第二交叉结果的第一分片w0存储于第一方,第二交叉结果的第二分片w1存储于第二方。两参与方按照第二多方安全计算协议协同计算获得的第二交叉结果其并不会泄露各方隐私信息。
在一些实施例中,具体的,第二交叉结果可以等效表示为:
Figure BDA0003001595820000122
其中,
Figure BDA0003001595820000123
表示第二方持有的第二中间元素。
在一些实施例中,与步骤240a相似,获取第二交叉结果的第一分片w0所进行的协同计算是按照G-module交互计算协议进行的。关于通过G-module交互计算协议获取第二交叉结果的具体方式,可以进一步参见图3b的相关说明。
步骤250,基于等效结果元素的第一分片z0、第一交叉结果的第一分片u0和第二交叉结果的第一分片w0,计算初始选择结果的第一分片v0。在一些实施例中,步骤250可以由初始选择结果获取模块450执行。
在一些实施例中,初始选择结果等价于
Figure BDA0003001595820000124
以及
Figure BDA0003001595820000125
Figure BDA0003001595820000126
Figure BDA0003001595820000131
在一些实施例中,初始选择结果的第一分片v0的计算可以是对(z0-u0-w0)/2向上取整或对(z0-u0-w0)/2向下取整。需要说明的是由于初始选择结果等价于az,基于条件元素以及结果元素的群性质(元素均为整数),az其必定为整数,故在一些实施例中,当(z0-u0-w0)/2结果存在小数的情况下,对其进行向上取证或向下取整。
在一些实施例中,第二方基于等效结果元素的第二分片z1与交叉结果的第一分片u0得到的初始选择结果的第二分片v1的计算可以是对(z1-u1-w1)/2向上取整或对(z1-u1-w1)/2向下取整,需要说明的是,当初始选择结果的第一分片v0计算时采用向上取整时,初始选择结果的第二分片v1采用向下取整;当初始选择结果的第一分片v0计算时采用向下取整时,初始选择结果的第二分片v1采用向上取整,以此保证初始选择结果的第一分片v0和初始选择结果的第二分片v1之和,即初始选择结果的正确性。双方可以预先对各方的初始选择结果的和共享分片的取整方式达成共识。
步骤260,确定安全选择问题的结果的第一分片。在一些实施例中,步骤240可以由问题结果获取模块460执行。
在一些实施例中,基于所述初始选择结果的第一分片v0与所述第二结果元素的第一分片n0确定安全选择问题的结果的第一分片。
在一些实施例中,参见步骤210可知,安全选择问题的结果为az+n=a(m-n)+n,即安全选择问题的结果的第一分片为初始选择结果的第一分片v0与所述第二结果元素的第一分片n0的和值。
在一些实施例中,第二方确定安全选择问题的结果的第二分片,安全选择问题的结果的第二分片为初始选择结果的第二分片v1与所述第二结果元素的第一分片n0的和值。
此时,第一方和第二方已经完成安全选择问题,并且安全选择问题的结果的第一分片和第二分片即为安全选择问题的结果,同时第一方和第二方未获得任何其他数据,保护了各方隐私数据。
在本说明书的一些实施例中,还提供了一种多方安全计算方法或称为G-module交互计算协议,在一些实施例中,步骤240a中的第一多方安全计算协议和步骤240b中的第二多方安全计算协议都可以是该G-module交互计算协议,由于协议两方执行的运算并不是对称的,因此下面通过第一方和第二方分别基于步骤240a和步骤240b的交互流程对G-module交互计算协议进行说明。
图3a是根据本说明书一些实施例所示的两方执行第一多方安全计算协议的交互流程示意图。
在一些实施例中,所述第一多方安全计算协议参与方包括两方,其中一方拥有属于有限群G的第一元素g,另一方拥有属于有限群A的第二元素1,有限群A为G模群,存在有限群G在有限群A上的作用到有限群A的映射满足分配率,所述第一多方安全计算任务为所述两方协同计算gl,计算结果以和共享分片存储于所述两方。
在一些实施例中,协议300a中其中一方可以是流程200中的第一方,另一方为流程200中的第二方。所述第三群相当于有限群G,所述第一群相当于有限群A,
Figure BDA0003001595820000141
l=y1
需要说明的是,有限群G在有限群A上的作用可以解释为,存在一个映射G×A→A,有限群G中包括元素g、有限群A中包括元素a,那么(g,a)在该映射下的像称为g在a上的作用,记为ga。
具体的,第一多方安全计算协议300a的具体步骤则包括:
步骤311,获取属于有限群G的第一随机数h0以及属于有限群A的第一中间分片d0;所述第一中间分片d0与所述另一方的第二中间分片d1为第一随机数h0和第二随机数b1乘积的和共享分片,均属于有限群A;其中,b1表示另一方的属于有限群A的第二随机数。
在一些实施例中,所述第一随机数h0、第二随机数b1、第一中间分片d0和第二中间分片d1由第三方生成。在一些实施例中,第三方具体的可以是半可信第三方设备130。
在一些实施例中,第三方可以通过随机数生成装置或随机数生成算法,得到第一随机数h0和第二随机数b1,再基于第一随机数h0和第二随机数b1运算得到和共享分片,在一些实施例中,所述运算为乘法运算,即第一中间分片d0与第二中间分片d1可以表示为:d0+d1=h0b1。然后,第三方将第一随机数h0和第一中间分片d0发送至第一方;将第二随机数b1和第二中间分片d1发送至第二方。
在一些实施例中,由于第一随机数h0属于有限群G,第一中间分片d0、第二随机数b1和第二中间分片d1属于有限群A,因此步骤311中数据传输量或通信量一共为log2|G|+3log2|A|。|G|表示G群中的元素个数,|A|表示A群中的元素个数。在一些实施例中,G群第三群,A群为第一群,因此,步骤311产生的通信量进一步表示1+3log2N。为了减小步骤311中数据传输量,在一些实施例中,参与方可以通过伪随机数算法,基于随机数种子生成随机数。在伪随机数算法中,需要预先设置一组伪随机数据种子,各方再基于预设好的随机数种子,生成一组随机数。当输入相同的随机数种子时,所生成的随机数序列也是相同的。作为示例,各方基于相同的随时数种子各生产5个随机数,各方的第一随机数、第二随机数、…、以及第五随机数对应相同。需要说明的是,随机数种子可以在执行协议前提前配置于参与方。
具体的,所述任一方用于第一随机数种子与第三随机数种子,另一方拥有第二随机数种子与第四随机数种子,第三方拥有第一~四随机数种子。所述第一随机数h0为所述任一方通过预设的第一随机数种子生成;所述第二随机数b1为所述另一方通过预设的第二随机数种子生成;所述第一中间分片d0为所述任一方通过预设的第三随机数种子生成。此时一方已经持有第一随机数h0和第一中间分片d0。第三方通过第一随机数种子、第二随机数种子和第三随机数种子对应生成h0、b1以及d0,并基于d1=h0b1-d0得到第二中间分片d1,因此另一方可以从第三方获取第二中间分片d1,此时另一方持有第二随机数b1和第二中间分片d1,完成随机数及分片的分发。在一些替代性的实施例中,还可以是第一中间分片d0为所述任一方从第三方获取,所述第二中间分片d1为所述另一方通过所述预设的第二随机数种子生成。
在利用伪随机数算法实现随机数及分片的分发过程中,仅有一方从第三方处获取第一中间分片d0或第二中间分片d1,因此该步骤的传输量仅为log2N,进一步减轻了系统传输负荷。
步骤312,发送属于有限群G的第一传输数据f0至所述另一方;所述第一传输数据f0基于h0 -1g得到;
步骤313,获取所述另一方的属于有限群A的第二传输数据c1;所述第二传输数据c1基于l-b1得到。
步骤314,基于gc1+f0d0得到所述第一交叉结果的第一分片u0
在一些实施例中,另一方基于f0d1得到第一交叉结果的第二分片u1,(u0,u1)即为交叉结果。该协议的原理可以表示为:
gl=(gc1+f0)+f0d1=g(l-b1)+gh0 -1d0+gh0 -1d1
=g(l-b1)+gh0 -1h0b1。 (6)
在一些实施例中,在步骤240a中G-module交互计算协议可以表示为,有限群G为第三群,有限群A为第一群,其中
Figure BDA0003001595820000161
l=y1,在一些实施例中,通过计算得到的公式(4)形式的第一交叉结果。
由上述步骤可知,由于协议300a执行过程中,一方生成数据时无需另一方的数据参与。因此,可以实现全双工,即两方可以同时向对方发送数据,减少了交互次数,降低了系统延迟产生的影响。
图3b是根据本说明书一些实施例所示的两方执行进行第二多方安全计算协议的交互流程示意图。
在一些实施例中,与协议300a类似,协议300b中其中一方可以是流程200中的第一方,另一方为流程200中的第二方。所述第三群相当于有限群G,所述第一群相当于有限群A,与协议300a不同之处在于,l=y0
Figure BDA0003001595820000162
具体的,第二多方安全计算协议300b的具体步骤则包括:
步骤321,获取属于有限群A的第三随机数b0以及属于有限群A的第三中间分片e0;所述第三中间分片e0与所述另一方的第四中间分片e1为第三随机数b0和第四随机数h1乘积的和共享分片,均属于有限群A;其中,h1表示另一方的属于有限群G的第四随机数。
在一些实施例中,与步骤311类似,获取第三随机数b0、第三中间分片e0、第三中间分片e0和第四中间分片e1可以通过第三方生成具体可以参见步骤311相关描述,此处不再赘述。
在一些实施例中,步骤321也可以通过伪随机数算法,基于随机数种子生成随机数,由于一个随机数种子可以生成多个随机数,且不同方基于相同随机数种子生成的多个随机数按顺序相同。因此,步骤321中,各方可以基于已有的随机数种子生成新的随机数。其中所述第三随机数b0为所述任一方通过预设的第三随机数种子生成,在一些实施例中,第三随机数种子可以与步骤311中相同;所述第四随机数h1为所述另一方通过预设的第四随机数种子生成;基于e0+e1=h1b0,所述第三中间分片e0为所述任一方通过所述预设的第三随机数种子生成,所述第四中间分片e1为所述另一方从第三方获取,或者,所述第三中间分片e0为所述任一方从第三方获取,所述第四中间分片e1为所述另一方通过预设的第二随机数种子生成,在一些实施例中,该预设的第二随机数种子可以与步骤311中相同。
在一些实施例中,当协议300a和协议300b均采用伪随机数算法时,可以看出,只需任一方分别拥有两个随机数种子,分别用于生成A群和G群的随机数,第三方分别拥有这两方的随机数种子,即第三方共持有4个种子,即可实现随机数及分片的分配,步骤311和步骤321总传输量为2 log2N。
步骤322,发送属于有限群A的第三传输数据c0至所述另一方;所述第三传输数据c0基于l-b0得到。
步骤323,获取所述另一方的属于有限群G的第四传输数据f1;所述第四传输数据f1基于h1 -1g得到。
步骤334,基于f1e0得到所述第二交叉结果的第一分片w0
在一些实施例中,另一方基于gc1+f1e1得到第二交叉结果的第二分片w1,(w0,w1)即为交叉结果,协议的原理与协议300a相似。
在一些实施例中,在步骤240中第二多方安全计算协议可以表示为,有限群G为第三群,有限群A为第一群,其中
Figure BDA0003001595820000181
l=y1,在一些实施例中,通过计算得到的公式(5)形式的第二交叉结果。
不难看出,第一方在步骤240a中运行的第一多方安全计算协议中的角色与第一方在步骤240b中运行的第二多方安全计算协议中的角色正好相反,可以理解的是,第一方在步骤240a执行的流程与第二方在步骤240b执行的流程类似,因此在一些实施例中,第一多方安全计算协议和第二多方安全计算协议可以均为G-module交互计算协议。
由于一方生成内容不依赖于另一方的数据,在一些实施例中,步骤240a和步骤240b可以同时执行,即第一方同时向第二方发送第一传输数据f0和第三传输数据c0,同理第二方可以同时发送第二传输数据c1和第四传输数据f1给第一方。在该情况下,流程200中,第一方和第二方之间的交互仅为1轮全双工通信,总通讯量为2 log2|G|+2 log2|A|+2 log2|A|=2+4 log2N。
应当注意的是,上述有关流程200、300a以及300b的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程200进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,安全选择问题为特殊安全选择问题时,第二结果元素n为0,因此在一些实施例中,可以不执行步骤210和步骤260,而是直接通过步骤220~250获得特殊安全选择问题等效计算结果az此外,例如在步骤240a和步骤240b可以同时进行,或者顺序对调,步骤312和步骤313可以同时进行,或者顺序对调,步骤322和步骤323可以同时进行,或者顺序对调。
图4是根据本说明书一些实施例所示的安全选择问题处理系统的模块图。
如图4所示,安全选择问题处理系统400可以包括等效结果元素获取模块410、第一中间元素获取模块420、第一中间数值获取模块430、第一交叉结果获取模块440a、第二交叉结果获取模块440b、初始选择结果获取模块450和问题结果获取模块460。这些模块也可以作为应用程序或一组由处理引擎读取和执行的指令实现。此外,模块可以是硬件电路和应用/指令的任何组合。例如,当处理引擎或处理器执行应用程序/一组指令时,模块可以是处理器的一部分。
等效结果元素获取模块410可以用于确定第一结果元素的第一分片m0与第二结果元素的第一分片n0的差值为等效结果元素的第一分片z0
的更多描述可以在本说明书的其他地方(如步骤210及其相关描述中)找到,在此不作赘述。
第一中间元素获取模块420可以用于基于所述条件元素的第一分片a0生成第一中间元素;其中,第一中间元素的取值属于第三群;用于存储第三群中元素的存储单元的位数小于用于存储第一群中元素的存储单元的位数。
关于第一中间元素的更多描述可以在本说明书的其他地方(如步骤220及其相关描述中)找到,在此不作赘述。
第一中间数值获取模块430可以用于基于所述条件元素的第一分片a0与所述等效结果元素的第一分片z0得到第一中间数值y0;第一中间数值y0属于第一群。
关于第一中间数值的更多描述可以在本说明书的其他地方(如步骤230及其相关描述中)找到,在此不作赘述。
第一交叉结果获取模块440a,用于基于所述第一中间元素,与另一方按照第一多方安全计算协议协同计算,获得第一交叉结果的第一分片u0
关于第一交叉结果的更多描述可以在本说明书的其他地方(如步骤240a及其相关描述中)找到,在此不作赘述。
第二交叉结果获取模块440b,用于基于所述第一中间数值y0,与另一方按照第二多方安全计算协议协同计算,获得第二交叉结果的第一分片w0
关于第二交叉结果的更多描述可以在本说明书的其他地方(如步骤240b及其相关描述中)找到,在此不作赘述。
初始选择结果获取模块450,用于基于等效结果元素的第一分片z0、第一交叉结果的第一分片u0和第二交叉结果的第一分片w0,计算初始选择结果的第一分片v0
关于初始选择结果的更多描述可以在本说明书的其他地方(如步骤250及其相关描述中)找到,在此不作赘述。
问题结果获取模块460可以用于基于所述初始选择结果的第一分片v0与所述第二结果元素的第一分片n0,计算所述安全选择问题的结果的第一分片。
关于问题结果的更多描述可以在本说明书的其他地方(如步骤260及其相关描述中)找到,在此不作赘述。
应当理解,图4所示的装置及其模块可以利用各种方式来实现。例如,在一些实施例中,装置及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行装置,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和装置可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的装置及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于装置及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该装置的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子装置与其他模块连接。例如,图4中第一中间元素获取模块420和第一中间数值获取模块430可以为同一个模块,又例如,上述系统中的各个模块可以位于同一服务器上,也可以分属不同的服务器。诸如此类的变形,均在本说明书的保护范围之内。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书实施例可能带来的有益效果包括但不限于:(1)在进行安全选择计算的过程中,基于安全选择问题处理方法参与方能够仅一轮全双工交互即获得问题的结果,相对于现有方案,减少了交互次数,减轻了系统传输压力;(2)两参与方在进行处理过程中,不会泄露各方的隐私数据,保护各方的数据安全。
需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

Claims (13)

1.一种安全选择问题处理方法,安全选择问题参与方包括第一方和第二方,所述安全选择问题描述为当条件元素a=1时,选择第一结果元素m,当条件元素a=0时,选择第二结果元素n;所述安全选择问题的条件元素a、第一结果元素m和第二结果元素n分别以和共享分片存储于第一方和第二方,第一结果元素的和共享分片与第二结果元素的和共享分片均属于第一群,所述条件元素的和共享分片属于第二群,该方法由安全选择问题参与方中的任一方执行,其包括:
确定第一结果元素的第一分片m0与第二结果元素的第一分片n0的差值为等效结果元素的第一分片z0
基于所述条件元素的第一分片a0生成第一中间元素;其中,第一中间元素的取值属于第三群,且存在第三群在第一群上的作用能够映射到第一群;
基于所述条件元素的第一分片a0与所述等效结果元素的第一分片z0得到第一中间数值y0;第一中间数值y0属于第一群;
基于所述第一中间元素,与另一方按照第一多方安全计算协议协同计算,获得第一交叉结果的第一分片u0
基于所述第一中间数值y0,与另一方按照第二多方安全计算协议协同计算,获得第二交叉结果的第一分片w0
基于等效结果元素的第一分片z0、第一交叉结果的第一分片u0和第二交叉结果的第一分片w0,计算初始选择结果的第一分片v0
基于所述初始选择结果的第一分片v0与所述第二结果元素的第一分片n0,计算所述安全选择问题的结果的第一分片。
2.根据权利要求1所述的方法,其中,所述基于所述条件元素的第一分片a0生成第一中间元素,包括:
计算
Figure FDA0003001595810000011
得到所述第一中间元素;
所述基于所述条件元素的第一分片a0与所述等效结果元素的第一分片z0得到第一中间数值y0,包括:
Figure FDA0003001595810000021
计算所述第一中间数值。
3.根据权利要求2所述的方法,其中,所述第一交叉结果等效表示为
Figure FDA0003001595810000022
所述第二交叉结果等效表示为
Figure FDA0003001595810000023
其中,
Figure FDA0003001595810000024
表示另一方的第二中间元素,y1表示所述另一方的第二中间数值。
4.根据权利要求3所述的方法,其中,所述基于等效结果元素的第一分片z0、第一交叉结果的第一分片u0和第二交叉结果的第一分片w0,计算初始选择结果的第一分片v0,包括:
对(z0-u0-w0)/2向上取整或对(z0-u0-w0)/2向下取整,得到所述初始选择结果的第一分片v0
所述安全选择问题的结果的第一分片为初始选择结果的第一分片v0与所述第二结果元素的第一分片n0的和值。
5.根据权利要求1所述的方法,其中,第一群为第一商群Z/NZ,所述第二群为第二商群Z/2Z,所述第三群为{-1,1},N为大于2的整数。
6.根据权利要求1所述的方法,其中,所述第一多方安全计算协议为G-module交互计算协议,所述G-module交互计算参与方包括两方,其中一方拥有属于有限群G的第一元素g,另一方拥有属于有限群A的第二元素l,有限群A为G模群,存在有限群G在有限群A上的作用到有限群A的映射满足分配率,所述G-module交互计算描述为所述两方协同计算gl,计算结果以和共享分片存储于所述两方;
所述第三群为有限群G,所述第一群为有限群A,且
Figure FDA0003001595810000025
l=y1,y1表示所述另一方的第二中间数值,所述基于所述第一中间元素,与另一方按照第一多方安全计算协议协同计算,获得第一交叉结果的第一分片u0,包括:
获取属于有限群G的第一随机数h0以及属于有限群A的第一中间分片d0;所述第一中间分片d0与所述另一方的第二中间分片d1为第一随机数h0和第二随机数b1乘积的和共享分片,均属于有限群A;其中,b1表示另一方的属于有限群A的第二随机数;
发送属于有限群G的第一传输数据f0至所述另一方;所述第一传输数据f0基于h0 -1g得到;
获取所述另一方的属于有限群A的第二传输数据c1;所述第二传输数据c1基于l-b1得到;
基于gc1+f0d0得到所述第一交叉结果的第一分片u0
7.根据权利要求6所述的方法,其中:
所述第一随机数h0为所述任一方通过预设的第一随机数种子生成;
所述第二随机数b1为所述另一方通过预设的第二随机数种子生成;
所述第一中间分片d0为所述任一方通过预设的第三随机数种子生成,所述第二中间分片d1为所述另一方从第三方获取,或者,所述第一中间分片d0为所述任一方从第三方获取,所述第二中间分片d1为所述另一方通过所述预设的第二随机数种子生成。
8.根据权利要求1所述的方法,其中,所述第二多方安全计算协议为G-module交互计算协议,所述G-module交互计算参与方包括两方,其中一方拥有属于有限群G的第一元素g,另一方拥有属于有限群A的第二元素l,有限群A为G模群,且存在有限群G在有限群A上的作用到有限群A的映射满足分配率,所述G-module交互计算描述为所述两方协同计算gl,计算结果以和共享分片存储于所述两方;
所述第三群为有限群G,所述第一群为有限群A,且l=y0
Figure FDA0003001595810000031
a1表示属于所述另一方的所述条件元素的第二分片,所述基于所述第一中间数值y0,与另一方按照第二多方安全计算协议协同计算,获得第二交叉结果的第一分片w0,包括:
获取属于有限群A的第三随机数b0以及属于有限群A的第三中间分片e0;所述第三中间分片e0与所述另一方的第四中间分片e1为第三随机数b0和第四随机数h1乘积的和共享分片,均属于有限群A;其中,h1表示另一方的属于有限群G的第四随机数;
发送属于有限群A的第三传输数据c0至所述另一方;所述第三传输数据c0基于l-b0得到;
获取所述另一方的属于有限群G的第四传输数据f1;所述第四传输数据f1基于h1 -1g得到;
基于f1e0得到所述第二交叉结果的第一分片w0
9.根据权利要求8所述的方法,其中:
所述第三随机数b0为所述任一方通过预设的第三随机数种子生成;
所述第四随机数h1为所述另一方通过预设的第四随机数种子生成;
所述第三中间分片e0为所述任一方通过所述预设的第三随机数种子生成,所述第四中间分片e1为所述另一方从第三方获取,或者,所述第三中间分片e0为所述任一方从第三方获取,所述第四中间分片e1为所述另一方通过预设的第二随机数种子生成。
10.一种安全选择问题处理系统,安全选择问题参与方包括第一方和第二方,所述安全选择问题描述为当条件元素a=1时,选择第一结果元素m,当条件元素a=0时,选择第二结果元素n;所述安全选择问题的条件元素a、第一结果元素m和第二结果元素n分别以和共享分片存储于第一方和第二方,第一结果元素的和共享分片与第二结果元素的和共享分片均属于第一群,所述条件元素的和共享分片属于第二群,所述系统部署于安全选择问题参与方中的任一方,其包括:
等效结果元素获取模块,用于确定第一结果元素的第一分片m0与第二结果元素的第一分片n0的差值为等效结果元素的第一分片z0
第一中间元素获取模块,用于基于所述条件元素的第一分片a0生成第一中间元素;其中,第一中间元素的取值属于第三群,且存在第三群在第一群上的作用能够映射到第一群;
第一中间数值获取模块,用于基于所述条件元素的第一分片a0与所述等效结果元素的第一分片z0得到第一中间数值y0;第一中间数值y0属于第一群;
第一交叉结果获取模块,用于基于所述第一中间元素,与另一方按照第一多方安全计算协议协同计算,获得第一交叉结果的第一分片u0
第二交叉结果获取模块,用于基于所述第一中间数值y0,与另一方按照第二多方安全计算协议协同计算,获得第二交叉结果的第一分片w0
初始选择结果获取模块,用于基于等效结果元素的第一分片z0、第一交叉结果的第一分片u0和第二交叉结果的第一分片w0,计算初始选择结果的第一分片v0
问题结果获取模块,用于基于所述初始选择结果的第一分片v0与所述第二结果元素的第一分片n0,计算所述安全选择问题的结果的第一分片。
11.一种安全选择问题处理装置,包括处理器以及存储质,所述存储介质用于存储计算机指令,所述处理器用于执行所述计算机指令中的至少一部分以实现权利要求1-9中任意一种所述的方法。
12.一种多方安全计算方法,其中,所述多方安全计算参与方包括两方,其中第一方拥有属于有限群G的第一元素g,第二方拥有属于有限群A的第二元素l,有限群A为G模群,存在有限群G在有限群A上的作用到有限群A的映射满足分配率,所述多方安全计算描述为所述两方协同计算乘积gl,计算结果以和共享分片存储于所述两方;
所述方法由第一方执行,其包括:
获取属于有限群G的第一随机数h以及属于有限群A的第一中间分片i0;所述第一中间分片i0与所述第二方的第二中间分片i1为第一随机数h和第二随机数b乘积的和共享分片,均属于有限群A;其中,b表示第二方的属于有限群A的第二随机数;
发送属于有限群G的第一传输数据f至所述第二方;所述第一传输数据f基于h-1g得到;
获取所述第二方的属于有限群A的第二传输数据c;所述第二传输数据c基于l-b得到;
基于gc+fi0得到所述乘积的第一分片j0
13.一种多方安全计算方法,其中,所述多方安全计算参与方包括两方,其中第一方拥有属于有限群G的第一元素g,第二方拥有属于有限群A的第二元素l,有限群A为G模群,存在有限群G在有限群A上的作用到有限群A的映射满足分配率,所述多方安全计算描述为所述两方协同计算乘积gl,计算结果以和共享分片存储于所述两方;
所述方法由第二方执行,其包括:
获取属于有限群A的第二随机数b以及属于有限群A的第二中间分片i1;所述第二中间分片i1与第一方的第一中间分片i0为第一随机数h和第二随机数b乘积的和共享分片,均属于有限群A;其中,h表示第一方的属于有限群G的第一随机数;
发送属于有限群A的第二传输数据c至所述另一方;所述第二传输数据c基于l-b得到;
获取所述第一方的属于有限群G的第一传输数据f;所述第一传输数据f基于h-1g得到;
基于fi1得到所述乘积的第二分片j1
CN202110354457.2A 2021-03-31 2021-03-31 一种安全选择问题处理方法和系统 Pending CN112989421A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110354457.2A CN112989421A (zh) 2021-03-31 2021-03-31 一种安全选择问题处理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110354457.2A CN112989421A (zh) 2021-03-31 2021-03-31 一种安全选择问题处理方法和系统

Publications (1)

Publication Number Publication Date
CN112989421A true CN112989421A (zh) 2021-06-18

Family

ID=76338835

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110354457.2A Pending CN112989421A (zh) 2021-03-31 2021-03-31 一种安全选择问题处理方法和系统

Country Status (1)

Country Link
CN (1) CN112989421A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114448630A (zh) * 2022-04-07 2022-05-06 华控清交信息科技(北京)有限公司 一种多方安全计算方法、系统和用于多方安全计算的装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013142981A1 (en) * 2012-03-30 2013-10-03 Irdeto Canada Corporation Securing accessible systems using base function encoding
CN111177790A (zh) * 2020-04-10 2020-05-19 支付宝(杭州)信息技术有限公司 保护两方数据隐私的协同计算方法、系统及装置
US10699465B1 (en) * 2018-12-28 2020-06-30 Intel Corporation Cluster of scalar engines to accelerate intersection in leaf node
CN111539041A (zh) * 2020-07-08 2020-08-14 支付宝(杭州)信息技术有限公司 一种安全选择方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013142981A1 (en) * 2012-03-30 2013-10-03 Irdeto Canada Corporation Securing accessible systems using base function encoding
US10699465B1 (en) * 2018-12-28 2020-06-30 Intel Corporation Cluster of scalar engines to accelerate intersection in leaf node
CN111177790A (zh) * 2020-04-10 2020-05-19 支付宝(杭州)信息技术有限公司 保护两方数据隐私的协同计算方法、系统及装置
CN111539041A (zh) * 2020-07-08 2020-08-14 支付宝(杭州)信息技术有限公司 一种安全选择方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
隋兵才;罗礼;毛二坤;: "64位流处理器中运算群的设计与验证", 计算机与现代化, no. 11 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114448630A (zh) * 2022-04-07 2022-05-06 华控清交信息科技(北京)有限公司 一种多方安全计算方法、系统和用于多方安全计算的装置
CN114448630B (zh) * 2022-04-07 2022-06-14 华控清交信息科技(北京)有限公司 一种多方安全计算方法、系统和用于多方安全计算的装置

Similar Documents

Publication Publication Date Title
Patra et al. BLAZE: blazing fast privacy-preserving machine learning
CN111539041B (zh) 一种安全选择方法和系统
CN110348231B (zh) 实现隐私保护的数据同态加解密方法及装置
Boyle et al. Function secret sharing for mixed-mode and fixed-point secure computation
CN111475854B (zh) 保护两方数据隐私的协同计算方法及系统
US8638926B2 (en) Sharing a secret with modular inverses
WO2015053185A1 (ja) 秘密商転移装置、秘密ビット分解装置、秘密モジュラス変換装置、秘密商転移方法、秘密ビット分解方法、秘密モジュラス変換方法、プログラム
CN109886029B (zh) 基于多项式表示的隐私保护集合交集计算方法与系统
CN111539027B (zh) 一种基于双方隐私保护的信息验证方法和系统
CN113158239B (zh) 保护数据隐私的选择问题处理方法
CN109067538A (zh) 安全协议方法、计算机设备及存储介质
CN114817958A (zh) 一种基于联邦学习的模型训练方法、装置、设备及介质
CN111857649A (zh) 一种用于隐私保护机器学习的定点数编码及运算系统
CN107888385B (zh) Rsa模数生成方法、rsa密钥生成方法、计算机设备及介质
Wang et al. Verifiable threshold scheme in multi-secret sharing distributions upon extensions of ECC
CN113761469A (zh) 一种保护数据隐私的最高位进位计算方法
Luo et al. SVFL: Efficient secure aggregation and verification for cross-silo federated learning
CN114448598A (zh) 密文压缩方法、密文解压缩方法、装置、设备和存储介质
WO2010123151A2 (ja) ペアリング演算装置、ペアリング演算方法、及びぺアリング演算プログラムを記録した記録媒体
CN112989421A (zh) 一种安全选择问题处理方法和系统
CN113158254B (zh) 一种保护数据隐私的选择问题处理方法和系统
CN113094763B (zh) 一种保护数据隐私的选择问题处理方法和系统
CN105099693B (zh) 一种传输方法及传输装置
CN110990896A (zh) 基于sm2白盒的数字签名装置、方法、存储介质及设备
Hu et al. A reversible steganography scheme of secret image sharing based on cellular automata and least significant bits construction

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