用于加密数据存储和搜索的方法及存储控制器与流程

未命名 07-14 阅读:65 评论:0


1.本技术一般地涉及固态存储器技术领域。更具体地,本技术涉及一种用于加密数据存储的方法,加密数据搜索的方法、存储控制器、加速器和存储设备。


背景技术:

2.图1展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如sata(serial advanced technology attachment,串行高级技术附件)、scsi(small computer system interface,小型计算机系统接口)、sas(serialattached scsi,串行连接scsi)、ide(integrated drive electronics,集成驱动器电子)、usb(universal serial bus,通用串行总线)、pcie(peripheral componentinterconnect express,pcie,高速外围组件互联)、nvme(nvm express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102(下文中,将固态存储设备简称为存储设备)包括接口103、控制部件 104、一个或多个nvm芯片105以及dram(dynamic random access memory,动态随机访问存储器)110。
3.上述nvm芯片105包括nand闪存、相变存储器、feram(ferroelectric ram,铁电存储器)、mram(magnetic random access memory,磁阻存储器)、rram (resistive random access memory,阻变存储器)等是常见的存储介质。
4.上述接口103可适配于通过例如sata、ide、usb、pcie、nvme、sas、以太网、光纤通道等方式与主机交换数据。
5.上述控制部件104用于控制在接口103、nvm芯片105以及dram 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是fpga(field-programmable gate array,现场可编程门阵列)、asic (application specific integrated circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理io(input/output)命令。控制部件104还可以耦合到dram 110,并可访问dram 110的数据。在dram可存储ftl表和/或缓存的io命令的数据。控制部件104以遵循nvm芯片105的接口协议的方式向nvm芯片105发出命令,以操作nvm芯片105,并接收从nvm芯片105输出的命令执行结果。已知的 nvm芯片接口协议包括“toggle”、“onfi”等。
6.在存储技术中,上述固态存储设备被经常用于服务器中用于存储数据。用户的客户端可以通过网络与服务器互联,以实现与服务器之间进行数据交互。例如,用户可以通过信任的计算存储传输方式将个人文件存放在可信的服务器的存储设备上,其中可信的服务器是指用户知道该服务器的身份并信任它;用户还可能通过零信任的计算存储传输方式将
个人文件存放在不可信的服务器,其中不可信的服务器是指用户可能了解它,也可能不了解它,但是不管是否了解,用户均对该服务器不信任。例如,边缘计算网络中不可信的边缘设备。为了保护用户文件的安全性,需要将用户文件以某种方式进行加密后存储。由于用户文件是以加密方式存储在服务器的存储设备中,为了保证用户文件的安全性,只有密钥拥有者才具备解密能力,服务器并不具备解密能力。因此,当用户进行搜索时,为了保证用户文件的安全性,需采用加密搜索的方式进行搜索,即在服务器中基于密文进行搜索。


技术实现要素:

7.当前,可搜索加密方案主要包括基于对称算法的可搜索加密方案和基于非对称算法的可搜索加密方案。基于非对称算法的可搜索加密方案可以适用于多种应用场景。例如,在网络中存在多个终端设备连接到同一服务器,这些终端设备可以作为数据提供者以向服务器提供数据,由服务器进行存储;或者可以作为数据搜索者以向服务器发出搜索请求,由服务器返回存储的数据。在一种应用场景中,数据提供者和数据搜索者是同一个终端;在另一些应用场景中,数据拥有者和数据搜索者并不是同一个终端。即存在多个数据提供者和一个数据搜索者的情况(多对一的情况),或者多个数据提供者和多个数据搜索者的情况(多对多的情况),在这些情况下,可以利用基于非对称加密算法的公钥可搜索加密方案(public-key encryption with keyword search, peks)来实现。例如,数据搜索者具有公钥和私钥对,数据搜索者将公钥分发给多个数据提供者。在加密存储过程中,数据提供者(或者数据搜索者)使用公钥对文件中的关键词以及文件进行加密得到密文和加密文件,并且将密文和加密文件提供给服务器,服务器接收密文和加密文件,并将密文和加密文件存储在存储器的存储介质中。在加密搜索过程中,数据搜索者通过私钥对关键词进行加密得到陷门,将陷门发送给服务器,服务器接收陷门,并从存储设备的存储介质中读出全部或部分密文,然后服务器的处理器根据该陷门处理读出的密文以搜索与该陷门匹配的密文,再根据匹配的密文查找对应的加密文件(例如,在存储设备中还存储有密文与加密文件之间的映射关系,服务器根据该映射关系即可查找出匹配的密文所对应的加密文件),服务器查询到加密文件之后,将加密文件发送给数据搜索者,数据搜索者根据密钥对加密文件进行解密得到明文。其中,数据提供者和数据搜索者可以是客户端,数据搜索者可以将自己的公钥分发给一个或多个数据提供者,从而数据搜索者可以在服务器上搜索自己或者其他数据提供者存储的数据。例如“一种新型高效的分布式可搜索非对称加密方案研究”(殷守林,沈阳师范大学硕士学位论文)介绍了kr-peks方案。
8.根据以上说明可知,当前可搜索加密方案部署于服务器端,例如在云计算或边缘计算系统中,将可搜索加密技术方案部署于云端或者边缘设备端。然而,由服务器来执行可搜索加密方案,一方面会增加服务器的负担;另一方面服务器在执行可搜索加密过程时,需将已存储的密文从存储设备读出或者将密文写入存储设备,当存储设备中存储的密文数据量较大时,存储设备读出密文会消耗较长的时间,进而影响搜索的效率。
9.本技术将可搜索加密技术方案部署在存储设备(例如ssd)中,由存储设备来执行加密搜索的过程,一方面,可以将服务器从加密搜索的工作中解脱出来,缓解了服务器的压力。另一方面,由存储设备内部来执行该搜索过程,只需要从存储介质中读出密文,即只需要通过存储设备内部数据传输链路来传输密文,而存储设备内部的数据传输链路会明显短
于存储设备与服务器之间的数据传输链路,从而降低了读取密文的时间,提高了搜索的效率;又一方面,本技术中还针对基于kr-peks方案,存储了搜索过程所用到的第一散列函数值,当进行搜索时,存储设备直接可以读出第一散列函数值,而不需要进行计算,从而提高了搜索速度。还一方面,由于存储设备控制器(如ssd控制器)具有自己的“物理指纹”,而且未授权方无法在不破坏存储设备控制器的情况下获取这个指纹信息,因此提高了可搜索加密方案的安全性。
10.根据本技术的第一方面,提供了根据本技术第一方面的第一用于加密数据存储的方法,应用于存储设备,响应于接收到密文(cw)以及其对应的加密文件,将所述密文(cw)及其对应的加密文件进行存储,其中所述密文(cw)包括客户端根据公钥(pk) 对关键词(w)进行加密所生成的第一数(u1)、第二数(u2)、第三数(e)和第四数(vw)。
11.根据本技术的第一方面的第一用于加密数据存储的方法,提供了根据本技术第一方面的第二用于加密数据存储的方法,还包括:响应于接收到与所述密文(cw)对应的第一散列函数值(α),存储所述密文(cw)与所述第一散列函数值(α)之间的对应关系,其中所述第一散列函数值(α)为根据第一散列函数(h)对所述密文(cw) 的第一数(u1)、第二数(u2)和第三数(e)进行运算得到。
12.根据本技术的第一方面的第二用于加密数据存储的方法,提供了根据本技术第一方面的第三用于加密数据存储的方法,响应于未接收到与所述密文(cw)对应的第一散列函数值(α),根据所述密文(cw)的第一数(u1)、第二数(u2)和第三数(e) 进行运算得到所述第一散列函数值(α),并且存储所述密文(cw)与所述第一散列函数值(α)之间的对应关系。
13.根据本技术的第一方面的第二或第三用于加密数据存储的方法,提供了根据本技术第一方面的第四用于加密数据存储的方法,其中,所述存储设备为kv存储设备;存储所述密文(cw)与所述第一散列函数值(α)之间的对应关系,包括:将所述密文(cw)中的第一数(u1)、第二数(u2)和第三数(e)作为关键字,将所述第一散列函数值(α)作为键值,以《关键字,键值》的形式存储于kv存储设备中。
14.根据本技术的第一方面的第一至第四任一项所述的用于加密数据存储的方法,提供了根据本技术第一方面的第五用于加密数据存储的方法,其中,所述存储设备包括一个或多个存储空间;所述方法还包括:将一个或多个客户端所发送的采用相同公钥加密所得到的密文(cw)存储于同一存储空间;以及将采用不同公钥加密所得到的密文 (cw)分别存储于不同的所述存储空间。
15.根据本技术的第一方面的第五用于加密数据存储的方法,提供了根据本技术第一方面的第六用于加密数据存储的方法,还包括:响应于接收到第一类客户端所发送的第一密文以及第二类客户端所发送的第二密文,将所述第一密文和所述第二密文存储于第一存储空间,其中,所述第一密文和所述第二密文均为采用第一公钥对所述关键词(w)进行加密所得到的,所述第一类客户端具有对关键词(w)进行加密得到密文(cw)以及陷门(tw

)的公钥和私钥对,所述第二类客户端仅具有对关键词(w) 进行加密得到密文(cw)的一个或多个公钥。
16.根据本技术的第一方面的第六用于加密数据存储的方法,提供了根据本技术第一方面的第七用于加密数据存储的方法,还包括:响应于接收到第一类客户端所发送的第三密文以及第二类客户端所发送的第四密文,将所述第三密文和所述第四密文存储于第二存
储空间,其中,所述第三密文和所述第四密文均为采用第二公钥对所述关键词(w)进行加密所得到的,且所述第二公钥和所述第一公钥不同,所述第一存储空间与第二存储空间为所述存储设备中不同的存储空间。
17.根据本技术的第一方面的第七用于加密数据存储的方法,提供了根据本技术第一方面的第八用于加密数据存储的方法,响应于接收到来自于同一第二类客户端所发送的第五密文和第六密文,其中,所述第五密文和所述第六密文为采用不同公钥加密所得到,则将所述第五密文和所述第六密文存储于不同的存储空间。
18.根据本技术的第二方面,提供了根据本技术第二方面的第一用于加密数据搜索的方法,应用于存储设备,响应于接收到陷门(tw

),读取所存储的一个或多个密文 (cw),其中,所述陷门(tw

)是第一类客户端根据私钥对待检索的关键词(w
ꢀ′
)进行加密所生成,其中,所述第一类客户端具有对关键词(w)进行加密得到密文(cw)以及陷门(tw

)的公钥和私钥对;以及确定所述一个或多个密文(cw) 中与所述陷门(tw

)匹配的第一密文,将所述第一密文对应的第一加密文件提供给主机。
19.根据本技术的第二方面的第一用于加密数据搜索的方法,提供了根据本技术第二方面的第二用于加密数据搜索的方法,还包括:响应于存储了每个密文(cw)对应的第一散列函数值(α),读取所述第一散列函数值(α);响应于未存储所述每个密文 (cw)对应的第一散列函数值(α),根据第一散列函数(h)对所述密文(cw)的第一数(u1)、第二数(u2)和第三数(e)进行运算以得到所述第一散列函数值(α)。
20.根据本技术的第二方面的第二用于加密数据搜索的方法,提供了根据本技术第二方面的第三用于加密数据搜索的方法,确定所述一个或多个密文(cw)中与所述陷门 (tw

)匹配的第一密文,包括:根据所述陷门、任一密文以及所述任一密文所对应的第一散列函数值计算得到计算结果;判断所述计算结果与所述任一密文中的第四数是否相等;若不相等,则重新对下一密文进行判断,直到所有密文判断完成为止;若相等,则判断所述任一密文是否与所述陷门匹配;若匹配,则所述任一密文为所述第一密文;否则,重新对下一密文进行判断,直到所有密文判断完成为止。
21.根据本技术的第二方面的第三用于加密数据搜索的方法,提供了根据本技术第二方面的第四用于加密数据搜索的方法,所述陷门(tw

)包括:分别根据第一随机多项式、第二随机多项式、第三随机多项式以及第四随机多项式、第五随机多项式和第六随机多项式对待检索的关键词(w

)进行运算得到的第一随机结果(f1(w

))、第二随机结果(f2(w

))、第三随机结果(h1(w

))以及第四随机结果(h2(w

))、第五随机结果(p1(w

))和第六随机结果(p2(w

));根据所述陷门、任一密文以及所述任一密文所对应的第一散列函数值计算得到计算结果,包括:以所述任一密文中的第一数(u1)为底数,以第三随机结果与第一散列函数值之积与第一随机结果之和为指数,计算得到第一幂;以第二数(u2)为底数,以第四随机结果与第一散列函数值之积与第二随机结果之和为指数,计算得到第二幂;将所述第一幂和第二幂的乘积作为所述计算结果。
22.根据本技术的第二方面的第四用于加密数据搜索的方法,提供了根据本技术第二方面的第五用于加密数据搜索的方法,判断所述任一密文是否与所述陷门匹配,包括:以所述任一密文中的第一数(u1)为底数,以第五随机结果为指数,计算得到第三幂;以第二数(u2)为底数,以第六随机结果为指数,计算得到第四幂;计算第三幂和第四幂乘积的第二散
列函数值(h

(s));将所述第三数(e)与第二散列函数值(h

(s)) 进行异或得到异或结果;响应于所述异或结果为零(0k),则确定所述任一密文与所述陷门匹配。
23.根据本技术的第二方面的第一至第五任一项所述的用于加密数据搜索的方法,提供了根据本技术第二方面的第六用于加密数据搜索的方法,读取所存储的一个或多个密文(cw),包括:响应于接收到所述陷门(tw

),确定发送所述陷门的第一类客户端能够访问的存储设备中一个或多个存储空间;从所述一个或多个存储空间中读取所述一个或多个密文。
24.根据本技术的第二方面的第六用于加密数据搜索的方法,提供了根据本技术第二方面的第七用于加密数据搜索的方法,确定发送所述陷门的第一类客户端能够访问的一个或多个存储空间,包括:响应于存储设备将采用相同公钥进行加密的所得到的密文存储于同一存储空间,将采用不同公钥进行加密所得到的密文存储于不同存储空间,确定采用所述第一类客户端所对应的公钥对关键词进行加密所得到的密文的存储空间,该存储空间为发送所述陷门的第一类客户端能够访问的存储空间。
25.根据本技术的第二方面的第六用于加密数据搜索的方法,提供了根据本技术第二方面的第八用于加密数据搜索的方法,确定发送所述陷门的第一类客户端能够访问的一个或多个存储空间,包括:响应于存储设备为每个客户端分配一个存储空间,确定所述第一类客户端所对应的第一存储空间,以及确定采用所述第一类客户端所对应的公钥对关键词进行加密得到密文的一个或多个第二类客户端所对应的第二存储空间,所述第一存储空间和一个或多个第二存储空间为发送所述陷门的第一类客户端能够访问的存储空间,其中,所述第二类客户端仅具有对关键词进行加密得到密文的一个或多个公钥。
26.根据本技术的第二方面的第一至第八任一项所述的用于加密数据搜索的方法,提供了根据本技术第二方面的第九用于加密数据搜索的方法,响应于接收到多个陷门,并行地执行搜索过程以返回每个陷门对应的一个或多个加密文件。
27.根据本技术的第二方面的第九用于加密数据搜索的方法,提供了根据本技术第二方面的第十用于加密数据搜索的方法,还包括:所述各个陷门对应的一个或多个加密文件相同或者部分相同。
28.根据本技术的第三方面,提供了根据本技术第三方面的第一存储控制器,所述存储控制器用于实现本技术第一方面第一至第八任一项所述的用于加密数据存储的方法,和/或本技术第二方面第一至第十任一项所述的用于加密数据搜索的方法。
29.根据本技术的第三方面的第一存储控制器,提供了根据本技术第三方面的第二存储控制器,所述存储控制器包括主机命令处理单元,存储命令处理单元和加速器,所述加速器用于实现所述用于加密数据存储的方法,和/或所述用于加密数据搜索的方法。
30.根据本技术的第四方面,提供了根据本技术第四方面的一种加速器,用于存储控制器,所述加速器用于实现本技术第一方面第一至第八任一项所述的用于加密数据存储的方法,和/或本技术第二方面第一至第十任一项所述的用于加密数据搜索的方法。
31.根据本技术的第五方面,提供了根据本技术第五方面的第一存储设备,包括存储介质和本技术第三方面第一至第二任一项所述的存储控制器。
32.根据本技术的第五方面的第一存储设备,提供了根据本技术第五方面的第二存储设备,所述存储设备为kv存储设备。
附图说明
33.通过参考附图阅读下文的详细描述,本技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本技术的若干实施方式,并且相同或对应的标号表示相同或对应的部分(涉及步骤的附图中,s表示步骤),其中:
34.图1为现有技术的固态存储设备的框图;
35.图2为根据本技术实施例的可搜索加密方法的示意图;
36.图3为根据本技术实施例的用于加密数据存储的方法流程图;
37.图4为根据本技术实施例的基于kr-peks方案的加密数据存储方法示意图;
38.图5为根据本技术实施例的根据公钥提供分配存储空间的示意图;
39.图6为根据本技术实施例的根据客户端分配存储空间示意图;
40.图7为根据本技术实施例的用于加密数据搜索的方法流程图;
41.图8为根据本技术实施例的基于kr-peks方案的加密数据搜索方法示意图;
42.图9为根据本技术实施例的并行处理方式的示意图。
具体实施方式
43.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
44.如图2展示了根据本技术实施例的可搜索加密方法的示意图。此处存储设备可以是如图1所示的存储设备102;客户端与存储设备之间可以通过网络连接,例如客户端部署于一个网络终端上,网络终端与服务器通信连接,服务器通过相应的接口与所述存储设备的接口103连接。客户端包括客户端a和客户端b,客户端a和客户端b 是不同的客户端。
45.步骤1,客户端b对文件进行加密得到加密文件,根据公钥对文件中的关键词进行加密得到密文,然后将密文和加密文件通过服务器提供给存储设备。
46.步骤2,存储设备接收密文和加密文件,将密文和加密文件存储于存储介质中。
47.步骤3,客户端a或者客户端b利用关键词进行查询,包括:使用密钥生成查询关键词的陷门tw,通过服务器将陷门tw发送到存储设备。
48.步骤4,存储设备以陷门为输入,执行搜索算法,返回包含该陷门对应关键词的加密文件。
49.步骤5,客户端a或者客户端b通过服务器获取返回的加密文件,利用密钥进行解密,得到明文文件。
50.根据图2所示的方法,搜索计算部署于存储设备内部,服务器和网络仅仅作为用户与存储设备之间的通路,即使用户不信任服务器和网络,仍然可以利用服务器和网络来实现用户与存储设备的互通。
51.作为举例,在一种情况下,步骤3和步骤5中的客户端为客户端a,即在图2中客户端b用于向存储设备提供数据,是数据提供者,客户端a用于在存储设备上进行搜索,是数据搜索者,也就是说,数据提供者和数据搜索者为不同客户端;则客户端 a具有对关键词(w)进
行加密得到密文(cw)的公钥以及对关键词(w)进行加密得到陷门(tw)的私钥,即客户端a既可作为数据提供者向存储设备提供密文(cw),也可作为数据搜索者向存储设备提供陷门(tw);而客户端b则仅具有对关键词(w) 进行加密得到密文(cw)的公钥,而不具有对关键词(w)进行加密得到陷门(tw) 的私钥,因此客户端b只能作为数据提供者向存储设备提供密文(cw),而不能作为数据搜索者向存储设备提供陷门(tw)。
52.在又一种情况下,步骤3和步骤5中的客户端为客户端b,即在图2中,客户端 b可用于向存储设备提供数据,是数据提供者;客户端b也可以在存储设备上进行搜索。也就是说,数据提供者和数据搜索者可以是同一个客户端,则客户端b具有对关键词(w)进行加密得到密文(cw)的公钥以及对关键词(w)进行加密得到陷门(tw) 的私钥。
53.进一步地,在一些应用场景中,还存在多个数据提供者和一个数据搜索者的情况 (多对一的情况),或者多个数据提供者和多个数据搜索者的情况(多对多的情况),本技术的方法能够适用于各种应用场景。下面首先对加密数据存储和加密数据搜索的方法进行介绍,再结合具体技术方案对各种应用场景进行说明。
54.本技术实施例的技术方案基于kr-peks方案。为了便于理解,在对基于kr-peks 方案的可搜索加密方案进行讲解之前,首先对所采用的标注符号进行说明。作为举例, di(i=1,2,3
……
n,n≥1),表示一个明文文件,file-i(i=1,2,3
……
n)表示对应的加密文件,wi(i=1,2,3
……
n)表示对应的关键词。对于加密存储过程中所涉及的关键词采用不带序号的w(如图4中)表示或wi表示(如下表1中),关键词w对应的密文采用cw表示。对于搜索过程中,待搜索的关键词采用w

表示,陷门采用tw

表示。其他标注符号可以参考“一种新型高效的分布式可搜索非对称加密方案研究”(殷守林,沈阳师范大学硕士学位论文)中披露的kr-peks方案。
55.图3展示了根据本技术实施例的用于加密数据存储的方法流程图。其中包括步骤 21和步骤22,步骤21和步骤22可以理解为图2中步骤2的具体步骤。
56.步骤21,存储设备接收到密文cw以及其对应的加密文件;
57.步骤22,将接收到的所述密文cw及其对应的加密文件进行存储,其中所述密文 cw包括客户端根据公钥pk对关键词w进行加密所生成的第一数u1、第二数u2、第三数e和第四数vw。
58.作为举例,图4展示了根据本技术实施例的基于kr-peks方案的加密数据存储方法示意图。其中包括存储设备实施的步骤22至步骤24。
59.首先,客户端提取明文文件di中一个或多个关键词wi。在客户端,对于明文文件di,可以提取对应的关键词wi,而且一个明文文件di可能有一个关键词,也可能有多个关键词。表1给出了一个例子。
60.表1
61.关键词明文文件w1d1,d2,d3w2d2,d3w3d3,d4,d5,d6w4d1
62.如表1所示,表1中包括两列,第一列为关键词,第二列为关键词所对应的明文文
件。其中关键词w1对应明文文件d1,d2和d3,关键词w2对应明文文件d2和d3,关键词w3对应明文文件d3,d4,d5和d6,关键词w4对应明文文件d1。表 1的例子表明,一个关键词可以对应一个明文文件,也可以对应多个明文文件,换言之,有些明文文件仅具有一个关键词,而另一些明文文件具有多个关键词;不同的明文文件,所对应的关键词可以不同,也可以相同,还可以部分相同。
63.进一步地,客户端在提取关键词wi之后,对提取的关键词wi进行加密;基于 kr-peks方案对关键词wi进行加密包括:客户端根据关键词wi和公钥pk,生成密文cw,表示为cw=(u1,u2,e,vw)。具体地生成密文的方法可以参考kr-peks方案,在此不进行赘述。客户端将生成的密文cw发送到服务器,服务器将密文cw存储到存储设备。其中,客户端对于提取出的每一个关键词均生成相应的密文,并且发送到服务器,由服务器存储于存储设备,因此存储设备会接收到所有关键词的密文。
64.另外,客户端还会对明文文件di进行加密,得到加密文件file-i,并且将加密文件file-i与密文cw一起发送到存储设备,基于此,存储设备可以记录加密文件file-i 与密文cw的映射关系,进而在加密数据搜索时根据该映射关系返回搜索到的密文所对应的加密文件。
65.如图4所示(图4中未示出对加密文件的存储过程),存储设备响应于接收到密文cw和对应的加密文件,执行步骤22(步骤22即为图3中的步骤22),将密文cw 和对应的加密文件存储到存储介质中。例如可以以块存储的方式存储密文cw和加密文件。作为举例,密文cw和对应的加密文件以块存储的方式对应存储在存储设备的存储器(如nvm芯片或者dram)中。
66.根据kr-peks方案,在加密数据搜索过程中,还会用到密文cw对应的第一散列函数值α,为了避免在搜索过程中进行计算以提高搜索速度,可以在加密存储的过程中生成第一散列函数值α并且进行存储。作为举例,如图4所示,在存储密文cw和加密文件时,还执行步骤23,根据每个密文cw计算出对应的第一散列函数值α,即存储设备根据每个密文cw中的第一数u1、第二数u2和第三数e计算出对应的第一散列函数值α,可以表示为α=h(u1,u2,e),并且将每个密文cw和第一散列函数值α的对应关系存储起来。所述密文cw和第一散列函数值α的对应关系可以理解为,例如:《 cw1,α1》,《cw2,α2》,《cw3,α3》(其中,cw1,cw2和cw3表示三个不同的密文,α1,α2和α3表示对应的第一散列函数值)。也就是说,第一散列函数值α与密文cw具有一一对应的关系,需要将第一散列函数值α与密文cw之间的对应关系(这种对应关系包含了密文cw和第一散列函数值α本身)存储起来。本实施例中,仅存储了密文 cw的部分参数,即(u1,u2,e),而不是全部的参数。
67.作为举例,存储设备为kv存储设备;第一散列函数值α与密文cw之间的对应关系表示为《(u1,u2,e),α》,可以将其以《关键字(key),键值(value)》的形式存储于kv 存储设备中,其中将所述(u1,u2,e)作为关键字,将所述第一散列函数值α作为键值。kv 存储设备具有查询速度快、存放数据量大和支持高并发的特点,能够进一步提高搜索的效率。
68.又作为举例,除了在存储设备中计算第一散列函数值α,如图4所示,还可以由客户端根据第一散列函数h和密文cw计算出对应的第一散列函数值α。客户端将密文cw、对应的加密文件和对应的第一散列函数值α一起发送到服务器,由服务器转发到存储设备,响应于接收到密文cw、对应的加密文件和对应的第一散列函数值α后,存储设备将密文cw和对应的
加密文件以块存储形式存储到存储介质中,存储设备还执行步骤24,将《(u1,u2,e),α》存储于kv存储设备。在其他实施例中,也可以将(u1,u2,e) 和α以块存储形式进行存储,并且同时记录(u1,u2,e)和α的对应关系。
69.还作为举例,存储设备还可以不执行步骤23和步骤24,即仅存储加密文件和密文cw。
70.如图4所示的客户端包括两类,一类是不仅可作为数据提供者,还可作为数据搜索者的客户端,该客户端可以生成公钥和私钥对,为了方便表述,将该类客户端称之为第一类客户端,另一类是不能生成公钥和私钥对的客户端,其只能从其他客户端(如第一类客户端)接收公钥,将该类客户端称之为第二类客户端。其中,第一类客户端和第二类客户端具有如下特点:
71.1,第一类客户端可以是数据提供者,也可以是数据搜索者,而第二类客户端只能是数据提供者。也就是说,只有掌握私钥的客户端,才能够控制加密数据搜索。2,第一类客户端和第二类客户端连接到同一网络,共用同一服务器(或服务器集群)。 3,第一类客户端可以有一个,也可以有多个,即整个网络中可能会存在多对公钥私钥对。但是每个第一类客户端仅能搜索对应公钥加密的关键词,不能搜索由其他公钥加密的关键词。例如第一类客户端1产生公钥pk1和私钥sk1,第一类客户端2产生公钥pk2和私钥sk2,那么第一类客户端1只能搜索被公钥pk1加密的关键词,而不能搜索被公钥pk2加密的关键词。同理,第一类客户端2只能搜索被公钥pk2加密的关键词,而不能搜索被公钥pk1加密的关键词。4,每个第二类客户端可以通过不同公钥对关键词进行加密,以用于不同的第一类客户端的搜索。例如,某个第二类客户端具有公钥pk1和pk2,则该第二类客户端可以通过公钥pk1对关键词进行加密,从而使第一类客户端1能够进行搜索,或者该第二类客户端可以通过公钥pk2对关键词进行加密,从而使第一类客户端2能够进行搜索。作为举例,上文中所述的多对一的情况即是指同一网络或共用同一服务器中包含一个第一类客户端和多个第二类客户端,且每个第二类客户端均可通过该第一类客户端所生成的公钥对关键词进行加密得到密文;上文中所述的多对多的情况即是指同一网络或共用同一服务器中包含多个第一类客户端和多个第二类客户端,每个第一类客户端可生成一对公钥和私钥对,而每个第二类客户端可包含部分或全部第一类客户端的公钥,并可通过不同的公钥分别对加密关键词进行加密存储。
72.作为举例,可以在存储设备中设置多个存储空间,例如,在存储设备中设置多个命名空间(name space,ns)或者多个磁盘。存储设备在对密文进行存储时,可以基于公钥或者客户端对密文进行分区存储,即将不同公钥加密的密文或者不同客户端的密文可以存储在不同的存储空间,一方面,能够实现数据隔离,提高数据安全性。另一方面,可以在搜索过程中不必遍历全部数据,只需要读取相应存储空间的数据即可,从而可以减少数据搜索量,提升搜索速度。
73.为了实现上述技术效果,作为举例,存储设备可以包括一个或多个存储空间;将一个或多个客户端所发送的采用相同公钥加密所得到的密文cw存储于同一存储空间,将采用不同公钥加密所得到的密文cw分别存储于不同的存储空间。
74.图5展示了本技术的根据公钥分配不同存储空间的例子。其中存储设备具有两个不同的存储空间,即存储空间1和存储空间2。如图5所示,客户端1发送的密文cw1,客户端3发送的密文cw3、客户端4发送的密文cw4和客户端6发送的密文cw6采用相同的第一公钥pk1
进行加密,因此将采用第一公钥pk1进行加密的密文cw1、cw3 和cw4、cw6存储于同一存储空间,即存储空间1。而客户端2、客户端5以及客户端6发送的密文cw2、cw5和cw7采用不同于第一公钥pk1的第二公钥pk2进行加密,因此将客户端2、客户端5和客户端6发送的密文cw2、cw5和cw7存储于另一个存储空间,即存储空间2。也就是说,存储空间1用于存储通过第一公钥pk1进行加密的密文,存储空间2用于存储通过第二公钥pk2进行加密的密文。
75.如图5所示,存储于同一存储空间的密文可以来自于第一类客户端,也可以来自于第二类客户端。例如,客户端1为第一类客户端,客户端3和客户端4为第二类客户端,即客户端1具有第一公钥和私钥对(pk1,sk1),而客户端3、客户端4和客户端6拥有与客户端1相同的第一公钥pk1(例如,由客户端1将第一公钥pk1分发给客户端3、客户端4和客户端6),因此客户端1发送的密文cw1,客户端3发送的密文cw3、客户端4发送的密文cw4和客户端6发送的密文cw6均存储于存储空间1,即存储空间1存储的密文既可以来自于第一类客户端,也可以来自于第二类客户端。同理,存储空间2存储的密文既可以来自于第一类客户端(如客户端2),也可以来自于第二类客户端(如客户端5和客户端6)。也就是说,存储设备响应于接收到密文,根据密文所采用公钥的不同,为密文分配不同的存储空间。
76.进一步地,同一第二类客户端可以具有多个公钥,那么对于同一第二类客户端发送的密文,也可以根据所采用公钥的不同而分配不同的存储空间。如图5所示,客户端6为第二类客户端,其既具有第一公钥pk1,也具有第二公钥pk2(例如,客户端6 既从客户端1获得第一公钥pk1,还从客户端2获得第二公钥pk2)。客户端6产生两种密文,一种密文为采用第一公钥pk1进行加密得到的密文cw6,另一种密文为采用第二公钥pk2进行加密得到的密文cw7。存储设备响应于接收到密文cw6,则将其存储于存储空间1;存储设备响应于接收到密文cw7,则将其存储于存储空间2。
77.图6展示了本技术的根据客户端分配存储空间的例子。其中包括客户端1至客户端6,存储设备具有存储空间1至存储空间6,存储设备为每个客户端分配一个存储空间,例如客户端1对应于存储空间1,客户端2对应于存储空间2,客户端3对应于存储空间3
……
客户端6对应于存储空间6。每个存储空间用于存储对应客户端发送的密文,例如存储空间1存储客户端1发送的密文,存储空间2存储客户端2发送的密文
……
存储空间6存储客户端6发送的密文。本实施例中,一个存储空间中可以存储采用相同公钥加密的密文,例如存储空间1、存储空间3和存储空间3存储通过第一公钥pk1进行加密的密文,存储空间2和存储空间5存储通过第二公钥pk2进行加密的密文。一个存储空间还可以存储采用不同公钥进行加密的密文,例如客户端6 能够发送根据第一公钥pk1进行加密的密文,也可以发送根据第二公钥pk2进行加密的密文,因此,存储空间6可以存储根据第一公钥pk1进行加密的密文,也可以存储根据第二公钥pk2进行加密的密文。进一步地,存储设备可以为每个客户端分配一个存储空间,还可以为多个客户端分配同一存储空间,例如两到三个客户端共用同一存储空间。
78.以上介绍了基于kr-peks方案的加密数据存储的方法,下面介绍基于kr-peks 方案的加密数据搜索的方法。
79.图7展示了根据本技术实施例的用于加密数据搜索的方法流程图。其中包括步骤 41至步骤43,步骤41至步骤43可以理解为图2中步骤4的具体步骤。
80.步骤41,接收陷门tw

,其中,所述陷门tw

是第一类客户端根据私钥对待检索的关键词w

进行加密所生成。根据上文的说明,第一类客户端具有公钥私钥对,也就是说,第一
类客户端能够利用公钥对关键词w进行加密得到密文cw,还能够利用私钥对待搜索关键词w

进行加密生成陷门tw

,即只有具有私钥的第一类客户端才具有搜索能力。上文所述的第二类客户端不具有私钥,无法生成陷门,因此不具备搜索能力。
81.步骤42,响应于接收到陷门tw

,读取所存储的一个或多个密文cw,
82.步骤43,确定所述一个或多个密文cw中与所述陷门tw

匹配的第一密文,将所述第一密文对应的第一加密文件提供给主机。
83.作为举例,图8展示了根据本技术实施例的基于kr-peks方案的加密数据搜索方法示意图,其中包括存储设备执行的步骤81至步骤85。
84.如图8所示,为了搜索关键词w

,客户端(如第一类客户端)根据待搜索的关键词w

和私钥sk进行加密得到陷门tw

。根据kr-peks方案,陷门tw

=《f1(w), f2(w),h1(w),h2(w),p1(w),p2(w)》。其中f1(
·
),f2(
·
),h1(
·
),h2(
·
),p1(
·
),p2(
·
)分别为第一随机多项式、第二随机多项式、第三随机多项式以及第四随机多项式、第五随机多项式和第六随机多项式。
85.陷门tw

生成后,客户端将陷门tw

发送到服务器,由服务器转发给存储设备。存储设备执行步骤81,读取所存储的密文cw。
86.在步骤81中,若在加密存储过程中,存储设备未存储每个密文cw所对应的第一散列函数值α,则还需要在读取每个密文cw后,根据密文cw的(u1,u2,e)来计算第一散列函数值α,第一散列函数值α=h(u1,u2,e)。
87.若在加密存储过程中,存储设备计算并且存储了每个密文cw所对应的第一散列函数值α,如存储设备通过上文的步骤23来进行存储,或者从服务器接收由客户端计算得到的第一散列函数值α(如上文的步骤24),则执行步骤82,直接读取每个密文 cw对应的第一散列函数值α。例如,响应于通过kv存储设备来存储第一散列函数值α与密文cw之间的对应关系(表示为kv=《(u1,u2,e),α》),则根据每个密文cw的 (u1,u2,e)查找kv中的关键字,将与之匹配的键值读出作为该密文cw对应的第一散列函数值α。通过存储第一散列函数值α与密文cw之间的对应关系,使得在搜索的过程中,不需要对第一散列函数值α进行计算,从而减少了存储设备的计算量,提高了搜索的速度。
88.响应于读取了一个或多个密文cw和对应的第一散列函数值α,执行步骤83,根据所述陷门tw

、任一密文cw以及所述任一密文cw所对应的第一散列函数值α计算得到计算结果,判断所述计算结果与所述任一密文cw中的第四数vw是否相等。
89.计算方式如下:分别根据第一随机多项式、第二随机多项式、第三随机多项式以及第四随机多项式、第五随机多项式和第六随机多项式对待检索的关键词w

进行运算得到的第一随机结果f1(w

)、第二随机结果f2(w

)、第三随机结果h1(w

)以及第四随机结果h2(w

)、第五随机结果p1(w

)和第六随机结果p2(w

);以所述任一密文中cw的第一数u1为底数,以第三随机结果h1(w

)与第一散列函数值α之积与第一随机结果f1(w

) 之和为指数,计算得到第一幂;以第二数u2为底数,以第四随机结果h2(w

)与第一散列函数值α之积与第二随机结果f2(w

)之和为指数,计算得到第二幂;将所述第一幂和第二幂的乘积作为所述计算结果;进而判断密文cw的第四数vw是否不等于所述计算结果。
90.即对于任一密文cw,判断下式是否成立:
[0091][0092]
若成立,则重新对下一密文进行判断,直到所有密文判断完成为止;若不成立,则执行步骤84,判断对应的密文cw是否与陷门tw

匹配。若匹配,则当前密文cw (上文中任一密文)为所述第一密文;否则,跳转到步骤83,重新对下一密文进行判断,直到所有密文判断完成为止。
[0093]
其中,判断密文cw是否与所述陷门tw

匹配,包括:以密文中的第一数u1为底数,以第五随机结果p1(w

)为指数,计算得到第三幂;以第二数u2为底数,以第六随机结果p2(w

)为指数,计算得到第四幂;计算第三幂和第四幂乘积(可以表示为的第二散列函数值h

(s);其中h

(
·
)为第二散列函数。将密文cw的第三数e与第二散列函数值h

(s)进行异或得到异或结果(表示为e xorh

(s));响应于所述异或结果为0k,则确定该密文cw与所述陷门tw

匹配。
[0094]
如图8所示,响应于找到了与陷门tw

匹配的第一密文,执行步骤85,将第一密文对应的第一加密文件提供给服务器,服务器再将第一加密文件转发给客户端,从而完成了一次搜索操作。第一加密文件可以是一个加密文件,也可以是多个加密文件。应理解,在存储设备中还存储着密文cw与加密文件之间的对应关系,故存储设备在确定出第一密文之后,即可根据第一密文找到其对应的一个或多个加密文件。
[0095]
在步骤81中,可以一次性地将存储的所有密文cw全部读出,也可以分批次地读出密文cw,每次读取预定的数量,例如每次读取100个密文cw,然后执行步骤83 和步骤84的计算判断操作,以判断读取的密文cw中是否有待搜索的关键词w

匹配的第一密文。由于存储的密文cw数量可能较为庞大,一般情况下,这种方式能够有效地减少数据读取和计算的开销。
[0096]
在步骤81中,在读取所存储的一个或多个密文cw时,可以根据发送所述陷门tw

的客户端能够访问的存储设备的一个或多个存储空间;从所述一个或多个存储空间中读取所述一个或多个密文cw。根据发送陷门tw

的客户端来确定对应的存储空间,可以减少读取操作和计算操作的开销,提升搜索的效率。
[0097]
作为举例,根据发送陷门tw

的客户端来确定对应的存储空间,包括两种情况:第一种情况,存储设备通过公钥来分配存储空间,将采用不同公钥进行加密得到的密文存储于不同的存储空间,进而存储设备根据发送陷门tw

的客户端的公钥确定对应的存储空间,将该存储空间确定为该客户端能够访问的存储空间。
[0098]
参看图5,客户端1和客户端2属于第一类客户端,能够发送陷门。若当前的搜索任务的陷门是由客户端1发送的,由于客户端1使用第一公钥pk1,而客户端1、客户端3,客户端4均使用第一公钥pk1进行加密得到密文,并且将密文存储于存储空间1,因此,存储空间1是第一公钥pk1对应的存储空间,那么客户端1所能够访问的存储空间即为存储空间1。存储设备在接收到客户端1的陷门时,仅从存储空间 1中读取密文即可。
[0099]
同理,若当前的搜索任务的陷门是客户端2发送的,由于客户端2使用第二公钥 pk2,而第二公钥pk2对应的存储空间为存储空间2,那么客户端2所能够访问的存储空间即为存储空间2。存储设备在接收到客户端2的陷门时,仅从存储空间2中读取密文即可。
[0100]
第二种情况,存储设备按照客户端来分配存储空间,因此,对客户端所发送的陷门
进行搜索时,可搜索发送陷门的客户端所对应的存储空间,也可搜索采用该客户端的公钥进行加密的其他客户端(第二类客户端)所对应的存储空间。
[0101]
如图6所示,存储设备按照客户端来分配存储空间,每个客户端对应一个存储空间。若当前搜索任务的陷门为客户端1发送的,那么存储设备可以在客户端1对应的存储空间1中读取密文,还可以在采用客户端1的第一公钥pk1的第二类客户端对应的存储空间中读取密文,采用第一公钥pk1的第二类客户端包括客户端3、客户端4 和客户端6,客户端3、客户端4和客户端6对应的存储空间为存储空间3、存储空间 4和存储空间6,即存储设备还可以在存储空间3、存储空间4和存储空间6中读取密文。
[0102]
同理,若当前搜索任务的陷门为客户端2发送的,那么存储设备可以在客户端2 对应的存储空间2中读取密文,还可以在采用客户端2的第二公钥pk2的第二类客户端对应的存储空间中读取密文,采用第二公钥pk2的第二类客户端包括客户端2、客户端5和客户端6,客户端2、客户端5和客户端6对应的存储空间为存储空间2、存储空间5和存储空间6,即存储设备还可以在存储空间2、存储空间5和存储空间6 中读取密文。其中,由于存储空间6既存储了根据第一公钥pk1加密得到的密文,还存储了根据第二公钥pk2加密得到的密文,因此在读取存储空间6的密文时,还应当根据发送陷门的客户端的公钥选取存储空间6中相应的密文。
[0103]
以上介绍了根据本技术的基于kr-peks方案的应用于存储设备的可搜索加密技术方案,根据图4和图8所述的方法,用于数据存储的客户端可以是掌握公钥私钥对的第一类客户端,也可以是掌握公钥的一个或多个第二类客户端,而用于数据搜索的客户端仅是第一类客户端。因此,本技术能够适用于多对一的应用场景。再者,由于第一类客户端可以有多个,而且不同的第一类客户端具有不同的公钥私钥对,因此,本技术还能够适用于多对多的应用场景。
[0104]
在一个实施例中,存储设备在与第一陷门关联的第一搜索请求处理完毕后,还可能会接收到与第二搜索请求关联的第二陷门,此时按照图8的步骤81至步骤85的方式对第二陷门进行响应即可。在另一个实施例中,若存储设备在响应第一陷门的过程中还接收到第二陷门甚至第三陷门,则需要并行接收并处理多个不同陷门,并执行搜索操作。其中,各个陷门对应的加密文件可能不同,可能相同,也可能部分相同。
[0105]
根据本技术的另一方面,本技术还提供了一种存储控制器,该存储控制器可以采用如图1所示的控制部件。在一个优选的实施例中,存储控制器除了包括主机命令处理单元和存储命令处理单元等部件,还包括一个加速器,该加速器用于实现图4所述方法中的步骤22至步骤24,和/或图8所述方法中的步骤81至步骤85。
[0106]
图9展示了存储控制器中各个部件的并行处理过程。其中涉及存储设备中的以键值kv形式存储数据的第一存储器、以块存形式存储数据的第二存储器、加速器和主机接口;第一存储器用于存储第一散列函数值α与密文cw之间的对应关系(《(u1,u2,e), α》);第二存储器用于存储所有的密文cw和加密文件;加速器用于从第一存储器中读取第一散列函数值α,从第二存储器中读取密文,并且对密文进行计算和判断;主机接口用于获取来自于主机的陷门,并且返回陷门所对应加密文件。其中t0至t5表示连续的多个工作周期。
[0107]
t0工作周期:第一存储器和第二存储器没有任务需要处理,处于等待状态;加速器也没有任务需要处理,处于空闲状态。主机接口接收第一陷门,为了容易分辩,此处将第一
陷门记为tw′1。
[0108]
t1工作周期:响应于接收到第一陷门tw′1,请求访问第一存储器和第二存储器,从第二存储器读取密文,从第一存储器读取所述密文对应的第一散列函数值。作为举例,在读出密文和第一散列函数值的同时,不需要等待读取出全部的密文和第一散列函数值,加速器即开始对读出的密文进行计算和判断操作。主机接口此时又接收到第二陷门和第三陷门,为了容易分辩,此处将第二陷门记为tw′2,将第三陷门记为tw′3。在t1工作周期,对第一陷门tw′1的处理尚未结束,又接收到新的陷门,因此出现并行处理不同陷门的情况。
[0109]
t2工作周期:作为举例,在t1工作周期,加速器未完成针对第一陷门tw′1的处理,即未找到与第一陷门tw′1匹配的密文,因此在t2工作周期,加速器仍在继续计算和判断操作。由于接收到第二陷门tw′2和第三陷门tw′3,因此请求访问第二存储器和第一存储器,从第二存储器读出密文,从第一存储器读出第一散列函数值。主机接口尚无任务需要处理,处于等待状态。
[0110]
t3工作周期:作为举例,在t2工作周期结束时,加速器完成了针对第一陷门tw′1的操作,找到了与之匹配的第一密文和第一加密文件,因此在t3工作周期,主机接口返回第一加密文件。同时,加速器开始针对第二陷门tw′2和第三陷门tw′3进行计算和判断操作。作为举例,在t2工作周期,第二存储器和第一存储器已经完成读取密文和第一散列函数值的操作,因此在t3工作周期,第二存储器和第一存储器处于等待状态。
[0111]
t4工作周期:第二存储器和第一存储器没有任务需要处理,处于等待状态。作为举例,在t3工作周期,加速器通过计算和判断确定了第三陷门tw′3对应的第三密文和第三加密文件,并且在t3工作周期,主机接口完成了对第一加密文件的处理,则在t4工作周期,主机接口返回第三陷门tw′3对应的第三加密文件。并且在t4工作周期内,加速器完成了针对第二陷门tw′2的操作,找到了与之对应的第二密文和第二加密文件,而此时由于主机接口正在返回第三加密文件,故而需要延迟处理第二加密文件。
[0112]
t5工作周期:第二存储器和第一存储器没有任务需要处理,处于等待状态。加速器没有任务需要处理,处于空闲状态。主机接口在完成返回第三陷门tw′3对应的第三加密文件的操作后,开始返回第二陷门tw′2对应的第二加密文件。
[0113]
根据图9所示的例子可知,第一存储器、第二存储器、加速器和主机接口可以并行地工作,以响应来多个搜索任务。需要说明的是,本技术实施例中的加速器可以通过硬件实现,例如加速器是一种实现相关计算和判断操作的硬件电路;也可以通过软件实现,例如加速器是一种运行计算机程序的处理芯片。
[0114]
根据本技术的又一方面,本技术还提供了一种加速器,该加速器用于实现图4所述方法中的步骤22至步骤24,以及图8所述方法中的步骤81至步骤85。上文已经详细介绍了加速器,因此不再赘述。
[0115]
根据本技术的再一方面,本技术还提供了一种存储设备,该存储设备的结构可以参看图1。在一个实施例中,存储设备包括接口、存储介质和存储控制器,该存储设备可以包括以块存储方式存储数据的存储器。在另一个实施例中,存储设备为kv存储设备,即该存储设备除了拥有以块存储的方式存储数据的存储器,还拥有以键值 kv方式存储数据的存储器,kv存储设备用于存储上述方法实施例中所述的第一散列函数值及其与密文的对应关系。
[0116]
应当理解,当本发明的权利要求、说明书及附图使用术语“第一”、“第二”、“第三”和“第四”等时,其仅是用于区别不同对象,而不是用于描述特定顺序。本发明的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0117]
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本发明。如在本发明说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本发明说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0118]
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0119]
虽然本发明的实施方式如上,但所述内容只是为便于理解本发明而采用的实施例,并非用以限定本发明的范围和应用场景。任何本发明所述技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

