发明名称 一种允许群组用户身份撤销的云存储数据安全审计方法
摘要 本发明公开了一种允许群组用户身份撤销的云存储数据安全审计方法,分为如下六个步骤,(1)生成密钥(KeyGen),(2)计算重签名密钥(ReKey);(3)生成签名(Sign),(4)生成重签名(ReSign);(5)生成验证值(GenProof);(6)验证验证值(CheckProof)。本发明不仅能够实现在群组用户身份撤销后第三方审计者对共享数据的有效审计,而且该方法的安全性相较于现有的允许群组用户身份撤销的公共审计协议的解决方法有进一步增强。由此可见,本发明的方法可以增强人们对云存储安全的信心,从而促进云存储环境的健康发展。
申请公布号 CN103501352B 申请公布日期 2016.08.17
申请号 CN201310500726.7 申请日期 2013.10.22
申请人 北京航空航天大学 发明人 郭华;李舟军
分类号 H04L29/08(2006.01)I;H04L29/06(2006.01)I;H04L9/32(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 北京科迪生专利代理有限责任公司 11251 代理人 杨学明
主权项 一种允许群组用户身份撤销的云存储数据安全审计方法,其特征在于,包括如下步骤:(1)生成密钥:令G<sub>1</sub>和G<sub>2</sub>分别表示阶为素数p的循环群,g为G<sub>1</sub>的一个生成元,w为G<sub>1</sub>中的一个随机元素,G<sub>1</sub>和G<sub>2</sub>满足双线性映射e:G<sub>1</sub>×G<sub>1</sub>→G<sub>2</sub>,全局参数为(e,p,G<sub>1</sub>,G<sub>2</sub>,g,w,H,H'),其中H为哈希函数H:{0,1}*→G<sub>1</sub>,H'为哈希函数H`:{0,1}*→Z<sub>q</sub>;用户U<sub>i</sub>选择随机数x<sub>i</sub>∈Z<sub>p</sub>,并计算<img file="FDA0000971005550000017.GIF" wi="234" he="63" />其中,Z<sub>p</sub>表示整数模p剩余类集合,用户将pk<sub>i</sub>作为公钥对外公布,将x<sub>i</sub>作为私钥,不失一般性,假设用户U<sub>1</sub>为共享数据的创建者,U<sub>1</sub>同时创建一个用户列表(UL),该列表包括群中所有用户的身份,用户列表公开且由U<sub>1</sub>签名;(2)计算重签名密钥:假设用户U<sub>j</sub>离开群组,U<sub>i</sub>为当前群组用户,云服务器欲将U<sub>j</sub>的签名转变为U<sub>i</sub>的签名,首先云服务器产生一个随机数r∈Z<sub>p</sub>并发送给用户U<sub>j</sub>,U<sub>j</sub>计算<img file="FDA0000971005550000011.GIF" wi="64" he="119" />并发送给用户U<sub>i</sub>;之后U<sub>i</sub>产生一个随机数r<sub>i</sub>∈Z<sub>p</sub>,并计算<img file="FDA0000971005550000012.GIF" wi="224" he="139" />及<img file="FDA0000971005550000018.GIF" wi="83" he="67" />其中<img file="FDA0000971005550000013.GIF" wi="233" he="60" />然后发送<img file="FDA0000971005550000014.GIF" wi="358" he="143" />给云服务器;最后云服务器计算重签名密钥<img file="FDA0000971005550000015.GIF" wi="421" he="134" />(3)生成签名:在存储数据的共享文件M={m<sub>k</sub>}(1≤k≤n)中,m<sub>k</sub>∈Z<sub>p</sub>,共享数据创建者U<sub>1</sub>对每个数据块m<sub>k</sub>计算签名:<img file="FDA0000971005550000016.GIF" wi="532" he="64" />其中id<sub>k</sub>为数据块标记符,x<sub>1</sub>为用户U<sub>1</sub>的私钥,然后U<sub>1</sub>将集合{M,{σ<sub>k</sub>}<sub>1≤k≤n</sub>}发送给云服务器保存,并删除本地数据M;当群组用户U<sub>i</sub>修改共享数据时,使用自己的私钥x<sub>i</sub>对修改后的数据块签名,之后将修改后的数据块和相应的签名发送给云服务器保存,并删除本地数据;(4)生成重签名:当用户U<sub>j</sub>从群中离开时,云服务器可以将用户U<sub>j</sub>的签名转变成当前群中用户U<sub>i</sub>对同一数据块的签名;具体说来,给定重签名密钥rk<sub>j→i</sub>、公钥pk<sub>j</sub>、签名σ<sub>k</sub>、数据块m<sub>k</sub>及数据块标记符id<sub>k</sub>,云服务器首先检验<img file="FDA0000971005550000021.GIF" wi="555" he="71" />是否成立,若不成立,云服务器输出⊥,否则,云服务器计算<img file="FDA0000971005550000022.GIF" wi="1213" he="71" />并输出<img file="FDA0000971005550000023.GIF" wi="478" he="64" />重签名之后,数据初始创建者U<sub>1</sub>将用户U<sub>j</sub>的id号从UL列表移除,并对新的UL列表签名;(5)生成验证值:为了审计共享数据的完整性,第三方审计者随机从集合[1,n]中选择一个包含c个元素的子集L,用于定位要审计的c个随机数据块,之后产生随机数y<sub>l</sub>∈Z<sub>q</sub>,其中l∈L且q是一个比p小得多的素数,最后将对云服务器发起的挑战值{(l,y<sub>l</sub>)}<sub>l∈L</sub>发送给云服务器;云服务器收到挑战值后,需要生成一个正确响应;具体说来,云服务器首先将集合L分成d个子集L<sub>1</sub>、L<sub>2</sub>、…、L<sub>d</sub>,其中L<sub>i</sub>是用户U<sub>i</sub>签名的数据块标识符索引集合,L<sub>i</sub>中元素数量是c<sub>i</sub>;不失一般性,此处假设U<sub>j</sub>的签名均转变成U<sub>1</sub>的签名;此时U<sub>1</sub>对应的签名有两种类型:用户U<sub>1</sub>自己所做的签名和云服务器所做的代理签名,因此将L<sub>1</sub>进一步分为两部分L<sub>11</sub>和L<sub>12</sub>,其中L<sub>11</sub>为U<sub>1</sub>所做签名的数据块标识符索引集合,L<sub>12</sub>为云服务器所做的代理签名的数据块标识符索引集合,满足L<sub>1</sub>=L<sub>11</sub>∪L<sub>12</sub>,<img file="FDA0000971005550000024.GIF" wi="286" he="63" />令c<sub>1</sub>=c<sub>11</sub>+c<sub>12</sub>,其中c<sub>11</sub>为U<sub>1</sub>所做的签名数,c<sub>12</sub>为云服务器所做的代理签名数,显然,<img file="FDA0000971005550000025.GIF" wi="236" he="79" />L=L<sub>1</sub>∪…∪L<sub>d</sub>且<img file="FDA0000971005550000026.GIF" wi="262" he="63" />i≠j;对每个集合L<sub>i</sub>(i≠1),云服务器计算<img file="FDA0000971005550000027.GIF" wi="846" he="86" />对于L<sub>1</sub>,云服务器分别计算<img file="FDA0000971005550000028.GIF" wi="905" he="78" />及<img file="FDA0000971005550000029.GIF" wi="974" he="87" />最后云服务器将{α,β,γ,{id<sub>l</sub>}<sub>l∈L</sub>}发送给第三方审计者作为对挑战者的响应;其中,α=(α<sub>1</sub>,…,α<sub>d</sub>),β=(β<sub>1</sub>,…,β<sub>d</sub>),<img file="FDA0000971005550000031.GIF" wi="214" he="55" />其中α<sub>1</sub>=(α<sub>11</sub>,α<sub>12</sub>),β<sub>1</sub>=(β<sub>11</sub>,β<sub>12</sub>);(6)验证验证值:第三方审计者收到响应值{α,β,γ,{id<sub>l</sub>}<sub>l∈L</sub>}后,利用{(l,y<sub>l</sub>)}<sub>l∈L</sub>及所有当前群中用户的公钥(pk<sub>1</sub>,…,pk<sub>d</sub>),进行如下验证:对于<img file="FDA0000971005550000035.GIF" wi="138" he="55" />通过等式<img file="FDA0000971005550000032.GIF" wi="785" he="141" />验证;对于l∈L<sub>11</sub>,通过等式<img file="FDA0000971005550000033.GIF" wi="681" he="110" />验证;对于l∈L<sub>12</sub>,通过等式<img file="FDA0000971005550000034.GIF" wi="1175" he="112" />验证,其中λ=h(γ);若第三方审计者验证等式相等,则表明云服务器正确存储了用户的数据,其中验证公式等式两边分别为审计者生成的双线性对。
地址 100191 北京市海淀区学院路37号