CN113489690B - 强抗密钥暴露的在线/离线外包数据完整性审计方法 - Google Patents

强抗密钥暴露的在线/离线外包数据完整性审计方法 Download PDF

Info

Publication number
CN113489690B
CN113489690B CN202110690869.3A CN202110690869A CN113489690B CN 113489690 B CN113489690 B CN 113489690B CN 202110690869 A CN202110690869 A CN 202110690869A CN 113489690 B CN113489690 B CN 113489690B
Authority
CN
China
Prior art keywords
data owner
tpa
group
key
params
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.)
Expired - Fee Related
Application number
CN202110690869.3A
Other languages
English (en)
Other versions
CN113489690A (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.)
Jinan University
Original Assignee
Jinan University
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 Jinan University filed Critical Jinan University
Priority to CN202110690869.3A priority Critical patent/CN113489690B/zh
Publication of CN113489690A publication Critical patent/CN113489690A/zh
Application granted granted Critical
Publication of CN113489690B publication Critical patent/CN113489690B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种强抗密钥暴露的在线/离线外包数据完整性审计方法,命名为S‑OORDA方法。本发明支持数据拥有者在不需要安全信道的情况下完成密钥更新操作,从而实现强抗密钥暴露的云数据完整性验证功能。本发明允许在每个时间片段远程更新认证标签,阻止攻击者利用暴露的审计密钥伪造认证标签。与此同时,本发明通过采用在线/离线的方式,将数据完整性审计过程划分为在线和离线两个阶段,有效地减少数据拥有者和第三方审计者的在线计算开销,解决数据拥有者使用资源受限设备的问题。基于CDH困难问题和DL困难问题,本发明在随机预言机模型下被证明具备强抗密钥暴露安全,并且满足隐私保护、更新密钥可验证和可检测特性。

Description

