一种基于秘密分享的多键排序方法和系统技术方案

技术编号:33064180 阅读:14 留言:0更新日期:2022-04-15 09:53
本说明书实施例公开了一种基于秘密分享的多键排序方法和系统。第一方将一个或多个第一信息项分别作为排序键对一个或多个第一数据列进行迭代排序,并基于得到的第一结果序列获得第一分组标记列。第一方将第一分组标记列作为待排序序列,第二方将基于一个或多个第二数据列生成的第二排序向量作为排序向量,进行秘密分享向量排序,双方各自得到经过排序的第一分组标记列的分片。双方基于经过排序的第一分组标记列的分片进行秘密分享基数排序,得到第三排序向量的分片。双方对第二排序向量和第三排序向量进行秘密分享合并,得到多方排序向量的分片。双方基于多方排序向量的分片,对待排序数据列进行秘密分享向量排序,得到目标数据列的分片。据列的分片。据列的分片。

【技术实现步骤摘要】
一种基于秘密分享的多键排序方法和系统


[0001]本说明书涉及信息
,特别涉及一种基于秘密分享的多键排序方法和系统。

技术介绍

[0002]大数据时代,业务的多个参与方希望通过合作来完成数据任务。然而,由于数据隐私、数据隔离等原因,不能将各方数据直接集中起来处理。因此,如何在确保数据安全的前提下实现多方联合的数据任务成为亟待解决的问题。

技术实现思路

