一种密文检索结果可验证的多关键字可搜索加密方法技术

技术编号:37604956 阅读:21 留言:0更新日期:2023-05-18 11:56
本申请属于信息安全技术领域,具体涉及一种密文检索结果可验证的多关键字可搜索加密方法,步骤如下:数据客户端生成伪随机函数、关键字词典、密钥集,以及对目标明文文档进行加密得到密文文档;数据客户端依次生成明文索引向量及对应的密文索引向量以及验证标签,并将三者建立关系后上传至云服务器;搜索客户端生成明文搜索陷门向量及对应的密文陷门向量以及授权标签,并将密文陷门向量发送至云服务器;云服务器查询检索后将符合要求的密文文档及其验证标签返回给搜索客户端;搜索客户端对返回结果进行验证,并解密得到密文文档。本申请的多关键字可搜索加密方法利用对称隐藏向量积加密技术,有效支持密文环境下大规模数据检索结果的可验证性。检索结果的可验证性。检索结果的可验证性。

【技术实现步骤摘要】
一种密文检索结果可验证的多关键字可搜索加密方法


[0001]本申请属于信息安全
,具体涉及一种密文检索结果可验证的多关键字可搜索加密方法。

技术介绍

[0002]云计算通过提供弹性的计算能力和资源存储能力,彻底改变了传统的计算模式。越来越多的个人或企业选择将自己的数据外包到云服务器上,以节省个人或企业的管理成本和存储开销。然而,云计算在为用户提供便利的同时,也带来了一些数据隐私安全隐患。因为云计算本身就是一个以提供计算能力、存储能力或其他能力而盈利的不完全可信第三方,它完全有动机去窃取个人或企业的隐私数据,并从中获取利益。在云环境下,为了保护用户数据隐私,数据一般会加密后再外包到云服务器,这样可以防止云服务器或者恶意第三方对用户数据的非授权访问。然而,这也导致了用户无法直接在加密的数据上进行查询检索。
[0003]因此,可搜索加密应运而生,其允许用户在不恢复数据明文的情况下对存储在云服务器上的加密数据进行关键字查询检索。然而,大多数可搜索加密方案都是以云服务器将诚实地遵循指定的协议为前提,即云服务器被设定为“半诚实”的模型,所以这些方案并没有考虑云服务器返回的匹配计算的结果是否真的可信。在实际情况下,云服务器完全有可能由于系统故障或为了降低计算成本从而只完成部分协议的计算任务并返回错误的计算结果给用户。所以,对于云服务器返回的检索结果不能完全信任,特别是非常关键的计算结果。因此,对于用户而言,能够在云服务器返回的密文检索结果数据集上进行验证十分重要。
[0004]尽管已有的可搜索加密技术实现了密文检索结果可验证,但大多是基于双线性映射和RSA等公钥密码算法构造的,在验证效率上存在一定的局限性,特别是当数据量较大时,这种局限性更为明显;有一部分基于对称密码算法构造的,为了实现在密文下的可验证性,大多数方案都需要在本地保存外包数据的副本或标签,导致用户端的存储开销随着数据拥有者外包数据的增加而不断增加,其中基于哈希算法的密文检索结果可验证,需要用户端先解密密文,之后在明文下进行验证,这在一定程度上增加了用户的计算开销。

技术实现思路

[0005]为了解决现有技术中存在的至少一个技术问题,本申请提供了一种密文检索结果可验证的多关键字可搜索加密方法。
[0006]本申请公开了一种密文检索结果可验证的多关键字可搜索加密方法,所述多关键字可搜索加密方法是基于数据客户端、搜索客户端以及云服务器来实现,包括如下步骤:
[0007]步骤S1、数据客户端生成伪随机函数、关键字词典以及密钥集,其中,所述密钥集包括对称密钥、伪随机函数密钥、隐藏向量积加密密钥和安全向量内积运算所需的密钥;
[0008]步骤S2、数据客户端通过对称密码算法对目标明文文档进行加密得到密文文档;
[0009]步骤S3、数据客户端对所述目标明文文档进行关键字匹配生成明文索引向量,并根据所述明文索引向量生成对应的密文索引向量以及验证标签;
[0010]步骤S4、数据客户端将所述密文文档、密文索引向量及其验证标签之间建立关系后上传至云服务器进行存储;
[0011]步骤S5、搜索客户端根据待检索关键字集生成明文搜索陷门向量,并根据所述明文搜索陷门向量生成对应的密文陷门向量以及授权标签,最后再将所述密文陷门向量发送至所述云服务器;
[0012]步骤S6、云服务器根据接收到的所述密文陷门向量进行查询检索,并将符合查询检索要求的所述密文文档及其验证标签返回给搜索客户端;
[0013]步骤S7、搜索客户端对云服务器返回检索结果进行验证,并解密通过验证后的密文文档。
[0014]根据本申请的至少一个实施方式,在所述步骤S1中,生成伪随机函数、关键字词典以及密钥集包括:
[0015]步骤S11、生成伪随机函数F和伪随机函数密钥其中λ为安全参数;
[0016]步骤S12、生成对称隐藏向量积加密密钥生成用于对称加密明文数据的对称密钥msk;
[0017]步骤S13、生成包含所述目标明文文档所有关键字的关键字词典W,其中,所述关键字词典W中包含一般关键字和属性关键字;
[0018]步骤S14、生成用于安全向量内积运算所需的加密密钥(S,M1,M2),其中,S是维度为1
×
(n+U+1)的分裂指示向量且仅包含0、1元素,{M1,M2}是两个维度为(n+U+1)
×
(n+U+1)的可逆矩阵,n+U为关键字词典的大小,U为噪音关键字的数量。
[0019]根据本申请的至少一个实施方式,所述步骤S2中,所述数据客户端通过对称密码算法对目标明文文档进行加密得到密文文档包括:
[0020]使用对称密码算法和对称密钥msk加密目标明文文档{F1,F2,...,F
N
},获得密文文档{C1,C2,...,C
N
}。
[0021]根据本申请的至少一个实施方式,所述步骤S3中,数据客户端对所述目标明文文档进行关键字匹配生成明文索引向量包括:
[0022]步骤S31、将目标明文文档F
i
=(F1,F2,

,F
N
)
i=1,2,...,N
进行关键字匹配,匹配出目标明文文档中包含的所有一般关键字和属性关键字;
[0023]步骤S32、根据关键字匹配结果生成N个的明文索引向量I
i
={D
i1
,D
i2
}
1≤i≤N
,其中,D
i1
和D
i2
分别为每一个文档F
i
对应生成的向量,另外,明文索引向量的值为0或1;其中
[0024]对于向量D
i1
,其中D
i1
[j]1≤i≤N,1≤j≤n
表示关键字词典中的第j个关键字是否出现在文档F中,如果出现,则D
i1
[j]=1,否则D
i1
[j]=0;
[0025]对于向量D
i2
,其中D
i2
[j]表示文档F
i
中包含属性关键字的情况,如果第j个关键字为一般关键字,D
i2
[j]=a
i
,其中a
i
为随机数,如果第j个关键字是属性关键字且出现在文档F
i
中,D
i2
[j]等于该属性值,设该属性值为D
w
,则D
i2
[j]=D
w
,否则D
i2
[j]=0。
[0026]根据本申请的至少一个实施方式,所述步骤S3中,根据所述明文索引向量生成对应的密文索引向量以及验证标签包括:
[0027]步骤S33、对明文索引向量I
i
进行扩维处理,得到扩维后的向量D
i1
'[n+U+1]={D
i1
,ε1本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种密文检索结果可验证的多关键字可搜索加密方法,其特征在于,所述多关键字可搜索加密方法是基于数据客户端、搜索客户端以及云服务器来实现,包括如下步骤:步骤S1、数据客户端生成伪随机函数、关键字词典以及密钥集,其中,所述密钥集包括对称密钥、伪随机函数密钥、隐藏向量积加密密钥和安全向量内积运算所需的密钥;步骤S2、数据客户端通过对称密码算法对目标明文文档进行加密得到密文文档;步骤S3、数据客户端对所述目标明文文档进行关键字匹配生成明文索引向量,并根据所述明文索引向量生成对应的密文索引向量以及验证标签;步骤S4、数据客户端将所述密文文档、密文索引向量及其验证标签之间建立关系后上传至云服务器进行存储;步骤S5、搜索客户端根据待检索关键字集生成明文搜索陷门向量,并根据所述明文搜索陷门向量生成对应的密文陷门向量以及授权标签,最后再将所述密文陷门向量发送至所述云服务器;步骤S6、云服务器根据接收到的所述密文陷门向量进行查询检索,并将符合查询检索要求的所述密文文档及其验证标签返回给搜索客户端;步骤S7、搜索客户端对云服务器返回检索结果进行验证,并解密通过验证后的密文文档。2.根据权利要求1所述的多关键字可搜索加密方法,其特征在于,在所述步骤S1中,生成伪随机函数、关键字词典以及密钥集包括:步骤S11、生成伪随机函数F和伪随机函数密钥其中λ为安全参数;步骤S12、生成对称隐藏向量积加密密钥生成用于对称加密明文数据的对称密钥msk;步骤S13、生成包含所述目标明文文档所有关键字的关键字词典W,其中,所述关键字词典W中包含一般关键字和属性关键字;步骤S14、生成用于安全向量内积运算所需的加密密钥(S,M1,M2),其中,S是维度为1
×
(n+U+1)的分裂指示向量且仅包含0、1元素,{M1,M2}是两个维度为(n+U+1)
×
(n+U+1)的可逆矩阵,n+U为关键字词典的大小,U为噪音关键字的数量。3.根据权利要求2所述的多关键字可搜索加密方法,其特征在于,所述步骤S2中,所述数据客户端通过对称密码算法对目标明文文档进行加密得到密文文档包括:使用对称密码算法和对称密钥msk加密目标明文文档{F1,F2,...,F
N
},获得密文文档{C1,C2,...,C
N
}。4.根据权利要求2所述的多关键字可搜索加密方法,其特征在于,所述步骤S3中,数据客户端对所述目标明文文档进行关键字匹配生成明文索引向量包括:步骤S31、将目标明文文档F
i
=(F1,F2,

,F
N
)
i=1,2,...,N
进行关键字匹配,匹配出目标明文文档中包含的所有一般关键字和属性关键字;步骤S32、根据关键字匹配结果生成N个的明文索引向量I
i
={D
i1
,D
i2
}
1≤i≤N
,其中,D
i1
和D
i2
分别为每一个文档F
i
对应生成的向量,另外,明文索引向量的值为0或1;其中对于向量D
i1
,其中D
i1
[j]
1≤i≤N,1≤j≤n
表示关键字词典中的第j个关键字是否出现在文档F中,如果出现,则D
i1
[j]=1,否则D
i1
[j]=0;
对于向量D
i2
,其中D
i2
[j]表示文档F
i
中包含属性关键字的情况,如果第j个关键字为一般关键字,D
i2
[j]=a
i
,其中a
i
为随机数,如果第j个关键字是属性关键字且出现在文档F
i
中,D
i2
[j]等于该属性值,设该属性值为D
w
,则D
i2
[j]=D
w
,否则D
i2
[j]=0。5.根据权利要求4所述的多关键字可搜索加密方法,其特征在于,所述步骤S3中,根据所述明文索引向量生成对应的密文索引向量以及验证标签包括:步骤S33、对明文索引向量I
i
进行扩维处理,得到扩维后的向量D
i1
'[n+U+1]={D
i1
,ε1,ε2,


U
,1}和D
i2
'[n+U+1]={D
i2
,a
n+1
,a
n+2
,

,a
n+U+1
},其中,ε
i
和a
i
为随机数;步骤S34、利用分裂指示向量S分别将明文索引向量I
i
中的向量D
i1
和D
i2
裂变为向量(D'
ia
,D'
ib
),维度均为1
×
...

【专利技术属性】
技术研发人员:龚丽刘翱张益何龙张红莉
申请(专利权)人:中国民用航空总局第二研究所
类型:发明
国别省市:

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

1