针对密态数据库的数据处理方法和系统转让专利

申请号 : CN202311533893.1

文献号 : CN117251871B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宋宜轩邹银超

申请人 : 支付宝(杭州)信息技术有限公司

摘要 :

密态数据库的性能。本说明书实施例提供一种针对密态数据库的数据处理方法和系统,该方法由异构处理平台执行,异构处理平台包括,由通用处理单元实现的第一计算单元,和由专用加速单元实现的第二计算单元。方法包括:第一计算单元获取来自用户端设备的密文参数和数据库指令;数据库指令指示对密态数据库执行目标操作;第一计算单元将所述数据库指令转换为第二计算单元需执行的计算指令,并将计算指令传输给第二计算单元;第二计算单元根据所述计算指令,对密态数据库中的密文数据和密文参数进行目标操作对

权利要求 :

1.一种针对密态数据库的数据处理方法,所述方法由异构处理平台执行,所述异构处理平台包括,由通用处理单元实现的第一计算单元,和由专用加速单元实现的第二计算单元,所述方法包括:所述第一计算单元获取来自用户端设备的密文参数和数据库指令;所述数据库指令指示对密态数据库执行目标操作;

所述第一计算单元将所述数据库指令转换为所述第二计算单元需执行的计算指令,并将所述计算指令传输给所述第二计算单元;

所述第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算,得到密文结果;

所述第二计算单元将所述密文结果传输给所述第一计算单元。

2.如权利要求1所述的方法,其中,所述第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算之前,所述方法还包括:所述第一计算单元根据所述数据库指令从密态数据库中读取所述密文数据,并将所述密文数据和所述密文参数传输给所述第二计算单元。

3.如权利要求1所述的方法,其中,所述第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算之前,所述方法还包括:所述第一计算单元将根据所述数据库指令确定的读取指令传输给所述第二计算单元;

所述第二计算单元根据所述读取指令从密态数据库中读取所述密文数据。

4.如权利要求1所述的方法,其中,所述第二计算单元将所述密文结果传输给所述第一计算单元之后,所述方法还包括:所述第一计算单元将所述密文结果存储到所述密态数据库中;或者,所述第一计算单元将所述密文结果发送给所述用户端设备。

5.如权利要求1所述的方法,其中,所述第一计算单元为中央处理器CPU,所述第二计算单元为图形处理单元GPU、现场可编程门阵列FPGA、专用集成电路ASIC中的任意一种。

6.如权利要求1所述的方法,其中,所述密态数据库为同态加密数据库,所述密码学运算为同态运算。

7.如权利要求1所述的方法,其中,所述用户端设备具有公钥和对应的私钥,所述密文参数为用户参数经过所述公钥加密后得到的,所述私钥用于解密所述密文结果。

8.如权利要求7所述的方法,其中,所述方法还包括:

所述第一计算单元还从用户端设备获得辅助密钥,并将其传输给所述第二计算单元;

所述第二计算单元执行的密码学运算基于所述辅助密钥进行。

9.如权利要求6所述的方法,其中,所述第二计算单元为适于矩阵运算的图形处理单元GPU或AI加速芯片,所述密码学运算包括,基于快速数论变换NTT实现的全同态加密运算,其中所述NTT通过矩阵运算实现。

10.如权利要求1所述的方法,其中,所述第一计算单元为中央处理器CPU,所述第二计算单元为图形处理单元GPU;

所述第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算,包括:所述第二计算单元根据所述计算指令将所述密文数据、所述密文参数存放到显存中;

所述第二计算单元从显存中读取所述密文数据和所述密文参数进行所述密码学运算,得到密文结果。

11.一种针对密态数据库的数据处理系统,所述系统设置于异构处理平台,所述异构处理平台包括,由通用处理单元实现的第一计算单元,和由专用加速单元实现的第二计算单元,所述系统包括:获取模块,其设置于所述第一计算单元,用于获取来自用户端设备的密文参数和数据库指令;所述数据库指令指示对密态数据库执行目标操作;

转换模块,其设置于所述第一计算单元,用于将所述获取模块获取的数据库指令转换为所述第二计算单元需执行的计算指令,并将所述计算指令传输给所述第二计算单元;

运算模块,其设置于所述第二计算单元,用于根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算,得到密文结果;将所述密文结果传输给所述第一计算单元。