[0003]本说明书实施例之一提供一种基于秘密分享的多键排序方法。其中,第一方拥有一个或多个第一信息项分别对应的一个或多个第一数据列。第二方拥有一个或多个第二信息项分别对应的一个或多个第二数据列。所述第一数据列和所述第二数据列按行对齐。所述方法由第一方执行,包括:将所述一个或多个第一信息项分别作为排序键对所述一个或多个第一数据列进行迭代排序,得到第一结果序列;基于所述第一结果序列获得第一分组标记列,所述第一分组标记列的元素指示所述一个或多个第一数据列中的对位元素依据所述一个或多个第一信息项的联合分组信息;将所述第一分组标记列作为待排序序列,与第二方将第二排序向量作为排序向量,进行秘密分享向量排序,得到经过排序的第一分组标记列的第一分片,第二方得到经过排序的第一分组标记列的第二分片,其中,所述第二排序向量用于标识将所述一个或多个第二信息项作为排序键分别对等长序列进行多键排序的操作,所述第二排序向量的元素指示该等长序列中对位元素在结果序列中的位置;基于所述经过排序的第一分组标记列的第一分片,与第二方基于所述经过排序的第一分组标记列的第二分片,进行秘密分享基数排序,得到第三排序向量的第一分片,第二方得到第三排序向量的第二分片;基于所述第三排序向量的第一分片,与第二方基于所述第三排序向量的第二分片以及所述第二排序向量,进行秘密分享合并,得到多方排序向量的第一分片,第二方得到多方排序向量的第二分片,其中,所述多方排序向量用于标识分别将所述一个或多个第一信息项以及所述一个或多个第二信息项作为排序键对等长序列进行多键排序的操作,所述多方排序向量的元素指示该等长序列中对位元素在结果序列中的位置;基于所述多方排序向量的第一分片,与第二方基于所述多方排序向量的第二分片,对待排序数据列进行秘密分享向量排序,得到目标数据列的第一分片,第二方得到目标数据列的第二分片,所述目标数据列等于分别将所述一个或多个第一信息项以及所述一个或多个第二信息项作为排序键对所述待排序数据列进行多键排序的结果。
[0004]本说明书实施例之一提供一种基于秘密分享的多键排序系统。其中,第一方拥有一个或多个第一信息项分别对应的一个或多个第一数据列。第二方拥有一个或多个第二信息项分别对应的一个或多个第二数据列。所述第一数据列和所述第二数据列按行对齐。所述系统在第一方实现,包括:第一结果序列获得模块,用于将所述一个或多个第一信息项分
别作为排序键对所述一个或多个第一数据列进行迭代排序,得到第一结果序列;第一分组标记列获得模块,用于基于所述第一结果序列获得第一分组标记列,所述第一分组标记列的元素指示所述一个或多个第一数据列中的对位元素依据所述一个或多个第一信息项的联合分组信息;第一秘密分享向量排序模块,用于将所述第一分组标记列作为待排序序列,与第二方将第二排序向量作为排序向量,进行秘密分享向量排序,得到经过排序的第一分组标记列的第一分片,第二方得到经过排序的第一分组标记列的第二分片,其中,所述第二排序向量用于标识将所述一个或多个第二信息项作为排序键分别对等长序列进行多键排序的操作,所述第二排序向量的元素指示该等长序列中对位元素在结果序列中的位置;第一秘密分享基数排序模块,用于基于所述经过排序的第一分组标记列的第一分片,与第二方基于所述经过排序的第一分组标记列的第二分片,进行秘密分享基数排序,得到第三排序向量的第一分片,第二方得到第三排序向量的第二分片;第一秘密分享合并模块,用于基于所述第三排序向量的第一分片,与第二方基于所述第三排序向量的第二分片以及所述第二排序向量,进行秘密分享合并,得到多方排序向量的第一分片,第二方得到多方排序向量的第二分片,其中,所述多方排序向量用于标识分别将所述一个或多个第一信息项以及所述一个或多个第二信息项作为排序键对等长序列进行多键排序的操作,所述多方排序向量的元素指示该等长序列中对位元素在结果序列中的位置;第一秘密分享排序模块,用于基于所述多方排序向量的第一分片,与第二方基于所述多方排序向量的第二分片,对待排序数据列进行秘密分享向量排序,得到目标数据列的第一分片,第二方得到目标数据列的第二分片,所述目标数据列等于分别将所述一个或多个第一信息项以及所述一个或多个第二信息项作为排序键对所述待排序数据列进行多键排序的结果。
[0005]本说明书实施例之一提供一种基于秘密分享的多键排序装置,包括处理器和存储设备,所述存储设备用于存储指令。其中,当所述处理器执行指令时,实现如本说明书任一实施例所述的由第一方执行的基于秘密分享的多键排序方法。
[0006]本说明书实施例之一提供一种基于秘密分享的多键排序方法。其中,第一方拥有一个或多个第一信息项分别对应的一个或多个第一数据列。第二方拥有一个或多个第二信息项分别对应的一个或多个第二数据列。所述第一数据列和所述第二数据列按行对齐。所述方法由第二方执行,包括:基于所述一个或多个第二数据列生成第二排序向量,其中,所述第二排序向量用于标识将所述一个或多个第二信息项分别作为排序键对等长序列进行迭代排序的操作,所述第二排序向量的元素指示该等长序列中对位元素在结果序列中的位置;将第二排序向量作为排序向量,与第一方将第一分组标记列作为待排序序列,进行秘密分享向量排序,得到经过排序的第一分组标记列的第二分片,第一方得到经过排序的第一分组标记列的第一分片,其中,所述第一分组标记列的元素指示所述一个或多个第一数据列中对位元素依据所述一个或多个第一信息项的联合分组信息;基于所述经过排序的第一分组标记列的第二分片,与第一方基于所述经过排序的第一分组标记列的第一分片,进行秘密分享基数排序,得到第三排序向量的第二分片,第一方得到第三排序向量的第一分片;基于所述第三排序向量的第二分片以及所述第二排序向量,与第一方基于所述第三排序向量的第一分片,进行秘密分享合并,得到多方排序向量的第二分片,第一方得到多方排序向量的第一分片,其中,所述多方排序向量用于标识分别将所述一个或多个第一信息项以及所述一个或多个第二信息项作为排序键对等长序列进行迭代排序的操作,所述多方排序向
量的元素指示该等长序列中对位元素在结果序列中的位置;基于所述多方排序向量的第二分片,与第一方基于所述多方排序向量的第一分片,对待排序数据列进行秘密分享向量排序,得到目标数据列的第二分片,第一方得到目标数据列的第一分片,所述目标数据列等于基于所述多方排序向量对所述待排序数据列进行排序的结果。
[0007]本说明书实施例之一提供一种基于秘密分享的多键排序系统。其中,第一方拥有一个或多个第一信息项分别对应的一个或多个第一数据列。第二方拥有一个或多个第二信息项分别对应的一个或多个第二数据列。所述第一数据列本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于秘密分享的多键排序方法,其中,第一方拥有一个或多个第一信息项分别对应的一个或多个第一数据列;第二方拥有一个或多个第二信息项分别对应的一个或多个第二数据列;所述第一数据列和所述第二数据列按行对齐;所述方法由第一方执行,包括:将所述一个或多个第一信息项分别作为排序键对所述一个或多个第一数据列进行迭代排序,得到第一结果序列;基于所述第一结果序列获得第一分组标记列,所述第一分组标记列的元素指示所述一个或多个第一数据列中的对位元素依据所述一个或多个第一信息项的联合分组信息;将所述第一分组标记列作为待排序序列,与第二方将第二排序向量作为排序向量,进行秘密分享向量排序,得到经过排序的第一分组标记列的第一分片,第二方得到经过排序的第一分组标记列的第二分片;其中,所述第二排序向量用于标识将所述一个或多个第二信息项作为排序键分别对等长序列进行多键排序的操作,所述第二排序向量的元素指示该等长序列中对位元素在结果序列中的位置;基于所述经过排序的第一分组标记列的第一分片,与第二方基于所述经过排序的第一分组标记列的第二分片,进行秘密分享基数排序,得到第三排序向量的第一分片,第二方得到第三排序向量的第二分片;基于所述第三排序向量的第一分片,与第二方基于所述第三排序向量的第二分片以及所述第二排序向量,进行秘密分享合并,得到多方排序向量的第一分片,第二方得到多方排序向量的第二分片;其中,所述多方排序向量用于标识分别将所述一个或多个第一信息项以及所述一个或多个第二信息项作为排序键对等长序列进行多键排序的操作,所述多方排序向量的元素指示该等长序列中对位元素在结果序列中的位置;基于所述多方排序向量的第一分片,与第二方基于所述多方排序向量的第二分片,对待排序数据列进行秘密分享向量排序,得到目标数据列的第一分片,第二方得到目标数据列的第二分片;所述目标数据列等于分别将所述一个或多个第一信息项以及所述一个或多个第二信息项作为排序键对所述待排序数据列进行多键排序的结果。2.如权利要求1所述的方法,所述基于所述第一结果序列获得第一分组标记列包括:基于所述第一结果序列获得待重排的分组标记列,所述待重排的分组标记列的元素指示所述第一结果序列中对位元素依据所述一个或多个第一信息项的联合分组信息;获得第一排序向量的逆;其中,所述第一排序向量用于标识分别将所述一个或多个第一信息项作为排序键对等长序列进行迭代排序的操作,所述第一排序向量的元素指示该等长序列中对位元素在结果序列中的位置;排序向量的逆用于标识对基于排序向量对等长序列进行排序得到的结果序列进行还原的操作,其元素指示所述结果序列中对位元素在原序列中的位置;以所述第一排序向量的逆为排序向量,对所述待重排的分组标记列进行排序,得到所述第一分组标记列。3.如权利要求1所述的方法,所述基于所述多方排序向量的第一分片,与第二方基于所述多方排序向量的第二分片,对待排序数据列进行秘密分享向量排序,得到目标数据列的第一分片,第二方得到目标数据列的第二分片,包括:基于所述多方排序向量的第一分片、所述待排序数据列的第一分片,与第二方基于所述多方排序向量的第二分片、所述待排序数据列的第二分片,进行秘密分享向量排序,得到
目标数据列的第一分片,第二方得到目标数据列的第二分片。4.一种基于秘密分享的多键排序系统,其中,第一方拥有一个或多个第一信息项分别对应的一个或多个第一数据列;第二方拥有一个或多个第二信息项分别对应的一个或多个第二数据列;所述第一数据列和所述第二数据列按行对齐;所述系统在第一方实现,包括:第一结果序列获得模块,用于将所述一个或多个第一信息项分别作为排序键对所述一个或多个第一数据列进行迭代排序,得到第一结果序列;第一分组标记列获得模块,用于基于所述第一结果序列获得第一分组标记列,所述第一分组标记列的元素指示所述一个或多个第一数据列中的对位元素依据所述一个或多个第一信息项的联合分组信息;第一秘密分享向量排序模块,用于将所述第一分组标记列作为待排序序列,与第二方将第二排序向量作为排序向量,进行秘密分享向量排序,得到经过排序的第一分组标记列的第一分片,第二方得到经过排序的第一分组标记列的第二分片;其中,所述第二排序向量用于标识将所述一个或多个第二信息项作为排序键分别对等长序列进行多键排序的操作,所述第二排序向量的元素指示该等长序列中对位元素在结果序列中的位置;第一秘密分享基数排序模块,用于基于所述经过排序的第一分组标记列的第一分片,与第二方基于所述经过排序的第一分组标记列的第二分片,进行秘密分享基数排序,得到第三排序向量的第一分片,第二方得到第三排序向量的第二分片;第一秘密分享合并模块,用于基于所述第三排序向量的第一分片,与第二方基于所述第三排序向量的第二分片以及所述第二排序向量,进行秘密分享合并,得到多方排序向量的第一分片,第二方得到多方排序向量的第二分片;其中,所述多方排序向量用于标识分别将所述一个或多个第一信息项以及所述一个或多个第二信息项作为排序键对等长序列进行多键排序的操作,所述多方排序向量的元素指示该等长序列中对位元素在结果序列中的位置;第一多键排序模块,用于基于所述多方排序向量的第一分片,与第二方基于所述多方排序向量的第二分片,对待排序数据列进行秘密分享向量排序,得到目标数据列的第一分片,第二方得到目标数据列的第二分片;所述目标数据列等于分别将所述一个或多个第一信息项以及所述一个或多个第二信息项作为排序键对所述待排序数据列进行多键排序的结果。5.一种基于秘密分享的多键排序装置,包括处理器和存储设备,所述存储设备用于存储指令,其中,当所述处理器执行指令时,实现如权利要求1~3中任一项所述的方法。6.一种基于秘密分享的多键排序方法,其中,第一方拥...

【专利技术属性】
技术研发人员:方文静王力
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1