CN103067363A - 一种用于公开数据完整性校验的索引转换方法 - Google Patents

一种用于公开数据完整性校验的索引转换方法 Download PDF

Info

Publication number
CN103067363A
CN103067363A CN 201210557352 CN201210557352A CN103067363A CN 103067363 A CN103067363 A CN 103067363A CN 201210557352 CN201210557352 CN 201210557352 CN 201210557352 A CN201210557352 A CN 201210557352A CN 103067363 A CN103067363 A CN 103067363A
Authority
CN
China
Prior art keywords
piecemeal
file
audit
user side
cloud server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 201210557352
Other languages
English (en)
Other versions
CN103067363B (zh
Inventor
周可
李春花
蔡启泉
金豪
张彦哲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201210557352.8A priority Critical patent/CN103067363B/zh
Publication of CN103067363A publication Critical patent/CN103067363A/zh
Application granted granted Critical
Publication of CN103067363B publication Critical patent/CN103067363B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种用于公开数据完整性校验的索引转换方法,包括:用户端登录到云服务器和审计服务器,用户端同步用户的公钥到云服务器和审计服务器,用户端接收用户请求,并且根据用户请求判断是执行上传文件操作、删除文件操作,如果是执行上传文件操作,则用户端从用户接收需要上传的文件,根据用户的公钥和私钥将上传的文件进行分块,并计算每个分块的标签,将需要上传的文件及其每个分块的标签上传到云服务器,如果是执行删除文件操作,则用户端从用户接收需要删除的文件,并在云服务器和审计服务器中删除与需要删除的文件对应的文件、文件标签以及文件相关信息。本发明是基于现有PPPA方案的改进,并能解决现有方案不支持数据动态更新的问题。

Description

一种用于公开数据完整性校验的索引转换方法
技术领域
本发明属于云环境技术领域,更具体地,涉及一种用于公开数据完整性校验的索引转换方法。
背景技术
数据完整性校验就是及时检测出数据毁坏和丢失,防止服务方故意隐瞒数据丢失事件。云数据完整性校验是指云环境下的数据完整性校验。数据完整性校验大致可分为两种类型:私有数据完整性校验和公开数据完整性检验。私有数据完整性检验发生在原始数据的拥有者用户和服务商之间,用户为有效地进行数据完整性检验,平时还需维护一定量的秘密信息,如数据的加密密钥和散列值等。因此,为了保证数据的机密性和隐私性,私有数据完整性检验一般不能委托第三方进行。公开数据完整性检验中由于审计方平时无需维护审计相关的秘密信息,故可以委托任何人进行(包括用户本身)。一个完整的数据完整性检验方案可简单分成对数据的预处理和审计过程两大步骤。预处理主要是生成必要的公私钥,以及针对原始数据块构造其相应的数据标签;审计过程是指审计方和服务方的协议交互过程,包括审计方发起审计请求,提供必要的随机数和待审计块信息,服务方根据审计请求生成完整性证据再发送给审计方,然后审计方验证服务方证据的有效性。云环境下远程数据审计机制,主要包括安全性、审计效率和开销、审计功能三个层面。
C.Wang等人提出的支持隐私保护的公开审计方法(Privacy-Preserving Public Auditing,简称PPPA)为公开审计,其预处理的计算开销为O(n),而协议交互时的带宽开销、审计方和服务方的存储开销、审计方和服务方的计算开销都为O(1),但不支持数据动态更新。详见C.Wang,Q.Wang,K.Ren,and W.Lou,“Privacy-preserving publicauditing for data storage security in cloud comput ing,”in Proc.of INFOCOM’10,San Diego,CA,USA,2010,pp.525-533.
Q.Wang等人提出的Merkle哈希树(Merkle Hash Tree,简称MHT)方案也为公开审计,支持数据动态更新,预处理的计算开销为O(n),然而其协议交互时的带宽开销、审计方和服务方的存储开销、审计方和服务方的计算开销都为O(log n)。详见Q.Wang,C.Wang,J.Li,K.Ren,and W.Lou,“Enabling public verifiability and data dynamics for st oragesecurity in cloud computing,”in Proc.of ESORICS’09,Saint Malo,France,2009,pp.355-370.
然而,现有的远程数据审计方法存在以下问题:(1)审计效率和开销不高,即协议交互时的带宽开销、审计方和服务方的存储开销、审计方和服务方的计算开销和预处理的计算开销都要尽可能低;(2)审计功能,即审计方案除了能正常完成审计目标之外,还应支持公开验证性、数据隐私保护、数据动态更新。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种用于公开数据完整性校验的索引转换方法,其基于现有PPPA方案的改进,旨在解决现有方案不支持数据动态更新的问题。
为实现上述目的,本发明提供了一种用于公开数据完整性校验的索引转换方法,包括以下步骤:
(1)用户端登录到云服务器和审计服务器;
(2)用户端同步用户的公钥到云服务器和审计服务器;
(3)用户端接收用户请求,并且根据用户请求判断是执行上传文件操作、删除文件操作、审计文件操作、还是修改文件操作,如果是执行上传文件操作,则进入步骤(4),如果是执行删除文件操作,则进入步骤(5),如果是执行审计文件操作,则进入步骤(6),如果是执行修改文件操作,则进入步骤(7),否则过程结束;
(4)用户端从用户接收需要上传的文件F,根据用户的公钥和私钥将上传的文件F进行分块,并计算每个分块的标签,将需要上传的文件F及其每个分块的标签上传到云服务器,并返回步骤(3);
(5)用户端从用户接收需要删除的文件,并在云服务器和审计服务器中删除与需要删除的文件对应的文件、文件标签以及文件相关信息,并返回步骤(3);
(6)用户端从用户接收需要审计的文件,根据该审计文件向审计服务器发送审计文件请求,获取审计结果,并返回步骤(3);
(7)用户端从用户接收需要修改的文件,根据该修改文件向云服务器提交修改文件请求,修改完成后保存文件,并返回步骤(3)。
步骤(2)包括以下子步骤:
(2-1)用户端根据用户密码生成私钥sk(x);具体而言,私钥仅包含一个元素x,表示为sk(x);
(2-2)用户端判断本地是否存在公钥pk(u,w,g,v),若存在,则转入步骤(2-3),若不存在,则转入步骤(2-4);具体而言,公钥包含4个元素,分别为u,w,g,v,表示为pk(u,w,g,v),其中g为常量;
(2-3)用私钥sk(x)检验公钥pk(u,w,g,v)的正确性,即判断w=ux且v=gx是否成立,若成立,则转入步骤(2-5),否则转入步骤(2-4);
(2-4)从PBC库的G1群中随机取出一个元素,并将其赋值给u,并计算w=ux以及v=gx,则新的公钥为pk(u,w,g,v);
(2-5)用户端将用户的公钥pk(u,w,g,v)同步到云服务器和审计服务器;
(2-6)将公钥pk(u,w,g,v)保存到本地,过程结束。
步骤(4)包括以下子步骤:
(4-1)用户端判断需要上传的文件F是否已经存在于云服务器中,若存在,则返回步骤(3),若不存在,则进入步骤(4-2);
(4-2)用户端将需要上传的文件F分为n块,将每个分块的内容分别映射到PBC库中的对应元素,所有元素构成集合F={m1,m2….,mn},对每一个分块元素mi(其中1≤i≤n),用分块、索引号、私钥sk(x)和公钥pk(u,w,g,v)计算其相应的标签
Figure BDA00002618508100041
其中H(·)是一个hash函数,H(i)表示对索引号i进行hash运算;
(4-3)用户端将需要上传的文件F的文件信息发送到审计服务器;具体而言,该文件信息包括文件名、文件大小、文件块数n以及索引转换表,其中索引转换表是一个数组,数组中第j个元素表示第j个分块元素mj的索引号,对于新上传的文件,第k个分块元素mk的索引号即为k;
(4-4)用户端将所有分块m1,m2….,mn及其标签上传到云服务器,将文件信息上传到审计服务器,并返回步骤(3)。
步骤(5)包括以下子步骤:
(5-1)用户端查询审计服务器中是否存在需要删除的文件的文件信息,若存在,则转入步骤(5-2),否则转入步骤(5-3);
(5-2)审计服务器删除该文件的文件信息;
(5-3)查询云服务器中是否存在该文件,若存在,则转入步骤(5-4),否则返回步骤(3);
(5-4)云服务器删除该文件的所有分块及其标签,并返回步骤(3)。
步骤(6)包括以下子步骤:
(6-1)用户端发送审计请求以及需要审计的文件名到审计服务器;
(6-2)审计服务器根据审计请求和文件名查询需要审计的文件是否存在,若存在,则转入步骤(6-3),若不存在,则表示审计失败,转入步骤(6-9);
(6-3)审计服务器根据需要审计的文件的文件信息,随机抽取460个分块,构成分块集合P={s1,s2….,s460},对抽取的第p个分块,随机生成相应的随机数vp,组成460个配对集合chal={(p,vp)}p∈P,审计服务器向云服务器发送审计请求,并将用户名、文件名、配对集合chal发送到云服务器;
(6-4)云服务器根据审计请求、用户名、文件名及配对集合chal,查询该用户名下相应文件是否存在,若存在,则转入步骤(6-5),若不存在,则表示审计失败,转入步骤(6-9);
(6-5)云服务器根据配对集合chal生成证据proof(μ,σ,R),其中R=wr,r为随机数,μ=∑p∈pνp·mp+r, σ = Π p ∈ P σ p v p ;
(6-6)云服务器将证据proof(μ,σ,R)返回给审计服务器;
(6-7)审计服务器根据proof(μ,σ,R)分别计算两个值left=e(σ·R,g)以及 right = e ( ( Π p ∈ P H ( p ) v p ) · u μ , v ) ; 其中e()是PBC库中的一个element_pairing函数;
(6-8)审计服务器判断两个值left和right是否相等,若相等,则表示审计成功,否则表示审计失败;
(6-9)审计服务器将审计结果返回给用户端,并返回步骤(3)。
步骤(7)包括以下子步骤:
(7-1)用户端连接云服务器,修改需要修改的文件并保存;
(7-2)云服务器对修改后文件进行分块;
(7-3)云服务器将修改后文件的分块与修改前文件的分块进行对比,以找出所有插入、修改、删除的分块;
(7-4)云服务器对插入的分块,执行步骤(7-5),对于替换的分块,执行步骤(7-6),对于删除的分块,执行步骤(7-7);
(7-5)对于插入的分块,执行插入分块操作,并返回步骤(3);
(7-6)对于替换的分块,执行替换分块操作,并返回步骤(3);
(7-7)对于删除的分块,执行删除分块操作,并返回步骤(3)。
子步骤(7-5)包括以下子步骤:
(7-5-1)云服务器将插入的分块以及插入分块的位置发送到用户端;
(7-5-2)用户端将插入分块的位置告知审计服务器;
(7-5-3)审计服务器生成插入分块的索引号,并更新索引转换表;
(7-5-4)审计服务器将插入分块的索引号发送给用户端;
(7-5-5)用户端根据插入分块的索引号和插入分块生成插入分块的标签;
(7-5-6)用户端将插入分块的标签及其索引号发送到云服务器;
(7-5-7)云服务器保存插入分块、分块标签、分块索引,并返回步骤(7-5)。
子步骤(7-6)包括以下子步骤:
(7-6-1)云服务器将替换的分块及其索引号发送到用户端;
(7-6-2)用户端根据替换的分块、索引号、用户的私钥sk(x)、用户的公钥pk(u,w,g,v)计算标签;
(7-6-3)用户端将标签发送到云服务器;
(7-6-4)云服务器保存替换的分块、块标签及其索引号;并返回步骤(7-6)。
子步骤(7-7)包括以下子步骤:
(7-7-1)云服务器将要删除的分块的索引号发送到用户端;
(7-7-2)用户端将要删除的分块的索引号发送到审计服务器;
(7-7-3)审计服务器根据要删除的分块的索引号更新索引转换表,即删除相应索引号;
(7-7-4)审计服务器告知用户端更新完成;
(7-7-5)用户端告知云服务器更新完成;
(7-7-6)云服务器删除要删除的分块、块标签及其索引号;并返回步骤(7-7)。
通过本发明所构思的以上技术方案,与现有技术相比,本发明具有以下的有益效果:
(1)审计性能和效率高
由于采用了步骤(6-3)和步骤(6-5),审计过程审计方提供的随机数是固定的460个(i,vi)对组成的配对集合,服务方提供的证据是固定的(μ,σ,R)三个值,因此协议交互时的带宽开销、审计方和服务方的存储开销、审计方和服务方的计算开销都为O(1),而现有MHT方案均为O(logn),所以提高了审计性能和效率。
(2)支持数据动态更新
由于采用了步骤(7),本方案支持用户修改文件操作,即支持数据动态更新。
附图说明
图1为本发明用于公开数据完整性校验的索引转换方法的系统架构图。
图2为本发明用于公开数据完整性校验的索引转换方法的流程图。
图3为本发明方法中步骤(2)的细化流程图。
图4为本发明方法中步骤(4)的细化流程图。
图5为本发明方法中步骤(5)的细化流程图。
图6为本发明方法中步骤(6)的细化流程图。
图7为本发明方法中步骤(7)的细化流程图。
图8为本发明方法中子步骤(7-4)的细化流程图。
图9为本发明方法中子步骤(7-5)的细化流程图。
图10为本发明方法中子步骤(7-6)的细化流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下首先对本发明中的技术术语进行解释和说明:
云环境:狭义云指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。它意味着计算能力也可作为一种商品通过互联网进行流通。
审计:审计是指对数据进行完整性校验,即通过审计,可知被审计数据是否完整。
如图1所示,本发明用于公开数据完整性校验的索引转换方法的架构包括:
a)用户端:是指与服务器相对应,为客户提供本地服务的程序。一般安装在普通的用户机上,需要与服务器互相配合执行。较常用的用户端包括网页浏览器等。
b)云服务器:为用户提供云服务的服务器。
c)审计服务器:为用户提供审计服务的服务器。
d)数据流:代表传输中所使用的信息的数字编码信号序列。
e)审计数据流:审计过程中,因审计需要,在服务器与服务器、服务器和用户端之间产生的数据流。
如图2所示,本发明用于公开数据完整性校验的索引转换方法包括以下步骤:
(1)用户端登录到云服务器和审计服务器;具体而言,用户端首先获取用户输入的用户名和密码,然后通过TCP/IP协议建立其自身与云服务器和审计服务器之间的连接;
(2)用户端同步用户的公钥到云服务器和审计服务器;
(3)用户端接收用户请求,并且根据用户请求判断是执行上传文件操作、删除文件操作、审计文件操作、还是修改文件操作,如果是执行上传文件操作,则进入步骤(4),如果是执行删除文件操作,则进入步骤(5),如果是执行审计文件操作,则进入步骤(6),如果是执行修改文件操作,则进入步骤(7),否则过程结束;
(4)用户端从用户接收需要上传的文件F,根据用户的公钥和私钥将上传的文件F进行分块,并计算每个分块的标签,将需要上传的文件F及其每个分块的标签上传到云服务器,并返回步骤(3);
(5)用户端从用户接收需要删除的文件,并在云服务器和审计服务器中删除与需要删除的文件对应的文件、文件标签以及文件相关信息,并返回步骤(3);
(6)用户端从用户接收需要审计的文件,根据该审计文件向审计服务器发送审计文件请求,获取审计结果,并返回步骤(3);
(7)用户端从用户接收需要修改的文件,根据该修改文件向云服务器提交修改文件请求,修改完成后保存文件,并返回步骤(3)。
如图3所示,本方法中的步骤(2)包括以下子步骤:
(2-1)用户端根据用户密码生成私钥sk(x);具体而言,私钥仅包含一个元素x,表示为sk(x);
(2-2)用户端判断本地是否存在公钥pk(u,w,g,v),若存在,则转入步骤(2-3),若不存在,则转入步骤(2-4);具体而言,公钥包含4个元素,分别为u,w,g,v,表示为pk(u,w,g,v),其中g为常量,其取值为程序第一次启动时随机生成,并在之后程序运行时固定不变,其它3个元素u,w是开源的基于配对的密码库(The Pairing-Based Cryptography Library,简称PBC库)中G1群的任意元素,g和v都是PBC库中G2群的元素。本地公钥保存在/Audit/Client/用户名/pk.dat文件中,云服务器将公钥保存在hdfs的/Audit/Prover/用户名/pk.dat中,审计服务器将公钥保存在hdfs的/Audit/Auditor/用户名/pk.dat中,其中云服务器和审计服务器所使用的hdfs是相互独立的。
(2-3)用私钥sk(x)检验公钥pk(u,w,g,v)的正确性,即判断w=ux且v=gx是否成立,若成立,则表示公钥正确,并转入步骤(2-5),否则转入步骤(2-4);
(2-4)从PBC库的G1群中随机取出一个元素,并将其赋值给u,并计算w=ux以及v=gx,则新的公钥为pk(u,w,g,v);
(2-5)用户端将用户的公钥pk(u,w,g,v)同步到云服务器和审计服务器;
(2-6)将公钥pk(u,w,g,v)保存到本地,过程结束。
如图4所示,本方法中的步骤(4)包括以下子步骤:
(4-1)用户端判断需要上传的文件F是否已经存在于云服务器中,若存在,则返回步骤(3),若不存在,则进入步骤(4-2);具体而言,云服务器将文件存储在hdfs中的/Audit/Prover/用户名/文件名,将标签存储在hdfs中的/Audit/Prover/用户名/文件名.sig中,要查询文件是否存在,只需要调用hdfsExists函数;
(4-2)用户端将需要上传的文件F分为n块,将每个分块的内容分别映射到PBC库中的对应元素,所有元素构成集合F={m1,m2….,mn},对每一个分块元素mi(其中1≤i≤n),用分块、索引号、私钥sk(x)和公钥pk(u,w,g,v)计算其相应的标签
Figure BDA00002618508100101
其中H(·)是一个hash函数,H(i)表示对索引号i进行hash运算,其中n的取值等于文件的大小除以分块大小,分块大小为1Kb到8Mb之间,优选为1Mb;
(4-3)用户端将需要上传的文件F的文件信息发送到审计服务器;具体而言,该文件信息的格式为:
文件名 文件大小 文件块数n 索引转换表
其中索引转换表是一个数组,数组中第j个元素表示第j个分块元素mj的索引号,对于新上传的文件,第k个分块元素mk的索引号即为k,审计服务器将文件信息存储在hdfs中的/Audit/Auditor/用户名/文件名.info中;
(4-4)用户端将所有分块m1,m2….,mn及其标签上传到云服务器,将文件信息上传到审计服务器,并返回步骤(3)。
如图5所示,本方法中的步骤(5)包括以下子步骤:
(5-1)用户端查询审计服务器中是否存在需要删除的文件的文件信息,若存在,则转入步骤(5-2),否则转入步骤(5-3);具体而言,判断审计服务器是否存在该文件的文件信息,只需要查询hdfs中/Audit/Auditor/用户名/文件名.info是否存在即可;
(5-2)审计服务器删除该文件的文件信息;
(5-3)查询云服务器中是否存在该文件,若存在,则转入步骤(5-4),否则返回步骤(3);具体而言,查询云服务器是否存在该文件是通过查询hdfs中/Audit/Prover/用户名/文件名是否存在。
(5-4)云服务器删除该文件的所有分块及其标签,并返回步骤(3)。
如图6所示,本方法中的步骤(6)包括以下子步骤:
(6-1)用户端发送审计请求以及需要审计的文件名到审计服务器;
(6-2)审计服务器根据审计请求和文件名查询需要审计的文件是否存在,若存在,则转入步骤(6-3),若不存在,则表示审计失败,转入步骤(6-9);
(6-3)审计服务器根据需要审计的文件的文件信息,随机抽取C次分块,构成分块集合P={s1,s2….,sC},其中C的取值范围为100-1000,S表示抽取的分块的索引号,对第p次抽取的分块,随机生成相应的随机数vp,组成C个配对集合chal={(p,νp)}p∈p,其中1≤p≤C,审计服务器向云服务器发送审计请求,并将用户名、文件名、配对集合chal发送到云服务器;其中文件信息已在上述步骤(4-3)中描述,在此不再赘述,在抽取分块过程中,一个分块可以被重复地抽取,在本实施方式中,C的取值为460;
(6-4)云服务器根据审计请求、用户名、文件名及配对集合chal,查询该用户名下相应文件是否存在,若存在,则转入步骤(6-5),若不存在,则表示审计失败,转入步骤(6-9);
(6-5)云服务器根据配对集合chal生成证据proof(μ,σ,R),其中R=wr,r为随机数,μ=∑p∈Pνp·mp+r,
Figure BDA00002618508100121
其中mp和σp为云服务器根据用户名和文件名查找得到;
(6-6)云服务器将证据proof(μ,σ,R)返回给审计服务器;
(6-7)审计服务器根据proof(μ,σ,R)分别计算两个值left=e(σ·R,g)以及 right = e ( ( Π p ∈ P H ( p ) v p ) · u μ , v ) ; 其中e()是一个函数,具体而言,是PBC库中的element_pairing函数;
(6-8)审计服务器判断两个值left和right是否相等,若相等,则表示审计成功,否则表示审计失败;
(6-9)审计服务器将审计结果返回给用户端,并返回步骤(3)。
如图7所示,本方法中的步骤(7)包括以下子步骤:
(7-1)用户端连接云服务器,修改需要修改的文件并保存;
(7-2)云服务器对修改后文件进行分块;本步骤与上述步骤(4-2)相同,在此不再赘述;
(7-3)云服务器将修改后文件的分块与修改前文件的分块进行对比,以找出所有插入、修改、删除的分块;
(7-4)云服务器对插入的分块,执行步骤(7-5),对于替换的分块,执行步骤(7-6),对于删除的分块,执行步骤(7-7);
(7-5)对于插入的分块,执行插入分块操作,并返回步骤(3);
(7-6)对于替换的分块,执行替换分块操作,并返回步骤(3);
(7-7)对于删除的分块,执行删除分块操作,并返回步骤(3)。
如图8所示,本发明的子步骤(7-5)包括以下子步骤:
(7-5-1)云服务器将插入的分块以及插入分块的位置发送到用户端;
(7-5-2)用户端将插入分块的位置告知审计服务器;
(7-5-3)审计服务器生成插入分块的索引号,并更新索引转换表;新生成的索引号为当前数组中索引号最大值加1,由于索引转换方法就是一个数组,因此更新索引转换方法就是在数组中插入、修改、删除元素;
(7-5-4)审计服务器将插入分块的索引号发送给用户端;
(7-5-5)用户端根据插入分块的索引号和插入分块生成插入分块的标签;
(7-5-6)用户端将插入分块的标签及其索引号发送到云服务器;
(7-5-7)云服务器保存插入分块、分块标签、分块索引,并返回步骤(7-5)。
如图9所示,本发明的子步骤(7-6)包括以下子步骤:
(7-6-1)云服务器将替换的分块及其索引号发送到用户端;
(7-6-2)用户端根据替换的分块、索引号、用户的私钥sk(x)、用户的公钥pk(u,w,g,v)计算标签;计算标签的步骤与上述(4-2)步骤完全相同,在此不再赘述;
(7-6-3)用户端将标签发送到云服务器;
(7-6-4)云服务器保存替换的分块、块标签及其索引号;并返回步骤(7-6)。
如图10所示,本发明的子步骤(7-7)包括以下子步骤:
(7-7-1)云服务器将要删除的分块的索引号发送到用户端;
(7-7-2)用户端将要删除的分块的索引号发送到审计服务器;
(7-7-3)审计服务器根据要删除的分块的索引号更新索引转换表,即删除相应索引号;
(7-7-4)审计服务器告知用户端更新完成;
(7-7-5)用户端告知云服务器更新完成;
(7-7-6)云服务器删除要删除的分块、块标签及其索引号;并返回步骤(7-7)。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种用于公开数据完整性校验的索引转换方法,其特征在于,包括以下步骤:
(1)用户端登录到云服务器和审计服务器;
(2)用户端同步用户的公钥到云服务器和审计服务器;
(3)用户端接收用户请求,并且根据用户请求判断是执行上传文件操作、删除文件操作、审计文件操作、还是修改文件操作,如果是执行上传文件操作,则进入步骤(4),如果是执行删除文件操作,则进入步骤(5),如果是执行审计文件操作,则进入步骤(6),如果是执行修改文件操作,则进入步骤(7),否则过程结束;
(4)用户端从用户接收需要上传的文件F,根据用户的公钥和私钥将上传的文件F进行分块,并计算每个分块的标签,将需要上传的文件F及其每个分块的标签上传到云服务器,并返回步骤(3);
(5)用户端从用户接收需要删除的文件,并在云服务器和审计服务器中删除与需要删除的文件对应的文件、文件标签以及文件相关信息,并返回步骤(3);
(6)用户端从用户接收需要审计的文件,根据该审计文件向审计服务器发送审计文件请求,获取审计结果,并返回步骤(3);
(7)用户端从用户接收需要修改的文件,根据该修改文件向云服务器提交修改文件请求,修改完成后保存文件,并返回步骤(3)。
2.根据权利要求1所述的索引转换方法,其特征在于,步骤(2)包括以下子步骤:
(2-1)用户端根据用户密码生成私钥sk(x);具体而言,私钥仅包含一个元素x,表示为sk(x);
(2-2)用户端判断本地是否存在公钥pk(u,w,g,v),若存在,则转入步骤(2-3),若不存在,则转入步骤(2-4);具体而言,公钥包含4个元素,分别为u,w,g,v,表示为pk(u,w,g,v),其中g为常量;
(2-3)用私钥sk(x)检验公钥pk(u,w,g,v)的正确性,即判断w=ux且v=gx是否成立,若成立,则转入步骤(2-5),否则转入步骤(2-4);
(2-4)从PBC库的G1群中随机取出一个元素,并将其赋值给u,并计算w=ux以及v=gx,则新的公钥为pk(u,w,g,v);
(2-5)用户端将用户的公钥pk(u,w,g,v)同步到云服务器和审计服务器;
(2-6)将公钥pk(u,w,g,v)保存到本地,过程结束。
3.根据权利要求1所述的索引转换方法,其特征在于,步骤(4)包括以下子步骤:
(4-1)用户端判断需要上传的文件F是否已经存在于云服务器中,若存在,则返回步骤(3),若不存在,则进入步骤(4-2);
(4-2)用户端将需要上传的文件F分为n块,将每个分块的内容分别映射到PBC库中的对应元素,所有元素构成集合F={m1,m2….,mn},对每一个分块元素mi,其中i为索引号,1≤i≤n,n为正整数,用分块、索引号、私钥sk(x)和公钥pk(u,w,g,v)计算其相应的标签
Figure FDA00002618508000021
其中H(·)是一个hash函数,H(i)表示对索引号i进行hash运算;
(4-3)用户端将需要上传的文件F的文件信息发送到审计服务器;具体而言,该文件信息包括文件名、文件大小、文件块数n以及索引转换表,其中索引转换表是一个数组,数组中第j个元素表示第j个分块元素mj的索引号,对于新上传的文件,第k个分块元素mk的索引号即为k;
(4-4)用户端将所有分块m1,m2….,mn及其标签上传到云服务器,将文件信息上传到审计服务器,并返回步骤(3)。
4.根据权利要求1所述的索引转换方法,其特征在于,步骤(5)包括以下子步骤:
(5-1)用户端查询审计服务器中是否存在需要删除的文件的文件信息,若存在,则转入步骤(5-2),否则转入步骤(5-3);
(5-2)审计服务器删除该文件的文件信息;
(5-3)查询云服务器中是否存在该文件,若存在,则转入步骤(5-4),否则返回步骤(3);
(5-4)云服务器删除该文件的所有分块及其标签,并返回步骤(3)。
5.根据权利要求1所述的索引转换方法,其特征在于,步骤(6)包括以下子步骤:
(6-1)用户端发送审计请求以及需要审计的文件名到审计服务器;
(6-2)审计服务器根据审计请求和文件名查询需要审计的文件是否存在,若存在,则转入步骤(6-3),若不存在,则表示审计失败,转入步骤(6-9);
(6-3)审计服务器根据需要审计的文件的文件信息,随机抽取C次分块,构成分块集合P={s1,s2….,sC},其中C的取值范围为100-1000,S表示抽取的分块的索引号,对第p次抽取的分块,随机生成相应的随机数vp,组成C个配对集合chal={(p,νp)}p∈p,其中1≤p≤C,审计服务器向云服务器发送审计请求,并将用户名、文件名、配对集合chal发送到云服务器;
(6-4)云服务器根据审计请求、用户名、文件名及配对集合chal,查询该用户名下相应文件是否存在,若存在,则转入步骤(6-5),若不存在,则表示审计失败,转入步骤(6-9);
(6-5)云服务器根据配对集合chal生成证据proof(μ,σ,R),其中R=wr,r为随机数,μ=∑p∈pvp·mp+r, σ = Π p ∈ P σ p v p ;
(6-6)云服务器将证据proof(μ,σ,R)返回给审计服务器;
(6-7)审计服务器根据proof(μ,σ,R)分别计算两个值left=e(σ·R,g)以及 right = e ( ( Π p ∈ P H ( p ) v p ) · u μ , v ) ; 其中e()是PBC库中的element_pairing函数;
(6-8)审计服务器判断两个值left和right是否相等,若相等,则表示审计成功,否则表示审计失败;
(6-9)审计服务器将审计结果返回给用户端,并返回步骤(3)。
6.根据权利要求1所述的索引转换方法,其特征在于,步骤(7)包括以下子步骤:
(7-1)用户端连接云服务器,修改需要修改的文件并保存;
(7-2)云服务器对修改后文件进行分块;
(7-3)云服务器将修改后文件的分块与修改前文件的分块进行对比,以找出所有插入、替换、删除的分块;
(7-4)云服务器对插入的分块,执行步骤(7-5),对于替换的分块,执行步骤(7-6),对于删除的分块,执行步骤(7-7);
(7-5)对于插入的分块,执行插入分块操作,并返回步骤(3);
(7-6)对于替换的分块,执行替换分块操作,并返回步骤(3);
(7-7)对于删除的分块,执行删除分块操作,并返回步骤(3)。
7.根据权利要求6所述的索引转换方法,其特征在于,子步骤(7-5)包括以下子步骤:
(7-5-1)云服务器将插入的分块以及插入分块的位置发送到用户端;
(7-5-2)用户端将插入分块的位置告知审计服务器;
(7-5-3)审计服务器生成插入分块的索引号,并更新索引转换表;
(7-5-4)审计服务器将插入分块的索引号发送给用户端;
(7-5-5)用户端根据插入分块的索引号和插入分块生成插入分块的标签;
(7-5-6)用户端将插入分块的标签及其索引号发送到云服务器;
(7-5-7)云服务器保存插入分块、分块标签、分块索引,并返回步骤(7-5)。
8.根据权利要求6所述的索引转换方法,其特征在于,子步骤(7-6)包括以下子步骤:
(7-6-1)云服务器将替换的分块及其索引号发送到用户端;
(7-6-2)用户端根据替换的分块、索引号、用户的私钥sk(x)、用户的公钥pk(u,w,g,v)计算标签;
(7-6-3)用户端将标签发送到云服务器;
(7-6-4)云服务器保存替换的分块、块标签及其索引号;并返回步骤(7-6)。
9.根据权利要求6所述的索引转换方法,其特征在于,子步骤(7-7)包括以下子步骤:
(7-7-1)云服务器将要删除的分块的索引号发送到用户端;
(7-7-2)用户端将要删除的分块的索引号发送到审计服务器;
(7-7-3)审计服务器根据要删除的分块的索引号更新索引转换表,即删除相应索引号;
(7-7-4)审计服务器告知用户端更新完成;
(7-7-5)用户端告知云服务器更新完成;
(7-7-6)云服务器删除要删除的分块、块标签及其索引号;并返回步骤(7-7)。
CN201210557352.8A 2012-12-20 2012-12-20 一种用于公开数据完整性校验的索引转换方法 Active CN103067363B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210557352.8A CN103067363B (zh) 2012-12-20 2012-12-20 一种用于公开数据完整性校验的索引转换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210557352.8A CN103067363B (zh) 2012-12-20 2012-12-20 一种用于公开数据完整性校验的索引转换方法

