CN113886887A - 基于多方安全计算的数据查询方法及装置 - Google Patents
基于多方安全计算的数据查询方法及装置 Download PDFInfo
- Publication number
- CN113886887A CN113886887A CN202111243069.3A CN202111243069A CN113886887A CN 113886887 A CN113886887 A CN 113886887A CN 202111243069 A CN202111243069 A CN 202111243069A CN 113886887 A CN113886887 A CN 113886887A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- party
- key
- 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.)
- Pending
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)
- Storage Device Security (AREA)
Abstract
本说明书实施例提供一种基于多方安全计算的数据查询方法及装置,在数据查询过程中,一方面,由第一方向第二方提供多个数据标识构成的混淆标识集,并将目标数据标识隐藏其中,以供第二方针对混淆标识集中的各个数据标识,将业务数据采用不同的密钥进行加密得到各自的数据密文提供给第一方。另一方面,第一方、第二方基于逆元素置换密钥的构思对查询目标对应的目标数据标识经由第一密钥、第二密钥、第一密钥的逆元素依次处理,在第一方得到由第二密钥加密的目标数据标识的密文,用于对目标数据进行解密。这种技术构思可以减少多方安全计算的查询过程的数据方通信轮次,提高多方安全计算的数据查询效率。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及多方安全计算技术中的数据查询方法及装置。
背景技术
安全多方计算又称为多方安全计算,即多方共同计算出一个函数的结果,而不泄露这个函数各方的输入数据,计算的结果公开给其中的一方或多方。安全多方计算例如可以应用于隐私求交、联合训练机器学习模型、数据查询,等等。其中,在数据查询场景下,一个数据方持有数据(如为键值对中的value等),另一个数据方可以根据数据标识(例如key)查询数据。为了保护数据隐私,查询方不能向数据方泄露待查询数据的数据标识,数据方不能向查询方泄露待查询数据以外的其他数据。
发明内容
本说明书一个或多个实施例描述了一种基于多方安全计算的数据查询方法及装置,用以解决背景技术提到的一个或多个问题。
根据第一方面,提供一种基于多方安全计算的数据查询方法,用于第一方在不泄露查询目标的情况下从持有多条数据的第二方获取目标数据,所述方法包括:第一方利用本地的第一密钥对所述查询目标对应的目标数据标识加密,得到第一目标密文,并将所述第一目标密文和混淆标识集提供给第二方,其中,所述混淆标识集包括与N条数据一一对应的N个数据标识,所述N个数据标识包括按照预定方式设置的所述目标数据标识;第二方利用本地的第二密钥对所述第一目标密文加密,得到第二目标密文,并且,分别对所述N条数据利用一一对应的N个数据密钥加密得到N条数据密文,其中,单个数据密钥经由所述第二密钥对相应的单个数据标识的加密结果确定;第二方向第一方提供所述第二目标密文,以及N条数据密文;第一方利用所述第一密钥的逆元素解密所述第二目标密文,得到所述第二密钥对所述目标数据标识加密的第三目标密文,从而根据所述第三目标密文解密N条数据密文中按照所述预定方式确定的目标数据密文,得到目标数据。
在一个实施例中,所述预定方式包括以下之一:所述目标数据标识位于所述N个数据标识的预定位置;所述目标数据标识在预定标志位为预定值。
在一方面的实施例中所述第一方利用本地的第一密钥对所述查询目标对应的目标数据标识加密,得到第一目标密文包括:将所述目标数据标识映射为椭圆曲线上的第一点;根据所述第一密钥对应的标量对所述第一点进行点乘操作,得到椭圆曲线上的第二点作为所述第一目标密文。
在一个进一步的实施例中,所述第二目标密文是基于所述第二密钥对应的标量对所述第二点进行点乘操作得到椭圆曲线上的第三点。
在另一个进一步的实施例中,单个数据密钥通过以下方式确定:将相应的单个数据标识映射为椭圆曲线上的单个点;根据所述第二密钥对应的标量对所述单个点进行点乘操作,得到椭圆曲线上的点作为单个密钥点;基于所述单个密钥点的横坐标和/或纵坐标确定相应的单个数据密钥。
在另一方面的实施例中,所述第一方利用本地的第一密钥对所述查询目标对应的目标数据标识加密,得到第一目标密文包括:将所述目标数据标识映射为利用素数Q定义的有限域中的第一值;基于所述第一密钥对所述第一值的模幂操作,得到所述有限域中的第二值作为所述第一目标密文。
在一个进一步的实施例中,所述第二目标密文是基于所述第二密钥对所述第二值进行模幂操作得到所述有限域中的第三值。
在另一个进一步的实施例中,单个数据密钥通过以下方式确定:将相应的单个数据标识映射为所述有限域的单个值;基于所述第二密钥对所述单个值进行模幂操作,得到所述有限域中的值作为相应的单个数据密钥。
在一个实施例中,所述单条数据密文为单个数据密钥与相应单条数据的异或操作结果,第一方通过所述第三目标密文与目标数据标识对应的数据密文的异或操作,得到目标数据。
根据第二方面,提供一种基于多方安全计算的数据查询方法,由第一方用于在不泄露查询目标的情况下从持有多条数据的第二方获取目标数据,所述方法包括:利用本地的第一密钥对所述查询目标对应的目标数据标识加密,得到第一目标密文;向第二方提供所述第一目标密文和混淆标识集,其中,所述混淆标识集包括与N条数据一一对应的N个数据标识,以供第二方提供利用本地的第二密钥对所述第一目标密文加密得到的第二目标密文,以及对所述N条数据利用一一对应的N个数据密钥加密得到的N条数据密文,其中,所述N个数据标识包括按照预定方式设置的所述目标数据标识,单个数据密钥经由所述第二密钥对相应的单个数据标识的加密结果确定;利用所述第一密钥的逆元素解密所述第二目标密文,得到所述第二密钥对所述目标数据标识加密的第三目标密文;根据所述第三目标密文解密N条数据密文中按照所述预定方式确定的目标数据密文,得到目标数据。
根据第三方面,提供一种基于多方安全计算的数据查询方法,用于持有多条数据的第二方针对第一方的数据查询,在不获取第一方的查询目标且不泄露目标数据以外的其他数据情况下向第一方提供目标数据,所述方法包括:获取第一方利用本地的第一密钥对所述查询目标对应的目标数据标识加密得到的第一目标密文,以及混淆标识集,其中,所述混淆标识集包括与N条数据一一对应的N个数据标识,所述N个数据标识包括按照预定方式设置的所述目标数据标识;利用本地的第二密钥对所述第一目标密文加密,得到第二目标密文,并且,分别对所述N条数据利用一一对应的N个数据密钥加密得到N条数据密文,其中,单个数据密钥经由所述第二密钥对相应的单个数据标识的加密结果确定;向第一方提供所述第二目标密文,以及N条数据密文,以供第一方利用所述第一密钥的逆元素解密所述第二目标密文,得到所述第二密钥对所述目标数据标识加密的第三目标密文,从而根据所述第三目标密文解密N条数据密文中按照所述预定方式确定的目标数据密文,得到目标数据。
根据第四方面,一种基于多方安全计算的数据查询系统,包括进行数据查询的第一方及提供数据的第二方,由第一方在不泄露查询目标的情况下从持有多条数据的第二方获取目标数据,且第二方不泄露所述目标数据之外的其他数据;其中:
第一方配置为利用本地的第一密钥对所述查询目标对应的目标数据标识加密,得到第一目标密文,并向第二方提供所述第一目标密文和混淆标识集,其中,所述混淆标识集包括与N条数据一一对应的N个数据标识,所述N个数据标识包括按照预定方式设置的所述目标数据标识;
第二方配置为利用本地的第二密钥对所述第一目标密文加密,得到第二目标密文,并且,分别对所述N条数据利用一一对应的N个数据密钥加密得到N条数据密文,从而向第一方提供所述第二目标密文以及所述N条数据密文,其中,单个数据密钥经由所述第二密钥对相应的单个数据标识的加密结果确定;
第一方还配置为利用所述第一密钥的逆元素解密所述第二目标密文,得到所述第二密钥对所述目标数据标识加密的第三目标密文,从而根据所述第三目标密文解密N条数据密文中按照所述预定方式确定的目标数据密文,得到目标数据。
根据第五方面,提供一种基于多方安全计算的数据查询装置,设于进行数据查询的第一方,用于在不泄露查询目标的情况下从持有多条数据的第二方获取目标数据,所述装置包括:
加密单元,配置为利用本地的第一密钥对所述查询目标对应的目标数据标识加密,得到第一目标密文;
通信单元,配置为将所述第一目标密文和混淆标识集提供给第二方,其中,所述混淆标识集包括与N条数据一一对应的N个数据标识,以供第二方提供利用本地的第二密钥对所述第一目标密文加密得到的第二目标密文,以及对所述N条数据利用一一对应的N个数据密钥加密得到的N条数据密文,其中,所述N个数据标识包括按照预定方式设置的所述目标数据标识,单个数据密钥经由所述第二密钥对相应的单个数据标识的加密结果确定;
第一解密单元,配置为利用所述第一密钥的逆元素解密所述第二目标密文,得到所述第二密钥对所述目标数据标识加密的第三目标密文;
第二解密单元,配置为根据所述第三目标密文解密N条数据密文中按照所述预定方式确定的目标数据密文,得到目标数据。
根据第六方面,提供一种基于多方安全计算的数据查询装置,设于持有多条数据的第二方,用于针对第一方的数据查询,在不获取第一方的查询目标且不泄露目标数据以外的其他数据情况下向第一方提供目标数据;所述装置包括通信单元和加密单元,其中:
所述通信单元配置为:获取第一方利用本地的第一密钥对所述查询目标对应的目标数据标识加密得到的第一目标密文,以及混淆标识集,其中,所述混淆标识集包括与N条数据一一对应的N个数据标识,所述N个数据标识包括按照预定方式设置的所述目标数据标识;
所述加密单元配置为:利用本地的第二密钥对所述第一目标密文加密,得到第二目标密文,并且,分别对所述N条数据利用一一对应的N个数据密钥加密得到N条数据密文,其中,单个数据密钥经由所述第二密钥对相应的单个数据标识的加密结果确定;
所述通信单元还配置为:向第一方提供所述第二目标密文,以及N条数据密文,以供第一方利用所述第一密钥的逆元素解密所述第二目标密文,得到所述第二密钥对所述目标数据标识加密的第三目标密文,从而根据所述第三目标密文解密N条数据密文中按照所述预定方式确定的目标数据密文,得到目标数据。
根据第七方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第二方面至第三方面的方法。
根据第八方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第二方面至第三方面的方法。
通过本说明书实施例提供的方法和装置,在多方安全计算的数据查询过程中,其中的一方向另一方查询数据,在相互不泄露数据隐私的基础上,通过双方对查询目标加密的设置,达成单轮次通信可完成的安全查询,提高多方安全计算下的数据查询效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出本说明书的技术构思下一个基于多方安全计算的数据查询流程的时序图;
图2是根据一个实施例的查询方执行的基于多方安全计算的数据查询流程示意图;
图3是根据一个实施例的数据方执行的基于多方安全计算的数据查询流程示意图;
图4示出根据一个实施例的设于查询方的基于多方安全计算的数据查询装置的示意性框图;
图5示出根据一个实施例的设于数据方的用于基于多方安全计算的数据查询装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
多方安全计算中,计算量和通信量的多少,影响多方安全计算的效率。常规技术中,多方安全计算中的数据查询可以通过同态加密、不经意传输(Oblivious Transfer,OT)等方式实现。本说明书的技术方案基于不经意传输(OT)的构思,结合椭圆曲线加密原理,对多方安全计算中的数据查询技术提出改进。
以下先以一个发送者Alice(数据持有者)和接收者Bob(数据请求方)为例介绍OT的技术构思。假设Alice持有数据M0和M1,一个具体的OT流程可以包括:发送者Alice针对两条数据分别生成相应的两对RSA公私钥,并将两对RSA公私钥中的两个公钥puk0、puk1发送给接收者Bob;Bob生成一个随机数,并用收到的两个公钥之一加密随机数(用哪个秘钥取决于想获取哪条数据,例如想要得到消息M0则用puk0加密随机数,如果想要得到M1则用puk1加密随机数),并将密文结果发送给Alice;Alice用本地的两个私钥分别解密收到的随机数密文,并得到两个解密结果k0、k1,将两个结果分别与要发送的两条信息进行异或(如k0异或M0,k1异或M1),并将两个结果e0,e1发给Bob;Bob用前述的随机数与收到的e0、e1分别做异或操作,得到的两个结果中有一条为真实数据。
可以看出,在不经意传输过程中,交互的两个数据方经过多次数据通信,并在加解密过程中涉及全部数据的加解密操作。
有鉴于此,本说明书基于椭圆曲线的加密原理,提出一种利用数据标识确定加密密钥的方式。总体而言,一方面,查询方提供多个明文数据标识给数据方,数据方对业务数据加密过程中,利用数据标识构造的密钥加密数据,另一方面,利用加密的目标数据标识构造数据方的解密密钥。在本说明书的技术构思下,第一方可以持有本地的第一密钥,第二方可以持有本地的第二密钥。在数据查询过程中,由第一方向第二方提供多个数据标识,并将目标数据标识隐藏其中。多个数据标识例如称为混淆标识集,其可以通过数组、集合、向量等形式提供给第二方。第二方针对混淆标识集中的各个数据标识,查询相应的业务数据,并将业务数据加密得到各自的数据密文提供给第一方。第一方需要解密得到目标数据。
为了使得第一方仅能解密目标数据,本说明书采取的技术构思是,对各条业务数据采用不同的密钥进行加密,并由第一方仅能推断目标数据的加密密钥。如此,采用椭圆曲线上的点或者有限域的加密方式,根据数据存储的特性包含数据标识和数据两方面的内容,利用数据标识构造对业务数据进行加密的密钥。这样,第一方基于椭圆曲线上的点或者有限域的加密方式下,逆元素置换密钥的构思,对查询目标对应的目标数据标识在经由第一密钥、第二密钥、第一密钥的逆元素依次处理的情况下,得到由第二密钥加密的目标数据标识的密文(解密密钥),第二方对业务数据利用第二密钥加密相应数据标识得到对业务数据加密的密文(加密密钥)。如此,两个方面得到的密文一个作为加密密钥,一个作为解密密钥,在对称加密方式下可以由第一方利用解密密钥对通过相应加密密钥加密的目标数据进行解密。
这种技术构思通过两个方面同时进行,巧妙确定数据密钥,减少多方安全计算的查询过程的数据方通信轮次,提高多方安全计算的数据查询效率。以下结合图1的实施例详细描述本说明书的技术构思。
参考图1所示,给出了一个基于多方安全计算的数据查询具体实施流程。在图1示出的实施流程中,查询数据的一方(查询方)可以记为第一方,持有数据的一方(数据方)可以记为第二方。这里的第一方、第二方可以理解为相应数据方的设备、装置或者计算机模块等。其中,第二方可以持有M条业务数据,M为正整数。这里的业务数据可以是字符、图片、动画、视频、音频等多种形式中的至少一种。单条业务数据对应有唯一的数据标识,例如身份证号、手机号、数据顺序号等等。为了描述方便,数据标识可以用ID标识。在一个具体例子中,第二方的业务数据通过键值对key-value的形式存储,数据标识为key、数据为value。例如记录学生成绩的业务数据,数据标识(ID)为学生号,数据为当前成绩。在本说明书的技术构思下,第一方可以存储有本地的第一密钥Ka,第二方可以存储有本地的第二密钥Kb。第一方、第二方各自可以在本地利用本地密钥对数据进行加密。
在一种加密机制下,可以将数据映射为椭圆曲线上的点,从而利用椭圆曲线中的点加、点乘等操作进行数据加密。例如,对于数据标识ID1,映射为椭圆曲线上的点记为H(ID1),其中,H可以表示哈希或其他加密方法。这样,可以利用椭圆曲线的点乘操作、点加操作等性质进行加密运算。椭圆曲线上的点通常具有以下封闭性:对于任意两个点P和H,经过点加操作即P+H仍为椭圆曲线上的点;对于任意一个点P和自然数n,点乘操作n×P可以看作n个点P的连续点加操作,结果仍为椭圆曲线上的点。则在椭圆曲线加密方式下,密钥可以看作标量,业务数据可以映射为椭圆曲线上的点,则使用密钥加密的过程可以通过点乘操作实现。在n未知的情况下,根据nP和P难以推导n(给定被点乘的点和点乘的结果点,一般很难求出标量),从而加密的逆运算难以进行。如此,第一方持有的第一密钥Ka可以看作标量,待加密的数据被映射到椭圆曲线上的点之后,使用第一密钥的加密过程可以看作按标量做多次椭圆曲线点加操作。例如,第一方利用第一密钥Ka(标量)对数据标识ID1的加密结果Ka H(ID1)可以通过点乘操作实现,即Ka个椭圆曲线上的点H(ID1)的点加操作。
在另一种加密机制下,椭圆曲线还可以定义在有限域上,则第一方和第二方还可以利用有限域的模乘、模幂等操作来进行数据加密。其中,模乘性质如下:两个数a和b的乘积,对素数Q求模,即(a×b)%Q,其与((a%Q)×(b%Q))%Q的结果等价;模幂性质如下:两个数a、b一个为底数一个为指数,对素数Q求模,即ab%Q,其与(a%Q)b%Q的结果等价。利用模乘操作或模幂操作进行加密的情况下,结果仍为元素集合(有限域)中的元素,并且,加密前的原始数据难以反推。也就是说,给定底数和模幂,一般很难求出指数,从而加密的逆运算难以进行。如此,对于一个素数Q,可以定义一个0-(Q-1)的有限域,对应一个各个元素分别为0-(Q-1)之间的Q个数的元素集合。一个数A映射到有限域为数A对素数Q的求模操作,如A%Q,例如A=10,Q=7,A可以通过求模操作10%7=3映射到有限域[0,1,2,3,4,5,6]的数值3。数A与数B的模乘操作例如是:[(A%Q)+(B%Q)]%Q=(A×B)%Q,模幂操作例如是:[(A%Q)×(B%Q)]%Q=(AB)%Q。如此,第一方持有的第一密钥Ka对数据ID1加密的过程例如可以为(ID1)Ka%Q等。
在以上椭圆曲线上的点或者有限域的加密机制下,密钥Ka、Kb还可以存在逆元素,例如Ka、Kb分别对应的逆元素记为Ka-1、Kb-1。本领域技术人员可以理解,逆元素的计算方法例如通过欧拉定理进行,在此不再赘述。根据逆元素的性质,Ka-1Ka为1,Kb-1Kb为1。基于逆元素的这种性质以及椭圆曲线点乘标量的可交换性,有限域模乘指数的可交换性,第一方通过Ka加密的数据(如KaH(ID1)或(ID1)Ka%Q等)经由第二方Kb加密(如KbKaH(ID1)或(ID1)KaKb%Q等)后,再经由Ka的逆元素Ka-1解密(如Ka-1KbKaH(ID1)或(ID1)KaKb(Ka-1)%Q等),可以在第一方得到由第二方的第二密钥Kb加密的数据(如KbH(ID1)或(ID1)Kb%Q等)。
基于以上描述的OT原理及基于椭圆曲线或有限域的加密原理,图1示出的实施场景中,第一方在不泄露查询目标的情况下从持有多条数据的第二方获取目标数据的过程可以包括以下步骤:步骤101,第一方利用本地的第一密钥对查询目标对应的目标数据标识加密,得到第一目标密文;步骤102,第一方将第一目标密文和的混淆标识集提供给第二方,其中,混淆标识集包括与N条数据一一对应的N个数据标识,N个数据标识包括按照预定方式设置的目标数据标识;步骤103,第二方利用本地的第二密钥对第一目标密文加密,得到第二目标密文;步骤104,第二方分别对N条数据利用一一对应的N个数据密钥加密得到N条数据密文,其中,单个数据密钥经由第二密钥对相应的单个数据标识的加密结果确定;步骤105,第二方向第一方提供第二目标密文,以及N条数据密文;步骤106,第一方利用第一密钥的逆元素解密第二目标密文,得到第二密钥对目标数据标识加密的第三目标密文,从而根据第三目标密文解密N条数据密文中按照预定方式确定的目标数据密文,得到目标数据。
首先,在步骤101中,第一方利用本地的第一密钥对查询目标对应的目标数据标识加密,得到第一目标密文。可以理解,查询目标表示第一方欲得到的业务数据,例如学生A的成绩、用户B的账户余额等等。
业务数据可以存储在第二方。其中,每条业务数据可以由至少一个数据标识唯一确定。例如学生成绩作为业务数据的情况下,数据标识可以是学生编号、手机号、身份证号等中的至少一项。根据数据标识可以确定相应的业务数据。在可选的实施例中,第二方的数据以key-value方式存储,键key可以作为数据标识,而值value可以是数据。可选地,一条业务数据可以对应多个数据标识,例如学生成绩可以具有学生编号、手机号、身份证号等多个数据标识,每个数据标识都可以唯一对应到相应业务数据。
查询目标可以是第二方存储的业务数据中的一条或多条数据,本步骤101所描述的查询目标可以是第一方待查询的目标数据中的任一条,或者全部。查询目标对应的数据标识可以称为目标数据标识。其中,第一方可以获取第二方持有的多条业务数据分别对应的各个数据标识。在单条业务数据具有多个可以唯一对应到自身的数据标识的情况下,目标数据标识可以是其中的任一个(如学生编号)。第一方为了不泄露查询目标,例如学生A,可以使用本地的第一密钥对目标数据标识(如学生A的学生编号ID10)加密得到第一目标密文。在查询目标为多个的情况下,例如学生A、学生B两个,每个查询目标各自对应一个目标数据标识,并可以被加密为第一目标密文。
在一个实施例中,可以先将目标数据标识映射为椭圆曲线上的一个点,再利用第一密钥对这个点进行点乘操作以加密得到第一目标密文。将目标数据标识映射为椭圆曲线上行的一个点时,可以使用hash to point之类的方法进行。例如通过预定的hash算法处理目标数据标识,例如记为H(ID10)。目标数据标识的哈希结果可以作为映射到椭圆曲线上的点的一个坐标轴(如横轴或x轴)坐标,再根据横轴坐标和椭圆曲线方程确定另一个坐标轴(如纵轴或y轴)坐标,如此可以得到椭圆曲线上的一个点(x,y)。由于该点(x,y)由H(ID10)决定,为了描述方便,可以将映射结果仍用H(ID10)表示。单个目标数据标识可以映射为椭圆曲线上的单个点,例如记为第一点(或者第一映射点)。通过第一密钥Ka的加密目标数据标识得到的第一目标密文可以记为第一密钥对应的标量对相应第一点进行点乘操作的标量积,例如KaH(ID10)。可以理解,由点乘操作的标量积确定的第一目标密文仍可以对应到椭圆曲线上的点,例如称为第二点。
在另一个实施例中,可以先将目标数据标识映射为有限域中的数值元素,再利用第一密钥对这个数值元素进行模幂操作以加密得到第一目标密文。此时,可以将目标数据标识映射为由素数Q定义的有限域中的数值元素,例如为:(ID10)%Q。为了保证加密的可靠性,在可选的实施例中,还可以先对目标数据标识进行哈希运算,再将哈希运算结果映射到有限域的数值元素,如为:H(ID10)%Q。单个目标数据标识映射为有限域中的单个数值元素,例如记为相应的单个第一值。值得说明的是,这里的第一值不表示数值的区分,而是表示目标数据标识第一次映射到有限域的数值元素,所以称为第一值。本说明书中后续对第一值进行处理,处理结果例如依次可以称为第二值、第三值等。第一值、第二值、第三值等都可以是素数Q定义的有限域中的数值元素。这样,利用第一密钥Ka对第一值的模幂操作结果,如:(ID10%Q)Ka%Q、(H(ID10)%Q)Ka%Q等,可以在Q定义的有限域得到第二值作为第一目标密文。由于加密过程在本地进行,根据模幂运算的性质,在可选的实施例中,可以免去将目标数据标识映射到有限域的步骤,而直接采用(ID10)Ka%Q、(H(ID10))Ka%Q等作为第一密钥对第一值的模幂操作结果。
在更多实施例中,还可以通过其他方式对单个目标数据标识加密,在此不做赘述。在查询目标有多个的情况下,可以对各个查询目标都采用以上方式进行加密,得到相应的第一目标密文。
接着,在步骤102中,第一方将第一目标密文和混淆标识集提供给第二方。可以理解,为了获取目标数据,第一方还需要提供真正的目标数据标识给第二方,以供第二方反馈相应数据。为了不泄露真正的查询目标,第一方可以构建混淆标识集。其中,混淆标识集包括与N条数据一一对应的N个数据标识,N为大于1的正整数,例如为100。在第二方持有的业务数据条数为M的情况下,N还小于或等于M。
本领域技术人员容易理解,混淆标识集中的其他数据标识是为了让第二方无法确定第一方的目标数据标识,因此,混淆标识集中的N个数据标识包括目标数据标识。如在查询目标数据标识为ID10的情况下,混淆标志集例如可以包括(ID1,ID2,……ID100),共100个明文ID数据,其中包括ID10。其中,目标数据标识可以按照预定方式设置在N个数据标识中。预定方式例如是:将目标数据标识排在预定位置(如第10个、第20个等);在数据标识中增加标志位(例如8bit的字段),并将目标数据标识的标志位设为预定值(如00110011);等等。混淆标识集可以在步骤101中确定第一目标密文之前、同时或之后确定,本说明书对此不做限定。
第一方可以同时向第二方提供第一目标密文和混淆标志集(对应N个明文数据标识)。根据本说明书的技术构思可知,混淆标识集用于第二方按照其中提供的数据标识获取相应的数据并加密后反馈给第一方,而第一目标密文经第二方处理后用于由第一方构造针对加密后的目标数据的加密密钥。
于是,一方面,根据步骤103,第二方利用本地的第二密钥对第一目标密文加密,得到第二目标密文。第二密钥例如为Kb,可以进一步对第一目标密文加密。其中:在利用椭圆曲线的点乘加密机制下,收到的第一目标密文例如为KaH(ID10),利用Kb进一步加密得到第二目标密文如KbKaH(ID10),对应椭圆曲线上的第三点;在利用有限域的模幂加密机制下,收到的第一目标密文例如为(H(ID10))Ka%Q,利用Kb进一步加密得到第二目标密文如为(H(ID10))Ka Kb%Q,对应有限域中的第三值。
另一方面,在步骤104,第二方分别对N条数据利用一一对应的N个数据密钥加密得到N条数据密文。其中,单个数据密钥经由第二密钥对相应的单个数据标识的加密结果确定。
可以理解,第二方无法确定第一方的目标数据,因此,在该步骤104中,对混淆标识集中N个数据标识对应的N条业务数据均采用相同的方式加密并提供给第一方。为了与步骤103相配合,使得第一方能够根据第二目标密文得到解密相应业务数据的密钥,在步骤104中,对各条业务数据加密的数据密钥基于第二密钥对相应的数据标识的处理确定。
例如,单条业务数据的数据密钥为第二密钥对相应的单个数据标识的加密结果。其中,加密方式可以是对椭圆曲线上的点的点乘操作,或者在有限域上的模乘操作。具体地,假设混淆标识集中的第j(j为1至N中的任一自然数)个数据标识为IDj,映射为椭圆曲线上的单个点或者有限域中的单个数值,记为H(IDj),则第二密钥对相应的单个数据标识的加密结果例如记为:KbH(IDj)、(H(IDj))Kb%Q等,其中,H标识哈希运算。值得说明的是,在对椭圆曲线上的点进行点乘操作的机密机制下,KbH(IDj)仍表示一个点,如记为密钥点。此时,为了加密的进行,可以按照约定选择密钥点的一个坐标(例如横轴坐标)或基于坐标确定的其他数值作为数据密钥。而在有限域机制下,KbH(IDj)对应一个数值,可以直接用于确定密钥。如此,相应数据密钥Kj例如可以为:[KbH(IDj)]x、[KbH(IDj)]y、(H(IDj))Kb%Q等等。
进一步地,针对各条业务数据使用相应的数据密钥加密。为了能够使得第一方利用相同密钥解密目标数据,这里对业务数据的加密方式可以采用对称加密。即,在获取相同加密密钥的情况下,可以对数据密文进行解密的加密方式。对称加密方式例如可以包括但不限于AES、DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK中的一种。作为一个具体示例,例如可以采用AES的CTR模式进行数据加密,利用A和B求异或的结果为A对B的加密结果,表示用A对加密结果解密得到数据B的原理。如此,用数据密钥Kj对相应业务数据Vj进行异或操作,异或操作结果作为IDj对应的业务数据Vj的数据密文,如记为在不同加密模式机制下,数据标识IDj对应的业务数据Vj的加密结果例如为: 等,在此不再赘述。由此,对于N个数据标识对应的N条业务数据,可以得到相应的N条数据密文。
值得说明的是,图1仅为本说明书的一个示意,因此,其中涉及的步骤仅为一个具体实施的例子。实践中,各个步骤还可以根据需要调换顺序执行、同时执行,例如,可以同时执行步骤103和步骤104,或者先执行步骤104再执行步骤103,在此不做限定。然后,经由步骤105,第二方向第一方提供第二目标密文,以及N条数据密文。
进一步地,根据步骤106,第一方利用第一密钥的逆元素解密第二目标密文,得到第二密钥对目标数据标识加密的第三目标密文,从而根据第三目标密文解密N条数据密文中按照预定方式确定的目标数据密文,得到目标数据。该步骤106涉及两个层次,第一个层次,针对步骤103中的第二目标密文进行处理,得到解密目标数据的密钥,即第三目标密文,第二个层次,利用解密密钥解密相应数据密文,获取目标数据。
其中,第一方利用第一密钥的逆元素解密第二目标密文的过程是部分解密的过程。也就是说,解密掉由第一方加密的部分。作为具体示例,在椭圆曲线上的点乘操作下,解密过程例如为Ka-1KbKaH(ID10),在有限域的模幂操作下,解密过程例如为H(ID10)KaKb(Ka-1)%Q等。这样,第一方可以利用第一密钥的逆元素对第三目标密文部分解密,得到的结果相当于直接使用第二密钥对目标数据标识加密的结果,例如为KbH(ID10)或H(ID10)Kb%Q等。在的到的结果为KbH(ID10)形式的情况下,由于KbH(ID10)标识的是一个点,则可以根据该点的坐标按照与第二方约定一致的方式确定解密密钥,例如为[KbH(ID10)]x、[KbH(ID10)]y、等。对比可知,在j=10的情况下,第二方对数据加密使用的加密密钥与该解密密钥一致。
如此,在第一方不知晓第二密钥的情形下,由第一方获取了第二密钥对目标数据标识加密的密钥。该密钥与第二方提供的数据密文的密钥一致。根据对称加密的性质,按照与加密方式对应的解密方式,可以使用该密钥作为解密密钥对第二方用相同密钥加密的数据进行解密。如第二方采用AES的CTR模式的加密的情况下,第一方利用第三目标密文对目标数据的密文做异或操作,可以得到目标数据。
于是,第一方可以进一步利用第三目标密文对相应的数据密文解密,得到目标数据。其中,第一方可以根据目标数据标识在混淆标识集中设置的预定方式确定目标数据对应的数据密文。例如,目标数据标识在混淆标识集的预定位置(如第10个,即j=10)的情况下,可以利用第三标识密文解密排列在预定位置的数据密文,即可得到目标数据。此时,第一方仅需解密一条数据密文。再例如,在目标数据标识包含预定值作为标志位的情况下,可以用第三标识密文解密各条数据密文,直至得到标志位为预定值的一条数据,确定得到目标数据。
其中,在第一方查询的目标数据有多条时,可以对各个查询目标分别确定相应的各个第三目标密文,并解密相应目标数据。
图1示出的流程中,基于椭圆曲线加密和有限域加密难以反推的性质,由查询数据的第一方加密目标数据标识,并构造混淆标识集和目标数据标识的密文一起提供给第二方,令第二方在不能获知目标数据标识的情况下,反馈混淆标识集中的各个数据标识各自对应的业务数据的数据密文,为了让第一方顺利解密目标数据的数据密文且无法解密得到其他数据密文,第二方结合对目标数据标识的处理利用数据标识构造业务数据的加密密钥,并采用对称加密的方式加密数据。这种方式从数据加密密钥的构造出发,利用椭圆曲线或有限域的加密特性,在第一方、第二方均无法获知对方的隐私数据的情况下,一方面利用目标数据标识传递密钥,另一方面利用数据标识构造的密钥加密业务数据,从而实现在一个通信轮次完成数据加解密,提高多方安全计算中的数据查询效率。
更具体地,图2示出了根据一个实施例的基于多方安全计算的数据查询流程示意图。该流程的执行主体可以是图1中获取目标数据的第一方,更具体地,该执行主体可以是与第一方对应的计算机、设备或服务器等。第一方可以根据数据标识向另一数据方,如第二方,查询相应的业务数据。第一方例如可以是与第二方相对的多个业务方中的一方,如与学生成绩持有方(对应第二方)对应的教师、学生、家长之类的业务方对应的一个用户方(第一方)。
总体而言,第一方可以持有本地的第一密钥,第二方可以持有本地的第二密钥。在数据查询过程中,第一方利用逆元素置换密钥的构思,对查询目标对应的目标数据标识经由第一密钥、第二密钥、第一密钥的逆元素依次处理,得到由第二密钥加密的目标数据标识的密文(解密秘钥),第二方对业务数据利用第二密钥加密相应数据标识得到对业务数据加密的密文(加密密钥)。如此,两个方面得到的密文一个作为加密密钥,一个作为解密秘钥,在对称加密方式下可以由第一方对目标数据进行解密。
如图2所示,第一方向第二方查询数据过程中,可以执行以下步骤:
步骤201,利用本地的第一密钥对查询目标对应的目标数据标识加密,得到第一目标密文。加密方式例如是将目标数据标识映射为椭圆曲线上的点的点乘操作加密,或者利用有限域的模幂方式的加密,相应地,第一目标密文可以是椭圆曲线上的点或者有限域中的数值,在此不再赘述。
步骤202,向第二方提供第一目标密文和混淆标识集。其中,混淆标识集包含目标数据标识,以及若干个冗余数据标识,以免第二方获知查询目标。假设混淆标识集包括N个数据标识,这N个数据标识可以与N条数据一一对应。如此,在第二方收到混淆标识集后,可以查询相应的N条业务数据,并反馈相应的N条数据密文。可选地,在查询目标有多个的情况下,可以向第二方提供各个查询目标分别对应的各个第一目标密文,以及包含各个目标数据标识的混淆标识集。
其中,第二方对单条数据,可以利用由相应的数据标识构造密钥对业务数据加密。例如,单个数据密钥经由第二密钥对相应的单个数据标识的加密结果确定。第二密钥对单个数据标识的加密可以为椭圆曲线上的点的点乘操作,或者利用有限域的模幂操作。之后,按照加密结果确定数据密钥加密相应的业务数据得到数据密文。其中,数据密钥加密相应的业务数据可以采用各种对称加密方式,在此不再赘述。另一方面,第二方还可以利用第二密钥对第一目标密文进行加密,其加密方式与数据密钥的确定法方式类似。
第一方可以从第二方获取至少一个查询目标对应的各个第二目标密文及混淆标志集对应的N条数据密文。
步骤203,利用第一密钥的逆元素解密第二目标密文,得到第二密钥对目标数据标识加密的第三目标密文。可以理解,第三目标密文是通过第一密钥、第二密钥双重加密目标数据标识得到的密文。这里,第一方可以采用椭圆曲线或有限域加密的交换律,将逆元素加密和第一密钥的加密作用抵消,从而置换出与仅有第二密钥加密目标数据标识一致的密文,即第三目标密文。
值得说明的是,在数据标识通过均为采用第二密钥加密且加密方式一致的情况下,第三目标密文与加密目标数据的密钥是一致的。
步骤204,根据第三目标密文解密N条数据密文中按照预定方式确定的目标数据密文,得到目标数据。其中,根据目标数据标识在混淆标识集中的设置方式,第一方可以用不同的方式解密目标数据。例如,目标数据标识在混淆标识集中的预定位置(如为第10个),则第一方可以直接对第10条数据密文解密得到目标数据。再例如,目标数据标识通过预定标志位进行标记,则可以使用第三目标密文解密各条数据密文,从而确定目标数据。在其他情形下,第一方还可以通过其他方式确定目标数据,在此不再一一列举。
值得说明的是,在第一方查询的目标数据有多条时,可以对各个查询目标分别确定相应的第三目标密文,并一一解密相应数据。
另一方面,图3示出了根据一个实施例的基于多方安全计算的数据查询流程示意图。该流程的执行主体可以是图1中持有目标数据的第二方,更具体地,该执行主体可以是与第二方对应的计算机、设备或服务器等。第二方可以根据第一方提供的数据标识向第一方反馈相应业务数据的数据密文。如图3所示,本说明书的技术构思下,多方安全计算中第二方执行的数据查询流程可以包括以下步骤:
步骤301,获取第一方利用本地的第一密钥对查询目标对应的目标数据标识加密得到的第一目标密文,以及混淆标识集。其中,混淆标识集包括与N条数据一一对应的N个数据标识,N个数据标识包括按照预定方式设置的目标数据标识;
步骤302,利用本地的第二密钥对第一目标密文加密,得到第二目标密文,并且,分别对N条数据利用一一对应的N个数据密钥加密得到N条数据密文,其中,单个数据密钥经由第二密钥对相应的单个数据标识的加密结果确定;
步骤303,向第一方提供第二目标密文,以及N条数据密文,以供第一方利用第一密钥的逆元素解密第二目标密文,得到第二密钥对目标数据标识加密的第三目标密文,从而根据第三目标密文解密N条数据密文中按照预定方式确定的目标数据密文,得到目标数据。
值得说明的是,图1示出的实施例是一个具体实施架构下,第一方和第二方交互的角度撰写的实施例,其相关描述可以适应于图2、图3单端描述的实施例的相关部分。其中,图1、图2、图3中示出的一些步骤仅为一个实施示例,实践中,在不对结果产生实质性影响的情况下,一些步骤可以相互调换顺序执行,或者并列执行,在此不做限定。
回顾以上过程,在第一方向第二方查询数据过程中,基于双方隐私保护的需求,由第一方向第二方提供多个数据标识,并将目标数据标识隐藏其中作为混淆标识集提供给第二方。第二方针对混淆标识集中的各个数据标识,查询相应的业务数据,并将业务数据加密得到各自的数据密文提供给第一方。另一方面,第一方通过本地密钥的逆元素,针对本地加密目标数据标识后由第二方二次加密目标数据标识得到的密文,置换出第二方加密目标数据采用的密钥,从而,在双方均不泄露本地数据隐私及目标隐私的情况下,由第一方从第二方查询到目标数据。该流程中,第一方和第二方仅涉及一个轮次的通信,因此,可以有效提高多方安全计算中的数据查询效率。在一些实施例中,第一方仅需解密目标数据对应的数据密文,减少数据处理量,进一步提高多方安全计算中的数据处理效率。
根据另一方面的实施例,还提供一种基于多方安全计算的数据查询系统。数据查询系统至少包括作为查询方的第一方,和作为数据提供方的第二方。第一方可以利用本地的第一密钥对查询目标对应的目标数据标识加密,得到第一目标密文,并向第二方提供第一目标密文和包括目标数据标识在内的混淆标识集,第二方可以利用本地的第二密钥对第一目标密文加密,得到第二目标密文,并且,分别对N条数据利用一一对应的N个数据密钥加密得到N条数据密文,从而向第一方提供第二目标密文以及N条数据密文,其中,单个数据密钥经由第二密钥对相应的单个数据标识的加密结果确定。然后,第一方可以利用第一密钥的逆元素解密第二目标密文,得到第二密钥对目标数据标识加密的第三目标密文,从而根据第三目标密文解密N条数据密文中按照预定方式确定的目标数据密文,得到目标数据。
图4示出了根据一个实施例的设于第一方的基于多方安全计算的数据查询装置400,图5示出了根据一个实施例的设于第一方的基于多方安全计算的数据查询装置500。装置4004和装置500,可以构成一个具体实施方式下的数据查询系统,在相互不泄露本地数据隐私的情况下,完成数据查询流程。
如图4所示,装置400包括:
加密单元41,配置为利用本地的第一密钥对查询目标对应的目标数据标识加密,得到第一目标密文;
通信单元42,配置为将第一目标密文和混淆标识集提供给第二方,其中,混淆标识集包括与N条数据一一对应的N个数据标识,以供第二方提供利用本地的第二密钥对第一目标密文加密得到的第二目标密文,以及对N条数据利用一一对应的N个数据密钥加密得到的N条数据密文,其中,N个数据标识包括按照预定方式设置的目标数据标识,单个数据密钥经由第二密钥对相应的单个数据标识的加密结果确定;
第一解密单元43,配置为利用第一密钥的逆元素解密第二目标密文,得到第二密钥对目标数据标识加密的第三目标密文;
第二解密单元44,配置为根据第三目标密文解密N条数据密文中按照预定方式确定的目标数据密文,得到目标数据。
如图5所示,装置500包括通信单元51和加密单元52。其中:
通信单元51配置为:获取第一方利用本地的第一密钥对查询目标对应的目标数据标识加密得到的第一目标密文,以及混淆标识集,其中,混淆标识集包括与N条数据一一对应的N个数据标识,N个数据标识包括按照预定方式设置的目标数据标识;
加密单元52配置为:利用本地的第二密钥对第一目标密文加密,得到第二目标密文,并且,分别对N条数据利用一一对应的N个数据密钥加密得到N条数据密文,其中,单个数据密钥经由第二密钥对相应的单个数据标识的加密结果确定;
通信单元51还配置为:向第一方提供第二目标密文,以及N条数据密文,以供第一方利用第一密钥的逆元素解密第二目标密文,得到第二密钥对目标数据标识加密的第三目标密文,从而根据第三目标密文解密N条数据密文中按照预定方式确定的目标数据密文,得到目标数据。
值得说明的是,图4、图5示出的装置分别与图2、图3示出的方法实施例对应,因此,图2、图3的方法实施例中的相应描述分别适用于图4、图5示出的系统和装置,在此不再赘述。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2或图3等所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2或图3等所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本说明书的技术构思的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的技术构思的具体实施方式而已,并不用于限定本说明书的技术构思的保护范围,凡在本说明书实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的技术构思的保护范围之内。
Claims (16)
1.一种基于多方安全计算的数据查询方法,用于第一方在不泄露查询目标的情况下从持有多条数据的第二方获取目标数据,所述方法包括:
第一方利用本地的第一密钥对所述查询目标对应的目标数据标识加密,得到第一目标密文,并将所述第一目标密文和混淆标识集提供给第二方,其中,所述混淆标识集包括与N条数据一一对应的N个数据标识,所述N个数据标识包括按照预定方式设置的所述目标数据标识;
第二方利用本地的第二密钥对所述第一目标密文加密,得到第二目标密文,并且,分别对所述N条数据利用一一对应的N个数据密钥加密得到N条数据密文,其中,单个数据密钥经由所述第二密钥对相应的单个数据标识的加密结果确定;
第二方向第一方提供所述第二目标密文,以及N条数据密文;
第一方利用所述第一密钥的逆元素解密所述第二目标密文,得到所述第二密钥对所述目标数据标识加密的第三目标密文,从而根据所述第三目标密文解密N条数据密文中按照所述预定方式确定的目标数据密文,得到目标数据。
2.根据权利要求1所述的方法,其中,所述预定方式包括以下之一:所述目标数据标识位于所述N个数据标识的预定位置;所述目标数据标识在预定标志位为预定值。
3.根据权利要求1所述的方法,其中,所述第一方利用本地的第一密钥对所述查询目标对应的目标数据标识加密,得到第一目标密文包括:
将所述目标数据标识映射为椭圆曲线上的第一点;
根据所述第一密钥对应的标量对所述第一点进行点乘操作,得到椭圆曲线上的第二点作为所述第一目标密文。
4.根据权利要求3所述的方法,其中,所述第二目标密文是基于所述第二密钥对应的标量对所述第二点进行点乘操作得到椭圆曲线上的第三点。
5.根据权利要求3所述的方法,其中,单个数据密钥通过以下方式确定:
将相应的单个数据标识映射为椭圆曲线上的单个点;
根据所述第二密钥对应的标量对所述单个点进行点乘操作,得到椭圆曲线上的点作为单个密钥点;
基于所述单个密钥点的横坐标和/或纵坐标确定相应的单个数据密钥。
6.根据权利要求1所述的方法,其中,所述第一方利用本地的第一密钥对所述查询目标对应的目标数据标识加密,得到第一目标密文包括:
将所述目标数据标识映射为利用素数Q定义的有限域中的第一值;
基于所述第一密钥对所述第一值的模幂操作,在所述有限域中得到第二值作为所述第一目标密文。
7.根据权利要求6所述的方法,其中,所述第二目标密文是基于所述第二密钥对所述第二值进行模幂操作得到所述有限域中的第三值。
8.根据权利要求6所述的方法,其中,单个数据密钥通过以下方式确定:
将相应的单个数据标识映射为所述有限域的单个值;
基于所述第二密钥对所述单个值进行模幂操作,得到所述有限域中的值作为相应的单个数据密钥。
9.根据权利要求1所述的方法,其中,所述单条数据密文为单个数据密钥与相应单条数据的异或操作结果,第一方通过所述第三目标密文与目标数据标识对应的数据密文的异或操作,得到目标数据。
10.一种基于多方安全计算的数据查询方法,由第一方用于在不泄露查询目标的情况下从持有多条数据的第二方获取目标数据,所述方法包括:
利用本地的第一密钥对所述查询目标对应的目标数据标识加密,得到第一目标密文;
向第二方提供所述第一目标密文和混淆标识集,其中,所述混淆标识集包括与N条数据一一对应的N个数据标识,以供第二方提供利用本地的第二密钥对所述第一目标密文加密得到的第二目标密文,以及对所述N条数据利用一一对应的N个数据密钥加密得到的N条数据密文,其中,所述N个数据标识包括按照预定方式设置的所述目标数据标识,单个数据密钥经由所述第二密钥对相应的单个数据标识的加密结果确定;
利用所述第一密钥的逆元素解密所述第二目标密文,得到所述第二密钥对所述目标数据标识加密的第三目标密文;
根据所述第三目标密文解密N条数据密文中按照所述预定方式确定的目标数据密文,得到目标数据。
11.一种基于多方安全计算的数据查询方法,用于持有多条数据的第二方针对第一方的数据查询,在不获取第一方的查询目标且不泄露目标数据以外的其他数据情况下向第一方提供目标数据,所述方法包括:
获取第一方利用本地的第一密钥对所述查询目标对应的目标数据标识加密得到的第一目标密文,以及混淆标识集,其中,所述混淆标识集包括与N条数据一一对应的N个数据标识,所述N个数据标识包括按照预定方式设置的所述目标数据标识;
利用本地的第二密钥对所述第一目标密文加密,得到第二目标密文,并且,分别对所述N条数据利用一一对应的N个数据密钥加密得到N条数据密文,其中,单个数据密钥经由所述第二密钥对相应的单个数据标识的加密结果确定;
向第一方提供所述第二目标密文,以及N条数据密文,以供第一方利用所述第一密钥的逆元素解密所述第二目标密文,得到所述第二密钥对所述目标数据标识加密的第三目标密文,从而根据所述第三目标密文解密N条数据密文中按照所述预定方式确定的目标数据密文,得到目标数据。
12.一种基于多方安全计算的数据查询系统,包括进行数据查询的第一方及提供数据的第二方,由第一方在不泄露查询目标的情况下从持有多条数据的第二方获取目标数据,且第二方不泄露所述目标数据之外的其他数据;其中:
第一方配置为利用本地的第一密钥对所述查询目标对应的目标数据标识加密,得到第一目标密文,并向第二方提供所述第一目标密文和混淆标识集,其中,所述混淆标识集包括与N条数据一一对应的N个数据标识,所述N个数据标识包括按照预定方式设置的所述目标数据标识;
第二方配置为利用本地的第二密钥对所述第一目标密文加密,得到第二目标密文,并且,分别对所述N条数据利用一一对应的N个数据密钥加密得到N条数据密文,从而向第一方提供所述第二目标密文以及所述N条数据密文,其中,单个数据密钥经由所述第二密钥对相应的单个数据标识的加密结果确定;
第一方还配置为利用所述第一密钥的逆元素解密所述第二目标密文,得到所述第二密钥对所述目标数据标识加密的第三目标密文,从而根据所述第三目标密文解密N条数据密文中按照所述预定方式确定的目标数据密文,得到目标数据。
13.一种基于多方安全计算的数据查询装置,设于进行数据查询的第一方,用于在不泄露查询目标的情况下从持有多条数据的第二方获取目标数据,所述装置包括:
加密单元,配置为利用本地的第一密钥对所述查询目标对应的目标数据标识加密,得到第一目标密文;
通信单元,配置为将所述第一目标密文和混淆标识集提供给第二方,其中,所述混淆标识集包括与N条数据一一对应的N个数据标识,以供第二方提供利用本地的第二密钥对所述第一目标密文加密得到的第二目标密文,以及对所述N条数据利用一一对应的N个数据密钥加密得到的N条数据密文,其中,所述N个数据标识包括按照预定方式设置的所述目标数据标识,单个数据密钥经由所述第二密钥对相应的单个数据标识的加密结果确定;
第一解密单元,配置为利用所述第一密钥的逆元素解密所述第二目标密文,得到所述第二密钥对所述目标数据标识加密的第三目标密文;
第二解密单元,配置为根据所述第三目标密文解密N条数据密文中按照所述预定方式确定的目标数据密文,得到目标数据。
14.一种基于多方安全计算的数据查询装置,设于持有多条数据的第二方,用于针对第一方的数据查询,在不获取第一方的查询目标且不泄露目标数据以外的其他数据情况下向第一方提供目标数据;所述装置包括通信单元和加密单元,其中:
所述通信单元配置为:获取第一方利用本地的第一密钥对所述查询目标对应的目标数据标识加密得到的第一目标密文,以及混淆标识集,其中,所述混淆标识集包括与N条数据一一对应的N个数据标识,所述N个数据标识包括按照预定方式设置的所述目标数据标识;
所述加密单元配置为:利用本地的第二密钥对所述第一目标密文加密,得到第二目标密文,并且,分别对所述N条数据利用一一对应的N个数据密钥加密得到N条数据密文,其中,单个数据密钥经由所述第二密钥对相应的单个数据标识的加密结果确定;
所述通信单元还配置为:向第一方提供所述第二目标密文,以及N条数据密文,以供第一方利用所述第一密钥的逆元素解密所述第二目标密文,得到所述第二密钥对所述目标数据标识加密的第三目标密文,从而根据所述第三目标密文解密N条数据密文中按照所述预定方式确定的目标数据密文,得到目标数据。
15.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求10、11之一所述的方法。
16.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求10、11之一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111243069.3A CN113886887A (zh) | 2021-10-25 | 2021-10-25 | 基于多方安全计算的数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111243069.3A CN113886887A (zh) | 2021-10-25 | 2021-10-25 | 基于多方安全计算的数据查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113886887A true CN113886887A (zh) | 2022-01-04 |
Family
ID=79014081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111243069.3A Pending CN113886887A (zh) | 2021-10-25 | 2021-10-25 | 基于多方安全计算的数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113886887A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090638A (zh) * | 2022-01-20 | 2022-02-25 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的联合数据查询方法及装置 |
CN114500006A (zh) * | 2022-01-05 | 2022-05-13 | 支付宝(杭州)信息技术有限公司 | 查询请求的处理方法及装置 |
CN114979253A (zh) * | 2022-05-06 | 2022-08-30 | 蚂蚁区块链科技(上海)有限公司 | 数据推送决策方法及装置 |
CN115580396A (zh) * | 2022-10-08 | 2023-01-06 | 上海勃池信息技术有限公司 | 匿踪查询系统及匿踪查询方法 |
-
2021
- 2021-10-25 CN CN202111243069.3A patent/CN113886887A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114500006A (zh) * | 2022-01-05 | 2022-05-13 | 支付宝(杭州)信息技术有限公司 | 查询请求的处理方法及装置 |
CN114500006B (zh) * | 2022-01-05 | 2023-08-04 | 支付宝(杭州)信息技术有限公司 | 查询请求的处理方法及装置 |
CN114090638A (zh) * | 2022-01-20 | 2022-02-25 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的联合数据查询方法及装置 |
CN114979253A (zh) * | 2022-05-06 | 2022-08-30 | 蚂蚁区块链科技(上海)有限公司 | 数据推送决策方法及装置 |
CN114979253B (zh) * | 2022-05-06 | 2024-03-12 | 蚂蚁区块链科技(上海)有限公司 | 数据推送决策方法、装置、介质及设备 |
CN115580396A (zh) * | 2022-10-08 | 2023-01-06 | 上海勃池信息技术有限公司 | 匿踪查询系统及匿踪查询方法 |
CN115580396B (zh) * | 2022-10-08 | 2024-03-22 | 上海勃池信息技术有限公司 | 匿踪查询系统及匿踪查询方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10594472B2 (en) | Hybrid fully homomorphic encryption (F.H.E.) systems | |
Paulet et al. | Privacy-preserving and content-protecting location based queries | |
CN113886887A (zh) | 基于多方安全计算的数据查询方法及装置 | |
CN107707358B (zh) | 一种ec-kcdsa数字签名生成方法及系统 | |
US7873169B2 (en) | Methods, devices and systems for generating anonymous public keys in a secure communication system | |
CN111510281B (zh) | 一种同态加密方法及装置 | |
CN112906030B (zh) | 基于多方全同态加密的数据共享方法和系统 | |
CN112597524B (zh) | 隐私求交的方法及装置 | |
CN115001685B (zh) | 不经意传输方法、装置、设备和存储介质 | |
JP2001211153A (ja) | 秘密鍵生成方法 | |
Natanael et al. | Text encryption in android chat applications using elliptical curve cryptography (ECC) | |
CN109905229B (zh) | 基于群组非对称密钥池的抗量子计算Elgamal加解密方法和系统 | |
CN113708917B (zh) | 基于属性加密的app用户数据访问控制系统及方法 | |
EP3002904A1 (en) | Method for ciphering/deciphering and processing vectors of dimension n, where n is an integer greater or equal to 1 | |
CN115098868A (zh) | 保护隐私的数据提供、查询方法、装置及系统 | |
JP2001211154A (ja) | 秘密鍵生成方法,暗号化方法及び暗号通信方法 | |
CN114239018A (zh) | 保护隐私数据的共有数据数目确定方法和系统 | |
CN112350820B (zh) | 多接收者签密方法、发送端、接收端、系统及存储介质 | |
Mi et al. | A post-quantum light weight 1-out-n oblivious transfer protocol | |
CN111555880A (zh) | 数据碰撞方法、装置、存储介质及电子设备 | |
CN115237943B (zh) | 基于加密数据的数据检索方法、装置及存储介质 | |
CN116248359A (zh) | 一种基于不经意传输协议的数据传输系统、方法及装置 | |
Zheng et al. | Improved anonymous proxy re-encryption with CCA security | |
KR20100069447A (ko) | 다수의 데이터베이스에 저장된 보호가 필요한 정보들의 평균값 산출 방법 | |
Song et al. | Traceable and privacy-preserving non-interactive data sharing in mobile crowdsensing |
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 |