CN115499249A - 一种基于区块链分布式加密的文件存储方法及系统 - Google Patents

一种基于区块链分布式加密的文件存储方法及系统 Download PDF

Info

Publication number
CN115499249A
CN115499249A CN202211437021.0A CN202211437021A CN115499249A CN 115499249 A CN115499249 A CN 115499249A CN 202211437021 A CN202211437021 A CN 202211437021A CN 115499249 A CN115499249 A CN 115499249A
Authority
CN
China
Prior art keywords
file
private key
nodes
large file
block chain
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
CN202211437021.0A
Other languages
English (en)
Other versions
CN115499249B (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.)
Nanjing Trusted Blockchain And Algorithm Economics Research Institute Co ltd
Original Assignee
Nanjing Trusted Blockchain And Algorithm Economics Research Institute Co ltd
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 Nanjing Trusted Blockchain And Algorithm Economics Research Institute Co ltd filed Critical Nanjing Trusted Blockchain And Algorithm Economics Research Institute Co ltd
Priority to CN202211437021.0A priority Critical patent/CN115499249B/zh
Publication of CN115499249A publication Critical patent/CN115499249A/zh
Application granted granted Critical
Publication of CN115499249B publication Critical patent/CN115499249B/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/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/0442Network 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 asymmetric encryption, i.e. different keys 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种基于区块链分布式加密的文件存储方法及系统,文件存储方法包括:生成待存储的大文件的公钥和私钥;基于预设门限加密算法,构建n个私钥分片,n为节点的数量,其中,私钥可通过至少m个私钥分片进行还原,m为预设门限阈值,m<n;将任一私钥分片随机发送至任一节点,并存储至节点对应的本地数据库模块;利用公钥对大文件进行加密得到加密大文件;将加密大文件切分为至少三个切片小文件;将每个切片小文件随机存储至节点对应的本地数据库模块。如此,通过将私钥分片和切片小文件随机发送至节点,完成对大文件的分布式加密;如果想要再访问大文件需要依次验证私钥、公钥和哈希值,极大地提高了大文件存储的安全性。

Description

