软件学报  2019, Vol. 30 Issue (12): 3815-3828   PDF    
云加密数据安全重复删除方法
张曙光1,2,3 , 咸鹤群1,2 , 王利明3 , 刘红燕1     
1. 青岛大学 计算机科学技术学院, 山东 青岛 266071;
2. 广西密码学与信息安全重点实验室(桂林电子科技大学), 广西 桂林 541004;
3. 中国科学院 信息工程研究所 第五研究室, 北京 100093
摘要: 在云环境存储模式中,采用用户端数据加密虽然能够有效降低数据的存储安全风险,但同时会使云服务商丧失重复数据鉴别能力,导致存储开销随数据量增大而不断攀升.加密数据重复删除技术是解决该问题的方法之一,现有方案通常基于可信第三方设计,安全性假设过强,执行效率较低.基于椭圆曲线与密文策略属性加密两种高安全密码学原语,构造了重复加密数据识别与离线密钥共享两种安全算法,进而实现一种无需初始数据上传用户与可信第三方实时在线的加密数据重复删除方法.详细的安全性与仿真实验分析,证明该方法不仅实现数据的语义安全,同时能够保证系统的高效率运行.
关键词: 加密数据重复删除    椭圆曲线    密文策略属性加密    数据流行度    
Secure Cloud Encrypted Data Deduplication Method
ZHANG Shu-Guang1,2,3 , XIAN He-Qun1,2 , WANG Li-Ming3 , LIU Hong-Yan1     
1. College of Computer Science and Technology, Qingdao University, Qingdao 266071, China;
2. Guangxi Key Laboratory of Cryptography and Information Security(Guilin University of Electronic Technology), Guilin 541004, China;
3. The Fifth Research Laboratory, Institute of Information Engineering, Chinese Academy of Sciences, Beijing 100093, China
Abstract: Deduplication states that only one copy of the same data is stored in the cloud server. In order to protect data privacy, users usually encrypt their data before uploading them. When encrypted with different keys, the same data may have different ciphertext results. It is difficult for the cloud server to identify and eliminate the duplicate copies. Most current solutions to the problem rely heavily on online trusted third parties, resulting in unsatisfying efficiency and security. A secure cloud encrypted data deduplication scheme is proposed, which supports offline key deliver. By constructing a duplicate check tag, it can be verified whether encrypted data originate from the same plaintext data. The ciphertext policy attribute based encryption is used to ensure the check tag is securely generated. The initial uploader of some specific data is able to deliver the encryption key to the subsequent uploaders via the cloud server in an offline manner. Deduplication can be completed without online participation of any trusted third party. Security analysis and proving are presented. The feasibility and efficiency of the scheme are verified via simulation experiments.
Key words: encryption data deduplication    elliptic curve    ciphertext policy attribute based encryption (cp-abe)    data popularity    

随着大数据时代的到来, 作为基础设施的云存储服务变得愈加重要.在云服务持续高速度发展的背景下, 服务提供商不再局限于一味地堆积硬件, 而是逐步通过尽可能提高存储效率的方式, 达到“无形”增加存储空间并换取经济效益的目的.目前, 提高存储效率的技术主要包括数据压缩和重复数据删除.数据压缩技术虽然能够通过对整体数据重新编码, 实现存储空间的更少占用, 但由于压缩后的数据需要在解码后才可正常使用, 这无疑增加了系统的计算负担.重复数据删除技术的思想是通过摒除数据的重复存储, 进而减少存储冗余[1, 2].生而逢时, 在如火如荼发展的云计算和大数据应用场景中, 同一数据副本时常被不同用户重复存储, 造成巨量存储空间浪费, 重复数据删除技术恰成为解决该问题的最佳方法.经最新研究表明:重复数据删除技术可以在备份应用系统中减少高达90%的存储需求, 在标准文件系统中使存储需求降低约70%[3].

良好的云存储系统应能够为用户提供安全的数据存储环境, 然而在实际应用中, 云服务提供商并非完全可信.例如, Facebook在2013年泄露了用户的联系信息[4], iCloud在2014年泄露了用户的私密照片[5].数据加密是解决此类风险的良好选择, 然而由于数据的加密密钥由用户在本地独立生成, 密钥的多样性导致相同数据副本被加密为不同密文, 使得云服务提供商无法识别数据是否重复, 造成大量存储冗余.如何对加密后的数据执行重复安全删除, 是云存储安全领域的研究热点之一.

起初, 研究者提出由云服务商提供唯一密钥并执行加密操作, 如此, 数据控制权依然驻留在云服务商中, 虽然能够抵抗外部敌手攻击, 但无法防止数据由服务商内部泄露.Douceur等研究者提出客户端收敛加密(convergent encryption, 简称CE)方法[6].计算数据副本的哈希值并将其作为加密密钥, 此时输入同一数据副本即可得到相同数据密文[7, 8].收敛加密虽拥有较高的执行效率, 却未实现语义安全, 容易遭受离线暴力破解攻击[9, 10]. Bellare等研究者提出信息锁加密方案(message-locked encryption, 简称MLE)[11], 虽复杂化了密钥计算与加密方式, 但与CE相比, 其核心思想无变化, 因此同样无法实现语义安全[12, 13].Bellare等研究者提出了DupLESS[14], 相同数据的不同属主与可信第三方运行茫然伪随机函数计算协议(oblivious pseudorandom function, 简称OPF), 用以输出相同加密密钥.Duan等研究者对DupLESS进行扩展与改进, 对可信第三方的任务进行分解, 将密钥生成过程的参与方扩展为多个用户[15].文献[14, 15]中的方案无法抵抗云服务器在线穷举攻击.Puzio等研究者提出首个基于双层加密的重复加密数据删除方案ClouDedup[7], 内层是高效的收敛加密, 外层加密与解密工作外包给可信第三方.除了安全性的提高, 双层加密带来的还有高额的计算开销与通信开销.与文献[14, 15]相似, ClouDedup无法防止云服务商与第三方的合谋攻击.Stanek等人提出:用户在上传数据之前需要确定数据的类型, 若数据属主数量低于预定义流行度阈值, 则该数据副本将被定义为非流行数据; 反之, 则将其标记为流行数据[17].非流行数据采用双层加密.随着数据副本数量不断增加, 当等于阈值后, 云服务商便进行外层解密, 进而借助内层收敛加密的特性, 执行重复数据删除.同时, 为了抵抗敌手进行女巫攻击[16, 18], 引入身份服务器.与文献[7]中的方案类似, 多方服务器的引入带来高额的计算与通信开销.Puzio等研究者基于完美哈希函数(PHF)设计了数据流行度查询算法, 依赖第三方的协助, 查询数据副本流行度, 并根据查询结果执行相应的加密算法[19].该方案无法解决非流行加密数据重复删除的问题[3], 且与文献[14, 15, 17]类似, 可信第三方实体必须实时在线参与, 然而在实际应用中, 部署完全可信的第三方比较困难.Liu等研究者设计首个无可信第三方参与的加密数据重复删除方案, 使用口令认证密钥交换协议(password authenticated key exchange, 简称PAKE)传递密钥, 相同数据副本属主能够计算得到同一加密密钥[9].方案的不足点在于, 参与方必须实时在线, 导致系统的可行性与实用性较低.

