Provably Secure Public Key Authenticated Encryption with Keyword Search Based on SGX
-
摘要:
公钥可搜索加密(public key encryption with keyword search,PEKS)技术使用户能够搜索存储在不可信云服务器上的加密数据,这对于数据隐私保护具有重要意义,也因此受到了广泛关注. 公钥认证可搜索加密要求数据发送方使用接收方的公钥对关键词进行加密,同时还使用其自身私钥对关键词进行认证,使得敌手无法构造关键词密文,从而抵抗公钥可搜索加密面临的关键词猜测攻击(keyword guessing attack,KGA). 提出了一个可证明安全的基于软件防护扩展(software guard extensions,SGX)的公钥认证可搜索加密(public key authenticated encryption with keyword search,PAEKS)方案,通过在云服务器上建立一个可信区并运行一个执行关键词匹配的飞地程序来完成对密文数据的搜索. 正式的安全性证明显示方案具备密文不可区分性和陷门不可区分性,即可抵抗关键词猜测攻击. 进一步地,给出搜索模式隐私性的定义,确保敌手无法仅通过陷门来判断2次搜索是否针对同一关键词,从而避免向外部敌手泄露部分隐私. 此外,所提方案具有易扩展的优势,很容易被扩展为支持复杂搜索功能或者具备其他增强隐私保护性质的方案,如前向安全. 作为示例,给出了多关键词搜索、搜索能力分享这2个功能扩展方案以及具备前向安全性的扩展方案的简单介绍. 真实环境中的实验表明,与其他对比方案相比,所提方案在效率上同样具有出色的表现.
Abstract:PEKS (public key encryption with keyword search) enables users to search over encrypted data stored in the untrusted cloud server, which is of great significance for data privacy protection and is of increasing interest for this reason. PAEKS (public key authenticated encryption with keyword search) requires that a data sender not only uses the receiver’s public key to encrypt the keyword, but also uses his own private key to authenticate the keyword. PAEKS ensures that the adversaries cannot construct a keyword ciphertext, thus resisting the keyword guessing attacks (KGAs) that PEKS is facing. In this paper, we propose a scheme for public key authenticated encryption with keyword search based on SGX (software guard extensions), which supporting searching on encrypted data by creating a trusted zone and running a keyword comparison enclave program in the cloud server. The formal security proof of the scheme is provided and shows that the scheme satisfies the ciphertext indistinguishability and trapdoor indistinguishability, that is, the scheme can resist keyword guessing attacks. Further, the search pattern privacy (SP-Privacy) is defined, which ensures that adversaries cannot judge whether two searches are the same keyword only through the trapdoors, so as to avoid revealing some privacy to external adversaries. In addition, the scheme can be easily extended to support complicated search functionalities and enhance privacy protection, e.g. forward security. As examples, brief descriptions about how to extend the scheme to support multi-keyword search, search capability sharing, as well as forward security are given. Experiments in real scenario show the better efficiency of the scheme compared with some other typical schemes.
-
自2005年Sahai等人[1]提出模糊身份基加密方案后,属性基密码体制成为研究的热点. 属性基密码体制使用一组关联属性代替用户的身份信息,密文或密钥与一个事先定义的访问策略或是谓词结构相关联,当用户的属性满足访问策略或谓词结构时就可以进行解密. 因此属性基密码克服了身份基密码一对一的通信限制,只要用户拥有满足访问策略或谓词结构的属性集就可以进行通信,从而实现了一对多的通信并实现了细粒度的访问控制[2-3]. 为了满足不同的应用需求,一些新型的属性基加密方案[4-11]和属性基签名方案[12-15]相继被提出.
在属性基签名方案中,由于使用一组属性集代替用户,隐藏了真实的身份信息从而获得了匿名性. 签名者根据属性授权机构颁发的属性密钥对消息进行签名,属性密钥由属性授权机构产生并秘密发送给签名者,一旦属性密钥发生泄露或密钥传输时遭受主动攻击被截获,那么获得密钥的任何人都能产生一个有效签名. 与此同时,签名数据中可能包含一些敏感信息,例如身份证号、手机号或者个人金融交易记录等. 这些敏感信息泄露可能会带来个人隐私泄露甚至是国家机密泄露的极大风险. 因此属性基签名中的密钥泄露和敏感信息泄露问题是亟待解决的关键问题.
本文的主要贡献包括3个方面:
1) 提出了前向安全的高效属性基可净化签名(efficient and forward-secure attribute-based sanitizable signature, FABSS)方案,并在标准模型下证明该方案的安全性. 方案的安全性可规约到$ \eta $-DHE($ \eta $-Diffie-Hellman exponent)困难问题假设.
2) 提出的方案利用属性集合和谓词结构提供细粒度访问控制,保护签名者的隐私;利用前向安全技术解决了密钥泄露问题;利用可净化签名技术对原始数据进行脱敏,解决了敏感数据泄露问题.
3) 提出的方案具有固定签名长度,并且在验证阶段只需要常数个配对运算,使得通信开销和计算开销低,因此提出的方案具有高效性.
1. 相关工作
属性基加密方案根据访问策略的不同布置可分为密钥策略的属性基加密方案[2]和密文策略的属性基加密方案[16]. 在密钥策略的属性基加密方案中,用户访问策略与密钥关联,一组属性集与密文相关联. 当密文中的属性集满足访问策略时,用户可以正确解密该密文. 在密文策略的属性基加密方案中,事先定义的一个访问策略嵌入到密文中,密钥由用户属性集标识,只有当标识密钥的属性集满足密文中的访问策略时用户才能正确解密.
为了解决数据完整性、认证性以及用户细粒度访问控制问题, Maji等人[17]在2011年首次提出属性基签名方案,并在一般群模型中证明了该方案的安全性. Okamoto等人[18]基于CDH (computational Diffie-Hellman)困难问题假设,提出了标准模型下证明安全的属性基签名方案. 标准模型下证明安全的方案通常需要大量的计算开销,其中配对运算的代价尤其高昂. 为了提高效率,Gagn等人[19]设计了具有短配对运算的高效属性基签名方案. 为了进一步提高效率,Anada等人[20]提出了无配对运算的属性基签名方案. 然而文献[19-20]中的方案仅仅考虑性能的提升而没有考虑密钥泄露问题. 在密钥颁发和存储过程中,可能会遭受主动攻击或者由于管理不当造成密钥泄露,恶意攻击者在获得密钥后就能产生任意时间片段签名. 为了解决密钥泄露问题,在2015年,Wei等人[21]提出了门限结构的前向安全属性基签名方案,并在标准模型下给出了安全性证明. 另一个解决密钥泄露的方法是密钥隔离技术,2017年,Rao[22]提出一个签名策略的属性基密钥隔离签名,将密钥分为长期密钥和短期密钥,并将长期密钥保存在一个安全的设备中,从而保证了密钥的安全. 然而在签名方案中,可能发生泄露的不仅仅有签名者密钥,同时还包括消息中的一些敏感信息,例如个人医疗记录信息、金融机构交易信息以及政府部门政务信息等. 这些信息一旦发生泄露将会给个人、金融市场或者政府部门带来极大的安全风险. 因此我们需要对数据中的敏感数据进行编辑从而隐藏真实信息,这样的方法可称之为“净化”. 在可净化签名中,净化者可以在不知道签名者密钥的前提下对数据进行编辑并重新生成一个有效签名. Ateniese等人[23]首次提出可净化签名概念,利用变色龙哈希设计了可净化签名方案并在随机预言模型下给出了安全性证明. Agrawal等人[24]提出了在标准模型下证明安全的可净化签名方案,方案的安全性规约到CDH困难问题假设. 但该方案需要大量的配对运算和指数运算,具有较高的运算开销. 为了改进效率,Pöhls等人[25]提出了高效的可净化方案. 可审计性要求签名者可以对净化者的行为进行追责,2017年,Beck等人[26]提出一个具有强审计性的可净化签名,不仅实现对净化者的追责,同时也防止签名者对净化者的恶意指责. 为了获得细粒度访问控制和以及签名者隐私,刘西蒙等人[27]给出属性基可净化签名方案的构造并在标准模型下给出了方案的安全性证明. 文献[25]利用门限结构作为访问策略,为了获得更丰富和灵活的访问结构,莫若等人[28]和Mo等人[29]先后给出了基于树形访问结构的属性基可净化签名方案和具有灵活访问结构的属性基可净化签名方案,方案支持与门、或门和门限结构. 为了同时获得访问控制和可审计性,Samelin等人[30]提出了属性基可净化签名并实现了对净化者的追责. 为了解决属性基签名中签名者滥用签名问题,李继国等人[31]提出了可追踪的属性基可净化签名方案,不仅实现了恶意用户追踪,而且还保证了敏感数据的隐私.
2. 预备知识
本节介绍FABSS方案中使用的相关密码学知识,其中包括双线性映射、拉格朗日插值、$ \eta\text{-}\mathrm{D}\mathrm{H}\mathrm{E} $假设.
2.1 双线性映射
令$ {G}_{1} $和$ {G}_{2} $是2个$ p $阶乘法循环群,$ p $是大素数.$ g $是$ {G}_{1} $的一个生成元. 一个双线性映射$ e:{G}_{1}\times {G}_{1}\to {G}_{2} $具有3个性质:
1) 双线性. 对任意$ a,b\in {\mathbb{Z}}_{p} $,都有$e\left({g}^{a},{g}^{b}\right)= e{(g,g)}^{ab}$.
2) 非退化性. $ e(g,g)\ne 1 $.
3) 可计算性. 对所有$ {g}_{1},{g}_{2}\in {G}_{1} $,存在多项式时间算法计算$ e({g}_{1},{g}_{2}) $.
2.2 拉格朗日插值
设$ p $为素数,$ S\subseteq {\mathbb{Z}}_{p} $,拉格朗日系数定义为${\Delta }_{i}^{S}\left(x\right)=\displaystyle\prod\limits _{j\in S,j\ne i}\dfrac{x-j}{i-j}$,其中$ i\in {\mathbb{Z}}_{p} $. 给定$ {\mathbb{Z}}_{p} $上的$ d $个点$ \left(1,{q}_{1}\right) $, $ \left(2,{q}_{2}\right) $, …, $ \left(d,{q}_{d}\right) $,$ d-1 $次多项式$ q\left(x\right) $可以重构为$q\left(x\right)=\displaystyle\sum _{i\in S}q\left(i\right){\Delta }_{i}^{S}\left(x\right)$,其中$ \left|S\right|=d $.
2.3 $ \eta $-DHE问题和困难问题假设
η-DHE问题. $ {G}_{1} $是一个$ p $阶群,g是$ {G}_{1} $的一个生成元,随机选取$ a\in {\mathbb{Z}}_{p} $.给定元组$(g,{g}^{a},{g}^{{a}^{2}},… , {g}^{{a}^{\eta }},{g}^{{a}^{\eta +2}},… , {g}^{{a}^{2\eta }})$,计算$ {g}^{{a}^{\eta +1}} $.
$ \varepsilon $-(η-DHE)困难问题假设. 若不存在多项式时间算法以不可忽略的概率$ \varepsilon $解决$ {G}_{1} $上的η-DHE困难问题,则称$ \varepsilon $-η-DHE困难问题假设在群$ {G}_{1} $上是成立的.
3. 形式化定义和安全模型
借鉴文献[21]中前向安全的属性基签名的形式化定义,本节给出FABSS方案的形式化定义和安全模型.
3.1 FABSS方案的形式化定义
FABSS方案包括设置、密钥生成、密钥更新、签名、净化和验证6个算法,每个算法的定义为:
1)设置. 算法输入安全参数$ \lambda $、系统时间片段总数$ T $、系统门限值$ d $,输出公共参数$ params $和主密钥$ msk $.
2)密钥生成. 该算法由属性授权中心执行. 算法输入公共参数$ params $、主密钥$ msk $、签名者属性集$ {w}_{\mathrm{a}} $以及初始时$ \mathrm{间}\mathrm{片}\mathrm{段}{t}_{0} $,输出初始时间片段密钥${S K}_{{t}_{0}}$.
3)密钥更新. 该算法由签名者执行. 算法输入公共参数$ params $、当前时间片段$ {t}_{j} $的密钥$ {S K}_{{t}_{j}} $以及时间片段${t}_{{j}{{'}}}$,其中$ {t}_{j} < {t}_{{j}^{{'}}} $.算法输出时间片段${t}_{{j}{{'}}}$的密钥${S K}_{{t}_{{j}'}}$.
4)签名. 算法输入公共参数$ params $、当前时间片段$ {t}_{j} $的密钥$ {S K}_{{t}_{j}} $、消息$ M $、签名者属性集$ {w}_{\mathrm{a}} $、净化者属性集$ {w}_{\mathrm{\tau }} $以及签名策略${\varGamma }_{d,S}(\cdot )$. 若签名者属性集$ {w}_{\mathrm{a}} $满足签名策略${\varGamma }_{d,S}(\cdot )$,即$ |{w}_{\mathrm{a}}\cap S|\ge d $,算法输出消息$ M $的签名$ \sigma $以及秘密值集合$ S I $. 其中$ d $是门限值,$ S $是谓词结构中的属性集合.
5)净化. 该算法由净化者执行. 签名者公开声明允许净化的消息索引集合${I}_{N}\subseteq \{\mathrm{1,2},… ,{n}_{m}\}$,其中$ N\le {n}_{m} $.净化者获得由签名者发送的秘密值集合$ S I $. 算法输入消息$ M $、签名$ \sigma $、签名者属性集$ {w}_{\mathrm{a}} $、净化者属性集$ {w}_{\mathrm{\tau }} $以及秘密值集合$ S I $. 算法输出净化消息$ {M}{{'}} $和净化签名$ {\sigma }{{'}} $.
6)验证. 算法输入公共参数$ params $、当前时间片段$ {t}_{j} $、消息${M}{{'}}$以及签名${\sigma }{{'}}$. 若验证签名有效,输出$ {\rm{accept}} $;否则,输出$ {\rm{reject}} $.
FABSS系统框架如图1所示. 签名者将属性集$ {w}_{\mathrm{a}} $以及初始时间片段$ {t}_{0} $发送给属性授权中心,属性授权中心为签名者生成时间片段$ {t}_{0} $的密钥$ {S K}_{{t}_{0}} $. 签名者用私钥$ {S K}_{{t}_{0}} $对消息$ M $进行签名获得$ \sigma $,并生成秘密值集合$ S I $,将$ (M,\sigma ,S I) $通过安全信道发送给净化者. 净化者对允许净化范围内的消息进行修改,重新生成关于净化后消息${M}{{'}}$的签名${\sigma }{{'}}$. 净化者将$({M}{{'}},{\sigma }{{'}})$发送给验证者,验证者通过验证算法判断签名是否有效. 此后,签名者通过密钥更新算法生成时间片段$ {t}_{1} $的密钥$ {S K}_{{t}_{1}} $,并重复上述过程.
3.2 安全模型
借鉴文献[21]的思想,给出FABSS方案的前向安全性和不变性安全模型.
3.2.1 前向安全性
FABSS方案满足传统ABS方案不可伪造性的同时达到了前向安全性. FABSS方案的前向安全性可以通过挑战者B和敌手A之间的游戏来刻画.
基于文献[21]给出的安全模型,定义FABSS的前向安全性游戏.
1)初始化. A将需要挑战的签名策略${\varGamma }_{{d}^{*},{S}^{*}}(\cdot )$和时间片段$ {t}_{{j}^{*}} $发送给B.
2)设置. B运行设置算法,生成公共参数$ params $和主密钥$ msk $,设置初始时间片段$ {t}_{0} $. 挑战者B将公共参数$ params $发送给A,主密钥$ msk $保密.
3)密钥生成询问. A自适应选择属性$ {w}_{\mathrm{a}} $和时间片段$ {t}_{j} $,将$ {w}_{\mathrm{a}} $和$ {t}_{j} $交给B. 通过密钥生成算法,B生成对应的密钥$ {S K}_{{t}_{j}} $并发送给A.
4)密钥更新询问. A随机选择一个新时间片段$ {t}_{j} $并要求B执行密钥更新算法,此时当前时间片段$ {t}_{j} $被更新为后一时间片段${t}_{{j}{{'}}}$,B将更新后的密钥${S K}_{{t}_{{j}{{'}}}}$发送给A.
5)签名询问. A自适应地选择签名者属性集$ {w}_{\mathrm{a}} $,净化者属性集$ {w}_{\mathrm{\tau }} $,消息$ M $和签名策略${\varGamma }_{d,S}(\cdot )$并发送给B,B通过签名算法产生当前时间片段$ {t}_{j} $的签名$ \sigma $,并发送给A.
6)伪造. A生成关于消息${M}^{*}=\{{m}_{1}^{*},{m}_{2}^{*},…,{m}_{{n}_{m}}^{*}\}$,签名策略${\varGamma }_{{d}^{*},{S}^{*}}(\cdot )$在时间片段$ {t}_{{j}^{*}} $的签名$ {\sigma }^{*} $. 若满足条件①~③,则称A赢得前向安全性游戏.
① $ {\sigma }^{\mathrm{*}} $是一个有效签名;
② A没有对$ ({w}_{\mathrm{a}},{t}_{j}) $进行密钥生成询问,其中属性集$ {w}_{\mathrm{a}} $满足签名策略${\varGamma }_{{d}^{*},{S}^{*}}(\cdot )$并且$ {t}_{j}\le {t}_{{j}^{*}} $;
③ A没有在时间片段$ {t}_{{j}^{*}} $对消息${M}^{*}=\{{m}_{1}^{*},{m}_{2}^{*},… , {m}_{{n}_{m}}^{*}\}$进行签名询问.
定义1. 对于任意概率多项式时间$ t $的敌手,如果赢得上述游戏的概率$ \varepsilon $是可忽略的,那么就称FABSS方案满足前向安全性.
3.2.2 不变性
FABSS方案的不变性要求净化者只能对允许净化范围内的消息进行修改,无法对净化范围之外的消息进行任何操作. 不变性可以通过敌手A和挑战者B之间的游戏来刻画.
1)初始化. A将挑战索引集合$ {I}_{N}^{*} $和签名策略${\varGamma }_{{d}^{*},{S}^{*}}(\cdot )$发送给B,其中$ {I}_{N}^{\mathrm{*}} $表示净化者可以执行净化操作的消息索引集合.
2)设置. B执行设置算法产生公开参数$ params $和主密钥$ msk $,将公开参数$ params $发送给A,主密钥$ msk $保密.
3)询问. A 自适应地进行多项式次密钥生成询问,密钥更新询问和签名询问. 其中A可以进行$ {q}_{\mathrm{s}} $次签名询问,在第$ j $次签名询问中,A询问关于消息${M}_{j}= \{{m}_{j,1},{m}_{j,2},…, {m}_{j,{n}_{m}}\}$的签名$ {\sigma }_{j} $. B将签名$ {\sigma }_{j} $和秘密值集合$ S I $发送给A.
4)伪造. A输出关于消息${M}^{*}=\{{m}_{1}^{*},{m}_{2}^{*},…, {m}_{{n}_{m}}^{*}\}$,时间片段$ {t}_{{j}^{*}} $和签名策略${\varGamma }_{{d}^{*},{S}^{*}}(\cdot )$的签名$ {\sigma }^{*} $,若满足条件①~③,则称A赢得不变性游戏.
① $ {\sigma }^{*} $是一个有效签名;
② A没有对$ ({w}_{\mathrm{a}},{t}_{j}) $进行密钥生成询问,其中属性集合$ {w}_{\mathrm{a}} $满足签名策略${\varGamma }_{{d}^{*},{S}^{*}}(\cdot )$并且$ {t}_{j}\le {t}_{{j}^{*}} $;
③ 对于任何$j\in \left\{\mathrm{1,2},… ,{q}_{\mathrm{s}}\right\}$,存在$ i\notin {I}_{N}^{*} $使得$ {m}_{j,i}\ne {m}_{i}^{*} $.
定义2. 如果任意概率多项式时间$ t $的敌手进行至多$ {q}_{\mathrm{k}} $次密钥询问和至多$ {q}_{\mathrm{s}} $次签名询问,最终赢得不变性游戏的概率$ \varepsilon $是可忽略的,则FABSS方案具有$ \varepsilon $-不变性.
4. 方案构造
根据文献[32]给出的二叉树结构,利用该结构分配时间片段. 在二叉树结构中,如图2所示,将完整时间片段$ T $分解为${t}_{0},{t}_{1},… ,{t}_{T-1}$时间片段. 每个时间片段对应一个层数为$ l $的满二叉树的叶子节点. 其中根节点用一个空串$ \gamma $标记,$ k(1\le k\le l) $层上的每个节点$ v $用一个二进制比特串$ {b}_{v}\in {\left\{\mathrm{0,1}\right\}}^{k} $表示,$ {b}_{v} $与节点$ v $到根节点的路径相关,其中0表示左子节点,1表示右子节点. 对每个二进制串$ b\in {\left\{\mathrm{0,1}\right\}}^{k} $,都对应二叉树第$ k $层上的一个节点,将这个节点记为$ {v}_{b} $,并令$ {b}_{v}\left[i\right] $表示$ {b}_{v} $中的第$ i $位. 例如初始时间片段$ {t}_{0} $对应节点$ {v}_{{t}_{0}} $,$ {b}_{{v}_{{t}_{0}}}={0}^{l} $;$ {t}_{1} $时间片段的节点为$ {v}_{{t}_{1}} $,$ {b}_{{v}_{{t}_{1}}}={0}^{l-1}1 $. 用$ {Path}_{v} $表示节点$ v $到根节点路径上包含的所有节点的集合,$ R\left(v\right) $表示$ v $的右子节点. 对于时间片段$ {t}_{j} $及其对应的节点$ {v}_{{t}_{j}} $,定义集合$ {V}_{{t}_{j}}=\left\{R\left(v\right)\right|v\in {Path}_{{v}_{{t}_{j}}},R\left(v\right) $$ \notin {Path}_{{v}_{{t}_{j}}}\}\cup \{{v}_{{t}_{j}}\} $. 如图2所示,$ {Path}_{{v}_{{t}_{0}}}=\{\gamma ,{v}_{0},{v}_{00},{v}_{{t}_{0}} $$ \} $,$ {V}_{{t}_{0}}=\{{v}_{1},{v}_{01},{v}_{{t}_{1}},{v}_{{t}_{0}}\} $. 基于上述构造,可得引理1.
引理1. 存在时间$ {t}_{j} $和${t}_{{j}'}$,若${t}_{{j}'} > {t}_{j}$,对于每个节点${v}' \in {V}_{{t}_{{j}'}}$,存在一个节点$ v\in {V}_{{t}_{j}} $,有${b}_{{v}'}={b}_{v}\left|\right|{b}^{*}$. 其中,${b}^{*}\in {\left\{\mathrm{0,1}\right\}}^{k}$,$k=\left|{b}_{{v}'}\right|-\left|{b}_{v}\right|$.
1)设置. 选取安全参数$ \lambda $,生成$ p $阶双线性群$ {G}_{1} $和$ {G}_{2} $,其中$ p $是大素数;$ e:{G}_{1}\times {G}_{1}\to {G}_{2} $是双线性映射. 令$ T={2}^{l} $为总时间片段,$U=\{1, 2,… ,n+d\}$表示属性域,其中$ n $为常数. $\varOmega =\{{\omega }_{1},{\omega }_{2},… , {\omega }_{d-1}\}$为缺省属性集,$ {\omega }_{i}\in {\mathbb{Z}}_{p} $. 设$ S\subseteq {\mathbb{Z}}_{p},\mathrm{且}i\in S $,定义拉格朗日系数${\Delta }_{i}^{S}\left(x\right)= \displaystyle\prod\limits _{j\in S,j\ne i}\dfrac{x-j}{i-j}$. 随机选取$ \alpha \in {\mathbb{Z}}_{p}^{*} $,计算$ Z=e{\left(g,g\right)}^{\alpha } $,其中$ g $是$ {G}_{1} $的生成元. 随机选取群元素$ {f}_{\mathrm{a}},{f}_{\mathrm{\tau }} $和群元素集合$H=\{{h}_{1}, {h}_{2},… , {h}_{l}\}$,$ W=\{{w}_{1},{w}_{2},… ,{w}_{{n}_{m}}\} $,$ F=\{{f}_{1},{f}_{2},… ,{f}_{\eta }\} $,其中$ {n}_{m} $是消息长度,$ \eta =n+d-1 $. 则$ params= $ $\{{G}_{1},{G}_{2},e,g, {h}_{0},{w}_{0},{f}_{\mathrm{a}}, {f}_{\mathrm{\tau }},H,W,F,T,U,\varOmega ,{\rm{Z}}\}$是公共参数,主密钥为$ \alpha $.
2)密钥生成. 算法输入签名者属性集$ {w}_{\mathrm{a}}\subseteq U $,主密钥$ \alpha $,公共参数$ params $和初始时间片段$ {t}_{0} $. 首先选择一个$ d-1 $次多项式$ q\left(x\right) $,满足$ q\left(0\right)=\alpha $. 随机选取$ {r}_{i}\in {{\mathbb{Z}}}_{p} $,其中$ i\in {w}_{\mathrm{a}} $;随机选取$ {r}_{i,v}\in {\mathbb{Z}}_{p} $,其中$ v\in {V}_{{t}_{0}} $. 计算$ {\mu }_{i}={g}^{{r}_{i}} $;${\varphi }_{i}=\{{f}_{1}^{{r}_{i}},{f}_{2}^{{r}_{i}},… ,{f}_{i-1}^{{r}_{i}},{f}_{i+1}^{{r}_{i}},..,{f}_{\eta }^{{r}_{i}}\}$;${sk}_{i,v}=({g}^{q\left(i\right)}{\left({f}_{\mathrm{a}}{f}_{i}\right)}^{{r}_{i}}\cdot {\left({h}_{0}\displaystyle\prod\limits _{k=1}^{\left|{b}_{v}\right|}{h}_{k}^{{b}_{v}\left[k\right]}\right)}^{{r}_{i,v}},{g}^{{r}_{i,v}},{h}_{\left|{b}_{v}\right|+1}^{{r}_{i,v}},… ,{h}_{l}^{{r}_{i,v}})$.因此$ {t}_{0} $时间片段的密钥$ {S K}_{{t}_{0}}=\left\{{\mu }_{i},{\varphi }_{i},\left\{{sk}_{i,v}|v\in {V}_{t_0}\right\}\right\} $,其中$ i\in {w}_{a} $.
3)密钥更新. 算法输入当前时间片段$ {t}_{j} $的密钥$ {S K}_{{t}_{j}} $,后续时间片段$ {t}_{{j}^{'}} $和公共参数$ params $. 将当前时间片段密钥$ {S K}_{{t}_{j}} $表示成:
${sk}_{i,v} = \{{a}_{i,0},{a}_{i,1},{a}_{i,\left|{b}_{v}\right|+1},… ,{a}_{i,l}\}$,${S K}_{{t}_{j}} = \{{\mu }_{i},{\varphi }_{i},\{{sk}_{i,v}|v\in {V}_{{t}_{j}}\}\}$,因为$ {t}_{{j}^{'} } > {t}_{j} $,由文献[32]可得,对每个节点$ {v}' \in {V}_{{t}_{{j}' }} $,一定存在节点$ v\in {V}_{{t}_{j}} $,有$ {b}^{*} $满足$ {b}_{{v}' }={b}_{v}\left|\right|{b}^{*} $. 随机选取$ {r}_{i}' \in {{\mathbb{Z}}}_{p} $,其中$ i\in {w}_{\mathrm{a}} $;随机选取$ {r}_{i,{v}' }\in {\mathbb{Z}}_{p} $,其中$ {v}' \in {V}_{{t}_{{j}' }} $. 计算${\mu }_{i}' ={\mu }_{i}\times {g}^{{r}_{i}' }$;${\varphi }_{i}' =\{{f}_{1}^{{r}_{i}}{f}_{1}^{{r}_{i}' },{f}_{2}^{{r}_{i}' },… ,{f}_{i-1}^{{r}_{i}}{f}_{i-1}^{{r}_{i}' },{f}_{i+1}^{{r}_{i}}{f}_{i+1}^{{r}_{i}' },… ,$$ {f}_{\eta }^{{r}_{i}}{f}_{\eta }^{{r}_{i}' }\}$;$ {sk}_{i,{v}' } $ = $\Bigg\{{a}_{i,0}{\left({f}_{\mathrm{a}}{f}_{i}\right)}^{{r}_{i}' }{\left({h}_{0}\displaystyle\prod\limits _{k=1}^{\left|{b}_{{v}' }\right|}{h}_{k}^{{b}_{{v}' }\left[k\right]}\right)}^{{r}_{i,{v}' }}$$\displaystyle\prod\limits _{k=\left|{b}_{v}\right|+1}^{\left|{b}_{{v}' }\right|}{a}_{i,k}^{{b}_{{v}' }\left[k\right]},{a}_{i,1}{g}^{{r}_{i}' }, {a}_{i,\left|{b}_{{v}' }\right|+1}{h}_{\left|{b}_{{v}' }\right|+1}^{{r}_{i,{v}' }},… ,{a}_{i,l}{h}_{l}^{{r}_{i,{v}' }}\Bigg\}$ = $ \{{a}_{i,0}' ,{a}_{i,1}' ,{a}_{i,2}' ,{a}_{i,\left|{b}_{{v}' }\right|+1}' ,… ,{a}_{i,l}' \}. $ 时间片段$ {t}_{{j}' } $的密钥为${S K}_{{t}_{{j}' }}=\left\{{\mu }_{i}' ,{\varphi }_{i}' ,\left\{{sk}_{i,{v}' }|{v}' \in {V}_{{t}_{{j}' }}\right\}\right\}$,删除当前时间片段$ {t}_{j} $的密钥$ {S K}_{{t}_{j}} $.
4)签名. 算法输入消息$ M=\{{m}_{1},{m}_{2},…, {m}_{{n}_{m}}\} $,签名策略${\varGamma }_{d,S}(\cdot)$,签名者属性集$ {w}_{\mathrm{a}} $,净化者属性集$ \widehat{{w}_{\mathrm{\tau }}} $,密钥$ {S K}_{{t}_{j}} $,要求属性集$ {w}_{\mathrm{a}} $满足${\varGamma }_{d,S}\left({w}_{\mathrm{a}}\right)=1$,即$ |{w}_{\mathrm{a}}\cap S|\ge d $. 因此存在属性$ {w}_{\mathrm{a}}' \subseteq {w}_{\mathrm{a}}\cap S $,其中$ \left|{w}_{\mathrm{a}}' \right|=d $. 选取缺省属性集$ {\varOmega }' \subset \varOmega $,满足${w}_{\mathrm{a}}' \cap {\varOmega }' =\varnothing$. 令$ \widehat{{w}_{\mathrm{a}}}={w}_{\mathrm{a}}' \cup {\varOmega }' $,当$ i\in \widehat{{w}_{\mathrm{a}}} $,计算${\bar{a}}_{i,0}={a}_{i,0}\displaystyle\prod _{j\in \widehat{{w}_{\mathrm{a}}},j\ne i}{f}_{j}^{{r}_{i}}={\left({h}_{0}\displaystyle\prod\limits _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}\right)}^{{r}_{i,{v}_{{t}_{j}}}}{g}^{q\left(i\right)}{\left({f}_{\mathrm{a}}\displaystyle\prod _{j\in \widehat{{w}_{\mathrm{a}}}}{f}_{j}\right)}^{{r}_{i}}$;${a}_{0}= \displaystyle\prod\limits _{i\in \widehat{{w}_{\mathrm{a}}}}{\left({\bar{a}}_{i,0}\right)}^{{\Delta }_{i}^{\widehat{{w}_{\mathrm{a}}}}\left(0\right)}={\left({h}_{0}\displaystyle\prod\limits _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}\right)}^{r}{\left({f}_{\mathrm{a}}\displaystyle\prod\limits _{j\in \widehat{{w}_{\mathrm{a}}}}{f}_{j}\right)}^{{r}' }$$ \cdot{g}^{\alpha } $;${a}_{1}= \displaystyle\prod\limits _{i\in \widehat{{w}_{\mathrm{a}}}}{\left({a}_{i,1}\right)}^{{\Delta }_{i}^{\widehat{{w}_{\mathrm{a}}}}\left(0\right)}={g}^{r}$;${\mu }' =\displaystyle\prod\limits _{i\in \widehat{{w}_{\mathrm{a}}}}{\left({\mu }_{i}\right)}^{{\Delta }_{i}^{\widehat{{w}_{\mathrm{a}}}}\left(0\right)}={g}^{{r}' }$. 此时有$r= \displaystyle\sum _{i\in \widehat{{w}_{\mathrm{a}}}}{\Delta }_{i}^{\widehat{{w}_{\mathrm{a}}}}\left(0\right)\cdot{r}_{i,{v}_{{t}_{j}}}$;${r}' =\displaystyle\sum _{i\in \widehat{{w}_{\mathrm{a}}}}{\Delta }_{i}^{\widehat{{w}_{\mathrm{a}}}}\left(0\right)\cdot{r}_{i}$. 随机选取${r}_{\mathrm{a}},s,z,{r}_{\tau }\in {\mathbb{Z}}_{p}$,计算${\sigma }_{0}={a}_{0}{\left({f}_{\mathrm{a}}\displaystyle\prod\limits _{j\in \widehat{{w}_{\mathrm{a}}}}{f}_{j}\right)}^{{r}_{\mathrm{a}}}{\left({h}_{0}\displaystyle\prod\limits _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}\right)}^{s}$${\left({w}_{0}\displaystyle\prod\limits_{j=1}^{{n}_{m}}{w}_{j}^{{m}_{i}}\right)}^{z}\cdot {\left({f}_{\mathrm{\tau }}\displaystyle\prod\limits_{j\in \widehat{{w}_{\mathrm{\tau }}}}{f}_{j}\right)}^{{r}_{\mathrm{\tau }}}$;$ {\sigma }_{1}={a}_{1}{g}^{s} $;${\sigma }_{2}={\mu }' \cdot{g}^{{r}_{\mathrm{a}}}$;$ {\sigma }_{3}={g}^{{r}_{\mathrm{\tau }}} $;$ {\sigma }_{4}={g}^{z} $. 因此在当前时间片段$ {t}_{j} $产生的签名为$\sigma =\{{\sigma }_{0},{\sigma }_{1},{\sigma }_{2}, {\sigma }_{3},{\sigma }_{4}\}$. 签名者计算秘密值$ {S I}_{i}={w}_{i}^{z} $,其中$ i\in {I}_{N} $. 用$ S I $表示秘密值集合,即$ S I=\{{S I}_{1},{S I}_{2},… ,{S I}_{\left|{I}_{N}\right|}\} $,${I}_{N}=\{\mathrm{1,2},… , N\}$表示签名者允许净化的消息索引集合,其中$ N\le {n}_{m} $.
5)净化. 净化者获得签名$ \sigma $和秘密值集合$ S I $,首先通过验证算法判断签名是否有效,若是有效签名,定义此次需要净化的消息索引集$ I\subseteq {I}_{N} $. 令${I}_{1}=\{i\in I:{m}_{i}= 0,{m}_{i}' =1\}$;$ {I}_{2}=\{i\in I:{m}_{i}=1,{m}_{i}' =0\} $. 净化者随机选取${r}_{\mathrm{a}}' , {s}' ,{z}' ,{r}_{\mathrm{\tau }}' \in {\mathbb{Z}}_{p}$,计算${\sigma }_{0}' ={\sigma }_{0}\left({f}_{\mathrm{a}}\displaystyle\prod\limits _{j\in \widehat{{w}_{\mathrm{a}}}}{f}_{j}\right)^{{r}_{\mathrm{a}}' }{\left({h}_{0}\displaystyle\prod _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}\right)}^{{s}' }\cdot$ ${\left({f}_{\mathrm{\tau }}\displaystyle\prod\limits _{j\in \widehat{{w}_{\mathrm{\tau }}}}{f}_{j}\right)}^{{r}_{\mathrm{\tau }}'}\frac{\displaystyle\prod\limits_{i\in {I}_{1}}{S I}_{i}}{\displaystyle\prod\limits_{i\in {I}_{2}}{S I}_{i}}\left({\displaystyle\prod\limits _{j=1}^{{n}_{m}}{w}_{j}^{{m}_{i}' }}\cdot {w}_{0}\right)^{{z}' }$;${\sigma }_{1}' = {\sigma }_{1}{g}^{{s}' }$;${\sigma }_{2}' = {\sigma }_{2}{g}^{{r}_{\mathrm{a}}' }$;${\sigma }_{3}' ={\sigma }_{3}{g}^{{r}_{\mathrm{\tau }}'}$;$ {\sigma }_{4}' ={\sigma }_{4}{g}^{{z}' } $. 净化后的签名为${\sigma }' = \{{\sigma }_{0}' , {\sigma }_{1}' , {\sigma }_{2}' ,{\sigma }_{3}' ,{\sigma }_{4}' \}$.
6) 验证. 为了验证签名是否有效,需要计算等式 $Z\;=\;\dfrac{e({\sigma }_{0}' ,g)}{e\left({\sigma }_{1}' ,{h}_{0}\displaystyle\prod\limits _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}\;\right)\;e\;\left(\;{\sigma }_{2}' ,{f}_{\mathrm{\tau }}\displaystyle\prod\limits _{j\in \widehat{{w}_{\mathrm{\tau }}}}{f}_{j}\right)}\;\cdot\; $$ \dfrac{1}{e\left({\sigma }_{3}' ,{f}_{\tau }\displaystyle\prod\limits _{j\in \widehat{{w}_{\tau }}}{f}_{j}\right)e\left({\sigma }_{4}' ,{w}_{0}{\displaystyle\prod\limits _{j=1}^{{n}_{m}}}{w}_{j}^{{m}_{i}' }\right)}$是否成立. 若等式成立,则签名有效;否则拒绝该签名. 验证算法不仅可用于验证净化消息签名对,同时也可以验证非净化的消息签名是否有效.
5. 安全性分析
本节将分别给出FABSS方案的安全性分析.
5.1 正确性
验证方程既能验证原始签名$ \sigma $,同时也能验证净化签名$ {\sigma }{{'}} $. 首先给出对原始签名$ \mathrm{\sigma } $的验证过程,在5.2节中给出净化签名的净化性分析. 给定签名$ \sigma =\{{\sigma }_{0},{\sigma }_{1},{\sigma }_{2},{\sigma }_{3},{\sigma }_{4}\} $,通过证明等式(1)成立,表明FABSS方案满足正确性要求. 下面分别验证方程中的每一部分.
$$\begin{split} & \left({\sigma }_{0},g\right)=e\Bigg(g,{\left({f}_{\mathrm{a}}\prod _{j\in \widehat{{w}_{\mathrm{a}}}}{f}_{j}\right)}^{{r}_{\mathrm{a}}+{r}' }{\left({h}_{0}\prod _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}\right)}^{s+r} \cdot \\& \qquad\qquad{\left({f}_{\tau }\prod _{j\in \widehat{{w}_{\tau }}}{f}_{j}\right)}^{{r}_{\tau }}{\left({w}_{0}\prod _{j=1}^{{n}_{m}}{w}_{j}^{{m}_{i}}\right)}^{z}{g}^{\alpha }\Bigg)=\\& \qquad\qquad e({g}^{\alpha },g)e\Bigg({\left({w}_{0}\prod _{j=1}^{{n}_{m}}{w}_{j}^{{m}_{i}}\right)}^{z},g\Bigg)e\Bigg(g , {\left({f}_{\tau }\prod _{j\in \widehat{{w}_{\tau }}}{f}_{j}\right)}^{{r}_{\tau }}\cdot \\& \qquad\qquad {\left({f}_{\mathrm{a}}\prod _{j\in \widehat{{w}_{\mathrm{a}}}}{f}_{j}\right)}^{{r}_{\mathrm{a}}+{r}' }\Bigg)e\left(g , {\left({h}_{0}\prod _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}\right)}^{s+r}\right) ; \\& e\left({\sigma }_{1},{h}_{0}\prod _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}\right)=e\left({h}_{0}\prod _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}, {g}^{r+s}\right)= \\& \qquad\qquad e\left({\left({h}_{0}\prod _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}\right)}^{r+s},g\right);\\& e\left({\sigma }_{2},{f}_{\mathrm{a}}\prod _{j\in \widehat{{w}_{\mathrm{a}}}}{f}_{j}\right)= e\left({g}^{{r}_{\mathrm{a}}+{r}' },{f}_{\mathrm{a}}\prod _{j\in \widehat{{w}_{\mathrm{a}}}}{f}_{j}\right) = \\&\qquad\qquad e\Bigg(g, {\left({f}_{\mathrm{a}}\prod _{j\in \widehat{{w}_{\mathrm{a}}}}{f}_{j}\right)}^{{r}_{\mathrm{a}}+{r}' }\Bigg) ; \\& e\left({\sigma }_{3},{f}_{\mathrm{\tau }}\prod _{j\in \widehat{{w}_{\mathrm{\tau }}}}{f}_{j}\right)=e\left({g}^{{r}_{b}},{f}_{\mathrm{\tau }}\prod _{j\in \widehat{{w}_{\mathrm{\tau }}}}{f}_{j}\right) =\\& \qquad\qquad e\left(g, {\left({f}_{\mathrm{\tau }}\prod _{j\in \widehat{{w}_{\mathrm{\tau }}}}{f}_{j}\right)}^{{r}_{\mathrm{\tau }}}\right) ;\\& e\left({\sigma }_{4},{w}_{0}\prod _{j=1}^{{n}_{m}}{w}_{j}^{{m}_{i}}\right)= e\left({w}_{0}\prod _{j=1}^{{n}_{m}}{w}_{j}^{{m}_{i}}, {g}^{z}\right)=\\& \qquad\qquad e\left(g,{\left({w}_{0}\prod _{j=1}^{{n}_{m}}{w}_{j}^{{m}_{i}}\right)}^{z}\right); \end{split}$$ 因此有
$$ \begin{aligned}[b] & \frac{e\left(\sigma_0, g\right)}{e\left(\sigma_1, h_0 \displaystyle\prod\limits _{k=1}^l h_k^{b_{v_{{t}_{j}}}[k]}\right) e\left(\sigma_2, f_{\mathrm{a}} \displaystyle\prod\limits _{j \in \widehat{w_{\mathrm{a}}}} f_j\right) e\left(\sigma_3, f_\tau \displaystyle\prod\limits _{j \in \widehat{w_\tau}} f_j\right)}\cdot \\ & \frac{1}{e\left({\sigma }_{4},{w}_{0}{\displaystyle\prod\limits _{j=1}^{{n}_{m}}}{w}_{j}^{{m}_{i}}\right)}={e\left(g,g\right)}^{\alpha }=Z . \\[-20pt] \end{aligned} $$ (1) 综上所述,方案满足正确性.
5.2 净化性
净化者操作后的净化签名为${\sigma }' =\{{\sigma }_{0}' ,{\sigma }_{1}' , {\sigma }_{2}' , {\sigma }_{3}' , {\sigma }_{4}' \}$.当$ i\in {I}_{1} $时,$ {m}_{i}' -{m}_{i}=1 $,${\sigma }' $记为1;当$ i\in {I}_{2} $时,${m}_{i}' - {m}_{i}= -1$,${\sigma }' $记为0. ${\sigma }_{0}' ={\sigma }_{0}{\left({f}_{\mathrm{a}}\displaystyle\prod\limits _{j\in \widehat{{w}_{\mathrm{a}}}}{f}_{j}\right)}^{{r}_{\mathrm{a}}' }{\left({h}_{0}\displaystyle\prod\limits _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}\right)}^{{s}' }\cdot $${\left({f}_{\mathrm{\tau }}\displaystyle\prod\limits _{j\in \widehat{{w}_{\mathrm{\tau }}}}{f}_{j}\right)}^{{r}_{\mathrm{\tau }}' } \frac{\displaystyle\prod\limits _{i\in {I}_{1}}{SI}_{i}}{\displaystyle\prod\limits _{i\in {I}_{2}}{SI}_{i}}{\left({w}_{0}\displaystyle\prod\limits _{j=1}^{{n}_{m}}{w}_{j}^{{m}_{i}' }\right)}^{{z}' }={\left({f}_{\mathrm{\tau }}\displaystyle\prod\limits _{j\in \widehat{{w}_{\mathrm{\tau }}}}{f}_{j}\right)}^{{r}_{\mathrm{\tau }}+{r}_{\mathrm{\tau }}' }\cdot {g}^{\alpha }\cdot $ ${\left({f}_{\mathrm{a}}\displaystyle\prod\limits _{j\in \widehat{{w}_{\mathrm{a}}}}{f}_{j}\right)}^{{r}_{\mathrm{a}}+{r}' +{r}_{\mathrm{a}}' }{\left({h}_{0}\displaystyle\prod\limits _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}\right)}^{s+r+{s}' }$$\cdot {\left({w}_{0}\displaystyle\prod\limits _{j=1}^{{n}_{m}}{w}_{j}^{{m}_{i}' }\right)}^{z+{z}' }$;${\sigma }_{1}' = $ ${\sigma }_{1}{g}^{{s}' }={g}^{r+s+{s}' }$,$ {\sigma }_{2}' ={\sigma }_{2} {g}^{{r}_{\mathrm{a}}' }={g}^{{r}_{\mathrm{a}}+{r}' +{r}_{\mathrm{a}}' } $,${\sigma }_{3}' ={\sigma }_{3}{g}^{{r}_{\mathrm{\tau }}' }= {g}^{{r}_{\mathrm{\tau }}+{r}_{\mathrm{\tau }}' }$,$ {\sigma }_{4}' ={\sigma }_{4}{g}^{{z}' }={g}^{z+{z}' } $. 综上所述,净化后的签名${\sigma }' = \{{\sigma }_{0}' ,{\sigma }_{1}' ,{\sigma }_{2}' ,{\sigma }_{3}' ,{\sigma }_{4}' \}$与原始签名$\sigma =\{{\sigma }_{0},{\sigma }_{1},{\sigma }_{2}, {\sigma }_{3}, {\sigma }_{4}\}$有相同的分布. 因此签名$ {\sigma }' $和$ \sigma $都能通过验证方程.
5.3 前向安全性
定理1. 在${\varepsilon }' \text{-}(\eta \text{-}\mathrm{D}\mathrm{H}\mathrm{E})$困难问题假设下,提出的FABSS方案具有$\left(\varepsilon ,{q}_{\mathrm{s}}\right) \text{-}\mathrm{前}\mathrm{向}\mathrm{安}\mathrm{全}\mathrm{性}$. 其中${\varepsilon }' \ge \dfrac{\varepsilon }{4T\times {q}_{\mathrm{s}}\times ({n}_{m}+1)}$,$ T $是时间片段总数,$ {n}_{m} $是消息的长度,$ {q}_{\mathrm{s}} $是敌手A进行签名询问的次数.
证明. 通过敌手A和挑战者B之间的交互游戏证明定理1.
1)初始化. 给B一个$ \eta \text{-}\mathrm{D}\mathrm{H}\mathrm{E} $困难问题的随机实例$ \{g,{g}_{1}={g}^{a},{g}_{2}={g}^{{a}^{2}},… ,{g}_{\eta }={g}^{{a}^{\eta }},{g}_{\eta +2}={g}^{{a}^{\eta +2}},… $$ ,{g}_{2\eta }={g}^{{a}^{2\eta }}\} $,其中$ g $是素数阶群$ {G}_{1} $的生成元,$ a\in {\mathbb{Z}}_{p} $. A选择挑战签名谓词${\varGamma }_{{d}^{*},{S}^{*}}(\cdot )$和时间片段$ {t}_{{j}^{*}} $并发送给B,其中$ 0\le {t}_{{j}^{*}}\le T={2}^{l}-1 $. 同时定义属性域$ U=\{\mathrm{1,2},… ,n+d\} $,其中$ n $是常数. 选择缺省属性集$\varOmega =\left\{{\omega }_{1},{\omega }_{2},… ,{\omega }_{d-1}\right\}$. 在以下交互中,B尝试计算得到$ {g}_{\eta +1}={g}^{{a}^{\eta +1}} $.
2)设置. B通过如下方式生成公共参数$ params $和主密钥$ msk $. B随机选取$ {\alpha }' ,{\delta }_{\mathrm{a}},{\delta }_{\mathrm{\tau }},{\delta }_{1},…,{\delta }_{\eta }\in {\mathbb{Z}}_{p} $,计算$ {f}_{i}={g}^{{\delta }_{i}}{g}_{\eta -i+1} $,其中$ 1\le i\le \eta $;选择缺省属性子集${\varOmega }^{*{'}}\subset \varOmega$,计算${f}_{\mathrm{a}}={g}^{{\delta }_{\mathrm{a}}}\displaystyle\prod\limits _{i\in {S}^{*}\cup {\varOmega }^{*{'}}}{f}_{i}^{-1}$;令$ {w}_{\mathrm{\tau }}\subseteq U $,计算$ {f}_{\mathrm{\tau }}={g}^{{\delta }_{\mathrm{\tau }}}\displaystyle\prod\limits _{i\in {w}_{\mathrm{\tau }}}{f}_{i}^{-1} $;随机选取$ {\theta }_{0},{\theta }_{1},… ,{\theta }_{l}\in {\mathbb{Z}}_{p} $,计算$ {h}_{k}={g}^{{\theta }_{k}}{g}_{\eta -k+1}^{-1} $,$ {h}_{0}={g}^{{\theta }_{0}}\displaystyle\prod\limits _{k=1}^{l}{g}_{\eta -k+1}^{{b}_{{v}_{{t}_{{j}^{*}}}}\left[k\right]} $,其中$ 1\le k\le l $;随机选取$ \zeta \in \{\mathrm{0,1},… ,{n}_{m}\} $以及2个随机数集合$ X=\{{x}_{0},{x}_{1},…,{x}_{{n}_{m}}\} $和$ Y=\{{y}_{0},{y}_{1},…,{y}_{{n}_{m}}\} $,其中$ {x}_{i}\in {\mathbb{Z}}_{2{q}_{\mathrm{s}}-1} $,$ {y}_{i}\in {\mathbb{Z}}_{p} $;计算$ {w}_{i}={{g}_{1}}^{{x}_{i}}{g}^{{y}_{i}} $,$ {w}_{0}={{g}_{1}}^{{x}_{0}-2\zeta {q}_{\mathrm{s}}}{g}^{{y}_{0}} $,其中$ 1\le i\le {n}_{m} $;计算$Z=e\left({g}_{1},{g}_{\eta }\right) e{\left(g,g\right)}^{{\alpha }' }=e{\left(g,g\right)}^{{\alpha }' +{a}^{\eta +1}}$. 最后B设置$params= \{{G}_{1},{G}_{2},e,g,{f}_{\mathrm{a}},{f}_{\mathrm{\tau }},{h}_{0},{w}_{0},U,\varOmega ,T,H,W, Z\}$为公共参数,主密钥$ msk $为$ \alpha ={\alpha }' +{a}^{\eta +1} $. 定义2个函数,$J\left(M\right)={x}_{0}+\displaystyle\sum _{j=1}^{{n}_{m}}{x}_{j}{m}_{j}-2\zeta {q}_{\mathrm{s}}$;$K\left(M\right)={y}_{0}+\displaystyle\sum _{j=1}^{{n}_{m}}{y}_{j}{m}_{j}$. 此时${w}_{0}\displaystyle\prod\limits _{j=1}^{{n}_{m}}{w}_{j}^{{m}_{i}}={g}_{1}^{J\left(M\right)}{g}^{K\left(M\right)}$.
3)密钥生成询问. A最多进行$ {q}_{\mathrm{k}} $次密钥生成询问. A询问属性集$ {w}_{\mathrm{a}} $在时间片段$ {t}_{j} $的密钥$ {S K}_{{t}_{j}} $,此时必须满足$ |{w}_{\mathrm{a}}\cap {S}^{*}| < {d}^{*} $或者$ {|w}_{\mathrm{a}}\cap {S}^{*}|\ge {d}^{*} $,$ {t}_{j} > {t}_{{j}^{*}} $. 下面分别讨论这2种情况.
①当$ |{w}_{\mathrm{a}}\cap {S}^{*}| < {d}^{*} $时,B定义3个属性集合$ \varGamma $, $ {\varGamma }' $, $ S $,使$\varGamma =\left({w}_{\mathrm{a}}\cap {S}^{*}\right)\cup {\varOmega }^{*{'}}$,$ \varGamma \subseteq {\varGamma }' \subseteq S $,其中$ \left|{\varGamma }' \right|={d}^{*}-1 $. 令$ S={\varGamma }' \cup \left\{0\right\} $. 同时随机选取一个$ {d}^{*}-1 $次多项式$ q\left(x\right) $,满足$ q\left(0\right)=\alpha ={\alpha }' +{a}^{\eta +1} $.
B随机选取$ {r}_{i},{\rho }_{i}\in {\mathbb{Z}}_{p} $,令$ q\left(i\right)={\rho }_{i} $,其中$ i\in {\varGamma }' $. 随机选取$ {r}_{i,v}\in {\mathbb{Z}}_{p} $,其中$ v\in {V}_{{t}_{j}} $. 计算密钥${S K}_{{t}_{j}} = \{{\mu }_{i},{\varphi }_{i},\{{sk}_{i,v}|v\in {V}_{{t}_{j}}\}\}$,其中$ {\mu }_{i}={g}^{{r}_{i}} $,${\varphi }_{i}=$$ \{{f}_{1}^{{r}_{i}},{f}_{2}^{{r}_{i}},… ,{f}_{i-1}^{{r}_{i}},{f}_{i+1}^{{r}_{i}},…,{f}_{\eta }^{{r}_{i}}\} $,${sk}_{i,v}= $ $\left\{{g}^{{\rho }_{i}} ({f}_{a}{f}_{i})^{{r}_{i}}\left({h}_{0} \displaystyle\prod\limits _{k=1}^{\left|{b}_{v}\right|}{h}_{k}^{{b}_{v}\left[k\right]}\right)^{{r}_{i,v}},{g}^{{r}_{i,v}},{h}_{\left|{b}_{v}\right|+1}^{{r}_{i,v}},… ,{h}_{l}^{{r}_{i,v}}\right\}$ = $\{{a}_{i,0}, $ ${a}_{i,1},… ,$$ {a}_{i,\left|{b}_{v}\right|+1},… ,{a}_{i,l}\} $. B随机选取$ {r}_{i}' \in {\mathbb{Z}}_{p} $,其中$i\in \left({w}_{\mathrm{a}}\cap \varOmega \right)/{\varGamma }'$. 令$ {r}_{i}={r}_{i}' -{\varDelta }_{0}^{S}\left(i\right){a}^{i} $. 由拉格朗日插值可得$q\left(i\right)=\displaystyle\sum _{j\in S}q\left(j\right){\varDelta }_{j}^{S}\left(i\right)$. 随机选取$ {r}_{i,v}\in {\mathbb{Z}}_{p} $,其中$ v\in {V}_{{t}_{j}} $. 计算密钥$ {S K}_{{t}_{j}}=\left\{{\mu }_{i},{\varphi }_{i},\left\{{sk}_{i,v}|v\in {V}_{{t}_{j}}\right\}\right\} $,其中$ {\mu }_{i}={g}^{{r}_{i}}={g}^{{r}_{i}' }{g}^{-{\varDelta }_{0}^{S}\left(i\right)} $;${\varphi }_{i}=\left\{{f}_{1}^{{r}_{i}},\;{f}_{2}^{{r}_{i}},\;… ,\;{f}_{i-1}^{{r}_{i}},\;{f}_{i+1}^{{r}_{i}},\;…,\;{f}_{\eta }^{{r}_{i}}\right\}=\{{f}_{1}^{{r}_{i}' }{\left({g}^{{\delta }_{1}}{g}_{\eta }\right)}^{-{\varDelta }_{0}^{S}\left(i\right){a}^{i}},\;…,$ ${f}_{i-1}^{{r}_{i}' }{\left({g}^{{\delta }_{\eta }}{g}_{1}\right)}^{-{\varDelta }_{0}^{S}\left(i\right){a}^{i}}({g}_{\eta -i+2} {{g}^{{\delta }_{i-1}})}^{-{\varDelta }_{0}^{S}\left(i\right){a}^{i}}{f}_{i+1}^{{r}_{i}' }{\left({g}^{{\delta }_{i+1}}{g}_{\eta -i}\right)}^{-{\varDelta }_{0}^{S}\left(i\right){a}^{i}}$ ,$ {f}_{\eta }^{{r}_{i}' }\}= \{{f}_{1}^{{r}_{i}' } $${\left({g}^{{\delta }_{1}}{g}_{\eta +i}\right)}^{-{\varDelta }_{0}^{S}\left(i\right)},\;…,\;{f}_{i-1}^{{r}_{i}' }{\left({g}^{{\delta }_{i-1}}{g}_{\eta +2}\right)}^{-{\varDelta }_{0}^{S}\left(i\right)}$, $ {f}_{i+1}^{{r}_{i}' }({g}_{\eta } $$ {{g}^{{\delta }_{i+1}})}^{-{\varDelta }_{0}^{S}\left(i\right)}, {f}_{\eta }^{{r}_{i}' }{\left({g}^{{\delta }_{\eta }}{g}_{i+1}\right)}^{-{\varDelta }_{0}^{S}\left(i\right)}\} $;${sk}_{i,v}=\big\{{g}^{q\left(i\right)}\left({f}_{\mathrm{a}} {f}_{i}\right)^{{r}_{i}}{\left({h}_{0}\displaystyle\prod\limits _{k=1}^{\left|{b}_{v}\right|}{h}_{k}^{{b}_{v}\left[k\right]}\right)}^{{r}_{i,v}}$, ${g}^{{r}_{i,v}}, {h}_{\left|{b}_{v}\right|+1}^{{r}_{i,v}},\;… ,\;{h}_{l}^{{r}_{i,v}}\}\;=\;\{{a}_{i,0},\; {a}_{i,1},\;{a}_{i,\;\left|{b}_{v}\right|+1},\;… ,\;{a}_{i,l}\} $. 此时,计算可得 ${a}_{i,0}\;\;=\;\;{g}^{q\left(i\right)} {\left({f}_{0}{f}_{i}\right)}^{{r}_{i}}{\left({h}_{0}\displaystyle\prod\limits _{k=1}^{\left|{b}_{v}\right|}{h}_{k}^{{b}_{v}\left[k\right]}\right)}^{{r}_{i,v}}$ = ${\left({f}_{0}{f}_{i}\right)}^{{r}_{i}' -{\varDelta }_{0}^{S}\left(i\right){a}^{i}} \cdot$ ${g}^{{\sum }_{j\in {\varGamma }' }q\left(j\right){\varDelta }_{j}^{S}\left(i\right)+q\left(0\right){\varDelta }_{0}^{S}\left(i\right)} $;$ {\left({h}_{0}\displaystyle\prod\limits _{k=1}^{\left|{b}_{v}\right|}{h}_{k}^{{b}_{v}\left[k\right]}\right)}^{{r}_{i,v}}={g}^{{\sum }_{j\in {\varGamma }' }{\rho }_{i}{\varDelta }_{j}^{S}\left(i\right)}{g}^{{\alpha }' {\varDelta }_{0}^{S}\left(i\right)}\cdot $${g}_{\eta +1}^{{\varDelta }_{0}^{S}\left(i\right)}{\left({f}_{\mathrm{a}}{f}_{i}\right)}^{{r}_{i}' }{g}_{i}^{-{\delta }_{j}{\varDelta }_{0}^{S}\left(i\right)}\left(\displaystyle\prod\limits _{k=1}^{\left|{b}_{v}\right|}{h}_{k}^{{b}_{v}\left[k\right]} {h}_{0}\right)^{{r}_{i,v}}$${\left({g}_{i}^{{\delta }_{\mathrm{a}}}\displaystyle\prod\limits _{j\in {S}^{*}\cup {\varOmega }^{*{'}}}{g}_{j}^{{\delta }_{j}}{g}_{\eta -j+i+1}\right)}^{{\varDelta }_{0}^{S}\left(i\right)}$. 综上所述,模拟的密钥与原始方案生成的密钥具有相同的分布,因此对敌手而言模拟的密钥与原始密钥不可区分.
② 当$ {w}_{\mathrm{a}}\cap {S}^{*}\ge {d}^{*} $,$ {t}_{j} > {t}_{{j}^{*}} $时,根据时间二进制树的定义可得,对节点$ v\in {V}_{{t}_{j}} $,存在索引$ \beta $使得$ {b}_{v}\left[\beta \right]\ne {b}_{{v}_{{t}_{{j}^{*}}}}\left[\beta \right] $. 为简化分析,令$ \beta $为满足条件的最小索引值. B定义3个属性集合$ \varGamma $,$ {\varGamma }' $,$ S $,使得$\varGamma =\left({w}_{\mathrm{a}}\cap {S}^{*}\right)\cup {\varOmega }^{*{'}}$,$ \varGamma \subseteq {\varGamma }' \subseteq S $,其中$ \left|{\varGamma }' \right|={d}^{*}-1 $. 令$ S={\varGamma }' \cup \left\{0\right\} $. 随机选取$ {d}^{*}-1 $次多项式$ q\left(x\right) $,满足$ q\left(0\right)=\alpha ={\alpha }' +{a}^{\eta +1} $.
B随机选取$ {r}_{i} $,$ {\rho }_{i}\in {\mathbb{Z}}_{p} $,令$ q\left(i\right)={\rho }_{i} $,其中$i\in {\varGamma }'$.随机选取$ {r}_{i,v}\in {\mathbb{Z}}_{p} $,其中$ v\in {V}_{{t}_{j}} $. 计算密钥${S K}_{{t}_{j}}=\{{\mu }_{i},{\varphi }_{i}, \{{sk}_{i,v}|v\in {V}_{{t}_{j}}\}\}$,其中$ {\mu }_{i}={g}^{{r}_{i}} $,$ {\varphi }_{i}= $$ \{{f}_{1}^{{r}_{i}},{f}_{2}^{{r}_{i}},… ,{f}_{i-1}^{{r}_{i}},{f}_{i+1}^{{r}_{i}},…,{f}_{\eta }^{{r}_{i}}\} $,${sk}_{i,v}= \Bigg\{ ({g}^{{\rho }_{i}}{({f}_{\mathrm{a}}{f}_{i}))}^{{r}_{i}}$$\left({h}_{0} \displaystyle\prod\limits _{k=1}^{\left|{b}_{v}\right|}{h}_{k}^{{b}_{v}\left[k\right]}\right)^{{r}_{i,v}} , {g}^{{r}_{i,v}},{h}_{\left|{b}_{v}\right|+1}^{{r}_{i,v}}, … , {h}_{l}^{{r}_{i,v}})\Bigg\}$=$ ({a}_{i,0},{a}_{i,1} $,$ … , $$ {a}_{i,\left|{b}_{v}\right|+1},… ,{a}_{i,l}) $. B随机选择$ {r}_{i}\in {\mathbb{Z}}_{p} $,其中$i\in \left({w}_{\mathrm{a}}\cap \varOmega \right)/{\varGamma }'$. 计算$ {\mu }_{i}={g}^{{r}_{i}} $,$ {\varphi }_{i}=\{{f}_{1}^{{r}_{i}},{f}_{2}^{{r}_{i}},… ,{f}_{i-1}^{{r}_{i}},{f}_{i+1}^{{r}_{i}},…,{f}_{\eta }^{{r}_{i}}\} $;随机选取$ {r}_{i,v}' \in {\mathbb{Z}}_{p} $,其中$ v\in {V}_{{t}_{j}} $. 令$ {r}_{i,v}={a}^{\beta }{\varDelta }_{0}^{S}\left(i\right)/{b}_{v}\left[\beta \right]-{b}_{{v}_{{t}_{{j}^{*}}}}\left[\beta \right]+{r}_{i,v}' $.
此时${sk}_{i,v}' =\{{a}_{i,0},\;{a}_{i,1},\;{a}_{i,\left|{b}_{v}\right|+1},\;… ,\;{a}_{i,l})= \Bigg\{ {g}^{q(i)}\left({f}_{\mathrm{a}}{f}_{i}\right)^{{r}_{i}} \cdot \left(\displaystyle\prod\limits _{k=1}^{|{b}_{v}|}{h}_{k}^{{b}_{v}[k]}{h}_{0}\right)^{{r}_{i,v}},{g}^{{r}_{i,v}},{h}_{\left|{b}_{v}\right|+1}^{{r}_{i,v}},… ,{h}_{l}^{{r}_{i,v}}\Bigg\}$,其中$q\left(i\right)=\displaystyle\sum _{j\in {\varGamma }' }q\left(j\right) \cdot {\varDelta }_{j}^{S}\left(i\right)+q\left(0\right){\varDelta }_{0}^{S}\left(i\right)$. 此时
$$ \begin{split} {a}_{i,0}=&\left({g}^{q\left(i\right)}{\left({f}_{\mathrm{a}}{f}_{i}\right)}\right)^{{r}_{i}}{\left({h}_{0}\displaystyle\prod\limits _{k=1}^{\left|{b}_{v}\right|}{h}_{k}^{{b}_{v}\left[k\right]}\right)}^{{r}_{i,v}}=\left({g}^{q\left(0\right){\varDelta }_{0}^{S}\left(i\right)}{\left({f}_{\mathrm{a}}{f}_{i}\right)}\right)^{{r}_{i}} \cdot \\& {g}^{\sum\limits _{j\in {\varGamma }' }q\left(j\right){\Delta }_{j}^{S}\left(i\right)}{\left(\displaystyle\prod\limits _{k=1}^{\beta -1}{g}_{\eta -k+1}^{{b}_{{v}_{{t}_{{j}^{*}}}}\left[k\right]-{b}_{v}\left[k\right]}\right)}^{{r}_{i,v}}\left({g}^{{\theta }_{0}+\sum\limits _{k=1}^{\beta }{b}_{v}\left[k\right]{\theta }_{k}} \right)^{{r}_{i,v}} \end{split}.$$ $$ \begin{split} &{\left({g}_{\eta -\beta +1}^{({b}_{{v}_{{t}_{{j}^{*}}}}\left[k\right]-{b}_{v}[k\left]\right){r}_{i,v}}\right)}^{{r}_{i,v}}{\left(\displaystyle\prod\limits _{k=\beta +1}^{l}{g}_{\eta -k+1}^{{b}_{{v}_{{t}_{{j}^{*}}}}\left[k\right]}\right)}^{{r}_{i,{v}}}= \\& {g}^{{\alpha }' {\varDelta }_{0}^{S}\left(i\right)}\left({g}_{\beta }^{\frac{{\varDelta }_{0}^{S}\left(i\right)}{{b}_{v}\left[k\right]-{b}_{{v}_{{t}_{{j}^{*}}}}\left[k\right]}}{g}^{{r}_{i,v}' }\right)^{{\theta }_{0}+\sum\limits _{k=1}^{\beta }{b}_{v}\left[k\right]{\theta }_{k}}{g}^{\sum\limits _{j\in {\varGamma }' }{\rho }_{i}{\varDelta }_{j}^{S}\left(i\right)}\cdot \\& {g}_{\eta -\beta +1}^{{(b}_{{v}_{{t}_{{j}^{*}}}}\left[k\right]-{b}_{v}[k\left]\right){r}_{i,v}' }{\left(\displaystyle\prod\limits _{k=\beta +1}^{l}{g}_{\eta -k+\beta +1}^{{b}_{{v}_{{t}_{{j}^{*}}}}\left[k\right]}\right)}^{\frac{{\varDelta }_{0}^{S}\left(i\right)}{{b}_{v}\left[k\right]-{b}_{{v}_{{t}_{{j}^{*}}}}\left[k\right]}} \cdot \\& {\left({f}_{0}{f}_{i}\right)}^{{r}_{i}}{\left(\displaystyle\prod\limits _{k=\beta +1}^{l}{g}_{\eta -k+\beta +1}^{{b}_{{v}_{{t}_{{j}^{*}}}}\left[k\right]}\right)}^{{r}_{i,v}' }; \\& {a}_{i,1}={g}^{\frac{{a}^{\beta }{\varDelta }_{0}^{S}\left(i\right)}{{b}_{v}\left[k\right]-{b}_{{v}_{{t}_{{j}^{*}}}}\left[k\right]}+{r}_{i,v}' }={g}_{\beta }^{{\varDelta }_{0}^{S}\left(i\right)/({b}_{v}\left[k\right]-{b}_{{v}_{{t}_{{j}^{*}}}}\left[k\right])}{g}^{{r}_{i,v}' }; \\&{a}_{i.k}={\left({g}^{{\theta }_{k}}{g}_{\eta -k+1}^{-1}\right)}^{{a}^{\beta }{\varDelta }_{0}^{S}\left(i\right)/({b}_{v}\left[k\right]-{b}_{{v}_{{t}_{{j}^{*}}}}\left[k\right])+{r}_{i,v}' }=\\&\left({g}_{\beta }^{{\theta }_{k}} {g}_{\eta -k+\beta +1}^{-1}\right)^{{\varDelta }_{0}^{S}\left(i\right)/({b}_{v}\left[k\right]-{b}_{{v}_{{t}_{{js}^{*}}}}\left[k\right])}{\left({g}^{{\theta }_{k}}{g}_{\eta -k+1}^{-1}\right)}^{{r}_{i,v}' } . \end{split}$$ 最后B随机选取$ {r}_{i,v}'' \in {\mathbb{Z}}_{p} $,计算$ {sk}_{i,v}=\{{a}_{i,0}\displaystyle\prod\limits _{k=\beta +1}^{\left|{b}_{v}\right|}{a}_{i,k}^{{b}_{v}\left[k\right]} \cdot $$ {\left({h}_{0}\displaystyle\prod\limits _{k=1}^{\left|{b}_{v}\right|}{h}_{k}^{{b}_{v}\left[k\right]}\right)}^{{r}_{i,v}'' },{a}_{i,1}{g}^{{r}_{i,v}'' },{a}_{i,\left|{b}_{v}\right|+1}{h}_{\left|{b}_{v}\right|+1}^{{r}_{i,v}'' },{a}_{i,\left|{b}_{v}\right|+2} $$ {h}_{\left|{b}_{v}\right|+2}^{{r}_{i,v}'' }, …$, ${a}_{i,l}{h}_{l}^{{r}_{i,v}'' }) $. 综上所述,B成功模拟$ {t}_{y} $时间片段密钥$ {S K}_{{t}_{j}} $.
4)密钥更新询问. 为了从当前时间片段$ {t}_{j} $获得后续时间片段$ {t}_{{j}' } $的密钥$ {S K}_{{t}_{{j}' }} $,A向B进行密钥更新询问. B通过原始方案计算更新密钥$ {S K}_{{t}_{{j}' }} $并发送给A.
5)签名询问. 给定消息$ M=\{{m}_{1},{m}_{2},…, {m}_{{n}_{m}}\} $和签名策略${\varGamma }_{d,S}\left(\cdot \right)$,若$ J\left(M\right)=0 $,模拟终止;否则,B随机选取$ {r}_{\mathrm{a}},s,{z}' ,{r}_{\mathrm{\tau }}\in {\mathbb{Z}}_{p} $,令$ z={z}' -\dfrac{{a}^{\eta }}{J\left(M\right)} $,计算
$$ \begin{split} \sigma =&\{{\sigma }_{0},{\sigma }_{1},{\sigma }_{2},{\sigma }_{3},{\sigma }_{4}\}=\Bigg\{{\left({g}_{1}^{J\left(M\right)}{g}^{K\left(M\right)}\right)}^{{z}' }{\left({f}_{\mathrm{\tau }}\prod _{j\in \widehat{{w}_{\mathrm{\tau }}}}{f}_{j}\right)}^{{r}_{\mathrm{\tau }}} \cdot \\& {g}^{{a}' }{\left({f}_{\mathrm{a}}\prod _{j\in \widehat{{w}_{\mathrm{a}}}}{f}_{j}\right)}^{{r}_{a}}{\left({h}_{0}\prod _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}\right)}^{s}{g}_{\eta }^{-K\left(M\right)/J\left(M\right)},\\& {g}^{s} ,{g}^{{r}_{\mathrm{a}}},{g}^{{r}_{\mathrm{\tau }}} ,{g}^{{z}' }{g}_{\eta }^{-1/J\left(M\right)}\Bigg\}, \end{split} $$ 此时,
$$ \begin{split} {\sigma }_{0}=&{g}^{{a}' }{\left({f}_{\mathrm{a}}\prod _{j\in \widehat{{w}_{\mathrm{a}}}}{f}_{j}\right)}^{{r}_{\mathrm{a}}} {\left({f}_{\mathrm{\tau }}\prod _{j\in \widehat{{w}_{\mathrm{\tau }}}}{f}_{j}\right)}^{{r}_{\mathrm{\tau }}}{\left({g}_{1}^{J\left(M\right)}{g}^{K\left(M\right)}\right)}^{{z}' }{g}_{\eta }^{-\frac{K\left(M\right)}{J\left(M\right)}}\cdot \\&\left(\prod _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]} {h}_{0}\right)^{s}={g}^{\alpha }{\left({f}_{\mathrm{a}}\prod _{j\in \widehat{{w}_{\mathrm{a}}}}{f}_{j}\right)}^{{r}_{\mathrm{a}}}{g}_{\eta }^{-\frac{K\left(M\right)}{J\left(M\right)}}{\left({g}_{1}^{J\left(M\right)}{g}^{K\left(M\right)}\right)}^{{z}' }\cdot \\& {\left({f}_{\mathrm{\tau }}\prod _{j\in \widehat{{w}_{\mathrm{\tau }}}}{f}_{j}\right)}^{{r}_{\mathrm{\tau }}}{\left({h}_{0}\prod _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}\right)}^{s}{g}^{-{a}^{(\eta +1)}}{g}_{\eta }^{-\frac{K\left(M\right)}{J\left(M\right)}}= \\& {g}^{\alpha }{\left({f}_{\mathrm{a}}\prod _{j\in \widehat{{w}_{\mathrm{a}}}}{f}_{j}\right)}^{{r}_{\mathrm{a}}}{\left({h}_{0}\prod _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}\right)}^{s}{\left({w}_{0}{\prod _{j=1}^{{n}_{m}}{w}_{j}}^{{m}_{i}}\right)}^{z} \cdot \\& {\left({f}_{\mathrm{\tau }}\prod _{j\in \widehat{{w}_{\mathrm{\tau }}}}{f}_{j}\right)}^{{r}_{\mathrm{\tau }}};\\& {\sigma }_{4}={g}^{{z}' }{g}_{\eta }^{-1/J\left(M\right)}={g}^{z} . \end{split}$$ 综上所述,模拟签名与原始签名有相同的分布,因此B将签名$ \sigma =\left\{{\sigma }_{0},{\sigma }_{1},{\sigma }_{2},{\sigma }_{3},{\sigma }_{4}\right\} $发送给A.
6)伪造. 询问结束后,A输出关于消息${M}^{*}= \{{m}_{1}^{*},{m}_{2}^{*},…,{m}_{{n}_{m}}^{*}\}$,满足签名策略$ {\varGamma }_{{d}^{*},{S}^{*}}(\cdot ) $和时间片段$ {t}_{{j}^{\text{'}*}} $的签名$ {\sigma }^{*}=\{{\sigma }_{0}^{*},{\sigma }_{1}^{*},{\sigma }_{2}^{*},{\sigma }_{3}^{*},{\sigma }_{4}^{*},\} $. 伪造过程为:选取$ {w}_{\mathrm{a}}^{*}\subseteq {S}^{*} $以及$ {\varOmega }^{*}\subseteq \varOmega $,令$ \widehat{{w}_{\mathrm{a}}^{*}}={w}_{\mathrm{a}}^{*}\cup {\varOmega }^{*} $. 要求A没有在$ {t}_{{j}^{\text{'}*}} $时间片段并且满足签名策略$ {\varGamma }_{{d}^{*},{S}^{*}}(\cdot ) $的条件下对${M}^{*}= \{{m}_{1}^{*},{m}_{2}^{*},…, {m}_{{n}_{m}}^{*}\}$进行签名询问. 此时B检查$ {t}_{{j}^{\text{'}*}}={t}_{{j}^{*}} $是否成立. 若不成立,则模拟终止;若成立,B计算$ J\left({M}^{*}\right) $和$ K\left({M}^{*}\right) $. 若$ J\left({M}^{*}\right)\ne 0 $,模拟终止;否则A输出伪造签名${\sigma }^{*}=\left\{{\sigma }_{0}^{*},\;{\sigma }_{1}^{*},\;{\sigma }_{2}^{*},\;{\sigma }_{3}^{*},\;{\sigma }_{4}^{*}\right\}={\Bigg\{\;{g}^{\alpha }\;\left({f}_{\mathrm{a}}\displaystyle\prod\limits _{j\in \widehat{{w}_{\mathrm{a}}^{*}}}{f}_{j}\right)\;}^{{r}_{a}} \cdot$${\big({g}_{1}^{J({M}^{*})} {g}^{K\left({M}^{*}\right)}\big)}^{{z}{'}} {\left( {f}_{\mathrm{\tau }}\displaystyle\prod\limits _{j\in \widehat{{w}_{\mathrm{\tau }}}}{f}_{j}\right) }^{{r}_{\mathrm{\tau }}}{\left({h}_{0}\displaystyle\prod\limits _{k=1}^{l}{h}_{k}^{{b}_{{v}_{{t}_{j}}}\left[k\right]}\right) }^{s}, {g}^{s}, {g}^{{r}_{\mathrm{a}}}, {g}^{{r}_{\mathrm{\tau }}}, {g}^{z}\Bigg\}$ = $\Bigg\{{g}^{{a}{{'}}}{g}_{\eta +1}{g}^{{\delta }_{\mathrm{a}}{r}_{\mathrm{a}}}$${g}^{{\delta }_{\mathrm{\tau }}{r}_{\mathrm{\tau }}}{g}^{\left({\theta }_{0}+\sum\limits _{k=1}^{\beta }{b}_{{t}_{{j}^{*}}}\left[k\right]{\theta }_{k}\right)s}{g}^{zK\left({M}^{*}\right)},\;{g}^{s},\;{g}^{{r}_{\mathrm{a}}},\;{g}^{{r}_{\mathrm{\tau }}},{g}^{z}\Bigg\}$ = $\Bigg\{{g}^{{a}{{'}}}{g}_{\eta +1}{\left({\sigma }_{2}^{*}\right)}^{{\delta }_{\mathrm{a}}} {({\sigma }_{3}^{*})}^{{\delta }_{\mathrm{\tau }}} {\left({\sigma }_{1}^{*}\right)}^{{\theta }_{0}+\sum\limits _{k=1}^{\beta }{b}_{{t}_{{j}^{*}}}\left[k\right]{\theta }_{k}}{\left({\sigma }_{4}^{*}\right)}^{K\left({M}^{*}\right)}\cdot$$,{g}^{s},{g}^{{r}_{\mathrm{a}}},{g}^{{r}_{\mathrm{\tau }}},{g}^{z}\Bigg\}$. B通过A提交的伪造签名计算${g}^{{a}_{\eta +1}}={g}_{\eta +1}= $$ \dfrac{{\sigma }_{0}^{*}}{{g}^{{a}{{'}}}{\left({\sigma }_{1}^{*}\right)}^{{\theta }_{0}+\sum\limits _{k=1}^{\beta }{b}_{{t}_{{j}^{*}}}\left[k\right]{\theta }_{k}}{\left({\sigma }_{2}^{*}\right)}^{{\delta }_{\mathrm{a}}}{\left({\sigma }_{3}^{*}\right)}^{{\delta }_{\mathrm{\tau }}}{\left({\sigma }_{4}^{*}\right)}^{K\left({M}^{*}\right)}}$. 因此若A能够伪造一个消息的有效签名,那么B就能成功解决$ \eta \text{-}\mathrm{D}\mathrm{H}\mathrm{E} $困难问题. 证毕.
5.4 概率分析
为了在前向安全性游戏的交互中不发生终止,需要考虑3个事件:
1) 事件${E}_{1}$. 签名询问阶段,满足$ J\left(M\right)\ne 0 $,其中$ i\in \{\mathrm{1,2},… ,{q}_{\mathrm{s}}\} $;
2) 事件$ {E}_{2} $. 伪造阶段,满足$ J\left({M}^{*}\right)=0 $;
3) 事件$ {E}_{3} $. 敌手猜测的时间$ {t}_{{j}'^{*}} $,满足$ {t}_{{j}{'}{^*}}={t}_{{j}^{*}} $.
易见,B不发生终止的概率为$\mathit{Pr}\left[\overline{abort}\right]= Pr[{\wedge }_{i=1}^{{q}_{\mathrm{s}}}{E}_{1i}\wedge {E}_{2}\wedge {E}_{3}]$. 同时,对于所有的$i=1,2,… ,{q}_{s}$,事件 $ {E}_{1i} $ 和事件 $ {E}_{2} $ 是相互独立的. 因此,$\mathit{Pr}\left[\overline{abort}\right]\ge \mathit{Pr} \left[{\wedge }_{i=1}^{{q}_{\mathrm{s}}}{E}_{1i}\wedge {E}_{2}\right]\mathit{Pr}\left[{E}_{3}\right]=\mathit{Pr}\left[{E}_{3}\right]\mathit{Pr}\left[\left[{\wedge }_{i=1}^{{q}_{\mathrm{s}}}{E}_{1i}\right|{E}_{2}\right] \ \times $ $\mathit{Pr}\left[{E}_{2}\right]\ge$ Pr$ \left[{E}_{2}\right](1-\displaystyle\sum _{i=1}^{{q}_{\mathrm{s}}}Pr[\overline{{E}_{1i}}\left|{E}_{2}\right]=\frac{1}{4T{q}_{\mathrm{s}}({n}_{m}+1)}$.
综上所述,若存在概率多项式时间敌手以不可忽略概率$ \varepsilon $赢得FABSS的前向安全性游戏,那么挑战者就能以${\varepsilon }' \ge \dfrac{\varepsilon }{4T \times {q}_{\mathrm{s}} \times ({n}_{m}+1)}$的概率解决$\eta \text{-}\mathrm{D}\mathrm{H}\mathrm{E}$困难问题假设,其中$ T $表示时间片段总数,$ {q}_{\mathrm{s}} $表示签名询问的次数,$ {n}_{m} $表示消息的长度.
5.5 不变性
定理2. FABSS方案在$ \varepsilon' \text{-} (\eta \text{-} \mathrm{D}\mathrm{H}\mathrm{E}) $困难问题假设下具有$ {\varepsilon} \text{-} \mathrm{不}\mathrm{变}\mathrm{性} $,其中存在常数$ \psi $,满足$ \varepsilon < \psi {\varepsilon}{{'}} $.
假设可净化集合$ {I}_{N}\subseteq \{\mathrm{1,2},… ,{n}_{m}\} $,净化者已知秘密值集合$ S I $,但无法对可净化集合范围之外的数据进行操作. 首先证明引理2.
引理2. 若存在多项式时间的敌手$ {A}_{1} $能够对可净化索引集合$ {I}_{N} $中的$ \kappa $位长度的消息进行操作,其中$ 0 < \kappa \le {n}_{m} $,并且以$ {\varepsilon }_{{A}_{1}} $的优势赢得不变性游戏,那么就存在一个多项式时间敌手A在不可伪造游戏中以$ {\varepsilon }_{A}\ge {\varepsilon }_{{A}_{1}} $的优势成功伪造一个长度为$ {n}_{m}-\kappa $位消息的有效签名.
证明. 假设$ {A}_{1} $在可净化范围内对$ \kappa $位长度的消息进行操作,此时A对长度为$ {n}_{m}-\kappa $位的消息进行前向安全游戏,在游戏中A模仿挑战者与$ {A}_{1} $交互. 在收到$ {A}_{1} $提交的相关询问操作后,A通过与前向安全游戏中的挑战者B交互并将结果发送给$ {A}_{1} $.
1)设置阶段,$ {A}_{1} $获得可净化索引集合$ {I}_{N} $,其中$ {I}_{N}\subseteq \left\{\mathrm{1,2},… ,{n}_{m}\right\} $. 为简化分析,令${I}_{N}=\left\{{n}_{m}-\kappa +1, {n}_{m}- \kappa +2,… ,{n}_{m}\right\}$, $ \kappa =\left|{I}_{N}\right| $. B将公共参数$params=\{{G}_{1}, {G}_{2},e,g,{f}_{\mathrm{a}},{f}_{\mathrm{\tau }},{h}_{0},{w}_{0},U,\varOmega ,T,H,{W}_{{n}_{m}-\kappa },Z\}$发送给A,其中$ {W}_{{n}_{m}-\kappa }=\left\{{w}_{1},{w}_{2},… ,{w}_{{n}_{m}-\kappa }\right\} $. A随机选取$ {s}_{i}\in {\mathbb{Z}}_{p} $,计算${w}_{i}{{'}}={g}^{{s}_{i}}$,其中$ i\in \left\{{n}_{m}-\kappa +1,{n}_{m}-\kappa +2,… ,{n}_{m}\right\} $. 令$W= {W}_{{n}_{m}-\kappa }\cup {W}_{{n}_{m}-\kappa +1}$,$ {W}_{{n}_{m}-\kappa +1}=\left\{{w}_{{n}_{m}-\kappa +1},{w}_{{n}_{m}-\kappa +2},… ,{w}_{{n}_{m}}\right\} $. A将公共参数$params=\{{G}_{1},{G}_{2},e,g,{f}_{\mathrm{a}},{f}_{\mathrm{\tau }},{h}_{0},{w}_{0},U,\varOmega ,T,H, W,Z\}$发送给$ {A}_{1} $.
在$ j=\mathrm{1,2},… ,{q}_{\mathrm{s}} $次的签名询问中,A通过与B的交互来回答$ {A}_{1} $的询问. 首先$ {A}_{1} $向A询问消息${M}_{j}= \{{m}_{j,1}, {m}_{j,2},… ,{m}_{{j,n}_{m}}\}$的签名,A收到询问后向B询问消息$\overline{{M}_{j}}= \{{m}_{j,1},{m}_{j,2},…, {m}_{j,{n}_{m}-\kappa }\}$的签名. B将签名$\mathrm{\sigma }=\{{\sigma }_{j,0}, {\sigma }_{j,1}, {\sigma }_{j,2},{\sigma }_{j,3},{\sigma }_{j,4}\}$发送给A,A计算${\mathrm{\sigma }}_{j,0}' ={\sigma }_{j,0}\displaystyle\prod\limits _{i={n}_{m}-\kappa +1}^{{n}_{m}} {{\sigma }_{j,1}}^{{s}_{i}{m}_{j,i}}$,$ {\mathrm{\sigma }}_{j,1}' ={\sigma }_{j,1} $,$ {\mathrm{\sigma }}_{j,2}' ={\sigma }_{j,2} $,$ {\mathrm{\sigma }}_{j,3}' ={\sigma }_{j,3} $,$ {\mathrm{\sigma }}_{j,4}' ={\sigma }_{j,4} $. A将签名$({\mathrm{\sigma }}_{j,0}' , {\mathrm{\sigma }}_{j,1}' ,{\mathrm{\sigma }}_{j,2}' ,{\mathrm{\sigma }}_{j,3}' ,{\mathrm{\sigma }}_{j,4}' )$以及秘密消息$\{{{\sigma }_{j,1}}^{{s}_{i}{m}_{j,i}}|i= {n}_{m}-\kappa +1, {n}_{m}- \kappa + 2,… ,{n}_{m}\}$发送给$ {A}_{1} $.
2)在伪造阶段,若$ {{A}}_{1} $能够成功伪造消息${M}^{*}{'}= \{{m}_{0}^{{*}{{'}}},{m}_{1}^{{*}{{'}}},… ,{m}_{{n}_{m}}^{{*}{{'}}}\}$的签名$ ({\mathrm{\sigma }}_{j,0}^{*}{'},{\mathrm{\sigma }}_{j,1}^{*}{'},{\mathrm{\sigma }}_{j,2}^{*}{'},{\mathrm{\sigma }}_{j,3}^{*}{'},{\mathrm{\sigma }}_{j,4}^{*}{'}) $. A利用该签名进行以下计算. 对于$ i=\mathrm{1,2},… ,{q}_{\mathrm{s}} $,$\exists i\notin \{{n}_{m}- \kappa +1,{n}_{m}-\kappa +2,… ,{n}_{m}\}$,有$ {m}_{j,i}\ne {m}_{i}^{*}{'} $. 令消息${M}^{*}= \{{m}_{0}^{*},{m}_{1}^{*},…, {m}_{{n}_{m}}^{*}\}$,当$ i\in \{\mathrm{1,2},… ,{n}_{m}-\kappa \} $时,$ {m}_{i}^{*}={m}_{i}^{{*}{{'}}} $. A计算${\sigma }_{0}^{*}=\dfrac{{\sigma }_{0}^{*}{'}}{\displaystyle\prod\limits _{i={n}_{m}-\kappa +1}^{{n}_{m}}{{\sigma }_{j,1}}^{{s}_{i}{m}_{i}^{*}{'}}}$,$ {\sigma }_{1}^{*}={\sigma }_{1}^{*}{'} $,$ {\sigma }_{2}^{*}={\sigma }_{2}^{*}{'} $,$ {\sigma }_{3}^{*}={\sigma }_{3}^{*}{'} $,${\sigma }_{4}^{*}= $${\sigma }_{4}^{*}{'} $. A将有效签名$ {\sigma }^{*}=\{{\sigma }_{0}^{*},{\sigma }_{1}^{*},{\sigma }_{2}^{*},{\sigma }_{3}^{*},{\sigma }_{4}^{*}\} $发送给B. 此时$ \forall j\in \{\mathrm{1,2},… ,{q}_{\mathrm{s}}\} $,$ \exists i\in \{{n}_{m}-\kappa +1,{n}_{m}-\kappa +2,… ,{n}_{m}\} $满足$ {m}_{j,i}\ne {m}_{i}^{*}{'} $. 可以发现,如果$ {A}_{1} $伪造的签名能够通过验证,那么$ A $生成的签名也可以通过验证. 因此$ A $赢得前向安全性游戏的优势$ {\varepsilon}_{A} $,满足${\varepsilon}_{A}\ge {\varepsilon}_{{A}_{1}}$,其中${\varepsilon}_{{A}_{1}}$表示$ {A}_{1} $赢得不变性游戏的优势.
由定理1可得,敌手A赢得前向安全游戏的优势是可忽略的. 因此由引理2可知,敌手$ {A}_{1} $赢得不变性游戏的优势也是可忽略的. 证毕.
6. 方案分析
FABSS方案不仅获得细粒度访问控制,缓解了密钥泄露问题,而且具有可净化性,解决了敏感信息泄露问题. 表1给出FABSS方案与文献[21,29,31,33]在匿名性、净化性、前向安全性、透明性以及访问控制方面的优势比较分析. 其中文献[33]给出了支持非单调谓词的高效属性基签名方案,提供签名者的匿名性,同时具有细粒度访问控制,但无法提供前向性和净化性. 文献[21]提出具有前向安全的属性基签名方案,在获得细粒度访问控制的同时缓解了密钥泄露问题,但无法解决敏感信息泄露问题. 文献[29]构造了具有灵活访问结构的属性基可净化签名方案,不仅提供灵活细粒度访问控制,而且还实现了敏感信息隐藏,但无法解决密钥泄露问题. 文献[31]提出可追踪的属性基可净化签名方案,提供净化功能从而实现敏感信息隐藏,同时具有恶意用户追踪功能,避免签名滥用,但无法缓解密钥泄露问题. 本文提出的FABSS方案,不仅具有细粒度访问控制,还具有前向安全性和净化性,而且缓解了密钥泄露问题并保护了敏感数据的隐私.
7. 性能分析
基于Ubuntu 18.4,在Charm0.5框架下实现了FABSS方案. 利用Charm库中的超奇异椭圆曲线(SS512)测试方案. 实验中群$ {G}_{1} $和$ {G}_{2} $的阶为$ p $,$ p $为512 b的大素数. 在此参数的计算机上测试主要密码学操作开销,经过1000次测量取平均值后,得到实验中计算双线配对所需时间为1.45 ms,在群$ {G}_{1} $和$ {G}_{2} $中执行指数运算所需时间分别为1.998 ms和0.2 ms. FABSS与文献[29,31]的通信开销和计算开销比较如表2和表3所示,其中$ {|G}_{1}| $表示群$ {G}_{1} $中元素的大小,$ \left|{\widehat{\omega }}_{\mathrm{a}}\right| $表示签名者属性数量,$ \left|{\widehat{\omega }}_{\mathrm{\tau }}\right| $表示净化者属性数量,$ l $表示时间二叉树层数. 由表2可知,提出的FABSS方案具有固定的签名长度,减少了通信开销. 由表3可知,提出的方案在验证阶段和净化阶段的指数和配对运算与属性数量无关,降低了计算开销. 实验结果如图3~6所示,由图3和图4可知,随着用户属性数量增加,提出的方案在密钥生成和签名阶段比文献[29,31]需要更大的计算开销,但是密钥生成算法一般只执行1次,所以对方案的性能影响不大;由图5和图6可知,提出的方案在净化以及验证阶段所需的计算时间要小于文献[29,31],具有较小的计算开销.
表 2 通信开销比较Table 2. Comparison of Communication Cost方案 密钥 签名 净化签名 FABSS $[|{\widehat{\omega } }_{\mathrm{a} }|+\eta -1+(l+2)|{\widehat{\omega } }_{\mathrm{a} }|]{|G}_{1}|$ 5$ {|G}_{1}| $ 5|$ {G}_{1}| $ 文献[29] $(2+|{\widehat{\omega } }_{\mathrm{a} }|){|G}_{1}|$ $ (2{|{\widehat{\omega }}_{\mathrm{a}}|}^{2}+2){|G}_{1}| $ $ (2{|{\widehat{\omega }}_{\mathrm{a}}|}^{2}+2){|G}_{1}| $ 文献[31] $(2|{\widehat{\omega } }_{\mathrm{a} }|+2){|G}_{1}|+|{{\mathbb{Z}}}_{p}^{*}|$ $ (3|{\widehat{\omega }}_{\mathrm{a}}|+|{\widehat{\omega }}_{\mathrm{\tau }}|+3){|G}_{1}| $ $ (3|{\widehat{\omega }}_{\mathrm{a}}|+|{\widehat{\omega }}_{\mathrm{\tau }}|+3){|G}_{1}| $ 注:$ {|G}_{1}| $表示群$ {G}_{1} $中元素的大小,$ |{\mathbb{Z}}_{p}^{*}| $表示环$ {\mathbb{Z}}_{p}^{*} $中元素的比特大小,$ |{\widehat{\omega }}_{\mathrm{a}}| $表示签名者属性数量,$ |{\widehat{\omega }}_{\mathrm{\tau }}| $表示净化者属性数量,$ l $表示时间二叉树层数,$ \eta = n + d - 1 $,$ n $是常数,$ d $是门限值. 表 3 计算开销比较Table 3. Comparison of Computation Cost方案 密钥生成 签名 验证 净化 FABSS [(4+$ \eta +l $)|$ {\widehat{\omega }}_{\mathrm{a}} $|]E [(3+l)|$ {\widehat{\omega }}_{\mathrm{a}} $|+|$ {\widehat{\omega }}_{\mathrm{\tau }} $|+13+$ {n}_{m} $]E (l+$ {n}_{m} $)E+5P (8+l+$ I+{n}_{m} $)E 文献[29] (|$ {\widehat{\omega }}_{\mathrm{a}} $|+1)E (3|$ {\widehat{\omega }}_{\mathrm{a}} $+$ {n}_{m} $+2)E (3+|$ {\widehat{\omega }}_{\mathrm{a}} $)P+(|$ {\widehat{\omega }}_{\mathrm{a}} $|+$ {n}_{m} $)E $(|{\widehat{\omega } }_{\mathrm{a} }|+I+{n}_{m}$)E 文献[31] (3+3|$ {\widehat{\omega }}_{\mathrm{a}} $|)E (3|$ {\widehat{\omega }}_{\mathrm{a}} $|+2|$ {\widehat{\omega }}_{\mathrm{\tau }} $|+l+4v+6)E (|$ {\widehat{\omega }}_{\mathrm{a}} $|+|$ {\widehat{\omega }}_{\mathrm{\tau }} $|+3)P+lE (|$ {\widehat{\omega }}_{\mathrm{a}} $|+|$ {\widehat{\omega }}_{\mathrm{\tau }} $|+|I|+l+4)E 注:$ {n}_{m} $表示消息长度,$ I $表示可净化范围集合,E表示$ {G}_{1} $中的指数运算,P表示配对运算,$ \left|{\widehat{\omega }}_{\mathrm{a}}\right| $表示签名者属性数量,$ \left|{\widehat{\omega }}_{\mathrm{\tau }}\right| $表示净化者属性数量,$ l $表示时间二叉树层数,$ \eta =n+d-1 $,$ n $是常数,$ d $是门限值. 8. 结束语
本文形式化了前向安全的属性基可净化签名安全模型. 提出了一种前向安全的高效属性基可净化签名方案,不仅缓解了密钥泄露问题,而且还实现了敏感信息隐藏功能. 基于η-DHE困难问题假设,在标准模型下证明了本文方案的安全性. 通过与现有方案的对比分析可知,提出的方案更适用于电子医疗、电子政务等特殊应用场景中.
作者贡献声明:朱留富提出初步方案、实验设计,以及论文初稿撰写和修改;李继国负责论文思路构建、理论指导、方案分析和论文修改;陆阳和张亦辰负责论文方案分析、论文润色和修改.
若长度不同,可采用哈希函数将关键词映射为长度相同. -
表 1 基本元素操作的计算时间
Table 1 Computation Time of Basic Element Operation
操作 计算时间/ms 对运算 6.5083 模幂运算 12.8706 哈希运算 0.0032 -
[1] Boneh D, Crescenzo G D, Ostrovsky R, et al. Public key encryption with keyword search[C] //Proc of the 2nd Int Conf on the Theory and Applications of Cryptographic Techniques. Berlin: Springer, 2004: 506−522
[2] Byun J W, Rhee H S, Park H A, et al. Off-line keyword guessing attacks on recent keyword search schemes over encrypted data[C] //Proc of the 3rd VLDB Int Conf on Secure Data Management. Berlin: Springer, 2006: 75−83
[3] Naor M, Yung M. Public-key cryptosystems provably secure against chosen ciphertext attacks [C] //Proc of the 22nd Annual Symp on Theory of Computing. New York: ACM, 1990: 427−437
[4] Abdalla M, Bellare M, Catalano D, et al. Searchable encryption revisited: Consistency properties, relation to anonymous IBE, and extensions[C] //Proc of the 25th Cryptology Int Conf. Berlin: Springer, 2005: 205−222
[5] Baek J, Safavi-Naini R, Susilo W. Public key encryption with keyword search revisited[C] //Proc of Int Conf on Computational Science and Its Applications. Berlin: Springer, 2008: 1249−1259
[6] Fang Liming, Susilo W, Ge Chunpeng, et al. Public key encryption with keyword search secure against keyword guessing attacks without random oracle[J]. Information Sciences, 2013, 238: 221−241 doi: 10.1016/j.ins.2013.03.008
[7] Xu Peng, Jin Hai, Wu Qianhong, et al. Public-key encryption with fuzzy keyword search: A provably secure scheme under keyword guessing attack[J]. IEEE Transactions on Computers, 2012, 62(11): 2266−2277
[8] Rhee H S, Park J H, Susilo W, et al. Trapdoor security in a searchable public-key encryption scheme with a designated tester[J]. Journal of Systems and Software, 2010, 83(5): 763−771 doi: 10.1016/j.jss.2009.11.726
[9] Huang Qiong, Li Hongbo. An efficient public-key searchable encryption scheme secure against inside keyword guessing attacks[J]. Information Sciences, 2017, 403: 1−14
[10] Qin Baodong, Chen Yu, Huang Qiong, et al. Public-key authenticated encryption with keyword search revisited: Security model and constructions[J]. Information Sciences, 2020, 516: 515−528 doi: 10.1016/j.ins.2019.12.063
[11] Shao Jun, Cao Zhenfu, Liang Xiaohui, et al. Proxy re-encryption with keyword search[J]. Information Sciences, 2010, 180(13): 2576−2587 doi: 10.1016/j.ins.2010.03.026
[12] 郭丽峰,卢波. 有效的带关键词搜索的代理重加密方案[J]. 计算机研究与发展,2014,51(6):1221−1228 Guo Lifeng, Lu Bo. Efficient proxy re-encryption with keyword search scheme[J]. Journal of Computer Research and Development, 2014, 51(6): 1221−1228 (in Chinese)
[13] Fang Liming, Susilo W, Ge Chunpeng, et al. Chosen-ciphertext secure anonymous conditional proxy re-encryption with keyword search[J]. Theoretical Computer Science, 2012, 462: 39−58 doi: 10.1016/j.tcs.2012.08.017
[14] Chen Zhenhua, Li Shundong, Huang Qiong, et al. A restricted proxy re-encryption with keyword search for fine-grained data access control in cloud storage[J]. Concurrency and Computation: Practice and Experience, 2016, 28(10): 2858−2876 doi: 10.1002/cpe.3754
[15] 郑显义,史岗,孟丹. 系统安全隔离技术研究综述[J]. 计算机学报,2017,40(5):1057−1079 Zheng Xianyi, Shi Gang, Meng Dan. A survey on system security isolation technology[J]. Chinese Journal of Computers, 2017, 40(5): 1057−1079 (in Chinese)
[16] 宁振宇,张锋巍,施巍松. 基于边缘计算的可信执行环境研究[J]. 计算机研究与发展,2019,56(7):1441−1453 doi: 10.7544/issn1000-1239.2019.20180522 Ning Zhenyu, Zhang Fengwei, Shi Weisong. A study of using TEE on edge computing[J]. Journal of Computer Research and Development, 2019, 56(7): 1441−1453 (in Chinese) doi: 10.7544/issn1000-1239.2019.20180522
[17] 姜超,李玉峰,曹晨红,等. 基于可信执行环境的物联网边缘流处理安全技术综述[J]. 信息安全学报,2021,6(3):169−186 doi: 10.19363/J.cnki.cn10-1380/tn.2021.05.11 Jiang Chao, Li Yufeng, Cao Chenhong, et al. Survey of security technologies for IoT edge stream process based on trusted execution environment[J]. Journal of Cyber Security, 2021, 6(3): 169−186 (in Chinese) doi: 10.19363/J.cnki.cn10-1380/tn.2021.05.11
[18] Gueron S. Memory encryption for general-purpose processors[J]. IEEE Security & Privacy, 2016, 14(6): 54−62
[19] Yoon H, Moon S, Kim Y, et al. SPEKS: Forward private SGX-based public key encryption with keyword search [J]. Applied Sciences, 2020, 10(21): 7842
[20] Goldwasser S, Micali S, Rivest R L. A digital signature scheme secure against adaptive chosen-message attacks[J]. SIAM Journal on Computing, 1988, 17(2): 281−308 doi: 10.1137/0217017
[21] Faust S, Katz J, Papamanthou C, et al. On the non-malleability of the Fiat-Shamir transform[C] //Proc of the 13th Int Conf on Cryptology in India. Berlin: Springer, 2012: 60−79
[22] Zhang Yupeng, Katz J, Papamanthou C. All your queries are belong to us: The power of file-injection attacks on searchable encryption [C] //Proc of the 25th USENIX Security Symp. Berkeley, CA: USENIX Association, 2016: 707−720
[23] Zeng Ming, Qian Haifeng, Chen Jie, et al. Forward secure public key encryption with keyword search for outsourced cloud storage[J]. IEEE Transactions on Cloud Computing, 2019, 10(1): 426−438
-
期刊类型引用(1)
1. 孔燕燕,江明明,闫一然,葛徽. 格上高效的支持多属性机构属性签名方案. 淮北师范大学学报(自然科学版). 2025(01): 56-61 . 百度学术
其他类型引用(3)