Publications (2)

Publication Number Publication Date
CN103067363A true CN103067363A (zh) 2013-04-24
CN103067363B CN103067363B (zh) 2015-06-17

Family

ID=48109825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210557352.8A Active CN103067363B (zh) 2012-12-20 2012-12-20 一种用于公开数据完整性校验的索引转换方法

Country Status (1)

Country Link
CN (1) CN103067363B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425941A (zh) * 2013-07-31 2013-12-04 广东数字证书认证中心有限公司 云存储数据完整性的验证方法、设备和服务器
CN104601563A (zh) * 2015-01-06 2015-05-06 南京信息工程大学 基于mle的可公开验证云存储数据持有性的方法
CN104618111A (zh) * 2015-01-16 2015-05-13 北京科技大学 一种基于随机动态的云应用数据完整性检测方法
CN104866779A (zh) * 2015-04-07 2015-08-26 福建师范大学 一种控制电子文件生命周期及安全删除的方法及系统
CN105787389A (zh) * 2016-03-02 2016-07-20 四川师范大学 云文件完整性公开审计证据生成方法及公开审计方法
CN106897465A (zh) * 2017-03-31 2017-06-27 联想(北京)有限公司 一种文件审计方法及系统
CN108111313A (zh) * 2018-01-12 2018-06-01 哈尔滨工业大学深圳研究生院 对云服务器上存储的用户文件进行第三方审计的方法
CN110049033A (zh) * 2019-04-10 2019-07-23 南京信息工程大学 一种支持企业数据动态操作的云审计方法
CN116418580A (zh) * 2023-04-10 2023-07-11 广东粤密技术服务有限公司 用于局域网的数据完整性保护检测方法、装置及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102413313A (zh) * 2010-09-26 2012-04-11 索尼公司 数据完整性验证信息生成方法和装置、数据完整性验证方法和装置
CN102710757B (zh) * 2012-05-21 2014-11-05 北京航空航天大学 一种分布式云存储数据完整性保护方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425941A (zh) * 2013-07-31 2013-12-04 广东数字证书认证中心有限公司 云存储数据完整性的验证方法、设备和服务器
CN103425941B (zh) * 2013-07-31 2016-12-28 数安时代科技股份有限公司 云存储数据完整性的验证方法、设备和服务器
CN104601563B (zh) * 2015-01-06 2017-09-15 南京信息工程大学 基于mle的可公开验证云存储数据持有性的方法
CN104601563A (zh) * 2015-01-06 2015-05-06 南京信息工程大学 基于mle的可公开验证云存储数据持有性的方法
CN104618111A (zh) * 2015-01-16 2015-05-13 北京科技大学 一种基于随机动态的云应用数据完整性检测方法
CN104866779A (zh) * 2015-04-07 2015-08-26 福建师范大学 一种控制电子文件生命周期及安全删除的方法及系统
CN104866779B (zh) * 2015-04-07 2018-05-11 福建师范大学 一种控制电子文件生命周期及安全删除的方法及系统
CN105787389A (zh) * 2016-03-02 2016-07-20 四川师范大学 云文件完整性公开审计证据生成方法及公开审计方法
CN105787389B (zh) * 2016-03-02 2018-07-27 四川师范大学 云文件完整性公开审计证据生成方法及公开审计方法
CN106897465A (zh) * 2017-03-31 2017-06-27 联想(北京)有限公司 一种文件审计方法及系统
CN106897465B (zh) * 2017-03-31 2020-08-25 联想(北京)有限公司 一种文件审计方法及系统
CN108111313A (zh) * 2018-01-12 2018-06-01 哈尔滨工业大学深圳研究生院 对云服务器上存储的用户文件进行第三方审计的方法
CN108111313B (zh) * 2018-01-12 2021-05-18 哈尔滨工业大学深圳研究生院 对云服务器上存储的用户文件进行第三方审计的方法
CN110049033A (zh) * 2019-04-10 2019-07-23 南京信息工程大学 一种支持企业数据动态操作的云审计方法
CN116418580A (zh) * 2023-04-10 2023-07-11 广东粤密技术服务有限公司 用于局域网的数据完整性保护检测方法、装置及电子设备
CN116418580B (zh) * 2023-04-10 2023-11-24 广东粤密技术服务有限公司 用于局域网的数据完整性保护检测方法、装置及电子设备