强抗密钥暴露的在线/离线外包数据完整性审计方法
技术领域
本发明涉及外包数据完整性审计相关技术领域,具体涉及一种强抗密钥暴露的在线/离线外包数据完整性审计方法。
背景技术
2015年,Yu等人在文献《Enabling Cloud Storage Auditing with Key-exposureResistance》中首次考虑到远程数据安全审计框架下的密钥暴露问题。在该方案中,数据的生命周期被划分为多个时间片段,每个时间片段通过一个密钥更新方法来更新审计私钥。然而,该方案仅支持前向安全,意味着仅保证密钥暴露之前的时间片段的安全。攻击者仍然可以利用暴露的审计私钥,来生成密钥暴露时间片段之后的密钥,从而伪造密钥暴露时间片段之后的认证标签。为了克服这个问题,文献《Strong Key-exposure ResilientAuditing for Secure Cloud Storage》和文献《Identity-Based Public AuditingScheme for Cloud Storage with Strong Key-Exposure Resilience》被提出,使得审计私钥仅可以在指定的时间片段使用,而不能推导出之前和之后的私钥。也就是说,这些方案可以同时确保前向和后向安全,保护在密钥暴露时间片段之前和之后的认证标签安全,但是这两个方案需要通过安全通道实现密钥更新。随后,很多抗密钥暴露的远程数据安全审计方案被提出。
然而,上述方案并没有完全解决密钥暴露问题,因为云服务器仍然可以使用暴露的审计私钥伪造认证标签并通过完整性验证。为了抵抗在密钥暴露阶段的攻击,并提升效率,一些支持认证标签更新的远程数据安全审计方案被提出。最近,Xu等人在文献《Intrusion-resilient Public Cloud Auditing Scheme with Authenticator Update》提出一种安全有效的抗密钥暴露的远程数据安全审计方案,每个时间片段由云服务器更新认证标签。然而,该方案在每个时间片段都需要一个安全通道来生成安全的审计私钥。事实上,在存在密钥暴露风险的环境下,建立一个安全通道是很难实现的,因为双方通信的共享安全密钥可能被敌手窃取。因此,如何构建一种在密钥暴露场景中无须安全通道的审计方案是一个具有挑战的问题。
另一方面,由于数据拥有者可能会使用计算能力有限的移动设备上传数据,减少数据拥有者端的计算开销很有必要。基于这个需求,在线/离线技术被引入到远程数据安全审计框架中,比如文献《Privacy-preserving Public Auditing Protocol for Low-performance End Devices in Cloud》和文献《Online/Offline Provable DataPossession》。通过将数据处理过程分为在线和离线两个阶段,数据拥有者的在线计算开销可以有效地降低。那么,如何构建一个审计方案,使得数据拥有者和第三方审计者的计算量都尽可能低,已成为另一个有待解决的问题。
因此,为了对已有的远程数据安全审计方案增强安全和提升效率,我们引入强抗密钥暴露的在线/离线远程数据安全审计(S-OORDA)的概念和框架,并给出具体的S-OORDA构造,实现安全高效的数据完整性验证,并支持无安全信道的密钥更新以及云服务器端的认证标签更新操作。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种强抗密钥暴露的在线/离线外包数据完整性审计方法。
本发明的目的可以通过采取如下技术方案达到:
一种强抗密钥暴露的在线/离线外包数据完整性审计方法,所述审计方法包括以下步骤:
S1、数据拥有者DO首先运行系统建立算法Setup(1λ),其中λ为安全参数,得到公共参数params和私钥sk,私钥sk由数据拥有者DO私密保存;
S2、数据拥有者DO使用公共参数params、私钥sk和当前时间片段t,与第三方审计者TPA交互运行密钥更新算法KeyUpdate(params,sk,t)对审计私钥进行更新操作,得到当前审计私钥askt
S3、数据拥有者DO使用公共参数params、审计私钥askt和当前时间片段t,通过运行离线认证标签生成算法AuthGenoff(params,askt,t),得到n个离线认证标签{θi,t}1≤i≤n和授权私钥skdel,其中,n取值等于文件M包含的数据块的数目,i表示数据块的索引且1≤i≤n;
S4、数据拥有者DO输入公共参数params、私钥sk和文件M∈{0,1}*,运行在线认证标签生成算法AuthGenon(params,sk,M),得到n个数据块和文件认证标签T,其中,{0,1}*表示任意长度的二进制字符串,mi表示第i个数据块;
S5、数据拥有者DO和云服务器CS交互运行认证标签更新算法AuthUpdate(params,θi,t-1,t),对认证标签执行远程更新操作,得到更新的离线认证标签θi,t,其中,θi,t-1表示上一个时间片段t-1的离线认证标签;
S6、当数据拥有者DO需要检查文件是否完整保存在云服务器CS时,数据拥有者DO将授权私钥skdel通过安全通道传送给第三方审计者TPA,第三方审计者TPA使用公共参数params,通过调用挑战算法Challenge(params),得到挑战信息chal,并将挑战信息chal传给云服务器CS;
S7、云服务器CS使用公共参数params、文件M和对应于挑战信息chal的文件认证标签T,通过运行证明算法Proof(params,M,T,chal)得到证明信息prf,并将证明信息prf返回给第三方审计者TPA;
S8、第三方审计者TPA在收到审计任务之前,先使用公共参数params,调用离线验证算法Verifyoff(params)得到离线审计令牌tok;
S9、当收到证明信息prf时,第三方审计者TPA使用公共参数params、授权私钥skdel、离线审计令牌tok和挑战信息chal,运行在线验证算法Verifyon(params,skdel,tok,chal,prf)验证数据完整性,如果在线验证算法输出为1,则说明证明信息prf是有效的并且文件完整地存储在云服务器;如果在线验证算法输出为0,则说明文件被损坏。
进一步地,令BLS签名方案由(BLS.KeyGen,BLS.Sign,BLS.Verification)表示,其中BLS.KeyGen算法输入安全参数λ,输出签名公私密钥对{spk,ssk};BLS.Sign算法输入签名私钥ssk和消息m,输出签名,记为σ=Signssk(m);BLS.Verification算法输入签名公钥spk和签名σ,如果BLS.Verification算法输出0,表示签名无效,否则输出1,表示签名是有效的;
所述系统建立算法Setup(1λ)过程如下:
P1、输入安全参数λ,数据拥有者DO首先选取一个阶数为p、生成元为g的双线性群G,并且p为λ位大素数,选取群元素u∈G,群GT和双线性映射e:G×G→GT,表示将两个来自双线性群G的群元素通过双线性对配对运算,映射到一个来自群GT的群元素;然后数据拥有者DO调用BLS.KeyGen算法生成一个签名密钥对{spk,ssk},数据拥有者DO选取三个抗碰撞哈希函数h:{0,1}*→{0,1}*,H1:{0,1}*→G,H2:{0,1}*→{0,1}*;
P2、数据拥有者DO随机选取
Figure GDA0003921224220000041
设置第三方审计者TPA的公私密钥对为{pkTPA=gγ,skTPA=γ},
Figure GDA0003921224220000042
表示模p的既约剩余系,p为λ位大素数,λ为安全参数;
P3、数据拥有者DO随机选取
Figure GDA0003921224220000043
则数据拥有者DO的公私密钥对为
Figure GDA0003921224220000044
pkDO表示数据拥有者DO的公钥,skDO表示数据拥有者DO的私钥,数据拥有者DO随机选取
Figure GDA0003921224220000045
作为口令,计算口令的哈希值h(pw);假设初始时间片段为0,数据拥有者DO计算初始审计私钥
Figure GDA0003921224220000051
其中符号“·”表示乘法运算,H1(0)表示将时间片段0通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素;
P4、数据拥有者DO将第三方审计者TPA的私钥skTPA和口令的哈希值h(pw)发送给第三方审计者TPA,并在本地删除;第三方审计者TPA保存私钥skTPA和条目(pkDO,h(pw));最后,数据拥有者DO公开如下公共参数:
params={G,p,g,u,GT,spk,h,H1,H2,pkTPA,pkDO}。
进一步地,所述密钥更新算法KeyUpdate(params,sk,t)过程如下:
E1、对于时间片段t,数据拥有者DO选取一个随机值
Figure GDA0003921224220000052
计算密钥更新请求(Rt,Ψ)如下:
Figure GDA0003921224220000053
其中,Rt表示请求密钥更新的相关参数,Ψ表示身份验证的相关参数,符号“·”表示乘法运算,符号
Figure GDA0003921224220000054
表示字符串异或操作,pkDO表示数据拥有者DO的公钥,
Figure GDA0003921224220000055
作为口令,h(pw)表示口令的哈希值,H1(t)表示将时间片段t通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素,H1(t-1)表示将时间片段t-1通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素,
Figure GDA0003921224220000056
表示将
Figure GDA0003921224220000057
通过抗碰撞哈希函数h映射到一个哈希值,
Figure GDA0003921224220000058
表示模p的既约剩余系,p为λ位大素数,λ为安全参数;
E2、收到密钥更新请求(Rt,Ψ)之后,第三方审计者TPA先验证
Figure GDA0003921224220000059
其中,密钥更新请求(Rt,Ψ)由两部分组成,Rt表示请求密钥更新的相关参数,Ψ表示身份验证的相关参数;符号
Figure GDA00039212242200000510
表示判定操作,即需要判定验证式左右两边的值是否相等;如果验证通过,计算更新密钥
Figure GDA00039212242200000511
skTPA表示第三方审计者TPA的私钥,并将更新密钥ukTPA,t发送给数据拥有者DO;
E3、数据拥有者DO计算密钥更新参数
Figure GDA0003921224220000061
验证
Figure GDA0003921224220000062
其中,更新密钥
Figure GDA0003921224220000063
skTPA表示第三方审计者TPA的私钥;e(ukt,g)表示将来自双线性群G的群元素ukt和群生成元g,通过双线性对配对运算,映射到一个来自群GT的群元素;e(H1(t)·H1(t-1)-1,pkTPA)表示将两个来自双线性群G的群元素{H1(t)·H1(t-1)-1,pkTPA},通过双线性对配对运算,映射到一个来自群GT的群元素;H1(t)表示将时间片段t通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素,H1(t-1)表示将时间片段t-1通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素;pkTPA=gγ表示第三方审计者TPA的公钥且pkTPA∈G,随机值
Figure GDA0003921224220000064
Figure GDA0003921224220000065
表示模p的既约剩余系,p为λ位大素数,λ为安全参数;如果验证通过,数据拥有者DO计算时间片段t的审计私钥askt=askt-1·ukt;如果验证不通过,说明收到的更新密钥ukTPA,t有误,算法终止,数据拥有者DO重新执行密钥更新操作;最后,数据拥有者DO丢弃时间片段t-1的审计私钥askt-1和更新密钥ukTPA,t
进一步地,所述离线认证标签生成算法AuthGenoff(params,askt,t)过程如下:
N1、数据拥有者DO选取三个随机值
Figure GDA0003921224220000066
计算δ=gα,x=x1·x2,其中,符号“·”表示乘法运算,g为双线性群G的生成元,
Figure GDA0003921224220000067
表示模p的既约剩余系,p为λ位大素数,λ为安全参数,并设置参数δ公开;
N2、数据拥有者DO计算授权私钥
Figure GDA0003921224220000068
并将授权私钥skdel安全地传送给第三方审计者TPA,然后数据拥有者DO本地删除授权私钥skdel
N3、对于1≤i≤n,数据拥有者DO选取两个随机值
Figure GDA0003921224220000069
计算离线认证参数
Figure GDA00039212242200000610
N4、对于时间片段t,数据拥有者DO选取一个随机值
Figure GDA00039212242200000611
对每个数据块计算离线认证标签
Figure GDA0003921224220000071
最后数据拥有者DO设置参数
Figure GDA0003921224220000072
公开,其中,{Ut,Vt}是计算离线审计令牌的参数,askt表示t时间片段的审计私钥,群元素u∈G,G表示一个双线性群,H1(t)表示将时间片段t通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素。
进一步地,所述在线认证标签生成算法AuthGenon(params,sk,M)过程如下:
G1、数据拥有者DO将文件M∈{0,1}*分为n块;
G2、数据拥有者DO随机选取
Figure GDA0003921224220000073
作为文件名,n为数据块数目,调用BLS.Sign算法,将name||n作为需要签名的消息,生成一个签名σ=Signssk(name||n)并设置签名验证信息
Figure GDA0003921224220000074
其中,ssk表示签名私钥,符号“||”表示字符串连接符,
Figure GDA0003921224220000075
表示模p的既约剩余系,p为λ位大素数,λ为安全参数;
G3、数据拥有者DO随机选取
Figure GDA0003921224220000076
计算在线认证参数
ri=xmi'+ri'-xmi-β·H2(name||i)
其中,随机值
Figure GDA0003921224220000077
x=x1·x2,随机值
Figure GDA0003921224220000078
第i个数据块表示为mi,i表示数据块的索引并且满足1≤i≤n,n为数据块数目,H2(name||i)表示将name||i通过抗碰撞哈希函数H2映射到一个哈希值,符号“·”表示乘法运算,数据拥有者DO将{mi}1≤i≤n和文件认证标签
Figure GDA0003921224220000079
发送给云服务器CS,其中θi,t表示t时间片段的第i个数据块离线认证标签,认证标签T包含五个参数,分别是随机数
Figure GDA00039212242200000710
签名验证信息
Figure GDA00039212242200000711
时间片段t、在线认证参数ri以及时间片段t的所有数据块离线认证标签{θi,t}1≤i≤n,最后,数据拥有者DO删除本地文件M,并设置参数
Figure GDA00039212242200000712
公开,
Figure GDA00039212242200000713
是计算离线审计令牌的参数。
进一步地,所述认证标签更新算法AuthUpdate(params,θi,t-1,t)过程如下:数据拥有者DO计算认证标签更新请求
Figure GDA0003921224220000081
并将updt发送给云服务器CS,云服务器CS将所有数据块{mi}1≤i≤n的认证标签更新为θi,t=θi,t-1·updt,其中,askt表示t时间片段的审计私钥,askt-1分别表示时间片段t-1的审计私钥,时间片段t的随机值
Figure GDA0003921224220000082
时间片段t-1的随机值
Figure GDA0003921224220000083
θi,t表示t时间片段的第i个数据块离线认证标签,θi,t-1表示时间片段t-1的第i个数据块离线认证标签,符号“·”表示乘法运算。
进一步地,所述挑战算法Challenge(params)过程如下:
L1、第三方审计者TPA从云服务器中获取签名验证信息
Figure GDA0003921224220000084
调用BLS.Verification算法,使用签名公钥spk验证签名σ=Signssk(name||n),其中
Figure GDA0003921224220000085
为文件名,n为数据块数目,ssk表示签名私钥;如果签名无效,输出0并终止;否则,第三方审计者TPA接受name和n,其中,符号“||”表示字符串连接符,
Figure GDA0003921224220000086
表示模p的既约剩余系,p为λ位大素数,λ为安全参数;
L2、第三方审计者TPA随机选取一个挑战集合
Figure GDA0003921224220000087
为每个j∈I选取随机值
Figure GDA0003921224220000088
其中j表示挑战的数据块索引并且满足1≤j≤n。第三方审计者TPA将挑战信息chal={j,vj}j∈I发送给云服务器CS。
进一步地,所述证明算法Proof(params,M,T,chal)中,收到挑战信息chal后,云服务器CS选取一个随机值
Figure GDA0003921224220000089
并计算
Figure GDA00039212242200000810
其中,μ表示数据块的聚合值,η表示证明的相关参数,r表示在线认证参数的聚合值,θ表示数据块离线认证标签的聚合值,j表示挑战的数据块索引并且满足1≤j≤n,挑战集合
Figure GDA00039212242200000811
随机数
Figure GDA00039212242200000812
随机值
Figure GDA00039212242200000813
mj表示第j个挑战数据块,rj表示第j个数据块的在线认证参数,θj,t表示t时间片段的第j个数据块离线认证标签,g为双线性群G的生成元,
Figure GDA00039212242200000814
表示模p的既约剩余系,p为λ位大素数,λ为安全参数,云服务器将证明信息prf={μ,η,r,θ}发送给第三方审计者TPA。
进一步地,所述离线验证算法Verifyoff(params)中,在离线阶段,第三方审计者TPA提前计算离线审计令牌tok=(Λ,Γ)如下:
Figure GDA0003921224220000091
其中,g为双线性群G的生成元,参数δ=gα
Figure GDA0003921224220000092
Figure GDA0003921224220000093
表示将两个来自双线性群G的群元素
Figure GDA0003921224220000094
通过双线性对配对运算,映射到一个来自群GT的群元素,简称为双线性映射e:G×G→GT
Figure GDA0003921224220000095
表示数据拥有者DO的公钥且pkDO∈G,随机值
Figure GDA0003921224220000096
pkTPA=gγ表示第三方审计者TPA的公钥且pkTPA∈G,随机值
Figure GDA0003921224220000097
Figure GDA0003921224220000098
表示模p的既约剩余系,p为λ位大素数,λ为安全参数,参数
Figure GDA0003921224220000099
群元素u∈G,H1(t)表示将时间片段t通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素,t时间片段的随机值
Figure GDA00039212242200000910
e(Ut,pkDO)表示将两个来自双线性群G的群元素{Ut,pkDO}通过双线性对配对运算,映射到一个来自群GT的群元素;e(Vt,pkTPA)表示将两个来自双线性群G的群元素{Ut,pkDO}通过双线性对配对运算,映射到一个来自群GT的群元素;符号“·”表示乘法运算。
进一步地,所述在线验证算法Verifyon(params,skdel,tok,chal,prf)过程如下:
F1、收到证明信息prf后,第三方审计者TPA计算验证参数
Figure GDA00039212242200000911
其中,j表示挑战的数据块索引并且满足1≤j≤n,挑战集合
Figure GDA00039212242200000912
随机值
Figure GDA00039212242200000913
为文件名,
Figure GDA00039212242200000914
表示模p的既约剩余系,p为λ位大素数,λ为安全参数,H2(name||j)表示将name||j通过抗碰撞哈希函数H2映射到一个哈希值,符号“||”表示字符串连接符;
F2、第三方审计者TPA使用授权私钥
Figure GDA00039212242200000915
和离线审计令牌tok,对文件M执行在线完整性审计,验证式如下:
Figure GDA0003921224220000101
其中,(Λ,Γ)表示离线审计令牌,授权私钥
Figure GDA0003921224220000102
随机值
Figure GDA0003921224220000103
g为双线性群G的生成元,验证参数
Figure GDA0003921224220000104
证明信息prf={μ,η,r,θ},μ表示数据块的聚合值,η表示证明的相关参数,r表示在线认证参数的聚合值,θ表示数据块离线认证标签的聚合值,
Figure GDA0003921224220000105
表示将两个来自双线性群G的群元素
Figure GDA0003921224220000106
通过双线性对配对运算,映射到一个来自群GT的群元素;
Figure GDA0003921224220000107
表示将两个来自双线性群G的群元素
Figure GDA0003921224220000108
通过双线性对配对运算,映射到一个来自群GT的群元素;符号“·”表示乘法运算,符号
Figure GDA0003921224220000109
表示判定操作,即需要判定验证式左右两边的值是否相等;如果上述验证式成立,则输出1,表明文件完整地存储在云服务器,否则,输出0,表明文件被损坏。
本发明相对于现有技术具有如下的优点及效果:
1)本发明公开了一种强抗密钥暴露的在线/离线外包数据完整性审计方法,命名为S-OORDA方案,能够抵抗审计密钥暴露攻击。
2)本发明支持数据拥有者在不需要安全信道的情况下完成密钥更新操作,从而实现了强抗密钥暴露的云数据完整性验证功能。本发明允许在每个时间片段远程更新认证标签,阻止了攻击者利用暴露的审计密钥伪造认证标签。
3)本发明通过采用在线/离线的方式,将数据完整性审计过程划分为在线和离线两个阶段,有效地减少了数据拥有者和第三方审计者的在线计算开销,解决了数据拥有者使用资源受限设备的问题。
4)基于CDH困难问题和DL困难问题,本发明在随机预言机模型下被证明具备强抗密钥暴露安全,并且满足隐私保护、更新密钥可验证和可检测特性。效率分析表明本发明与已有文献相比更为高效。
附图说明
图1是本发明实施例公开的一种强抗密钥暴露的在线/离线外包数据完整性审计方法的应用系统设计图;
图2是本发明实施例公开的一种强抗密钥暴露的在线/离线外包数据完整性审计方法的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
随着云计算的不断发展,越来越多的企业或个人选择将数据外包存储到云服务器。这种远程存储方式可以有效节省本地开销,但也将带来了数据完整性问题。为了保证数据安全完整地存储在云服务器,远程数据安全审计方法被提出并应用于云存储环境。然而,在现实生活中,由于一些不可控的因素比如弱安全设备或低安全意识,数据拥有者的审计私钥可能被暴露,使得已有的方案不再满足安全需求。为了解决这个问题,抗密钥暴露的远程数据安全审计方法被提出。然而,现有的大多数方法存在安全攻击,比如云服务器仍然可以在密钥暴露的时间段丢弃或篡改数据拥有者的文件;或者需要通过安全通信实现密钥更新,这在密钥暴露的情境下是不现实且昂贵的。因此,如何构造出抗密钥暴露攻击且高效的远程数据安全审计方法,已成为研究热点问题。
本实施例针对以上问题,主要研究了抗密钥暴露攻击的在线/离线远程数据安全审计机制,提出了一种强抗密钥暴露的在线/离线外包数据完整性审计方法,命名为S-OORDA方法,实现了高效的数据完整性验证并且能够抵抗密钥暴露攻击。在每个时间片段开始的时候由第三方审计者协助数据拥有者更新密钥,并且在密钥更新过程中去除了安全通道。本发明通过数据拥有者和云服务器交互实现了认证标签的更新,从而不需要下载所有数据在本地更新。同时,本发明基于在线/离线的思想解决了数据拥有者使用资源受限设备的问题和第三方审计者审计效率瓶颈的问题,从而提升了整个方案的审计效率。安全证明和性能分析表明了本发明满足所需的安全和优化的效率。
下面结合图1对本实施例公开的一种强抗密钥暴露的在线/离线外包数据完整性审计方法的具体过程进行详细说明。令BLS签名方案由(BLS.KeyGen,BLS.Sign,BLS.Verification)表示,其中BLS.KeyGen算法输入安全参数λ,输出签名公私密钥对{spk,ssk};BLS.Sign算法输入签名私钥ssk和消息m,输出签名,记为σ=Signssk(m);BLS.Verification算法输入签名公钥spk和签名σ,如果BLS.Verification算法输出0,表示签名无效,否则输出1,表示签名是有效的。
一种强抗密钥暴露的在线/离线外包数据完整性审计方法包括如下步骤:
S1、数据拥有者DO首先运行系统建立算法Setup(1λ),其中λ为安全参数,得到公共参数params和私钥sk,私钥sk由数据拥有者DO私密保存;
其中,系统建立算法Setup(1λ)过程如下:
P1、输入安全参数λ,数据拥有者DO首先选取一个阶数为p,生成元为g的双线性群G,并且p为λ位大素数,选取群元素u∈G,群GT和双线性映射e:G×G→GT,表示将两个来自双线性群G的群元素通过双线性对配对运算,映射到一个来自群GT的群元素。然后数据拥有者DO调用BLS.KeyGen算法生成一个签名密钥对{spk,ssk}。DO选取三个抗碰撞哈希函数h:{0,1}*→{0,1}*,H1:{0,1}*→G,H2:{0,1}*→{0,1}*;
P2、数据拥有者DO随机选取
Figure GDA0003921224220000131
设置第三方审计者TPA的公私密钥对为{pkTPA=gγ,skTPA=γ},
Figure GDA0003921224220000132
表示模p的既约剩余系,p为λ位大素数,λ为安全参数;
P3、数据拥有者DO随机选取
Figure GDA0003921224220000133
则数据拥有者DO的公私密钥对为
Figure GDA0003921224220000134
数据拥有者DO随机选取
Figure GDA0003921224220000135
作为口令,计算口令的哈希值h(pw)。假设初始时间片段为0,数据拥有者DO计算初始审计私钥
Figure GDA0003921224220000136
其中符号“·”表示乘法运算,H1(0)表示将时间片段0通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素;
P4、数据拥有者DO将第三方审计者TPA的私钥skTPA和口令的哈希值h(pw)发送给第三方审计者TPA,并在本地删除。第三方审计者TPA保存skTPA和条目(pkDO,h(pw))。最后,数据拥有者DO公开如下公共参数:
params={G,p,g,u,GT,spk,h,H1,H2,pkTPA,pkDO}。
S2、数据拥有者DO使用公共参数params、私钥sk和当前时间片段t,与第三方审计者TPA交互运行密钥更新算法KeyUpdate(params,sk,t)对审计私钥进行更新操作,得到当前审计私钥askt
其中,密钥更新算法KeyUpdate(params,sk,t)过程如下:
E1、对于时间片段t,数据拥有者DO选取一个随机值
Figure GDA0003921224220000137
计算密钥更新请求(Rt,Ψ)如下:
Figure GDA0003921224220000138
其中,Rt表示请求密钥更新的相关参数,Ψ表示身份验证的相关参数;符号“·”表示乘法运算,符号
Figure GDA0003921224220000139
表示字符串异或操作,pkDO表示数据拥有者DO的公钥,
Figure GDA00039212242200001310
作为口令,h(pw)表示口令的哈希值,H1(t)表示将时间片段t通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素,H1(t-1)表示将时间片段(t-1)通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素,
Figure GDA0003921224220000141
表示将
Figure GDA0003921224220000142
通过抗碰撞哈希函数h映射到一个哈希值,
Figure GDA0003921224220000143
表示模p的既约剩余系,p为λ位大素数,λ为安全参数;
E2、收到密钥更新请求(Rt,Ψ)之后,第三方审计者TPA先验证
Figure GDA0003921224220000144
其中,密钥更新请求(Rt,Ψ)由两部分组成,Rt表示请求密钥更新的相关参数,Ψ表示身份验证的相关参数;符号
Figure GDA0003921224220000145
表示判定操作,即需要判定验证式左右两边的值是否相等;如果验证通过,计算更新密钥
Figure GDA0003921224220000146
其中skTPA表示第三方审计者TPA的私钥,并将更新密钥ukTPA,t发送给数据拥有者DO;
E3、数据拥有者DO计算密钥更新参数
Figure GDA0003921224220000147
验证
Figure GDA0003921224220000148
其中,更新密钥
Figure GDA0003921224220000149
Rt表示请求密钥更新的相关参数,skTPA表示第三方审计者TPA的私钥;e(ukt,g)表示将来自双线性群G的群元素ukt和群生成元g,通过双线性对配对运算,映射到一个来自群GT的群元素;e(H1(t)·H1(t-1)-1,pkTPA)表示将两个来自双线性群G的群元素{H1(t)·H1(t-1)-1,pkTPA},通过双线性对配对运算,映射到一个来自群GT的群元素;H1(t)表示将时间片段t通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素,H1(t-1)表示将时间片段t-1通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素;pkTPA=gγ表示第三方审计者TPA的公钥且pkTPA∈G,随机值
Figure GDA00039212242200001410
Figure GDA00039212242200001411
表示模p的既约剩余系,p为λ位大素数,λ为安全参数;如果验证通过,数据拥有者DO计算时间片段t的审计私钥askt=askt-1·ukt;如果验证不通过,说明收到的更新密钥ukTPA,t有误,算法将终止,数据拥有者DO重新执行密钥更新操作;最后,数据拥有者DO丢弃(t-1)时间片段的审计私钥askt-1和更新密钥ukTPA,t
S3、数据拥有者DO使用公共参数params、审计私钥askt和当前时间片段t,通过运行离线认证标签生成算法AuthGenoff(params,askt,t),得到n个离线认证标签{θi,t}1≤i≤n和授权私钥skdel,其中,n取值等于文件M包含的数据块的数目,i表示数据块的索引且1≤i≤n;
其中,离线认证标签生成算法AuthGenoff(params,askt,t)过程如下:
N1、数据拥有者DO选取三个随机值
Figure GDA0003921224220000151
计算δ=gα,x=x1·x2,其中符号“·”表示乘法运算,g为双线性群G的生成元,
Figure GDA0003921224220000152
表示模p的既约剩余系,p为λ位大素数,λ为安全参数,并设置参数δ公开;
N2、数据拥有者DO计算授权私钥
Figure GDA0003921224220000153
并将授权私钥skdel安全地传送给第三方审计者TPA。然后数据拥有者DO本地删除skdel
N3、对于1≤i≤n,数据拥有者DO选取两个随机值
Figure GDA0003921224220000154
计算离线认证参数
Figure GDA0003921224220000155
其中i表示数据块的索引,n表示文件M包含的数据块的数目;
N4、对于时间片段t,数据拥有者DO选取一个随机值
Figure GDA0003921224220000156
对每个数据块计算离线认证标签
Figure GDA0003921224220000157
最后数据拥有者DO设置参数
Figure GDA0003921224220000158
公开。其中,askt表示t时间片段的审计私钥,群元素u∈G,G表示一个双线性群,H1(t)表示将时间片段t通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素。
S4、数据拥有者DO输入公共参数params、私钥sk和文件M∈{0,1}*,运行在线认证标签生成算法AuthGenon(params,sk,M),得到n个数据块和文件认证标签T,其中,{0,1}*表示任意长度的二进制字符串,mi表示第i个数据块;
其中,在线认证标签生成算法AuthGenon(params,sk,M)过程如下:
G1、数据拥有者DO将文件M∈{0,1}*分为n块,设mi(1≤i≤n)表示每个数据块,其中i表示数据块的索引,n表示文件M包含的数据块的数目;
G2、数据拥有者DO随机选取
Figure GDA0003921224220000161
作为文件名,n为数据块数目,调用BLS.Sign算法,将name||n作为需要签名的消息,生成一个签名σ=Signssk(name||n)并设置签名验证信息
Figure GDA0003921224220000162
其中ssk表示签名私钥,符号“||”表示字符串连接符,
Figure GDA0003921224220000163
表示模p的既约剩余系,p为λ位大素数,λ为安全参数;
G3、数据拥有者DO随机选取
Figure GDA0003921224220000164
计算在线认证参数
ri=xmi'+ri'-xmi-β·H2(name||i)
其中,随机值
Figure GDA0003921224220000165
x=x1·x2,随机值
Figure GDA0003921224220000166
第i个数据块表示为mi,i表示数据块的索引并且满足1≤i≤n,n为数据块数目,H2(name||i)表示将name||i通过抗碰撞哈希函数H2映射到一个哈希值,符号“·”表示乘法运算;数据拥有者DO将{mi}1≤i≤n和文件认证标签
Figure GDA0003921224220000167
发送给云服务器CS,其中θi,t表示t时间片段的第i个数据块离线认证标签。因此,认证标签T包含五个参数,分别是随机数
Figure GDA0003921224220000168
签名验证信息
Figure GDA0003921224220000169
时间片段t,在线认证参数ri以及t时间片段的所有数据块离线认证标签{θi,t}1≤i≤n;最后,数据拥有者DO删除本地文件M,并设置参数
Figure GDA00039212242200001610
公开。
S5、数据拥有者DO和云服务器CS交互运行认证标签更新算法AuthUpdate(params,θi,t-1,t),对认证标签执行远程更新操作,得到更新的离线认证标签θi,t,其中,θi,t-1表示上一个时间片段t-1的离线认证标签。
认证标签更新算法AuthUpdate(params,θi,t-1,t)过程如下:数据拥有者DO计算认证标签更新请求
Figure GDA00039212242200001611
并将updt发送给云服务器CS。云服务器CS将所有数据块{mi}1≤i≤n的认证标签更新为θi,t=θi,t-1·updt。其中,askt表示t时间片段的审计私钥,askt-1分别表示(t-1)时间片段的审计私钥,t时间片段的随机值
Figure GDA00039212242200001612
(t-1)时间片段的随机值
Figure GDA00039212242200001613
θi,t表示t时间片段的第i个数据块离线认证标签,θi,t-1表示(t-1)时间片段的第i个数据块离线认证标签,符号“·”表示乘法运算。
S6、当数据拥有者DO需要检查文件是否完整保存在云服务器CS时,数据拥有者DO将授权私钥skdel通过安全通道传送给第三方审计者TPA,第三方审计者TPA使用公共参数params,通过调用挑战算法Challenge(params),得到挑战信息chal,并将挑战信息chal传给云服务器CS;其中,挑战算法Challenge(params)过程如下:
L1、第三方审计者TPA从云服务器中获取签名验证信息
Figure GDA0003921224220000171
调用BLS.Verification算法,使用签名公钥spk验证签名σ=Signssk(name||n),其中
Figure GDA0003921224220000172
为文件名,n为数据块数目,ssk表示签名私钥;如果签名无效,输出0并终止;否则,第三方审计者TPA接受name和n。其中,符号“||”表示字符串连接符,
Figure GDA0003921224220000173
表示模p的既约剩余系,p为λ位大素数,λ为安全参数;
L2、第三方审计者TPA随机选取一个挑战集合
Figure GDA0003921224220000174
为每个j∈I选取随机值
Figure GDA0003921224220000175
其中j表示挑战的数据块索引并且满足1≤j≤n。第三方审计者TPA将挑战信息chal={j,vj}j∈I发送给云服务器CS。
S7、云服务器CS使用公共参数params、文件M和对应于挑战信息chal的文件认证标签T,通过运行证明算法Proof(params,M,T,chal)得到证明信息prf,并将证明信息prf返回给第三方审计者TPA;
其中,证明算法Proof(params,M,T,chal)过程如下:收到挑战信息chal后,云服务器CS选取一个随机值
Figure GDA0003921224220000176
并计算
Figure GDA0003921224220000177
其中,μ表示数据块的聚合值,η表示证明的相关参数,r表示在线认证参数的聚合值,θ表示数据块离线认证标签的聚合值,j表示挑战的数据块索引并且满足1≤j≤n,挑战集合
Figure GDA0003921224220000178
随机数
Figure GDA0003921224220000179
随机值
Figure GDA00039212242200001710
mj表示第j个挑战数据块,rj表示第j个数据块的在线认证参数,θj,t表示t时间片段的第j个数据块离线认证标签,g为双线性群G的生成元,
Figure GDA0003921224220000181
表示模p的既约剩余系,p为λ位大素数,λ为安全参数。云服务器将证明信息prf={μ,η,r,θ}发送给第三方审计者TPA。
S8、第三方审计者TPA在收到审计任务之前,先使用公共参数params,调用离线验证算法Verifyoff(params)得到离线审计令牌tok;
其中,离线验证算法Verifyoff(params)过程如下:在离线阶段,第三方审计者TPA提前计算离线审计令牌tok=(Λ,Γ)如下:
Figure GDA0003921224220000182
其中,g为双线性群G的生成元,参数δ=gα
Figure GDA0003921224220000183
Figure GDA0003921224220000184
表示将两个来自双线性群G的群元素
Figure GDA0003921224220000185
通过双线性对配对运算,映射到一个来自群GT的群元素,简称为双线性映射e:G×G→GT
Figure GDA0003921224220000186
表示数据拥有者DO的公钥且pkDO∈G,随机值
Figure GDA0003921224220000187
pkTPA=gγ表示第三方审计者TPA的公钥且pkTPA∈G,随机值
Figure GDA0003921224220000188
Figure GDA0003921224220000189
表示模p的既约剩余系,p为λ位大素数,λ为安全参数,参数
Figure GDA00039212242200001810
群元素u∈G,H1(t)表示将时间片段t通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素,t时间片段的随机值
Figure GDA00039212242200001811
e(Ut,pkDO)表示将两个来自双线性群G的群元素{Ut,pkDO}通过双线性对配对运算,映射到一个来自群GT的群元素;e(Vt,pkTPA)表示将两个来自双线性群G的群元素{Ut,pkDO}通过双线性对配对运算,映射到一个来自群GT的群元素;符号“·”表示乘法运算。
S9、当收到证明信息prf时,第三方审计者TPA使用公共参数params授权私钥skdel 离线审计令牌tok和挑战信息chal,运行在线验证算法Verifyon(params,skdel,tok,chal,prf)验证数据完整性,如果在线验证算法输出为1,则说明证明信息prf是有效的并且文件完整地存储在云服务器;如果在线验证算法输出为0,则说明文件被损坏。
其中,在线验证算法Verifyon(params,skdel,tok,chal,prf)过程如下:
F1、收到证明信息prf后,第三方审计者TPA计算验证参数
Figure GDA0003921224220000191
其中,j表示挑战的数据块索引并且满足1≤j≤n,挑战集合
Figure GDA0003921224220000192
随机值
Figure GDA0003921224220000193
为文件名,
Figure GDA0003921224220000194
表示模p的既约剩余系,p为λ位大素数,λ为安全参数,H2(name||j)表示将name||j通过抗碰撞哈希函数H2映射到一个哈希值,符号“||”表示字符串连接符;
F2、第三方审计者TPA使用授权私钥
Figure GDA0003921224220000195
和离线审计令牌tok,对文件M执行在线完整性审计,验证式如下:
Figure GDA0003921224220000196
其中,(Λ,Γ)表示离线审计令牌,授权私钥
Figure GDA0003921224220000197
随机值
Figure GDA0003921224220000198
g为双线性群G的生成元,验证参数
Figure GDA0003921224220000199
{μ,η,r,θ}为证明信息,μ表示数据块的聚合值,η表示证明的相关参数,r表示在线认证参数的聚合值,θ表示数据块离线认证标签的聚合值,
Figure GDA00039212242200001910
表示将两个来自双线性群G的群元素
Figure GDA00039212242200001911
通过双线性对配对运算,映射到一个来自群GT的群元素;
Figure GDA00039212242200001912
表示将两个来自双线性群G的群元素
Figure GDA00039212242200001913
通过双线性对配对运算,映射到一个来自群GT的群元素;符号“·”表示乘法运算,符号
Figure GDA00039212242200001914
表示判定操作,即需要判定验证式左右两边的值是否相等;如果上述验证式成立,则输出1,表明文件完整地存储在云服务器。否则,算法输出0,表明文件被损坏。
假设LSH和RSH分别表示上述验证式的左边和右边,则方法的正确性分析如下:
Figure GDA00039212242200001915
Figure GDA0003921224220000201
由此可知LSH=RSH,意味着如果文件安全完整地存储在云服务器,则验证式成立。
在云环境下,实现强抗密钥暴露的在线/离线远程数据安全审计(S-OORDA)机制的具体例子如图1所示。该图包含三个实体,每个实体执行的操作如下。
(1)数据拥有者(Data Owner,DO):通常是企业或个人,为了节省本地存储开销,将数据远程存储到云服务器。在每个时间片段开始的时候,数据拥有者将与第三方审计者交互,实现审计密钥的更新。由于认证标签的生成过程分为离线和在线两个阶段,有效地降低了数据拥有者的在线计算开销。然后数据拥有者将文件和文件认证标签发送给云服务器。当需要更新时,数据拥有者将认证标签更新请求发送给云服务器。考虑到数据完整性问题,数据拥有者授权第三方审计者执行数据完整性审计。
(2)云服务器(Cloud Server,CS):具有强大的计算和存储能力。然而,云服务器是半可信的,比如,云服务商可能删除一部分较少访问的文件以节省存储开销;当发生系统故障或遭受攻击时,云服务商可能为了名声或利益而尝试隐藏数据损失的事实;或者当发生密钥暴露攻击时,云服务商使用暴露的密钥进行标签伪造,使得用户误以为数据完整存储。为了保证数据的安全存储,第三方审计者将定期进行审计挑战,云服务器要求根据挑战信息生成相应的证明信息。此外,云服务器收到数据拥有者的认证标签更新请求后,定期更新认证标签。
(3)第三方审计者(Third-party Auditor,TPA):首先协助数据拥有者更新审计私钥,实现强抗密钥暴露;其次代替数据拥有者进行数据完整性验证,节省数据拥有者的计算开销。在提出的S-OORDA方法中,审计过程分为两个阶段:离线审计和在线审计。审计过程中,第三方审计者提前执行离线审计操作,有效地减少了第三方审计者的在线计算开销。
从功能方面,本实施例进一步将提出的强抗密钥暴露的在线/离线远程数据安全审计(S-OORDA)方法与文献[1-5]进行对比,结果如表1所示。其中,Fun1表示支持不受限的时间片段;Fun2表示前向安全,即保证密钥暴露之前的时间片段的审计私钥的安全;Fun3表示后向安全,即保证发生密钥暴露的时间片段以后的审计私钥的安全;Fun4表示保证密钥暴露期间数据拥有者上传的文件安全;Fun5表示密钥更新操作无需安全通道;Fun6表示当第三方审计者审计数据拥有者文件时满足隐私保护要求;Fun7表示支持数据拥有者端的在线/离线操作;Fun8表示支持第三方审计者端的在线/离线操作。
表1.本发明与相关方案的功能对比表
方案 Fun1 Fun2 Fun3 Fun4 Fun5 Fun6 Fun7 Fun8
文献[1] - × × × × × ×
文献[2] × × × × × ×
文献[3] × × ×
文献[4] × × × × ×
文献[5] × × × ×
本发明
从表1可知,本文方案与文献[1]支持数据拥有者在线和离线计算,但文献[1]没有考虑密钥暴露问题。文献[2]在密钥暴露攻击下仅确保前向安全,没有引入第三方交互实现密钥更新,因此该方案无需安全通道。而文献[3-5]与本文提出的S-OORDA方法支持无限制的时间片段、前向安全和后向安全。但文献[4,5]不能保护密钥暴漏的时间片段的安全,因为这两个方案不能支持认证标签更新,而文献[3-5]需要通过安全信道实现审计私钥更新。此外,当第三方审计者审计数据拥有者的文件时,本文提出的S-OORDA方法具有隐私保护,并且支持审计过程的在线和离线过程。综上所述,与已有方案相比,提出的S-OORDA方法具备更丰富的功能和更强的安全特性。
其中,文献[1]的作者、文献名称和出处具体为Wang Y,Wu Q,Qin B,etal.Online/Offline Provable Data Possession.IEEE Transactions on InformationForensics and Security,2017,12(5):1182-1194。
文献[2]的作者、文献名称和出处具体为Yu J,Ren K,Wang C,et al.EnablingCloud Storage Auditing with Key-exposure Resistance.IEEE Transactions onInformation Forensics and Security,2015,10(6):1167-1179。
文献[3]的作者、文献名称和出处具体为Xu Y,Sun S,Cui J,et al.Intrusion-resilient Public Cloud Auditing Scheme with Authenticator Update.InformationSciences,2020,512:616-628。
文献[4]的作者、文献名称和出处具体为Yu J,Wang H.Strong Key-exposureResilient Auditing for Secure Cloud Storage.IEEE Transactions on InformationForensics and Security,2017,12(8):1931-1940。
文献[5]的作者、文献名称和出处具体为Nithya SMV,Uthariaraj V R.Identity-Based Public Auditing Scheme for Cloud Storage with Strong Key-ExposureResilience.Security and Communication Networks,2020,2020:1-13。
综上所述,本实施例为了抵抗审计密钥暴露攻击,构造了一种强抗密钥暴露的离线/在线外包数据完整性审计方法,命名为S-OORDA方案。本发明支持数据拥有者在不需要安全信道的情况下完成密钥更新操作,从而实现了强抗密钥暴露的云数据完整性验证功能。与此同时,本发明允许在每个时间片段远程更新认证标签,阻止了攻击者利用暴露的审计密钥伪造认证标签。更重要地,本发明通过采用在线/离线的方式,将数据完整性审计过程划分为在线和离线两个阶段,有效地减少了数据拥有者和第三方审计者的在线计算开销,解决了数据拥有者使用资源受限设备的问题。基于CDH困难问题和DL困难问题,本发明在随机预言机模型下被证明具备强抗密钥暴露安全,并且满足隐私保护、更新密钥可验证和可检测特性。效率分析表明本发明与已有文献相比更为高效。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (2)