本文贡献:

本文在划分数据类型的基础上, 提出一种无需初始数据上传用户与可信第三方实时在线的加密数据重复删除方案.

1) 基于椭圆曲线构造流行度查询标签, 在语义安全的前提下, 使用该标签验证加密副本是否产生于同一明文, 并判断其流行度.借助密文策略属性加密, 保证查询标签生成协议的安全实现;

2) 设计安全的密钥共享协议, 确保同一数据副本的初始属主能够借助云服务商, 将加密密钥安全离线共享至后继属主, 实现非流行数据重复删除.构造新的流行数据加密算法, 增强流行数据的存储安全;

3) 总结常见的敌手模型, 通过安全分析证明本方案可抵御敌手模型中的恶意攻击.

1 系统设计与敌手模型 1.1 系统模型

图 1所示, 本系统共包含3类实体:密钥生成中心(KDC)、用户群(users)与云服务器(CSP).系统建立初期, KDC为用户生成密钥对集合, 并将随机值密文参数集合部署在云服务器, 然后转入离线状态.云服务器为用户提供数据的在线存储与共享服务, 且具有删除重复加密数据的功能.

Fig. 1 System model 图 1 系统模型

1.2 设计目标

本方案需要满足以下性质.

1)   有效性

a)   云服务器能够识别重复的加密数据, 并判断数据类型(非流行数据或流行数据), 根据数据类型采取相应加密算法;

b)   数据初始上传者能够将加密密钥通过云服务器, 以离线的方式传递给后继上传者;

c)   云服务器能够执行加密数据重复删除.

2)   安全性

a)   使用椭圆曲线生成的查询标签识别数据冗余度与流行度, 识别过程不泄漏数据的任何明文信息;

b)   初始上传者将加密密钥以密文形式存储在云服务器, 但云服务器无法对其解密;

c)   客户端加密数据重复删除与云服务器端重复数据删除混合使用, 防止侧信道攻击.

3)   高效性

a)   保证流行度查询标签生成算法和密钥传递算法的高效性;

b)   针对不同流行度数据, 采用不同加密算法, 在确保安全性的前提下, 提高系统执行效率.

1.3 敌手模型

在数据安全需求方面, 用户假定云服务提供商是不可信的; 用户在系统效率方面的要求与云服务提供商的存储成本存在一定矛盾.因此, 本文不考虑用户与云服务器合谋攻击.由于在重复数据删除方案中, 侧信道攻击主要针对客户端重复数据删除(穷举并上传文件, 观察是否发生重复数据删除), 而本方案只对隐私度比较低的流行数据使用客户端重复数据删除, 因此侧信道攻击问题不是本文的研究重点.

本文的敌手有以下两类.

1) 云服务提供商

云服务提供商能够按照系统所设计的协议与用户执行所有的交互, 可以访问或复制用户存储在云服务器上的加密数据、查询标签等所有信息, 因此可以对查询标签与加密数据执行离线穷举攻击, 其攻击方式为:猜测穷举某数据内容的所有可能, 构造查询标签集合并与用户的查询标签进行比较, 验证猜测正确性, 最终获得数据内容.

2) 用户群中的恶意成员(恶意用户)

恶意用户拥有与合法用户完全相同的访问能力和权限, 掌握KDC分配的密钥对.其可能的攻击方式如下.

a)   劫持受害者与云服务器的通信信道, 假冒云服务器, 与受害者执行方案中的所有交互协议, 对受害者的查询标签执行离线穷举攻击, 即:穷举猜测某数据内容的所有可能, 构造查询标签集合并与用户的查询标签进行比较, 验证猜测正确性, 获得数据内容;

b)   执行在线穷举攻击, 穷举某数据内容的所有可能, 逐一构造查询标签并发送至云服务器, 根据云服务器的回复消息判断该数据是否已被存储在云服务器.

2 定义与预备知识 2.1 具有离线密钥传递的云加密数据安全重复删除方案

本方案共包含以下4种算法.

a)   SystemSet:系统初始设置算法.KDC为用户生成属性密钥对, 并为云服务器部署密文参数;

b)   PopularityCheck:流行度查询算法.由用户与云服务器共同完成.持有相同数据的用户, 可以在不泄露任何数据内容的情况下获得相同的查询标签, 进而查询数据流行度;

c)   UnPopularDedup:非流行加密数据重复删除算法.由用户与云服务器共同完成.云服务器存储首次上传的加密数据; 若云服务器检测到冗余数据被上传, 则将其删除, 并为当前用户创建数据的访问链接;

d)   PopularUpload:流行加密数据重复删除算法.由用户与云服务器共同完成.若拥有某数据的用户数量等于流行度阈值, 则用户上传收敛加密密文; 若大于流行度阈值, 则执行客户端重复数据删除, 即:用户无需实际上传加密数据, 云服务器会为其创建数据的访问链接.

2.2 有限域上的椭圆曲线

定义有限域GF(P), 其特征P≠2, 3, 参数a, bGF(P)满足4a3+27b2≠0.

定义满足等式y2=x3+ax+b的点(x, y)∈GF(PGF(P)与无穷远点O构成的集合为椭圆曲线E(a, b)(GF(P))[20-23].

在下面定义的加法运算下, 这些点可构成Abelian群:O是恒等元, 假设M, NE(a, b)(GF(P))上的两个点, 若M=O, 则-M=O, M+N=N+M=N; 设定M=(x1, y1), N=(x2, y2), 则-M=(-x1, -y1), 且M+N=O; 若M=-N, 则M+N=(x3, y3), 其中,

${x_3} = {\mu ^2} - {x_1} - {x_2}, {y_3} = \mu ({x_1} - {x_3}) - {y_1}, \;\mu = \left\{ {\begin{array}{*{20}{l}} {\frac{{3x_1^2 + a}}{{2{y_1}}}, {\rm{ }}M = N} \\ {\frac{{{y_2} - {y_1}}}{{{x_2} - {x_1}}}, {\rm{ }}M \ne N} \end{array}} \right..$
2.3 密文策略属性加密

安全的基于密文策略属性加密(CP-ABE)方案通常包含以下算法[24-26].

a)   Setup(λ)→〈PK, MS〉:系统初始化.输入安全参数λ, 输出密钥对〈PK, MS〉;

b)   Encrypt(PK, F, S)→CS:加密算法.输入公钥PK, 消息F, 访问结构S, 输出密文CS;

