CN109818944B - 一种支持预处理的云数据外包及完整性验证方法及装置 - Google Patents

一种支持预处理的云数据外包及完整性验证方法及装置 Download PDF

Info

Publication number
CN109818944B
CN109818944B CN201910014719.3A CN201910014719A CN109818944B CN 109818944 B CN109818944 B CN 109818944B CN 201910014719 A CN201910014719 A CN 201910014719A CN 109818944 B CN109818944 B CN 109818944B
Authority
CN
China
Prior art keywords
data
outsourcing
person
parameters
verifier
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.)
Active
Application number
CN201910014719.3A
Other languages
English (en)
Other versions
CN109818944A (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.)
Guilin University of Electronic Technology
Original Assignee
Guilin University of Electronic 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 Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN201910014719.3A priority Critical patent/CN109818944B/zh
Publication of CN109818944A publication Critical patent/CN109818944A/zh
Application granted granted Critical
Publication of CN109818944B publication Critical patent/CN109818944B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提出一种支持预处理的云数据外包及完整性验证方法,包括:数据外包者选取安全参数和抗碰撞哈希函数,生成公钥及私钥;数据外包者根据公钥执行第一预计算过程,生成离线数据处理参数;数据外包者根据私钥和离线数据处理参数执行数据处理过程,生成处理后的数据和数据标签并上传至云存储服务器;数据验证者根据公钥和数据标签执行第二预计算过程,生成离线数据验证参数;数据验证者根据所述数据外包者的公钥和所述离线数据验证参数验证外包数据的数据标签,如果合法则生成挑战;云存储服务器根据存储的所述外包数据对收到的挑战计算响应;数据验证者根据公钥和离线数据验证参数对收到的响应进行验证,以判断对应外包数据的完整性。

Description

