CN114172648B - 一种基于秘密分享的排序方法和系统 - Google Patents
一种基于秘密分享的排序方法和系统 Download PDFInfo
- Publication number
- CN114172648B CN114172648B CN202210126038.8A CN202210126038A CN114172648B CN 114172648 B CN114172648 B CN 114172648B CN 202210126038 A CN202210126038 A CN 202210126038A CN 114172648 B CN114172648 B CN 114172648B
- Authority
- CN
- China
- Prior art keywords
- sequence
- fragment
- primary key
- secret sharing
- order
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例公开了一种基于秘密分享的排序方法和系统。该方法应用于第一参与方,第一参与方持有主键序列的第一分片和待排序序列的第一分片,该方法包括:基于主键序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取主键乱序序列的第一分片。基于待排序序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取待排序乱序序列的第一分片。基于主键乱序序列的第一分片与第二参与方协同,通过秘密分享比较协议,获取主键乱序序列的排序序列;排序序列能够将主键乱序序列进行升序或降序排序。基于排序序列对待排序乱序序列的第一分片进行排序处理,获得目标序列的第一分片,目标序列等于待排序序列按主键序列升序或降序排列的结果。
Description
技术领域
本说明书涉及信息安全技术领域,特别涉及一种基于秘密分享的排序方法和系统。
背景技术
数据在当今世界,起着越来越重要的作用,在很多应用场景下数据已成为一种资源需要对其进行保护。在实际业务场景中,由于需要保护数据隐私安全和数据隔离等原因,经常会遇到一些棘手的问题。例如,参与业务的多个合作者,希望共同完成建模、统计分析等任务,但是由于数据隐私和数据隔离等原因,无法将数据进行直接融合建模或统计分析。密码学中用于解决多方安全计算的工具可以用于实现这类该任务。
因此,本说明书提供了一种基于秘密分享的排序方法和系统,可作为一些多方安全计算的底层实现。
发明内容
本说明书实施例的一个方面提供一种基于秘密分享的排序方法。该方法应用于第一参与方,所述第一参与方持有主键序列的第一分片和待排序序列的第一分片,所述主键序列的第二分片以及所述待排序序列的第二分片由第二方持有,所述方法包括:基于主键序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取主键乱序序列的第一分片;第二参与方获得主键乱序序列的第二分片。基于待排序序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取待排序乱序序列的第一分片;第二参与方获得待排序乱序序列的第二分片。基于所述主键乱序序列的第一分片与第二参与方协同,通过秘密分享比较协议,获取主键乱序序列的排序序列;所述排序序列能够将主键乱序序列进行升序或降序排序。基于所述排序序列对所述待排序乱序序列的第一分片进行排序处理,获得目标序列的第一分片,所述目标序列等于所述待排序序列按所述主键序列升序或降序排列的结果。
本说明书实施例的另一个方面提供一种基于秘密分享的排序系统。该系统设置于第一参与方,所述第一参与方持有主键序列的第一分片和待排序序列的第一分片,所述主键序列的第二分片以及所述待排序序列的第二分片由第二方持有,所述系统包括:主键乱序序列获取模块,可以用于基于主键序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取主键乱序序列的第一分片;第二参与方获得主键乱序序列的第二分片。待排序乱序序列获取模块,可以用于基于待排序序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取待排序乱序序列的第一分片;第二参与方获得待排序乱序序列的第二分片。排序序列获取模块,可以用于基于所述主键乱序序列的第一分片与第二参与方协同,通过秘密分享比较协议,获取主键乱序序列的排序序列;所述排序序列能够将主键乱序序列进行升序或降序排序。目标序列获取模块,可以用于基于所述排序序列对所述待排序乱序序列的第一分片进行排序处理,获得目标序列的第一分片,所述目标序列等于所述待排序序列按所述主键序列升序或降序排列的结果。
本说明书实施例的另一个方面提供一种基于秘密分享的排序装置包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现基于秘密分享的排序方法。
本说明书实施例的另一个方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行基于秘密分享的排序方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书的一些实施例所示的基于秘密分享的排序方法的示例性交互流程图;
图2是根据本说明书的一些实施例所示的基于秘密分享的排序方法的示例性交互流程图;
图3是根据本说明书的一些实施例所示的基于秘密分享的排序方法的示例性交互流程图;
图4是根据本说明书一些实施例所示的排序序列的示例性示意图;
图5是根据本说明书一些实施例所示的偏序信息矩阵的示例性示意图;
图6是根据本说明书一些实施例所示的获取目标序列的示例性流程图;
图7是根据本说明书一些实施例所示的基于秘密分享的排序系统的示例性模块图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
多方安全计算能让参与的各方在不暴露各自数据隐私的情况下,实现基于各方联合数据的任务目标等。
在多方安全计算的过程中,经常会遇到对联合数据进行排序(比如,升序排序或降序排序)的情况,例如,机器学习所使用的训练样本的特征排序、联合统计分析的主键排序等。以机器学习的样本特征排序为例,在进行机器学习的模型训练时,可能会存在对训练样本集中的特征数据和标签数据进行排序的需求。比如,将特征数据按照其数值大小从小到大进行排序后,需要将特征数据对应的标签数据按照相应的排序方式进行排序,以使得在排序后标签数据能够与特征数据一一对应。上述排序过程也可以称为基于排序键或主键的排序。在基于主键的排序场景中,通常包括主键序列和待排序序列。在主键序列中的元素按照一定算法进行排序时,待排序序列的元素的排序需要跟随着改变。为方便阐述,本说明书以主键序列和待排序序列均为一个的情形为例。
在一些实施例中,主键序列和待排序序列可以是两个具有对应关系的序列。对应关系是指主键序列的元素与待排序序列的元素在位置上一一对应。例如,主键序列和待排序序列中的相同位置上的元素分别为同一样本对象某特征的特征值和标签值。用X表示主键序列,X=[B C A D ],用Y表示待排序序列,Y=[A C D B]。一一对应则是指X中的第一个元素B是与Y中的第一个元素A对应的,B——A;X中的第二个元素C是与Y中的第二个元素C对应的,C——C;X中的第三个元素A是与Y中的第三个元素D对应的,A——D;X中的第四个元素D是与Y中的第四个元素B对应的,D——B。由于主键序列与待排序序列的元素之间具有对应关系,在一些实施例中,在将X的元素按照元素大小(可以是元素数值大小,也可以是元素的字典大小,也可以人为指定元素间的大小关系,比如,学号、卡号等)升序进行排序后,需要将Y的元素按照X的元素升序排序的方式进行相同的排序。例如,将X的元素按照升序进行排序后可得[A B C D],将Y的元素按照X的元素升序排序的结果进行排序可得Z=[D A C B],由排序结果可以看出,X中的元素A在排序后的序列中元素位置与Y中的元素D在排序后的序列中的元素位置仍然是对应的,即,X中的元素与Y中的元素的一一对应关系仍然存在。
除了机器学习场景外,基于主键的排序还可以用于其他多种场景,如统计分析场景。示例性的,主键序列可以是学校学生的考试成绩,待排序序列可以是各学生的学号。需要说明的是,以上例子仅出于示例的目的,本说明书所披露的技术方案可以适用于元素具有对应关系的任意两个或以上序列,本说明书对此不作限定。
在主键序列和待排序序列以明文的形式存在时,其可以很容易的实现排序。然而,当数据基于秘密共享以数据分片的形式存在于两方或多方时,由于各方无法得知数据分片的所对应的原始数据,也就是不能得知原始数据之间的大小关系,对其进行排序也就变得极为困难。因此,本说明书中的一些实施例提供了一种基于秘密分享的排序方法和系统,可以在有效地保护数据隐私安全的情况下实现对隐私数据的排序。以下通过对附图的解释详细阐述本说明书实施例所披露的技术方案。
图1是根据本说明书的一些实施例所示的基于秘密分享的排序方法的示例性交互流程图。在一些实施例中,图示的交互流程可以由参与排序的两方的处理设备协同执行。例如,交互流程中由第一参与方执行的部分(如流程100)可以以程序或指令的形式存储在第一参与方的存储装置(如处理设备的自带存储单元或外接存储设备)中,交互流程中由第二参与方执行的部分可以以程序或指令的形式存储在第二参与方的存储装置中。所述程序或指令在被执行时,可以实现基于秘密分享的排序过程。
在一些实施例中,流程100可以由参与多方安全计算的任一方执行。在本说明书实施例中,主要以第一参与方执行为例进行了描述。第一参与方可以持有主键序列的第一分片和待排序序列的第一分片,第二参与方持有主键序列的第二分片和待排序序列的第二分片。其中,分片可以是加性分片,分片之和为原始数据。“第一”、“第二”仅用于区分存储于不同参与方的分片。当本说明书提及序列的分片时,主要是指将序列的各元素分别进行拆分,序列的第一分片包含序列各元素的其中一个分片,序列的第二分片包括序列各元素的另一个分片。
步骤102,基于主键序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取主键乱序序列的第一分片。在一些实施例中,步骤102可以由主键乱序序列获取模块710执行。
在一些实施例中,第一参与方与第二参与方可以相互协同实现基于秘密分享的排序协议,基于各自持有的主键序列的分片,对主键序列的元素进行随机排列,结果仍以分片形式表示,各方获得结果序列的两个分片。
在一些实施例中,可以使用排列函数,将一个长度为的待排序序列进行排列,得到结果序列。在一些实施例中,排列函数用于标识某排序操作,可以用一个和被排列序列等长的排列序列表示,在一些实施例中,排序函数可以等同于排序序列或排序向量,排列序列的第i个元素是被排列序列第i个元素在排列后序列(或称为结果序列)中的新下标(即元素位置)。如图4所示,图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,即两者的先后关系不变。
秘密分享排列协议可以是基于秘密分享进行的排列算法或算子,在一些实施例中可以描述为使用一方(例如,第一参与方或第二参与方)私有的排列函数(或称为排列序列、排序向量),将一个长度为的秘密分享序列进行秘密排列,得到仍然以秘密分享的形式存在的排列结果。例如,以p表示一方私有的排列函数,k1表示待排列序列,其以秘密分享形式存储于各参与方(如k1的第一分片存储于第一参与方,k1的第二分片存储于第二参与方)处,k1'表示排列结果,也以秘密分享形式由各参与方获得(如k1'的第一分片由第一参与方获得,k1'的第二分片由第二参与方获得),秘密排序过程中,各方持有的数据不会被其他方知晓。秘密分享排列协议又可记为ObliviousPerm函数或算子:,<>表示密文形式,具体可以是分片形式。ObliviousPerm函数可以理解为一个功能函数,其一组输入数据包括排列函数和待排列序列的第一分片,来自第一参与方,其另一组输入数据包括待排列序列的第二分片,来自第二参与方;其输出数据为包括结果序列的第一分片和第二分片,结果序列的第一分片由第一参与方获得,结果序列的第二分片由第二参与方获得。
在一些实施例中,两方的处理设备可以分别执行ObliviousPerm函数中的流程,基于第一参与方的主键序列的第一分片以及第二参与方的主键序列的第二分片,获取得到主键乱序序列的第一分片和主键乱序序列的第二分片。目前已有ObliviousPerm函数的多种实现方式,本说明书不对其内部实现算法进行限制,只将其作为黑盒算子进行调用。应当理解,凡是目前已经出现的以及未来会出现的,能够实现ObliviousPerm函数功能的数据处理/运算单元、程序代码、机器学习模型等各种方式均可作为本说明书提到的基于秘密分享排列协议。
以第一参与方和第二参与方协同作为示例,其中,第一参与方持有目标排序向量、待排序数据列的第一分片,第二参与方持有所述待排序数据列的第二分片,ObliviousPerm函数的一种实现方式可以包括:
第一参与方从可信第三方获取第一排序向量、第一数据列的第一分片和基于所述第一排序向量对所述第一数据列进行排序的第一结果序列的第一分片。第二参与方从可信第三方处获取第一数据列的第二分片和第一结果序列的第二分片。
第一参与方基于目标排序向量和所述第一排序向量确定第二排序向量,并将其发送给第二参与方;在一些实施例中,基于所述第一排序向量对所述目标排序向量进行排序,得到的结果序列可以作为所述第二排序向量。
第一参与方将待排序数据列的第一分片与第一数据列的第一分片作差,获得第二数据列的第一分片,同时从第二方获取第二数据列的第二分片;第二数据列的第二分片为第二参与方将待排序数据列的第二分片与第一数据列的第二分片作差得到。
第一参与方基于第二数据列的第一分片以及第二数据列的第二分片,获得第二数据列,并基于目标排序向量对第二数据列进行排序,得到第二结果数据列;基于第二排序向量对所述第一结果数据列的第一分片进行排序,得到第三结果数据列;最后,对第二结果数据列和第三结果数据列求和,获得目标数据列的第一分片。
第二参与方基于第二排序向量对第一结果序列的第二分片进行排序,获得目标数据列的第二分片。所述目标数据列等于基于所述目标排序向量对所述待排序数据列进行排序的结果序列。
在一些实施例中,第一参与方和第二参与方可以分别生成随机序列作为排序向量,将主键序列作为待排序序列,通过秘密分享排序协议,对主键序列进行乱序,得到主键乱序序列的第一分片和第二分片。主键乱序序列是指基于秘密分享排列协议对主键序列的元素进行随机排列后得到的排列结果。第二参与方可以在与第一参与方协同执行步骤102后,获得主键乱序序列的第二分片。关于基于主键序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取主键乱序序列的第一分片的详细说明可以参见图2和图3及其相关描述,此处不再赘述。
步骤104,基于待排序序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取待排序乱序序列的第一分片。在一些实施例中,步骤104可以由待排序乱序序列获取模块720执行。
待排序序列的第一分片是指可以是指将待排序序列以秘密分享的形式进行划分后得到的其中一个分片。第二参与方持有待排序序列的第二分片。
在一些实施例中,处理设备可以通过与获取主键乱序序列的第一分片相类似的方式获取得到待排序乱序序列的第一分片。其中,第二参与方持有待排序序列的第二分片,且第二参与方获得待排序乱序序列的第二分片。
例如,在一些实施例中,处理设备可以基于待排序序列的第一分片以及第一随机排序序列与第二参与方基于待排序序列的第二分片,通过秘密分享排列协议,获得第二乱序中间序列的第一分片;第二参与方获得第二乱序中间序列的第二分片。以及基于第二乱序中间序列的第一分片与第二参与方基于第二乱序中间序列的第二分片以及第二随机排序序列,通过秘密分享排列协议,获得待排序乱序序列的第一分片;第二参与方获得待排序乱序序列的第二分片。
又例如,在一些实施例中,处理设备可以基于待排序序列的第一分片与第二参与方基于待排序序列的第二分片以及第二随机排序序列,通过秘密分享排列协议,获得第二乱序中间序列的第一分片;第二参与方获得第二乱序中间序列的第二分片。以及基于第二乱序中间序列的第一分片以及第一随机排序序列与第二参与方基于第二乱序中间序列的第二分片,通过秘密分享排列协议,获得待排序乱序序列的第一分片;第二参与方获得待排序乱序序列的第二分片。
关于上述实施例的更多说明可以参见图2及图3的详细描述,此处不再赘述。
通过步骤102和步骤104,主键序列与待排序序列的元素被乱序,在后续对主键乱序序列以及待排序与乱序序列的进一步处理中能有效隐匿主键序列与待排序序列中的原始信息,起到保护隐私的作用。
步骤106,基于所述主键乱序序列的第一分片与第二参与方协同,通过秘密分享比较协议,获取主键乱序序列的排序序列。在一些实施例中,步骤106可以由排序序列获取模块730执行。
秘密分享比较协议可以是基于秘密分享进行的比较协议。秘密分享比较协议可以基于来自不同参与方的两个数的分片,对所述的两个数进行大小比较,得到比较结果的分片形式。示例性的,当第一个数小于第二个数时,比较结果为1,否则为0。换句话说,秘密分享比较协议的一组输入数据为待比较两个数的第一分片,例如来自第一参与方,另一组输入数据为待比较的两个数的第二分片,例如来自第二参与方,输出数据包括比较结果的第一分片和第二分片,其中比较结果的第一分片被第一参与方获得,比较结果的第二分片被第二参与方获得。在比较过程中,各参与方不能获知来自其他参与方的输入数据,且只能获得比较结果的一个分片,如果要知晓比较结果,则需要各参与方均同意揭示各自持有的比较结果的分片。与秘密分享排列协议相同,本说明书对秘密分享比较协议的内部实现不作限制,将其作为黑盒算子进行调用,已有的以及未来将会出现的能实现前述比较功能的算法均可为本说明书实施例使用。
在一些实施例中,将一个序列的两两元素逐一进行比较,可以获得该序列的偏序信息,偏序信息可以反映该序列中各元素的大小顺序信息。
在一些实施例中,处理设备可以通过调用秘密分享比较算子的方式,将主键乱序序列的两两元素的分片作为秘密分享比较算子的输入,获得两两元素的比较结果。例如,第一参与方和第二参与方可以同时将主键乱序序列的两个元素的分片输入至秘密分享比较算子,通过秘密分享比较算子黑盒计算后,将计算结果以分片的形式输出,分别由第一参与方和第二参与方获得。如此多轮循环,第一参与方和第二参与方能够分别基于主键乱序序列的第一分片和第二分片,获得主键乱序序列中任意两个元素进行比较的比较结果的分片。
在一些实施例中,处理设备可以通过下文实施例所描述的方式获取得到主键乱序序列的偏序信息。
在一些实施例中,处理设备可以基于主键乱序序列的第一分片与第二参与方基于所述主键乱序序列的第二分片,通过秘密分享比较协议,得到所述主键乱序序列的偏序信息矩阵的第一分片;第二参与方得到偏序信息矩阵的第二分片。
偏序信息矩阵可以是指由反映主键乱序序列中两两元素间的大小关系的比较结果组成的矩阵。偏序信息可以理解为反映主键乱序序列中两两元素间的大小关系比较结果,例如,可以用0或1表示偏序信息。
在一些实施例中,当用0-1表示偏序信息时,偏序信息矩阵为0-1矩阵。
在一些实施例中,偏序信息矩阵的行和列均与主键乱序序列的元素一一对应。示例性的,当其某行对应的主键乱序序列的元素小于其列对应的主键乱序序列的元素时,所述偏序信息矩阵中对应的元素为1,否则为0。参见图5,图5是根据本说明书一些实施例所示的偏序信息矩阵的示例性示意图。其中,表示横向排列的主键乱序序列,表示纵向排列的主键乱序序列。处理设备可以按照行与列进行比较的方式,根据比较结果获取得到偏序信息矩阵中的元素值,该元素值的确定可以基于以下公式进行。
在计算时,可以将主键乱序序列的元素进行两两比较,例如,第一行所对应的元素B与第一列所对应的元素B进行比较,按照字典升序对应大小关系,则B等于B,此时比较结果属于otherwise的情况,则第一行与第一列交叉位置处的元素值为0。又例如,第一行所对应的元素B与第二列所对应的元素D进行比较,B小于D,此时比较结果属于的情况,则对应第一行与第二列交叉位置处的元素值为1。
需要说明的是,在获取偏序信息矩阵时,各参与方还可以仅计算主键偏序信息矩阵中的一部分元素值的分片,然后在本地各自根据该部分元素值的分片计算得到另一部分的元素值的分片。例如,参见图5,在图5所示例的偏序信息矩阵中,对角线的元素值均为0,其原因是对角线位置所对应的行和列的元素为主键乱序序列中的同一元素,因此,在实际获取偏序信息矩阵时,可以不对该部分进行计算,而由第一参与方和第二参与方自行补充该部分元素值的分片,方便起见,双方可以将各自偏序信息矩阵的分片的对角线元素记为0。需要计算的位置可以是以偏序信息矩阵的对角线为分割线的上半区域或下半区域,上半区域即为第一行的第2、3、4列,第二行的第3、4列,以及第三行的第4列,双方计算得到上半区域各元素的分片后,可以在本地通过预设值减去上半区域对应的元素值的本地分片,得到下半区域对应的元素值的本地分片。两方持有的预设值可以预先约定好,彼此可以相同,也可以不相同。示例性的,双方的预设值可以均为0.5,又例如,第一参与方的预设值为0.6,第二参与方的预设值为0.4。例如,当双方协同比较,各自得到了矩阵中第1行第2列的元素z12的第一分片<z12>1、第二分片<z12>2后,第一参与方可以在本地自行计算(0.5-<z12>1)得到矩阵中第2行第1列的元素z21的第一分片<z21>1,第二参与方可以在本地自行计算(0.5-<z12>2)得到矩阵中第2行第1列的元素z21的第二分片<z21>2。也就是说,参与方可以通过少量的必要的秘密分享比较,自行根据比较结果分片在本地构造出所述偏序信息矩阵的第一分片和第二分片。
偏序信息矩阵可以反映主键乱系序列中各元素的大小关系或者说大小顺序,可以发现,将偏序信息矩阵按行或按列求和,可以得到主键乱序序列中各元素在进行升序或降序排列的结果序列中的位置信息,即能够得到将主键乱序序列进行升序或者降序排列的排序序列。排序序列等于偏序信息矩阵按行或按列的求和结果。对于是按照行求和还是按照列求和,其与偏序信息矩阵的元素值的确定方式以及对主键乱序序列进行排序的方式有关。例如,当对主键乱序序列按照升序进行排序,以及按照上文实施例中时z=1的情况下,则可以按照列求和获得升序排序的排序序列。又例如,同样是对主键乱序序列按照升序进行排序时,若偏序信息矩阵中的元素值是按照时z=1的情况下,则可以按照行的方式求和获得升序排序的排序序列。如图5所示,当将偏序信息矩阵按列求和,得到的排序序列[1 3 0 2]能够将主键乱序序列升序排序;按行求和,得到的排序序列[2 0 3 1]能够将主键乱序序列升序排序。
第一参与方可以基于偏序信息矩阵的第一分片与第二参与方协同,得到所述排序序列。
通过秘密分享比较,将主键乱序序列的原始数据信息变成了元素偏序信息,偏序信息矩阵的元素所体现的只是原主键乱序序列的元素间的大小关系,因此,即使将偏序信息矩阵公开,也不会泄露主键乱序序列的数据隐私,那么在获取排序序列时,第一参与方和第二参与方可以互相向对方公开自己所拥有的偏序信息矩阵分片,各方均可以得到所述偏序信息矩阵,再计算偏序信息矩阵的行或列的和,得到排序序列。另外,第一参与方和第二参与方也可以在其本地先行计算偏序信息矩阵分片的行或列的和,得到排序序列的分片,再向对方公开排序序列的分片,双方基于排序序列的分片得到排序序列。
除此以外,在获取主键乱序序列的过程中打乱了主键序列的元素位置,偏序信息矩阵中所体现的偏序信息,是原主键序列的元素被扰乱后的偏序信息,进一步地保证了主键序列的数据隐私安全。
步骤108,基于所述排序序列对所述待排序乱序序列的第一分片进行排序处理,获得目标序列的第一分片。在一些实施例中,步骤108可以由目标序列获取模块740执行。
目标序列等于将待排序序列按主键序列升序或降序排列的结果。即,将目标序列为将待排序序列的元素按照主键序列的元素的升序或降序排列的结果进行排列得到的序列。例如,主键序列为X=[B C A D ],待排序序列为Y=[A C D B],将待排序序列按照主键序列中的元素的升序排序结果进行排序后可以得目标序列Z=[D A C B]。由于待排序序列与主键序列经过同样方式的乱序,因此,基于所述排序序列对待排序乱序序列进行排序,等效于将待排序序列按主键序列升序或降序排列。
在一些实施例中,由于排序序列为明文序列,第一参与方可以在其本地直接基于排序序列对待排序乱序序列的第一分片进行排序处理,获得目标序列的第一分片。同理,第二参与方可以在其本地直接基于排序序列对待排序乱序序列的第二分片进行排序处理,获得目标序列的第二分片。
在本说明书一些实施例中,通过第一参与方与第二参与方的协同运算,实现了对秘密分享形式存在的主键序列和待排序序列进行秘密排序,同时有效地保护了主键序列和带排序序列的数据隐私安全。
图2是根据本说明书的一些实施例所示的基于秘密分享的排序方法的示例性交互流程图。在一些实施例中,交互流程可以由双方的处理设备协同执行。其中,部分流程(如流程200)由第一参与方的处理设备执行,剩余部分由第二参与方的处理设备执行。例如,交互可以以程序或指令的形式分别存储在各参与方的存储装置(如处理设备的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现交互。下面以流程200为主,阐述图2所示的交互流程,其中流程200可以包括以下操作。
步骤202,生成第一随机排序序列。
在一些实施例中,第一参与方的处理设备可以通过随机序列生成算法生成第一随机排序序列。随机序列生成算法可以是常见的序列生成算法,本说明书对此不作限定。
在一些实施例中,第一随机排序序列的序列长度与主键序列和待排序序列的长度相同。
在一些实施例中,第一随机排序序列也可以表示对等长序列进行排序的操作,其元素指示该等长序列中对位数据在结果序列中的位置。
步骤204,基于所述第一随机排序序列以及所述主键序列的第一分片与第二参与方基于所述主键序列的第二分片,通过秘密分享排列协议,获得第一乱序中间序列的第一分片;第二参与方获得第一乱序中间序列的第二分片。
在一些实施例中,第一参与方的处理设备可以将第一随机排序序列、主键序列的第一分片作为第一组输入参数、第二参与方的处理设备将主键序列的第二分片作为另一组输入参数输入秘密分享排列算子,两者协同执行秘密分享排序算子,得到第一乱序中间序列的第一分片和第二分片。第一分片由第一参与方获得,第二分片由第二参与方获得。
步骤206,基于所述第一乱序中间序列的第一分片与第二参与方基于第一乱序中间序列的第二分片以及第二随机排序序列,通过秘密分享排列协议,获得所述主键乱序序列的第一分片;所述第二随机排序序列由第二参与方生成。
第一参与方的处理设备可以将第一乱序中间序列的第一分片作为第一组输入参数、第二参与方的处理设备将第一乱系中间序列的第二分片、第二随机排序序列作为另一组输入参数输入秘密分享排列算子,两者协同执行秘密分享排序算子,得到主键乱序序列的第一分片和第二分片。第一分片由第一参与方获得,第二分片由第二参与方获得。其中,第二随机排序序列由第二参与方生成,其过程与第一随机排序序列类似。
秘密分享排序算子的相关说明可以参见图2中关于ObliviousPerm函数的相关说明,在此不再赘述。通过第一参与方生成的第一随机排序序列对主键序列进行第一次乱序,再通过第二参与方生成的第二随机排序序列对一次乱序的结果再次乱序,双方都难以获知主键序列的原始信息,可以更好的保护数据隐私。在一些替代性实施例中,也先通过第二参与方生成的第二随机排序序列对主键序列进行第一次乱序,再通过第一参与方生成的第一随机排序序列对一次乱序的结果再次乱序,依然可以达到相同的技术效果。
图3是根据本说明书的一些实施例所示的基于秘密分享的排序方法的示例性交互流程图。在一些实施例中,交互流程可以由双方的处理设备协同执行。其中,部分流程(如流程300)由第一参与方的处理设备执行,剩余部分由第二参与方的处理设备执行。例如,交互流程可以以程序或指令的形式存储在各参与方的存储装置(如处理设备的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现图3所示的交互流程。下面以流程300为主,阐述图3所示的交互流程,其中流程300可以包括以下操作。
步骤302,获取所述第一随机排序序列(即流程200生成的第一随机排序序列)。
步骤304,基于所述待排序序列的第一分片、所述第一随机排序序列,与第二参与方基于所述待排序序列的第二分片,通过秘密分享排列协议,获得第二乱序中间序列的第一分片;第二参与方获得第二乱序中间序列的第二分片。
步骤306,基于所述第二乱序中间序列的第一分片与第二参与方基于第二乱序中间序列的第二分片、所述第二随机排序序列(即流程200生成的第二随机排序序列),通过秘密分享排列协议,获得所述待排序乱序序列的第一分片;第二参与方获得待排序乱序序列的第二分片。
步骤实施中所涉及到的计算方式与图2所描述的秘密分享排序协议(算子)相同,此处不再赘述。在一些替代性实施例中,也可以先通过第二参与方生成的第二随机排序序列对待排序序列进行第一次乱序,再通过第一参与方生成的第一随机排序序列对一次乱序的结果再次乱序,得到待排序乱序序列。通过与图2所示的乱序方式对待排序序列进行同样的处理,可以保证待排序乱序序列与主键乱序序列始终保持对应关系,以便于后续处理。
图6是根据本说明书一些实施例所示的获取目标序列的示例性流程图。
在流程600中,610A表示主键序列、620A表示第一乱序中间序列、630A表示主键乱序序列、610B表示待排序序列、620B表示第二乱序中间序列、630B表示待排序乱序序列、610C表示第一随机排列序列、620C表示第二随机排列序列、640表示偏序信息矩阵、650表示排序序列、660表示目标序列。
需要说明的是,为了便于清楚呈现序列间的变化关系,流程600的示例并未体现各序列的秘密分享形式,其实际各步骤的执行仍应参考本说明书图1至图3的相关描述。
应当注意的是,上述有关各流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,对本说明书有关流程步骤的改变,如添加预处理步骤和存储步骤等。
图7是根据本说明书一些实施例所示的基于秘密分享的排序系统的示例性模块图。如图7所示,系统700可以包括主键乱序序列获取模块710、待排序乱序序列获取模块720、排序序列获取模块730和目标序列获取模块740。
主键乱序序列获取模块710可以用于基于主键序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取主键乱序序列的第一分片;第二参与方获得主键乱序序列的第二分片。
待排序乱序序列获取模块720可以用于基于待排序序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取待排序乱序序列的第一分片;第二参与方获得待排序乱序序列的第二分片。
排序序列获取模块730可以用于基于所述主键乱序序列的第一分片与第二参与方协同,通过秘密分享比较协议,获取主键乱序序列的排序序列;所述排序序列能够将主键乱序序列进行升序或降序排序。
目标序列获取模块740可以用于基于所述排序序列对所述待排序乱序序列的第一分片进行排序处理,获得目标序列的第一分片,所述目标序列等于所述待排序序列按所述主键序列升序或降序排列的结果。
关于以上所示的系统的各模块的具体描述,可以参考本说明书流程图部分,例如,图2至图3的相关说明。
应当理解,图7所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于基于秘密分享的排序系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,主键乱序序列获取模块710、待排序乱序序列获取模块720、排序序列获取模块730和目标序列获取模块740可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:可以对秘密分享形态存在的主键序列和待排序序列实现升序或降序排列,同时保护了序列的数据隐私安全。
需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、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.根据权利要求2所述的方法,基于待排序序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取待排序乱序序列的第一分片,包括:
基于待排序序列的第一分片以及所述第一随机排序序列与第二参与方基于待排序序列的第二分片,通过秘密分享排列协议,获得第二乱序中间序列的第一分片;第二参与方获得第二乱序中间序列的第二分片;
基于第二乱序中间序列的第一分片与第二参与方基于第二乱序中间序列的第二分片以及所述第二随机排序序列,通过秘密分享排列协议,获得待排序乱序序列的第一分片。
4.根据权利要求1所述的方法,所述基于主键序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取主键乱序序列的第一分片,包括:
生成第一随机排序序列;
基于所述主键序列的第一分片与第二参与方基于所述主键序列的第二分片以及第二随机排序序列,通过秘密分享排列协议,获得第一乱序中间序列的第一分片;第二参与方获得第一乱序中间序列的第二分片;所述第二随机排序序列由第二参与方生成;
基于所述第一随机排序序列以及所述第一乱序中间序列的第一分片与第二参与方基于第一乱序中间序列的第二分片,通过秘密分享排列协议,获得所述主键乱序序列的第一分片。
5.根据权利要求4所述的方法,基于待排序序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取待排序乱序序列的第一分片,包括:
基于待排序序列的第一分片与第二参与方基于待排序序列的第二分片以及所述第二随机排序序列,通过秘密分享排列协议,获得第二乱序中间序列的第一分片;第二参与方获得第二乱序中间序列的第二分片;
基于第二乱序中间序列的第一分片以及所述第一随机排序序列与第二参与方基于第二乱序中间序列的第二分片,通过秘密分享排列协议,获得待排序乱序序列的第一分片。
6.根据权利要求1所述的方法,所述排序序列用于标识对等长序列进行排序的操作,其元素指示所述等长序列中对位数据在结果序列中的位置。
7.根据权利要求1所述的方法,所述基于所述主键乱序序列的第一分片与第二参与方协同,通过秘密分享比较协议,获取主键乱序序列的排序序列,包括:
基于所述主键乱序序列的第一分片与第二参与方基于所述主键乱序序列的第二分片,通过秘密分享比较协议,得到所述主键乱序序列的偏序信息矩阵的第一分片;第二参与方得到偏序信息矩阵的第二分片;所述偏序信息矩阵反映主键乱序序列中两两元素间的大小关系;
基于偏序信息矩阵的第一分片与第二参与方协同,得到所述排序序列;所述排序序列等于偏序信息矩阵按行或按列的求和结果。
8.根据权利要求7所述的方法,所述偏序信息矩阵为0-1矩阵,其行和列均与主键乱序序列的元素一一对应,当其某行对应的主键乱序序列的元素小于其列对应的主键乱序序列的元素时,所述偏序信息矩阵中对应的元素为1,否则为0。
9.一种基于秘密分享的排序系统,所述系统设置于第一参与方,所述第一参与方持有主键序列的第一分片和待排序序列的第一分片,所述主键序列的第二分片以及所述待排序序列的第二分片由第二方持有,所述系统包括:
主键乱序序列获取模块,用于基于主键序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取主键乱序序列的第一分片;第二参与方获得主键乱序序列的第二分片;其中,所述秘密分享排列协议用于对以秘密分享的形式存在的序列进行秘密排列,得到以秘密分享的形式存在的排列结果;
待排序乱序序列获取模块,用于基于待排序序列的第一分片与第二参与方协同,通过秘密分享排列协议,获取待排序乱序序列的第一分片;第二参与方获得待排序乱序序列的第二分片;
排序序列获取模块,用于基于所述主键乱序序列的第一分片与第二参与方协同,通过秘密分享比较协议,获取主键乱序序列的排序序列;所述排序序列能够将主键乱序序列进行升序或降序排序;其中,所述秘密分享比较协议用于对以秘密分享的形式存在的两个数进行秘密比较,得到以秘密分享的形式存在的比较结果;
目标序列获取模块,用于基于所述排序序列对所述待排序乱序序列的第一分片进行排序处理,获得目标序列的第一分片,所述目标序列等于所述待排序序列按所述主键序列升序或降序排列的结果。
10.一种基于秘密分享的排序装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210126038.8A CN114172648B (zh) | 2022-02-10 | 2022-02-10 | 一种基于秘密分享的排序方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210126038.8A CN114172648B (zh) | 2022-02-10 | 2022-02-10 | 一种基于秘密分享的排序方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114172648A CN114172648A (zh) | 2022-03-11 |
CN114172648B true CN114172648B (zh) | 2022-05-31 |
Family
ID=80489776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210126038.8A Active CN114172648B (zh) | 2022-02-10 | 2022-02-10 | 一种基于秘密分享的排序方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114172648B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114817997B (zh) * | 2022-06-24 | 2022-09-23 | 蓝象智联(杭州)科技有限公司 | 一种基于秘密分享的共享数据随机排序方法 |
CN115396101B (zh) * | 2022-10-26 | 2022-12-27 | 华控清交信息科技(北京)有限公司 | 一种基于秘密分享的不经意打乱方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9747434B1 (en) * | 2015-09-17 | 2017-08-29 | EMC IP Holding Company LLC | Authenticating with an external device by providing a message having message fields arranged in a particular message field order |
CN112800466A (zh) * | 2021-02-10 | 2021-05-14 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的数据处理方法、装置和服务器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3096309B1 (en) * | 2014-01-17 | 2018-10-31 | Nippon Telegraph And Telephone Corporation | Secret calculation method, secret calculation system, sorting device, and program |
JP6973629B2 (ja) * | 2018-04-20 | 2021-12-01 | 日本電信電話株式会社 | 秘密集約順位システム、秘密計算装置、秘密集約順位方法、およびプログラム |
US11546171B2 (en) * | 2020-05-15 | 2023-01-03 | Acronis International Gmbh | Systems and methods for synchronizing anonymized linked data across multiple queues for secure multiparty computation |
US20220014355A1 (en) * | 2020-07-13 | 2022-01-13 | Inpher, Inc. | Oblivious Comparisons and Quicksort of Secret Shared Arithmetic Values in a Multi-Party Computing Setting |
CN112232367B (zh) * | 2020-09-10 | 2022-06-21 | 山东师范大学 | 一种网络行为相似性判断方法及系统 |
-
2022
- 2022-02-10 CN CN202210126038.8A patent/CN114172648B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9747434B1 (en) * | 2015-09-17 | 2017-08-29 | EMC IP Holding Company LLC | Authenticating with an external device by providing a message having message fields arranged in a particular message field order |
CN112800466A (zh) * | 2021-02-10 | 2021-05-14 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的数据处理方法、装置和服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN114172648A (zh) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114172648B (zh) | 一种基于秘密分享的排序方法和系统 | |
Acar et al. | Security developer studies with {GitHub} users: Exploring a convenience sample | |
CN114282256B (zh) | 一种基于秘密分享的排序打乱方法和恢复方法 | |
CN110969264B (zh) | 模型训练方法、分布式预测方法及其系统 | |
CN112766514B (zh) | 一种联合训练机器学习模型的方法、系统及装置 | |
CN114282076B (zh) | 一种基于秘密分享的排序方法和系统 | |
CN114327371B (zh) | 一种基于秘密分享的多键排序方法和系统 | |
CN114153808B (zh) | 一种基于秘密分享的排序方法和系统 | |
CN110096897A (zh) | 数据脱敏方法及装置、数据泄露源头定位方法及装置 | |
CN114611128B (zh) | 一种纵向联邦学习方法、装置、系统、设备及存储介质 | |
Arapinis et al. | Privacy-supporting cloud computing by in-browser key translation | |
CN113704805B (zh) | 一种风控规则匹配方法、装置及电子设备 | |
JP7047764B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法および秘密計算プログラム | |
CN111881207A (zh) | 基于区块链的专家信息共享方法、装置、设备及存储介质 | |
CN114338017B (zh) | 一种基于秘密分享的排序方法和系统 | |
CN114282255B (zh) | 一种基于秘密分享的排序序列合并方法和系统 | |
CN114172631B (zh) | 一种基于秘密分享的排序方法和系统 | |
CN113240442A (zh) | 一种农业物联网农产品质量安全溯源的方法及系统 | |
CN114298321A (zh) | 联合建模方法、装置、电子设备及存储介质 | |
CN112990260B (zh) | 一种基于多方安全计算的模型评估方法和系统 | |
CN109102616B (zh) | 可验证的计算机排位方法 | |
CN117874825B (zh) | 基于lu分解的用户隐私保护方法、装置、设备及介质 | |
CN112287394B (zh) | 卡号脱敏方法、装置、设备及存储介质 | |
Saxena et al. | Improved Rules and Authorization Key Processing for Secured Online Training | |
CN115982779B (zh) | 一种数据匿名化方法、装置、电子设备及存储介质 |
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 |