c)   $KeyGen(MS, PK, A{T_i}) \to SKA{T_i}$:私钥生成算法.输入主密钥MS, 公钥PK, 用户的属性集合ATi, 输出用户私钥SKATi;

d)   Decrypt(PK, SK, CS)→F:解密算法.输入公钥PK, 用户私钥SK, 密文CS, 其中, 访问策略隐含在CS中.当且仅当ATiS, 才能解密得到消息F[27, 28].

3 具有离线密钥传递的云加密数据安全重复删除方案 3.1 方案概述

系统建立初始, KDC通过SystemSet算法为每个注册用户生成属性加密算法的公私钥对, 并将密文参数集合部署到云服务器.在PopularityCheck算法中, 用户发送数据短哈希值至云服务器, 以获取生成查询标签所需要的参数值, 并使用椭圆曲线计算流行度查询标签, 用以查询数据的流行度.在此之后, 云服务器将查询结果回传至用户, 并与用户执行UnPopularDedupPopularUpload, 其中, UnPopularDedup表示非流行加密数据重复删除算法, PopularUpload表示流行加密数据重复删除算法.

3.2 SystemSet

1)   KDC执行以下算法生成密钥对〈PK, MS〉.

a)   生成公共元素{q, G1, G2, g, e}, 其中, G1G2表示两个乘法循环群, qg分别表示G1的阶与某一生成元, e:G1×G1G2表示双线性映射;

b)   选择哈希函数H:{0, 1}*→{0, 1}m, 并随机选择$T \in Z_q^{2 \times m}$, 其中, $T = \left( {_{{t_{1, 1}}\;...\;{t_{1, m}}}^{{t_{0, 1}}\;...\;{t_{0, m}}}} \right), \;m \in N$;

c)   选取yZq, g1G1, 计算Y=(g, g1)ygT, 其中, ${g^T} = \left( {_{{g^{{t_{1, 1}}}}\;...\;{g^{{t_{1, m}}}}}^{{g^{{t_{0, 1}}}}\;...\;{g^{{t_{0, m}}}}}} \right)$;

d)   定义公钥PK={q, G1, G2, g, e, g1, Y, gT, H}, 主秘密MS={y, T}.

2)   用户群${\{ {U_i}\} _{i \in [1, Nu{m_U}]}}$通过以下算法1获取各自私钥, 其中, NumU表示用户数量.

算法1.  私钥生成算法.

Input:KDC主秘密MS, 用户${\{ {U_i}\} _{i \in [1, Nu{m_U}]}}$的属性集合$S = {\{ A{T_i}\} _{i \in [1, Nu{m_U}]}}$;

Output:${\{ {U_i}\} _{i \in [1, Nu{m_U}]}}$的私钥集合${\{ S{K_{A{T_i}}}\} _{i \in [1, Nu{m_U}]}}$.

1:  For i=1 to NumU do

2:    用户Ui发送属性集合ATi至KDC;

3:    KDC计算h=H(at1||at2||…||atn), atjATi;     //H表示密码哈希函数, j∈[1, n], n表示Ui的属性个数;

4:    KDC随机选择zZq, 生成解密密钥$S{K_{A{T_i}}} = \{ S{K_{i1}}, \;S{K_{i2}}\} = \left\{ {g_1^y{{\left( {\prod\limits_{i \in [1, m]} {{g^{{t_{{h_i}, i}}}}} } \right)}^z}, {g^z}} \right\}$;

5:  Return $\left\{S K_{A T_{i}}\right\}_{i \in\left[1, N u m_{U}\right]}$;

3)   KDC通过以下方式得到密文参数集合, 并将其部署在云服务器.

a)   生成随机数向量集合:${\{ {N_r} = \langle {\lambda _r}, {\mu _r}\rangle \;\} _{r \in [1, Nu{m_U}]}}$${\{ {R_r} = \langle {\theta _r}, {\omega _r}\rangle \} _{r \in [1, Nu{m_U}]}}$;

b)   计算${\{ {N_r} - {R_r}\; \} _{r \in [1, Nu{m_U}]}}$;

c)   通过算法2加密${(\{ {N_r} - {R_r}\;\} , \{ {R_r}\} )_{r \in [1, Nu{m_U}]}}$, 得到${\left( \begin{gathered} \{ {X_{r1}} = Encrypt(PK, S, {N_r} - {R_r})\} \\ \{ {X_{r2}} = Encrypt(PK, S, {R_r})\} \\ \end{gathered} \right)_{r \in [1, Nu{m_U}]}}$,

其中, Encrypt(·)表示公钥加密算法.

算法2.  属性加密算法.

Input:随机数向量集合({Nr-Rr}, {Rr})i[1, Num], 公钥PK, 访问结构S;

Output:随机值密文集合({Xr1=Encrypt(PK, S, Nr-Rr)}, {Xr2=Encrypt(PK, S, Rr)})i[1, Num].

1:  For r = 1 to NumU do

2:  计算h=H(s1||s2||…||sn), siS;

3:  随机选择εZq, $\partial$∈Zq, 计算$\left(\begin{array}{l} {C_{r1, 1}} = ({N_r} - {R_r}) \cdot {Y^\varepsilon }, {C_{r1, 2}} = {g^\varepsilon }, {C_{r1, 3}} = {\left({\prod\limits_{i \in [1, m]} {{g^{{t_{{h_i}}}, i}}} } \right)^\varepsilon }\\ {C_{r2, 1}} = {R_r} \cdot {Y^\partial }, {C_{r2, 2}} = {g^\partial }, {C_{r2, 3}} = {\left({\prod\limits_{i \in [1, m]} {{g^{{t_{{h_i}}}, i}}} } \right)^\partial } \end{array} \right)$;

            //其中, hi表示h的第i比特, hi∈{0, 1};

