时间:2024-05-04
李骥才,刘 丹
(东北林业大学信息与计算机工程学院,黑龙江 哈尔滨 150040)
目前含有位置服务的软件均可根据全球定位系统查看目前用户的所在位置[1],大数据可根据用户平时活动轨迹向用户推送兴趣点,但会泄露用户的个人隐私[2]。为避免这种情况,需隐藏用户位置信息,在隐藏信息的同时又可隐藏用户自行搜索的信息,根据以上要求对数据库可搜索的加密算法展开研究[3]。
文献[4]提出基于个性化搜索的数据库隐私可搜索加密算法。该算法按照使用者自身属性产生其独特模型,根据此模型得出使用者的专属信息搜索矩阵,基于矩阵加密使用者的搜索信息,最终求解出安全内积,将分数最大的相关搜索文件传送给使用者,实现数据库隐私可搜索加密,该算法在搜索加密数据前没有对用户位置信息进行匿名加密,无法提前加设防线,降低数据库安全系数,进而降低了恶意攻击数据拦截量。文献[5]提出基于非安全信道下的数据库隐私可搜索加密算法。该算法利用双系统加密算法保证数据安全,并将两种系统的加密算法转成非安全信道上的系统加密信息搜索算法,生成所要查询内容的对应陷门,在海量加密数据库中得出相关关键词的数据信息,实现数据库隐私可搜索加密,该算法虽设两道加密手段进行数据加密搜索,但忽略了用户自身信息的加密,即没有对用户位置信息进行比特序列预处理,导致搜索结果中暴露的个人隐私过多,直接降低加密精度,进而升高加密误差。文献[6]提出基于混合幅度-相位检索技术与二维耦合混沌映射的数据库隐私可搜索加密算法。该算法将搜索关键词添加到Logistic映射以及Sine映射中,并在非线性耦合的基础上构成二维综合混沌映射,并通过前一个搜索结果更新下一个结果,完成复合映射最后得到三个混沌序列,其次利用引擎混淆机制打乱搜索信息并构建出初值条件进行迭代,生成混沌随机掩码,最后通过混合幅度-相位检索技术对搜索出且打乱后的信息进行加密,实现数据库隐私可搜索加密,该算法没有利用分段线性编码将位置信息进行匿名,导致兴趣点的暴露数量过多,即使加大力度对数据进行加密,也大大降低加密算法等级。
为解决上述方法中存在的问题,提出基于位置匿名的数据库隐私可搜索加密算法。通过分段线性编码加密隐藏用户位置信息。加密用户搜索数据,实现用户信息的二次加密,优化加密效果。
用户位置信息中最重要的组成部分就是比特序列[7],将其进行预处理后可大大提高用户位置隐蔽性,致使攻击者无法获取位置信息,若用户位置信息的两个比特序列为a0,a1,a2,…,an以及b0,b1,b2,…,bn,设定其调度参数为p,通过调控n维参数p的二进制序列,获取随机分布模型G1和G2,其中位置信息的信息源编码序列表达式为
s={si,i=1,2,…,M|si∈S}
(1)
式中,S表示任意信息源位置信息的二值化向量量化函数,且信息源属于信息源编码的位置序列。
P-value=2[1-H0(Sobs)]
(2)
其中,Sobs代表原始链路位置。
当门限值大于等于0.01时,此时位置信息的群函数就是随机分布模型。
若位置信息被打乱时所处位置的密参数有α,β,γα,γβ,γxi,γδ1,γδ2,所有参数均属于信息源编码的位置序列,根据密参数计算出门限密钥参数分别为T1=uα、T2=υβ和T3=Aihβ+α,则碎片密文参数分别为δ1=xiα和δ2=xiβ。对公共参数进行初始化后即可获取位置信息加密群公钥gpk,则gpk的信息源编码私特征序列c为:
(3)
重新构建后的位置信息比特序列为σ=(T1,T2,T3,R1,R2,R3,R4,R5,Sα,Sβ,Sxi,Sδ1,Sδ2),分段加密比特序列σ后的明文序列区间长度表达式为
(4)
链块中位置信息的分散表达式为
(5)
在累计概率公式的基础上计算出位置信息的遗传更新频数检查结果,其表达式为
(6)
式中,更新过程中所有代数均取整数。
将比特序列中的公钥全部运算出后统计数量,对每个公钥进行更新并最优调控自身参量,进而在位置匿名的基础上加深数据库的隐藏程度,实现用户数据信息的第一次加密,即加密用户的行动轨迹[9]。
为保证用户的搜索信息不被暴露的同时对数据精确搜索,获取全部相关关键词内容,需要对数据进行二次加密。
首先为数据库服务器选择合适的基点及椭圆曲线,将基点和曲线分别记为G和Er,其中基点的阶为n阶,令系统公钥为Ps,用户在查询内容前输入其ID号再进行查询,服务器接收到用户请求后会任意挑选参数mi,利用此参数求解私钥参数ni并保存,实现加密条件下用户注册初始化。
将系统进行初始化前选取一个安全参数作为输入条件,并任意选取系统所需的密参数,进而生成数据库系统公钥PK,其中α,β,n0均是系统所需的密参数,g为有效双线性映射的生成元,h为主属性,其编号是Vatt,n为副属性,其编号是Vatt′。
其中公共主属性以及副属性密钥分别为
(7)
式中,Vatt表示主属性编号,Vatt′表示副属性编号。
同时定义出主要密钥MSK,并以不公开形式保存密钥,以公开形式输出公钥、主属性密钥以及副属性密钥。
加密用户位置信息后即可生成密文,其表达式为
CM=〈Ek1(m1),Ek2(m2),Ek3(m3)〉
(8)
系统利用属性访问方法进一步加密对称密钥,此加密算法中主要以LSSS矩阵的形式得出相应密文,进而实现数据的第一阶段加密,其中,M是LSSS中一个一行h列的矩阵,ρ为映射函数,λ为映射函数生成的矢量与参数的乘积,s是准备公布的秘密,r为素数p集合Zp中的一个素数。
完成加密后的对称密钥密文表达式为
(9)
将用户信息初始化后进行登录,其中含有事先运算出的原始信息,随意选取某个数值a2,利用a2得出明文M1,直接将M1传送给服务器,服务器会根据明文进行计算,计算过程为
(10)
式中,T代表需要访问结构,IDi表示用户身份的第i个二进制位,e代表双线性映射,H代表哈希函数,x表示二进制位上一位。
任意选取数值as,并将求解出的私钥以及密文M3传送给用户,则私钥以及M3的公式分别为
(11)
用户身份通过后,在计算机中根据MSK属性权威中和所有属性集合,并赋予用户生成转换密钥,得出转换密钥后即可将密钥传送到数据库,数据库利用安全通道将私钥传送给身份验证通过的用户。
当系统接收到用户指令后,数据库引入相对应的转换密钥TK以及密文CT,基于转换算法得出用户的属性是否符合数据库访问要求,用户若通过要求,即可在一定时间内获取常数项{wi∈Zp}i∈I,假设I∈{1,2,…,1},I={I:ρ(i)∈S},s=∑i∈Iwiλi,则第一阶段可解密的密文表达式为
(12)
通过式(12)即可断定用户属性是否符合数据库访问要求,其公式为
(13)
根据第一阶段解密方法进行第二阶段的解密,解密后的表达式为
(14)
将解密后的所有密文传送给用户,用户接收后在其中导入其专属私钥,并获取解密后的明文。
假设压缩函数为C,根据哈希函数原理得出压缩函数表达式为
C(W)=k
(15)
其中,k∈{0,1}。
利用压缩函数可最大程度平均分散关键词,可保证关键词在整个数据库中进行搜索,在查询过程中,直接根据关键词被分散到的小组进行查询,大大提高搜索效率[10]。
为验证所提算法的整体有效性,需对基于位置匿名的数据库隐私可搜索加密算法、文献[4]算法和文献[5]算法进行恶意攻击数据拦截量、数据加密误差和隐私等级的测试。
表1 实验环境
根据图1可看出,随着变换尺度的增加,三种方法的恶意攻击数据的拦截量均有所上升,但文献[5]算法的拦截量上升不是特别明显,拦截量上升不到10%,文献[4]算法的拦截量上升程度较明显,但最高拦截量仅为70%,仍远远低于所提算法的拦截量,这是因为所提算法在进行数据库隐私可搜索加密前对用户的定位进行了匿名加密,提前设置一道加密防线,大大保证数据库的安全,进而提高了恶意攻击数据拦截量。
图1 不同算法的恶意攻击数据拦截量
由图2可知,当数据集为3时,文献[4]算法的误差最小,除此之外,文献[4]算法的误差都在5.0左右,当数据集为5时,文献[5]算法的误差最小,除此之外,文献[5]算法的误差都在6.0左右,而所提方法的误差均保持着2.0左右,这是因为所提方法提前针对用户位置信息进行比特序列预处理后再进行数据加密搜索,提前隐藏了大部分用户隐私,并进行用户搜索内容的加密,大大提高加密精度,进而降低加密误差。
图2 不同算法的加密误差
根据实验结果可知,不同加密搜索算法均以牺牲用户兴趣点为条件保护用户的搜索隐私,因此普通的数据库隐私可搜索加密算法的加密程度越高,位置信息损失越大。由图3可知文献[4]算法和文献[5]算法随着数据量的增多暴露的用户兴趣点数量越多,但所提方法却随着数量增多兴趣点在下降,这是因为所提方法通过分段线性编码将用户的位置信息进行匿名,严格控制兴趣点的公布数量,提前将用户的兴趣点进行隐藏,对用户信息进行加密再加密的方式进行搜索数据信息,实现用户信息的双重加密,大大提高加密算法等级。
图3 不同算法的隐私等级
为解决当前算法存在的问题,提出基于位置匿名的数据库隐私可搜索加密算法。该算法在数据库隐私可搜索的基础上完成二次加密,解决恶意攻击数据拦截量低、数据加密误差大和隐私等级低的问题,目前已经大大提高用户的个人隐私。但还需进一步针对攻击者对用户进行保护,随着物联网的发展,位置隐私保护将有较大的应用前景。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!