单一用户环境下基于细粒度排序的数据密文查询方法技术

技术编号:22075564 阅读:19 留言:0更新日期:2019-09-12 14:05
本发明专利技术公开了一种单一用户环境下基于细粒度排序的数据密文查询方法,具体实现步骤包括:1、生成带有访问结构的中间数据向量;2、生成目标数据向量;3、设置可搜索加密密钥和对称密钥;4、对目标数据向量进行加密;5、生成绑定访问角色的目标查询向量;6、对目标查询向量进行加密;7、查询密文;8、解密返回的密文。本发明专利技术生成带有访问结构的中间数据向量和绑定访问角色的目标查询向量,实现了细粒度访问控制,有利于对外包电子文档的隐私保护。本发明专利技术利用带权重的向量化公式,并对目标数据向量和目标查询向量进行加密,实现了对称加密技术下的基于语义的多关键字排序查询,查询效率高。

Data Ciphertext Query Method Based on Fine-grained Sorting in Single-user Environment

【技术实现步骤摘要】
单一用户环境下基于细粒度排序的数据密文查询方法
本专利技术属于通信
,更进一步涉及信息安全
中的一种单一用户环境下基于细粒度排序的数据密文查询方法。本专利技术可用于在云存储背景下单一查询用户对云服务器接收的数据密文进行细粒度访问控制以及基于语义的多关键字排序查询。
技术介绍
随着云存储技术的发展,越来越多的用户将繁重的数据存储和管理工作外包至“诚实但好奇”的云服务器。为了保证用户数据在存储和检索过程中不被泄露,一般情况下用户需要在外包数据前对数据进行加密,然而传统的加密技术隐藏了明文的所有特征,致使基于明文的传统搜索机制无法实现密文搜索。当用户想要获取感兴趣的数据时,他只能从云端将密文下载到本地再进行解密,这无疑造成了带宽和计算资源的浪费且存在隐私泄露风险。基于这种情况,已经存在了关于数据密文的检索技术,但是这些技术在密文数据检索应用中存在相应的问题。CaoN等人在其发表的论文“Privacy-PreservingMulti-KeywordRankedSearchoverEncryptedCloudData”(IEEETransactionsonParallelandDistributedSystems(TPDS),vol.25,no.1,2014:222-233)中提出了一种加密云数据下隐私保护的多关键字排序查询方法。该方法首先利用向量空间模型和TF-IDF将外包文档和查询分别转化为数据向量和查询向量;接着利用安全的KNN算法将数据向量和查询向量分别加密为索引和陷门;然后利用索引和陷门的内积结果衡量文档和查询间的相关度;最后依据相关度值对这些文档进行排序,并将相关度值最高的k个密文文档发送给查询用户。该方法存在的不足之处是:每个被授权的查询用户拥有的访问权限的粒度过粗,均有权访问整个外包数据集,导致外包数据集中的敏感信息被无权访问的查询用户知晓,不利于敏感数据的隐私保护。西安电子科技大学在其申请的专利文献“多数据拥有者背景下基于属性的多关键字密文检索方法”(专利申请号201610188151.3,公开号CN105871543A)中公开了一种基于属性实现细粒度访问控制和多关键字查询的方法。该方法中第三方可信服务器为属性值满足指定访问结构的查询用户生成私钥;数据拥有者根据访问结构与文档的关键字集为文档建立索引;查询用户根据查询关键字集生成陷门;云服务器收到查询用户提交的属性值和陷门时验证属性值是否满足指定的访问结构,若不满足,则表示查询用户不合法,否则,判断陷门和索引是否匹配,且对满足匹配条件的查询用户发送查询密文。该方法存在的不足之处是:基于非对称加密技术实现多关键字密文检索和细粒度访问控制,计算开销大,影响查询效率,并且没有提供排序机制,不能实现排序查询。
技术实现思路
本专利技术的目的在于针对上述现有技术的问题,提出一种单一用户环境下基于细粒度排序的数据密文查询方法。该方法在对称可搜索加密技术下实现对数据密文基于语义的多关键字排序查询和细粒度访问控制。实现本专利技术目的的思路是,利用带权重的文本向量化方法和角色多项式将每个外包电子文档转化目标数据向量,利用可搜索加密密钥对目标数据向量进行加密,得到外包电子文档索引;将查询请求转化为绑定访问角色的目标查询向量,利用可搜索加密密钥对目标查询向量进行加密,得到查询请求的陷门;利用每个外包电子文档索引和陷门计算每个外包电子文档的得分,筛选出得分小于或等于阈值的所有密文并按得分的大小对筛选出的密文从大到小排序,将排序靠前的密文返回给查询用户。本专利技术的具体步骤如下:(1)生成带有访问结构的中间数据向量:(1a)利用文本关键字提取算法,从外包电子文档集中提取所有的关键字组成字典;(1b)利用带权重的文本向量化公式,计算字典中的每个关键字在每个外包电子文档中的权重值,将每个外包电子文档对应的所有权重值按关键字在字典中的位置组成相应外包电子文档的初始数据向量,初始数据向量维数等于字典的大小;(1c)对每个初始数据向量中的元素按元素值从大到小排序,计算每个排序后的前d个元素的和,选取所有和中的最大值作为阈值,其中,d表示查询用户最多能输入的关键字的总数;(1d)选取Y个正整数组成访问角色集,Y的取值等于查询用户类别的总数,所选的正整数满足除第一个正整数外的每个正整数比该正整数之前选取出的所有正整数的和大两倍的阈值;(1e)从访问角色集中为每个外包电子文档选取有权访问该电子文档的所有访问角色作为根,构建角色多项式;(1f)添加系数为0且幂指数小于或等于Y的项,使得每个角色多项式展开式的项数为Y+1;(1g)将每个角色多项式展开式的各项按幂指数递增的顺序排列,将排列的各项系数扩展到相应外包电子文档对应的初始数据向量的末尾,得到中间数据向量;(2)生成目标数据向量:(2a)根据查询精度和数据安全性的要求的程度,数据拥有者选取用于权衡查询精度和数据安全性的σ,所述σ与数据安全性正相关,与查询精度负相关;(2b)从均值为0、标准差为σ的正态分布中,为每个中间数据向量独立选取U个随机数,将所选的U个随机数扩展到相应的中间数据向量的末尾,得到目标数据向量,其中,U的取值由数据安全性和效率的要求的程度确定,与数据安全性正相关,与效率负相关;(3)设置可搜索加密密钥和对称密钥:(3a)随机生成一个维数与目标数据向量维数相同的二进制向量、两个阶数均等于目标数据向量维数的可逆矩阵,将二进制向量和两个可逆矩阵组成可搜索加密密钥;(3b)生成对称加密算法的对称密钥;(4)对目标数据向量进行加密:(4a)利用数据向量分裂方法,将每个外包电子文档对应的目标数据向量分裂成两个随机向量,将两个随机向量作为相应外包电子文档的两个子向量;(4b)对可搜索加密密钥中的两个可逆矩阵进行转置操作,将转置后的两个可逆矩阵分别与每个外包电子文档的两个子向量相乘,组成相应外包电子文档索引;(4c)利用对称密钥对每个外包电子文档进行加密,得到密文;(4d)将所有外包电子文档索引、密文和阈值打包发送给云服务器;(4e)根据查询用户的身份,为查询用户从访问角色集中选取一个访问角色,将该访问角色、可搜索加密密钥和对称密钥通过安全通道发送给所选查询用户;(5)生成绑定访问角色的目标查询向量:(5a)利用不带权重的文本向量化方法,将查询请求转化为初始查询向量;(5b)将拥有的访问角色的0~Y次幂扩展到初始查询向量的末尾,得到中间查询向量;(5c)随机选取一个U维零向量的一半,将所选元素的值替换为1,得到选择向量;(5d)将选择向量中的每个元素按行依次扩展到中间查询向量的末尾,得到选择查询向量;(5e)在区间(0,1)上选取一个随机数,将选择查询向量中的每个元素均乘以所选随机数,得到目标查询向量;(6)对目标查询向量进行加密:(6a)利用查询向量分裂方法,将目标查询向量分裂成两个随机向量,将两个随机向量作为相应查询请求的两个子向量;(6b)对可搜索加密密钥中两个可逆矩阵进行求逆操作,将求逆后的两个可逆矩阵分别与查询请求的两个子向量相乘,组成查询请求的陷门;(6c)向云服务器提交查询请求的陷门;(7)查询密文:(7a)对每个外包电子文档索引中的两个向量进行转置操作,将转置后的两个向量分别与查询请求的陷门中的两个向量相乘,两次乘本文档来自技高网
...