4:  Return ({Xr1=(S, Cr1, 1, Cr1, 2, Cr1, 3), Xr2=(S, Cr2, 1, Cr2, 2, Cr2, 3))i[1, Num];

3.3 PopularityCheck 3.3.1 获取生成查询标签所需随机数

Ui选取短哈希函数SH, 计算数据Fi的短哈希值shi=SH(Fi), 并发送shi至云服务器(短哈希函数具有较高的碰撞率, 相同数据的短哈希值必定相同, 不同数据的短哈希值可能相同).

1) 若云服务器中存在与shi相同的短哈希值$s{h'_i} = SH({F'_i})$, 则Ui可能为数据${F'_i}({F_i})$的后继上传者, 其中, ${F'_i}$表示${U'_i}$上传的数据, 执行以下操作.

a)   云服务器将与${F'_i}$关联的信息发送至Ui.该信息包含${\eta '_i}$$\left( \begin{gathered} {{X'}_{i1}} = Encrypt(PK, AT, {{N'}_i} - {{R'}_i}) \\ {{X'}_{i2}} = Encrypt(PK, AT, {{R'}_i}) \\ \end{gathered} \right)$, 其中, ${\eta '_i}$表示云服务器为${U'_i}$选定的随机数; ${X'_{i1}} \in \{ {X_{r1}}\} , {X'_{i2}} \in \{ {X_{r2}}\} $表示云服务器为${U'_i}$选取的密文参数(如前文所述, 密文参数集合来自KDC, 云服务器无法获得明文信息);

b)   Ui设定${\eta _i} = {\eta '_i}$, 通过以下方法解密${X'_{i1}}$${X'_{i2}}$, 其中, Decrypt(·)表示公钥加密中的解密算法:

$\begin{gathered} \langle {{\lambda '}_i} - {{\theta '}_i}, {{\mu '}_i} - {{\omega '}_i}\rangle = Decrypt(PK, S{K_i}, {{X'}_{i1}}) = \frac{{{{C'}_{i1}} \cdot e({{C'}_{i1, 3}}, S{K_{i2}})}}{{e({{C'}_{i1, 2}}, S{K_{i1}})}}, \\ \langle {{\theta '}_i}, {{\omega '}_i}\rangle = Decrypt(PK, S{K_i}, {{X'}_{i2}}) = \frac{{{{C'}_{r2, 3}} \cdot e({{C'}_{r2, 3}}, S{K_{i2}})}}{{e({{C'}_{r2, 3}}, S{K_{i1}})}}; \\ \end{gathered} $

c)   Ui计算$\langle {\lambda '_i} - {\theta '_i}, {\mu '_i} - {\omega '_i}\rangle + \langle {\theta '_i}, {\omega '_i}\rangle $得到随机数向量$\langle {\lambda '_i}, {\mu '_i}\rangle , $并设定$\langle {\lambda _i}, {\mu _i}\rangle = \langle {\lambda '_i}, {\mu '_i}\rangle $.

注意:若存在Nmax个短哈希值与shi相同, 则以上操作执行Nmax次, 即, 设定${\{ \langle {\eta _{i, j}}, \;{\lambda _{i, j}}, {\mu _{i, j}}\rangle \} _{j \in [1, {N_{\max }}]}}$为生成流行度查询标签所需参数.

2) 若云服务器无法查找出相同的短哈希值, 则Ui是数据Fi的初始上传者.

a)   云服务器从密文参数集合{Xr1}, {Xr2}(r∈[1, n])中随机选择Xa1∈{Xr1}与Xb2∈{Xr2}(ab), 另外生成随机数ηi, 一起发送至Ui, 并将Xa1, Xb2Ui关联;

b)   Ui解密Xa1Xb2得到:

$\begin{gathered} \langle {\lambda _a} - {\theta _a}, {\mu _a} - {\omega _a}\rangle = Decrypt(PK, S{K_i}, {X_{a1}})\; = \frac{{{C_{a1, 1}} \cdot e({C_{a1, 3}}, S{K_{i2}})}}{{e({C_{a1, 2}}, S{K_{i1}})}}, \\ \langle {\theta _b}, {\omega _b}\rangle = Decrypt(PK, S{K_i}, {X_{b2}}) = \frac{{{C_{b2, 1}} \cdot e({C_{b2, 3}}, S{K_{i2}})}}{{e({C_{b2, 2}}, S{K_{i1}})}}; \\ \end{gathered} $

c)   Ui计算〈λa-θa, μa-ωa〉+〈θb, ωb〉得到随机数向量〈λi, μi〉=〈λa-θa+θb, μa-ωa+ωb〉, 设定$\left\langle\eta_{i, j}, \lambda_{i, j}, \mu_{i, j}\right\rangle_{j=0}$为生成流行度查询标签所需参数, 由于云服务器未找到相同的短哈希值, 因此将j设定为固定值0.

3.3.2 流行度查询

Ui使用随机数向量集合${\{ \langle {\eta _{i, j}}, \;{\lambda _{i, j}}, \;{\mu _{i, j}}\rangle \} _{j \in [0, {N_{\max }}]}}$(第3.3.1节中, 两种情况下j的取值分别为j∈[1, Nmax]与j=0, 将二者合并得到j∈[0, Nmax])与云服务器执行算法3, 以查询数据的流行度.

算法3.  流行度查询算法.

Input:Ui持有的随机值${\{ \langle {\eta _{i, j}}, \;{\lambda _{i, j}}, \;{\mu _{i, j}}\rangle \} _{j \in [0, {N_{\max }}]}}$;

Output:流行数据, 非流行数据.

1:  For j=0 to Nmax do

2:    Ui计算$\left(x_{i, j}, y_{i, j}\right)=\eta_{i, j} \cdot A+\lambda_{i, j} \cdot A+\mu_{i, j} \cdot B$;     //AB代表椭圆曲线上两个点;

3:    Ui计算盲化因子li, j=xi, j mod n, 并计算密文Ci, j=H(Fi+li, j);

4:  Ui计算${\bar C_{i, j}} = {C_{i, j}} - {\mu _{i, j}}$, 并将其发送至云服务器;

5:  For j=0 to Nmax do

6:  云服务器计算${\sigma _{i, j}} = {\eta _{i, j}} - S{K_{CSP}} \cdot {\bar C_{i, j}}$;       //SKCSP表示云服务器私钥;

7:    If云服务器中存有与σi, j相同的值

8:          计算$\sigma_{i, j}^{\prime}\left(\sigma_{i, j}\right)$的数量, 并将其记作${Count}_{\sigma_{i, j}}$;

9:          设定${Num}_{\sigma_{i, j}}={Count}_{\sigma_{i, j}}$;

10:  Else

11:          设定$Nu{m_{{\sigma _{i, j}}}} = 0$;

12: If $Nu{m_{{\sigma _{i, j}}}} < T$    //其中, T表示系统设定流行度阈值;

13: Return非流行数据;     //云服务器与Ui执行非流行加密数据重复删除算法UpopularDedup.

14: Else

15:    Return流行数据;     //云服务器与Ui执行流行加密数据重复删除算法PopularDedup.

3.3.3 UnpopularDedup

1)   假设云服务器中存在${\sigma _{i, j}} = \;{\sigma '_{i, j}}$, 即${F_i} = {F'_i}$, 则UiFi的后继上传者(假设${U'_i}$${F'_i}$的初始上传者).

a)   云服务器将${L'_i} = E({k'_{i, j}}, K{F'_i} - H({F'_i}))$发送至Ui, 其中, E(·)为对称加密算法, ${k'_{i, j}} = {y'_{i, j}}\bmod n$表示${U'_i}$为保护数据${F'_i}$的加密密钥${K'_{{F_i}}}$而选取的密钥, ${y'_{i, j}}$${U'_i}$在执行PopularityCheck时计算得出;

b)   由PopularityCheck协议可知${k_{i, j}} = {k'_{i, j}} \leftarrow {y_{i, j}} = {y'_{i, j}} \leftarrow {\sigma _{i, j}} = {\sigma '_{i, j}}$.Ui使用ki, j解密${L'_i}$${K'_{{F_i}}} - H({F'_i})$.由于$H({F_i}) = H({F'_i}) \leftarrow {\sigma _{i, j}} = {\sigma '_{i, j}}$, 因此${K_{{F_i}}} = {K'_{{F_i}}} - H({F'_i}) + H({F_i})$;

c)   Ui使用${K_{{F_i}}}$Fi加密得到$E({K_{{F_i}}}, {F_i}\;)$.由于${K_{{F_i}}} = {K'_{{F_i}}}$${F_i} = {F'_i}$, 因此$E({K_{{F_i}}}, {F_i}) = E({K'_{{F_i}}}, {F'_i})$.故云服务器删除$E({K_{{F_i}}}, {F_i})$.

2)   若云服务器中不存在任何查询标签与σi, j相同, 则执行以下协议.

a)   云服务器随机选择用户Uz${L_z} = E{({k_z}, {K_{{F_z}}} - H({F_z}))_{z \in [1, Nu{m_U}]}}$, 并将其发送至Ui, 其中, Fz(Uz上传的数据)与Fi的短哈希值相同, 但长哈希值不同, 即$s h_{z}=s h_{i} \wedge H\left(F_{z}\right) \neq H\left(F_{i}\right)$;

b)   由PopularityCheck可知yz, j=yi, jshz=shi.因此, Ui使用ki, j=yi, j mod nLz解密得到${K_{{F_z}}} - H({F_z})$;

c)   Ui使用${K_{{F_i}}} = {K_{{F_z}}} - H({F_z}) + H({F_i})$(由于H(Fz)≠H(Fi), 因此${K_{{F_i}}} = {K_{{F_z}}} - H({F_z}) + H({F_i}) \ne {K_{{F_z}}}$)对Fi加密得到密文$E({K_{{F_i}}}, {F_i})$;

d)   Ui$E({K_{{F_i}}}, {F_i})$存储在云服务器.

3.3.4 PopularDedup

1)   若$Nu{m_{{\sigma _{i, j}}}} = T$, 则Fi正由非流行数据向流行数据转换.

a)   Ui计算数据Fi的哈希值H(Fi);

b)   Ui设定Fi的加密密钥为${K_{{F_i}}} = H({F_i}) + {y_{i, j}}\bmod n$;

c)   Ui使用${K_{{F_i}}}$加密数据Fi得到$E({K_{{F_i}}}, {F_i})$, 并将其上传至云服务器.

2)   若$Nu{m_{{\sigma _{i, j}}}} > T, $表示Fi已是流行数据.由于$E({K_{{F_i}}}, {F_i})$已被存储在云服务器, 用户不再执行上传操作, 即

采用效率更高的客户端加密数据重复删除(client-side deduplication).

4 安全分析与证明

结合前文所述的敌手模型, 本节从以下4个方面分析方案的安全性.

4.1 密文参数与查询标签安全性

1) 密文参数安全.

定理1.  若则属性加密方案中的解密算法(Decrypt)无法正常执行, 其中, ATCSP表示云服务器属性集合, ⊭表示云服务器属性集合无法满足用户属性集合.

证明:由SystemSet可知:

●  密文:${X_{r1}} = (S, \; {C_{r1}} = ({N_r} - {R_r}) \cdot {Y^\varepsilon }, {C_{r2}} = {g^\varepsilon }, {C_{r3}} = {\left({\prod\limits_{i \in [1, m]} {{g^{{t_{{h_i}, i}}}}} } \right)^\varepsilon }$;

●  解密密钥:$S{K_{A{T_i}}} = \{ S{K_{i1}}, S{K_{i2}}\} = \left\{ {g_1^y{{\left( {\prod\limits_{i \in [1, m]} {{g^{{t_{{h_i}, i}}}}} } \right)}^z}, {g^z}} \right\}$.

PopularityCheck可知$Decrypt(PK, S{K_i}, {X_{j1}}) = \frac{{{C_{j1}} \cdot e({C_{j3}}, S{K_{i2}})}}{{e({C_{j2}}, S{K_{i1}})}} = \frac{{{C_{j1}} \cdot e(Cj3, {g^z})}}{{e\left( {{C_{j2}}, g_1^y{{\left( {\prod\limits_{i \in [1, m]} {{g^{{t_{{h_i}, i}}}}} } \right)}^z}} \right)}}$.

ATCSPS, 则${h_{CSP}} = H(a{t_{CS{P_1}}}||a{t_{CS{P_2}}}||...||a{t_{CS{P_n}}}) \ne H({s_1}||{s_2}||...||{s_n}) = h$, 即$g_1^y{\left( {\prod\limits_{i \in [1, m]} {{g^{{t_{{h_{CS{P_i}}}, i}}}}} } \right)^z} \ne g_1^y{\left( {\prod\limits_{i \in [1, m]} {{g^{{t_{{h_i}, i}}}}} } \right)^z}$, 因此, 云服务器无法解密Xr1.

同理, 云服务器无法解密Xr2.

2) 流行度查询标签安全.

云服务器虽持有σi, j与参数密文Xj1, Xj2, 然而, 由定理1可知, 云服务器无法解密Xj1, Xj2, 故只能通过以下方式穷举查询标签, 以猜测加密数据的明文信息.

a)   穷举数据集合{Fr}r[1, n];

b)   穷举随机参数值集合{xt}t[1, n];

c)   穷举随机参数值集合{μz}z[1, n];

d)   计算标签集合{σCSP=ηi-SKCSP·(H(Fr+xt mod n)-μz)};

e)   将得到的结果与${\sigma '_i}$逐一比较, 其中, ${\sigma '_i} = {\eta _i} - S{K_{CSP}} \cdot (H({F_i} + {x_i} \bmod n) - {\mu _i})$, 观察是否存在相等值;

f)   若存在相等值, 则表明Fr=Fi.

然而, 由以上可知, 云服务器攻击的时间复杂度为O(n3).由于n可视为无限大值, 因此在实际应用中, 实现第e)步是极为困难的.

4.2 防止假冒云服务器的行为

以下为恶意用户UD假冒云服务器与受害者Ui运行PopularityCheck算法的过程.

a)   Ui向云服务器发出执行PopularityCheck请求;

