数据存储检索方法、装置、电子设备及存储介质与流程

文档序号:17863855发布日期:2019-06-11 23:03阅读:201来源:国知局

本申请涉及信息安全技术领域,尤其涉及一种数据存储检索方法、装置、电子设备及存储介质。



背景技术:

云存储可以通过互联网,将存储资源作为服务提供给用户使用。借助于虚拟化、分布式计算和存储技术,云存储可以将众多存储设备通过软件集合起来协同工作,构建一个用于对外提供数据存储服务的云平台,云平台被大量用户共享。

但是,这种云存储方式存在安全隐患,比如当甲用户和乙用户分别向云平台的服务器上传数据后,甲用户和乙用户的数据有可能被存放在云平台内的同一存储设备中,这种情况下,甲用户和乙用户共享一个存储设备,如果甲用户的数据以明文的方式存储,那么乙用户就有机会利用虚拟机窃取甲用户的数据,一旦甲用户的数据泄露,很可能会被非法利用或篡改,导致甲用户的数据无法得到有效保护。

为提高云存储的数据安全性,通常的解决方案是利用加密技术对数据进行加密,使数据以密文形式存储在云平台。然而,由于数据以密文形式存储,会导致用户无法对数据的内容进行检索。在需要查询特定内容的数据时,用户只能将密文数据先行下载至本地,经解密后再检索出所需数据,这种方式会降低用户获取数据的效率。



技术实现要素:

本申请提供一种数据存储检索方法、装置、电子设备及存储介质,以解决密文无法检索,用户获取数据效率低的问题。

第一方面,本申请提供一种数据存储方法,包括:

录入待存储数据;

根据存储规则指示的数据加密方式,对所述待存储数据中的加密对象进行加密,得到密文;

根据所述加密对象的明文关键字以及所述存储规则指示的索引生成方式,生成密文索引;所述密文索引用于检索所述密文;

存储所述密文与所述密文索引之间的对应关系。

在第一方面第一种可能的实现方式中,所述索引生成方式包括:

索引类型,以及索引加密方式;所述索引加密方式包括索引加密粒度、索引加密算法和索引密钥。

在第一方面第二种可能的实现方式中,所述根据存储规则指示的数据加密方式,对所述待存储数据中的加密对象进行加密,包括:

根据所述数据加密方式指示的采用数据加密粒度、数据加密算法和数据密钥,对所述加密对象进行加密;所述数据加密粒度为逐个符号加密。

在第一方面第三种可能的实现方式中,所述生成密文索引包括:

当所述索引类型为基于加密对象生成的索引时,获取所述密文的存储地址;

将所述明文关键字与所述存储地址的关联作为密文索引。

在第一方面第四种可能的实现方式中,所述生成密文索引包括:

当所述索引类型为基于密文生成的索引时,获取所述密文的存储地址;

采用所述数据加密算法、所述索引加密粒度和所述索引密钥,对所述明文关键字进行加密,得到第一加密关键字;

将所述第一加密关键字与所述存储地址的关联作为密文索引。

在第一方面第五种可能的实现方式中,所述生成密文索引包括:

当所述索引类型为基于对加密对象生成的索引再加密而得到的索引时,获取所述密文的存储地址;

采用所述索引加密粒度、所述索引加密算法和索引密钥,对所述明文关键字进行加密,得到第二加密关键字;所述索引加密粒度为逐个符号加密;

将所述第二加密关键字与所述存储地址的关联作为密文索引。

在第一方面第六种可能的实现方式中,所述录入待存储数据,包括:

获取所述存储规则;

根据所述存储规则指示的加密对象信息,录入待存储数据。

在第一方面第七种可能的实现方式中,至少两个加密对象所采用的数据加密算法和/或数据密钥不同。

在第一方面第八种可能的实现方式中,所述存储所述密文与所述密文索引之间的对应关系,包括:存储所述密文与密文的存储地址之间的对应关系。

第二方面,本申请提供一种数据检索方法,包括:

接收终端的数据查询请求;

获取所述查询请求中携带的明文关键字;

根据所述明文关键字和存储规则指示的索引生成方式,获取密文索引;

根据密文与密文索引之间的对应关系,获取所述密文索引对应的密文;

对所述密文进行解密得到明文;

向终端发送所述明文。

在第二方面第一种可能的实现方式中,所述索引生成方式包括:

索引类型,以及索引加密方式;所述索引加密方式包括索引加密粒度、索引加密算法和索引密钥。

在第二方面第二种可能的实现方式中,所述获取密文索引包括:

当所述索引类型为基于加密对象生成的索引时,获取所述明文关键字与密文的存储地址的关联,得到密文索引。

在第二方面第三种可能的实现方式中,所述获取密文索引包括:

当所述索引类型为基于密文生成的索引时,采用所述索引加密算法、所述索引密钥和所述索引加密粒度,对所述明文关键字进行加密,得到第一加密关键字;所述索引加密算法与生成所述密文时采用的数据加密算法相同;

获取所述第一加密关键字与所述密文的存储地址的关联,得到密文索引。

在第二方面第四种可能的实现方式中,所述获取密文索引包括:

当所述索引类型为基于对加密对象生成的索引再加密而得到的索引时,采用所述索引加密算法、所述索引密钥和所述索引加密粒度,对所述明文关键字进行加密,得到第二加密关键字;所述索引加密粒度为逐个符号加密;

获取所述第二加密关键字与所述密文的存储地址的关联,得到密文索引。

在第二方面第五种可能的实现方式中,所述根据密文与密文索引之间的对应关系,获取所述密文索引对应的密文包括:

根据所述密文索引指示的密文的存储地址,以及根据所述密文与所述密文的存储地址之间的对应关系,获取所述密文的存储地址对应的密文。

第三方面,本申请提供一种数据存储装置,包括:

录入模块,用于录入待存储数据;

加密模块,用于根据存储规则指示的数据加密方式,对所述待存储数据中的加密对象进行加密,得到密文;

索引生成模块,用于根据所述加密对象的明文关键字以及所述存储规则指示的索引生成方式,生成密文索引;所述密文索引用于检索所述密文;

存储模块,用于存储所述密文与所述密文索引之间的对应关系。

其中,所述存储规则记录有加密对象信息、数据加密方式以及索引生成方式。

第四方面,本申请提供一种数据检索装置,包括:

接收模块,用于接收终端的数据查询请求;

关键字获取模块,用于获取所述查询请求中携带的明文关键字;

索引获取模块,用于根据所述明文关键字和所述存储规则指示的索引生成方式,获取密文索引;

密文获取模块,用于根据密文与密文索引之间的对应关系,获取所述密文索引对应的密文;

解密模块,用于对所述密文进行解密得到明文;

发送模块,用于向终端发送所述明文。

第五方面,本申请提供一种电子设备,包括:

处理器;以及

存储器,用于存储程序指令;

其中,所述处理器被配置为调用并执行所述存储器中的程序指令,执行第一方面所述的数据存储方法。

第六方面,本申请提供一种电子设备,包括:

处理器;以及

存储器,用于存储程序指令;

其中,所述处理器被配置为调用并执行所述存储器中的程序指令,执行第二方面所述的数据检索方法。

第七方面,本申请提供一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面所述的数据存储方法。

第八方面,本申请提供一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时,实现第二方面所述的数据存储方法。

本申请提供的数据存储检索方法、装置、电子设备及存储介质,方法中配置有存储规则,存储规则可包括加密对象信息、数据加密方式以及索引生成方式。其中,加密对象信息限定了录入的待存储数据中,哪些数据作为加密对象,加密对象信息可以包括字段名称、字段类型等信息。数据加密方式中提供对加密对象进行加密时所涉及的数据加密粒度、数据加密算法、数据密钥等信息。索引生成方式可包括索引类型和索引加密方式,其中索引类型可以是基于加密对象生成的索引,或者是基于密文生成的索引,又或者密文索引为是基于对加密对象生成的索引再加密而得到的索引,等等。

当待存储数据录入后,根据存储规则中记录的数据加密粒度、数据加密算法和数据密钥,对数据中的加密对象进行加密,得到密文;为实现密文可被检索,本申请中根据存储规则指示的索引生成方式,为密文生成对应的密文索引,保存密文、密文索引以及两者之间的对应关系。当需要检索密文时,通过明文关键字和存储规则指示的索引生成方式,得到相应的密文索引,并获取密文索引对应的密文,然后对密文进行解密,恢复成明文后,将明文发送给终端。本申请基于存储规则,完成了数据录入、数据加密存储和密文索引创建的方法流程,通过传统的工具和方法无法对密文可读性导出,使数据必须基于特定环境才能使用,保证数据存储的安全性,避免数据泄露和被非法利用,并且使加密的数据能够通过密文索引被检索,从而提高用户获取数据的效率。通过设定存储规则,可使数据存储、检索过程具有良好的灵活性、安全性和高效性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例一示出的一种数据存储方法的流程图;

