安全的指定发送者的基于身份的可搜索加密方案

2020-04-19 07:25秦璐璐
计算机应用与软件 2020年4期
关键词:私钥密文关键字

魏 晶 秦璐璐

(河海大学计算机与信息学院 江苏 南京 211100)

0 引 言

近年来,云计算技术发展非常迅速,已经成为信息技术领域内讨论的重要话题[1]。在日常生活中,云数据存储和共享成为重要的应用,且具有很大的优势。用户可以将本地大量的数据存在云端,通过远程访问受保护的数据实现以低成本的计算获得高质量的服务。云计算服务使得个人和企业可以高效、便捷、灵活地处理复杂的数据,减少了管理和维护隐私数据的开销。但是,云服务器不能保证用户的隐私信息,因此需要对数据进行加密。但是传统的加密访问模式是对明文加密,需要访问数据时,再将密文全部解密进行检索,导致了大量的计算和通信代价。

2000年,Song等[2]初次提出搜索加密方案,解决了对密文直接搜索的难题,实现了在对称密码体制下高效地搜索密文。可搜索加密可以分为对称的可搜索加密技术和公钥可搜索加密(即非对称的可搜索加密)。对称的可搜索加密的密文和陷门的生成的密钥是相同的,因此效率较高。非对称的可搜索加密技术中,生成密文和陷门所用的密钥是一样的,因此效率不高,但解决了密钥分发的问题。2004年,Boneh等[3]提出带有关键字搜索的公钥加密的方案(Public Key Encryption with Keyword Search,PEKS)。在PEKS中,发送者利用接收者的公钥和关键字生成数据密文和关键字密文信息,最后发送给云服务器;接收者在查询包含某个特定的关键字相关的数据密文的时候,首先用本身拥有的私钥和相关的关键字信息生成陷门后再发给服务器;服务器再将从接收者那收到的陷门和从发送者那得到的密文信息进行测试,接着将匹配的相关密文信息返回给接收者;最后,接收者再通过解密操作获得自己需要的数据信息。为了提高可搜索加密的功能性、丰富查询表达,文献[6-7]提出了带连接关键字的PEKS方案(Public Key Encryption with Conjunctive Field Keyword Search,即PECKS)。之后,PEKS的方案也得到了相关的延伸和扩展,如模糊的关键字搜索[8-9]和带认证的PEKS[10]等,提高了数据库的使用效率。

为了简化公钥证书的管理,1984年Shamir[4]最先提出基于身份的密码体制(Identity-Based Cryptography,IBC)的概念,将标识用户的唯一的身份看作公钥,减少了公钥基础设施(Public Key Infrastructure,PKI)建立和维护的开销。现有的大多数基于PEKS的方案都涉及到证书的管理。为了解决传统的密码体制(Public Key Cryptography,PKC)中的证书操作与维护管理的问题,Abdalla等[5]首次提出带关键字搜索的基于身份加密方案(Identity-Based Encryption with Keyword Search,IBEKS)。在IBEKS方案中,用户的公钥就是用来唯一标识用户的身份,用户的私钥是通过可信的第三方即私钥生成中心PKG生成的,消除了复杂的证书管理步骤。为了解决安全信道的问题,Wu等[14]提出指定服务器的带关键字搜索的基于身份加密(Efficient Searchable IB-Based Encryption with a Designated Server,dIBEKS)方案。在dIBEKS方案中,测试算法只能通过指定的云服务器执行,但文献[14]的方案并不安全,存在关键字猜测攻击的问题。因为关键字的集合是可以穷举出来的,当外部的攻击者获得陷门后,可以穷举关键字集合,将密文与陷门进行匹配,从而获得陷门中的关键字信息。之后为了解决安全问题,也有一些基于身份方向的研究,如文献[15-16]等,提出了新的基于身份方向的密码方案。为了使具有资源受限设备的接收者能在云服务器检索数据,Jiang等[12]提出了在线/离线密文检索(Online/Offline Ciphertext Retrieval,OOCR)的概念,将接收者生成的陷门分成两部分,即在线陷门和离线陷门[11]。将复杂的陷门计算部分提前完成,作为离线的部分,能提高陷门算法的生成效率。2017年Saito等[13]提出能抵抗关键字猜测攻击的指定发送者的可搜索加密。之后,因为大多数的指定服务器的基于身份的可搜索加密方案是不安全的,容易受到离线关键字猜测攻击。因此,设计出安全的基于身份的可搜索加密方案是值得研究的课题。受文献[15]的启发,本文提出一个安全的指定发送者的基于身份的可搜索加密方案。

1 基本知识

1.1 双线性对

1.2 安全性假设

本文的困难性问题是双线性Diffie-Hellman(即BDH)问题和计算性Diffie-Hellman(即CDH)问题。

2 方案构造

本文提出的指定发送者的基于身份的可搜索加密方案主要由以下的5个算法构成,包含系统参数设置算法,用户的密钥生成算法,加密算法、关键字陷门生成算法以及测试算法。

2) 用户(包含接收者和发送者)的密钥生成算法UserKeyGen(ID,Params,s):给定用户的唯一身份ID,系统主密钥s和系统参数Params,PKG生成用户对应的秘密私钥skID=sQID,其中QID=H1(ID)。

4) 关键字陷门生成算法TrapdoorGen(w′,skR):接收者运行该算法生成陷门。输入给定的关键字w′和数据接收者自己的私钥skR,该陷门算法选择随机数t∈Zq*,并计算陷门信息T=(T1,T2),其中T1=tP,T2=H2(w′‖α′)skR-tH1(IDR),且α′=e′(skIDR,QIDS)。

3 方案分析

3.1 正确性分析