【技术保护点】
1.一种单一用户环境下基于细粒度排序的数据密文查询方法,其特征在于,生成带有访问结构的中间数据向量,生成绑定访问角色的目标查询向量,从所有外包电子文档的得分中筛选小于或等于阈值的所有密文,按得分的大小对筛选出的所有密文从大到小排序,该方法的具体步骤如下:(1)生成带有访问结构的中间数据向量:(1a)利用文本关键字提取算法,从外包电子文档集中提取所有的关键字组成字典;(1b)利用带权重的文本向量化公式,计算字典中的每个关键字在每个外包电子文档中的权重值,将每个外包电子文档对应的所有权重值按关键字在字典中的位置组成相应外包电子文档的初始数据向量,初始数据向量维数等于字典的大小;(1c)对每个初始数据向量中的元素按元素值从大到小排序,计算每个排序后的前d个元素的和,选取所有和中的最大值作为阈值,其中,d表示查询用户最多能输入的关键字的总数;(1d)选取Y个正整数组成访问角色集,Y的取值等于查询用户类别的总数,所选的正整数满足除第一个正整数外的每个正整数比该正整数之前选取出的所有正整数的和大两倍的阈值;(1e)从访问角色集中为每个外包电子文档选取有权访问该电子文档的所有访问角色作为根,构建角色多项式;(1f)添加系数为0且幂指数小于或等于Y的项,使得每个角色多项式展开式的项数为Y+1;(1g)将每个角色多项式展开式的各项按幂指数递增的顺序排列,将排列的各项系数扩展到相应外包电子文档对应的初始数据向量的末尾,得到中间数据向量;(2)生成目标数据向量:(2a)根据查询精度和数据安全性的要求的程度,数据拥有者选取用于权衡查询精度和数据安全性的σ,所述σ与数据安全性正相关,与查询精度负相关;(2b)从均值为0、标准差为σ的正态分布中,为每个中间数据向量独立选取U个随机数,将所选的U个随机数扩展到相应的中间数据向量的末尾,得到目标数据向量,其中,U的取值由数据安全性和效率的要求的程度确定,与数据安全性正相关,与效率负相关;(3)设置可搜索加密密钥和对称密钥:(3a)随机生成一个维数与目标数据向量维数相同的二进制向量、两个阶数均等于目标数据向量维数的可逆矩阵,将二进制向量和两个可逆矩阵组成可搜索加密密钥;(3b)生成对称加密算法的对称密钥;(4)对目标数据向量进行加密:(4a)利用数据向量分裂方法,将每个外包电子文档对应的目标数据向量分裂成两个随机向量,将两个随机向量作为相应外包电子文档的两个子向量;(4b)对可搜索加密密钥中的两个可逆矩阵进行转置操作,将转置后的两个可逆矩阵分别与每个外包电子文档的两个子向量相乘,组成相应外包电子文档索引;(4c)利用对称密钥对每个外包电子文档进行加密,得到密文;(4d)将所有外包电子文档索引、密文和阈值打包发送给云服务器;(4e)根据查询用户的身份,为查询用户从访问角色集中选取一个访问角色,将该访问角色、可搜索加密密钥和对称密钥通过安全通道发送给所选查询用户;(5)生成绑定访问角色的目标查询向量:(5a)利用不带权重的文本向量化方法,将查询请求转化为初始查询向量;(5b)将拥有的访问角色的0~Y次幂扩展到初始查询向量的末尾,得到中间查询向量;(5c)随机选取一个U维零向量的一半,将所选元素的值替换为1,得到选择向量;(5d)将选择向量中的每个元素按行依次扩展到中间查询向量的末尾,得到选择查询向量;(5e)在区间(0,1)上选取一个随机数,将选择查询向量中的每个元素均乘以所选随机数,得到目标查询向量;(6)对目标查询向量进行加密:(6a)利用查询向量分裂方法,将目标查询向量分裂成两个随机向量,将两个随机向量作为相应查询请求的两个子向量;(6b)对可搜索加密密钥中两个可逆矩阵进行求逆操作,将求逆后的两个可逆矩阵分别与查询请求的两个子向量相乘,组成查询请求的陷门;(6c)向云服务器提交查询请求的陷门;(7)查询密文:(7a)对每个外包电子文档索引中的两个向量进行转置操作,将转置后的两个向量分别与查询请求的陷门中的两个向量相乘,两次乘积结果相加后得到相应外包电子文档的得分。(7b)从所有外包电子文档的得分中筛选小于或等于阈值的所有密文,按得分的大小对筛选出的所有密文从大到小排序;(7c)从排序的密文中选取前k个密文发送给查询用户,其中,k为正整数,且10≤k≤50;(8)解密返回的密文:利用对称密钥,对查询用户接收到的k个密文进行解密,得到每个密文对应的明文。...

