CN112182630B - 一种对称可搜索加密方法、装置、设备及介质 - Google Patents
一种对称可搜索加密方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112182630B CN112182630B CN202011173602.9A CN202011173602A CN112182630B CN 112182630 B CN112182630 B CN 112182630B CN 202011173602 A CN202011173602 A CN 202011173602A CN 112182630 B CN112182630 B CN 112182630B
- Authority
- CN
- China
- Prior art keywords
- file
- search
- index table
- state parameter
- ciphertext
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000012795 verification Methods 0.000 claims abstract description 90
- 238000004590 computer program Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 14
- 238000012217 deletion Methods 0.000 claims description 12
- 230000037430 deletion Effects 0.000 claims description 12
- 238000009825 accumulation Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- 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
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- 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/156—Query results presentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种对称可搜索加密方法、装置、设备及介质,该方法包括:对目标明文文件进行加密得到密文文件;基于目标明文文件和哈希链结构创建文件索引表;其中,文件索引表中包含具有累加性的验证标签和不断被更新的搜索陷门;将密文文件和文件索引表上传给云端服务器,以便云端服务器接收到搜索客户端发送的搜索陷门后,基于文件索引表将与搜索陷门对应的密文文件和验证标签反馈给搜索客户端;其中,当搜索客户端接收到密文文件和验证标签后,基于验证标签对密文文件的正确性进行验证。通过创建得到的含有累加性验证标签和不断被更新的搜索陷门的文件索引表,可以同时实现数据搜索的前向安全性和完全可验证性。
Description
技术领域
本发明涉及数据搜索领域,特别涉及一种对称可搜索加密方法、装置、设备及介质。
背景技术
当前,在利用对称可搜索加密(即SSE,Symmetric Searchable Encryption)技术实现数据搜索的过程中,存放在云服务器上的数据经常被更新,在对存放在云服务器上的数据进行更新时,文件注入攻击可能会发生,云服务器会伪造一个文件集合,诱导用户进行加密,然后云服务器会用之前的搜索陷门和这些文件进行匹配,如果匹配成功,说明这些文件包含该关键词;更进一步,因为云服务器知道这些伪造的文件中包含哪些关键词,所以可以很容易地推断出,匹配的陷门是对哪一关键词进行加密得到的,前向安全要求新***的文件不能和之前的搜索陷门进行链接,进而可以有效地抵抗文件注入攻击。
在对保证数据安全性的同时,实现数据的完全可验证性也十分重要。现有技术中,通过MAC(即Message Authentication Code,消息认证码)验证机制进行搜索结果的完全验证,但是MAC不能抵抗重放攻击,即不能验证搜索结果是否为最新结果;若云服务器未对本应更新的数据进行更新,或者更新之后仍然返回更新之前的数据作为搜索结果,则导致用户无法验证数据的正确性。为了解决这个问题,现有技术中还通过基于多重哈希函数构造验证证据的方式对搜索结果进行验证,但该方法仅能验证是否包含搜索关键词的文件被返回,不能验证返回文件的正确性。另一方面,可能由于云服务器的一些恶意行为或者软硬件设施损坏等问题,导致返回结果错误。并且现有技术中,不能同时实现前向安全和对搜索结果的完全可验证性,降低了对存放在云端数据进行搜索的安全性。
发明内容
有鉴于此,本发明的目的在于提供一种对称可搜索加密方法、装置、设备及介质,能够在保持前向安全的基础上实现搜索结果的完全验证。其具体方案如下:
第一方面,本申请公开了一种对称可搜索加密方法,包括:
对目标明文文件进行加密得到密文文件;
基于所述目标明文文件和哈希链结构创建文件索引表;其中,所述文件索引表中包含具有累加性的验证标签和不断被更新的搜索陷门;
将所述密文文件和所述文件索引表上传给云端服务器,以便所述云端服务器接收到搜索客户端发送的搜索陷门后,基于所述文件索引表将与所述搜索陷门对应的所述密文文件和所述验证标签反馈给所述搜索客户端;其中,当所述搜索客户端接收到所述密文文件和所述验证标签后,基于所述验证标签对所述密文文件的正确性进行验证。
可选的,所述对目标明文文件进行加密得到密文文件之前,还包括:
基于安全参数生成相应的密钥集;所述密钥集包含搜索陷门的密钥、伪随机函数的密钥、加密文件标识的密钥以及加解密文件的密钥;
将所述密钥集发送给所述搜索客户端,以便所述搜索客户端基于所述搜索陷门的密钥生成所述搜索陷门,基于所述伪随机函数的密钥和所述加密文件标识的密钥生成所述验证标签,基于所述加解密文件的密钥解密所述密文文件。
可选的,所述基于所述目标明文文件和哈希链结构创建文件索引表,包括:
从所述目标明文文件中提取目标关键词;
生成与所述目标关键词对应的搜索陷门和最新状态参数;
基于所述搜索陷门和所述最新状态参数生成相应的索引位置、索引信息和所述验证标签,并基于所述哈希链结构进行存储以得到所述文件索引表。
可选的,所述对称可搜索加密方法,还包括:
当对所述云端服务器中的所述密文文件进行添加和/或删除操作的同时,更新所述最新状态参数以得到更新后的最新状态参数;
在所述文件索引表的基础上,基于所述更新后的最新状态参数更新所述索引位置、所述索引信息和所述验证标签,以更新所述文件索引表。
可选的,所述云端服务器接收到搜索客户端发送的搜索陷门后,基于所述文件索引表将与所述搜索陷门对应的所述密文文件和所述验证标签反馈给所述搜索客户端的过程中,还包括:
接收所述搜索客户端发送的状态参数对;所述状态参数对包含最新状态参数和搜索完成后状态参数;
判断所述最新状态参数与所述搜索完成后状态参数是否相等;
基于所述判断结果更新预先创建的结果集合,并将所述结果集合发送给所述搜索客户端;所述搜索结果包括所述密文文件和所述验证标签。
可选的,所述基于所述判断结果更新预先创建的结果集合,包括:
若所述最新状态参数与所述搜索完成后状态参数相等,则将与所述搜索完成后状态参数对应的搜索结果添加到预先创建的结果集合中;
若所述最新状态参数与所述搜索完成后状态参数不相等,则将所述搜索结果添加到所述结果集合中,并通过重新搜索在所述结果集合的基础上更新所述结果集合。
可选的,所述将所述结果集合发送给所述搜索客户端之后,还包括:
确定所述最新状态参数对应的所述索引信息,并删除所述文件索引表中所述索引信息之前的数据信息,以更新所述文件索引表。
第二方面,本申请公开了一种对称可搜索加密装置,包括:
加密模块,用于对目标明文文件进行加密得到密文文件;
文件索引表创建模块,用于基于所述目标明文文件和哈希链结构创建文件索引表;其中,所述文件索引表中包含具有累加性的验证标签和不断被更新的搜索陷门;
上传模块,用于将所述密文文件和所述文件索引表上传给云端服务器,以便所述云端服务器接收到搜索客户端发送的搜索陷门后,基于所述文件索引表将与所述搜索陷门对应的所述密文文件和所述验证标签反馈给所述搜索客户端;其中,当所述搜索客户端接收到所述密文文件和所述验证标签后,基于所述验证标签对所述密文文件的正确性进行验证。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的对称可搜索加密方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的对称可搜索加密方法。
本申请通过对目标明文文件进行加密得到密文文件;然后基于所述目标明文文件和哈希链结构创建文件索引表;其中,所述文件索引表中包含具有累加性的验证标签和不断被更新的搜索陷门;再将所述密文文件和所述文件索引表上传给云端服务器,以便所述云端服务器接收到搜索客户端发送的搜索陷门后,基于所述文件索引表将与所述搜索陷门对应的所述密文文件和所述验证标签反馈给所述搜索客户端;其中,当所述搜索客户端接收到所述密文文件和所述验证标签后,基于所述验证标签对所述密文文件的正确性进行验证。可见,通过目标明文文件和哈希链结构创建得到的文件索引表,利用文件索引表中不断被更新的搜索陷门,可以保证新增加的文件不能和之前的搜索陷门进行匹配,从而保证了数据搜索的前向安全性;并且,由于文件索引表中含有标识目标明文文件的状态的具有累加性的验证标签,通过该验证标签用户可以验证数据的正确性以实现数据搜索的完全可验证性,进而在保证前向安全的基础上实现搜索结果的完全验证。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种对称可搜索加密方法流程图;
图2为本申请提供的一种具体的对称可搜索加密方法流程图;
图3为本申请提供的一种对称可搜索加密***的***模型图;
图4为本申请提供的一种文件索引表的结构示意图;
图5为本申请提供的一种对称可搜索加密装置结构示意图;
图6为本申请提供的一种电子设备结构图。
具体实施方式
现有技术中,通过MAC验证机制进行搜索结果的完全验证,不能验证搜索结果是否为最新结果,另外基于多重哈希函数构造验证证据的方式对搜索结果进行验证,不能验证返回文件的正确性,并且现有技术中不能同时实现前向安全和对搜索结果的完全可验证性。为克服上述问题,本申请提出一种完全可验证的前向安全的对称可搜索加密方法,可以在保证前向安全的基础上实现搜索结果的完全验证。
本申请实施例公开了一种对称可搜索加密方法,应用于数据客户端,参见图1所示,该方法可以包括以下步骤:
步骤S11:对目标明文文件进行加密得到密文文件。
本实施例中,上述数据客户端在确定需要上传的目标明文文件后,对目标明文文件进行加密以得到加密后的密文文件;可以理解的是,上述数据客户端为目标明文文件的持有者和上传者。
步骤S12:基于所述目标明文文件和哈希链结构创建文件索引表;其中,所述文件索引表中包含具有累加性的验证标签和不断被更新的搜索陷门。
本实施例中,在确定出目标明文文件后,基于目标明文文件和哈希链结构创建文件索引表,并且文件索引表中包含用于标识目标明文文件状态的具有累加性的验证标签;可以理解的是,上述文件索引表为包含上述认证标签的,结构为哈希链结构的索引表,并且文件索引表中包含不断被更新的搜索陷门。具体的,可以通过目标明文文件中的目标关键词,并结合哈希链结构创建上述文件索引表;可以在每次文件更新后,通过更新文件状态对搜索陷门进行更新。
步骤S13:将所述密文文件和所述文件索引表上传给云端服务器,以便所述云端服务器接收到搜索客户端发送的搜索陷门后,基于所述文件索引表将与所述搜索陷门对应的所述密文文件和所述验证标签反馈给所述搜索客户端;其中,当所述搜索客户端接收到所述密文文件和所述验证标签后,基于所述验证标签对所述密文文件的正确性进行验证。
本实施例中,在生成上述密文文件和上述文件索引表之后,将上述密文文件和文件索引表上传给云端服务器,由云端服务器保存上述密文文件和文件索引表,以便当云端服务器接收到搜索客户端发送的搜索陷门后,根据搜索陷门利用文件索引表确定出与搜索陷门对应的密文文件和认证标签,并将该密文文件和认证标签发送给搜索客户端,以便搜索客户端根据接收到的认证标签检验密文文件的正确性,即检验接收到的密文文件是否为与搜索陷门对应的,并且是最新的更新后的密文文件以及文件的正确性。其中,上述搜索陷门为针对目标关键词的搜索陷门,并且上传密文文件的客户端为数据客户端,需要根据目标关键词查找相应密文文件的客户端为搜索客户端,在实际应用中,一个客户终端既可以为数据客户端也可以为搜索客户端。
由上可见,本实施例通过对目标明文文件进行加密得到密文文件;然后基于所述目标明文文件和哈希链结构创建文件索引表;其中,所述文件索引表中包含具有累加性的验证标签和不断被更新的搜索陷门;再将所述密文文件和所述文件索引表上传给云端服务器,以便所述云端服务器接收到搜索客户端发送的搜索陷门后,基于所述文件索引表将与所述搜索陷门对应的所述密文文件和所述验证标签反馈给所述搜索客户端;其中,当所述搜索客户端接收到所述密文文件和所述验证标签后,基于所述验证标签对所述密文文件的正确性进行验证。可见,通过目标明文文件和哈希链结构创建得到的文件索引表,利用文件索引表中不断被更新的搜索陷门,可以保证新增加的文件不能和之前的搜索陷门进行匹配,从而保证了数据搜索的前向安全性;并且,由于文件索引表中含有标识目标明文文件的状态的具有累加性的验证标签,通过该验证标签用户可以验证数据的正确性以实现数据搜索的完全可验证性,进而在保证前向安全的基础上实现搜索结果的完全验证。
本申请实施例公开了一种具体的对称可搜索加密方法,应用于数据客户端,参见图2所示,该方法可以包括以下步骤:
步骤S21:基于安全参数生成相应的密钥集;所述密钥集包含搜索陷门的密钥、伪随机函数的密钥、加密文件标识的密钥以及加解密文件的密钥。
本实施例中,首先基于安全参数生成相应的密钥集,其中,上述密钥集中包含搜索陷门的密钥、伪随机函数的密钥、加密文件标识的密钥以及加解密文件的密钥;具体的,数据客户端通过输入安全参数λ生成相应的密钥集K={Ks,Kr,Kp,Ke},其中Ks是搜索陷门生成密钥,Kr是伪随机函数f的密钥,Kp是加密文件标识的密钥,Ke是加解密文件的密钥。
步骤S22:将所述密钥集发送给所述搜索客户端,以便所述搜索客户端基于所述搜索陷门的密钥生成所述搜索陷门,基于所述伪随机函数的密钥和所述加密文件标识的密钥生成所述验证标签,基于所述加解密文件的密钥解密所述密文文件。
本实施例中,例如图3所示,在生成上述密钥集后将上述密钥集发送给搜索客户端,以便后续搜索客户端基于搜索陷门的密钥生成搜索陷门,并基于伪随机函数的密钥和加密文件标识的密钥生成验证标签;并且,利用加解密文件的密钥解密获取的密文文件。
步骤S23:对目标明文文件进行加密得到密文文件。
本实施例中,通过加解密文件的密钥以及对称密钥算法对上述目标明文文件进行加密,得到密文文件,具体的加密公式为其中,为包含多个上述目标明文文件的明文文件集合,为包含多个密文文件的密文文件集合,SKE为对称加密算法,表示利用Ke对目标明文文件进行加密,并且对每个密文文件进行分块以便云端服务器分块存储,具体的,可以对每个密文文件进行分块得到b块文件数据块Mjt,其中1≤t≤b。
步骤S24:从所述目标明文文件中提取目标关键词;生成与所述目标关键词对应的搜索陷门和最新状态参数。
本实施例中,从目标明文文件中提取目标关键词,得到关键词集,然后对每一个目标关键词生成对应的搜索陷门和最新状态参数;具体的,基于目标关键词wi和上述搜索陷门生成密钥Ks生成搜索陷门 并根据安全参数λ生成对应的最新状态参数stc,此时生成的最新状态参数stc可以理解为当前状态参数。
步骤S25:基于所述搜索陷门和所述最新状态参数生成相应的索引位置、索引信息和所述验证标签,并基于所述哈希链结构进行存储以得到所述文件索引表。
本实施例中,在生成目标关键词对应的搜索陷门和最新状态参数后,基于搜索陷门和最新状态参数生成相应的索引位置、索引信息和验证标签,并基于哈希链结构进行存储以得到文件索引表。具体的,索引位置u的计算表达式为其中,||为连接符,表示stc+1放在的后面;生成索引位置后,利用索引位置存放索引信息,索引信息e的计算表达式为
其中,为异或运算符,op表示对密文文件集中的密文文件的添加和/或删除操作;stc-1为搜索完成后状态参数,即上述当前状态参数stc的前一个状态参数;indj为文件标识符,一个密文文件对应一个文件标识符;验证标签的计算表达式为:
其中,αj为对文件标识符加密后得到的加密标志,αj=P(Kp,indj)。
本实施例中,数据客户端在生成上述文件索引表之后,还可以基于上述最新状态参数生成用于保存最新状态参数和搜索完成后状态参数的状态数组∑,∑[wi]=(stc,st'c),st'c表示搜索完成后状态;可以理解的是,在搜索结束后将最新状态参数保存至本地,作为下一次搜索的搜索完成后状态参数。
步骤S26:将所述密文文件和所述文件索引表上传给云端服务器,以便所述云端服务器接收到搜索客户端发送的搜索陷门后,基于所述文件索引表将与所述搜索陷门对应的所述密文文件和所述验证标签反馈给所述搜索客户端;其中,当所述搜索客户端接收到所述密文文件和所述验证标签后,基于所述验证标签对所述密文文件的正确性进行验证。
具体的,搜索客户端根据收到的密文文件和最新状态参数,并利用上述伪随机函数的密钥和加密文件标识的密钥计算得到验证标签,然后和云端服务器返回的验证标签进行比较,以验证密文文件的正确性。
本实施例中,所述云端服务器接收到搜索客户端发送的搜索陷门后,基于所述文件索引表将与所述搜索陷门对应的所述密文文件和所述验证标签反馈给所述搜索客户端的过程中,还可以包括:接收所述搜索客户端发送的状态参数对;所述状态参数对包含所述最新状态参数和搜索完成后状态参数;判断所述最新状态参数与所述搜索完成后状态参数是否相等;基于所述判断结果更新预先创建的结果集合,并将所述结果集合发送给所述搜索客户端;所述搜索结果包括所述密文文件和所述验证标签。例如图3所示,搜索客户端根据获取的密钥集和搜索结果以验证密文文件的正确性。
本实施例中,所述基于所述判断结果更新预先创建的结果集合,可以包括:若所述最新状态参数与所述搜索完成后状态参数相等,则将与所述搜索完成后状态参数对应的搜索结果添加到预先创建的结果集合中;若所述最新状态参数与所述搜索完成后状态参数不相等,则将所述搜索结果添加到所述结果集合中,并通过重新搜索在所述结果集合的基础上更新所述结果集合。
可以理解的是,云端服务器接收搜索客户端发送的搜索陷门和状态参数对(stc,stc'),即最新状态参数和搜索完成后状态参数后,首先判断stc和st'c是否相等,如果相等则表示上次对关键词wi搜索后没有对该关键词对应的文件进行增加或删除,只需要把上次的搜索结果添加到预先创建的结果集合R中;如果不相等则表示上次对关键词wi搜索后对该关键词对应的文件进行了增加或删除,则将上次的搜索结果添加到结果集合R中,并通过遍历文件索引表来更新结果集合;其中,上述最新状态参数可以由搜索客户端随机选取一个λbit的比特串作为相应的状态参数;其中,上述结果集合为存放在云端服务器中用于保存搜索结果的集合。由此一来,利用存放搜索结果的结果集合,当再次对该关键词进行搜索时,只需要对相应的结果集合进行更新,提高了搜索效率并节省云端服务器的存储空间。
用户把stc发送给云端服务器后,云端服务器为了找到所有的更新文件,需要通过最新状态参数生成所有之前的状态,因为更新操作包括添加和删除,云端服务器需要确保删除的文件不在结果集合中,所以云端服务器建立了一个删除集合用来存放在索引过程中删除的文件的文件标识符。具体的,在索引过程中,云端服务器发现了添加操作,并且文件标识符在删除集合中则需要在删除集合中删除该文件标识符,因为添加的文件之后被删除了,添加和删除两个操作相互抵消,所以该文件标识不需要添加到结果集合中;若云端服务器发现了添加操作,文件标识符不在删除集合中,则将该文件标识添加到结果集合中。若云端服务器发现了删除操作,则把删除的文件标识符添加到删除集合中。最后,云端服务器根据删除集合更新结果集合后将更新后的结果集合和相应的认证标签发送给搜索客户端,以便客户端通过认证标签验证密文文件的正确性,具体的,若认证标签为最新的最新状态参数对应的标签则验证正确可以输出“Accept”,若验证结果为不正确则可以输出“Reject”,即拒收相应的密文文件。然后通过加解密文件的密钥解密相应的密文文件得到相应的明文文件,具体解密公式为
本实施例中,所述将所述结果集合发送给所述搜索客户端之后,还可以包括:确定所述最新状态参数对应的所述索引信息,并删除所述文件索引表中所述索引信息之前的数据信息,以更新所述文件索引表。本实施例中,所述对称可搜索加密方法,还可以包括:当对所述云端服务器中的所述密文文件进行添加和/或删除操作的同时,更新所述最新状态参数以得到更新后的最新状态参数;在所述文件索引表的基础上,基于所述更新后的最新状态参数更新所述索引位置、所述索引信息和所述验证标签,以更新所述文件索引表。
可以理解的是,在每次搜索后将本次搜索之前的数据信息删除,在下次进行索引时只搜索本次搜索结果之后的更新的数据,由此,通过搜索后对文件索引表的删除操作,即搜索过的索引信息在每次搜索完成后被删除,只保留最新状态对应的索引,可以节省存储空间,提高搜索效率。同时,文件索引表中具有累加性的前向安全的验证标签很容易被更新,不涉及复杂运算,计算开销小;当有文件需要被添加或删除,不需要重新计算所有的输入,可以在前一个验证标签的基础上更新状态和文件,并且验证标签中含有每个关键词更新时对应的最新状态,由数据客户端保存,只要包含该关键词的文件需要更新,便对状态进行更新,有效防止云端服务器不执行更新操作或返回未更新的文件。并且,本方案采用的密码加密技术并不涉及复杂的密码学工具,均为基于对称密码的加解密算法,具有计算成本低及效率高的特点。
其中,关于上述步骤S23的具体过程可以参考前述实施例公开的相应内容,在此不再进行赘述。
由上可见,本实施例中通过从目标明文文件中提取目标关键词,然后生成与目标关键词对应的搜索陷门和最新状态参数,并基于搜索陷门和最新状态参数生成相应的索引位置、索引信息和验证标签,最后基于哈希链结构得到文件索引表。通过基于哈希链结构的文件索引表,对于每次更新,搜索客户端随机选择一个字符串作为一个新的最新状态参数,用来生成新的索引位置来存放新的索引信息,之前的状态会被嵌入到索引中,由此云端服务器执行搜索操作时,只要知道最新状态参数就可以恢复之前所有的状态,通过这种方式,新***的文件不能和之前的搜索陷门进行匹配,因此,保证了搜索的前向安全性。
相应的,本申请实施例还公开了一种对称可搜索加密装置,参见图5所示,该装置包括:
加密模块11,用于对目标明文文件进行加密得到密文文件;
文件索引表创建模块12,用于基于所述目标明文文件和哈希链结构创建文件索引表;其中,所述文件索引表中包含具有累加性的验证标签和不断被更新的搜索陷门;
上传模块13,用于将所述密文文件和所述文件索引表上传给云端服务器,以便所述云端服务器接收到搜索客户端发送的搜索陷门后,基于所述文件索引表将与所述搜索陷门对应的所述密文文件和所述验证标签反馈给所述搜索客户端;其中,当所述搜索客户端接收到所述密文文件和所述验证标签后,基于所述验证标签对所述密文文件的正确性进行验证。
由上可见,本实施例通过目标明文文件和哈希链结构创建得到的文件索引表,利用文件索引表中不断被更新的搜索陷门,可以保证新增加的文件不能和之前的搜索陷门进行匹配,从而保证了数据搜索的前向安全性;并且,由于文件索引表中含有标识目标明文文件的状态的具有累加性的验证标签,通过该验证标签用户可以验证数据的正确性以实现数据搜索的完全可验证性,进而在保证前向安全的基础上实现搜索结果的完全验证。
在一些具体实施例中,所述对称可搜索加密装置具体还可以包括:
密钥集生成单元,用于基于安全参数生成相应的密钥集;所述密钥集包含搜索陷门的密钥、伪随机函数的密钥、加密文件标识的密钥以及加解密文件的密钥;
密钥集发送单元,用于将所述密钥集发送给所述搜索客户端,以便所述搜索客户端基于所述搜索陷门的密钥生成所述搜索陷门,基于所述伪随机函数的密钥和所述加密文件标识的密钥生成所述验证标签,基于所述加解密文件的密钥解密所述密文文件。
在一些具体实施例中,所述文件索引表创建模块12具体可以包括:
关键词获取单元,用于从所述目标明文文件中提取目标关键词;
参数生成单元,用于生成与所述目标关键词对应的搜索陷门和最新状态参数;
文件索引表生成单元,用于基于所述搜索陷门和所述最新状态参数生成相应的索引位置、索引信息和所述验证标签,并基于所述哈希链结构进行存储以得到所述文件索引表;
状态参数更新单元,用于当对所述云端服务器中的所述密文文件进行添加和/或删除操作的同时,更新所述最新状态参数以得到更新后的最新状态参数;
文件索引表更新单元,用于在所述文件索引表的基础上,基于所述更新后的最新状态参数更新所述索引位置、所述索引信息和所述验证标签,以更新所述文件索引表。
进一步的,本申请实施例还公开了一种电子设备,参见图6所示,图中的内容不能被认为是对本申请的使用范围的任何限制。
图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的对称可搜索加密方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作***221、计算机程序222及包括密文文件、文件索引表在内的数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作***221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的对称可搜索加密方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的对称可搜索加密方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种对称可搜索加密方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种对称可搜索加密方法,其特征在于,应用于数据客户端,包括:
对目标明文文件进行加密得到密文文件;
基于所述目标明文文件和哈希链结构创建文件索引表;其中,所述文件索引表中包含具有累加性的验证标签和不断被更新的搜索陷门;
将所述密文文件和所述文件索引表上传给云端服务器,以便所述云端服务器接收到搜索客户端发送的搜索陷门后,基于所述文件索引表将与所述搜索陷门对应的所述密文文件和所述验证标签反馈给所述搜索客户端;其中,当所述搜索客户端接收到所述密文文件和所述验证标签后,基于所述验证标签对所述密文文件的正确性进行验证;
其中,所述基于所述目标明文文件和哈希链结构创建文件索引表,包括:从所述目标明文文件中提取目标关键词;生成与所述目标关键词对应的搜索陷门和最新状态参数;基于所述搜索陷门和所述最新状态参数生成相应的索引位置、索引信息和所述验证标签,并基于所述哈希链结构进行存储以得到所述文件索引表;所述搜索陷门的表达式为其中,为所述搜索陷门,wi为所述目标关键词,Ks为搜索陷门生成密钥;所述索引位置的表达式为其中,||为连接符,表示stc+1放在的后面,stc为最新状态参数,u为所述索引位置;所述索引信息的表达式为其中,e为所述索引信息,为异或运算符,op表示对密文文件集中的密文文件的添加和/或删除操作;stc-1为搜索完成后的状态参数;indj为文件标识符;所述验证标签的表达式为其中,FSAAT为所述验证标签,αj为对文件标识符加密后得到的加密标志,αj=P(Kp,indj),Kp是加密文件标识的密钥,Mjt是文件数据块;所述文件索引表的表达式为其中,Te为所述文件索引表。
2.根据权利要求1所述的对称可搜索加密方法,其特征在于,所述对目标明文文件进行加密得到密文文件之前,还包括:
基于安全参数生成相应的密钥集;所述密钥集包含搜索陷门的密钥、伪随机函数的密钥、加密文件标识的密钥以及加解密文件的密钥;
将所述密钥集发送给所述搜索客户端,以便所述搜索客户端基于所述搜索陷门的密钥生成所述搜索陷门,基于所述伪随机函数的密钥和所述加密文件标识的密钥生成所述验证标签,基于所述加解密文件的密钥解密所述密文文件。
3.根据权利要求1所述的对称可搜索加密方法,其特征在于,还包括:
当对所述云端服务器中的所述密文文件进行添加和/或删除操作的同时,更新所述最新状态参数以得到更新后的最新状态参数;
在所述文件索引表的基础上,基于所述更新后的最新状态参数更新所述索引位置、所述索引信息和所述验证标签,以更新所述文件索引表。
4.根据权利要求1所述的对称可搜索加密方法,其特征在于,所述云端服务器接收到搜索客户端发送的搜索陷门后,基于所述文件索引表将与所述搜索陷门对应的所述密文文件和所述验证标签反馈给所述搜索客户端的过程中,还包括:
接收所述搜索客户端发送的状态参数对;所述状态参数对包含最新状态参数和搜索完成后状态参数;
判断所述最新状态参数与所述搜索完成后状态参数是否相等;
基于判断结果更新预先创建的结果集合,并将所述结果集合发送给所述搜索客户端;搜索结果包括所述密文文件和所述验证标签。
5.根据权利要求4所述的对称可搜索加密方法,其特征在于,所述基于所述判断结果更新预先创建的结果集合,包括:
若所述最新状态参数与所述搜索完成后状态参数相等,则将与所述搜索完成后状态参数对应的搜索结果添加到预先创建的结果集合中;
若所述最新状态参数与所述搜索完成后状态参数不相等,则将所述搜索结果添加到所述结果集合中,并通过重新搜索在所述结果集合的基础上更新所述结果集合。
6.根据权利要求4所述的对称可搜索加密方法,其特征在于,所述将所述结果集合发送给所述搜索客户端之后,还包括:
确定所述最新状态参数对应的所述索引信息,并删除所述文件索引表中所述索引信息之前的数据信息,以更新所述文件索引表。
7.一种对称可搜索加密装置,其特征在于,包括:
加密模块,用于对目标明文文件进行加密得到密文文件;
文件索引表创建模块,用于基于所述目标明文文件和哈希链结构创建文件索引表;其中,所述文件索引表中包含具有累加性的验证标签和不断被更新的搜索陷门;
上传模块,用于将所述密文文件和所述文件索引表上传给云端服务器,以便所述云端服务器接收到搜索客户端发送的搜索陷门后,基于所述文件索引表将与所述搜索陷门对应的所述密文文件和所述验证标签反馈给所述搜索客户端;其中,当所述搜索客户端接收到所述密文文件和所述验证标签后,基于所述验证标签对所述密文文件的正确性进行验证;
其中,所述基于所述目标明文文件和哈希链结构创建文件索引表,包括:从所述目标明文文件中提取目标关键词;生成与所述目标关键词对应的搜索陷门和最新状态参数;基于所述搜索陷门和所述最新状态参数生成相应的索引位置、索引信息和所述验证标签,并基于所述哈希链结构进行存储以得到所述文件索引表;所述搜索陷门的表达式为其中,为所述搜索陷门,wi为所述目标关键词,Ks为搜索陷门生成密钥;所述索引位置的表达式为其中,||为连接符,表示stc+1放在的后面,stc为最新状态参数,u为所述索引位置;所述索引信息的表达式为其中,e为所述索引信息,为异或运算符,op表示对密文文件集中的密文文件的添加和/或删除操作;stc-1为搜索完成后的状态参数;indj为文件标识符;所述验证标签的表达式为其中,FSAAT为所述验证标签,αj为对文件标识符加密后得到的加密标志,αj=P(Kp,indj),Kp是加密文件标识的密钥,Mjt是文件数据块;所述文件索引表的表达式为其中,Te为所述文件索引表。
8.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至6任一项所述的对称可搜索加密方法。
9.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中计算机程序被处理器执行时实现如权利要求1至6任一项所述的对称可搜索加密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011173602.9A CN112182630B (zh) | 2020-10-28 | 2020-10-28 | 一种对称可搜索加密方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011173602.9A CN112182630B (zh) | 2020-10-28 | 2020-10-28 | 一种对称可搜索加密方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112182630A CN112182630A (zh) | 2021-01-05 |
CN112182630B true CN112182630B (zh) | 2023-03-03 |
Family
ID=73916118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011173602.9A Active CN112182630B (zh) | 2020-10-28 | 2020-10-28 | 一种对称可搜索加密方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112182630B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2603908B (en) * | 2021-02-17 | 2023-03-22 | Intelligent Voice Ltd | Private search service |
CN112784309B (zh) * | 2021-02-20 | 2022-08-23 | 青岛大学 | 数据安全管理方法、电子设备和存储介质 |
CN113282542B (zh) * | 2021-05-20 | 2022-07-12 | 支付宝(杭州)信息技术有限公司 | 具有前向安全的可验证可搜索加密方法、装置以及设备 |
CN114168802B (zh) * | 2021-12-09 | 2024-06-18 | 青岛大学 | 节点关系的数据生成方法和装置、查询方法、装置及*** |
CN116127498B (zh) * | 2022-11-28 | 2024-06-07 | 中国民用航空总局第二研究所 | 一种密文检索结果可验证的多关键字可搜索加密方法 |
CN116150445B (zh) * | 2023-04-04 | 2023-07-21 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 一种批量信息查询方法及电子设备、存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109495254A (zh) * | 2018-12-05 | 2019-03-19 | 广东工业大学 | 一种可搜索对称加密方法、装置及设备 |
CN110334526A (zh) * | 2019-05-30 | 2019-10-15 | 西安电子科技大学 | 一种支持验证的前向安全可搜索加密存储***及方法 |
-
2020
- 2020-10-28 CN CN202011173602.9A patent/CN112182630B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109495254A (zh) * | 2018-12-05 | 2019-03-19 | 广东工业大学 | 一种可搜索对称加密方法、装置及设备 |
CN110334526A (zh) * | 2019-05-30 | 2019-10-15 | 西安电子科技大学 | 一种支持验证的前向安全可搜索加密存储***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112182630A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112182630B (zh) | 一种对称可搜索加密方法、装置、设备及介质 | |
CN110213042B (zh) | 一种基于无证书代理重加密的云数据去重方法 | |
EP3356988B1 (en) | Method and system for verifiable searchable symmetric encryption | |
KR101190059B1 (ko) | 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법 | |
EP3375129B1 (en) | Method for re-keying an encrypted data file | |
US20140344572A1 (en) | Secure cloud storage and synchronization systems and methods | |
CN112204921A (zh) | 利用区块链和多方计算保护轻量级设备的数据隐私的***和方法 | |
CN112800445B (zh) | 一种用于密文数据的前后向安全和可验证的布尔查询方法 | |
JP2010061103A (ja) | 高速検索可能な暗号化のための方法、装置およびシステム | |
US20200213331A1 (en) | Data service system | |
US20090138698A1 (en) | Method of searching encrypted data using inner product operation and terminal and server therefor | |
CN105282167A (zh) | 一种可搜索的无证书公钥加密方法 | |
EP2999159A1 (en) | Safety control method for cloud storage | |
Mo et al. | Two-party fine-grained assured deletion of outsourced data in cloud systems | |
US20170222800A1 (en) | Key splitting | |
CN111192050B (zh) | 一种数字资产私钥存储提取方法及装置 | |
CN115905238A (zh) | 隐匿查询方法、装置、电子设备和存储介质 | |
Li et al. | Secure deduplication system with active key update and its application in IoT | |
CN114417073A (zh) | 一种加密图的邻居节点查询方法及装置、电子设备 | |
CN109274659B (zh) | 一种无证书的在线/离线可搜索密文方法 | |
CN117828673B (zh) | 基于区块链的数据流通与隐私保护方法及装置 | |
CN111639357A (zh) | 一种加密网盘***及其认证方法和装置 | |
CN112818404B (zh) | 数据访问权限的更新方法、装置、设备及可读存储介质 | |
Hoang et al. | A multi-server oblivious dynamic searchable encryption framework | |
CN110784318B (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 |