一种支持预处理的云数据外包及完整性验证方法及装置
技术领域
本发明涉及信息安全密码领域,具体涉及一种支持预处理的云数据外包及完整性验证方法及装置。
背景技术
随着云计算技术的快速发展,云计算技术逐渐被广大用户接受和使用。然而,一旦用户将数据上传至云存储服务器之后,用户对该数据的控制权将转移到云存储服务器。如果云存储服务器对用户数据做了修改或删除,用户将难以察觉或取证。在此背景下,已提出了大量旨在确保云存储数据安全的密码方案。
在现有可公开验证的云数据完整性验证方案中,数据外包者在上传数据之前需要对该数据做相应的处理,该过程包含大量耗时的模幂运算,其运算量和数据的大小成正相关。另外,当数据上传到云存储服务器之后,数据验证者可以和云存储服务器进行交互,以验证该数据当前是否保存完整,该过程也要求数据验证者执行大量耗时的模幂运算。因此,有必要降低数据处理阶段和完整性验证阶段的用户计算负担,使得现有的可公开验证的云数据完整性验证方案能够运行于用户计算能力较弱的设备之上。
针对上述问题,目前已提出了在线/离线云数据完整性验证技术和可验证外包模幂运算技术。但是,现有的在线/离线云数据完整性验证技术仅解决了数据处理阶段计算效率较低的问题,且这些技术所生成的离线参数不能够重复使用,当用户需要外包大规模数据时,该用户必须能够安全存储所需的大量离线参数。此外,这些技术要求用户在执行预处理过程时输入私钥,这意味着云处理过程仅能由用户自己执行、无法委托他人执行,否则将泄露其私钥。
现有的可验证外包模幂运算技术考虑了如何同时提升数据处理阶段和完整性验证阶段的计算效率,该技术引入额外的云计算服务器负责执行用户外包的模幂运算任务。显然,这里要求用户将模幂运算外包之前需要对其参数做相应的处理,以确保它们的隐私,且最终对云计算服务器返回的结果也需进行验证,以确保外包计算结果的正确性。这个交互过程也将占用用户一定的计算时间和通信时间。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种支持预处理的云数据外包及完整性验证方法及装置,旨在解决云数据外包场景下计算能力较弱的设备难以高效处理数据和验证完整性的问题。
为实现上述目的及其他相关目的,本发明提供一种支持预处理的云数据外包及完整性验证方法,该方法包括:
数据外包者选取安全参数和抗碰撞哈希函数,生成自己的公钥及私钥;
数据外包者根据自己的公钥执行第一预计算过程,生成一组离线数据处理参数;
数据外包者根据自己的私钥和所述离线数据处理参数执行数据处理过程,生成处理后的数据和数据标签并将所述生成的处理后的数据和数据标签上传至云存储服务器;
数据验证者根据所述数据外包者的公钥和数据标签执行第二预计算过程,生成一组离线数据验证参数;
数据验证者根据所述数据外包者的公钥和所述离线数据验证参数验证外包数据的数据标签,如果合法则生成一个挑战,并将该挑战发送给云存储服务器;
云存储服务器根据存储的所述外包数据对收到的挑战计算一个响应,并将该响应回复给数据验证者;
数据验证者根据数据外包者的公钥和离线数据验证参数对收到的所述响应进行验证,以判断对应外包数据的完整性。
可选地,所述数据外包都的公钥为:
Figure BDA0001938634180000021
其中,G和GT为阶为素数p的循环群,g表示循环群G的一个生成元,
Figure BDA0001938634180000022
表示一个双线性映射运算
Figure BDA0001938634180000023
G×G→GT,H1(·)和H2(·)抗碰撞哈希函数;υ=gα,ρ=ga,λ=gαz分别表示群G上的幂运算,u1,u2,...,us+1表示参数;
所述数据外包者的私钥表示为:sk=(α,a,z),α,a,z分别表示Zp域中的三个非0元素。
可选地,所述数据外包者根据自己的公钥执行第一预计算过程,生成一组离线数据处理参数,具体包括:
数据外包者计算|p|-1个参数
Figure BDA0001938634180000024
0≤j≤|p|-1,其中
Figure BDA0001938634180000025
得到一组离线的数据处理参数
Figure BDA0001938634180000026
可选地,所述数据外包者根据自己的私钥和所述离线数据处理参数执行数据处理过程,生成处理后的数据和数据标签,具体包括:
数据外包者随机选取一个唯一的数据标识符Fid,将数据M划分为r个数据块mi,每个数据块mi包含s个数据段mi,l,即M=m1||m2||…||mr且mi=(mi,1,mi,2,…,mi,s),||表示字符串连接;
数据外包者随机选择Zp域中的两个非0元素β0
Figure BDA0001938634180000027
计算得到公开参数
Figure BDA0001938634180000031
Figure BDA0001938634180000032
其中β0[j]表示β0的第j位二进制数值,β1[j]表示β1的第j位二进制数值,0≤j≤|p|-1;
数据外包者对每个数据块mi,计算
Figure BDA0001938634180000033
以及
Figure BDA0001938634180000034
其中ci[j]表示ci的第j位二进制数值,θi表示数据块mi的元数据;
数据外包者构造一个字符串τ0←Fid||r||γ0||γ1,随机选择Zp域中的一个非0元素
Figure BDA0001938634180000035
计算
Figure BDA0001938634180000036
和δ=b+aH2(B||τ0)mod p,得到τ←τ0||B||δ,其中b[j]表示b的第j位二进制数值,τ表示数据M的数据标签;τ0表示字符串,包含了和数据M相关的参数;
数据外包者得到处理后的数据
Figure BDA0001938634180000037
可选地,所述数据验证者根据所述数据外包者的公钥和数据标签执行第二预计算过程,生成一组离线数据验证参数,具体包括:
数据验证者计算参数
Figure BDA0001938634180000038
得到一组离线数据验证参数
Figure BDA0001938634180000039
可选地,所述数据验证者根据所述数据外包者的公钥和所述离线数据验证参数验证外包数据的数据标签,如果合法则生成一个挑战,具体包括;
数据验证者读取处理后的数据
Figure BDA00019386341800000310
和数据标签τ,分解数据标签τ得到τ0、B和δ,计算h=H2(B||τ0),并验证
Figure BDA00019386341800000311
是否成立,其中δ[j]表示δ的第j位二进制数值,h[j]表示h的第j位二进制数值;若不成立,则终止执行后续步骤;
数据验证者从[1,r]中随机选取一个子集I,随机选取域Zp中的两个非0元素ω,
Figure BDA00019386341800000312
最后,数据验证者得到挑战
Figure BDA00019386341800000313
可选地,云存储服务器根据存储的所述外包数据对收到的挑战计算一个响应,具体包括:
云存储服务器根据收到的挑战Q,以及存储的处理后的数据
Figure BDA00019386341800000314
和对应的数据标签τ,计算随机变量ηi=ωi mod p,并计算聚合的元数据
Figure BDA00019386341800000315
云存储服务器对挑战的数据块进行聚合,计算得到聚合后的数据块μ=(μ12,…,μs),其中
Figure BDA0001938634180000041
云存储服务器基于μ=(μ12,…,μs)构造一个多项式
Figure BDA0001938634180000042
计算
Figure BDA0001938634180000043
表示模指数运算;
云存储服务器根据多项式除法计算得到
Figure BDA0001938634180000044
计算
Figure BDA0001938634180000045
其中u0=g,
Figure BDA0001938634180000046
表示多项式
Figure BDA0001938634180000047
的系数,0≤l≤s;
云存储服务器得到关于挑战Q的响应R=(ψ,y,θ)。
可选地,所述数据验证者根据数据外包者的公钥和离线数据验证参数对收到的所述响应进行验证,以判断对应外包数据的完整性,具体包括:
数据验证者计算
Figure BDA0001938634180000048
Figure BDA0001938634180000049
数据验证者验证如下等式是否成立:
Figure BDA00019386341800000410
其中,χ0[j]表示χ0的第j位二进制数值,χ1[j]表示χ1的第j位二进制数值,y[j]表示y的第j位二进制数值,
Figure BDA00019386341800000411
表示
Figure BDA00019386341800000412
的第j位二进制数值;如果上述等式成立,则输出1,表示云存储服务器存放的数据
Figure BDA00019386341800000413
保存完整;否则,输出0,表明该数据已遭到破坏。
为实现上述目的及其他相关目的,本发明还提供一种支持预处理的云数据外包及完整性验证装置,该验证装置包括:
用户密钥生成模块,用于数据外包者选取安全参数和抗碰撞哈希函数,生成自己的公钥及私钥;
数据外包预处理模块,用于数据外包者根据自己的公钥执行第一预计算过程,生成一组离线数据处理参数;
数据处理模块,用于数据外包者根据自己的私钥和所述离线数据处理参数执行数据处理过程,生成处理后的数据和数据标签并将所述生成的处理后的数据和数据标签上传至云存储服务器;
数据完整性验证预处理模块,用于数据验证者根据所述数据外包者的公钥和数据标签执行第二预计算过程,生成一组离线数据验证参数;
完整性挑战生成模块,用于数据验证者根据所述数据外包者的公钥和所述离线数据验证参数验证外包数据的数据标签,如果合法则生成一个挑战,并将该挑战发送给云存储服务器;
完整性响应模块,用于云存储服务器根据存储的所述外包数据对收到的挑战计算一个响应,并将该响应回复给数据验证者;
完整性验证模块,用于数据验证者根据数据外包者的公钥和离线数据验证参数对收到的所述响应进行验证,以判断对应外包数据的完整性。
如上所述,本发明的一种支持预处理的云数据外包及完整性验证方法及装置,具有以下
有益效果:
本发明所提出的方法允许数据外包者和数据验证者执行各自的预处理过程,且预处理过程无需使用用户私钥,因此用户可以根据需求将各自的预处理过程委托给他人执行;预计算过程所生成参数的规模不依赖于外包数据的大小,并可以重复使用,即数据外包者可以对不同的数据使用相同的离线参数进行处理、数据验证者能够使用相同的离线参数周期性的验证同一数据的完整性,因此本方法可以降低用户存储预处理阶段所生成参数的负担。
附图说明
为了进一步阐述本发明所描述的内容,下面结合附图对本发明的具体实施方式作进一步详细的说明。应当理解,这些附图仅作为典型示例,而不应看作是对本发明的范围的限定。
图1为系统构架图;
图2为本发明所述的一种支持预处理的云数据外包及完整性验证方法的流程图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
为了使本领域技术人员对本发明的技术方案更加清晰的理解,先对本发明中的一些技术术语进行说明。如图1所示,为系统架构图。
(1)数据外包者(Data Outsourcer,DO):计算自己的一对公私钥,将公钥公开;可以执行数据外包预处理过程和在线处理过程,预处理过程无需使用自己的私钥,可生成能够重复使用的数据处理参数;而在线处理过程则利用自己的私钥对数据进行处理,最后将处理后的数据和对应的数据标签上传到云存储服务器。
(2)数据验证者(DataVerifier,DV):可执行数据完整性验证预处理过程,生成可重复使用的验证参数;能够从云存储服务器读取数据外包者的数据内容和对应的数据标签,并能够和云存储服务器执行交互协议,验证该数据的完整性。
(3)云存储服务器(Cloud Storage Server,CS):具有强大的数据存储和计算能力,能够为用户提供数据存储服务和访问服务,但不受用户的完全信任。
本发明所述的一种支持预处理的云数据外包及完整性验证方法使用了双线性映射相关的数学知识,特在此作相关定义说明。
定义一个函数映射
Figure BDA0001938634180000061
G×G→GT将循环群G中的元素映射到循环群GT中,其中G和GT均是两个阶为素数p的循环群。双线性映射
Figure BDA0001938634180000062
需满足如下特性:
(1)双线性特性:对于任意α,β∈G,任意x,y∈Zp,均有e(αxy)=e(α,β)xy成立,其中Zp={0,1,2,..,p-1};
(2)非退化特性:群G中至少存在一个元素g,使得
Figure BDA0001938634180000063
为群GT的生成元;
(3)高效性:存在有效的算法,使得对于任意α,β∈G,可以有效计算出
Figure BDA0001938634180000064
的值。
本发明中使用的哈希函数具备两个基本特性:单向性和抗碰撞性;单向性是指从哈希函数的输入推导出输出是高效的,但从哈希函数的输出计算出其输入是不可行的;抗碰撞性是指无法找到两个不同的输入使其具有相同的哈希函数值。
如图2所示,本发明提供一种支持预处理的云数据外包及完整性验证方法,该方法包括以下步骤:
步骤1.数据外包者选取安全参数和抗碰撞哈希函数,生成自己的公钥及私钥。
具体地,该步骤1具体包括以下子步骤:
步骤11:数据外包者输入系统安全参数κ,运行初始化算法Θ(1κ),输出两个阶为素数p的循环群G和GT以及一个双线性映射运算
Figure BDA0001938634180000065
G×G→GT
其中,所述的初始化算法Θ(1κ),其运行方法如下:数据外包者输入系统安全参数κ,系统根据κ的大小,选择相应的椭圆曲线:Y2=X3+εX+ξ(ε和ξ为系数),用椭圆曲线上的点构成两个素数p阶的循环群G和GT,选择一种映射函数
Figure BDA0001938634180000066
将循环群G中的元素映射到循环群GT中;一般,安全参数κ数值越大,所选取的椭圆曲线上的点也越多,循环群也越大。
步骤12:数据外包者运行随机数生成算法,随机选择循环群G的一个生成元g;
其中,所述的随机数生成算法,其方法如下:根据步骤11所选取的椭圆曲线Y2=X3+εX+ξ,随机选择自变量X的一个值
Figure BDA0001938634180000071
计算对应因变量Y的值
Figure BDA0001938634180000072
若点
Figure BDA0001938634180000073
在所要映射的群中,则成功生成了随机元素;若点
Figure BDA0001938634180000074
不在群中,则继续重新选择X的值,直到找到出现在群中的点。
步骤13:数据外包者选择两种抗碰撞哈希函数H1(·)和H2(·),抗碰撞哈希函数H1(·)和H2(·)满足抗碰撞哈希函数的所有特性。其中所述的抗碰撞哈希函数H1(·)和H2(·)能从Pairing-BasedCryptosystems库函数中调用运行。抗碰撞哈希函数H1(·)的输入为任意长度字符串,输出为域Zp中的一个元素;抗碰撞哈希函数H2(·)的输入为任意长度字符串,输出为域Zp中的一个元素。
步骤14:数据外包者随机选择Zp域中的三个非0元素α,a,
Figure BDA0001938634180000075
计算υ=ga,ρ=ga,λ=gαz,以及s+1个参数
Figure BDA0001938634180000076
其中,
Figure BDA0001938634180000077
表示域Zp的非零元素子集{1,2,..,p-1},随机选择
Figure BDA0001938634180000078
中元素的函数能从Pairing-Based Cryptosystems库函数中调用运行。
最后,数据外包者的公钥表示为
Figure BDA0001938634180000079
私钥表示为sk=(α,a,z)。
步骤2.数据外包者根据自己的公钥执行预计算过程,生成一组离线数据处理参数。
具体地,数据外包者计算|p|-1个参数
Figure BDA00019386341800000710
其中
Figure BDA00019386341800000711
得到一组离线的数据处理参数
Figure BDA00019386341800000712
步骤3.数据外包者根据自己的私钥和离线数据处理参数执行数据处理过程,生成处理后的数据和数据标签并上传至云存储服务器。
具体地,该步骤3具体包括以下子步骤:
步骤31:数据外包者随机选取一个唯一的数据标识符Fid,将数据M划分为r个数据块mi,每个数据块mi包含s个数据段mi,l,即M=m1||m2||…||mr且mi=(mi,1,mi,2,…,mi,s);
步骤32:数据外包者随机选择Zp域中的两个非0元素β0
Figure BDA00019386341800000713
计算得到
Figure BDA00019386341800000714
Figure BDA00019386341800000715
其中β0[j]表示β0的第j位(0≤j≤|p|-1)二进制数值,β1[j]表示β1的第j位(0≤j≤|p|-1)二进制数值;
步骤33:数据外包者对每个数据块mi(1≤i≤r),计算
Figure BDA0001938634180000081
以及
Figure BDA0001938634180000082
其中ci[j]表示ci的第j位(0≤j≤|p|-1)二进制数值,θi表示数据块mi的元数据;
步骤34:数据外包者构造一个字符串τ0←Fid||r||γ0||γ1,随机选择Zp域中的一个非0元素
Figure BDA0001938634180000083
计算
Figure BDA0001938634180000084
和δ=b+aH2(B||τ0)mod p,得到τ←τ0||B||δ,其中b[j]表示b的第j位(0≤j≤|p|-1)二进制数值,τ表示数据M的数据标签;
最后,数据外包者得到处理后的数据
Figure BDA0001938634180000085
将其和数据标签τ一起上传至云存储服务器。τ0是一个字符串,包含了和数据M相关的参数;B和δ共同构成了对字符串τ0的一个数字签名。
步骤4.数据验证者根据数据外包者的公钥和数据标签执行预计算过程,生成一组离线数据验证参数。
具体地,数据验证者计算参数
Figure BDA0001938634180000086
其中0≤j≤|p|-1,得到一组离线数据验证参数
Figure BDA0001938634180000087
步骤5.数据验证者根据数据外包者的公钥和离线数据验证参数验证外包数据的数据标签,如果合法则生成一个挑战,并将该挑战发送给云存储服务器。
具体地,该步骤5具体包括以下子步骤:
步骤51:数据验证者从云存储服务器读取处理后的数据
Figure BDA0001938634180000088
和数据标签τ,分解数据标签τ得到τ0,B和δ,计算h=H2(B||τ0),并验证
Figure BDA0001938634180000089
是否成立,其中δ[j]表示δ的第j位(0≤j≤|p|-1)二进制数值,h[j]表示h的第j位(0≤j≤|p|-1)二进制数值;如若上述等式不成立,则终止执行后续步骤;
步骤52:数据验证者从[1,r]中随机选取一个子集I,随机选取域Zp中的两个非0元素ω,
Figure BDA00019386341800000810
最后,数据验证者得到挑战
Figure BDA00019386341800000811
并发送给云存储服务器。
步骤6.云存储服务器根据存储的外包数据对收到的挑战计算一个响应,并将该响应回复给数据验证者。
具体地,该步骤6具体包括以下子步骤:
步骤61:云存储服务器根据收到的挑战Q,以及存储的处理后的数据
Figure BDA0001938634180000091
和对应的数据标签τ,计算ηi=ωi mod p(i∈I),并计算聚合的元数据
Figure BDA0001938634180000092
ηi表示一个随机变量,和挑战Q包含的数据块一一对应,ωi表示模指数运算。
步骤62:云存储服务器对挑战的数据块进行聚合,计算得到μ=(μ12,…,μs),其中
Figure BDA0001938634180000093
步骤63:云存储服务器基于μ=(μ12,…,μs)构造一个多项式
Figure BDA0001938634180000094
计算
Figure BDA0001938634180000095
步骤64:云存储服务器根据多项式除法计算得到
Figure BDA0001938634180000096
计算
Figure BDA0001938634180000097
其中u0=g,
Figure BDA0001938634180000098
表示多项式
Figure BDA0001938634180000099
的系数;
最后,云存储服务器得到关于挑战Q的响应R=(ψ,y,θ),将该响应返回给数据验证者。
步骤7.数据验证者根据数据外包者的公钥和离线数据验证参数对收到的响应进行验证,以判断对应外包数据的完整性。
具体地,该步骤7具体包括以下子步骤:
步骤71:数据验证者计算
Figure BDA00019386341800000910
Figure BDA00019386341800000911
步骤72:数据验证者验证如下等式是否成立:
Figure BDA00019386341800000912
其中χ0[j]表示χ0的第j位(0≤j≤|p|-1)二进制数值,χ1[j]表示χ1的第j位(0≤j≤|p|-1)二进制数值,y[j]表示y的第j位(0≤j≤|p|-1)二进制数值,
Figure BDA00019386341800000913
表示
Figure BDA00019386341800000914
的第j位(0≤j≤|p|-1)二进制数值;如果上述等式成立,则输出1,表示云存储服务器存放的数据
Figure BDA00019386341800000915
保存完整;否则,输出0,表明该数据已遭到破坏。
综上所述,本发明提出了一种支持预处理的云数据外包及完整性验证方法。首先,数据外包者能够执行预计算过程获得一组离线数据处理参数,这些参数被用于在线阶段的数据处理过程,使得在线阶段数据处理仅包含轻量级的计算,从而提升实时数据处理的效率;其次,数据验证者也可执行预计算过程获得一组离线数据验证参数,这些参数被用于和云存储服务器交互执行数据完整性验证协议,使得生成挑战仅包含轻量级的运算且验证云存储服务器的响应不再需要执行模指数运算,因此可加速数据完整性验证的执行效率;最后,数据外包者和数据验证者在预计算过程中分别获得的离线数据处理参数和离线数据验证参数均可多次使用,从而减轻了用户存储预处理计算结果的负担。
本发明提供一种支持预处理的云数据外包及完整性验证装置,该装置包括:
用户密钥生成模块,数据外包者选取安全参数和抗碰撞哈希函数,生成自己的公钥及私钥;
数据外包预处理模块,数据外包者根据自己的公钥执行预计算过程,生成一组离线数据处理参数;
数据处理模块,数据外包者根据自己的私钥和离线数据处理参数执行数据处理过程,生成处理后的数据和数据标签并上传至云存储服务器;
数据完整性验证预处理模块,数据验证者根据数据外包者的公钥和数据标签执行预计算过程,生成一组离线数据验证参数;
完整性挑战生成模块,数据验证者根据数据外包者的公钥和离线数据验证参数验证外包数据的数据标签,如果合法则生成一个挑战,并将该挑战发送给云存储服务器;
完整性响应模块,云存储服务器根据存储的外包数据对收到的挑战计算一个响应,并将该响应回复给数据验证者;
完整性验证模块,数据验证者根据数据外包者的公钥和离线数据验证参数对收到的响应进行验证,以判断对应外包数据的完整性。
本实施例中所述的模块的结构及其功能都可以通过前述的验证方法,此处不再赘述。
本发明中,数据外包者和验证者执行各自的预计算过程,分别生成离线数据处理参数和离线数据验证参数;数据外包者可以使用离线数据处理参数对外包数据进行处理,该过程仅包含轻量级的计算;数据验证者也可使用离线数据验证参数和云存储服务器交互执行完整性验证协议,以判断该外包数据的完整性,在此过程中数据验证者不需要执行耗时的模指数计算任务。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (5)

