Note: Secure Deduplication with Efficient and Reliable Convergent Key Management (Dekey)
原文献:Secure Deduplication with Efficient and Reliable Convergent Key Management
Dekey包含三个实体:用户(Users),存储云服务提供商(S-CSP)和密钥管理云服务提供商(KM-CSP)
- 用户:将数据存储到S-CSP并且稍后访问。假设用户只上传S-CSP中没有的数据,且仅上传一次。
- S-CSP:为用户存储数据。通过数据重删消除了冗余数据的存储,并保留了唯一的数据。
- KM-CSP:为用户提供摘要密钥,同时为用户提供最少的存储和计算服务,方便密钥管理。每个摘要密钥使用RSSS分布在多个KM-CSP上。
基线方法
仅涉及User和S-CSP(即不需要KM-CSP)。每个用户都拥有自己的数据副本加密所对应的摘要密钥,然后由独立的主密钥进一步加密。加密后的摘要密钥存储到S-CSP,而主密钥由用户维护。
系统设置
S1:初始化以下实体
具有原始功能的对称加密方案(\(KeyGen_{SE},Encrypt_{SE},Decrypt_{SE}\))和用于安全参数\(1^{\lambda}\)的用户的主密钥\(\kappa = KeyGen_{SE}(1^{\lambda})\);
具有原始功能的融合加密方案(\(KeyGen_{CE},Encrypt_{CE},Decrypt_{CE},TagGen_{CE}\))
用于文件的\(PoW\)算法:\(PoW_F\)和用于块的:\(PoW_B\)算法(Proof of Ownership,所有权证名)。
S2:S-CSP初始化两种类型的存储系统
- 有效重复检查的快速存储系统
- 用于存储加密数据副本和加密的摘要密钥的文件存储系统。
文件上传
假设用户上传文件F:
1. 执行文件级重复数据删除
S1:用户计算并发送F文件的标签\(T(F) = TagGen_{CE}(F)\)到S-CSP。
S2:S-CSP收到\(T(F)\)后,检查S-CSP上是否存在相同的标签。如果存在,S-CSP向用户回复“文件重复”,否则回复“没有文件重复”。
S3:如果用户收到“没有文件重复”的响应,则跳转到S5进行数据块级重复数据删除。如果响应是“文件重复”,则用户在S-CSP上对F运行\(PoW_F\),以证明该用户是存储在S-CSP上的相同文件F的所有者.
S4:如果\(PoW_F\)通过,则S-CSP只向用户返回F的文件指针,不再上传任何后续信息。如果\(PoW_F\)未通过,则S-CSP中止上传操作。
2. 用户执行数据块级重复数据删除,以消除冗余块。
S5:针对需要上传的文件F,利用主密钥\(\kappa\),用户执行以下计算:
- 将F分成一组数据块\({B_i}\)(其中\(i 1/4 1; 2; ...)\)
- 对于每个块\(B_i\),计算块标签\(T(B_i)=TagGen_{CE}(B_i)\);
- 将块标签\({T(B_i)}\)发送到S-CSP以进行数据块重复检查。
S6:S-CSP接收到数据块标签\({T(B_i)}\)后,计算得到向量\(\sigma_B\),如果存在某个已存储数据块命中了\(T(B_i)\)则存储\(\sigma_B[i] = 1\),表示数据块已存在,反之则存储\(\sigma_B[i] = 0\),表示数据块不存在。然后,S-CSP将存储\(\sigma_B\)返回给用户。
S7:用户接收到\(\sigma_B\)后,遍历\(\sigma_B\),若\(\sigma_B[i] = 1\),则对数据块\(B_i\)执行\(PoW_B\)运算以向S-CSP表明自己是该数据块的所有者。如果认证通过,S-CSP向用户发送数据块\(B_i\)的指针,此时用户不再需要发送该数据块。若认证不通过或\(\sigma_B[i] = 0\),则计算\(C_i = Encrypt_{CE}(K_i,B_i)\),其中摘要密钥\(K_i=KeyGen_{CE}(B_i)\)。
S8:对于所有数据块,用户使用主密钥和摘要密钥计算加密的摘要密钥\({CK_i}\),其中\({CKi} = Encrypt_{SE}(\kappa, K_i)\)。
S9:用户将所有S-CSP没有的且加密后的数据块\({B_i}^{'}\)、\(\sigma_B[i] = 0\)、所有的摘要密钥\(\{CK_i\}\) 、\(T(F)\)发送到S-CSP,然后将之存储。
文件下载
假设用户想要下载文件F,首先向S-CSP发送请求和文件名,然后执行以下步骤:
S1:收到请求和文件名后,S-CSP将检查用户是否有资格下载F。如果没有资格,S-CSP会向用户发回中止信号以指示下载失败。若有则S-CSP将相应的密文\(\{C_i\}\)和加密的摘要密钥\(\{CK_i\}\)返回给用户。
S2:用户从S-CSP接收到加密数据后,首先使用其主密钥来恢复每个摘要密钥\(K_i=Decrypt_{SE}(\kappa,CK_i)\)。然后使用\(K_i\)来恢复原始块\(B_i=Decrypt_{CE}(K_i,C_i)\)。最后,用户可以获得原始文件\(F=\{B_i\}\)。
限制
基线方法有两个主要问题:
- 密钥管理中巨大的存储开销。特别地,每个用户必须将摘要密钥与他拥有的每个数据副本相关联,并且用他自己的主密钥加密所有的摘要密钥。由于不同用户使用不同的主密钥,不同用户加密的摘要密钥(即CKi)互不相同。因此,摘要密钥的数量随着存储的唯一数据副本的数量和用户的数量而线性增加,导致了大量的存储开销。
- 主密钥可能出现单点错误,需要由用户可靠地维护。
Dekey
Dekey通过在摘要密钥中实现重复数据删除并将摘要密钥分发到多个KM-CSP,以有效可靠地维护会摘要密钥。
Dekey在原始摘要密钥上构建秘密份额,并将这些份额分发到多个KM-CSP。如果多个用户共享相同的数据块,则可以访问相同的摘要密钥。这样显着减少摘要密钥的存储开销。同时,这种方法提供容错性能,即使KM-CSP中的的部分字集发生错误也可进行正常访问。
系统设置
Dekey中的系统设置阶段类似于基线方法中的系统设置阶段,但涉及到一个额外的步骤:初始化KM-CSP中的密钥存储。假设KM-CSP的数量是n。
S1:在输入安全参数\(1^{\lambda}\)时,用户初始化收敛加密方案、\(POW_F\)和\(POW_B\)。
S2:S-CSP初始化快速存储系统和文件存储系统。
S3:每个KM-CSP初始化用于数据块标签\(T(B_i)\)的快速存储系统和用于保存摘要密钥份额的轻量级存储系统。
文件上传
设要上传文件F,用户和S-CSP执行文件级和数据块级重复数据删除。文件级的删除操作与基线方法相同。如果S-CSP找到文件副本,用户运行\(POW_F\)向S-CSP证明文件所有权,然后跳过数据块级重复检查并跳转到密钥分发阶段。如果文件不重复,则将执行数据块级重复数据删除(与基线方案的S5-S7相同)。最后,S-CSP存储具有密文\(C_i\)、\(\sigma_B[i]=0\),并将相应数据块的指针返回给用户进行本地存储。
在文件级和块级重复检查之后,执行一个称为密钥分发的附加级。与基线方法相反,该阶段使Dekey不依赖于每个用户保留各自主密钥,而是在多个KM-CSP之间共享所有摘要密钥。如果在S-CSP上找到文件副本,则用户使用第\(j\)个KM-CSP运行\(POW_{F,j}\)来计算文件标签\(T_j(F)=TagGen_{CE}(F,j)\)证明文件所有权。如果验证通过,则存储在第j个KM-CSP上的关于F的分享密钥将被返回给用户。
如果没有找到文件副本,将执行以下步骤:
S1:在输入文件\(F=\{B_i\}\)上,对于每个块\(B_i\),用户计算并发送块标签\(T(B_i)=TagGen_{CE}(B_i)\)到每个KM-CSP。同时计算文件标签\(T_j(F)=TagGen_{CE}(F,j)\)并发送到第j个KM-CSP,其中\(1\leqslant j\leqslant n\)。
S2:对于每个接收的\(T(B_i)\),第j个KM-CSP检查是否存储了另一个相同的标签.如果是,则在用户和第j个KM-CSP之间通过\(T_j(B_i)=TagGen_{CE}(B_i,j)\)对数据块执行\(POW_{B,j}\)。如果认证通过,第j个KM-CSP将为用户返回为摘摘要密钥\(K_i\)存储的秘密份额。否则它会保留\(T(B_i)\),并发回一个信号,要求该摘要密钥上的秘密共享。
S3:收到KM-CSP返回的数据块\(B_i\)的结果,如果是有效指针,则用户在本地存储,若无效则用户通过\((n,k,r)-RSSS\)来运行\(Share(K_i)\)计算出\(K_{i1},K_{i2} \cdots K_{ik}\),然后用户通过安全信道发送分享密钥\(K_{ij}\)和\(T_j(B_i)=TagGen_{CE}(B_i,j)\)到第j个KM-CSP,(\(j=1,2,\cdots,n\))
S4:在接收到\(K_{ij}\)和\(T_j(B_i)\)时,第j个KM-CSP存储它们并将\(K_{ij}\)的指针发送给用户以备将来访问。
文件下载
要下载文件F,用户首先按照基线方案中所述从S-CSP下载加密的数据块\(\{C_i\}\)。然后通过恢复摘要密钥来解密这些加密的数据块。
用户向n个KM-CSP中的k个发送关于文件F的所有数据块密钥的指针,获取每个数据块\(B_i\)的共享密钥\(K_{ij}\)。在收集所有共享之后,用户通过\(K_i = Recover(\{K_{ij}\})\)重建数据块\(B_i\)的摘要密钥。最后,通过\(\{C_i\}\)和\(\{K_i\}\)计算获得原始文件F。
Note: Secure Deduplication with Efficient and Reliable Convergent Key Management (Dekey)的更多相关文章
- 反Secure Boot垄断:兼谈如何在Windows 8电脑上安装Linux
感谢HQSQ的投递一.自由软件基金会的呼吁上周,2012年将近结束的时候,自由软件基金会(FSF)发出呼吁,要求人们继续支持反Secure Boot垄断,希望签名者能达到5万人(目前是4万).我觉得, ...
- GA-H61M-DS2 BIOS SETTING
Boot Option #1,UEFI:Sandisk SDSSDHP128G Boot Option #2, Boot Option #3, Boot Option #4, Bootup Numbe ...
- SharePoint在管理中心创建Secure Store
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012025054/article/details/35780063 SharePoint在管理中心 ...
- Secure CRT注册码
secure CRT 把记忆的东西放在这就行了,:) SecureCRT 5.2.2的注册码 Name: Apollo InteractiveCompany: Apollo ...
- A Study of WebRTC Security
转自:http://webrtc-security.github.io/ A Study of WebRTC Security Abstract Web Real-Time Communication ...
- 网络-05-端口号-F5-负载均衡设-linux端口详解大全--TCP注册端口号大全备
[root@test1:Standby] config # [root@test1:Standby] config # [root@test1:Standby] config # [root@test ...
- CentOS 7 服务端口表
# Note that it is presently the policy of IANA to assign a single well-known# port number for both T ...
- C++ Core Guidelines
C++ Core Guidelines September 9, 2015 Editors: Bjarne Stroustrup Herb Sutter This document is a very ...
- OPENVPN2.3配置文档官方说明
openvpn Section: Maintenance Commands (8)Index NAME openvpn - secure IP tunnel daemon. SYNOPSIS open ...
随机推荐
- oarcle12c打开本地数据库
--显示当前数据库的链接db,是cdb还是pdb. show con_name;--在oracle12c中打开本地数据库,否则本地数据库无法链接alter pluggable database pdb ...
- BZOJ 2243 [SDOI2011]染色:树剖【维护路径上颜色段】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2243 题意: 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径 ...
- 聊聊js跨域
推荐先读一下这篇文章: https://segmentfault.com/a/1190000012469713http://www.dailichun.com/2017/03/22/ajaxCross ...
- Web Worker浅学
Web Workers 是 HTML5 提供的一个javascript多线程解决方案,我们可以将一些大计算量的代码交由web Worker运行而不冻结用户界面.它独立于其他脚本,不会影响页面的性能.您 ...
- python-多线程趣味
假设一个程序员,想听歌,但是又想敲代码,于是又: 我听完歌就去敲代码: #! /usr/bin/env python #coding=utf-8 import time def matter1(mus ...
- Gym 101142 I.Integral Polygons(计算几何)
题意:给定一个凸包,现在让你连接凸包上两点,把凸包变为两个多边形,满足两个多边形的面积都是整数. 思路:我们知道整点的三角形面积S=叉积/2,则S要么是整数,要么是整数+0.5.那么多边形有多个三角形 ...
- xcopy语法
xcopy语法 2007-02-09 13:29:45| 分类: 服务器 | 标签:xcopy语法 |字号 订阅复制文件和目录,包括子目录. 语法 xcopySource [Destination] ...
- LOJ2302 「NOI2017」整数
「NOI2017」整数 题目背景 在人类智慧的山巅,有着一台字长为$1048576$位(此数字与解题无关)的超级计算机,著名理论计算机科 学家P博士正用它进行各种研究.不幸的是,这天台风切断了电力系统 ...
- Nested loops、Hash join、Sort merge join(三种连接类型原理、使用要点)
nested loop 嵌套循环(原理):oracle从较小结果集(驱动表.也可以被称为outer)中读取一行,然后和较大结果集(被侦查表,也可以叫做inner)中的所有数据逐条进行比较(也是等值连接 ...
- Select\Poll\Epoll异步IO与事件驱动
事件驱动与异步IO 事件驱动编程是一种编程规范,这里程序的执行流由外部事件来规定.它的特点是包含一个事件循环,但外部事件发生时使用回调机制来触发响应的处理.另外两种常见的编程规范是(单线程)同步以及多 ...