1.一种轻量级解决智能家居控制和查询的可搜索加密方法,其特征在于:包括以下步骤:S1、初始化,在拥有可搜索加密的智能家居系统启用之前,分别对服务器,家庭,移动设备进行初始化,其中,服务器记为Server,家庭记为Home,移动设备记为Mobile;
S2、在服务器端,接收Mobile注册信息,为其分配数据库和数据结构空间,构建过滤器,根据Mobile注册时的信息,将用户的权限加入到过滤器中,并与Home共享一个密钥,用于服务提供商和家庭网关之间的相互身份验证;
S3、在Home端,为每台移动设备生成队友的识别ID号,并与Server共享密钥,接着收集各种类型的数据,对其进行数据清洗和数据格式转换,构建索引,并对数据进行加密上传;
S4、搜索阶段,Mobile首先根据自己的搜索需求使用多个关键词生成令牌token,将其和权限一并发于Server,具体的,M和H线下共享密钥,用于对上传文件和请求文件的加解密,并且H和S同样共享另一个密钥,用于验证智能家居设备是否是合法设备,H使用倒排索引构建数据结构,并将索引加密后发送到S中;
S5、过滤器判断权限合法性,并记录,作为当出现问题时的证据,接着使用token在已经构建好的索引结构中进行搜索,得到相应完整数据集合,Server对这些集合进行合取操作获得并集结果并返回,过滤器记为Filter;
S6、最后Mobile根据初始化阶段中协商得到的密文对数据文件进行解密,具体的:M准备多个关键词,使用skm对其进行加密,对所有密文使用Horner’srule进行压缩,使用wi,i∈[n]表示不同的加密关键词,有如下过程:n n‑1
p(R)=wnR+wn‑1R +…+w1R
p(R)=(…(wnR+wn‑1)R+…)R
这样无论M准备的关键词数量有多少,发送给S的值只有p(R)和R;S恢复数据的过程如下:p(R)=p(R)/R
w1=p(R)modR
p(R)=(p(R)‑w1)/R
w2=p(R)mod R
得到所有的待搜索的加密关键词;接着从Index[wi],i∈[n],得到所有关键词对应的文件filei集合,对这些集合做合取运算file1∧file2…∧filen,将结果返回给M,M对这些内容解密即可得到需要的数据;
S7、更新阶段,即Mobile希望得到实时数据,则将该实时数据所属的设备ID号加密后,通过Server进行转发,接着Home接收到更新信号,解密加密设备ID号,接着与初始化阶段时的数据收集时的过程相同,将新数据和新索引发送到Server中,并将新数据发送到Mobile作为其希望看到的新数据;
所述H表示家庭中的一系列设备,所述S表示云服务器,所述M表示移动设备。
2.根据权利要求1所述的一种轻量级解决智能家居控制和查询的可搜索加密方法,其特征在于:所述S2中,S会生成公钥pubs和私钥pris,同时M生成对称密钥skm,接着S发送pubs给M,M使用公钥对密钥进行加密msg=Enc(pubs,skm),将该加密信息返回给S,S进行解密DeEnc(pris,msg)得到密钥。
3.根据权利要求2所述的一种轻量级解决智能家居控制和查询的可搜索加密方法,其特征在于:所述S3中,将M的身份记作idm,并随机生成掩码mask,接着生成身份验证消息接着将该消息使用对称密钥加密Enc(skm,msgid)并发给S,S收到后,进行解密,并取出mask后对剩余部分进行异或得到idm,这样即使身份不变,但每次发送给S的消息是不同的,对一次身份验证消息被盗后的安全性进行提升。
4.根据权利要求3所述的一种轻量级解决智能家居控制和查询的可搜索加密方法,其特征在于:所述S7中,将更新指令设置为command,其中包括了使用H和M共享密钥加密的设备ID号,记作IDc,当S发现为command时,经加密ID从中抽取出来,并转发给H的网关,网关执行DeEnc(keymh,IDc)得到设备标识明文IDp,并且将新内容加密,构建新索引,同时发送给S和M。