1.一种可验证的加密图像检索隐私保护方法,其特征是,其具体包括步骤如下:步骤1、图片所有者使用预先训练好的CNN模型提取本地图片数据库的每张图片的特征向量;
步骤2、图片所有者采用K‑means聚类算法对步骤1所得的图片的特征向量进行聚类,得到K个聚类;
步骤3、图片所有者采用ASPE加密方法对步骤1所得的图片的特征向量进行加密,得到加密特征向量,并结合步骤2所得到的K个聚类,得到K个加密聚类;
步骤4、图片所有者先利用步骤3所得到的每个加密聚类分别构建一棵KD树;
步骤5、图片所有者在步骤4所得到的每棵KD树的每个节点上增加聚类默克尔哈希值,得到默克尔KD树;
当节点Nj为KD树的叶子节点时,该节点的聚类默克尔哈希值为:hNj=h(f′id|id)
当节点Nj为KD树的内部节点时,该节点的聚类默克尔哈希值为:步骤6、图片所有者利用步骤2所得到的K个聚类共同构建一棵层次聚类索引树;
步骤7、图片所有者采用ASPE加密方法对步骤6所得到的层次聚类索引树的每个节点的表示向量进行加密,得到每个节点的加密表示向量,并得到加密层次聚类索引树;
步骤8、图片所有者在步骤7所得到的加密层次聚类索引树的每个节点上增加2个层次默克尔哈希值,得到默克尔层次聚类索引树;
当第q层的第p个节点为加密层次聚类索引树的叶子节点时,该节点的2个层次默克尔哈希值为:
hash1q,p=h(V′q,p|hash2q,p),hash2q,p=hRootτ当第q层的第p个节点为加密层次聚类索引树的内部节点时,该节点的2个层次默克尔哈希值为:
hash1q,p=h(V′q,p|hash2q,p),步骤9、图片所有者将步骤8所得到的默克尔层次聚类索引树和步骤5所得到的K个默克尔KD树形成可验证索引结构;
步骤10、图片所有者先对本地图片数据库的每张图片进行加密后,得到加密图片,并得到加密图片数据库,再将该加密图片数据库和步骤9所得到的可验证索引结构树一并上传至云服务器;
步骤11、当用户需要查询待检图片的相似图片时,先利用预先训练好的CNN模型提取该待检图片的特征向量,再采用ASPE加密方法对该待检图片的特征向量进行加密后,得到待检图片的加密特征向量,后将待检图片的加密特征向量发送至云服务器;
步骤12、云服务器收到用户发来的待检图片的加密特征向量后,首先,利用待检图片的加密特征向量在可验证索引结构上进行两级查询:①第一级查询即查询可验证索引结构的默克尔层次聚类索引树时,将默克尔层次聚类索引树根节点到叶子节点的查找路径上的所有访问过的节点的加密表示向量和第二层次默克尔哈希值作为第一级密码学证明,②第二级查询即查询可验证索引结构的默克尔KD树时,将默克尔KD树的根节点的聚类默克尔哈希值、默克尔KD树根节点到叶子节点到叶子节点的查找路径上的所有访问过的节点以及相邻节点的聚类默克尔哈希值作为第二级密码学证明;
然后,将经过两级查询所得的与该待检图片的加密特征向量最接近的topk个加密特征向量所对应的加密图片作为检索结果;
最后,将第一级密码学证明、第二级密码学证明和检索结果一并返回给用户;
步骤13、用户利用云服务器返回的第一级密码学证明和第二级密码学证明对检索结果进行两级验证,即:
①利用第二级密码学证明中的默克尔KD树的根节点到叶子节点到叶子节点的查找路径上的所有访问过的节点以及相邻节点的聚类默克尔哈希值进行默克尔KD树的重构,并计算重构的默克尔KD树的根节点的聚类默克尔哈希值;如果重构的默克尔KD树的根节点的聚类默克尔哈希值与云服务器返回给用户的第二级密码学证明中默克尔KD树的根节点的聚类默克尔哈希值一致,则通过第一级验证,否则用户认为云服务器返回的检索结果不可信,放弃该检索结果;
②利用第一级密码学证明中的默克尔层次聚类索引树根节点到叶子节点的查找路径上的所有访问过的节点的加密表示向量和第二层次默克尔哈希值进行默克尔层次聚类索引树的重构,并计算重构的默克尔层次聚类索引树的第一层次默克尔哈希值;如果重构的默克尔层次聚类索引树的第一层次默克尔哈希值与图片所有者发送给用户的默克尔层次聚类索引树的第一层次默克尔哈希值一致,则通过第二级验证,否则用户认为云服务器返回的检索结果不可信,放弃该检索结果;
步骤14、当检索结果通过步骤13的两级验证后,用户利用图片所有者发送给用户的密钥对检索结果进行解密,得到明文图片;
其中,K和topk为设定的正整数,h表示哈希函数,|表示连接符,hNj表示节点Nj的聚类默克尔哈希值,f′id表示节点Nj所对应的图片的加密特征向量,id为节点Nj所对应的图片的编号,lNj表示节点Nj的划分平面, 表示节点Nj的左节点的聚类默克尔哈希值, 表示节点Nj的右节点的聚类默克尔哈希值,hash1q,p表示第q层的第p个节点的第一层次默克尔哈希值,hash2q,p表示第q层的第p个节点的第二层次默克尔哈希值,V′q,p表示第q层的第p个节点所对应的加密表示向量,hRootτ表示第q层的第p个节点所对应的默克尔KD树的根节点的聚类默克尔哈希值, 表示第q层的第p个节点的所有子节点所对应的聚类默克尔哈希值之和。