掌桥专利:专业的专利平台
掌桥专利
首页

支持密文分享的动态可搜索对称加密方法、系统及介质

文献发布时间:2024-04-18 19:57:31


支持密文分享的动态可搜索对称加密方法、系统及介质

技术领域

本发明属于云存储安全领域,更具体地,涉及一种支持密文分享的动态可搜索对称加密方法、系统及介质。

背景技术

信息时代本地数据规模大量膨胀,越来越多的用户选择将数据上传到云端,以减轻本地存储负担。大部分企业或用户会选择对原始明文数据加密后上传到云服务器进行存储,以此来保护数据的隐私性。对于存储在云端的加密数据,除了满足自身使用的需求外,数据拥有者通常需要将这些密文分享给其他用户进行搜索。

可搜索加密技术实现了对密文数据的关键字搜索功能。用户对指定关键字生成陷门并发送给服务器,服务器根据陷门与密文进行匹配并返回搜索结果。可搜索加密技术在方便了用户使用密文数据的同时,进一步保护了加密文件的隐私和安全。针对不同的应用场景,可搜索加密技术在密码体制上可以分为可搜索公钥加密技术和可搜索对称加密技术,其中,后者在数据外包存储场景中应用更为广泛。

传统的密文分享方法中,通常使用分享密钥的方式进行密文分享。这类分享模式下,可搜索密文本身不会进行复制与分享,数据使用者分享到的实际上是对密文进行关键字搜索的短期能力。当分享链接超时或失效时,数据使用者无法继续使用密文数据。现有密文分享方法无法对密文本身进行分享,同时数据使用者无法保有对分享密文的长期关键字搜索能力。

发明内容

针对现有技术的缺陷和改进需求,本发明提供了一种支持密文分享的动态可搜索对称加密方法、系统及介质,其目的在于通过分享票据实现可搜索密文的长期分享,使数据使用者长期具有对分享文件的关键字搜索能力。

为实现上述目的,按照本发明的一个方面,提供了一种支持密文分享的动态可搜索对称加密方法,用于包括数据拥有者、服务器和数据使用者的系统,方法包括:密文分享阶段S1-S3以及关键字搜索阶段S4-S5;S1,数据拥有者计算待分享文件标识符对应的链表指针,生成包含待分享文件标识符、链表指针和解密密钥的分享票据并发送至数据使用者;S2,数据使用者利用分享票据从服务器获取待分享文件标识符对应的待分享密文,利用使用者私钥对待分享密文重加密后存储至服务器;S3,服务器将重加密后的待分享密文存储到使用者密文数据库,其中,待分享密文由数据拥有者上传至服务器的拥有者密文数据库;S4,数据使用者利用待搜索关键字以及使用者私钥,计算搜索陷门并发送至服务器;S5,服务器从使用者密文数据库中查找搜索陷门对应的密文并返回给数据使用者,其中,密文对应的明文内容为待搜索关键字对应的文件标识符。

更进一步地,服务器采用双向索引链表结构将数据拥有者上传的密文存储到拥有者密文数据库;链表指针包括:待分享文件标识符对应的链表尾结点指针L

L

J

其中,F()为伪随机函数,K

更进一步地,服务器获取待分享文件标识符对应的待分享密文,包括:S21,服务器提取拥有者密文数据库中L

其中,H()为哈希函数;S23,重复执行S21-S22直至遍历完待分享文件标识符对应链表,最终得到的分享集合为待分享密文。

更进一步地,利用使用者私钥对待分享密文重加密后存储至服务器,包括:S25,解密待分享密文得到关键字w

更进一步地,id

id

L

J

其中,H()为哈希函数,F()为伪随机函数,L

更进一步地,服务器采用双向索引链表结构将重加密后的待分享密文复制到使用者密文数据库,S5包括:S51,服务器提取使用者密文数据库中L

其中,H()为哈希函数,J

更进一步地,方法还包括密文更新阶段:数据拥有者根据待更新的关键字w

更进一步地,w

w

L

J

id

id

L

J

其中,H()为哈希函数,F()为伪随机函数,L

按照本发明的另一个方面,提供了一种支持密文分享的动态可搜索对称加密系统,包括数据拥有者、服务器和数据使用者;密文分享阶段:数据拥有者计算待分享文件标识符对应的链表指针,生成包含待分享文件标识符、链表指针和解密密钥的分享票据并发送至数据使用者;数据使用者利用分享票据从服务器获取待分享文件标识符对应的待分享密文,利用使用者私钥对待分享密文重加密后存储至服务器;服务器将重加密后的待分享密文存储到使用者密文数据库,其中,待分享密文由数据拥有者上传至服务器的拥有者密文数据库;关键字搜索阶段:数据使用者利用待搜索关键字以及使用者私钥,计算搜索陷门并发送至服务器;服务器从使用者密文数据库中查找搜索陷门对应的密文并返回给数据使用者,其中,密文对应的明文内容为待搜索关键字对应的文件标识符。

