CN115080615A - 基于多方安全计算的数据查询方法及装置 - Google Patents
基于多方安全计算的数据查询方法及装置 Download PDFInfo
- Publication number
- CN115080615A CN115080615A CN202210636832.7A CN202210636832A CN115080615A CN 115080615 A CN115080615 A CN 115080615A CN 202210636832 A CN202210636832 A CN 202210636832A CN 115080615 A CN115080615 A CN 115080615A
- Authority
- CN
- China
- Prior art keywords
- data set
- boolean
- participants
- plaintext
- sharing
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例提供一种基于多方安全计算的数据查询方法及装置,在基于多方安全计算的数据查询过程中,为了查询数据集中按照数据大小顺序排列在指定序次的目标元素,可以在和共享形式下对数据集中的数据进行乱序得到乱序数据集。然后将乱序数据集中的算术共享转换成布尔共享形式,在布尔共享形式下,通过公开排列靠前的部分位上的数值,可以将排列靠前的部分位数恢复为明文。依据排列靠前的位上的明文数据,可以对乱序数据集中的数据元素进行区间排序,从而确定指定序次所在序列区间所对应的明文表示,而该明文表示仅对应乱序数据集中的部分数据元素。如此,便缩小了目标元素的范围,进而在所确定的元素范围内确定目标元素。这种查询方式可以提高查询效率。
Description
技术领域
本说明书一个或多个实施例涉及安全计算技术领域,尤其涉及基于多方安全计算的数据查询方法及装置。
背景技术
安全多方计算又称为多方安全计算,可以由多方共同计算出一个函数的结果,而不泄露这个函数中各方的输入数据,计算的结果公开给其中的一方或多方。安全多方计算的典型应用例如有隐私保护的多方数据的联合统计分析、机器学习等。这里的函数是一个统计运算的函数、一个机器学习算法等等。
在多方安全计算过程中,为了不泄露各方数据以及中间计算结果,可以将数据或中间结果以共享(share)形式由各方持有。单方持有一个数据分片,各方持有的分片融合在一起还原出相应数据。通常,计算保持在共享状态进行。如此,多方安全计算中的数据通信次数、通信量等均是影响安全计算效率的重要因素。
发明内容
本说明书一个或多个实施例描述了一种基于多方安全计算的数据查询方法及装置,用以解决背景技术提到的一个或多个问题。
根据第一方面,提供一种基于多方安全计算的数据查询方法,用于从在多个参与方构成和共享形式的预定数据集中按照指定序次查询目标元素的过程,所述指定序次用于指示目标元素在所述预定数据集的各个元素中的大小序次,所述方法由所述多个参与方中持有所述预定数据集的第一和共享分片的第一方执行,所述方法包括:与其他参与方基于安全乱序协议对所述第一和共享分片进行安全乱序,得到第一乱序分片,该第一乱序分片与其他参与方经由所述安全乱序协议对其他和共享分片进行安全乱序得到的其他乱序分片,共同构成针对所述预定数据集的乱序数据集的和共享形式;与其他参与方按照算术共享向布尔共享转换的A2B转换协议,将所述乱序数据集在所述多个参与方的和共享形式转换为布尔共享形式,并得到所述乱序数据集的第一布尔分片,该第一布尔分片与其他参与方得到的其他布尔分片构成所述乱序数据集的布尔共享形式;接收其他参与方各自针对本地布尔分片公开的各个元素的前k位数值,并按照布尔共享的分片合并规则得到所述乱序数据集中各个元素前k位数值对应的t个明文表示,单个明文表示对应所述乱序数据集中的至少一个元素;基于所述t个明文表示的大小顺序,按照指定序次确定所述目标元素对应的第一明文表示;与其他各个参与方一起基于所述第一明文表示对应的各个元素确定所述目标元素。
在一个实施例中,所述安全乱序协议通过秘密共享或同态加密方式实现。
在一个实施例中,所述第一布尔分片包括所述乱序数据集中各个元素分别对应的各个布尔子分片,针对单个元素所述布尔共享的分片合并规则为,将所述单个元素在各个布尔共享分片中对应的布尔子分片进行异或操作。
在一个实施例中,所述基于所述t个明文表示的大小顺序,按照指定序次确定所述目标元素对应的第一明文表示包括:统计所述t个明文表示分别对应的各个元素数量;在所述t个明文表示按照大小顺序排列的情况下,利用各个元素数量确定所述指定序次所对应的第一明文表示。
在一个实施例中,在所述第一明文表示对应的元素不唯一的情况下,所述与其他各个参与方一起基于所述第一明文表示对应的各个元素确定所述目标元素包括:接收其他参与方公开的各个布尔分片中各个元素各自在前k位之后的r位数值,并按照布尔共享的分片合并规则合并得到所述第一明文表示对应的各个元素的前k+r位数值对应的s个明文表示;基于所述s个明文表示的大小顺序,按照指定序次确定所述目标元素对应的第二明文表示;与其他各个参与方一起基于所述第二明文表示对应的元素确定所述目标元素。
在一个进一步的实施例中,所述与其他各个参与方一起基于所述第一明文表示对应的各个元素确定所述目标元素包括:在所述目标元素所对应的当前明文表示指示的元素不唯一的情况下,继续公开该当前明文表示对应的各个元素的后续若干位数值,直至当前明文表示对应的元素唯一。
在一个实施例中,在所述第一明文表示对应的元素不唯一的情况下,所述与其他各个参与方一起基于所述第一明文表示对应的元素确定所述目标元素包括:基于所述t个明文表示的大小顺序,确定所述第一明文表示所对应的若干元素中,最大元素、最小元素分别在所述乱序数据集中对应的第一序次、第二序次,并与其他参与方通过安全比较确定所述最大元素的第一子分片、最小元素的第二子分片,所述的第一子分片、最小元素的第一子分片各自与其他参与方持有的其他子分片构成所述最大元素、所述最小元素的共享形式;基于所述第一序次、第二序次、所述最大元素第一子分片、所述最小元素的第二子分片,与其他参与方通过安全计算确定所述指定序次对应的估计值,作为所述目标元素。
在一个更进一步的实施例中,所述指定序次对应的估计值基于以下两项的绝对值相等而确定:所述估计值和所述最大元素/所述最小元素之差,与所述最大元素和所述最小元素之差的比值;所述指定序次和所述第一序次/第二序次之差,与所述第一序次和所述第二序次之差的比值。
在一个实施例中,所述与其他各个参与方一起基于所述第一明文表示对应的元素确定所述目标元素包括:与其他参与方安全确定所述第一明文表示对应的元素的均值作为所述目标元素,从而在本地得到所述目标元素的第一分片。
在一个实施例中,在与其他各个参与方一起基于所述第一明文表示对应的元素确定所述目标元素之前,所述方法还包括:向其他各个参与方发送所述第一明文表示对应的各个元素分别在所述乱序数据集中的各个位置标识。
根据第二方面,提供一种基于多方安全计算的数据查询方法,用于从在多个参与方构成和共享形式的预定数据集中按照指定序次查询目标元素的过程,所述指定序次用于指示目标元素在所述预定数据集的各个元素中的大小序次,所述方法由所述多个参与方中持有所述预定数据集的第二和共享分片的第二方执行,所述方法包括:
与其他参与方基于安全乱序协议对所述第二和共享分片进行安全乱序,得到第二乱序分片,该第二乱序分片与其他参与方经由所述安全乱序协议对其他和共享分片进行安全乱序得到的其他乱序分片,共同构成针对所述预定数据集的乱序数据集的和共享形式;与其他参与方按照算术共享向布尔共享转换的A2B转换协议,将所述乱序数据集在所述多个参与方的和共享形式转换为布尔共享形式,并得到所述乱序数据集的第二布尔分片,该第二布尔分片与其他参与方得到的其他布尔分片构成所述乱序数据集的布尔共享形式;向多个参与方中的第一方公开所述第二布尔分片中各个元素各自的前k位数值,以供第一方按照布尔共享的分片合并规则合并得到所述乱序数据集中各个元素前k位数值对应的t个明文表示,并确定目标元素所对应的第一明文表示;从第一方接收所述第一明文表示对应的各个元素分别在所述乱序数据集中的各个位置标识;与其他各个参与方一起基于各个位置标识确定所述目标元素。
根据第三方面,提供一种基于多方安全计算的数据查询装置,用于从在多个参与方构成和共享形式的预定数据集中按照指定序次查询目标元素的过程,所述指定序次用于指示目标元素在所述预定数据集的各个元素中的大小序次,所述装置设于所述多个参与方中持有所述预定数据集的第一和共享分片的第一方,包括:
乱序单元,配置为与其他参与方基于安全乱序协议对所述第一和共享分片进行安全乱序,得到第一乱序分片,该第一乱序分片与其他参与方经由所述安全乱序协议对其他和共享分片进行安全乱序得到的其他乱序分片,共同构成针对所述预定数据集的乱序数据集的和共享形式;
转换单元,配置为与其他参与方按照算术共享向布尔共享转换的A2B转换协议,将所述乱序数据集在所述多个参与方的和共享形式转换为布尔共享形式,并得到所述乱序数据集的第一布尔分片,该第一布尔分片与其他参与方得到的其他布尔分片构成所述乱序数据集的布尔共享形式;
接收单元,配置为接收其他参与方各自针对本地布尔分片公开的各个元素的前k位数值,并按照布尔共享的分片合并规则得到所述乱序数据集中各个元素前k位数值对应的t个明文表示,单个明文表示对应所述乱序数据集中的至少一个元素;
筛选单元,配置为基于所述t个明文表示的大小顺序,按照指定序次确定所述目标元素对应的第一明文表示;
确定单元,配置为与其他各个参与方一起基于所述第一明文表示对应的各个元素确定所述目标元素。
根据第四方面,提供一种基于多方安全计算的数据查询装置,用于从在多个参与方构成和共享形式的预定数据集中按照指定序次查询目标元素的过程,所述指定序次用于指示目标元素在所述预定数据集的各个元素中的大小序次,所述装置设于所述多个参与方中持有所述预定数据集的第二和共享分片的第二方,包括:
乱序单元,配置为与其他参与方基于安全乱序协议对所述第二和共享分片进行安全乱序,得到第二乱序分片,该第二乱序分片与其他参与方经由所述安全乱序协议对其他和共享分片进行安全乱序得到的其他乱序分片,共同构成针对所述预定数据集的乱序数据集的和共享形式;
转换单元,配置为与其他参与方按照算术共享向布尔共享转换的A2B转换协议,将所述乱序数据集在所述多个参与方的和共享形式转换为布尔共享形式,并得到所述乱序数据集的第二布尔分片,该第二布尔分片与其他参与方得到的其他布尔分片构成所述乱序数据集的布尔共享形式;
发送单元,配置为至少向多个参与方中的第一方公开所述第二布尔分片中各个元素各自的前k位数值,以供第一方按照布尔共享的分片合并规则合并得到所述乱序数据集中各个元素前k位数值对应的t个明文表示,并确定目标元素所对应的第一明文表示;
接收单元,配置为从第一方接收所述第一明文表示对应的各个元素分别在所述乱序数据集中的各个位置标识;
确定单元,配置为与其他各个参与方一起基于各个位置标识确定所述目标元素。
根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。
根据第六方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面的方法。
通过本说明书实施例提供的方法和装置,在基于多方安全计算的数据查询过程中,为了查询数据集中按照数据大小顺序排列在指定序次的目标元素,可以在和共享形式下对数据集中的数据进行乱序,得到乱序数据集,以切断排序过程中,排序序列与预定数据集的关联,保护数据隐私。然后将乱序数据集中的算术共享转换成布尔共享形式。在布尔共享形式下,通过公开排列靠前的部分位上的数值,可以将排列靠前的部分位数恢复为明文。在排列靠前的位数为明文的情况下,可以对乱序数据集中的数据元素进行区间排序,从而确定指定序次所在序列区间所对应的明文表示,而该明文表示仅对应乱序数据集中的部分数据元素。如此,便缩小了目标元素的范围。进而在所确定的元素范围内确定目标元素。这种查询方式可以避免对乱序数据库排序所消耗的巨大通信量,提高多方安全查询的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的由多个参与方联合执行的基于多方安全计算的数据查询方法流程图;
图2示出根据一个实施例的由单个参与方执行的基于多方安全计算的数据查询方法流程图;
图3示出根据另一个实施例的由单个参与方执行的基于多方安全计算的数据查询方法流程图;
图4示出根据一个实施例的设于单个参与方的基于多方安全计算的数据查询装置的示意性框图;
图5示出根据另一个实施例的设于单个参与方的基于多方安全计算的数据查询装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的技术方案进行描述。
秘密共享(secret sharing)也称为秘密分割、秘密分享,其基本原理是将秘密(比如密钥、隐私数据等)拆分成多个份额(share),分别交给不同人保管。只有超过门限数量的各方将他们的share合并,才能恢复秘密;从少于门限数量的多方获取的share无法恢复秘密的任何信息。多方安全计算中,门限数量通常与参与方数量相同,秘密被拆分成的份额也可以称为分片。
秘密共享是多方安全计算过程中的重要手段。多方安全计算中常用的几种秘密共享形式例如有算术共享(Arithmetic Sharing)、布尔共享(Boolean Sharing)、姚氏共享(Yao's Sharing)。以下以共享秘密数据x为例,描述各种共享方式。
其中,算术共享也称为和共享。在双方安全计算中,把一个整数x以两个分片x=xL+xR以模2N的共享形式(平移到[0,2N-1]区间)分布式储存在两方,使得一方不知道xR,另一方不知道xL,两方中的任一方不能得到x的完整形式。进一步地,两方可以扩展为多方,如记为x=x1+x2+…+xd。假设N=64,则可以通过64字节(bit)的二进制数表示x在单个参与方的单个分片。将一个数据x拆分为和共享形式的方式例如为:随机生成d-1个264内的数值(如随机生成64字节的二进制数)作为d-1个分片,如分别记为x1、x2、…、xd-1,用并对264(平移到[0,264-1]区间)取模作为另一个分片,如记为xd=x-x1-x2-…-xd-1。
布尔共享是在比特位上进行异或操作的秘密分享方式。例如仍以两个参与方为例,假设x为一个比特的数据(取值为0或1),且以在两个参与方构成布尔共享形式,x0、x1分别为x在两个参与方的两个布尔共享分片,均在0或1上取值,表示异或运算。单个参与方不知道另一个参与方所持有的分片,因此不能推测数据x。对于由n个比特构成的数据x',可以随机生成n个比特的二进制数,作为一方的布尔共享分片(如x0')。另一方的布尔共享分片(如x1')可以由x'与该方的布尔共享分片的异或结果 确定。
姚氏共享是与混淆电路(Garbled Circuits,GC)相关的一种共享方式,混淆电路可以通过布尔电路进行计算。仍以两个参与方(混淆方和计算方)为例,可以由混淆方设置全局字符串R,且R在表示0的字符串(如L0)上的作用结果为表示1的字符串(如L1),如R与L0的异或结果为L1。举例而言,秘密数据x的姚氏共享的一个分片x0可以是随机生成的字符串k0,另一个分片可以是k0与R作用在x上的作用结果的异或值k1(如记为)。
上述三种Sharing(共享方式)各有自己的优势和劣势。各种共享方式之间还可以相互转换。例如:
姚氏共享转换为布尔共享(Yao to Boolean Sharing,如简称Y2B),单个参与方在本地计算要是共享分片与表示0的字符串的异或结果,作为相应布尔共享分片;
布尔共享转换为姚氏共享(Boolean to Yao Sharing,如简称B2Y),持有布尔分片x0的第一方(如对应混淆方)随机生成姚氏分片k0,双方执行不经意传输协议(OT),并由第一方计算第二方将其所持有的布尔分片x1作为选择比特获得姚氏分片
算术共享转换为姚氏共享(Arithmetic to Yao Sharing,如简称A2Y),两方对x的两个分片x0、x1分别确定相应的姚氏共享分片,得到相应的两组姚氏分片(x0)0、(x0)1、(x1)0、(x1)1,然后各自在本地执行姚氏分片的加法操作,得到x的两个姚氏分片,如xY 0=(x0)0+(x1)0、xY 1=(x0)1+(x1)1;
算术共享转换为布尔共享(Arithmetic to Boolean Sharing,如简称A2B),A2B可以用Boolean加法电路实现(和A2Y)类似,或者使用Arithmetic比特抽取电路。由于Y2B是没有开销(free)的,而姚氏共享在做加法时比布尔电路更加高效,因此可以依次使用A2Y、Y2B叠加处理相应算术分片,得到相应的布尔分片,例如,算术分片xL经Y2B(A2Y(xL))处理得到布尔分片x0;
等等。
各种共享方式之间的转换在此不再一一例举。
在多方安全计算中,业务数据通常在各个参与方构成共享(share)形式,由于运算的便利性等,算术共享(和共享)形式应用较多。针对数据集的数据查询业务中,可能遇到需要根据大小排列顺序查询的查询业务。例如,百分位数、中位数(即50%分位数)是常见的统计指标,可以作为指定目标元素排列次序的依据。以百分位数为例,给定一个数据集,可以查询其中由小到大或由大到小排列在预定百分位上的数值y。如预定百分位为60,可以表示60%位置,假设数据集中数据量为1000,则查询60百分位可以表示按大小顺序查询数据集中排列在第600序次的数值。
假设双方各持有一个长度为n的向量V(原始的数据集)的一个算术share(向量每个元素的模2N的算术share),从中查询公开的60百分位的数值。常规技术中,为了不泄露各方隐私,各个参与方可以对V执行一个安全乱序协议,各自得到乱序后向量V'=shuffle(V)的算术share。对原始的数据集乱序可以切断排序时各个元素与原数据集中的元素的对应关系,从而保护原数据集的数据隐私。然后,各方对V'执行一个安全排序协议(如基于安全比较的安全排序协议等),各自得到排序后的向量V”的算术share。如此,各个参与方各自得到本地60百分位位置的元素的算术共享的分片,并将其公开给其他参与方,则经各个参与方公开的目标元素分片合并(如加和),可以得到作为查询结果的目标元素。
其中,以上安全乱序协议例如可以由各个参与方分别生成一个置换关系,各个置换关系依次处理数据集V,从而得到乱序数据集V'。以两个参与方进行的多方安全计算为例,数据集V例如为n维向量,在两个参与方分别对应有模2N的两个n维向量V1、V2,由一个参与方生成一个置换关系π0、另一个参与方生成一个置换关系π1,乱序之后的数据集例如为π0(π1(V1+V2))。两个参与方例如可以分别持有π0(π1(V1))和π0(π1(V2))。
在对乱序数据集中的数据进行安全排序时,需要经过多次安全比较,由此产生较高的通信量,复杂度较高,效率较低。
为此,本说明书基于算术共享形式可转换为布尔共享的转换协议,提出一种在布尔共享形式下,公开数据集中各个元素部分内容,从而根据公开部分的排序获得目标元素的方法。该实施架构考虑到排列靠前的位能够为数据划分范围,且数据的算术共享由于进行了平移而无法标识数据大小范围,而通过公开排列靠前的布尔共享结果恢复部分明文前缀,可以按照前缀大小排列顺序缩小目标元素的范围,从而获得指定序次的目标元素。如此,可以避免对整个数据集中的数据进行安全比较的较大数据开支,大大节约数据通信量,提高数据查询效率。
下面参考图1示出的一个具体例子描述本说明书的技术构思。
图1示出了基于多方安全计算的数据查询流程示意图。该示意图以两个参与方为例,描述不泄露数据隐私的数据查询方法。其中,各个参与方共同持有预定数据集X。预定数据集X可以是业务处理过程中所使用的各种业务数据构成的数据集,或者中间处理结果构成的数据集。例如,在当前处理针对学生成绩的业务时,这里的业务数据可以是学生成绩,预定数据集X可以为成绩数据集,在基于评估资产排名的业务处理中,业务数据可以是针对资产主体评估的资产份额,预定数据集X即为资产份额数据集。在更多业务场景下,数据集X可以是其他业务数据集合,在此不再一一列举。数据集X可以通过集合、数组、向量等各种方式表示,数据集中的各个元素在各个参与方构成模2N的算术共享(和共享)形式,从而,数据集X在各个参与方构成模2N的算术共享(和共享)形式。以数据集X为向量形式为例,在参与方为两个的情况下,向量X可以在第一参与方A和第二参与方B分别存在第一分片XA和第二分片XB,使得(XA+XB)%2N=X。这里%表示取模。
本说明书的技术构思针对数据集中基于排序的数据查询场景。例如,按照百分位进行数据查询,如查询从大到小排列的10百分位的数值。以学生成绩为例,查询从大到小10百分位的数值可以是查询排名第百分之10位置(如1000个学生中的第100名次)的学生成绩。
各个参与方均可以是具有一定计算能力的计算机、设备或服务器。如图1所示,该基于多方安全计算的数据查询流程由各个参与方联合执行,可以包括:步骤101,基于安全乱序协议对各个和共享分片进行安全乱序,从而在各个参与方分别得到各个乱序分片,各个乱序分片构成针对预定数据集的乱序数据集在多个参与方的模2N的和共享形式;步骤102,按照算术共享向布尔共享转换的A2B转换协议,将所述乱序数据集在所述多个参与方的和共享形式转换为布尔共享形式,从而在各个参与方分别得到乱序数据集的各个布尔分片,各个布尔分片构成乱序数据集的布尔共享形式;步骤103,各个参与方各自公开本地的布尔分片中各个元素的前k位数值,并按照布尔共享的分片合并规则得到乱序数据集中各个元素前k位数值对应的t个明文表示,单个明文表示对应乱序数据集中的至少一个元素;步骤104,基于t个明文表示的大小顺序,按照指定序次确定目标元素对应的第一明文表示;步骤105,基于第一明文表示对应的各个元素确定目标元素。
首先,经由步骤101,基于安全乱序协议对各个和共享分片进行安全乱序,从而在各个参与方分别得到各个乱序分片。各个乱序分片构成针对预定数据集的乱序数据集在多个参与方的、模2N的和共享形式。
这里,模2N的和共享分片可以通过N(如为64)位(bit)的二进制数表示。模2N通常可以理解为平移到[0,2N-1]区间。即,若单个分片对应的数值大于2N-1,则将其减去整数个2N,或者单个分片对应的数值小于0,则将其加上整数个2N,从而,使得单个分片为[0,2N-1]区间内的数值。
其中,各个数据方联合对预定数据集乱序是将数据集中的各个元素顺序打乱的过程。这是因为,预定数据集中的元素可能对应着具体业务对象,元素值属于隐私数据。例如学生成绩可能关联着学生标识,如按学号由小到大排列。为了保护数据隐私,可以将数据集中的数据执行乱序,从而切断与业务对象之间的关联关系。安全乱序协议可以通过秘密共享或同态加密等方式实现。由于预定数据集在各个参与方构成算术共享形式,意味着数据集中的各个元素均在各个参与方构成算术共享形式。和共享形式下,各个参与方持有的分片例如记为和共享分片。
在算术共享形式下,各个参与方可以通过各种常规技术对数据集X中的各个元素执行乱序,如前文描述的各参与方各自生成一个乱序规则π0、π1等,在数据集上执行叠加的乱序操作,得到最终乱序数据集。具体地,各个参与方可以对各个和共享分片分别执行同一个乱序操作,如针对各个和共享分片Vi,都执行π0[π1(Vi)]的乱序操作,从而得到一致的乱序结果,作为乱序分片。由于乱序数据集中的数据元素顺序被打乱,单个参与方不能恢复预定数据集中的顺序,也无法知道乱序后的数据元素对应的业务对象等,后续处理过程针对乱序数据集进行,从而有效保护数据隐私。
接着,在步骤102中,按照算术共享向布尔共享转换的A2B转换协议,将乱序数据集在多个参与方的和共享形式转换为布尔共享形式,从而在各个参与方分别得到乱序数据集的各个布尔分片。这里,各个布尔分片构成乱序数据集的布尔共享形式。
其中,将模2N的和共享形式转换成模2的布尔共享形式,可以采用前文的A2B方式进行,在此不再赘述。值得说明的是,由于乱序数据集在各个参与方构成和共享形式,也就是说乱序数据集中的每个元素在各个参与方构成和共享形式,因此在共享形式转换时,可以针对乱序数据集中的各个元素分别进行转换。乱序数据集的单个布尔分片同样包含了各个元素的布尔子分片。
将和共享形式转换为模2的布尔共享形式后,各个参与方针对单个数据元素分别持有各个预定位数(如64位)的布尔共享分片,单个元素在各个参与方对应的各个预定位数的布尔共享子分片的异或操作结果可以还原该单个元素。
布尔共享形式下,单个元素可以按位取异或值而恢复隐私数据。异或结果是该单个元素的二进制表示的数值。例如一个元素的两个布尔共享子分片的前四位分别为1101和0110,则该元素对应的二进制表示的前四位为1011。在二进制表示下,假设每4位表示数据的一个十六进制(也可以是十进制、8进制等)的一位,则1011对应十六进制的B(即11)。而对于一个确定的数据表示方式(如十六进制、十进制、8进制、二进制等),通常排列靠前的位上的数值越大,表示该数值越大,如二进制数a=1011与b=0111相比,a的最高位大于b的最高位,所以a是大于b的。在排列靠前的位上的数值相同的情况下,可以比较排列靠后的位上的数值,依次类推,直至比较出两个数值的大小。而当数据的位数为多个(如64位)时,公开前面部分位的数值,并不会泄露数据本身的值。
因此,在步骤103,各个参与方各自公开本地的布尔分片中各个元素的前k位数值,并按照布尔共享的分片合并规则得到乱序数据集中各个元素前k位数值对应的t个明文表示。其中,单个明文表示(如1101)对应乱序数据集中的至少一个元素。
这里,k可以是小于布尔共享分片的预定位数(如64)的整数,例如为1、2、4等。如,在每4个二进制bit表示一个十六进制或十进制数的一位的情况下,k可是4的倍数。再如,在每3个二进制bit表示一个八进制数的一位的情况下,k可是3的倍数。同样,各个数值还可以直接使用二进制数表示,则k可以是1的倍数。在可选的实施例中,如果预定数据集X中的元素在数量级上相差较大(如最大数量及与最小数量及之间相差大于预定个数的数量级,如4个数量级),则可以采用较大的k值(如16bit),而数据集X中的元素在数量级上相差较小(如最大数量及与最小数量及之间相差小于预定个数的数量级,如2个数量级)时,可以采用较小的k值(如4bit)。
作为一个具体例子,k可以是不大于单个布尔子分片的字节数N的预定比例的整数,例如预定比例为1/4,则k可以是对N/4下取整得到的整数。
实践中,还可以根据实际情况确定k的大小。例如,在N=64的情况下,由于学生成绩通常为十进制下的3位数,在4个bit表示一个数字的情况下,至多占有后12位,则k可以是大于64-12而小于64的数,如k=48,则各个参与方公开前56位的情况下,可以得到学生成绩的百位数。特别地,由于可以明确学生成绩的百位为排列靠后的第53至56位,而1至52位均为0,各个参与方还可以令k=4,且令第53位为排列靠前的第1位,从而仅公开第53至56位的二进制数。
在其他例子中,还可以有其他的数据公开方式公开各个布尔共享分片中排列靠前的k个位上的数值。其中,由于数据集X中的数据元素经过了步骤101中的安全乱序,公开乱序数据集中各个元素的前k位不会泄露具体业务对象的隐私。
另外,基于布尔共享的原理,布尔共享的分片合并规则即为按位执行异或操作。值得说明的是,各个参与方可以将本地的前k位公开给各个参与方,由各个参与方分别执行布尔共享的分片合并规则,得到相应的明文表示,也可以由各个参与方将本地的前k位公开给协商好的单个参与方,如第一方,由该单个参与方执行布尔共享的分片合并规则,得到相应的明文表示。单个明文表示可以是根据布尔共享的合并规则得到的二进制数(如1111),也可以将其转换为10进制(如15)或16进制(如F)、8进制(如17)等进行排序,本说明书在此不做限定。
值得说明的是,本说明书不要求这里的明文表示与元素本身的值一致。举例而言,在单个元素对应的各个布尔分片中,每4个bit的异或操作结果可以还原相应元素的4个bit,而前文中的k可以取3。假设某个元素的原始值为451,则其可以表示为12个bit数据010001010001,而对前3个bit恢复的明文表示010可能被转化成8进制数2,而不是4,两者不是一致的。
在各个元素的前k为数值的明文表示中,可能存在相同的明文表示。例如k=4的情况下,前k位数值可以对应有明文表示1111、1101、1110等等,如记为t个,则t不大于k。也就是说,单个明文表示可以对应乱序数据集中的一个或多个元素。假设各个明文表示对应的元素数量依次可以为:对应于明文表示1111的10个、对应于明文表示1110的40个、对应于明文表示1101的60个……等等。
如此,在步骤104中,基于t个明文表示的大小顺序,按照指定序次确定目标元素对应的第一明文表示。
可以理解,单个明文表示对应的元素数量是可以进行统计的,并且可以按照大小进行排序。例如在k=4,由大到小(如学生成绩由高到低)的情况下,前k位为1111的元素排在前k位为1110的元素之前,则由大到小排序为1111、1110、1101……0001等。
进一步地,根据各个明文表示对应的元素数量,可以估算明文表示的排列序次范围。例如k=4的情况下,前k位的各个数值对应的元素数量依次为:对应于1111的10个、对应于1110的40个、对应于1101的60个……对应于0001的90个,则在由大到小排序的情况下可以估算:明文表示1111对应的各个元素排列序次为1至10,明文表示1110对应的各个元素排列序次为11至50,明文表示1101对应的各个元素排列序次为51至110……。在以分位点计算的情况下,还可以按照乱序数据集的元素总数n,估算相应分位点范围。以百分位点为例,以上序次除以元素总数n并转化为百分数,可以得到相应的百分位范围,如n=1000,则将以上序次除以1000,得到百分位范围为:明文表示1111对应的各个元素排列序次为0至1百分位点(含),明文表示1110元素排列序次为1百分位点(不含)至5百分位点(含),明文表示1101对应的各个元素排列序次为5百分位点(不含)至11百分位点(含)……。
如此,可以根据指定序次确定目标元素所对应的明文表示,例如记为第一明文表示。由于前k位一致的元素之间暂时无法区分大小,因此,这里可以将指定序次落入的序次范围对应的明文表示确定为第一明文表示。例如,当前指定序次为百分位点6,则可以对应到5百分位点至11百分位点的序次范围,即,第一明文表示为1101,则第一明文表示为1101对应的各个元素可以构成候选元素。
值得说明的是,步骤103中合并出各个元素前k位数值对应的t个明文表示、步骤104中确定目标元素对应的第一明文表示的过程,可以由各个参与方同时在本地执行,也可以由单个参与方执行,并将执行结果同步给其他数据方,在此不做限定。
进一步地,通过步骤105,基于第一明文表示对应的各个元素确定目标元素。
可以理解,在较优情形下,第一明文表示对应的元素唯一,则可以直接根据该元素在各参与方的布尔共享分片或和共享分片,得到目标元素。该目标元素可以继续保持共享形式,或者被恢复为明文,根据业务需求及隐私保护要求确定,在此不做限定。
通常情形下,第一明文表示对应的元素有多个(即不唯一),则获取目标元素可以分为获取精确数值和估算数值两种情形。
在一个可能的设计中,为了对目标元素进行精确估计,可以对目标子集中的元素继续公开布尔共享分片中以上k位之后的r位。其中,r可以等于k,也可以不等于k,例如,r可以小于k,以降低数据公开速度。例如第一明文表示1101对应多个元素,则可以继续公开这多个元素的r=4位,得到它们的k+s位的布尔共享分片中的明文,亦即得到它们对应于前k+r位的明文表示,如有11011001、11010011等。假设这些元素的明文表示的数量为s,则s小于或等于第一明文表示1101对应的元素数量。如此,结合第一明文表示对应的各个元素在整个数据集中的排位(如第5至11百分位点),可以进一步缩小指定序次的目标元素所对应的元素范围。此时,这s个明文表示各自对应一个在整个预定数据集或乱序数据集中的大小排序范围,如11011001对应第5至7百分位点,11010011对应9至10百分位点等。根据指定序次(如6百分位点)在这s个明文表示中所落入的序次范围(如第5至7百分位点),所对应的明文表示(如记为第二明文表示),可以进一步将目标元素的候选元素限定为第二明文表示对应的各个元素。
如果第二明文表示指示的元素唯一,则可以直接根据该元素在各参与方的布尔共享分片或和共享分片,得到目标元素。否则,如果第二明文表示指示的元素不唯一,则可以对第二明文表示指示的元素进行迭代的限缩操作(即继续公开这些元素后续位的数值),直至对应于指定序次得到的当前明文表示仅对应一个元素。
在另一个可能的设计中,可以基于第一明文表示对应的各个元素,获取估算数值作为目标元素。
在一个实施例中,各个参与方可以基于共享形式下的安全计算,确定第一明文表示对应的元素的均值作为目标元素。例如,各个参与方可以计算本地的各个元素的和共享形式分片的均值得到目标元素的一个分片。从而,各个参与方得到的目标元素的各个分片构成目标元素的和共享形式。如前文的描述,该目标元素的和共享形式是否公开得到目标元素明文是可选的。
在另一个实施例中,在预定数据集中的元素值按照预定规则分布(如均匀分布)的情况下,根据前述t个明文表示对应的元素数量,可以基于指定序次在第一明文表示对应的序次范围中的位置估算目标元素。以预定数据集中的元素值均匀分布为例,其所依据的原理是,假设第一明文表示对应的元素中,最大元素、最小元素分别为600、540,对应的百分位点分别为5(如记为第一序次)、11(如记为第二序次),目标元素的指定序次为6百分位点,则可以通过以下原理估算目标元素:|(最大元素L0-目标元素估计值Lx)/(最大元素L0-最小元素L1)|=|(第一序次F0-指定序次Fx)/(第一序次F0-第二序次F1)|。如此,将L0=600,L1=540,F0=5,F1=11,Fx=6等代入,可以得到目标元素估计值Lx=L0-(L0-L1)×(F0-Fx)/(F0-F1)=600-(600-540)×(5-6)/(5-11)=590。
类似地,在预定数据集中的元素值具有其他预定分布的情况下,还可以按照其他预定分布的原理确定目标元素的估计值,在此不再一一赘述。
值得说明的是,根据估算精确度要求,各个参与方还可以按照前文描述的迭代公开各个元素后续位的数值,至满足预定条件(指定序次对应的当前明文表示对应的元素数量不超过预定阈值,如10)的情况下,再进行估算。
回顾以上过程,本说明书提供的技术构思,在基于多方安全计算的数据查询过程中,为了查询数据集中按照数据大小顺序排列在指定序次的目标元素,可以在和共享形式下对数据集中的数据进行乱序,得到乱序数据集,以切断排序过程中,排序序列与预定数据集的关联,保护数据隐私。然后将乱序数据集中的算术共享转换成布尔共享形式。在布尔共享形式下,通过公开排列靠前的部分位上的数值,可以将排列靠前的部分位数恢复为明文。在排列靠前的位数为明文的情况下,可以对乱序数据集中的数据元素进行区间排序,从而确定指定序次所在序列区间所对应的明文表示,而该明文表示仅对应乱序数据集中的部分数据元素。如此,便缩小了目标元素的范围。进而在所确定的元素范围内确定目标元素。这种查询方式可以避免对乱序数据库排序所消耗的巨大通信量,提高多方安全查询的效率。
图2示出在其中一个参与方(以下称为第一方)的角度执行的基于多方安全计算的数据查询流程。该流程的执行主体可以是具有一定数据处理能力的设备、计算机或服务器。该参与方和其他参与方一起从在各个参与方构成共享形式的数据集中查询指定序次的目标元素。
如图2所示,在多方安全计算中单个参与方执行的数据查询流程可以包括:
步骤201,与其他参与方基于安全乱序协议对第一和共享分片进行安全乱序,得到第一乱序分片,该第一乱序分片与其他参与方经由安全乱序协议进行安全乱序得到的其他乱序分片构成针对预定数据集的乱序数据集的和共享形式;
步骤202,与其他参与方按照算术共享向布尔共享转换的A2B转换协议,将乱序数据集在多个参与方的和共享形式转换为布尔共享形式,并得到乱序数据集的第一布尔分片,该第一布尔分片与其他参与方得到的其他分片构成乱序数据集的布尔共享形式;
步骤203,接收其他参与方公开的各个布尔分片中各个元素各自的前k位数值,并按照布尔共享的分片合并规则得到乱序数据集中各个元素前k位数值对应的t个明文表示,单个明文表示对应乱序数据集中的至少一个元素;
步骤204,基于t个明文表示的大小顺序,按照指定序次确定目标元素对应的第一明文表示;
步骤205,与其他各个参与方一起基于第一明文表示对应的各个元素确定目标元素。
其中,在针对图1的描述中提到,各个参与方可以按照同样的方式分别根据公开的元素布尔分片前k位确定相应的t个明文表示,并对各个明文表示排序,从而确定指定序次对应的第一明文表示,也可以由单个参与方根据其他参与方公开的元素布尔分片前k位确定第一明文表示以及对应元素以发送给其他参与方。这里,图2示出的流程可以是用于前者的任一参与方,以及后者的该单个参与方,而图3的实施例示出的流程可以是用于后者的其他参与方中的任一方。
如图3所示,该流程的执行主体例如记为第二方,第二方持有的和共享分片记为第二和共享分片,该流程包括:
步骤301,与其他参与方基于安全乱序协议对第二和共享分片进行安全乱序,得到第二乱序分片,该第二乱序分片与其他参与方经由上述安全乱序协议对其他和共享分片进行安全乱序得到的其他乱序分片构成针对预定数据集的乱序数据集的乱序数据集的和共享形式;
步骤302,与其他参与方按照算术共享向布尔共享转换的A2B转换协议,将乱序数据集在多个参与方的和共享形式转换为布尔共享形式,并得到乱序数据集的第二布尔分片,该第二布尔分片与其他参与方得到的其他布尔分片构成乱序数据集的布尔共享形式;
步骤303,至少向多个参与方中的第一方公开第二布尔分片中各个元素各自的前k位数值,以供第一方按照布尔共享的分片合并规则合并得到乱序数据集中各个元素前k位数值对应的t个明文表示,并确定目标元素所对应的第一明文表示;
步骤304,从第一方接收第一明文表示对应的各个元素分别在乱序数据集中的各个位置标识;
步骤305,与其他各个参与方一起基于各个位置标识确定目标元素。
值得说明的是,图2、图3示出的流程可以是图1中的单个参与方执行的流程,因此,图1示出的流程中关于单个参与方执行的操作可以相对应地适应于图2、图3示出的单个参与方执行的操作流程。
根据另一方面的实施例,还提供一种设于计算方的基于多方安全计算的数据查询装置。图4、图5分别示出了不同实施例的基于多方安全计算的数据查询装置400、500。
如图4所示,设于所述多个参与方中持有预定数据集的第一和共享分片的第一方的装置400包括:
乱序单元401,配置为与其他参与方基于安全乱序协议对第一和共享分片进行安全乱序,得到针对预定数据集的乱序数据集的第一乱序分片,该第一乱序分片与其他参与方经由安全乱序协议对其他和共享分片进行安全乱序得到的其他乱序分片构成乱序数据集的和共享形式;
转换单元402,配置为与其他参与方按照算术共享向布尔共享转换的A2B转换协议,将乱序数据集在多个参与方的和共享形式转换为布尔共享形式,并得到乱序数据集的第一布尔分片,该第一布尔分片与其他参与方得到的其他布尔分片构成所述乱序数据集的布尔共享形式;
接收单元403,配置为接收其他参与方各自针对本地布尔分片公开的各个元素的前k位数值,并按照布尔共享的分片合并规则得到乱序数据集中各个元素前k位数值对应的t个明文表示,单个明文表示对应乱序数据集中的至少一个元素;
筛选单元404,配置为基于t个明文表示的大小顺序,按照指定序次确定目标元素对应的第一明文表示;
确定单元405,配置为与其他各个参与方一起基于第一明文表示对应的各个元素确定目标元素。
如图5所示,设于所述多个参与方中持有预定数据集的第二和共享分片的第二方的装置500包括:
乱序单元501,配置为与其他参与方基于安全乱序协议对第二和共享分片进行安全乱序,得到第二乱序分片,该第二乱序分片与其他参与方经由安全乱序协议对其他和共享分片进行安全乱序得到的其他乱序分片构成针对预定数据集的乱序数据集的和共享形式;
转换单元502,配置为与其他参与方按照算术共享向布尔共享转换的A2B转换协议,将乱序数据集在多个参与方的和共享形式转换为布尔共享形式,并得到乱序数据集的第二布尔分片,该第二布尔分片与其他参与方得到的其他布尔分片构成所述乱序数据集的布尔共享形式;
发送单元503,配置为至少向多个参与方中的第一方公开第二布尔分片中各个元素各自的前k位数值,以供第一方按照布尔共享的分片合并规则合并得到乱序数据集中各个元素前k位数值对应的t个明文表示,并确定目标元素所对应的第一明文表示;
接收单元504,配置为从第一方接收第一明文表示对应的各个元素分别在乱序数据集中的各个位置标识;
确定单元505,配置为与其他各个参与方一起基于各个位置标识确定目标元素。
值得说明的是,图4、图5所示的装置400、500分别与图2、图3描述的方法相对应,图2、图3的方法实施例中的相应描述同样适用于装置400、500,在此不再赘述。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当计算机程序在计算机中执行时,令计算机执行结合图2、图3等所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,存储器中存储有可执行代码,处理器执行可执行代码时,实现结合图2、图3等所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上的具体实施方式,对本说明书的技术构思的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本说明书的技术构思的具体实施方式而已,并不用于限定本说明书的技术构思的保护范围,凡在本说明书实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的技术构思的保护范围之内。
Claims (15)
1.一种基于多方安全计算的数据查询方法,用于从在多个参与方构成和共享形式的预定数据集中按照指定序次查询目标元素的过程,所述指定序次用于指示目标元素在所述预定数据集的各个元素中的大小序次,所述方法由所述多个参与方中持有所述预定数据集的第一和共享分片的第一方执行,所述方法包括:
与其他参与方基于安全乱序协议对所述第一和共享分片进行安全乱序,得到第一乱序分片,该第一乱序分片与其他参与方经由所述安全乱序协议对其他和共享分片进行安全乱序得到的其他乱序分片,共同构成针对所述预定数据集的乱序数据集的和共享形式;
与其他参与方按照算术共享向布尔共享转换的A2B转换协议,将所述乱序数据集在所述多个参与方的和共享形式转换为布尔共享形式,并得到所述乱序数据集的第一布尔分片,该第一布尔分片与其他参与方得到的其他布尔分片构成所述乱序数据集的布尔共享形式;
接收其他参与方各自针对本地布尔分片公开的各个元素的前k位数值,并按照布尔共享的分片合并规则得到所述乱序数据集中各个元素前k位数值对应的t个明文表示,单个明文表示对应所述乱序数据集中的至少一个元素;
基于所述t个明文表示的大小顺序,按照指定序次确定所述目标元素对应的第一明文表示;
与其他各个参与方一起基于所述第一明文表示对应的各个元素确定所述目标元素。
2.如权利要求1所述的方法,其中,所述安全乱序协议通过秘密共享或同态加密方式实现。
3.如权利要求1所述的方法,其中,所述第一布尔分片包括所述乱序数据集中各个元素分别对应的各个布尔子分片,针对单个元素所述布尔共享的分片合并规则为,将所述单个元素在各个布尔共享分片中对应的布尔子分片进行异或操作。
4.如权利要求1所述的方法,其中,所述基于所述t个明文表示的大小顺序,按照指定序次确定所述目标元素对应的第一明文表示包括:
统计所述t个明文表示分别对应的各个元素数量;
在所述t个明文表示按照大小顺序排列的情况下,利用各个元素数量确定所述指定序次所对应的第一明文表示。
5.如权利要求1所述的方法,其中,在所述第一明文表示对应的元素不唯一的情况下,所述与其他各个参与方一起基于所述第一明文表示对应的各个元素确定所述目标元素包括:
接收其他参与方公开的各个布尔分片中各个元素各自在前k位之后的r位数值,并按照布尔共享的分片合并规则合并得到所述第一明文表示对应的各个元素的前k+r位数值对应的s个明文表示;
基于所述s个明文表示的大小顺序,按照指定序次确定所述目标元素对应的第二明文表示;
与其他各个参与方一起基于所述第二明文表示对应的元素确定所述目标元素。
6.如权利要求5所述的方法,其中,所述与其他各个参与方一起基于所述第一明文表示对应的各个元素确定所述目标元素包括:
在所述目标元素所对应的明文表示指示的元素不唯一的情况下,继续公开所述目标元素所对应的明文表示对应的各个元素的后续若干位数值,直至所述目标元素所对应的明文表示对应的元素唯一。
7.如权利要求1所述的方法,其中,在所述第一明文表示对应的元素不唯一的情况下,所述与其他各个参与方一起基于所述第一明文表示对应的各个元素确定所述目标元素包括:
基于所述t个明文表示的大小顺序,确定所述第一明文表示所对应的若干元素中,最大元素、最小元素分别在所述乱序数据集中对应的第一序次、第二序次,并与其他参与方通过安全比较确定所述最大元素的第一子分片、最小元素的第二子分片,所述的第一子分片、最小元素的第一子分片各自与其他参与方持有的其他子分片构成所述最大元素、所述最小元素的共享形式;
基于所述第一序次、第二序次、所述最大元素第一子分片、所述最小元素的第二子分片,与其他参与方通过安全计算确定所述指定序次对应的估计值,作为所述目标元素。
8.如权利要求7所述的方法,其中,所述指定序次对应的估计值基于以下两项的绝对值相等而确定:
所述估计值和所述最大元素/所述最小元素之差,与所述最大元素和所述最小元素之差的比值;
所述指定序次和所述第一序次/第二序次之差,与所述第一序次和所述第二序次之差的比值。
9.如权利要求1所述的方法,其中,所述与其他各个参与方一起基于所述第一明文表示对应的各个元素确定所述目标元素包括:
与其他参与方安全确定所述第一明文表示对应的元素的均值作为所述目标元素,从而在本地得到所述目标元素的第一分片。
10.如权利要求1所述的方法,其中,在与其他各个参与方一起基于所述第一明文表示对应的各个元素确定所述目标元素之前,所述方法还包括:
向其他各个参与方发送所述第一明文表示对应的各个元素分别在所述乱序数据集中的各个位置标识。
11.一种基于多方安全计算的数据查询方法,用于从在多个参与方构成和共享形式的预定数据集中按照指定序次查询目标元素的过程,所述指定序次用于指示目标元素在所述预定数据集的各个元素中的大小序次,所述方法由所述多个参与方中持有所述预定数据集的第二和共享分片的第二方执行,所述方法包括:
与其他参与方基于安全乱序协议对所述第二和共享分片进行安全乱序,得到第二乱序分片,该第二乱序分片与其他参与方经由所述安全乱序协议对其他和共享分片进行安全乱序得到的其他乱序分片,共同构成针对所述预定数据集的乱序数据集的和共享形式;
与其他参与方按照算术共享向布尔共享转换的A2B转换协议,将所述乱序数据集在所述多个参与方的和共享形式转换为布尔共享形式,并得到所述乱序数据集的第二布尔分片,该第二布尔分片与其他参与方得到的其他布尔分片构成所述乱序数据集的布尔共享形式;
向多个参与方中的第一方公开所述第二布尔分片中各个元素各自的前k位数值,以供第一方按照布尔共享的分片合并规则合并得到所述乱序数据集中各个元素前k位数值对应的t个明文表示,并确定目标元素所对应的第一明文表示;
从第一方接收所述第一明文表示对应的各个元素分别在所述乱序数据集中的各个位置标识;
与其他各个参与方一起基于各个位置标识确定所述目标元素。
12.一种基于多方安全计算的数据查询装置,用于从在多个参与方构成和共享形式的预定数据集中按照指定序次查询目标元素的过程,所述指定序次用于指示目标元素在所述预定数据集的各个元素中的大小序次,所述装置设于所述多个参与方中持有所述预定数据集的第一和共享分片的第一方,包括:
乱序单元,配置为与其他参与方基于安全乱序协议对所述第一和共享分片进行安全乱序,得到第一乱序分片,该第一乱序分片与其他参与方经由所述安全乱序协议对其他和共享分片进行安全乱序得到的其他乱序分片,共同构成针对所述预定数据集的乱序数据集的和共享形式;
转换单元,配置为与其他参与方按照算术共享向布尔共享转换的A2B转换协议,将所述乱序数据集在所述多个参与方的和共享形式转换为布尔共享形式,并得到所述乱序数据集的第一布尔分片,该第一布尔分片与其他参与方得到的其他布尔分片构成所述乱序数据集的布尔共享形式;
接收单元,配置为接收其他参与方各自针对本地布尔分片公开的各个元素的前k位数值,并按照布尔共享的分片合并规则得到所述乱序数据集中各个元素前k位数值对应的t个明文表示,单个明文表示对应所述乱序数据集中的至少一个元素;
筛选单元,配置为基于所述t个明文表示的大小顺序,按照指定序次确定所述目标元素对应的第一明文表示;
确定单元,配置为与其他各个参与方一起基于所述第一明文表示对应的各个元素确定所述目标元素。
13.一种基于多方安全计算的数据查询装置,用于从在多个参与方构成和共享形式的预定数据集中按照指定序次查询目标元素的过程,所述指定序次用于指示目标元素在所述预定数据集的各个元素中的大小序次,所述装置设于所述多个参与方中持有所述预定数据集的第二和共享分片的第二方,包括:
乱序单元,配置为与其他参与方基于安全乱序协议对所述第二和共享分片进行安全乱序,得到第二乱序分片,该第二乱序分片与其他参与方经由所述安全乱序协议对其他和共享分片进行安全乱序得到的其他乱序分片,共同构成针对所述预定数据集的乱序数据集的和共享形式;
转换单元,配置为与其他参与方按照算术共享向布尔共享转换的A2B转换协议,将所述乱序数据集在所述多个参与方的和共享形式转换为布尔共享形式,并得到所述乱序数据集的第二布尔分片,该第二布尔分片与其他参与方得到的其他布尔分片构成所述乱序数据集的布尔共享形式;
发送单元,配置为至少向多个参与方中的第一方公开所述第二布尔分片中各个元素各自的前k位数值,以供第一方按照布尔共享的分片合并规则合并得到所述乱序数据集中各个元素前k位数值对应的t个明文表示,并确定目标元素所对应的第一明文表示;
接收单元,配置为从第一方接收所述第一明文表示对应的各个元素分别在所述乱序数据集中的各个位置标识;
确定单元,配置为与其他各个参与方一起基于各个位置标识确定所述目标元素。
14.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-11中任一项的所述的方法。
15.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210636832.7A CN115080615A (zh) | 2022-06-07 | 2022-06-07 | 基于多方安全计算的数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210636832.7A CN115080615A (zh) | 2022-06-07 | 2022-06-07 | 基于多方安全计算的数据查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115080615A true CN115080615A (zh) | 2022-09-20 |
Family
ID=83250980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210636832.7A Pending CN115080615A (zh) | 2022-06-07 | 2022-06-07 | 基于多方安全计算的数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115080615A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115329387A (zh) * | 2022-10-17 | 2022-11-11 | 中国科学技术大学 | 基于差分隐私置乱模型的联邦协同蒸馏方法及系统 |
CN115396100A (zh) * | 2022-10-26 | 2022-11-25 | 华控清交信息科技(北京)有限公司 | 一种基于秘密分享的不经意随机打乱方法和系统 |
CN115941181A (zh) * | 2023-02-02 | 2023-04-07 | 华控清交信息科技(北京)有限公司 | 一种乱序秘密分享方法、系统和可读存储介质 |
CN115982785A (zh) * | 2023-03-17 | 2023-04-18 | 北京富算科技有限公司 | 多方安全的数据重排方法、装置、电子设备及存储介质 |
CN116055049A (zh) * | 2023-04-03 | 2023-05-02 | 富算科技(上海)有限公司 | 多方安全计算方法、装置、系统、电子设备和存储介质 |
CN116484432A (zh) * | 2023-06-21 | 2023-07-25 | 杭州金智塔科技有限公司 | 基于多方安全计算的纵向联合查询方法及装置 |
CN116579021A (zh) * | 2023-07-12 | 2023-08-11 | 蓝象智联(杭州)科技有限公司 | 一种基于秘密分享的多方联合数据检索方法 |
-
2022
- 2022-06-07 CN CN202210636832.7A patent/CN115080615A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115329387A (zh) * | 2022-10-17 | 2022-11-11 | 中国科学技术大学 | 基于差分隐私置乱模型的联邦协同蒸馏方法及系统 |
CN115396100A (zh) * | 2022-10-26 | 2022-11-25 | 华控清交信息科技(北京)有限公司 | 一种基于秘密分享的不经意随机打乱方法和系统 |
CN115396100B (zh) * | 2022-10-26 | 2023-01-06 | 华控清交信息科技(北京)有限公司 | 一种基于秘密分享的不经意随机打乱方法和系统 |
CN115941181A (zh) * | 2023-02-02 | 2023-04-07 | 华控清交信息科技(北京)有限公司 | 一种乱序秘密分享方法、系统和可读存储介质 |
CN115982785A (zh) * | 2023-03-17 | 2023-04-18 | 北京富算科技有限公司 | 多方安全的数据重排方法、装置、电子设备及存储介质 |
CN115982785B (zh) * | 2023-03-17 | 2023-06-30 | 北京富算科技有限公司 | 多方安全的数据重排方法、装置、电子设备及存储介质 |
CN116055049A (zh) * | 2023-04-03 | 2023-05-02 | 富算科技(上海)有限公司 | 多方安全计算方法、装置、系统、电子设备和存储介质 |
CN116484432A (zh) * | 2023-06-21 | 2023-07-25 | 杭州金智塔科技有限公司 | 基于多方安全计算的纵向联合查询方法及装置 |
CN116484432B (zh) * | 2023-06-21 | 2023-09-19 | 杭州金智塔科技有限公司 | 基于多方安全计算的纵向联合查询方法及装置 |
CN116579021A (zh) * | 2023-07-12 | 2023-08-11 | 蓝象智联(杭州)科技有限公司 | 一种基于秘密分享的多方联合数据检索方法 |
CN116579021B (zh) * | 2023-07-12 | 2024-04-05 | 蓝象智联(杭州)科技有限公司 | 一种基于秘密分享的多方联合数据检索方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115080615A (zh) | 基于多方安全计算的数据查询方法及装置 | |
CN111539026B (zh) | 针对隐私数据进行安全运算的方法和装置 | |
CN114090638B (zh) | 基于隐私保护的联合数据查询方法及装置 | |
CN107276744B (zh) | 一种文件存储加密方法及系统 | |
CN108463968B (zh) | 可变长度数据的快速格式保留加密 | |
US8443205B2 (en) | Secure function evaluation techniques for circuits containing XOR gates with applications to universal circuits | |
CN111143862B (zh) | 数据处理方法、查询方法、装置、电子设备和系统 | |
CN114175572A (zh) | 利用拟群运算对加密数据实行相等和小于运算的系统和方法 | |
CN112100144A (zh) | 区块链文件共享方法、装置、存储介质及电子设备 | |
CN117118617A (zh) | 一种基于模分量同态的分布式门限加解密方法 | |
CN115001674A (zh) | 分享ot协议的执行方法、安全多方计算方法及装置 | |
US20020136400A1 (en) | R-conversion encryption method and system | |
CN111046431B (zh) | 数据处理方法、查询方法、装置、电子设备和系统 | |
WO2023093004A1 (zh) | 密钥数据处理方法和电子设备 | |
CN114553424B (zh) | Zuc-256流密码轻量级硬件系统 | |
CN115766009A (zh) | 多方安全计算中针对2的幂次求逆的方法及装置 | |
Fadlan | Three Layer Encryption Protocol: an Approach of Super Encryption Algorithm | |
CN115001651A (zh) | 适用于半诚实模型下基于全同态加密的多方计算方法 | |
CN115001675A (zh) | 分享ot协议的执行方法、安全多方计算方法及装置 | |
Mukherjee et al. | On the communication complexity of secret key generation in the multiterminal source model | |
CN112836239A (zh) | 保护隐私的双方协同确定目标对象数据的方法及装置 | |
CN114024674B (zh) | 两方安全比较的方法及系统 | |
WO2019000231A1 (zh) | 建立抗攻击的公钥密码的方法 | |
CN112861166B (zh) | 一种高效率安全多方计算方法 | |
Pal et al. | A novel block cipher technique using binary field arithmetic based substitution (BCTBFABS) |
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 |