1.一种强抗密钥暴露的在线/离线外包数据完整性审计方法,其特征在于,所述审计方法包括以下步骤:
S1、数据拥有者DO首先运行系统建立算法Setup(1λ),其中λ为安全参数,得到公共参数params和私钥sk,私钥sk由数据拥有者DO私密保存;
S2、数据拥有者DO使用公共参数params、私钥sk和当前时间片段t,与第三方审计者TPA交互运行密钥更新算法KeyUpdate(params,sk,t)对审计私钥进行更新操作,得到当前审计私钥askt
S3、数据拥有者DO使用公共参数params、审计私钥askt和当前时间片段t,通过运行离线认证标签生成算法AuthGenoff(params,askt,t),得到n个离线认证标签{θi,t}1≤i≤n和授权私钥skdel,其中,n取值等于文件M包含的数据块的数目,i表示数据块的索引且1≤i≤n;
S4、数据拥有者DO输入公共参数params、私钥sk和文件M∈{0,1}*,运行在线认证标签生成算法AuthGenon(params,sk,M),得到n个数据块和文件认证标签T,其中,{0,1}*表示任意长度的二进制字符串;
S5、数据拥有者DO和云服务器CS交互运行认证标签更新算法AuthUpdate(params,θi,t-1,t),对认证标签执行远程更新操作,得到更新的离线认证标签θi,t,其中,θi,t-1表示上一个时间片段t-1的离线认证标签;
S6、当数据拥有者DO需要检查文件是否完整保存在云服务器CS时,数据拥有者DO将授权私钥skdel通过安全通道传送给第三方审计者TPA,第三方审计者TPA使用公共参数params,通过调用挑战算法Challenge(params),得到挑战信息chal,并将挑战信息chal传给云服务器CS;
S7、云服务器CS使用公共参数params、文件M和对应于挑战信息chal的文件认证标签T,通过运行证明算法Proof(params,M,T,chal)得到证明信息prf,并将证明信息prf返回给第三方审计者TPA;
S8、第三方审计者TPA在收到审计任务之前,先使用公共参数params,调用离线验证算法Verifyoff(params)得到离线审计令牌tok;
S9、当收到证明信息prf时,第三方审计者TPA使用公共参数params、授权私钥skdel、离线审计令牌tok和挑战信息chal,运行在线验证算法Verifyon(params,skdel,tok,chal,prf)验证数据完整性,如果在线验证算法输出为1,则说明证明信息prf是有效的并且文件完整地存储在云服务器;如果在线验证算法输出为0,则说明文件被损坏;
其中,所述系统建立算法Setup(1λ)过程如下:
P1、输入安全参数λ,数据拥有者DO首先选取一个阶数为p、生成元为g的双线性群G,并且p为λ位大素数,选取群元素u∈G,群GT和双线性映射e:G×G→GT,表示将两个来自双线性群G的群元素通过双线性对配对运算,映射到一个来自群GT的群元素;然后数据拥有者DO调用BLS.KeyGen算法生成一个签名密钥对{spk,ssk},数据拥有者DO选取三个抗碰撞哈希函数h:{0,1}*→{0,1}*,H1:{0,1}*→G,H2:{0,1}*→{0,1}*;
P2、数据拥有者DO随机选取
Figure FDA0004019072600000021
设置第三方审计者TPA的公私密钥对为{pkTPA=gγ,skTPA=γ},
Figure FDA0004019072600000022
表示模p的既约剩余系;
P3、数据拥有者DO随机选取
Figure FDA0004019072600000023
则数据拥有者DO的公私密钥对为
Figure FDA0004019072600000024
pkDO表示数据拥有者DO的公钥,skDO表示数据拥有者DO的私钥,数据拥有者DO随机选取
Figure FDA0004019072600000025
作为口令,计算口令的哈希值h(pw);假设初始时间片段为0,数据拥有者DO计算初始审计私钥
Figure FDA0004019072600000031
其中符号“·”表示乘法运算,H1(0)表示将时间片段0通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素;
P4、数据拥有者DO将第三方审计者TPA的私钥skTPA和口令的哈希值h(pw)发送给第三方审计者TPA,并在本地删除;第三方审计者TPA保存私钥skTPA和条目(pkDO,h(pw));最后,数据拥有者DO公开如下公共参数:
params={G,p,g,u,GT,spk,h,H1,H2,pkTPA,pkDO};
其中,所述密钥更新算法KeyUpdate(params,sk,t)过程如下:
E1、对于时间片段t,数据拥有者DO选取一个随机值
Figure FDA0004019072600000032
计算密钥更新请求(Rt,Ψ)如下:
Figure FDA0004019072600000033
其中,Rt表示请求密钥更新的相关参数,Ψ表示身份验证的相关参数,符号
Figure FDA0004019072600000034
表示字符串异或操作,H1(t)表示将时间片段t通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素,H1(t-1)表示将时间片段t-1通过抗碰撞哈希函数H1映射到一个属于双线性群G的元素,
Figure FDA0004019072600000035
表示将
Figure FDA0004019072600000036
通过抗碰撞哈希函数h映射到一个哈希值;
E2、收到密钥更新请求(Rt,Ψ)之后,第三方审计者TPA先验证
Figure FDA0004019072600000037
其中,符号
Figure FDA0004019072600000038
表示判定操作,即需要判定验证式左右两边的值是否相等;如果验证通过,计算更新密钥
Figure FDA0004019072600000039
并将更新密钥ukTPA,t发送给数据拥有者DO;
E3、数据拥有者DO计算密钥更新参数
Figure FDA00040190726000000310
验证
Figure FDA00040190726000000311
其中,e(ukt,g)表示将来自双线性群G的群元素ukt和群生成元g,通过双线性对配对运算,映射到一个来自群GT的群元素;e(H1(t)·H1(t-1)-1,pkTPA)表示将两个来自双线性群G的群元素{H1(t)·H1(t-1)-1,pkTPA},通过双线性对配对运算,映射到一个来自群GT的群元素;pkTPA∈G;如果验证通过,数据拥有者DO计算时间片段t的审计私钥askt=askt-1·ukt;如果验证不通过,说明收到的更新密钥ukTPA,t有误,算法终止,数据拥有者DO重新执行密钥更新操作;最后,数据拥有者DO丢弃时间片段t-1的审计私钥askt-1和更新密钥ukTPA,t;其中,所述离线认证标签生成算法AuthGenoff(params,askt,t)过程如下:
N1、数据拥有者DO选取三个随机值
Figure FDA0004019072600000041
计算δ=gα,x=x1·x2,其中,设置参数δ公开;
N2、数据拥有者DO计算授权私钥
Figure FDA0004019072600000042
并将授权私钥skdel安全地传送给第三方审计者TPA,然后数据拥有者DO本地删除授权私钥skdel
N3、对于1≤i≤n,数据拥有者DO选取两个随机值
Figure FDA0004019072600000043
计算离线认证参数
Figure FDA0004019072600000044
N4、对于时间片段t,数据拥有者DO选取一个随机值
Figure FDA0004019072600000045
对每个数据块计算离线认证标签
Figure FDA0004019072600000046
最后数据拥有者DO设置参数
Figure FDA0004019072600000047
公开,其中,{Ut,Vt}是计算离线审计令牌的参数;
其中,所述在线认证标签生成算法AuthGenon(params,sk,M)过程如下:
G1、数据拥有者DO将文件M∈{0,1}*分为n块;
G2、数据拥有者DO随机选取
Figure FDA0004019072600000048
作为文件名,调用BLS.Sign算法,将name||n作为需要签名的消息,生成一个签名σ=Signssk(name||n)并设置签名验证信息
Figure FDA0004019072600000049
其中,符号“||”表示字符串连接符;
G3、数据拥有者DO随机选取
Figure FDA00040190726000000410
计算在线认证参数
ri=xmi'+ri'-xmi-β·H2(name||i)
其中,第i个数据块表示为mi,H2(name||i)表示将name||i通过抗碰撞哈希函数H2映射到一个哈希值,数据拥有者DO将{mi}1≤i≤n和文件认证标签
Figure FDA0004019072600000051
发送给云服务器CS,其中认证标签T包含五个参数,分别是随机数
Figure FDA0004019072600000052
签名验证信息
Figure FDA0004019072600000053
时间片段t、在线认证参数ri以及时间片段t的所有数据块离线认证标签{θi,t}1≤i≤n,最后,数据拥有者DO删除本地文件M,并设置参数
Figure FDA0004019072600000054
公开,
Figure FDA0004019072600000055
是计算离线审计令牌的参数;
其中,所述认证标签更新算法AuthUpdate(params,θi,t-1,t)过程如下:数据拥有者DO计算认证标签更新请求
Figure FDA0004019072600000056
并将updt发送给云服务器CS,云服务器CS将所有数据块{mi}1≤i≤n的认证标签更新为θi,t=θi,t-1·updt
其中,所述挑战算法Challenge(params)过程如下:
L1、第三方审计者TPA从云服务器中获取签名验证信息
Figure FDA0004019072600000057
调用BLS.Verification算法,使用签名公钥spk验证签名σ=Signssk(name||n);如果签名无效,输出0并终止;否则,第三方审计者TPA接受name和n;
L2、第三方审计者TPA随机选取一个挑战集合
Figure FDA0004019072600000058
为每个j∈I选取随机值
Figure FDA0004019072600000059
其中j表示挑战的数据块索引并且满足1≤j≤n,第三方审计者TPA将挑战信息chal={j,vj}j∈I发送给云服务器CS;
其中,所述证明算法Proof(params,M,T,chal)中,收到挑战信息chal后,云服务器CS选取一个随机值
Figure FDA00040190726000000510
并计算
Figure FDA00040190726000000511
η=gs,
Figure FDA00040190726000000512
其中,μ表示数据块的聚合值,η表示证明的相关参数,r表示在线认证参数的聚合值,θ表示数据块离线认证标签的聚合值,mj表示第j个挑战数据块,rj表示第j个数据块的在线认证参数,θj,t表示t时间片段的第j个数据块离线认证标签,云服务器将证明信息prf={μ,η,r,θ}发送给第三方审计者TPA;
其中,所述离线验证算法Verifyoff(params)中,在离线阶段,第三方审计者TPA提前计算离线审计令牌tok=(Λ,Γ)如下:
Figure FDA0004019072600000061
Γ=e(Ut,pkDO)·e(Vt,pkTPA)
其中,
Figure FDA0004019072600000062
表示将两个来自双线性群G的群元素
Figure FDA0004019072600000063
通过双线性对配对运算,映射到一个来自群GT的群元素,pkDO∈G,e(Ut,pkDO)表示将两个来自双线性群G的群元素{Ut,pkDO}通过双线性对配对运算,映射到一个来自群GT的群元素;e(Vt,pkTPA)表示将两个来自双线性群G的群元素{Ut,pkDO}通过双线性对配对运算,映射到一个来自群GT的群元素;
其中,所述在线验证算法Verifyon(params,skdel,tok,chal,prf)过程如下:
F1、收到证明信息prf后,第三方审计者TPA计算验证参数
Figure FDA0004019072600000064
其中,H2(name||j)表示将name||j通过抗碰撞哈希函数H2映射到一个哈希值;
F2、第三方审计者TPA使用授权私钥
Figure FDA0004019072600000065
和离线审计令牌tok,对文件M执行在线完整性审计,验证式如下:
Figure FDA0004019072600000066
其中,
Figure FDA0004019072600000067
表示将两个来自双线性群G的群元素
Figure FDA0004019072600000068
通过双线性对配对运算,映射到一个来自群GT的群元素;
Figure FDA0004019072600000069
表示将两个来自双线性群G的群元素
Figure FDA00040190726000000610
通过双线性对配对运算,映射到一个来自群GT的群元素;如果上述验证式成立,则输出1,表明文件完整地存储在云服务器,否则,输出0,表明文件被损坏。
2.根据权利要求1所述的强抗密钥暴露的在线/离线外包数据完整性审计方法,其特征在于,令BLS签名方案由(BLS.KeyGen,BLS.Sign,BLS.Verification)表示,其中BLS.KeyGen算法输入安全参数λ,输出签名公私密钥对{spk,ssk};BLS.Sign算法输入签名私钥ssk和消息m,输出签名,记为σ=Signssk(m);BLS.Verification算法输入签名公钥spk和签名σ,如果BLS.Verification算法输出0,表示签名无效,否则输出1,表示签名是有效的。
CN202110690869.3A 2021-06-22 2021-06-22 强抗密钥暴露的在线/离线外包数据完整性审计方法 Expired - Fee Related CN113489690B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110690869.3A CN113489690B (zh) 2021-06-22 2021-06-22 强抗密钥暴露的在线/离线外包数据完整性审计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110690869.3A CN113489690B (zh) 2021-06-22 2021-06-22 强抗密钥暴露的在线/离线外包数据完整性审计方法

