本发明属于数据处理领域,具体涉及一个支持数据转移的基于身份可证明数据持有方法。
背景技术:
2007年ateniese等学者首次提出可证明数据持有方案。2008年,基于bls短签名shacham和waters提出了基于双线性对的可证明数据持有方案。同年,利用对称加密技术ateniese等学者提出可证明数据持有方案,实现了数据块的增加,修改和删除动态操作。与此同时,sebé等学者提出基于整数分解问题的可证明数据持有方案。2009年,erway等学者设计支持全动态的可证明数据持有方案,利用认证跳表技术实现数据块的插入操作。2010年,为了降低用户审计代价和保护数据隐私,wang等学者提出了隐私保护的公开验证可证明数据持有方案。该方案中通过第三方审计者进行公开验证。此后,大量公开验证的可证明数据持有方案被提出来。
2014年,wang等学者结合基于身份密码学提出了基于身份可证明数据持有方案。2016年,为了降低数据拥有者计算代价,wang等学者提出基于身份代理数据上传的可证明数据持有方案。2017年利用零知识证明技术yu等学者提出基于身份可证明数据持有方案,实现数据隐私的完美保护。2019年,li等学者基于生物特征提出基于模糊身份可证明数据持有方案。同年,wang等学者利用环签名机制提出奖励机制下无条件匿名基于身份可证明数据持有方案,实现用户身份隐私保护下揭露恶意事件。2020年,针对用户吊销开销,利用密钥更新技术zhang等学者提出了高效用户吊销的基于身份可证明数据持有方案。
2019年,wang等学者首次提出支持数据转移的可证明数据持有方案。该方案中云服务器完成数据转换后,接收者无需再对数据进行处理,通过第三方审计者完成数据完整性的公开检验。
随着数据交融时代来临,云存储中数据所有权往往需要不断的变更。为了保护变更所有权后数据的完整性,需要使可证明数据拥有方案支持数据转移。现有技术中存在可以支持数据转移的可证明数据拥有方案,但是该方案是基于传统公钥密码学的,且存在复杂的证书管理问题和隐私泄露问题,因此,如何使可证明数据持有方案在支持数据转移的情况下,可以同时高效解决复杂密钥管理和数据隐私泄露的问题具有十分重要的现实意义。
技术实现要素:
本发明的目的在于克服上述不足,提供一个支持数据转移的基于身份可证明数据持有方法,利用双线性对和基于身份密码学,基于计算性diffie-hellman假设和离散对数假设下的支持数据转移的基于身份可证明数据持有方法,在随机预言机模型中,证明所提方案满足适应性选择消息攻击下的不可伪造性,在支持数据转移同时,高效解决数据隐私泄露和密钥管理问题。
为了达到上述目的,本发明包括以下步骤:
s1,输入安全参数,输出主密钥和系统参数,完成系统建立;
s2,输入数据持有者和数据接收者的身份,并提取数据持有者和数据接收者的密钥;
s3,数据持有者用提取的私钥对数据签名,并将数据与数据签名一同发送给云服务器;
s4,输入数据持有者和数据接收者的私钥,提取转换密钥,并发送给云服务器;
s5,用提取的转换密钥,云服务器将数据持有者对应数据的标签转换为数据接收者对应数据的标签;
s6,输入挑战数据块的数量,输出挑战信息,第三方审计者将挑战信息发送给云服务器;
s7,输入挑战数据块,挑战数据块的标签和挑战信息,输出数据完整性证明,云服务器将完整性证明发送给第三方审计者;
s8,第三方审计者对数据完整性证明进行验证。
s1中,系统建立的方法如下:
第一步,输入安全参数ξ;
第二步,密钥生成中心kgc随机选择
第三步,输出系统参数为params={g1,g2,q,p,e,h1,h2,h3,h4,ppub},主密钥为msk=λ。
s2中,数据持有者和数据接收者的密钥生成方法如下:
第一步,输入数据持有者do的身份
第二步,密钥生成中心kgc随机选择
第三步,kgc将密钥(yo,xo)和(yr,xr)通过安全信道分别发送给数据拥有者do和数据接收者dr。
s3的具体方法如下:
第一步,输入数据m,将数据m分为n块,即m={m1,m2,···,mn},且
第二步,计算u=h2(ido,fname),这里fname表示数据m的标识;
第三步,对于每个l∈{1,2,···,n},计算ωl=h3(idl),
第四步,数据拥有者do将{m,σo}返回给云服务器cs,同时删除本地数据m。
s4中,生成转换密钥的具体方法如下:
第一步,输入ido的密钥xo和idr的密钥xr;
第二步,kgc计算转换密钥
s5中,将数据持有者对应数据的标签转换为数据接收者对应数据的标签的方法如下:
第一步,输入转换密钥rko→r和数据m在数据持有者身份ido下的标签
第二步,对于每个l∈{1,2,···,n},cs计算
第三步,输出数据m在数据接收者身份idr下的标签为
s6中,第三方审计者生成挑战信息的方法如下:
第一步,第三方审计者tpa随机选择集合
第二步,对于每个j∈q,tpa随机选择
第三步,第三方审计者tpa得到挑战信息chal={(j,vj)}j∈q,并将其返回给云服务器cs。
s7中,云服务器生成挑战证据的方法如下:
第一步,云服务器cs随机选择
第二步,云服务器cs计算完整性证明φ=h4(k),
第三步,云服务器cs将m在idr下的完整性证明proof={k,α,β}返回给第三方审计者tpa。
s8中,第三方审计者验证数据完整性证明的方法如下:
第一步,第三方审计者tpa计算τr=h1(idr,yr,ppub),u=h2(ido,fname),φ=h4(k);
第二步,第三方审计者tpa对于每个l∈{1,2,···,n},计算ωl=h3(idl);
第三步,验证等式
与现有技术相比,本发明针对支持数据转移的可证明数据持有方案复杂密钥管理和数据隐私泄露的问题,基于双线对和基于身份密码学,提出支持数据转移的基于身份可证明数据持有方案。本发明解决了密钥管理问题,通过第三方审计者实现转移数据的完整性检验,使用随机数技术保证用户数据在审计过程中的隐私安全。安全性分析表明,随机预言机模型中证明所提方案满足适应性选择消息攻击下的不可伪造性。本发明是在基于身份的情景下实现的,消除了传统公钥密码学中的证书管理问题;本发明在可证明数据拥有的情况下支持数据转移,解决了数据所有权变更之后,数据持有者重新下载数据带来的计算和通信成本增加问题;本发明对审计过程进一步改进,使用随机数技术保证用户数据在审计过程中的隐私安全,解决了隐私泄露问题;本发明的整体设计改进,使得所提方案与已知方案相比取得高效的计算和通信代价。
附图说明
图1为本发明的系统图;
图2为本发明的流程图;
图3为错误检测概率图。
具体实施方式
下面结合附图对本发明做进一步说明。
参见图1和图2,本发明包括以下步骤:
步骤一,系统建立方法如下:
第一步,输入安全参数ξ;
第二步,密钥生成中心kgc随机选择
第三步,输出系统参数为params={g1,g2,q,p,e,h1,h2,h3,h4,ppub},主密钥为msk=λ。
步骤二,kgc生成密钥的方法如下:
第一步,输入数据持有者do的身份
第二步,密钥生成中心kgc随机选择
第三步,kgc将密钥(yo,xo)和(yr,xr)通过安全信道分别发送给数据拥有者do和数据接收者dr。
步骤三,数据所有者生成数据标签的方法如下:
第一步,输入数据m,将数据m分为n块,即m={m1,m2,···,mn},且
第二步,计算u=h2(ido,fname),这里fname表示数据m的标识;
第三步,对于每个l∈{1,2,···,n},计算ωl=h3(idl),
第四步,数据拥有者do将{m,σo}返回给云服务器cs,同时删除本地数据m。
步骤四,kgc生成转换密钥的方法如下:
第一步,输入ido的密钥xo和idr的密钥xr;
第二步,kgc计算转换密钥
步骤五,云服务器cs生成转换标签的方法如下:
第一步,输入转换密钥rko→r和数据m在数据持有者身份ido下的标签
第二步,对于每个l∈{1,2,···,n},云服务器cs计算
第三步,输出数据m在数据接收者身份idr下的标签为
步骤六,第三方审计者tpa生成挑战信息的方法如下:
第一步,第三方审计者tpa随机选择集合
第二步,对于每个j∈q,第三方审计者tpa随机选择
第三步,第三方审计者tpa得到挑战信息chal={(j,vj)}j∈q,并将其返回给云服务器cs。
步骤七,云服务器cs生成挑战证据的方法如下:
第一步,云服务器cs随机选择
第二步,云服务器cs计算完整性证明证据φ=h4(k),
第三步,云服务器cs将m在idr下的完整性证明proof={k,α,β}返回给第三方审计者tpa。
步骤八,第三方审计者tpa验证数据完整性证明的方法如下:
第一步,第三方审计者tpa计算τr=h1(idr,yr,ppub),u=h2(ido,fname),φ=h4(k);
第二步,第三方审计者tpa对于每个l∈{1,2,···,n},计算ωl=h3(idl);
第三步,验证等式
下面分别给出本发明在随机预言机模型下支持数据转移的基于身份可证明数据持有方案的正确性和安全性证明。
一、正确性证明
本发明提出的随机预言机模型下支持数据转移的基于身份可证明数据持有方案是正确的。
第三方审计者tpa关于收到的数据完整性证明,如果证明按如上步骤进行且传输过程中没有被改变,不难证明:
二、安全性证明
1.安全模型
支持数据转移的基于身份可证明数据持有方案的安全模型考虑两种类型攻击者:a1和a2。类型i攻击者a1(外部攻击者)目标是伪造数据标签。类型ii攻击者a2(内部攻击者,即云服务器)目标是在没有正确数据下,伪造数据完整性证明。
方案的安全性通过挑战者c与攻击者a1(a2)之间的交互游戏来定义。攻击者a1(a2)进行下列询问:
哈希询问:攻击者进行哈希询问,c返回随机值给攻击者。
密钥询问:攻击者对用户身份idi进行密钥询问,c执行密钥生成算法返回密钥(yi,xi)给攻击者。
标签询问:攻击者对(idi,yi)下(ml,idl)进行标签询问,c执行标签生成算法返回标签tl给攻击者。
游戏1.挑战者c和攻击者a1交互进行。
系统建立:c运行系统建立算法生成系统参数和主密钥。c返回系统参数给a1,同时秘密的保存主密钥。
询问:a1适应性的进行多项式次哈希询问,密钥询问和标签询问。
伪造:a1输出(id*,y*)下(m*,id*)的标签t*。
如果满足下列条件,a1赢得游戏:
(1)t*是(id*,y*)下(m*,id*)的有效标签。
(2)a1不能对id*进行密钥询问。
(3)a1不能对(id*,y*)下(m*,id*)进行标签询问。
定义1.如果不存在任何多项式时间攻击者a1以不可忽略的概率赢得游戏1,则所提方案满足标签不可伪造性。
游戏2.挑战者c和攻击者a2交互进行。
系统建立:c运行系统建立算法生成系统参数和主密钥。c返回系统参数给a2,同时秘密的保存主密钥。
询问:a2适应性的进行多项式次哈希询问,密钥询问和标签询问。
挑战:c生成一个随机挑战信息chal返回给攻击者a2。
伪造:a2输出挑战信息chal的数据完整性证明proof。
如果含有错误数据的数据完整性证明proof通过验证,a2赢得游戏。
定义2.如果不存在任何多项式时间攻击者a2以不可忽略的概率赢得游戏2,则所提方案满足证明不可伪造性。
2.具体证明
定理1.假定攻击者a1以概率ε攻破所提方案,那么存在算法b以概率
证明.给定cdh问题实例(p,a·p,b·p),算法b的任务是计算a·b·p。攻击者a1随机选择
系统建立:算法b设置ppub=a·p,返回系统参数params={g1,g2,q,p,e,h1,h2,h3,h4,ppub}给攻击者a1。
询问阶段:a1适应性的进行以下多项式次询问。
h1询问:a1对(idi,yi,ppub)进行哈希h1询问,b查询列表l1:
(1)如果l1包含(idi,yi,ppub,τi),b返回τi给a1。
(2)如果l1不包含(idi,yi,ppub,τi),b随机选择
h2询问:a1对(idi,fname)进行哈希h2询问,b查询列表l2:
(1)如果idi≠ido,b随机选择
(2)如果idi=ido,b随机选择
h3询问:a1对idl进行哈希h3询问,b查询列表l3:
(1)如果l3包含(idl,ωl),b返回ωl给a1。
(2)如果l3不包含(idl,ωl),b随机选择
密钥询问:a1对idi进行密钥询问,b对(idi,yi,ppub)进行哈希h1询问获得τi,b查询列表l4:
(1)如果idi≠ido,b随机选择
(2)如果idi=ido,b放弃游戏。
标签询问:a1对(idi,yi)下(ml,idl)进行标签询问。b对(idi,fname)进行哈希h2询问获得ui,对idl进行哈希h3询问获得ωl,对idi进行密钥询问获得xi。b执行:
(1)如果idi≠ido,b计算
(2)如果idi=ido,b终止游戏。
伪造阶段:a1输出(id*,y*)下(m*,id*)的有效伪造标签
e(s*,p)=e(ω*·u*+m*·p,y*+τ*·ppub),
e(s′*,p)=e(ω*·u*+m*·p,y*+τ′*·ppub)。
根据上面两个等式,可得
e(s*-s′*,p)=e((y*+τ*·a)·(ω*·u*+m*·p)-(y*+τ′*·a)·(ω*·u*+m*·p),p)
e(s*-s′*,p)=e((τ*-τ′*)·a·(ω*·u*+m*·p),p)
e(s*-s′*,p)=e((τ*-τ′*)·a·(ω*·u*·b·p+m*·p),p)
s*-s′*=(τ*-τ′*)·a·(ω*·u*·b·p+m*·p)
s*-s′*=(τ*-τ′*)·ω*·u*·a·b·p+(τ*-τ′*)·m*·a·p
因此,cdh问题的解为
定义下面事件分析b解cdh问题的概率ε′。
e1:b成功进行密钥询问和标签询问。
e2:a1输出(id*,y*)下(m*,id*)有效标签
e3:id*=ido。
因此,b解cdh问题的概率为:ε′=pr[e1∧e2∧e3]=pr[e1]·pr[e2|e1]·pr[e3|e1∧e2]。
假定攻击者最多可以进行
(1)密钥询问中,如果随机预言机h1前后不一致,b放弃游戏的最大概率为
密钥询问和标签询问中,b放弃游戏的最大概率为
因此可得
(2)伪造阶段,如果a1输出(id*,y*)下(m*,id*)有效伪造标签的概率为ε,则pr[e2|e1]≥ε。
(3)id*=ido概率为
因此,b解cdh问题的概率为
证毕。
定理2.如果dl假设成立,则所提方案能够抵抗攻击者a2的攻击。
证明.假设挑战信息是chal={(j,vj)}j∈q,
如果a2输出挑战信息chal={(j,vj)}j∈q下包含错误数据
根据方案可知挑战信息chal={(j,vj)}j∈q下有效数据完整性证明为proof={r,α,β},即
根据上面两个等式,可得β·p=β*·p。
定义δβ=β-β*,可得δβ·p=0。
给定离散对数问题的实例(w,a·w),定义
δβ·p=0
由此可知
三、方案评估
1.功能分析
如表1所示,将我们所提方案与方案[1],方案[2],方案[3],方案[4],方案[5],方案[6]进行功能比较。
表1功能比较
方案[1]:shachamh,watersb.compactproofsofretrievability.inproceedingofadvancesincryptology-asiacrypt’08.springer,2008,pp.90-107.
方案[2]:wangh,hed,fua,etal.provabledatapossessionwithoutsourceddatatransfer.ieeetransactionsonservicescomputing,tobepublished,doi.10.1109/tsc.2019.2892095.
方案[3]:wangh,wuq,qinb,etal.identity-basedremotedatapossessioncheckinginpublicclouds.ietinformationsecurity,2014,8(2):114-121.
方案[4]:wangh,hed,tangs.identity-basedproxy-orienteddatauploadingandremotedataintegritycheckinginpubliccloud.ieeetransactionsoninformationforensicsandsecurity,2016,11(6):1165-1176.
方案[5]:yuy,aumh,atenieseg,huangx,susilow,daiy,ming.identity-basedremotedataintegritycheckingwithperfectdataprivacypreservingforcloudstorage.ieeetransactionsoninformationforensicsandsecurity,2017,12(4):767-778.
方案[6]:zhangy,yuj,haor,wangc,renk.enablingefficientuserrevocationinidentity-basedcloudstorageauditingforsharedbigdata.ieeetransactionsondependableandsecurecomputing,2020,17(3):608-619.
从表1中可知所有方案实现了公开审计,概率检测和无块审计。然而方案[1]和方案[2]是基于传统公钥的方案,存在证书管理问题。方案[1][2][3][4][6]中,第三方审计者能够通过解线性方程技术得到数据,导致隐私泄露。此外,方案[1][3][4][5][6]无法在云服务器中实现数据所有权的转移,然而所提方案能够满足所有的功能需求。
(1)错误检测概率:所提方案采用随机抽样方法来检测云服务器破坏数据行为,降低第三方审计者的通信和计算成本。数据持有者将数据m分成n块,第三方审计者选择c(c≤n)块进行挑战。令x表示云服务器损坏数据块的数量,x表示挑战块中损坏数据块的数量,云服务器损坏数据被检测概率px定义为:
图3给出所提方案的错误检测概率分析。n=1,000,000,x=5,000时,第三方审计者仅需选取c=321,检测云服务器出错概率达到80%。当x=10,000时,第三方审计者仅需选取c=300,检测云服务器出错概率达到95%。
(2)数据隐私保护:在审计过程中,第三方审计者试图从数据完整性证明proof={k,α,β}中获取用户数据,这里k=k·(yr+τr·ppub),
情况1:第三方审计者试图从α中获取数据。
情况2:第三方审计者试图从β中获取数据。
综上所述,所提方案满足数据隐私保护。
2.性能分析
2.1计算代价
80比特安全性下,选择双线性对e:g1×g1→g2,其中g1是嵌入度为2,阶数为q的超奇异椭圆曲线e:y2=x3+xmodp上的加法循环群,生成元为p,其中q,p分别是160比特,512比特的素数,且满足q·12·r=p+1。
仿真实验基于miraclcryptosdk库,运行环境为英特尔i5(2.53ghz)处理器,4gb内存,64位windows10操作系统。表2给出了相关密码操作运行10000次取平均值的实验结果。
表2密码运算平均时间(毫秒)
令表示上传到云服务器的数据块的数量,表示检测数据块的数量。表3给出所提方案与已知方案[1][2][3][4][5][6]在计算代价上的比较。
表3计算代价比较
由表可以得出在标签生成阶段和验证阶段,所提方案的计算代价明显低于方案[1][2][3][4][5][6]。假设n=10000和c=300下,在标签生成阶段,所提方案需要28.9615秒,方案[1][2][3][4][5][6]分别需要64.3950秒,64.3950秒,64.3950秒,64.3986秒,64.3964秒和64.3950秒,分别降低了55.03%,55.03%,55.03%,55.03%,55.03%和55.03%。在验证阶段,所提方案需要41.4471毫秒,方案[1][2][3][4][5][6]分别需要1527.8286毫秒,1957.6406毫秒,1529.266毫秒,1531.4105毫秒,1517.5316毫秒和1530.7206毫秒,分别降低了97.29%,97.88%,97.29%,97.29%,97.27%和97.29%。并且,证明生成阶段所提方案需要436.7636毫秒,方案[5]需要444.177毫秒,所提方案降低1.67%。与方案[1][2][3][4][6]需要433.8384毫秒,432.5228毫秒,433.8384毫秒,433.8384毫秒和433.8384毫秒相比,所提方案略微增加。
2.2通信代价
令|g1|表示群g1的比特长度,
通信代价包含从第三方审计者到云服务器的挑战信息和从云服务器到第三方审计者响应信息。表4给出了所提方案与方案[1][2][3][4][5][6]在通信代价的比较。
表4通信代价比较
当时,我们可以得出第三方审计者和云服务器之间通信代价的比较。从第三方审计者到云服务器,所有方案具有相同的57600比特通信代价。从云服务器到第三方审计者,所提方案比方案[2]节约47328比特,降低了97.56%。与方案[1][3][4][5][6]比较,尽管所提方案增加512比特,但是所提方案能够实现数据隐私保护和数据转移。