CN110912706B - 一种基于身份的动态数据完整性审计方法 - Google Patents
一种基于身份的动态数据完整性审计方法 Download PDFInfo
- Publication number
- CN110912706B CN110912706B CN201911117137.4A CN201911117137A CN110912706B CN 110912706 B CN110912706 B CN 110912706B CN 201911117137 A CN201911117137 A CN 201911117137A CN 110912706 B CN110912706 B CN 110912706B
- Authority
- CN
- China
- Prior art keywords
- client
- data
- cloud storage
- storage server
- private key
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3271—Cryptographic 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 challenge-response
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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 cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种基于身份的动态数据完整性审计方法,基于私钥生成机构、客户端、第三方审计中心和云存储服务器实现。私钥生成机构生成私钥秘密交付给客户端;客户端执行文件预处理操作后将文件存储于云服务器,向第三方审计中心发送挑战请求来验证数据是否完整;第三方审计中心接收挑战请求,生成挑战信息发送给云服务器;云服务器接收挑战信息后生成证据信息返回给第三方审计中心;第三方审计中心验证数据是否完整,并将验证结果发送给客户端。本发明与现有技术相比,无需部署PKI即可认证客户端的身份,减少了资源消耗,且支持云存储数据的动态更新,能够保护动态数据的完整性。
Description
技术领域
本发明属于网络安全领域,具体涉及一种基于身份的动态数据完整性审计方法。
背景技术
随着计算机技术的普及和云计算的发展,云存储因其低廉的价格、高效的存储效率以及丰富的用户个性化定制服务受到了越来越多的企业和用户的青睐。用户只需将数据上传至云服务器,就可以实现不同设备之间数据的共享。云存储极大的释放了用户本地空间,用户不需要存放数据副本,可以根据自己的实际需求决定何时上传和下载存储在云服务器上的文件,保证了用户数据存储的灵活性。
然而,由于用户数据只存储在云服务器,且不存在第三方机构对数据存储过程进行监督,云存储面临着严竣的安全挑战。当用户选择云存储服务时,用户自身不会保存数据副本文件,导致用户无法对其存放在服务器上的数据进行有效的监督,也无法保证其存储在云服务器上的数据完整性。当用户将数据存储到云服务器中时,可能面临以下数据破坏的行为[3]:服务器出现软件或者硬件上的问题致使数据丢失;存储在云服务器中的数据遭到其他人恶意破坏;云服务提供商未遵守用户隐私协议,为了降低成本,擅自删除一些访问频率低的数据。因此在现有的云存储服务中,用户存储于云服务器上的数据无法得到有效保护,用户也无法及时发现服务器损坏数据的行为。因此保证云存储技术中用户数据的完整性显得尤为重要。
最初的解决方案是通过下载云服务器中的文件与原始数据文件进行比较,然而对于云服务器中存储了海量数据的情况,该方案中上传下载文件将面临极大的通信代价。针对此问题,研究者们提出了许多数据完整性审计方案。数据完整性审计指的是用户在删除了本地数据副本、且无需下载原数据的情况下,利用预先生成的数据标签进行计算,验证云服务器上存储的用户数据是否遭到了篡改。然而,目前基于身份的数据完整性审计方案大多只支持静态数据的问题,如何在保证基于身份的数据完整性审计的同时实现数据的动态更新,具有十分广阔的研究意义和应用价值。
发明内容
针对现有技术的不足,提供一种基于身份的动态数据完整性审计方法。
本发明的技术方案如下:
一种基于身份的动态数据完整性审计方法,包括步骤如下:
步骤1:私钥生成机构运行初始化算法,生成公共参数param、主公钥mpk和主私钥msk,具体表述为:
步骤1.1:首先生成阶数为素数q的加法群G1,以及阶数为素数q的乘法循环群G2,然后选择G1的生成元g,定义离散对数问题中的加法群为G1,乘法循环群为G2,群G1和G2满足双线性映射e:G1×G2→G2,选取四个密码学哈希函数H1、H2、H、h,具体表示为令公共参数param={G1,G2,e,q,g,H1,H2,H,h};
步骤1.2:令主私钥为msk,选择随机数x作为主私钥,即主私钥msk=x,且x满足 x∈Zq,Zq表示[0,q-1]的整数;
步骤1.3:计算主公钥mpk=gx;
步骤1.4:公开公共参数param和主公钥mpk,秘密保存主私钥msk;
步骤2:客户端与私钥生成机构交互,运行身份密钥生成算法,使用客户端ID、主公钥 mpk、主私钥msk和公共参数param作为输入,私钥生成机构获取ID生成基于身份的私钥SKID,通过可信信道传递给客户端,具体表述为:
步骤2.1:选择随机数k∈Zq,Zq表示[0,q-1]的整数;
步骤2.2:通过哈希函数H2计算得到QID=H2(ID),dID=QID x;
步骤2.3:计算K=gk,α=k+xH(ID,K)modq;
步骤2.4:定义SKID=(dID,K,α)为私钥,将私钥SKID通过可信信道发送给客户端;
步骤3:客户端运行密钥验证算法,验证收到的私钥的正确性,具体表述为:
步骤3.1:利用SKID中的α计算v=gα;
步骤3.2:判断等式v=K·mpkH(ID,K)是否成立,若成立则接收SKID,并输出TRUE,若不成立,则拒绝SKID,并输出FALSE;
步骤4:设计基于身份的数字签名算法,定义M为一串消息,通过调用身份签名算法SigID()使用私钥SKID对消息M进行数字签名,具体表述为:
步骤4.1:选取随机数r∈Zq,计算QID=H2(ID),利用QID计算U=QID r;
步骤4.2:通过哈希函数H1计算得到p=H1(M,U);
步骤4.3:利用私钥SKID中的dID计算V=dID r+p;
步骤4.4:将SigID(M)=(U,V)表示为消息M的签名;
步骤5:客户端在将文件传输到云存储服务器上之前,运行文件预处理算法,对文件进行预处理;
步骤6:第三方审计中心运行挑战算法,生成挑战信息发送给云存储服务器,使用挑战- 应答形式实现数据完整性审计;
步骤7:云存储服务器接收到第三方审计中心的验证请求后,运行证据生成算法,根据验证请求查找Merkle哈希树中的数据,计算出证据P交付给第三方审计中心;
步骤8:第三方审计中心根据云存储服务器提供的证据P,运行验证算法,对存储的数据的完整性进行验证;
步骤9:当客户端发出更新请求时,由云存储服务器运行更新算法执行更新请求操作,所述更新请求操作包括数据修改操作、数据***操作、数据删除操作,具体表述为Type={INSERT,DELETE,MODIFY},客户端需要重新计算得出需要更新的新文件块对应的标签值,更新标签集,最后将更新后的新文件块、根节点签名和新标签集同步到云存储服务器上,即完成一次更新操作。
所述的步骤5具体表述为:
步骤5.1:将原始文件F分割为n份,记作F={m1,m2,...,mn};
步骤5.2:选择随机数u∈Zq,将文件名name、文件分割的块数n和随机数u连接记作M1=name||n||u,使用身份签名算法SigID()对M1进行签名并输出 (U1,V1),其中U1=QID r,定义p1=H1(M1,U1),
步骤5.4:定义一个集合Φ存储所有文件块mi的同态验证标签σi,表示为Φ={σi},(i=1,2,...,n);
步骤5.5:构建Merkle哈希树,具体过程如下:
步骤5.5.1:在每一个Merkle哈希树的叶子节点中存储value为mi的哈希值H(mi),即 hi=h(H(mi));
步骤5.5.2:在每一个Merkle哈希树的非叶子节点中,存储的value是由两个孩子节点的 value共同构成的Hash值,非叶子节点h(a)计算为ha=h(h1||h2),非叶子节点h(b)计算为 hb=h(h3||h4),非叶子节点h(r)计算为hr=h(ha||hb);
所述的步骤6具体表述为:
步骤6.3:使用随机抽查策略抽取小于n的随机数sτ构成集合I={s1,s2,...,sτ,...,sc},且满足 sτ≤sτ+1<n,τ=1,2,…,c,c表示集合I的元素总数;
步骤6.4:第三方审计中心选择随机数ωi与集合I中任意一个随机数sτ对应,且满足ωi≠sτ;
所述的步骤7具体表述为:
所述的步骤8具体表述为:
所述步骤9中的数据修改操作,具体表述为:
步骤9.1.2:客户端执行update=(M,i,mi',σi'),将修改请求发送给云服务器,其中E表示修改操作,i表示数据块mi所在的位置,mi'表示修改后的文件块;
步骤9.1.3:云存储服务器收到客户端的修改请求,执行ExecUpdate(F,Φ,update)操作,首先将mi替换成mi',然后更新标签和标签集φ',最后生成证据 Pupdate=(Ωi,H(mi),SigID(hr),h'r),返还给客户端;
步骤9.1.5:如果mi的根节点验算正确,客户端使用辅助认证路径{Ωi,H(mi)}计算出mi' 的根节点值h'r,计算新的根节点签名值SigID(h'r);
步骤9.1.6:客户端发送mi'的根节点签名值SigID(h'r)到云存储服务器端;
步骤9.1.7:最后客户端再一次委托第三方审计中心进行一次挑战-应答验证操作,验证修改后的数据的正确性;
所述步骤9中的数据***操作,具体表述为:
步骤9.2.1:定义***到mi之后的***文件块为m',首先计算出m'对应的新标签值σ'=(H(m')·um')α,然后执行update=(I,i,m',σ')操作发送***请求给云存储服务器,其中I 代表***操作,i表示数据块mi所在的位置,m'表示需要***的文件块;
步骤9.2.2:云存储服务器收到客户端的***请求,执行ExecUpdate(F,Φ,update)操作,首先将m'作为叶子节点***到mi之后,生成新的Merkle哈希树节点,然后更新标签σ'=(H(m')·um')α和标签集φ',最后生成证据Pupdate=(Ωi,H(mi),SigID(hr),h'r)发送给客户端;
步骤9.2.4:如果mi的根节点验证正确,客户端使用辅助认证路径{Ωi,H(mi)}计算出m' 根节点值hr',计算新的标签签名SigID(h'r),然后发送新的标签签名SigID(h'r)至云存储服务器端进行更新,然后客户端删除更新过程中生成的临时数据;
步骤9.2.5:最后客户端委托第三方审计中心进行一次挑战-应答操作,验证***之后的数据的正确性;
所述的步骤9中的数据删除操作,具体表述为:
步骤9.3.1:当删除节点mi时,将mi的兄弟节点高度减1,云存储服务器接收到客户端 delete操作请求之后,将mi删除,重建Merkle哈希树生成新的根节点h′r,更新标签集φ';
步骤9.3.2:向客户端发送证据Pupdate=(Ωi,H(mi),SigID(hr),h′r),客户端根据辅助认证路径{Ωi,H(mi)}计算出mi的根节点摘要值hr,判断是否相等,若相等,则云存储服务器会收到客户端新的根节点签名,若不相等,则算法中止,并返回FALSE;
步骤9.3.3:最后客户端委托第三方审计中心进行挑战-应答操作,确保删除操作之后的数据是正确的。
本发明的有益效果:
在实际场景中用户对于其存储在云服务器上的数据进行大量更改不可避免,本发明针对动态存储操作,对动态数据的完整性实现了有效的审计。本发明提出了一种基于身份的数据完整性审计方案,与现有技术相比,无需部署PKI即可认证客户端的身份,减少了资源消耗,并且本发明支持数据的动态更新,能够保护动态数据的完整性。
附图说明
图1为本发明具体实施方式的一种基于身份的动态数据完整性审计方法的实体架构示意图;
图2为本发明具体实施方式的一种基于身份的动态数据完整性审计方法的实体间通信协议图;
图3为本发明具体实施方式的Merkle哈希树的构造示意图;
图4为本发明具体实施方式的数据修改操作示意图;
图5为本发明具体实施方式的数据***操作示意图;
图6为本发明具体实施方式的数据删除操作示意图;
图7为本发明具体实施方式的验证时间测试结果;
图8为本发明具体实施方式的生成证据时间测试结果;
图9为本发明具体实施方式的挑战信息通信开销测试结果;
图10为本发明具体实施方式的证据通信开销测试结果。
具体实施方式
下面结合附图对本发明具体实施方式加以详细的说明。
本发明中的一种基于身份的动态数据完整性审计方法,基于私钥生成机构、第三方审计中心、客户端、云存储服务器四方实体设计的,这四方实体的具体架构图如图1所示,
私钥生成机构:主要负责客户端私钥的生成,它接收客户端用户身份信息,基于身份信息生成私钥,通过可信信道传输给客户端;
客户端:客户端包含一个或多个用户,每个用户都可以对云存储服务器的数据进行完整性挑战,通过向第三方审计中心发送挑战请求来验证数据是否完整;
第三方审计中心:主要功能是与客户端和云存储服务器进行交互,它接收客户端的挑战请求,同时生成挑战信息发送给云存储服务器,它与服务器交互,执行证据验证算法,验证数据是否完整,并将审计结果发送给客户端;
云存储服务器:主要功能是存储数据和生成证据功能,服务器接收到挑战信息后会执行证据生成算法,生成能够证明数据是否完整的证据并发送给第三方审计中心;
四方实体之间的交互主要包括:私钥生成机构接收用户ID生成对应密钥对交付给客户端;客户端使用密钥对文件进行预处理,然后将文件存储于云服务器;第三方审计中心接收用户委托生成挑战信息并接收和验证云服务器提供的证据;云服务器接收来自第三方审计中心的挑战信息,计算生成证据信息。
本实施例采用Java编程语言,利用JPBC包实现双线性配对、大整数运算等操作,利用云服务器以及实体机分别为***中的第三方审计中心、云存储服务器、客户端、私钥生成机构搭建测试环境,***中部署各个实体的测试环境如表1所示。
表1测试环境
如图2所示,基于私钥生成机构、第三方审计中心、客户端、云存储服务器之间的交互关系以及通信流程,一种基于身份的动态数据完整性审计方法,具体实施方法包括步骤如下:
步骤1:私钥生成机构运行初始化算法,生成公共参数param、主公钥mpk和主私钥msk,具体表述为:
步骤1.1:首先生成阶数为素数q的加法群G1,以及阶数为素数q的乘法循环群G2,然后选择G1的生成元g,定义离散对数问题中的加法群为G1,乘法循环群为G2,群G1和G2满足双线性映射e:G1×G2→G2,选取四个密码学哈希函数H1、H2、H、h,具体表示为令公共参数param={G1,G2,e,q,g,H1,H2,H,h};
步骤1.2:令主私钥为msk,选择随机数x作为主私钥,即主私钥msk=x,且x满足 x∈Zq,Zq表示[0,q-1]的整数;
步骤1.3:计算主公钥mpk=gx;
步骤1.4:公开公共参数param和主公钥mpk,秘密保存主私钥msk;
步骤2:客户端与私钥生成机构交互,运行身份密钥生成算法,使用客户端ID、主公钥 mpk、主私钥msk和公共参数param作为输入,私钥生成机构获取ID生成基于身份的私钥SKID,通过可信信道传递给客户端,具体表述为:
步骤2.1:选择随机数k∈Zq,Zq表示[0,q-1]的整数;
步骤2.2:通过哈希函数H2计算得到QID=H2(ID),dID=QID x;
步骤2.3:计算K=gk,α=k+xH(ID,K)modq;
步骤2.4:定义SKID=(dID,K,α)为私钥,将私钥SKID通过可信信道发送给客户端;
步骤3:客户端运行密钥验证算法,验证收到的私钥的正确性,具体表述为:
步骤3.1:利用SKID中的α计算v=gα;
步骤3.2:判断等式v=K·mpkH(ID,K)是否成立,若成立则接收SKID,并输出TRUE,若不成立,则拒绝SKID,并输出FALSE;
步骤4:设计基于身份的数字签名算法,定义M为一串消息,通过调用身份签名算法SigID()使用私钥SKID对消息M进行数字签名,具体表述为:
步骤4.1:选取随机数r∈Zq,计算QID=H2(ID),利用QID计算U=QID r;
步骤4.2:通过哈希函数H1计算得到p=H1(M,U);
步骤4.3:利用私钥SKID中的dID计算V=dID r+p;
步骤4.4:将SigID(M)=(U,V)表示为消息M的签名;
步骤5:客户端在将文件传输到云服务器上之前,运行文件预处理算法,对文件进行预处理,具体表述为:
步骤5.1:将原始文件F分割为n份,记作F={m1,m2,...,mn};
步骤5.2:选择随机数u∈Zq,将文件名name、文件分割的块数n和随机数u连接记作M1=name||n||u,使用身份签名算法SigID()对M1进行签名并输出 (U1,V1),其中U1=QID r,定义p1=H1(M1,U1),
步骤5.4:定义一个集合Φ存储所有文件块mi的同态验证标签σi,表示为Φ={σi},(i=1,2,...,n);
步骤5.5:构建Merkle哈希树,Merkle哈希树的构造示意图如图3所示,具体构建过程如下:
步骤5.5.1:在每一个Merkle哈希树的叶子节点中存储value为mi的哈希值H(mi),即 hi=h(H(mi));
步骤5.5.2:在每一个Merkle哈希树的非叶子节点中,存储的value是由两个孩子节点的 value共同构成的Hash值,非叶子节点h(a)计算为ha=h(h1||h2),非叶子节点h(b)计算为 hb=h(h3||h4),非叶子节点h(r)计算为hr=h(ha||hb);
步骤6:第三方审计中心运行挑战算法,生成挑战信息发送给云存储服务器,使用挑战- 应答形式实现数据完整性审计,具体表述为:
步骤6.3:使用随机抽查策略抽取小于n的随机数sτ构成集合I={s1,s2,...,sτ,...,sc},且满足 sτ≤sτ+1<n,τ=1,2,…,c,c表示集合I的元素总数;
步骤6.4:第三方审计中心选择随机数ωi与集合I中任意一个随机数sτ对应,且满足ωi≠sτ;
步骤6.5:生成挑战信息chal,则其中i表示需要被验证的文件块mi的位置,将挑战信息chal发送给云存储服务器,此时的i经过随机抽查策略抽取之后范围缩小为i∈{s1,s2,...,sτ,...,sc}。
步骤7:云存储服务器接收到第三方审计中心的验证请求后,运行证据生成算法,根据验证请求查找Merkle哈希树中的数据,计算出证据P交付给第三方审计中心,具体表述为:
步骤7.3:对于一个文件块H(mi)它的辅助认证路径是其兄弟节点,父亲的兄弟节点,祖父的兄弟节点,以此类推,这样保证了使用最少节点数量即可计算出Merkle哈希树的根节点,每一个文件块mi的辅助认证路径记作云存储服务器将文件块mi的哈希值H(mi)和对应的辅助认证路径作为一个键值对放入证据列表中;
步骤8:第三方审计中心根据云存储服务器提供的证据P,运行验证算法,对存储的数据的完整性进行验证,具体表述为:
步骤8.4:步骤8.3验证了根节点正确,但是并不代表数据完整性没有遭到破坏,因为云服务器存在只存储Merkle哈希树路径值的情况,还验证抽查的文件块mi是否是正确的,即判断等式是否成立,等式左右相等说明数据保存完整,返回TRUE,否则证明数据完整性遭到破坏,终止并返回FALSE。
步骤9:当客户端发出更新请求时,由云存储服务器运行更新算法执行更新请求操作,所述更新请求操作包括数据修改操作、数据***操作、数据删除操作,具体表述为Type={INSERT,DELETE,MODIFY},客户端需要重新计算得出需要更新的新文件块对应的标签值,更新标签集,最后将更新后的新文件块、根节点签名和新标签集同步到云存储服务器上,即完成一次更新操作;
其中数据修改操作的示意图如图4所示,具体表述为:
步骤9.1.2:客户端执行update=(M,i,mi',σi'),将修改请求发送给云服务器,其中E表示修改操作,i表示数据块mi所在的位置,mi'表示修改后的文件块;
步骤9.1.3:云存储服务器收到客户端的修改请求,执行ExecUpdate(F,Φ,update)操作,首先将mi替换成mi',然后更新标签和标签集φ',最后生成证据 Pupdate=(Ωi,H(mi),SigID(hr),h′r),返还给客户端;
步骤9.1.5:如果mi的根节点验算正确,客户端使用辅助认证路径{Ωi,H(mi)}计算出mi' 的根节点值h′r,计算新的根节点签名值SigID(h′r);
步骤9.1.6:客户端发送mi'的根节点签名值SigID(h′r)到云存储服务器端;
步骤9.1.7:最后客户端再一次委托第三方审计中心进行一次挑战-应答验证操作,验证修改后的数据的正确性;
其中数据***操作,具体表述为:
步骤9.2.1:定义***到mi之后的***文件块为m',首先计算出m'对应的新标签值σ'=(H(m')·um')α,然后执行update=(I,i,m',σ')操作发送***请求给云存储服务器,其中I 代表***操作,i表示数据块mi所在的位置,m'表示需要***的文件块;
步骤9.2.2:云存储服务器收到客户端的***请求,执行ExecUpdate(F,Φ,update)操作,首先将m'作为叶子节点***到mi之后,生成新的Merkle哈希树节点,然后更新标签σ'=(H(m')·um')α和标签集φ',最后生成证据Pupdate=(Ωi,H(mi),SigID(hr),h'r)发送给客户端;
步骤9.2.4:如果mi的根节点验证正确,客户端使用辅助认证路径{Ωi,H(mi)}计算出m' 根节点值hr',计算新的标签签名SigID(h'r),然后发送新的标签签名SigID(h'r)至云存储服务器端进行更新,然后客户端删除更新过程中生成的临时数据;
步骤9.2.5:最后客户端委托第三方审计中心进行一次挑战-应答操作,验证***之后的数据的正确性,操作示意图如图5所示;
其中数据删除操作,具体表述为:
步骤9.3.1:当删除节点mi时,将mi的兄弟节点高度减1,云存储服务器接收到客户端 delete操作请求之后,将mi删除,重建Merkle哈希树生成新的根节点h′r,更新标签集φ';
步骤9.3.2:向客户端发送证据Pupdate=(Ωi,H(mi),SigID(hr),h′r),客户端根据辅助认证路径{Ωi,H(mi)}计算出mi的根节点摘要值hr,判断是否相等,若相等,则云存储服务器会收到客户端新的根节点签名,若不相等,则算法中止,并返回FALSE;
步骤9.3.3:最后客户端委托第三方审计中心进行挑战-应答操作,确保删除操作之后的数据是正确的,操作示意图如图6所示。
本发明还提供了一种使用上述基于身份的动态数据完整性审计方法的审计***,包括初始化模块、存储审计模块、更新模块,首先通过初始化模块与实体间建立通信连接,由私钥生成机构生成***所需参数,由客户端完成对私钥的验证,由客户端对文件进行预处理操作,当客户端发出挑战请求时,存储审计模块通过第三方审计中心接收客户端的挑战请求,并生成挑战信息发送给云存储服务器,所述挑战信息通过云存储服务器验证后生成证据返回给客户端,当客户端发出更新请求时,更新模块接收更新请求并发送给云存储服务器,由云存储服务器执行更新请求操作;
初始化模块用于***启动时实体间通信连接的建立、公私钥***所需的参数的生成、对密钥的验证、对文件的预处理操作;
存储审计模块用于第三方审计中心接收客户端的挑战请求、生成挑战信息,通过云存储服务器生成证据;
更新模块用于接收客户端发送的更新请求,并发送给云存储服务器执行更新请求的操作。
初始化模块包括身份密钥生成、密钥验证和文件预处理三个子模块,初始化模块启动时首先建立通信连接,然后通过身份密钥生成子模块将客户端身份信息生成私钥,其次通过密钥验证子模块完成对私钥的验证,当客户端执行文件预处理操作,通过文件预处理子模块将验证后的私钥生成存储数据结构后转换为标签信息,并通过网络发给云存储服务器;
身份密钥生成子模块用于将客户端身份信息生成私钥;
密钥验证子模块用于对私钥进行验证;
文件预处理子模块用于将通过验证的私钥生成存储数据结构后转换为标签信息,并通过网络发给云存储服务器。
存储审计模块主要包括挑战查询、证据生成和查询验证三个子模块,当客户端发出挑战请求时,存储审计模块通过第三方审计中心接收客户端的挑战请求后发送给挑战查询子模块,通过挑战查询子模块查询所述挑战请求,并转换为挑战信息,所述挑战信息通过证据生成子模块执行证据生成算法生成证据,然后将证据发送给查询验证子模块通过验证后返回给客户端;
挑战查询子模块用于查询挑战请求,并转换为挑战信息;
证据生成子模块用于将挑战信息生成证据;
查询验证子模块用于对证据验证后返回给客户端。
更新模块包括数据更新、数据删除和数据***三个子模块,当客户端发出更新请求时,更新模块接收更新请求并发送给云存储服务器,数据更新子模块通过云储存服务器执行数据修改操作,数据删除子模块通过云存储服务器执行数据删除操作,数据***子模块通过云存储服务器执行数据***操作,主要由客户端发送更新请求,云存储服务器执行;
数据更新子模块用于对云储存服务器上的数据进行修改;
数据删除子模块用于对云存储服务器上的数据进行删除;
数据***子模块用于对云存储服务器***新数据。
在上述搭建的测试环境下,基于上述审计***进行测试,测试时使用160bit椭圆曲线群,审计***执行不同操作时的耗时,选择对验证时间成本、服务器生成证据的成本、挑战信息的通信代价以及证据的通信代价四方面进行测试。
对验证时间的测试结果如图7所示,横坐标表示挑战文件块的数量,分别包含了10-50 之间的文件块个数,纵坐标表示验证时间的开销,可以看出随着文件块数量的增大,验证时间也随着增大,但50个文件块的验证开销仅为约0.2秒;对服务器生成证据时间的测试结果如图8所示,横坐标表示挑战文件块的数量,分别包含了20-1000之间的文件块个数,纵坐标表示生成证据时间的开销,可以看出随着文件块数量的增大,服务器生成证据的时间也随着增大,但100个文件块的证据生成时间仅为约0.5秒;对挑战信息的通信开销的测试结果如图9所示,横坐标表示挑战文件块的数量,分别包含了200-1000之间的文件块个数,纵坐标表示挑战信息的通信开销,可以看出随着文件块数量的增大,挑战信息的通信开销为常量,约为220比特;对证据的通信开销的测试结果如图10所示,横坐标表示挑战文件块的数量,分别包含了10-30之间的文件块个数,纵坐标表示证据的通信开销,可以看出随着文件块数量的增大,证据的通信开销增加,但30个文件块的证据的通信开销仅为约5000比特。
Claims (6)
1.一种基于身份的动态数据完整性审计方法,其特征在于,包括步骤如下:
步骤1:私钥生成机构运行初始化算法,生成公共参数param、主公钥mpk和主私钥msk,具体表述为:
步骤1.1:首先生成阶数为素数q的加法群G1,以及阶数为素数q的乘法循环群G2,然后选择G1的生成元g,定义离散对数问题中的加法群为G1,乘法循环群为G2,群G1和G2满足双线性映射e:G1×G2→G2,选取四个密码学哈希函数H1、H2、H、h,具体表示为令公共参数param={G1,G2,e,q,g,H1,H2,H,h};
步骤1.2:令主私钥为msk,选择随机数x作为主私钥,即主私钥msk=x,且x满足x∈Zq,Zq表示[0,q-1]的整数;
步骤1.3:计算主公钥mpk=gx;
步骤1.4:公开公共参数param和主公钥mpk,秘密保存主私钥msk;
步骤2:客户端与私钥生成机构交互,运行身份密钥生成算法,使用客户端ID、主公钥mpk、主私钥msk和公共参数param作为输入,私钥生成机构获取ID生成基于身份的私钥SKID,通过可信信道传递给客户端,具体表述为:
步骤2.1:选择随机数k∈Zq,Zq表示[0,q-1]的整数;
步骤2.2:通过哈希函数H2计算得到QID=H2(ID),dID=QID x;
步骤2.3:计算K=gk,α=k+xH(ID,K)modq;
步骤2.4:定义SKID=(dID,K,α)为私钥,将私钥SKID通过可信信道发送给客户端;
步骤3:客户端运行密钥验证算法,验证收到的私钥的正确性,具体表述为:
步骤3.1:利用SKID中的α计算v=gα;
步骤3.2:判断等式v=K·mpkH(ID,K)是否成立,若成立则接收SKID,并输出TRUE,若不成立,则拒绝SKID,并输出FALSE;
步骤4:设计基于身份的数字签名算法,定义M为一串消息,通过调用身份签名算法SigID()使用私钥SKID对消息M进行数字签名,具体表述为:
步骤4.1:选取随机数r∈Zq,计算QID=H2(ID),利用QID计算U=QID r;
步骤4.2:通过哈希函数H1计算得到p=H1(M,U);
步骤4.3:利用私钥SKID中的dID计算V=dID r+p;
步骤4.4:将SigID(M)=(U,V)表示为消息M的签名;
步骤5:客户端在将文件传输到云存储服务器上之前,运行文件预处理算法,对文件进行预处理;
步骤6:第三方审计中心运行挑战算法,生成挑战信息发送给云存储服务器,使用挑战-应答形式实现数据完整性审计;
步骤7:云存储服务器接收到第三方审计中心的验证请求后,运行证据生成算法,根据验证请求查找Merkle哈希树中的数据,计算出证据P交付给第三方审计中心;
步骤8:第三方审计中心根据云存储服务器提供的证据P,运行验证算法,对存储的数据的完整性进行验证;
步骤9:当客户端发出更新请求时,由云存储服务器运行更新算法执行更新请求操作,所述更新请求操作包括数据修改操作、数据***操作、数据删除操作,具体表述为Type={INSERT,DELETE,MODIFY},客户端需要重新计算得出需要更新的新文件块对应的标签值,更新标签集,最后将更新后的新文件块、根节点签名和新标签集同步到云存储服务器上,即完成一次更新操作。
2.根据权利要求1所述的一种基于身份的动态数据完整性审计方法,其特征在于,所述的步骤5具体表述为:
步骤5.1:将原始文件F分割为n份,记作F={m1,m2,...,mn};
步骤5.2:选择随机数u∈Zq,将文件名name、文件分割的块数n和随机数u连接记作M1=name||n||u,使用身份签名算法SigID()对M1进行签名并输出(U1,V1),其中U1=QID r,定义p1=H1(M1,U1),
步骤5.4:定义一个集合Φ存储所有文件块mi的同态验证标签σi,表示为Φ={σi},i=1,2,...,n;
步骤5.5:构建Merkle哈希树,具体过程如下:
步骤5.5.1:在每一个Merkle哈希树的叶子节点中存储value为mi的哈希值H(mi),即hi=h(H(mi));
步骤5.5.2:在每一个Merkle哈希树的非叶子节点中,存储的value是由两个孩子节点的value共同构成的Hash值,非叶子节点ha计算为ha=h(h1||h2),非叶子节点hb计算为hb=h(h3||h4),非叶子节点hr计算为hr=h(ha||hb);
3.根据权利要求2所述的一种基于身份的动态数据完整性审计方法,其特征在于,所述的步骤6具体表述为:
步骤6.3:使用随机抽查策略抽取小于n的随机数sτ构成集合I={s1,s2,...,sτ,...,sc},且满足sτ≤sτ+1<n,τ=1,2,…,c,c表示集合I的元素总数;
步骤6.4:第三方审计中心选择随机数ωi与集合I中任意一个随机数sτ对应,且满足ωi≠sτ;
6.根据权利要求5所述的一种基于身份的动态数据完整性审计方法,其特征在于,所述步骤9中的数据修改操作,具体表述为:
步骤9.1.2:客户端执行update=(E,i,mi',σi'),将修改请求发送给云存储服务器,其中E表示修改操作,i表示数据块mi所在的位置,mi'表示修改后的文件块;
步骤9.1.3:云存储服务器收到客户端的修改请求,执行ExecUpdate(F,Φ,update)操作,首先将mi替换成mi',然后更新标签和标签集φ',最后生成证据Pupdate=(Ωi,H(mi),SigID(hr),hr'),返还给客户端;
步骤9.1.5:如果mi的根节点验算正确,客户端使用辅助认证路径{Ωi,H(mi)}计算出mi'的根节点值h’r,计算新的根节点签名值SigID(h’r);
步骤9.1.6:客户端发送mi'的根节点签名值SigID(h’r)到云存储服务器端;
步骤9.1.7:最后客户端再一次委托第三方审计中心进行一次挑战-应答验证操作,验证修改后的数据的正确性;
所述步骤9中的数据***操作,具体表述为:
步骤9.2.1:定义***到mi之后的***文件块为m',首先计算出m'对应的新标签值σ'=(H(m')·um')α,然后执行update=(I,i,m',σ')操作发送***请求给云存储服务器,其中I代表***操作,i表示数据块mi所在的位置,m'表示需要***的文件块;
步骤9.2.2:云存储服务器收到客户端的***请求,执行ExecUpdate(F,Φ,update)操作,首先将m'作为叶子节点***到mi之后,生成新的Merkle哈希树节点,然后更新标签σ'=(H(m')·um')α和标签集φ',最后生成证据Pupdate=(Ωi,H(mi),SigID(hr),h’r)发送给客户端;
步骤9.2.4:如果mi的根节点验证正确,客户端使用辅助认证路径{Ωi,H(mi)}计算出m'根节点值h’r,计算新的标签签名SigID(h’r),然后发送新的标签签名SigID(h’r)至云存储服务器端进行更新,然后客户端删除更新过程中生成的临时数据;
步骤9.2.5:最后客户端委托第三方审计中心进行一次挑战-应答操作,验证***之后的数据的正确性;
所述的步骤9中的数据删除操作,具体表述为:
步骤9.3.1:当删除节点mi时,将mi的兄弟节点高度减1,云存储服务器接收到客户端delete操作请求之后,将mi删除,重建Merkle哈希树生成新的根节点h’r,更新标签集φ';
步骤9.3.2:向客户端发送证据Pupdate=(Ωi,H(mi),SigID(hr),h’r),客户端根据辅助认证路径{Ωi,H(mi)}计算出mi的根节点摘要值hr,判断是否相等,若相等,则云存储服务器会收到客户端新的根节点签名,若不相等,则算法中止,并返回FALSE;
步骤9.3.3:最后客户端委托第三方审计中心进行挑战-应答操作,确保删除操作之后的数据是正确的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911117137.4A CN110912706B (zh) | 2019-11-15 | 2019-11-15 | 一种基于身份的动态数据完整性审计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911117137.4A CN110912706B (zh) | 2019-11-15 | 2019-11-15 | 一种基于身份的动态数据完整性审计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110912706A CN110912706A (zh) | 2020-03-24 |
CN110912706B true CN110912706B (zh) | 2021-08-03 |
Family
ID=69817258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911117137.4A Active CN110912706B (zh) | 2019-11-15 | 2019-11-15 | 一种基于身份的动态数据完整性审计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110912706B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111800258A (zh) * | 2020-06-01 | 2020-10-20 | 南京信息工程大学 | 云教育下支持损坏数据恢复的数据完整性审计方法 |
CN111783148A (zh) * | 2020-06-30 | 2020-10-16 | 中国工商银行股份有限公司 | 一种支持公正的轻量级多副本数据云审计方法及装置 |
CN111898164B (zh) * | 2020-07-02 | 2024-03-29 | 武汉纺织大学 | 一种支持标签区块链存储和查询的数据完整性审计方法 |
CN112182662A (zh) * | 2020-09-09 | 2021-01-05 | 北京科技大学 | 一种面向敏捷开发云平台的数据完整性验证方法及*** |
CN112671712B (zh) * | 2020-11-04 | 2023-06-23 | 中国科学院信息工程研究所 | 一种支持高效动态更新的云数据完整性验证方法及*** |
CN112527808A (zh) * | 2020-11-20 | 2021-03-19 | 河南科技大学 | 一种云存储服务中支持动态更新的数据完整性验证方法 |
CN112688990A (zh) * | 2020-12-14 | 2021-04-20 | 百果园技术(新加坡)有限公司 | 一种混合云数据审计方法、***、电子设备及存储介质 |
CN112699123A (zh) * | 2020-12-30 | 2021-04-23 | 武汉大学 | 一种数据存储***中数据存在性和完整性校验方法及*** |
CN112800482B (zh) * | 2021-01-14 | 2022-10-28 | 南京邮电大学 | 基于身份的在线/离线安全云存储审计方法 |
CN113098681B (zh) * | 2021-03-05 | 2022-03-15 | 电子科技大学 | 云存储中口令增强且可更新的盲化密钥管理方法 |
CN113094335A (zh) * | 2021-03-23 | 2021-07-09 | 北京工业大学 | 云环境下基于改进多分支树的完整性动态审计方法 |
CN112989418A (zh) * | 2021-03-26 | 2021-06-18 | 国科信安科技研究院(杭州)有限公司 | 一种基于身份密码的文件完整性验证方法 |
CN113536396A (zh) * | 2021-07-20 | 2021-10-22 | 重庆邮电大学 | 基于数据存储的安全管理方法 |
CN114745120B (zh) * | 2022-03-17 | 2023-08-22 | 郑州大学 | 一种支持公平支付的抗密钥暴露的云数据完整性校验方法 |
CN114726877A (zh) * | 2022-03-18 | 2022-07-08 | 扬州大学 | 一种基于区块链的边缘计算下数据存储更新方法 |
CN116938452B (zh) * | 2023-09-15 | 2023-12-08 | 天津太极风控网络科技有限公司 | 一种加密备份账套的云审计方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105787389A (zh) * | 2016-03-02 | 2016-07-20 | 四川师范大学 | 云文件完整性公开审计证据生成方法及公开审计方法 |
-
2019
- 2019-11-15 CN CN201911117137.4A patent/CN110912706B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105787389A (zh) * | 2016-03-02 | 2016-07-20 | 四川师范大学 | 云文件完整性公开审计证据生成方法及公开审计方法 |
Non-Patent Citations (2)
Title |
---|
Efficient, dynamic and identity-based Remote Data Integrity Checking for multiple replicas;Su Peng 等;《Journal of Network and Computer Applications》;20190226;全文 * |
可有效更新的低存储开销公共可验证数据库方案;吴淇毓 等;《计算机研究与发展》;20180831(第8期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110912706A (zh) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110912706B (zh) | 一种基于身份的动态数据完整性审计方法 | |
Li et al. | Certificateless public integrity checking of group shared data on cloud storage | |
Yu et al. | Identity-based remote data integrity checking with perfect data privacy preserving for cloud storage | |
Wang et al. | Enabling public auditability and data dynamics for storage security in cloud computing | |
Yan et al. | A novel efficient remote data possession checking protocol in cloud storage | |
Chen et al. | BL-MLE: Block-level message-locked encryption for secure large file deduplication | |
Garg et al. | RITS-MHT: Relative indexed and time stamped Merkle hash tree based data auditing protocol for cloud computing | |
Rady et al. | Integrity and confidentiality in cloud outsourced data | |
CN109525403B (zh) | 一种支持用户全动态并行操作的抗泄露公开云审计方法 | |
Wu et al. | CPDA: A confidentiality-preserving deduplication cloud storage with public cloud auditing | |
CN106991148B (zh) | 一种支持全更新操作的数据库验证***及方法 | |
Li et al. | A Blockchain‐Based Public Auditing Scheme for Cloud Storage Environment without Trusted Auditors | |
CN111340485B (zh) | 一种用于联盟区块链的数字证书的配置方法、终端和根证书服务器 | |
Rabaninejad et al. | An identity-based online/offline secure cloud storage auditing scheme | |
Bellare et al. | Deterring certificate subversion: efficient double-authentication-preventing signatures | |
Peng et al. | Comments on “identity-based distributed provable data possession in multicloud storage” | |
Dulin et al. | An associated deletion scheme for multi-copy in cloud storage | |
Gudeme et al. | Review of remote data integrity auditing schemes in cloud computing: taxonomy, analysis, and open issues | |
CN109743327B (zh) | 基于无证书的云存储中共享数据的完整性公开验证方法 | |
Xie et al. | A novel blockchain-based and proxy-oriented public audit scheme for low performance terminal devices | |
CN109981736B (zh) | 一种支持用户与云服务器相互信任的动态公开审计方法 | |
CN117235342A (zh) | 基于同态哈希函数和虚拟索引的动态云审计方法 | |
Shen et al. | Multicopy and multiserver provable data possession for cloud-based IoT | |
Chen et al. | A remote data integrity checking scheme for big data storage | |
CN109063513B (zh) | 一种基于Hadoop平台的动态数据完整性验证方法 |
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 |