CN114840568B - 一种密文排序方法、装置和用于密文排序的装置 - Google Patents
一种密文排序方法、装置和用于密文排序的装置 Download PDFInfo
- Publication number
- CN114840568B CN114840568B CN202210777764.6A CN202210777764A CN114840568B CN 114840568 B CN114840568 B CN 114840568B CN 202210777764 A CN202210777764 A CN 202210777764A CN 114840568 B CN114840568 B CN 114840568B
- Authority
- CN
- China
- Prior art keywords
- array
- elements
- sorting
- dimension
- ciphertext
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供一种密文排序方法、装置和用于密文排序的装置。其中的方法包括:获取第一数组X和第二数组Y;依据所述第一数组X中的元素取值对第一数组X进行排序,得到数组M;基于所述数组M中元素的排列顺序对所述第二数组Y进行排序,得到数组K;基于所述数组M中元素的排列顺序,以及所述数组K中元素的取值范围,确定基准数组F;将所述基准数组F与所述数组K按元素相加,得到第三数组Z,Z=F+K;按照元素取值对所述第三数组Z中的元素进行排序,得到排序后的第三数组Z;根据所述排序后的第三数组Z中元素的排列顺序,对所述数组K进行排序,得到结果数组A。本发明实施例可以基于两个不同的维度对密文数据进行二次排序。
Description
技术领域
本发明涉及多方安全计算领域,尤其涉及一种密文排序方法、装置和用于密文排序的装置。
背景技术
随着计算机、通讯技术以及互联网技术的不断发展,大多数用户会通过电子设备进行信息的传输与存储,例如将文件上传到云端存储,向其他用户发送文件等等。其中,为了保证信息的安全,通常会对数据进行加密,例如在数据存储的过程中,会在对应存储的电子设备上对数据进行加密,如在服务器、终端上进行数据加密;又如在数据传输的过程中对数据进行加密,如数据在终端与服务器传输的过程中对数据进行加密。
当电子设备需要使用这些数据时,需要先对数据进行解密,获取信息的明文后,再对数据进行相应的处理,从而导致信息存在安全隐患。例如,在电子支付场景中,用户用于支付的人脸数据明文在支付运算中对银联可见,若该人脸数据被窃取,同时将该人脸数据与对应的用户账户等信息关联,那么会对用户造成很大风险。为解决该问题,可以基于密文进行数据计算,以充分保证用户信息的安全性。
通常在基于密文计算的某些场景下,需要对数据进行排序。在密文计算场景下,按照一个字段或一种属性对数组进行排序的方法已经有很多,但是当需要根据多个字段或属性对数组进行二次排序时,现有技术无法在不暴露数据信息的情况下,对数组进行二次排序。
发明内容
本发明实施例提供一种密文排序方法、装置和用于密文排序的装置,可以基于两个不同的维度对密文数据进行二次排序。
为了解决上述问题,本发明实施例公开了一种密文排序方法,所述方法用于对包含至少两个维度的密文数据进行二次排序,基于第一维度进行一次排序,基于第二维度进行二次排序,其中第一维度和第二维度的数值组成的数组分别为第一数组X和第二数组Y,所述方法包括:
获取第一数组X和第二数组Y,所述第一数组X和所述第二数组Y均包含n个值为密文的元素,n为正整数,所述第一数组X中的元素与所述第二数组Y中的元素一一对应;
依据所述第一数组X中的元素取值对第一数组X进行排序,得到数组M;
基于所述数组M中元素的排列顺序对所述第二数组Y进行排序,得到数组K,所述数组M中的元素与所述数组K中元素的对应关系保持不变;
基于所述数组M中元素的排列顺序,以及所述数组K中元素的取值范围,确定基准数组F,所述基准数组F用于指示所述数组K中各个元素所属的位置区间;
将所述基准数组F与所述数组K按元素相加,得到第三数组Z,Z=F+K;
按照元素取值对所述第三数组Z中的元素进行排序,得到排序后的第三数组Z;
根据所述排序后的第三数组Z中元素的排列顺序,对所述数组K进行排序,得到结果数组A。
另一方面,本发明实施例公开了一种密文排序装置,所述装置用于对包含至少两个维度的密文数据进行二次排序,基于第一维度进行一次排序,基于第二维度进行二次排序,其中第一维度和第二维度的数值组成的数组分别为第一数组X和第二数组Y,所述装置包括:
数组获取模块,用于获取第一数组X和第二数组Y,所述第一数组X和所述第二数组Y均包含n个值为密文的元素,n为正整数,所述第一数组X中的元素与所述第二数组Y中的元素一一对应;
第一排序模块,用于依据所述第一数组X中的元素取值对第一数组X进行排序,得到数组M;
第二排序模块,用于基于所述数组M中元素的排列顺序对所述第二数组Y进行排序,得到数组K,所述数组M中的元素与所述数组K中元素的对应关系保持不变;
基准数组确定模块,用于基于所述数组M中元素的排列顺序,以及所述数组K中元素的取值范围,确定基准数组F,所述基准数组F用于指示所述数组K中各个元素所属的位置区间;
数组运算模块,用于将所述基准数组F与所述数组K按元素相加,得到第三数组Z,Z=F+K;
第三排序模块,用于按照元素取值对所述第三数组Z中的元素进行排序,得到排序后的第三数组Z;
第四排序模块,用于根据所述排序后的第三数组Z中元素的排列顺序,对所述数组K进行排序,得到结果数组A。
再一方面,本发明实施例公开了一种用于密文排序的装置,所述装置用于对包含至少两个维度的密文数据进行二次排序,基于第一维度进行一次排序,基于第二维度进行二次排序,其中第一维度和第二维度的数值组成的数组分别为第一数组X和第二数组Y,所述装置包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行以下操作的指令:
获取第一数组X和第二数组Y,所述第一数组X和所述第二数组Y均包含n个值为密文的元素,n为正整数,所述第一数组X中的元素与所述第二数组Y中的元素一一对应;
依据所述第一数组X中的元素取值对第一数组X进行排序,得到数组M;
基于所述数组M中元素的排列顺序对所述第二数组Y进行排序,得到数组K,所述数组M中的元素与所述数组K中元素的对应关系保持不变;
基于所述数组M中元素的排列顺序,以及所述数组K中元素的取值范围,确定基准数组F,所述基准数组F用于指示所述数组K中各个元素所属的位置区间;
将所述基准数组F与所述数组K按元素相加,得到第三数组Z,Z=F+K;
按照元素取值对所述第三数组Z中的元素进行排序,得到排序后的第三数组Z;
根据所述排序后的第三数组Z中元素的排列顺序,对所述数组K进行排序,得到结果数组A。
又一方面,本发明实施例公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如前述一个或多个所述的密文排序方法。
本发明实施例包括以下优点:
本发明实施例提供的密文排序方法,可以在不暴露密文数据的情况下,按照第一维度对密文数据进行一次排序,并在第一维度对应的排序结果的基础上,按照第二维度对密文数据进行二次排序,能够适用于多方数据融合的计算场景,提高了密文排序方法的适用性,有利于保障多方安全计算中的数据安全,避免信息泄露。并且,本发明实施例提供的密文排序方法,可以基于通用的运算函数实现,计算过程简单,易于实现。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种密文排序方法实施例的步骤流程图;
图2是本发明的一种密文排序装置实施例的结构框图;
图3是本发明的一种用于密文排序的装置800的框图;
图4是本发明的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
方法实施例
参照图1,示出了本发明的一种密文排序方法实施例的步骤流程图,所述方法具体可以包括如下步骤:
步骤101、获取第一数组X和第二数组Y,所述第一数组X和所述第二数组Y均包含n个值为密文的元素,n为正整数,所述第一数组X中的元素与所述第二数组Y中的元素一一对应。
步骤102、依据所述第一数组X中的元素取值对第一数组X进行排序,得到数组M。
步骤103、基于所述数组M中元素的排列顺序对所述第二数组Y进行排序,得到数组K,所述数组M中的元素与所述数组K中元素的对应关系保持不变。
步骤104、基于所述数组M中元素的排列顺序,以及所述数组K中元素的取值范围,确定基准数组F,所述基准数组F用于指示所述数组K中各个元素所属的位置区间。
步骤105、将所述基准数组F与所述数组K按元素相加,得到第三数组Z,Z=F+K。
步骤106、按照元素取值对所述第三数组Z中的元素进行排序,得到排序后的第三数组Z。
步骤107、根据所述排序后的第三数组Z中元素的排列顺序,对所述数组K进行排序,得到结果数组A。
本发明实施例提供的密文排序方法,可以应用于多方安全计算系统,用于对多方安全计算系统中包含至少两个维度的密文数据进行二次排序,具体的,基于第一维度进行一次排序,基于第二维度进行二次排序,其中第一维度和第二维度的数值组成的数组分别为第一数组X和第二数组Y。
多方安全计算系统是一种保护数据隐私安全的计算系统。本发明实施例对所述多方安全计算系统采用的安全计算协议不做限制,例如,所述多方安全计算系统可以基于多方安全计算MPC协议,在基于MPC协议的多方安全计算系统中,多个参与方可以在不泄露自身数据的前提下,使用多方安全计算技术进行协同计算得到计算结果,参与计算的数据、中间结果、以及最终结果可以为密文。当然,所述多方安全计算系统还可以基于秘密分享、半同态、不经意传输等技术实现的多方安全计算协议。
所述密文数据可以来自于一个或多个数据方。在一种可能的应用场景中,所述密文数据由多个数据方提供,通过本发明实施例可以对多个数据方的密文数据进行排序,以适用于多方数据融合计算的场景。例如,在对用户信息进行分析场景中,A方持有用户的身高、体重等维度的数值,B方持有用户的工资的数值,C方持有用户的借贷的数值。在A方需要查询工资处于前N位的用户的工资总和,或者,需要查询工资处于前N位的用户的借贷情况,或者,需要查询身高处于前M位的用户的工资总和与体重处于前M位的用户的工资总和的大小等查询需求的情况下,需要对A、B、C三方持有的数据发送至一个多方安全计算系统,多方安全计算系统基于A、B和C三方所发送的数据,按照不同的维度进行二次排序,进而基于相应的排序结果得到数据查询结果。
在本发明实施例中,可以按照数据属性将待排序的密文数据划分为两个数组:第一数组X和第二数组Y。其中,第一数组X对应第一维度,第二数组Y对应第二维度,第一数组X和第二数组Y均包含n个值为密文的元素,n为正整数,且第一数组X中的元素与第二数组Y中的元素一一对应。通常情况下,第一数组X与第二数组Y中存在对应关系的元素对应同一个实体,分别表示该实体对应第一维度与第二维度的数值。所述实体可以为用户名、企业代码、手机号码、地名、时间等任意能够独立存在的东西。所述第一维度、第二维度可以为所述实体的属性,例如,当所述实体为用户名时,所述第一维度可以为身高,所述第二维度可以为体重,所述第一数组中的元素为用户的身高值的密文,所述第二数组为用户的体重值的密文。
可以理解的是,本发明实施例提供的密文排序方法,可以先基于第一数组X中元素的取值进行一次排序;然后,在第一数组X对应的排序结果的基础上,再对第二数组Y进行一次排序。
作为一种示例,假设待排序的第一数组X和第二数组Y均包含8个值为密文的元素,分别对应实体U1至U8在第一维度和第二维度的数据密文,具体如表1所示。
获取到第一数组X与第二数组Y之后,先依据第一数组X中的元素取值对第一数组X进行排序,得到数组M。此时,数组M对应的实体顺序已经发生了变化,为了保证最终排序结果的准确性,本发明实施例基于数组M中元素的排列顺序对第二数组Y进行排序,得到数组K。其中,数组M和数组K中元素的对应关系保持不变。需要说明的是,可以对数组M进行升序排序,也可以进行降序排序,只要在后续排序过程中,所有的数组采用与数组M相同的排序规则即可。以表1所示的第一数组X和第二数组Y为例,经过升序排序,得到的数据M和数组K如表2所示。
需要说明的是,在本发明实施例中,基于第二维度进行二次排序时,数组M、数组K中的元素均为密文,无法在不暴露数组M信息的下,直接获取数组M中各个的元素对应的位置区间。为了解决这一问题,本发明实施例根据数组M中元素的排列顺序,以及数组K中元素的取值范围,确定基准数组F。其中,所述基准数组F用于指示数组K中各个元素所属的位置区间。
作为一种示例,步骤104所述基于所述数组M中元素的排列顺序,以及所述数组K中元素的取值范围,确定基准数组F,包括:根据所述数组K中元素的取值范围确定目标系数k;计算所述目标系数k与所述数组M的乘积,得到基准数组F,F=k*M。其中,目标系数k用于放大数组M中元素之间的差异、消除数组K中元素取值对数组M中取值相同的元素的位置区间的影响。可选地,所述根据所述数组K中元素的取值范围确定目标系数k,包括:确定所述数组K中元素取值的最大值max(K)和最小值min(K);计算所述最大值max(K)和所述最小值min(K)的差值,得到所述数组K对应的极差;将所述极差与预设常数a相加,得到目标系数k,k= max(K)- min(K)+a,其中,a≥0,基准数组F=[ max(K)- min(K)+a]*M。
作为另一种示例,在根据数组K中元素的取值范围确定出目标系数k之后,也可以将目标系数k放大b倍后再与数组M相乘,得到基准数组F,F=b*k*M,其中b>0。
需要说明的是,在本发明实施例中,对基准数组F的计算方法不做具体限定,只要得到的基准数组F能够消除数组K中元素取值对数组M中取值相同的元素的位置区间的影响、指示数组K中各个元素所属的位置区间即可。
示例性地,取基准数组F=k*M,k= max(K)- min(K)+1,在表2所示的数组K中,最大值max(K)=9,最小值min(K)=2,取a=1,则目标系数k=8,基准数组F如表3所示。
接下来,将基准数组F与数组K按元素相加,得到第三数组Z,Z=F+K。以表3所示的数组M、数组K以及数组F为例,第三数组Z如表4所示。
按照元素取值对第三数组Z中的元素进行排序,得到排序后的第三数组Z。表2中所示的数组M为升序排序,因此也对第三数组Z进行升序排序,数组M、排序后的第三数组Z如表5所示。
由表5可以看出,各个实体在数组M和排序后的第三数组Z中对应的元素所属的位置区间相同。并且,在排序后的第三数组Z中,同一位置区间中的元素,按照其在数组K中对应元素的取值大小排列。
最后,按照排序后的第三数组Z中元素的排列顺序,对数组K进行排序,就可以得到结果数组A。以表2所示的数组M、数组K、以及表5所示的排序后的第三数组Z为例,结果数组A可以如表6所示。
如表6所示,经过二次排序,实体U1至U8按照在第一维度中对应的密文数据的数值大小升序排列;在第一维度对应的密文数据的数值相同的情况下,实体U1至U8按照在第二维度中对应的密文数据的数值大小升序排列。
本发明实施例提供的密文排序方法,可以在不暴露密文数据的情况下,按照第一维度对密文数据进行一次排序,并在第一维度对应的排序结果的基础上,按照第二维度对密文数据进行二次排序,能够适用于多方数据融合的计算场景,提高了密文排序方法的适用性,有利于保障多方安全计算中的数据安全,避免信息泄露。并且,本发明实施例提供的密文排序方法,可以基于通用的运算函数实现,计算过程简单,易于实现。
在本发明实施例中,所述第一数组X中元素的数据类型为整数类型。
可以理解的是,在对密文数据进行二次排序时,如果待排序的密文数据在第一维度中的数值为带小数位的离散值或者小数位比较少的数值,在对第一维度中的数值进行加密得到第一数组X时,会损失一部分精度;并且,如果第一数组X中的元素为小数,在密文排序过程中,可能无法有效扩大第二数组Y中属于不同位置区间的元素取值之间的差异,影响二次排序。因此,在本发明实施例中,如果待排序的密文数据中第一维度的数据类型不是整数类型,可以对待排序的数据类型进行数据转换,将第一维度中的小数值转换为整数类型。
可选地,步骤101所述获取第一数组X和第二数组Y,包括:
步骤S11、获取待排序的密文数据,所述密文数据包括第一维度对应的数组L1和第二维度对应的数组L2;
步骤S12、若所述数组L1中存在至少一个数据类型不是整数类型的元素,则对所述数组L1中的每个元素进行数据转换,得到转换后的数组L1;
步骤S13、对转换后的数组L1进行加密处理得到第一数组X,对所述数组L2进行加密处理得到第二数组Y。
需要说明的是,本发明实施例对数据转换的具体转换方法不做限定,只要不改变数组L1的数组内部中各个元素之间的大小关系即可。
示例性地,可以根据预设规则,对数组L1中的元素进行编码。例如,对于数组L1 =[1.22,2.45,1.22,5,6,5.6],可以对进行其编码,得到第一数组X:[1,2,1,5,7,6]。或者,也可以对数组L1中的每个元素乘以10的n次方,其中,n的取值可以根据数组L1中元素包含的小数位确定,n≥1。例如,对于数组L1=[3.44,5.65,6.45,6.33,6.45],乘以10的2次方,得到第一数组X:[344,565,645,633,645]。
本发明实施例在不改变数组内部中各个元素之间的大小关系的情况下,对第一维度对应的数组L1中的各个元素进行数据转换,不会影响排序结果,可以保证参与密文排序的第一数组X中各个元素的数据类型均为整数类型,扩展了待排序的密文数据中第一维度对应的数组L1的数据类型范围。
综上所述,本发明实施例提供的密文排序方法,可以在不暴露密文数据的情况下,按照第一维度对密文数据进行一次排序,并在第一维度对应的排序结果的基础上,按照第二维度对密文数据进行二次排序,能够适用于多方数据融合的计算场景,提高了密文排序方法的适用性,有利于保障多方安全计算中的数据安全,避免信息泄露。并且,本发明实施例提供的密文排序方法,可以基于通用的运算函数实现,计算过程简单,易于实现。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
装置实施例
参照图2,示出了本发明的一种密文排序装置实施例的结构框图,所述装置用于对包含至少两个维度的密文数据进行二次排序,基于第一维度进行一次排序,基于第二维度进行二次排序,其中第一维度和第二维度的数值组成的数组分别为第一数组X和第二数组Y,所述装置具体可以包括:
数组获取模块201,用于获取第一数组X和第二数组Y,所述第一数组X和所述第二数组Y均包含n个值为密文的元素,n为正整数,所述第一数组X中的元素与所述第二数组Y中的元素一一对应;
第一排序模块202,用于依据所述第一数组X中的元素取值对第一数组X进行排序,得到数组M;
第二排序模块203,用于基于所述数组M中元素的排列顺序对所述第二数组Y进行排序,得到数组K,所述数组M中的元素与所述数组K中元素的对应关系保持不变;
基准数组确定模块204,用于基于所述数组M中元素的排列顺序,以及所述数组K中元素的取值范围,确定基准数组F,所述基准数组F用于指示所述数组K中各个元素所属的位置区间;
数组运算模块205,用于将所述基准数组F与所述数组K按元素相加,得到第三数组Z,Z=F+K;
第三排序模块206,用于按照元素取值对所述第三数组Z中的元素进行排序,得到排序后的第三数组Z;
第四排序模块207,用于根据所述排序后的第三数组Z中元素的排列顺序,对所述数组K进行排序,得到结果数组A。
可选地,所述基准数组确定模块,包括:
目标系数确定子模块,用于根据所述数组K中元素的取值范围确定目标系数k;
基准数组确定子模块,用于计算所述目标系数k与所述数组M的乘积,得到基准数组F,F=k*M。
可选地,所述目标系数确定子模块,包括:
最值确定单元,用于确定所述数组K中元素取值的最大值max(K)和最小值min(K);
极差计算单元,用于计算所述最大值max(K)和所述最小值min(K)的差值,得到所述数组K对应的极差;
目标系数计算单元,用于将所述极差与预设常数a相加,得到目标系数k,k= max(K)- min(K)+a。
可选地,所述第一数组X中元素的数据类型为整数类型。
可选地,所述数组获取模块,包括:
密文获取子模块,用于获取待排序的密文数据,所述密文数据包括第一维度对应的数组L1和第二维度对应的数组L2;
数据转换子模块,用于若所述数组L1中存在至少一个数据类型不是整数类型的元素,则对所述数组L1中的每个元素进行数据转换,得到转换后的数组L1;
加密处理子模块,用于对转换后的数组L1进行加密处理得到第一数组X,对所述数组L2进行加密处理得到第二数组Y。
综上所述,本发明实施例提供的密文排序装置,可以在不暴露密文数据的情况下,按照第一维度对密文数据进行一次排序,并在第一维度对应的排序结果的基础上,按照第二维度对密文数据进行二次排序,能够适用于多方数据融合的计算场景,提高了密文排序方法的适用性,有利于保障多方安全计算中的数据安全,避免信息泄露。并且,本发明实施例可以基于通用的运算函数实现,计算过程简单,易于实现。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供了一种用于密文排序的装置,所述装置用于对包含至少两个维度的密文数据进行二次排序,基于第一维度进行一次排序,基于第二维度进行二次排序,其中第一维度和第二维度的数值组成的数组分别为第一数组X和第二数组Y,包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行以下操作的指令:
A11、获取第一数组X和第二数组Y,所述第一数组X和所述第二数组Y均包含n个值为密文的元素,n为正整数,所述第一数组X中的元素与所述第二数组Y中的元素一一对应;
A12、依据所述第一数组X中的元素取值对第一数组X进行排序,得到数组M;
A13、基于所述数组M中元素的排列顺序对所述第二数组Y进行排序,得到数组K,所述数组M中的元素与所述数组K中元素的对应关系保持不变;
A14、基于所述数组M中元素的排列顺序,以及所述数组K中元素的取值范围,确定基准数组F,所述基准数组F用于指示所述数组K中各个元素所属的位置区间;
A15、将所述基准数组F与所述数组K按元素相加,得到第三数组Z,Z=F+K;
A16、按照元素取值对所述第三数组Z中的元素进行排序,得到排序后的第三数组Z;
A17、根据所述排序后的第三数组Z中元素的排列顺序,对所述数组K进行排序,得到结果数组A。
可选地,所述基于所述数组M中元素的排列顺序,以及所述数组K中元素的取值范围,确定基准数组F,包括:
根据所述数组K中元素的取值范围确定目标系数k;
计算所述目标系数k与所述数组M的乘积,得到基准数组F,F=k*M。
可选地,所述根据所述数组K中元素的取值范围确定目标系数k,包括:
确定所述数组K中元素取值的最大值max(K)和最小值min(K);
计算所述最大值max(K)和所述最小值min(K)的差值,得到所述数组K对应的极差;
将所述极差与预设常数a相加,得到目标系数k,k= max(K)- min(K)+a。
可选地,所述第一数组X中元素的数据类型为整数类型。
可选地,所述获取第一数组X和第二数组Y,包括:
获取待排序的密文数据,所述密文数据包括第一维度对应的数组L1和第二维度对应的数组L2;
若所述数组L1中存在至少一个数据类型不是整数类型的元素,则对所述数组L1中的每个元素进行数据转换,得到转换后的数组L1;
对转换后的数组L1进行加密处理得到第一数组X,对所述数组L2进行加密处理得到第二数组Y。
图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所示的密文排序方法。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行一种密文排序方法,所述方法包括:获取第一数组X和第二数组Y,所述第一数组X和所述第二数组Y均包含n个值为密文的元素,n为正整数,所述第一数组X中的元素与所述第二数组Y中的元素一一对应;依据所述第一数组X中的元素取值对第一数组X进行排序,得到数组M;基于所述数组M中元素的排列顺序对所述第二数组Y进行排序,得到数组K,所述数组M中的元素与所述数组K中元素的对应关系保持不变;基于所述数组M中元素的排列顺序,以及所述数组K中元素的取值范围,确定基准数组F,所述基准数组F用于指示所述数组K中各个元素所属的位置区间;将所述基准数组F与所述数组K按元素相加,得到第三数组Z,Z=F+K;按照元素取值对所述第三数组Z中的元素进行排序,得到排序后的第三数组Z;根据所述排序后的第三数组Z中元素的排列顺序,对所述数组K进行排序,得到结果数组A。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上对本发明所提供的一种密文排序方法、一种密文排序装置和一种用于密文排序的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种密文排序方法,其特征在于,所述方法用于对包含至少两个维度的密文数据进行二次排序,基于第一维度进行一次排序,基于第二维度进行二次排序,其中第一维度和第二维度的数值组成的数组分别为第一数组X和第二数组Y,所述方法包括:
获取第一数组X和第二数组Y,所述第一数组X和所述第二数组Y均包含n个值为密文的元素,n为正整数,所述第一数组X中的元素与所述第二数组Y中的元素一一对应;
依据所述第一数组X中的元素取值对第一数组X进行排序,得到数组M;
基于所述数组M中元素的排列顺序对所述第二数组Y进行排序,得到数组K,所述数组M中的元素与所述数组K中元素的对应关系保持不变;
确定所述数组K中元素取值的最大值max(K)和最小值min(K);
计算所述最大值max(K)和所述最小值min(K)的差值,得到所述数组K对应的极差;
将所述极差与预设常数a相加,得到目标系数k,k= max(K)- min(K)+a;
计算所述目标系数k与所述数组M的乘积,得到基准数组F,所述基准数组F用于指示所述数组K中各个元素所属的位置区间;
将所述基准数组F与所述数组K按元素相加,得到第三数组Z,Z=F+K;
按照元素取值对所述第三数组Z中的元素进行排序,得到排序后的第三数组Z;
根据所述排序后的第三数组Z中元素的排列顺序,对所述数组K进行排序,得到结果数组A。
2.根据权利要求1所述的方法,其特征在于,所述基准数组F=b*k*M,其中b>0。
3.根据权利要求1所述的方法,其特征在于,第一数组X中元素的数据类型为整数类型。
4.根据权利要求3所述的方法,其特征在于,所述获取第一数组X和第二数组Y,包括:
获取待排序的密文数据,所述密文数据包括第一维度对应的数组L1和第二维度对应的数组L2;
若所述数组L1中存在至少一个数据类型不是整数类型的元素,则对所述数组L1中的每个元素进行数据转换,得到转换后的数组L1;
对转换后的数组L1进行加密处理得到第一数组X,对所述数组L2进行加密处理得到第二数组Y。
5.一种密文排序装置,其特征在于,所述装置用于对包含至少两个维度的密文数据进行二次排序,基于第一维度进行一次排序,基于第二维度进行二次排序,其中第一维度和第二维度的数值组成的数组分别为第一数组X和第二数组Y,所述装置包括:
数组获取模块,用于获取第一数组X和第二数组Y,所述第一数组X和所述第二数组Y均包含n个值为密文的元素,n为正整数,所述第一数组X中的元素与所述第二数组Y中的元素一一对应;
第一排序模块,用于依据所述第一数组X中的元素取值对第一数组X进行排序,得到数组M;
第二排序模块,用于基于所述数组M中元素的排列顺序对所述第二数组Y进行排序,得到数组K,所述数组M中的元素与所述数组K中元素的对应关系保持不变;
基准数组确定模块,用于基于所述数组M中元素的排列顺序,以及所述数组K中元素的取值范围,确定基准数组F,所述基准数组F用于指示所述数组K中各个元素所属的位置区间;
数组运算模块,用于将所述基准数组F与所述数组K按元素相加,得到第三数组Z,Z=F+K;
第三排序模块,用于按照元素取值对所述第三数组Z中的元素进行排序,得到排序后的第三数组Z;
第四排序模块,用于根据所述排序后的第三数组Z中元素的排列顺序,对所述数组K进行排序,得到结果数组A;
其中,所述基准数组确定模块,包括:
目标系数确定子模块,用于根据所述数组K中元素的取值范围确定目标系数k;
基准数组确定子模块,用于计算所述目标系数k与所述数组M的乘积,得到基准数组F;
所述目标系数确定子模块,包括:
最值确定单元,用于确定所述数组K中元素取值的最大值max(K)和最小值min(K);
极差计算单元,用于计算所述最大值max(K)和所述最小值min(K)的差值,得到所述数组K对应的极差;
目标系数计算单元,用于将所述极差与预设常数a相加,得到目标系数k,k= max(K)-min(K)+a。
6.一种用于密文排序的装置,其特征在于,所述装置用于对包含至少两个维度的密文数据进行二次排序,基于第一维度进行一次排序,基于第二维度进行二次排序,其中第一维度和第二维度的数值组成的数组分别为第一数组X和第二数组Y,所述装置包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行以下操作的指令:
获取第一数组X和第二数组Y,所述第一数组X和所述第二数组Y均包含n个值为密文的元素,n为正整数,所述第一数组X中的元素与所述第二数组Y中的元素一一对应;
依据所述第一数组X中的元素取值对第一数组X进行排序,得到数组M;
基于所述数组M中元素的排列顺序对所述第二数组Y进行排序,得到数组K,所述数组M中的元素与所述数组K中元素的对应关系保持不变;
确定所述数组K中元素取值的最大值max(K)和最小值min(K);
计算所述最大值max(K)和所述最小值min(K)的差值,得到所述数组K对应的极差;
将所述极差与预设常数a相加,得到目标系数k,k= max(K)- min(K)+a;
计算所述目标系数k与所述数组M的乘积,得到基准数组F,所述基准数组F用于指示所述数组K中各个元素所属的位置区间;
将所述基准数组F与所述数组K按元素相加,得到第三数组Z,Z=F+K;
按照元素取值对所述第三数组Z中的元素进行排序,得到排序后的第三数组Z;
根据所述排序后的第三数组Z中元素的排列顺序,对所述数组K进行排序,得到结果数组A。
7.根据权利要求6所述的装置,其特征在于,所述基准数组F=b*k*M,其中b>0。
8.一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求1至4任一所述的密文排序方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210777764.6A CN114840568B (zh) | 2022-07-04 | 2022-07-04 | 一种密文排序方法、装置和用于密文排序的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210777764.6A CN114840568B (zh) | 2022-07-04 | 2022-07-04 | 一种密文排序方法、装置和用于密文排序的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114840568A CN114840568A (zh) | 2022-08-02 |
CN114840568B true CN114840568B (zh) | 2022-09-20 |
Family
ID=82573853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210777764.6A Active CN114840568B (zh) | 2022-07-04 | 2022-07-04 | 一种密文排序方法、装置和用于密文排序的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114840568B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115952526B (zh) * | 2023-03-06 | 2023-05-26 | 阿里云计算有限公司 | 密文排序方法、设备及存储介质 |
CN116975935B (zh) * | 2023-09-22 | 2023-12-26 | 北京天润基业科技发展股份有限公司 | 数据比较方法、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108171071A (zh) * | 2017-12-01 | 2018-06-15 | 南京邮电大学 | 一种面向云计算的多关键字可排序密文检索方法 |
CN111767023A (zh) * | 2019-07-17 | 2020-10-13 | 北京京东尚科信息技术有限公司 | 数据排序方法和数据排序系统 |
CN112685747A (zh) * | 2020-01-17 | 2021-04-20 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN114401154A (zh) * | 2022-03-24 | 2022-04-26 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置、密文计算引擎和用于数据处理的装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7315032B2 (ja) * | 2020-01-14 | 2023-07-26 | 日本電信電話株式会社 | 暗号化データ分析装置、暗号化データ分析方法、プログラム |
KR102361327B1 (ko) * | 2020-05-29 | 2022-02-10 | 서울대학교산학협력단 | 쉘 정렬을 이용하여 동형 암호문에 대한 정렬을 수행하는 전자 장치 및 그 동작 방법 |
-
2022
- 2022-07-04 CN CN202210777764.6A patent/CN114840568B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108171071A (zh) * | 2017-12-01 | 2018-06-15 | 南京邮电大学 | 一种面向云计算的多关键字可排序密文检索方法 |
CN111767023A (zh) * | 2019-07-17 | 2020-10-13 | 北京京东尚科信息技术有限公司 | 数据排序方法和数据排序系统 |
CN112685747A (zh) * | 2020-01-17 | 2021-04-20 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN114401154A (zh) * | 2022-03-24 | 2022-04-26 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置、密文计算引擎和用于数据处理的装置 |
Non-Patent Citations (1)
Title |
---|
安全多方多数据排序;李顺东等;《计算机学报》;20200815(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114840568A (zh) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114840568B (zh) | 一种密文排序方法、装置和用于密文排序的装置 | |
CN113315631B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112241250B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113449325B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112667674B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114969830B (zh) | 一种隐私求交方法、系统和可读存储介质 | |
CN113392422B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113094744A (zh) | 信息处理方法、服务平台、用于信息处理的装置和多方安全计算系统 | |
CN112861175A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114978512A (zh) | 一种隐私求交方法、装置和可读存储介质 | |
CN115085912A (zh) | 一种密文计算方法、装置和用于密文计算的装置 | |
CN112464257B (zh) | 一种数据检测方法、装置和用于数据检测的装置 | |
CN112487415B (zh) | 计算任务的安全性检测方法及装置 | |
CN114885038B (zh) | 一种加密协议转换方法、结果获取节点和隐私计算节点 | |
CN112468290B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112685747B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112668036B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112580063B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113779500B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113779501B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113392421B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112906904B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN115499254B (zh) | 一种用户数据处理方法、装置、系统和可读存储介质 | |
CN112668015B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112016637B (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 |