本技术涉及区块链,尤其涉及数据的可用性验证方法、装置、设备以及计算机程序产品。
背景技术:
1、通过加密算法将数据存储在云盘,加密数据免受未经授权的访问和泄露。在数据被写入云盘时对其进行加密,并确保数据在未授权情况下无法被访问或解密,即使云盘数据泄露也无法解密,并在授权用户读取云盘数据时自动解密,从而确保云盘数据的机密性和完整性。
2、由于目前在云盘数据存储系统中,往往缺乏定期抽查数据的机制。这意味着用户存储的数据在没有得到定期检查和验证的情况下,其完整性和可用性无法得到充分保障,并且不能保证存储的数据随时在线,因此需要一种方法保证用户存储的数据一直在线可读取。同时,存储数据的云盘有的时候云出现故障,用户也不知道存储的数据已经不能访问,所以需要定期抽查数据是否被有效保存,保证可以在线访问。
3、上述内容仅用于辅助理解本技术的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本技术的主要目的在于提供一种数据的可用性验证方法、装置、设备以及计算机程序产品,旨在解决云盘数据无法一直在线可访问的技术问题。
2、为实现上述目的,本技术提出一种数据的可用性验证方法,所述方法应用于存储节点,所述的方法包括:
3、接收客户端发送的用户数据,对所述用户数据进行分片加密,得到所述用户数据的第一默克尔数据,将所述第一默克尔数据发送至抽查验证端;
4、接收所述抽查验证端发送的加密随机数,根据所述加密随机数和所述第一默克尔数据得到目标验证参数,将所述目标验证参数发送至所述抽查验证端,由所述抽查验证端对所述目标验证参数进行参数验证,得到所述用户数据的访问验证结果。
5、在一实施例中,所述对所述用户数据进行分片加密,得到所述用户数据的第一默克尔数据的步骤包括:
6、对所述用户数据进行填充切分,得到所述用户数据的分片数据块;
7、通过第一加密算法对所述分片数据块进行加密,得到所述用户数据的分片加密数据;
8、通过第二加密算法对所述分片加密数据进行再加密,得到所述分片加密数据的第一默克尔数据。
9、在一实施例中,所述根据所述加密随机数和所述第一默克尔数据得到目标验证参数的步骤包括:
10、通过所述存储节点的私钥对所述加密随机数进行签名,得到所述加密随机数的签名随机数;
11、对所述签名随机数进行取模,确定所述分片加密数据中的上传数据块;
12、通过第二加密算法对所述签名随机数进行计算,得到所述签名随机数的第二默克尔数据;
13、基于所述第一默克尔数据和所述第二默克尔数据构建默克尔证明树,计算所述默克尔证明树的默克尔证明树根和所述第二默克尔数据的默克尔证明路径;
14、基于所述签名随机数、上传数据块、默克尔证明树根、默克尔证明路径以及存储节点的公钥,得到所述分片加密数据的目标验证参数。
15、在一实施例中,所述方法应用于客户端,所述方法包括:
16、获取用户的用户数据;
17、将所述用户数据发送至存储节点,由所述存储节点对所述用户数据进行分片加密,得到所述用户数据的第一默克尔数据,将所述第一默克尔数据发送至抽查验证端,由所述存储节点接收所述抽查验证端发送的加密随机数,根据所述加密随机数和第一默克尔数据得到目标验证参数,将所述目标验证参数发送至所述抽查验证端,由所述抽查验证端对所述目标验证参数进行参数验证,得到所述用户数据的访问验证结果。
18、在一实施例中,所述方法应用于抽查验证端,所述方法包括:
19、接收存储节点发送的第一默克尔数据,所述第一默克尔数据由客户端获取用户的用户数据,将所述用户数据发送至存储节点,由所述存储节点对所述用户数据进行分片加密得到;
20、向存储节点周期性发送加密随机数,由所述存储节点根据所述加密随机数和第一默克尔数据得到目标验证参数,将所述目标验证参数发送至抽查验证端;
21、接收所述存储节点发送的目标验证参数,对所述目标验证参数和所述第一默克尔数据进行参数验证,得到所述用户数据的访问验证结果。
22、在一实施例中,所述对所述目标验证参数和所述第一默克尔数据进行参数验证,得到所述用户数据的访问验证结果的步骤包括:
23、通过存储节点的公钥对签名随机数进行验证,得到所述签名随机数的第一验证结果;
24、基于所述签名随机数确定所述第一默克尔数据中的待证数据块,对所述待证数据块和上传数据块进行验证,得到所述上传数据块的第二验证结果;
25、通过第二加密算法对所述签名随机数进行计算,得到所述签名随机数的第三默克尔数据;
26、基于所述第一默克尔树和所述第三默克尔树构建默克尔验证树,计算所述默克尔验证树的默克尔验证树根;
27、将所述默克尔验证树根和默克尔证明树根进行比对验证,得到所述默克尔验证树根的第三验证结果;
28、对所述第三默克尔数据、默克尔证明树根以及默克尔证明路径进行哈希验证,得到所述第三默克尔数据的第四验证结果;
29、基于所述第一验证结果、第二验证结果、第三验证结果以及第四验证结果,得到所述用户数据的访问验证结果。
30、在一实施例中,所述基于所述第一验证结果、第二验证结果、第三验证结果以及第四验证结果,得到所述用户数据的访问验证结果的步骤包括:
31、若所述第一验证结果、第二验证结果、第三验证结果以及第四验证结果中至少一个验证结果为验证不通过,则所述用户数据的访问验证结果为验证不通过;
32、若所述第一验证结果、第二验证结果、第三验证结果以及第四验证结果都验证通过,则所述用户数据的访问验证结果为验证通过。
33、此外,为实现上述目的,本技术还提出一种数据的可用性验证装置,所述数据的可用性验证装置包括:
34、数据接收模块,用于接收客户端发送的用户数据,对所述用户数据进行分片加密,得到所述用户数据的第一默克尔数据,将所述第一默克尔数据发送至抽查验证端;
35、参数生成模块,用于接收所述抽查验证端发送的加密随机数,根据所述加密随机数和所述第一默克尔数据得到目标验证参数,将所述目标验证参数发送至所述抽查验证端,由所述抽查验证端对所述目标验证参数进行参数验证,得到所述用户数据的访问验证结果。
36、此外,为实现上述目的,本技术还提出一种数据的可用性验证设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的数据的可用性验证方法的步骤。
37、此外,为实现上述目的,本技术还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的数据的可用性验证方法的步骤。
38、此外,为实现上述目的,本技术还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的数据的可用性验证方法的步骤。
39、本技术提出的一个或多个技术方案,至少具有以下技术效果:
40、本技术实施例提出的一种数据的可用性验证方法、装置、设备以及计算机程序产品,通过接收客户端发送的用户数据,对所述用户数据进行分片加密,得到所述用户数据的第一默克尔数据,将所述第一默克尔数据发送至抽查验证端;接收所述抽查验证端发送的加密随机数,根据所述加密随机数和所述第一默克尔数据得到目标验证参数,将所述目标验证参数发送至所述抽查验证端,由所述抽查验证端对所述目标验证参数进行参数验证,得到所述用户数据的访问验证结果。通过对用户数据进行加密验证,得到用户数据的访问验证结果,解决了在云盘数据不能保证一直在线可读取的问题,提升了用户数据存储的安全性。