CN113282542A - 具有前向安全的可验证可搜索加密方法、装置以及设备 - Google Patents
具有前向安全的可验证可搜索加密方法、装置以及设备 Download PDFInfo
- Publication number
- CN113282542A CN113282542A CN202110553780.2A CN202110553780A CN113282542A CN 113282542 A CN113282542 A CN 113282542A CN 202110553780 A CN202110553780 A CN 202110553780A CN 113282542 A CN113282542 A CN 113282542A
- Authority
- CN
- China
- Prior art keywords
- file identifier
- updated
- state
- security token
- information
- 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.)
- Granted
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/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- 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
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例公开了具有前向安全的可验证可搜索加密方法、装置以及设备。方案包括:对关键字进行不可逆转换处理,得到安全令牌;根据安全令牌、待更新的文件标识符,对本地对应的已有验证信息进行更新,得到已更新验证信息;根据安全令牌、已更新验证信息和已有验证信息,确定对应的已更新状态和上一状态;根据已更新状态和上一状态进行异或处理,生成加密待还原信息,并发送至服务器存储;在需要利用关键字搜索时,根据安全令牌,使服务器通过加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集;根据本地与关键字对应的已有验证信息,验证服务器返回的文件标识符合集是否为正确的搜索结果。
Description
技术领域
本说明书涉及安全技术领域,尤其涉及具有前向安全的可验证可搜索加密方法、装置以及设备。
背景技术
随着大数据技术的发展,产生的数据越来越多,数据的安全存储问题成为用户关注的焦点。
目前,客户端通常将文件存储在服务器上,并通过关键字,对服务器中存储的文件进行搜索。
基于此,还需要更具前向安全的、可验证的、可搜索加密的方案。
发明内容
本说明书一个或多个实施例提供具有前向安全的可验证可搜索加密方法、装置、设备以及存储介质,用以解决如下技术问题:需要更具前向安全的、可验证的、可搜索加密的方案。
为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
本说明书一个或多个实施例提供的一种具有前向安全的可验证可搜索加密方法,应用于客户端,所述方法包括:
对关键字进行不可逆转换处理,得到安全令牌;
根据所述安全令牌、待更新的文件标识符,对本地对应的已有验证信息进行更新,得到已更新验证信息;
根据所述安全令牌、所述已更新验证信息和所述已有验证信息,确定对应的已更新状态和上一状态;
根据所述已更新状态和上一状态进行异或处理,生成与所述已更新验证信息对应的加密待还原信息;
将所述加密待还原信息发送至服务器存储;
在需要利用所述关键字搜索时,根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集;
根据本地与所述关键字对应的已有验证信息,以及所述服务器返回的所述待验证的文件标识符合集,验证所述文件标识符合集是否为正确的搜索结果。
说明书一个或多个实施例提供的一种具有前向安全的可验证可搜索加密方法,应用于服务器,所述方法包括:
接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符、对应的已更新状态和加密待还原信息,进行存储;
在客户端针对所述关键字搜索时,根据所述安全令牌、对应的当前状态,搜索得到对应的加密待还原信息;
根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态;
根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集;
将所述待验证的文件标识符合集返回给所述客户端,使所述客户端根据所述关键字对应的已有验证信息,验证所述文件标识符合集是否为正确的搜索结果。
本说明书一个或多个实施例提供的一种具有前向安全的可验证可搜索加密装置,应用于客户端,所述装置包括:
不可逆模块,对关键字进行不可逆转换处理,得到安全令牌;
验证信息更新模块,根据所述安全令牌、待更新的文件标识符,对本地对应的已有验证信息进行更新,得到已更新验证信息;
状态确定模块,根据所述安全令牌、所述已更新验证信息和所述已有验证信息,确定对应的已更新状态和上一状态;
加密待还原信息生成模块,根据所述已更新状态和上一状态进行异或处理,生成与所述已更新验证信息对应的加密待还原信息;
发送模块,将所述加密待还原信息发送至服务器存储;
搜索模块,在需要利用所述关键字搜索时,根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集;
验证模块,根据本地与所述关键字对应的已有验证信息,以及所述服务器返回的所述待验证的文件标识符合集,验证所述文件标识符合集是否为正确的搜索结果。
本说明书一个或多个实施例提供的一种具有前向安全的可验证可搜索加密装置,应用于服务器,所述装置包括:
第一接收模块,接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符、对应的已更新状态和加密待还原信息,进行存储;
加密待还原信息搜索模块,在客户端针对所述关键字搜索时,根据所述安全令牌、对应的当前状态,搜索得到对应的加密待还原信息;
还原模块,根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态;
回溯模块,根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集;
返回模块,将所述待验证的文件标识符合集返回给所述客户端,使所述客户端根据所述关键字对应的已有验证信息,验证所述文件标识符合集是否为正确的搜索结果。
本说明书一个或多个实施例提供的一种具有前向安全的可验证可搜索加密设备,应用于客户端,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
对关键字进行不可逆转换处理,得到安全令牌;
根据所述安全令牌、待更新的文件标识符,对本地对应的已有验证信息进行更新,得到已更新验证信息;
根据所述安全令牌、所述已更新验证信息和所述已有验证信息,确定对应的已更新状态和上一状态;
根据所述已更新状态和上一状态进行异或处理,生成与所述已更新验证信息对应的加密待还原信息;
将所述加密待还原信息发送至服务器存储;
在需要利用所述关键字搜索时,根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集;
根据本地与所述关键字对应的已有验证信息,以及所述服务器返回的所述待验证的文件标识符合集,验证所述文件标识符合集是否为正确的搜索结果。
本说明书一个或多个实施例提供的一种具有前向安全的可验证可搜索加密设备,应用于服务器,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符、对应的已更新状态和加密待还原信息,进行存储;
在客户端针对所述关键字搜索时,根据所述安全令牌、对应的当前状态,搜索得到对应的加密待还原信息;
根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态;
根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集;
将所述待验证的文件标识符合集返回给所述客户端,使所述客户端根据所述关键字对应的已有验证信息,验证所述文件标识符合集是否为正确的搜索结果。
本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
对关键字进行不可逆转换处理,得到安全令牌;
根据所述安全令牌、待更新的文件标识符,对本地对应的已有验证信息进行更新,得到已更新验证信息;
根据所述安全令牌、所述已更新验证信息和所述已有验证信息,确定对应的已更新状态和上一状态;
根据所述已更新状态和上一状态进行异或处理,生成与所述已更新验证信息对应的加密待还原信息;
将所述加密待还原信息发送至服务器存储;
在需要利用所述关键字搜索时,根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集;
根据本地与所述关键字对应的已有验证信息,以及所述服务器返回的所述待验证的文件标识符合集,验证所述文件标识符合集是否为正确的搜索结果。
本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符、对应的已更新状态和加密待还原信息,进行存储;
在客户端针对所述关键字搜索时,根据所述安全令牌、对应的当前状态,搜索得到对应的加密待还原信息;
根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态;
根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集;
将所述待验证的文件标识符合集返回给所述客户端,使所述客户端根据所述关键字对应的已有验证信息,验证所述文件标识符合集是否为正确的搜索结果。
本说明书一个或多个实施例采用的上述至少一个技术方案能够达到以下有益效果:将关键字对应的安全令牌发送给服务器,可防止向服务器暴露文件存储的关键字的相关信息,提高文件存储的安全性,增强对文件注入攻击等不法攻击的抵抗力;确定存储的文件的验证信息,通过验证信息,对服务器返回的搜索到的文件进行完整性校验,能够保证文件存储的完整性,防止服务器对存储的文件的恶意更改;通过生成与验证信息的更新顺序相对应的状态,有利于对验证信息的追溯,便于获得有序的待验证的文件标识符合集,以节省客户端本地对文件标识符的存储操作;通过异或处理的方式,可降低数据处理的复杂度,减少搜索时的通信量,提高搜索效率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一个或多个实施例提供的应用于客户端的一种具有前向安全的可验证可搜索加密方法的流程示意图;
图2为本说明书一个或多个实施例提供的应用于服务器的一种具有前向安全的可验证可搜索加密方法的流程示意图;
图3为本说明书一个或多个实施例提供的一种应用场景下,图1、图2中方法的一种详细初始化流程示意图;
图4为本说明书一个或多个实施例提供的一种应用场景下,图1、图2中方法的一种详细文件更新流程示意图;
图5为本说明书一个或多个实施例提供的一种应用场景下,图1、图2中方法的一种详细文件搜索流程示意图;
图6为本说明书一个或多个实施例提供的应用于客户端的一种具有前向安全的可验证可搜索加密装置的结构示意图;
图7为本说明书一个或多个实施例提供的应用于服务器的一种具有前向安全的可验证可搜索加密装置的结构示意图;
图8为本说明书一个或多个实施例提供的应用于客户端的一种具有前向安全的可验证可搜索加密设备的结构示意图;
图9为本说明书一个或多个实施例提供的应用于服务器的一种具有前向安全的可验证可搜索加密设备的结构示意图。
具体实施方式
本说明书实施例提供具有前向安全的可验证可搜索加密方法、装置、设备以及存储介质。
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
在本说明书一个或多个实施例中,客户端对文件进行加密,发送至服务器进行存储。在搜索时,客户端将关键字发送至服务器,使服务器在存储的文件中,搜索与该关键字相关的文件,并将搜索到的文件返回给客户端。这种可搜索加密方式,能够提高文件存储的安全性,通过在服务器存储加密的文件,能够降低文件泄露的风险。但是,这种方案前向安全性较差,容易暴露关键字,而且不便于验证,存储负担大,本说明书进一步提供的一些方案能够解决这些问题,下面具体进行说明。
图1为本说明书一个或多个实施例提供的应用于客户端的一种具有前向安全的可验证可搜索加密方法的流程示意图。该方法可以应用于不同的业务领域,比如,互联网金融业务领域、电商业务领域、即时通讯业务领域、游戏业务领域、公务业务领域等。该流程可以由相应领域的计算设备(比如,支付业务对应的智能移动终端等)执行,流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。
图1中的流程可以包括以下步骤:
S102:对关键字进行不可逆转换处理,得到安全令牌。
关键字对应服务器中存储的若干文件,可作为对文件进行搜索的依据。关键字可包括文件中的字符、文件的属性等。
具体地,可采用哈希函数、伪随机函数等不可逆处理方法,对关键字进行不可逆转化处理,得到安全令牌,以增强文件存储与搜索的安全性。
S104:根据所述安全令牌、待更新的文件标识符,对本地对应的已有验证信息进行更新,得到已更新验证信息。
客户端在针对关键字对服务器中存储的文件进行更新时,比如增加关键字对应的文件、删除关键字对应的文件,根据待更新的文件的标识符,生成相应文件对应的验证信息,并对本地存储的已有验证信息进行更新,得到已更新验证信息,用于后续对文件完整性进行校验,提高将文件存储在服务器的安全性。
针对客户端的每次更新操作,均会生成对应的验证信息,并采用新生成的验证信息,对本地存储的已有验证信息进行覆盖更新,得到已更新信息。其中,在本地存储中,一个关键字对应一个验证信息,该验证信息随着文件更新而更新。
为了进一步提高安全性,客户端也可对本地存储的验证信息进行加密处理。
S106:根据所述安全令牌、所述已更新验证信息和所述已有验证信息,确定对应的已更新状态和上一状态。
客户端可根据安全令牌与已有验证信息,确定对应的上一状态,以及,根据安全令牌与已更新验证信息,确定对应的已更新状态。其中,状态表示客户端存储的与文件相关的信息,状态随着验证信息的更新而变化,可用于对验证信息进行标记和排序,且不会暴露验证信息。
具体地,客户端可通过伪随机函数,对安全令牌与验证信息进行处理,以得到对应的状态。
S108:根据所述已更新状态和上一状态进行异或处理,生成与所述已更新验证信息对应的加密待还原信息。
加密待还原信息与已更新验证信息相对应,同时与待更新的文件标识符相对应,通过反向的异或处理还原,可得到对应的文件标识符。并且,通过加密待还原信息,能得到上一状态,以实现对历史状态的追溯,进一步得到关键字对应的若干文件标识符。
S110:将所述加密待还原信息发送至服务器存储。
将加密待还原信息存储在服务器,可用于后续通过迭代追溯,得到对应的文件标识符。并且,客户端可将关键字的相关信息(比如安全令牌)一同发送至服务器,使服务器将加密待还原信息与关键字的相关信息进行关联存储,以便于文件搜索。
通过将处理后的关键字发送给服务器,可防止关键字的信息向服务器泄露,使本方案具有前向安全。
另外,客户端还可对待存储的文件进行加密处理,发送至服务器。但在确定文件的验证信息、搜索文件等过程中,可仅通过文件标识符进行操作,以降低操作的复杂度。
S112:在需要利用所述关键字搜索时,根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集。
客户端在搜索文件时,通过安全令牌,在服务器中搜索相关的文件,获得待验证的文件标识符合集。
S114:根据本地与所述关键字对应的已有验证信息,以及所述服务器返回的所述待验证的文件标识符合集,验证所述文件标识符合集是否为正确的搜索结果。
客户端可根据获得本地存储的已有验证信息的类似原理,对获得的待验证的文件标识符合集中的文件标识符进行处理,并将处理得到的结果与关键字对应的当前验证信息进行比较。根据两者的比较结果,可确定服务器返回的文件标识符合集是否正确及完整。
本方案将关键字对应的安全令牌发送给服务器,可防止向服务器暴露文件存储的关键字的相关信息,提高文件存储的安全性,增强对文件注入攻击等不法攻击的抵抗力;确定存储的文件的验证信息,通过验证信息,对服务器返回的搜索到的文件进行完整性校验,能够保证文件存储的完整性,防止服务器对存储的文件的恶意更改;通过生成与验证信息的更新顺序相对应的状态,有利于对验证信息的追溯,便于获得有序的待验证的文件标识符合集,以节省客户端本地对文件标识符的存储操作;通过异或处理的方式,可降低数据处理的复杂度,减少搜索时的通信量,提高搜索效率。
基于图1的方法,本说明书还提供了该方法的一些具体实施方案和扩展方案,下面继续进行说明。
在本说明书一个或多个实施例中,对关键字进行不可逆转换处理时,可首先对关键字进行哈希处理,得到对应的哈希值,根据指定的安全参数,确定伪随机函数以及伪随机函数中采用的密钥的长度,根据伪随机函数和密钥,对得到的哈希值进行进一步处理,得到安全令牌,从而进一步增加了关键字泄露的难度。更明确地,为了提高不法分子采用穷举等方式暴力破解的难度,可以更有针对性地根据所采用的哈希处理,确定可暴力搜索空间大于哈希处理的可暴力搜索空间的伪随机函数,用于得到安全令牌,如此,通过强度递增的双重保障,提高关键字的安全性,有利于提高文件存储的安全性。
其中,可暴力破解空间表示算法被暴力破解所需覆盖的可能性,可用于表示算法的安全性,可暴力破解空间越大,表示算法的安全性越高。安全参数可不仅用于指定密钥的长度,还可以是其他与算法的安全性相关的属性,比如进行伪随机的次数。
进一步地,客户端可对安全令牌与已更新状态进行哈希处理,生成针对安全令牌(也就是相应的关键字)的索引,并将索引发送给服务器,以便后续根据索引对文件进行搜索。这样能够将关键字与对应的状态关联起来,并进一步提高关键字的安全性。
在本说明书一个或多个实施例中,客户端在生成新的验证信息的过程中,首先根据安全令牌和待更新的文件标识符,生成第一更新因子。之后,对安全令牌对应的已有验证信息和第一更新因子进行异或处理,根据处理的结果更新本地存储,并得到已更新验证信息。
当本地存储中安全令牌对应的已有验证信息为空时,表示客户端针对该安全令牌的操作为初次操作,则本次生成的第一更新因子就作为新的验证信息,更新进本地存储中。
进一步地,客户端确定由待更新的文件标识符、上一状态组成的字符串。之后,对安全令牌、已更新状态进行哈希处理,得到加密因子。之后,对组成的字符串和加密因子进行异或处理,生成已更新验证信息对应的加密待还原信息。进行异或处理,便于后续直接通过反向的异或处理即可对加密待还原信息进行还原。
需要说明的是,为了方便后续对加密待还原信息进行还原后,能直接得到待更新的文件标识符、上一状态,则其组成的字符串是不经过处理的、直接拼接而成的字符串。
更进一步地,根据客户端对文件的不同更新操作,比如增加或删除文件,可将状态对应的更新操作也一同组成字符串,用于明确客户端每次针对关键字所执行的更新操作。
在本说明书一个或多个实施例中,客户端在根据关键字进行文件搜索时,采用与文件更新时相同的处理方法,对关键字进行不可逆转换处理,得到安全令牌,并确定安全令牌对应的已有验证信息,也就是本地存储中最近一次文件更新过程得到的安全令牌对应的验证信息。之后,客户端可根据安全令牌和已有验证信息,确定当前状态。客户端将安全令牌、当前状态发送至服务器,使服务器据此搜索到对应的加密待还原信息,并通过加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集,返回给客户端。
进一步地,客户端在接收到服务器返回的待验证的文件标识符合集后,可根据安全令牌和待验证的文件标识符合集中的文件标识符,迭代地生成若干第二更新因子,并对第二更新因子进行异或和处理,得到待验证的验证信息。
需要说明的是,待验证的验证信息的生成过程与上述文件更新时已更新验证信息的生成过程原理相似。在初次进行迭代时,第二更新因子直接作为本次迭代过程产生的待验证的验证信息。在后续的迭代过程中,新生成的第二更新因子与上一迭代过程中的待验证的验证信息进行异或,产生新的验证信息,直至迭代结束,可得到最终的待验证的验证信息。
按照文件更新的顺序,以及客户端存储的验证信息的产生原理,对安全令牌和待验证的文件标识符合集中相应的文件标识符进行处理,得到待验证的验证信息,以便与客户端本地存储的验证信息相比较。其中,客户端存储的已有验证信息具有正确性,待验证的验证信息表示服务器返回的文件标识符合集所对应的验证信息,其正确性存疑。
将待验证的验证信息与客户端存储的已有验证信息进行比较,确定两者是否一致,则可验证文件标识符合集是否为正确的搜索结果。若两者一致,则客户端得到的文件标识符合集是正确且完整的,若两者不一致,则客户端得到的文件标识符合集存在错误,可能存在服务器恶意修改文件、服务器搜索有误等情况。
图2为本说明书一个或多个实施例提供的应用于服务器的一种具有前向安全的可验证可搜索加密方法的流程示意图。该方法可以应用于不同的业务领域,比如,互联网金融业务领域、电商业务领域、即时通讯业务领域、游戏业务领域、公务业务领域等。该流程可以由相应领域的计算设备(比如,支付业务对应的智能移动终端等)执行,流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。
图2中的流程可以包括以下步骤:
S202:接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符、对应的已更新状态和加密待还原信息,进行存储。
在客户端更新文件的过程中,服务器接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符与对应的已更新状态、加密待还原信息,进行关联存储。其中,已更新状态用于记录客户端进行文件更新后本地存储的更新后的信息,更新操作可包括删除文件、增加文件等,加密待还原信息与文件的原始验证信息相关,可用于验证文件的完整性。
S204:在客户端针对所述关键字搜索时,根据所述安全令牌、对应的当前状态,搜索得到对应的加密待还原信息。
在文件搜索的过程中,服务器接收客户端发送的关键字的信息(比如安全令牌),确定关键字对应的当前状态。其中,搜索初始时关键字对应的当前状态表示客户端最近一次进行文件更新后对应的本地存储的状态。
S206:根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态。
与文件更新过程中得到加密待还原信息的过程相对应的,根据安全令牌、当前状态,对加密待还原信息进行反向异或处理,可得到由文件标识符、上一状态组成的字符串。该文件标识符与搜索得到的与关键字相对应,将该文件标识符加入待验证的文件标识符合集中,以便后续返回给客户端。
S208:根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集。
在每轮搜索的过程中,可根据当前状态,得到上一状态的相关信息,实现向上一状态的追溯。于是,经过多轮的迭代,不断地向历史状态回溯,可得到关键字对应的所有文件标识符,形成待验证的文件标识符合集。并且,对每轮迭代中按照相应状态得到的文件标识符,可根据得到的顺序对其进行排序,可知,排序的顺序与客户端进行文件更新的顺序一致,这样便于后续客户端直接按照排序的顺序,得到待验证的文件标识符合集对应的待验证的验证信息。
S210:将所述待验证的文件标识符合集返回给所述客户端,使所述客户端根据所述关键字对应的已有验证信息,验证所述文件标识符合集是否为正确的搜索结果。
服务器将根据关键字搜索得到的待验证的文件标识符合集返回给客户端,由客户端根据本地存储的关键字对应的已有验证信息,检验文件标识符合集的正确性。
本方案将关键字对应的安全令牌发送给服务器,可防止向服务器暴露文件存储的关键字的相关信息,提高文件存储的安全性,增强对文件注入攻击等不法攻击的抵抗力;确定存储的文件的验证信息,通过验证信息,对服务器返回的搜索到的文件进行完整性校验,能够保证文件存储的完整性,防止服务器对存储的文件的恶意更改;通过生成与验证信息的更新顺序相对应的状态,有利于对验证信息的追溯,便于获得有序的待验证的文件标识符合集,以节省客户端本地对文件标识符的存储操作;通过异或处理的方式,可降低数据处理的复杂度,减少搜索时的通信量,提高搜索效率。
基于图2的方法,本说明书还提供了该方法的一些具体实施方案和扩展方案,下面继续进行说明。
在本说明书一个或多个实施例中,服务器在搜索文件的迭代过程中,得到上一状态后,可将得到的上一状态重新作为当前状态,搜索该当前状态对应的加密待还原信息,并得到对应的文件标识符,直至当前状态对应的加密待还原信息为空时,表示迭代结束,则可得到与关键字对应的待验证的文件标识符合集。
进一步地,客户端在更新文件的过程中,可将更新操作一同发送给服务器。服务器可将更新操作与待更新的文件标识符关联存储。后续在文件搜索的过程中,服务器可一同得到文件标识符对应的更新操作,并返回给客户端,使客户端明确对相应文件标识符所执行的更新操作。
更进一步地,服务器接收到客户端根据安全令牌与已更新状态,生成的索引时,可对索引进行存储。之后,在搜索文件的过程中,服务器可根据索引,搜索得到对应的加密待还原信息。
需要说明的是,上述过程中采用的哈希函数,可以是高级加密标准(AdvancedEncryption Standard,AES),也可以是伪随机函数(Pseudo Random Function,PRF),本说明书对此不做限定。
结合前面的说明,本说明书一个或多个实施例提供了的一种应用场景下,图1、图2中方法的一种详细初始化流程示意图,该流程中使用了前面一些可选的方案,该流程如图3所示。
在图3的流程中,客户端的步骤包括:第一步,进行初始化时,生成后续文件更新、文件搜索过程中需要用到的密钥k1,k2;第二步,初始化(key,value)形式的存储映射,用于存储文件的关键字对应的安全令牌与验证信息。
服务器的步骤包括:第一步,进行初始化时,初始化(key,value)形式的存储映射,用于存储索引与加密待还原信息。
结合前面的说明,本说明书一个或多个实施例提供了的一种应用场景下,图1、图2中方法的一种详细文件更新流程示意图,该流程中使用了前面一些可选的方案,该流程如图4所示。
在图4的流程中,客户端确定待更新内容,包括关键字w与待更新的文件标识符ind。
主要步骤包括:
第一步,通过哈希函数h,对关键字w进行处理,得到对应的哈希值。再通过伪随机函数F1,对哈希值进行处理,得到关键字对应的安全令牌tw。具体可通过tw=F1(h(w))实现。
第二步,根据安全令牌tw,从存储映射中获取关键字w对应的已有验证信息tag。
第三步,根据伪随机函数F2,安全令牌tw和已有验证信息tag,得到对应的上一状态st'。具体可通过st'=F2(tw||tag)得到上一状态st'。
第四步,采用哈希函数h3,对安全令牌tw、待更新文件标识符ind和更新操作op进行哈希处理,得到第一更新因子h3(tw||ind||op)。通过第一更新因子,与已有验证信息进行异或处理,得到新的验证信息tag,用于对本地存储的验证信息进行更新。具体可通过实现。
第五步,根据伪随机函数F2,安全令牌tw和新的验证信息tag,得到对应的已更新状态st。具体可通过st=F2(tw||tag)实现。
第六步,采用哈希函数h1,对安全令牌tw和已更新状态st进行哈希处理,生成对应的索引u。具体可通过u=h1(tw||st)实现。
第七步,采用哈希函数h2,对安全令牌tw和已更新状态st进行哈希处理,得到加密因子h2(tw||st)。对待更新的文件标识符ind、更新操作op、上一状态st'、组成的字符串,以及加密因子进行异或处理,得到加密待还原信息e。具体可通过实现。
第八步,将第四步得到的新的验证信息更新到存储映射中,得到已更新验证信息。
第九步,将生成的索引u、加密待还原信息e发送至服务器进行存储。
服务器的步骤包括:第一步,将索引u与加密待还原信息e更新进存储映射中。
结合前面的说明,本说明书一个或多个实施例提供了的一种应用场景下,图1、图2中方法的一种详细文件搜索流程示意图,该流程中使用了前面一些可选的方案,该流程如图5所示。
在图5的流程中,客户端确定需要搜索的关键字w。
主要步骤包括:
第一步,通过哈希函数h,对关键字进行处理w,得到对应的哈希值。再通过伪随机函数F1,对哈希值进行处理,得到关键字w对应的安全令牌tw。具体可通过tw=F1(h(w))实现。
第二步,根据安全令牌tw,从存储映射中获取关键字对应的已有验证信息tag。
第三步,根据伪随机函数F2,对安全令牌tw和已有验证信息tag进行处理,得到当前状态st。具体可通过stc=F2(tw||tag)实现。
第四步,将安全令牌tw和当前状态st发送给服务器,进行搜索。
服务器的步骤包括:
第一步,采用哈希函数h1,对安全令牌tw和当前状态st进行哈希,得到索引u。具体可通过u=h1(tw||st)实现。
第二步,根据索引u,从存储映射中确定对应的加密待还原信息e。
第三步,对安全令牌tw和当前状态st进行哈希处理,得到与图4中相对应的加密因子h2(tw||st)。对加密待还原信息e和加密因子进行异或处理,得到文件标识符ind、更新操作op、上一状态st'组成的字符串。具体可通过实现。
第四步,循环第一步到第三步,直到上一状态为空。
第五步,根据得到的所有文件标识符,确定待验证的文件标识符合集,发送给客户端。
客户端的步骤包括:
第一,针对待验证的文件标识符合集中的每个待验证的文件标识符ind,采用哈希函数h3,对安全令牌tw、文件标识符ind和更新操作op进行哈希处理,迭代地得到第二更新因子h3(tw||ind||op),并对得到的第二更新因子进行异或处理,生成待验证的验证信息tag'。具体可通过实现。
通过第二更新因子对验证信息进行异或和处理,可得到对应整个文件标识符合集的验证信息,其可通过固定长度的字符串来验证文件标识符合集中的一组元素。
第二,确定待验证的验证信息tag'与关键字对应的已有验证信息tag是否相同,若相同,则搜索结果是正确的,若不相同,则搜索结果存在错误。
基于同样的思路,本说明书一个或多个实施例还提供了上述方法对应的装置和设备,如图6、图7、图8、图9所示。
图6为本说明书一个或多个实施例提供的应用于客户端的一种具有前向安全的可验证可搜索加密装置的结构示意图,所述装置包括:
不可逆模块602,对关键字进行不可逆转换处理,得到安全令牌;
验证信息更新模块604,根据所述安全令牌、待更新的文件标识符,对本地对应的已有验证信息进行更新,得到已更新验证信息;
状态确定模块606,根据所述安全令牌、所述已更新验证信息和所述已有验证信息,确定对应的已更新状态和上一状态;
加密待还原信息生成模块608,根据所述已更新状态和上一状态进行异或处理,生成与所述已更新验证信息对应的加密待还原信息;
发送模块610,将所述加密待还原信息发送至服务器存储;
搜索模块612,在需要利用所述关键字搜索时,根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集;
验证模块614,根据本地与所述关键字对应的已有验证信息,以及所述服务器返回的所述待验证的文件标识符合集,验证所述文件标识符合集是否为正确的搜索结果。
可选地,所述不可逆模块602对关键字进行哈希处理,得到对应的哈希值;根据指定的安全参数,确定伪随机函数以及所述伪随机函数中采用的密钥的长度;根据所述伪随机函数和所述密钥,对所述哈希值进行处理,得到安全令牌。
可选地,所述验证信息更新模块604根据所述安全令牌、待更新的文件标识符,生成第一更新因子;对所述第一更新因子和本地对应的已有验证信息进行异或处理,得到已更新验证信息。
可选地,所述加密待还原信息生成模块608确定由所述待更新的文件标识符、所述上一状态组成的字符串;对所述安全令牌、所述已更新状态进行哈希处理,得到加密因子;对所述字符串和所述加密因子进行异或处理,生成所述已更新验证信息对应的加密待还原信息。
可选地,所述搜索模块612对关键字进行不可逆转换处理,得到安全令牌,并确定所述安全令牌对应的已有验证信息;根据所述安全令牌、已有验证信息,确定当前状态;将所述安全令牌、当前状态发送至服务器,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集。
可选地,所述验证模块614接收所述服务器返回的所述待验证的文件标识符合集;根据所述安全令牌和所述待验证的文件标识符合集中的文件标识符,迭代地生成第二更新因子,并对生成的第二更新因子进行异或处理,得到待验证的验证信息;将所述待验证的验证信息和所述关键字对应的已有验证信息进行比较,验证所述文件标识符合集是否为正确的搜索结果。
图7为本说明书一个或多个实施例提供的应用于服务器的一种具有前向安全的可验证可搜索加密装置的结构示意图,图中的虚线方框表示可选的模块,所述装置包括:
第一接收模块702,接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符、对应的已更新状态和加密待还原信息,进行存储;
加密待还原信息搜索模块704,在客户端针对所述关键字搜索时,根据所述安全令牌、对应的当前状态,搜索得到对应的加密待还原信息;
还原模块706,根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态;
回溯模块708,根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集;
返回模块710,将所述待验证的文件标识符合集返回给所述客户端,使所述客户端根据所述关键字对应的已有验证信息,验证所述文件标识符合集是否为正确的搜索结果。
可选地,所述回溯模块708在迭代过程中,将得到的所述上一状态重新作为当前状态,搜索得到对应的加密待还原信息,并得到对应的文件标识符;确定当前状态对应的加密待还原信息为空时,得到与所述关键字对应的待验证的文件标识符合集。
可选地,所述装置还包括:第二接收模块712,接收客户端发送的与待更新的文件标识符对应的更新操作,进行存储;所述回溯模块708,根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集,以及对应的更新操作。
可选地,所述装置还包括:索引模块714,接收所述客户端根据所述安全令牌和所述已更新状态,生成的索引,进行存储;在客户端针对所述关键字搜索时,根据所述客户端发送的索引,搜索得到对应的加密待还原信息。
图8为本说明书一个或多个实施例提供的应用于客户端的一种具有前向安全的可验证可搜索加密设备的结构示意图,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
对关键字进行不可逆转换处理,得到安全令牌;
根据所述安全令牌、待更新的文件标识符,对本地对应的已有验证信息进行更新,得到已更新验证信息;
根据所述安全令牌、所述已更新验证信息和所述已有验证信息,确定对应的已更新状态和上一状态;
根据所述已更新状态和上一状态进行异或处理,生成与所述已更新验证信息对应的加密待还原信息;
将所述加密待还原信息发送至服务器存储;
在需要利用所述关键字搜索时,根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集;
根据本地与所述关键字对应的已有验证信息,以及所述服务器返回的所述待验证的文件标识符合集,验证所述文件标识符合集是否为正确的搜索结果。
处理器与存储器之间可以通过总线通信,设备还可以包括与其他设备通信的输入/输出接口。
图9为本说明书一个或多个实施例提供的应用于服务器的一种具有前向安全的可验证可搜索加密设备的结构示意图,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符、对应的已更新状态和加密待还原信息,进行存储;
在客户端针对所述关键字搜索时,根据所述安全令牌、对应的当前状态,搜索得到对应的加密待还原信息;
根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态;
根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集;
将所述待验证的文件标识符合集返回给所述客户端,使所述客户端根据所述关键字对应的已有验证信息,验证所述文件标识符合集是否为正确的搜索结果。
处理器与存储器之间可以通过总线通信,设备还可以包括与其他设备通信的输入/输出接口。
基于同样的思路,本说明书一个或多个实施例还提供了对应于上述方法的应用于客户端的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
对关键字进行不可逆转换处理,得到安全令牌;
根据所述安全令牌、待更新的文件标识符,对本地对应的已有验证信息进行更新,得到已更新验证信息;
根据所述安全令牌、所述已更新验证信息和所述已有验证信息,确定对应的已更新状态和上一状态;
根据所述已更新状态和上一状态进行异或处理,生成与所述已更新验证信息对应的加密待还原信息;
将所述加密待还原信息发送至服务器存储;
在需要利用所述关键字搜索时,根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集;
根据本地与所述关键字对应的已有验证信息,以及所述服务器返回的所述待验证的文件标识符合集,验证所述文件标识符合集是否为正确的搜索结果。
基于同样的思路,本说明书一个或多个实施例还提供了对应于上述方法的应用于服务器的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符、对应的已更新状态和加密待还原信息,进行存储;
在客户端针对所述关键字搜索时,根据所述安全令牌、对应的当前状态,搜索得到对应的加密待还原信息;
根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态;
根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集;
将所述待验证的文件标识符合集返回给所述客户端,使所述客户端根据所述关键字对应的已有验证信息,验证所述文件标识符合集是否为正确的搜索结果。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书实施例可提供为方法、系统、或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (22)
1.一种具有前向安全的可验证可搜索加密方法,应用于客户端,所述方法包括:
对关键字进行不可逆转换处理,得到安全令牌;
根据所述安全令牌、待更新的文件标识符,对本地对应的已有验证信息进行更新,得到已更新验证信息;
根据所述安全令牌、所述已更新验证信息和所述已有验证信息,确定对应的已更新状态和上一状态;
根据所述已更新状态和上一状态进行异或处理,生成与所述已更新验证信息对应的加密待还原信息;
将所述加密待还原信息发送至服务器存储;
在需要利用所述关键字搜索时,根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集;
根据本地与所述关键字对应的已有验证信息,以及所述服务器返回的所述待验证的文件标识符合集,验证所述文件标识符合集是否为正确的搜索结果。
2.如权利要求1所述的方法,所述对关键字进行不可逆转换处理,得到安全令牌,具体包括:
对关键字进行哈希处理,得到对应的哈希值;
根据指定的安全参数,确定伪随机函数以及所述伪随机函数中采用的密钥的长度;
根据所述伪随机函数和所述密钥,对所述哈希值进行处理,得到安全令牌。
3.如权利要求1所述的方法,所述根据所述安全令牌、待更新的文件标识符,对本地对应的已有验证信息进行更新,得到已更新验证信息,具体包括:
根据所述安全令牌、待更新的文件标识符,生成第一更新因子;
对所述第一更新因子和本地对应的已有验证信息进行异或处理,得到已更新验证信息。
4.如权利要求1所述的方法,所述根据所述已更新状态和上一状态进行异或处理,生成与所述已更新验证信息对应的加密待还原信息,具体包括:
确定由所述待更新的文件标识符、所述上一状态组成的字符串;
对所述安全令牌、所述已更新状态进行哈希处理,得到加密因子;
对所述字符串和所述加密因子进行异或处理,生成所述已更新验证信息对应的加密待还原信息。
5.如权利要求1所述的方法,所述根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集,具体包括:
对关键字进行不可逆转换处理,得到安全令牌,并确定所述安全令牌对应的已有验证信息;
根据所述安全令牌、已有验证信息,确定当前状态;
将所述安全令牌、当前状态发送至服务器,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集。
6.如权利要求1所述的方法,所述根据本地与所述关键字对应的已有验证信息,以及所述服务器返回的所述待验证的文件标识符合集,验证所述文件标识符合集是否为正确的搜索结果,具体包括:
接收所述服务器返回的所述待验证的文件标识符合集;
根据所述安全令牌和所述待验证的文件标识符合集中的文件标识符,迭代地生成第二更新因子,并对生成的第二更新因子进行异或处理,得到待验证的验证信息;
将所述待验证的验证信息和所述关键字对应的已有验证信息进行比较,验证所述文件标识符合集是否为正确的搜索结果。
7.一种具有前向安全的可验证可搜索加密方法,应用于服务器,所述方法包括:
接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符、对应的已更新状态和加密待还原信息,进行存储;
在客户端针对所述关键字搜索时,根据所述安全令牌、对应的当前状态,搜索得到对应的加密待还原信息;
根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态;
根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集;
将所述待验证的文件标识符合集返回给所述客户端,使所述客户端根据所述关键字对应的已有验证信息,验证所述文件标识符合集是否为正确的搜索结果。
8.如权利要求7所述的方法,所述根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集,具体包括:
在迭代过程中,将得到的所述上一状态重新作为当前状态,搜索得到对应的加密待还原信息,并得到对应的文件标识符;
确定当前状态对应的加密待还原信息为空时,得到与所述关键字对应的待验证的文件标识符合集。
9.如权利要求7所述的方法,所述方法还包括:
接收客户端发送的与待更新的文件标识符对应的更新操作,进行存储;
所述根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集,具体包括:
根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集,以及对应的更新操作。
10.如权利要求7所述的方法,所述方法还包括:
接收所述客户端根据所述安全令牌和所述已更新状态,生成的索引,进行存储;
在客户端针对所述关键字搜索时,根据所述客户端发送的索引,搜索得到对应的加密待还原信息。
11.一种具有前向安全的可验证可搜索加密装置,应用于客户端,所述装置包括:
不可逆模块,对关键字进行不可逆转换处理,得到安全令牌;
验证信息更新模块,根据所述安全令牌、待更新的文件标识符,对本地对应的已有验证信息进行更新,得到已更新验证信息;
状态确定模块,根据所述安全令牌、所述已更新验证信息和所述已有验证信息,确定对应的已更新状态和上一状态;
加密待还原信息生成模块,根据所述已更新状态和上一状态进行异或处理,生成与所述已更新验证信息对应的加密待还原信息;
发送模块,将所述加密待还原信息发送至服务器存储;
搜索模块,在需要利用所述关键字搜索时,根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集;
验证模块,根据本地与所述关键字对应的已有验证信息,以及所述服务器返回的所述待验证的文件标识符合集,验证所述文件标识符合集是否为正确的搜索结果。
12.如权利要求11所述的装置,所述不可逆模块对关键字进行哈希处理,得到对应的哈希值;
根据指定的安全参数,确定伪随机函数以及所述伪随机函数中采用的密钥的长度;
根据所述伪随机函数和所述密钥,对所述哈希值进行处理,得到安全令牌。
13.如权利要求11所述的装置,所述验证信息更新模块根据所述安全令牌、待更新的文件标识符,生成第一更新因子;
对所述第一更新因子和本地对应的已有验证信息进行异或处理,得到已更新验证信息。
14.如权利要求11所述的装置,所述加密待还原信息生成模块确定由所述待更新的文件标识符、所述上一状态组成的字符串;
对所述安全令牌、所述已更新状态进行哈希处理,得到加密因子;
对所述字符串和所述加密因子进行异或处理,生成所述已更新验证信息对应的加密待还原信息。
15.如权利要求11所述的装置,所述搜索模块对关键字进行不可逆转换处理,得到安全令牌,并确定所述安全令牌对应的已有验证信息;
根据所述安全令牌、已有验证信息,确定当前状态;
将所述安全令牌、当前状态发送至服务器,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集。
16.如权利要求11所述的装置,所述验证模块接收所述服务器返回的所述待验证的文件标识符合集;
根据所述安全令牌和所述待验证的文件标识符合集中的文件标识符,迭代地生成第二更新因子,并对生成的第二更新因子进行异或处理,得到待验证的验证信息;
将所述待验证的验证信息和所述关键字对应的已有验证信息进行比较,验证所述文件标识符合集是否为正确的搜索结果。
17.一种具有前向安全的可验证可搜索加密装置,应用于服务器,所述装置包括:
第一接收模块,接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符、对应的已更新状态和加密待还原信息,进行存储;
加密待还原信息搜索模块,在客户端针对所述关键字搜索时,根据所述安全令牌、对应的当前状态,搜索得到对应的加密待还原信息;
还原模块,根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态;
回溯模块,根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集;
返回模块,将所述待验证的文件标识符合集返回给所述客户端,使所述客户端根据所述关键字对应的已有验证信息,验证所述文件标识符合集是否为正确的搜索结果。
18.如权利要求17所述的装置,所述回溯模块在迭代过程中,将得到的所述上一状态重新作为当前状态,搜索得到对应的加密待还原信息,并得到对应的文件标识符;
确定当前状态对应的加密待还原信息为空时,得到与所述关键字对应的待验证的文件标识符合集。
19.如权利要求17所述的装置,所述装置还包括:
第二接收模块,接收客户端发送的与待更新的文件标识符对应的更新操作,进行存储;
所述回溯模块,根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集,以及对应的更新操作。
20.如权利要求17所述的装置,所述装置还包括:
索引模块,接收所述客户端根据所述安全令牌和所述已更新状态,生成的索引,进行存储;
在客户端针对所述关键字搜索时,根据所述客户端发送的索引,搜索得到对应的加密待还原信息。
21.一种具有前向安全的可验证可搜索加密设备,应用于客户端,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
对关键字进行不可逆转换处理,得到安全令牌;
根据所述安全令牌、待更新的文件标识符,对本地对应的已有验证信息进行更新,得到已更新验证信息;
根据所述安全令牌、所述已更新验证信息和所述已有验证信息,确定对应的已更新状态和上一状态;
根据所述已更新状态和上一状态进行异或处理,生成与所述已更新验证信息对应的加密待还原信息;
将所述加密待还原信息发送至服务器存储;
在需要利用所述关键字搜索时,根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集;
根据本地与所述关键字对应的已有验证信息,以及所述服务器返回的所述待验证的文件标识符合集,验证所述文件标识符合集是否为正确的搜索结果。
22.一种具有前向安全的可验证可搜索加密设备,应用于服务器,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符、对应的已更新状态和加密待还原信息,进行存储;
在客户端针对所述关键字搜索时,根据所述安全令牌、对应的当前状态,搜索得到对应的加密待还原信息;
根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态;
根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集;
将所述待验证的文件标识符合集返回给所述客户端,使所述客户端根据所述关键字对应的已有验证信息,验证所述文件标识符合集是否为正确的搜索结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110553780.2A CN113282542B (zh) | 2021-05-20 | 2021-05-20 | 具有前向安全的可验证可搜索加密方法、装置以及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110553780.2A CN113282542B (zh) | 2021-05-20 | 2021-05-20 | 具有前向安全的可验证可搜索加密方法、装置以及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113282542A true CN113282542A (zh) | 2021-08-20 |
CN113282542B CN113282542B (zh) | 2022-07-12 |
Family
ID=77280383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110553780.2A Active CN113282542B (zh) | 2021-05-20 | 2021-05-20 | 具有前向安全的可验证可搜索加密方法、装置以及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113282542B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108055122A (zh) * | 2017-11-17 | 2018-05-18 | 西安电子科技大学 | 可验证的防内存泄露动态可搜索加密方法、云服务器 |
CN109496403A (zh) * | 2016-07-25 | 2019-03-19 | 罗伯特·博世有限公司 | 用于具有前向隐私与委托可验证性的动态可搜索对称加密的方法和系统 |
US20190205407A1 (en) * | 2017-12-28 | 2019-07-04 | Dropbox, Inc. | Directory snapshots with searchable file paths |
CN110334526A (zh) * | 2019-05-30 | 2019-10-15 | 西安电子科技大学 | 一种支持验证的前向安全可搜索加密存储系统及方法 |
CN112182630A (zh) * | 2020-10-28 | 2021-01-05 | 青岛大学 | 一种对称可搜索加密方法、装置、设备及介质 |
-
2021
- 2021-05-20 CN CN202110553780.2A patent/CN113282542B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109496403A (zh) * | 2016-07-25 | 2019-03-19 | 罗伯特·博世有限公司 | 用于具有前向隐私与委托可验证性的动态可搜索对称加密的方法和系统 |
US20190278939A1 (en) * | 2016-07-25 | 2019-09-12 | Robert Bosch Gmbh | Method and System for Dynamic Searchable Symmetric Encryption with Forward Privacy and Delegated Verifiability |
CN108055122A (zh) * | 2017-11-17 | 2018-05-18 | 西安电子科技大学 | 可验证的防内存泄露动态可搜索加密方法、云服务器 |
US20190205407A1 (en) * | 2017-12-28 | 2019-07-04 | Dropbox, Inc. | Directory snapshots with searchable file paths |
CN110334526A (zh) * | 2019-05-30 | 2019-10-15 | 西安电子科技大学 | 一种支持验证的前向安全可搜索加密存储系统及方法 |
CN112182630A (zh) * | 2020-10-28 | 2021-01-05 | 青岛大学 | 一种对称可搜索加密方法、装置、设备及介质 |
Non-Patent Citations (2)
Title |
---|
YU GUO等: "Verifiable and Forward-secure Encrypted Search Using Blockchain Techniques", 《ICC 2020 - 2020 IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (ICC)》 * |
李涵等: "一种支持前向安全更新和验证的加密搜索算法", 《西安电子科技大学学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113282542B (zh) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111885024B (zh) | 一种登录信息处理方法及设备 | |
US11537626B2 (en) | Full-text fuzzy search method for similar-form Chinese characters in ciphertext domain | |
US10419216B2 (en) | Keying infrastructure | |
US9740879B2 (en) | Searchable encryption with secure and efficient updates | |
CN107948146B (zh) | 一种混合云中基于属性加密的连接关键词检索方法 | |
Awad et al. | Chaotic searchable encryption for mobile cloud storage | |
CN110689349A (zh) | 一种区块链中的交易哈希值存储和搜索方法及装置 | |
JP5392439B2 (ja) | 暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラム | |
CN105337925A (zh) | 一种用户账户管理方法及装置 | |
CN114048448A (zh) | 基于区块链的动态可搜索加密方法及装置 | |
CN108616361B (zh) | 一种识别设备唯一性的方法及装置 | |
CN108370312B (zh) | 加密装置、检索装置、计算机能读取的记录介质、加密方法和检索方法 | |
CN117421771A (zh) | 一种面向结构化数据的可搜索加密方法、装置及电子设备 | |
CN113282542B (zh) | 具有前向安全的可验证可搜索加密方法、装置以及设备 | |
CN113282543B (zh) | 具有前向安全的可验证可搜索加密方法、装置以及设备 | |
CN116257303A (zh) | 一种数据安全处理的方法、装置、存储介质及电子设备 | |
CN110457954B (zh) | 合同管理装置与方法 | |
JPWO2017168798A1 (ja) | 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法 | |
CN113158087A (zh) | 一种空间文本的查询方法及装置 | |
CN110995447A (zh) | 一种数据存证方法、装置、设备以及介质 | |
CN113448919A (zh) | 用于建立和验证索引文件的方法、设备和计算机程序产品 | |
CN114615050B (zh) | 基于区块链存储的可验证的可搜索对称加密方法 | |
CN117992989B (zh) | 一种解密方法、系统、装置及存储介质 | |
CN115686380B (zh) | 一种文件存储的方法、装置、计算机设备及存储介质 | |
CN115114334A (zh) | 在区块链中查询数据的方法及装置 |
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 |