1.一种支持预处理的云数据外包及完整性验证方法,其特征在于,该方法包括:
数据外包者选取安全参数和抗碰撞哈希函数,生成自己的公钥及私钥,所述数据外包者的公钥为:
Figure FDA0002932070050000011
其中,G和GT为阶为素数p的循环群,g表示循环群G的一个生成元,
Figure FDA00029320700500000114
表示一个双线性映射运算
Figure FDA0002932070050000012
G×G→GT,H1(·)和H2(·)抗碰撞哈希函数;υ=gα,ρ=ga,λ=gαz分别表示群G上的幂运算,u1,u2,...,us+1表示参数;
数据外包者根据自己的公钥执行第一预计算过程,生成一组离线数据处理参数,具体包括:
数据外包者计算|p|-1个参数
Figure FDA0002932070050000013
0≤j≤|p|-1,其中
Figure FDA0002932070050000014
得到一组离线的数据处理参数
Figure FDA0002932070050000015
数据外包者根据自己的私钥和所述离线数据处理参数执行数据处理过程,生成处理后的数据和数据标签并将所述生成的处理后的数据和数据标签上传至云存储服务器,具体包括:
数据外包者随机选取一个唯一的数据标识符Fid,将数据M划分为r个数据块mi,每个数据块mi包含s个数据段mi,l,即M=m1||m2||…||mr且mi=(mi,1,mi,2,…,mi,s),||表示字符串连接;
数据外包者随机选择Zp域中的两个非0元素β0
Figure FDA0002932070050000016
计算得到公开参数
Figure FDA0002932070050000017
Figure FDA0002932070050000018
其中β0[j]表示β0的第j位二进制数值,β1[j]表示β1的第j位二进制数值,0≤j≤|p|-1;
数据外包者对每个数据块mi,计算
Figure FDA0002932070050000019
以及
Figure FDA00029320700500000110
其中ci[j]表示ci的第j位二进制数值,θi表示数据块mi的元数据;
数据外包者构造一个字符串τ0←Fid||r||γ0||γ1,随机选择Zp域中的一个非0元素
Figure FDA00029320700500000111
计算
Figure FDA00029320700500000112
和δ=b+aH2(B||τ0)modp,得到τ←τ0||B||δ,其中b[j]表示b的第j位二进制数值,τ表示数据M的数据标签;τ0表示字符串,包含了和数据M相关的参数;
数据外包者得到处理后的数据
Figure FDA00029320700500000113
数据验证者根据所述数据外包者的公钥和数据标签执行第二预计算过程,生成一组离线数据验证参数,具体包括:
数据验证者计算参数
Figure FDA0002932070050000021
得到一组离线数据验证参数
Figure FDA0002932070050000022
数据验证者根据所述数据外包者的公钥和所述离线数据验证参数验证外包数据的数据标签,如果合法则生成一个挑战,并将该挑战发送给云存储服务器;
云存储服务器根据存储的所述外包数据对收到的挑战计算一个响应,并将该响应回复给数据验证者;
数据验证者根据数据外包者的公钥和离线数据验证参数对收到的所述响应进行验证,以判断对应外包数据的完整性,所述数据外包者的私钥表示为:sk=(α,a,z),α,a,z分别表示Zp域中的三个非0元素。
2.根据权利要求1所述的一种支持预处理的云数据外包及完整性验证方法,其特征在于,所述数据验证者根据所述数据外包者的公钥和所述离线数据验证参数验证外包数据的数据标签,如果合法则生成一个挑战,具体包括;
数据验证者读取处理后的数据
Figure FDA0002932070050000023
和数据标签τ,分解数据标签τ得到τ0、B和δ,计算h=H2(B||τ0),并验证
Figure FDA0002932070050000024
是否成立,其中δ[j]表示δ的第j位二进制数值,h[j]表示h的第j位二进制数值;若不成立,则终止执行后续步骤;
数据验证者从[1,r]中随机选取一个子集I,随机选取域Zp中的两个非0元素ω,
Figure FDA0002932070050000025
最后,数据验证者得到挑战
Figure FDA0002932070050000026
3.根据权利要求2所述的一种支持预处理的云数据外包及完整性验证方法,其特征在于,云存储服务器根据存储的所述外包数据对收到的挑战计算一个响应,具体包括:
云存储服务器根据收到的挑战Q,以及存储的处理后的数据
Figure FDA0002932070050000027
和对应的数据标签τ,计算随机变量ηi=ωimodp,并计算聚合的元数据
Figure FDA0002932070050000028
云存储服务器对挑战的数据块进行聚合,计算得到聚合后的数据块μ=(μ12,…,μs),其中
Figure FDA0002932070050000029
云存储服务器基于μ=(μ12,…,μs)构造一个多项式
Figure FDA0002932070050000031
计算
Figure FDA0002932070050000032
xl+1表示模指数运算;
云存储服务器根据多项式除法计算得到
Figure FDA0002932070050000033
计算
Figure FDA0002932070050000034
其中u0=g,
Figure FDA0002932070050000035
表示多项式
Figure FDA0002932070050000036
的系数,0≤l≤s;
云存储服务器得到关于挑战Q的响应R=(ψ,y,θ)。
4.根据权利要求3所述的一种支持预处理的云数据外包及完整性验证方法,其特征在于,所述数据验证者根据数据外包者的公钥和离线数据验证参数对收到的所述响应进行验证,以判断对应外包数据的完整性,具体包括:
数据验证者计算
Figure FDA0002932070050000037
Figure FDA0002932070050000038
数据验证者验证如下等式是否成立:
Figure FDA0002932070050000039
其中,χ0[j]表示χ0的第j位二进制数值,χ1[j]表示χ1的第j位二进制数值,y[j]表示y的第j位二进制数值,
Figure FDA00029320700500000310
表示
Figure FDA00029320700500000311
的第j位二进制数值;如果上述等式成立,则输出1,表示云存储服务器存放的数据
Figure FDA00029320700500000312
保存完整;否则,输出0,表明该数据已遭到破坏。
5.一种支持预处理的云数据外包及完整性验证装置,其特征在于,该验证装置包括:
用户密钥生成模块,用于数据外包者选取安全参数和抗碰撞哈希函数,生成自己的公钥及私钥,所述数据外包者的公钥为:
Figure FDA00029320700500000313
其中,G和GT为阶为素数p的循环群,g表示循环群G的一个生成元,
Figure FDA00029320700500000314
表示一个双线性映射运算
Figure FDA00029320700500000315
G×G→GT,H1(·)和H2(·)抗碰撞哈希函数;υ=gα,ρ=ga,λ=gαz分别表示群G上的幂运算,u1,u2,...,us+1表示参数;
数据外包预处理模块,用于数据外包者根据自己的公钥执行第一预计算过程,生成一组离线数据处理参数,具体包括:
数据外包者计算|p|-1个参数
Figure FDA00029320700500000316
0≤j≤|p|-1,其中
Figure FDA00029320700500000317
得到一组离线的数据处理参数
Figure FDA00029320700500000318
数据处理模块,用于数据外包者根据自己的私钥和所述离线数据处理参数执行数据处理过程,生成处理后的数据和数据标签并将所述生成的处理后的数据和数据标签上传至云存储服务器,具体包括:
数据外包者随机选取一个唯一的数据标识符Fid,将数据M划分为r个数据块mi,每个数据块mi包含s个数据段mi,l,即M=m1||m2||…||mr且mi=(mi,1,mi,2,…,mi,s),||表示字符串连接;
数据外包者随机选择Zp域中的两个非0元素β0
Figure FDA0002932070050000041
计算得到公开参数
Figure FDA0002932070050000042
Figure FDA0002932070050000043
其中β0[j]表示β0的第j位二进制数值,β1[j]表示β1的第j位二进制数值,0≤j≤|p|-1;数据外包者对每个数据块mi,计算
Figure FDA0002932070050000044
以及
Figure FDA0002932070050000045
其中ci[j]表示ci的第j位二进制数值,θi表示数据块mi的元数据;
数据外包者构造一个字符串τ0←Fid||r||γ0||γ1,随机选择Zp域中的一个非0元素
Figure FDA0002932070050000046
计算
Figure FDA0002932070050000047
和δ=b+aH2(B||τ0)modp,得到τ←τ0||B||δ,其中b[j]表示b的第j位二进制数值,τ表示数据M的数据标签;τ0表示字符串,包含了和数据M相关的参数;
数据外包者得到处理后的数据
Figure FDA0002932070050000048
数据完整性验证预处理模块,用于数据验证者根据所述数据外包者的公钥和数据标签执行第二预计算过程,生成一组离线数据验证参数,具体包括:
数据验证者计算参数
Figure FDA0002932070050000049
得到一组离线数据验证参数
Figure FDA00029320700500000410
完整性挑战生成模块,用于数据验证者根据所述数据外包者的公钥和所述离线数据验证参数验证外包数据的数据标签,如果合法则生成一个挑战,并将该挑战发送给云存储服务器;
完整性响应模块,用于云存储服务器根据存储的所述外包数据对收到的挑战计算一个响应,并将该响应回复给数据验证者;
完整性验证模块,用于数据验证者根据数据外包者的公钥和离线数据验证参数对收到的所述响应进行验证,以判断对应外包数据的完整性。
CN201910014719.3A 2019-01-08 2019-01-08 一种支持预处理的云数据外包及完整性验证方法及装置 Active CN109818944B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910014719.3A CN109818944B (zh) 2019-01-08 2019-01-08 一种支持预处理的云数据外包及完整性验证方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910014719.3A CN109818944B (zh) 2019-01-08 2019-01-08 一种支持预处理的云数据外包及完整性验证方法及装置

