CN110912706A - 一种基于身份的动态数据完整性审计方法 - Google Patents

一种基于身份的动态数据完整性审计方法 Download PDF

Info

Publication number
CN110912706A
CN110912706A CN201911117137.4A CN201911117137A CN110912706A CN 110912706 A CN110912706 A CN 110912706A CN 201911117137 A CN201911117137 A CN 201911117137A CN 110912706 A CN110912706 A CN 110912706A
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.)
Granted
Application number
CN201911117137.4A
Other languages
English (en)
Other versions
CN110912706B (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.)
Northeastern University China
Original Assignee
Northeastern University China
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 Northeastern University China filed Critical Northeastern University China
Priority to CN201911117137.4A priority Critical patent/CN110912706B/zh
Publication of CN110912706A publication Critical patent/CN110912706A/zh
Application granted granted Critical
Publication of CN110912706B publication Critical patent/CN110912706B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/3271Cryptographic 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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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/3033Public 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
    • 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/3236Cryptographic 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
    • 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)
  • 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,具体表示为
Figure BDA0002274382600000021
令公共参数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进行签名
Figure BDA0002274382600000032
并输出(U1,V1),其中U1=QID r,定义p1=H1(M1,U1),
Figure BDA0002274382600000031
步骤5.3:对于原始文件F的每一个文件块mi(i=1,2,...,n)生成同态验证标签
Figure BDA0002274382600000041
mi指原始文件F中的每一个文件块;
步骤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);
步骤5.6:构建出Merkle哈希树后得到根节点hr,利用身份签名算法SigID()将根节点签名,计算
Figure BDA0002274382600000042
并输出
Figure BDA0002274382600000043
其中
Figure BDA0002274382600000044
Figure BDA0002274382600000045
步骤5.7:客户端不保存任何数据,将数据
Figure BDA0002274382600000046
发送给云存储服务器。
所述的步骤6具体表述为:
步骤6.1:利用
Figure BDA0002274382600000047
计算出H1(M1,U1)并赋值给p1,然后计算
Figure BDA0002274382600000048
步骤6.2:使用双线性配对e(g,V1)=e(mpk,Q1)验证签名
Figure BDA0002274382600000049
是否正确,以及验证存储的文件信息M1是否正确,若等式成立,则验证正确,继续执行步骤6.3,若不成立,则终止;
步骤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,则
Figure BDA00022743826000000410
其中i表示需要被验证的文件块mi的位置,将挑战信息chal发送给云存储服务器。
所述的步骤7具体表述为:
步骤7.1:根据挑战信息chal中的随机数ωi和i对应的文件块mi计算出
Figure BDA0002274382600000051
且满足μ∈Zq
步骤7.2:查找挑战信息chal中文件块mi对应的同态验证标签σi,计算
Figure BDA0002274382600000052
步骤7.3:每一个文件块mi的辅助认证路径记作
Figure BDA0002274382600000053
云存储服务器将文件块mi的哈希值H(mi)和对应的辅助认证路径
Figure BDA0002274382600000054
作为一个键值对放入证据列表中;
步骤7.4:定义证据
Figure BDA0002274382600000055
云存储服务器将证据P发送给第三方审计中心进行验证。
所述的步骤8具体表述为:
步骤8.1:利用证据P中的
Figure BDA0002274382600000056
计算出Merkle哈希树根节点的摘要值hr
步骤8.2:利用证据P中的
Figure BDA0002274382600000057
计算
Figure BDA0002274382600000058
Figure BDA0002274382600000059
步骤8.3:判断等式
Figure BDA00022743826000000510
是否成立,若成立,说明云存储服务器端的Merkle哈希树的根节点正确,继续执行步骤8.4,如果不相等,算法终止并返回FALSE;
步骤8.4:验证抽查的文件块mi是否是正确的,即判断等式
Figure BDA00022743826000000511
是否成立,等式左右相等说明数据保存完整,返回TRUE,否则证明数据完整性遭到破坏,终止并返回FALSE。
所述步骤9中的数据修改操作,具体表述为:
步骤9.1.1:定义文件块mi修改后的数据块为mi',首先计算mi'对应的标签
Figure BDA00022743826000000512
步骤9.1.2:客户端执行update=(M,i,mi',σi'),将修改请求发送给云服务器,其中E表示修改操作,i表示数据块mi所在的位置,mi'表示修改后的文件块;
步骤9.1.3:云存储服务器收到客户端的修改请求,执行ExecUpdate(F,Φ,update)操作,首先将mi替换成mi',然后更新标签
Figure BDA0002274382600000061
和标签集φ',最后生成证据Pupdate=(Ωi,H(mi),SigID(hr),h'r),返还给客户端;
步骤9.1.4:客户端根据辅助认证路径{Ωi,H(mi)}计算出mi的根节点的摘要值hr,验证
Figure BDA0002274382600000062
是否相等,相等则继续步骤9.1.5,不相等则算法中止,并返回FALSE;
步骤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.3:客户端根据辅助认证路径{Ωi,H(mi)}计算出mi的根节点摘要值hr,验证
Figure BDA0002274382600000063
是否相等,相等则继续步骤9.2.4,不相等则算法中止,并返回FALSE;
步骤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,判断
Figure BDA0002274382600000071
是否相等,若相等,则云存储服务器会收到客户端新的根节点签名,若不相等,则算法中止,并返回FALSE;
步骤9.3.3:最后客户端委托第三方审计中心进行挑战-应答操作,确保删除操作之后的数据是正确的。
本发明的有益效果:
在实际场景中用户对于其存储在云服务器上的数据进行大量更改不可避免,本发明针对动态存储操作,对动态数据的完整性实现了有效的审计。本发明提出了一种基于身份的数据完整性审计方案,与现有技术相比,无需部署PKI即可认证客户端的身份,减少了资源消耗,并且本发明支持数据的动态更新,能够保护动态数据的完整性。
附图说明
图1为本发明具体实施方式的一种基于身份的动态数据完整性审计方法的实体架构示意图;
图2为本发明具体实施方式的一种基于身份的动态数据完整性审计方法的实体间通信协议图;
图3为本发明具体实施方式的Merkle哈希树的构造示意图;
图4为本发明具体实施方式的数据修改操作示意图;
图5为本发明具体实施方式的数据插入操作示意图;
图6为本发明具体实施方式的数据删除操作示意图;
图7为本发明具体实施方式的验证时间测试结果;
图8为本发明具体实施方式的生成证据时间测试结果;
图9为本发明具体实施方式的挑战信息通信开销测试结果;
图10为本发明具体实施方式的证据通信开销测试结果。
具体实施方式
下面结合附图对本发明具体实施方式加以详细的说明。
本发明中的一种基于身份的动态数据完整性审计方法,基于私钥生成机构、第三方审计中心、客户端、云存储服务器四方实体设计的,这四方实体的具体架构图如图1所示,
私钥生成机构:主要负责客户端私钥的生成,它接收客户端用户身份信息,基于身份信息生成私钥,通过可信信道传输给客户端;
客户端:客户端包含一个或多个用户,每个用户都可以对云存储服务器的数据进行完整性挑战,通过向第三方审计中心发送挑战请求来验证数据是否完整;
第三方审计中心:主要功能是与客户端和云存储服务器进行交互,它接收客户端的挑战请求,同时生成挑战信息发送给云存储服务器,它与服务器交互,执行证据验证算法,验证数据是否完整,并将审计结果发送给客户端;
云存储服务器:主要功能是存储数据和生成证据功能,服务器接收到挑战信息后会执行证据生成算法,生成能够证明数据是否完整的证据并发送给第三方审计中心;
四方实体之间的交互主要包括:私钥生成机构接收用户ID生成对应密钥对交付给客户端;客户端使用密钥对文件进行预处理,然后将文件存储于云服务器;第三方审计中心接收用户委托生成挑战信息并接收和验证云服务器提供的证据;云服务器接收来自第三方审计中心的挑战信息,计算生成证据信息。
本实施例采用Java编程语言,利用JPBC包实现双线性配对、大整数运算等操作,利用云服务器以及实体机分别为系统中的第三方审计中心、云存储服务器服务器、客户端、私钥生成机构搭建测试环境,系统中部署各个实体的测试环境如表1所示。
表1测试环境
Figure BDA0002274382600000081
如图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,具体表示为
Figure BDA0002274382600000091
令公共参数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进行签名
Figure BDA0002274382600000101
并输出(U1,V1),其中U1=QID r,定义p1=H1(M1,U1),
Figure BDA0002274382600000102
步骤5.3:对于原始文件F的每一个文件块mi(i=1,2,...,n)生成同态验证标签
Figure BDA0002274382600000103
mi指原始文件F中的每一个文件块;
步骤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);
步骤5.6:构建出Merkle哈希树后得到根节点hr,利用身份签名算法SigID()将根节点签名,计算
Figure BDA0002274382600000111
并输出
Figure BDA0002274382600000112
其中
Figure BDA0002274382600000113
Figure BDA0002274382600000114
步骤5.7:客户端不保存任何数据,将数据
Figure BDA0002274382600000115
发送给云存储服务器。
步骤6:第三方审计中心运行挑战算法,生成挑战信息发送给云存储服务器,使用挑战-应答形式实现数据完整性审计,具体表述为:
步骤6.1:利用
Figure BDA0002274382600000116
计算出H1(M1,U1)并赋值给p1,然后计算
Figure BDA0002274382600000117
步骤6.2:验证签名
Figure BDA0002274382600000118
是否正确,通过使用双线性配对e(g,V1)=e(mpk,Q1)进行验证,验证存储的文件信息M1是否正确,若等式成立,则验证正确,继续执行步骤6.3,若不成立,则终止;
步骤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,则
Figure BDA0002274382600000119
其中i表示需要被验证的文件块mi的位置,将挑战信息chal发送给云存储服务器,此时的i经过随机抽查策略抽取之后范围缩小为i∈{s1,s2,...,sτ,...,sc}。
步骤7:云存储服务器接收到第三方审计中心的验证请求后,运行证据生成算法,根据验证请求查找Merkle哈希树中的数据,计算出证据P交付给第三方审计中心,具体表述为:
步骤7.1:根据挑战信息chal中的随机数ωi和i对应的文件块mi计算出
Figure BDA00022743826000001110
且满足μ∈Zq
步骤7.2:查找挑战信息chal中文件块mi对应的同态验证标签σi,计算
Figure BDA00022743826000001111
步骤7.3:对于一个文件块H(mi)它的辅助认证路径是其兄弟节点,父亲的兄弟节点,祖父的兄弟节点,以此类推,这样保证了使用最少节点数量即可计算出Merkle哈希树的根节点,每一个文件块mi的辅助认证路径记作
Figure BDA0002274382600000121
云存储服务器将文件块mi的哈希值H(mi)和对应的辅助认证路径
Figure BDA0002274382600000122
作为一个键值对放入证据列表中;
步骤7.4:定义证据
Figure BDA0002274382600000123
云存储服务器将证据P发送给第三方审计中心进行验证。
步骤8:第三方审计中心根据云存储服务器提供的证据P,运行验证算法,对存储的数据的完整性进行验证,具体表述为:
步骤8.1:利用证据P中的
Figure BDA0002274382600000124
计算出Merkle哈希树根节点的摘要值hr
步骤8.2:利用证据P中的
Figure BDA0002274382600000125
计算
Figure BDA0002274382600000126
Figure BDA0002274382600000127
步骤8.3:判断等式
Figure BDA0002274382600000128
是否成立,若成立,说明云存储服务器端的Merkle哈希树的根节点正确,继续执行步骤8.4,如果不相等,算法终止并返回FALSE;
步骤8.4:步骤8.3验证了根节点正确,但是并不代表数据完整性没有遭到破坏,因为云服务器存在只存储Merkle哈希树路径值的情况,还验证抽查的文件块mi是否是正确的,即判断等式
Figure BDA0002274382600000129
是否成立,等式左右相等说明数据保存完整,返回TRUE,否则证明数据完整性遭到破坏,终止并返回FALSE。
步骤9:当客户端发出更新请求时,由云存储服务器运行更新算法执行更新请求操作,所述更新请求操作包括数据修改操作、数据插入操作、数据删除操作,具体表述为Type={INSERT,DELETE,MODIFY},客户端需要重新计算得出需要更新的新文件块对应的标签值,更新标签集,最后将更新后的新文件块、根节点签名和新标签集同步到云存储服务器上,即完成一次更新操作;
其中数据修改操作的示意图如图4所示,具体表述为:
步骤9.1.1:定义文件块mi修改后的数据块为mi',首先计算mi'对应的标签
Figure BDA00022743826000001210
步骤9.1.2:客户端执行update=(M,i,mi',σi'),将修改请求发送给云服务器,其中E表示修改操作,i表示数据块mi所在的位置,mi'表示修改后的文件块;
步骤9.1.3:云存储服务器收到客户端的修改请求,执行ExecUpdate(F,Φ,update)操作,首先将mi替换成mi',然后更新标签
Figure BDA0002274382600000131
和标签集φ',最后生成证据Pupdate=(Ωi,H(mi),SigID(hr),h′r),返还给客户端;
步骤9.1.4:客户端根据辅助认证路径{Ωi,H(mi)}计算出mi的根节点的摘要值hr,验证
Figure BDA0002274382600000132
是否相等,相等则继续步骤9.1.5,不相等则算法中止,并返回FALSE;
步骤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.3:客户端根据辅助认证路径{Ωi,H(mi)}计算出mi的根节点摘要值hr,验证
Figure BDA0002274382600000133
是否相等,相等则继续步骤9.2.4,不相等则算法中止,并返回FALSE;
步骤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,判断
Figure BDA0002274382600000141
是否相等,若相等,则云存储服务器会收到客户端新的根节点签名,若不相等,则算法中止,并返回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,具体表示为H1:
Figure FDA0002274382590000011
H2:
Figure FDA0002274382590000012
H:
Figure FDA0002274382590000013
h:
Figure FDA0002274382590000014
令公共参数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进行签名
Figure FDA0002274382590000023
并输出(U1,V1),其中U1=QID r,定义p1=H1(M1,U1),
Figure FDA0002274382590000021
步骤5.3:对于原始文件F的每一个文件块mi(i=1,2,...,n)生成同态验证标签
Figure FDA0002274382590000022
mi指原始文件F中的每一个文件块;
步骤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);
步骤5.6:构建出Merkle哈希树后得到根节点hr,利用身份签名算法SigID()将根节点签名,计算
Figure FDA0002274382590000031
并输出
Figure FDA0002274382590000032
其中
Figure FDA0002274382590000033
Figure FDA0002274382590000034
步骤5.7:客户端不保存任何数据,将数据
Figure FDA0002274382590000035
发送给云存储服务器。
3.根据权利要1所述的一种基于身份的动态数据完整性审计方法,其特征在于,所述的步骤6具体表述为:
步骤6.1:利用
Figure FDA0002274382590000036
计算出H1(M1,U1)并赋值给p1,然后计算
Figure FDA0002274382590000037
步骤6.2:使用双线性配对e(g,V1)=e(mpk,Q1)验证签名
Figure FDA0002274382590000038
是否正确,以及验证存储的文件信息M1是否正确,若等式成立,则验证正确,继续执行步骤6.3,若不成立,则终止;
步骤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,则
Figure FDA0002274382590000039
其中i表示需要被验证的文件块mi的位置,将挑战信息chal发送给云存储服务器。
4.根据权利要求1所述的一种基于身份的动态数据完整性审计方法,其特征在于,所述的步骤7具体表述为:
步骤7.1:根据挑战信息chal中的随机数ω i 和i对应的文件块mi计算出
Figure FDA0002274382590000041
且满足μ∈Zq
步骤7.2:查找挑战信息chal中文件块mi对应的同态验证标签σi,计算
Figure FDA0002274382590000042
步骤7.3:每一个文件块mi的辅助认证路径记作
Figure FDA0002274382590000043
云存储服务器将文件块mi的哈希值H(mi)和对应的辅助认证路径
Figure FDA0002274382590000044
作为一个键值对放入证据列表中;
步骤7.4:定义证据
Figure FDA0002274382590000045
云存储服务器将证据P发送给第三方审计中心进行验证。
5.根据权利要1所述的一种基于身份的动态数据完整性审计方法,其特征在于,所述的步骤8具体表述为:
步骤8.1:利用证据P中的
Figure FDA0002274382590000046
计算出Merkle哈希树根节点的摘要值hr
步骤8.2:利用证据P中的
Figure FDA0002274382590000047
计算
Figure FDA0002274382590000048
Figure FDA0002274382590000049
步骤8.3:判断等式
Figure FDA00022743825900000410
是否成立,若成立,说明云存储服务器端的Merkle哈希树的根节点正确,继续执行步骤8.4,如果不相等,算法终止并返回FALSE;
步骤8.4:验证抽查的文件块mi是否是正确的,即判断等式
Figure FDA00022743825900000411
是否成立,等式左右相等说明数据保存完整,返回TRUE,否则证明数据完整性遭到破坏,终止并返回FALSE。
6.根据权利要1所述的一种基于身份的动态数据完整性审计方法,其特征在于,所述步骤9中的数据修改操作,具体表述为:
步骤9.1.1:定义文件块mi修改后的数据块为mi′,首先计算mi′对应的标签
Figure FDA00022743825900000412
步骤9.1.2:客户端执行update=(E,i,m′i,σ′i),将修改请求发送给云存储服务器,其中E表示修改操作,i表示数据块mi所在的位置,m′i表示修改后的文件块;
步骤9.1.3:云存储服务器收到客户端的修改请求,执行ExecUpdate(F,Φ,update)操作,首先将mi替换成m′i,然后更新标签
Figure FDA0002274382590000051
和标签集φ′,最后生成证据Pupdate=(Ωi,H(mi),SigID(hr),h′r),返还给客户端;
步骤9.1.4:客户端根据辅助认证路径{Ωi,H(mi)}计算出mi的根节点的摘要值hr,验证
Figure FDA0002274382590000052
是否相等,相等则继续步骤9.1.5,不相等则算法中止,并返回FALSE;
步骤9.1.5:如果mi的根节点验算正确,客户端使用辅助认证路径{Ωi,H(mi)}计算出m′i的根节点值h′r,计算新的根节点签名值SigID(h′r);
步骤9.1.6:客户端发送m′i的根节点签名值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.3:客户端根据辅助认证路径{Ωi,H(mi)}计算出mi的根节点摘要值hr,验证
Figure FDA0002274382590000053
是否相等,相等则继续步骤9.2.4,不相等则算法中止,并返回FALSE;
步骤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,判断
Figure FDA0002274382590000061
是否相等,若相等,则云存储服务器会收到客户端新的根节点签名,若不相等,则算法中止,并返回FALSE;
步骤9.3.3:最后客户端委托第三方审计中心进行挑战-应答操作,确保删除操作之后的数据是正确的。
CN201911117137.4A 2019-11-15 2019-11-15 一种基于身份的动态数据完整性审计方法 Active CN110912706B (zh)

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 true CN110912706A (zh) 2020-03-24
CN110912706B 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)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111783148A (zh) * 2020-06-30 2020-10-16 中国工商银行股份有限公司 一种支持公正的轻量级多副本数据云审计方法及装置
CN111800258A (zh) * 2020-06-01 2020-10-20 南京信息工程大学 云教育下支持损坏数据恢复的数据完整性审计方法
CN111898164A (zh) * 2020-07-02 2020-11-06 武汉纺织大学 一种支持标签区块链存储和查询的数据完整性审计方法
CN112182662A (zh) * 2020-09-09 2021-01-05 北京科技大学 一种面向敏捷开发云平台的数据完整性验证方法及系统
CN112527808A (zh) * 2020-11-20 2021-03-19 河南科技大学 一种云存储服务中支持动态更新的数据完整性验证方法
CN112671712A (zh) * 2020-11-04 2021-04-16 中国科学院信息工程研究所 一种支持高效动态更新的云数据完整性验证方法及系统
CN112688990A (zh) * 2020-12-14 2021-04-20 百果园技术(新加坡)有限公司 一种混合云数据审计方法、系统、电子设备及存储介质
CN112699123A (zh) * 2020-12-30 2021-04-23 武汉大学 一种数据存储系统中数据存在性和完整性校验方法及系统
CN112800482A (zh) * 2021-01-14 2021-05-14 南京邮电大学 基于身份的在线/离线安全云存储审计方法
CN112989418A (zh) * 2021-03-26 2021-06-18 国科信安科技研究院(杭州)有限公司 一种基于身份密码的文件完整性验证方法
CN113098681A (zh) * 2021-03-05 2021-07-09 电子科技大学 云存储中口令增强且可更新的盲化密钥管理方法
CN113094335A (zh) * 2021-03-23 2021-07-09 北京工业大学 云环境下基于改进多分支树的完整性动态审计方法
CN113536396A (zh) * 2021-07-20 2021-10-22 重庆邮电大学 基于数据存储的安全管理方法
CN114726877A (zh) * 2022-03-18 2022-07-08 扬州大学 一种基于区块链的边缘计算下数据存储更新方法
CN114745120A (zh) * 2022-03-17 2022-07-12 郑州大学 一种支持公平支付的抗密钥暴露的云数据完整性校验方法
CN116938452A (zh) * 2023-09-15 2023-10-24 天津太极风控网络科技有限公司 一种加密备份账套的云审计方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105787389A (zh) * 2016-03-02 2016-07-20 四川师范大学 云文件完整性公开审计证据生成方法及公开审计方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105787389A (zh) * 2016-03-02 2016-07-20 四川师范大学 云文件完整性公开审计证据生成方法及公开审计方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SU PENG 等: "Efficient, dynamic and identity-based Remote Data Integrity Checking for multiple replicas", 《JOURNAL OF NETWORK AND COMPUTER APPLICATIONS》 *
吴淇毓 等: "可有效更新的低存储开销公共可验证数据库方案", 《计算机研究与发展》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111800258A (zh) * 2020-06-01 2020-10-20 南京信息工程大学 云教育下支持损坏数据恢复的数据完整性审计方法
CN111783148A (zh) * 2020-06-30 2020-10-16 中国工商银行股份有限公司 一种支持公正的轻量级多副本数据云审计方法及装置
CN111898164A (zh) * 2020-07-02 2020-11-06 武汉纺织大学 一种支持标签区块链存储和查询的数据完整性审计方法
CN111898164B (zh) * 2020-07-02 2024-03-29 武汉纺织大学 一种支持标签区块链存储和查询的数据完整性审计方法
CN112182662A (zh) * 2020-09-09 2021-01-05 北京科技大学 一种面向敏捷开发云平台的数据完整性验证方法及系统
CN112671712B (zh) * 2020-11-04 2023-06-23 中国科学院信息工程研究所 一种支持高效动态更新的云数据完整性验证方法及系统
CN112671712A (zh) * 2020-11-04 2021-04-16 中国科学院信息工程研究所 一种支持高效动态更新的云数据完整性验证方法及系统
CN112527808A (zh) * 2020-11-20 2021-03-19 河南科技大学 一种云存储服务中支持动态更新的数据完整性验证方法
CN112688990A (zh) * 2020-12-14 2021-04-20 百果园技术(新加坡)有限公司 一种混合云数据审计方法、系统、电子设备及存储介质
CN112699123A (zh) * 2020-12-30 2021-04-23 武汉大学 一种数据存储系统中数据存在性和完整性校验方法及系统
CN112800482A (zh) * 2021-01-14 2021-05-14 南京邮电大学 基于身份的在线/离线安全云存储审计方法
CN113098681A (zh) * 2021-03-05 2021-07-09 电子科技大学 云存储中口令增强且可更新的盲化密钥管理方法
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 重庆邮电大学 基于数据存储的安全管理方法
CN114745120A (zh) * 2022-03-17 2022-07-12 郑州大学 一种支持公平支付的抗密钥暴露的云数据完整性校验方法
CN114745120B (zh) * 2022-03-17 2023-08-22 郑州大学 一种支持公平支付的抗密钥暴露的云数据完整性校验方法
CN114726877A (zh) * 2022-03-18 2022-07-08 扬州大学 一种基于区块链的边缘计算下数据存储更新方法
CN116938452A (zh) * 2023-09-15 2023-10-24 天津太极风控网络科技有限公司 一种加密备份账套的云审计方法
CN116938452B (zh) * 2023-09-15 2023-12-08 天津太极风控网络科技有限公司 一种加密备份账套的云审计方法

Also Published As

Publication number Publication date
CN110912706B (zh) 2021-08-03

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
EP4120114A1 (en) Data processing method and apparatus, smart device and storage medium
Wang et al. Enabling public auditability and data dynamics for storage security in cloud computing
CN109525403B (zh) 一种支持用户全动态并行操作的抗泄露公开云审计方法
Mo et al. A dynamic Proof of Retrievability (PoR) scheme with O (logn) complexity
CN106991148B (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”
Li et al. A Blockchain‐Based Public Auditing Protocol with Self‐Certified Public Keys for Cloud Data
CN111340485B (zh) 一种用于联盟区块链的数字证书的配置方法、终端和根证书服务器
Dulin et al. An associated deletion scheme for multi-copy in cloud storage
CN109743327B (zh) 基于无证书的云存储中共享数据的完整性公开验证方法
CN109981736B (zh) 一种支持用户与云服务器相互信任的动态公开审计方法
Xie et al. A novel blockchain-based and proxy-oriented public audit scheme for low performance terminal devices
CN117235342A (zh) 基于同态哈希函数和虚拟索引的动态云审计方法
Chen et al. A remote data integrity checking scheme for big data storage
CN109063513B (zh) 一种基于Hadoop平台的动态数据完整性验证方法
Shen et al. Multicopy and multiserver provable data possession for cloud-based IoT
CN116232578A (zh) 一种融合量子密钥分发的多方协同签名系统、方法及设备
Zou et al. Dynamic provable data possession based on ranked merkle hash tree
CN113362065A (zh) 一种基于分散式私钥的在线签名交易实现方法
CN112671712A (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