CN110222520B - 云环境中支持图加密数据的关键词查询方法 - Google Patents

云环境中支持图加密数据的关键词查询方法 Download PDF

Info

Publication number
CN110222520B
CN110222520B CN201910517594.6A CN201910517594A CN110222520B CN 110222520 B CN110222520 B CN 110222520B CN 201910517594 A CN201910517594 A CN 201910517594A CN 110222520 B CN110222520 B CN 110222520B
Authority
CN
China
Prior art keywords
data
node
user
log
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
Application number
CN201910517594.6A
Other languages
English (en)
Other versions
CN110222520A (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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN201910517594.6A priority Critical patent/CN110222520B/zh
Publication of CN110222520A publication Critical patent/CN110222520A/zh
Application granted granted Critical
Publication of CN110222520B publication Critical patent/CN110222520B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F21/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • 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
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于云环境中支持图加密数据的关键词查询方法,主要解决现有技术中搜索模式泄漏和重建索引困难的问题,其实现方案为:用户为每一个节点构造索引;用户搜索关键字,并对每个关键字随机选取r/2个陷门发送到服务器,执行关键字查询;用户添加新节点,并通过服务器返回新节点的邻接点索引和不相关的节点索引,更新索引;用户删除节点,并通过服务器直接删除该节点索引和数据;用户重建索引,并通过日志信息重建图结构的索引。用户根据更新和重建的索引再进行关键字查询。本发明能保证搜索过程中搜索模式不被泄漏,且对索引进行有效的更新和重建时泄漏最少信息,可用于对存储在远程服务器上的图加密数据进行搜索。

Description

云环境中支持图加密数据的关键词查询方法
技术领域
本发明属于网络安全技术领域,更进一步涉及一种关键词查询方法,可用于对存储在远程服务器上的图加密数据进行搜索。
背景技术
随着互联网技术的高速发展,计算机网络技术变得越来越普遍,2018年全球数字报告显示,互联网用户数量已经突破40亿,用户数量的不断增加也导致了数据信息的激增。对于海量的数据的维护与管理变得异常的不便,为了节省本地的存储空间,提高对数据维护和管理的便携性,同时不失去对数据的访问控制权,云计算技术应运而生。云计算将虚拟化技术与网络技术相结合,把海量数据存储在远端服务器,并根据用户的意愿由服务器完成对数据的维护和管理。然而云端的开放性和共享性也给数据的安全性带来了巨大的挑战。
针对不可信的云端,对文件加密再上传成为了保护用户隐私的必要手段,然而加密虽然保证了数据的隐私性,但却失去了明文数据的原始特性,使得对数据的关键词搜索和结构的搜索成为了难题。可搜索加密技术是近几年发展起来的支持在密文上进行关键词搜索的技术。
在可搜索加密技术中,用户首先对数据建立文件的索引,当用户发起检索请求时,用户计算关键词的陷门值并发送给服务器,服务器使用陷门信息与索引进行匹配,若匹配成功则说明该文件中包含有目标关键字。最后服务器将匹配成功的文件返回给用户,完成搜索。其中关键词的陷门不会泄漏关键词的任何信息。
在关键词和数据结构的搜索过程中,虽然不会泄露数据的结构信息以及文件的信息,但会向不可信第三方泄漏搜索模式,文件大小等信息,而根据最新的研究表明,攻击者可以利用这些信息对加密数据进行有效的攻击从而恢复出用户的隐私信息。
东北大学在其申请的专利文献“一种面向密文大型数据集的可搜索加密方法”(公布号:CN 109165226A,申请号:201811194140.1,申请日:2018.10.15)中公开了一种面向密文数据集的可搜索加密方法。该方法是数据拥有者首先对原始文件集进行预处理,生成密文数据和倒排索引。对文件进行预处理后,数据拥有着将密文数据和加密索引上传至服务器。当数据拥有着向服务器发起对关键词w的搜索请求时,会向服务器发送关键词w的陷门值。服务器使用陷门值对索引进行搜索,得到包含关键词w的文件,并将文件发送给数据拥有者完成搜索。该方法由于对同一关键词进行多次搜索时,会生成相同的陷门值,因此在搜索过程中会向服务器泄漏搜索模式,导致恶意攻击者恢复出关键词w,从而泄漏用户的隐私信息;此外该方法只能应用于文本数据的加密搜索,而不能应用于图的加密搜索。
发明内容
本发明的目的在于针对现有技术的不足,提出一种云环境中支持图加密数据的关键词查询方法,以通过布隆过滤器来查询某个关键词或某个节点是否在此数据块中,保证对加密数据的安全检索,避免泄漏用户的隐私信息。
为实现上述目的,本发明技术方案包括以下步骤:
(1)初始化:
(1a)用户根据本地的通信传输速度选择错误概率e,利用对称密钥生成算法,用户使用密钥种子K生成(r+y)个密钥(sk1,…,ski,…,skr+y),i∈(1,r+y),ski是第i个密钥,r是陷门的数量,由用户选择的错误概率
Figure BDA0002095517870000021
确定,y≥4,其中skr+1为数据密钥,skr+2为指针密钥,skr+3为数据摘要密钥,skr+4为日志密钥;
(1b)使用日志算法构建节点日志(log1,…,logj,…,logn)其中logj是第j个节点的节点日志,j∈(1,n),n表示图中节点的总数,每个日志logj,包含节点j的标识符IDj、节点j的邻接点标识符集uIDj、邻接点出入度IO、数据摘要vj和数据项信息mj
(2)扫描日志信息,为每一个节点生成关键字集Sj,该关键词集合包含该节点的邻接点标识符和数据项中的唯一关键字,并使用基于布隆过滤器的方法为每一个节点构造索引Ij,j∈(1,n);
(3)用户使用高级加密标准AES和数据密钥skr+1加密节点数据mj,得到数据密文cj
(4)对于节点j,用户选择未使用的数据存储地址addj,根据地址addj访问节点j的数据密文,使用置换函数π(·),计算数据指针pj,使用指针密钥skr+2加密数据指针得到指针密文cpj,使用数据摘要密钥skr+3加密数据摘要得到摘要密文cvj,并将对应于节点j的索引Ij、指针密文pj和数据摘要密文cvj一起存储;
(5)用户初始化数组
Figure BDA0002095517870000031
并使用高级加密标准AES和日志密钥skr+4加密日志logj,得到日志密文CLj,将该日志密文存储在数组的第j个位置RAM[j]中,j∈(1,n);
(6)用户将数组RAM和每一个节点的索引Ij、数据密文cj上传到远端服务器;
(7)用户搜索包含关键字(w1,…,wt,…,wq)的节点,其中wt是第t个关键字t∈(1,q),q是用户搜索关键字的总数;计算陷门值
Figure BDA0002095517870000032
其中
Figure BDA0002095517870000033
是关键字wt的陷门,用户从每个关键字的r个陷门中随机选取r/2个陷门发送到服务器,服务器使用陷门检查每个节点的索引Ij,将满足陷门条件的数据返回给客户端,用户对数据进行筛选,删除错误数据,完成搜索;
(8)添加节点数据:
(8a)用户添加一个新的节点z,将节点z的标识符及其邻接点标识符保存在本地;
(8b)构造该节点的日志信息logz,使用日志密钥skr+4加密logz得到日志密文CLz,将CLz上传到服务器;
(8c)运行步骤(2)-(4),为新的节点z构造索引;
(8d)用户计算节点z的添加陷门U(z)并发送到服务器;服务器将对应于陷门值的节点数据返回给用户;
(8e)用户向节点z的邻接点布隆过滤器中插入节点z的码字,向不相关节点的索引中随机插入数量小于r的字符“1”,更新数据摘要;
(8f)重新选取数据存储地址,解密数据项部分,用户使用高级加密标准AES重新加密数据mx,得到数据密文cx
(8g)用户将更新完的节点数据存储到服务器,完成数据添加;
(9)对于待删除节点d,用户将节点d的标识符保存在本地,用户计算陷门De(d)并发送到服务器,服务器收到陷门后,删除陷门De(d)对应的节点信息和日志密文;
(10)结构重建:
(10a)在服务器创建一个新的结构体;
(10b)随机选取两条未重建的日志密文(CLj1,CLj2)返回给客户端,
Figure BDA0002095517870000041
其中CLj1存储在RAM[j1]中,CLj2存储在RAM[j2]中,用户解密日志数据得到两条日志(logj1,logj2),再根据本地保存的信息,添加节点以及删除节点的信息,更新日志并创建副本,使用安全的排序函数对两条日志进行排序,重新加密后上传到服务器;
(10c)用户更换所有节点的唯一标识符IDj,再根据两条日志信息(logj1,logj2),运行步骤(2)-(4),得到两条重建索引(Ij1,Ij2)和两个数据密文(cj1,cj2),并上传到服务器的新结构体中;
10d)重复步骤(10b)-(10c),使用数组
Figure BDA0002095517870000042
中的所有日志密文重建索引,用户根据重建索引查找出关键词。
本发明与现有技术相比有以下优点:
第一,本发明是基于布隆过滤器构建查询索引,对同一个关键词生成可不同的陷门,克服了现有技术中对同一个关键词生成相同陷门,导致泄漏数据的查询模式的缺点,并能在泄漏更少信息的情况下对数据进行安全的搜索。
第二,本发明是基于布隆过滤器对不同的节点构造不同的索引,能对加密的图进行有效的更新,克服了现有基于传统索引方法中索引更新困难的问题,在保证泄漏最少信息的情况下实现了数据的更新,在需要实时更新的结构化加密方案中,具有更大的优势。
第三,本发明加入了索引重建结构,用户能对加密数据进行有效的重建,克服了传统方案中重建索引困难的问题,可以在保证最少泄漏的情况下完成对图加密数据有效的重建,攻击者无法从加密数据中获得更多的隐私信息。
附图说明
图1是本发明实现的流程图。
具体实施方式
步骤1,初始化
1.1)用户根据本地的通信传输速度选择错误概率e,利用对称密钥生成算法,用户使用密钥种子K生成(r+y)个密钥(sk1,…,ski,…,skr+y),i∈(1,r+y),其中ski是第i个密钥,r是陷门的数量,由用户选择的错误概率
Figure BDA0002095517870000051
确定,y≥4,skr+1为数据密钥,skr+2为指针密钥,skr+3为数据摘要密钥,skr+4为日志密钥;
1.2)使用日志算法构建节点日志(log1,…,logj,…,logn),其中logj是第j个节点的节点日志,j∈(1,n),n表示图中节点的总数,每个日志logj,包含节点j的唯一标识符IDj、节点j的邻接点标识符集uIDj、邻接点出入度IO、数据摘要vj和数据项信息mj
步骤2,扫描日志信息,为每一个节点生成关键字集Sj
该关键词集合包含邻接点标识符集uIDj和数据项中的唯一关键字,其生成步骤如下:
2.1)扫描日志中节点j的邻接点标识符,生成邻接点标识符集uIDj
2.2)扫描日志中节点的数据项mj,生成唯一关键字集合SWj
2.3)标识符集合uIDj和唯一关键字集合SWj共同构成节点的关键字集Sj
步骤3,使用基于布隆过滤器的方法为每一个节点构造索引Ij,j∈(1,n)。
3.1)初始化一个空的布隆过滤器BFj,计算过滤器的大小b:
Figure BDA0002095517870000052
其中
Figure BDA0002095517870000053
表示由用户确定的布隆过滤器的错误概率,r表示码字数量,max(|Sj|)表示最大关键字集的大小;
3.2)计算关键字的陷门值,其计算公式如下:
Figure BDA0002095517870000054
其中wj表示节点j包含的关键字,
Figure BDA0002095517870000055
表示关键字wj的陷门,G为图,“||”表示级联两个字符串,IO表示节点的出入度,h(·)表示安全抗碰撞的哈希函数,(sk1,…,skr)表示密钥,(x1,…,xa,…,xr)表示关键字wj∈Sj的陷门值,xa表示第a个陷门值,a∈(1,r);
3.2)计算关键字的码字
Figure BDA0002095517870000063
其计算公式如下:
Figure BDA0002095517870000064
ya=h(IDj,xa)
其中(y1,…,ya,…,yr)表示关键字wj的码字,ya表示关键字wj的第a个码字,IDj表示节点j的标识符,哈希函数h(·)将码字均匀的映射到(0-b)中,将过滤器中码字对应的位置置为“1”;
3.4)重复步骤(3.2)-(3.3)将节点j的所有关键字的码字插入到过滤器中;
3.5)向过滤器中随机插入字符“1”,使过滤器中的“1”的比例接近1/2,以增强索引的安全性。
步骤4,用户使用高级加密标准AES和数据密钥skr+1加密节点数据mj,得到数据密文cj
现有的加密方法包括对称加密和非对称加密,其中对称加密包括高级加密标准AES加密和RC4流密码加密,非对称加密方法主要包括公钥加密,本实例采用高级加密标准AES来对数据进行加密,AES是对称密钥加密中最流行的加密算法之一,能够在保证安全性的前提下实现对数据的高速加密。
步骤5,加密数据指针和数据摘要。
5.1)对于节点j,用户选择未使用的数据存储地址addj,根据地址addj访问节点j的数据密文,使用置换函数计算数据指针,其计算公式如下:
pi=π(addj)
其中π(·)表示置换函数,pj表示数据指针;
5.2)加密数据指针和数据摘要,其计算公式如下:
Figure BDA0002095517870000061
Figure BDA0002095517870000062
其中,cpj表示加密的数据指针,cvj表示加密的数据摘要,Fsk(·)表示伪随机函数,pj表示置换的数据指针,vj表示节点j的数据摘要,
Figure BDA0002095517870000071
表示二进制异或操作。
5.3)将对应于节点j的索引Ij、指针密文cpj和数据摘要密文cvj一起存储。
步骤6,用户初始化数组
Figure BDA0002095517870000072
并使用高级加密标准AES和日志密钥skr+4加密日志logj,得到日志密文CLj,将该日志密文存储在数组的第j个位置RAM[j]中,j∈(1,n)。
步骤7,用户将数组RAM和每一个节点的索引Ij、数据密文cj上传到远端服务器;
步骤8,搜索关键字。
8.1)用户搜索包含关键字(w1,…,wt,…,wq)的节点,其中wt是第t个关键字,t∈(1,q),q是用户搜索关键字的总数;计算陷门值
Figure BDA0002095517870000075
其中
Figure BDA0002095517870000076
表示关键字wt的陷门;
8.2)用户从每个关键字的r个陷门中随机选取r/2个陷门发送到服务器,服务器使用陷门检查每个节点的索引Ij,若索引满足陷门条件,则将对应的指针密文和摘要密文返回给用户;
8.3)用户解密指针密文和数据摘要密文,其计算公式如下:
Figure BDA0002095517870000073
Figure BDA0002095517870000074
其中,Fsk(·)是伪随机函数,cp表示指针密文,p表示指针数据,cv表示摘要密文,v表示节点的数据摘要;
8.4)用户根据数据摘要对数据指针进行初步筛选,删除错误数据的指针;
8.5)用户使用置换函数的逆函数π-1(·)恢复出数据地址:
add=π-1(p)
其中,π-1(·)表示对应于π(·)的逆函数,add表示数据的存储地址,p表示指针数据;
8.3)用户使用数据地址add取回数据密文,使用AES解密算法对其进行解密得到节点
数据,再对该节点数据进一步筛选,删除错误数据,完成搜索。
步骤9,添加节点数据。
9.1)用户添加一个新的节点z,将节点z的标识符及其邻接点标识符保存在本地,重建索引时,用户使用这些信息更新日志;
9.2)构造该节点的日志logz,使用日志密钥skr+4加密logz得到日志密文CLz,将CLz上传到服务器;
9.3)运行步骤(2)-(4),为新的节点z构造索引;
9.4)用户计算节点z的添加陷门U(z),其计算方法如下:
U(z)=(ID1,…,IDx,…,IDg)
其中,IDx表示陷门U(z)中第x个标识符,x∈(1,g),g是U(z)中标识符的总数,
Figure BDA0002095517870000081
g个节点中有
Figure BDA0002095517870000082
个是新节点z的邻接点标识符,
Figure BDA0002095517870000083
个是与新节点z不相关的节点标识符,
Figure BDA0002095517870000084
的取值根据新节点z的不同而不同;
9.5)用户将陷门U(z)发送到服务器,服务器将对应于陷门值的节点索引和数据返回给用户,用户向节点z的邻接点的布隆过滤器中插入节点z的码字,向不相关节点的索引中随机插入数量小于r的字符“1”,更新数据摘要;
9.6)运行步骤5,为陷门U(z)对应的节点重新选取数据存储地址,使用AES解密算法解密数据项部分,用户使用高级加密标准AES重新加密数据mx,得到数据密文cx
9.7)用户将更新完的节点索引和数据上传到服务器,完成数据添加。
步骤10,删除节点数据。
10.1)对于待删除节点d,用户将该节点d的标识符保存在本地,并计算陷门:
De(d):De(d)=(IDd,add),
其中IDd表示待删除节点d的标识符,add表示节点d日志密文的存储地址;
10.2)用户将陷门De(d)发送到服务器,服务器收到陷门后,删除陷门De(d)对应的节点信息和日志密文,完成删除;
步骤11,结构重建。
11.1)在服务器创建一个新的结构体;
11.2)随机选取两条未重建的日志密文(CLj1,CLj2)返回给用户,
Figure BDA0002095517870000091
用户解密日志数据得到两条日志(logj1,logj2),并根据步骤(9.1)保存在本地的数据,将新节点z的标识符添加到其邻接点的日志中,根据步骤(10)保存在本地的数据,将已经删除的节点d在日志中删除,更新日志,保证索引重建的正确性;
11.3)使用日志logj1的节点标识符IDj1和日志logj2的节点标识符IDj2计算排序函数Sort(·)的值:
Figure BDA0002095517870000092
其中π(·)表示置换函数;
11.4)根据排序函数的输出决定日志密文的存储位置:
如果Sort(IDj1,IDj2)输出为“0”,则用户使用高级加密标准AES重新加密两条日志(logj2,logj1),得到日志密文(CLj1,CLj2),将日志密文上传到服务器中,并将CLj1存储到RAM[j1]中,将CLj2存储到RAM[j2]中;
如果Sort(IDj1,IDj2)输出为“1”,则交换两个日志得到(logj2,logj1),重新加密后得到日志密文(CLj2,CLj1),将日志密文上传到服务器中,并将CLj2存储到RAM[j1]中,将CLj1存储到RAM[j2]中;
11.5)用户使用伪随机数生成器为每一个节点生成log2n比特长的随机数作为节点的新标识符,再根据两条日志信息(CLj1,CLj2),运行步骤(2)-(4),得到两条重建索引(Ij1,Ij2)和两个数据密文(cj1,cj2),并上传到服务器的新结构体中;
11.6)重复步骤(10.2)-(10.5),使用数组
Figure BDA0002095517870000093
中的所有日志密文重建索引,用户根据重建索引查找出关键词。
以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。

Claims (9)

1.一种基于云环境中支持图加密数据的关键词查询方法,其特征在于,包括如下:
(1)初始化:
(1a)用户根据本地的通信传输速度选择错误概率e,利用对称密钥生成算法,用户使用密钥种子K生成(r+y)个密钥(sk1,…,ski,…,skr+y),i∈(1,r+y),ski是第i个密钥,r是陷门的数量,由用户选择的错误概率
Figure FDA0002095517860000011
确定,y≥4,其中skr+1为数据密钥,skr+2为指针密钥,skr+3为数据摘要密钥,skr+4为日志密钥;
(1b)使用日志算法构建节点日志(log1,…,logj,…,logn)其中logj是第j个节点的节点日志,j∈(1,n),n表示图中节点的总数,每个日志logj,包含节点j的标识符IDj、节点j的邻接点标识符集uIDj、邻接点出入度IO、数据摘要vj和数据项信息mj
(2)扫描日志信息,为每一个节点生成关键字集Sj,该关键词集合包含该节点的邻接点标识符和数据项中的唯一关键字,并使用基于布隆过滤器的方法为每一个节点构造索引Ij,j∈(1,n);
(3)用户使用高级加密标准AES和数据密钥skr+1加密节点数据mj,得到数据密文cj
(4)对于节点j,用户选择未使用的数据存储地址addj,根据地址addj访问节点j的数据密文,使用置换函数π(·),计算数据指针pj,使用指针密钥skr+2加密数据指针得到指针密文cpj,使用数据摘要密钥skr+3加密数据摘要得到摘要密文cvj,并将对应于节点j的索引Ij、指针密文pj和数据摘要密文cvj一起存储;
(5)用户初始化数组
Figure FDA0002095517860000012
并使用高级加密标准AES和日志密钥skr+4加密日志logj,得到日志密文CLj,将该日志密文存储在数组的第j个位置RAM[j]中,j∈(1,n);
(6)用户将数组RAM和每一个节点的索引Ij、数据密文cj上传到远端服务器;
(7)用户搜索包含关键字(w1,…,wt,…,wq)的节点,其中wt是第t个关键字t∈(1,q),q是用户搜索关键字的总数;计算陷门值
Figure FDA0002095517860000021
其中
Figure FDA0002095517860000022
是关键字wt的陷门,用户从每个关键字的r个陷门中随机选取r/2个陷门发送到服务器,服务器使用陷门检查每个节点的索引Ij,将满足陷门条件的数据返回给客户端,用户对数据进行筛选,删除错误数据,完成搜索;
(8)添加节点数据:
(8a)用户添加一个新的节点z,将节点z的标识符及其邻接点标识符保存在本地;
(8b)构造该节点的日志信息logz,使用日志密钥skr+4加密logz得到日志密文CLz,将CLz上传到服务器;
(8c)运行步骤(2)-(4),为新的节点z构造索引;
(8d)用户计算节点z的添加陷门U(z)并发送到服务器;服务器将对应于陷门值的节点数据返回给用户;
(8e)用户向节点z的邻接点布隆过滤器中插入节点z的码字,向不相关节点的索引中随机插入数量小于r的字符“1”,更新数据摘要;
(8f)重新选取数据存储地址,解密数据项部分,用户使用高级加密标准AES重新加密数据mx,得到数据密文cx
(8g)用户将更新完的节点数据存储到服务器,完成数据添加;
(9)对于待删除节点d,用户将节点d的标识符保存在本地,用户计算陷门De(d)并发送到服务器,服务器收到陷门后,删除陷门De(d)对应的节点信息和日志密文;
(10)结构重建:
(10a)在服务器创建一个新的结构体;
(10b)随机选取两条未重建的日志密文
Figure FDA0002095517860000023
返回给客户端,
Figure FDA0002095517860000024
其中
Figure FDA0002095517860000025
存储在RAM[j1]中,
Figure FDA0002095517860000026
存储在RAM[j2]中,用户解密日志数据得到两条日志
Figure FDA0002095517860000027
再根据本地保存的信息,添加节点以及删除节点的信息,更新日志并创建副本,使用安全的排序函数对两条日志进行排序,重新加密后上传到服务器;
(10c)用户更换所有节点的唯一标识符IDj,再根据两条日志信息
Figure FDA0002095517860000028
运行步骤(2)-(4),得到两条重建索引
Figure FDA0002095517860000031
和两个数据密文
Figure FDA0002095517860000032
并上传到服务器的新结构体中;
10d)重复步骤(10b)-(10c),使用数组
Figure FDA0002095517860000033
中的所有日志密文重建索引,用户根据重建索引查找出关键词。
2.根据权利要求1所述的方法,其特征在于,步骤(2)中使用基于布隆过滤器的方法为每一个节点构造索引,其实现如下:
(2a)初始化一个空的布隆过滤器BFj,计算过滤器的大小b:
Figure FDA0002095517860000034
其中
Figure FDA0002095517860000035
表示由用户确定的布隆过滤器的错误概率,r表示码字数量,max(|Sj|)表示最大关键字集的大小;
(2b)计算关键字的陷门值,其计算公式如下:
Figure FDA0002095517860000036
其中
Figure FDA0002095517860000037
表示关键字wj的陷门,wj表示节点j包含的关键字,G为图,“||”表示级联两个字符串,IO表示节点的出入度,h(·)表示安全抗碰撞的哈希函数,(sk1,…,skr)表示密钥,(x1,…,xa,…,xr)表示关键字wj∈Sj的陷门值,xa表示第a个陷门值,a∈(1,r);
(2c)计算关键字的码字
Figure FDA0002095517860000038
其计算公式如下:
Figure FDA0002095517860000039
ya=h(IDj,xa)
其中(y1,…,ya,…,yr)表示关键字wj的码字,ya表示关键字wj的第a个码字,IDj表示节点j的标识符,哈希函数h(·)将码字均匀的映射到(0-b)中,将过滤器中码字对应的位置置为“1”;
(2d)重复步骤(2b)-(2c)将节点j的所有关键字的码字插入到过滤器中;
(2e)向过滤器中随机插入字符“1”,使过滤器中的“1”的比例接近1/2,以增强索引的安全性。
3.根据权利要求1所述的方法,其特征在于,步骤(4)中用户使用置换函数计算数据指针,其计算公式如下:
pi=π(addj)
其中π(·)表示置换函数,addj表示存储节点j数据密文的地址,用户根据地址addj访问节点j的数据项密文,pj表示数据指针。
4.根据权利要求1所述的方法,其特征在于,步骤(4)中加密指针数据和数据摘要,其计算公式如下:
Figure FDA0002095517860000041
Figure FDA0002095517860000042
其中,cpj表示加密的数据指针,cvj表示加密的数据摘要,Fsk(·)表示伪随机函数,pj表示数据指针,vj表示节点j的数据摘要,
Figure FDA0002095517860000043
表示二进制异或操作。
5.根据权利要求1所述的方法,其特征在于,步骤(7)用户对收到的数据进行筛选,其实现如下:
(7a)用户解密指针密文和数据摘要密文,其计算公式如下:
Figure FDA0002095517860000044
Figure FDA0002095517860000045
其中,Fsk(·)是伪随机函数,cp表示指针密文,p表示指针数据,cv表示摘要密文,v表示节点的数据摘要;
(7b)用户根据数据摘要对数据指针进行初步筛选,删除错误数据的指针,然后用户使用置换函数的逆函数π-1(·)恢复出数据地址add:
add=π-1(p)
其中,π-1(·)表示对应于π(·)的逆函数,p表示指针数据;
(7c)用户根据数据地址add取回数据密文,解密数据密文得到节点数据,并对数据进一步筛选,删除错误数据,完成搜索。
6.根据权利要求1所述的方法,其特征在于,步骤(8c)中计算陷门U(z),其计算公式如下:
U(z)=(ID1,…,IDx,…,IDg)
其中,IDx表示陷门U(z)中第x个标识符,x∈(1,g),g是U(z)中标识符的总数,g≈2l,g个节点中有l个是新节点z的邻接点标识符,(g-l)个是与新节点z不相关的节点标识符,l的取值根据新节点z的不同而不同。
7.根据权利要求1所述的方法,其特征在于,步骤(9)中计算陷门De(d),其计算公式如下:
De(d)=(IDd,add)
其中IDd表示待删除节点d的标识符,add表示节点d的日志存储地址。
8.根据权利要求1所述的方法,其特征在于,步骤(10b)中更新日志信息,使用安全的排序函数进行排序,其具体方法如下:
(10b1)根据步骤(8a)保存在本地的数据,用户将新节点z的标识符添加到其邻接点的日志中,根据步骤(9)保存在本地的数据,用户将已经删除的节点在日志中删除,保证索引重建的正确性;
(10b2)使用日志
Figure FDA0002095517860000051
的节点标识符
Figure FDA0002095517860000052
和日志
Figure FDA0002095517860000053
的节点标识符
Figure FDA0002095517860000054
计算排序函数Sort(·)的值:
Figure FDA0002095517860000055
其中π(·)表示置换函数;
(10b3)根据排序函数的输出决定日志密文的存储位置:
如果
Figure FDA0002095517860000061
输出为“0”,则用户使用高级加密标准AES重新加密两条日志
Figure FDA0002095517860000062
得到日志密文
Figure FDA0002095517860000063
将日志密文上传到服务器中,并将
Figure FDA00020955178600000610
存储到RAM[j1]中,将
Figure FDA0002095517860000064
存储到RAM[j2]中;
如果
Figure FDA0002095517860000065
输出为“1”,则交换两个日志得到
Figure FDA0002095517860000066
重新加密后得到日志密文
Figure FDA0002095517860000067
将日志密文上传到服务器中,并将
Figure FDA0002095517860000068
存储到RAM[j1]中,将
Figure FDA0002095517860000069
存储到RAM[j2]中。
9.根据权利要求1所述的方法,其特征在于,步骤(10c)中用户更换节点的标识符,是由用户使用伪随机数生成器为每一个节点随机生成log2n比特长的随机数,将该随机数作为节点的新标识符。
CN201910517594.6A 2019-06-14 2019-06-14 云环境中支持图加密数据的关键词查询方法 Active CN110222520B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910517594.6A CN110222520B (zh) 2019-06-14 2019-06-14 云环境中支持图加密数据的关键词查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910517594.6A CN110222520B (zh) 2019-06-14 2019-06-14 云环境中支持图加密数据的关键词查询方法