Publications (2)

Publication Number Publication Date
CN113489690A CN113489690A (zh) 2021-10-08
CN113489690B true CN113489690B (zh) 2023-04-07

Family

ID=77935737

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110690869.3A Expired - Fee Related CN113489690B (zh) 2021-06-22 2021-06-22 强抗密钥暴露的在线/离线外包数据完整性审计方法

Country Status (1)

Country Link
CN (1) CN113489690B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114745120B (zh) * 2022-03-17 2023-08-22 郑州大学 一种支持公平支付的抗密钥暴露的云数据完整性校验方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8327250B1 (en) * 2009-04-21 2012-12-04 Network Appliance, Inc. Data integrity and parity consistency verification
CN107273444A (zh) * 2017-05-26 2017-10-20 电子科技大学 数据外包场景下基于服务提供商信誉的查询验证方法
CN107359986A (zh) * 2017-07-03 2017-11-17 暨南大学 可撤销用户的外包加解密cp‑abe方法
CN107426165A (zh) * 2017-05-16 2017-12-01 安徽大学 一种支持密钥更新的双向安全云存储数据完整性检测方法
CN108768975A (zh) * 2018-05-16 2018-11-06 东南大学 支持密钥更新和第三方隐私保护的数据完整性验证方法
CN109783456A (zh) * 2019-01-17 2019-05-21 暨南大学 去重结构搭建方法、去重方法、文件取回方法、去重系统
CN112800482A (zh) * 2021-01-14 2021-05-14 南京邮电大学 基于身份的在线/离线安全云存储审计方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8656453B2 (en) * 2010-11-10 2014-02-18 Software Ag Security systems and/or methods for cloud computing environments
US9544767B2 (en) * 2014-07-21 2017-01-10 Imagination Technologies Limited Encryption key updates in wireless communication systems
CN109145650B (zh) * 2018-08-07 2021-10-08 暨南大学 一种云环境下高效安全的外包大数据审计方法
CN109889494B (zh) * 2019-01-07 2020-07-07 南京航空航天大学 一种可撤销的云数据安全共享方法
CN111611625B (zh) * 2020-05-26 2023-04-07 牛津(海南)区块链研究院有限公司 云端数据完整性审计方法、装置及计算机可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8327250B1 (en) * 2009-04-21 2012-12-04 Network Appliance, Inc. Data integrity and parity consistency verification
CN107426165A (zh) * 2017-05-16 2017-12-01 安徽大学 一种支持密钥更新的双向安全云存储数据完整性检测方法
CN107273444A (zh) * 2017-05-26 2017-10-20 电子科技大学 数据外包场景下基于服务提供商信誉的查询验证方法
CN107359986A (zh) * 2017-07-03 2017-11-17 暨南大学 可撤销用户的外包加解密cp‑abe方法
CN108768975A (zh) * 2018-05-16 2018-11-06 东南大学 支持密钥更新和第三方隐私保护的数据完整性验证方法
CN109783456A (zh) * 2019-01-17 2019-05-21 暨南大学 去重结构搭建方法、去重方法、文件取回方法、去重系统
CN112800482A (zh) * 2021-01-14 2021-05-14 南京邮电大学 基于身份的在线/离线安全云存储审计方法

