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

文档序号:34656642发布日期:2023-07-04 20:25阅读:22来源:国知局
一种用于加密数据搜索的方法及存储控制器与流程

本技术一般地涉及固态存储器。更具体地,本技术涉及一种用于加密数据搜索的方法、存储控制器及相关产品。


背景技术:

1、图1展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如sata(serial advanced technology attachment,串行高级技术附件)、scsi(small computer system interface,小型计算机系统接口)、sas(serial attachedscsi,串行连接scsi)、ide(integrated drive electronics,集成驱动器电子)、usb(universal serial bus,通用串行总线)、pcie(peripheral component interconnectexpress,pcie,高速外围组件互联)、nvme(nvm express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102(下文中,将固态存储设备简称为存储设备)包括接口103、控制部件104、一个或多个nvm芯片105以及dram(dynamic randomaccess memory,动态随机访问存储器)110。

2、上述nvm芯片105包括nand闪存、相变存储器、feram(ferroelectric ram,铁电存储器)、mram(magnetic random access memory,磁阻存储器)、rram(resistive randomaccess memory,阻变存储器)等是常见的存储介质。

3、上述接口103可适配于通过例如sata、ide、usb、pcie、nvme、sas、以太网、光纤通道等方式与主机交换数据。

4、上述控制部件104用于控制在接口103、nvm芯片105以及dram 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是fpga(field-programmable gate array,现场可编程门阵列)、asic(application specificintegrated circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理io(input/output)命令。控制部件104还可以耦合到dram 110,并可访问dram 110的数据。在dram可存储ftl表和/或缓存的io命令的数据。

5、控制部件104以遵循nvm芯片105的接口协议的方式向nvm芯片105发出命令,以操作nvm芯片105,并接收从nvm芯片105输出的命令执行结果。已知的nvm芯片接口协议包括“toggle”、“onfi”等。

6、在存储技术中,上述固态存储设备被经常用于服务器中用于存储数据。用户端可以通过网络与服务器互联,以实现与服务器之间进行数据交互。例如,用户可以通过信任的计算存储传输方式将个人文件存放在可信的服务器的存储设备上,其中可信的服务器是指用户知道该服务器的身份并信任它;用户还可能通过零信任的计算存储传输方式将个人文件存放在不可信的服务器,其中不可信的服务器是指用户可能了解它,也可能不了解它,但是不管是否了解,用户均对该服务器不信任。例如,边缘计算网络中不可信的边缘设备。为了保护用户文件的安全性,需要将用户文件以某种方式进行加密后存储。由于用户文件是以加密方式存储在服务器的存储设备中,为了保证用户文件的安全性,只有密钥拥有者才具备解密能力,服务器并不具备解密能力。因此,当用户进行搜索时,为了保证用户文件的安全性,需采用加密搜索的方式进行搜索,即在服务器中基于密文进行搜索。目前已经提出了基于密文进行搜索查询的方案,例如论文“可搜索加密技术研究综述”(《软件学报》;李经纬,贾春福等;2014年8月)对可搜索加密技术进行了总结。其中指出,可搜索加密技术包括对称可搜索加密方案和非对称可搜索加密方案。对称可搜索加密方案又分为swp方案,z-idx方案和sse-1方案。


技术实现思路

1、当前,可搜索加密方案主要包含两个部分:一部分是用户文件加密以及存储;另一部分是用户文件加密搜索。对于用户文件加密以及存储,其过程如下所示:客户端首先分别将用户文件中的关键词以及文件进行加密得到加密关键词和加密文件,然后将加密关键词和加密文件发送给服务器,服务器接收加密关键词和加密文件,并将加密关键词和加密文件存储在存储器的存储介质中。对于用户文件加密搜索,其过程如下所示:客户端将待查询关键词的索引(如陷门)发送给服务器,服务器接收该索引,并从存储设备的存储介质中读出全部或部分加密关键词,然后服务器的处理器根据该索引从部分或全部的加密关键词中搜索到与该索引匹配的加密关键词,根据匹配的加密关键词查找对应的加密文件,例如,在存储设备中还存储有加密关键词与加密文件之间的映射关系,服务器根据该映射关系即可查找出匹配的加密关键词所对应的加密文件。另外,服务器查询到加密文件之后,将加密文件发送给客户端,客户端根据密钥对加密文件进行解密得到明文。即当前可搜索加密方案部署于服务器端,例如在云计算或边缘计算系统中,将可搜索加密技术方案部署于云端或者边缘设备端。然而,由服务器来执行可搜索加密方案,一方面会增加服务器的负担;另一方面服务器在执行可搜索加密过程时,需将已存储的加密关键词从存储设备读出或者将搜索结果写入存储设备,当存储设备中存储的加密关键词数据量较大时,存储设备读出加密关键词会消耗较长的时间,进而影响搜索的效率。

2、本技术将可搜索加密技术方案部署在存储设备(例如ssd)中,由存储设备来执行加密搜索的过程,一方面,可以将服务器从加密搜索的工作中解脱出来,缓解了服务器的压力。另一方面,由存储设备内部来执行该搜索过程,只需要从存储介质中读出加密关键词,即只需要通过存储设备内部数据传输链路来传输加密关键词,而存储设备内部的数据传输链路会明显短于存储设备与服务器之间的数据传输链路,降低了读取加密关键词的时间,提高了搜索的效率;又一方面,本技术中所涉及的存储设备为kv存储设备,通过kv存储设备将已搜索过的加密关键词及其对应的密文进行存储(例如存储于查询历史中),当进行搜索时,存储设备首先从kv存储设备中查询当前待搜索的加密关键词是否之前已查询过,若已查询过,直接读取该加密关键词所对应的密文,根据密文确定出其对应的加密文件,将该加密文件发送给服务器,再由服务器发送给客户端进行解密。即对于历史已查询过的加密关键词不需要重复地与存储设备所存储的加密关键词进行对比,进而提高了搜索的效率。还一方面,由于存储设备控制器(如ssd控制器)具有自己的“物理指纹”,而且未授权方无法在不破坏存储设备控制器的情况下获取这个指纹信息,因此提高了可搜索加密方案的安全性。

3、根据本技术的第一方面,提供了根据本技术第一方面的第一用于加密数据搜索的方法,应用于存储设备,响应于接收到第一陷门(tw),搜索与所述第一陷门匹配的第一密文(c),其中,所述第一陷门(tw)包括第一加密关键词(e(w));所述第一密文用于索引所述第一加密关键词(e(w))所对应的第一加密文件;根据所述第一密文确定出所述第一陷门(tw)所对应的第一加密文件,将所述第一加密文件提供给主机。

4、根据本技术第一方面的第一用于加密数据搜索的方法,提供了根据本技术第一方面的第二用于加密数据搜索的方法,搜索与所述第一陷门匹配的第一密文,包括:响应于存储了查询历史,根据所述第一陷门搜索查询历史,其中,所述查询历史包括已搜索过的加密关键词及其对应的密文;响应于在所述查询历史中查询到所述第一密文,从所述查询历史中确定出所述第一密文。

5、根据本技术第一方面的第二用于加密数据搜索的方法,提供了根据本技术第一方面的第三用于加密数据搜索的方法,所述存储设备为kv存储设备;根据所述第一陷门搜索查询历史,包括:响应于所述查询历史以<关键字,键值>的形式存储于kv存储设备中,从所述kv存储设备中查询所述第一加密关键词所对应的第一密文。

6、根据本技术第一方面的第三用于加密数据搜索的方法,提供了根据本技术第一方面的第四用于加密数据搜索的方法,所述查询历史以<关键字,键值>的形式存储于kv存储设备中,其中将所述第一加密关键词作为关键字,将所述第一密文作为键值。

7、根据本技术第一方面的第二用于加密数据搜索的方法,提供了根据本技术第一方面的第五用于加密数据搜索的方法,搜索与所述第一陷门匹配的第一密文,包括:响应于未存储查询历史或在所述查询历史中未查询到所述第一密文,根据所述第一加密关键词(e(w))对所存储的一个或多个密文(c0~cn)分别进行处理得到每个密文所对应的加密字符串(s||t),对每个加密字符串进行验证以得到所述第一密文(c)。

8、根据本技术第一方面的第五用于加密数据搜索的方法,提供了根据本技术第一方面的第六用于加密数据搜索的方法,根据所述第一加密关键词(e(w))对所存储的一个或多个密文(c0~cn)分别进行处理得到每个密文所对应的加密字符串,包括:将所述第一加密关键词(e(w))分别与所存储的一个或多个密文(c0~cn)进行异或操作得到每个密文所对应的加密字符串,其中,所述密文是由加密关键词和加密字符串异或所得到的。

9、根据本技术第一方面的第六用于加密数据搜索的方法,提供了根据本技术第一方面的第七用于加密数据搜索的方法,将所述第一加密关键词分别与所存储的一个或多个密文(c0~cn)进行异或操作以对加密字符串进行验证,包括:逐个从存储器中读取多个密文中的每个密文,将读取的每个密文与第一加密关键词进行异或操作得到其对应的加密字符串;或从存储器中读取所存储的所有密文,将第一加密关键词分别与每个密文进行异或操作得到其对应的加密字符串。

10、根据本技术第一方面的第五用于加密数据搜索的方法,提供了根据本技术第一方面的第八用于加密数据搜索的方法,每个加密字符串包括左部(s)和右部(t),其中,所述加密字符串的左部(s)为随机数;在加密存储过程中,将每个加密字符串所对应的加密关键词e(wi)分为左部(li)和右部(ri),将所述加密关键词的左部li进行加密得到第一密钥(kp),将所述第一密钥(kp)与所述随机数进行加密得到所述加密字符串的右部(t)。

11、根据本技术第一方面的第八用于加密数据搜索的方法,提供了根据本技术第一方面的第九用于加密数据搜索的方法,对每个加密字符串进行验证以得到所述第一密文(ci),包括:将第二密钥(kq)与所述加密字符串的左部(s)进行加密处理得到第二加密值(f(k,s)),其中,所述第二密钥(kq)是对第一加密关键词的左部(l)进行加密处理所得到字符串;其中,所述第二密钥(kq)由所述客户端根据所述第一加密关键词计算得到;或者预先存储对所述第一加密关键词的左部(l)进行加密处理的算法(f),根据所述算法计算得到所述第二密钥(kq);将所述第二加密值f(k,s)与其对应的加密字符串的右部(t)进行匹配,响应于匹配成功,则确定所述加密字符串验证通过,以及将所述加密字符串所对应的密文作为所述第一密文。

12、根据本技术第一方面的第九用于加密数据搜索的方法,提供了根据本技术第一方面的第十用于加密数据搜索的方法,将所述第二加密值(f(k,s))与其对应的加密字符串的右部(t)进行匹配,包括:根据所述第二加密值(f(k,s))与所述加密字符串的右部(t)是否相同,确定所述第二加密值(f(k,s))与所述加密字符串的右部(t)是否匹配成功。

13、根据本技术第一方面的第九或第十用于加密数据搜索的方法,提供了根据本技术第一方面的第十一用于加密数据搜索的方法,所述随机数为伪随机数或者常数。

14、根据本技术第一方面的第八至第十一用于加密数据搜索的方法之一,提供了根据本技术第一方面的第十二用于加密数据搜索的方法,利用第一加密算法(f)对所述加密字符串的左部(s)进行加密处理得到所述第一密钥(kp);利用第二加密算法(f)对所述第一密钥(kp)与所述加密字符串的左部(s)进行加密处理,得到所述第二加密值(f(k,s))。

15、根据本技术第一方面的第十二用于加密数据搜索的方法,提供了根据本技术第一方面的第十三用于加密数据搜索的方法,还包括:预先存储所述第二加密算法(f);或者从主机接收所述第二加密算法(f)以用于加密处理。

16、根据本技术第一方面的第五至第十三用于加密数据搜索的方法之一,提供了根据本技术第一方面的第十四用于加密数据搜索的方法,还包括:响应于将所述加密字符串所对应的密文作为所述第一密文;将所述第一密文及其对应的第一加密关键词存储于所述查询历史中。

17、根据本技术第一方面的第一至第十四用于加密数据搜索的方法之一,提供了根据本技术第一方面的第十五用于加密数据搜索的方法,还包括:第一加密文件为包含第一加密关键词的一个或多个加密文件。

18、根据本技术第一方面的第一至第十五用于加密数据搜索的方法之一,提供了根据本技术第一方面的第十六用于加密数据搜索的方法,还包括:响应于接收到第二陷门,搜索与所述第二陷门匹配的第二密文,其中,所述第二陷门包括第二加密关键词;所述第二密文用于索引所述第二加密关键词所对应的第二加密数据;根据所述第二密文确定出所述第二陷门所对应的第二加密文件,将所述第二加密文件提供给主机。

19、根据本技术第一方面的第十六用于加密数据搜索的方法,提供了根据本技术第一方面的第十七用于加密数据搜索的方法,还包括:所述第二加密文件与所述第一加密文件相同或者部分相同。

20、根据本技术第一方面的第十六或十七用于加密数据搜索的方法,提供了根据本技术第一方面的第十八用于加密数据搜索的方法,还包括:并行接收并处理多个不同的陷门,并执行搜索操作。

21、根据本技术的第二方面,提供了根据本技术第二方面的第一存储控制器,所述存储控制器用于实现本技术第一方面第一至第十八所述的用于加密数据搜索的方法之一。

22、根据本技术的第二方面的第一存储控制器,提供了根据本技术第二方面的第二存储控制器,所述存储控制器包括主机命令处理单元,存储命令处理单元和加速器,所述加速器用于实现所述加密数据搜索的方法。

23、根据本技术的第三方面,提供了根据本技术第三方面的一种加速器,用于存储控制器,所述加速器用于实现本技术第一方面第一至第十八所述的用于加密数据搜索的方法之一。

24、根据本技术的第四方面,提供了根据本技术第四方面的第一存储设备,包括存储介质和本技术第二方面的所述的存储控制器之一。

25、根据本技术的第四方面的第一存储设备,提供了根据本技术第四方面的第二存储设备,所述存储设备为kv存储设备。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1