CN112667674A - 一种数据处理方法、装置和用于数据处理的装置 - Google Patents
一种数据处理方法、装置和用于数据处理的装置 Download PDFInfo
- Publication number
- CN112667674A CN112667674A CN202110270727.1A CN202110270727A CN112667674A CN 112667674 A CN112667674 A CN 112667674A CN 202110270727 A CN202110270727 A CN 202110270727A CN 112667674 A CN112667674 A CN 112667674A
- Authority
- CN
- China
- Prior art keywords
- data
- keyword
- ciphertext
- value
- pair group
- 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
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明实施例提供一种数据处理方法、装置和用于数据处理的装置。其中的方法通过将每m个数据对划分为一个数据对组,针对每个数据对组分别计算指示多项式Fi(x)以及数据多项式Gi(x),最后根据各个数据对组的Fi(x)以及Gi(x),生成密文的检测结果,并将检测结果返回给客户端。由于数据对组中包含的数据对的数量不超过m,一共有n/m个数据对组,那么服务端和客户端交换的数据数目可以为2*n/m个密文,这样,可以确保在针对每个数据对组计算Fi(x)以及Gi(x)的过程中交换的数据量,不会随着服务端的持有的数据对量n线性增长,进而一定程度上可以降低所需传输的数据量,确保整体的查询效率。
Description
技术领域
本发明涉及网络技术领域,尤其涉及一种数据处理方法、装置和用于数据处理的装置。
背景技术
目前,在一方持有n个数据对:(关键词,数据值),另一方持有待检测关键词且双方均不想透露所持有数据的具体信息的情况下,若此时需要检测待检测关键词是否存在于数据对中以及获取待检测关键词对应的数据值,即,需要进行隐私关键词查询(PrivateKeyword Search,PKS)。
现有方式中,往往是基于不经意传输(oblivious transfer,OT)的方法实现PKS。但是,这种方式的查询效率较低,且传输数据量大。
发明内容
本发明实施例提供一种数据处理方法、装置和用于数据处理的装置,以提高隐私关键词查询的查询效率。
为了解决上述问题,本发明实施例公开了一种数据处理方法,所述方法应用于服务端,所述服务端持有n个数据对[(k1,d1),(k2,d2),…,(kn,dn)],每m个数据对为一个数据对组,所述m为不小于2且不大于所述n的整数,所述方法包括:
接收客户端发送的密文的第一关键词[y0,y1,…,ym];所述第一关键词是依据待检测关键词y获得;
对于任一数据对组i,获取所述数据对组i的指示多项式Fi(x)以及数据多项式Gi(x);其中,所述i∈(1,2,…,a),所述a为所述数据对组的总数量,在所述x的取值为所述数据对组i中任一第二关键词的情况下,所述Fi(x)的值为预设的指定值,所述Gi(x)的值为所述第二关键词对应的数据值;
根据各个所述数据对组的Fi(x)以及Gi(x),生成密文的检测结果,并将所述检测结果返回给所述客户端。
另一方面,本发明实施例公开了一种数据处理方法,应用于客户端,所述方法包括:
获取待检测关键词y;
根据所述待检测关键词y生成密文的第一关键词[y0,y1,…,ym];
向服务端发送所述密文的第一关键词[y0,y1,…,ym];
接收所述服务端返回的密文的检测结果;所述检测结果是所述服务端基于上述数据处理方法确定的;
根据所述检测结果确定所述待检测关键词y是否存在于所述服务端持有的n个数据对中,以及所述待检测关键词y对应的数据值。
再一方面,本发明实施例公开了一种数据处理装置,所述装置应用于服务端,所述服务端持有n个数据对[(k1,d1),(k2,d2),…,(kn,dn)],每m个数据对为一个数据对组,所述m为不小于2且不大于所述n的整数,所述装置包括:
接收模块,用于接收客户端发送的密文的第一关键词[y0,y1,…,ym];所述第一关键词是依据待检测关键词y获得;
第一获取模块,用于对于任一数据对组i,获取所述数据对组i的指示多项式Fi(x)以及数据多项式Gi(x);其中,所述i∈(1,2,…,a),所述a为所述数据对组的总数量,在所述x的取值为所述数据对组i中任一第二关键词的情况下,所述Fi(x)的值为预设的指定值,所述Gi(x)的值为所述第二关键词对应的数据值;
生成模块,用于根据各个所述数据对组的Fi(x)以及Gi(x),生成密文的检测结果,并将所述检测结果返回给所述客户端。
再一方面,本发明实施例公开了一种数据处理装置,应用于客户端,所述装置包括:
获取模块,用于获取待检测关键词y;
生成模块,用于根据所述待检测关键词y生成密文的第一关键词[y0,y1,…,ym];
发送模块,用于向服务端发送所述密文的第一关键词[y0,y1,…,ym];
接收模块,用于接收所述服务端返回的密文的检测结果;所述检测结果是所述服务端基于上述数据处理装置确定的;
确定模块,用于根据所述检测结果确定所述待检测关键词y是否存在于所述服务端持有的n个数据对中,以及所述待检测关键词y对应的数据值。
再一方面,本发明实施例公开了一种用于数据处理的装置,所述装置应用于服务端,所述服务端持有n个数据对[(k1,d1),(k2,d2),…,(kn,dn)],每m个数据对为一个数据对组,所述m为不小于2且不大于所述n的整数,所述装置包括有存储器,以及一个或者一个以上程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
接收客户端发送的密文的第一关键词[y0,y1,…,ym];所述第一关键词是依据待检测关键词y获得;
对于任一数据对组i,获取所述数据对组i的指示多项式Fi(x)以及数据多项式Gi(x);其中,所述i∈(1,2,…,a),所述a为所述数据对组的总数量,在所述x的取值为所述数据对组i中任一第二关键词的情况下,所述Fi(x)的值为预设的指定值,所述Gi(x)的值为所述第二关键词对应的数据值;
根据各个所述数据对组的Fi(x)以及Gi(x),生成密文的检测结果,并将所述检测结果返回给所述客户端。
又一方面,本发明实施例公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如前述一个或多个所述的数据处理方法。
本发明实施例包括以下优点:
本发明实施例的数据处理方法中,通过将每m个数据对划分为一个数据对组,针对每个数据对组分别计算指示多项式Fi(x)以及数据多项式Gi(x),最后根据各个数据对组的Fi(x)以及Gi(x),生成密文的检测结果,并将检测结果返回给客户端。由于数据对组中包含的数据对的数量不超过m,这样,可以确保在针对每个数据对组计算Fi(x)以及Gi(x)的过程中交换的数据量,不会随着服务端的持有的数据对量n线性增长,进而一定程度上可以确保整体的查询效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种数据处理方法实施例的步骤流程图;
图2是本发明的另一种数据处理方法实施例的步骤流程图;
图3是本发明的一种数据处理装置实施例的结构框图;
图4是本发明的另一种数据处理装置实施例的结构框图;
图5是本发明的一种用于数据处理的装置的框图;
图6是本发明的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
方法实施例
参照图1,示出了本发明的一种数据处理方法实施例的步骤流程图,所述方法可以应用于服务端,所述服务端持有n个数据对[(k1,d1),(k2,d2),…,(kn,dn)],每m个数据对为一个数据对组,所述m为不小于2且不大于所述n的整数,所述方法包括如下步骤:
步骤101、接收客户端发送的密文的第一关键词[y0,y1,…,ym];所述第一关键词是依据待检测关键词y获得。
步骤102、对于任一数据对组i,获取所述数据对组i的指示多项式Fi(x)以及数据多项式Gi(x);其中,所述i∈(1,2,…,a),所述a为所述数据对组的总数量,在所述x的取值为所述数据对组i中任一第二关键词的情况下,所述Fi(x)的值为预设的指定值,所述Gi(x)的值为所述第二关键词对应的数据值。
步骤103、根据各个所述数据对组的Fi(x)以及Gi(x),生成密文的检测结果,并将所述检测结果返回给所述客户端。
本发明实施例的数据处理方法中,通过将每m个数据对划分为一个数据对组,针对每个数据对组分别计算指示多项式Fi(x)以及数据多项式Gi(x),最后根据各个数据对组的Fi(x)以及Gi(x),生成密文的检测结果,并将检测结果返回给客户端。由于数据对组中包含的数据对的数量不超过m,一共有n/m个数据对组,仅服务端仅需向客户端返回2*n/m个多项式,即,那么服务端和客户端交换的数据数目可以为2*n/m个密文,这样,一定程度上可以确保在针对每个数据对组计算Fi(x)以及Gi(x)的过程中交换的数据量,不会随着服务端的持有的数据对量n线性增长,进而一定程度上可以降低所需传输的数据量,确保整体的查询效率。
在本发明实施例的一种可选实现方式中,上述获取数据对组i的指示多项式Fi(x)以及数据多项式Gi(x)的步骤,可以通过下述步骤实现:
步骤S21、根据所述数据对组i中包括的各个第二关键词构建m个目标因子(x-k(i-1)*m+1),(x-k(i-1)*m+2),…,(x-kim);将所述目标因子的乘积(x-k(i-1)*m+1)(x- k(i-1)*m+2)…(x-kim),确定为所述Fi(x)。
步骤S22、根据所述Fi(x)以及所述数据对组i中包括的各个数据值,建立各个所述数据值对应的拉格朗日插值项;将各个所述数据值对应的拉格朗日插值项之和,确定为所述Gi(x)。
其中,数据对组i可以表示第i个数据对组,其中,i∈(1,2,…,a),即,第i个数据对组可以表示服务端持有的任一数据对组,本发明实施例针对每个数据对组均会获取其对应的指示多项式以及数据多项式,在存在a个数据对组的情况下,可以相应获取到a个指示多项式以及a个数据多项式。进一步地,以Di表示数据对组,依次按照每m个数据对为一个数据对组,对n个数据对[(k1,d1),(k2,d2),…,(kn,dn)]划分的情况下,得到的a个数据对组可以如下所示:
第1个数据对组D1:(k1,d1),(k2,d2),…,(km,dm);
第2个数据对组D2:(km+1,dm+1),(k m+2,dm+2),…,(k2m,d2m);
…
第a个数据对组Da:(k(a-1)*m+1,d(a-1)*m+1),(k(a-1)*m+2,d(a-1)*m+2),…,(kn,dn)
具体实施时,m的平方可以与n之间的差值在预设范围内,以使m2接近n,a2的平方也接近n。这样,可以使得每个Fi(x)以及Gi(x)由不超过m个数据对构造,每个多项式中数据的次方不超过m,进而一定程度上可以使得计算过程中交换的数据量(例如,可以正比于多项式次数m及个数a),不会随着服务端持有的数据量n线性增长,在数据量大的情况下性能仍可以确保处理效率。其中,预设范围可以根据实际需求设置。示例的,可以设置预设范围为0~1。在一种实现方式中,m可以满足n=(a-1)*m+b,其中0<b≤m。
进一步地,本发明实施例中预设的指定值可以为0。根据上述划分得到的数据对组可知,数据对组i中包括的数据对可以为(k(i-1)*m+1,d(i-1)*m+1),(k(i-1)*m+2,d(i-1)*m+2),…,(kim,dim)。其中,k(i-1)*m+1,k(i-1)*m+2,…,kim为数据对组i中包括的第二关键词。相应地,可以根据预设待定数据x,以进行减法运算的方式,构建m个目标因子(x-k(i-1)*m+1),(x-k(i-1)*m+2),…,(x-kim),并以这m个目标因子的乘积作为Fi(x)。本发明实施例中,通过先构建目标因子,将目标因子的乘积(x-k(i-1)*m+1)(x-k(i-1)*m+2)…(x-kim)作为Fi(x),使得最终构建出来的Fi(x)在x的取值为数据对组i中任一第二关键词的情况下,满足Fi(x)的值为预设的指定值的特点,在x的取值不为数据对组i中第二关键词的情况下,满足Fi(x)的值不为预设的指定值的特点,进而使得后续可以基于指示多项式Fi(x)确定查询的关键词是否在服务端持有的数据对中,确保顺利实现PKS。其中,待定数据x可以表征后续需要检测的关键词,待定数据x的内容不影响后续对构建的多项式的处理,因此,待定数据x可以根据实际需求设置,本发明实施例对此不作限定。
需要说明的是,在n不为m的整数倍的情况下,针对最后一个数据对组,剩余的数据对的数量可能小于m。对于这种情况下,可以直接将剩余的数据对划分为一个数据对组。相应地,针对Da计算构建的目标因子的数量可以与Da所包含的剩余的数据对的数量相同,对于数据对组a,Fa(x)=(x-k(a-1)*m+1) (x-k(a-1)*m+2)… (x-kn)。进一步地,也可以为剩余的数据对补充数据对。例如,从服务端持有的数据对中选取q个数据对组,其中,q与剩余的数据对的数量之和等于m,以使最后一个数据对组中包含m个数据对,本发明实施例对此不作限定。
进一步地,由于数据多项式Gi(x)需要满足在x的取值为数据对组i中任一第二关键词的情况下,Gi(x)的值为该第二关键词对应的数据值。即,Gi(x)需要满足Gi(kj)=dj,其中,kj 表示数据对组i中的任一第二关键词,dj表示kj对应的数据值,j=(i-1)*m+1,(i-1)*m+2,…,因此,可以针对数据对组i中的任一数据对,即,任一数据值dj,均构建对应的拉格朗日插值项Lj(x)。最后,将拉格朗日插值项Lj(x)之和作为Gi(x)。其中,任一数据值dj的拉格朗日插值项Lj(x),需要满足在x取值kj的情况下,Lj(kj)= dj,在x取值除kj之外的其他第二关键词的情况下,Lj(x)= 0。
由于Fi(x)满足Fi(kj)=0,即,kj为Fi(x)的根。而Gi(x)的拉格朗日插值点的横坐标与Fi(x)的根相同,因此,本发明实施例中通过先构建Fi(x),然后基于构建的Fi(x)建立拉格朗日插值项构建Gi(x),一定程度上可以提高构建Gi(x)的效率。
可选的,在本发明实施例的一种实现方式,上述根据所述Fi(x)以及所述数据对组i中包括的各个数据值,建立各个所述数据值对应的拉格朗日插值项的步骤,可以具体包括:
步骤S31、对于所述数据对组i中的任一数据值dj,计算所述Fi(x)与(x-kj)之间的比值,以作为第一分部A(x),以及,将x取kj时,所述Fi(x)除去(x-kj)得到的值,确定为第二分部B;其中,所述kj为所述dj对应的第二关键词。
步骤S32、计算所述A(x)与所述dj之间的乘积与所述B的比值,以作为所述dj对应的拉格朗日插值项Lj(x)。
具体实施时,可以设A(x)=Fi(x)/(x-kj),即,在x的取值为数据对组i中除kj之外的其他第二关键词时,A(x)的值为0。进一步地,基于x取kj时,Fi(x)除去(x-kj)得到的值,即,Fi(kj)与(kj-kj) 之间的比值得到的B=(kj-p1)( kj-p2)…(kj -pj-1)( kj-pj+1)…( kj-pm)。其中,p1表示数据对组i中的第1个第二关键词,即k(i-1)*m+1,p2表示数据对组i中的第2个第二关键词,即k(i-1)*m+2,pj-1表示数据对组i中的第j-1个第二关键词,pj+1表示数据对组i中的第j+1个第二关键词,pm表示数据对组i中的最后一个第二关键词,pj即为k j表示数据对组i中的第j个第二关键词。
进一步地,对于A(x)/B,在x的取值为数据对组i中除kj之外的其他第二关键词时,A(x)/B的取值为0,相应地,dj对应的拉格朗日插值项Lj(x)= A(x)*dj/B的值为0。在x的取值为kj时,A(x)/B的取值为1,相应地, Lj(x)=的值为dj。需要说明的是,在已知Fi(x)系数时,计算每个拉格朗日插值项的复杂度可以为O(m),于是计算所有拉格朗日插值项并相加起来的运算复杂度可以为O(m2),与计算Fi(x)系数的运算复杂度可以相同。在m的平方与n相同的情况下,计算一个指示多项式和一个数据多项式的运算复杂度可以为O(n2),即,本发明实施例中可以较为高效的确定多项式。
本发明实施例中,结合Fi(x)构建第一分部A(x)以及第二分部B,然后以A(x)与dj之间的乘积与B的比值作为dj对应的拉格朗日插值项Lj(x)。这样,可以在确保构建的拉格朗日插值项能够满足要求的同时,确保构建效率。
可选的, Fi(kj)/(kj-kj),即,x取kj时, Fi(x)除去(x-kj)的运算本质上相当于在x=kj处对Fi(x)求导,例如,基于洛必达法则可知,Fi(kj)/(kj-kj)的具体值等于(dFi(x)/dx)|x=xi。因此,在本发明实施例的一种可选实现方式中,可以在x= kj处对Fi(x)求导,以确定比值的具体值。这样,一定程度上可以提高确定效率。当然,实际应用场景中,也可以采用其他方式确定具体值,例如,直接对在x取kj时,对Fi(x)除去(x-kj)展开计算以确定具体值,本发明实施例对此不作限定。
可选的,本发明实施例中客户端发送的第一关键词可以是通过对待检测关键词进行半同态加密得到的。例如,客户端可以先根据待检测关键词y,确定y0,y1,…,ym,然后利用半同态加密对y0,y1,…,ym进行加密,得到密文的第一关键词[y0,y1,…,ym]。相应地,根据各个所述数据对组的Fi(x)以及Gi(x),生成密文的检测结果的操作,具体可以包括:
步骤S41、对于任一所述Fi(x),生成密文的Fi(x),以及,对于任一所述Gi(x),生成密文的Gi(x)。
步骤S42、基于各个密文的Fi(x)生成密文的指示序列,以及基于各个密文的Gi(x)生成密文的数据序列,以作为所述密文的检测结果。
具体实施时,可以将所有数据对组的Fi(x)作为指示序列的元素,构成指示序列。将所有数据对组的Gi(x)作为数据序列的元素,构成数据序列。在待检测数据y属于服务端持有的第二关键词的情况下,将y作为x代入指示序列的多项式中,指示序列中会出现等于指定值的元素,例如,在指定值为0的情况下,指示序列中会出现等于0的元素。相应地,进一步将y作为x代入指示序列中等于0的元素所对应的Gi(x)中,就可以得到y对应的数据值。或者,客户端也可以直接解密得到指示序列和数据序列的元素,从数据序列中取出与指示序列中等于0的元素对应的元素,然后对该元素进行解密即可。进一步地,在指示序列中不存在等于0的元素,即,y不存在于服务端持有的第二关键词的情况下,客户端对指示序列中各项多项式或者数据序列中各项多项式进行解密得到的函数值,都是一个对客户端而言的随机值,均无法反推出服务端所持有的信息。 因此,基于密文的Fi(x)以及密文的Gi(x)分别生成指示序列以及数据序列,并将指示序列以及数据序列作为检测结果返回给客户端,可以确保客户端能够基于检测结果实现PKS,且向客户端返回密文的检测结果可以确保数据的安全性。
可选的,在本发明实施例的一种实现方式中,可以先通过下述步骤生成密文的Fi(x):
步骤S51、对于任一所述数据对组i,确定展开后的所述Fi(x)中的各项第一系数。
步骤S52、基于各项第一系数以及密文的所述第一关键词,进行半同态加密所支持的运算操作,以获取密文的Fi(x)。
具体实施时,可以直接将Fi(x)展开,例如,展开后的Fi(x)可以表示为c0+c1x+c2x2+…+cmxm。其中,c0,c1,c2,…,cm即为各项第一系数,c0,c1,c2,…,cm的具体值由构建该Fi(x)所使用的第二关键词决定。当然,也可以采用其他方式确定第一系数,例如,基于构建该Fi(x)所使用的第二关键词构建辅助序列,然后通过对该辅助序列进行多轮递推,以在O(m2)的运算复杂度下确定出第一系数,进而一定程度上可以确保第一系数的确定效率。
进一步地,半同态加密所支持的运算操作可以为同态数乘以及相加。
由于服务端已经获知[y0,y1,…,ym]且已经确定出了第一系数。因此,展开后的Fi(x)相当于被分解为对常数与密文数据相乘的结果进行加和的操作。这样,基于半同态加密所支持的数乘以及求和操作,即可得到密文的多项式Fi(x),从而可以实现基于半同态加密的高效PKS。 其中,本发明实施例中的服务端执行的半同态加密可以是基于客户端提供的公钥实现的。
进一步地,可以通过下述步骤生成密文的Gi(x):
步骤S61、根据所述Fi(x)中的各项第一系数,确定所述Gi(x)中各个第一分部A(x)中的各项第二系数。
步骤S62、基于各项第二系数以及密文的所述第一关键词,进行半同态加密所支持的运算操作,以获取密文的第一分部A(x)。
步骤S63、基于各个密文的第一分部A(x),获取密文的Gi(x)。
具体实施时,由于A(x)是基于Fi(x)构建的,A(x)本质上相当于缺失了部分项的Fi(x)。因此,在已知Fi(x)中各项第一系数的情况下,可以直接从第一系数中读取第二系数。或者,也可以通过递推的方法,在O(m)的运算复杂度下得到确定A(x)中的各项第二系数。又或者,也可以直接对A(x)进行展开,以确定各项第二系数,本发明实施例对此不作限定。需要说明的是,本发明实施例中还可以预先构建各个Fi(x)以及Gi(x),确定各项第一系数以及第二系数并保存下来。这样,在进行PKS时,可以直接读取保存的多项式、第一系数以及第二系数,进而缩短PKS的所需时长。示例的,可以在服务端的数据库不变动(即,所持有的数据稳定,不发生变化)的情况下,进行预先计算。
进一步地,由于先确定出了第二系数且服务端已经获知[y0,y1,…,ym]。因此,展开后的A(x)相当于被分解为对常数与密文数据相乘的结果进行加和,因此,基于半同态加密所支持的数乘以及求和操作,即可确定出密文的多项式A (x) 。最后,可以基于密文的第一分部A(x)与相当于常数的B以及dj继续进行同态数乘以及加和,进而得到密文的Gi(x)。本发明实施例中,使用半同态加密即可较为高效的实现PKS,同时,现有的基于OT的方法中,在实现PKS的过程中往往无法进一步扩展为密文上同态运算,而本发明实施例中可以使得最终得到的密文的检测结果保持可进一步进行同态运算的性质,进而使得检测结果能够更灵活的被使用。例如,在一种实现场景中,客户端向m个服务端分别查询m条数据以期望获知这m条数据的和。但是这些服务端不想让客户端得知查询的具体数据是多少,只想让其知道m条数据之和。这时,可以对各个服务端的密文的检测结果在非客户端进行同态求和后再返回给客户端。
在一种现有实现中,往往是基于同态加密(homomorphic encryption,HE)和基于不经意传输(oblivious transfer,OT)的方法实现PKS。但是,基于OT的方法查询得到的密文结果仅能直接解密为明文,无法像同态加密一样能在密文状态下对查询结果进行其他运算,而且此类算法还会在计算过程中交换大量数据,不仅占用大量网络资源,而且增加了因秘钥泄露而导致数据泄露的风险。基于全同态加密(full homomorphic encryption, FHE)或准同态(somewhat homomorphic encryption, SHE)的方法关注乘法深度,在乘法深度要求较大时速度太慢,在实际应用中并不现实。基于半同态加密的方法仅能在一致数据所在位置的情况下,实现隐私信息检索(PIR) ,无法实现PKS。而本发明实施例中,可以实现基于半同态加密较为高效的实现PKS,最终得到的检测结果进一步保持了支持半同态加密的性质,且查询过程中的通讯量不会随着数据对的大小的增长而线性增长,进而可以避免网络资源大量被占用的问题,确保查询速度,进一步确保了数据的安全性。
参照图2,示出了本发明的另一种数据处理方法实施例的步骤流程图,所述方法可以应用于客户端,所述方法包括如下步骤:
步骤201、获取待检测关键词y。
步骤202、根据所述待检测关键词y生成密文的第一关键词[y0,y1,…,ym]。
步骤203、向服务端发送所述密文的第一关键词[y0,y1,…,ym]。
步骤204、接收所述服务端返回的密文的检测结果;所述检测结果是所述服务端基于上述数据处理方法实施例中的方法确定的。
步骤205、根据所述检测结果确定所述待检测关键词y是否存在于所述服务端持有的n个数据对中,以及所述待检测关键词y对应的数据值。
本发明实施例的数据处理方法中,客户端通过获取待检测关键词y,根据待检测关键词y生成密文的第一关键词[y0,y1,…,ym] ,向服务端发送密文的第一关键词[y0,y1,…,ym] ,接收服务端返回的密文的检测结果;检测结果是服务端基于前述任一方法实施例确定的,根据检测结果确定待检测关键词y是否存在于服务端持有的n个数据对中,以及待检测关键词y对应的数据值。由于服务端返回的检测结果是针对每个数据对组计算的Fi(x)以及Gi(x)生成的,而针对每个数据对组计算Fi(x)以及Gi(x)的过程中交换的数据量,不会随着服务端的持有的数据对量n线性增长,进而一定程度上可以确保整体的查询效率。
具体实施时,可以通过接收用户输入的数据,实现获取待检测关键词y。进一步地,客户端可以生成一对公私钥(sk, pk),客户端可以基于公钥pk加密y的各次方项项y1,y2,…,ym,得到密文的各个第一关键词:[y1], [y2], ..., [ym]。在发送密文的第一关键词时,还可以将公钥pk发给服务端,以便于服务端后续能够基于公钥pk进行加密处理。
在本发明实施例的一种可选实现方式中,根据检测结果确定y是否存在于服务端持有的第二关键词时,可以基于客户端生成的私钥,对密文的检测结果进行解密,得到解密结果。然后,将y作为x代入指示序列的多项式中,如果指示序列中出现等于指定值的元素,则可以确定y存在于服务端持有的第二关键词。其中,指定值的具体值,可以预先告知客户端以及服务端。否则,则可以确认不存在。这样,相当于同时实现了隐匿成员检测(PrivateMembership Test,PMT)。进一步地,可以将y作为x代入指示序列中等于0的元素所对应的Gi(x)中,得到y对应的数据值,进而实现PKS。
且在y不存在于服务端持有的第二关键词的情况下,不论是指示序列中各项多项式的值还是数据序列中各项多项式的值,都是一个对客户端而言的随机值,均无法反推出服务端所持有的信息,进而可以确保数据的安全性。可以注意到,本发明实施例中服务端和客户端相当于利用半同态加密实现了不经意多项式评估(oblivious polynomialevaluation,OPE),即,客户端拥有k,服务端拥有多项式函数f(x),最后可让客户端得知f(k)的值,并且服务端不知道k的任何信息,C仅知道f(k)这个结果。
进一步地,相较于针对每个数据对返回一个多项式的方式,本发明实施例中服务端返回的检测结果的数量相对较少,因此,客户端所需执行的解密操作以及判断操作的次数相应减小,进而一定程度上可以降低客户端的处理量,提高客户端的处理效率。
需要说明的是,本发明实施例中涉及的关键词、数据值、数据等可以为音频,视频,文本等类型的数据。示例的,本发明实施例中涉及的第二关键词可以为列表中各个成员的成员标识,待检测关键词可以为待检测成员的成员标识。其中,成员可以为音频,视频,文本,用户,等等。第二关键词对应的数据值可以为成员相关信息,例如,家庭住址,身高,体重,等等。
列表中各个成员可以是经过去重操作之后的成员,即,一个列表中最多存在一个数据与某个待检测关键相同。这样,可以避免不必要的重复计算,进而降低后续处理的计算量。
装置实施例
参照图3,示出了本发明的一种数据处理装置实施例的结构框图,所述装置应用于服务端,所述服务端持有n个数据对[(k1,d1),(k2,d2),…,(kn,dn)],每m个数据对为一个数据对组,所述m为不小于2且不大于所述n的整数,所述装置包括:
接收模块301,用于接收客户端发送的密文的第一关键词[y0,y1,…,ym];所述第一关键词是依据待检测关键词y获得;
第一获取模块302,用于对于任一数据对组i,获取所述数据对组i的指示多项式Fi(x)以及数据多项式Gi(x);其中,所述i∈(1,2,…,a),所述a为所述数据对组的总数量,在所述x的取值为所述数据对组i中任一第二关键词的情况下,所述Fi(x)的值为预设的指定值,所述Gi(x)的值为所述第二关键词对应的数据值;
生成模块303,用于根据各个所述数据对组的Fi(x)以及Gi(x),生成密文的检测结果,并将所述检测结果返回给所述客户端。
可选的,所述第一获取模块302,具体用于:
根据所述数据对组i中包括的各个第二关键词构建m个目标因子(x- k(i-1)*m+1),(x-k(i-1)*m+2),…,(x-kim);将所述目标因子的乘积(x-k(i-1)*m+1)(x- k(i-1)*m+2)…(x-kim),确定为所述Fi(x);
根据所述Fi(x)以及所述数据对组i中包括的各个数据值,建立各个所述数据值对应的拉格朗日插值项;将各个所述数据值对应的拉格朗日插值项之和,确定为所述Gi(x)。
可选的,所述第一获取模块302,还具体用于:
对于所述数据对组i中的任一数据值dj,计算所述Fi(x)与(x-kj)之间的比值,以作为第一分部A(x),以及,将x取kj时,所述Fi(x)除去(x-kj)得到的比值,确定为第二分部B;其中,所述kj为所述dj对应的第二关键词;
计算所述A(x)与所述dj之间的乘积与所述B的比值,以作为所述dj对应的拉格朗日插值项Lj(x)。
可选的,所述装置还包括:
第二获取模块,用于对所述Fi(x)进行求导,以获取x取kj时,所述Fi(x)除去(x-kj)得到的具体值。
可选的,所述第一关键词是通过对所述待检测关键词进行半同态加密得到的;所述生成模块303,具体用于:
对于任一所述Fi(x),生成密文的Fi(x),以及,对于任一所述Gi(x),生成密文的Gi(x);
基于各个密文的Fi(x)生成密文的指示序列,以及基于各个密文的Gi(x)生成密文的数据序列,以作为所述密文的检测结果。
可选的,所述生成模块303,还具体用于:对于任一所述数据对组i,确定展开后的所述Fi(x)中的各项第一系数;基于各项第一系数以及密文的所述第一关键词,进行半同态加密所支持的运算操作,以获取密文的Fi(x);
所述生成模块303,还具体用于:根据所述Fi(x)中的各项第一系数,确定所述Gi(x)中各个第一分部A(x)中的各项第二系数;基于各项第二系数以及密文的所述第一关键词,进行半同态加密所支持的运算操作,以获取密文的第一分部A(x);基于各个密文的第一分部A(x),获取密文的Gi(x)。
可选的,所述m的平方与所述n之间的差值在预设范围内。
本发明实施例的数据处理装置,通过将每m个数据对划分为一个数据对组,针对每个数据对组分别计算指示多项式Fi(x)以及数据多项式Gi(x),最后根据各个数据对组的Fi(x)以及Gi(x),生成密文的检测结果,并将检测结果返回给客户端。由于数据对组中包含的数据对的数量不超过m,一共有n/m个数据对组,仅服务端仅需向客户端返回2*n/m个多项式,即,那么服务端和客户端交换的数据数目可以为2*n/m个密文,这样,可以确保在针对每个数据对组计算Fi(x)以及Gi(x)的过程中交换的数据量,不会随着服务端的持有的数据对量n线性增长,进而一定程度上可以降低所需传输的数据量,确保整体的查询效率。
参照图4,示出了本发明的另一种数据处理装置实施例的结构框图,应用于客户端,所述装置包括:
获取模块401,用于获取待检测关键词y;
生成模块402,用于根据所述待检测关键词y生成密文的第一关键词[y0,y1,…,ym];
发送模块403,用于向服务端发送所述密文的第一关键词[y0,y1,…,ym];
接收模块404,用于接收所述服务端返回的密文的检测结果;所述检测结果是所述服务端基于上述装置实施例中任一所述装置确定的;
确定模块405,用于根据所述检测结果确定所述待检测关键词y是否存在于所述服务端持有的n个数据对中,以及所述待检测关键词y对应的数据值。
本发明实施例的数据处理装置,客户端通过获取待检测关键词y,根据待检测关键词y生成密文的第一关键词[y0,y1,…,ym] ,向服务端发送密文的第一关键词[y0,y1,…,ym],接收服务端返回的密文的检测结果;检测结果是服务端基于前述任一方法实施例确定的,根据检测结果确定待检测关键词y是否存在于服务端持有的n个数据对中,以及待检测关键词y对应的数据值。由于服务端返回的检测结果是针对每个数据对组计算的Fi(x)以及Gi(x)生成的,而针对每个数据对组计算Fi(x)以及Gi(x)的过程中交换的数据量,不会随着服务端的持有的数据对量n线性增长,进而一定程度上可以确保整体的查询效率。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供了一种用于数据处理的装置,所述装置应用于服务端,所述服务端持有n个数据对[(k1,d1),(k2,d2),…,(kn,dn)],每m个数据对为一个数据对组,所述m为不小于2且不大于所述n的整数,所述装置包括有存储器,以及一个或者一个以上程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:接收客户端发送的密文的第一关键词[y0,y1,…,ym];所述第一关键词是依据待检测关键词y获得;对于任一数据对组i,获取所述数据对组i的指示多项式Fi(x)以及数据多项式Gi(x);其中,所述i∈(1,2,…,a),所述a为所述数据对组的总数量,在所述x的取值为所述数据对组i中任一第二关键词的情况下,所述Fi(x)的值为预设的指定值,所述Gi(x)的值为所述第二关键词对应的数据值;根据各个所述数据对组的Fi(x)以及Gi(x),生成密文的检测结果,并将所述检测结果返回给所述客户端。
图5是根据一示例性实施例示出的一种用于数据处理的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,装置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、磁带、软盘和光数据存储设备等。
图6是本发明的一些实施例中服务器的结构示意图。该服务器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等等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够上述数据处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上对本发明所提供的一种数据处理方法、一种数据处理装置和一种用于数据处理的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (18)
1.一种数据处理方法,其特征在于,所述方法应用于服务端,所述服务端持有n个数据对[(k1,d1),(k2,d2),…,(kn,dn)],每m个数据对为一个数据对组,所述m为不小于2且不大于所述n的整数,所述方法包括:
接收客户端发送的密文的第一关键词[y0,y1,…,ym];所述第一关键词是依据待检测关键词y获得;
对于任一数据对组i,获取所述数据对组i的指示多项式Fi(x)以及数据多项式Gi(x);其中,所述i∈(1,2,…,a),所述a为所述数据对组的总数量,在所述x的取值为所述数据对组i中任一第二关键词的情况下,所述Fi(x)的值为预设的指定值,所述Gi(x)的值为所述第二关键词对应的数据值;
根据各个所述数据对组的Fi(x)以及Gi(x),生成密文的检测结果,并将所述检测结果返回给所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述获取所述数据对组i的指示多项式Fi(x)以及数据多项式Gi(x),包括:
根据所述数据对组i中包括的各个第二关键词构建m个目标因子(x- k(i-1)*m+1),(x-k(i-1)*m+2),…,(x-kim);将所述目标因子的乘积(x-k(i-1)*m+1)(x- k(i-1)*m+2)…(x-kim),确定为所述Fi(x);
根据所述Fi(x)以及所述数据对组i中包括的各个数据值,建立各个所述数据值对应的拉格朗日插值项;将各个所述数据值对应的拉格朗日插值项之和,确定为所述Gi(x)。
3.根据权利要求2所述的方法,其特征在于,所述根据所述Fi(x)以及所述数据对组i中包括的各个数据值,建立各个所述数据值对应的拉格朗日插值项,包括:
对于所述数据对组i中的任一数据值dj,计算所述Fi(x)与(x-kj)之间的比值,以作为第一分部A(x),以及,将x取kj时,所述Fi(x)除去(x-kj)得到的值,确定为第二分部B;其中,所述kj为所述dj对应的第二关键词;
计算所述A(x)与所述dj之间的乘积与所述B的比值,以作为所述dj对应的拉格朗日插值项Lj(x)。
4.根据权利要求3所述的方法,其特征在于,所述将x取kj时,所述Fi(x)除去(x-kj)得到的值,确定为第二分部B之前,所述方法还包括:
对所述Fi(x)进行求导,以获取x取kj时,所述Fi(x)除去(x-kj)得到的具体值。
5.根据权利要求3所述的方法,其特征在于,所述第一关键词是通过对所述待检测关键词进行半同态加密得到的;所述根据各个所述数据对组的Fi(x)以及Gi(x),生成密文的检测结果,包括:
对于任一所述Fi(x),生成密文的Fi(x),以及,对于任一所述Gi(x),生成密文的Gi(x);
基于各个密文的Fi(x)生成密文的指示序列,以及基于各个密文的Gi(x)生成密文的数据序列,以作为所述密文的检测结果。
6.根据权利要求5所述的方法,其特征在于,所述生成密文的Fi(x),包括:对于任一所述数据对组i,确定展开后的所述Fi(x)中的各项第一系数;基于各项第一系数以及密文的所述第一关键词,进行半同态加密所支持的运算操作,以获取密文的Fi(x);
所述生成密文的Gi(x),包括:根据所述Fi(x)中的各项第一系数,确定所述Gi(x)中各个第一分部A(x)中的各项第二系数;基于各项第二系数以及密文的所述第一关键词,进行半同态加密所支持的运算操作,以获取密文的第一分部A(x);基于各个密文的第一分部A(x),获取密文的Gi(x)。
7.根据权利要求1至6任一所述的方法,其特征在于,所述m的平方与所述n之间的差值在预设范围内。
8.一种数据处理方法,其特征在于,应用于客户端,所述方法包括:
获取待检测关键词y;
根据所述待检测关键词y生成密文的第一关键词[y0,y1,…,ym];
向服务端发送所述密文的第一关键词[y0,y1,…,ym];
接收所述服务端返回的密文的检测结果;所述检测结果是所述服务端基于上述权利要求1至7中任一所述方法确定的;
根据所述检测结果确定所述待检测关键词y是否存在于所述服务端持有的n个数据对中,以及所述待检测关键词y对应的数据值。
9.一种数据处理装置,其特征在于,所述装置应用于服务端,所述服务端持有n个数据对[(k1,d1),(k2,d2),…,(kn,dn)],每m个数据对为一个数据对组,所述m为不小于2且不大于所述n的整数,所述装置包括:
接收模块,用于接收客户端发送的密文的第一关键词[y0,y1,…,ym];所述第一关键词是依据待检测关键词y获得;
第一获取模块,用于对于任一数据对组i,获取所述数据对组i的指示多项式Fi(x)以及数据多项式Gi(x);其中,所述i∈(1,2,…,a),所述a为所述数据对组的总数量,在所述x的取值为所述数据对组i中任一第二关键词的情况下,所述Fi(x)的值为预设的指定值,所述Gi(x)的值为所述第二关键词对应的数据值;
生成模块,用于根据各个所述数据对组的Fi(x)以及Gi(x),生成密文的检测结果,并将所述检测结果返回给所述客户端。
10.根据权利要求9所述的装置,其特征在于,所述第一获取模块,具体用于:
根据所述数据对组i中包括的各个第二关键词构建m个目标因子(x- k(i-1)*m+1),(x-k(i-1)*m+2),…,(x-kim);将所述目标因子的乘积(x-k(i-1)*m+1)(x- k(i-1)*m+2)…(x-kim),确定为所述Fi(x);
根据所述Fi(x)以及所述数据对组i中包括的各个数据值,建立各个所述数据值对应的拉格朗日插值项;将各个所述数据值对应的拉格朗日插值项之和,确定为所述Gi(x)。
11.根据权利要求10所述的装置,其特征在于,所述第一获取模块,还具体用于:
对于所述数据对组i中的任一数据值dj,计算所述Fi(x)与(x-kj)之间的比值,以作为第一分部A(x),以及,将x取kj时,所述Fi(x)除去(x-kj)得到的值,确定为第二分部B;其中,所述kj为所述dj对应的第二关键词;
计算所述A(x)与所述dj之间的乘积与所述B的比值,以作为所述dj对应的拉格朗日插值项Lj(x)。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于对所述Fi(x)进行求导,以获取x取kj时,所述Fi(x)除去(x-kj)得到的具体值。
13.根据权利要求11所述的装置,其特征在于,所述第一关键词是通过对所述待检测关键词进行半同态加密得到的;所述生成模块,具体用于:
对于任一所述Fi(x),生成密文的Fi(x),以及,对于任一所述Gi(x),生成密文的Gi(x);
基于各个密文的Fi(x)生成密文的指示序列,以及基于各个密文的Gi(x)生成密文的数据序列,以作为所述密文的检测结果。
14.根据权利要求13所述的装置,其特征在于,所述生成模块,还具体用于:对于任一所述数据对组i,确定展开后的所述Fi(x)中的各项第一系数;基于各项第一系数以及密文的所述第一关键词,进行半同态加密所支持的运算操作,以获取密文的Fi(x);
所述生成模块,还具体用于:根据所述Fi(x)中的各项第一系数,确定所述Gi(x)中各个第一分部A(x)中的各项第二系数;基于各项第二系数以及密文的所述第一关键词,进行半同态加密所支持的运算操作,以获取密文的第一分部A(x);基于各个密文的第一分部A(x),获取密文的Gi(x)。
15.根据权利要求9至14任一所述的装置,其特征在于,所述m的平方与所述n之间的差值在预设范围内。
16.一种数据处理装置,其特征在于,应用于客户端,所述装置包括:
获取模块,用于获取待检测关键词y;
生成模块,用于根据所述待检测关键词y生成密文的第一关键词[y0,y1,…,ym];
发送模块,用于向服务端发送所述密文的第一关键词[y0,y1,…,ym];
接收模块,用于接收所述服务端返回的密文的检测结果;所述检测结果是所述服务端基于上述权利要求9至15中任一所述装置确定的;
确定模块,用于根据所述检测结果确定所述待检测关键词y是否存在于所述服务端持有的n个数据对中,以及所述待检测关键词y对应的数据值。
17.一种用于数据处理的装置,其特征在于,所述装置应用于服务端,所述服务端持有n个数据对[(k1,d1),(k2,d2),…,(kn,dn)],每m个数据对为一个数据对组,所述m为不小于2且不大于所述n的整数,所述装置包括有存储器,以及一个或者一个以上程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
接收客户端发送的密文的第一关键词[y0,y1,…,ym];所述第一关键词是依据待检测关键词y获得;
对于任一数据对组i,获取所述数据对组i的指示多项式Fi(x)以及数据多项式Gi(x);其中,所述i∈(1,2,…,a),所述a为所述数据对组的总数量,在所述x的取值为所述数据对组i中任一第二关键词的情况下,所述Fi(x)的值为预设的指定值,所述Gi(x)的值为所述第二关键词对应的数据值;
根据各个所述数据对组的Fi(x)以及Gi(x),生成密文的检测结果,并将所述检测结果返回给所述客户端。
18.一种可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求1至8任一所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110270727.1A CN112667674B (zh) | 2021-03-12 | 2021-03-12 | 一种数据处理方法、装置和用于数据处理的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110270727.1A CN112667674B (zh) | 2021-03-12 | 2021-03-12 | 一种数据处理方法、装置和用于数据处理的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112667674A true CN112667674A (zh) | 2021-04-16 |
CN112667674B CN112667674B (zh) | 2021-06-18 |
Family
ID=75399410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110270727.1A Active CN112667674B (zh) | 2021-03-12 | 2021-03-12 | 一种数据处理方法、装置和用于数据处理的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112667674B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032846A (zh) * | 2021-05-20 | 2021-06-25 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN115982424A (zh) * | 2023-03-15 | 2023-04-18 | 华控清交信息科技(北京)有限公司 | 一种隐私关键词查询方法、装置及电子设备 |
CN116303551A (zh) * | 2023-05-16 | 2023-06-23 | 北京信安世纪科技股份有限公司 | 隐匿查询方法及设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070280474A1 (en) * | 2006-04-18 | 2007-12-06 | Heinz Karl E | Encryption Method |
US20150280914A1 (en) * | 2014-03-25 | 2015-10-01 | Fujitsu Limited | Ciphertext processing device, ciphertext processing method, computer-readable recording medium, and information processing device |
CN107634829A (zh) * | 2017-09-12 | 2018-01-26 | 南京理工大学 | 基于属性的可搜索加密电子病历系统及加密方法 |
US20180183570A1 (en) * | 2015-04-21 | 2018-06-28 | Kewei ZHENG | Polynomial fully homomorphic encryption system based on coefficient mapping transform |
US20190207763A1 (en) * | 2017-12-29 | 2019-07-04 | Huazhong University Of Science And Technology | Method of searchable public-key encryption and system and server using the same |
CN110348229A (zh) * | 2019-06-11 | 2019-10-18 | 北京思源互联科技有限公司 | 数据的加密方法及装置、数据的解密方法及装置 |
CN111026788A (zh) * | 2019-11-04 | 2020-04-17 | 武汉科技大学 | 一种混合云中基于同态加密的多关键词密文排序检索方法 |
CN112000979A (zh) * | 2019-06-21 | 2020-11-27 | 华控清交信息科技(北京)有限公司 | 隐私数据的数据库操作方法、系统及存储介质 |
CN112000978A (zh) * | 2019-06-19 | 2020-11-27 | 华控清交信息科技(北京)有限公司 | 隐私数据的输出方法、数据处理系统及存储介质 |
CN112131135A (zh) * | 2020-11-19 | 2020-12-25 | 华控清交信息科技(北京)有限公司 | 一种密文运算调试方法、系统和用于密文运算调试的装置 |
CN112464257A (zh) * | 2020-10-30 | 2021-03-09 | 华控清交信息科技(北京)有限公司 | 一种数据检测方法、装置和用于数据检测的装置 |
-
2021
- 2021-03-12 CN CN202110270727.1A patent/CN112667674B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070280474A1 (en) * | 2006-04-18 | 2007-12-06 | Heinz Karl E | Encryption Method |
US20150280914A1 (en) * | 2014-03-25 | 2015-10-01 | Fujitsu Limited | Ciphertext processing device, ciphertext processing method, computer-readable recording medium, and information processing device |
US20180183570A1 (en) * | 2015-04-21 | 2018-06-28 | Kewei ZHENG | Polynomial fully homomorphic encryption system based on coefficient mapping transform |
CN107634829A (zh) * | 2017-09-12 | 2018-01-26 | 南京理工大学 | 基于属性的可搜索加密电子病历系统及加密方法 |
US20190207763A1 (en) * | 2017-12-29 | 2019-07-04 | Huazhong University Of Science And Technology | Method of searchable public-key encryption and system and server using the same |
CN110348229A (zh) * | 2019-06-11 | 2019-10-18 | 北京思源互联科技有限公司 | 数据的加密方法及装置、数据的解密方法及装置 |
CN112000978A (zh) * | 2019-06-19 | 2020-11-27 | 华控清交信息科技(北京)有限公司 | 隐私数据的输出方法、数据处理系统及存储介质 |
CN112000979A (zh) * | 2019-06-21 | 2020-11-27 | 华控清交信息科技(北京)有限公司 | 隐私数据的数据库操作方法、系统及存储介质 |
CN111026788A (zh) * | 2019-11-04 | 2020-04-17 | 武汉科技大学 | 一种混合云中基于同态加密的多关键词密文排序检索方法 |
CN112464257A (zh) * | 2020-10-30 | 2021-03-09 | 华控清交信息科技(北京)有限公司 | 一种数据检测方法、装置和用于数据检测的装置 |
CN112131135A (zh) * | 2020-11-19 | 2020-12-25 | 华控清交信息科技(北京)有限公司 | 一种密文运算调试方法、系统和用于密文运算调试的装置 |
Non-Patent Citations (1)
Title |
---|
余宇劲等: "基于多云存储的Android密钥管理技术", 《计算机应用与软件》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032846A (zh) * | 2021-05-20 | 2021-06-25 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN113032846B (zh) * | 2021-05-20 | 2021-08-06 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN115982424A (zh) * | 2023-03-15 | 2023-04-18 | 华控清交信息科技(北京)有限公司 | 一种隐私关键词查询方法、装置及电子设备 |
CN115982424B (zh) * | 2023-03-15 | 2023-05-12 | 华控清交信息科技(北京)有限公司 | 一种隐私关键词查询方法、装置及电子设备 |
CN116303551A (zh) * | 2023-05-16 | 2023-06-23 | 北京信安世纪科技股份有限公司 | 隐匿查询方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112667674B (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112667674B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112861175B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114301594B (zh) | 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置 | |
CN114978512B (zh) | 一种隐私求交方法、装置和可读存储介质 | |
CN113392422B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113449325B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114884645B (zh) | 一种隐私计算方法、装置和可读存储介质 | |
CN114969830B (zh) | 一种隐私求交方法、系统和可读存储介质 | |
CN112464257B (zh) | 一种数据检测方法、装置和用于数据检测的装置 | |
CN115085912A (zh) | 一种密文计算方法、装置和用于密文计算的装置 | |
CN114840568A (zh) | 一种密文排序方法、装置和用于密文排序的装置 | |
CN117319086B (zh) | 不经意传输系统、方法、电子设备及存储介质 | |
CN114885038B (zh) | 一种加密协议转换方法、结果获取节点和隐私计算节点 | |
CN115617897B (zh) | 一种数据类型转换方法和多方安全计算系统 | |
CN112468290B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112580064B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112685747B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114584284A (zh) | 同态加密操作方法、装置和电子设备 | |
CN114915455A (zh) | 一种密文数据传输方法、装置和用于密文数据传输的装置 | |
CN112583764B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113779501A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112668015B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112580063B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114969164B (zh) | 一种数据查询方法、装置和可读存储介质 | |
CN115499254B (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 |