Also Published As

Publication number Publication date
CN113489690A (zh) 2021-10-08

Similar Documents

Publication Publication Date Title
US11936774B2 (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
US10944575B2 (en) Implicitly certified digital signatures
CN114730420A (zh) 用于生成签名的系统和方法
US10148422B2 (en) Implicitly certified public keys
CN111066285A (zh) 基于sm2签名恢复公钥的方法
CN111010265B (zh) 基于分层密钥和bls数字签名的区块链组织密钥管理方法
CN110086599B (zh) 基于同态变色龙哈希函数的哈希计算方法及签密方法
CN106487786B (zh) 一种基于生物特征的云数据完整性验证方法及系统
CN103634788A (zh) 前向安全的无证书多代理签密方法
Chen et al. Privacy‐Preserving Data Aggregation Protocol for Fog Computing‐Assisted Vehicle‐to‐Infrastructure Scenario
CN118160275A (zh) 阈值签名方案
CN113489690B (zh) 强抗密钥暴露的在线/离线外包数据完整性审计方法
Shankar et al. Improved Multisignature Scheme for Authenticity of Digital Document in Digital Forensics Using Edward‐Curve Digital Signature Algorithm
Tian et al. DIVRS: Data integrity verification based on ring signature in cloud storage
An et al. QChain: Quantum-resistant and decentralized PKI using blockchain
CN110661816A (zh) 一种基于区块链的跨域认证方法与电子设备
CN113507367B (zh) 一种云环境下外包数据的在线/离线完整性审计方法
JP5227816B2 (ja) 匿名署名生成装置、匿名署名検証装置、匿名署名追跡判定装置、追跡機能付き匿名署名システム、それらの方法及びプログラム
Zhang et al. Comment on id-based remote data integrity checking with data privacy preserving
CN117955677A (zh) 一种基于无证书签名的身份认证方法、装置及设备
CN118133311A (zh) 一种基于改进群签名的联邦学习隐私保护方法
CN116996211A (zh) 一种基于区块链的数据处理方法及装置
CN117715033A (zh) 车辆间异构通信数据的处理方法、装置、设备及存储介质
CN114844643A (zh) 一种基于双线性映射获取适配器签名的方法和电子设备
CN114764510A (zh) 一种抗量子计算电子合同签署系统及方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20230407