b)   UD截获请求消息, 发送ηDG, XD1, XD2t(a);

c)   Ui计算, 并将${C'_D}$发送至UD;

d)   UD将查询标签σD=ηD-dD·C''发送至Ui;

e)   由于UD持有ηDG, XD1, XD2, 因此可以对CD采取离线穷举攻击, 即执行以下操作:

① 穷举数据{Fr}r[1, n];

② 计算密文集合{Cr}={H(Fr+lD)};

③ 与Ci逐一对比.若Cr=Ci, 则Fr=Fi.

解决方法:用户在与云服务器通信之前, 需要借助公钥基础设施(PKI)获取并验证云服务器身份, 借助PKCSP协商会话密钥对通信内容加密.UD便无法仿冒云服务器身份获取有用信息.

4.3 防止用户进行在线穷举攻击

定理3.  恶意用户UD无法对云服务器中的非流行数据Fi执行在线穷举攻击.

证明:不失一般性, UD的攻击方式为:

a)   UD穷举数据{Fr}r[1, n];

b)   UD将穷举结果逐一与云服务器运行PopularityCheckUnpopularDedup;

c)   云服务器根据是否存在等式${\sigma '_{i, j}} = {\sigma '_r}$回复UD相应信息;

d)   UD根据响应, 判断攻击是否成功.

UnpopularDedup可知:

●  情况a:当Fr=Fi时, 云服务器将${L'_i} = E({k'_{i, j}}, {K'_{{F_i}}} - H({F'_i}))$回复给UD;

●  情况b:若Fr为首次上传数据, 云服务器随机选择用户Uz${L_z} = E{({k_z}, {K_{{F_z}}} - H({F_z}))_{z \in [1, Nu{m_U}]}}$发送至UD.

由于两种情况下, UD获得的伪随机数${K'_{{F_i}}} - H({F'_i})$${K_{{F_z}}} - H({F_z})$的计算方式相同, UD无法区分情况a与情况b, 故无法对存储在云服务器的非流行数据进行在线穷举攻击.

4.4 标签唯一性与正确性证明

1) 唯一性证明

由安全哈希算法H的抗碰撞性得到引理1.

引理1.  对于安全的哈希算法H, 若${F'_i} = {F_i}$, 则$H({F'_i}) = H({F_i})$的概率是可忽略的.我们采用ε表示可忽略值:

$Prob[H({F'_i}) \ne H({F_i})|{F'_i} = {F_i}] < \varepsilon .$

定理3.  若${F'_i} = {F_i}$, 则${\sigma '_{i, j}} \ne {\sigma _{i, j}}$的概率是可忽略的:$Prob[{\sigma '_{i, j}} \ne {\sigma _{i, j}}|{F'_i} = {F_i}] < \varepsilon .$

证明:

根据PopularityCheck可知:若$s{h'_i} = s{h_i}$, 则${\eta '_i}G = {\eta _i}G \wedge {X'_{i1}} = {X_{i1}} \wedge {X'_{i2}} = {X_{i2}}$, 故${l'_{i, j}} = {l_{i, j}} \leftarrow ({x'_{i, j}}, {y'_{i, j}}) = ({x_{i, j}}, {y_{i, j}})$.

由引理1可得:

$Prob[H({F'_i} + {l'_{i, j}}) \ne H({F_i} + {l_{i, j}})|{F'_i} = {F_i} \wedge {l'_{i, j}} = {l_{i, j}}] < \varepsilon $ .

因此, ${\bar C'_i} = {\bar C_i} \leftarrow {C'_i} = {C_i}$, 故${\sigma '_{i, j}} = {\sigma _{i, j}}$.换言之, 持有相同数据的不同用户, 生成流行度查询标签${\sigma _{i, j}}({\sigma '_{i, j}})$是唯一的.

2) 正确性证明

用户${U'_i}$已将数据${F'_i}$的流行度查询标签${\sigma '_{i, j}}$存储在云服务器.

Ui与云服务器执行PopularityCheck时, 云服务器生成数据Fi的流行度查询标签σi, j, 并且判断${\sigma '_{i, j}} = {\sigma _{i, j}}$是否成立.

定理4.  若${\sigma '_{i, j}} = {\sigma _{i, j}}$, 则${F'_i} \ne {F_i}$的概率是可忽略的:

$Prob[{F'_i} \ne {F_i}|{\sigma '_{i, j}} = {\sigma _{i, j}}] < \varepsilon .$

证明:不失一般性, 由PopularityCheck可知σi, j=ki-SKCSP·(H(Fi+xt, j mod n)-μi, j).

a)   若${\sigma '_{i, j}} = {\sigma _{i, j}}$, 则${\eta '_{i, j}} - S{K_{CSP}} \cdot (H({F'_i} + {x'_{i, j}} \bmod n) - {\mu '_{i, j}}) = {\eta _{i, j}} - S{K_{CSP}} \cdot (H({F_i} + {x_{i, j}} \bmod n) - {\mu _{i, j}})$;

b)   由于$s{h'_i} = s{h_i}$, 故${\eta '_{i, j}} = {\eta _{i, j}} \wedge {x'_{i, j}} = {x_{i, j}} \wedge {\mu '_{i, j}} = {\mu _{i, j}}$, 因此, $H({F'_i}) = H({F_i})$;

c)   根据引理1可得:若${\sigma '_{i, j}} = {\sigma _{i, j}}$, 则${F'_i} = {F_i}$.

证毕.

5 实验分析

实验采用C++语言, 借助OPENSSL[29], GMP[30], PBC[31]和CP-ABE[32]函数库实现了系统软件.以阿里云作为云服务提供商, 租用虚拟机配置为4Core CPU, 8GB内存, 1Mbps带宽, 1T存储空间.椭圆曲线基域大小设定为512bit, 域中元素大小为160bit.随机选取了2 500个文件存储在云服务器中.随机设定拥有每个文件的用户数量.设置流行度阈值为T=8, 非流行数据与流行数据的比例大致为3:4.

通过以下3组实验, 证明方案的高效性.

a)   上传大小为80MB的文件FA, 计算本方案各阶段的时间开销;

b)   上传大小为10MB的文件FB, 分别测试本方案与PerfectDedup方案[19]的总时间开销;

c)   上传大小相同的文件, 比较本方案、文献[17]中的方案、文献[19]中的方案各自所需的存储开销.

实验中的每步操作重复执行20次, 取平均值作为实验结果.

1) 系统每阶段的时间开销.