【技术特征摘要】
1.一种单一用户环境下基于细粒度排序的数据密文查询方法,其特征在于,生成带有访问结构的中间数据向量,生成绑定访问角色的目标查询向量,从所有外包电子文档的得分中筛选小于或等于阈值的所有密文,按得分的大小对筛选出的所有密文从大到小排序,该方法的具体步骤如下:(1)生成带有访问结构的中间数据向量:(1a)利用文本关键字提取算法,从外包电子文档集中提取所有的关键字组成字典;(1b)利用带权重的文本向量化公式,计算字典中的每个关键字在每个外包电子文档中的权重值,将每个外包电子文档对应的所有权重值按关键字在字典中的位置组成相应外包电子文档的初始数据向量,初始数据向量维数等于字典的大小;(1c)对每个初始数据向量中的元素按元素值从大到小排序,计算每个排序后的前d个元素的和,选取所有和中的最大值作为阈值,其中,d表示查询用户最多能输入的关键字的总数;(1d)选取Y个正整数组成访问角色集,Y的取值等于查询用户类别的总数,所选的正整数满足除第一个正整数外的每个正整数比该正整数之前选取出的所有正整数的和大两倍的阈值;(1e)从访问角色集中为每个外包电子文档选取有权访问该电子文档的所有访问角色作为根,构建角色多项式;(1f)添加系数为0且幂指数小于或等于Y的项,使得每个角色多项式展开式的项数为Y+1;(1g)将每个角色多项式展开式的各项按幂指数递增的顺序排列,将排列的各项系数扩展到相应外包电子文档对应的初始数据向量的末尾,得到中间数据向量;(2)生成目标数据向量:(2a)根据查询精度和数据安全性的要求的程度,数据拥有者选取用于权衡查询精度和数据安全性的σ,所述σ与数据安全性正相关,与查询精度负相关;(2b)从均值为0、标准差为σ的正态分布中,为每个中间数据向量独立选取U个随机数,将所选的U个随机数扩展到相应的中间数据向量的末尾,得到目标数据向量,其中,U的取值由数据安全性和效率的要求的程度确定,与数据安全性正相关,与效率负相关;(3)设置可搜索加密密钥和对称密钥:(3a)随机生成一个维数与目标数据向量维数相同的二进制向量、两个阶数均等于目标数据向量维数的可逆矩阵,将二进制向量和两个可逆矩阵组成可搜索加密密钥;(3b)生成对称加密算法的对称密钥;(4)对目标数据向量进行加密:(4a)利用数据向量分裂方法,将每个外包电子文档对应的目标数据向量分裂成两个随机向量,将两个随机向量作为相应外包电子文档的两个子向量;(4b)对可搜索加密密钥中的两个可逆矩阵进行转置操作,将转置后的两个可逆矩阵分别与每个外包电子文档的两个子向量相乘,组成相应外包电子文档索引;(4c)利用对称密钥对每个外包电子文档进行加密,得到密文;(4d)将所有外包电子文档索引、密文和阈值打包发送给云服务器;(4e)根据查询用户的身份,为查询用户从访问角色集中选取一个访问角色,将该访问角色、可搜索加密密钥和对称密钥通过安全通道发送给所选查询用户;(5)生成绑定访问角色的目标查询向量:(5a)利用不带权重的文本向量化方法,将查询请求转化为初始查询向量;(5b)将拥有的访问角色的0~Y次幂扩展到初始查询向量的末尾,得到中间查询向量;(5c)随机选取一个U维零向量的一半,将所选元素的值替换为1,得到选择向量;(5d)将选择向量中的每个元素按行依次扩展到中间查询向量的末尾,得到选择查询向量;(5e)在区间(0,1)上选取一个随机数,将选择查询向量中的每个元素均乘以所选随机数,得到目标查询向量;(6)对目标查询向量进行加密:(6a)利用查询向量分裂方法,将目标查询向量分裂成两个随机向量,将两个随机向量作为相应查询请求的两个子向量;(6b)对可搜索加密密钥中两个可逆矩阵进行求逆操作,将求逆后的两个可逆矩阵分别与查询请求的两个子向量相乘,组成查询请求的陷门;(6c)向云服务器提交查询请求的陷门;...

【专利技术属性】
技术研发人员:苗银宾童秋云马建峰李颖莹王祥宇马卓然
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1