Also Published As

Publication number Publication date
CN103067363B (zh) 2015-06-17

Similar Documents

Publication Publication Date Title
CN103067363B (zh) 一种用于公开数据完整性校验的索引转换方法
CN107396360B (zh) 区块验证方法及装置
CN108805570B (zh) 数据处理方法、装置及存储介质
CN102170440B (zh) 适用于存储云间数据安全迁移的方法
CN110597911B (zh) 一种区块链网络的证书处理方法、装置、电子设备及存储介质
CN108985100B (zh) 基于区块链的元素安全性证明方法、装置、设备和介质
CN111737724A (zh) 一种数据处理方法、装置、智能设备及存储介质
CN110599095B (zh) 基于区块链网络的危废处理方法及区块链网络的节点
EP3631668B1 (en) High integrity logs for distributed software services
EP3709568A1 (en) Deleting user data from a blockchain
EP3869376B1 (en) System and method for blockchain based decentralized storage with dynamic data operations
CN113256297B (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
Marsalek et al. Tackling data inefficiency: Compressing the bitcoin blockchain
CN112448946A (zh) 基于区块链的日志审计方法及装置
CN113901505A (zh) 数据共享方法、装置、电子设备及存储介质
Wang et al. Ess: An efficient storage scheme for improving the scalability of bitcoin network
Wu et al. Robust and auditable distributed data storage with scalability in edge computing
CN114127724A (zh) 针对多副本存储的完整性审计
CN114239044A (zh) 一种去中心化的可追溯共享访问系统
CN116827957B (zh) 基于多区块链的信息处理方法、装置、设备以及介质
Wei et al. Dynamic data integrity auditing for secure outsourcing in the cloud
CN104717187A (zh) 一种登录方法及设备
Xu et al. A generic integrity verification algorithm of version files for cloud deduplication data storage
CN112688990A (zh) 一种混合云数据审计方法、系统、电子设备及存储介质
CN117010889A (zh) 数据处理方法、装置及设备、介质、产品

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant