云存储中基于双线性对的关键词可搜索加密方法
【专利摘要】本发明公开了一种云存储中基于双线性对的关键词可搜索加密方法,步骤包括:步骤1、初始化系统参数;步骤2、添加用户;步骤3、生成对文件加密和安全索引;步骤4、生成用户关于关键词的搜索令牌;步骤5、搜索云存储服务器关于密文的关键词;步骤6、用户对密文解密;步骤7、撤销用户。本发明方法,使得授权用户能够利用连接关键词的陷门搜索加密文档。即使云存储服务器也不能知道用户搜索的关键词,可以确保用户信息的安全。通过与现有方案相比较,提出的方案在通信和计算代价,即搜索陷门大小、关键词加密和搜索的速度等方面的综合效率得到提高;适合多用户环境。
【专利说明】云存储中基于双线性对的关键词可搜索加密方法
【技术领域】
[0001]本发明属于信息安全【技术领域】,涉及一种云存储中基于双线性对的关键词可搜索加密方法。
【背景技术】
[0002]云计算作为一种新的计算模型,能够提供成本较低、可扩展的各种先进的计算服务。为了节省存储及管理数据的代价,企业和个人可以将数据外包到云存储服务器。云存储服务可以提供数据的可用性和可靠性等优势,但是其也有一个很明显的缺点,即数据不在用户的管理及控制之下,那么如何维护数据的机密性和完整性便成为用户迫切关注的问题。
[0003]虽然企业相信云存储服务提供商(Cloud Storage Service Provider, CSSP)的可靠性、可用性、容错性等,但是人们无法确信CSSP不将托管的数据用于其他目的。同样对于个人用户而言,他们希望他们的数据只能由自己或指定的人访问而不能被CSSP访问。这将导致两方面的问题:首先,从用户的角度看,他们无法找到让他们完全可信的CSSP来存储和管理他们的数据;而从CSSP的角度看,在没有解决上述问题的情况下将会丢失大量的客户。因此,数据的机密性及完整性将阻碍云的推广及使用。
[0004]鉴于以上的实际问题,云存储中数据必须在传输到CSSP之前,由用户自己加密,并且也只能由用户自己进行解密。这样将会减轻用户数据泄漏的危险。但这将引入一个新的问题,如用户需要包含某个关键字的文档,那么用户是否能很快的获得他们想要的数据并保证数据对CSSP的机密性?
[0005]可搜索加密作为一种新的密码学技术,能够在加密的数据集合上进行搜索查询,具体方法是,先为文件集合生成索引集合,再使用可搜索加密对这些索引进行加密以隐藏索引内容,并且加密要满足如下性质:⑴给定一个关键字(即索引)的令牌,可以获得包含该关键字的所有文件的指针;⑵没有令牌,索引的内容是隐藏的;(3)只有具有相关密钥的用户才能生成令牌;⑷检索过程除了暴露了哪些文件共享某个关键字外,不会暴露任何有关文件和关键字的信息。可搜索加密的核心作用是为云存储服务提供:一是用户自己控制其数据;二是它的安全性质可以通过密码学原理验证,而不是通过法律、物理设备来确定安全性。
【发明内容】
[0006]本发明提供了一种云存储中基于双线性对的关键词可搜索加密方法,解决了云存储中数据加密后不能实现关键词检索的问题。
[0007]本发明采用的技术方案是,一种云存储中基于双线性对的关键词可搜索加密方法,按照以下步骤实施:
[0008]步骤1、初始化系统参数
[0009]由文件加密者Ent输入安全参数k,输出两个阶为素数q的乘法循环群G1和G2, g为G1的生成元;
[0010]选择一个双线性映射?: G1XG1 ^ G2;
[0011]随机均匀地选择X e EZq作为文件加密者Ent的主密钥,记为mskEnt = x ;
[0012]选择抗碰撞Hash函数Ii1: {O, I}* — G1和密钥Hash函数
[0013]h2: {O, HkX {O, I}* - {0,1}\其中七是一个固定的常数;
[0014]选择对称加密算法SKE = {SKE.Gen (Ik),SKE.ENC (.),SKE.DE (.)},随机均匀地选择一个加密密钥ek — SKE.Gen(Ik);
[0015]文件加密者Ent公开系统参数为/?raw = (G,/I,為,SKEh保密系统私钥
为mskEnt = X及文件加密密钥ek ;
[0016]步骤2、添加用户
[0017]由文件加密者Ent输入主密钥mskEnt和用户身份uID,随机均匀地为身份为Uid的用户选择搜索密钥=xm e, Z; ?并计算M+% =g-_ =产,将(#~?安全
地发送给用户Uid作为搜索密钥和解密私钥,同时将(《10,《^ )安全地发送给云存储服务器
CSS,云存储服务器CSS在其用户列表U_List中插入(?,六/O ;
[0018]步骤3、生成对文件加密和安全索引
[0019]由文件加密者Ent输入主密钥mskEnt、加密密钥ek、文档Di, I≤i≤n,及其关键词列表Wi = (wi,1,…,Wi,m),文件加密者Ent对Di的加密结果为Ei = SKE.Encek (Di),对关键词wi;j e Wi, I ^ j≤的加密结果为S 」=h2(si; ei,」),其中随机数Si e E{0, l}k,且
气,=/Xg")?最后将Ci = (Ei, Ii)发送给云存储服务器CSS存储,其
中 Ii = (Si, δ i;1,…,δ i;m)为 Ei 的索引;
[0020]步骤4、生成用户关于关键词的搜索令牌
[0021]用户Uid输入搜索密钥,要搜索的关键字W,计算陷门7; = Zl1 (H.)‘ =A1(W)^ ,将搜索请求T = (uID, Tw)发送给云存储服务器CSS ;
[0022]步骤5、搜索云存储服务器关于密文的关键词
[0023]由云存储服务器CSS输入搜索请求T = (uID, Tw)和密文Ci = (Ei, Ii),云存储服务器CSS首先根据T中的Uid在U_List中查找,若无,则返回搜索失败符号丄给用户 Uid ;
[0024]否则计算(=e(Tw,hkum)= Ι(Λ,(ιν)?β,gx/xm) = e(hx(w),gf 并初始化空集 SR,对于任
意的密文Ci= (Ei, Ii), I≤i≤n,,其中Ii = (Si,Sil,…,Sim)为密文Ei的索引,云存储
服务器CSS判断是否存在I ( j Sm,使得下式成立,等号上的问号表示是否
相等的意思,若成立,则搜索的结果集合SR = SR U {EJ,对所有的Ci = (Ei, Ii), I^i ^n,搜索后,最后将搜索的结果集合SR发送给用户uID ;
[0025]步骤6、用户对密文解密
[0026]用户Uid接收到云存储服务器CSS返回的密文集合SR后,对所有Ei e SR,利用ek解密得到 Di = SKE.Decek(Ei);
[0027]步骤7、撤销用户
[0028]文件加密者Ent输入用户的身份uID,文件加密者Ent向云存储服务器CSS发送撤销用户Uid的命令,云存储服务器CSS更新UJJst:= υ—Lht \(UmMum ),即云存储服务器CSS
删除用户Uid注册项目,即成。
[0029]本发明的有益效果是:
[0030]I)本发明采用授权用户和存储服务器先后对关键词加密的方式提出了一个基于双线性对的关键词可搜索加密方案,使得授权用户能够利用连接关键词的陷门搜索加密文档。即使云存储服务器也不能知道用户搜索的关键词,可以确保用户信息的安全。通过与现有方案相比较,提出的方案在通信和计算代价,即搜索陷门大小、关键词加密和搜索的速度等方面的综合效率得到提高。
[0031]2)本发明方案是适合多用户环境的,这里的多用户是指可以增加和撤销用户,用户增加可以通过算法Enroll (kUM, uID)实现,用户的撤销可以通过算法RevokeUser(Um)实现。
【具体实施方式】
[0032]下面结合【具体实施方式】对本发明进行详细说明。
[0033]本发明云存 储中基于双线性对的关键词可搜索加密方法,按照以下步骤实施:
[0034]假设文件加密者Ent欲将文档集合D = (D1,…,Dn)加密后存储到存储服务器Serv中,设文档Di的关键词列表为Wi = (wi;!,…,Wi,), I≤i≤η, η是即将存储的文件个数,m是文档Di中的关键词个数,w, j, I < j < !11,为Di的第j个关键词字段的关键词,构造的方案希望文档加密后可以实现关键词可搜索,实现安全保密的目标,算法包括七个多项式时间的算法,详细描述如下:
[0035]步骤1、初始化系统参数,即步骤Setup (Ik)
[0036]由文件加密者Ent执行用于初始化加密系统,输入安全参数k,输出两个阶为素数q的乘法循环群G1和G2, g为G1的生成元;
[0037]选择一个双线性映射?: G1XG1 -^G2;
[0038]随机均匀地选择X e Ezq作为文件加密者Ent的主密钥,记为mskEnt = x ;
[0039]选择抗碰撞Hash 函数 Ii1: {O, I}* — G1 和密钥 Hash 函数 h2: {O, l}kX {O, I}* — {O,11',其中t是一个固定的常数,如SHA-1中的t = 160 ;
[0040]选择一个语义安全的对称加密算法SKE = {SKE.Gen (Ik),SKE.ENC (.),SKE.DE(.)},随机均匀地选择一个加密密钥ek — SKE.Gen (Ik);
[0041 ] 文件加密者Ent公开系统参数为pitram: (Gr , g.q.1il,Iu.SKE) β保密系统私钥
为mskEnt = X及文件加密密钥ek。
[0042]步骤2、添加用户,即步骤Enroll (mskEnt, uID)
[0043]由文件加密者Ent执行用于向系统添加文件用户身份uID的用户,输入主密钥mskEnt和用户身份Uid,随机均匀地为身份为Uid的用户选择搜索密钥=% % Z;,并计算
【权利要求】
1.一种云存储中基于双线性对的关键词可搜索加密方法,其特征在于,按照以下步骤实施: 步骤1、初始化系统参数 由文件加密者Ent输入安全参数k,输出两个阶为素数q的乘法循环群G1和G2, g为G1的生成元; 选择一个双线性映射〗:q X q - > α: 随机均匀地选择X e EZq作为文件加密者Ent的主密钥,记为mskEnt = x ;
选择抗碰撞 Hash 函数 Ii1: {O, I}* —G1 和密钥 Hash 函数 h2: {O,1}kX {O,I}* — {0,1}%其中t是一个固定的常数; 选择对称加密算法SKE = {SKE.Gen (Ik),SKE.ENC (.),SKE.DE (.)},随机均匀地选择一个加密密钥ek — SKE.Gen(Ik); 文件加密者Ent公开系统参数为/wram =,保密系统私钥为mskEnt = X及文件加密密钥ek ; 步骤2、添加用户 由文件加密者Ent输入主密钥mskEnt和用户身份uID,随机均匀地为身份为uID的用户选择搜索密钥=Xm Z*,并计算晨= gxfxm,将5 d)安全地发送给用户Uid作为搜索密钥和解密私钥,同时将)安全地发送给云存储服务器css,云存储服务器CSS在其用户列表U_List中插入(d) 5步骤3、生成对文件加密和安全索引 由文件加密者Ent输入主密钥mskEnt、加密密钥ek、文档Di, I < i < n,及其关键词列表Wi = (Wij 1;…,wijm)文件加密者EnUt Di的加密结果为Ei = SKE.Encek(Di)对关键词 Wi,j e Wi, I ^ j ^ m,的加密结果为 δ i;J = h2(Si, ei;j),其中随机数 Si e E{0, l}k,且%_/=顯(、1; ;},,?*^)=顯(1/^),最后将(;=(Ei, Ii)发送给云存储服务器CSS存储,其中 Ii = (Si, δ i;1,…,δ i;m)为 Ei 的索引; 步骤4、生成用户关于关键词的搜索令牌 用户Uid输入搜索密钥#%,要搜索的关键字W,计算陷门7; = H1(W)*- = /!,(Hf? ?将搜索请求T = (uID, Tw)发送给云存储服务器CSS ; 步骤5、搜索云存储服务器关于密文的关键词 由云存储服务器CSS输入搜索请求T= (uID,Tw)和密文Ci= (Ei, Ii),云存储服务器CSS首先根据T中的Uid在[1^St中查找若无,则返回搜索失败符号丄给用户Uid ;否则计算匕(叭密文Ci= (Ei, Ii), I≤i≤η,,其中Ii = (Si,Si l,…,Si m)为密文Ei的索引,云存储服务器CSS判断是否存在I < j < m,使得下式成立:, 若成立,则搜索的结果集合SR = SR U {EJ,对所有的Ci = (Ei, Ii), I ^ i ^ η,搜索后,最后将搜索的结果集合SR发送给用户Uid ;步骤6、用户对密文解密 用户Uid接收到云存储服务器CSS返回的密文集合SR后,对所有Ei e SR,利用ek解密得到 Di = SKE.Decek(Ei); 步骤7、撤销用户 文件加密者Ent输入用户的身份uID,文件加密者Ent向云存储服务器CSS发送撤销用户Uid的命令,云存储服务器CSS更新C/Jis/:=U—ListX(UmMum) *即云存储服务器CSS删除用户Uid注册项目(、,《,,?),即成。
2.根据权利要求1所述的云存储中基于双线性对的关键词可搜索加密方法,其特点在于:所述的步骤I中,t = 160。
3.根据权利要求1所述的云存储中基于双线性对的关键词可搜索加密方法,其特点在于:所述的步骤I中, 选取高级加密算法A E S。
【文档编号】H04L29/06GK104021157SQ201410219688
【公开日】2014年9月3日 申请日期:2014年5月22日 优先权日:2014年5月22日
【发明者】张亚玲, 孙瑾, 王尚平 申请人:西安理工大学