1.一种云存储中支持多用户的可搜索加密方法,其特征是,包括以下步骤:步骤一、系统初始化;数据拥有者初始化系统参数,生成密钥和伪随机函数,接下来生成用户表并将用户表发送到云端服务器;
步骤二、添加用户;数据拥有者将新用户的身份信息发送给云端服务器的用户表,并把密钥和伪随机函数发送给新用户,用来生成陷门和解密文件;
步骤三、文件加密;数据拥有者对关键字和文件进行加密,并为文件的关键字创建关键字索引链表,以关键字为表头节点,将包含该关键字的文件添加到关键字索引链表中,然后为每个文件创建权限链表,将授权访问文件的用户加入对应文件的权限链表以完成、授权,并将加密后的文件、关键字索引链表和权限链表一起上传到云端服务器;
步骤四、生成陷门,用户使用密钥和想要检索的关键字生成该关键字的陷门,用来匹配关键字;
步骤五、文件检索;用户使用生成的关键字陷门向云端服务器发起检索请求,服务器首先查询用户表中有无该用户,如果没有则拒绝提供检索;否则,根据上传的陷门检索关键字索引,如果没有匹配到对应的关键字,返回FALSE;否则继续查询关键字索引链表中第一个文件的权限链表中有无该用户,如果有该用户,则将文件加入到检索结果中,然后继续查询关键字索引表中下一个文件,直到所有包含该关键字的文件均查询完,最后将检索结果发送给用户;
步骤六、文件解密;用户使用解密密钥对接收到的密文进行解密,得到明文;
步骤七、删除用户;数据拥有者将用户信息从用户表中直接删除。
2.根据权利要求1所述的云存储中支持多用户的可搜索加密方法,其特征是,系统初始化具体过程为:S11、数据拥有者生成密钥K′和K″、伪随机函数f和F、分组密码E,并且根据关键字个数生成伪随机流S1,S2,…,Sn,其中n为待加密关键字个数;
S12、生成分组密码K,用于加密文件;
S13、对于分组密码K,利用IDEA算法生成解密密码
S14、生成用户表,用于添加和删除用户,并将用户表和伪随机函数F一起发送到云端服务器。
3.根据权利要求1所述的云存储中支持多用户的可搜索加密方法,其特征是,添加用户具体过程为:S21、数据拥有者将新用户ui的唯一标识id(ui)发送给服务器,并将ui添加进用户表,其中i取从1开始的正整数,表示新用户个数;
S22、数据拥有者将密钥K′和K″、伪随机函数f、分组密码E和分组密码 发送给用户,其中分组密码 用来解密文件,其余密钥和伪随机函数用来生成关键字陷门。
4.根据权利要求1或2或3所述的云存储中支持多用户的可搜索加密方法,其特征是,文件加密的过程具体为:S31、数据拥有者使用分组密码E和密钥K′逐个加密关键字Wx,生成密文E(K′,Wx),其中x取从1开始的正整数且不大于n,表示关键字的个数;
S32、将E(K′,Wx)等分成Lx和Rx两部分;
S33、基于Lx生成二进制字符串Sx||F(Kx,Sx),此处Kx=f(K″,Wx),||为符号串连接;
S34、将E(K′,Wx)和Sx||F(Kx,Sx)进行异或操作形成关键字Wx的密文Cx;
S35、生成关键字Wi和文件fj的索引结构,其中j为正整数,表示要上传至云端服务器的文件个数;
S36、使用分组密码K,利用IDEA算法加密文件fj,生成密文EK(fj);
S37、根据用户ui对文件fj的访问权限,生成文件的权限链表,其中id(ui)表示用户ui的标识,id(fj)表示文件fj的标识;
S38、最后将关键字和文件的索引结构、文件的权限链表和密文一同上传云端服务器。
5.根据权利要求3所述的云存储中支持多用户的可搜索加密方法,其特征是,生成陷门的具体过程为:S41、用户使用密钥K′和分组密码E计算E(K′,Wx),Wx为要检索的关键字;
S42、使用密钥K″和伪随机函数f计算Q=f(K″,Lx),Lx为S41中E(K′,Wx)等分成Lx和Rx两部分的左半部分;
S43、计算Wx的陷门TW=(E(K′,Wx),Q=f(K″,Lx))。
6.根据权利要求5所述的云存储中支持多用户的可搜索加密方法,其特征是,文件检索的具体过程为:S51、用户ui向云端服务器提交检索请求,并将S43中生成的关键字陷门TW传给服务器,服务器收到请求后,先检索用户表,查看是否有id(ui),如果有则继续检索关键字索引;
否则拒绝检索;
S52、服务器遍历关键字索引表的所有关键字密文Cx,并计算Cx XOR E(K′,Wx)=Sx||T,同时判断F(Q,Sx)是否等于T,如果相等则说明Cx就是关键字Wx的密文;否则,继续匹配下一个关键字密文,如果最后没有匹配到相应关键字,则说明没有用户想要检索的关键字,返回FALSE,其中,XOR表示异或操作;
S53、假设检索关键字为W1,服务器根据关键字和文件的索引结构首先找到键字W1的索引链表中第一个文件,先检索f1的授权链表,判断是否包含用户ui,如果包含说明用户ui有权限检索文件f1,并将f1加入到返回结果Result中,然后继续查询W1的索引链表中下一个文件,即f3,直到所有包含W1的文件都检索结束;
S54、最后将Result返回给用户ui。
7.根据权利要求6所述的云存储中支持多用户的可搜索加密方法,其特征是,文件解密的具体过程为:用户根据IDEA加密算法,使用密钥 解密密文EK(fj),得到明文
8.根据权利要求1所述的云存储中支持多用户的可搜索加密方法,其特征是,删除用户具体过程为:数据拥有者向云端服务器发送命令删除用户ui,服务器检索用户表,并从表中将用户ui项直接删除。