CN113282543A - 具有前向安全的可验证可搜索加密方法、装置以及设备 - Google Patents

具有前向安全的可验证可搜索加密方法、装置以及设备 Download PDF

Info

Publication number
CN113282543A
CN113282543A CN202110553793.XA CN202110553793A CN113282543A CN 113282543 A CN113282543 A CN 113282543A CN 202110553793 A CN202110553793 A CN 202110553793A CN 113282543 A CN113282543 A CN 113282543A
Authority
CN
China
Prior art keywords
file identifier
verification information
information
encryption
security token
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
Application number
CN202110553793.XA
Other languages
English (en)
Other versions
CN113282543B (zh
Inventor
尹栋
李漓春
李翰林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202110553793.XA priority Critical patent/CN113282543B/zh
Publication of CN113282543A publication Critical patent/CN113282543A/zh
Application granted granted Critical
Publication of CN113282543B publication Critical patent/CN113282543B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (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,k3;第二步,初始化(key,value)形式的存储映射,用于存储文件的关键字对应的安全令牌与计数器。
服务器的步骤包括:第一步,进行初始化时,初始化(key,value)形式的存储映射,用于存储索引与加密待还原信息。
结合前面的说明,本说明书一个或多个实施例提供了的一种应用场景下,图1、图2中方法的一种文件更新初始化流程示意图,该流程中使用了前面一些可选的方案,该流程如图4所示。
在图4的流程中,客户端确定待更新内容,包括关键字w与待更新文件标识符ind。
主要步骤包括:
第一步,通过哈希函数h,对关键字w进行处理,得到对应的哈希值。再通过伪随机函数F1,对哈希值进行处理,得到关键字对应的安全令牌tw。具体可通过tw=F1(h(w))实现。
第二步,根据安全令牌tw,从存储映射中获取关键字w的计数器c,并对计数器进行更新,比如加一。
第三步,根据伪随机函数F2,安全令牌tw和计数器c,得到已更新状态stc和上一状态stc-1。具体可通过stc=F2(tw||c)得到已更新状态stc,通过stc-1=F2(tw||c-1)得到上一状态stc-1
第四步,采用哈希函数h3,对安全令牌tw和待更新文件标识符ind进行哈希处理,得到原始验证信息tag。具体可通过tag=h3(tw||ind)实现。
第五步,根据伪随机函数F3,对安全令牌tw和上一状态stc-1对应的计数器c-1进行处理,生成第一加密因子F3(tw||c-1)。根据伪随机函数F3,对安全令牌tw和已更新状态stc对应的计数器c进行处理,生成第二加密因子F3(tw||c)。对第一加密因子、原始验证信息tag、第二加密因子进行异或处理,生成第一加密验证信息etag。具体可通过
Figure BDA0003076338250000121
实现。
通过对tag进行加密,得到etag再发送给服务器,可提高验证信息的安全性,防止服务器恶意篡改验证信息,致使无法对文件的正确性进行验证。并且,采用异或同态的方式进行加密,可便于后续服务器在搜索得到若干文件的验证信息时,通过异或和处理,基于两个相同的字符串异或为0的原理,仅返回最终的异或和,从而减少通信。
第六步,采用哈希函数h1,对安全令牌tw和已更新状态stc进行哈希处理,生成对应的索引u。具体可通过u=h1(tw||stc)实现。
第七步,采用哈希函数h2,对安全令牌tw和已更新状态stc进行哈希处理,得到第三加密因子h2(tw||stc)。对待更新文件标识符ind、更新操作op、上一状态stc-1、第一加密验证信息etag组成的字符串,以及第三加密因子进行异或处理,得到加密待还原信息e。具体可通过
Figure BDA0003076338250000122
实现。
第八步,将更新后的计数器存储到存储映射中。
第九步,将生成的索引u、加密待还原信息e发送至服务器进行存储。
服务器的步骤包括:第一步,将索引u与加密待还原信息e更新进存储映射中。
结合前面的说明,本说明书一个或多个实施例提供了的一种应用场景下,图1、图2中方法的一种文件搜索初始化流程示意图,该流程中使用了前面一些可选的方案,该流程如图5所示。
在图5的流程中,客户端确定需要搜索的关键字w。
主要步骤包括:
第一步,通过哈希函数h,对关键字进行处理w,得到对应的哈希值。再通过伪随机函数F1,对哈希值进行处理,得到关键字w对应的安全令牌tw。具体可通过tw=F1(h(w))实现。
第二步,根据安全令牌tw,从存储映射中获取关键字的计数器c。
第三步,根据伪随机函数F2,对安全令牌tw和计数器c进行处理,得到当前状态stc。具体可通过stc=F2(tw||c)实现。
第四步,将安全令牌tw和当前状态stc发送给服务器,进行搜索。
服务器的步骤包括:
第一步,采用哈希函数h1,对安全令牌tw和当前状态stc进行哈希,得到索引u。具体可通过u=h1(tw||stc)实现。
第二步,根据索引u,从存储映射中确定对应的加密待还原信息e。
第三步,对安全令牌tw和当前状态stc进行哈希处理,得到与图4中相对应的第三加密因子h2(tw||stc)。对加密待还原信息e和第三加密因子进行异或处理,得到文件标识符ind、更新操作op、上一状态stc-1、第一加密验证信息etag组成的字符串。具体可通过
Figure BDA0003076338250000123
实现。
第四步,循环第一步到第三步,直到上一状态为空。
第五步,根据得到的所有文件标识符,确定待验证的文件标识符合集,发送给客户端。将得到的所有第一加密验证信息进行异或和的操作,得到第二加密验证信息,发送给客户端。
通过对第一加密验证信息进行异或和处理,向客户端返回最终的一个异或和(也就是第二加密验证信息)。第二加密验证信息对应整个文件标识符合集,其可通过固定长度的字符串来验证文件标识符合集中的一组元素。
客户端的步骤包括:
第一,针对待验证的文件标识符合集中的每个待验证的文件标识符ind,根据伪随机函数F3,对安全令牌tw和上一状态对应的计数器c-1进行处理,生成第一加密因子F3(tw||c-1)。根据伪随机函数F3,对安全令牌tw和当前状态对应的计数器c进行处理,生成第二加密因子F3(tw||c)。对第一加密因子、待验证的文件标识符ind、第二加密因子进行异或和处理,生成待验证的验证信息。对得到的所有待验证的验证信息进行异或和处理,得到第三加密验证信息etag'。
需要说明的是,由于前后的异或项之间存在相同部分,可以抵消,因此,实际上只需要计算计数器的初始值0对应的加密因子、待验证的文件标识符、计数器的最大值(也就是本地存储中该关键字对应的计数器的当前值)对应的加密因子的异或即可。具体可通过
Figure BDA0003076338250000131
实现。
比如,客户端针对关键字进行了两次更新,第一次更新对应的第一加密验证信息etag1通过
Figure BDA0003076338250000132
得到,第二次更新对应的第一加密验证信息etag2通过
Figure BDA0003076338250000133
得到。在根据该关键字进行搜索时,客户端针对得到的待验证的文件标识符合集,计算第三加密验证信息
Figure BDA0003076338250000134
由于F3(tw||1)出现了两次,因此抵消。则通过
Figure BDA0003076338250000135
即可得到第三加密验证信息。其中,tag表示待验证的文件标识符对应的文件的异或和。
第二,确定第三加密验证信息etag'与第二加密验证信息etag是否相同,若相同,则搜索结果是正确的,若不相同,则搜索结果存在错误。
基于同样的思路,本说明书一个或多个实施例还提供了上述方法对应的装置和设备,如图6、图7、图8、图9所示。
图6为本说明书一个或多个实施例提供的应用于客户端的一种具有前向安全的可验证可搜索加密装置的结构示意图,所述装置包括:
不可逆模块602,对关键字进行不可逆转换处理,得到安全令牌;
计数器更新模块604,将所述安全令牌对应的计数器更新,并根据所述安全令牌和所述计数器,确定已更新状态和上一状态;
第一加密验证信息生成模块606,根据所述安全令牌和待更新的文件标识符,生成第一加密验证信息;
加密待还原信息生成模块608,根据所述已更新状态和所述上一状态进行异或处理,生成所述第一加密验证信息对应的加密待还原信息;
发送模块610,将所述加密待还原信息发送至服务器存储;
搜索模块612,在需要利用所述关键字搜索时,根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集,以及第二加密验证信息;
验证模块614,根据所述服务器返回的所述待验证的文件标识符合集,以及第二加密验证信息,验证所述文件标识符合集是否为正确的搜索结果。
可选地,所述不可逆模块602对关键字进行哈希处理,得到对应的哈希值;
根据指定的安全参数,确定伪随机函数以及所述伪随机函数中采用的密钥的长度;
根据所述伪随机函数和所述密钥,对所述哈希值进行处理,得到安全令牌。
可选地,所述计数器更新包括将计数器加一;所述第一加密验证信息生成模块604根据所述安全令牌和待更新的文件标识符,生成原始验证信息;根据伪随机函数,对所述安全令牌和所述上一状态对应的加一前的计数器进行处理,生成第一加密因子;根据伪随机函数,对所述安全令牌和所述已更新状态对应的加一后的计数器进行处理,生成第二加密因子;对所述第一加密因子、第二加密因子、所述原始验证信息进行异或处理,生成第一加密验证信息。
可选地,所述加密待还原信息生成模块608确定由所述待更新的文件标识符、所述上一状态、所述第一加密验证信息组成的字符串;对所述安全令牌、所述已更新状态进行哈希处理,得到第三加密因子;对所述字符串与所述第三加密因子进行异或处理,生成所述第一加密验证信息对应的加密待还原信息。
可选地,所述搜索模块612对关键字进行不可逆转换处理,得到安全令牌;根据所述安全令牌对应的计数器,确定当前状态;将所述安全令牌、计数器、当前状态发送至服务器,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集,以及第二加密验证信息。
可选地,所述验证模块614接收所述服务器返回的所述待验证的文件标识符合集,以及第二加密验证信息;根据所述安全令牌和所述待验证的文件标识符合集,生成待验证的原始验证信息;根据所述安全令牌、所述计数器,对所述待验证的原始验证信息进行处理,得到第三加密验证信息,并将所述第三加密验证信息与所述第二加密验证信息进行比较,验证所述文件标识符合集是否为正确的搜索结果。
可选地,所述验证模块614根据所述安全令牌、所述计数器的当前值、初始值,对所述待验证的原始验证信息进行异或处理,得到第三加密验证信息;确定所述第三加密验证信息与所述第二加密验证信息一致时,所述文件标识符合集为正确的搜索结果。
图7为本说明书一个或多个实施例提供的应用于服务器的一种具有前向安全的可验证可搜索加密装置的结构示意图,图中的虚线方框表示可选的模块,所述装置包括:
第一接收模块702,接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符、对应的已更新状态和加密待还原信息,进行存储;
加密待还原信息搜索模块704,在客户端针对所述关键字搜索时,根据所述安全令牌、对应的当前状态,搜索得到对应的加密待还原信息;
还原模块706,根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态;
回溯模块708,根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集,以及与所述加密待还原信息对应的加密验证信息;
返回模块710,将所述待验证的文件标识符合集和加密验证信息返回给所述客户端,使所述客户端根据所述加密验证信息,验证所述文件标识符合集是否为正确的搜索结果。
可选地,所述回溯模块708确定所述关键字对应的计数器的当前值;在每次迭代过程中,将所述计数器减一,并得到与所述计数器的当前值对应的待验证的文件标识符,以及与所述加密待还原信息对应的加密验证信息;确定将所述计数器减小至初始值后,得到与所述关键字对应的待验证的文件标识符合集,以及对得到的若干加密验证信息进行异或处理,得到所述文件标识符合集对应的加密验证信息。
可选地,所述装置还包括:第二接收模块712,接收所述客户端发送的与待更新的文件标识符对应的更新操作;更新确定模块714,确定所述更新操作为增加或者删除;若所述更新操作为增加,则保留所述文件标识符;若所述更新操作为删除,则去除所述文件标识符。
可选地,所述装置还包括:索引模块716,接收所述客户端根据所述安全令牌与所述已更新状态,生成的索引,进行存储;在客户端针对所述关键字搜索时,根据所述客户端发送的索引,搜索得到对应的加密待还原信息。
图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)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC625D、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 (24)

1.一种具有前向安全的可验证可搜索加密方法,应用于客户端,所述方法包括:
对关键字进行不可逆转换处理,得到安全令牌;
将所述安全令牌对应的计数器更新,并根据所述安全令牌和所述计数器,确定已更新状态和上一状态;
根据所述安全令牌和待更新的文件标识符,生成第一加密验证信息;
根据所述已更新状态和所述上一状态进行异或处理,生成所述第一加密验证信息对应的加密待还原信息;
将所述加密待还原信息发送至服务器存储;
在需要利用所述关键字搜索时,根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集,以及第二加密验证信息;
根据所述服务器返回的所述待验证的文件标识符合集,以及第二加密验证信息,验证所述文件标识符合集是否为正确的搜索结果。
2.如权利要求1所述的方法,所述对关键字进行不可逆转换处理,得到安全令牌,具体包括:
对关键字进行哈希处理,得到对应的哈希值;
根据指定的安全参数,确定伪随机函数以及所述伪随机函数中采用的密钥的长度;
根据所述伪随机函数和所述密钥,对所述哈希值进行处理,得到安全令牌。
3.如权利要求1所述的方法,所述计数器更新包括将计数器加一;
所述根据所述安全令牌和待更新的文件标识符,生成第一加密验证信息,具体包括:
根据所述安全令牌和待更新的文件标识符,生成原始验证信息;
根据伪随机函数,对所述安全令牌和所述上一状态对应的加一前的计数器进行处理,生成第一加密因子;
根据伪随机函数,对所述安全令牌和所述已更新状态对应的加一后的计数器进行处理,生成第二加密因子;
对所述第一加密因子、第二加密因子、所述原始验证信息进行异或处理,生成第一加密验证信息。
4.如权利要求1所述的方法,所述根据所述已更新状态和所述上一状态进行异或处理,生成所述第一加密验证信息对应的加密待还原信息,具体包括:
确定由所述待更新的文件标识符、所述上一状态、所述第一加密验证信息组成的字符串;
对所述安全令牌、所述已更新状态进行哈希处理,得到第三加密因子;
对所述字符串与所述第三加密因子进行异或处理,生成所述第一加密验证信息对应的加密待还原信息。
5.如权利要求1所述的方法,所述根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集,以及第二加密验证信息,具体包括:
对关键字进行不可逆转换处理,得到安全令牌;
根据所述安全令牌对应的计数器,确定当前状态;
将所述安全令牌、计数器、当前状态发送至服务器,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集,以及第二加密验证信息。
6.如权利要求1所述的方法,所述根据所述服务器返回的所述待验证的文件标识符合集,以及第二加密验证信息,验证所述文件标识符合集是否为正确的搜索结果,具体包括:
接收所述服务器返回的所述待验证的文件标识符合集,以及第二加密验证信息;
根据所述安全令牌和所述待验证的文件标识符合集,生成待验证的原始验证信息;
根据所述安全令牌、所述计数器,对所述待验证的原始验证信息进行处理,得到第三加密验证信息,并将所述第三加密验证信息与所述第二加密验证信息进行比较,验证所述文件标识符合集是否为正确的搜索结果。
7.如权利要求6所述的方法,所述根据所述安全令牌、所述计数器,对所述待验证的原始验证信息进行处理,得到第三加密验证信息,并将所述第三加密验证信息与所述第二加密验证信息进行比较,验证所述文件标识符合集是否为正确的搜索结果,具体包括:
根据所述安全令牌、所述计数器的当前值、初始值,对所述待验证的原始验证信息进行异或处理,得到第三加密验证信息;
确定所述第三加密验证信息与所述第二加密验证信息一致时,所述文件标识符合集为正确的搜索结果。
8.一种具有前向安全的可验证可搜索加密方法,应用于服务器,所述方法包括:
接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符、对应的已更新状态和加密待还原信息,进行存储;
在客户端针对所述关键字搜索时,根据所述安全令牌、对应的当前状态,搜索得到对应的加密待还原信息;
根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态;
根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集,以及与所述加密待还原信息对应的加密验证信息;
将所述待验证的文件标识符合集和加密验证信息返回给所述客户端,使所述客户端根据所述加密验证信息,验证所述文件标识符合集是否为正确的搜索结果。
9.如权利要求8所述的方法,所述根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集,以及与所述加密待还原信息对应的加密验证信息,具体包括:
确定所述关键字对应的计数器的当前值;
在每次迭代过程中,将所述计数器减一,并得到与所述计数器的当前值对应的待验证的文件标识符,以及与所述加密待还原信息对应的加密验证信息;
确定将所述计数器减小至初始值后,得到与所述关键字对应的待验证的文件标识符合集,以及对得到的若干加密验证信息进行异或处理,得到所述文件标识符合集对应的加密验证信息。
10.如权利要求8所述的方法,所述方法还包括:
接收所述客户端发送的与待更新的文件标识符对应的更新操作;
所述在客户端针对所述关键字搜索时,根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态之后,所述方法还包括:
确定所述更新操作为增加或者删除;
若所述更新操作为增加,则保留所述文件标识符;若所述更新操作为删除,则去除所述文件标识符。
11.如权利要求8所述的方法,所述方法还包括:
接收所述客户端根据所述安全令牌与所述已更新状态,生成的索引,进行存储;
在客户端针对所述关键字搜索时,根据所述客户端发送的索引,搜索得到对应的加密待还原信息。
12.一种具有前向安全的可验证可搜索加密装置,应用于客户端,所述装置包括:
不可逆模块,对关键字进行不可逆转换处理,得到安全令牌;
计数器更新模块,将所述安全令牌对应的计数器更新,并根据所述安全令牌和所述计数器,确定已更新状态和上一状态;
第一加密验证信息生成模块,根据所述安全令牌和待更新的文件标识符,生成第一加密验证信息;
加密待还原信息生成模块,根据所述已更新状态和所述上一状态进行异或处理,生成所述第一加密验证信息对应的加密待还原信息;
发送模块,将所述加密待还原信息发送至服务器存储;
搜索模块,在需要利用所述关键字搜索时,根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集,以及第二加密验证信息;
验证模块,根据所述服务器返回的所述待验证的文件标识符合集,以及第二加密验证信息,验证所述文件标识符合集是否为正确的搜索结果。
13.如权利要求12所述的装置,所述不可逆模块对关键字进行哈希处理,得到对应的哈希值;
根据指定的安全参数,确定伪随机函数以及所述伪随机函数中采用的密钥的长度;
根据所述伪随机函数和所述密钥,对所述哈希值进行处理,得到安全令牌。
14.如权利要求12所述的装置,所述计数器更新包括将计数器加一;
所述第一加密验证信息生成模块根据所述安全令牌和待更新的文件标识符,生成原始验证信息;
根据伪随机函数,对所述安全令牌和所述上一状态对应的加一前的计数器进行处理,生成第一加密因子;
根据伪随机函数,对所述安全令牌和所述已更新状态对应的加一后的计数器进行处理,生成第二加密因子;
对所述第一加密因子、第二加密因子、所述原始验证信息进行异或处理,生成第一加密验证信息。
15.如权利要求12所述的装置,所述加密待还原信息生成模块确定由所述待更新的文件标识符、所述上一状态、所述第一加密验证信息组成的字符串;
对所述安全令牌、所述已更新状态进行哈希处理,得到第三加密因子;
对所述字符串与所述第三加密因子进行异或处理,生成所述第一加密验证信息对应的加密待还原信息。
16.如权利要求12所述的装置,所述搜索模块对关键字进行不可逆转换处理,得到安全令牌;
根据所述安全令牌对应的计数器,确定当前状态;
将所述安全令牌、计数器、当前状态发送至服务器,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集,以及第二加密验证信息。
17.如权利要求12所述的装置,所述验证模块接收所述服务器返回的所述待验证的文件标识符合集,以及第二加密验证信息;
根据所述安全令牌和所述待验证的文件标识符合集,生成待验证的原始验证信息;
根据所述安全令牌、所述计数器,对所述待验证的原始验证信息进行处理,得到第三加密验证信息,并将所述第三加密验证信息与所述第二加密验证信息进行比较,验证所述文件标识符合集是否为正确的搜索结果。
18.如权利要求17所述的装置,所述验证模块根据所述安全令牌、所述计数器的当前值、初始值,对所述待验证的原始验证信息进行异或处理,得到第三加密验证信息;
确定所述第三加密验证信息与所述第二加密验证信息一致时,所述文件标识符合集为正确的搜索结果。
19.一种具有前向安全的可验证可搜索加密装置,应用于服务器,所述装置包括:
第一接收模块,接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符、对应的已更新状态和加密待还原信息,进行存储;
加密待还原信息搜索模块,在客户端针对所述关键字搜索时,根据所述安全令牌、对应的当前状态,搜索得到对应的加密待还原信息;
还原模块,根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态;
回溯模块,根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集,以及与所述加密待还原信息对应的加密验证信息;
返回模块,将所述待验证的文件标识符合集和加密验证信息返回给所述客户端,使所述客户端根据所述加密验证信息,验证所述文件标识符合集是否为正确的搜索结果。
20.如权利要求19所述的装置,所述回溯模块确定所述关键字对应的计数器的当前值;
在每次迭代过程中,将所述计数器减一,并得到与所述计数器的当前值对应的待验证的文件标识符,以及与所述加密待还原信息对应的加密验证信息;
确定将所述计数器减小至初始值后,得到与所述关键字对应的待验证的文件标识符合集,以及对得到的若干加密验证信息进行异或处理,得到所述文件标识符合集对应的加密验证信息。
21.如权利要求19所述的装置,所述装置还包括:
第二接收模块,接收所述客户端发送的与待更新的文件标识符对应的更新操作;
更新确定模块,确定所述更新操作为增加或者删除;若所述更新操作为增加,则保留所述文件标识符;若所述更新操作为删除,则去除所述文件标识符。
22.如权利要求19所述的装置,所述装置还包括:
索引模块,接收所述客户端根据所述安全令牌与所述已更新状态,生成的索引,进行存储;
在客户端针对所述关键字搜索时,根据所述客户端发送的索引,搜索得到对应的加密待还原信息。
23.一种具有前向安全的可验证可搜索加密设备,应用于客户端,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
对关键字进行不可逆转换处理,得到安全令牌;
将所述安全令牌对应的计数器更新,并根据所述安全令牌和所述计数器,确定已更新状态和上一状态;
根据所述安全令牌和待更新的文件标识符,生成第一加密验证信息;
根据所述已更新状态和所述上一状态进行异或处理,生成所述第一加密验证信息对应的加密待还原信息;
将所述加密待还原信息发送至服务器存储;
在需要利用所述关键字搜索时,根据所述安全令牌,使服务器通过所述加密待还原信息和异或处理,迭代地向历史状态回溯,得到待验证的文件标识符合集,以及第二加密验证信息;
根据所述服务器返回的所述待验证的文件标识符合集,以及第二加密验证信息,验证所述文件标识符合集是否为正确的搜索结果。
24.一种具有前向安全的可验证可搜索加密设备,应用于服务器,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
接收客户端发送的与关键字对应的安全令牌、待更新的文件标识符、对应的已更新状态和加密待还原信息,进行存储;
在客户端针对所述关键字搜索时,根据所述安全令牌、对应的当前状态,搜索得到对应的加密待还原信息;
根据所述加密待还原信息、当前状态和异或处理,得到所述当前状态对应的文件标识符、上一状态;
根据所述上一状态,迭代地向历史状态回溯,得到所述关键字对应的待验证的文件标识符合集,以及与所述加密待还原信息对应的加密验证信息;
将所述待验证的文件标识符合集和加密验证信息返回给所述客户端,使所述客户端根据所述加密验证信息,验证所述文件标识符合集是否为正确的搜索结果。
CN202110553793.XA 2021-05-20 2021-05-20 具有前向安全的可验证可搜索加密方法、装置以及设备 Active CN113282543B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110553793.XA CN113282543B (zh) 2021-05-20 2021-05-20 具有前向安全的可验证可搜索加密方法、装置以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110553793.XA CN113282543B (zh) 2021-05-20 2021-05-20 具有前向安全的可验证可搜索加密方法、装置以及设备

Publications (2)

Publication Number Publication Date
CN113282543A true CN113282543A (zh) 2021-08-20
CN113282543B CN113282543B (zh) 2022-07-05

Family

ID=77280355

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110553793.XA Active CN113282543B (zh) 2021-05-20 2021-05-20 具有前向安全的可验证可搜索加密方法、装置以及设备

Country Status (1)

Country Link
CN (1) CN113282543B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140230010A1 (en) * 1995-02-13 2014-08-14 Intertrust Technologies Corporation Trusted and secure techniques for item delivery and execution
CN108055122A (zh) * 2017-11-17 2018-05-18 西安电子科技大学 可验证的防内存泄露动态可搜索加密方法、云服务器
CN109496403A (zh) * 2016-07-25 2019-03-19 罗伯特·博世有限公司 用于具有前向隐私与委托可验证性的动态可搜索对称加密的方法和系统
CN110334526A (zh) * 2019-05-30 2019-10-15 西安电子科技大学 一种支持验证的前向安全可搜索加密存储系统及方法
CN112800445A (zh) * 2021-01-21 2021-05-14 西安电子科技大学 一种用于密文数据的前后向安全和可验证的布尔查询方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140230010A1 (en) * 1995-02-13 2014-08-14 Intertrust Technologies Corporation Trusted and secure techniques for item delivery and execution
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 西安电子科技大学 可验证的防内存泄露动态可搜索加密方法、云服务器
CN110334526A (zh) * 2019-05-30 2019-10-15 西安电子科技大学 一种支持验证的前向安全可搜索加密存储系统及方法
CN112800445A (zh) * 2021-01-21 2021-05-14 西安电子科技大学 一种用于密文数据的前后向安全和可验证的布尔查询方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RUIZHONG DU等: "Verifiable Blockchain-Based Searchable Encryption with forward and backward privacy", 《2020 16TH INTERNATIONAL CONFERENCE ON MOBILITY, SENSING AND NETWORKING (MSN)》 *
张中俊: "前向安全的可验证对称可搜索加密方案研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 *

Also Published As

Publication number Publication date
CN113282543B (zh) 2022-07-05

Similar Documents

Publication Publication Date Title
US11074245B2 (en) Method and device for writing service data in block chain system
CN111885024B (zh) 一种登录信息处理方法及设备
US10419216B2 (en) Keying infrastructure
Li et al. A searchable symmetric encryption scheme using blockchain
CN110689349B (zh) 一种区块链中的交易哈希值存储和搜索方法及装置
CN110795501A (zh) 基于区块链的可验证声明的创建方法、装置、设备及系统
US9740879B2 (en) Searchable encryption with secure and efficient updates
CN112805694A (zh) 用于改进的实施区块链的智能合约的系统和方法
CN104281794A (zh) 一种密码存储及验证的方法和装置
CN114048448A (zh) 基于区块链的动态可搜索加密方法及装置
CN112000632B (zh) 密文的分享方法、介质、分享客户端及系统
WO2013084957A1 (ja) 暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラム
CN115567188A (zh) 一种多键值隐匿求交方法、装置及存储介质
CN113434555B (zh) 一种基于可搜索加密技术的数据查询方法和装置
JP2023554148A (ja) 機密データのブロック
CN116257303B (zh) 一种数据安全处理的方法、装置、存储介质及电子设备
CN113282543B (zh) 具有前向安全的可验证可搜索加密方法、装置以及设备
CN113282542B (zh) 具有前向安全的可验证可搜索加密方法、装置以及设备
CN110457954B (zh) 合同管理装置与方法
CN116132112B (zh) 一种基于联盟链智能合约的关键字可加密搜索方法
US20240220648A1 (en) Order-preserving encryption method and apparatus
CN117972747A (zh) 基于区块链具有前向安全的可搜索加密方法、存储介质及计算机设备
CN117992989A (zh) 一种解密方法、系统、装置及存储介质
CN110995447A (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