按照本发明的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的支持密文分享的动态可搜索对称加密方法。

总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:

(1)提供了一种支持密文分享的动态可搜索对称加密方法,数据拥有者根据需要分享的文件标识符生成分享票据,服务器根据分享票据找到分享密文,数据使用者对分享密文进行重加密后更新到使用者密文数据库,并能够使用私钥生成陷门进行长期搜索,从而可以实现对可搜索密文的分享,同时使数据使用者保有长期搜索能力;

(2)服务器基于双向链表构造密文索引结构,在进行密文分享或关键字搜索时,服务器可以根据分享票据或搜索陷门中的密文索引定位到链尾结点,并计算出所在链表前一结点的密文索引,从而将与同一个文件标识符或关键字相关联的所有可搜索密文连接起来,由此,将密文的搜索时间复杂度降至亚线性级别,实现了高效分享与搜索;

(3)每次进行密文分享或关键字搜索时,都会重新生成并更新其对应的密钥信息,使得某时刻生成的分享票据或搜索陷门只能对其之前的密文进行分享或搜索,而无法对其之后的密文产生效果,由此保证了前向安全性;密文分享不涉及删除操作,不会对后向安全造成影响,而密文中的文件标识符都经过加密处理,服务器无法获得已经删除的可搜索密文中保存的文件标识符,并且前面上传的删除操作密文不会影响后面上传的添加操作密文,由此保证了后向安全,因此,方法具有前后向安全性;

(4)服务器能够支持用户添加新的可搜索密文到密文数据库中,并且在搜索时可实现对指定可搜索密文的删除操作,使得方法具有动态性。

附图说明

图1为本发明实施例提供的支持密文分享的动态可搜索对称加密方法的流程图;

图2为本发明实施例提供的密文分享系统的架构示意图;

图3为本发明实施例提供的双向索引链表的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

图1为本发明实施例提供的支持密文分享的动态可搜索对称加密方法的流程图。参阅图1,结合图2-图3,对本实施例中支持密文分享的动态可搜索对称加密方法进行详细说明。方法用于包括数据拥有者、服务器和数据使用者的系统,包括密文分享阶段(包括操作S1-操作S3)以及关键字搜索阶段(包括操作S4-操作S5)。

本实施例所用于的密文分享系统的架构如图2所示。参阅图2,密文分享系统包括三个实体:数据拥有者、服务器和数据使用者。数据拥有者负责更新密文索引、生成分享票据;服务器负责存储和维护密文数据库、分享密文、搜索关键字;数据使用者负责密文重加密、关键字搜索。

数据拥有者的功能包括以下三个方面:(1)在本地对系统进行初始化,生成对称密钥、本地状态并初始化服务器上的拥有者密文数据库;(2)利用对称密钥和本地状态对指定的关键字-文件标识符对以及操作类型进行加密,并将加密后的密文上传到服务器保存;(3)利用对称密钥、本地状态和待分享的文件标识符生成分享票据,并发送给服务器和数据使用者。

服务器的功能包括以下三个方面:(1)接收到提交的可搜索密文后,将其保存在拥有者密文数据库中;(2)接收到分享票据后,根据分享票据找到对应文件的可搜索密文并返回给数据使用者;(3)接收到数据使用者提交的搜索陷门后,在使用者密文数据库中对可搜索密文进行匹配,并返回搜索后的结果。

数据使用者的功能包括以下四个方面:(1)在本地对系统进行初始化,生成对称密钥、本地状态并初始化服务器上的使用者密文数据库;(2)使用私钥对服务器返回的分享密文进行重加密,并更新到使用者密文数据库中;(3)利用私钥和本地状态对指定关键字生成搜索陷门,并提交给服务器;(4)接收到服务器返回的搜索结果,对搜索结果进行解密并获取其中的文件标识符。

初始化阶段,需要根据应用需求预定义安全参数λ,并根据安全参数λ确定伪随机函数F、带随机种子的哈希函数H、对称加密算法SE。其中,λ是非零自然数,其数值越大,可搜索对称加密系统越安全,但相应的计算复杂度越高。伪随机函数F:K

EDB

数据使用者的初始化过程参照数据拥有者,此处不再赘述。

操作S1,数据拥有者计算待分享文件标识符对应的链表指针,生成包含待分享文件标识符、链表指针和解密密钥的分享票据并发送至数据使用者。

具体地,数据拥有者根据待分享文件标识符id

根据本发明实施例,服务器采用双向索引链表结构将数据拥有者上传的密文存储到拥有者密文数据库。双向索引链表结构中,链表指针包括:待分享文件标识符对应的链表尾结点指针L

