CN114282255A - 一种基于秘密分享的排序序列合并方法和系统 - Google Patents
一种基于秘密分享的排序序列合并方法和系统 Download PDFInfo
- Publication number
- CN114282255A CN114282255A CN202210205832.1A CN202210205832A CN114282255A CN 114282255 A CN114282255 A CN 114282255A CN 202210205832 A CN202210205832 A CN 202210205832A CN 114282255 A CN114282255 A CN 114282255A
- Authority
- CN
- China
- Prior art keywords
- sequence
- fragment
- sorting
- order
- participant
- 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.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本说明书实施例公开了一种基于秘密分享的排序序列合并方法和系统。其中,该方法包括:基于第一排序序列的第一分片,与第二参与方基于第一排序序列的第二分片,通过秘密分享排列协议,获取第一排序乱序序列的第一分片;第二参与方获得第一排序乱序序列的第二分片;将第一排序乱序序列的第一分片发送给第二参与方,并从第二参与方接收第一排序乱序序列的第二分片,进而获取第一排序乱序序列;基于第一排序乱序序列和第二排序序列的第一分片,获取合并排序乱序序列的第一分片;基于合并排序乱序序列的第一分片,与第二参与方基于合并排序乱序序列的第二分片,通过秘密分享排列协议,获取合并排序序列的第一分片。
Description
技术领域
本说明书涉及信息安全技术领域,特别涉及一种基于秘密分享的排序序列合并方法和系统。
背景技术
数据在当今世界,起着越来越重要的作用,在很多应用场景中数据已成为一种资源需要对其进行保护。在实际业务场景中,由于需要保护数据隐私安全和数据隔离等原因,经常会遇到一些棘手的问题。例如,参与业务的多个合作者,希望共同完成建模、统计分析等任务,但是由于数据隐私和数据隔离等原因,无法将数据进行直接融合建模或统计分析。密码学中用于解决多方安全计算的工具可以用于实现这类该任务。
因此,本说明书提供了一种基于秘密分享的排序序列合并方法和系统,可作为一些多方安全计算的底层实现。
发明内容
本说明书实施例的一个方面提供一种基于秘密分享的排序序列合并方法。该方法包括:第一参与方持有第一排序序列的第一分片以及第二排序序列的第一分片;第二参与方持有第一排序序列的第二分片以及第二排序序列的第二分片;排序序列用于标识对等长序列进行排序的操作,其元素指示所述等长序列中对位数据在结果序列中的位置;所述方法由第一参与方执行,包括:基于第一排序序列的第一分片,与第二参与方基于第一排序序列的第二分片,通过秘密分享排列协议,获取第一排序乱序序列的第一分片;第二参与方获得第一排序乱序序列的第二分片;将第一排序乱序序列的第一分片发送给第二参与方,并从第二参与方接收第一排序乱序序列的第二分片,进而获取第一排序乱序序列;基于所述第一排序乱序序列和第二排序序列的第一分片,获取合并排序乱序序列的第一分片;基于所述合并排序乱序序列的第一分片,与第二参与方基于合并排序乱序序列的第二分片,通过秘密分享排列协议,获取合并排序序列的第一分片;第二参与方获得合并排序序列的第二分片;其中,基于所述合并排序序列对等长序列进行排序的结果等于基于所述第一排序序列和所述第二排序序列对所述等长序列进行迭代排序的结果。
本说明书实施例的另一个方面提供一种基于秘密分享的排序系统。所述系统设置于第一参与方,其中,第一参与方持有第一排序序列的第一分片以及第二排序序列的第一分片;第一排序序列的第二分片以及第二排序序列的第二分片由第二参与方持有;排序序列用于标识对等长序列进行排序的操作,其元素指示所述等长序列中对位数据在结果序列中的位置;所述系统包括:第一排序乱序序列分片获取模块,用于基于第一排序序列的第一分片,与第二参与方基于第一排序序列的第二分片,通过秘密分享排列协议,获取第一排序乱序序列的第一分片;第二参与方获得第一排序乱序序列的第二分片;第一排序乱序序列获取模块,用于将第一排序乱序序列的第一分片发送给第二参与方,并从第二参与方接收第一排序乱序序列的第二分片,进而获取第一排序乱序序列;合并排序乱序序列分片获取模块,用于基于所述第一排序乱序序列和第二排序序列的第一分片,获取合并排序乱序序列的第一分片;合并排序序列分片获取模块,用于基于所述合并排序乱序序列的第一分片,与第二参与方基于合并排序乱序序列的第二分片,通过秘密分享排列协议,获取合并排序序列的第一分片;第二参与方获得合并排序序列的第二分片;其中,基于所述合并排序序列对等长序列进行排序的结果等于基于所述第一排序序列和所述第二排序序列对所述等长序列进行迭代排序的结果。
本说明书实施例的另一个方面提供一种基于秘密分享的排序装置包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现基于秘密分享的排序序列合并方法。
本说明书实施例的另一个方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行基于秘密分享的排序序列合并方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的迭代排序的示例性示意图;
图2是根据本说明书一些实施例所示的秘密合并算子的示例性示意图;
图3是根据本说明书的一些实施例所示的基于秘密分享的排序序列合并方法的示例性交互流程图;
图4是根据本说明书一些实施例所示的排序序列的示例性示意图;
图5是根据本说明书一些实施例所示的秘密分享排列协议的示例性示意图;
图6是根据本说明书一些实施例所示的排序序列合并的示例性示意图;
图7是根据本说明书的一些实施例所示的获取第一排序乱序序列的分片方法的示例性交互流程图;
图8是根据本说明书的一些实施例所示的获取合并排序序列的分片方法的示例性交互流程图;
图9是根据本说明书的一些实施例所示的获取第一排序乱序序列的分片方法的示例性交互流程图;
图10是根据本说明书的一些实施例所示的获取合并排序序列的分片方法的示例性交互流程图;
图11是根据本说明书一些实施例所示的基于秘密分享的排序系统的示例性模块图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
安全多方计算能让参与的各方在不暴露各自数据隐私的情况下,实现基于各方联合数据的任务目标等。安全多方计算(Secure Multiparty Computation, SMPC),英文简称MPC,又称为多方安全计算,其解决的是在无可信第三方的情况下,如何安全地计算约定函数的问题。MPC需要同时保证输入输出的私密性和结果的正确性,即交互计算过程中不能泄露任意一方的私密数据(输入),还要保证计算结果与直接将各方私密数据输入约定函数得到的结果一致。
安全多方计算可以结合秘密分享实现,计算结果(输出)可以以分片形式分布于各方。具体地,通过交互计算,每个参与方可获得约定函数的输出分片,各方获得的输出分片相当于是将各方的私密数据直接输入约定函数后拆分函数输出(秘密)得到的。本说明书中,这种结合秘密分享实现的安全多方计算也被称作秘密分享运算,具体而言可以是秘密分享排序、秘密分享序列合并等。在一些实施例中,秘密分享运算中,输入和/或中间计算结果也可以分片形式存在,以保护各方数据隐私。
秘密分享(secret sharing),也称作秘密共享,是一种密码学技术,其将秘密(secret)以一定方式拆分,拆分得到的若干份额(share)由不同的参与方持有,单个参与方无法恢复秘密,只有若干参与方合作,例如公开各自持有的份额,才能恢复秘密。秘密可以是一维数值、数组、向量、矩阵等形式。拆分秘密得到的份额也可称作秘密分享分片,或者简称分片。在一些实施例中,秘密分享分片可以是加性分片,即各分片的和值等于原秘密值。
在安全多方计算的过程中,经常会遇到对联合数据进行排序(比如,升序排序或降序排序)的情况,例如,机器学习所使用的训练样本的特征排序、联合统计分析的主键排序、多键排序等。
主键排序可以是指将某个序列按照另一个序列的排列方式进行相应的排列。例如,以机器学习的样本特征排序为例,在进行机器学习的模型训练时,可能会存在对训练样本集中的特征数据和标签数据进行排序的需求。比如,将特征数据按照其数值大小从小到大进行排序后,需要将特征数据对应的标签数据按照相应的排序方式进行排序,以使得在排序后标签数据能够与特征数据一一对应。
多键排序可以是指根据多个排序序列对待排序序列进行迭代排序。迭代排序可以是指后一次的排序的待排序序列为上一次排序的结果。例如,对学校学生(具体可以是学生的ID,如学号)进行排序。在一些场景中,对于多个班级的学生,需要基于学生的成绩对学生ID列进行降序排列,再基于学生所在的班级对按照成绩排列后学生ID列再次进行排列,进而得到各班级内按照成绩有序排列的学生ID列。
在一些实施例中,为了更加准确、规范的描述排序过程,可以使用排序序列标识对等长序列进行排序的操作,其元素指示所述等长序列中对位数据在结果序列中的位置。排序操作可以是通过排列函数将一个长度为n的待排序序列进行排列,得到结果序列。在一些实施例中,排列函数用于标识某排序操作,可以用一个和被排列序列等长的排列序列表示。在一些实施例中,排序函数可以等同于排序序列或排序向量,排列序列的第i个元素是被排列序列第i个元素在排列后序列(或称为结果序列)中的新下标(即元素位置)。如图4所示,将待排列序列——k1序列[a b a c b]进行字典升序排列得到k1'序列[ a a b b c],k1的第1个元素a的新下标为0,k1的第2个元素b的新下标为2,以此类推,最终得到描述k1——>k1'这个排列操作的排列序列p为[0, 2, 1, 4, 3],这个排列序列可以作为一个排列函数作用在序列k1上,记为:p(k1)=k1'。
需要说明的是,以上例子仅出于示例的目的,例如,在一些实施例中,也可以使用排列序列将k1序列进行字典降序排列。在本说明书的一些实施例中,在按照某排序规则(如降序或升序)排序时遵循稳定排序的原则,即待排列序列中的相同的两个或以上元素在结果序列中的先后关系与其在待排序序列中一致。例如,k1序列中的第一个a元素、第二个a元素的位置或下标分别为0、2,在结果序列k1'中,所述第一个a元素的下标为0,所述第二个a元素的下标为1,即两者的先后关系不变。
基于排序序列标识或描述的迭代排序的过程可以如根据所示,假设待排序序列为k,多个排序序列分别为所示的p1、p2、p3,迭代排序则可以是先用p1对k进行排序,k1=p1(k);然后再使用p2对第一次排序的结果序列k1进行排序,k2=p2(k1);之后再使用p3对第二次排序的结果序列k2进行排序,k3=p3(k2)。
在一些实施例中,可以对多键排序的多个排序序列进行合并,使得合并后的排序序列作用于待排序序列的结果等于多个排序序列依次对等长的待排序序列迭代排序后的结果。例如,仍参见图1,多个排序序列为p1、p2、p3,其对应的合并排序序列为p,将多个排序序列对待排序序列k进行迭代排序的结果k3与使用合并排序序列p对待排序序列k进行排序的结果相同,即,k3=p(k)。
在明文场景下,可以直接基于排序序列p1、p2、p3通过一定的算法求解得到合并排序序列p。具体的,排序序列的合并具有方向性,或者说是有顺序的。先对两个排序序列的合并进行解释。假定合并排序序列p1、p2得到排序序列p’,那么满足:p’(k)=p2(p1(k))。即,合并得到的排序序列(可称为合并排序序列)标识的是先使用排序序列p1对等长序列进行排序,再使用排序序列p2对前述排序的结果序列进行排序。为了方便描述,用排序合并函数来表示合并前后的排序向量间的关系,记为p’=compose(p1,p2),其中,排序合并函数的第一个参数为先使用的排序序列p1,排序合并函数的第二个参数为后使用的排序序列p2。可以理解,两个排序序列的合并可以推广到更多排序序列的合并。例如,依次使用排序序列p1、p2、p3对序列k进行排序,可记为p(k)=p3(p2(p1(k)))。相应地,合并后的排序序列p=compose(compose(p1,p2),p3),其中,compose(compose(p1,p2),p3)可以简化为compose(p1,p2,p3)。
在一些实施例中,两个排序序列p1、p2(顺序为先p1后p2,向量长度为N)的合并可以通过以下流程实现:将排序序列p1的第i位元素(记为p1_i)确定为目标位置j(即j=p1_i),并将排序序列p2目标位置j上的元素p2_j确定为合并排序序列p的第i位元素。通过遍历i,如取0、2、…、N-1,可以得到合并排序序列p各位置上的元素。图6示意了排序序列p1、p2、p3的合并逻辑。610示意了排序过程中序列中元素位置的变化,排序序列p1作用于k得到序列k1,排序序列p2作用于k1得到序列k2,排序序列p3作用于k2得到序列k3,排序序列p作用于序列k得到序列k3。620和630中的连线示意了合并排序序列各位置上的元素的获得途径。例如,如图6中加粗部分所示,对于i=0,p1_0=4,p2_4=2,则compose(p1,p2)的第0位元素为2;对于i=0,p’_0=2,p3_2=3,p的第0位元素为3。
在一些安全多方计算场景中,各个排序序列以秘密分享的形式存在时,如何安全实现对多个排序序列的合并成为目前亟需解决的问题。
秘密分享合并可以是指在多个排序序列以秘密分享的形式存在的情况下,实现对其的合并。在本说明书一些实施例中,提出一种对多个以秘密分享的形式存在的排序序列进行合并的方法和系统,通过将多个排序序列的分片输入秘密合并算子,秘密合并算子仍然以秘密分享分片的形式将合并后的排序序列输出。例如,如图2所示,将第一排序序列P1的两个分片<P1>0、<P1>1,第二排序序列P2的两个分片<P2>0、<P2>1输入至秘密合并算子,秘密合并算子输出合并后的排序序列P的两个分片<P>0、<P>1。
本说明书实施例提出的基于秘密分享的排序序列合并方法和系统,可以在不泄漏各方所拥有的数据隐私的情况下,实现对多个排序序列的合并。以下通过对附图的描述详细阐述本说明书披露的技术方案。
图3是根据本说明书的一些实施例所示的基于秘密分享的排序序列合并方法的示例性交互流程图。在一些实施例中,图示的交互流程可以由参与排序序列合并的两方的处理设备协同执行。例如,交互流程中由第一参与方执行的部分(如流程300)可以以程序或指令的形式存储在第一参与方的存储装置(如处理设备的自带存储单元或外接存储设备)中,交互流程中由第二参与方执行的部分可以以程序或指令的形式存储在第二参与方的存储装置中。所述程序或指令在被执行时,可以实现基于秘密分享的排序序列合并过程。
为了便于说明,在本说明书中,以第一参与方持有第一排序序列的第一分片以及第二排序序列的第一分片;第二参与方持有第一排序序列的第二分片以及第二排序序列的第二分片为例进行说明。
步骤302,基于第一排序序列的第一分片,与第二参与方基于第一排序序列的第二分片,通过秘密分享排列协议,获取第一排序乱序序列的第一分片。在一些实施例中,步骤302可以由第一排序乱序序列分片获取模块1010执行。
在一些实施例中,第一参与方与第二参与方可以相互协同实现基于秘密分享的排序协议,基于各自持有的第一排序序列的分片,对第一排序序列的元素进行随机排列,结果仍以分片形式表示,各方获得结果序列的两个分片。其中,第一参与方获得第一排序乱序序列的第一分片,第二参与方获得第一排序乱序序列的第二分片。
秘密分享排列协议可以是基于秘密分享进行的排列算法或算子,在一些实施例中可以描述为使用一方(例如,第一参与方或第二参与方)私有的排序序列,将一个长度为的秘密分享序列进行秘密排列,得到仍然以秘密分享的形式存在的排列结果。例如,以p表示一方私有的排序序列,k1表示待排列序列,其以秘密分享形式存储于各参与方(如k1的第一分片存储于第一参与方,k1的第二分片存储于第二参与方)处,k1'表示基于排列序列p对待排序序列k1进行排序后的排列结果p(k),也以秘密分享形式由各参与方获得(如k1'的第一分片由第一参与方获得,k1'的第二分片由第二参与方获得),秘密排序过程中,各方持有的数据不会被其他方知晓。秘密分享排列协议又可记为ObliviousPerm函数或算子:,<>表示密文形式,具体可以是分片形式。ObliviousPerm函数可以理解为一个功能函数,其一组输入数据包括排序序列和待排列序列的第一分片,来自第一参与方,其另一组输入数据包括待排列序列的第二分片,来自第二参与方;其输出数据为包括结果序列的第一分片和第二分片,结果序列的第一分片由第一参与方获得,结果序列的第二分片由第二参与方获得。在一些实施例中,秘密分享排列协议或算子可以如图5所示。
在一些实施例中,两方的处理设备可以分别执行ObliviousPerm函数中的流程,基于第一参与方的第一排序序列的第一分片以及第二参与方的第一排序序列的第二分片,获取得到第一排序乱序序列的第一分片和第一排序乱序序列的第二分片。目前已有ObliviousPerm函数的多种实现方式,本说明书不对其内部实现算法进行限制,只将其作为黑盒算子进行调用。应当理解,凡是目前已经出现的以及未来会出现的,能够实现ObliviousPerm函数功能的数据处理/运算单元、程序代码、机器学习模型等各种方式均可作为本说明书提到的基于秘密分享排列协议。
以第一参与方和第二参与方协同作为示例,其中,第一参与方持有目标排序向量、待排序数据列的第一分片,第二参与方持有所述待排序数据列的第二分片,ObliviousPerm函数的一种实现方式可以包括:
第一参与方从可信第三方获取第一排序向量、第一数据列的第一分片和基于所述第一排序向量对所述第一数据列进行排序的第一结果序列的第一分片。第二参与方从可信第三方处获取第一数据列的第二分片和第一结果序列的第二分片。
第一参与方基于目标排序向量和所述第一排序向量确定第二排序向量,并将其发送给第二参与方;在一些实施例中,基于所述第一排序向量对所述目标排序向量进行排序,得到的结果序列可以作为所述第二排序向量。
第一参与方将待排序数据列的第一分片与第一数据列的第一分片作差,获得第二数据列的第一分片,同时从第二方获取第二数据列的第二分片;第二数据列的第二分片为第二参与方将待排序数据列的第二分片与第一数据列的第二分片作差得到。
第一参与方基于第二数据列的第一分片以及第二数据列的第二分片,获得第二数据列,并基于目标排序向量对第二数据列进行排序,得到第二结果数据列;基于第二排序向量对所述第一结果数据列的第一分片进行排序,得到第三结果数据列;最后,对第二结果数据列和第三结果数据列求和,获得目标数据列的第一分片。
第二参与方基于第二排序向量对第一结果序列的第二分片进行排序,获得目标数据列的第二分片。所述目标数据列等于基于所述目标排序向量对所述待排序数据列进行排序的结果序列。
在一些实施例中,第一参与方和/或第二参与方可以生成随机序列作为ObliviousPerm函数中的排序向量,将第一排序序列的分片作为ObliviousPerm函数待排序数据列的分片,通过秘密分享排序协议,对第一排序序列进行乱序,得到第一排序乱序序列的第一分片和第二分片。也即是说,第一排序乱序序列等于基于随机排序序列对所述第一排序序列进行排序得到的结果序列。第二参与方可以在与第一参与方协同执行步骤302后,获得第一排序乱序序列的第二分片。关于基于第一排序序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取第一排序乱序序列的第一分片和第二分片的详细过程可以参见图7和图9及其相关描述,此处不再赘述。
步骤304,将第一排序乱序序列的第一分片发送给第二参与方,并从第二参与方接收第一排序乱序序列的第二分片,进而获取第一排序乱序序列。
在一些实施例中,第一参与方的处理设备可以通过各种方式将第一排序乱序序列的第一分片发送给第二参与方,以及从第二参与方接收第一排序乱序序列的第二分片。例如,可以通过网络、将分片存储至数据库或存储设备、调用相关数据接口等,本说明书对此不作限定。第一参与方的处理设备在获取到第一排序乱序序列的第二分片之后,可以基于第一排序乱序序列的第一分片和第二分片进行秘密分享还原处理,得到完整的第一排序乱序序列。例如,将第一排序乱序序列的第一分片和第二分片按位相加,得到明文的第一排序乱序序列。同时,第二参与方也可以同样的方式获得明文的第一排序乱序序列。
在通过随机生成的随机排序序列对第一排序序列进行乱序后,即使第一参与方和第二参与方获知了对方拥有的序列分片,得到完整的第一排序乱序序列,也不会得知第一排序序列的原始数据信息,即,第一排序序列的数据隐私仍然处于保护当中。
步骤306,基于所述第一排序乱序序列和第二排序序列的第一分片,获取合并排序乱序序列的第一分片。
在第一参与方和第二参与方各自获得完整的第一排序乱序序列后,第一参与方和第二参与方的处理设备可以各自在其本地通过排序合并函数将第一排序乱序序与第二排序序列的分片进行合并,获得合并排序乱序序列的分片。其中,第一参与方将第一排序乱序序列与第二排序序列的第一分片进行合并,获得合并排序乱序序列的第一分片;第二参与方将第一排序乱序序列与第二排序序列的第二分片进行合并,获得合并排序乱序序列的第二分片。
在一些实施例中,将第一排序乱序序列与第二排序序列的分片进行合并的过程可以为:将第一排序乱序序列中的第一个元素确定为目标位置,并将第二排序序列的第一分片中该目标位置的元素确定为合并排序乱序序列的第一分片的第一个元素;将第一排序乱序序列中的第二个元素确定为目标位置,并将第二排序序列的第一分片中该目标位置的元素确定为合并排序乱序序列的第一分片的第二个元素;以此类推,得到合并排序乱序序列的第一分片。第二参与方获取合并排序乱序序列的第二分片的过程相同,此处不再赘述。关于排序序列合并的更多内容还可以在图1的相关说明书中找到。
步骤308,基于所述合并排序乱序序列的第一分片,与第二参与方基于合并排序乱序序列的第二分片,通过秘密分享排列协议,获取合并排序序列的第一分片;第二参与方获得合并排序序列的第二分片。
在一些实施例中,第一参与方与第二参与方可以相互协同实现基于秘密分享的排序协议,基于各自持有的合并排序乱序序列的分片,对合并排序乱序序列的元素进行顺序恢复排列,结果仍以分片形式表示,各方获得结果序列的两个分片。第一参与方获得合并排序序列的第一分片,第二参与方获得合并排序序列的第二分片。
在一些实施例中,第一参与方和/或第二参与方可以生成与前文所述的随机序列对应的逆序列作为排序向量,将合并排序乱序序列作为待排序序列,通过秘密分享排序协议,对合并排序乱序序列进行顺序恢复排列,得到合并排序序列的第一分片和第二分片。合并排序序列是指基于秘密分享排列协议对合并排序乱序序列的元素进行逆随机排列后得到的排列结果。其中,基于合并排序序列对等长序列进行排序的结果等同于将第一排序序列和第二排序序列对等长序列进行迭代排序的结果。例如,使用合并排序序列p对等长序列k进行排序的结果p(k),等同于先使用第一排序序列p1对序列k进行排序得到p1(k),然后使用第二排序序列p2对p1(k)进行排序的结果p2(p1(k))。
第二参与方可以在与第一参与方协同执行步骤308后,获得合并排序序列的第二分片。关于基于合并排序乱序序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取合并排序序列的第一分片和第二分片的详细说明可以参见图7和图9及其相关描述,此处不再赘述。
在本说明书一些实施例中,通过秘密分享合并协议,可以实现在保护数据隐私的情况下,实现对多个排序序列的合并。
图7是根据本说明书的一些实施例所示的获取第一排序乱序序列的分片方法的示例性交互流程图。在一些实施例中,图示的交互流程可以由参与排序的两方的处理设备协同执行。例如,交互流程中由第一参与方执行的部分(如流程700)可以以程序或指令的形式存储在第一参与方的存储装置(如处理设备的自带存储单元或外接存储设备)中,交互流程中由第二参与方执行的部分可以以程序或指令的形式存储在第二参与方的存储装置中。
步骤702,生成第一随机排序序列。
在一些实施例中,第一参与方的处理设备可以通过随机序列生成算法生成第一随机排序序列。随机序列生成算法可以是常见的序列生成算法,本说明书对此不作限定。
在一些实施例中,第一随机排序序列的序列长度与第一排序序列的长度相同。
在一些实施例中,第一随机排序序列也可以表示对等长序列进行排序的操作,其元素指示该等长序列中对位数据在结果序列中的位置。
步骤704,基于所述第一随机排序序列以及所述第一排序序列的第一分片,与第二参与方基于所述第一排序序列的第二分片,通过秘密分享排列协议,获得第一乱序中间序列的第一分片;第二参与方获得第一乱序中间序列的第二分片。
在一些实施例中,第一参与方的处理设备可以将第一随机排序序列、第一排序序列的第一分片作为第一组输入参数、第二参与方的处理设备将第一排序序列的第二分片作为另一组输入参数输入秘密分享排列协议,两者协同执行秘密分享排列协议,得到第一乱序中间序列的第一分片和第二分片。第一分片由第一参与方获得,第二分片由第二参与方获得。
步骤706,基于所述第一乱序中间序列的第一分片,与第二参与方基于第一乱序中间序列的第二分片以及第二随机排序序列,通过秘密分享排列协议,获得所述第一排序乱序序列的第一分片;第二参与方获得第一排序乱序序列的第二分片,所述第二随机排序序列由第二参与方生成。
第一参与方的处理设备可以将第一乱序中间序列的第一分片作为第一组输入参数、第二参与方的处理设备将第一乱序中间序列的第二分片、第二随机排序序列作为另一组输入参数输入秘密分享排列协议,两者协同执行秘密分享排列协议,得到第一排序乱序序列的第一分片和第二分片。第一分片由第一参与方获得,第二分片由第二参与方获得。其中,第二随机排序序列由第二参与方生成,其生成过程与第一随机排序序列的生成过程类似。
秘密分享排列协议的相关说明可以参见图2中关于ObliviousPerm函数的相关说明,在此不再赘述。通过第一参与方生成的第一随机排序序列对第一排序序列进行第一次乱序,再通过第二参与方生成的第二随机排序序列对第一次乱序的结果再次乱序,双方都难以获知第一排序序列的原始信息,两次乱序可以更好的保护数据隐私。在一些替代性实施例中,也先通过第二参与方生成的第二随机排序序列对第一排序序列进行第一次乱序,再通过第一参与方生成的第一随机排序序列对一次乱序的结果再次乱序,依然可以达到相同的技术效果,例如,可以参见图9及其相关描述。
图8是根据本说明书的一些实施例所示的获取合并排序序列的分片方法的示例性交互流程图。在一些实施例中,图示的交互流程可以由参与排序的两方的处理设备协同执行。例如,交互流程中由第一参与方执行的部分(如流程800)可以以程序或指令的形式存储在第一参与方的存储装置(如处理设备的自带存储单元或外接存储设备)中,交互流程中由第二参与方执行的部分可以以程序或指令的形式存储在第二参与方的存储装置中。
步骤802,生成所述第一随机排序序列的逆序列;
使用随机排序序列的逆序列对相应的随机排序序列排列后的等长序列进行排序时,可以将该随机排列后的等长序列还原至随机排列前的状态。
在一些实施例中,第一参与方的处理设备可以通过逆序列生成算法生成第一随机排序序列的逆序列。
在一些实施例中,第一参与方的处理设备可以生成与第一随机排序序列等长的正序序列;基于第一随机排序序列对正序序列进行排序,得到的结果序列即为所述第一随机排序序列的逆序列。
正序序列可以是指元素按照从小到大的顺序进行排列的序列,例如可以是将第一随机排序序列的元素按照从小到大的顺序进行排列得到的序列。第一参与方的处理设备使用第一随机排序序列对正序序列进行排序后即可得到对应的逆序列。例如,假设第一随机排序序列为R0=[3 2 0 1],等长的正序序列为R=[0 1 2 3],使用第一随机排序序列对等长的正序序列进行排序后可得R1=[2 3 1 0]。对其进行验证,假设待排序的序列X=[B C AD],使用R0对X进行排序可得X1=[A D C B],使用R1对X1进行排序还原可得[B C A D]=X。
在一些实施例中,第一参与方的处理设备可以通过inv函数获取第一随机排序序列的逆序列。inv函数可以记为:p-1=inv(p)。inv函数也可以理解为一个功能函数,其输入数据为随机排序序列,输出数据为随机排序序列的逆序列。将第一随机排序序列输入inv函数,输出数据即为第一随机排序序列的逆序列。可以理解,第二参与方的处理设备也可以将第二随机排序序列作为inv函数的输入数据,输出数据为第二随机排序序列的逆序列。
在一些实施例中,第一随机排序序列的逆序列的序列长度与第一排序序列的长度相同。
在一些实施例中,第一随机排序序列的逆序列也可以表示对等长序列进行排序的操作,其元素指示该等长序列中对位数据在结果序列中的位置。
步骤804,基于所述合并排序乱序序列的第一分片,与第二参与方基于合并排序乱序序列的第二分片以及所述第二随机排序序列的逆序列,通过秘密分享排列协议,获得合并还原中间序列的第一分片;第二参与方获得合并还原中间序列的第二分片,所述第二随机排序序列的逆序列由第二参与方生成。
在一些实施例中,第一参与方的处理设备可以将合并排序乱序序列的第一分片作为第一组输入参数、第二参与方的处理设备将合并排序乱序序列的第二分片、第二随机排序序列的逆序列作为另一组输入参数输入秘密分享排列协议,两者协同执行秘密分享排序协议,得到合并还原中间序列的第一分片和第二分片。第一分片由第一参与方获得,第二分片由第二参与方获得。其中,第二随机排序序列的逆序列由第二参与方生成,其生成过程与第一随机排序序列的逆序列的生成过程类似。
可以理解,在对第一排序序列进行乱序排列时,首先使用的是第一随机排序序列进行排列,再使用的是第二随机排序序列进行排列,相应地,在对随机排列后得到的合并排序乱序序列进行还原时,则先使用第二随机排列序列的逆序列进行还原排列,再使用第一随机排序序列的逆序列进行还原排列。
步骤806,基于所述合并还原中间序列的第一分片以及第一随机排序序列的逆序列,与第二参与方基于合并还原中间序列的第二分片,通过秘密分享排列协议,获得所述合并排序序列的第一分片;第二参与方获得合并排序序列的第二分片。
第一参与方的处理设备可以将合并还原中间序列的第一分片、第一随机排序序列的逆作为第一组输入参数、第二参与方的处理设备将合并还原中间序列的第二分片作为另一组输入参数输入秘密分享排列协议,两者协同执行秘密分享排列协议,得到合并排序序列的第一分片和第二分片。第一分片由第一参与方获得,第二分片由第二参与方获得。
关于秘密分享排列的相关说明可以参见图2中关于ObliviousPerm函数的相关说明,在此不再赘述。
通过第二参与方生成的第二随机排序序列的逆序列对第二次乱序的得到合并排序乱序序列进行第一次还原排列,再通过第一参与方生成的第一随机排序序列的逆序列对合并还原中间序列进行第二次还原排列,使得随机排序序列的逆序列的排列时机与使用随机排序序列进行乱序的顺序对应,具体地,第二随机排序序列的逆序列等同于是对第二随机排序序列的乱序结果进行的排列,第一随机排序序列的逆序列等同于是对第一随机排序序列的乱序结果进行的排列,以此可以达到对随机排列序列乱序的结果序列进行顺序还原的目的。
在一些替代性实施例中,也先通过第一参与方生成的第一随机排序序列的逆序列对合并排序乱序序列进行第一次还原排列,再通过第二参与方生成的第二随机排序序列的逆序列对一次还原排列的结果再次进行还原排列,依然可以达到相同的技术效果,例如,可以参见图10及其相关描述。
图9是根据本说明书的一些实施例所示的获取第一排序乱序序列的分片方法的示例性交互流程图。在一些实施例中,图示的交互流程可以由参与排序的两方的处理设备协同执行。例如,交互流程中由第一参与方执行的部分(如流程900)可以以程序或指令的形式存储在第一参与方的存储装置(如处理设备的自带存储单元或外接存储设备)中,交互流程中由第二参与方执行的部分可以以程序或指令的形式存储在第二参与方的存储装置中。
步骤902,生成第一随机排序序列;
步骤904,基于所述第一排序序列的第一分片,与第二参与方基于所述第一排序序列的第二分片以及第二随机排序序列,通过秘密分享排列协议,获得第一乱序中间序列的第一分片;第二参与方获得第一乱序中间序列的第二分片;所述第二随机排序序列由第二参与方生成;
步骤906,基于所述第一随机排序序列以及所述第一乱序中间序列的第一分片,与第二参与方基于第一乱序中间序列的第二分片,通过秘密分享排列协议,获得所述第一排序乱序序列的第一分片;第二方获得第一排序乱序序列的第二分片。
步骤实施中所涉及到的计算方式与图7所描述的秘密分享排序协议(算子)相同,此处不再赘述。
图10是根据本说明书的一些实施例所示的获取合并排序序列的分片方法的示例性交互流程图。在一些实施例中,图示的交互流程可以由参与排序的两方的处理设备协同执行。例如,交互流程中由第一参与方执行的部分(如流程1000)可以以程序或指令的形式存储在第一参与方的存储装置(如处理设备的自带存储单元或外接存储设备)中,交互流程中由第二参与方执行的部分可以以程序或指令的形式存储在第二参与方的存储装置中。
步骤1002,生成所述第一随机排序序列的逆序列;
步骤1004,基于所述合并排序乱序序列的第一分片以及所述第一随机排序序列的逆序列,与第二参与方基于合并排序乱序序列的第二分片,通过秘密分享排列协议,获得合并还原中间序列的第一分片;第二参与方获得合并还原中间序列的第二分片;
步骤1006,基于所述合并还原中间序列的第一分片,与第二参与方基于合并还原中间序列的第二分片以及所述第二随机排序序列的逆序列,通过秘密分享排列协议,获得所述合并排序序列的第一分片;第二参与方获得合并排序序列的第二分片,所述第二随机排序序列的逆序列由第二参与方生成。
步骤实施中所涉及到的计算方式与图8所描述的秘密分享排序协议(算子)相同,此处不再赘述。
应当注意的是,上述有关各流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,对本说明书有关流程步骤的改变,如添加预处理步骤和存储步骤等。
图11是根据本说明书一些实施例所示的基于秘密分享的排序系统的示例性模块图。如图11所示,系统1100可以包括第一排序乱序序列分片获取模块1110、第一排序乱序序列获取模块1120、合并排序乱序序列分片获取模块1130和合并排序序列分片获取模块1140。
第一排序乱序序列分片获取模块1110可以用于基于第一排序序列的第一分片,与第二参与方基于第一排序序列的第二分片,通过秘密分享排列协议,获取第一排序乱序序列的第一分片;第二参与方获得第一排序乱序序列的第二分片。
第一排序乱序序列获取模块1120可以用于将第一排序乱序序列的第一分片发送给第二参与方,并从第二参与方接收第一排序乱序序列的第二分片,进而获取第一排序乱序序列。
合并排序乱序序列分片获取模块1130可以用于基于所述第一排序乱序序列和第二排序序列的第一分片,获取合并排序乱序序列的第一分片。
合并排序序列分片获取模块1140可以用于基于所述合并排序乱序序列的第一分片,与第二参与方基于合并排序乱序序列的第二分片,通过秘密分享排列协议,获取合并排序序列的第一分片;第二参与方获得合并排序序列的第二分片。
其中,基于所述合并排序序列对等长序列进行排序的结果等于基于所述第一排序序列和所述第二排序序列对所述等长序列进行迭代排序的结果。
关于以上所示的系统的各模块的具体描述,可以参考本说明书流程图部分,例如,图3至图10的相关说明。
应当理解,图11所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于基于秘密分享的排序系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,第一排序乱序序列分片获取模块1110、第一排序乱序序列获取模块1120、合并排序乱序序列分片获取模块1130和合并排序序列分片获取模块1140可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:基于秘密分享排列协议实现了对多个排序序列的秘密分享合并,保证了安全多方计算参与方的数据隐私安全。
需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
Claims (10)
1.一种基于秘密分享的排序序列合并方法,其中,第一参与方持有第一排序序列的第一分片以及第二排序序列的第一分片;第二参与方持有第一排序序列的第二分片以及第二排序序列的第二分片;排序序列用于标识对等长序列进行排序的操作,其元素指示所述等长序列中对位数据在结果序列中的位置;所述方法由第一参与方执行,包括:
基于第一排序序列的第一分片,与第二参与方基于第一排序序列的第二分片,通过秘密分享排列协议,获取第一排序乱序序列的第一分片;第二参与方获得第一排序乱序序列的第二分片;
将第一排序乱序序列的第一分片发送给第二参与方,并从第二参与方接收第一排序乱序序列的第二分片,进而获取第一排序乱序序列;
基于所述第一排序乱序序列和第二排序序列的第一分片,获取合并排序乱序序列的第一分片;
基于所述合并排序乱序序列的第一分片,与第二参与方基于合并排序乱序序列的第二分片,通过秘密分享排列协议,获取合并排序序列的第一分片;第二参与方获得合并排序序列的第二分片;
其中,基于所述合并排序序列对等长序列进行排序的结果等于基于所述第一排序序列和所述第二排序序列对所述等长序列进行迭代排序的结果。
2.根据权利要求1所述的方法,所述基于所述第一排序乱序序列和第二排序序列的第一分片,获取合并排序乱序序列的第一分片,包括:
将所述第一排序乱序序列中的第一个元素确定为目标位置,并将所述第二排序序列的第一分片中该目标位置的元素确定为所述合并排序乱序序列的第一分片的第一个元素;
将所述第一排序乱序序列中的第二个元素确定为目标位置,并将所述第二排序序列的第一分片中该目标位置的元素确定为所述合并排序乱序序列的第一分片的第二个元素;以此类推,得到所述合并排序乱序序列的第一分片。
3.根据权利要求1所述的方法,所述第一排序乱序序列等于基于随机排序序列对所述第一排序序列进行排序得到的结果序列。
4.根据权利要求3所述的方法,所述基于第一排序序列的第一分片,与第二参与方基于第一排序序列的第二分片,通过秘密分享排列协议,获取第一排序乱序序列的第一分片,包括:
生成第一随机排序序列;
基于所述第一随机排序序列以及所述第一排序序列的第一分片,与第二参与方基于所述第一排序序列的第二分片,通过秘密分享排列协议,获得第一乱序中间序列的第一分片;第二参与方获得第一乱序中间序列的第二分片;
基于所述第一乱序中间序列的第一分片,与第二参与方基于第一乱序中间序列的第二分片以及第二随机排序序列,通过秘密分享排列协议,获得所述第一排序乱序序列的第一分片;第二参与方获得第一排序乱序序列的第二分片,所述第二随机排序序列由第二参与方生成。
5.根据权利要求4所述的方法,所述基于所述合并排序乱序序列的第一分片,与第二参与方基于合并排序乱序序列的第二分片,通过秘密分享排列协议,获取合并排序序列的第一分片,包括:
生成所述第一随机排序序列的逆序列;
基于所述合并排序乱序序列的第一分片,与第二参与方基于合并排序乱序序列的第二分片以及所述第二随机排序序列的逆序列,通过秘密分享排列协议,获得合并还原中间序列的第一分片;第二参与方获得合并还原中间序列的第二分片,所述第二随机排序序列的逆序列由第二参与方生成;
基于所述合并还原中间序列的第一分片以及第一随机排序序列的逆序列,与第二参与方基于合并还原中间序列的第二分片,通过秘密分享排列协议,获得所述合并排序序列的第一分片;第二参与方获得合并排序序列的第二分片。
6.根据权利要求3所述的方法,所述基于第一排序序列的第一分片,与第二参与方基于第一排序序列的第二分片,通过秘密分享排列协议,获取第一排序乱序序列的第一分片,包括:
生成第一随机排序序列;
基于所述第一排序序列的第一分片,与第二参与方基于所述第一排序序列的第二分片以及第二随机排序序列,通过秘密分享排列协议,获得第一乱序中间序列的第一分片;第二参与方获得第一乱序中间序列的第二分片;所述第二随机排序序列由第二参与方生成;
基于所述第一随机排序序列以及所述第一乱序中间序列的第一分片,与第二参与方基于第一乱序中间序列的第二分片,通过秘密分享排列协议,获得所述第一排序乱序序列的第一分片;第二方获得第一排序乱序序列的第二分片。
7.根据权利要求6所述的方法,所述基于所述合并排序乱序序列的第一分片,与第二参与方基于合并排序乱序序列的第二分片,通过秘密分享排列协议,获取合并排序序列的第一分片,包括:
生成所述第一随机排序序列的逆序列;
基于所述合并排序乱序序列的第一分片以及所述第一随机排序序列的逆序列,与第二参与方基于合并排序乱序序列的第二分片,通过秘密分享排列协议,获得合并还原中间序列的第一分片;第二参与方获得合并还原中间序列的第二分片;
基于所述合并还原中间序列的第一分片,与第二参与方基于合并还原中间序列的第二分片以及所述第二随机排序序列的逆序列,通过秘密分享排列协议,获得所述合并排序序列的第一分片;第二参与方获得合并排序序列的第二分片,所述第二随机排序序列的逆序列由第二参与方生成。
8.根据权利要求5或7所述的方法,所述生成所述第一随机排序序列的逆序列,包括:
生成与所述第一随机排序序列等长的正序序列;
基于所述第一随机排序序列对所述正序序列进行排序,得到的结果序列即为所述第一随机排序序列的逆序列。
9.一种基于秘密分享的排序序列合并系统,所述系统设置于第一参与方,其中,第一参与方持有第一排序序列的第一分片以及第二排序序列的第一分片;第一排序序列的第二分片以及第二排序序列的第二分片由第二参与方持有;排序序列用于标识对等长序列进行排序的操作,其元素指示所述等长序列中对位数据在结果序列中的位置;所述系统包括:
第一排序乱序序列分片获取模块,用于基于第一排序序列的第一分片,与第二参与方基于第一排序序列的第二分片,通过秘密分享排列协议,获取第一排序乱序序列的第一分片;第二参与方获得第一排序乱序序列的第二分片;
第一排序乱序序列获取模块,用于将第一排序乱序序列的第一分片发送给第二参与方,并从第二参与方接收第一排序乱序序列的第二分片,进而获取第一排序乱序序列;
合并排序乱序序列分片获取模块,用于基于所述第一排序乱序序列和第二排序序列的第一分片,获取合并排序乱序序列的第一分片;
合并排序序列分片获取模块,用于基于所述合并排序乱序序列的第一分片,与第二参与方基于合并排序乱序序列的第二分片,通过秘密分享排列协议,获取合并排序序列的第一分片;第二参与方获得合并排序序列的第二分片;
其中,基于所述合并排序序列对等长序列进行排序的结果等于基于所述第一排序序列和所述第二排序序列对所述等长序列进行迭代排序的结果。
10.一种基于秘密分享的排序序列合并装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210205832.1A CN114282255B (zh) | 2022-03-04 | 2022-03-04 | 一种基于秘密分享的排序序列合并方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210205832.1A CN114282255B (zh) | 2022-03-04 | 2022-03-04 | 一种基于秘密分享的排序序列合并方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114282255A true CN114282255A (zh) | 2022-04-05 |
CN114282255B CN114282255B (zh) | 2022-05-31 |
Family
ID=80882121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210205832.1A Active CN114282255B (zh) | 2022-03-04 | 2022-03-04 | 一种基于秘密分享的排序序列合并方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114282255B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115396100A (zh) * | 2022-10-26 | 2022-11-25 | 华控清交信息科技(北京)有限公司 | 一种基于秘密分享的不经意随机打乱方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006163565A (ja) * | 2004-12-03 | 2006-06-22 | Mitsubishi Electric Corp | ソート処理装置及びソート処理方法及びプログラム |
US20130182836A1 (en) * | 2010-10-06 | 2013-07-18 | Nippon Telegraph And Telephone Corporation | Secret sharing system, secret sharing apparatus, secret sharing method, secret sorting method, secret sharing program |
US20160321958A1 (en) * | 2014-01-17 | 2016-11-03 | Nippon Telegraph And Telephone Corporation | Secret calculation method, secret calculation system, sorting device, and program |
CN109308423A (zh) * | 2018-09-20 | 2019-02-05 | 东北大学 | 隐私保护记录链接中的二次分块方法 |
CN111162906A (zh) * | 2019-12-27 | 2020-05-15 | 上海市数字证书认证中心有限公司 | 一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质 |
CN111913955A (zh) * | 2020-06-22 | 2020-11-10 | 中科驭数(北京)科技有限公司 | 数据的排序处理装置、方法和存储介质 |
CN112395642A (zh) * | 2020-11-20 | 2021-02-23 | 湖南智慧政务区块链科技有限公司 | 一种安全多方隐私计算方法、装置、设备及存储介质 |
CN112765616A (zh) * | 2020-12-18 | 2021-05-07 | 百度在线网络技术(北京)有限公司 | 多方安全计算方法、装置、电子设备和存储介质 |
-
2022
- 2022-03-04 CN CN202210205832.1A patent/CN114282255B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006163565A (ja) * | 2004-12-03 | 2006-06-22 | Mitsubishi Electric Corp | ソート処理装置及びソート処理方法及びプログラム |
US20130182836A1 (en) * | 2010-10-06 | 2013-07-18 | Nippon Telegraph And Telephone Corporation | Secret sharing system, secret sharing apparatus, secret sharing method, secret sorting method, secret sharing program |
US20160321958A1 (en) * | 2014-01-17 | 2016-11-03 | Nippon Telegraph And Telephone Corporation | Secret calculation method, secret calculation system, sorting device, and program |
CN109308423A (zh) * | 2018-09-20 | 2019-02-05 | 东北大学 | 隐私保护记录链接中的二次分块方法 |
CN111162906A (zh) * | 2019-12-27 | 2020-05-15 | 上海市数字证书认证中心有限公司 | 一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质 |
CN111913955A (zh) * | 2020-06-22 | 2020-11-10 | 中科驭数(北京)科技有限公司 | 数据的排序处理装置、方法和存储介质 |
CN112395642A (zh) * | 2020-11-20 | 2021-02-23 | 湖南智慧政务区块链科技有限公司 | 一种安全多方隐私计算方法、装置、设备及存储介质 |
CN112765616A (zh) * | 2020-12-18 | 2021-05-07 | 百度在线网络技术(北京)有限公司 | 多方安全计算方法、装置、电子设备和存储介质 |
Non-Patent Citations (4)
Title |
---|
ALEX WATKINS 等: "A Fast and Simple Approach to Merge and Merge Sort Using Wide Vector Instructions", 《2018 IEEE/ACM 8TH WORKSHOP ON IRREGULAR APPLICATIONS: ARCHITECTURES AND ALGORITHMS (IA3)》 * |
ALEX WATKINS 等: "A Fast and Simple Approach to Merge and Merge Sort Using Wide Vector Instructions", 《2018 IEEE/ACM 8TH WORKSHOP ON IRREGULAR APPLICATIONS: ARCHITECTURES AND ALGORITHMS (IA3)》, 11 February 2019 (2019-02-11), pages 37 - 44 * |
邱梅: "安全多方排序协议的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
邱梅: "安全多方排序协议的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 3, 15 March 2010 (2010-03-15), pages 139 - 37 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115396100A (zh) * | 2022-10-26 | 2022-11-25 | 华控清交信息科技(北京)有限公司 | 一种基于秘密分享的不经意随机打乱方法和系统 |
CN115396100B (zh) * | 2022-10-26 | 2023-01-06 | 华控清交信息科技(北京)有限公司 | 一种基于秘密分享的不经意随机打乱方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114282255B (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114282256B (zh) | 一种基于秘密分享的排序打乱方法和恢复方法 | |
CN111382174B (zh) | 多方数据联合查询方法、装置、服务器和存储介质 | |
CN110457912B (zh) | 数据处理方法、装置和电子设备 | |
US10083310B1 (en) | System and method for mobile proactive secure multi-party computation (MPMPC) using commitments | |
CN110969264B (zh) | 模型训练方法、分布式预测方法及其系统 | |
CN111125727B (zh) | 混淆电路生成方法、预测结果确定方法、装置和电子设备 | |
CN114282076B (zh) | 一种基于秘密分享的排序方法和系统 | |
CN112632620B (zh) | 一种增强隐私保护的联邦学习方法和系统 | |
CN114327371B (zh) | 一种基于秘密分享的多键排序方法和系统 | |
CN114172648B (zh) | 一种基于秘密分享的排序方法和系统 | |
CN112052954B (zh) | 梯度提升树建模方法、装置以及终端 | |
CN114611128B (zh) | 一种纵向联邦学习方法、装置、系统、设备及存储介质 | |
CN111198945A (zh) | 数据处理方法、装置、介质及电子设备 | |
CN114153808B (zh) | 一种基于秘密分享的排序方法和系统 | |
Schlögl et al. | eNNclave: Offline inference with model confidentiality | |
CN114282255B (zh) | 一种基于秘密分享的排序序列合并方法和系统 | |
US10891365B2 (en) | CAPTCHA generation based on environment-specific vocabulary | |
CN114338017B (zh) | 一种基于秘密分享的排序方法和系统 | |
WO2018061391A1 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法および秘密計算プログラム | |
CN114172631B (zh) | 一种基于秘密分享的排序方法和系统 | |
US8607355B2 (en) | Social network privacy using morphed communities | |
US20220237322A1 (en) | Systems and methods for privacy-preserving inventory matching with security against malicious adversaries | |
JP6467063B2 (ja) | 秘密認証符号付加装置、秘密認証符号付加方法、およびプログラム | |
Gaid et al. | Homomorphic encryption | |
US20240265133A1 (en) | Systems and methods for privacy-preserving inventory matching with security against malicious adversaries |
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 |