CN112861145A - 一种数据处理方法、装置和用于数据处理的装置 - Google Patents
一种数据处理方法、装置和用于数据处理的装置 Download PDFInfo
- Publication number
- CN112861145A CN112861145A CN202110015252.1A CN202110015252A CN112861145A CN 112861145 A CN112861145 A CN 112861145A CN 202110015252 A CN202110015252 A CN 202110015252A CN 112861145 A CN112861145 A CN 112861145A
- Authority
- CN
- China
- Prior art keywords
- sequence
- sorting
- vector
- result
- merging
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000012163 sequencing technique Methods 0.000 claims abstract description 62
- 238000000034 method Methods 0.000 claims abstract description 37
- 239000013598 vector Substances 0.000 claims description 217
- 230000008569 process Effects 0.000 claims description 11
- 238000004891 communication Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- 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/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
- Complex Calculations (AREA)
Abstract
本发明实施例提供一种数据处理方法、装置和用于数据处理的装置。其中的方法包括:对第一子序列和第二子序列分别调用奇偶归并排序算法进行排序,得到第一排序结果和第二排序结果;对第一排序结果和第二排序结果在奇数位上调用奇偶归并算法进行归并,得到第一有序序列,以及对第一排序结果和第二排序结果在偶数位上调用奇偶归并算法进行归并,得到第二有序序列;对第一有序序列中的序列b3,…,bn‑1和第二有序序列中的序列c2,c4,…,cn‑2进行向量化比较,得到向量化比较结果;根据向量化比较结果确定所述密文数据序列的排序结果。本发明实施例可以在保证多方安全计算系统安全性的基础上,提高对密文数据进行排序的效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置和用于数据处理的装置。
背景技术
MPC(Secure Muti-Party Computation,多方安全计算)是一种保护数据隐私安全的算法。多个参与方可以在不泄漏自身数据的前提下,使用多方安全计算技术进行协作计算,得到计算结果。
排序算法被广泛应用在很多算法之中,尤其是在大量数据的处理方面。排序就是对一系列数据,按照某些关键字的大小,递增或递减排列起来的操作。
多方安全计算要求数据处于密文状态,并在密文上进行计算。因此,在多方安全计算系统中,对一系列密文数据进行排序,需要对单个密文数据逐一进行比较,而对密文数据进行比较操作的计算开销较大,进而影响排序的效率。此外,传统的排序算法在排序过程中,后续的排序往往依赖于之前排序的结果,在进行后续排序前先要暴露之前排序的结果,破坏了多方安全计算系统的安全性。
发明内容
本发明实施例提供一种数据处理方法、装置和用于数据处理的装置,可以在保证多方安全计算系统安全性的基础上,提高对密文数据进行排序的效率。
为了解决上述问题,本发明实施例公开了一种数据处理方法,所述方法用于对密文数据序列a1,a2,…,an进行排序,所述方法包括:
对第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an分别调用奇偶归并排序算法进行排序,得到所述第一子序列的第一排序结果和所述第二子序列的第二排序结果;
对所述第一排序结果和所述第二排序结果在奇数位上调用奇偶归并算法进行归并,得到第一有序序列b1,b3,…,bn-1,以及对所述第一排序结果和所述第二排序结果在偶数位上调用奇偶归并算法进行归并,得到第二有序序列c2,c4,…,cn;
对所述第一有序序列中的序列b3,…,bn-1和所述第二有序序列中的序列c2,c4,…,cn-2进行向量化比较,得到向量化比较结果;
根据所述向量化比较结果确定所述密文数据序列的排序结果。
可选地,所述对所述第一有序序列中的序列b3,…,bn-1和所述第二有序序列中的序列c2,c4,…,cn-2进行向量化比较,得到向量化比较结果,包括:
确定序列b3,…,bn-1对应的第一向量[b3,b5,…,bn-1]和序列c2,c4,…,cn-2对应的第二向量[c2,c4,…,cn-2];
对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果;
所述根据所述向量化比较结果确定所述密文数据序列的排序结果,包括:
对所述第一有序序列和所述第二有序序列进行合并,得到合并序列b1,c2,b3,c4,…,bn-1,cn;
根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果。
可选地,所述对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果,包括:
对所述第一向量和所述第二向量进行如下密文比较操作:
[c2,c4,…,cn-2]>[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第一比较结果comp1[i],其中,i的取值为[0,n-1];
所述根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果,包括:
若comp1[i]=true,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第一策略排序结果。
可选地,所述对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果,包括:
对所述第一向量和所述第二向量进行如下密文比较操作:
[c2,c4,…,cn-2]<[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第二比较结果comp2[i],其中,i的取值为[0,n-1];
所述根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果,包括:
若comp2[i]=true,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第二策略排序结果。
可选地,所述调用奇偶归并排序算法进行排序,包括:
在调用奇偶归并排序算法进行排序的过程中,将至少两组待比较的单个密文数据转换为向量进行比较。
可选地,所述对第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an分别调用奇偶归并排序算法进行排序之前,所述方法还包括:
若所述密文数据序列中密文数据的个数为2k个,则直接将所述密文数据序列对半划分为第一子序列和第二子序列;
若所述密文数据序列中密文数据的个数不是2k个,则在所述密文数据序列中增加预设个数的预置数据,使得密文数据序列中的数据个数为2k个,将增加预置数据的密文数据序列对半划分为第一子序列和第二子序列。
可选地,所述密文数据序列由多个数据方提供的密文数据所组成。
另一方面,本发明实施例公开了一种数据处理装置,所述装置用于对密文数据序列a1,a2,…,an进行排序,所述装置包括:
排序模块,用于对第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an分别调用奇偶归并排序算法进行排序,得到所述第一子序列的第一排序结果和所述第二子序列的第二排序结果;
归并模块,用于对所述第一排序结果和所述第二排序结果在奇数位上调用奇偶归并算法进行归并,得到第一有序序列b1,b3,…,bn-1,以及对所述第一排序结果和所述第二排序结果在偶数位上调用奇偶归并算法进行归并,得到第二有序序列c2,c4,…,cn;
比较模块,用于对所述第一有序序列中的序列b3,…,bn-1和所述第二有序序列中的序列c2,c4,…,cn-2进行向量化比较,得到向量化比较结果;
调整模块,用于根据所述向量化比较结果确定所述密文数据序列的排序结果。
可选地,所述比较模块,包括:
向量确定子模块,用于确定序列b3,…,bn-1对应的第一向量[b3,b5,…,bn-1]和序列c2,c4,…,cn-2对应的第二向量[c2,c4,…,cn-2];
向量比较子模块,用于对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果;
所述调整模块,包括:
合并子模块,用于对所述第一有序序列和所述第二有序序列进行合并,得到合并序列b1,c2,b3,c4,…,bn-1,cn;
调整子模块,用于根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果。
可选地,所述向量比较子模块,具体用于对所述第一向量和所述第二向量进行如下密文比较操作:
[c2,c4,…,cn-2]>[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第一比较结果comp1[i],其中,i的取值为[0,n-1];
所述调整子模块,具体用于若comp1[i]=true,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第一策略排序结果。
可选地,所述向量比较子模块,具体用于对所述第一向量和所述第二向量进行如下密文比较操作:
[c2,c4,…,cn-2]<[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第二比较结果comp2[i],其中,i的取值为[0,n-1];
所述调整子模块,具体用于若comp2[i]=true,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第二策略排序结果。
可选地,所述排序模块,具体用于在调用奇偶归并排序算法进行排序的过程中,将至少两组待比较的单个密文数据转换为向量进行比较。
可选地,所述装置还包括:
第一划分模块,用于若所述密文数据序列中密文数据的个数为2k个,则直接将所述密文数据序列对半划分为第一子序列和第二子序列;
第二划分模块,用于若所述密文数据序列中密文数据的个数不是2k个,则在所述密文数据序列中增加预设个数的预置数据,使得密文数据序列中的数据个数为2k个,将增加预置数据的密文数据序列对半划分为第一子序列和第二子序列。
可选地,所述密文数据序列由多个数据方提供的密文数据所组成。
再一方面,本发明实施例公开了一种用于数据处理的装置,所述装置用于对密文数据序列a1,a2,…,an进行排序,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
对第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an分别调用奇偶归并排序算法进行排序,得到所述第一子序列的第一排序结果和所述第二子序列的第二排序结果;
对所述第一排序结果和所述第二排序结果在奇数位上调用奇偶归并算法进行归并,得到第一有序序列b1,b3,…,bn-1,以及对所述第一排序结果和所述第二排序结果在偶数位上调用奇偶归并算法进行归并,得到第二有序序列c2,c4,…,cn;
对所述第一有序序列中的序列b3,…,bn-1和所述第二有序序列中的序列c2,c4,…,cn-2进行向量化比较,得到向量化比较结果;
根据所述向量化比较结果确定所述密文数据序列的排序结果。
可选地,所述对所述第一有序序列中的序列b3,…,bn-1和所述第二有序序列中的序列c2,c4,…,cn-2进行向量化比较,得到向量化比较结果,包括:
确定序列b3,…,bn-1对应的第一向量[b3,b5,…,bn-1]和序列c2,c4,…,cn-2对应的第二向量[c2,c4,…,cn-2];
对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果;
所述根据所述向量化比较结果确定所述密文数据序列的排序结果,包括:
对所述第一有序序列和所述第二有序序列进行合并,得到合并序列b1,c2,b3,c4,…,bn-1,cn;
根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果。
可选地,所述对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果,包括:
对所述第一向量和所述第二向量进行如下密文比较操作:
[c2,c4,…,cn-2]>[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第一比较结果comp1[i],其中,i的取值为[0,n-1];
所述根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果,包括:
若comp1[i]=true,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第一策略排序结果。
可选地,所述对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果,包括:
对所述第一向量和所述第二向量进行如下密文比较操作:
[c2,c4,…,cn-2]<[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第二比较结果comp2[i],其中,i的取值为[0,n-1];
所述根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果,包括:
若comp2[i]=true,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第二策略排序结果。
可选地,所述调用奇偶归并排序算法进行排序,包括:
在调用奇偶归并排序算法进行排序的过程中,将至少两组待比较的单个密文数据转换为向量进行比较。
可选地,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
若所述密文数据序列中密文数据的个数为2k个,则直接将所述密文数据序列对半划分为第一子序列和第二子序列;
若所述密文数据序列中密文数据的个数不是2k个,则在所述密文数据序列中增加预设个数的预置数据,使得密文数据序列中的数据个数为2k个,将增加预置数据的密文数据序列对半划分为第一子序列和第二子序列。
可选地,所述密文数据序列由多个数据方提供的密文数据所组成。
又一方面,本发明实施例公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如前述一个或多个所述的数据处理方法。
本发明实施例包括以下优点:
本发明实施例基于改进的奇偶归并排序算法对多方安全计算系统中的密文数据序列进行排序,利用奇偶归并排序算法的原地排序和非自适应排序的特点,可以在不需要额外的储存空间下进行排序,提高多方安全计算系统中排序算法的空间效率。此外,后续的排序不需要依赖前面的排序结果,可以避免暴露排序的中间结果,提高多方安全计算系统中排序算法的安全性。再者,本发明实施例将密文数据序列a1,a2,…,an划分为第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an,分别调用奇偶归并排序算法进行排序,将已有的奇偶归并排序算法中分别对奇数位和偶数位进行递归归并,改为并行的向量化归并方式,可以减少计算节点之间的通信成本,提高计算效率,以满足实时性要求较高的计算场景。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种数据处理方法实施例的步骤流程图;
图2是本发明的一种数据处理装置实施例的结构框图;
图3是本发明的一种用于数据处理的装置800的框图;
图4是本发明的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
方法实施例
参照图1,示出了本发明的一种数据处理方法实施例的步骤流程图,所述方法可用于对密文数据序列a1,a2,…,an进行排序,所述方法具体可以包括如下步骤:
步骤101、对第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an分别调用奇偶归并排序算法进行排序,得到所述第一子序列的第一排序结果和所述第二子序列的第二排序结果;
步骤102、对所述第一排序结果和所述第二排序结果在奇数位上调用奇偶归并算法进行归并,得到第一有序序列b1,b3,…,bn-1,以及对所述第一排序结果和所述第二排序结果在偶数位上调用奇偶归并算法进行归并,得到第二有序序列c2,c4,…,cn;
步骤103、对所述第一有序序列中的序列b3,…,bn-1和所述第二有序序列中的序列c2,c4,…,cn-2进行向量化比较,得到向量化比较结果;
步骤104、根据所述向量化比较结果确定所述密文数据序列的排序结果。
本发明提供的数据处理方法可应用于多方安全计算系统,具体地,可用于在多方安全计算系统中对密文数据序列a1,a2,…,an进行排序,其中,n=2k,k为大于或等于0的整数。在k=0时,n=1,直接返回结果为a1。在k=1时,n=2,直接比较a1和a2并返回比较结果。
多方安全计算系统是一种保护数据隐私安全的计算系统。本发明实施例对所述多方安全计算系统采用的安全计算协议不做限制,例如,所述多方安全计算系统可以基于多方安全计算MPC协议,在基于MPC协议的多方安全计算系统中,多个参与方可以在不泄漏自身数据的前提下,使用多方安全计算技术进行协同计算得到计算结果,参与计算的数据、中间结果、以及最终结果可以为密文。当然,所述多方安全计算系统还可以基于秘密分享、半同态、不经意传输等技术实现的多方安全计算协议。
所述密文数据序列中包含n个待排序的密文数据,需要说明的是,本发明实施例对所述密文数据序列中密文数据的来源不做限制。所述密文数据序列中的密文数据可以来自于一个或多个数据方。可选地,所述密文数据序列由多个数据方提供的密文数据所组成,通过本发明实施例可以对多个数据方的密文数据进行排序,以适用多方数据融合计算的场景。
进一步地,在多方数据融合计算的场景中,各数据方可以对各自持有的密文数据进行预排序,本发明实施例获取各数据方的有序的密文数据,根据本发明实施例提供的数据处理方法,对各数据方提供的有序的密文数据进行融合并排序,可以减少计算的开销,进一步提高多方安全计算系统中排序算法的效率。
本发明实施例利用奇偶归并排序算法对多方安全计算系统中的密文数据序列进行排序。奇偶归并排序算法是一种递归的排序算法。该算法在归并排序的基础上实现了原地排序和非自适应排序,即不需要额外的存储空间,并且后续的排序不需要依赖前面的排序结果,可以保证多方安全计算系统的安全性。
奇偶归并排序算法的核心思想是,通过递归的方式分别将奇数位和偶数位的数组进行排序,对于已经排好序的奇偶数位数组,仅需要相邻数位进行一次额外的比较就可以得到完成的排序数组。
目前的奇偶归并排序算法的步骤如下:选取所有奇数位的元素与其右侧相邻的元素进行比较,将较小的元素排序在前面;选取所有偶数位的元素与其右侧相邻的元素进行比较,将较小的元素排序在前面;重复前面两步,直到所有序列有序为止。
本发明实施例对已有的奇偶归并排序算法进行改进,将奇偶归并排序算法中分别对奇数位和偶数位进行递归归并,改为并行的向量化归并方式,以提高计算效率,满足实时性要求较高的计算场景。
对于待排序的密文数据序列a1,a2,…,an,本发明实施例先将该密文数据序列a1,a2,…,an划分为第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an。对第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an分别调用奇偶归并排序算法进行排序,得到所述第一子序列的第一排序结果和所述第二子序列的第二排序结果。
一个示例中,假设密文数据序列a1,a2,…,an为6,4,1,7,5,3,8,2。也即,该密文数据序列包含8(n=8)个密文数据,其中,a1=6,a2=4,a3=1,a4=7,a5=5,a6=3,a7=8,a8=2。需要说明的是,该密文数据序列中的数据均为密文数据,为便于描述,以明文示出。
需要说明的是,本发明实施例可以对密文数据序列按照指定的排序策略进行排序,所述排序策略可以包括从小到大排序或者从大到小排序。两种排序策略的排序过程相似,本发明实施例中主要以从小到大排序为例进行说明。
在该示例中,首先将该密文数据序列a1,a2,…,an划分为对第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an,第一子序列为6,4,1,7,第二子序列为5,3,8,2。
然后,对第一子序列6,4,1,7和第二子序列5,3,8,2分别调用奇偶归并排序算法进行排序,得到所述第一子序列的第一排序结果1,4,6,7和所述第二子序列的第二排序结果2,3,5,8。
再对所述第一排序结果和所述第二排序结果在奇数位上调用奇偶归并算法进行归并,得到第一有序序列b1,b3,…,bn-1,以及对所述第一排序结果和所述第二排序结果在偶数位上调用奇偶归并算法进行归并,得到第二有序序列c2,c4,…,cn。
其中,归并指的是将两个有序序列合并成一个有序序列。在该示例中,对所述第一排序结果1,4,6,7和所述第二排序结果2,3,5,8在奇数位上调用奇偶归并算法进行归并。具体地,第一排序结果1,4,6,7的奇数位包括第1位(对应密文数据1)和第3位(对应密文数据6)。第二排序结果2,3,5,8的奇数位包括第1位(对应密文数据2)和第3位(对应密文数据5)。因此,对所述第一排序结果1,4,6,7和所述第二排序结果2,3,5,8在奇数位上调用奇偶归并算法进行归并,指将1,6和2,5合并为一个有序序列,得到第一有序序列b1,b3,b5,b7,其中,b1=1,b3=2,b5=5,b7=6,也即,第一有序序列为1,2,5,6。
同样地,对所述第一排序结果1,4,6,7和所述第二排序结果2,3,5,8在偶数位上调用奇偶归并算法进行归并。具体地,第一排序结果1,4,6,7的偶数位包括第2位(对应密文数据4)和第4位(对应密文数据7)。第二排序结果2,3,5,8的偶数位包括第2位(对应密文数据3)和第4位(对应密文数据8)。因此,对所述第一排序结果1,4,6,7和所述第二排序结果2,3,5,8在偶数位上调用奇偶归并算法进行归并,指将4,7和3,8合并为一个有序序列,得到第二有序序列c2,c4,c6,c8,其中,c2=3,c4=4,c6=7,c8=8,也即,第二有序序列为3,4,7,8。
在从小到大排序时,在得到第一有序序列和第二有序序列之后,可以确定第一有序序列中的第一个数据是所述密文数据序列中最小的,以及确定所述第二有序序列中的最后一个数据时所述密文数据序列中最大的。反之,在从大到小排序时,在得到第一有序序列和第二有序序列之后,可以确定第一有序序列中的第一个数据是所述密文数据序列中最大的,以及确定所述第二有序序列中的最后一个数据时所述密文数据序列中最小的。也即,排序结果中的第一个数据和最后一个数据已经确定,因此,接下来,对所述第一有序序列中的序列b3,…,bn-1和所述第二有序序列中的序列c2,c4,…,cn-2进行向量化比较,得到向量化比较结果,进而可以根据所述向量化比较结果确定所述密文数据序列的排序结果。
其中,向量化比较,指在待比较的数据个数大于2的情况下,将单个数据元素之间的比较操作转换为向量之间的比较操作。
在本发明的一种可选实施例中,所述调用奇偶归并排序算法进行排序,包括:在调用奇偶归并排序算法进行排序的过程中,将至少两组待比较的单个密文数据转换为向量进行比较。
例如,在对1,6和2,5,以及4,7和3,8递归调用奇偶归并排序算法的时候,需要进行两次2>5和4>7的比较操作,每一次的比较操作,都需要多方安全计算系统中的计算节点进行通信,而多方安全计算系统中计算节点之间进行通信的开销将直接影响整个计算的效率,因此,为了减少比较操作带来的通信开销,本发明实施例将单个数据元素之间的比较操作转换为向量之间的比较操作。例如,将2>5以及4>7这两次单个数据元素之间的比较操作转换为如下向量之间的比较操作:[2,4]>[5,7],这样,只需要执行一次向量的比较操作即可代替两次单个密文数据的比较操作,可以减少计算节点之间的通信开销,进而可以提高比较操作的效率。
由于基于秘密分享、半同态、不经意传输等技术实现的多方安全计算协议,进行比较操作的开销远远大于加乘等运算带来的开销,而且向量化的比较开销要远远小于单独比较向量中每个元素所带来的开销之和。因此,本发明实施例在多方安全计算系统中对奇偶归并排序算法原有的递归方式进行了改进,用向量化比较代替原有的单独元素比较的方式,进而可以对递归之后的较小规模数组归并也进行向量化的比较操作,进一步提高了奇偶归并排序算法在多方安全计算系统中的性能。
在本发明的一种可选实施例中,步骤103所述对所述第一有序序列中的序列b3,…,bn-1和所述第二有序序列中的序列c2,c4,…,cn-2进行向量化比较,得到向量化比较结果,具体可以包括:
步骤S11、确定序列b3,…,bn-1对应的第一向量[b3,b5,…,bn-1]和序列c2,c4,…,cn-2对应的第二向量[c2,c4,…,cn-2];
步骤S12、对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果;
步骤104所述根据所述向量化比较结果确定所述密文数据序列的排序结果,具体可以包括:
步骤S21、对所述第一有序序列和所述第二有序序列进行合并,得到合并序列b1,c2,b3,c4,…,bn-1,cn;
步骤S22、根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果。
仍以上述示例为例,第一有序序列b1,b3,b5,b7为1,2,5,6,第二有序序列c2,c4,c6,c8为3,4,7,8。本发明实施例确定第一有序序列中序列b3,b5,b7对应的第一向量为[b3,b5,b7],即[2,5,6],以及确定第二有序序列中序列c2,c4,c6对应的第二向量为[c2,c4,c6],即[3,4,7]。
对所述第一有序序列1,2,5,6和所述第二有序序列3,4,7,8进行合并,可以得到合并序列b1,c2,b3,c4,b5,c6,b7,c8,即1,3,2,4,5,7,6,8。本发明实施例对所述第一向量[2,5,6]和所述第二向量[3,4,7]进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果,并且根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果。
需要说明的是,对于不同的排序策略,本发明实施例根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行不同的调整,得到符合所述排序策略的排序结果。例如,在所述排序策略为从小到大排序的情况下,对所述第一向量[2,5,6]和所述第二向量[3,4,7]进行密文比较之后,如果确定其中密文数据2小于密文数据3,则应该在合并序列中调换密文数据2和密文数据3的位置。在所述排序策略为从大到小排序的情况下,如果确定其中密文数据2小于密文数据3,则无需在合并序列中调换密文数据2和密文数据3的位置。
在本发明的一种可选实施例中,步骤S12所述对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果,具体可以包括:
对所述第一向量和所述第二向量进行如下密文比较操作:
[c2,c4,…,cn-2]>[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第一比较结果comp1[i],其中,i的取值为[0,n-1];
步骤S22所述根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果,具体可以包括:
若comp1[i]=true,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第一策略排序结果。
在排序策略为从小到大排序的情况下,本发明实施例执行如下密文比较操作:[c2,c4,…,cn-2]>[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第一比较结果comp1[i],其中,i的取值为[0,n-1]。i=0时,表示第一向量和第二向量中第1位密文数据的比较结果(即c2>b3的比较结果);i=1时,表示第一向量和第二向量中第2位密文数据的比较结果(即c4>b5的比较结果);以此类推,i=n-1时,表示第一向量和第二向量中第n位密文数据的比较结果(即cn-2>bn-1的比较结果)。
若comp1[i]=true,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第一策略排序结果。第一策略排序结果指从小到大的排序结果。
例如,在上述示例中,合并序列为b1,c2,b3,c4,b5,c6,b7,c8,即1,3,2,4,5,7,6,8。当i=0时,由于comp1[0]=true,因此,在合并序列1,3,2,4,5,7,6,8中交换c2(对应密文数据3)和b3(对应密文数据2)的排序位置。同样的,当i=2时,由于comp1[2]=true,因此,在合并序列1,3,2,4,5,7,6,8中交换c6(对应密文数据7)和b7(对应密文数据6)的排序位置。最终得到所述密文数据序列6,4,1,7,5,3,8,2的第一策略排序结果为1,2,3,4,5,6,7,8。
在本发明的一种可选实施例中,步骤S12所述对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果,具体可以包括:
对所述第一向量和所述第二向量进行如下密文比较操作:
[c2,c4,…,cn-2]<[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第二比较结果comp2[i],其中,i的取值为[0,n-1];
步骤S22所述根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果,具体可以包括:
若comp2[i]=true,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第二策略排序结果。
在排序策略为从大到小排序的情况下,本发明实施例执行如下密文比较操作:[c2,c4,…,cn-2]<[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第二比较结果comp2[i],其中,i的取值为[0,n-1]。i=0时,表示第一向量和第二向量中第1位密文数据的比较结果(即c2<b3的比较结果);i=1时,表示第一向量和第二向量中第2位密文数据的比较结果(即c4<b5的比较结果);以此类推,i=n-1时,表示第一向量和第二向量中第n位密文数据的比较结果(即cn-2<bn-1的比较结果)。
若comp2[i]=true,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第二策略排序结果。第二策略排序结果指从大到小的排序结果。
例如,在上述示例中,假设密文数据序列a1,a2,…,an为6,4,1,7,5,3,8,2。在排序策略为从大到小排序的情况下,对第一子序列6,4,1,7和第二子序列5,3,8,2分别调用奇偶归并排序算法进行排序,得到所述第一子序列的第一排序结果7,6,4,1和所述第二子序列的第二排序结果8,5,3,2。再对第一排序结果7,6,4,1和第二排序结果8,5,3,2在奇数位上调用奇偶归并算法进行归并,得到第一有序序列b1,b3,b5,b7为8,7,4,3,以及对所述第一排序结果和所述第二排序结果在偶数位上调用奇偶归并算法进行归并,得到第二有序序列c2,c4,c6,c8为6,5,2,1。对第一有序序列8,7,4,3和第二有序序列6,5,2,1合并,得到合并序列b1,c2,b3,c4,b5,c6,b7,c8为8,6,7,5,4,2,3,1,其中,b1=8,c2=6,b3=7,c4=5,b5=4,c6=2,b7=3,c8=1。此时,确定第一向量[b3,b5,b7]为[7,4,3],第二向量[c2,c4,c6]为[6,5,2]。
对第一向量[b3,b5,b7]和第二向量[c2,c4,c6]进行如下比较操作:
[b3,b5,b7]<[c2,c4,c6],得到所述第一向量和所述第二向量对应位的第二比较结果comp2[i]。当i=0时,由于comp2[0]=true,因此,在合并序列8,6,7,5,4,2,3,1中交换c2(对应密文数据6)和b3(对应密文数据7)的排序位置。同样的,当i=2时,由于comp2[2]=true,因此,在合并序列8,6,7,5,4,2,3,1中交换c6(对应密文数据2)和b7(对应密文数据3)的排序位置。最终得到所述密文数据序列6,4,1,7,5,3,8,2的第二策略排序结果为8,7,6,5,4,3,2,1。
在排序策略为从小到大排序的情况下,可选地,步骤S12所述对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果,具体可以包括:
对所述第一向量和所述第二向量进行如下密文比较操作:
[c2,c4,…,cn-2]<[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第一比较结果comp1[i],其中,i的取值为[0,n-1];
步骤S22所述根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果,具体可以包括:
若comp1[i]=false,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第一策略排序结果。
在排序策略为从小到大排序的情况下,可选地,步骤S12所述对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果,具体可以包括:
对所述第一向量和所述第二向量进行如下密文比较操作:
[c2,c4,…,cn-2]>[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第二比较结果comp2[i],其中,i的取值为[0,n-1];
步骤S22所述根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果,具体可以包括:
若comp2[i]=false,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第二策略排序结果。
在本发明的一种可选实施例中,步骤101中所述对第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an分别调用奇偶归并排序算法进行排序之前,所述方法还可以包括:
步骤S31、若所述密文数据序列中密文数据的个数为2k个,则直接将所述密文数据序列对半划分为第一子序列和第二子序列;
步骤S32、若所述密文数据序列中密文数据的个数不是2k个,则在所述密文数据序列中增加预设个数的预置数据,使得密文数据序列中的数据个数为2k个,将增加预置数据的密文数据序列对半划分为第一子序列和第二子序列。
如果密文数据序列中密文数据的个数为2k个,k为大于或等于0的整数,可以直接将密文数据序列对半划分为第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an。如上述示例所示的密文数据序列6,4,1,7,5,3,8,2,该密文数据序列包含8(n=8)个密文数据,则可以直接对半划分为第一子序列6,4,1,7和第二子序列5,3,8,2。在k=0时,n=1,直接返回结果为a1。在k=1时,n=2,直接比较a1和a2并返回比较结果。
如果密文数据序列中密文数据的个数不是2k个,则在所述密文数据序列中增加预设个数的预置数据,使得密文数据序列中的数据个数为2k个,将增加预置数据的密文数据序列对半划分为第一子序列和第二子序列。
进一步地,在从小到大排序时,所述预置数据可以为一个极大值;在从大到小排序时,所述预置数据可以为一个极小值。可选地,增加的预置数据可以为系统支持的最大数量级的数值(极大值),或者,增加的预置数据可以为系统支持的最小数量级的数值(极小值)。增加的预置数据可以为密文数据。
本发明实施例可以根据不同的数据类型设置对应数据类型的预置数据。在多方安全计算系统中,系统可以支持整型和用定点数表示的小数类型,因此,本发明实施例的密文数据序列中密文数据的数据类型可以包括整型、小数类型等。以整型为例,假设系统最大支持int32的密文数据类型,则在从小到大排序时,可以设置增加的预置数据为2^31-1;在从大到小排序时,可以设置增加的预置数据为-2^32。其中,^为幂次计算。
需要说明的是,在密文数据序列中密文数据的个数不是2k个的情况下,增加预置数据的预设个数可以根据存储所述密文数据序列的数组的长度确定。在密文数据序列中增加预设个数的预置数据之后,使得增加预置数据后密文数据序列中的数据个数为2k个,k的取值满足2^{k-1}<m<=2^{k},m为存储该密文数据序列的数组的长度。比如密文数据序列包含13个密文数据,存储该密文数据序列的数组的长度为16,则需要增加3个预置数据,增加预置数据后密文数据序列中的数据个数为16个。
需要说明的是,若所述密文数据序列a1,a2,…,an中密文数据的个数不是2k个,则在所述密文数据序列中增加预设个数的预置数据,使得密文数据序列中的数据个数为2k个。在增加预置数据的情况下,在从小到大排序时,排序结果应取第一策略排序结果中的前n个密文数据(除去增加的预置数据)。在从大到小排序时,排序结果应取第二策略排序结果中的前n个密文数据(除去增加的预置数据)。
综上,本发明实施例基于改进的奇偶归并排序算法对多方安全计算系统中的密文数据序列进行排序,利用奇偶归并排序算法的原地排序和非自适应排序的特点,可以在不需要额外的储存空间下进行排序,提高多方安全计算系统中排序算法的空间效率。此外,后续的排序不需要依赖前面的排序结果,可以避免暴露排序的中间结果,提高多方安全计算系统中排序算法的安全性。再者,本发明实施例将密文数据序列a1,a2,…,an划分为第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an,分别调用奇偶归并排序算法进行排序,将已有的奇偶归并排序算法中分别对奇数位和偶数位进行递归归并,改为并行的向量化归并方式,可以减少计算节点之间的通信成本,提高计算效率,以满足实时性要求较高的计算场景。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
装置实施例
参照图2,示出了本发明的一种数据处理装置实施例的结构框图,所述装置用于对密文数据序列a1,a2,…,an进行排序,所述装置具体可以包括:
排序模块201,用于对第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an分别调用奇偶归并排序算法进行排序,得到所述第一子序列的第一排序结果和所述第二子序列的第二排序结果;
归并模块202,用于对所述第一排序结果和所述第二排序结果在奇数位上调用奇偶归并算法进行归并,得到第一有序序列b1,b3,…,bn-1,以及对所述第一排序结果和所述第二排序结果在偶数位上调用奇偶归并算法进行归并,得到第二有序序列c2,c4,…,cn;
比较模块203,用于对所述第一有序序列中的序列b3,…,bn-1和所述第二有序序列中的序列c2,c4,…,cn-2进行向量化比较,得到向量化比较结果;
调整模块204,用于根据所述向量化比较结果确定所述密文数据序列的排序结果。
可选地,所述比较模块,包括:
向量确定子模块,用于确定序列b3,…,bn-1对应的第一向量[b3,b5,…,bn-1]和序列c2,c4,…,cn-2对应的第二向量[c2,c4,…,cn-2];
向量比较子模块,用于对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果;
所述调整模块,包括:
合并子模块,用于对所述第一有序序列和所述第二有序序列进行合并,得到合并序列b1,c2,b3,c4,…,bn-1,cn;
调整子模块,用于根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果。
可选地,所述向量比较子模块,具体用于对所述第一向量和所述第二向量进行如下密文比较操作:
[c2,c4,…,cn-2]>[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第一比较结果comp1[i],其中,i的取值为[0,n-1];
所述调整子模块,具体用于若comp1[i]=true,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第一策略排序结果。
可选地,所述向量比较子模块,具体用于对所述第一向量和所述第二向量进行如下密文比较操作:
[c2,c4,…,cn-2]<[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第二比较结果comp2[i],其中,i的取值为[0,n-1];
所述调整子模块,具体用于若comp2[i]=true,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第二策略排序结果。
可选地,所述排序模块,具体用于在调用奇偶归并排序算法进行排序的过程中,将至少两组待比较的单个密文数据转换为向量进行比较。
可选地,所述装置还包括:
第一划分模块,用于若所述密文数据序列中密文数据的个数为2k个,则直接将所述密文数据序列对半划分为第一子序列和第二子序列;
第二划分模块,用于若所述密文数据序列中密文数据的个数不是2k个,则在所述密文数据序列中增加预设个数的预置数据,使得密文数据序列中的数据个数为2k个,将增加预置数据的密文数据序列对半划分为第一子序列和第二子序列。
可选地,所述密文数据序列由多个数据方提供的密文数据所组成。
本发明实施例基于改进的奇偶归并排序算法对多方安全计算系统中的密文数据序列进行排序,利用奇偶归并排序算法的原地排序和非自适应排序的特点,可以在不需要额外的储存空间下进行排序,提高多方安全计算系统中排序算法的空间效率。此外,后续的排序不需要依赖前面的排序结果,可以避免暴露排序的中间结果,提高多方安全计算系统中排序算法的安全性。再者,本发明实施例将密文数据序列a1,a2,…,an划分为第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an,分别调用奇偶归并排序算法进行排序,将已有的奇偶归并排序算法中分别对奇数位和偶数位进行递归归并,改为并行的向量化归并方式,可以减少计算节点之间的通信成本,提高计算效率,以满足实时性要求较高的计算场景。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供了一种用于数据处理的装置,所述装置用于对密文数据序列a1,a2,…,an进行排序,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:对第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an分别调用奇偶归并排序算法进行排序,得到所述第一子序列的第一排序结果和所述第二子序列的第二排序结果;对所述第一排序结果和所述第二排序结果在奇数位上调用奇偶归并算法进行归并,得到第一有序序列b1,b3,…,bn-1,以及对所述第一排序结果和所述第二排序结果在偶数位上调用奇偶归并算法进行归并,得到第二有序序列c2,c4,…,cn;对所述第一有序序列中的序列b3,…,bn-1和所述第二有序序列中的序列c2,c4,…,cn-2进行向量化比较,得到向量化比较结果;根据所述向量化比较结果确定所述密文数据序列的排序结果。
图3是根据一示例性实施例示出的一种用于数据处理的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图3,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频信息处理(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图4是本发明的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行图1所示的数据处理方法。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行一种数据处理方法,所述方法包括:对第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an分别调用奇偶归并排序算法进行排序,得到所述第一子序列的第一排序结果和所述第二子序列的第二排序结果;对所述第一排序结果和所述第二排序结果在奇数位上调用奇偶归并算法进行归并,得到第一有序序列b1,b3,…,bn-1,以及对所述第一排序结果和所述第二排序结果在偶数位上调用奇偶归并算法进行归并,得到第二有序序列c2,c4,…,cn;对所述第一有序序列中的序列b3,…,bn-1和所述第二有序序列中的序列c2,c4,…,cn-2进行向量化比较,得到向量化比较结果;根据所述向量化比较结果确定所述密文数据序列的排序结果。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上对本发明所提供的一种数据处理方法、一种数据处理装置和一种用于数据处理的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法用于对密文数据序列a1,a2,…,an进行排序,所述方法包括:
对第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an分别调用奇偶归并排序算法进行排序,得到所述第一子序列的第一排序结果和所述第二子序列的第二排序结果;
对所述第一排序结果和所述第二排序结果在奇数位上调用奇偶归并算法进行归并,得到第一有序序列b1,b3,…,bn-1,以及对所述第一排序结果和所述第二排序结果在偶数位上调用奇偶归并算法进行归并,得到第二有序序列c2,c4,…,cn;
对所述第一有序序列中的序列b3,…,bn-1和所述第二有序序列中的序列c2,c4,…,cn-2进行向量化比较,得到向量化比较结果;
根据所述向量化比较结果确定所述密文数据序列的排序结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一有序序列中的序列b3,…,bn-1和所述第二有序序列中的序列c2,c4,…,cn-2进行向量化比较,得到向量化比较结果,包括:
确定序列b3,…,bn-1对应的第一向量[b3,b5,…,bn-1]和序列c2,c4,…,cn-2对应的第二向量[c2,c4,…,cn-2];
对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果;
所述根据所述向量化比较结果确定所述密文数据序列的排序结果,包括:
对所述第一有序序列和所述第二有序序列进行合并,得到合并序列b1,c2,b3,c4,…,bn-1,cn;
根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果。
3.根据权利要求2所述的方法,其特征在于,所述对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果,包括:
对所述第一向量和所述第二向量进行如下密文比较操作:
[c2,c4,…,cn-2]>[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第一比较结果comp1[i],其中,i的取值为[0,n-1];
所述根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果,包括:
若comp1[i]=true,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第一策略排序结果。
4.根据权利要求2所述的方法,其特征在于,所述对所述第一向量和所述第二向量进行密文比较,得到所述第一向量和所述第二向量对应位的比较结果,包括:
对所述第一向量和所述第二向量进行如下密文比较操作:
[c2,c4,…,cn-2]<[b3,b5,…,bn-1],得到所述第一向量和所述第二向量对应位的第二比较结果comp2[i],其中,i的取值为[0,n-1];
所述根据所述第一向量和所述第二向量对应位的比较结果,对所述合并序列的排序进行调整,得到所述密文数据序列的排序结果,包括:
若comp2[i]=true,则交换c2i+2和b2i+3在所述合并序列中的排序位置,得到所述密文数据序列的第二策略排序结果。
5.根据权利要求1所述的方法,其特征在于,所述调用奇偶归并排序算法进行排序,包括:
在调用奇偶归并排序算法进行排序的过程中,将至少两组待比较的单个密文数据转换为向量进行比较。
6.根据权利要求1所述的方法,其特征在于,所述对第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an分别调用奇偶归并排序算法进行排序之前,所述方法还包括:
若所述密文数据序列中密文数据的个数为2k个,则直接将所述密文数据序列对半划分为第一子序列和第二子序列;
若所述密文数据序列中密文数据的个数不是2k个,则在所述密文数据序列中增加预设个数的预置数据,使得密文数据序列中的数据个数为2k个,将增加预置数据的密文数据序列对半划分为第一子序列和第二子序列。
7.根据权利要求1所述的方法,其特征在于,所述密文数据序列由多个数据方提供的密文数据所组成。
8.一种数据处理装置,其特征在于,所述装置用于对密文数据序列a1,a2,…,an进行排序,所述装置包括:
排序模块,用于对第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an分别调用奇偶归并排序算法进行排序,得到所述第一子序列的第一排序结果和所述第二子序列的第二排序结果;
归并模块,用于对所述第一排序结果和所述第二排序结果在奇数位上调用奇偶归并算法进行归并,得到第一有序序列b1,b3,…,bn-1,以及对所述第一排序结果和所述第二排序结果在偶数位上调用奇偶归并算法进行归并,得到第二有序序列c2,c4,…,cn;
比较模块,用于对所述第一有序序列中的序列b3,…,bn-1和所述第二有序序列中的序列c2,c4,…,cn-2进行向量化比较,得到向量化比较结果;
调整模块,用于根据所述向量化比较结果确定所述密文数据序列的排序结果。
9.一种用于数据处理的装置,其特征在于,所述装置用于对密文数据序列a1,a2,…,an进行排序,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
对第一子序列a1,a2,…,an/2和第二子序列an/2+1,an/2+2,…,an分别调用奇偶归并排序算法进行排序,得到所述第一子序列的第一排序结果和所述第二子序列的第二排序结果;
对所述第一排序结果和所述第二排序结果在奇数位上调用奇偶归并算法进行归并,得到第一有序序列b1,b3,…,bn-1,以及对所述第一排序结果和所述第二排序结果在偶数位上调用奇偶归并算法进行归并,得到第二有序序列c2,c4,…,cn;
对所述第一有序序列中的序列b3,…,bn-1和所述第二有序序列中的序列c2,c4,…,cn-2进行向量化比较,得到向量化比较结果;
根据所述向量化比较结果确定所述密文数据序列的排序结果。
10.一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求1至7任一所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110015252.1A CN112861145B (zh) | 2021-01-06 | 2021-01-06 | 一种数据处理方法、装置和用于数据处理的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110015252.1A CN112861145B (zh) | 2021-01-06 | 2021-01-06 | 一种数据处理方法、装置和用于数据处理的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112861145A true CN112861145A (zh) | 2021-05-28 |
CN112861145B CN112861145B (zh) | 2023-12-12 |
Family
ID=76004431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110015252.1A Active CN112861145B (zh) | 2021-01-06 | 2021-01-06 | 一种数据处理方法、装置和用于数据处理的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112861145B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153854A (zh) * | 2022-02-09 | 2022-03-08 | 支付宝(杭州)信息技术有限公司 | 一种基于秘密分享的多键分组信息获取方法和系统 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63253469A (ja) * | 1987-04-10 | 1988-10-20 | Hitachi Ltd | ベクトル処理装置 |
US6091723A (en) * | 1997-10-22 | 2000-07-18 | Lucent Technologies, Inc. | Sorting networks having improved layouts |
US20050144167A1 (en) * | 2002-04-26 | 2005-06-30 | Nihon University School Juridical Person | Parallel merge/sort processing device, method, and program |
CN103530084A (zh) * | 2013-09-26 | 2014-01-22 | 北京奇虎科技有限公司 | 一种数据并行排序方法和系统 |
US20150269119A1 (en) * | 2014-03-19 | 2015-09-24 | International Business Machines Corporation | Merging and Sorting Arrays on an SIMD Processor |
WO2016056502A1 (ja) * | 2014-10-08 | 2016-04-14 | 日本電信電話株式会社 | 非減少列判定装置、非減少列判定方法及びプログラム |
CN105573843A (zh) * | 2015-12-22 | 2016-05-11 | 北京兆易创新科技股份有限公司 | 一种数据处理方法和系统 |
CN105740264A (zh) * | 2014-12-10 | 2016-07-06 | 北大方正集团有限公司 | 一种分布式xml数据库的排序方法及装置 |
CN108733352A (zh) * | 2017-04-25 | 2018-11-02 | 上海寒武纪信息科技有限公司 | 支持向量排序的装置、方法及应用 |
CN108833052A (zh) * | 2018-04-26 | 2018-11-16 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 信道极化译码路径度量值排序方法 |
CN108959179A (zh) * | 2017-05-25 | 2018-12-07 | 三星电子株式会社 | 向量处理器的序列对齐方法 |
CN109002467A (zh) * | 2018-06-08 | 2018-12-14 | 中国科学院计算技术研究所 | 一种基于向量化执行的数据库排序方法及系统 |
CN110413849A (zh) * | 2019-07-22 | 2019-11-05 | 上海赜睿信息科技有限公司 | 一种数据排序方法及装置 |
CN111651137A (zh) * | 2020-05-29 | 2020-09-11 | Oppo广东移动通信有限公司 | 排序方法、装置、电子装置以及计算机设备 |
CN111913955A (zh) * | 2020-06-22 | 2020-11-10 | 中科驭数(北京)科技有限公司 | 数据的排序处理装置、方法和存储介质 |
-
2021
- 2021-01-06 CN CN202110015252.1A patent/CN112861145B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63253469A (ja) * | 1987-04-10 | 1988-10-20 | Hitachi Ltd | ベクトル処理装置 |
US6091723A (en) * | 1997-10-22 | 2000-07-18 | Lucent Technologies, Inc. | Sorting networks having improved layouts |
US20050144167A1 (en) * | 2002-04-26 | 2005-06-30 | Nihon University School Juridical Person | Parallel merge/sort processing device, method, and program |
CN103530084A (zh) * | 2013-09-26 | 2014-01-22 | 北京奇虎科技有限公司 | 一种数据并行排序方法和系统 |
US20150269119A1 (en) * | 2014-03-19 | 2015-09-24 | International Business Machines Corporation | Merging and Sorting Arrays on an SIMD Processor |
WO2016056502A1 (ja) * | 2014-10-08 | 2016-04-14 | 日本電信電話株式会社 | 非減少列判定装置、非減少列判定方法及びプログラム |
CN105740264A (zh) * | 2014-12-10 | 2016-07-06 | 北大方正集团有限公司 | 一种分布式xml数据库的排序方法及装置 |
CN105573843A (zh) * | 2015-12-22 | 2016-05-11 | 北京兆易创新科技股份有限公司 | 一种数据处理方法和系统 |
CN108733352A (zh) * | 2017-04-25 | 2018-11-02 | 上海寒武纪信息科技有限公司 | 支持向量排序的装置、方法及应用 |
CN108959179A (zh) * | 2017-05-25 | 2018-12-07 | 三星电子株式会社 | 向量处理器的序列对齐方法 |
CN108833052A (zh) * | 2018-04-26 | 2018-11-16 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 信道极化译码路径度量值排序方法 |
CN109002467A (zh) * | 2018-06-08 | 2018-12-14 | 中国科学院计算技术研究所 | 一种基于向量化执行的数据库排序方法及系统 |
CN110413849A (zh) * | 2019-07-22 | 2019-11-05 | 上海赜睿信息科技有限公司 | 一种数据排序方法及装置 |
CN111651137A (zh) * | 2020-05-29 | 2020-09-11 | Oppo广东移动通信有限公司 | 排序方法、装置、电子装置以及计算机设备 |
CN111913955A (zh) * | 2020-06-22 | 2020-11-10 | 中科驭数(北京)科技有限公司 | 数据的排序处理装置、方法和存储介质 |
Non-Patent Citations (2)
Title |
---|
UDAY A. KORAT: "An efficient hardware implementation of vector-based odd-even merge sorting", 《 2017 IEEE 8TH ANNUAL UBIQUITOUS COMPUTING, ELECTRONICS AND MOBILE COMMUNICATION CONFERENCE (UEMCON)》 * |
陈寿文: "递归策略求解数据结构中归并排序算法", 《信息科技》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153854A (zh) * | 2022-02-09 | 2022-03-08 | 支付宝(杭州)信息技术有限公司 | 一种基于秘密分享的多键分组信息获取方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112861145B (zh) | 2023-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115396101B (zh) | 一种基于秘密分享的不经意打乱方法和系统 | |
CN115396100B (zh) | 一种基于秘密分享的不经意随机打乱方法和系统 | |
CN112241250B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113392422B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113449325B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112861175A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114969830B (zh) | 一种隐私求交方法、系统和可读存储介质 | |
CN113032839B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN115085912A (zh) | 一种密文计算方法、装置和用于密文计算的装置 | |
CN112464257B (zh) | 一种数据检测方法、装置和用于数据检测的装置 | |
CN113824550A (zh) | 一种数据处理方法、密文计算平台和明密文混合计算系统 | |
CN112861145B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113051610A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN115617897B (zh) | 一种数据类型转换方法和多方安全计算系统 | |
CN115941181B (zh) | 一种乱序秘密分享方法、系统和可读存储介质 | |
CN114885038B (zh) | 一种加密协议转换方法、结果获取节点和隐私计算节点 | |
CN112685747B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112468290B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112580064B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112463332A (zh) | 一种数据处理方法、密文计算系统和用于数据处理的装置 | |
CN114969164B (zh) | 一种数据查询方法、装置和可读存储介质 | |
CN112668015B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113779501B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113326477B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113392421B (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 |