Publications (2)

Publication Number Publication Date
CN110222520A CN110222520A (zh) 2019-09-10
CN110222520B true CN110222520B (zh) 2022-12-02

Family

ID=67817266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910517594.6A Active CN110222520B (zh) 2019-06-14 2019-06-14 云环境中支持图加密数据的关键词查询方法

Country Status (1)

Country Link
CN (1) CN110222520B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500253B (zh) * 2022-01-13 2024-03-12 北京特立信电子技术股份有限公司 一种日志信息存储方法及存储介质
CN115865953B (zh) * 2023-02-17 2023-05-16 广州合利宝支付科技有限公司 一种基于跨境支付的分布式存储系统
CN115994374B (zh) * 2023-03-23 2023-05-19 汶上县金源物流有限公司 一种物流流转分拣信息管理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105681280A (zh) * 2015-12-29 2016-06-15 西安电子科技大学 一种云环境中基于中文的可搜索加密方法
CN106815350A (zh) * 2017-01-19 2017-06-09 安徽大学 一种云环境中动态的密文多关键词模糊搜索方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904171B2 (en) * 2011-12-30 2014-12-02 Ricoh Co., Ltd. Secure search and retrieval

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105681280A (zh) * 2015-12-29 2016-06-15 西安电子科技大学 一种云环境中基于中文的可搜索加密方法
CN106815350A (zh) * 2017-01-19 2017-06-09 安徽大学 一种云环境中动态的密文多关键词模糊搜索方法