12.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1‑10中任一项的所述的方法。

13.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1‑10中任一项的所述的方法。

说明书 :

针对密态数据库的数据处理方法和系统

技术领域

[0001] 本说明书一个或多个实施例涉及计算机领域,尤其涉及针对密态数据库的数据处理方法和系统。

背景技术

[0002] 在隐私计算领域,数据库是重要的基础软件之一。针对隐私计算产品中的关键软件技术,需要进行性能提升。
[0003] 数据库作为基础软件的重要部分,在隐私计算领域具有重要的价值。密态数据库利用密码学算法实现对数据的安全性保护,数据以密文形式存储在数据库中,采用密码学算法实现数据库指令,计算开销和计算耗时很高。现有技术中,在针对密态数据库的数据处理时,受限于密码学运算的计算开销,使得密态数据库的性能较低。

发明内容

[0004] 本说明书一个或多个实施例描述了一种针对密态数据库的数据处理方法和系统,能够提升密态数据库的性能。
[0005] 第一方面,提供了一种针对密态数据库的数据处理方法,该方法由异构处理平台执行,所述异构处理平台包括,由通用处理单元实现的第一计算单元,和由专用加速单元实现的第二计算单元,方法包括:
[0006] 所述第一计算单元获取来自用户端设备的密文参数和数据库指令;所述数据库指令指示对密态数据库执行目标操作;
[0007] 所述第一计算单元将所述数据库指令转换为所述第二计算单元需执行的计算指令,并将所述计算指令传输给所述第二计算单元;
[0008] 所述第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算,得到密文结果;
[0009] 所述第二计算单元将所述密文结果传输给所述第一计算单元。
[0010] 在一种可能的实施方式中,所述第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算之前,所述方法还包括:
[0011] 所述第一计算单元根据所述数据库指令从密态数据库中读取所述密文数据,并将所述密文数据和所述密文参数传输给所述第二计算单元。
[0012] 在一种可能的实施方式中,所述第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算之前,所述方法还包括:
[0013] 所述第一计算单元将根据所述数据库指令确定的读取指令传输给所述第二计算单元;
[0014] 所述第二计算单元根据所述读取指令从密态数据库中读取所述密文数据。
[0015] 在一种可能的实施方式中,所述第二计算单元将所述密文结果传输给所述第一计算单元之后,所述方法还包括:
[0016] 所述第一计算单元将所述密文结果存储到所述密态数据库中;或者,[0017] 所述第一计算单元将所述密文结果发送给所述用户端设备。
[0018] 在一种可能的实施方式中,所述第一计算单元为中央处理器(central processing unit,CPU),所述第二计算单元为图形处理单元(graphics processing unit,GPU)、现场可编程门阵列(field programmable gate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)中的任意一种。
[0019] 在一种可能的实施方式中,所述密态数据库为同态加密数据库,所述密码学运算为同态运算。
[0020] 在一种可能的实施方式中,所述用户端设备具有公钥和对应的私钥,所述密文参数为用户参数经过所述公钥加密后得到的,所述私钥用于解密所述密文结果。
[0021] 进一步地,所述方法还包括:
[0022] 所述第一计算单元还从用户端设备获得辅助密钥,并将其传输给所述第二计算单元;
[0023] 所述第二计算单元执行的密码学运算基于所述辅助密钥进行。
[0024] 进一步地,所述第二计算单元为适于矩阵运算的图形处理单元GPU或人工智能(artificial intelligence,AI)加速芯片,所述密码学运算包括,基于快速数论变换(number‑theoretic transform,NTT)实现的全同态加密运算,其中所述NTT通过矩阵运算实现。
[0025] 在一种可能的实施方式中,所述第一计算单元为中央处理器CPU,所述第二计算单元为图形处理单元GPU;
[0026] 所述第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算,包括:
[0027] 所述第二计算单元根据所述计算指令将所述密文数据、所述密文参数存放到显存中;
[0028] 所述第二计算单元从显存中读取所述密文数据和所述密文参数进行所述密码学运算,得到密文结果。
[0029] 第二方面,提供了一种针对密态数据库的数据处理系统,该系统设置于异构处理平台,所述异构处理平台包括,由通用处理单元实现的第一计算单元,和由专用加速单元实现的第二计算单元,系统包括:
[0030] 获取模块,其设置于所述第一计算单元,用于获取来自用户端设备的密文参数和数据库指令;所述数据库指令指示对密态数据库执行目标操作;
[0031] 转换模块,其设置于所述第一计算单元,用于将所述获取模块获取的数据库指令转换为所述第二计算单元需执行的计算指令,并将所述计算指令传输给所述第二计算单元;
[0032] 运算模块,其设置于所述第二计算单元,用于根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算,得到密文结果;将所述密文结果传输给所述第一计算单元。
[0033] 第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
[0034] 第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
[0035] 通过本说明书实施例提供的方法和系统,由异构处理平台执行,所述异构处理平台包括,由通用处理单元实现的第一计算单元,和由专用加速单元心实现的第二计算单元,首先所述第一计算单元获取来自用户端设备的密文参数和数据库指令;所述数据库指令指示对密态数据库执行目标操作;然后所述第一计算单元将所述数据库指令转换为所述第二计算单元需执行的计算指令,并将所述计算指令传输给所述第二计算单元;接着所述第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算,得到密文结果;最后所述第二计算单元将所述密文结果传输给所述第一计算单元。由上可见,本说明书实施例,由第一计算单元接收来自用户端设备的数据库指令并进行指令的转换,将转换后的指令发送给第二计算单元,由第二计算单元根据转换后的指令进行密码学运算,这种方式采用了基于异构计算平台的软硬件技术,可以有效提升对密态数据库执行目标操作中密码学运算的性能,进而提升密态数据库的性能。

