Processing math: 13%
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

可证明安全的基于SGX的公钥认证可搜索加密方案

刘永志, 秦桂云, 刘蓬涛, 胡程瑜, 郭山清

刘永志, 秦桂云, 刘蓬涛, 胡程瑜, 郭山清. 可证明安全的基于SGX的公钥认证可搜索加密方案[J]. 计算机研究与发展, 2023, 60(12): 2709-2724. DOI: 10.7544/issn1000-1239.202220478
引用本文: 刘永志, 秦桂云, 刘蓬涛, 胡程瑜, 郭山清. 可证明安全的基于SGX的公钥认证可搜索加密方案[J]. 计算机研究与发展, 2023, 60(12): 2709-2724. DOI: 10.7544/issn1000-1239.202220478
Liu Yongzhi, Qin Guiyun, Liu Pengtao, Hu Chengyu, Guo Shanqing. Provably Secure Public Key Authenticated Encryption with Keyword Search Based on SGX[J]. Journal of Computer Research and Development, 2023, 60(12): 2709-2724. DOI: 10.7544/issn1000-1239.202220478
Citation: Liu Yongzhi, Qin Guiyun, Liu Pengtao, Hu Chengyu, Guo Shanqing. Provably Secure Public Key Authenticated Encryption with Keyword Search Based on SGX[J]. Journal of Computer Research and Development, 2023, 60(12): 2709-2724. DOI: 10.7544/issn1000-1239.202220478
刘永志, 秦桂云, 刘蓬涛, 胡程瑜, 郭山清. 可证明安全的基于SGX的公钥认证可搜索加密方案[J]. 计算机研究与发展, 2023, 60(12): 2709-2724. CSTR: 32373.14.issn1000-1239.202220478
引用本文: 刘永志, 秦桂云, 刘蓬涛, 胡程瑜, 郭山清. 可证明安全的基于SGX的公钥认证可搜索加密方案[J]. 计算机研究与发展, 2023, 60(12): 2709-2724. CSTR: 32373.14.issn1000-1239.202220478
Liu Yongzhi, Qin Guiyun, Liu Pengtao, Hu Chengyu, Guo Shanqing. Provably Secure Public Key Authenticated Encryption with Keyword Search Based on SGX[J]. Journal of Computer Research and Development, 2023, 60(12): 2709-2724. CSTR: 32373.14.issn1000-1239.202220478
Citation: Liu Yongzhi, Qin Guiyun, Liu Pengtao, Hu Chengyu, Guo Shanqing. Provably Secure Public Key Authenticated Encryption with Keyword Search Based on SGX[J]. Journal of Computer Research and Development, 2023, 60(12): 2709-2724. CSTR: 32373.14.issn1000-1239.202220478

可证明安全的基于SGX的公钥认证可搜索加密方案

