求并发送给验证服务器,所述完整性验证请求 包括云用户ID、公钥Qid、云服务器标识符、待验证文件标识符;
[0023] 步骤S2 ;验证服务器验证收到步骤S1发送的完整性验证请求的有效性,若无效, 则拒绝请求;否则提取完整性验证请求中的云用户ID、云服务器标识符、待验证文件标识 符,生成挑战值chal并发送给对应云服务器;
[0024] 步骤S3 ;收到挑战值chal的云服务器生成响应值并发送给验证服务器;
[0025] 步骤S4;验证服务器基于发送的挑战值chal和接收的响应值、用户的公钥验证响 应值的有效性;
[0026] 步骤S5 ;验证服务器根据步骤S4的验证结果发送完整性验证报告;若验证成功, 则发送完整性验证成功;否则,发送完整性验证失败。
[0027] 本发明在实现高效的数据完整性保护和安全性保证的基础上,消除了证书的管 理,无需在每次验证数据完整性时先验证云用户公钥的有效性,简化了系统的复杂性。
[002引进一步的,为了减少直接零知识证明技术的交互次数和计算量,本发明采用可聚 合的基于签名的广播实现零知识的隐私保护,即在步骤S2中,通过下列步骤生成挑战值 chal;
[0029] 验证服务器随机选择集合I= (1,…,c},其中c《n,对任意的一个iGI,选 择一个随机元素选择随机数/7G并计算承诺值Z=e化i(ID),Ppub),其中e为 GiXGi-G2的双线性映射,G2为q阶乘法循环群,H1为从0和1组成的比特序列集映射到q阶乘法循环群Gi的抗碰撞哈希函数,ID表示云用户的身份ID,主公钥Ppub=g°,系统预设 参数g为q阶乘法循环群Gi的生成元,主密钥aEr.
[0030] 计算签名广播值Cl二gp,C2二rp,C3二Zp;
[0031] 生成证明口争;口:['二口01({(咨,2,01,03):10咨扔二10咨斯},其中口01(为知识证明协议;
[003引选择一个随机消息m计算签名广播值= /" ? ^.,(n叫^:(..細II ,其中随 机消息me{0,1} \ {0,ir表示由0和1组成的长度为A(A为系统预设值)的比特序 列集,即随机消息m与哈希函数&的输出长度一致,H2为从0和1组成的比特序列集映射 到q阶乘法循环群Gi的抗碰撞哈希函数,H3为q阶乘法循环群G2映射到{0,1} \的抗碰撞 哈希函数,化ame表示待验证文件的文件名;
[003引生成挑战值chal= (C。C3,C4,Q,pf),其中Q表示挑战集合Q= {(i,Vi)};
[0034] 在步骤S3中,云服务器生成响应值为;基于零知识证明检查证明pf是否 有效,若无,则中止并返回0;否则,基于文件块、数据块标签、挑战值chal根据公式 所.. = (.4货(.1).计算响应值m',其中文件块聚合y=ZieiViivnii表示待验证 文件的各数据块;标签聚合C=n,d巧'',其中巧=?V'"'II/')"。
[0035] 综上所述,由于采用了上述技术方案,本发明的有益效果是:
[0036] (1)云用户在存储数据时,私钥由KGC服务器生成,显著减少了建立和管理PKI系 统的成本,降低了系统的复杂性。
[0037] (2)基于身份的完整性验证:本发明在实现高效的数据完整性保护和安全性保证 的基础上,消除了证书的管理,无需在每次验证数据完整性时先验证云用户公钥的有效性, 简化了系统的复杂性。
[003引 (3)零知识的隐私保护;本发采用可聚合的基于签名的广播实现了零知识的隐私 保护,且相比利用直接零知识证明技术实现零知识隐私保护的方案,交互的轮数少,计算量 小,通信开销低;并且,由于对应生成的响应值仅仅为一个元素,使得响应值传输的带宽消 耗低。
【附图说明】
[0039] 图1是本发明【具体实施方式】的数据存储与完整性验证过程示意图;
[0040] 图2是本发明具体实施方法的云数据存储过程示意图;
[0041] 图3是本发明【具体实施方式】的完整性验证过程示意图。
【具体实施方式】
[0042] 为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发 明作进一步地详细描述。
[0043] 本发明是W基于身份的公钥密码学理论为基础,提出一种云计算中基于身份的数 据存储与完整性验证方法,应用于高安全性要求的云存储环境。云用户利用KGC服务器生 成的私钥来计算待上传文件的数据块标签,用W保证数据的完整性,当云用户想要验证云 数据完整性时,验证服务器利用挑战响应方法来验证云服务器中的数据,为了实现高效的 远程数据验证机制和零知识的隐私保护,本发明采用可聚合的基于签名广播来生成挑战信 息、响应值。
[0044]参照图1,本发明的具体实现如下:
[0045] 步骤S100.系统参数的初始化:
[0046] 在本【具体实施方式】中,选择KGC服务器执行系统的参数初始化,当然,也可W是服 务器、验证服务器等,本发明不作限定。
[0047] 步骤S101 ;KGC服务器选择一个安全参数1 (为了保障系统的安全性,安全参数1 最好设置为不低于16化it长的大素数),基于安全参数1选择两个W素数q为阶的乘法循 环群Gi和〇2,选择随机数g作为群Gi的一个生成元,e;GiXGi- 〇2是一个双线性映射。选 择一个随机数《eZ,;作为主密钥,其中Z;为模q的乘法循环换群乘法循环群,计算主公钥 Ppub=g°。Hi、&和H3是;个抗碰撞的哈希版sh)函数,其中H1、&为从0和1组成的比 特序列集映射到Gi,即{0,ir一Gi;H3为G2映射到由0和1组成的长度为A(为了保障系 统的安全性,A通常设置为不低于160的整数)比特序列集,即G2 - {0,1} \
[0048] 步骤S102;KGC公开系统参数咕,G2,e,g,Ppub,&,&,U。
[0049] 步骤S200.数据存储,云用户将数据上传至云服务器,参照图2,具体步骤为: [0化日]步骤S201 ;云用户(云用户端)向KGC服务器申请密钥。云用户生成密钥申请请 求并发送至密钥生成中屯、KGC服务器,所述密钥申请请求包含基于云用户的身份ID生成的 公钥QidW及身份证明,KGC服务器在收到密钥申请请求后,选择一个主密钥a,再根据收到 的公钥Qid,为云用户生成私钥S:
[CK)5U步骤S201-a;云用户根据公式Qid=H1(ID)计算公钥Qid,其中ID表示云用户的身 份ID,基于公钥Qid生成密钥申请请求并发送至KGC服务器,该密钥申请请求中携带云用户 的身份证明;
[0化引步骤S201-b:KGC服务器收密钥申请请求后,审核其中的身份证明,若通过,则选 择一个主密钥《e ,基于公钥Qid计算云用户的私钥S,使得S=H1(IDr,并将私钥S通 过安全信道发送给云用户。
[0化3] 步骤S202 ;云用户上传数据至云服务器。云用户对待上传文件进行数据预处理, 即为待上传文件设置文件名,并将该待上传文件进行数据分块,为每一个数据块计算一个 标签值,最后将数据和标签一起上传至云服务器,同时删除本地文件。参照图2,本过程的具 体实现如下:
[0化4] 步骤S202-a;云用户为待上传文件M设置一个文件名化ame;
[0055] 步骤S202-b;云用户将文件M分成n个数据块,得到数据块咕}1<1《。;
[0056] 步骤S2〇3-c;云用户计算文件标签T= (r,0山选择一个随机数"€马,根 据公式r=g"得到参数r并在本地保存,再根据公式巧II0"计算得到各数据 块标签01,从而得到文件标签得T= (r,0。…,0。)。最后将文件和标签化M)上传至云 服务器,同时本地删除数据(文件和对应标签);
[0057]步骤S203-d;云服务器在接收到文件和标签订,M)后,将其存储在存储介质中。 [0化引步骤S300.完整性验证,验证服务器与云服务器的交互过程:
[0化9] 云用户生成完整性验证请求并发送给验证服务器,验证服务器根据收到的完整性 验证请求,生成一个挑战值发送给对应云服务器,云服务器收到挑战值后根据挑战值和保 存的文件内容、标签信息等计算响应值并发送给验证服务器,然后验证服务器验证响应值 的有效性,进而确定云用户的文件是否完整地保存在云服务器上,最后生成完整性验证报 告发送给云用户。参照图3,本过程的具体实现如下:
[0060] 步骤S301 ;云用户生成完整性验证请求requ=req|Isi即,(req)并发送给验证 服务器,请求验证云服务器中数据的完整性,其中req=ID||M|IServerliTime(或req= ID||QidIIm|IServerliTime,若不直接携带公钥Qid,则在后续步骤中需要用到公钥Qid时,基 于ID计算得到Qid),ID表示云用户的身份ID,M表示