发明内容
本发明针对恶意服务器返回给用户错误的或者是不完整的检索结果的问题,提供一种在区块链中进行加密图像检索的隐私保护方法。
为解决上述问题,本发明是通过以下技术方案实现的:
一种在区块链中进行加密图像检索的隐私保护方法,包括步骤如下:
步骤1、图像拥有者将图像上传给服务提供商;
步骤2、服务提供商利用对称加密算法对图像拥有者所上传的图像进行加密后,上传到云存储服务中心;
步骤3、服务提供商首先对图像拥有者所上传的每一幅图像进行特征提取;然后对所有图像所提取出的图像特征进行K-means聚类后,得到K个视觉单词,同时对每一幅图像所提取出的图像特征进行哈希编码后生成simhash指纹;接着利用可检索加密算法对每幅图像对应的视觉单词和simhash指纹进行加密后生成图像索引;最后利用图像索引密钥对图像索引进行加密,并将加密后的图像索引和嵌入访问策略的对称密钥一并上传到区块链中;其中K为设定值;
步骤4、当图像使用者想要检索图像时,图像使用者向区块链提交押金和该图像使用者的属性集;
步骤5、区块链收到图像使用者发来的押金和图像使用者的属性集后,对押金满足数量要求且属性集满足访问策略的图像使用者,返回检索授权结果,该检索授权结果包括图像索引密钥、图像属性密钥和嵌入访问策略的对称密钥;
步骤6、图像使用者收到区块链返回的检索授权结果后,先生成待检索图像的视觉单词和simhash指纹,再利用图像索引密钥对该视觉单词和simhash指纹进行加密后生成检索凭证,并将检索凭证提交至区块链;
步骤7、区块链利用检索凭证去检索其内所存储的图像索引,得到与待检索图像相似的图像的相似图像ID集合,并将相似图像ID集合返回给图像使用者;
步骤8、图像使用者首先利用相似图像ID集合去云服务商上去下载对应的加密图像;然后利用图像属性密钥去解密嵌入访问策略的对称密钥,得到解密后的对称密钥;最后利用解密后的对称密钥对所下载的加密图像进行解密后,得到所需的检索结果。
上述隐私保护方法,还进一步包括如下步骤:
步骤9、当用户想要增加图像时,用户向区块链提交押金和该用户的属性集;
步骤10、区块链收到用户发来的押金和用户的属性集后,对押金满足数量要求且属性集满足访问策略的用户,返回增加更新授权结果,该增加更新授权结果包括图像索引密钥、图像属性密钥和嵌入访问策略的对称密钥;
步骤11、用户收到区块链返回的增加更新授权结果后,先生成待增加图像的视觉单词和simhash指纹,再利用图像索引密钥对该视觉单词和simhash指纹进行加密后生成增加更新凭证,并将增加更新凭证提交至区块链;
步骤12、区块链利用增加更新凭证去更新其内所存储的图像索引,即将待增加图像的ID增加到图像索引中;
步骤13、用户先利用图像属性密钥对嵌入访问策略的对称密钥进行解密,得到解密后的对称密钥;再利用解密后的对称密钥对待增加图像进行加密后,上传到云服务商。
上述隐私保护方法,还进一步包括如下步骤:
步骤14、当用户想要删除图像时,用户向区块链提交押金和该用户的属性集;
步骤15、区块链收到用户发来的押金和用户的属性集后,对押金满足数量要求且属性集满足访问策略的用户,返回删除更新授权结果,该删除更新授权结果包括图像索引密钥;
步骤16、用户收到区块链返回的删除更新授权结果后,利用图像索引密钥对待删除图像的ID进行加密后生成删除更新凭证,并将删除更新凭证提交至区块链;
步骤17、区块链利用增加更新凭证去更新其内所存储的图像索引,即将待删除图像的ID从图像索引中删除。
上述方案中,用户为图像拥有者或图像使用者。
与现有技术相比,本发明具有如下特点:
1、利用区块链技术来解决可搜索加密方案中存在恶意服务器的可能,实现搜索的结果的可信性与搜索过程的透明性。
2、针对现有的一些加密图像检索方案具有计算复杂度高、通信开销大等缺点,且难以达到与明文状态下一致的检索准确性,希望通过构建bovw模型作为第一层图像索引确定图像分类以此减少第二层图像simhash相似性计算的双层图像索引结构并且结合SSE技术方案实现图像密文状态的近似性匹配,提高图像索引的效率并保证准确性。
3、通过利用基于密文策略属性加密技术,允许图像所有者对用户进行细粒度的搜索授权。主要思想是,图像所有者根据指定的访问策略对图像索引关键字进行加密,并且仅当用户的属性满足访问策略时,用户才能对加密的图像索引关键字执行搜索,从而有效地管理了用户的搜索权限进一步保证了数据完全性。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,并参照附图,对本发明进一步详细说明。
本发明的系统模型包括5个实体,即图像拥有者(image owner)、服务提供商(service provider)、云服务商(cloud)、区块链(blockchain)、图像使用者(image user)。
图像拥有者:为了得到服务提供商提供的服务(例如识图功能等)需要将图像上传给服务提供商(例如instagram)。
服务提供商:先将加密后的图像数据外包到云服务商上以解决本地存储压力和计算资源的消耗;同时为了避免恶意云服务商带来错误或者不完备结果的威胁将加密后的图像索引存储在区块链上,以通过区块链的去中心化以及共识机制等技术解决和云服务商之间的信任问题;而且服务提供商还负责智能合约的构建,它将会部署三个智能合约负责授权、搜索、更新的任务,一旦智能合约成功部署到区块链上那么会按照预先设计好的逻辑自动执行任务而不需要服务提供商在线提供帮助,并且之后的搜索过程都在区块链上进行而不是以前在云服务商上搜索,这样做的目的是考虑到了区块链上的经济成本并且用户无需自己对搜索结果进行验证,减少了用户面对的威胁。
云服务商:考虑到存在对搜索过程恶意攻击的威胁,只负责存储加密后的图像数据,通过密码学的帮助,云服务商在可接受的时间内无法破解加密数据,所以保护了图像数据在云服务商上的隐私。
区块链:记录从服务提供商得到加密图像索引,通过智能合约对图像使用者提供搜索服务以保证搜索结果的正确性和完整性。部署了三个智能合约包括用户搜索权限管理的智能合约、搜索智能合约、更新智能合约以支持整个系统的工作流程。
图像使用者:在搜索请求之前,图像使用者必须在智能合约中存入足够的搜索费(包括消息费和服务费)。如果图像使用者存入了足够的搜索费并且被验证为授权用户,图像使用者可以将生成的搜索令牌以交易的方式发送到搜索智能合约进行搜索.图像使用者从搜索智能合约接收到结果,到云服务器上下载相应的加密图像数据进行解密,或者得到更新授权后图像使用者生成更新令牌发送到更新智能合约对存储在区块链上的加密索引更新。
如果把所有的数据都存储在区块链上带来的代价过于高昂,本发明综合考虑过后只是将加密后的图像索引存储在区块链上,并且之后的搜索过程也是通过区块链上的智能合约完成的。图像使用者想要搜索图像数据,首先需要授权智能合约存放一笔押金触发交易,使用者在满足基于属性加密的访问策略后得到相应的授权可以生成search token,否则押金会在相应的时间内退还给用户。图像使用者将生成的search token以交易的方式发送给搜索智能合约,搜索智能合约将会返还给图像使用者搜索的结果,图像使用者从云服务商上将相应的加密图像数据下载后进行解密最终的到自己想要搜索的图像。
为了能够利用区块链上的智能合约进行可搜索加密图像的方案解决信任问题,以及有效地对用户搜索权限进行管理,本发明提出一种在区块链中进行加密图像检索的隐私保护方法,如图1所示,其具体的步骤如下:
(1)图像上链
步骤1、图像拥有者将图像上传给服务提供商。
步骤2、服务提供商利用对称加密算法对图像拥有者所上传的图像进行加密后,上传到云存储服务中心。
步骤3、服务提供商基于其内所存储的图像构建图像索引,并将加密后的图像索引和嵌入访问策略的对称密钥一并上传到区块链中。
服务提供商首先对图像拥有者所上传的每一幅图像进行特征提取;然后对所有图像所提取出的图像特征进行K-means聚类后,得到K个视觉单词,同时对每一幅图像所提取出的图像特征进行哈希编码后生成simhash指纹;接着利用可检索加密算法对每幅图像对应的视觉单词和simhash指纹进行加密后生成图像索引;最后利用图像索引密钥对图像索引进行加密,并将加密后的图像索引和嵌入访问策略的对称密钥上传到区块链中。参见图2。其具体包括如下步骤:
步骤3.1、服务提供商对其所拥有的M幅图像分别进行预处理,其中预处理包括图像增强,分割,图像统一格式,统一规格等等。
步骤3.2、服务提供商对每一幅图像分别提取SIFT特征。
每一个SIFT特征用一个128维的描述子矢量表示。每一幅图像提取多少个SIFT特征不定,其需要根据需求进行人为设定,在本实施例中,M幅图像一共提取出N个SIFT特征。
步骤3.3、服务提供商对所有图像所提取出的N个SIFT特征进行K-means聚类后,得到K个视觉单词。
K-Means算法是一种基于样本间相似性度量的间接聚类方法,此算法以设定的K为参数,把N个对象(即SIFT特征)分为K个簇,每个簇均具有一个聚类中心(即视觉单词),以使簇内具有较高的相似度,而簇间相似度较低。这样做的好处是我们在查找图像的过程中能够通过视觉单词来排除不相关的图像缩小查找范围以及减少simhash计算量。
完成这一步后,每一幅图像均被包含在一个对应的簇内,也就是说每一幅图像均与该簇的聚类中心(即视觉单词)相关联,由此得到的结果如表1:
表1图像-视觉单词字典
图像数据集 |
视觉单词 |
Image1 |
Visual word |
Image2 |
Visual word |
... |
... |
Imaged<sub>m</sub> |
Visual word |
步骤3.4、服务提供商对每一幅图像所提取到的SIFT特征进行simhash签名得到图像的simhash指纹。则每一幅图像的视觉单词和simhash指纹即构成该幅图像的字典,由此得到的结果例如表2:
表2视觉单词-simhash字典
视觉词典 |
simhash |
Visual word1 |
Simhash1,simhash4,simhash5 |
Visual word2 |
Simhash2,simhash3.simhash7 |
... |
... |
Visual word<sub>m</sub> |
Simhash6,simhash8,simhash9 |
步骤3.5、服务提供商利用图像索引密钥对每一幅图像对应的视觉单词和simhash指纹进行加密后生成加密后的图像索引Ψ,并将加密后的图像索引和嵌入访问策略的对称密钥上传并存储在区块链当中。
(2)图像检索
步骤4、当图像使用者想要检索图像时,图像使用者向区块链提交押金(Deposit)和该图像使用者的属性集(Attributes),以触发区块链的授权智能合约。
在进行图像检索时,其可以是给定一副图像,去检索与该图像相似的图像,也可以是给定字典,去检索与该字典相似的图像。在本实施例中,在进行相似图像检索时,图像使用者需要提供一幅检索图像以生成对应的检索字典{vistual,simhash}。
步骤5、区块链收到图像使用者发来的押金和图像使用者的属性集后,对押金满足数量要求且属性集满足访问策略的图像使用者,返回检索授权结果,该检索授权结果包括图像索引密钥、图像属性密钥和嵌入访问策略的对称密钥。即:
区块链的授权智能合约收到图像使用者发来的押金以及属性集后,根据之前设定好的逻辑自动判断押金数量是否满足要求:
如果押金满足要求,则继续判断图像使用者的属性集是否满足基于属性加密的访问策略:
若属性满足访问策略,则向图像使用者返回检索授权结果,图像使用者将得到特定范围的图像搜索授权。
若属性不满足访问策略,则扣除相应操作所产生的成本费用后,退回押金。
如果押金不满足要求,则扣除相应操作所产生的成本费用后,退回押金。
步骤6、图像使用者收到区块链返回的检索授权结果后,先生成待检索图像的视觉单词和simhash指纹,再利用图像索引密钥对该视觉单词和simhash指纹进行加密后生成检索凭证,并将检索凭证提交至区块链,以触发区块链的搜索智能合约。
待检索图像的视觉单词和simhash指纹的生成方式可以有两种方式:一种方式是直接由图像使用者给定待检索图像的视觉单词和simhash指纹。另一种方式是基于本地给定的待检索图像所获得,此时需要使用特征提取器对本地图像提取特征得到该本地图像的视觉单词和simhash指纹。
步骤7、区块链利用检索凭证去检索区块链中所存储的图像索引,得到与待检索图像相似的图像的相似图像ID集合,并将相似图像ID集合返回给图像使用者。
步骤8、图像使用者先利用相似图像ID集合去云服务商上去下载对应的加密图像;再利用图像属性密钥解密嵌入访问策略的对称密钥,得到解密后的对称密钥,后利用解密后的对称密钥对所下载的加密图像进行解密,得到所需的检索结果。
(3)图像增加
步骤9、当用户(图像拥有者或图像使用者)想要增加图像时,用户向区块链提交押金和该用户的属性集。
步骤10、区块链收到用户发来的押金和用户的属性集后,对押金满足数量要求且属性集满足访问策略的用户,返回增加更新授权结果,该增加更新授权结果包括图像索引密钥、图像属性密钥和嵌入访问策略的对称密钥。
该步骤的具体过程类似于步骤5。
步骤11、用户收到区块链返回的增加更新授权结果后,先生成待增加图像的视觉单词和simhash指纹,再利用图像索引密钥对该视觉单词和simhash指纹进行加密后生成增加更新凭证,并将增加更新凭证提交至区块链。
步骤12、区块链利用增加更新凭证去更新其内所存储的图像索引,即将待增加图像的ID增加到图像索引中。
步骤13、用户先利用图像属性密钥对嵌入访问策略的对称密钥进行解密,得到解密后的对称密钥;再利用解密后的对称密钥对待增加图像进行加密后,上传到云服务商。
(4)图像删除
步骤14、当用户(图像拥有者或图像使用者)想要删除图像时,用户向区块链提交押金和该用户的属性集。
步骤15、区块链收到用户发来的押金和用户的属性集后,对押金满足数量要求且属性集满足访问策略的用户,返回删除更新授权结果,该删除更新授权结果包括图像索引密钥。
该步骤的具体过程类似于步骤5。
步骤16、用户收到区块链返回的删除更新授权结果后,利用图像索引密钥对待删除图像的ID进行加密后生成删除更新凭证,并将删除更新凭证提交至区块链。
步骤17、区块链利用增加更新凭证去更新其内所存储的图像索引,即将待删除图像的ID从图像索引中删除。
需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。