CN115525817B - 聚合查询方法、系统、电子设备及计算机存储介质 - Google Patents
聚合查询方法、系统、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN115525817B CN115525817B CN202211434348.2A CN202211434348A CN115525817B CN 115525817 B CN115525817 B CN 115525817B CN 202211434348 A CN202211434348 A CN 202211434348A CN 115525817 B CN115525817 B CN 115525817B
- Authority
- CN
- China
- Prior art keywords
- data
- aggregation
- query
- matching
- condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种聚合查询方法、系统、电子设备及计算机存储介质,数据聚合查询方法,包括:接收数据聚合条件以及密态数据查询条件,其中,所述密态数据查询条件为客户端按照全同态加密算法对数据查询条件进行加密处理得到的;根据所述密态数据查询条件,在加密后的数据中进行查询,并将查询到的数据根据所述数据聚合条件进行密态聚合,得到密态聚合查询结果;发送所述密态聚合查询结果,以使所述客户端根据所述全同态加密算法对所述密态聚合查询结果进行解密,得到聚合查询结果。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种聚合查询方法、系统、电子设备及计算机存储介质。
背景技术
在大数据时代,大量企业或者机构需要将海量的数据存储在云服务端,从而可以利用云服务端便捷且强大的数据处理能力,进行海量数据查询。
然而,企业或者机构的部分数据具有较高的价值,交由不受信任的云服务端托管可能与现有的隐私保护策略相悖。为了解决数据安全问题,一种解决方法是由企业或者机构将数据按照非对称加密等技术进行加密后再存储至云服务端,但是这种方案虽然保证了数据的隐私性,但是无法利用云服务端的强计算优势;另一种方法是利用可信硬件,例如利用intel等可信厂商的硬件的信任根进行加密以及计算,但是这种方法也不符合一部分企业或者机构的隐私保护策略。
发明内容
有鉴于此,本申请实施例提供一种聚合查询方案,以至少部分解决上述问题。
根据本申请实施例的第一方面,提供了一种数据聚合查询方法,包括:接收数据聚合条件以及密态数据查询条件,其中,所述密态数据查询条件为客户端按照全同态加密算法对数据查询条件进行加密处理得到的;根据所述密态数据查询条件,在加密后的数据中进行查询,并将查询到的数据根据所述数据聚合条件进行密态聚合,得到密态聚合查询结果;发送所述密态聚合查询结果,以使所述客户端根据所述全同态加密算法对所述密态聚合查询结果进行解密,得到聚合查询结果。
根据本申请实施例的第二方面,提供了一种数据聚合查询方法,包括:接收数据聚合查询请求,所述数据聚合查询请求包括数据查询条件以及数据聚合条件;将所述数据查询条件按照全同态加密算法进行加密处理,得到密态数据查询条件,并发送所述数据聚合条件以及所述密态数据查询条件,以使得云服务端根据所述密态数据查询条件在加密后的数据中进行查询,并将查询到的数据根据所述数据聚合条件进行密态计算,得到密态聚合查询结果;接收返回的所述密态聚合查询结果,并根据所述全同态加密算法进行解密处理,得到聚合查询结果。
根据本申请实施例的第三方面,提供了一种数据聚合查询系统,包括:用于执行如上述第一方面所述的方法的云服务端、用于执行如上述第二方面所述的方法的客户端。
根据本申请实施例的第四方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上所述方法对应的操作。
根据本申请实施例的第五方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的方法。
根据本申请实施例提供的聚合查询方案,通过客户端将数据按照全同态加密算法进行加密并上传至云服务端,并在进行查询时,客户端可以将数据聚合查询请求中的数据查询条件按照全同态加密算法进行加密处理,得到密态数据查询条件,并发送所述数据聚合条件以及所述密态数据查询条件,以使得云服务端根据所述密态数据查询条件在加密后的数据中进行查询,并将查询到的数据根据所述数据聚合条件进行密态计算,得到密态聚合查询结果;客户端可以接收返回的所述密态聚合查询结果,并根据所述全同态加密算法进行解密处理,得到聚合查询结果,由此,客户端发出的为按照全同态加密算法进行加密后的数据以及加密后的数据查询条件,本实施例提供的方案中的全同态加密算法依赖于密码学的数学理论证明保证其安全性和可信任性,不依赖于任何第三方,从而保证了数据和数据聚合查询请求的数据安全,另外,通过本实施例提供的方案,可以利用云服务端基于加密后的数据进行聚合查询,充分利用了云服务端的强计算优势。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为适用本申请实施例的聚合查询方法的示例性系统的示意图;
图2A为本申请实施例的一种聚合查询系统的结构示意图;
图2B为图2A所示实施例中的一种数据聚合查询方法的流程示意图;
图3A为本申请实施例的一种聚合查询方法的步骤流程图;
图3B为图3A所示实施例中的一种密文列向量的示意图;
图4为本申请实施例的一种数据聚合查询方法的场景示意图;
图5为本申请实施例的一种电子设备的结构示意图。
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
下面结合本申请实施例附图进一步说明本申请实施例具体实现。
图1示出了一种适用本申请实施例的聚合查询方法的示例性系统。如图1所示,该系统可以包括云服务端102、通信网络104和/或一个或多个用户设备106,图1中示例为多个用户设备。
云服务端102可以是用于存储信息、数据、程序和/或任何其他合适类型的内容的任何适当的设备,包括但不限于分布式存储系统设备、服务器集群、计算云服务端集群等。在一些实施例中,云服务端102可以执行任何适当的功能。例如,在一些实施例中,云服务端102可以用于生成压缩图像。作为可选的示例,在一些实施例中,云服务端102可以被用于通过优化MPI的切割来生成MDI。作为另一示例,在一些实施例中,云服务端102可以被用于将MDI或MDI的序列发送到用户设备。
在一些实施例中,通信网络104可以是一个或多个有线和/或无线网络的任何适当的组合。例如,通信网络104能够包括以下各项中的任何一种或多种:互联网、内联网、广域网(WAN)、局域网(LAN)、无线网络、数字订户线路(DSL)网络、帧中继网络、异步转移模式(ATM)网络、虚拟专用网(VPN)和/或任何其它合适的通信网络。用户设备106能够通过一个或多个通信链路(例如,通信链路112)连接到通信网络104,该通信网络104能够经由一个或多个通信链路(例如,通信链路114)被链接到云服务端102。通信链路可以是适合于在用户设备106和云服务端102之间传送数据的任何通信链路,诸如网络链路、拨号链路、无线链路、硬连线链路、任何其它合适的通信链路或此类链路的任何合适的组合。
用户设备106可以包括适合于接收用户的聚合查询请求和/或呈现聚合查询结果的任何一个或多个用户设备。在一些实施例中,用户设备106可以包括任何合适类型的设备。例如,在一些实施例中,用户设备106可以包括移动设备、平板计算机、膝上型计算机、台式计算机、可穿戴计算机、游戏控制台、媒体播放器、车辆娱乐系统和/或任何其他合适类型的用户设备。
基于上述系统,本申请实施例提供了一种聚合查询方案,以下通过多个实施例进行说明。
参见图2A,示出了一种数据聚合查询系统,包括客户端和云服务端,客户端和云服务端的具体实现可以参考图1相关内容。
客户端用于执行下述实施例中的步骤S201、S202,云服务端用于执行下述实施例中的步骤S203、S204。
客户端用于接收数据聚合查询请求,数据聚合查询请求包括数据查询条件以及数据聚合条件;以及将数据查询条件按照全同态加密算法进行加密处理,得到密态数据查询条件,并发送数据聚合条件以及密态数据查询条件;云服务端用于接收数据聚合条件以及密态数据查询条件,根据密态数据查询条件,在加密后的数据中进行查询,并将查询到的数据根据数据聚合条件进行密态聚合,得到密态聚合查询结果,并发送密态聚合查询结果;客户端还用于接收密态聚合查询结果,并根据全同态加密算法进行解密处理,得到聚合查询结果。聚合查询结果可以由客户端展示给查询数据的用户。
具体地,参见图2B,示出了一种应用于图2A所示系统的数据聚合查询方法的流程示意图。如图所示,其包括:
S201、通过客户端接收数据聚合查询请求,数据聚合查询请求包括数据查询条件以及数据聚合条件。
数据聚合查询请求为请求云服务器按照数据聚合查询请求的数据查询条件进行数据查询,并将查询到的符合数据查询条件的数据按照数据聚合条件进行聚合的请求。
数据聚合查询请求包括数据查询条件以及数据聚合条件,数据查询条件用于使得服务器查询到数据查询条件对应的数据,数据聚合条件用于使得服务器按照数据聚合条件对查询到的数据进行聚合处理。
示例地,数据聚合查询请求可以为:请求查询入职时间在2020年01月01日之后的入职员工数量,即请求查询入职时间在2020年01月01日之后的员工,并根据查询到的数据进行计数,得到员工数量;类似的,还可以请求查询2020年01月01日之后收到的订单所包含的产品总数量,即请求查询2020年01月01日之后的订单,并将查询到的订单中包含的产品数量进行求和。
S202、将数据查询条件按照全同态加密算法进行加密处理,得到密态数据查询条件,并发送数据聚合条件以及密态数据查询条件,以使得云服务端接收数据聚合条件以及密态数据查询条件。
本实施例中,全同态加密(Fully Homomorphic Encryption,FHE)是一种纯密码学的加密手段,在保护数据的机密性之外,允许在密文数据上执行数据计算及分析操作,而并不会暴露明文数据。与此同时,FHE的信任根是基于公开的数学理论的证明,而不是任何第三方厂商,亦不受任何侧信道攻击的侵扰。
通过全同态加密算法进行加密处理,可以使得发送的密态数据查询条件为密文,不会导致数据泄露,在云服务端接收到密态数据查询条件后,可以在密文下进行数据查询操作,保证了数据的隐私性。
S203、通过云服务端,根据密态数据查询条件,在加密后的数据中进行查询,并将查询到的数据根据数据聚合条件进行密态聚合,得到密态聚合查询结果,并发送密态聚合查询结果,以使客户端接收密态聚合查询结果。
本实施例中,客户端可以预先将数据按照全同态加密算法进行加密处理,并将加密后的数据发送至云服务端进行存储。
示例地,客户端存储的数据可以为:
客户端可以将上述数据转换整数,使得数据符合全同态加密算法的要求,并将转换为整数的数据按照全同态加密算法进行加密,并将加密后的数据发送至云服务端,则云服务端存储的数据可以为(为了进行说明,下述以明文为例进行示例性说明,具体存储的为下列数据加密之后的数据):
云服务端根据接收到的密态数据查询条件,可以在加密后的数据中进行查询。表格中的“[]”表示数据为通过全同态加密算法进行加密后的数据。
示例地,用户接收到的密态数据查询条件可以例如:Salary>55500对应的密文,则进行查询时,云服务端可以从salary列中筛选出大于55500的行分别为ID值249111、250123、234754对应的行。
进一步地,若数据聚合条件为joindate的最低值,则可以计算Joindate 列中与ID值249111、250123、234754对应的行的数值的最低值[20220217]。
之后可以将计算得到最低值作为密态聚合查询结果发送至客户端,以使客户端接收密态聚合查询结果。
S204、通过客户端根据全同态加密算法进行解密处理,得到聚合查询结果。
客户端通过全同态加密算法对接收到的密态聚合查询结果进行解密处理,例如,可以解密得到2022-02-17,即查询salary>55500的员工最早入职的日期得到的聚合查询结果为2022-02-17。
本申请实施例提供的方案,可以通过客户端将数据按照全同态加密算法进行加密并上传至云服务端,并在进行查询时,客户端可以将数据聚合查询请求中的数据查询条件按照全同态加密算法进行加密处理,得到密态数据查询条件,并发送所述数据聚合条件以及所述密态数据查询条件,以使得云服务端根据所述密态数据查询条件在加密后的数据中进行查询,并将查询到的数据根据所述数据聚合条件进行密态计算,得到密态聚合查询结果;接收返回的所述密态聚合查询结果,并根据所述全同态加密算法进行解密处理,得到聚合查询结果,由此,客户端发出的为按照全同态加密算法进行加密后的数据以及加密后的数据查询条件,本实施例提供的方案中的全同态加密算法依赖于密码学的数学理论证明保证其安全性和可信任性,不依赖于任何第三方,从而保证了数据和数据聚合查询请求的数据安全,另外,通过本实施例提供的方案,可以利用云服务端基于加密后的数据进行聚合查询,充分利用了云服务端的强计算优势。
参见图3A,示出了本申请实施例提供的一种数据聚合查询方法的流程示意图,如图所示,其包括:
S301、通过客户端,按照全同态加密算法将数据进行加密处理,并上传至云服务端。
本实施例中,可以通过客户端先将原始数据库中的数据转换为全同态加密算法支持的数据格式。
一般情况下,原始数据库中包括:浮点数、日期、非数字格式的内容。
针对浮点数,则可以将浮点数扩大相应的倍数,使其转换为整数。例如,将123.45扩大100倍,得到12345。
针对日期,可以将日期转换为整数,例如利用UNIX/POSIX时间的形式来表达,其本质为一个32比特的整数,即将日期转换为32比特的整数。
针对非数字格式的内容,可按照预设的词典将其映射为整数。例如“所属部门”的可能取值为“财务”“工程师”“销售”,将其按照字典映射为0,1,2。当某一个数据的取值范围只有两种时,可以将其转换为“0”、“1”,例如男性转换为“0”,女性转换为“1”。
将数据转换为全同态加密算法支持的数据格式后,可以将其按照全同态加密算法进行加密。
具体地,本实施例中,不同的数据类型可以按照不同的全同态加密算法进行加密,数据类型可以包括整数字符串数据类型和二进制数据类型。
针对整数字符串数据类型,具体可以为比特位的数量大于1的整数字符串,其可以通过简单加密算法库(Simple EncryptedArithmetic Library,SEAL)全同态加密算法进行加密;针对二进制数据类型,具体可以为比特位的位数量等于1的整数字符串,即数据仅有“0”、“1”两个取值,其可以通过高效全同态加密算法(Fully Homomorphic Encryptionover the Torus,TFHE)进行加密。
进行加密后可以将数据上传至云服务端。
S302、通过客户端接收数据聚合查询请求,数据聚合查询请求包括数据查询条件以及数据聚合条件。
本步骤的具体实现方式参考上述实施例,在此不再赘述。
S303、通过客户端将所述数据查询条件改写为所述全同态加密算法支持的算子,所述算子对应于所述数据查询条件中的匹配条件,所述匹配条件包括匹配列字段、匹配逻辑、匹配项。
本实施例中,接收到的数据聚合查询请求具体可以为SQL语句或者为其他语句,则本实施例中,可以将接收到的数据聚合查询请求中的数据查询条件进行改写,得到全同态加密算法支持的算子。
一般情况下,SQL语句等会通过语法来限定查询关系,例如SQL中范围查询的语法为“between”等,然而这些语法不被全同态加密算法支持,因此本实施例中,需要将数据查询条件进行改写。
具体地,执行步骤S303之前,还可以先对数据查询条件进行预处理,根据预处理的结果执行步骤S303。
示例地,数据查询条件中可能会包含一些计算内容,例如数据查询条件“WHEREpurchase_date<date“2021-03-01”+interval 1 year”中,“WHERE purchase_date”表示数据中的日期列,date“2021-03-01”+ interval 1 year”表示2021-03-01之后的一年时间,在进行改写前,需要先计算出2021-03-01之后一年对应的具体日期。之后可以执行步骤S303,将上述数据查询条件“WHERE purchase_date<date“2021-03-01”+interval 1 year”改写为purchase_date<2022-03-01。
类似的,数据查询条件为模糊查询,则需要将数据查询条件中的模糊查询条件进行预处理,确定模糊查询条件对应的可选字符串,之后可以执行步骤S303,将若干个可选字符串改写为分别对应的精确匹配字符串,例如模糊查询为name≈su,其对应的精确匹配字符串可能为sushi、suzhe等,则可以将模糊查询改写为:“name=sushi” or “name=suzhe”。
本实施例中,全同态加密算法支持的算子对应于所述数据查询条件中的匹配条件,所述匹配条件包括匹配列字段、匹配逻辑、匹配项,匹配列字段可以例如Joindate等数据对应的列;匹配逻辑可以例如计算逻辑或者组合逻辑,例如“<”、“≈”、“or”等,匹配项可以为用于在于数据比较或者匹配的内容项,例如“<2022-03-01”、“sushi”等。
另外,本实施例中,数据查询条件中可以例如Salary>5550.0、Joindate>2022-04-14等,数据查询条件中可能包括浮点数、日期、非数字格式的内容等,则可以按照上述步骤S301中的数据加密方案对数据查询条件中这些数据类型对应的数据进行处理,从而将其改写为全同态加密算法支持的整数。
S304、通过客户端至少将所述算子中的所述匹配项所述全同态加密算法进行加密处理,将所述算子中的匹配逻辑不进行加密处理,得到所述密态数据查询条件。
本实施例中,根据上述步骤可知,算子中一般包括:匹配列字段、匹配逻辑、匹配项,则可以将匹配项进行加密处理,匹配逻辑不进行加密处理,匹配列字段可以按照用户需求确定是否进行加密处理。
可选地,本实施例中,步骤S304可以包括:根据所述匹配项的数据类型,按照与所述数据类型对应的所述全同态加密算法进行加密处理,其中,所述匹配项的数据类型包括:整数字符串数据类型和二进制数据类型。
具体地,与上述类似,不同的数据类型可以按照不同的全同态加密算法进行加密,数据类型可以包括整数字符串数据类型和二进制数据类型。
针对整数字符串数据类型,具体可以为比特位的数量大于1的整数字符串,其可以通过简单加密算法库(Simple EncryptedArithmetic Library,SEAL)全同态加密算法进行加密;针对二进制数据类型,具体可以为比特位的位数量等于1的整数字符串,即数据仅有“0”、“1”两个取值,其可以通过高效全同态加密算法(Fully Homomorphic Encryptionover the Torus,TFHE)进行加密。
S305、通过客户端发送数据聚合条件以及密态数据查询条件,以使得云服务端接收数据聚合条件以及密态数据查询条件。
S306、通过云服务端根据密态数据查询条件,在加密后的数据中进行查询,并将查询到的数据根据数据聚合条件进行密态聚合,得到密态聚合查询结果。
可选地,本实施例中,步骤S306包括:将密态数据查询条件进行拆解,得到一个或者多个匹配条件;针对任一匹配条件,根据匹配条件定位到数据中的对应列,并基于列进行匹配条件对应的密文比较,得到匹配结果;根据一个或者多个匹配条件对应的匹配结果确定查询到的数据;根据数据聚合条件将查询到的数据进行密态聚合,得到密态聚合查询结果。
通过将密态数据查询条件拆解为一个多个匹配条件,并针对任一匹配条件,分别根据匹配条件定位到数据中的对应列,并基于列进行匹配条件对应的密文比较,得到匹配结果,可以提高数据匹配效率,从而提高确定查询到的数据的效率。
可选地,本实施例中,针对任一匹配条件,根据匹配条件定位到数据中的对应列,并基于列进行匹配条件对应的密文比较,得到匹配结果,包括:针对任一匹配条件,从数据中定位到匹配条件对应的列,得到用于进行匹配的列数据;针对列数据执行匹配条件对应的密文比较,得到密文列向量,密文列向量中包括与列数据一一对应的二进制标识,所述二进制标识用于表征列数据对应的匹配结果。
通过采用密文列向量中的所述二进制标识表征列数据与匹配条件对应的匹配结果,计算简单方便,二进制标识具体为“0”或者“1”,其中的一个可以表征匹配,另一个表征不匹配。
示例地,服务端存储的数据可以为(为了进行说明,下述以明文为例进行示例性说明,具体存储的为下列数据加密之后的数据):
匹配条件可以有两个,分别为Salary>55500和Joindate>20220501,针对两个匹配条件,可以分别确定出对应的列为salary对应的列以及joindate对应的列。
针对Salary>55500在对应的列salary中进行密文比较,得到的密文列向量可以为:[1,1,0,1],密文列向量中的1表示匹配,0表示不匹配。类似的,针对Joindate>20220501在对应的列joindate中进行密文比较,得到的密文列向量可以为[0,0,1,0],密文列向量中的1表示匹配,0表示不匹配。
通过计算密文列向量,可以通过其中的二进制标识方便地表征列数据对应的匹配结果,更加便于后续计算。
可选地,本实施例中,若匹配条件的数量为一个,则可以将该匹配条件对应的密文列向量作为用于标记查询到的数据的结果密文列向量。
另外,本实施例中,若匹配条件的数量为多个,则根据所述一个或者多个匹配条件对应的所述匹配结果确定查询到的数据,包括:将多个匹配条件分别对应的密文列向量,按照匹配条件之间的逻辑关系进行逻辑运算,得到用于标记查询到的数据的结果密文列向量。将密文列向量进行逻辑运算可以为:与运算、或运算、同或运算、异或运算等,本实施例对此不进行限定。
示例地,若将密态数据查询条件进行拆解得到三个匹配条件:salary>= [50000],salary<=[60000], joindate<[20220501],参见图3B,示出了三个匹配条件分别对应的密文列向量为[1,1,1,1]、[1,0,1,1]、[1,1,0,1]。将这三个密文列向量可以进行与运算(and),得到结果密文列向量[1,0,0,1]。
可选地,本实施例中,根据数据聚合条件将查询到的数据进行密态聚合,得到密态聚合查询结果,包括:根据用于标记查询到的数据的结果密文列向量,以及需要被聚合的聚合列数据,对聚合列数据进行数据聚合条件对应的密态聚合计算,得到所述密态聚合查询结果。
示例地,本实施例中,若数据聚合条件为求和,则在确定结果密文列向量后,可以将其与需要被聚合的聚合列数据进行密态聚合计算,具体可以为将被聚合的聚合列数据与结果密文列向量进行相乘,再将相乘的结果进行相加得到密态聚合查询结果,具体可以为:[56935]*1+[63547]*0+[51206]*0+[58005]*1=[114940]。
另外,本实施例中,若数据聚合条件为计数,则可以将结果密文列中的1进行计数,得到密态聚合查询结果;若数据聚合条件为取最值,则可以将被聚合的聚合列数据与密文列向量进行相乘,再从相乘的结果中确定最值,得到密态聚合查询结果。
S307、通过云服务端发送密态聚合查询结果;
客户端可以接收到云服务端发送的密态聚合查询结果。
S308、通过客户端根据全同态加密算法对密态聚合查询结果进行解密,得到聚合查询结果。
本实施例中,若数据聚合条件为求和或者取最值等,则可以将密态聚合查询结果根据全同态加密算法进行解密,若数据聚合条件为计数,则可以直接将接收到的密态聚合查询结果作为聚合查询结果。
参见图4,示出了本申请实施例提供的一种数据聚合查询方法的场景示意图,如图所示,客户端的数据处理过程可分为三个阶段,分别为数据处理阶段、查询处理阶段、结果处理阶段。
在数据处理阶段,客户端可以对其明文数据进行数据预处理,具体可以包括将数据中的浮点数、日期数据、男女类别数据等转换全同态加密算法支持的类型。如图4所示,具体可以将浮点数和日期数据转换为整数,即比特位的数量大于1的比特数组;将男女类别等数据转换为二进制数,即比特位的数量为1的比特数。
之后针对整数和二进制数,可以使用不同的全同态加密算法进行加密处理,得到密文数据。其中,整数采用SEAL/BFV(Brakerski Fan Vercautere)加密,二进制数采用TFHE加密,“/”表示或者。
加密后的密文数据可以发送至云服务端进行云端存储。
在查询处理阶段,客户端可以接收用户输入的明文查询请,明文查询请求中可以包括数据查询条件和数据聚合条件。
针对数据查询条件,可以将其进行明文预计算,例如,将其中涉及到的计算公式等进行预计算,若数据查询条件为模糊查询,则还可以在客户端确定出模糊查询条件对应的可选字符串。在进行预计算后可以将数据查询条件进行算子改写,得到全同态加密算法支持的算子,并至少将算子中的匹配项进行加密处理。匹配项的数据类型可以为上述整数或者二进制数,则可以按照上述方式(即整数采用SEAL/BFV加密,二进制数采用TFHE加密)分别进行加密处理,得到密文数据查询条件。具体步骤可以参考上述实施例,在此不再赘述。
之后可以将密文数据查询条件以及数据聚合条件作为密文查询请求发送至云服务端,由云服务端的全同态聚合查询引擎根据密态数据查询条件在加密后的数据中进行数据查询,将查询到的数据根据所述数据聚合条件进行密态聚合,得到密态聚合查询结果,具体查询的步骤可以参考上述实施例,在此不再赘述。
云服务端的全同态聚合查询引擎可以输出密文聚合查询结果并由云服务端发送至客户端。
在结果处理阶段,客户端可以将接收到的密文聚合查询结果根据全同态加密算法进行数据解码,并进行用户设置的解密后处理,例如将整数转换为浮点数、日期,将二进制数转换为类型(例如男女类型)等,并可以将处理后的数据展示给用户。
参照图5,示出了本申请实施例的一种电子设备的结构示意图,本申请具体实施例并不对电子设备的具体实现做限定。
如图5所示,该电子设备可以包括:处理器(processor)502、通信接口(CommunicationsInterface)504、存储器(memory)506、以及通信总线508。
其中:
处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它电子设备或服务器进行通信。
处理器502,用于执行程序510,具体可以执行上述数据聚合查询方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是CPU,或者是特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行前述多个方法实施例中任一实施例所描述的方法对应的操作。
程序510中各步骤的具体实现可以参见上述方法实施例中的相应步骤和单元中对应的描述,并具有相应的有益效果,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
本申请实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的方法。
本申请实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述多个方法实施例中的任一方法对应的操作。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。
Claims (10)
1.一种数据聚合查询方法,包括:
接收数据聚合条件以及密态数据查询条件,其中,所述密态数据查询条件为客户端按照全同态加密算法对数据查询条件进行加密处理得到的;
根据所述密态数据查询条件,在加密后的数据中进行查询,并将查询到的数据根据所述数据聚合条件进行密态聚合,得到密态聚合查询结果;
发送所述密态聚合查询结果,以使所述客户端根据所述全同态加密算法对所述密态聚合查询结果进行解密,得到聚合查询结果;
若所述数据聚合条件为求和,所述将查询到的数据根据所述数据聚合条件进行密态聚合,得到密态聚合查询结果包括:将用于通过二进制标识标记查询到的数据的结果密文列向量以及需要被聚合的聚合列数据进行相乘,将相乘的结果进行相加得到所述密态聚合查询结果;
或者,若所述数据聚合条件为取最值,所述将查询到的数据根据所述数据聚合条件进行密态聚合,得到密态聚合查询结果包括:将用于通过二进制标识标记查询到的数据的结果密文列向量以及需要被聚合的聚合列数据进行相乘,从相乘的结果中确定最值得到所述密态聚合查询结果。
2.根据权利要求1所述的方法,其中,所述根据所述密态数据查询条件,在加密后的数据中进行查询,并将查询到的数据根据所述数据聚合条件进行密态聚合,得到密态聚合查询结果,包括:
将所述密态数据查询条件进行拆解,得到一个或者多个匹配条件;
针对任一所述匹配条件,根据所述匹配条件定位到所述数据中的对应列,并基于列进行所述匹配条件对应的密文比较,得到匹配结果;
根据所述一个或者多个匹配条件对应的所述匹配结果确定查询到的数据;
根据所述数据聚合条件将查询到的数据进行密态聚合,得到所述密态聚合查询结果。
3.根据权利要求2所述的方法,其中,所述针对任一所述匹配条件,根据所述匹配条件定位到所述数据中的对应列,并基于列进行所述匹配条件对应的密文比较,得到匹配结果,包括:
针对任一所述匹配条件,从所述数据中定位到所述匹配条件对应的列,得到用于进行匹配的列数据;
针对所述列数据执行所述匹配条件对应的密文比较,得到密文列向量,所述密文列向量中包括与所述列数据一一对应的二进制标识,所述二进制标识用于表征所述列数据对应的匹配结果。
4.根据权利要求3所述的方法,其中,若所述匹配条件的数量为多个,则所述根据所述一个或者多个匹配条件对应的所述匹配结果确定查询到的数据,包括:
将多个所述匹配条件分别对应的所述密文列向量,按照所述匹配条件之间的逻辑关系进行逻辑运算,得到用于标记查询到的数据的所述结果密文列向量。
5.一种数据聚合查询方法,包括:
接收数据聚合查询请求,所述数据聚合查询请求包括数据查询条件以及数据聚合条件;
将所述数据查询条件按照全同态加密算法进行加密处理,得到密态数据查询条件,并发送所述数据聚合条件以及所述密态数据查询条件,以使得云服务端根据所述密态数据查询条件在加密后的数据中进行查询,并将查询到的数据根据所述数据聚合条件进行密态计算,得到密态聚合查询结果;
接收返回的所述密态聚合查询结果,并根据所述全同态加密算法进行解密处理,得到聚合查询结果;
若所述数据聚合条件为求和,所述将查询到的数据根据所述数据聚合条件进行密态聚合,得到密态聚合查询结果包括:将用于通过二进制标识标记查询到的数据的结果密文列向量以及需要被聚合的聚合列数据进行相乘,将相乘的结果进行相加得到所述密态聚合查询结果;
或者,若所述数据聚合条件为取最值,所述将查询到的数据根据所述数据聚合条件进行密态聚合,得到密态聚合查询结果包括:将用于通过二进制标识标记查询到的数据的结果密文列向量以及需要被聚合的聚合列数据进行相乘,从相乘的结果中确定最值得到所述密态聚合查询结果。
6.根据权利要求5所述的方法,其中,所述方法还包括:
将所述数据查询条件改写为所述全同态加密算法支持的算子,所述算子对应于所述数据查询条件中的匹配条件,所述匹配条件包括匹配列字段、匹配逻辑、匹配项;
所述将所述数据查询条件按照全同态加密算法进行加密处理,得到密态数据查询条件,包括:
至少将所述算子中的所述匹配项所述全同态加密算法进行加密处理,将所述算子中的匹配逻辑不进行加密处理,得到所述密态数据查询条件。
7.根据权利要求6所述的方法,其中,所述至少将所述算子中的所述匹配项所述全同态加密算法进行加密处理,包括:
根据所述匹配项的数据类型,按照与所述数据类型对应的所述全同态加密算法进行加密处理,其中,所述匹配项的数据类型包括:整数字符串数据类型和二进制数据类型。
8.一种数据聚合查询系统,包括:用于执行如权利要求1-4中任一项所述的方法的云服务端、用于执行如权利要求5-7中任一项所述的方法的客户端。
9.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的方法对应的操作。
10.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211434348.2A CN115525817B (zh) | 2022-11-16 | 2022-11-16 | 聚合查询方法、系统、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211434348.2A CN115525817B (zh) | 2022-11-16 | 2022-11-16 | 聚合查询方法、系统、电子设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115525817A CN115525817A (zh) | 2022-12-27 |
CN115525817B true CN115525817B (zh) | 2023-05-02 |
Family
ID=84705041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211434348.2A Active CN115525817B (zh) | 2022-11-16 | 2022-11-16 | 聚合查询方法、系统、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115525817B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115982246B (zh) * | 2023-03-03 | 2023-08-04 | 阿里云计算有限公司 | 一种数据查询方法、设备、系统及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106953722A (zh) * | 2017-05-09 | 2017-07-14 | 深圳市全同态科技有限公司 | 一种全同态加密的密文查询方法和系统 |
CN112800088A (zh) * | 2021-01-19 | 2021-05-14 | 东北大学 | 基于双向安全索引的数据库密文检索系统及方法 |
CN113742362A (zh) * | 2021-09-03 | 2021-12-03 | 西安电子科技大学 | 一种面向密态数据库的密文查询计算方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10812252B2 (en) * | 2017-01-09 | 2020-10-20 | Microsoft Technology Licensing, Llc | String matching in encrypted data |
US11251936B2 (en) * | 2019-11-07 | 2022-02-15 | Cognizant Technology Solutions India Pvt. Ltd | System and method for performing homomorphic aggregation over encrypted data |
CN113076562A (zh) * | 2021-05-08 | 2021-07-06 | 北京炼石网络技术有限公司 | 基于gcm加密模式的数据库加密字段模糊检索方法 |
CN115065457B (zh) * | 2022-06-15 | 2024-06-04 | 抖音视界有限公司 | 数据查询方法及装置 |
-
2022
- 2022-11-16 CN CN202211434348.2A patent/CN115525817B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106953722A (zh) * | 2017-05-09 | 2017-07-14 | 深圳市全同态科技有限公司 | 一种全同态加密的密文查询方法和系统 |
CN112800088A (zh) * | 2021-01-19 | 2021-05-14 | 东北大学 | 基于双向安全索引的数据库密文检索系统及方法 |
CN113742362A (zh) * | 2021-09-03 | 2021-12-03 | 西安电子科技大学 | 一种面向密态数据库的密文查询计算方法 |
Non-Patent Citations (1)
Title |
---|
李维 ; 黎杰铭 ; 邹先霞 ; 杜威 ; .基于SQL查询的数据库加密中间件的设计与实现.福建电脑.2016,(第03期),4-6页. * |
Also Published As
Publication number | Publication date |
---|---|
CN115525817A (zh) | 2022-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gai et al. | Blend arithmetic operations on tensor-based fully homomorphic encryption over real numbers | |
US10951392B2 (en) | Fast format-preserving encryption for variable length data | |
Liu et al. | Efficient and privacy-preserving outsourced calculation of rational numbers | |
WO2016120975A1 (ja) | データ集計分析システム及びその方法 | |
US10608813B1 (en) | Layered encryption for long-lived data | |
US11381381B2 (en) | Privacy preserving oracle | |
US7986780B2 (en) | Privacy-preserving substring creation | |
JP2014002365A (ja) | プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム | |
CN112042150B (zh) | 登记装置、服务器装置、隐匿检索系统、隐匿检索方法及计算机可读取的记录介质 | |
CN113821810B (zh) | 数据处理方法及系统、存储介质及电子设备 | |
CN113434898B (zh) | 一种非交互式的隐私保护逻辑回归联邦训练方法及系统 | |
CN114039785B (zh) | 数据加密、解密、处理方法、装置、设备和存储介质 | |
CN113537633A (zh) | 基于纵向联邦学习的预测方法、装置、设备、介质和系统 | |
CN115525817B (zh) | 聚合查询方法、系统、电子设备及计算机存储介质 | |
WO2021129470A1 (zh) | 基于多项式完全同态的二进制数据加密系统及方法 | |
Abdul Hussien et al. | [Retracted] A Secure Environment Using a New Lightweight AES Encryption Algorithm for E‐Commerce Websites | |
CN108170753B (zh) | 一种共有云中Key-Value数据库加密与安全查询的方法 | |
CN114528331A (zh) | 基于区块链的数据查询方法及装置、介质、设备 | |
US9229687B2 (en) | Private two-party computation using partially homomorphic encryption | |
US20060129812A1 (en) | Authentication for admitting parties into a network | |
CN111475690B (zh) | 字符串的匹配方法和装置、数据检测方法、服务器 | |
Yao et al. | Efficient federated learning aggregation protocol using approximate homomorphic encryption | |
CN113821811B (zh) | 基于区块链的数据获取方法及系统、电子设备及存储介质 | |
CN116681141A (zh) | 隐私保护的联邦学习方法、终端及存储介质 | |
US11809493B2 (en) | System and method for tokenization of data |
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 |