1.一种实现多级访问的可搜索加密方法:其特征在于,包含以下步骤:S1、数据拥有者将文件和用户端的权限分等级,利用权限等级和文件关键字Wi形成文件访问权限表;
S2、数据拥有者随机生成公钥PK,密钥Ka、Kb,再根据文件访问权限表,对关键字Wi生成两个密钥K1、K2,过程如下:K1←F(PK,1||Wi),
K2←F(PK,2||Wi);
S3、对关键字Wi对应的文件分别生成标签label及加密文件号di,加密对应文件的权限,其中,level_fi为第i个文件权限, 为使用加密算法Enc和密钥Ka加密level_fi; 为使用加密算法Enc和密钥Kb加密将每一个(label, K2)加入到链表L,按照label字典顺序排列;
其中, 表示使用加密算法Enc和密钥Kb加密后,与加密文件号di和00拼接的新字符串做异或运算;
S4、根据链表L生成字典γ,即γ←Create(L),并上传到检索服务器,将每个加密文件号上传到文件服务器;
S5、数据拥有者根据用户权限表,对每个用户端的每个权限计算:构成用户权限集合,并将 和密钥PK、Kb返回给对应的查询用户端;
其中,level_ui为用户权限集合的第i个权限; 表示使用加密算法Enc和密钥Ka加密level_ui;
S6、用户端查询信息时,用公钥PK和需要查询的关键字Wi,进行计算:K1←F(PK,1||Wi),
其中,F为伪随机函数,将(Wi,K1)发送给检索服务器;
S7、检索服务器接收用户端查询信息后,在字典上进行搜索,检索到包含关键字的文件数量有X个,则有:c:0→找不到关键字为止;即0≤c
检索服务器将 K2发送给用户端;
用户端计算 和 做异或运算,
若用户端权限和文件权限相同,则解出di||00;
异或运算过程:
如果 与 相同,则解出di||00,
用户端将di||00发送给文件服务器,文件服务器检测加密文件号,如果加密文件号最后两位数为00,则结果正确,并将加密文件号对应的文件返回给用户端;否则,不返回任何内容;
用户端用解密算法Dec和密钥K2进行解密,得到文件号:
2.根据权利要求1所述的一种实现多级访问的可搜索加密方法,其特征在于,步骤S1中,所述权限等级分为三个等级:level1为最高访问权限,level2为相对较高访问权限,level3为最低访问权限;所述用户端根据权限访问等于和小于自己访问权限的文件。
3.根据权利要求1所述的一种实现多级访问的可搜索加密方法,其特征在于,步骤S1中,所述文件访问权限表包含关键字、文件号、文件权限。
4.根据权利要求1所述的一种实现多级访问的可搜索加密方法,其特征在于,步骤S2中,所述公钥PK由数据拥有者生成,分配给用户;所述密钥Ka、Kb由数据拥有者生成,数据拥有者使用密钥Ka、Kb加密文件权限,使用密钥Ka加密用户权限;数据拥有者将密钥Kb分配给用户;所述密钥K1、K2为数据拥有者在按照关键字加密文件时使用,用户发送查询命令后,生成K1并发送给检索服务器。
5.根据权利要求1所述的一种实现多级访问的可搜索加密方法,其特征在于,步骤S3中,所述加密文件权限使用加密算法Enc,所述链表L为一种物理单元上非连续、非顺序的存储结构。
6.根据权利要求1所述的一种实现多级访问的可搜索加密方法,其特征在于,步骤S4中,所述字典为一种存储结构,每个元素由键和值组成;所述键为label,是唯一的;值包含K2,构成字典。
7.一种实现多级访问的可搜索加密系统,用于实现权利要求1至6任一权利要求所述的一种实现多级访问的可搜索加密方法,其特征在于,包括数据拥有者、检索服务器、文件服务器、用户端;
所述数据拥有者对文件和用户权限加密,将密文上传到文件服务器与检索服务器,并将加密权限和密钥返回给用户端;
所述检索服务器用于提供查询功能,返回密文,由用户端自行解出文件号;
所述文件服务器用于提供查找文件的功能,返回加密的文件号;
所述用户端用于发送查询请求,接收查询结果。