技术特征:
1.一种用于加密数据存储的方法,应用于存储设备,其特征在于,响应于接收到密文(cw)以及其对应的加密文件,将所述密文(cw)及其对应的加密文件进行存储,其中所述密文(cw)包括客户端根据公钥(pk)对关键词(w)进行加密所生成的第一数(u1)、第二数(u2)、第三数(e)和第四数(v
w
)。2.根据权利要求1所述的方法,其特征在于,还包括:响应于接收到与所述密文(cw)对应的第一散列函数值(α),存储所述密文(cw)与所述第一散列函数值(α)之间的对应关系,其中所述第一散列函数值(α)为根据第一散列函数(h)对所述密文(cw)的第一数(u1)、第二数(u2)和第三数(e)进行运算得到。3.根据权利要求2所述的方法,其特征在于,响应于未接收到与所述密文(cw)对应的第一散列函数值(α),根据所述密文(cw)的第一数(u1)、第二数(u2)和第三数(e)进行运算得到所述第一散列函数值(α),并且存储所述密文(cw)与所述第一散列函数值(α)之间的对应关系。4.根据权利要求1至3任一项所述的方法,其特征在于,其中,所述存储设备包括一个或多个存储空间;所述方法还包括:将一个或多个客户端所发送的采用相同公钥加密所得到的密文(cw)存储于同一存储空间;以及将采用不同公钥加密所得到的密文(cw)分别存储于不同的所述存储空间。5.一种用于加密数据搜索的方法,应用于存储设备,其特征在于,响应于接收到陷门(tw

),读取所存储的一个或多个密文(cw),其中,所述陷门(tw

)是第一类客户端根据私钥对待检索的关键词(w

)进行加密所生成,其中,所述第一类客户端具有对关键词(w)进行加密得到密文(cw)以及陷门(tw

)的公钥和私钥对;以及确定所述一个或多个密文(cw)中与所述陷门(tw

)匹配的第一密文,将所述第一密文对应的第一加密文件提供给主机。6.根据权利要求5所述的方法,其特征在于,还包括:响应于存储了每个密文(cw)对应的第一散列函数值(α),读取所述第一散列函数值(α);响应于未存储所述每个密文(cw)对应的第一散列函数值(α),根据第一散列函数(h)对所述密文(cw)的第一数(u1)、第二数(u2)和第三数(e)进行运算以得到所述第一散列函数值(α)。7.根据权利要求6所述的方法,其特征在于,确定所述一个或多个密文(cw)中与所述陷门(tw

)匹配的第一密文,包括:根据所述陷门、任一密文以及所述任一密文所对应的第一散列函数值计算得到计算结果;判断所述计算结果与所述任一密文中的第四数是否相等;若不相等,则重新对下一密文进行判断,直到所有密文判断完成为止;若相等,则判断所述任一密文是否与所述陷门匹配;若匹配,则所述任一密文为所述第一密文;否则,重新对下一密文进行判断,直到所有密文判断完成为止。8.根据权利要求6至7任一项所述的方法,其特征在于,读取所存储的一个或多个密文
(cw),包括:响应于接收到所述陷门(tw

),确定发送所述陷门的第一类客户端能够访问的存储设备中一个或多个存储空间;从所述一个或多个存储空间中读取所述一个或多个密文(cw)。9.根据权利要求8所述的方法,其特征在于,确定发送所述陷门的第一类客户端能够访问的一个或多个存储空间,包括:响应于存储设备将采用相同公钥进行加密的所得到的密文存储于同一存储空间,将采用不同公钥进行加密所得到的密文存储于不同存储空间,确定采用所述第一类客户端所对应的公钥对关键词进行加密所得到的密文的存储空间,该存储空间为发送所述陷门的第一类客户端能够访问的存储空间。10.一种存储控制器,其特征在于,所述存储控制器用于实现权利要求1至4任一项所述的用于加密数据存储的方法,和/或权利要求5至9任一项所述的用于加密数据搜索的方法。

技术总结
本申请涉及用于加密数据存储和搜索的方法及存储控制器,其中用于加密数据存储的方法包括:响应于接收到密文以及其对应的加密文件,将所述密文及其对应的加密文件进行存储,其中所述密文包括客户端根据公钥对关键词w进行加密所生成的第一数、第二数、第三数和第四数。用于加密数据搜索的方法包括响应于接收到陷门,读取所存储的一个或多个密文;确定所述一个或多个密文中与所述陷门匹配的第一密文,将所述第一密文对应的第一加密文件提供给主机。本申请的方法,能够在存储器中实现加密数据的存储和搜索,从而降低了主机的负担,提高搜索的效率和安全性,同时适用于多对一和多对多的应用场景。多的应用场景。多的应用场景。


技术研发人员:孙唐
受保护的技术使用者:上海忆芯实业有限公司
技术研发日:2021.12.31
技术公布日:2023/7/13
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