P

L

J

K

其中,F()为伪随机函数,K

操作S2,数据使用者利用分享票据从服务器获取待分享文件标识符对应的待分享密文,利用使用者私钥对待分享密文重加密后存储至服务器。

本实施例中,操作S2包括子操作S20-子操作S29。子操作S21-子操作S23为服务器获取待分享文件标识符对应的待分享密文的过程;子操作S25-子操作S29为利用使用者私钥对待分享密文重加密后存储至服务器的过程。

在子操作S20中,数据使用者从分享票据P

在子操作S21中,服务器提取拥有者密文数据库中L

在子操作S22中,服务器将C

L

J

其中,H()为哈希函数。

在子操作S23中,重复执行子操作S21-子操作S22直至遍历完待分享文件标识符对应链表,最终得到的分享集合为待分享密文。

在子操作S24中,服务器将最终得到的分享集合发送给数据使用者。

在子操作S25中,解密分享集合得到关键字w

在子操作S26中,在ID状态表中查找w

对于分享集合中的每个关键字密文C

对于每一个关键字w

在子操作S27中,利用K

L

C

其中,K

在子操作S28中,根据id

具体地,id

id

L

J

其中,H()为哈希函数,F()为伪随机函数,L

在子操作S29中,将各w

操作S3,服务器将重加密后的待分享密文存储到使用者密文数据库,其中,待分享密文由数据拥有者上传至服务器的拥有者密文数据库。

服务器将密文(L

操作S4,数据使用者利用待搜索关键字以及使用者私钥,计算搜索陷门并发送至服务器。

数据使用者根据待搜索关键字w

T

L

J

其中,L

操作S5,服务器从使用者密文数据库中查找搜索陷门对应的密文并返回给数据使用者,其中,密文对应的明文内容为待搜索关键字对应的文件标识符。

根据本发明的实施例,服务器采用双向索引链表结构将重加密后的待分享密文复制到使用者密文数据库。操作S5包括子操作S51-子操作S53。

在子操作S51中,服务器提取使用者密文数据库中L

在子操作S52中,服务器将C

L

J

其中,H()为哈希函数,J

在子操作S53中,重复执行子操作S51-子操作S52直至遍历完关键字对应链表,最终得到的搜索结果集合为搜索陷门对应的密文,将其返回给数据使用者。

进一步地,子操作S53之后,还可以包括在数据使用者端执行的解密操作。解密操作包括:若搜索结果集合为空,表示没有匹配关键字w

根据本发明实施例,方法还包括密文更新阶段,用于对拥有者密文数据库中的密文进行更新,包括子操作S01-子操作S05。

在子操作S01中,数据拥有者根据待更新的关键字w

在子操作S02中,利用Kσ

生成的密文索引L

L

其中,w

计算的文件标识符密文C

C

K

计算的关键字密文C

C

K

在子操作S03中,根据w

具体地,w

w

L

J

在子操作S04中,根据id

具体地,id

id

L

J

其中,H()为哈希函数,F()为伪随机函数,L

在子操作S05中,将密文(L

进一步地,将关键字w

参阅图3,根据本发明的实施例,执行密文分享步骤和关键字搜索步骤,实际上是从双向索引链表的两个不同维度进行链式查找。在执行密文分享步骤时,通过分享票据中的密文索引L

本发明实施例还提供了一种支持密文分享的动态可搜索对称加密系统,包括数据拥有者、服务器和数据使用者。密文分享阶段:数据拥有者计算待分享文件标识符对应的链表指针,生成包含待分享文件标识符、链表指针和解密密钥的分享票据并发送至数据使用者;数据使用者利用分享票据从服务器获取待分享文件标识符对应的待分享密文,利用使用者私钥对待分享密文重加密后存储至服务器;服务器将重加密后的待分享密文存储到使用者密文数据库,其中,待分享密文由数据拥有者上传至服务器的拥有者密文数据库。关键字搜索阶段:数据使用者利用待搜索关键字以及使用者私钥,计算搜索陷门并发送至服务器;服务器从使用者密文数据库中查找搜索陷门对应的密文并返回给数据使用者,其中,密文对应的明文内容为待搜索关键字对应的文件标识符。

本实施例中,数据拥有者、服务器和数据使用者与图1-图3所示实施例中支持密文分享的动态可搜索对称加密方法中数据拥有者、服务器和数据使用者相同,此处不再赘述。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序。程序被处理器执行时实现如图1-图3所示实施例中的支持密文分享的动态可搜索对称加密方法,此处不再赘述。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种密文搜索系统中安全的密文文件分享方法
  • 一种密文搜索系统中安全的密文文件分享方法
技术分类

06120116458690