下面证明本文提出的密码方案的正确性。如果w=w′,则下面的等式成立:

3.2 安全性分析

本文提出的DSIDEKS方案能满足选择唯一身份攻击下的陷门不可区分性以及密文不可区分性,能够抵抗密码学中的关键字猜测攻击(Keyword Guess Attack,KGA),在随机预言模型下是安全的。

本文提出的DSIDEKS方案在密文中嵌入了发送者的私钥,因此敌手不能获得密文信息,保证了密文的不可伪造性。所以本文的DSIDEKS方案在指定发送者的情况下能保证一定的安全性。

选择关键字和身份攻击下的密文不可区分性能让内部的服务器和外部的敌手不能区分关键字对应的密文信息。下面给出游戏模型,由挑战者和敌手双方交互完成。

系统初始化阶段挑战者运行SysSetup(γ)算法生成系统的公钥Ppub和主私钥s。接着运行UserKeyGen(ID,Params,s)算法生成特定用户的私钥,再将系统的公共参数Params发送给执行游戏的敌手。

询问1敌手可以适应性地询问用户的私钥和陷门信息。

挑战阶段敌手选择一个身份ID*进行挑战,并选出两个关键字(w1,w2),且w1和w2的长度是相等的。挑战者随机选择δ∈{0,1},并运行DSIDEKS(skS,IDR,w)算法产生密文cipherδ发给游戏中敌手进行挑战。

询问2该阶段的预言询问与询问1相同。

猜测阶段敌手给出对挑战阶段关键字的猜测δ′∈{0,1},假如δ=δ′,那么敌手就挑战成功,赢得了游戏。但是前提条件是:敌手没有询问过ID*的私钥;同样之前没有询问过与身份ID*相对应的关键字w1和w2的陷门。

如果敌手打破方案的优势能够完全忽略,就能确定方案满足选择身份下的密文不可区分性。考虑内部的服务器和外部的敌手,主要的过程就是将BDH实例中的aP、bP、cP分别嵌入到Ppub和挑战密文cipher中。因此,假设敌手能通过不可忽略的优势区分出相应的挑战密文,则就将问题规约到BDH困难性难题,从而得出本文方案能满足选择身份下的密文不可区分性。同理可得,本文方案在外部敌手的攻击下,也能保证选择身份下的密文不可区分性。

选择关键字和身份攻击下的陷门不可区分性使敌手不能区分关键字对应的陷门信息,下面给出游戏模型,由挑战者和敌手双方交互完成。

系统初始化阶段挑战者运行SysSetup(γ)算法生成系统的公钥Ppub和主私钥s。接着运行特定用户的私钥生成算法产生用户的私钥,再将系统的公共参数Params发送给执行游戏的敌手。

询问1敌手可以适应性地询问用户的私钥和陷门信息。

挑战阶段敌手选择一个身份ID*进行挑战,并给出挑战的关键字(wt1,wt2),且关键字wt1和wt2的长度必须相等才能继续游戏。挑战者随机选择σ∈{0,1},并运行TrapdoorGen陷门算法生成挑战陷门Tσ发送给敌手。

询问2该阶段的预言询问与询问1相同。

猜测阶段敌手给出对关键字的猜测σ′∈{0,1},假如σ=σ′,那么判定敌手挑战成功,赢得了游戏。但是前提条件是:敌手没有询问过身份ID*的私钥;同时也没有询问过ID*相应的挑战关键字wt1和wt2的陷门信息。

假如敌手赢得游戏的优势完全可以忽略,就可以得出方案满足选择身份下的陷门不可区分性。主要的过程就是将CDH实例中的aP、bP嵌入到Ppub和陷门T中,敌手通过预言询问,最终将敌手的优势规约到解决密码学中的CDH问题,从而得出本文方案满足选择身份下的陷门不可区分性。

4 效率分析

表1为本文的密码方案与文献[15-16]进行比较。表2为本文与文献[15-16]的效率比较。

表1 方案的安全性比较

表2 方案的效率比较

表1中,SC代表是否需要安全信道,TID表示方案能保证陷门不可区分性,CID表示方案能保证密文不可区分性。表2中Tb、Ta、Tm分别表示方案执行需要的双线性对运算、循环群中的加法运算和乘法运算。从表1和表2可以看出,本文的密码方案与文献[16]比较,密文的双线性对较多,但是陷门代价相当,测试效率较高。虽然文献[16]的密文没有用到双线性对,但是安全性不及本方案。与文献[15]相比,本文的密码方案在密文和陷门的计算开销上是相对较小的。

本文所提方案与文献[15]和文献[16]的方案在不同关键字下的效率分析如图1所示。

图1 不同关键字数目方案运行的时间效率

可以看出,在都使用双线对操作,本文提出的指定发送者的基于身份的可搜索加密方案和文献[15-16]相比更为高效。

5 结 语

本文提出了一个指定发送者的基于身份的PEKS方案。在随机预言模型下,该方案是密文不可区分性安全和陷门不可区分性安全的,也能抵抗关键字猜测攻击。在效率方面,本文方案双线性对计算并不是很多,也没有指数预算,因此效率相对提升。目前,设计一个高效的能满足密文和陷门不可区分性的指定服务器的基于身份的可搜索加密方案仍然有待解决。

猜你喜欢
私钥密文关键字
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
一种支持动态更新的可排名密文搜索方案
比特币的安全性到底有多高
嵌入式异构物联网密文数据动态捕获方法
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
程序员把7500枚比特币扔掉损失巨大
成功避开“关键字”
一种新的密文策略的属性基加密方案研究
一种抗攻击的网络加密算法研究
基于身份的聚合签名体制研究