一种基于区块链分布式加密的文件存储方法及系统
技术领域
本申请涉及区块链应用领域,特别涉及一种基于区块链分布式加密的文件存储方法及系统。
背景技术
区块链是由多个区块按照生成时间顺序连接形成的链条,其中,每个区块在生成时都存储了一定的信息。区块链通过分布式存储的方法保证其数据的安全性,具体来说,一条区块链同时被保存在多个节点中,一旦想更改某一区块内存储的信息,需要所有节点达成共识才能完成。
节点是为区块链提供存储和算力支持的服务器,包括区块链模块和本地数据库模块。其中,区块链模块联网,用于存储区块链并和其他节点通过网络联通。随着互联网的发展,需要上传区块链存储的占用空间较大的大文件(比如监控视频和图片等)越来越多,但是区块链模块的存储空间有限,如果将这些大文件直接上链,会造成网络的拥塞和区块链模块存储资源的浪费,为此,节点设置本地数据库模块专门用于存储大文件。
参见图1,为现有技术中大文件的存储方法示意图,当需要存储大文件A时,用户通过客户端获取大文件A的哈希值Hash A,再将Hash A上链存储至所有节点,同时将大文件A存储至目标节点的目标本地数据库模块中。然而,一方面本地数据库模块中的大文件A可以被单点删除,另一方面区块链系统中的任一节点都可以凭借Hash A自由访问目标节点,获取并传播大文件A。如此,现有的文件存储方法严重缺乏安全性。
发明内容
本申请提供了一种基于区块链分布式加密的文件存储方法及系统,可用于解决现有的文件存储方法严重缺乏安全性的技术问题。
第一方面,本申请提供一种基于区块链分布式加密的文件存储方法,应用于区块链系统中的客户端,所述区块链系统包括区块链、客户端和多个节点,所述客户端用于执行用户的具体操作,所述节点设置有区块链模块和本地数据库模块,所述区块链模块用于存储所述区块链,所述本地数据库模块用于存储所述节点的本地数据,所述文件存储方法包括:
生成待存储的大文件的公钥和私钥;
基于预设门限加密算法,构建n个私钥分片,所述n为所述节点的数量,其中,所述私钥可通过至少m个私钥分片进行还原,所述m为预设门限阈值,m<n;
将任一私钥分片随机发送至任一节点,并存储至所述节点对应的所述本地数据库模块,其中,所有节点与所有私钥分片为一一对应;
利用所述公钥对所述大文件进行加密,得到加密大文件;
将所述加密大文件切分为至少三个切片小文件;
将每个切片小文件随机发送至K个节点,并存储至所述节点对应的所述本地数据库模块,其中,K=n-m+1。
在第一方面的一种可实现方式中,在所述通过预设算法生成待存储的大文件的公钥和私钥之前,所述文件存储方法还包括:
获取待存储的文件,以及所述文件的占用空间;
判断所述占用空间是否大于或者等于大文件阈值;所述大文件阈值为预先设置的大文件最小占用空间;
如果所述占用空间小于所述大文件阈值,则将所述文件发送至所有节点的所述区块链模块,并上传至所述区块链存储;
如果所述占用空间大于或者等于大文件阈值,则将所述文件确定为所述大文件。
在第一方面的一种可实现方式中,在所述判断所述占用空间是否大于或者等于大文件阈值之前,所述文件存储方法还包括:
获取所述文件的哈希值;
将所述哈希值发送至所有节点的所述区块链模块,并在所有节点达成共识后,将所述哈希值上传至所述区块链进行存储。
在第一方面的一种可实现方式中,所述基于预设门限加密算法,构建n个私钥分片,包括:
根据所述节点的数量和所述预设门限阈值构建门限(m,n);
根据所述私钥和所述门限构建门限多项式:
Figure 702950DEST_PATH_IMAGE001
其中,SK为所述私钥,m为门限阈值,T为有限域中的随机数;
根据所述门限多项式构建私钥分片
Figure 300022DEST_PATH_IMAGE002
,i=1,2,……,n。
在第一方面的一种可实现方式中,所述将任一私钥分片随机发送至任一节点,并存储至所述节点对应的所述本地数据库模块,包括:
获取所述大文件的代号;
将所述代号和所述私钥分片组合为私钥键值对(A,yi);其中,A为所述代号,yi为所述私钥分片;
将每个私钥键值对(A,yi)发送至任一节点,并存储至所述节点对应的所述本地数据库模块。
在第一方面的一种可实现方式中,所述将每个切片小文件随机发送至K个节点,并存储至所述节点对应的所述本地数据库模块,包括:
将所述代号和所述切片小文件组合为文件键值对(A,M_j),0<j<J+1;其中,M_j为所述切片小文件,J为所述切片小文件的个数;
将每个文件键值对(A,M_j)随机发送至至K个节点,并存储至所述节点对应的所述本地数据库模块,其中,K=n-m+1。
在第一方面的一种可实现方式中,在所述将每个切片小文件随机发送至K个节点,并存储至所述节点对应的所述本地数据库模块之后,所述文件存储方法还包括:
所述客户端通过以下步骤访问所述区块链系统中存储的目标大文件:
确定待访问的目标大文件的代号A;
根据所述代号A,从所述区块链系统中获得所有私钥键值对(A,yi),并提取所有私钥分片yi;
利用拉格朗日插值定理,根据所有私钥分片yi获得私钥SK;
根据所述代号A,从所述区块链系统中获得所有文件键值对(A,M_j),并提取所有小文件M_j;
将所有所有小文件M_j组合得到加密大文件M;
利用私钥SK解密加密大文件M,得到目标大文件。
在第一方面的一种可实现方式中,所述利用拉格朗日插值定理,根据所有私钥分片yi获得私钥SK,包括:
根据以下公式获得多项式F(x):
Figure 505875DEST_PATH_IMAGE003
令x=0,将F(0)确定为私钥SK。
在第一方面的一种可实现方式中,在所述利用私钥SK解密加密大文件M,得到目标大文件之后,所述文件存储方法还包括:
所述客户端利用哈希算法提取目标大文件的目标哈希值;
根据所述代号A,从所述区块链系统中获得所述区块链中存储的所述哈希值;
判断所述目标哈希值和所述哈希值是否一致;
如果所述目标哈希值和所述哈希值一致,则所述目标大文件访问正确;
如果所述目标哈希值和所述哈希值不一致,则返回步骤确定待访问的目标大文件的代号A,重新请求访问目标大文件。
第二方面,本申请提供一种基于区块链分布式加密的文件存储系统,所述文件存储系统用于执行第一方面及各种可实现方式中的一种基于区块链分布式加密的文件存储方法,所述文件存储系统包括:
公钥和私钥生成模块,用于生成待存储的大文件的公钥和私钥;
私钥分片构建模块,用于基于预设门限加密算法,构建n个私钥分片,所述n为所述节点的数量,其中,所述私钥可通过至少m个私钥分片进行还原,所述m为预设门限阈值,m<n;
私钥分片存储模块,用于将任一私钥分片随机发送至任一节点,并存储至所述节点对应的所述本地数据库模块,其中,所有节点与所有私钥分片为一一对应;
大文件加密模块,用于利用所述公钥对所述大文件进行加密,得到加密大文件;
加密大文件切片模块,用于将所述加密大文件切分为至少三个切片小文件;
切片小文件存储模块,用于将每个切片小文件随机发送至K个节点,并存储至所述节点对应的所述本地数据库模块,其中,K=n-m+1。
由上述技术方案可知,本申请提供一种基于区块链分布式加密的文件存储方法及系统,所述文件存储方法,应用于区块链系统中的客户端,所述区块链系统包括区块链、客户端和多个节点,所述客户端用于执行用户的具体操作,所述节点设置有区块链模块和本地数据库模块,所述区块链模块用于存储所述区块链,所述本地数据库模块用于存储所述节点的本地数据,其特征在于,所述文件存储方法包括:生成待存储的大文件的公钥和私钥;基于预设门限加密算法,构建n个私钥分片,所述n为所述节点的数量,其中,所述私钥可通过至少m个私钥分片进行还原,所述m为预设门限阈值,m<n;将任一私钥分片随机发送至任一节点,并存储至所述节点对应的所述本地数据库模块,其中,所有节点与所有私钥分片为一一对应;利用所述公钥对所述大文件进行加密,得到加密大文件;将所述加密大文件切分为至少三个切片小文件;将每个切片小文件随机发送至K个节点,并存储至所述节点对应的所述本地数据库模块,其中,K=n-m+1。
如此,通过将私钥分片和切片小文件随机发送至节点,完成对大文件的分布式加密;如果想要再访问大文件需要依次验证私钥、公钥和哈希值,极大地提高了大文件存储的安全性。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中大文件的存储方法示意图;
图2为本申请提供的一种基于区块链分布式加密的文件存储方法所应用的区块链系统示意图;
图3为本申请提供的一种基于区块链分布式加密的文件存储方法的存储流程示意图;
图4为本申请提供的一种基于区块链分布式加密的文件存储方法的大文件判断流程示意图;
图5为本申请提供的一种基于区块链分布式加密的文件存储方法的哈希值上链流程示意图;
图6为本申请提供的一种基于区块链分布式加密的文件存储方法的大文件访问流程示意图;
图7为本申请提供的一种基于区块链分布式加密的文件存储方法的大文件访问验证流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请以下各实施例中,“至少一个”、“一个或多个”是指一个、两个或两个以上,“多个”是指两个或者两个以上。术语“和/或”,用于描述关联对象的关联关系, 表示可以存在三种关系;例如,A 和/或 B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
下面首先介绍本申请提供的一种基于区块链分布式加密的文件存储方法的应用场景。
参见图2,为本申请提供的一种基于区块链分布式加密的文件存储方法所应用的区块链系统示意图;
由图2可知,本申请的文件存储方法应用于如图2所示的区块链系统中的客户端,其中,所述区块链系统包括区块链、客户端和多个节点,所述客户端用于执行用户的具体操作,所述节点是设置在所述区块链系统中的服务器,所述节点设置有区块链模块和本地数据库模块,所述区块链模块用于存储所述区块链,所述本地数据库模块用于存储所述节点的本地数据。
在本申请实施例中,相应步骤的操作通过所述客户端完成,需要存储的部分则发送至所述节点中,并存储在所述节点中对应的模块。其中,所述区块链系统中可以设置多个客户端,所述客户端可以进行数据的存储和查询、生成密钥对以及密钥对的分发、对文件进行加密和解密,对大文件进行切分等功能,其中,密钥对包括公钥和私钥。此外,同一个文件的存储和访问操作可以是不同客户端完成。
在本申请实施例中,所述节点和传统区块链的节点相同,能够进行共识和链式存储,本系统中节点的数量用n表示。
在本申请实施例中,所述本地数据库模块是设置在所述节点中,独立于区块链基本网络架构的独立模块,节点数据库用于存放大文件切分所得到的切片小文件。所述本地数据库模块只能被所在的节点访问,不能被所述区块链系统中的其他节点访问。
本申请第一实施例公开了一种基于区块链分布式加密的文件存储方法,下面结合附图对本申请第一实施例公开的一种基于区块链分布式加密的文件存储方法进行具体说明。
参见图3,为本申请提供的一种基于区块链分布式加密的文件存储方法的存储流程示意图;
由图3可知,本申请第一实施例提供的一种基于区块链分布式加密的文件存储方法包括:
步骤301,生成待存储的大文件的公钥和私钥。
在本申请实施例中,所述公钥和所述私钥可以通过SM2算法生成,也可以通过其他由国家密码局认定的国产密码算法生成。例如,对于大文件A,通过SM2算法生成密钥对(PK,SK),其中,PK为公钥,SK为私钥。
步骤302,基于预设门限加密算法,构建n个私钥分片,所述n为所述节点的数量,其中,所述私钥可通过至少m个私钥分片进行还原,所述m为预设门限阈值,m<n。
在本申请实施例中,构建私钥分片的预设门限加密算法是,当n个节点中有m个私钥分片时,即可重组私钥继而进行解密。这种方法也被称为(m,n)门限加密算法,其中,n为所述区块链系统中的节点的总数,m为预设门限阈值。
因此,在本申请实施例中,所述步骤302包括:
步骤3021,根据所述节点的数量和所述预设门限阈值构建门限(m,n);
步骤3022,根据所述私钥和所述门限构建门限多项式:
Figure 107889DEST_PATH_IMAGE001
,(1)
其中,SK为所述私钥,m为门限阈值,T为有限域中的随机数;
步骤3023,根据所述门限多项式构建私钥分片
Figure 938002DEST_PATH_IMAGE002
,i=1,2,……,n。
在本申请实施例中,采用门限加密法获得多个私钥分片,且只要能找齐m个私钥分片就能还原出原本的私钥,如此,及时所述区块链系统中出现部分节点故障,只要还剩余m个节点正常,就不影响大文件的访问。
步骤303,将任一私钥分片随机发送至任一节点,并存储至所述节点对应的所述本地数据库模块,其中,所有节点与所有私钥分片为一一对应;
在本申请实施例中,所述私钥分片在发送时以键值对的方式进行发送,具体来说,所述步骤303包括:
步骤3031,获取所述大文件的代号A;
步骤3032,将所述代号和所述私钥分片组合为私钥键值对(A,yi);其中,A为所述代号,yi为所述私钥分片;
步骤3033,将每个私钥键值对(A,yi)发送至任一节点,并存储至所述节点对应的所述本地数据库模块。
如此,不同大文件的私钥分片可以凭借代号进行区分,在后续的访问步骤中,也会清晰的找到不同大文件对应的所有私钥分片。
步骤304,利用所述公钥对所述大文件进行加密,得到加密大文件;
步骤305,将所述加密大文件切分为至少三个切片小文件。
在本申请实施例中,利用所述公钥PK对大文件A进行加密,得到加密大文件M,所述客户端在将加密大文件M进行切片,获得J个切片小文件M_1,M_2,M_3,…,M_J,其中J为大于或者等于三的常数。
步骤306,将每个切片小文件随机发送至K个节点,并存储至所述节点对应的所述本地数据库模块,其中,K=n-m+1。
在本申请实施例中,所述切片小文件在发送时以键值对的方式进行发送,具体来说,所述步骤306包括:
步骤3061,将所述代号和所述切片小文件组合为文件键值对(A,M_j),0<j<J+1;其中,M_j为所述切片小文件,J为所述切片小文件的个数;
步骤3062,将每个文件键值对(A,M_j)随机发送至至K个节点,并存储至所述节点对应的所述本地数据库模块,其中,K=n-m+1。
在本申请实施例中,m和n分别是上述(m,n)门限加密中设定的参数,n为系统中节点总数,m为设定的门限阈值;由于本申请只需在n个节点中有m个节点同意解密,就可以得到相应数据,也就是说即使系统中有(n-m)个节点宕机或者被黑客攻破了,本系统依然稳定运行。因此,将每个文件键值对(A,M_j)发送给(n-m+1)个节点后,假如(n-m)个节点宕机,需要把文件切片发给(n-m+1)个节点,以保证至少有一个节点至少还保留有该切片小文件,不会影响后续大文件的访问。
下面介绍本申请实施例在进行大文件存储之前的判断流程。
参见图4,为本申请提供的一种基于区块链分布式加密的文件存储方法的大文件判断流程示意图;
由图4可知,在所述步骤301之前,所述文件存储方法还包括:
步骤401,获取待存储的文件,以及所述文件的占用空间;
步骤402,判断所述占用空间是否大于或者等于大文件阈值;所述大文件阈值为预先设置的大文件最小占用空间;
步骤403,如果所述占用空间小于所述大文件阈值,则将所述文件发送至所有节点的所述区块链模块,并上传至所述区块链存储;
步骤404,如果所述占用空间大于或者等于大文件阈值,则将所述文件确定为所述大文件。
在本申请实施例中,本申请步骤301至步骤306的文件存储方法是适用于大文件存储的,小文件的占用空间小,相应的占用网速也小,因此可以直接上传。
在本申请实施例中,由于大文件和小文件的哈希值都需要上传,因此,对哈希值的获取和上链要在判断流程之前完成。
参见图5,为本申请提供的一种基于区块链分布式加密的文件存储方法的哈希值上链流程示意图;
由图5可知,在所述步骤402之前,所述文件存储方法还包括:
步骤501,获取所述文件的哈希值;
步骤502,将所述哈希值发送至所有节点的所述区块链模块,并在所有节点达成共识后,将所述哈希值上传至所述区块链进行存储。
在本申请实施例中,文件先后通过哈希值上传流程、判断流程和存储流程,完成其在所述区块链系统中的存储。
下面介绍本申请实施例中,对已经完成存储的大文件的访问方法。
参见图6,为本申请提供的一种基于区块链分布式加密的文件存储方法的大文件访问流程示意图;
由图6可知,所述文件存储方法还包括:
所述客户端通过以下步骤访问所述区块链系统中存储的目标大文件:
步骤601,确定待访问的目标大文件的代号A;
步骤602,根据所述代号A,从所述区块链系统中获得所有私钥键值对(A,yi),并提取所有私钥分片yi
步骤603,利用拉格朗日插值定理,根据所有私钥分片yi获得私钥SK;
在本申请实施例中,所述步骤603包括:
根据以下公式获得多项式F(x):
Figure 648469DEST_PATH_IMAGE004
令x=0,将F(0)确定为私钥SK。
步骤604,根据所述代号A,从所述区块链系统中获得所有文件键值对(A,M_j),并提取所有小文件M_j;
步骤605,将所有所有小文件M_j组合得到加密大文件M;
步骤606,利用私钥SK解密加密大文件M,得到目标大文件。
在本申请实施例中,得到所述目标大文件之后,还需要验证所述目标大文件是否是正确的大文件。
参见图7,为本申请提供的一种基于区块链分布式加密的文件存储方法的大文件访问验证流程示意图。
由图7可知,在所述步骤606之后,所述文件存储方法还包括:
步骤701,所述客户端利用哈希算法提取目标大文件的目标哈希值;
步骤702,根据所述代号A,从所述区块链系统中获得所述区块链中存储的所述哈希值;
步骤703,判断所述目标哈希值和所述哈希值是否一致;
步骤704,如果所述目标哈希值和所述哈希值一致,则所述目标大文件访问正确;
步骤705,如果所述目标哈希值和所述哈希值不一致,则返回步骤确定待访问的目标大文件的代号A,重新请求访问目标大文件。
在本申请实施例中,通过验证步骤可以保证访问到最准确的大文件。
由上述技术方案可知,本申请提供一种基于区块链分布式加密的文件存储方法及系统,所述文件存储方法,应用于区块链系统中的客户端,所述区块链系统包括区块链、客户端和多个节点,所述客户端用于执行用户的具体操作,所述节点设置有区块链模块和本地数据库模块,所述区块链模块用于存储所述区块链,所述本地数据库模块用于存储所述节点的本地数据,其特征在于,所述文件存储方法包括:生成待存储的大文件的公钥和私钥;基于预设门限加密算法,构建n个私钥分片,所述n为所述节点的数量,其中,所述私钥可通过至少m个私钥分片进行还原,所述m为预设门限阈值,m<n;将任一私钥分片随机发送至任一节点,并存储至所述节点对应的所述本地数据库模块,其中,所有节点与所有私钥分片为一一对应;利用所述公钥对所述大文件进行加密,得到加密大文件;将所述加密大文件切分为至少三个切片小文件;将每个切片小文件随机发送至K个节点,并存储至所述节点对应的所述本地数据库模块,其中,K=n-m+1。
如此,通过将私钥分片和切片小文件随机发送至节点,完成对大文件的分布式加密;如果想要再访问大文件需要依次验证私钥、公钥和哈希值,极大地提高了大文件存储的安全性。
与本申请第一实施例提供的一种基于区块链分布式加密的文件存储方法相对应,本申请第二实施例提供了一种基于区块链分布式加密的文件存储系统,所述文件存储系统包括:
公钥和私钥生成模块,用于生成待存储的大文件的公钥和私钥;
私钥分片构建模块,用于基于预设门限加密算法,构建n个私钥分片,所述n为所述节点的数量,其中,所述私钥可通过至少m个私钥分片进行还原,所述m为预设门限阈值,m<n;
私钥分片存储模块,用于将任一私钥分片随机发送至任一节点,并存储至所述节点对应的所述本地数据库模块,其中,所有节点与所有私钥分片为一一对应;
大文件加密模块,用于利用所述公钥对所述大文件进行加密,得到加密大文件;
加密大文件切片模块,用于将所述加密大文件切分为至少三个切片小文件;
切片小文件存储模块,用于将每个切片小文件随机发送至K个节点,并存储至所述节点对应的所述本地数据库模块,其中,K=n-m+1。
上述装置在执行方法过程中的作用效果可参见上述方法中的说明,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段;说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变;本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种基于区块链分布式加密的文件存储方法,应用于区块链系统中的客户端,所述区块链系统包括区块链、客户端和多个节点,所述客户端用于执行用户的具体操作,所述节点设置有区块链模块和本地数据库模块,所述区块链模块用于存储所述区块链,所述本地数据库模块用于存储所述节点的本地数据,其特征在于,所述文件存储方法包括:
生成待存储的大文件的公钥和私钥;
基于预设门限加密算法,构建n个私钥分片,所述n为所述节点的数量,其中,所述私钥可通过至少m个私钥分片进行还原,所述m为预设门限阈值,m<n;
将任一私钥分片随机发送至任一节点,并存储至所述节点对应的所述本地数据库模块,其中,所有节点与所有私钥分片为一一对应;
利用所述公钥对所述大文件进行加密,得到加密大文件;
将所述加密大文件切分为至少三个切片小文件;
将每个切片小文件随机发送至K个节点,并存储至所述节点对应的所述本地数据库模块,其中,K=n-m+1。
2.根据权利要求1所述的一种基于区块链分布式加密的文件存储方法,其特征在于,在所述通过预设算法生成待存储的大文件的公钥和私钥之前,所述文件存储方法还包括:
获取待存储的文件,以及所述文件的占用空间;
判断所述占用空间是否大于或者等于大文件阈值;所述大文件阈值为预先设置的大文件最小占用空间;
如果所述占用空间小于所述大文件阈值,则将所述文件发送至所有节点的所述区块链模块,并上传至所述区块链存储;
如果所述占用空间大于或者等于大文件阈值,则将所述文件确定为所述大文件。
3.根据权利要求2所述的一种基于区块链分布式加密的文件存储方法,其特征在于,在所述判断所述占用空间是否大于或者等于大文件阈值之前,所述文件存储方法还包括:
获取所述文件的哈希值;
将所述哈希值发送至所有节点的所述区块链模块,并在所有节点达成共识后,将所述哈希值上传至所述区块链进行存储。
4.根据权利要求1所述的一种基于区块链分布式加密的文件存储方法,其特征在于,所述基于预设门限加密算法,构建n个私钥分片,包括:
根据所述节点的数量和所述预设门限阈值构建门限(m,n);
根据所述私钥和所述门限构建门限多项式:
Figure 902934DEST_PATH_IMAGE001
其中,SK为所述私钥,m为门限阈值,T为有限域中的随机数;
根据所述门限多项式构建私钥分片
Figure 210156DEST_PATH_IMAGE002
,i=1,2,……,n。
5.根据权利要求4所述的一种基于区块链分布式加密的文件存储方法,其特征在于,所述将任一私钥分片随机发送至任一节点,并存储至所述节点对应的所述本地数据库模块,包括:
获取所述大文件的代号;
将所述代号和所述私钥分片组合为私钥键值对(A,yi);其中,A为所述代号,yi为所述私钥分片;
将每个私钥键值对(A,yi)发送至任一节点,并存储至所述节点对应的所述本地数据库模块。
6.根据权利要求5所述的一种基于区块链分布式加密的文件存储方法,其特征在于,所述将每个切片小文件随机发送至K个节点,并存储至所述节点对应的所述本地数据库模块,包括:
将所述代号和所述切片小文件组合为文件键值对(A,M_j),0<j<J+1;其中,M_j为所述切片小文件,J为所述切片小文件的个数;
将每个文件键值对(A,M_j)随机发送至至K个节点,并存储至所述节点对应的所述本地数据库模块,其中,K=n-m+1。
7.根据权利要求6所述的一种基于区块链分布式加密的文件存储方法,其特征在于,在所述将每个切片小文件随机发送至K个节点,并存储至所述节点对应的所述本地数据库模块之后,所述文件存储方法还包括:
所述客户端通过以下步骤访问所述区块链系统中存储的目标大文件:
确定待访问的目标大文件的代号A;
根据所述代号A,从所述区块链系统中获得所有私钥键值对(A,yi),并提取所有私钥分片yi
利用拉格朗日插值定理,根据所有私钥分片yi获得私钥SK;
根据所述代号A,从所述区块链系统中获得所有文件键值对(A,M_j),并提取所有小文件M_j;
将所有所有小文件M_j组合得到加密大文件M;
利用私钥SK解密加密大文件M,得到目标大文件。
8.根据权利要求7所述的一种基于区块链分布式加密的文件存储方法,其特征在于,所述利用拉格朗日插值定理,根据所有私钥分片yi获得私钥SK,包括:
根据以下公式获得多项式F(x):
Figure 613455DEST_PATH_IMAGE003
令x=0,将F(0)确定为私钥SK。
9.根据权利要求7所述的一种基于区块链分布式加密的文件存储方法,其特征在于,在所述利用私钥SK解密加密大文件M,得到目标大文件之后,所述文件存储方法还包括:
所述客户端利用哈希算法提取目标大文件的目标哈希值;
根据所述代号A,从所述区块链系统中获得所述区块链中存储的所述哈希值;
判断所述目标哈希值和所述哈希值是否一致;
如果所述目标哈希值和所述哈希值一致,则所述目标大文件访问正确;
如果所述目标哈希值和所述哈希值不一致,则返回步骤确定待访问的目标大文件的代号A,重新请求访问目标大文件。
10.一种基于区块链分布式加密的文件存储系统,其特征在于,用于执行如权利要求1-9任意一项所述的一种基于区块链分布式加密的文件存储方法,所述文件存储系统包括:
公钥和私钥生成模块,用于生成待存储的大文件的公钥和私钥;
私钥分片构建模块,用于基于预设门限加密算法,构建n个私钥分片,所述n为所述节点的数量,其中,所述私钥可通过至少m个私钥分片进行还原,所述m为预设门限阈值,m<n;
私钥分片存储模块,用于将任一私钥分片随机发送至任一节点,并存储至所述节点对应的所述本地数据库模块,其中,所有节点与所有私钥分片为一一对应;
大文件加密模块,用于利用所述公钥对所述大文件进行加密,得到加密大文件;
加密大文件切片模块,用于将所述加密大文件切分为至少三个切片小文件;
切片小文件存储模块,用于将每个切片小文件随机发送至K个节点,并存储至所述节点对应的所述本地数据库模块,其中,K=n-m+1。
CN202211437021.0A 2022-11-17 2022-11-17 一种基于区块链分布式加密的文件存储方法及系统 Active CN115499249B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211437021.0A CN115499249B (zh) 2022-11-17 2022-11-17 一种基于区块链分布式加密的文件存储方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211437021.0A CN115499249B (zh) 2022-11-17 2022-11-17 一种基于区块链分布式加密的文件存储方法及系统

