CN111046431B - 数据处理方法、查询方法、装置、电子设备和*** - Google Patents
数据处理方法、查询方法、装置、电子设备和*** Download PDFInfo
- Publication number
- CN111046431B CN111046431B CN201911289143.8A CN201911289143A CN111046431B CN 111046431 B CN111046431 B CN 111046431B CN 201911289143 A CN201911289143 A CN 201911289143A CN 111046431 B CN111046431 B CN 111046431B
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- judgment
- segment
- result
- segmentation
- 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
- 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/6227—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 where protection concerns the structure of data, e.g. records, types, queries
-
- 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)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书提供数据处理方法、查询方法、装置、电子设备和***的实施例。所述查询方法包括:获取判断对象特定取值的多个二进制段;根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果;其中,选取的密文集合所对应的段位置与该二进制段在特定取值中的段位置相同;向判断条件方发送所述查询结果。本说明书的一个或多个实施例,通过安全多方计算,可以在判断条件方***漏自身的判断条件、且数据方***漏自身的特定取值的前提下,由二者合作确定出判断条件的与判断对象的特定取值相对应的判断结果,从而实现了隐私保护。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种数据处理方法、查询方法、装置、电子设备和***。
背景技术
在业务实际中,通常一方拥有需要保密的判断条件(为了便于描述,以下称为判断条件方),另一方拥有需要保密的隐私数据(为了便于描述,以下称为数据方)。如何在所述判断条件方***漏所述判断条件、且所述数据方***漏所述隐私数据的条件下,合作确定出所述判断条件的与所述隐私数据相对应的判断结果,是当前亟需解决的技术问题。
发明内容
本说明书实施例提供一种数据处理方法、查询方法、装置、电子设备和***,以便于在所述判断条件方***漏所述判断条件、且所述数据方***漏所述隐私数据的条件下,合作确定出所述判断条件的与所述隐私数据相对应的判断结果。
为实现上述目的,本说明书中一个或多个实施例提供的技术方案如下。
根据本说明书一个或多个实施例的第一方面,提供了一种数据处理方法,应用于判断条件方,包括:获取判断条件中基准数据的多个二进制段;构建多个分段判断结果集合,每个分段判断结果集合对应有段位置,且包括根据基准数据中该段位置处的二进制段所得到的多个分段判断结果;对多个分段判断结果集合中的分段判断结果进行加密,得到多个密文集合;向数据方发送所述多个密文集合。
根据本说明书一个或多个实施例的第二方面,提供了一种查询方法,应用于数据方,所述数据方持有多个密文集合,每个密文集合对应有段位置,且包括多个对应有二进制段的分段判断结果密文,该方法包括:获取判断对象特定取值的多个二进制段;根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果;其中,选取的密文集合所对应的段位置与该二进制段在特定取值中的段位置相同;向判断条件方发送所述查询结果。
根据本说明书一个或多个实施例的第三方面,提供了一种查询方法,应用于数据方,所述数据方持有多个密文集合,每个密文集合对应有段位置,且包括多个对应有二进制段的分段判断结果密文,该方法包括:获取判断对象特定取值的多个二进制段;根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果;其中,选取的密文集合所对应的段位置与该二进制段在特定取值中的段位置相同;生成分段判断结果的第一份额,所述第一份额包括随机数;根据查询结果和所述第一份额,计算分段判断结果第二份额的密文;向判断条件方发送分段判断结果第二份额的密文。
根据本说明书一个或多个实施例的第四方面,提供了一种数据处理装置,应用于判断条件方,包括:获取单元,用于获取判断条件中基准数据的多个二进制段;构建单元,用于构建多个分段判断结果集合,每个分段判断结果集合对应有段位置,且包括根据基准数据中该段位置处的二进制段所得到的多个分段判断结果;加密单元,用于对多个分段判断结果集合中的分段判断结果进行加密,得到多个密文集合;发送单元,用于向数据方发送所述多个密文集合。
根据本说明书一个或多个实施例的第五方面,提供了一种查询装置,应用于数据方,所述数据方持有多个密文集合,每个密文集合对应有段位置,且包括多个对应有二进制段的分段判断结果密文,该装置包括:获取单元,用于获取判断对象特定取值的多个二进制段;查询单元,用于根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果;其中,选取的密文集合所对应的段位置与该二进制段在特定取值中的段位置相同;发送单元,用于向判断条件方发送所述查询结果。
根据本说明书一个或多个实施例的第六方面,提供了一种查询装置,应用于数据方,所述数据方持有多个密文集合,每个密文集合对应有段位置,包括多个对应有二进制段的分段判断结果密文,该装置包括:获取单元,用于获取判断对象特定取值的多个二进制段;查询单元,用于根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果;其中,选取的密文集合所对应的段位置与该二进制段在特定取值中的段位置相同;生成单元,用于生成分段判断结果的第一份额,所述第一份额包括随机数;计算单元,用于根据查询结果和所述第一份额,计算分段判断结果第二份额的密文;发送单元,用于向判断条件方发送分段判断结果第二份额的密文。
根据本说明书一个或多个实施例的第七方面,提供了一种电子设备,包括存储器和处理器;存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第一方面所述的方法步骤。
根据本说明书一个或多个实施例的第八方面,提供了一种电子设备,包括存储器和处理器;存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第二方面所述的方法步骤。
根据本说明书一个或多个实施例的第九方面,提供了一种电子设备,包括存储器和处理器;存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第三方面所述的方法步骤。
根据本说明书一个或多个实施例的第十方面,提供了一种查询***,包括数据方和判断条件方;所述数据方中设置如第五方面所述的装置;所述判断条件方用于接收查询结果,对所述查询结果进行解密,得到分段判断结果。
根据本说明书一个或多个实施例的第十一方面,提供了一种查询***,包括数据方和判断条件方;所述数据方中设置如第六方面所述的装置;所述判断条件方用于接收分段判断结果第二份额的密文,对分段判断结果第二份额的密文进行解密,得到分段判断结果的第二份额。
在本说明书的一些实施例中,判断条件方可以获取判断条件中基准数据的多个二进制段;可以构建多个分段判断结果集合;可以对多个分段判断结果集合中的分段判断结果进行加密,得到多个密文集合;可以向数据方发送所述多个密文集合。数据方可以接收所述多个密文集合;可以对自身持有的判断对象的特定取值进行分段;可以根据特定取值的多个二进制段在所述多个密文集合中进行查询。这样一方面,通过安全多方计算可以在判断条件方***漏自身的判断条件、且数据方***漏自身的特定取值的前提下,由二者合作确定出判断条件的与判断对象的特定取值相对应的判断结果,从而实现了隐私保护。另一方面,分段判断结果集合的数据量较小,加密时花费的计算资源也较少;密文集合的数据量也较小,有利于数据方的查询。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一实施例的查询方法的流程图;
图2为本说明书一实施例的决策树的结构示意图;
图3为本说明书一实施例的查询方法的流程图;
图4为本说明书一实施例的数据处理方法的流程图;
图5为本说明书一实施例的查询方法的流程图;
图6为本说明书一实施例的查询方法的流程图;
图7为本说明书一实施例的数据处理装置的功能结构示意图;
图8为本说明书一实施例的查询装置的功能结构示意图;
图9为本说明书一实施例的查询装置的功能结构示意图;
图10为本说明书一实施例的电子设备的功能结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。应当理解,在本说明书中术语“唯一对应”可以理解为一一对应。例如,A唯一对应B可以理解为A与B之间一一对应。术语“比特数”可以理解为二进制位的位数。
本说明书提供查询***的一个实施例。所述查询***可以包括判断条件方和数据方。
在一些实施例中,所述判断条件方可以为服务器、手机、平板电脑或个人电脑等设备;或者,也可以为由多台设备组成的***,例如由多个服务器组成的服务器集群。所述判断条件方可以持有判断条件。所述判断条件可以包括比较判断条件,所述比较判断条件可以用于确定判断对象的取值与阈值之间的大小关系。所述比较判断条件可以包括大于判断条件、大于或等于判断条件、等于判断条件、小于判断条件、小于或等于判断条件等等。例如,所述大于判断条件可以为x>t,x表示判断对象的取值,t表示阈值。
所述判断条件可以包括关系运算符和基准数据。具体地,所述判断条件可以包括比较判断条件。所述关系运算符可以包括比较运算符,所述基准数据可以包括阈值。其中,所述比较运算符可以包括大于运算符、大于或等于运算符、等于运算符、小于运算符、小于或等于运算符等等。
所述判断对象可以具有至少一个取值。所述取值可以为数值,或者,也可以为字符。例如,在一些业务场景下所述判断对象用于表示用户的收入状况,所述判断对象的取值可以为用户的年收入值。又例如,在一些业务场景下所述判断对象用于表示用户的房产状况,所述判断对象的取值可以为数值0或数值1,数值0表示不拥有房产,数值1表示不拥有房产。
根据所述判断条件可以获得至少一个判断结果,每个判断结果可以对应判断对象的至少一个取值。在实际应用中,判断对象的一个取值与基准数据按照关系运算符所表示的运算方式进行运算,便可以得到判断条件的一个判断结果。所述判断结果可以为数值,或者,也可以为字符。例如,所述判断结果可以为数值0或数值1,数值0表示判断条件不成立,数值1表示判断条件不成立。又例如,所述判断结果可以为字符False或字符True,字符False表示判断条件不成立,字符True表示判断条件成立。
在一些实施例中,所述数据方可以为服务器、手机、平板电脑或个人电脑等设备;或者,也可以为由多台设备组成的***,例如由多个服务器组成的服务器集群。所述数据方可以持有判断对象的特定取值。
在一些实施例中,所述判断条件方和所述数据方可以理解为进行安全多方计算(SMC,Secure Multi-Party Computation)的双方,安全多方计算可以用于解决一组互不信任的参与方之间保护隐私的合作计算问题。具体地,所述判断条件方和所述数据方可以进行合作计算,得到所述判断条件的与所述判断对象的特定取值相对应的判断结果。出于隐私保护的考虑,在合作计算的过程中,所述判断条件方不能够向所述数据方泄漏自身持有的判断条件(例如关系运算符和/或基准数据等等),所述数据方不能够向所述判断条件方泄漏自身持有的判断对象的特定取值。
在实际应用中,所述判断条件方和所述数据方通过合作计算获得判断结果的过程,可以是一个独立的计算任务,或者,还可以是一个大的计算任务中的一部分。在一些场景示例中,所述判断条件方可以为金融机构,例如可以为银行、第三方支付机构等等。所述金融机构可以持有数据处理模型,所述数据处理模型可以包括决策树模型、评分卡模型等,所述数据处理模型可以包括至少一个判断条件。所述数据方可以为大数据公司,所述大数据公司可以持有用户的房产状况、婚姻状况和收入状况等隐私数据。所述金融机构和所述大数据公司可以进行合作计算,得到数据处理模型的预测结果,以便于所述金融机构能够基于所述预测结果来评估是否向所述用户借款。为了获得预测结果,所述金融机构和所述大数据公司需要合作计算以获得数据处理模型中判断条件的与判断对象的特定取值相对应的判断结果。通过合作计算获得判断结果的过程,便可以视为一个大的计算任务(获得数据处理模型的预测结果)中的一部分。关于所述金融机构和所述大数据公司通过合作计算获得预测结果的过程,在后续场景示例中会有详细的介绍。
在一些实施例中,为了实现隐私保护,在相关技术中,判断条件方可以根据判断条件构建明文表。所述明文表可以包括根据所述判断条件所得到的至少一个判断结果,每个判断结果可以对应判断对象的至少一个取值。判断条件方可以对所述明文表中的判断结果进行加密,得到密文表;可以向数据方发送所述密文表。所述数据方可以接收所述密文表;可以根据自身持有的判断对象的特定取值,从所述密文表中查询对应的判断结果密文;可以向判断条件方发送查询出的判断结果密文。判断条件方可以接收判断结果密文;可以对判断结果密文进行解密,得到最终的判断结果,即,判断条件的与判断对象的特定取值相对应的判断结果。在一些情况下,判断对象取值的数量非常多,使得明文表的数据量非常大。例如,若判断对象的取值为16bit整数,则判断对象具有65536个取值。这样一方面,在对明文表中的判断结果进行加密时花费的计算资源非常大;另一方面,使得密文表的数据量非常大,不利于数据方的查询。
若要确定两个数值之间的大小关系,可以将两个数值进行分段比较。
例如,数值value1=101100,数值value2=101011。那么,若要确定数值value1与数值value2之间的大小关系,可以先将数值value1的高位段101与数值value2的高位段101进行比较;由于二者的高位段均为101,因而可以进一步将数值value1的低位段100与数值value2的低位段011进行比较;由于数值value1的低位段100大于数值value2的低位段011,因而可以确定数值value1大于数值value2。
又例如,可以将数值value3的二进制形式按照由高位到低位的顺序分为value3[2]、value3[1]和value3[0]等3个二进制段;可以将数值value4的二进制形式按照由高位到低位的顺序分为value4[2]、value4[1]和value4[0]等3个二进制段。则确定value3≥value4是否成立可以等价于确定
value3[2]>value4[2]||((value3[2]==value4[2])&&(value3[1]>value4[1]))||((value3[2]==value4[2])&&(value3[1]==value4[1])&&(value3[0]>=value4[0]))是否成立。||表示或逻辑运算符,&&表示与逻辑运算符。
又例如,可以将数值value5的二进制形式按照由高位到低位的顺序分为value5[1]和value5[0]等2个二进制段;可以将数值value6的二进制形式按照由高位到低位的顺序分为value6[1]和value6[1]等2个二进制段。则确定value5==value6是否成立可以等价于确定(value5[1]==value6[1])&&(value5[0]==value6[0])是否成立。
基于以上的考虑,判断条件方可以获取判断条件中基准数据的多个二进制段;可以构建多个分段判断结果集合;可以对多个分段判断结果集合中的分段判断结果进行加密,得到多个密文集合;可以向数据方发送所述多个密文集合。数据方可以接收所述多个密文集合;可以对自身持有的判断对象的特定取值进行分段;可以根据特定取值的多个二进制段在所述多个密文集合中进行查询。这样一方面,通过安全多方计算可以在判断条件方***漏自身的判断条件、且数据方***漏自身的特定取值的前提下,由二者合作确定出判断条件的与判断对象的特定取值相对应的判断结果,从而实现了隐私保护。另一方面,分段判断结果集合的数据量较小,加密时花费的计算资源也较少;密文集合的数据量也较小,有利于数据方的查询。
本说明书提供查询方法的一个实施例。所述查询方法可以包括部署阶段和实施阶段,所述部署阶段可以包括步骤S101-步骤S109,所述实施阶段可以包括步骤S111-步骤S117。部署阶段的方法步骤并非是必须的。例如,可以预先执行部署阶段的方法步骤,这样在需要确定所需的判断结果时,仅执行实施阶段的方法步骤就可以了。
通过本实施例的查询方法,判断条件方可以获得多个分段判断结果。所述多个分段判断结果可以用于确定最终的判断结果,即,判断条件的与判断对象的特定取值相对应的判断结果。在实际应用中,判断条件方可以根据所述多个分段判断结果中的部分或全部确定最终的判断结果。
请参阅图1。所述查询方法可以包括以下步骤。
步骤S101:判断条件方获取判断条件中基准数据的多个二进制段。
在一些实施例中,判断条件方可以持有判断条件,所述判断条件中的基准数据可以为非负整数。判断条件方可以对所述基准数据进行分段,得到多个二进制段。具体地,判断条件方可以对二进制形式的基准数据进行分段,得到多个二进制段。所述多个二进制段的比特数可以相同或不同。每个二进制段可以对应一个段位置,该段位置用于表示该二进制段在二进制数中的位置。在实际应用中,段位置可以为二进制段中的任一二进制位在二进制数中所在的位次。或者,段位置还可以由判断条件方直接生成。
例如,判断条件方可以持有判断条件x≥26=011010B。判断条件方可以对基准数据011010B进行分段,得到tx[2]=01、tx[1]=10、以及tx[0]=10等3个二进制段。tx[2]=01对应的段位置为2,tx[1]=10对应的段位置为1,tx[0]=10对应的段位置为0。
值得说明的是,判断条件方可以获取一个判断条件中基准数据的二进制段。或者,判断条件方还可以获取多个判断条件中基准数据的二进制段。
另外,判断条件方可以知晓判断对象的取值区间,所述取值区间内的整数构成了判断对象的所有可能取值。在一些情况下,判断条件中的基准数据为非负整数,所述取值区间内的整数也均为非负整数。则判断条件方可以直接获取基准数据的二进制段;在后续的步骤S105中可以直接根据所述取值区间,获取判断对象的多组二进制段。在另一些情况下,判断条件中的基准数据为负整数,和/或,所述取值区间内的部分或全部整数为负整数。则判断条件方可以对所述基准数据进行处理,得到新的基准数据;可以获取新的基准数据的二进制段。当然为了保持最终的判断结果不变,判断条件方需要对所述取值区间进行同样的处理,得到新的取值区间;在后续的步骤S105中可以根据新的取值区间,获取判断对象的多组二进制段。其中,新的基准数据为非负整数,以及,新的取值区间内的整数也均为非负整数。例如,判断条件方可以将基准数据与一个正整数进行求和,得到新的基准数据;可以根据该正整数对所述取值区间进行处理,得到新的取值区间。
步骤S103:判断条件方构建多个分段判断结果集合。
在一些实施例中,所述分段判断结果集合的数量可以等于基准数据的二进制段数量。所述分段判断结果集合可以采用数据表、线性表、队列、栈或图等方式来实现。每个分段判断结果集合可以唯一对应一个段位置,且可以包括根据基准数据中该段位置处的二进制段所得到的多个分段判断结果。每个分段判断结果对应至少一个判断对象的至少一个二进制段。
以下分情况介绍分段判断结果集合的构建过程。
情况(一):根据一个判断条件和一个判断对象构建多个分段判断结果集合。
每个分段判断结果集合可以包括根据所述判断条件中基准数据的二进制段所得到的多个分段判断结果。每个分段判断结果可以对应所述判断对象的至少一个二进制段。
所述分段判断结果可以包括以下至少一种:第一类分段判断结果、第二类分段判断结果、第三类分段判断结果。所述第一类分段判断结果用于表示判断条件不成立,所述第二类分段判断结果用于表示待定状态,所述第三类分段判断结果用于表示判断条件成立。其中,待定状态用于表示根据当前分段判断结果无法确定最终的判断结果,需要进一步根据其它分段判断结果来综合确定。第一类分段判断结果例如可以采用数值0来表示,第二类分段判断结果例如可以采用数值1来表示,第三类分段判断结果例如可以采用数值2来表示。当然在实际中还可以采用其它的数值或字符来表示。
在不同的分段判断结果集合中,同一种类的分段判断结果可以采用相同的数值或字符来表示;或者,也可以采用不同的数值或字符来表示。以后面的表1、表2和表3为例,表1和表2包括第一类分段判断结果、第二类分段判断结果和第三类分段判断结果。在表1和表2中,第一类分段判断结果采用数值0来表示,第二类分段判断结果采用数值1来表示,第三类分段判断结果采用数值2来表示。表3包括第一类分段判断结果和第三类分段判断结果。在表3中,第一类分段判断结果采用数值0来表示,第三类分段判断结果采用数值1来表示。
判断条件方可以知晓所述判断对象的取值区间;可以根据所述取值区间,获取所述判断对象的多组二进制段。每组二进制段可以对应一个段位置,且可以包括多个具有相同比特数的二进制段,所述多个二进制段覆盖了判断对象的所有可能取值在该段位置处的二进制段。值得说明的是,不同组中的二进制段可以具有相同或不同的比特数。判断对象的二进制段与判断条件中基准数据的、且对应了相同段位置的二进制段,具有相同的比特数。
例如,某一判断对象的取值区间为0~64。则该判断对象取值的比特数为6。判断条件方可以获取该判断对象的3组二进制段。其中,第0组二进制段对应的段位置为0,具体可以包括v[0]0=00、v[0]1=01、v[0]2=10、v[0]3=11等4个二进制段。第1组二进制段对应的段位置为1,具体可以包括v[1]0=00、v[1]1=01、v[1]2=10、v[1]3=11等4个二进制段。第2组二进制段对应的段位置为2,具体可以包括v[2]0=00、v[2]1=01、v[2]2=10、v[2]3=11等4个二进制段。
在实际应用中,对于判断条件中基准数据的每个二进制段,判断条件方可以将该二进制段与判断对象的对应了相同段位置的一组二进制段,按照所述判断条件中运算符所表示的运算方式进行运算,得到多个分段判断结果;可以将所述多个判断结果作为分段判断结果集合中的分段判断结果。该分段判断结果集合所对应的段位置可以与该二进制段所对应的段位置相同。
情况(二):根据多个判断条件和一个判断对象构建多个分段判断结果集合。
每个分段判断结果集合可以包括多个子集合。每个子集合唯一对应一个判断条件,且可以包括根据该判断条件中基准数据的二进制段所得到的多个分段判断结果。每个分段判断结果可以对应该所述判断对象的至少一个二进制段。所述分段判断结果可以包括以下至少一种:第一类分段判断结果、第二类分段判断结果、第三类分段判断结果。
判断条件方可以获取所述判断对象的多组二进制段,具体过程不再赘述。
在实际应用中,对于每个判断条件中基准数据的每个二进制段,判断条件方可以将该二进制段与判断对象的对应了相同段位置的一组二进制段,按照该判断条件中运算符所表示的运算方式进行运算,得到多个分段判断结果;可以将所述多个分段判断结果作为子集合中的分段判断结果;可以将该判断条件作为该子集合所对应的判断条件。该子集合可以隶属于一个分段判断结果集合,该分段判断结果集合所对应的段位置可以与该二进制段所对应的段位置相同。
情况(三):根据多个判断条件和多个判断对象构建多个分段判断结果集合。
每个分段判断结果集合可以包括多个子集合。每个子集合唯一对应一个判断条件,且可以包括根据该判断条件中基准数据的二进制段所得到的多个分段判断结果。每个子集合中的多个二进制段对应了所述多个判断对象的二进制段。每个分段判断结果具体可以对应至少一个判断对象的至少一个二进制段。所述分段判断结果可以包括以下至少一种:第一类分段判断结果、第二类分段判断结果、第三类分段判断结果和预设值。关于所述预设值在后续过程中会有详细介绍。
以后面的表4、表5和表6为例,表4和表5包括第一类分段判断结果、第二类分段判断结果、第三类分段判断结果和预设值。在表4和表5中,第一类分段判断结果采用数值0来表示,第二类分段判断结果采用数值1来表示,第三类分段判断结果采用数值2来表示,预设值采用数值0来表示。表6包括第一类分段判断结果、第三类分段判断结果和预设值。在表3中,第一类分段判断结果采用数值0来表示,第三类分段判断结果采用数值1来表示,预设值采用数值0来表示。
对于所述多个判断条件中的每个判断条件,所述多个判断对象可以包括与该判断条件相关联的目标判断对象、以及与该判断条件无关的其它判断对象。目标判断对象的取值参与该判断条件的运算,其它判断对象的取值不参与该判断条件的运算。另外,对于所述多个判断对象,判断条件方可以获取每个判断对象的多组二进制段。具体过程不再赘述。
在实际应用中,对于所述多个判断条件中的每个判断条件可以分别按照如下方式来处理。具体地,一方面,对于该判断条件中基准数据的每个二进制段,判断条件方可以将该二进制段与目标判断对象的对应了相同段位置的一组二进制段,按照该判断条件中运算符所表示的运算方式进行运算,得到多个分段判断结果;可以将所述多个分段判断结果作为子集合中的分段判断结果;可以将该判断条件作为该子集合所对应的判断条件。该子集合隶可以属于一个分段判断结果集合,该分段判断结果集合所对应的段位置可以与该二进制段所对应的段位置相同。另一方面,判断条件方可以将预设值作为在该子集合中其它判断对象的二进制段所对应的分段判断结果。所述预设值可以为0。当然所述预设值还可以为其它的数值。
例如,判断条件方可以持有判断条件x≥26=011010B。判断条件方可以对基准数据011010B进行分段,得到tx[2]=01、tx[1]=10、以及tx[0]=10等3个二进制段。tx[2]=01对应的段位置为2,tx[1]=10对应的段位置为1,tx[0]=10对应的段位置为0。
判断对象o1的取值可以为6bit无符号整数。判断条件方可以获取判断对象o1的3组二进制段。其中,第0组二进制段对应的段位置为0,具体可以包括v[0]0=00、v[0]1=01、v[0]2=10、v[0]3=11等4个二进制段。第1组二进制段对应的段位置为1,具体可以包括v[1]0=00、v[1]1=01、v[1]2=10、v[1]3=11等4个二进制段。第2组二进制段对应的段位置为2,具体可以包括v[2]0=00、v[2]1=01、v[2]2=10、v[2]3=11等4个二进制段。
判断条件方可以构建如下表1、表2和表3所示的3个分段判断结果集合。
表1
表1所示的分段判断结果集合对应的段位置为2,可以包括分段判断结果0、1和2。其中,数值0表示第一类分段判断结果,数值1表示第二类分段判断结果,数值2表示第3类分段判断结果。
表2
表2所示的分段判断结果集合对应的段位置为1,可以包括分段判断结果0、1和2。其中,数值0表示第一类分段判断结果,数值1表示第二类分段判断结果,数值2表示第3类分段判断结果。
表3
表3所示的分段判断结果集合对应的段位置为0,可以包括分段判断结果0和1。其中,数值0表示第一类分段判断结果,数值1表示第三类分段判断结果。
又例如,判断条件方可以持有判断条件x≥26=011010B和y==2=10B。判断条件方可以对基准数据011010B进行分段,得到tx[2]=01、tx[1]=10、以及tx[0]=10等3个二进制段;可以对基准数据10B进行分段,得到ty[2]=00、ty[1]=1和ty[0]=0等3个二进制段。tx[2]=01和ty[2]=00对应的段位置为2,tx[1]=10和ty[1]=1对应的段位置为1,tx[0]=10和ty[0]=0对应的段位置为0。
判断对象o1的取值可以为6bit无符号整数。判断条件方可以获取判断对象o1的3组二进制段。其中,第0组二进制段对应的段位置为0,具体可以包括v[0]0=00、v[0]1=01、v[0]2=10、v[0]3=11等4个二进制段。第1组二进制段对应的段位置为1,具体可以包括v[1]0=00、v[1]1=01、v[1]2=10、v[1]3=11等4个二进制段。第2组二进制段对应的段位置为2,具体可以包括v[2]0=00、v[2]1=01、v[2]2=10、v[2]3=11等4个二进制段。
判断对象o2的取值可以为2bit无符号整数。判断条件方可以获取判断对象o2的2组二进制段。其中,第0组二进制段对应的段位置为0,具体可以包括m[0]0=0、m[0]1=1等2个二进制段。第1组二进制段对应的段位置为1,具体可以包括m[1]0=0、m[1]1=1等2个二进制段。
对于判断条件x≥26=011010B,判断对象o1为与该判断条件相关联的目标判断对象,判断对象o2为与该判断条件无关的其它判断对象。对于判断条件y==2=10B,判断对象o2为与该判断条件相关联的目标判断对象,判断对象o1为与该判断条件无关的其它判断对象。
判断条件方可以构建如下表4、表5和表6所示的3个分段判断结果集合。
表4
表4所示的分段判断结果集合对应的段位置为2,可以包括2个子集合。
表4的第三行可以构成一个子集合。该子集合与判断条件x≥26=011010B相对应,可以包括分段判断结果0、1和2。值得说明的是,判断对象o1为与判断条件x≥26=011010B相关联的目标判断对象,因而该子集合中的分段判断结果均通过比较得到。
表4的第四行可以构成另一个子集合。该子集合与判断条件y==2=10B相对应,可以包括分段判断结果0。值得说明的是,判断对象o1为与判断条件y==2=10B无关的其它判断对象,因而该子集合中的分段判断结果均为预设值0。
在表4中,数值0表示第一类分段判断结果,数值1表示第二类分段判断结果,数值2表示第3类分段判断结果。
表5
表5所示的分段判断结果集合对应的段位置为1,可以包括2个子集合。
表5的第三行可以构成一个子集合。该子集合与判断条件x≥26=011010B相对应,可以包括分段判断结果0、1和2。值得说明的是,判断对象o1为与判断条件x≥26=011010B相关联的目标判断对象,判断对象o2为与判断条件x≥26=011010B无关的其它判断对象。因而在该子集合中v[1]0=00、v[1]1=01、v[1]2=10和v[1]3=11对应的分段判断结果均通过比较得到,m[1]0=0和m[1]1=1对应的分段判断结果均为预设值0。
表5的第四行可以构成另一个子集合。该子集合与判断条件y==2=10B相对应,可以包括分段判断结果0和1。值得说明的是,判断对象o1为与判断条件y==2=10B无关的其它判断对象,判断对象o2为与判断条件y==2=10B相关联的目标判断对象。因而在该子集合中v[1]0=00、v[1]1=01、v[1]2=10和v[1]3=11对应的分段判断结果均为预设值0,m[1]0=0和m[1]1=1对应的分段判断结果均通过比较得到。
在表5中,数值0表示第一类分段判断结果,数值1表示第二类分段判断结果,数值2表示第3类分段判断结果。
表6
表6所示的分段判断结果集合对应的段位置为0,可以包括2个子集合。
表6的第三行可以构成一个子集合。该子集合与判断条件x≥26=011010B相对应,可以包括分段判断结果0和1。值得说明的是,判断对象o1为与判断条件x≥26=011010B相关联的目标判断对象,判断对象o2为与判断条件x≥26=011010B无关的其它判断对象。因而在该子集合中v[0]0=00、v[0]1=01、v[0]2=10和v[0]3=11对应的分段判断结果均通过比较得到,m[0]0=0和m[0]1=1对应的分段判断结果均为预设值0。
表6的第四行可以构成另一个子集合。该子集合与判断条件y==2=10B相对应,可以包括分段判断结果0和1。值得说明的是,判断对象o1为与判断条件y==2=10B无关的其它判断对象,判断对象o2为与判断条件y==2=10B相关联的目标判断对象。因而在该子集合中v[0]0=00、v[0]1=01、v[0]2=10和v[0]3=11对应的分段判断结果均为预设值0,m[0]0=0和m[0]1=1对应的分段判断结果均通过比较得到。
在表6中,数值0表示第一类分段判断结果,数值1表示第三类分段判断结果。
步骤S105:判断条件方对所述多个分段判断结果集合中的分段判断结果进行加密,得到多个密文集合。
在一些实施例中,判断条件方可以采用加密算法对所述多个分段判断结果集合中的分段判断结果进行同态加密。所述加密算法可以包括确定性的加密算法和不确定性的加密算法。确定性的加密算法是指:采用加密算法对同一明文数据进行多次加密,得到的多个加密结果相同。不确定性的加密算法是指:采用加密算法对同一明文数据进行多次加密,得到的多个加密结果可以不同。所述加密算法可以包括对称加密算法和非对称加密算法。所述对称加密算法包括但不限于DES算法、AES算法和IDEA算法等,所述非对称加密算法包括但不限于RSA算法和ECC(Elliptic Curve Cryptography,椭圆曲线加密算法)等。所述加密算法可以包括同态加密算法。所述同态加密算法可以包括Paillier算法、Okamoto-Uchiyama算法、Damgard-Jurik算法等。同态加密(Homomorphic Encryption)是一种加密技术。它允许直接对密文数据进行运算得到仍是加密的结果,将其解密所得到的结果与对明文数据进行同样运算的结果相同。所述同态加密算法可以包括加法同态加密算法和乘法同态加密算法等。
在一些实施例中,每个密文集合可以采用数据表、线性表、队列、栈或图等方式来实现。每个密文集合对应一个段位置,且可以包括多个分段判断结果密文。每个分段判断结果密文对应至少一个二进制段,这里对应的二进制段为判断对象取值的二进制段。
在实际应用中,判断条件方可以对分段判断结果集合中的每个分段判断结果加密一次,得到一个分段判断结果密文作为密文集合中的分段判断结果密文;可以将该分段判断结果所对应的二进制段作为该分段判断结果密文所对应的二进制段;可以将该分段判断结果集合所对应的段位置作为该密文集合所对应的段位置。或者,判断条件方还可以对分段判断结果集合中的每个分段判断结果加密至少一次,得到至少一个分段判断结果密文作为密文集合中的分段判断结果密文;可以将该分段判断结果集合所对应的段位置作为该密文集合所对应的段位置。至于加密的次数可以等于该分段判断结果所对应的二进制段数量,以使得加密后的每个分段判断结果密文能够唯一对应一个二进制段。值得说明的是,判断条件方可以优先采用不确定性的加密算法对分段判断结果加密至少一次,以使得对于同一分段判断结果进行加密可以得到多个不同的分段判断结果密文,从而能够避免数据方根据分段判断结果密文是否相同来猜测基准数据的二进制段,进而来猜测基准数据。
在一些实施例中,所述分段判断结果集合可以直接包括多个分段判断结果。这样所述密文集合可以直接包括多个分段判断结果密文。或者,所述分段判断结果集合可以包括多个子集合,每个子集合可以包括多个分段判断结果。这样所述密文集合可以包括多个子密文集合,每个子密文集合可以包括多个分段判断结果密文。
例如,判断条件方通过对表1、表2和表3所示分段判断结果集合中的分段判断结果进行加密,可以分别得到如下表7、表8和表9所示的密文集合。
表7
表7所示的密文集合对应的段位置为2,可以包括分段判断结果密文E(0)、E(9)和E(18)。分段判断结果密文E(0)与二进制段v[2]0=00相对应,分段判断结果密文E(9)与二进制段v[2]1=01相对应,分段判断结果密文E(18)与二进制段v[2]2=10和v[2]3=11相对应。
表8
表8所示的密文集合对应的段位置为1,可以包括分段判断结果密文E(0)、E(3)和E(6)。分段判断结果密文E(0)与二进制段v[1]0=00和v[1]1=01相对应,分段判断结果密文E(3)与二进制段v[1]2=10相对应,分段判断结果密文E(6)与二进制段v[1]3=11相对应。
表9
表9所示的密文集合对应的段位置为0,可以包括分段判断结果密文E(0)和E(1)。分段判断结果密文E(0)与二进制段v[0]0=00和v[0]1=01相对应,分段判断结果密文E(1)与二进制段v[0]2=10和v[0]3=11相对应。
又例如,判断条件方通过对表4、表5和表6所示分段判断结果集合中的分段判断结果进行加密,可以分别得到如下表10、表11和表12所示的密文集合。
表10
表10所示的密文集合对应的段位置为2,可以包括2个子密文集合。
表10的第二行可以构成一个子密文集合。该子密文集合可以包括分段判断结果密文Ex_o10(0)、Ex_o11(100)、Ex_o12(200)和Ex_o13(200)。分段判断结果密文Ex_o10(0)与二进制段v[2]0=00相对应,分段判断结果密文Ex_o11(100)与二进制段v[2]1=01相对应,分段判断结果密文Ex_o12(200)与二进制段v[2]2=10相对应,分段判断结果密文Ex_o13(200)与二进制段v[2]3=11相对应。
表10的第三行可以构成另一个子密文集合。该子密文集合可以包括分段判断结果密文Ez_o10(0)、Ez_o11(0)、Ez_o12(0)和Ez_o13(0)。分段判断结果密文Ez_o10(0)与二进制段v[2]0=00相对应,分段判断结果密文Ez_o11(0)与二进制段v[2]1=01相对应,分段判断结果密文Ez_o12(0)与二进制段v[2]2=10相对应,分段判断结果密文Ez_o13(0)与二进制段v[2]3=11相对应。
表11
表11所示的密文集合对应的段位置为1,可以包括2个子密文集合。
表11的第二行可以构成一个子密文集合。该子密文集合可以包括分段判断结果密文Ex_o10(0)、Ex_o11(0)、Ex_o12(10)、Ex_o13(20)、Ex_o20(0)和Ex_o21(0)。分段判断结果密文Ex_o10(0)与二进制段v[1]0=00相对应,分段判断结果密文Ex_o11(0)与二进制段v[1]1=01相对应,分段判断结果密文Ex_o12(10)与二进制段v[1]2=10相对应,分段判断结果密文Ex_o13(20)与二进制段v[1]3=11相对应,分段判断结果密文Ex_o20(0)与二进制段m[1]0=0相对应,分段判断结果密文Ex_o21(0)与二进制段m[1]1=1相对应。
表11的第三行可以构成另一个子密文集合。该子密文集合可以包括分段判断结果密文Ez_o10(0)、Ez_o11(0)、Ez_o12(0)、Ez_o13(0)、Ez_o20(0)和Ez_o21(10)。分段判断结果密文Ez_o10(0)与二进制段v[1]0=00相对应,分段判断结果密文Ez_o11(0)与二进制段v[1]1=01相对应,分段判断结果密文Ez_o12(0)与二进制段v[1]2=10相对应,分段判断结果密文Ez_o13(0)与二进制段v[1]3=11相对应,分段判断结果密文Ez_o20(0)与二进制段m[1]0=0相对应,分段判断结果密文Ez_o21(10)与二进制段m[1]1=1相对应。
表12
表12所示的密文集合对应的段位置为0,可以包括2个子密文集合。
表12的第二行可以构成一个子密文集合。该子密文集合可以包括分段判断结果密文Ex_o10(0)、Ex_o11(0)、Ex_o12(1)、Ex_o13(1)、Ex_o20(0)和Ex_o21(0)。分段判断结果密文Ex_o10(0)与二进制段v[0]0=00相对应,分段判断结果密文Ex_o11(0)与二进制段v[0]1=01相对应,分段判断结果密文Ex_o12(1)与二进制段v[0]2=10相对应,分段判断结果密文Ex_o13(1)与二进制段v[0]3=11相对应,分段判断结果密文Ex_o20(0)与二进制段m[0]0=0相对应,分段判断结果密文Ex_o21(0)与二进制段m[0]1=1相对应。
表12的第三行可以构成另一个子密文集合。该子密文集合可以包括分段判断结果密文Ez_o10(0)、Ez_o11(0)、Ez_o12(0)、Ez_o13(0)、Ez_o20(1)和Ez_o21(0)。分段判断结果密文Ez_o10(0)与二进制段v[0]0=00相对应,分段判断结果密文Ez_o11(0)与二进制段v[0]1=01相对应,分段判断结果密文Ez_o12(0)与二进制段v[0]2=10相对应,分段判断结果密文Ez_o13(0)与二进制段v[0]3=11相对应,分段判断结果密文Ez_o20(1)与二进制段m[0]0=0相对应,分段判断结果密文Ez_o21(0)与二进制段m[0]1=1相对应。
步骤S107:判断条件方向数据方发送所述多个密文集合。
步骤S109:数据方接收所述多个密文集合。
步骤S111:数据方获取判断对象特定取值的多个二进制段。
在一些实施例中,数据方可以持有判断对象的特定取值。数据方可以对所述特定取值进行分段,得到多个二进制段。在实际应用中,数据方可以对二进制形式的特定取值进行分段,得到多个二进制段。所述多个二进制段的比特数可以相同或不同。每个二进制段可以对应一个段位置,该段位置用于表示二进制段在二进制形式的特定取值中所处的位置。例如,数据方可以将二进制段中的任一二进制位在二进制形式的特定取值中的位置作为该二进制段的段位置。又例如,数据方还可以直接为二进制段生成一个段位置。
数据方可以获取一个判断对象特定取值的二进制段。或者,数据方还可以获取多个判断对象特定取值的二进制段。
在一些实施例中,数据方和判断条件方可以进行如下约定:若在步骤S101中,判断条件方直接获取所述基准数据的二进制段;则在步骤S111中,数据方可以直接获取判断对象特定取值的二进制段;若在步骤S101中,判断条件方对所述基准数据进行了处理,进而获取处理后的所述基准数据的二进制段;则在步骤S111中,数据方可以以同样的方式对判断对象的特定取值进行处理,进而获取处理后的特定取值的二进制段。
步骤S113:数据方根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果;其中,选取的密文集合所对应的段位置与该二进制段在特定取值中的段位置相同。
在一些实施例中,数据方根据特定取值的每个二进制段,数据方可以选取得到一个密文集合。根据特定取值的多个二进制段,数据方可以在选取的多个密文集合中进行查询,得到多个查询结果。
在本实施例的一些实施方式中,所述多个密文集合中的密文集合可以直接包括多个分段判断结果密文。数据方可以从选取的密文集合中查询得到一个分段判断结果密文,可以将该分段判断结果密文作为查询结果。这样所述多个查询结果可以包括多个分段判断结果密文。
在本实施例的另一些实施方式中,所述多个密文集合中的密文集合可以包括多个子密文集合。每个子密文集合可以包括多个分段判断结果密文。对于选取的密文集合,数据方可以从该密文集合的多个子密文集合中分别查询分段判断结果密文。
在步骤S111中,数据方可以获得一个判断对象特定取值的多个二进制段。如此对于选取的密文集合,数据方可以从该密文集合的每个子密文集合中查询得到一个分段判断结果密文;可以将查询得到的多个分段判断结果密文作为密文序列中的分段判断结果密文。这样所述多个查询结果可以包括多个密文序列。每个密文序列包括多个分段判断结果密文,所述多个分段判断结果密文在密文序列中的顺序可以与多个子密文集合在密文集合中的顺序相同。
或者,在步骤S111中,数据方可以获得多个判断对象特定取值的多个二进制段。如此对于选取的密文集合,数据方可以从该密文集合的每个子密文集合中查询得到多个分段判断结果密文;可以对从每个子密文集合所查询得到的多个分段判断结果密文进行同态求和处理,得到求和结果;可以将多个子密文集合所对应的多个求和结果作为密文序列中的求和结果。这样所述多个查询结果可以包括多个密文序列。每个密文序列包括多个求和结果,所述多个求和结果在密文序列中的顺序可以与多个子密文集合在密文集合中的顺序相同。值得说明的是,由于求和结果是由多个分段判断结果密文相加得到的,且分段判断结果密文是由同态加密算法计算得到的,因而求和结果也可以为一种密文。
在一些实施例中,对于特定取值多个二进制段的查询操作可以串行执行。或者,为了加快查询速度,对于特定取值多个二进制段的查询操作也可以并行执行。
例如,数据方可以持有判断对象o1的特定取值48=110000B、以及判断对象o2的特定取值3=11B。数据方可以对特定取值110000B进行分段,得到x[2]=11、x[1]=00、以及x[0]=00等3个二进制段。x[2]=11对应的段位置为2,x[1]=00对应的段位置为1,x[0]=00对应的段位置为0。数据方可以对特定取值11B进行分段,得到y[1]=1、以及y[0]=1等2个二进制段。y[0]=1对应的段位置为0,y[1]=1对应的段位置为1。
数据方可以根据二进制段x[2]=11,选取表10所示的密文集合,可以从表10所示的密文集合中查询得到分段判断结果密文Ex_o13(200)和Ez_o13(0),从而得到密文序列{Ex_o13(200)、Ez_o13(0)}。
数据方可以根据二进制段x[1]=00和y[1]=1,选取表11所示的密文集合;可以根据二进制段x[1]=00和y[1]=1,从表11第二行所对应的子密文集合中查询得到分段判断结果密文Ex_o10(0)和Ex_o21(0),可以对分段判断结果密文Ex_o10(0)和Ex_o21(0)进行求和处理,得到求和结果Ex_o10(0)+Ex_o21(0)=E(0+0)=E(0);可以根据二进制段x[1]=00和y[1]=1,从表11第三行所对应的子密文集合中查询得到分段判断结果密文Ez_o10(0)和Ez_o21(10),可以对分段判断结果密文Ez_o10(0)和Ez_o21(10)进行求和处理,得到求和结果Ez_o10(0)+Ez_o21(10)=E(0+10)=E(10)。这样数据方可以得到密文序列{E(0)、E(10)}。
数据方可以根据二进制段x[0]=00和y[0]=1,选取表12所示的密文集合;可以根据二进制段x[0]=00和y[0]=1,从表12第二行所对应的子密文集合中查询得到分段判断结果密文Ex_o10(0)和Ex_o21(0),可以对分段判断结果密文Ex_o10(0)和Ex_o21(0)进行求和处理,得到求和结果Ex_o10(0)+Ex_o21(0)=E(0+0)=E(0);可以根据二进制段x[0]=00和y[0]=1,从表12第三行所对应的子密文集合中查询得到分段判断结果密文Ez_o10(0)和Ez_o21(0),可以对分段判断结果密文Ez_o10(0)和Ez_o21(0)进行求和处理,得到求和结果Ez_o10(0)+Ez_o21(0)=E(0+0)=E(0)。这样数据方可以得到密文序列{E(0)、E(0)}。
步骤S115:数据方向判断条件方发送所述查询结果。
在一些实施例中,经过步骤S113,数据方可以得到多个查询结果。数据方可以向判断条件方发送所述多个查询结果。
步骤S117:判断条件方接收查询结果,对所述查询结果进行解密,得到分段判断结果。
在一些实施例中,判断条件方可以接收多个查询结果;可以对所述多个查询结果进行解密,得到多个分段判断结果。
在实际应用中,所述多个查询结果可以包括多个分段判断结果密文。判断条件方可以对所述多个分段判断结果密文进行解密,得到多个分段判断结果。所述多个分段判断结果对应了一个判断条件,判断条件方可以根据所述多个分段判断结果中的部分或全部确定该判断条件所对应的最终判断结果。或者,所述多个查询结果可以包括多个密文序列。判断条件方可以对所述多个密文序列进行解密,得到多个明文序列。每个明文序列可以包括多个分段判断结果。所述多个明文序列中相同位置处的多个分段判断结果构成了一组分段判断结果。每组分段判断结果对应了一个判断条件。判断条件方可以根据该组分段判断结果中的部分或全部分段判断结果确定该判断条件所对应的最终判断结果。
本实施例的查询方法,判断条件方可以获取判断条件中基准数据的多个二进制段;可以构建多个分段判断结果集合;可以对多个分段判断结果集合中的分段判断结果进行加密,得到多个密文集合;可以向数据方发送所述多个密文集合。数据方可以接收所述多个密文集合;可以对自身持有的判断对象的特定取值进行分段;可以根据特定取值的多个二进制段在所述多个密文集合中进行查询。这样一方面,通过安全多方计算可以在判断条件方***漏自身的判断条件、且数据方***漏自身的特定取值的前提下,由二者合作确定出判断条件的与判断对象的特定取值相对应的判断结果,从而实现了隐私保护。另一方面,分段判断结果集合的数据量较小,加密时花费的计算资源也较少;密文集合的数据量也较小,有利于数据方的查询。
下面结合一个具体地场景实例对上述实施例的实现方案进行说明。
在本场景示例中,所述判断条件方可以为金融机构,例如可以为银行、第三方支付机构等等。所述金融机构可以持有数据处理模型,所述数据处理模型可以包括决策树模型、评分卡模型等,所述数据处理模型可以包括至少一个判断条件。
图2示出了一种决策树模型,所述决策树模型可以包括节点1、2、3、4、5、6、7等7个节点。节点1、3、4为***节点(能够向下***的节点),节点2、5、6、7为叶子节点(不能够向下***的节点)。
***节点1、3、4对应的判断条件可以如下表13所示。
表13
***节点 | 判断条件 |
节点1 | u==1 |
节点3 | v==1 |
节点4 | w≥80 |
u为判断对象o3的取值,判断对象o3用于表示用户的房产状况,u可以为数值0或1,数值0表示不拥有房产,数值1表示不拥有房产。v为判断对象o4的取值,判断对象o4用于表示用户的婚姻状况,v可以为数值0或1,数值0表示已婚,数值1表示未婚。w为判断对象o5的取值,判断对象o5用于表示用户的收入状况,w可以为用户的年收入值。
叶子节点2、5、6、7对应的预测结果可以如下表14所示。
表14
叶子节点 | 预测结果 |
节点2 | 可以偿还借款 |
节点5 | 可以偿还借款 |
节点6 | 可以偿还借款 |
节点7 | 不可以偿还借款 |
在本场景示例中,所述数据方可以为大数据公司。所述大数据公司可以持有用户的房产状况、婚姻状况和收入状况等隐私数据。
在本场景示例中,所述金融机构和所述大数据公司可以进行合作计算,得到所述数据处理模型的预测结果,以便于所述金融机构能够基于所述预测结果来评估是否向所述用户借款。在合作计算的过程中,所述金融机构不能够向所述大数据公司泄漏自身持有的数据处理模型(例如***节点1、3、4对应的判断条件),所述大数据公司不能够向所述金融机构泄漏自身持有的用户数据。
以下以图2所示的决策树模型为例,介绍所述金融机构和所述大数据公司进行合作计算,得到所述决策树模型的预测结果的过程。
所述金融机构可以采用前面的相关技术来获得***节点1对应的密文表、以及***节点2对应的密文表。具体地,所述金融机构可以根据***节点1对应的判断条件u==1和判断对象o3的至少一个取值,构建***节点1对应的明文表;可以对***节点1所对应明文表中的判断结果进行加密,得到***节点1对应的密文表。相类似地,所述金融机构可以根据***节点2对应的判断条件v==1和判断对象o4的至少一个取值,构建***节点2对应的明文表;可以对***节点2所对应明文表中的判断结果进行加密,得到***节点2对应的密文表。
所述金融机构可以采用上述实施例的查询方法来获得***节点4所对应的多个密文集合。具体地,所述金融机构可以获取判断条件w≥80中基准数据80的多个二进制段;可以构建多个分段判断结果集合;可以对所述多个分段判断结果集合中的分段判断结果进行加密,得到***节点4所对应的多个密文集合。
所述金融机构可以向所述大数据公司发送***节点1对应的密文表。所述大数据公司可以接收***节点1对应的密文表;可以根据自身持有的判断对象o3的特定取值,从该密文表中查询对应的判断结果密文;可以向所述金融机构发送查询到的判断结果密文。所述金融机构可以接收判断结果密文;可以对接收的判断结果密文进行解密,得到判断条件u==1的与判断对象o3的特定取值相对应的判断结果;可以根据解密得到的判断结果选择右侧的分支,从而到达***节点3。
所述金融机构可以向所述大数据公司发送***节点3对应的密文表。所述大数据公司可以接收***节点3对应的密文表;可以根据自身持有的判断对象o4的特定取值,从该密文表中查询对应的判断结果密文;可以向所述金融机构发送查询到的判断结果密文。所述金融机构可以接收判断结果密文;可以对接收的判断结果密文进行解密,得到判断条件v==1的与判断对象o4的特定取值相对应的判断结果;可以根据解密得到的判断结果选择左侧的分支,从而到达***节点4。
所述金融机构可以向所述大数据公司发送***节点4所对应的多个密文集合。所述大数据公司可以接收***节点4所对应的多个密文集合;可以获取自身持有的判断对象o5特定取值的多个二进制段;可以根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果。所述大数据公司可以向所述金融机构发送多个查询结果。所述金融机构可以接收所述多个查询结果;可以对所述多个查询结果进行解密,得到多个分段判断结果;可以根据所述多个分段判断结果确定判断条件w≥80的与判断对象o5的特定取值相对应的判断结果;可以根据确定的判断结果选择左侧的分支,从而到达叶子节点5。
叶子节点5可以对应有预测结果“可以偿还借款”。由此所述金融机构便获得了决策树模型的预测结果“可以偿还借款”。
本说明书提供查询方法的另一个实施例。所述查询方法可以包括部署阶段和实施阶段,所述部署阶段可以包括步骤S201-步骤S209,所述实施阶段可以包括步骤S211-步骤S221。部署阶段的方法步骤并非是必须的。例如,可以预先执行部署阶段的方法步骤,这样在需要确定所需的判断结果时,仅执行实施阶段的方法步骤就可以了。
通过本实施例的查询方法,数据方和判断条件方均可以获得多个分段判断结果的一份份额。为了便于描述,以下将数据方获得的份额称为第一份额,将判断条件方获得的份额称为第二份额。每个分段判断结果的第一份额和第二份额的和等于该分段判断结果。判断条件方和数据方可以基于各自持有的份额继续后续的业务过程。
在一些场景示例中,数据方可以向判断条件方发送多个分段判断结果的第一份额。判断条件方可以接收多个分段判断结果的第一份额;可以将多个分段判断结果的第一份额和自身持有的多个分段判断结果的第二份额相加,得到多个分段判断结果;可以根据所述多个分段判断结果中的部分或全部确定最终的判断结果。在另一些场景示例中,数据方和判断条件方可以采用不经意传输或混淆电路等技术,由判断条件方获得多个分段判断结果的第一份额。判断条件方可以将多个分段判断结果的第一份额和自身持有的多个分段判断结果的第二份额相加,得到多个分段判断结果;可以根据所述多个分段判断结果中的部分或全部确定最终的判断结果。在另一些场景示例中,判断条件方可以向数据方发送多个分段判断结果的第二份额。数据方可以接收多个分段判断结果的第二份额;可以将多个分段判断结果的第二份额和自身持有的多个分段判断结果的第一份额相加,得到多个分段判断结果;可以根据所述多个分段判断结果中的部分或全部确定最终的判断结果。在另一些场景示例中,数据方和判断条件方可以采用不经意传输或混淆电路等技术,由数据方获得多个分段判断结果的第二份额。数据方可以将多个分段判断结果的第二份额和自身持有的多个分段判断结果的第一份额相加,得到多个分段判断结果;可以根据所述多个分段判断结果中的部分或全部确定最终的判断结果。
请参阅图3。所述查询方法可以包括以下步骤。
步骤S201:判断条件方获取判断条件中基准数据的多个二进制段。
步骤S203:判断条件方构建多个分段判断结果集合。
步骤S205:判断条件方对所述多个分段判断结果集合中的分段判断结果进行加密,得到多个密文集合。
在一些实施例中,判断条件方对多个分段判断结果集合中的分段判断结果进行加密的过程,可以参见前面实施例的步骤S105。
在一些场景示例中,判断条件方可以采用具有同态性的非对称加密算法对所述多个分段判断结果集合中的分段判断结果进行加密。例如,判断条件方可以持有用于进行同态加密的公私钥对,所述公私钥对中的公钥可以向数据方公开。判断条件方可以使用所述公钥对所述多个分段判断结果集合中的分段判断结果进行加密。
步骤S207:判断条件方向数据方发送所述多个密文集合。
步骤S209:数据方接收所述多个密文集合。
步骤S211:数据方获取判断对象特定取值的多个二进制段。
步骤S213:数据方根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果;其中,选取的密文集合所对应的段位置与该二进制段在特定取值中的段位置相同。
步骤S215:数据方生成分段判断结果的第一份额。
在一些实施例中,所述分段判断结果的第一份额可以包括随机数。
在实际应用中,经过步骤S213,数据方可以获得多个查询结果。所述多个查询结果可以包括多个分段判断结果密文。数据方可以生成多个随机数作为多个分段判断结果的第一份额。所述多个分段判断结果可以理解为所述多个分段判断结果密文所对应的明文。或者,所述多个查询结果可以包括多个密文序列。数据方可以生成多个随机数序列作为多个明文序列的第一份额。所述多个明文序列可以理解为所述多个密文序列所对应的明文,每个明文序列可以包括多个分段判断结果。
例如,数据方可以生成一个随机数;可以根据该随机数构建一个随机数序列。这样随机数序列可以包括多个相同的随机数。又或者,数据方可以生成多个随机数,可以根据所述多个随机数构建一个随机数序列。这样随机数序列可以包括多个不同的随机数。
步骤S217:数据方根据查询结果和所述第一份额,计算分段判断结果第二份额的密文。
在一些实施例中,数据方可以计算多个分段判断结果第二份额的密文。
在实际应用中,所述多个查询结果可以包括多个分段判断结果密文,所述多个第一份额可以包括多个随机数。数据方可以根据多个分段判断结果密文和多个随机数,计算多个分段判断结果第二份额的密文。数据方可以采用任意方式计算分段判断结果第二份额的密文。在一些场景示例中,数据方可以使用同态加密算法,利用使用判断条件方的公钥对随机数进行加密,得到分段判断结果第一份额的密文;可以将分段判断结果密文和分段判断结果第一份额的密文同态相减,得到分段判断结果第二份额的密文。例如,数据方可以使用判断条件方的公钥对随机数<tr>0进行加密,得到分段判断结果第一份额的密文E(<tr>0);可以将分段判断结果密文E(tr)和分段判断结果第一份额的密文E(<tr>0)同态相减,得到分段判断结果第二份额的密文E(tr)-E(<tr>0)=E(tr-<tr>0)=E(<tr>1)。在另一些场景示例中,数据方可以根据判断条件方的公钥,使用同态加密算法根据分段判断结果密文和随机数,直接计算分段判断结果第二份额的密文。例如,数据方可以根据判断条件方的公钥,使用同态加密算法根据分段判断结果密文E(tr)和随机数<tr>0,直接计算分段判断结果第二份额的密文E(<tr>1)。
或者,所述多个查询结果可以包括多个密文序列,所述多个第一份额可以包括多个随机数序列。数据方可以根据多个密文序列和多个随机数序列,计算多个明文序列第二份额的密文。数据方可以采用任意方式计算明文序列第二份额的密文。在一些场景示例中,数据方可以使用判断条件方的公钥对随机数序列进行加密,得到加密后的随机数序列作为明文序列第一份额的密文;可以将密文序列和明文序列第一份额的密文同态相减,得到明文序列第二份额的密文。将密文序列和明文序列第一份额的密文同态相减,具体可以为将密文序列和明文序列第一份额的密文中处于相同位置处的数据元素同态相减。
在另一些场景示例中,数据方可以根据判断条件方的公钥,使用同态加密算法根据密文序列和随机数序列,直接计算明文序列第二份额的密文。
步骤S219:数据方向判断条件方发送分段判断结果第二份额的密文。
在一些实施例中,数据方可以直接向判断条件方发送多个分段判断结果第二份额的密文;或者,还可以向判断条件方发送多个明文序列第二份额的密文。
步骤S221:判断条件方接收分段判断结果第二份额的密文,对分段判断结果第二份额的密文进行解密,得到分段判断结果的第二份额。
在一些实施例中,判断条件方可以接收多个分段判断结果第二份额的密文;可以对多个分段判断结果第二份额的密文进行解密,得到多个分段判断结果的第二份额。延续前面的场景示例,判断条件方可以根据私钥对分段判断结果第二份额的密文进行解密,得到分段判断结果的第二份额。例如,判断条件方可以根据私钥对分段判断结果第二份额的密文E(<tr>1)进行解密,得到分段判断结果的第二份额<tr>1。
或者,判断条件方可以接收多个明文序列第二份额的密文;可以对多个明文序列第二份额的密文进行解密,得到多个明文序列的第二份额。
本实施例的查询方法,判断条件方可以获取判断条件中基准数据的多个二进制段;可以构建多个分段判断结果集合;可以对多个分段判断结果集合中的分段判断结果进行加密,得到多个密文集合;可以向数据方发送所述多个密文集合。数据方可以接收所述多个密文集合;可以对自身持有的判断对象的特定取值进行分段;可以根据特定取值的多个二进制段在所述多个密文集合中进行查询。这样一方面,通过安全多方计算可以在判断条件方***漏自身的判断条件、且数据方***漏自身的特定取值的前提下,由二者合作确定出判断条件的与判断对象的特定取值相对应的判断结果,从而实现了隐私保护。另一方面,分段判断结果集合的数据量较小,加密时花费的计算资源也较少;密文集合的数据量也较小,有利于数据方的查询。
请参阅图4。基于同样的发明构思,本说明书还提供数据处理方法的一个实施例。该实施例以判断条件方为实施主体,可以包括以下步骤。
步骤S301:获取判断条件中基准数据的多个二进制段。
步骤S303:构建多个分段判断结果集合。
步骤S305:对多个分段判断结果集合中的分段判断结果进行加密,得到多个密文集合。
步骤S307:向数据方发送所述多个密文集合。
本实施例的数据处理方法,判断条件方可以获取判断条件中基准数据的多个二进制段;可以构建多个分段判断结果集合;可以对多个分段判断结果集合中的分段判断结果进行加密,得到多个密文集合;可以向数据方发送所述多个密文集合。这样一方面,通过安全多方计算便于数据方在密文集合中进行查询。另一方面,分段判断结果集合的数据量比较小,加密时花费的计算资源也较小。
请参阅图5。基于同样的发明构思,本说明书还提供查询方法的另一个实施例。该实施例以数据方为实施主体。所述数据方持有多个密文集合,每个所述密文集合可以对应有段位置,且可以包括多个对应有二进制段的分段判断结果密文。该方法可以包括以下步骤。
步骤S401:获取判断对象特定取值的多个二进制段。
步骤S403:根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果;其中,选取的密文集合所对应的段位置与该二进制段在特定取值中的段位置相同。
步骤S405:向判断条件方发送所述查询结果。
本实施例的查询方法,数据方可以对自身持有的判断对象的特定取值进行分段;可以根据特定取值的多个二进制段在所述多个密文集合中进行查询。这样一方面,通过安全多方计算可以在判断条件方***漏自身的判断条件、且数据方***漏自身的特定取值的前提下,由二者合作确定出判断条件的与判断对象的特定取值相对应的判断结果,从而实现了隐私保护。另一方面,密文集合的数据量也比较小,有利于数据方的查询。
请参阅图6。基于同样的发明构思,本说明书还提供查询方法的另一个实施例。该实施例以数据方为实施主体。所述数据方持有多个密文集合,每个所述密文集合可以对应有段位置,且可以包括多个对应有二进制段的分段判断结果密文。该方法可以包括以下步骤。
步骤S501:获取判断对象特定取值的多个二进制段。
步骤S503:根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果;其中,选取的密文集合所对应的段位置与该二进制段在特定取值中的段位置相同。
步骤S505:生成分段判断结果的第一份额。
步骤S507:根据查询结果和所述第一份额,计算分段判断结果第二份额的密文。
步骤S509:向判断条件方发送分段判断结果第二份额的密文。
本实施例的查询方法,数据方可以对自身持有的判断对象的特定取值进行分段;可以根据特定取值的多个二进制段在所述多个密文集合中进行查询。这样一方面,通过安全多方计算可以在判断条件方***漏自身的判断条件、且数据方***漏自身的特定取值的前提下,由二者合作确定出判断条件的与判断对象的特定取值相对应的判断结果,从而实现了隐私保护。另一方面,密文集合的数据量也比较小,有利于数据方的查询。
请参阅图7。基于同样的发明构思,本说明书还提供数据处理装置的一个实施例。该装置可以应用于判断条件方,可以包括以下单元。
获取单元601,用于获取判断条件中基准数据的多个二进制段;
构建单元603,用于构建多个分段判断结果集合,每个分段判断结果集合对应有段位置,且包括根据基准数据中该段位置处的二进制段所得到的多个分段判断结果;
加密单元605,用于对多个分段判断结果集合中的分段判断结果进行加密,得到多个密文集合;
发送单元607,用于向数据方发送所述多个密文集合。
请参阅图8。基于同样的发明构思,本说明书还提供查询装置的一个实施例。该装置可以应用于数据方。所述数据方持有多个密文集合,所述密文集合对应有段位置,且包括多个对应有二进制段的分段判断结果密文。该装置可以包括以下单元。
获取单元701,用于获取判断对象特定取值的多个二进制段;
查询单元703,用于根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果;其中,选取的密文集合所对应的段位置与该二进制段在特定取值中的段位置相同;
发送单元705,用于向判断条件方发送所述查询结果。
请参阅图9。基于同样的发明构思,本说明书还提供查询装置的另一个实施例。该装置可以应用于数据方。所述数据方持有多个密文集合,所述密文集合对应有段位置,且包括多个对应有二进制段的分段判断结果密文。该装置可以包括以下单元。
获取单元801,用于获取判断对象特定取值的多个二进制段;
查询单元803,用于根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果;其中,选取的密文集合所对应的段位置与该二进制段在特定取值中的段位置相同;
生成单元805,用于生成分段判断结果的第一份额;
计算单元807,用于根据查询结果和所述第一份额,计算分段判断结果第二份额的密文;
发送单元809,用于向判断条件方发送分段判断结果第二份额的密文。
下面介绍本说明书电子设备的一个实施例。图10是该实施例中电子设备的硬件结构示意图。如图10所示,该电子设备可以包括一个或多个(图中仅示出一个)处理器、存储器和传输模块。当然,本领域普通技术人员可以理解,图10所示的硬件结构仅为示意,其并不对上述电子设备的硬件结构造成限定。在实际中该电子设备还可以包括比图10所示更多或者更少的组件单元;或者,具有与图10所示不同的配置。
所述存储器可以包括高速随机存储器;或者,还可以包括非易失性存储器,例如一个或者多个磁性存储装置、闪存或者其他非易失性固态存储器。当然,所述存储器还可以包括远程设置的网络存储器。所述远程设置的网络存储器可以通过诸如互联网、企业内部网、局域网、移动通信网等网络连接至所述区块链客户端。所述存储器可以用于存储应用软件的程序指令或模块,例如本说明书图4、图5或图6所对应实施例的程序指令或模块。
所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以读取并执行所述存储器中的程序指令或模块。
所述传输模块可以用于经由网络进行数据传输,例如经由诸如互联网、企业内部网、局域网、移动通信网等网络进行数据传输。
本说明书还提供计算机存储介质的一个实施例。所述计算机存储介质包括但不限于随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard Disk Drive,HDD)、存储卡(Memory Card)等等。所述计算机存储介质存储有计算机程序指令。在所述计算机程序指令被执行时实现:本说明书图4、图5或图6所对应实施例的程序指令或模块。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于单侧实施的方法实施例(例如图4、图5和图6所对应的实施例)、装置实施例、电子设备实施例、以及计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。
Claims (28)
1.一种数据处理方法,应用于判断条件方,包括:
获取判断条件中基准数据的多个二进制段,所述基准数据为判断条件中的阈值;
构建多个分段判断结果集合,每个分段判断结果集合对应一个段位置,且包括根据基准数据中该段位置处的二进制段所得到的多个分段判断结果;
对多个分段判断结果集合中的分段判断结果进行加密,得到多个密文集合;
向数据方发送所述多个密文集合。
2.如权利要求1所述的方法,所述获取判断条件中基准数据的多个二进制段,包括:
对于多个判断条件,获取每个判断条件中基准数据的多个二进制段;
所述分段判断结果集合包括多个子集合,每个子集合对应一个判断条件,且包括根据该判断条件中基准数据的二进制段所得到的多个分段判断结果。
3.如权利要求2所述的方法,每个子集合中的多个分段判断结果对应了多个判断对象的二进制段。
4.如权利要求1所述的方法,所述对多个分段判断结果集合中的分段判断结果进行加密,包括:
对多个分段判断结果集合中的分段判断结果进行同态加密。
5.如权利要求1所述的方法,所述判断条件包括比较判断条件;
每个分段判断结果对应至少一个判断对象的至少一个二进制段;
所述分段判断结果包括以下至少一种:第一类分段判断结果、第二类分段判断结果、第三类分段判断结果;所述第一类分段判断结果用于表示判断条件不成立,所述第二类分段判断结果用于表示待定状态,所述待定状态用于表示根据当前分段判断结果无法确定最终的判断结果,所述第三类分段判断结果用于表示判断条件成立。
6.一种查询方法,应用于数据方,所述数据方持有多个密文集合,每个密文集合对应一个段位置,且包括多个分段判断结果密文,每个分段判断结果密文对应至少一个二进制段,该方法包括:
获取判断对象特定取值的多个二进制段;
根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果;其中,选取的密文集合所对应的段位置与该二进制段在特定取值中的段位置相同;
向判断条件方发送所述查询结果。
7.如权利要求6所述的方法,所述分段判断结果密文根据同态加密算法计算得到。
8.如权利要求6或7所述的方法,所述查询结果包括分段判断结果密文。
9.如权利要求6或7所述的方法,所述密文集合包括多个子密文集合,每个子密文集合包括多个分段判断结果密文;所述查询分段判断结果密文,包括:
从密文集合的多个子密文集合中查询分段判断结果密文。
10.如权利要求9所述的方法,所述查询结果包括密文序列,所述密文序列包括在一个密文集合的多个子密文集合中所查询到的多个分段判断结果密文。
11.如权利要求9所述的方法,所述获取判断对象特定取值的多个二进制段,包括:
对于多个判断对象,获取每个判断对象特定取值的多个二进制段;
所述从密文集合的多个子密文集合中查询分段判断结果密文,包括:
对于密文集合中的每个子密文集合,从该子密文集合中查询分段判断结果密文,得到多个分段判断结果密文,对所述多个分段判断结果密文进行同态求和处理。
12.如权利要求11所述的方法,所述查询结果包括密文序列,所述密文序列包括隶属于同一密文集合的多个子密文集合所对应的多个求和结果。
13.一种查询方法,应用于数据方,所述数据方持有多个密文集合,每个密文集合对应一个段位置,且包括多个分段判断结果密文,每个分段判断结果密文对应至少一个二进制段,该方法包括:
获取判断对象特定取值的多个二进制段;
根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果;其中,选取的密文集合所对应的段位置与该二进制段在特定取值中的段位置相同;
生成分段判断结果的第一份额,所述第一份额包括随机数;
根据查询结果和所述第一份额,计算分段判断结果第二份额的密文;
向判断条件方发送分段判断结果第二份额的密文。
14.如权利要求13所述的方法,所述分段判断结果密文根据同态加密算法计算得到。
15.如权利要求13或14所述的方法,所述查询结果包括分段判断结果密文。
16.如权利要求13或14所述的方法,所述密文集合包括多个子密文集合,每个子密文集合包括多个分段判断结果密文;所述查询分段判断结果密文,包括:
从密文集合的多个子密文集合中查询分段判断结果密文。
17.如权利要求16所述的方法,所述查询结果包括密文序列,所述密文序列包括在一个密文集合的多个子密文集合中所查询到的多个分段判断结果密文。
18.如权利要求16所述的方法,所述获取判断对象特定取值的多个二进制段,包括:
对于多个判断对象,获取每个判断对象特定取值的多个二进制段;
所述从密文集合的多个子密文集合中查询分段判断结果密文,包括:
对于密文集合中的每个子密文集合,从该子密文集合中分段判断结果密文,得到多个分段判断结果密文,对所述多个分段判断结果密文进行同态求和处理。
19.如权利要求18所述的方法,所述查询结果包括密文序列,所述密文序列包括隶属于同一密文集合的多个子密文集合所对应的多个求和结果。
20.如权利要求13或14所述的方法,所述计算分段判断结果第二份额的密文,包括:
对分段判断结果的第一份额进行加密,得到分段判断结果第一份额的密文;
根据查询结果和分段判断结果第一份额的密文,计算分段判断结果第二份额的密文。
21.一种数据处理装置,应用于判断条件方,包括:
获取单元,用于获取判断条件中基准数据的多个二进制段,所述基准数据为判断条件中的阈值;
构建单元,用于构建多个分段判断结果集合,每个分段判断结果集合对应一个段位置,且包括根据基准数据中该段位置处的二进制段所得到的多个分段判断结果;
加密单元,用于对多个分段判断结果集合中的分段判断结果进行加密,得到多个密文集合;
发送单元,用于向数据方发送所述多个密文集合。
22.一种查询装置,应用于数据方,所述数据方持有多个密文集合,每个密文集合对应一个段位置,且包括多个分段判断结果密文,每个分段判断结果密文对应至少一个二进制段,该装置包括:
获取单元,用于获取判断对象特定取值的多个二进制段;
查询单元,用于根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果;其中,选取的密文集合所对应的段位置与该二进制段在特定取值中的段位置相同;
发送单元,用于向判断条件方发送所述查询结果。
23.一种查询装置,应用于数据方,所述数据方持有多个密文集合,每个密文集合对应一个段位置,且包括多个分段判断结果密文,每个分段判断结果密文对应至少一个二进制段,该装置包括:
获取单元,用于获取判断对象特定取值的多个二进制段;
查询单元,用于根据特定取值的每个二进制段,选取密文集合并从中查询分段判断结果密文,得到查询结果;其中,选取的密文集合所对应的段位置与该二进制段在特定取值中的段位置相同;
生成单元,用于生成分段判断结果的第一份额,所述第一份额包括随机数;
计算单元,用于根据查询结果和所述第一份额,计算分段判断结果第二份额的密文;
发送单元,用于向判断条件方发送分段判断结果第二份额的密文。
24.一种电子设备,包括存储器和处理器;
存储器,用于存储计算机指令;
处理器,用于执行所述计算机指令以实现如权利要求1-5中任一项所述的方法步骤。
25.一种电子设备,包括存储器和处理器;
存储器,用于存储计算机指令;
处理器,用于执行所述计算机指令以实现如权利要求6-12中任一项所述的方法步骤。
26.一种电子设备,包括存储器和处理器;
存储器,用于存储计算机指令;
处理器,用于执行所述计算机指令以实现如权利要求13-20中任一项所述的方法步骤。
27.一种查询***,包括数据方和判断条件方;
所述数据方设置有如权利要求22所述的装置;
所述判断条件方用于接收查询结果,对所述查询结果进行解密,得到分段判断结果。
28.一种查询***,包括数据方和判断条件方;
所述数据方设置有如权利要求23所述的装置;
所述判断条件方用于接收分段判断结果第二份额的密文,对分段判断结果第二份额的密文进行解密,得到分段判断结果的第二份额。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911289143.8A CN111046431B (zh) | 2019-12-13 | 2019-12-13 | 数据处理方法、查询方法、装置、电子设备和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911289143.8A CN111046431B (zh) | 2019-12-13 | 2019-12-13 | 数据处理方法、查询方法、装置、电子设备和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111046431A CN111046431A (zh) | 2020-04-21 |
CN111046431B true CN111046431B (zh) | 2021-08-13 |
Family
ID=70236474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911289143.8A Active CN111046431B (zh) | 2019-12-13 | 2019-12-13 | 数据处理方法、查询方法、装置、电子设备和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111046431B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113824672B (zh) * | 2020-06-18 | 2023-03-07 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及安全多方计算*** |
CN113067694B (zh) * | 2021-03-31 | 2022-08-26 | 支付宝(杭州)信息技术有限公司 | 一种通信优化的双方安全比较方法、装置以及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108629196B (zh) * | 2017-03-21 | 2021-04-30 | 北京京东尚科信息技术有限公司 | 数据存储和查询的方法、装置、电子设备和可读存储介质 |
CN107832631A (zh) * | 2017-11-13 | 2018-03-23 | 上海斐讯数据通信技术有限公司 | 一种数据发布的隐私保护方法和*** |
CN109359480B (zh) * | 2018-10-08 | 2019-10-08 | 温州大学瓯江学院 | 一种面向数字图书馆的用户隐私保护方法及*** |
CN110363509B (zh) * | 2019-07-19 | 2022-03-29 | 华中师范大学 | 一种信息保护方法及装置 |
-
2019
- 2019-12-13 CN CN201911289143.8A patent/CN111046431B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111046431A (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tahir et al. | CryptoGA: a cryptosystem based on genetic algorithm for cloud data security | |
CN111143862B (zh) | 数据处理方法、查询方法、装置、电子设备和*** | |
CN111125727B (zh) | 混淆电路生成方法、预测结果确定方法、装置和电子设备 | |
CN110457912B (zh) | 数据处理方法、装置和电子设备 | |
EP3424175B1 (en) | Converting a boolean masked value to an arithmetically masked value for cryptographic operations | |
CN111461952B (zh) | 图像加密方法、计算机设备和计算机可读存储介质 | |
US20140233727A1 (en) | Method for secure substring search | |
WO2020216875A1 (en) | Methods and systems for privacy preserving evaluation of machine learning models | |
Mandal et al. | Symmetric key image encryption using chaotic Rossler system | |
CN110427969B (zh) | 数据处理方法、装置和电子设备 | |
CN111428887B (zh) | 一种基于多个计算节点的模型训练控制方法、装置及*** | |
CN113239404A (zh) | 一种基于差分隐私和混沌加密的联邦学习方法 | |
CN110391895B (zh) | 数据预处理方法、密文数据获取方法、装置和电子设备 | |
CN111741020B (zh) | 基于数据隐私保护的公共数据集确定方法、装置及*** | |
CN111144576A (zh) | 模型训练方法、装置和电子设备 | |
CN111914264A (zh) | 索引创建方法及装置、数据验证方法及装置 | |
CN111046431B (zh) | 数据处理方法、查询方法、装置、电子设备和*** | |
Lambić | Cryptanalyzing a novel pseudorandom number generator based on pseudorandomly enhanced logistic map | |
CN114969128B (zh) | 一种基于安全多方计算技术的隐匿查询方法、***和存储介质 | |
CN111159730B (zh) | 数据处理方法、查询方法、装置、电子设备和*** | |
Moon et al. | An Efficient Encrypted Floating‐Point Representation Using HEAAN and TFHE | |
CN116561787A (zh) | 视觉图像分类模型的训练方法、装置及电子设备 | |
CN111046408A (zh) | 判断结果处理方法、查询方法、装置、电子设备和*** | |
CN111475690B (zh) | 字符串的匹配方法和装置、数据检测方法、服务器 | |
Gupta et al. | C 3 T: Cloud based cyclic cryptographic technique and it’s comparative analysis with classical cipher techniques |
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 |