Also Published As

Publication number Publication date
CN110222520A (zh) 2019-09-10

Similar Documents

Publication Publication Date Title
Etemad et al. Efficient dynamic searchable encryption with forward privacy
Song et al. Forward private searchable symmetric encryption with optimized I/O efficiency
CN110110163B (zh) 安全子字符串搜索以过滤加密数据
CN110334526B (zh) 一种支持验证的前向安全可搜索加密存储系统及方法
Kuzu et al. Efficient similarity search over encrypted data
Roche et al. A practical oblivious map data structure with secure deletion and history independence
Williams et al. Single round access privacy on outsourced storage
Miers et al. IO-DSSE: scaling dynamic searchable encryption to millions of indexes by improving locality
CN110222520B (zh) 云环境中支持图加密数据的关键词查询方法
CN112270006A (zh) 电商平台中隐藏搜索模式和访问模式的可搜索加密方法
CN110908959A (zh) 一种支持多关键字和结果排序的动态可搜索加密方法
Gakhov Probabilistic data structures and algorithms for big data applications
Du et al. GraphShield: Dynamic large graphs for secure queries with forward privacy
Liu et al. EncSIM: An encrypted similarity search service for distributed high-dimensional datasets
Hoang et al. A multi-server oblivious dynamic searchable encryption framework
CN116107967B (zh) 基于同态加密和树结构的多关键词密文搜索方法及系统
Chatterjee et al. Efficient backward private searchable encryption
Liu et al. Vaccine:: Obfuscating access pattern against file-injection attacks
Pang et al. Privacy-preserving noisy keyword search in cloud computing
CN115048432A (zh) 基于布隆过滤器的模糊关键词公共审计方法
CN114896620A (zh) 一种基于量子加密数据库索引方法、设备及存储介质
Xue et al. Structured encryption for knowledge graphs
Miyoshi et al. Practical and secure searchable symmetric encryption with a small index
Zhang et al. Privacy-preserving multi-pattern matching
Fink et al. Streaming, plaintext private information retrieval using regular expressions on arbitrary length search strings

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