Publications (2)

Publication Number Publication Date
CN115499249A true CN115499249A (zh) 2022-12-20
CN115499249B CN115499249B (zh) 2023-04-07

Family

ID=85115954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211437021.0A Active CN115499249B (zh) 2022-11-17 2022-11-17 一种基于区块链分布式加密的文件存储方法及系统

Country Status (1)

Country Link
CN (1) CN115499249B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115987513A (zh) * 2023-03-17 2023-04-18 山东浪潮科学研究院有限公司 分布式数据库分片加密、解密方法、装置、设备及介质
CN117040929A (zh) * 2023-10-08 2023-11-10 腾讯科技(深圳)有限公司 一种访问处理方法、装置、设备、介质及程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109886040A (zh) * 2019-01-24 2019-06-14 北京融链科技有限公司 数据处理方法、装置、存储介质及处理器
CN111723387A (zh) * 2020-06-22 2020-09-29 深圳前海微众银行股份有限公司 一种基于区块链的数据解密的方法及装置
CN112182609A (zh) * 2020-09-25 2021-01-05 中国建设银行股份有限公司 基于区块链的数据上链存储方法和追溯方法、装置及设备
WO2022088807A1 (zh) * 2020-10-30 2022-05-05 深圳壹账通智能科技有限公司 基于区块链的分布式文件存储方法、系统、服务器及客户端

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114499894B (zh) * 2022-04-01 2022-09-09 南京金宁汇科技有限公司 区块链网络中的文件存储、读取方法及存储读取系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109886040A (zh) * 2019-01-24 2019-06-14 北京融链科技有限公司 数据处理方法、装置、存储介质及处理器
CN111723387A (zh) * 2020-06-22 2020-09-29 深圳前海微众银行股份有限公司 一种基于区块链的数据解密的方法及装置
CN112182609A (zh) * 2020-09-25 2021-01-05 中国建设银行股份有限公司 基于区块链的数据上链存储方法和追溯方法、装置及设备
WO2022088807A1 (zh) * 2020-10-30 2022-05-05 深圳壹账通智能科技有限公司 基于区块链的分布式文件存储方法、系统、服务器及客户端

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115987513A (zh) * 2023-03-17 2023-04-18 山东浪潮科学研究院有限公司 分布式数据库分片加密、解密方法、装置、设备及介质
CN117040929A (zh) * 2023-10-08 2023-11-10 腾讯科技(深圳)有限公司 一种访问处理方法、装置、设备、介质及程序产品
CN117040929B (zh) * 2023-10-08 2024-01-26 腾讯科技(深圳)有限公司 一种访问处理方法、装置、设备、介质及程序产品

Also Published As

Publication number Publication date
CN115499249B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
CN110224986B (zh) 一种基于隐藏策略cp-abe的高效可搜索访问控制方法
US11036861B2 (en) Host attestation
Michalas The lord of the shares: Combining attribute-based encryption and searchable encryption for flexible data sharing
CN115499249B (zh) 一种基于区块链分布式加密的文件存储方法及系统
US20210111875A1 (en) Secure shared key establishment for peer to peer communications
US10659468B2 (en) Access control values
US11811950B1 (en) Dynamic response signing capability in a distributed system
CN104735164A (zh) 一种保存文件信息的方法和装置
US20230254129A1 (en) Key management for multi-party computation
Shen et al. An effective integrity check scheme for secure erasure code-based storage systems
CN110688666B (zh) 一种分布式存储中数据加密保存方法
US11063917B2 (en) Communication network with rolling encryption keys and data exfiltration control
US20110154015A1 (en) Method For Segmenting A Data File, Storing The File In A Separate Location, And Recreating The File
Erkin et al. Privacy-preserving user clustering in a social network
CN110784318B (zh) 群密钥更新方法、装置、电子设备、存储介质及通信系统
Amanullah et al. An Effective double verification-based method for certifying information safety in cloud computing
CN114389878B (zh) 一种区块链分片方法及区块链网络系统
JP2019121999A (ja) データ共有方法、データ共有システム、通信端末、データ共有サーバ、プログラム
Kumar et al. Hash based approach for providing privacy and integrity in cloud data storage using digital signatures
Hegde et al. Secure search scheme for encrypted data in the VANET cloud with random query trapdoor
CN114826614B (zh) 一种可认证密码库文件分布式存储方法、装置和电子设备
US11888971B2 (en) Sharing access to data externally
KR102629617B1 (ko) 속성 기반 접근 제어를 지원하는 실시간 IoT 데이터 공유 시스템 및 그 방법
Prakash et al. Data verification using block level batch auditing on multi-cloud server
Dave et al. RESIST: Randomized Encryption for Deduplicated Cloud Storage System

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