附图说明

[0036] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0037] 图1为本说明书披露的一个实施例的实施场景示意图;
[0038] 图2为本说明书披露的另一个实施例的实施场景示意图;
[0039] 图3为本说明书披露的另一个实施例的实施场景示意图;
[0040] 图4示出根据一个实施例的针对密态数据库的数据处理方法流程图;
[0041] 图5示出根据一个实施例的针对密态数据库的数据处理系统的示意性框图。

具体实施方式

[0042] 下面结合附图,对本说明书提供的方案进行描述。
[0043] 图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及针对密态数据库的数据处理,主要介绍了密态数据库中数据的可能的存储形式。密态数据库是管理和存储密态数据的数据库系统,数据以密文形式存储在数据库中,数据存储、计算等数据库操作均在密文形式下完成。举例来说,密态数据库包括多个数据表,每个数据表包括多个字段,其中,字段对应于列,每列包含多个字段取值,字段取值常常属于隐私数据,其明文不能泄露,在密态数据库中只保存其密文。参照图1,表一为密态数据库中的数据表,表一中包括的字段1属于隐私数据,字段1对应的列存储的为字段取值的密文,例如,用户标识为C1对应的字段1的字段取值的密文为0xadce**2e,该密文对应的明文为256;用户标识为C2对应的字段1的字段取值的密文为0x594r**2f,该密文对应的明文为18;用户标识为C3对应的字段1的字段取值的密文为0xad14**2e,该密文对应的明文为80;用户标识为C4对应的字段1的字段取值的密文为0xadcf**t4,该密文对应的明文为190;用户标识为C5对应的字段1的字段取值的密文为0xahje**y6,该密文对应的明文为71。可以理解的是,图1中,既给出了字段
1的明文对应的列,又给出了字段1的密文对应的列,这仅仅是为了便于对照明文和密文,实际上,密态数据库中仅会存储字段1的各个字段取值的密文,而不会存储字段1的各个字段取值的明文。
[0044] 可以理解的是,上述密文为通过密钥对明文加密后得到的数据。密钥是一个密码学概念,指用来完成加密、解密、计算等密码学应用的秘密信息。
[0045] 图2为本说明书披露的另一个实施例的实施场景示意图。该实施场景涉及针对密态数据库的数据处理,主要介绍了上述数据处理涉及的设备和通常的处理流程。其中,主要涉及用户端设备和服务端设备。用户端设备提供用户执行环境,用户执行环境由用户自身构建,认定为安全可信的执行环境,简称为可信执行环境,可以在其中使用明文数据、私钥等高度隐私数据。可信执行环境是一种密码学概念,指设备上独立的、可信的、隔离的执行环境,用来操作隐私数据和执行敏感计算。服务端设备一般部署在远程,处于非可信安全环境中,数据以密文的形式进行传输和运算。密文形式下的数据进行运算需要采用对应的密码学运算。除用户执行环境外全链路数据需采用密文形式,保证隐私数据的安全性;密态数据库以密文的格式存储数据,并提供查询、计算、增改等数据库功能;针对密态数据库的密码学运算可以采用全同态算法。全同态算法是一种常见的密码学加密方案,无需解密即可以在密文状态下实现任意的数据运算并获得与明文计算一样的结果。
[0046] 参照图2,针对密态数据库的数据处理流程包括:用户端设备可以初始化私钥、公钥、辅助密钥;通过客户端接收用户的用户指令和用户参数,用户指令用于指示相应的数据库操作,用户参数为进行该数据库操作所需要的参数;对用户参数使用公钥加密后成为密文格式的密文参数,对用户指令经过编译器优化后成为服务端设备可执行的数据库指令;用户端设备将密文参数和数据库指令发送给服务端设备;服务端设备分析数据库指令,并提取相应的密文数据和密文参数进行密码学运算,密码学运算中可能需要的辅助密钥可以由用户端设备直接发送给服务端设备;密码学运算后得到相应的密文结果,可以将密文结果存储到密文数据库中,也可以将密文结果传输回用户端设备,由用户端设备使用私钥解密得到明文结果。
[0047] 其中,服务端设备进行密码学运算的计算开销较大,计算效率较低,因此希望提升其中密码学运算的计算效率。例如,全同态运算可以支持向量旋转、加减乘除等算术操作,但是其计算性能比明文计算低数个量级。
[0048] 本说明书实施例,提出采用具有异构处理平台的服务端设备,异构处理平台是由不同体系结构的计算单元组成的计算平台。异构处理平台可以包括,由通用处理单元实现的第一计算单元,和由专用加速单元实现的第二计算单元,在针对密态数据库的数据处理中,将密码学运算由第一计算单元迁移到第二计算单元执行,能够提升其中密码学运算的计算效率,相应地提升密态数据库的性能。
[0049] 图3为本说明书披露的另一个实施例的实施场景示意图。该实施场景涉及针对密态数据库的数据处理,其基于具有异构处理平台的服务端设备而实现。参照图3,异构处理平台包括,由通用处理单元实现的第一计算单元,和由专用加速单元实现的第二计算单元,其中,第一计算单元示例性的采用中央处理器CPU,第二计算单元示例性的采用图形处理单元GPU。与图2所示的处理流程相比,用户端设备所处理的事务并无变化,服务端设备有较大变化。针对密态数据库的数据处理流程包括:用户端设备可以初始化私钥、公钥、辅助密钥;通过客户端接收用户的用户指令和用户参数,用户指令用于指示相应的数据库操作,用户参数为进行该数据库操作所需要的参数;对用户参数使用公钥加密后成为密文格式的密文参数,对用户指令经过编译器优化后成为服务端设备可执行的数据库指令;用户端设备将密文参数和数据库指令发送给服务端设备;服务端设备的CPU将数据库指令进一步优化为GPU指令,服务端设备的GPU,根据GPU指令从CPU读取密文参数和密文数据,并将密文参数和密文数据存放到显存中,在GPU上利用显存中的密文数据和密文参数执行密码学运算,得到相应的密文结果;GPU返回密文结果至CPU,CPU可以将密文结果存储到密文数据库中,也可以将密文结果传输回用户端设备,由用户端设备使用私钥解密得到明文结果。基于GPU,采用本方案可以获得仅使用CPU物理核实现的100倍加速以上。
[0050] 需要说明的是,本说明书实施例,不限于密码学运算的种类,对于密码学运算中采用其他非全同态方案的密态数据库架构亦具有有效性。不限于CPU和GPU组成的异构处理平台,对CPU和FPGA、CPU和ASIC等其他具有密码学加速能力的异构处理平台亦具有有效性。不限于硬件分离的异构处理平台,对于CPU和GPU等整合在一起的系统级芯片(system on chip,SoC)系统亦具有有效性。
[0051] 图4示出根据一个实施例的针对密态数据库的数据处理方法流程图,该方法由异构处理平台执行,所述异构处理平台包括,由通用处理单元实现的第一计算单元,和由专用加速单元实现的第二计算单元,该方法可以基于图1、图2或图3所示的实施场景。如图4所示,该实施例中针对密态数据库的数据处理方法包括以下步骤:步骤41,第一计算单元获取来自用户端设备的密文参数和数据库指令;所述数据库指令指示对密态数据库执行目标操作;步骤42,第一计算单元将所述数据库指令转换为所述第二计算单元需执行的计算指令,并将所述计算指令传输给所述第二计算单元;步骤43,第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算,得到密文结果;步骤44,第二计算单元将所述密文结果传输给所述第一计算单元。下面描述以上各个步骤的具体执行方式。
[0052] 首先在步骤41,第一计算单元获取来自用户端设备的密文参数和数据库指令;所述数据库指令指示对密态数据库执行目标操作。可以理解的是,上述数据库指令可以是经过用户端设备编译后的指令,该指令可以被第一计算单元理解。
[0053] 其中,上述目标操作可以分解为相应的密码学操作和对数据的操作。
[0054] 本说明书实施例,第一计算单元和第二计算单元组成异构处理平台,第一计算单元和第二计算单元分别对应的体系结构存在多种可能。
[0055] 在一个示例中,所述第一计算单元为中央处理器CPU,所述第二计算单元为图形处理单元GPU、现场可编程门阵列FPGA、专用集成电路ASIC中的任意一种。
[0056] 该示例中,异构处理平台可以为CPU和GPU的组合,或者,CPU和FPGA的组合,或者,CPU和ASIC的组合,这些异构处理平台均适用于本说明书实施例提供的数据处理方法。
[0057] 在一个示例中,所述用户端设备具有公钥和对应的私钥,所述密文参数为用户参数经过所述公钥加密后得到的。
[0058] 其中,用户参数为目标操作所涉及的参数,密文参数会应用于目标操作对应的密码学运算中。例如,一个用户希望进行3 * x + y的操作,也就是乘法运算和加法运算的操作,其中x, y是数据库中的数据。数据库指令指示的目标操作为3 * x + y,涉及到的用户参数为3,该目标操作可以分解为如下多个子操作:从数据库中取密文x并传输至第二计算单元,取密文y并传输至第二计算单元,将数据3的密文传输至第二计算单元,在第二计算单元执行密文形式下的密码学运算3 * x + y。
[0059] 又例如,一个用户希望进行x2的操作,也就是指数运算的操作,其中x是数据库中2
的数据。数据库指令指示的目标操作为x ,涉及到的用户参数为2,该目标操作可以分解为如下多个子操作:从数据库中取密文x并传输至第二计算单元,将数据2的密文传输至第二
2
计算单元,在第二计算单元执行密文形式下的密码学运算x。
[0060] 又例如,一个用户希望进行(x1 + x2 + …x10)/10的操作,也就是求平均值的操作,其中x1,x2,…x10是数据库中的数据。数据库指令指示的目标操作为(x1 + x2 + …x10)/10,涉及到的用户参数为10,该目标操作可以分解为如下多个子操作:从数据库中取密文x1并传输至第二计算单元,取密文x2并传输至第二计算单元,…取密文x10并传输至第二计算单元,将数据10的密文传输至第二计算单元,在第二计算单元执行密文形式下的密码学运算(x1 + x2 + …x10)/10。然后在步骤42,第一计算单元将所述数据库指令转换为所述第二计算单元需执行的计算指令,并将所述计算指令传输给所述第二计算单元。可以理解的是,第一计算单元和第二计算单元通常采用不同的指令集,需要第一计算单元完成指令的转换。
[0061] 根据前面的例子,目标操作为3 * x + y,计算指令用于指示在第二计算单元执行密文形式下的密码学运算3 * x + y。根据该计算指令,第二计算单元执行如下子操作:利用密码学运算计算密文乘3 * x,计算密文加3 * x + y。
[0062] 接着在步骤43,第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算,得到密文结果。可以理解的是,可以是第一计算单元先从密态数据库中读取上述密文数据,然后再传输给第二计算单元;或者,第二计算单元直接从密态数据库中读取上述密文数据。
[0063] 在一个示例中,所述第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算之前,所述方法还包括:
[0064] 所述第一计算单元根据所述数据库指令从密态数据库中读取所述密文数据,并将所述密文数据和所述密文参数传输给所述第二计算单元。
[0065] 该示例中,由第一计算单元先从密态数据库中读取上述密文数据,然后再传输给第二计算单元。
[0066] 在另一个示例中,所述第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算之前,所述方法还包括:
[0067] 所述第一计算单元将根据所述数据库指令确定的读取指令传输给所述第二计算单元;
[0068] 所述第二计算单元根据所述读取指令从密态数据库中读取所述密文数据。
[0069] 该示例中,第二计算单元直接从密态数据库中读取上述密文数据。
[0070] 在一个示例中,所述密态数据库为同态加密数据库,所述密码学运算为同态运算。
[0071] 该示例中,同态加密是密码学里一种加密模式,是指满足密文同态运算性质的加密算法,即数据经过同态加密之后,对密文进行特定的计算,得到密文计算结果,在进行对应的同态解密后得到明文,该明文等同于对明文数据直接进行相同的计算。
[0072] 在一个示例中,所述用户端设备具有公钥和对应的私钥,所述密文参数为用户参数经过所述公钥加密后得到的,所述私钥用于解密所述密文结果。
[0073] 进一步地,所述方法还包括:
[0074] 所述第一计算单元还从用户端设备获得辅助密钥,并将其传输给所述第二计算单元;
[0075] 所述第二计算单元执行的密码学运算基于所述辅助密钥进行。
[0076] 进一步地,所述第二计算单元为适于矩阵运算的图形处理单元GPU或AI加速芯片,所述密码学运算包括,基于快速数论变换NTT实现的全同态加密运算,其中所述NTT通过矩阵运算实现。
[0077] 在一个示例中,所述第一计算单元为中央处理器CPU,所述第二计算单元为图形处理单元GPU;
[0078] 所述第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算,包括:
[0079] 所述第二计算单元根据所述计算指令将所述密文数据、所述密文参数存放到显存中;
[0080] 所述第二计算单元从显存中读取所述密文数据和所述密文参数进行所述密码学运算,得到密文结果。
[0081] 最后在步骤44,第二计算单元将所述密文结果传输给所述第一计算单元。可以理解的是,在得到密文结果之后,后续的处理可以由第一计算单元执行。
[0082] 在一个示例中,所述第二计算单元将所述密文结果传输给所述第一计算单元之后,所述方法还包括:
[0083] 所述第一计算单元将所述密文结果存储到所述密态数据库中;或者,[0084] 所述第一计算单元将所述密文结果发送给所述用户端设备。
[0085] 该示例中,用户端设备在获得密文结果后,可以利用其持有的私钥解密该密文结果,得到明文结果。
[0086] 在一个示例中,所述第一计算单元为中央处理器CPU,所述第二计算单元为图形处理单元GPU;
[0087] 所述第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算,包括:
[0088] 所述第二计算单元根据所述计算指令将所述密文数据、所述密文参数存放到显存中;
[0089] 所述第二计算单元从显存中读取所述密文数据和所述密文参数进行所述密码学运算,得到密文结果。
[0090] 通过本说明书实施例提供的方法,由异构处理平台执行,所述异构处理平台包括,由通用处理单元实现的第一计算单元,和由专用加速单元实现的第二计算单元,首先所述第一计算单元获取来自用户端设备的密文参数和数据库指令;所述数据库指令指示对密态数据库执行目标操作;然后所述第一计算单元将所述数据库指令转换为所述第二计算单元需执行的计算指令,并将所述计算指令传输给所述第二计算单元;接着所述第二计算单元根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算,得到密文结果;最后所述第二计算单元将所述密文结果传输给所述第一计算单元。由上可见,本说明书实施例,由第一计算单元接收来自用户端设备的数据库指令并进行指令的转换,将转换后的指令发送给第二计算单元,由第二计算单元根据转换后的指令进行密码学运算,这种方式采用了基于异构计算平台的软硬件技术,可以有效提升对密态数据库执行目标操作中密码学运算的性能,进而提升密态数据库的性能。
[0091] 根据另一方面的实施例,还提供一种针对密态数据库的数据处理系统,所述系统设置于异构处理平台,所述异构处理平台包括,由通用处理单元实现的第一计算单元,和由专用加速单元实现的第二计算单元,该系统用于执行本说明书实施例提供的方法。图5示出根据一个实施例的针对密态数据库的数据处理系统的示意性框图。如图5所示,该系统500包括:
[0092] 获取模块51,其设置于所述第一计算单元,用于获取来自用户端设备的密文参数和数据库指令;所述数据库指令指示对密态数据库执行目标操作;
[0093] 转换模块52,其设置于所述第一计算单元,用于将所述获取模块51获取的数据库指令转换为所述第二计算单元需执行的计算指令,并将所述计算指令传输给所述第二计算单元;
[0094] 运算模块53,其设置于所述第二计算单元,用于根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算,得到密文结果;将所述密文结果传输给所述第一计算单元。
[0095] 可选地,作为一个实施例,所述系统还包括:
[0096] 读取模块,其设置于所述第一计算单元,用于在所述运算模块53根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算之前,根据所述数据库指令从密态数据库中读取所述密文数据,并将所述密文数据和所述密文参数传输给所述第二计算单元。
[0097] 可选地,作为一个实施例,所述系统还包括:
[0098] 指示模块,其设置于所述第一计算单元,用于在所述运算模块53根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算之前,将根据所述数据库指令确定的读取指令传输给所述第二计算单元;
[0099] 读取模块,其设置于所述第二计算单元,用于根据所述读取指令从密态数据库中读取所述密文数据。
[0100] 可选地,作为一个实施例,所述系统还包括:
[0101] 存储模块,其设置于所述第一计算单元,用于在所述第二计算单元将所述密文结果传输给所述第一计算单元之后,将所述密文结果存储到所述密态数据库中;或者,[0102] 发送模块,其设置于所述第一计算单元,用于在所述第二计算单元将所述密文结果传输给所述第一计算单元之后,将所述密文结果发送给所述用户端设备。
[0103] 可选地,作为一个实施例,所述第一计算单元为中央处理器CPU,所述第二计算单元为图形处理单元GPU、现场可编程门阵列FPGA、专用集成电路ASIC中的任意一种。
[0104] 可选地,作为一个实施例,所述密态数据库为同态加密数据库,所述密码学运算为同态运算。
[0105] 可选地,作为一个实施例,所述用户端设备具有公钥和对应的私钥,所述密文参数为用户参数经过所述公钥加密后得到的,所述私钥用于解密所述密文结果。
[0106] 进一步地,所述系统还包括:
[0107] 传输模块,设置于所述第一计算单元,用于从用户端设备获得辅助密钥,并将其传输给所述第二计算单元;
[0108] 所述运算模块53执行的密码学运算基于所述辅助密钥进行。
[0109] 进一步地,所述第二计算单元为适于矩阵运算的图形处理单元GPU或AI加速芯片,所述密码学运算包括,基于快速数论变换NTT实现的全同态加密运算,其中所述NTT通过矩阵运算实现。
[0110] 可选地,作为一个实施例,所述第一计算单元为中央处理器CPU,所述第二计算单元为图形处理单元GPU;
[0111] 运算模块53,具体用于根据所述计算指令将所述密文数据、所述密文参数存放到显存中;从显存中读取所述密文数据和所述密文参数进行所述密码学运算,得到密文结果。
[0112] 通过本说明书实施例提供的系统,设置于异构处理平台,所述异构处理平台包括,由通用处理单元实现的第一计算单元,和由专用加速单元实现的第二计算单元,首先设置于第一计算单元的获取模块51获取来自用户端设备的密文参数和数据库指令;所述数据库指令指示对密态数据库执行目标操作;然后设置于第一计算单元的转换模块52将所述数据库指令转换为所述第二计算单元需执行的计算指令,并将所述计算指令传输给所述第二计算单元;接着设置于第二计算单元的运算模块53根据所述计算指令,对密态数据库中的密文数据和所述密文参数进行所述目标操作对应的密码学运算,得到密文结果,将所述密文结果传输给所述第一计算单元。由上可见,本说明书实施例,由第一计算单元接收来自用户端设备的数据库指令并进行指令的转换,将转换后的指令发送给第二计算单元,由第二计算单元根据转换后的指令进行密码学运算,这种方式采用了基于异构计算平台的软硬件技术,可以有效提升对密态数据库执行目标操作中密码学运算的性能,进而提升密态数据库的性能。
[0113] 根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图4所描述的方法。
[0114] 根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图4所描述的方法。
[0115] 本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
[0116] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。