将文件设定为以下3种情况:非流行数据($Coun{t_{{F_A}}} < T$)、流行度转换数据($Coun{t_{{F_A}}} = T$)与流行数据($Coun{t_{{F_A}}} > T$).分别测量3种情况下文件分块、查询标签生成、流行度查询、加密与上传各自所需要的时间开销.实验结果如图 2所示, 发生在用户端的文件分块、查询标签生成、加密所需要的时间开销较小.上传与流行度查询操作在云服务器端执行, 所需要的时间开销远远超过用户端.当$Coun{t_{{F_A}}} > T$时, 用户不再需要文件的加密与上传操作, 大幅减少了计算开销, 节省了网络带宽.

Fig. 2 Time span on each stage of the system 图 2 系统每阶段的时间开销

如何高效且安全地识别冗余数据, 是加密数据重复删除方案的基础.本文对较为优异的现有相关方案的生成查询标签算法进行了效率测试, 并与本方案比较.实验结果如图 3所示, 本方案在生成查询标签方面, 明显优于其他方案.

Fig. 3 Time span on check tag generation of each scheme 图 3 各方案生成查询标签所需时间开销

为达到语义安全, 本方案需要将初始上传属主的加密密钥安全共享至后继上传属主, 这会使数据加密算法产生部分额外通信与计算开销.然而, 由于密钥传递方式的设计较为高效, 因此它对加密算法的性能影响较小.本方案与CE[6]的比较结果在表 1中给出, 其中, t(a)表示本方案在执行加密算法时产生的时间开销, t(b)表示执行收敛加密时产生的时间开销, t(b)-t(a)表示执行两种加密算法时产生时间开销的差值, $\frac{{t(b) - t(a)}}{{t(a)}}$表示以上差值为系统带来影响的大小.实验结果表明:二者加密算法所需的时间开销相差甚小; 且随着数据不断增大, 差值渐成为可忽略值.

Table 1 Comparison of time span between our scheme and CE 表 1 本方案与CE方案的时间开销对比

2) 较少的总时间开销.

本方案与PerfectDedup方案[19]所需要的总时间开销对比如图 4所示.与PerfectDedup相比, 由于本方案不需要进行第三方服务器的数据更新, 流行度查询阶段需要的时间开销较小, 因此在总时间开销方面, 本方案具有较明显的优势.

Fig. 4 Comparison of total time span between our scheme and PerfectDedup 图 4 本方案与PerfectDedup方案的总时间开销对比

3) 占用更少的存储空间.

通过上传大小为500MB文件, 测试本方案、文献[17]中的方案、文献[19]中的方案各自占用云服务器中的存储空间情况, 实验结果如图 5所示.由于本方案支持非流行数据重复删除, 因此能够节省更多的存储空间.文件越大, 优势越明显.

Fig. 5 A comparison of three schemes of cloud server storage overhead (each file 500MB) 图 5 3种方案中云服务器存储开销对比(每个文件500MB)

4) 方案特点比较.

由上述实验可知, 摆脱实时在线第三方的依赖与划分数据流行度, 是减少方案计算开销与通信开销的有效方法.表 2分析了本方案与其他代表性方案是否具备上述两种方法的特点.

Table 2 Scheme characteristics comparison 表 2 方案特点比较

6 总结与展望

本文提出一种无需初始数据上传用户和可信第三方实时在线参与的加密数据重复删除方法.基于椭圆曲线构造流行度查询标签, 在语义安全的前提下, 使用该标签识别数据冗余度与流行度.借助密文策略属性加密, 保证查询标签生成协议与密钥共享协议的安全实现, 同一数据副本的初始上传用户能够借助云服务商, 将加密密钥安全离线共享至后继上传用户, 实现非流行数据重复删除.改进后的收敛加密算法, 能够使用户自行计算安全加密密钥, 不仅保证了流行数据的存储安全, 同时提高了云服务商消除流行重复加密数据的效率.本文最后进行了详细的安全性分析与效率评估, 并与其他现有方案对比, 证明本方案在满足语义安全的同时, 进一步提高了加密数据重复删除系统的执行效率.

在本文基础上设计具有动态更新数据所有权的安全加密数据重复删除方案, 是下一步的研究方向.