Publications (2)

Publication Number Publication Date
CN109818944A CN109818944A (zh) 2019-05-28
CN109818944B true CN109818944B (zh) 2021-05-04

Family

ID=66604129

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910014719.3A Active CN109818944B (zh) 2019-01-08 2019-01-08 一种支持预处理的云数据外包及完整性验证方法及装置

Country Status (1)

Country Link
CN (1) CN109818944B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109784094B (zh) * 2019-01-21 2023-05-30 桂林电子科技大学 一种支持预处理的批量外包数据完整性审计方法及系统
CN110727951B (zh) * 2019-10-14 2021-08-27 桂林电子科技大学 具有隐私保护的轻量级外包文件多关键词检索方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103414690A (zh) * 2013-07-15 2013-11-27 北京航空航天大学 一种可公开验证云端数据持有性校验方法
CN103425941A (zh) * 2013-07-31 2013-12-04 广东数字证书认证中心有限公司 云存储数据完整性的验证方法、设备和服务器
CN105338004A (zh) * 2015-12-15 2016-02-17 华东师范大学 云环境下低性能设备适用的具有隐私保护的公开审计方法
CN109145650A (zh) * 2018-08-07 2019-01-04 暨南大学 一种云环境下高效安全的外包大数据审计方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103414690A (zh) * 2013-07-15 2013-11-27 北京航空航天大学 一种可公开验证云端数据持有性校验方法
CN103425941A (zh) * 2013-07-31 2013-12-04 广东数字证书认证中心有限公司 云存储数据完整性的验证方法、设备和服务器
CN105338004A (zh) * 2015-12-15 2016-02-17 华东师范大学 云环境下低性能设备适用的具有隐私保护的公开审计方法
CN109145650A (zh) * 2018-08-07 2019-01-04 暨南大学 一种云环境下高效安全的外包大数据审计方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Online/Offline Provable Data Possession;yujue wang, etal.;《IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY》;20170531;全文 *
云存储完整性验证密码学技术研究进展;王玉珏;《信息安全学报》;20170731;全文 *

