发明内容
本发明的目的在于提供一种具有隐私保护的轻量级外包文件多关键词检索方法及系统,适用于弱设备客户端,提高检索效率,提升用户的搜索体验。
为实现上述目的,本发明提供了一种具有隐私保护的轻量级外包文件多关键词检索方法,包括:
获取系统安全参数和抗碰撞哈希函数,生成系统公开参数;
根据所述系统公开参数生成密钥,并定义关键词词典;
对每个外包文件,根据所述文件内容和关键词词典生成文件索引向量;
对所述文件索引向量进行加密,得到密文索引向量,并上传至云服务器;
根据所述查询关键词和关键词词典生成查询向量;
对所述查询向量进行加密,得到密文检索陷门;
将所述密文检索陷门和预设的相似度阀值提交给云服务器;
计算所述密文检索陷门和所述密文索引向量的相似度,返回相应数据。
其中,所述获取系统安全参数和抗碰撞哈希函数,生成系统公开参数,包括:
获取多个系统安全参数,并随机选取一个长度为第二个系统安全参数位的第一大素数和一种抗碰撞哈希函数,生成系统公开参数。
其中,根据所述系统公开参数生成密钥,并定义关键词词典,包括:
从域中随机选取一个非零元素作为密钥,并选取n个关键词构成一个关键词词典。
其中,所述对每个外包文件,根据所述文件内容和关键词词典生成文件索引向量,包括:
对每个外包文件,构造长度为n+2的文件索引向量,若文件中包含所述关键词词典的第i个关键词,则文件索引向量的第i个元素值为1,否则为0,其中,其中,1≤i≤n。
其中,根据所述文件内容和关键词词典生成文件索引向量后,包括:
对外包文件随机选取唯一一个文件名,并计算文件大小,并根据所述抗碰撞哈希函数、文件名和文件大小计算出哈希值。
其中,对所述文件索引向量进行加密,得到密文索引向量,并上传至云服务器,包括:
使用密钥对所述文件索引向量进行加密,随机选取一个长度为第三个系统安全参数位的第一大随机数,并由密钥、文件索引向量、哈希值和所述第一大素数计算出密文索引向量每个元素的值,并将所述外包文件、文件名和密文索引向量上传至云服务器。
其中,根据所述查询关键词和关键词词典生成查询向量,包括:
对于每个外包文件,根据查询需求生成查询关键词,并构造长度为n+2的查询向量,若查询关键词中包含所述关键词词典的第i个关键词,则查询向量的第i个元素值为1,否则为0,其中,1≤i≤n。
其中,对所述查询向量进行加密,得到密文检索陷门,包括:
利用所述系统公开参数和所述密钥对所述查询向量进行加密,得到密文检索陷门,随机选取一个长度为第一个系统安全参数位的第二大随机数和一个长度为第四个系统安全参数的第三大随机数,并和所述密钥、所述查询向量和所述第一大素数计算出密文检索陷门每个元素的值。
其中,计算所述密文检索陷门和所述密文索引向量的相似度,返回相应数据,包括:
当云服务器接收到所述密文检索陷门后,由所述抗碰撞哈希函数、所述文件名、所述文件大小和所述第二大随机数计算出第一中间数值,由密文索引向量、密文检索陷门、第一大素数计算出第二中间数值,第二中间数值和第一中间数值计算得到第三中间数值,由第三中间数值和第一中间数值作除法运算,得到所述密文检索陷门和所述密文索引向量的相似度,当计算出的相似度大于或等于所述预设的相似度阀值时,返回相应数据。
第二方面,本发明提供一种具有隐私保护的轻量级外包文件多关键词检索系统,所述具有隐私保护的轻量级外包文件多关键词检索系统包括系统初始化模块、用户密钥生成模块、文件处理模块、文件查询模块和服务器响应模块,所述系统初始化模块和所述用户密钥生成模块电性连接,所述用户密钥生成模块和所述服务器响应模块分别与所述文件处理模块和所述文件查询模块电性连接,
所述系统初始化模块,用于选取安全参数和抗碰撞哈希函数,生成系统公开参数;
所述用户密钥生成模块,用于利用系统公开参数生成自己的密钥,并定义关键词词典;
所述文件处理模块,用于对每个外包文件,根据文件内容和关键词词典生成文件索引向量,使用密钥对文件索引向量进行加密得到密文索引向量,将文件及密文索引向量上传到云服务器;
所述文件查询模块,用于根据查询关键词和关键词词典生成查询向量,利用系统公开参数以及密钥对查询向量进行加密得到密文检索陷门,并选取预期的相似度阈值,将其提交给云服务器;
所述服务器响应模块,用于云服务器收到来自数据拥有者的密文检索陷门后,与每个外包文件的密文索引向量计算相似度,根据相似度结果返回对应的外包数据。
本发明提供的一种具有隐私保护的轻量级外包文件多关键词检索方法及系统,所述系统包括系统初始化模块、用户密钥生成模块、文件处理模块、文件查询模块和服务器响应模块,所述方法根据系统公开参数生成密钥,多个关键词组成关键词词典,对于每个外包文件,根据文件内容和关键词词典构造文件索引向量,通过密钥对文件索引向量加密处理,得到密文索引向量,然后外包至云服务器,在检索时,根据查询关键词和关键词词典构造查询向量,通过密钥加密变换之后得到密文检索陷门,并预设一相似度阀值,提交至云服务器,使云服务器仅能根据密文形式的密文检索陷门执行数据检索,当密文索引向量和密文检索陷门计算出的相似度超过预设的相似度阀值时,将检索到的外包数据返回给用户,提高检索效率,提升弱设备客户端的用户的搜索体验。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
请参阅图1至图2,本发明提供一种具有隐私保护的轻量级外包文件多关键词检索方法,包括:
S101、获取系统安全参数和抗碰撞哈希函数,生成系统公开参数。
具体的,在系统初始化模块1中输入多个系统安全参数λ
1,λ
2,λ
3,λ
4,并随机选取一个长度为第二个系统安全参数λ
2位的第一大素数p和一种抗碰撞哈希函数H,生成系统公开参数,公开参数为(λ
1,λ
2,λ
3,λ
4,p,H),其中,抗碰撞哈希函数H为一种输入任意长度的二进制串,输出为λ
1位二进制串,表示方法为
S102、根据系统公开参数生成密钥,并定义关键词词典。
具体的,在用户密钥生成模块2中,从系统公开参数的域Zp中随机选取一个非零元素作为密钥k,n个关键词构成一个关键词词典D。
S103、对每个外包文件,根据所述文件内容和关键词词典生成文件索引向量。
具体的,对于在文件处理模块3中的每个外包文件时,构造一个长度大于所述关键词词典D长度的文件索引向量
其长度一般为n+2,然后判断该文件中每个元素的文件索引向量的值
若该文件中包含关键词词典的第i(1≤i≤n)个关键词,则文件索引向量
的第i个元素设置为1,即
若该文件中不包含关键词词典的第i个关键词,则文件索引向量
的第i个元素设置为0,即
令
之后,还为外包文件随机选取一个唯一的文件名N,并计算文件大小d和哈希值θ,哈希值θ=H(N||d),||表示字符串连接。
S104、对所述文件索引向量进行加密,得到密文索引向量,并上传至云服务器。
具体的,使用密钥k对文件索引向量
进行加密,得到密文索引向量
其中
对于文件索引向量
中的每个元素
随机选取一个长度为第三个系统安全参数λ
3位的第一大随机数a
i,计算
其中,当
时,
然后将外包文件及密文索引向量
上传至云服务器。
S105、根据所述查询关键词和关键词词典生成查询向量。
对于每个外包文件在文件查询模块4时,根据查询需求生成查询关键词,并构造一个长度大于所述关键词词典D长度的查询向量Q,其长度一般为n+2,然后判断该文件中每个元素的查询向量的值Q
i(1≤i≤n+2),若该查询关键词中包含关键词词典的第i(1≤i≤n)个关键词,则查询向量Q的第i个元素设置为1,即Q
i=1,若该查询关键词中不包含关键词词典的第i个关键词,则文件索引向量
的第i个元素设置为0,即Q
i=0,令Q
n+1=0,Q
n+2=0。
S106、对所述查询向量进行加密,得到密文检索陷门。
具体的,使用密钥k对查询向量Q进行加密,得到密文检索陷门
其中
对于查询向量Q中的每个元素Q
i(1≤i≤n+2),随机选取一个长度为第一个系统安全参数λ
1位的第二大随机数m和随机选取一个长度为第四个系统安全参数λ
4位的第三大随机数c
i,计算
其中,当Q
i=0时,
S107、将所述密文检索陷门和预设的相似度阀值提交给云服务器。
具体的,选取预设的相似度阀值τ(0≤τ≤n),将第二大随机数m、密文检索陷门
和相似度阀值τ提交给云服务器。
S108、计算所述密文检索陷门和所述密文索引向量的相似度,返回相应数据。
具体的,当服务器响应模块5接收到所述密文检索陷门
后,首先对每个外包文件,计算第三中间数值
然后计算第一中间数值E=m·H(N||d),根据第一中间数值E和第三中间数值ρ计算第二中间数值G=ρ-(ρmodE),由所述密文检索陷门
和所述密文索引向量
计算相似度
如果
则将该文件、文件名N以及相似度
返回给数据拥有者,其中,符号·表示向量内积运算,/表示除法运算。
参见图3,本发明提供的一种具有隐私保护的轻量级外包文件多关键词检索系统,所述具有隐私保护的轻量级外包文件多关键词检索系统包括系统初始化模块1、用户密钥生成模块2、文件处理模块3、文件查询模块4和服务器响应模块5,所述系统初始化模块1和所述用户密钥生成模块2电性连接,所述用户密钥生成模块2和所述服务器响应模块5分别与所述文件处理模块3和所述文件查询模块4电性连接,
所述系统初始化模块1,用于选取安全参数和抗碰撞哈希函数H,生成系统公开参数;
所述用户密钥生成模块2,用于利用系统公开参数生成自己的密钥k,并定义关键词词典D;
所述文件处理模块3,用于对每个外包文件,根据文件内容和关键词词典D生成文件索引向量
使用密钥k对文件索引向量
进行加密得到密文索引向量
将外包文件及密文索引向量
上传到云服务器;
所述文件查询模块4,用于根据查询关键词和关键词词典D生成查询向量Q,利用系统公开参数以及密钥k对查询向量Q进行加密得到密文检索陷门
并选取预期的相似度阈值τ,将其提交给云服务器;
所述服务器响应模块5,用于云服务器收到来自数据拥有者的密文检索陷门
后,与每个外包文件的密文索引向量
计算相似度,根据相似度结果返回对应的外包数据。
在本实施方式中,所述系统初始化模块1根据输入的多个系统安全参数,和选取的抗碰撞哈希函数H,生成系统公开参数,并将数据传输至所述用户密钥生成模块2,所述用户密钥生成模块2利用系统公开参数生成自己的密钥k,并将n个关键词构成一个关键词词典D,所述文件处理模块3根据所述用户密钥生成模块2中的文件内容和关键词词典D生成文件索引向量
使用密钥k对文件索引向量
进行加密得到密文索引向量
将文件及密文索引向量
上传到云服务器,所述文件查询模块4根据所述用户密钥生成模块2中的查询关键词和关键词词典D生成查询向量Q,利用系统公开参数以及密钥k对查询向量Q进行加密得到密文检索陷门
并选取预期的相似度阈值τ,将其提交给云服务器,所述服务器响应模块5接收所述文件处理模块3和所述文件查询模块4上传的数据,利用密文检索陷门
与每个外包文件的密文索引向量
计算出相似度,当相似度大于或等于预设的相似度阀值时,根据相似度结果返回对应的外包数据
本发明提供的一种具有隐私保护的轻量级外包文件多关键词检索方法及系统,所述系统包括系统初始化模块1、用户密钥生成模块2、文件处理模块3、文件查询模块4和服务器响应模块5,所述系统初始化模块1和所述用户密钥生成模块2电性连接,所述用户密钥生成模块2和所述服务器响应模块5分别与所述文件处理模块3和所述文件查询模块4电性连接,所述方法根据系统公开参数生成密钥,多个关键词组成关键词词典,对于每个外包文件,根据文件内容和关键词词典构造文件索引向量,通过密钥对文件索引向量加密处理,得到密文索引向量,然后外包至云服务器,在检索时,根据查询关键词和关键词词典构造查询向量,通过密钥加密变换之后得到密文检索陷门,并预设一相似度阀值,提交至云服务器,使云服务器仅能根据密文形式的密文检索陷门执行数据检索,当根据密文索引向量和密文检索陷门计算出的相似度超过预设的相似度阀值时,将检索到的外包数据返回给用户,提高检索效率,提升弱设备客户端的用户的搜索体验。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。