图2为本申请实施例一示出的数据存储方法的应用场景图;

图3为本申请实施例一示出的待存储数据表;

图4为本申请实施例一示出的另一种数据存储方法的流程图;

图5为本申请实施例二示出的生成密文索引的方法流程图;

图6为本申请实施例三示出的生成密文索引的方法流程图;

图7为本申请实施例四示出的生成密文索引的方法流程图;

图8为本申请实施例五示出的数据检索方法的流程图;

图9为本申请实施例六示出的一种数据存储装置的结构框图;

图10为本申请实施例六示出的另一种数据存储装置的结构框图;

图11为本申请实施例六示出的第一种索引生成模块的结构框图;

图12为本申请实施例六示出的第二种索引生成模块的结构框图;

图13为本申请实施例六示出的第三种索引生成模块的结构框图;

图14为本申请实施例七示出的数据检索装置的结构框图;

图15为本申请实施例八示出的电子设备的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本申请实施例一提供一种数据存储方法,所述方法至少可以应用在大数据平台或共有云平台中,所述方法包括:

步骤s101,录入待存储数据。

待存储数据采用明文的形式录入,待存储数据可通过终端设备录入,也可加工为接口供外部系统调用从而进行数据录入,这里所述的终端包括但不限于手机、平板、电脑等各种终端设备,或终端设备上的app客户端。图2为数据存储过程的一种应用场景图,待存储数据一般上传至相应的服务器10中进行数据存储,在终端20录入待存储数据后,可将待存储数据从终端20传输至服务器10,以完成待存储数据在服务器10中的录入。数据可采用网络30进行传输以实现远程通信,可根据实际应用情况选择同步传输、异步传输以及加密传输等形式,或者选择特定的传输协议,本实施例对此不作限定。当采用加密形式将待存储数据从终端20传输至服务器10时,可以确保数据传输的安全性,录入服务器10内的待存储数据是明文形式。

步骤s102,存储规则指示的数据加密方式,对待存储数据中的加密对象进行加密,得到密文。所述数据加密方式包括数据加密粒度、数据加密算法和数据密钥。

所述存储规则可包括加密对象信息、数据加密方式以及索引生成方式,存储规则所记录的各部分内容可以分别单独保存,或者可以合并保存。其中,加密对象信息限定了录入的待存储数据中,指定对哪部分数据进行加密,比如加密对象包括一个或多个字段,则加密对象信息可以包括字段名称、字段类型等信息。

字段名称是指在以关系模型为数据结构的二维表中每一列的标识,以图3所示的待存储数据的表为例,待存储数据录入后,其内包含多个字段名称,依次为姓名、性别、年龄和籍贯,每个字段名称所对应的字段都具有一系列值,比如姓名字段中,字段值为张某、李某、王某,性别字段的值为女、男、男,年龄字段的值为20、30、40,籍贯字段的值为北京、上海、沈阳。假设存储规则中记录的加密对象信息为年龄和籍贯,即加密对象为年龄字段和籍贯字段,需要对这两个字段对应的列数据进行加密,图3中的虚框部分即为存储规则中指定的加密对象。根据存储规则的指示,需要对年龄字段和籍贯字段加密形成密文,而姓名字段和性别字段是明文形式存储,其内容是可见的。

一般,数据库表中的字段类型包括:二进制数据类型,如binary、varbinary和image等;字符数据类型,如char、varchar和text等;unicode数据类型,如nchar、nvarchar和ntext等;日期和时间数据类型,如datetime、smalldatetime、date和timestamp等;数字数据类型,比如正数、负数、小数或正数等。字段类型不限于本实施例所述。

通过存储规则中指定的加密对象信息,即可从录入的待存储数据中获取加密对象。本实施例中,所述加密对象信息可选择为空,即不指定具体的加密对象,录入的待存储数据整体以明文的形式存储;或者,所述加密对象信息还可以覆盖整个待存储数据,使得所有录入的待存储数据均以密文形式存储。

存储规则记录的数据加密方式,提供对加密对象进行加密时所涉及的数据加密粒度、数据加密算法、数据密钥、是否加密等信息。数据加密的基本过程就是根据数据加密粒度,对明文数据按照某种数据加密算法进行处理,使其成为一段不可读的代码,即所述密文,使密文只能在输入相应的数据密钥后才显示原数据,从而达到保护数据不被非法窃取和窥视的目的。加密的逆反过程为解密,即将加密的编码信息转化为原数据的过程。

数据加密粒度是指数据加密的最小单位,可采用逐个符号加密的加密粒度对所述待存储数据中的加密对象进行加密,即以字符为单位的加密,按照编码集和文字内容进行加密,一个字符为一个有明确含义的可读文字,这种加密粒度确保密文能够以字符为单位进行索引,从而实现密文检索。对于非可读数据信息,即非文本数据,可不使用字符级加密,比如采用字段级等粒度级进行加密。

加密过程可采用对称式加密或者非对称式加密,对称式加密就是加密和解密使用同一个密钥,通常称之为“sessionkey”。非对称式加密就是加密和解密不使用同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,两者必须配对使用,否则无法打开加密文件。“公钥”可以对外公布,“私钥”则只能由持有人一人知晓。相较于对称式加密,非对称式加密可以保证密钥传输的安全性,从而保证数据存储的安全性。

常见的加密算法包括:des(dataencryptionstandard,数据加密标准),属于对称式加密,加密速度较快,适用于加密大量数据的场合;idea(internationaldataencryptionalgorithm,国际数据加密算法),使用128位密钥提供非常强的安全性;rsa算法,支持变长密钥的公共密钥算法,需要加密的文件块长度可变,属于非对称算法;aes(advancedencryptionstandard,高级加密标准):属于对称式加密,加密速度快,安全级别高。加密算法不限于本实施例所列举的几种,可根据对加密速度、安全性等要求,来指定相应的加密算法。

本实施例中,至少两个加密对象所采用的加密算法和/或密钥不同。以图3所示的表为例,假设存储规则中记录的加密对象信息为年龄和籍贯,即具有两个加密对象,可使年龄字段和籍贯字段采用不同的数据加密方式,比如年龄字段采用对称式加密,籍贯字段需要更高的安全性,可采用非对称加密,由于年龄字段和籍贯字段采用不同的加密算法,具有不同的密钥,因此,即便年龄字段的加密被破解或密钥泄露,也不会影响籍贯字段的信息安全,从而可以提高数据存储的安全性。在这种情况下,可以建立加密对象信息与加密方式之间的对应关系,使字段名称“年龄”与对称式加密算法对应,字段名称“籍贯”与非对称加密算法对应,使得在对某一字段进行加密时,直接使用其对应的数据加密方式得到密文。

在对加密对象进行加密得到密文后,对密文进行存储,然后需要为密文建立对应的密文索引,以确保可以通过密文索引检索到所需的密文。

步骤s103,根据加密对象的明文关键字以及存储规则指示的索引生成方式,生成密文索引;所述密文索引用于检索所述密文。

存储规则记录的索引生成方式,可以包括是否生成索引、索引类型或索引加密方式等信息,所述索引加密方式包括索引加密粒度、索引加密算法和索引密钥。比如当存储规则中,加密对象信息为空,或者数据加密方式指示为不加密,则对录入的待存储数据不进行加密处理,待存储数据以明文形式存储,此时也可以不使用索引,在利用明文关键字进行检索时,可以采用逐行扫描的方式来获取所需检索的密文;亦或者,使用服务器中自带数据库的索引,而不必须另外生成索引。使用索引的方式可以加速检索,提高搜索效率。

为密文构建的密文索引可以选择不同类型,一种密文索引为基于加密对象生成的索引,这种密文索引为明文形式。对加密对象进行加密得到密文后,一种可能的实现方式是,采用分词算法对所述加密对象进行分词得到目标关键字,根据目标关键字和哈希算法,生成哈希认证码,采用预设编码方式对哈希认证码进行编码得到索引字符串,该索引字符串为可打印字符串,索引字符串为密文索引,服务器10将密文和索引字符串存储在同一数据表中,索引字符串与密文是对应存储,即存储了密文与密文索引的对应关系。当需要检索数据时,向服务器10提供搜索关键字,服务器10根据目标关键字生成密文索引的方法,将搜索关键字生成搜索字符串后,利用密文索引和搜索字符串获取密文,对密文解密后即可得到所需明文。

需要说明的是,这里列举的实现方式中,获取目标关键字所采用的分词或分字算法不作限定,并且得到索引字符串的算法也不限于上文所述的哈希算法,本领域技术人员可根据实际应用情况自由选取。此外,对于密文索引为基于加密对象生成的索引,不限于上述可能的实现方式。

另一种密文索引为基于密文生成的索引,可根据生成密文时所采用的数据加密算法,对索引进行加密;又一种密文索引为基于对加密对象生成的索引再加密而得到的索引,这种方式即加密对象和索引分别加密,并不强调两者的加密算法存在特定或必然的联系。对索引进行加密时,根据存储规则中指示的索引类型,确定索引加密算法和索引密钥,从而完成索引的加密。

步骤s104,存储密文与密文索引之间的对应关系。

服务器10完成数据加密以及生成密文索引,可以将得到的密文和密文索引保存到服务器10中,或者也可存储到其他具有存储功能的设备中,比如特定的存储服务器,密文和密文索引可以保存在同一个存储服务器中,也可以分别保存在两个存储服务器中,比如设置密文存储服务器和密文索引存储服务器,存储方式可以是数据库存储、文件存储或redis等,本实施例不限定具体的存储设备和存储方式。并且,还需要存储密文与密文索引之间的对应关系,以便根据密文索引直接定位到对应的密文,从而保证密文可被检索以及检索的准确性,密文与密文索引的对应关系的存储方式不限定。

本实施例能够完成数据录入、加密存储和密文索引创建的方法流程,通过传统的工具和方法无法对密文可读性导出,使数据必须基于特定环境才能使用,保证数据存储的安全性,避免数据泄露和被非法利用,并且使加密数据能够通过密文索引被检索,从而提高用户获取数据的效率。通过存储规则,使数据存储过程具有良好的灵活性、安全性和高效性。

本实施例中,存储规则可以选择服务器10内自有的规则,在待存储数据录入后,可以直接调取服务器10内自有的存储规则,对指定的加密对象进行加密并对应生成密文索引。

在本申请其他可能的实现方式中,如图4所示,步骤s101包括:

步骤s1011,获取存储规则。

在这一步骤中,获取的不再是服务器10内自有的存储规则,而是在录入待存储数据之前,预先定义一个新的存储规则,这个新的存储规则中同样包括加密对象信息、数据加密方式以及索引生成方式。通过在录入待存储数据前,预定义存储规则,实现根据实际应用,灵活调整存储规则,以满足不同数据不同时段的存储要求。比如用户的某一项待存储数据中包括高度隐私的信息,如果服务器10内自有的存储规则不满足安全性的要求,则可以重新定义存储规则,设定安全性更高的数据加密方式和索引生成方式。本申请设置存储规则的另一个好处在于,将加密对象信息、数据加密方式和索引生成方式集合成一个规则,进行数据加密和密文索引创建时,可以直接调用存储规则中的相应信息,而不是在数据存储过程中另行获取,便于数据存储过程的统一管理和高效执行,从而提高数据的存储效率。

步骤s1012,根据存储规则指示的加密对象信息,录入待存储数据。

不执行步骤s1011时,是先将待存储数据上传至服务器10,然后根据服务器10自有的存储规则,从待存储数据中筛选出加密对象进行加密。当执行步骤s1011时,由于在录入待存储数据之前,预先获取了预定义的存储规则,则在录入数据时,直接录入与加密对象信息相匹配的数据,使待存储数据即为加密对象,这样服务器10获取录入的待存储数据后,无需进行数据筛选,而是直接根据存储规则的指示对加密对象进行加密并对应生成密文索引,使得数据存储效率更高。预定义的存储规则可以在终端20中获取,即用户可以在终端20中设定所需的存储规则,终端20将存储规则和待存储数据一并上传至服务器10中,建议采用加密传输方式,以保证待存储数据和存储规则不被泄漏。

在实施例一所述数据存储方法的基础上,如图5所示,本申请实施例二提供的数据存储方法,适用于索引类型为基于加密对象生成的索引,其中所述步骤s103包括:

步骤s1031,获取密文的存储地址。

服务器10的内存中,密文可存储在存储单元中,每个存储单元都被指定一个编号,称为此存储单元的物理地址,即所述存储地址,在访问内存时,必须先确定存储地址才能获得对应存储单元保存的密文。当进行寻址时,存储地址可根据段地址和段内偏移地址进行计算,段地址是每一个逻辑段的起始地址,段内偏移地址则是段内相对于段起始地址的偏移值。

步骤s1032,将明文关键字与存储地址的关联作为密文索引。

密文在未加密前,加密对象的字段中对应有明文关键字,即关键字为明文形式,当建立明文关键字与密文存储地址的关联后,通过明文关键字找到相关联的密文存储地址,密文存储地址与密文之间存在对应关系,从而实现密文检索,因此本实施例方法生成的密文索引属于基于加密对象生成的索引。这种情况下,密文可以采用任一种可解密的数据加密算法,数据加密粒度包括字符级加密和非字符级加密。以图3为例,假设需要对表中的籍贯字段进行加密,则籍贯字段所在的列数据即为加密对象,选取字段名称“籍贯”作为关键字,当密文存储后,获取密文的存储地址,并将存储地址与关键字“籍贯”进行关联,从而生成了籍贯字段密文的密文索引。此时,密文与密文索引的对应关系即为,对籍贯字段所在的列数据进行加密后的密文与其存储地址之间的对应关系。

在实施例一所述数据存储方法的基础上,如图6所示,本申请实施例三提供的数据存储方法中,采用逐个符号加密的数据加密粒度对所述加密对象进行加密,通过这种字符级数据加密粒度得到密文后,建立的索引类型为基于密文生成的索引,本实施例中,所述步骤s103包括:

步骤s1031,获取密文的存储地址。

步骤s1033,采用数据加密算法、索引加密粒度和索引密钥,对明文关键字进行加密,得到第一加密关键字;

步骤s1034,将第一加密关键字与存储地址的关联作为密文索引。

本实施例中,对加密对象采用字符级的加密粒度进行加密,然后再建索引,得到的密文索引属于基于密文生成的索引。这种索引生成方式,采用与生成密文相同的数据加密算法,对明文关键字进行加密,得到第一加密关键字,即索引加密算法等于数据加密算法,这样得到的第一加密关键字就是密文的关键字。

举例来说,假设字段名称“籍贯”采用数据加密算法s进行字符级加密编码后,字段名称“籍贯”对应的编码为abcd,则可将abcd作为第一加密关键字,建立abcd与籍贯字段密文存储地址的关联。在进行检索时,输入明文关键字“籍贯”,服务器10加载所述数据加密算法s,利用数据加密算法s将明文关键字“籍贯”加密成第一加密关键字abcd,则根据第一加密关键字abcd与密文存储地址的关联,以及密文存储地址与密文之间的对应关系,可以直接定位目标密文。明文关键字加密时所使用的索引密钥可与数据密钥相同,也可与数据密钥不同。这里加密得到的编码abcd仅仅是示例性的,实际应用中的第一加密关键字取决于所使用的索引加密方式。

在实施例一所述数据存储方法的基础上,如图7所示,本申请实施例四提供的数据存储方法中,建立的索引类型为基于对加密对象生成的索引再加密而得到的索引,本实施例中,所述步骤s103包括:

步骤s1031,获取密文的存储地址。

步骤s1035,采用索引加密粒度、索引加密算法和索引密钥,对明文关键字进行加密,得到第二加密关键字;所述索引加密粒度为逐个符号加密。

步骤s1036,将第二加密关键字与存储地址的关联作为密文索引。

本实施例中,加密对象可采用任意可解密的数据加密算法进行加密,数据加密算法并不限定。对明文关键字进行加密,索引加密方式采用字符级加密粒度,以提供精确检索。明文关键字加密时所使用的索引密钥可与数据密钥相同,也可与数据密钥不同。本实施例密文索引为基于对加密对象生成的索引再加密而得到的索引。举例来说,假设字段名称“籍贯”经过数据加密算法s后得到的是abcd,将字段名称“籍贯”作为明文关键字,该明文关键字采用索引加密算法t进行字符级加密后,得到的第二加密关键字为sn5g,即便sn5g和abcd是不同的编码,两者不一致,仍可建立sn5g与密文存储地址的关联,并根据密文存储地址与密文之间的对应关系,实现对密文的检索。只需在检索时,利用索引加密算法t对明文关键字“籍贯”进行加密,得到sn5g,即可对与sn5g关联的密文进行寻址,从而定位目标密文。

对于实施例二至实施例四所述的技术方案,存储密文与密文索引之间的对应关系包括:存储密文与密文的存储地址之间的对应关系。通过密文索引,可以获取密文的存储地址,从而根据密文与存储地址的对应关系,找到对应的密文,从而实现密文的检索。

如图8所示,本申请实施例五提供一种数据检索方法,利用实施例一到实施例四任一所述的数据存储方法,对待存储数据进行加密并对应生成密文索引,并存储密文和密文索引后,所述数据检索方法包括:

步骤s201,接收终端的查询请求。

终端20向服务器10发送查询请求,该查询请求中包含明文关键字,该明文关键字与所需查询的密文对应。

步骤s202,获取查询请求中携带的明文关键字。

步骤s203,根据明文关键字和存储规则指示的索引生成方式,获取密文索引。

步骤s204,根据密文与密文索引之间的对应关系,获取密文索引对应的密文。

对于实施例二所述的数据存储方法,由于密文索引就是明文关键字与存储地址的关联,因此服务器10响应查询请求后,可向数据库中直接输入明文关键字,获取服务器存储的该明文索关键字与密文存储地址的关联,从而得到所需检索的密文的存储地址,根据密文与其存储地址之间的对应关系,即可得到所要查询的密文。

对于实施例三所述的数据存储方法,密文索引是第一加密关键字与存储地址的关联,需要将明文关键字转化为第一加密关键字,具体实现方法是,从存储规则中获取数据加密算法、索引加密粒度和索引密钥,对终端20发送的明文关键字进行加密,得到第一加密关键字,获取服务器存储的该第一加密关键字与密文存储地址的关联,从而得到所需检索的密文的存储地址,根据密文与其存储地址之间的对应关系,即可得到所要查询的密文。

对于实施例四所述的数据存储方法,密文索引时第二加密关键字与存储地址的关联,需要将明文关键字转化为第二加密关键字,具体实现方法时,从存储规则中获取索引加密算法、索引密钥和字符级索引加密粒度,对终端20发送的明文关键字进行加密,得到第二加密关键字,获取服务器存储的该第二加密关键字与密文存储地址的关联,从而得到所需检索的密文的存储地址,根据密文与其存储地址之间的对应关系,即可得到所要查询的密文。

步骤s205,对密文进行解密得到明文。

在获取目标密文后,从存储规则中获取数据加密算法和数据密钥等信息,将检索到的密文解密成对应的明文数据,以供查询和读取。

步骤s206,向终端发送明文。

服务器10将解密后的明文发送至终端20。终端20获取到所请求的明文可读数据,并用于业务等相关应用。

如图9所示,本申请实施例六提供一种数据存储装置,包括:

录入模块100,用于录入待存储数据;

数据加密模块200,用于根据存储规则指示的数据加密方式,对所述待存储数据中的加密对象进行加密,得到密文;所述数据加密方式包括数据加密粒度、数据加密算法和数据密钥;

索引生成模块300,根据所述加密对象的明文关键字以及所述存储规则指示的索引生成方式,生成密文索引;所述密文索引用于检索所述密文;

存储模块400,用于存储所述密文与所述密文索引之间的对应关系。

可选地,如图10所示,所述装置还包括:规则获取模块000,用于获取所述存储规则;

则所述录入模块100,还用于根据所述存储规则指示的加密对象信息,录入待存储数据。

可选地,所述加密模块200,还用于采用所述数据加密粒度、所述数据加密算法和所述数据密钥,对所述加密对象进行加密;所述数据加密粒度为逐个符号加密。

可选地,如图11所示,当所述索引类型为基于加密对象生成的索引时,所述索引生成模块300包括:

地址获取子模块301,用于获取所述密文的存储地址;

第一关联子模块302,用于将所述明文关键字与所述存储地址的关联作为密文索引。

可选地,如图12所示,当所述索引类型为基于密文生成的索引时,所述索引生成模块300包括:

地址获取子模块301,用于获取所述密文的存储地址;

第一索引加密子模块303,用于采用所述数据加密算法、所述索引加密粒度和所述索引密钥,对所述明文关键字进行加密,得到第一加密关键字;

第二关联子模块304,用于将所述第一加密关键字与所述存储地址的关联作为密文索引。

可选地,如图13所示,当所述索引类型为基于对加密对象生成的索引再加密而得到的索引时,所述索引生成模块300包括:

地址获取子模块301,用于获取所述密文的存储地址;

第二索引加密子模块305,用采用所述索引加密粒度、所述索引加密算法和所述索引密钥,对所述明文关键字进行加密,得到第二加密关键字;所述索引加密粒度为逐个符号加密;

第三关联子模块306,用于建立所述第二加密关键字与所述存储地址的关联。

如图14所示,本申请实施例七提供一种数据检索装置,用于执行实施例五所述的数据检索方法,所述数据检索装置包括:

接收模块500,用于接收终端的查询请求;

关键字获取模块600,用于获取所述查询请求中携带的明文关键字;

索引获取模块700,用于根据所述明文关键字和存储规则指示的索引生成方式,获取密文索引;

密文获取模块800,用于根据密文与密文索引之间的对应关系,获取所述密文索引对应的密文;

解密模块900,用于对所述密文进行解密得到明文;

发送模块1000,用于向终端发送所述明文。

索引获取模块700可根据不同索引类型,被进一步配置为执行下述程序步骤:

当所述索引类型为基于加密对象生成的索引时,获取明文关键字与密文的存储地址的关联,得到密文索引。

或者,

当所述索引类型为基于密文生成的索引时,采用索引加密算法、索引密钥和索引加密粒度,对明文关键字进行加密,得到第一加密关键字;所述索引加密算法与生成所述密文时采用的数据加密算法相同;

获取第一加密关键字与所述密文的存储地址的关联,得到密文索引。

又或者,

当所述索引类型为基于对加密对象生成的索引再加密而得到的索引时,采用索引加密算法、索引密钥和索引加密粒度,对明文关键字进行加密,得到第二加密关键字;所述索引加密粒度为逐个符号加密;

获取第二加密关键字与所述密文的存储地址的关联,得到密文索引。

所述密文获取模块800可以被进一步配置为:根据密文索引指示的密文的存储地址,以及根据密文与密文的存储地址之间的对应关系,获取密文的存储地址对应的密文。

本实施例可参照实施例六的形式,将索引获取模块700划分为不同的功能子模块,用于执行获取不同索引类型的密文索引时的各步骤,本实施例不再赘述。

本申请实施例六和实施例七,可以根据上述方法实施例对数据存储装置和数据检索装置进行功能模块的划分,例如,可以对应各个功能划分各功能模块,也可以将两个或两个以上的功能模块集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。实施例六和实施例七中对模块的划分是示例性的,仅为一种逻辑功能划分,实际实现时可以有其他划分方式。

由以上技术方案可见,本申请能够实现数据录入、加密存储和密文索引创建的方法流程,通过传统的工具和方法无法对密文可读性导出,使数据必须基于特定环境才能使用,保证数据存储的安全性,避免数据泄露和被非法利用,并且使加密数据能够通过密文索引被检索,从而提高用户获取数据的效率以及数据存储效率。通过设定存储规则,使数据存储、检索过程具有良好的灵活性、安全性和高效性。

本申请实施例八还提供一种电子设备,如图15所示,所述电子设备40的硬件结构包括存储器41和处理器42,存储器41用于存储程序指令,处理器42被配置为调用并执行存储器41中的程序指令,以执行指定的方法步骤。基于本实施例所述的电子设备硬件结构,通过设定存储器41中的程序指令,可使处理器42执行前述数据存储方法或数据检索方法。

具体实现中,处理器42可被配置为调用并执行存储器41中的程序指令,执行实施例一-实施例四中任一实施例所述的数据存储方法中的各个步骤。或者,处理器42可被配置为调用并执行存储器41中的程序指令,执行实施例五所述的数据检索方法中的各个步骤。

电子设备40中还可设置相应的i/o接口,存储器41和处理器42可以集成一体,或者通过总线连接。本实施例中,处理器42可以是中央处理单元(centralprocessingunit,cpu),其他通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、或者专用集成电路等。存储器41可以为高速ram存储器、磁盘存储器、只读存储器、u盘、硬盘、快闪存储器或者非易失性存储器等。本申请各实施例所涉及的方法步骤,可以直接体现为硬件处理器执行完成,或者利用处理器中的硬件及软件模块组合执行完成。

本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的数据存储检索方法、装置、电子设备各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,并不构成对本发明保护范围的限定。本发明的真正范围和精神由所附的权利要求指出。

本说明书中各个实施例之间相同相似的部分互相参照即可。

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