Also Published As

Publication number Publication date
CN109818944A (zh) 2019-05-28

Similar Documents

Publication Publication Date Title
CN110348231B (zh) 实现隐私保护的数据同态加解密方法及装置
CN108965258B (zh) 一种基于全同态加密的云环境数据完整性验证方法
JP5488596B2 (ja) 署名装置、署名検証装置、匿名認証システム、署名方法、署名認証方法およびそれらのプログラム
EP3035587B1 (en) Hypersphere-based multivariable public key signature/verification system and method
Veugen Encrypted integer division and secure comparison
CN110637441A (zh) 应用于数据重复数据删除的加密密钥生成
CN107040385A (zh) 一种基于sm2椭圆曲线的签名验证算法的实现方法及系统
CN113098691B (zh) 数字签名方法、签名信息的验证方法、相关装置及电子设备
CN109818944B (zh) 一种支持预处理的云数据外包及完整性验证方法及装置
CN109274504B (zh) 一种基于云平台的多用户大数据存储分享方法及系统
JP2022095852A (ja) デジタル署名方法、署名情報の検証方法、関連装置及び電子機器
CN112887096A (zh) 用于签名和密钥交换的素数阶椭圆曲线生成方法及系统
CN112800482A (zh) 基于身份的在线/离线安全云存储审计方法
CN116628504A (zh) 一种基于联邦学习的可信模型训练方法
US8036378B2 (en) System and method of authentication
CN109784094B (zh) 一种支持预处理的批量外包数据完整性审计方法及系统
KR20150112315A (ko) 묶음 검증 방법 및 장치
CN113708927A (zh) 基于sm2数字签名的泛指定验证者签名证明系统
CN112989421A (zh) 一种安全选择问题处理方法和系统
JP4306829B2 (ja) 楕円曲線上の有限体演算の加速方法
CN111711524A (zh) 一种基于证书的轻量级外包数据审计方法
JP2007218997A (ja) 素数生成装置、プログラム及び方法
Yanlong Cryptanalysis of the cryptosystems based on the generalized hidden discrete logarithm problem
WO2023163654A2 (en) Computer-implemented method, computer program and computer-readable medium using a chameleon hash function
Peterlongo et al. A discrete logarithm-based approach to compute low-weight multiples of binary polynomials

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20190528

Assignee: Guilin ruiweisaide Technology Co.,Ltd.

Assignor: GUILIN University OF ELECTRONIC TECHNOLOGY

Contract record no.: X2023980046266

Denomination of invention: A cloud data outsourcing and integrity verification method and device that supports preprocessing

Granted publication date: 20210504

License type: Common License

Record date: 20231108