参考文献
[1]
Lai J, Xiong J, Wang C, et al. A secure cloud backup system with deduplication and assured deletion. In:Proc. of the Int'l Conf. on Provable Security. Cham:Springer-Verlag, 2017, 74-83.
[2]
Fu YJ, Xiao N, Liu F. Research and development on key techniques of data deduplication. Journal of Computer Research & Development, 2012, 49(1): 12-20(in Chinese with English abstract). http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=jsjyjyfz201201002
[3]
Shin Y, Koo D, Hur J. A Survey of Secure Data Deduplication Schemes for Cloud Storage Systems. ACM Press, 2017.
[4]
Guarini D. Experts say Facebook leak of 6 million users' data might be bigger than we thought. 2013. http://www.huffingtonpost.com/entry/facebook-leak-data_n_3510100
[5]
iCloud leaks of celebrity photos. 2014. https://en.wikipedia.org/wiki/ICloud leaks of celebrity photos
[6]
Douceur JR, Adya A, Bolosky WJ, et al. Reclaiming space from duplicate files in a serverless distributed file system. In:Proc. of the Int'l Conf. on Distributed Computing Systems. IEEE, 2002, 617-624. http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=CC026343269
[7]
Puzio P, Molva R, Onen M, et al. Cloudedup:Secure deduplication with encrypted data for cloud storage. In:Proc. of the 5th IEEE Int'l Conf. on Cloud Computing Technology and Science. IEEE, 2013, 363-370. http://d.old.wanfangdata.com.cn/NSTLHY/NSTL_HYCC0213990417/
[8]
Storer MW, Greenan K, Long DDE, et al. Secure data deduplication. In:Proc. of the 2008 ACM Workshop on Storage Security and Survivability. VA:ACM Press, 2008. 1-10.
[9]
Jian L, Asokan N, Pinkas B. Secure deduplication of encrypted data without additional independent servers. In:Proc. of the ACM Sigsac Conf. on Computer and Communications Security. ACM Press, 2015. 874-885.
[10]
Liu XF, Sun WH, Lou WJ, et al. One-tag checker:Message-locked integrity auditing on encrypted cloud deduplication storage. In:Proc. of the IEEE Conf. on Computer Communications. IEEE, 2017, 1-9.
[11]
Bellare M, Keelveedhi S, Ristenpart T. Message-locked encryption and secure deduplication. In: Proc. of the Int'l Conf. on the Theory and Applications of Cryptographic Techniques. Berlin, Heidelberg: Springer-Verlag, 2013.
[12]
Abadi M, Dan B, Mironov I, et al. Message-locked encryption for lock-dependent messages. In:Proc. of the Advances in Cryptology (CRYPTO 2013). Berlin, Heidelberg:Springer-Verlag, 2013, 374-391.
[13]
Bellare M, Keelveedhi S. Interactive message-locked encryption and secure deduplication. In:Proc. of the Public-key Cryptography (PKC 2015). Berlin, Heidelberg:Springer-Verlag, 2015, 296-312. http://d.old.wanfangdata.com.cn/NSTLHY/NSTL_HYCC0214916723/
[14]
Bellare M, Keelveedhi S, Ristenpart T. DupLESS:Server-aided encryption for deduplicated storage. In:Proc. of the Usenix Conf. on Security. USENIX Association, 2013, 179-194. https://www.researchgate.net/publication/262152629_DupLESS_Server-aided_encryption_for_deduplicated_storage
[15]
Duan Y. Distributed Key Generation for Encrypted Deduplication: Achieving the Strongest Privacy. 2014. 57-68.
[16]
Dinger J, Hartenstein H. Defending the Sybil attack in P2P networks: Taxonomy, challenges, and a proposal for self-registration. In: Proc. of the Int'l Conf. on Availability, Reliability and Security. IEEE, 2006.
[17]
Stanek J, Sorniotti A, Androulaki E, et al. A secure data deduplication scheme for cloud storage. In:Proc. of the Int'l Conf. on Financial Cryptography and Data Security. Berlin, Heidelberg:Springer-Verlag, 2014, 99-118.
[18]
Douceur JR. The Sybil attack. In:Proc. of the Revised Papers from the 1st Int'l Workshop on Peer-to-Peer Systems. Springer-Verlag, 2002, 251-260. http://d.old.wanfangdata.com.cn/OAPaper/oai_doaj-articles_3308f0ddadeee1337f0d925dda7e8054
[19]
Puzio P, Molva R, Önen M, et al. PerfectDedup:Secure data deduplication. In:Proc. of the Int'l Workshop on Data Privacy Management. Springer Int'l Publishing, 2015, 150-166. [doi:10.1007/978-3-319-29883-2_10]
[20]
Zhang FG, Wang CJ, Wang YM. Digital signature and blind signature based on elliptic curve. Journal of China Institute of Communications, 2001, 22(8): 22-28(in Chinese with English abstract). [doi:10.3321/j.issn:1000-436X.2001.08.004]
[21]
Wang DQ, You L, Duan YC. Summarizing and comparison of the algorithms for the order of Jacobian group of elliptic curves over finite fields. NetInfor Security, 2014, 8(7): 41-47(in Chinese with English abstract). [doi:10.3969/j.issn.1671-1122.2014.07.008]
[22]
Feng DG. Mathematical Methods and Techniques in Information Security. Beijing: Tsinghua University Press, 2009.
[23]
Hu L, Feng DG, Wen TH. Fast multiplication on a family of Koblitz elliptic curves. Ruan Jian Xue Bao/Journal of Software, 2003, 14(11): 1907-1910(in Chinese with English abstract). http://d.old.wanfangdata.com.cn/Periodical/rjxb200311013
[24]
Zhang K, Li H, Ma J, et al. Efficient large-universe multi-authority ciphertext-policy attribute-based encryption with white-box traceability. Science China Information Sciences, 2018.
[25]
Bethencourt J, Sahai A, Waters B. Ciphertext-policy attribute-based encryption. In:Proc. of the IEEE Symp. on Security and Privacy. IEEE Computer Society, 2007, 321-334. [doi:10.1109/SP.2007.11]
[26]
Cmalluhi QM, Trinh VC. A ciphertext-policy attribute-based encryption scheme with optimized ciphertext size and fast decryption. In:Proc. of the ACM on Asia Conf. on Computer and Communications Security. ACM Press, 2017. 230-240.
[27]
Wang PP, Feng DG, Zhang LW. CP-ABE scheme supporting fully fine-grained attribute revocation. Ruan Jian Xue Bao/Journal of Software, 2012, 23(10): 2805-2816(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/4184.htm [doi:10.3724/SP.J.1001.2012.04184]
[28]
Liu ZB, Liu H, Huo YY. Data access control protocol for the cloud computing based on ciphertext-policy attribute based encryption (CP-ABE). NetInfor Security, 2014, 13(7): 57-60(in Chinese with English abstract). [doi:10.3969/j.issn.1671-1122.2014.07.011]
[29]
Hu XT, Qin ZP, Zhang H, et al. Research and improved implementation of AES algorithm in OpenSSL. Microcomputer Information, 2009, 25(12): 83-85(in Chinese with English abstract). [doi:10.3969/j.issn.1008-0570.2009.12.035]
[30]
Loukides M, Oram A. Programming with GNU Software. O'Reilly & Associates, 1997. http://d.old.wanfangdata.com.cn/OAPaper/oai_arXiv.org_cs%2f0207048
[31]
Lynn B. The pairing-based cryptographic library. 2015. http://crypto.Stanford.edu/pbc/
[32]
John B, Amit S. Brent W. Ciphertext-policy attribute-based encryption. 2006. http://acsc.cs.utexas.edu/cpabe/
[2]
付印金, 肖侬, 刘芳. 重复数据删除关键技术研究进展. 计算机研究与发展, 2012, 49(1): 12-20. http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=jsjyjyfz201201002
[20]
张方国, 王常杰, 王育民. 基于椭圆曲线的数字签名与盲签名. 通信学报, 2001, 22(8): 22-28. [doi:10.3321/j.issn:1000-436X.2001.08.004]
[21]
王冬勤, 游林, 段勖超. 有限域上椭圆曲线Jacobian群求阶算法综述与比较. 信息网络安全, 2014, 8(7): 41-47. [doi:10.3969/j.issn.1671-1122.2014.07.008]
[22]
冯登国. 信息安全中的数学方法与技术. 北京: 清华大学出版社, 2009.
[23]
胡磊, 冯登国, 文铁华. 一类Koblitz椭圆曲线的快速点乘. 软件学报, 2003, 14(11): 1907-1910. http://d.old.wanfangdata.com.cn/Periodical/rjxb200311013
[27]
王鹏翩, 冯登国, 张立武. 一种支持完全细粒度属性撤销的CP-ABE方案. 软件学报, 2012, 23(10): 2805-2816. http://www.jos.org.cn/1000-9825/4184.htm [doi:10.3724/SP.J.1001.2012.04184]
[28]
刘占斌, 刘虹, 火一莽. 云计算中基于密文策略属性基加密的数据访问控制协议. 信息网络安全, 2014, 13(7): 57-60. [doi:10.3969/j.issn.1671-1122.2014.07.011]
[29]
胡晓婷, 覃中平, 张红, 等. OpenSSL中AES算法的研究与优化. 微计算机信息, 2009, 25(12): 83-85. [doi:10.3969/j.issn.1008-0570.2009.12.035]
云加密数据安全重复删除方法
张曙光 , 咸鹤群 , 王利明 , 刘红燕