基金项目: 山东省自然科学基金项目 (ZR2022LZH013,ZR2020LZH002,ZR2020MF055,ZR2021LZH007);中国科学院网络测评技术重点实验室开放课题 (KFKT2019-002)
详细信息
    作者简介:

    刘永志: 1997年生. 硕士研究生. 主要研究方向为云数据安全、可信执行环境

    秦桂云: 1997年生. 硕士研究生. 主要研究方向为可搜索加密、云数据安全

    刘蓬涛: 1980年生. 硕士,副教授. 主要研究方向为可搜索加密

    胡程瑜: 1981年生. 博士,副教授. 主要研究方向为云数据安全、网络安全

    郭山清: 1976年生. 博士,教授. CCF会员. 主要研究方向为网络安全、软件安全

    通讯作者:

    胡程瑜(hcy@sdu.edu.cn

  • 中图分类号: TP391

Provably Secure Public Key Authenticated Encryption with Keyword Search Based on SGX

Funds: This work was supported by Shandong Provincial Natural Science Foundation (ZR2022LZH013, ZR2020LZH002, ZR2020MF055, ZR2021LZH007) and the Open Project of CAS Key Laboratory of Network Assessment Technology (KFKT2019-002).
More Information
    Author Bio:

    Liu Yongzhi: born in 1997. Master candidate. His main research interests include cloud data security and trusted execution environment

    Qin Guiyun: born in 1997. Master candidate. Her main research interests include searchable encryption and cloud data security

    Liu Pengtao: born in 1980. Master, associate professor. Her main research interest includes searchable encryption

    Hu Chengyu: born in 1981. PhD, associate professor. His main research interests include cloud data security and network security

    Guo Shanqing: born in 1976. PhD, professor. Member of CCF. His main research interests include network security and software security

  • 摘要:

    公钥可搜索加密(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.

  • 社团结构是复杂网络的一个重要特征,即同一个社区内节点之间连接紧密而不同社区间节点之间连接稀疏[1]. 例如,社交网络的社区代表具有相似特征的人群,蛋白质交互网络中社区代表具有相似功能的生物组织模块,万维网中不同的社区代表不同功能的网页. 社区发现是复杂网络分析挖掘中的重要任务之一,对于网络拓扑结构分析、功能分析和行为预测具有重要意义,已在社会学、生物信息学、交通系统等领域得到了广泛应用[2-4]. 例如,在社交网络中,社区发现有助于分析个体的行为模式、信息的传播方式和网络的变化趋势[5];在生物网络中,社区发现有助于分析属于共同功能模块的蛋白质之间的相互作用[6];在交通网络中,社区发现可以通过将城市道路网络划分为多个支线网络来实现对城市交通网络的区域控制,从而缓解城市交通拥堵问题[7].

    针对不同的应用领域,研究者近年来已经开展了广泛研究,并提出了系列社区发现算法,主要包括:基于划分的方法[8]、基于模块度的方法[9-10]、基于谱的方法[11]、基于动力学的方法[12]、基于标签传播的方法[13]等. 已有算法大多适用于单层网络,然而现实世界中由多种类型节点及其连边关系组成的多层网络存在更为普遍[14]. 例如,社交网络中的个体之间可能存在不同类型的社交关系,如好友、关注、评论、转发等;在生物网络中,对于某些生物体来说,完整的蛋白质与蛋白质相互作用涉及数千种蛋白质分子之间多种不同的相互作用模式;在航空运输系统中,通过直飞航班对机场之间的连接建模,不同的商业航空公司可以被视为机场之间的不同连接模式. 与单层网络相比,多层网络结构具有更加丰富的拓扑信息,有助于更为准确地探测网络中蕴含的社区结构. 但是不同网络层蕴含的社区结构之间既存在一定的相关性又存在异质性,为社区发现任务带来了新的挑战.

    近年来,一些学者针对多层网络的社区发现问题已经开展了有益探索,提出了相应的算法[15-16]. 其中,基于聚合的方法由于实现简单、具有良好的可扩展性等优点,得到了广泛关注. 第1类基于聚合的方法为网络聚合,直接将多层网络合并为单层网络,然后利用传统社区发现算法实现社区划分. 该类方法虽然降低了社区发现后续研究的难度,但是在聚合过程中丢失了不同层网络结构的独特性,造成社区结果的不准确. 第2类方法为基于集成学习的方法,首先在每层网络上分别利用传统社区发现算法进行社区划分,然后基于集成学习机制将每层的社区划分融合得到最终的社区结构. 这类方法在不同网络层得到基社区划分后,往往各层社区划分分别进行融合或者不同层的社区划分进行统一融合,忽视了不同层社区之间的异质性;另一方面在融合过程中忽略了不同的基社区结构和社区划分之间的重要性,难以获得准确的社区结构[17].

    针对上述问题,本文提出了一种基于2阶段集成的多层网络社区发现算法,旨在有效融合不同网络层获得的基社区划分之间的信息,提高社区发现结果的准确性和可解释性. 在第1阶段,分别以各层网络生成的基社区划分为主,并结合其他各层网络得到的基社区划分中最优的社区划分结构信息进行局部集成;在第2阶段,首先对得到的局部社区划分及各个社区结构的重要性度量,然后进行全局加权集成得到最终的社区划分结果.

    基于扩展的方法主要指将单层网络的社区发现方法直接扩展到多层网络,通常通过优化社区质量评估函数来实现. 基于模块度函数优化是探测社区结构的经典方法,其核心思想是通过最大化模块度来获得社区划分结果. 例如,Mucha等人[18]将模块度扩展到了多层网络,开发了一种多层网络社区质量函数的广义框架用于检测多层网络的社区结构. 该算法就是通过优化多层模块度扩展了传统的Louvain算法,从而得到一个多层模块度高的社区划分. Ma等人[19]提出了一种用于多层网络社区检测的定量函数——多层模块化密度,解决了模块度的分辨率限制问题,为社区发现算法的设计提供了理论基础,并提出了一种半监督联合非负矩阵分解的多层网络社区发现算法S2-jNMF. 该算法用贪婪搜索方法提取多层网络所有层中连接良好的子图作为先验信息,然后将与多层网络相关的矩阵和先验信息联合分解为一个基矩阵和一个多系数矩阵用于社区发现. LART[20]是一种基于局部自适应随机游走的多层网络社区发现算法,它首先对每一层网络运行不同的随机游走;然后利用每层转移概率获得节点之间的不同度量;最后,采用层次聚类方法生成社区划分,最终在多层模块度的最优值对应的水平上得到社区划分结果. Laishram等人[21]提出了一种新颖的基于采样的多层网络社区发现算法,使用来自探索成本低的层的信息来帮助探索成本高的层的信息. 尽管该类方法通过对单层网络社区发现方法进行直接扩展可以对多层网络进行有效社区发现,但是存在着需要设置的参数较多、时间复杂度较高、易受噪声影响等缺点.

    为了降低社区检测的难度,基于多层网络的聚合结构进行社区发现的相关研究具有实现简单、可扩展性强的特点. 这些研究主要包括基于网络聚合和基于集成学习2类思路.

    基于网络聚合的方法是将一个多层网络压缩成单个网络,然后采用单层网络的社区发现算法对其进行社区检测. 最简单的策略就是对邻接矩阵进行加权,其中2个节点之间的权值为它们在多层网络中相连的层数. Berlingerio等人[22]对简单的加权策略进行了修改并提出了基于共同邻居数的邻接矩阵的加权策略,这种策略不再考虑2个节点之间的直接联系,而是关注它们的邻居,共同邻居数越多则越可能在同一个社区. Zhu等人[23]进一步考虑了每层网络的重要性,将单层网络之间的相关性与单层网络的重要性密切联系起来,若某一单层网络与其他的单层网络之间的相关性更大,则表明其重要性更强. 同时判断2个节点之间是否存在路径来衡量节点相似度,然后利用单层网络重要性和节点相似度构造统一矩阵,最后再用单层网络社区发现算法得到最终的社区划分结果. 基于网络聚合方法在聚合过程中丢失了不同层网络结构的独特性,造成社区结果的不准确.

    基于集成学习的方法首先利用传统算法对多层网络的各个层进行社区发现,然后基于集成学习机制将各层得到的社区划分结果进行融合得到最终的社区划分[17]. Tang等人[24]提出了主模块化最大化方法,首先通过模块化最大化从多层网络的每个层中提取结构特征,然后对这些特征进行跨层次分析,采用PCA技术找到低维嵌入,使从所有层中提取的特征彼此高度相关,最后通过k-means聚类算法找到社区划分. Berlingerio等人[25]提出了一种基于频繁模式挖掘的多层网络的社区发现算法,能够从单层社区成员中提取频繁的封闭项集来提取多层社区. 首先用单层社区发现算法获得每层网络上的社区,然后用频繁封闭项集算法将至少在最少数量的层上属于同一社区的节点分配到同一社区. Tagarelli等人[17]提出了一种新的基于模块化优化的集成的多层社区发现算法,此方法在寻找共识社区结构时,不仅捕获了节点的原型社区成员,而且能够保存多层网络的拓扑信息,在获得共识解的过程中将多层网络的拓扑上界和拓扑下界作为搜索空间,共识函数也是通过基于模块化优化的方法,同时考虑了社区内和社区间的连通性. 这类方法在得到不同层的社区划分后,往往各层社区划分分别进行融合或者不同层的社区划分进行统一融合. 由于每一层网络中节点之间的交互方式以及社区结构的不同,进行简单集成容易忽视不同层社区之间的异质性;而且在融合过程中忽略了不同的基社区结构和社区划分之间的重要性,难以获得准确的社区结果.

    本节首先对基于集成学习的多层网络社区发现问题进行了描述,接着对本文提出的基于2阶段集成的多层网络社区发现算法进行了介绍.

    一个多层网络可以定义为

    GL=(G,A), (1)

    其中G={Gα|α{1,2,,L}}表示L层网络构成的集合, Gα=(Vα,Eα)为多层网络中的第α层,VαV={v1,v2,,vN}Vα表示第α层的节点集,V为多层网络的所有节点的集合,EαVα×Vα表示第α层内节点之间连接的边集;A表示任意2个不同层的节点之间的连接,可以表示为

    A={EαβVα×Vβ|α,β{1,2,,L},αβ}, (2)

    Eα中的元素表示层内顶点间连接,Eαβ表示层间顶点间的连接. 本文主要讨论的对象为所有层共享相同节点集的多层网络,即在给定的多层网络GL=(G,A)中,对于每一层Gα=(Vα,Eα)G都有Vα=V(V={v1,v2,,vN}), 但是每一层内的边集不同,即Gα=(V,Eα). 另外,对于层间连接

    A={EαβVα×Vβ|α,β{1,2,,L},αβ,Vα=Vβ}, (3)

    即所有层的节点是对齐的. 如图1为一个多层网络示意图,由3层网络组成,每层均包括6个节点,每层内的连边表示节点间的一种关系,层间的虚线表示不同层的节点是对齐的.

    图  1  多层网络示例
    Figure  1.  An example of multi-layer network

    给定一个L层的多层网络GL=(G,A),针对每层网络Gα=(V,Eα)分别多次利用传统单层网络社区发现算法得到该层的社区结构为Bα={B1α,B2α,,BMαα},其中BMαα表示第α层网络共生成Mα个基社区划分,则多层网络GL的基社区结构表示为B={B1,,Bα,,BL},多层网络总的社区结构划分方案个数为M=Lα=1Mα. 基于集成的社区发现算法的目的是基于各层网络产生的基社区结构B={B1,,Bα,,BL},通过集成函数获得给定多层网络GL=(G,A)的最终社区划分结果C={C1,C2,,Ck},且ki=1Ci=V,CiCj=,其中k表示最终社区个数.

    本文算法的主要步骤如图2所示,主要包括基社区划分生成、局部集成、全局加权集成3个步骤. 具体地:1)基社区划分生成是指在多层网络的每一层分别多次利用相同的传统单层网络社区发现算法产生一组基社区划分;2)分别基于单层网络生成的基社区划分和其他各层网络得到的基社区划分中最优的社区划分信息对各层进行局部集成得到局部社区划分结果;3)分别对局部集成得到的社区划分及各个社区的重要性进行度量并进行全局加权集成得到最终社区结果.

    图  2  本文算法流程示意图
    Figure  2.  Illustration of our proposed algorithm process

    该步骤的目的是为不同层的网络分别生成多组准确性高、差异性强的基社区划分. 给定一个L层的多层网络GL=(G,A),在每层网络Gα=(V,Eα)分别多次利用传统单层网络社区发现算法获得该层的社区划分Bα={B1α,B2α,,BMαα},其中BMαα表示第α层网络共生成Mα个基社区划分. 为了生成准确性高、多样性强的基社区划分,本文采用经典的LM算法[10]对每层网络分别进行社区发现.

    由于不同层产生的基社区划分之间既存在异质性,又存在一定的相关性. 因此,在局部社区划分集成阶段各层结合其他各层的最优社区结构信息进行集成. 本文中将各个层中最优的社区划分结果加入其他层,以此达到提升局部模型性能的目的. 模块度是社区划分质量优劣的评价指标[26]. 模块度反映了网络社区结构内部连接的强弱,指的是社区内的边占所有边的比例减去在同样的社区结构下随机放置社区内部的边占所有边的比例的期望值,定义为

    Q=12mi,j(Aijkikj2m)δ(i,j), (4)

    其中m表示网络的总边数,{{\boldsymbol{A}}}表示网络的邻接矩阵,{k_i}{k_j}分别代表节点{v_i}{v_j}的度,当节点{v_i}{v_j}属于同一个社区时,\delta (i,j) = 1,否则,\delta (i,j) = 0. 模块度越高,则社区划分质量越高. 针对第 \alpha 层网络获得的基社区划分{B_\alpha } = \{ B_\alpha ^1,B_\alpha ^2,…,B_\alpha ^{{M_\alpha }}\},可以通过计算各个划分下的模块度指标来选出第 \alpha 层中最优的基社区划分. 因此,在进行局部集成时,每一层的基社区划分由该层产生的{M_\alpha }个基社区和其他L - 1层分别选出的最优社区划分组成. 基于基社区划分信息,从局部角度每层分别构造节点之间的共协矩阵{\boldsymbol{A}}_{\alpha }(1\le \alpha \le L),记为

    {A_\alpha }(i,j) = \frac{{{n_{ij}}}}{{{M_\alpha } + L - 1}} , (5)

    其中{n_{ij}}表示在第 \alpha 层中节点{v_i}{v_j}在参与集成的基社区划分中被分配到同一个社区的数量,{M_\alpha } + L - 1是参与集成的社区划分的数量. 基于共协矩阵,利用层次聚类即可得到每层的局部社区划分结果 {P}_{\alpha }(1\le \alpha \le L) ,则多层网络 {\mathcal{G}_L} 的局部社区划分结果记为\mathcal{E} = \{ {P_1},{P_2},…,{P_L}\}.

    在集成过程中,不同社区划分以及社区的优劣均会对最终社区的检测产生不同的影响. 本节通过社区划分和社区质量进行评价来对集成过程进行加权. 局部社区划分结果E中,每层网络的{P_\alpha }的优劣通过该划分方案运用到其他层网络上的模块度来衡量,定义为

    Q({P_\alpha },{G_\beta }) = \frac{1}{{2{m_\beta }}}\displaystyle\sum\limits_{i,j} {\left( {{A^\beta }_{ij} - \frac{{k_i^\beta k_j^\beta }}{{2{m_\beta }}}} \right)} {\delta _\alpha }(i,j) , (6)

    其中{m_\beta }表示第\beta 层网络的总边数,{{{\boldsymbol{A}}}^\beta }表示第\beta 层网络的邻接矩阵,k_i^\beta k_j^\beta 分别代表节点{v_i}{v_j}在第\beta 层网络中的度,当节点{v_i}{v_j}{P_\alpha }属于同一个社区时,{\delta _\alpha }(i,j) = 1,否则,{\delta _\alpha }(i,j) = 0. 如果 Q({P_\alpha },{G_\beta }) 越高,则表示相对于第\beta {P_\alpha }的质量越优. 因此,在全局集成中第\alpha 层获得的{P_\alpha }的权重定义为

    W({P_\alpha }) = \frac{1}{{L - 1}}{{\displaystyle\sum\limits_{\beta = 1,\alpha \ne \beta }^L {Q({P_\alpha },{G_\beta })} }} . (7)

    然后,对\mathcal{E} = \{ {P_1},{P_2},…,{P_L}\}中各层 {P}_{\alpha }(1\le \alpha \le L) 的权重进行归一化,则有

    \overline W ({P_\alpha }) = \frac{{W({P_\alpha })}}{{\displaystyle\sum\limits_{\gamma = 1}^L {W({P_\gamma })} }} . (8)

    信息熵是信息论中用于度量系统不确定性的一种重要度量方法. 如果一个社区结构相对其他划分越稳定,则表明该社区的不确定性越小、可靠性越强,该社区在集成过程中的权重越大.

    局部社区划分结果\mathcal{E} = \{ {P_1},{P_2},…,{P_L}\} 中第\alpha 层的社区划分记为{P_\alpha } = \{ C_1^\alpha ,C_2^\alpha ,…,C_{{n^\alpha }}^\alpha \} ,其中C_i^\alpha 表示{P_\alpha }中的第 i 个社区,{n^\alpha }表示{P_\alpha }中社区的数量. 因此,\mathcal{E}中所有社区可以表示为

    \mathcal{C} = \{ {C_1},{C_2},…,{C_{{n_\mathcal{C}}}}\} , (9)

    其中{C_i}表示第 i 个社区, {n_\mathcal{C}} 表示\mathcal{E}中所有社区的总个数.

    给定一个社区{C_i} \in \mathcal{C}和网络层{G_\alpha }{P_\alpha } \in \mathcal{E},如果社区{C_i}不属于{P_\alpha },那么{C_i}中的节点可能属于{P_\alpha }中的多个社区,{C_i}相对于{P_\alpha }的不确定性可以通过考虑{C_i}中的对象在{P_\alpha }中各个社区中的分布来进行计算. 那么,社区{C_i}关于第\alpha 层网络{G_\alpha }{P_\alpha }的不确定性可表示为

    {H^\alpha }({C_i}) = - \sum\limits_{j = 1}^{{n^\alpha }} {p({C_i},C_j^\alpha )} { {\rm{lb}} }\;p({C_i},C_j^\alpha ) , (10)

    其中

    p({C_i},C_j^\alpha ) = \frac{{\left| {{C_i} \cap C_j^\alpha } \right|}}{{\left| {{C_i}} \right|}} , (11)

    其中{n^\alpha }表示社区划分{P_\alpha }中的社区数量,C_j^\alpha 表示{P_\alpha }中的第j个社区,\left| {{C_i} \cap C_j^\alpha } \right|表示2个社区中共有节点的个数,\left| {{C_i}} \right|表示{C_i}中节点的个数. p({C_i},C_j^\alpha ) \in \left[ {0,1} \right] ,所以 {H^\alpha }({C_i}) \in \left[ {0, + \infty } \right) .

    因此,{C_i}关于多层网络 {\mathcal{G}_L} 的局部社区划分\mathcal{E}的不确定性可以通过{C_i}关于\mathcal{E}中每层网络的社区划分结构的不确定性的和来表示,即

    {H^\mathcal{E}}({C_i}) = \sum\limits_{\alpha = 1}^L {{H^\alpha }({C_i})} . (12)

    基于信息熵来衡量每个社区关于局部社区划分\mathcal{E}的不确定性,那么进一步可通过归一化来衡量E中每个社区的权重,即

    W({C_i}) = \frac{{{{{\rm{e}}} ^{ - {H^\mathcal{E}}({C_i})}}}}{{\displaystyle\sum\limits_{j = 1}^{{n_\mathcal{C}}} {{{{\rm{e}}} ^{ - {H^\mathcal{E}}({C_j})}}} }} . (13)

    由于 {H^\mathcal{E}}({C_i}) \in \left[ {0, + \infty } \right) ,所以W({C_i}) \in \left[ {0,1} \right],即一个社区的不确定越小,则该社区的可靠性就越高,在集成过程中的权重越大.

    基于式(8)(13)给出的社区划分以及社区的权重,从全局角度构造节点之间的加权共协矩阵,表示为

    {{\boldsymbol{D}}} = {({\tilde a_{ij}})_{N \times N}} , (14)

    其中

    {\tilde a_{ij}} = \frac{1}{L} \times \sum\limits_{\alpha = 1}^L {\overline W({P_\alpha })} \times w_i^\alpha \times \delta _{ij}^\alpha , (15)
    w_i^\alpha = W(Cl{s^\alpha }({v_i})) , (16)
    \delta _{ij}^\alpha = \left\{ {\begin{array}{*{20}{l}} {1,{\text{ if }}Cl{s^\alpha }({v_i}) = Cl{s^\alpha }({v_j}),} \\ {0,{\text{ 其他}},} \end{array}} \right. (17)

    其中Cl{s^\alpha }({v_i})表示节点{v_i}{P_\alpha }中所属社区的标签.

    基于加权共协矩阵,通过层次聚类获得多层网络 {\mathcal{G}_L} 的最终社区划分结果{C^*} = \{ {C_1},{C_2},…,{C_k}\}.

    基于以上对各阶段集成过程的描述,本文提出的基于2阶段集成的多层网络社区发现算法描述如算法1.

    算法1. 基于2阶段集成的多层网络社区发现算法.

    输入:多层网络 {\mathcal{G}_L} = (G,\mathcal{A}) ,社区划分个数 k ,各层网络社区基划分次数 M

    输出:多层网络 {\mathcal{G}_L} 的最终社区划分结果{C^*} = \{{C_1},{C_2},…,{C_k}\}.

    ① 在每层网络上利用传统的LM社区发现算法 获得基社区划分结果,记为B = \{ {B_1}, {B_2},…,{B_L}\}

    ② for {B_\alpha } \in B

    ③ B_\alpha ^b{B_\alpha };/*根据式(4)计算得到各层最好的社 区划分*/

    ④ \{ {B_1},…,{B_{\alpha - 1}},{B_{\alpha + 1}},…,{B_L}\}B_\alpha ^b; /*将B_\alpha ^b添加到 B中除{B_\alpha }外的其他集合中*/

    ⑤ end for

    ⑥ for {G_\alpha } \in G

    ⑦ {{\boldsymbol{A}}_\alpha }{B_\alpha }; /*根据式(5)计算共协矩阵*/

    ⑧ {P_\alpha }{{\boldsymbol{A}}_\alpha };/*利用层次聚类获得局部社区划分*/

    ⑨ end for

    ⑩ for {P_\alpha } \in \mathcal{E}

    ⑪ W({P_\alpha }){P_\alpha };/*根据式(7)计算局部社区划分 的权重*/

    ⑫ end for

    \overline W({P_\alpha })W({P_\alpha });/*根据式(8)对权重进行归一化 */

    ⑭ for {C_i} \in \mathcal{E}

    ⑮  {H^\mathcal{E}}({C_i}) {C_i};/*根据式(12)计算社区不确定性*/

    ⑯ end for

    W({C_i}) {H^\mathcal{E}}({C_i}) ;/*根据式(13)计算各个社区权 重*/

    ⑱ 根据式(14)构造加权共协矩阵,并利用层次 聚类得到最终社区结构{C^*} = \{ {C_1},{C_2},…,{C_k}\}.

    本文提出的基于2阶段集成的多层网络社区发现算法主要包括3个步骤:1)基社区划分生成;2)局部集成;3)全局加权集成.

    在步骤1中采用LM算法[10],假设一个单层网络的边的数量为e,则其时间复杂度为O(e),所以步骤1的时间复杂度为O(LMe). 步骤2中主要包括构造共协矩阵,因为{B_\alpha }中的社区划分数量为{M_\alpha } + L - 1,因此其时间复杂度为O(({M_\alpha } + L - 1){N^2});此外,利用层次聚类算法获得局部社区划分结果的时间复杂度为O({N^2}),所以步骤2的时间复杂度为O(L({M_\alpha } + L - 1){N^2} + L{N^2}). 步骤3通过信息熵来计算各个社区的稳定性,假设步骤2得到的总社区数量为 {n_\mathcal{C}} ,则计算社区不稳定性的时间复杂度为O({n_\mathcal{C}}),基于共协矩阵利用层次聚类计算最终社区划分结果的时间复杂度为O({N^2}),所以步骤3的时间复杂度为O({n_\mathcal{C}}{\text{ + }}{N^2}). 因此,算法的总时间复杂度为O(LMe + L({M_\alpha } + L - 1){N^2} + L{N^2} + {n_\mathcal{C}} + {N^2}). 由于LM{n_\mathcal{C}}均小于节点个数N,所以算法的总时间复杂度为O({N^2}).

    为了验证本文算法的有效性,与已有的多层网络社区发现算法在人工合成多层网络和12个真实多层网络数据集上进行了实验比较分析.

    为了生成人工合成多层网络数据,本文采用了Bazzi等人[27]提出的算法. 算法参数设置为:网络的层数 L = 3,5,7,每层网络的规模N = 1000或 N = 5000,社区个数分别为10和50,其中每个节点都出现在每一层中,即在这些网络中分别总共有3000,5000,7000,15000,25000,35000个节点,节点的度设置为其算法默认值,即最小度为3,最大度为150. 混合参数\mu \in [0,1]\mu 的值越接近1,生成网络的随机性越强. 参数 \tilde p \in [0,1] 表示层间相关系数,当 \tilde p = 0 时,表示产生的多层网络各层之间社区划分是相互独立;当 \tilde p = 1 时,所产生的多层网络各层之间的社区划分是相同的. 由于本文算法为通过集成策略产生统一的社区划分,因此选择参数 \tilde p = 1 .

    实验中采用的真实多层网络数据集的基本情况如表1所示. 所有真实网络数据的社区划分未知.

    表  1  真实多层网络
    Table  1.  Real Multilayer Networks
    数据集层数顶点数边数
    AUCS561620
    EUAir374503588
    Pierreauger165147153
    CKM32461551
    Kapferer4391018
    Gallus6313388
    Herpes44216259
    Hiv1510051355
    Plasmodium310232521
    Xenpous5461620
    Bos4321325
    Candida7367397
    下载: 导出CSV 
    | 显示表格

    AUCS数据集描述某大学研究部门的61名员工节点(包括教授、博士后、博士生和行政人员)之间的Facebook关系、午餐关系、合作关系、休闲关系和工作关系[28]. EUAir数据集是欧洲航空交通网络,每层网络对应在欧洲运营的不同航空公司[29]. Pierreauger数据集表示天文台科学家之间的协作关系,每一层代表一种协作任务[30]. CKM数据集由美国4个城镇的246名医生组成,主要讨论网络关系对医生用药决策的影响,包括通常找谁获取用药建议、经常与谁讨论和与谁关系最好3层网络[30]. Kapferer网络中节点为裁缝店的工人,关系为他们之间的工作和友谊互动[31].

    另外,在包含相互作用数据集的生物通用存储库中选取了Gallus[32],Herpes4[33], Hiv1[33], Plasmodium[32], Xenopus[33], Bos[32],Candida[32]共7个多层网络数据集. 这些网络代表蛋白质之间的相互作用,不同的层对应于不同性质的相互作用,即直接作用、物理关联、共定位、关联、抑制、增强和合成遗传相互作用. 每种生物体所对应的层数为3~7不等.

    当数据集的真实社区结果未知时,采用Mucha等人[18]提出的多层网络模块度{Q_{\text{M}}}来评价多层网络的社区质量,定义为

    {Q_{\text{M}}} = \frac{1}{{2\mu }}\sum\limits_{i,j,\alpha, \beta } {\left\{ {\left( {{A_{ij\alpha }} - \gamma \frac{{{k_{i\alpha }}{k_{j\alpha }}}}{{2{m_\alpha }}}} \right){\delta _{\alpha \beta }} + {\delta _{ij}}{C_{j\alpha \beta }}} \right\}} \delta \left( {{g_{i\alpha }},{g_{j\beta }}} \right) , (18)

    其中\mu 表示多层网络中的连接的数量,分辨率\gamma 以控制每层网络的社区规模和数量. {A_{ij\alpha }}表示网络第\alpha 层的邻接矩阵节点{v_i}和节点{v_j}之间的连接关系,{\delta _{\alpha \beta }}在第\alpha 层和第\beta 层为同一层时为1,否则为0; {\delta _{ij}} 在节点{v_i}和节点{v_j}为同层节点时为1,否则为0. {C_{j\alpha \beta }}表示\alpha 层和\beta 层之间与节点{v_j}的层间连边数,{k_{i\alpha }} = \displaystyle\sum\limits_{i,j} {{A_{ij\alpha }}}表示节点{v_i}\alpha 层上的度,{m_\alpha } = \displaystyle\sum\limits_i {{k_{i\alpha }}}表示\alpha 层的总边数. 如果节点{v_i}和节点{v_j}的社区分布相同,则\delta ({g_{i\alpha }},{g_{j\beta }}) = 1,否则为0.

    对于有真实社区划分的数据集,利用标准化互信息(NMI[34]来评价社区划分结果的质量,NMI定义为

    NMI(X,Y) = \frac{{ - 2\displaystyle\sum\limits_{i = 1}^{{c_X}} {\displaystyle\sum\limits_{j = 1}^{{c_Y}} {{N_{ij}}{{\rm{lb}}}\frac{{{N_{ij}}\tilde N}}{{{N_i}{N_j}}}} } }}{{\displaystyle\sum\limits_{i = 1}^{{c_X}} {{N_i}{{\rm{lb}}}\frac{{{N_i}}}{N} + \displaystyle\sum\limits_{j = 1}^{{c_Y}} {{N_j}{{\rm{lb}}}\frac{{{N_j}}}{N}} } }} , (19)

    其中XY分别表示数据集的真实社区划分结果和算法得到的社区划分结果,{c_X}{c_Y}分别表示XY中的社区数量, \tilde{\boldsymbol{N}} 是一个混淆矩阵,其元素{N_{ij}}表示在X的社区iY的社区j中共同出现的节点数量,{N_i}表示\tilde{\boldsymbol{N}}的第i行的元素的和,{N_j}表示\tilde{\boldsymbol{N}}的第j列的元素的和, N 表示节点数量. NMI(X,Y) 的范围为[0,1],如果XY完全相同,则 NMI(X,Y) =1;如果XY完全不同,则 NMI(X,Y) = 0 .

    本文算法与已有多层网络社区发现基线方法进行了比较,代表性方法包括PMM[24],SCML[35],PM[36],CoReg[37],AWP[38],EVM[39].

    根据已有文献实验分析中的建议,对基线方法的参数进行了设置. 其中,本文方法与基线方法PMM,SCML,PM,CoReg,AWP共同的参数为社区个数k,为了比较的公平性,对于社区已知的人造网络个数k均设置为真实的社区个数,对于社区未知的真实网络将社区个数k设置为k \in [2,{\sqrt {N}} ],其中 N 表示节点个数,各个算法分别在不同的k值下运行,并从结果中选取最优值进行比较. PMM算法中结构特征的数量可以是1~( N - 2) N 为节点总数)之间的任意数字,根据建议,对于人工多层网络和真实多层网络均设置了2个值,人工多层网络比较低的常数为50,真实多层网络比较低的常数为10,用PMMl来表示;另一个是根据节点总数来设定的值,2类数据集上都设置为N /2,用PMMh来表示,k-means算法执行的次数设置为10. SCML算法中正则化参数\lambda = 0.5;PM算法中参数p = - 10;CoReg算法正则化参数\lambda = 0.01;EVM算法正则化参数\gamma = 0.5. 本文算法中各层网络生成的基社区划分个数M = 10.

    在不同的参数下生成了60个不同的人工合成网络,针对各个网络,对比算法均在不同参数设置下运行10次,然后取结果的平均值进行比较. 各个算法在不同人工网络的NMI值随网络参数 \mu 的变化如图3所示. 随着 \mu 的逐渐增大,不同算法的性能均出现了下降趋势. 这是因为随着 \mu 的增大网络的随机性变强,网络蕴含的社区结构复杂导致社区发现算法识别正确社区的难度加大. 当多层网络的节点数量 N= 1000时,PMMh产生了较差的结果,且在所有网络中,PMMl和PMMh产生的结果有着较大的差异,说明不同的结构特征数量对PMM产生了较大的影响,而其取值为1~( N -2 ) ,特别对于规模较大的网络,选取合适的结构特征数量并不容易. 其他算法的结果都随着 \mu 的变化出现了较大的波动,从图3可以看出本文算法在大部分情况下优于其他算法. 当多层网络的节点数量N= 5000时,基本上所有算法的结果随着 \mu 的增大而减小. 例如,PM算法的结果在L= 3,5,7的情况下分别在 \mu = 0.4,0.5,0.6的时候明显下降,PMM算法对于不同的提取的结构特征数量值,结果产生了较大的差异;AWP算法的结果在3种不同层数的网络中 \mu <0.7时均表现较好,但在 \mu = 0.7出现了明显下降; SCML算法表现较好,这是因为SCML算法通过将包含在单个图层中的信息转换为Grassmann流形上的子空间并利用Grassmann流形上的距离分析找到一个具有代表性的子空间,最后在这个代表子空间上进行聚类. 但是,SCML的聚类结果容易受到与代表性子空间距离更近的单个图层子空间上聚类结果的影响,当所有单个图层都包含丰富的信息时,SCML将产生更好的结果,若与代表性子空间距离更近的单个图层上的聚类质量较差时也会导致SCML产生较差的结果. 下面我们选取L= 3, N= 5000, \mu = 0.5和L= 3, N= 1000, \mu = 0.6这2种不同情况的人工网络来说明SCML算法为何在N= 5000时取得较好的结果. 如表2所示,在L= 3, N= 5000, \mu = 0.5上代表性子空间与第2层的子空间距离最近,且从表2中SCML算法在单层网络上得到的结果和NMI值,可以看出各层网络均包含较为丰富的信息,所以SCML得到了更好的结果. 如表3所示,在L= 3, N= 1000, \mu = 0.6上代表性子空间与第2层的子空间距离最近,与表2不同的是该网络的第2层得到了低质量的聚类结果,SCML产生了较差的结果. 说明当多层网络的各层网络中都包含较为丰富的信息时,SCML产生更好的结果,而当各层网络中存在信息较少且该层网络的子空间与SCML计算所得的代表性子空间距离即使较近时,SCML也会忽略信息较多的层,从而导致最终产生较差的结果. 基于以上2个人工网络对本文提出的方法进行分析,在L = 3, N = 5000, \mu = 0.5上,本文算法的NMI分别为0.8021,0.8131,0.802 3. 可以看出,该网络中各层都包含了较为丰富的信息,通过式(14)进行全局加权集成后,得到的NMI = 0.8501;在L = 3, N = 1000, \mu = 0.6上,本文算法的NMI分别为0.5440,0.2247,0.024 7. 可以看出该网络中各层之间的差异性较大.

    图  3  不同算法在合成网络上的NMI比较结果
    Figure  3.  Comparison results of NMI on synthetic networks
    表  2  SCML在L=3, N =5000, μ=0.5网络上的结果分析
    Table  2.  Result Analysis of SCML on Network with L=3, N=5000, μ=0.5
    网络代表性子空间与各层子空间的距离NMI
    {G_1}0.43160.6944
    {G_2}0.40720.7033
    {G_3}4.28990.6947
    {\mathcal{G}_3} 0.9760
    下载: 导出CSV 
    | 显示表格
    表  3  SCML在L=3, N=1000, μ=0.6网络上的结果分析
    Table  3.  Result Analysis of SCML on Network with L=3, N=1000, μ=0.6
    网络代表性子空间与各层子空间的距离NMI
    {G_1}2.46020.4528
    {G_2}2.09460.192
    {G_3}2.55520.0192
    {\mathcal{G}_3} 0.2996
    下载: 导出CSV 
    | 显示表格

    通过式(14)进行全局加权集成后,得到的最终结果的NMI=0.548 9. 通过对比表2表3与本文算法得到的NMI值可以看出L=3,N=5000, \mu =0.5中各层网络包含信息较为平均,而L=3,N=1000, \mu =0.6中各层网络包含信息的差异较大,所以当N=5000时,由于单层网络之间差异较小,且随着 \mu 的增大,各层网络社区结构难以识别,导致各层网络上得到的基社区划分较差,从而导致经过集成产生的社区质量也较低;当 \mu < 0.7 时,本文算法在3种不同层数的网络上的实验结果变化较小,说明本文算法的鲁棒性较强. CoReg和EVM同样在N=5000,即单层网络差异较小的人工网络上表现出了良好的性能,而在单层网络差异较大的人工网络上表现较差.

    不同算法在真实网络的实验结果如表4所示,其中每个算法在不同参数设置下均运行10次,从不同社区个数得到的结果中选取最优模块度值进行比较. 对不同算法在每个数据集上社区发现结果的最优结果和次优结果进行加粗标注. 从表4可以看出,本文算法在除AUCS之外的11个数据集上都取得了最优结果或次优的结果,其中在EUAir ,Gallus,Herpes4,Hiv1,Plasmodium,Xenopus,Bos共7个数据集上本文算法的结果明显优于次优的结果. 总之,本文算法在真实数据集上表现出了较为良好的性能.

    表  4  真实网络实验结果的QM比较
    Table  4.  Comparison of Experimental Results on Real Networks in Terms of QM
    数据集PMMhPMMlSCMLPMCoRegAWPEVM本文算法
    AUCS0.26680.29220.31930.31030.31740.30950.30790.3143
    EUAir0.12140.12720.17760.24030.16810.22090.16460.2439
    Pierreauger0.08970.12200.12240.12570.13140.10560.11830.1278
    CKM0.29640.35080.41910.32740.32690.28090.33160.4067
    Kapferer0.20130.22120.21460.24170.21960.20080.18170.2236
    Gallus0.11170.15800.17720.24880.30260.23790.24880.3059
    Herpes40.12540.21570.09380.22360.33930.25220.11710.3572
    Hiv10.08130.21740.22950.25100.21700.17150.16230.2825
    Plasmodium0.07030.14840.24880.24950.22930.16630.11020.2516
    Xenopus0.16420.21790.21120.25590.28520.28740.25440.3136
    Bos0.12830.19790.14780.24930.35960.32240.33620.4173
    Candida0.01930.11300.18670.26430.34840.27580.21110.3135
    注:加粗数字表示最优和次优结果.
    下载: 导出CSV 
    | 显示表格

    为了验证本文算法的有效性受基社区划分数M变化的影响,对采用\mu = 0.3 时不同规模的6个人工多层网络和部分层数较少的真实多层网络进行了鲁棒性测试. 其中,M \in \{ 10,20,30,40,50\} ,对于不同的M值,取本文算法在每个网络上执行10次的结果的平均值进行比较,实验结果如图4图5所示.

    图  4  本文算法的NMI随基社区划分数M的变化
    Figure  4.  NMI of the proposed algorithm changes with varying ensemble number M
    图  5  本文算法的QM随基社区划分数M的变化
    Figure  5.  {Q_{\text{M}}} of the proposed algorithm changes with varying ensemble number M

    在人工多层网络数据集中,采用NMI指标对社区划分结果进行评价,统计在不同MNMI的变化情况. 由图4可知,当L=7,N=1000,\mu = 0.3 时本文算法的NMI值出现了最大的波动(0.013),其次当L=7,N=5000,\mu = 0.3NMI值为0.01,在其他人工网络数据集上NMI值的波动范围均在0.01以内. 在真实多层网络数据集中,通过多层模块度指标QM对各个结果的变化范围进行分析. 在Plas数据集上,本文算法的结果在不同的M值下QM值的波动为0.015,在CKM和Candida数据上的QM值的波动范围均为0.011,而在其他数据集上不同的M值下QM值变化范围均小于0.01. 结果表明,本文算法的性能受基各层社区划分个数M的影响较小,具有良好的鲁棒性.

    近年来,有效融合多层网络信息并对其进行社区发现成为了一个重要的研究内容. 为此,本文提出了一种基于2阶段集成的多层网络社区发现算法. 首先,第1阶段在各层进行局部集成时结合了其他层的最优社区划分信息,有效利用了不同网络层社区结构的相关性;其次,第2阶段中基于其他网络层的社区结构信息对各层融合得到的社区划分及社区结构的重要性进行评价加权,再进行全局加权集成,综合考虑了各层局部社区划分结果对集成的影响;最后,通过在人工生成多层网络和真实多层网络上进行实验分析,对本文算法的有效性和鲁棒性进行了验证. 然而,本文提出的算法面临时间复杂度较高的问题,在未来的工作中将考虑如何提高算法的计算效率来应对大规模多层网络社区发现面临的挑战.

    作者贡献声明:赵兴旺提出论文算法思想、设计实验方案并修订论文;张珧溥完成实验并撰写论文;梁吉业提出算法的指导意见和审核论文.

    若长度不同,可采用哈希函数将关键词映射为长度相同.
  • 图  1   PEKS系统框架

    Figure  1.   PEKS system framework

    图  2   PAEKS-SGX架构

    Figure  2.   The architecture of PAEKS-SGX

    图  3   不同方案耗时对比

    Figure  3.   Comparison of time costs in different schemes

    图  4   不同方案生成PEKS/PAEKS耗时对比

    Figure  4.   Comparison of time cost of PEKS/PAEKS generation in different schemes

    图  5   不同方案生成Trapdoor耗时对比

    Figure  5.   Comparison of time cost of Trapdoor generation in different schemes

    图  6   不同方案生成Test耗时对比

    Figure  6.   Comparison of time cost of Test generation in different schemes

    图  7   PEKS-SGX密文共享

    Figure  7.   Share of PAEKS-SGX ciphertext

    表  1   基本元素操作的计算时间

    Table  1   Computation Time of Basic Element Operation

    操作计算时间/ms
    对运算6.5083
    模幂运算12.8706
    哈希运算0.0032
    下载: 导出CSV

    表  2   通信量比较

    Table  2   Communication Overhead Comparison

    方案PEKS/PAEKS大小/BTrapdoor大小/B
    文献[1]160128
    文献[9]256128
    文献[10]160128
    PAEKS-SGX416416
    下载: 导出CSV
  • [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. 赵兴旺,张超,梁吉业. 融入模体信息的多层网络社区发现算法. 南京大学学报(自然科学). 2024(06): 954-969 . 百度学术

    其他类型引用(3)

图(7)  /  表(2)
计量
  • 文章访问数:  287
  • HTML全文浏览量:  82
  • PDF下载量:  146
  • 被引次数: 4
出版历程
  • 收稿日期:  2022-06-09
  • 修回日期:  2023-01-15
  • 网络出版日期:  2023-09-19
  • 刊出日期:  2023-11-30

目录

/

返回文章
返回