一种快速关键字可搜索公钥加密方法
【技术领域】
[0001] 本发明属于计算机安全技术领域,更具体地,涉及一种快速关键字可搜索公钥加 密方法。
【背景技术】
[0002] 在现有的云存储技术中,数据存储在用户不可控的云端,为了保护敏感数据的安 全性与隐私性,通常会采用数据加密的方法来保护数据的安全,然而由于加密后的密文数 据的随机性而与明文数据有很大的差别,因此对加密后的数据进行检索不能采用检索明文 的方法,这是一项非常困难的工作。特别是在非可信环境的情况下,如何对加密数据进行高 效地搜索引起了人们普遍的关注。目前,人们已经提出了许多对加密数据进行搜索的方案, 有些搜索方案简单、效率高,但都是仅适用于用户检索自己事先存储到服务器里的密文数 据。而另一些查询方案虽然能广泛地应用于检索第三方拥有的加密数据上,但服务器检索 时所需要的大量对运算却是该方案最大的瓶颈,服务器搜索效率不高,而且许多方案都存 在重放攻击的问题。
[0003] 密文检索分为两种,可搜索对称加密和可搜索公钥加密。可搜索对称加密的构造 通常基于伪随机函数,具有计算开销小、算法简单、速度快的特点,除了加解密过程采用相 同的密钥外,其陷门生成也需密钥的参与。单用户模型的单用户特点使得可搜索对称加密 非常适用于该类问题的解决:用户使用密钥加密个人文件并上传至服务器,检索时,用户 通过密钥生成待检索关键词陷门,服务器根据陷门执行检索过程后返回目标密文。
[0004] 关键字可搜索公钥加密是由Boneh等人首先在2004的EuroCrypto的PublicKey EncryptionwithKeywordsearch一文中提出。利用基于身份的加密方案构造了一种可搜 索的公钥加密方案(publickeyencryptionwithkeywordsearch,PEKS)。在该方案中, 任何知道接收者公钥的用户都可以上传关键字可搜索密文至服务器,接收者可以授权服务 器进行关键字搜索。此方案的搜索时间是与密文总量线性相关的。这意味着,在对海量密 文数据进行检索时,检索效率是很低的。另一个比较突出的工作是Bellare等人在2007年 的CRYPTO会议的DeteministicandEfficientlySearchableEncryption-文中提出 确定性可搜索加密。确定性可搜索加密即该加密算法对同一明文生成的密文是确定的。该 方案重点关注了如何提高可搜索加密的效率。然而确定性加密有两个天然的限制:首先是 关键字的隐私只有在关键字是先验难猜测的情况下才能得到保障;其次是由于加密的确定 性,消息的某些信息会不可避免的通过关键字密文泄漏。
【发明内容】
[0005] 针对现有技术的以上缺陷或改进需求,本发明提供一种快速关键字可搜索公钥加 密方法,以实现在不降低安全性的条件下提高关键字可搜索公钥加密的检索效率。本发明 通过带隐藏关系的星形结构的可搜索密文以及带检索陷门的可搜索关键字实现了快速的 关键字可搜索公钥加密,且在检索过程中最小程度的降低了明文信息的泄漏,从而实现安 全性与效率的结合。
[0006] 本发明提供一种快速的关键字可搜索公钥加密方法,包括以下步骤:
[0007] (1)系统初始化。为加密云存储系统设置lk为安全参数,W为关键字空间,运行 双线性映射生成器BGen(lk)计算出系统参数(q,G,Gi,g,§),从q阶乘法群随机选取泠ig,设P=gs。选取一个密码hash函数H:W-G,设密文空间CeG;!XGXGi,最 后输出主公开参数PK=(q,(;,Gbg,§,P,I!,W,C],主秘密参数SK=s;其中BGen(lk)是 以广为安全参数的高效双线性映射生成器,其概率输出(q,G,Gbg,g),G和匕表示两个阶 为q的乘法群,g是G的生成元,双线性映射s:GXG->Gi。
[0008] (2)结构初始化。随机选取u"Z纟,通过主公开参数PK生成一对私有、公开部分 (Pri= (u),Pub=gu),并以之初始化一个隐藏结构。其中,Pri是一个变量列表,格式为 (u, {(w,Pt[u,w])|wGW}),初始化时为(u),其中w是关键字空间W的一个关键字,Pt[u,w] 表不U,W-兀组。
[0009] (3)结构化加密。从关键字空间W中选取一个关键字w,随机选取ri,然后使 用隐藏结构的私钥部分Pri和PK生成关键字可搜索密文,执行下列步骤:
[0010] (3-1)通过w在Pri中查询(w,Pt[u,w]);
[0011] (3-2)如果不存在,则将(w,Pt|u,w;|i)插入Pri中,并输出关键字可搜索密 文C= (§lP,H(w))u>:gr,: §(P,H(w))[U,w]);
[0012] (3_3)否贝IJ,随机选择Ri^,关键字可搜索密文:C=(Pt[u,w],g\e (P,丨丨(w)) >R),更新Pt[u,w]为R,并输出关键字可搜索密文C;
[0013] (4)陷门生成。选取一个关键字w,使用私钥SK生成关键字w对应的关键字检索 陷门Tw=H(w)s。
[0014] (5)结构化检索。根据关键字w对应的陷门Tw,使用主公开参数PK、隐藏结构的公 开部分Pub以及所有的关键字可搜索密文C检索关键字密文(另C[i]表示一个密文C,此 密文可以被解析为((:[1,1],(:[1,2],(:[1,3])£61\6\6 1),设(^=0执行以下步骤:
[0015] (5-1)计算Pt' =§(Pub,T,);
[0016] (5-2)查询包含C[i,1] =Pt'的密文C[i];如果存在,则将C[i]加入C'中,执行 (5-4);
[0017] (5-3)若不存在,输出C',并结束检索;
[0018] (5-4)计算Pt' :=§(:C[i, 2],TJ-i*C[i,3],执行(5-2);
[0019] 总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效 果:
[0020] (1)检索复杂度降低为与包含检索关键字密文的数量相关:本发明的关键字可搜 索公钥加密的检索复杂度是与包含该关键字的密文数量线性相关的,而不与所有密文的数 量相关,从而大大降低了检索开销。
[0021] (2)提尚性能的如提下保证安全性未降低:本发明提尚了检索的效率,且依旧达 到语义安全性,不会泄漏用户密文的相关信息,从而使得检索效率与安全性都能得到很好 的保证。
【附图说明】
[0022] 图1为本发明快速关键字可搜索公钥加密方法的流程图;
[0023] 图2为本发明结构化加密的流程图;
[0024] 图3为本发明隐藏关系的星形结构示意图;
[0025] 图4为本发明结构化陷门检索的流程图。
【具体实施方式】
[0026] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要 彼此之间未构成冲突就可以相互组合。
[0027] 图1所示为本发明快速关键字可搜索公钥加密方法的流程图,具体包括以下步 骤: