CN112565264B - 一种基于区块链的云存储数据完整性检测方法 - Google Patents

一种基于区块链的云存储数据完整性检测方法 Download PDF

Info

Publication number
CN112565264B
CN112565264B CN202011415849.7A CN202011415849A CN112565264B CN 112565264 B CN112565264 B CN 112565264B CN 202011415849 A CN202011415849 A CN 202011415849A CN 112565264 B CN112565264 B CN 112565264B
Authority
CN
China
Prior art keywords
user
signature
file
block chain
cloud server
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
Application number
CN202011415849.7A
Other languages
English (en)
Other versions
CN112565264A (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.)
Yihailang technology development (Changsha) Co.,Ltd.
Original Assignee
Hunan 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 Hunan University filed Critical Hunan University
Priority to CN202011415849.7A priority Critical patent/CN112565264B/zh
Publication of CN112565264A publication Critical patent/CN112565264A/zh
Application granted granted Critical
Publication of CN112565264B publication Critical patent/CN112565264B/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于区块链的云存储数据完整性检测方法及系统,用户端主要采用格签名算法对文件进行签名,能够有效抵御量子计算的威胁,保障签名不被破解。然后通过构建默克尔树,将文件的签名值聚合为默克尔树并与布谷鸟过滤器结合,一方面能满足文件动态操作的要求,另一方面将复杂的签名验证过程简化为简单的布谷鸟过滤器的查询过程,显著提高验证效率。同时引入区块链网络代替传统的TPA,能够有效避免TPA与另一方合谋的情况,且提高了信息的透明度,进一步提高了本方案的安全性。

Description

一种基于区块链的云存储数据完整性检测方法
技术领域
本发明属于云存储技术领域,特别涉及一种基于区块链的云存储数据完整性检测方法及系统。
背景技术
随着互联网的迅猛发展,数据资源迅速膨胀,个人用户及企业的本地平台存储能力和计算能力都较为有限,扩展本地平台的花费较大,因此商家通过专门向用户提供云计算平台来提供计算能力和存储能力成为主流的解决方式。在这种模式下,商家通过提供服务来盈利,用户也避免了升级硬件的庞大开销,实现互利共赢。但数据外包给用户带来便利的同时,用户也就失去了数据的硬件控制,数据的安全性问题也成就为了一个无法忽视的问题。
云端数据安全性问题的根源在于云服务商与用户间的信任问题,云服务商与用户双方无法达成可信的信任体系。云服务商出于成本管控可能疏于对客户文件的管理,云端设备的故障,来自外部的攻击,甚至是云服务商本身对用户数据的窥探,都有可能造成用户数据的泄露、遗失及受损。另一方面,即使用户的数据受损,也可能无法实现有效的问责,云服务商会逃避责任不予承认。因此问题的本质在于双方缺乏信任基础,一旦出现问题,被质疑方难以提供双方都认可的依据。
传统的解决方式是引入第三方信任机构形成三方认证模型,但这种方式依旧存在问题,无法保障第三方机构不会出于利益或其他原因联合另一方来进行蒙骗行为,而区块链的出现为这一问题提供了新的解决方案。
区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。区块链的节点信息由所有区块链的参与者共同维护,因此区块链上的所有信息都是公开透明的,且信息一经发布就永久保留,无法篡改。区块链所拥有的公开验证、不可篡改的特性使其可以作为可信的第三方解决云计算环境下用户的顾虑,一切结果都可以发布到区块链中,由区块链的所有用户进行认证和维护。因此将区块链结合到云计算领域,利用区块链的优势解决云计算环境的弊端,可以更加有效地为用户的数据安全性提供保障。
发明内容
本发明主要目的是针对云服务商与用户间信任不足的问题以及传统三方认证模型的弊端,提出一种基于区块链的云存储数据完整性检测方法及系统,采用区块链作为可信第三方代替传统的第三方,有效解决云服务商和用户间的信任问题,同时避免了传统第三方的可信度问题。传统第三方还为用户提供了计算服务,因此为减轻用户的计算负担引入布谷鸟过滤器,将用户校验的过程简化为简单的过滤器查询操作,实现高效验证。
为实现上述目的,本发明公开了一种基于区块链的云存储数据完整性检测方法,其特征在于,包括如下步骤:
步骤一、初始化阶段:初始化系统,生成公开参数及用户签名所需的公私钥;
步骤二、文件处理阶段:用户将待上传的文件采用对称加密算法加密,而后将文件分成若干文件块,对每一个文件块采用格签名算法生成签名集,根据签名集构建默克尔树,最后根据签名集构建布谷鸟过滤器,最终用户在本地平台保留布谷鸟过滤器,将文件块上传至云服务器;
步骤三、用户审计云服务器阶段:用户随机选择文件块生成完整性验证请求,同时将验证请求发布到区块链中,并将验证请求和区块链地址一起发送到云服务器;
步骤四、云服务器证明阶段:云服务器根据用户的公钥计算用户请求的文件块的签名结果,将签名结果发布至区块链中,将签名结果、对应的文件及区块链地址返回给用户;
步骤五、用户验证阶段:用户获取云服务器的签名结果后首先对签名结果进行验证,验证通过后只需要根据签名查询是否存在于布谷鸟过滤器中即可,若存在则完整性验证通过,否则文件的完整性受损,简化了签名的验证过程。
进一步的改进,所述步骤一中,生成用户公私钥的具体步骤为:
选定一个随机矩阵
Figure BDA0002817887990000021
作为用户的私钥,矩阵
Figure BDA0002817887990000022
作为公钥且需要满足AS=A(-S)=qIn(mod 2q);
其中Z表示整数域,m,n代表矩阵的维度,取值为2的幂,q是一个随机素数且满足q=1(mod 2n),In表示维数为n的单位矩阵,mod表示取余操作。
进一步的改进,所述格签名算法具体步骤为:
用户从离散高斯分布
Figure BDA0002817887990000023
中采样获得向量y,通过H(Ay mod 2q,μ)计算出结果 c,然后从集合{0,1}中随机选择元素b并计算z=y+(-1)bSc,通过拒绝采样定理以概率
Figure BDA0002817887990000024
输出签名对(z,c)。若签名算法未输出签名对,则重新启动签名算法生成新的签名,直到输出签名结果为止;
其中
Figure BDA0002817887990000025
表示以0为中心,标准差为σ的离散高斯分布,
Figure BDA0002817887990000026
Figure BDA0002817887990000027
是以c为中心,标准差为σ的高斯分布;H表示哈希函数,本方案中使用的是输出分布在
Figure BDA0002817887990000028
上的函数,
Figure BDA0002817887990000029
表示长度为n,1个个数为k的二进制向量集;μ代表待签名消息,(z,c)为最终生成的签名对,为
Figure BDA00028178879900000210
其中
Figure BDA00028178879900000211
进一步的改进,用户构建默克尔树的具体步骤为:
用户将文件分为x个文件块{f1,f2,...,fx},fx表示第x个文件块;将文件块的签名的哈希值作为默克尔树的叶子节点,随后用每两个叶子节点的哈希值连接在一起用哈希函数计算新的哈希值作为这两个叶子节点的父节点的哈希值,层层递归直至生成根节点,默克尔树即构建完成。
进一步的改进,用户构建布谷鸟过滤器的具体步骤为:
首先初始化一个大小为N的空哈希表,计算默克尔树叶子节点Ri的哈希值 i1=hash(Ri);f=fingerprint(Ri);
Figure BDA00028178879900000212
插入时只需查询i1,i2对应哈希表的位置是否为空,若两个位置都为空则随机选择空位将f插入,若只有一个位置为空则将f插入该空位,若两个位置都不为空则随机选择一个位置i,用f替换位置i的原有元素e,将元素e重新定位
Figure BDA00028178879900000213
若ie对应的位置为空则将e插入,否则将原有元素踢出并重新定位原有元素,直到所有元素定位完毕;然后重复上述过程直到将所有节点Ri插入完毕;
其中,i1,i2两个值代表数据在布谷鸟过滤器哈希表中的两个候选位置,hash()代表哈希函数,fingerprint是另一个哈希函数,生成的哈希值f即为布谷鸟过滤器中存储的值,称为指纹,布谷鸟过滤器中存储的是数据的指纹值而非原值。
进一步的改进,用户审计云服务器的具体步骤为:
当用户想要验证云端文件的数据完整性时,采用随机数生成器随机生成s个数{a1,a2,...,as},这s个随机数即为要验证完整性的文件编号,用户将验证请求发布到区块链网络中,然后将验证请求及验证请求所在区块链地址发送给云服务器。
进一步的改进,云服务器证明文件完整性的具体步骤为:
云服务器接收到用户要验证的文件编号{a1,a2,...,as}后,使用用户的公钥A 通过c′i←H(Ay mod 2q,ai)计算这s个文件的签名结果{c′1,c′2,...,c′s},将结果发布到区块链中并返回给用户。
进一步的改进,用户验证云服务器返回结果的具体步骤为:
用户收到签名结果{c′1,c′2,...,c′s}后,首先验证c′=H(Az+qc′mod 2q,μ)是否成立,若成立则使用这些签名结果计算布谷鸟过滤器中是否存在相应结果。每个节点R′i的指纹fi=fingerprint(R′i);i1=hash(R′i);
Figure BDA0002817887990000031
查询i1或i2对应的哈希表中fi是否存在,若所有的fi都存在于布谷鸟过滤器中,则文件完整性验证通过,否则认为完整性受损。
一种基于区块链的云存储数据完整性检测系统,所述系统包括:
用户,文件拥有者,本地存储空间有限,因此将文件委托存储于云服务器。
云服务器,具有很大的存储空间和很强的计算能力,为用户提供存储及计算服务,使用户能随时随地上传和下载数据。
区块链,用于信息的发布和公示,由于其不可篡改和公开透明的特点,可以取代传统三方验证模型中的TPA作为新的可信第三方。
本发明的优点和有益效果在于,使用格签名算法对用户数据进行签名,相比其他签名算法,能够有效抵御量子计算的攻击,安全性强且效率高。除此之外,本发明还引入了区块链作为信息公示和认证平台取代了传统方法中的第三方机构,有效避免了第三方机构出于利益或其他原因与其中一方勾结,保证了信息的透明和公开审计,提供用户和云服务器双方认可的结果,构建双方的信任体系。同时,由于取消了传统的第三方机构,用户无法享受到第三方机构提供的计算能力,因此本发明提供了布谷鸟过滤器,将格签名算法和布谷鸟过滤器结合起来,简化了计算操作,将复杂的签名验证过程简化为简单的过滤器查询过程,有效降低了完整性验证过程中用户的计算难度。综上所述,本发明能够有效的针对云端数据完整性做出判断,且提供了有效的第三方平台保障结果的正确性和有效性。
附图说明
图1是本发明提供的云存储数据完整性检测方法的流程图;
图2是本发明提供的默克尔树构建过程的示意图;
图3是本发明提供的布谷鸟过滤器的插入过程示意图;
图4是本发明提供的云存储数据完整性检测系统的模型图;
具体实施方式
为详细阐述本发明的目的、方法及优点,下面将结合附图和具体实施方式对本发明作更进一步的详细说明。
本实施例中,用户与云服务器二者间任何一方都无法提供令双方都认可的结果,因此引入区块链网络作为第三方对双方的结果进行公示和认证。区块链是由一个个区块直链式连接所形成的,一旦信息被添加到区块中则无法被修改,区块生成后也无法撤销,且区块链所有用户都会本地保留所有区块,因此区块链上的所有信息都是公开透明的,且一经发布无法修改,所有用户都可以对区块链上的信息进行核查,因此区块链网络可以认为是可信第三方对用户和云服务器行为进行审计。
实施例1、
本发明提供了一种基于区块链的云存储数据完整性验证方法,其流程如图1 所示,主要包括:
S101:生成系统的公开参数和用户公私钥。
具体地,首先生成公开参数P={q,m,n,σ,In,M},这些公开参数不涉密,是后续其他计算等所需要的基础数据。
然后生成一个随机矩阵
Figure BDA0002817887990000041
作为用户的私钥,生成矩阵
Figure BDA0002817887990000042
作为用户的公钥,矩阵A需要满足AS=A(-S)=qIn(mod 2q)。
私钥用户自己本地妥善保管,公钥可以与公开参数一起发布到区块链中,也可以之后同文件一起定向发送到云服务器。
S102:用户将文件分割为文件块。
具体地:用户采用文件分割工具将文件等分为大小相同的若干文件块,然后将分割出的文件块按顺序命名为{1,2,...,n}。
可选地,用户分割文件前可以根据文件重要程度选择是否将文件采用对称加密算法进行加密。
S103:用户对102得到的文件块通过101得到的秘钥采用格签名算法进行签名。
具体地:用户从离散高斯分布
Figure BDA0002817887990000043
中随机采样得到向量y,使用公钥A,待签名文件μ,通过H(Ay mod 2q,μ)计算出签名结果c,可以看出结果c只需要公钥即可计算。然后从集合{0,1}中随机抽取元素b,计算z←y+(-1)bSc,通过拒绝采样定理以概率
Figure BDA0002817887990000044
输出签名对(z,c)。
特别地,若拒绝采样定理没有输出结果,则不断重复步骤103直到输出签名结果为止。
S104:用户根据103得到的签名结果构建默克尔树。
具体地:用户对每一个文件块签名生成签名对的结果为 {(z1,c1),(z2,c2),...,(zn,cn)},根据签名对公钥生成的部分{c1,c2,...,cn}构建默克尔树。
特别地,构建默克尔树的过程,如图2所示。
S105:用户根据103得到的签名集构建布谷鸟过滤器。
具体地:用户获得的签名结果为{(z1,c1),(z2,c2),...,(zn,cn)},为构建布谷鸟过滤器,首先构建一个长度为N的一维空哈希表,然后计算每个签名对cx的哈希值 i1,x=hash(cx);fx=fingerprint(cx);
Figure BDA0002817887990000045
x∈[1,n]。i1,i2即为映射元素在过滤器哈希表中的位置,要插入时只需要查询i1,i2所对应的位置是否为空即可。
具体的插入方式如图3所示。这里又分为三种情况:
情况一,i1,i2两个位置皆为空,那么随机选择一个位置进行插入即可。
情况二,i1,i2两个位置只有一个位置为空,那么只需要将元素插入到空的位置。
情况三,i1,i2两个位置都不为空,则需要随机选择一个位置i,i=i1or i2,用映射元素fi替换该位置中的原有元素e,并重新定位元素e在哈希表中的位置
Figure BDA0002817887990000051
若ie对应的位置为空,则将元素e插入到表中,否则再用e 替换掉表中原有元素并重新定位这个元素的位置,重复这个过程直到所有元素都定位完毕。
特别地,f是数据的指纹值,布谷鸟过滤器中存储的都是指纹值而非原值,便于进行元素的二次定位。fingerprint()函数可以是任意将不同长度的值映射到同一长度的哈希函数。
可选地,若要存储的元素过多,可以将过滤器的哈希表构建为二维N×M 大小。
将所有签名都插入到哈希表中之后布谷鸟过滤器即构建完成。
S106:用户将105得到的布谷鸟过滤器本地保留,将102得到的文件块和默克尔树上传到云服务器。这一步完成代表着用户对文件的处理结束,文件上传完成,之后用户随时可以对文件的完整性进行验证。
可选地,用户将文件上传到云服务器之后可以选择是否将文件公开,若将文件公开则系统的其他参与者也可以获取文件,否则只有用户本人才能下载。
S107:用户生成随机数发给云服务器作为要验证完整性的文件标号。
具体地:当用户想要验证云端文件的完整性时,使用随机数生成器随机生成 s个随机数{a1,a2,...,as},由于文件块是以数字顺序命名的,因此这s个随机数即作为要验证完整性的文件编号。然后用户将验证请求发布到区块链网络中,并将验证请求连同请求所在的区块链地址一同发送到云服务器。
S108:云服务器根据101获得的公钥计算107的文件签名返回给用户。
具体地:云服务器收到用户的验证请求后,首先定位到每个文件块的位置i,然后使用用户的公钥计算每个文件块的签名c′=H(Ay mod 2q,μi),将结果发布到区块链中,然后将结果和所在的区块链地址连同原文件一起返回给用户。
S109:用户查询108获得的签名结果是否存在于105得到的布谷鸟过滤器中判断文件完整性是否受损。
具体地:用户在103生成文件签名c,当用户收到云服务器返回的签名结果 {c′1,c′2,...,c′s}后,首先使用c′=H(Az+qc′mod 2q,μ)验证签名是否正确,验证通过后对布谷鸟过滤器执行查询操作查询是否所有签名结果都处于布谷鸟过滤器中即可,大幅简化了格签名验证阶段的时间复杂度。
布谷鸟过滤器的查询操作具体为:计算每个签名R′i的指纹fi= fingerprint(R′i)。然后计算指纹所对应的哈希表中的位置,i1=hash(R′i);
Figure BDA0002817887990000052
Figure BDA0002817887990000053
之后只需要查询哈希表中i1或i2这两个位置fi是否存在即可。若所有指纹f都存在于过滤器中,则文件完整性验证通过,否则文件的完整性受损。
实施例2
本发明还提供了一种基于区块链的云存储数据完整性验证系统,如图4所示,该系统主要包括:用户,云服务器,区块链。其中,
用户是文件拥有者,本地存储空间有限,因此将文件委托存储于云服务器。系统中用户众多,因此用户与用户间也可以进行互动,如下载其他用户公开的文件、代理其他用户完整性验证的请求等。
云服务器,具有很大的存储空间和很强的计算能力,为用户提供存储及计算服务,使用户能随时随地上传和下载数据。同样,系统中云服务器也可以有多个,用户上传文件时同一个文件分割出的文件块应统一上传到一个云服务器。
区块链,用户和云服务器间的沟通和监管平台,记录和公示用户及云服务器间的所有交互记录。区块链由系统的所有参与者共同维护,共同监督用户与云服务器的行为,保障系统的正常运转。
上述即为本发明的详细内容,对本发明的原理、内容、优点等作出了详细的阐述。但以上实施例的说明只是为了帮助理解本发明的思想和方法,并不意味着构成限定,具体实施过程中对于各种细节可以进行各种变化。

Claims (6)

1.一种基于区块链的云存储数据完整性检测方法,其特征在于,包括如下步骤:
步骤一、初始化阶段:初始化系统,生成公开参数及用户签名所需的公私钥;生成用户公私钥的具体步骤为:
选定一个随机矩阵
Figure FDA0003416606920000011
作为用户的私钥,矩阵
Figure FDA0003416606920000012
作为公钥且需要满足AS=A(-S)=qIn(mod 2q);
其中Z表示整数域,m,n代表矩阵的维度,取值为2的幂,q是一个随机素数且满足q=1(mod 2n),In表示维数为n的单位矩阵,mod表示取余操作;
步骤二、文件处理阶段:用户将待上传的文件采用对称加密算法加密,而后将文件分成若干文件块,对每一个文件块采用格签名算法生成签名集,根据签名集构建默克尔树,最后根据签名集构建布谷鸟过滤器,最终用户在本地平台保留布谷鸟过滤器,将文件块上传至云服务器;
格签名算法具体步骤为:
用户从离散高斯分布
Figure FDA0003416606920000013
中采样获得向量y,通过H(Ay mod 2q,μ)计算出结果c,然后从集合{0,1}中随机选择元素b并计算z←y+(-1)bSc,通过拒绝采样定理以概率
Figure FDA0003416606920000014
输出签名对(z,c);若签名算法未输出签名对,则重新启动签名算法生成新的签名,直到输出签名结果为止;
其中
Figure FDA0003416606920000015
表示以0为中心,标准差为σ的离散高斯分布,
Figure FDA0003416606920000016
Figure FDA0003416606920000017
是以c为中心,标准差为σ的高斯分布;H表示哈希函数,使用的是输出分布在
Figure FDA0003416606920000018
上的函数,
Figure FDA0003416606920000019
表示长度为n,1个个数为k的二进制向量集;μ代表待签名消息,(z,c)为最终生成的签名对,为
Figure FDA00034166069200000110
其中
Figure FDA00034166069200000111
步骤三、用户审计云服务器阶段:用户随机选择文件块生成完整性验证请求,同时将验证请求发布到区块链中,并将验证请求和区块链地址一起发送到云服务器;
步骤四、云服务器证明阶段:云服务器根据用户的公钥计算用户请求的文件块的签名结果,将签名结果发布至区块链中,将签名结果、对应的文件及区块链地址返回给用户;
步骤五、用户验证阶段:用户获取云服务器的签名结果后首先对签名结果验证,验证通过后只需要根据签名查询是否存在于布谷鸟过滤器中即可,若存在则完整性验证通过,否则文件的完整性受损;
其中,公开参数P={q,m,n,σ,In,M}。
2.根据权利要求1所述的基于区块链的云存储数据完整性检测方法,其特征在于,用户构建默克尔树的具体步骤为:
用户将文件分为x个文件块{f1,f2,…,fx},fx表示第x个文件块;将文件块的签名的哈希值作为默克尔树的叶子节点,随后用每两个叶子节点的哈希值连接在一起用哈希函数计算新的哈希值作为这两个叶子节点的父节点的哈希值,层层递归直至生成根节点,默克尔树即构建完成。
3.根据权利要求1所述的基于区块链的云存储数据完整性检测方法,其特征在于,用户构建布谷鸟过滤器的具体步骤为:
首先初始化一个大小为N的空哈希表,计算默克尔树叶子节点Ri的哈希值i1=hash(Ri);f=fingerprint(Ri);
Figure FDA0003416606920000021
插入时只需查询i1,i2对应哈希表的位置是否为空,若两个位置都为空则随机选择空位将f插入,若只有一个位置为空则将f插入该空位,若两个位置都不为空则随机选择一个位置i,用f替换位置i的原有元素e,将元素e重新定位
Figure FDA0003416606920000022
若ie对应的位置为空则将e插入,否则将原有元素踢出并重新定位原有元素,直到所有元素定位完毕;然后重复上述过程直到将所有节点Ri插入完毕;
其中,i1,i2两个值代表数据在布谷鸟过滤器哈希表中的两个候选位置,hash()代表哈希函数,fingerprint是另一个哈希函数,生成的哈希值f即为布谷鸟过滤器中存储的值,称为指纹,布谷鸟过滤器中存储的是数据的指纹值而非原值。
4.根据权利要求1所述的基于区块链的云存储数据完整性检测方法,其特征在于,用户审计云服务器的具体步骤为:
当用户想要验证云端文件的数据完整性时,采用随机数生成器随机生成s个数{a1,a2,…,as},这s个随机数即为要验证完整性的文件编号,用户将验证请求发布到区块链网络中,然后将验证请求及验证请求所在区块链地址发送给云服务器。
5.根据权利要求1所述的基于区块链的云存储数据完整性检测方法,其特征在于,云服务器证明文件完整性的具体步骤为:
云服务器接收到用户要验证的文件编号{a1,a2,…,as}后,使用用户的公钥A通过c'i←H(Ay mod 2q,ai)计算这s个文件的签名结果{c'1,c'2,…,c's},将结果发布到区块链中并返回给用户。
6.根据权利要求1所述的基于区块链的云存储数据完整性检测方法,其特征在于,用户验证云服务器返回结果的具体步骤为:
用户收到签名结果{c'1,c'2,…,c's}后,首先验证c'=H(Az+qc'mod 2q,μ)是否成立,若成立则使用这些签名结果计算布谷鸟过滤器中是否存在相应结果;每个节点R'i的指纹fi=fingerprint(R'i);i1=hash(R'i);
Figure DEST_PATH_IMAGE001
;查询i1或i2对应的哈希表中fi是否存在,若所有的fi都存在于布谷鸟过滤器中,则文件完整性验证通过,否则认为完整性受损。
CN202011415849.7A 2020-12-04 2020-12-04 一种基于区块链的云存储数据完整性检测方法 Active CN112565264B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011415849.7A CN112565264B (zh) 2020-12-04 2020-12-04 一种基于区块链的云存储数据完整性检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011415849.7A CN112565264B (zh) 2020-12-04 2020-12-04 一种基于区块链的云存储数据完整性检测方法

Publications (2)

Publication Number Publication Date
CN112565264A CN112565264A (zh) 2021-03-26
CN112565264B true CN112565264B (zh) 2022-04-08

Family

ID=75059011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011415849.7A Active CN112565264B (zh) 2020-12-04 2020-12-04 一种基于区块链的云存储数据完整性检测方法

Country Status (1)

Country Link
CN (1) CN112565264B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113239368B (zh) * 2021-04-02 2023-02-28 暨南大学 一种基于电子签名的qr码加密解密方法
CN113904836B (zh) * 2021-09-30 2022-06-07 西安交通大学 一种基于区块链的主客观协同云服务信任管理方法及系统
CN115118437B (zh) * 2022-08-25 2022-10-28 人民法院信息技术服务中心 基于一致性哈希和路径证明的多签验证方法、装置及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109194466B (zh) * 2018-10-29 2021-07-06 南开大学 一种基于区块链的云端数据完整性检测方法及系统
US11283616B2 (en) * 2019-04-03 2022-03-22 Hong Kong Baptist University Method for index-based and integrity-assured search in a blockchain
CN111478769A (zh) * 2020-03-18 2020-07-31 西安电子科技大学 一种分布式可信身份认证方法、系统、存储介质、终端
CN111898164B (zh) * 2020-07-02 2024-03-29 武汉纺织大学 一种支持标签区块链存储和查询的数据完整性审计方法

Also Published As

Publication number Publication date
CN112565264A (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
EP3563553B1 (en) Method for signing a new block in a decentralized blockchain consensus network
CN112565264B (zh) 一种基于区块链的云存储数据完整性检测方法
Wei et al. SecCloud: Bridging secure storage and computation in cloud
CN106254374B (zh) 一种具备去重功能的云数据公开审计方法
US10846372B1 (en) Systems and methods for trustless proof of possession and transmission of secured data
JP2020500458A (ja) 情報保護用のシステム及び方法
Xie et al. Blockchain‐Based Cloud Data Integrity Verification Scheme with High Efficiency
CN113312574A (zh) 一种基于区块链的云数据完整性审计方法
CN115208628B (zh) 基于区块链的数据完整性验证方法
CN106487786A (zh) 一种基于生物特征的云数据完整性验证方法及系统
CN112613601A (zh) 神经网络模型更新方法、设备及计算机存储介质
Armknecht et al. Outsourcing proofs of retrievability
Mishra et al. BB-tree based secure and dynamic public auditing convergence for cloud storage
CN109981736B (zh) 一种支持用户与云服务器相互信任的动态公开审计方法
CN109450636B (zh) 一种云存储中群组数据的完整性验证方法
Ren et al. Blockchain‐Based Proof of Retrievability Scheme
CN114826607B (zh) 基于区块链的边缘计算节点压缩方法及轻量级存储系统
CN116527322A (zh) 基于区块链和隐私计算的联合征信方法及装置
CN112887281B (zh) 支持高效审计和多备份密文去重的存储方法、系统及应用
Cui et al. Outsourced privately verifiable proofs of retrievability via blockchain
CN111090840B (zh) 一种利用区块链预注册信息进行用户服务认证的方法
CN104935582B (zh) 大数据存储方法
CN113362065A (zh) 一种基于分散式私钥的在线签名交易实现方法
Hiremath et al. Homomorphic authentication scheme for proof of retrievability with public verifiability
CN111585756A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220328

Address after: Room 821-824, building B2, chuanggu Industrial Park, 568 queyuan Road, Tianxin District, Changsha, Hunan 410000

Applicant after: Yihailang technology development (Changsha) Co.,Ltd.

Address before: Hunan University, No.1, Lushan South Road, Lu District, Changsha City, Hunan Province, 410082

Applicant before: HUNAN University