CN114461592A - 基于区块链的文件存储方法及系统、存储介质 - Google Patents

基于区块链的文件存储方法及系统、存储介质 Download PDF

Info

Publication number
CN114461592A
CN114461592A CN202111641422.3A CN202111641422A CN114461592A CN 114461592 A CN114461592 A CN 114461592A CN 202111641422 A CN202111641422 A CN 202111641422A CN 114461592 A CN114461592 A CN 114461592A
Authority
CN
China
Prior art keywords
client
file
key
decryption key
decryption
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.)
Pending
Application number
CN202111641422.3A
Other languages
English (en)
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN202111641422.3A priority Critical patent/CN114461592A/zh
Publication of CN114461592A publication Critical patent/CN114461592A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • 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/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/602Providing cryptographic facilities or services
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • 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/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Abstract

本申请公开了一种基于区块链的文件存储方法及系统、存储介质和计算机设备。方法包括:第一客户端生成第一加密密钥及第一解密密钥,利用第一加密密钥加密共享文件;将加密后共享文件上传至存储网络,获取文件路径;证书颁发中心生成第二加密密钥及第二解密密钥;将第二加密密钥发送至第一客户端,第二解密密钥发送至第二客户端;第一客户端利用第二加密密钥加密第一解密密钥,将文件路径及加密后第一解密密钥上传至区块链;第二客户端获取文件路径及加密后第一解密密钥,利用第二解密密钥解密加密后第一解密密钥;根据文件路径获取加密后共享文件,利用第一解密密钥解密加密后共享文件。本申请的方法,存储的稳定性高,可以实现文件的定向分享。

Description

基于区块链的文件存储方法及系统、存储介质
技术领域
本申请涉及基于计算机技术领域,尤其是涉及到一种基于区块链的文件存储方法及系统、存储介质和计算机设备。
背景技术
传统的文件存储方式是基于中心式服务器的存储,维护工作量大且稳定性较差,并且传统的文件存储方式缺少文件分享定向功能,无法分享给特定用户。
发明内容
有鉴于此,本申请提供了一种基于区块链的文件存储方法及系统、存储介质和计算机设备,有助于提高文件存储的稳定性,同时可以实现文件的定向存储。
根据本申请的一个方面,提供了一种基于区块链的文件存储方法方法,包括:
第一客户端随机生成第一加密密钥以及第一解密密钥,并利用所述第一加密密钥加密共享文件;
所述第一客户端将加密后的共享文件上传至存储网络中,并获取所述加密后的共享文件在所述存储网络中的文件路径;
证书颁发中心随机生成第二加密密钥以及多个第二解密密钥,其中所述多个第二解密密钥与多个第二客户端一一对应;
所述证书颁发中心将所述第二加密密钥发送至所述第一客户端,将所述第二解密密钥发送至所述第二客户端;
所述第一客户端利用所述第二加密密钥加密所述第一解密密钥,并将所述文件路径以及加密后的第一解密密钥上传至区块链中;
所述第二客户端在所述区块链中获取所述文件路径以及所述加密后的第一解密密钥,并利用所述第二解密密钥解密所述加密后的第一解密密钥,得到所述第一解密密钥;
所述第二客户端根据所述文件路径,在所述存储网络中获取所述加密后的共享文件,并利用所述第一解密密钥解密所述加密后的共享文件,得到所述共享文件。
可选地,所述第一客户端随机生成第一加密密钥以及第一解密密钥,并利用所述第一加密密钥加密共享文件,具体包括:
所述第一客户端随机生成所述第一解密密钥;
所述第一客户端采用椭圆加密法生成与所述第一解密密钥对应的所述第一加密密钥;
所述第一客户端采用所述椭圆加密法,利用所述第一加密密钥加密所述共享文件。
可选地,所述证书颁发中心随机生成第二加密密钥以及多个第二解密密钥,其中所述多个第二解密密钥与多个第二客户端一一对应,具体包括:
所述证书颁发中心随机生成所述第二加密密钥;
所述证书颁发中心根据所述第一客户端发送的定向分享策略,确定至少一个目标属性;
若所述第二客户端具有所述目标属性,则所述证书颁发中心生成与所述第二客户端对应的第二解密密钥。
可选地,所述方法还包括:
所述证书颁发中心根据所述目标属性建立每个所述第二客户端对应的第二客户端凭证,并根据所述第二客户端凭证建立第二客户端集合,其中,所述第二客户端集合包括由第二客户端代码以及所述第二客户端凭证组成的键值对;
所述证书颁发中心根据所述至少一个目标属性建立属性集合,其中,所述属性集合包括由目标属性编码以及属性撤销标识组成的键值对;
在所述利用所述第二解密密钥解密所述加密后的第一解密密钥之前,还包括:
所述第二客户端利用所述第二客户端凭证以及所述属性撤销标识,验证所述第二客户端的权限是否被撤销;
若被撤销,则解密结束。
可选地,所述方法还包括:
所述证书颁发中心解析撤销指令,得到待撤销第二客户端;
所述证书颁发中心在所述第二客户端集合中查找所述待撤销第二客户端对应的待撤销第二客户端凭证;
所述证书颁发中心在所述属性集合中查找所述待撤销第二客户端的待撤销目标属性对应的属性撤销标识;
根据所述待撤销第二客户端凭证更新所述待撤销目标属性对应的属性撤销标识。
可选地,所述第一客户端采用椭圆加密法生成与所述第一解密密钥对应的所述第一加密密钥,具体包括:
在椭圆上确定基点G,并生成与所述第一解密密钥k对应的所述第一加密密钥K,其中K=kG;
所述第一客户端采用所述椭圆加密法,利用所述第一加密密钥加密所述共享文件,具体包括:
利用随机数r、所述基点G以及所述第一加密密钥K,将编码至椭圆上的共享文件M加密,得到加密后的共享文件C,其中C={C1,C2}={M+rK,rG};
所述利用所述第一解密密钥解密所述加密后的共享文件,具体包括:
利用所述加密后的共享文件C,根据M=C1-kC2,得到所述编码至椭圆上的共享文件M,并对所述编码至椭圆上的共享文件M进行解码得到所述共享文件。
可选地,所述文件路径为所述文件在所述网络存储中的哈希地址。
根据本申请的另一方面,提供了一种基于区块链的文件存储系统,包括:
第一加密模块,用于随机生成第一加密密钥以及第一解密密钥,并利用所述第一加密密钥加密共享文件;
第一上传模块,用于将加密后的共享文件上传至存储网络中,并获取所述加密后的共享文件在所述存储网络中的文件路径;
密钥生成模块,用于随机生成第二加密密钥以及多个第二解密密钥,其中所述多个第二解密密钥与多个第二客户端一一对应;
第二上传模块,用于将所述第二加密密钥发送至所述第一客户端,将所述第二解密密钥发送至所述第二客户端;
第二加密模块,用于利用所述第二加密密钥加密所述第一解密密钥,并将所述文件路径以及加密后的第一解密密钥上传至区块链中;
第一解密模块,用于在所述区块链中获取所述文件路径以及所述加密后的第一解密密钥,并利用所述第二解密密钥解密所述加密后的第一解密密钥,得到所述第一解密密钥;
第二解密模块,用于根据所述文件路径,在所述存储网络中获取所述加密后的共享文件,并利用所述第一解密密钥解密所述加密后的共享文件,得到所述共享文件。
可选地,所述第一加密模块,具体用于:
所述第一客户端随机生成所述第一解密密钥;
所述第一客户端采用椭圆加密法生成与所述第一解密密钥对应的所述第一加密密钥;
所述第一客户端采用所述椭圆加密法,利用所述第一加密密钥加密所述共享文件。
可选地,所述密钥生成模块,具体用于:
所述证书颁发中心随机生成所述第二加密密钥;
所述证书颁发中心根据所述第一客户端发送的定向分享策略,确定至少一个目标属性;
若所述第二客户端具有所述目标属性,则所述证书颁发中心生成与所述第二客户端对应的第二解密密钥。
可选地,所述密钥生成模块,还用于:
所述证书颁发中心根据所述目标属性建立每个所述第二客户端对应的第二客户端凭证,并根据所述第二客户端凭证建立第二客户端集合,其中,所述第二客户端集合包括由第二客户端代码以及所述第二客户端凭证组成的键值对;
所述证书颁发中心根据所述至少一个目标属性建立属性集合,其中,所述属性集合包括由目标属性编码以及属性撤销标识组成的键值对;
所述第一解密模块,还用于:
所述第二客户端利用所述第二客户端凭证以及所述属性撤销标识,验证所述第二客户端的权限是否被撤销;
若被撤销,则解密结束。
可选地,所述密钥生成模块还用于:
所述证书颁发中心解析撤销指令,得到待撤销第二客户端;
所述证书颁发中心在所述第二客户端集合中查找所述待撤销第二客户端对应的待撤销第二客户端凭证;
所述证书颁发中心在所述属性集合中查找所述待撤销第二客户端的待撤销目标属性对应的属性撤销标识;
根据所述待撤销第二客户端凭证更新所述待撤销目标属性对应的属性撤销标识。
可选地,所述第一加密模块,具体用于:
在椭圆上确定基点G,并生成与所述第一解密密钥k对应的所述第一加密密钥K,其中K=kG;
利用随机数r、所述基点G以及所述第一加密密钥K,将编码至椭圆上的共享文件M加密,得到加密后的共享文件C,其中C={C1,C2}={M+rK,rG};
所述第二解密模块,具体用于:
利用所述加密后的共享文件C,根据M=C1-kC2,得到所述编码至椭圆上的共享文件M,并对所述编码至椭圆上的共享文件M进行解码得到所述共享文件。
可选地,所述文件路径为所述文件在所述网络存储中的哈希地址。
根据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述基于区块链的文件存储方法。
根据本申请再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于区块链的文件存储方法。
借由上述技术方案,本申请的第一客户端将加密后的共享文件存放在存储网络中,将加密后的共享文件在存储网络中的文件路径以及加密后的第一解密密钥存放在区块链中;而第二客户端从区块链中获取文件路径以及加密后的第一解密密钥,根据文件路径获取加密后的共享文件,并对加密后的第一解密密钥进行解密,得到第一解密密钥,最后利用第一解密密钥得到解密后的共享文件。本申请将第一解密密钥加密,只有满足要求的第二客户端才可以进行解密操作,得到第一解密密钥,因此只有满足要求的第二客户端才可以解密共享文件。本申请将共享文件上传至存储网络,通过共享文件以及第一解密密钥的双重加密,在提高了存储稳定性的基础上,同时实现了文件加密以及文件的定向分享。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种基于区块链的文件存储方法的流程示意图;
图2示出了本申请实施例提供的另一种基于区块链的文件存储方法的流程示意图;
图3示出了本申请实施例提供的另一种基于区块链的文件存储方法的流程示意图;
图4示出了本申请实施例提供的另一种基于区块链的文件存储方法的流程示意图;
图5示出了本申请实施例提供的一种基于区块链的文件存储系统的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在本实施例中提供了一种基于区块链的文件存储方法,如图1所示,该方法包括:
步骤101,第一客户端随机生成第一加密密钥以及第一解密密钥,并利用第一加密密钥加密共享文件;
本申请实施例提供的基于区块链的文件存储方法,可以限制文件的访问权限,因此可以在存储共享文件之前,首先对共享文件进行加密。
具体地,可以利用第一客户端随机生成第一加密密钥,以及与第一加密密钥对应的第一解密密钥,并利用第一加密密钥对共享文件进行加密。其中,第一加密密钥为公钥,可以对共享文件进行加密;而第一解密密钥为私钥,可以对公钥加密后的共享文件进行解密。
在该实施例中,第一加密密钥以及第一解密密钥可以根据RSA(Ron Rivest,AdiShamir,LeonardAdleman)算法、ECC(Elliptic Curves Cryptography)算法等加密算法生成,在此不做限定。
步骤102,第一客户端将加密后的共享文件上传至存储网络中,并获取加密后的共享文件在存储网络中的文件路径;
在该实施例中,将利用第一加密密钥加密后的共享文件上传至存储网络,并获取该共享文件在存储网络中的位置,作为共享文件的文件路径,通过文件路径即可访问加密后的共享文件。
进一步地,存储网络由两个部分组成,加密后的第一解密秘钥以及文件路径存储在区块链网络中,加密后的共享文件存储在文件存储网络中,其中,文件存储网络采用分布式的存储方式。
步骤103,证书颁发中心随机生成第二加密密钥以及多个第二解密密钥,其中多个第二解密密钥与多个第二客户端一一对应;
在该实施例中,证书颁发中心随机生成第二加密密钥,以及与第二加密密钥对应的第二解密密钥。其中,第二加密密钥为公钥,而第二解密密钥为私钥。
可选地,第二解密秘钥可以为一个或多个。
步骤104,证书颁发中心将第二加密密钥发送至第一客户端,将第二解密密钥发送至第二客户端;
在该实施例中,证书颁发中心分别将第二加密秘钥以及第二解密秘钥发送至第一客户端和第二客户端,从而使第一客户端可以利用第二加密秘钥执行加密操作,而第二客户端可以利用第二解密秘钥执行解密操作,将第一客户端加密的文件解密。
步骤105,第一客户端利用第二加密密钥加密第一解密密钥,并将文件路径以及加密后的第一解密密钥上传至区块链中;
在该实施例中,第一客户端利用第二加密秘钥加密第一解密秘钥,得到加密后的第一解密秘钥,此时加密后的第一解密秘钥只能被第二解密秘钥解密,从而保证没有第二解密秘钥的第二客户端无法解密得到第一解密秘钥,因而无法利用第一解密秘钥解密得到共享文件。
进一步地,将文件路径以及加密后的第一解密秘钥上传至区块链中,由于区块链具有不可篡改的特性,因此可以保证文件路径和加密后的第一解密秘钥不会被恶意篡改。同时由于区块链具有开放的特性,因此每个第二客户端都可以获取文件路径以及加密后的第一解密秘钥。
步骤106,第二客户端在区块链中获取文件路径以及加密后的第一解密密钥,并利用第二解密密钥解密加密后的第一解密密钥,得到第一解密密钥;
在该实施例中,由于区块链具有开放的特性,因此第二客户端可以在区块链中获取文件路径和加密后的第一解密秘钥。之后第二客户端利用与第二加密秘钥相对应的第二解密秘钥,对被第二加密秘钥加密后的第一解密秘钥进行解密操作,得到第一解密秘钥。
步骤107,第二客户端根据文件路径,在存储网络中获取加密后的共享文件,并利用第一解密密钥解密加密后的共享文件,得到共享文件。
在该实施例中,在获取到文件路径后,第二客户端根据文件路径获取加密后的共享文件。之后第二客户端利用与第一加密秘钥相对应的第一解密秘钥,对被第一加密秘钥加密后的共享文件进行解密操作,得到共享文件。
通过应用本实施例的技术方案,第一客户端将加密后的共享文件存放在存储网络中,将加密后的共享文件在存储网络中的文件路径以及加密后的第一解密密钥存放在区块链中;而第二客户端从区块链中获取文件路径以及加密后的第一解密密钥,根据文件路径获取加密后的共享文件,并对加密后的第一解密密钥进行解密,得到第一解密密钥,最后利用第一解密密钥得到解密后的共享文件。本申请将第一解密密钥加密,只有满足要求的第二客户端才可以进行解密操作,得到第一解密密钥,因此只有满足要求的第二客户端才可以解密共享文件。本申请将共享文件上传至存储网络,通过共享文件以及第一解密密钥的双重加密,在提高了存储稳定性的基础上,同时实现了文件加密以及文件的定向分享。
进一步地,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,提供了另一种基于区块链的文件存储方法,如图2所示,在该方法中,第一客户端随机生成第一加密密钥以及第一解密密钥,并利用第一加密密钥加密共享文件,具体包括:
步骤201,第一客户端随机生成第一解密密钥;
步骤202,第一客户端采用椭圆加密法生成与第一解密密钥对应的第一加密密钥;
步骤203,第一客户端采用椭圆加密法,利用第一加密密钥加密共享文件。
在该实施例中,第一客户端利用椭圆加密法也即ECC(Elliptic CurvesCryptography)算法生成与第一解密秘钥对应的第一加密秘钥,并利用第一加密秘钥加密共享文件,得到加密后的共享文件。其中,椭圆加密法是基于椭圆曲线数学理论实现的一种非对称加密算法。
进一步地,如图3所示,在另一种基于区块链的文件存储方法中,证书颁发中心随机生成第二加密密钥以及多个第二解密密钥,其中多个第二解密密钥与多个第二客户端一一对应,具体包括:
步骤301,证书颁发中心随机生成第二加密密钥;
步骤302,证书颁发中心根据第一客户端发送的定向分享策略,确定至少一个目标属性;
在该实施例中,由第一客户端根据实际需求发送定向分享策略,证书颁发机构根据定向分享策略确定至少一个目标属性。其中,具有目标属性的第二客户端即为第一客户端的分享对象,第一客户端认为该第二客户端可以访问共享文件。
例如,第一客户端发送定向分享策略“共享文件仅限信息学院内部查阅”,证书颁发机构可以相应地确定目标属性“隶属于信息学院”。此时,第一客户端认为,只有隶属于信息学院的第二客户端才可以访问共享共享文件。
步骤303,若第二客户端具有目标属性,则证书颁发中心生成与第二客户端对应的第二解密密钥。
在该实施例中,如果第二客户端具有目标属性,那么可以认为第一客户端允许该第二客户端访问共享文件。此时可以由证书颁发机构利用属性加密算法也即ABE(Attribute-BasedEncryption)算法,生成与第二加密秘钥PK对应的第二解密秘钥UK。
进一步地,在另一种基于区块链的文件存储方法中,该方法还包括:
步骤401,证书颁发中心根据目标属性建立每个第二客户端对应的第二客户端凭证,并根据第二客户端凭证建立第二客户端集合,其中,第二客户端集合包括由第二客户端代码以及第二客户端凭证组成的键值对;
在该实施例中,正式颁发中心为每个具有目标属性的客户端建立第二客户端凭证prime,并根据第二客户端凭证prime建立第二客户端集合map1<userGID,prime>,其中,userGID为第二客户端代码,prime为第二客户端凭证,也即第二客户端集合map1包括由userGID和prime组成的键值对。
步骤402证书颁发中心根据至少一个目标属性建立属性集合,其中,属性集合包括由目标属性编码以及属性撤销标识组成的键值对;
在该实施例中,证书颁发中心根据目标属性建立属性集合map2<att,list>,其中att为目标属性,list为属性撤销标识,通过list可以标识包含该目标属性的第二客户端是否有访问共享文件的权限,也即属性集合map2包括由att和list组成的键值对。
在利用第二解密密钥解密加密后的第一解密密钥之前,还包括:
步骤403,第二客户端利用第二客户端凭证以及属性撤销标识,验证第二客户端的权限是否被撤销;
在该实施例中,通过运算list%prime来确定第二客户端的权限是否被撤销。具体地,若运算结果不为0,表明该第二客户端的权限未被撤销;若运算结果为0,则表示该第二客户端的权限已被撤销。
通过此方法,若第一客户端改变了定向分享策略,那么只需要设置目标属性att对应的list值即可,而不需要重新生成第二客户端集合以及属性集合。例如,第一客户端不再希望隶属于信息学院的第二客户端查阅共享文件,那么只需要设置目标属性“隶属于信息学院”对应的list值。
步骤404,若被撤销,则解密结束。
在该实施例中,若第二客户端的权要已被撤销,则说明第一客户端不希望该第二客户端访问共享文件,因此解密结束,即使第二客户端持有第二解密秘钥也无法完成解密操作。
进一步地,在另一种基于区块链的文件存储方法中,该方法还包括:
步骤501,证书颁发中心解析撤销指令,得到待撤销第二客户端;
在该实施例中,第二客户端被撤销某个目标属性(也即撤销指令)时,证书颁发中心解析相应的撤销指令,得到待撤销第二客户端。
例如,某第二客户端不再隶属于信息学院,则该第二客户端被撤销“隶属于信息学院”属性。
步骤502,证书颁发中心在第二客户端集合中查找待撤销第二客户端对应的待撤销第二客户端凭证;
步骤503,证书颁发中心在属性集合中查找待撤销第二客户端的待撤销目标属性对应的属性撤销标识;
在该实施例中,证书颁发机构分别从第二客户端集合map1<user,prime>和属性集合map2<att,list>中取出与待撤销第二客户端对应的待撤销第二客户端凭证prime,以及与待撤销目标属性对应的属性撤销标识list。
步骤504,根据待撤销第二客户端凭证更新待撤销目标属性对应的属性撤销标识。
在该实施例中,根据list'=list×prime更新待撤销目标属性对应的属性撤销标识,更新后的属性标识不再包括待撤销第二客户端。
进一步地,在另一种基于区块链的文件存储方法中,第一客户端采用椭圆加密法生成与第一解密密钥对应的第一加密密钥,具体包括:
步骤601,在椭圆上确定基点G,并生成与第一解密密钥k对应的第一加密密钥K,其中K=kG;
在该实施例中,选定一条椭圆曲线,并取椭圆曲线上一点作为基点G,第一客户端随机生成一个私有密钥也即第一解密秘钥k,并生成公钥也即第一加密秘钥K=kG。
第一客户端采用椭圆加密法,利用第一加密密钥加密共享文件,具体包括:
步骤602,利用随机数r、基点G以及第一加密密钥K,将编码至椭圆上的共享文件M加密,得到加密后的共享文件C,其中C={C1,C2}={M+rK,rG};
在该实施例中,第一客户端将共享文件明文编码到椭圆曲线上一点,得到文件M,并随机选定一个整数r,其中r<n,n为G的阶数。第一客户端利用随机数r,将明文的共享文件加密得到密文C,也即加密后的共享文件。其中,该密文是一个点对,C={rG,M+rK}。
利用第一解密密钥解密加密后的共享文件,具体包括:
步骤603,利用加密后的共享文件C,根据M=C1-kC2,得到编码至椭圆上的共享文件M,并对所述编码至椭圆上的共享文件M进行解码得到所述共享文件。
在该实施例中,首先计算C1=M+rK,C2=rG。由于C1-kC2=M+rK-k(rG)=M+rkG-krG=M,因此计算C1-kC2就可以得到共享文件在椭圆曲线上的明文编码M。再对M进行解码就可以得到共享文件。
进一步地,在另一种基于区块链的文件存储方法中,文件路径为文件在网络存储中的哈希地址。
在该实施例中,将加密后的共享文件在网络路径中的哈希地址作为文件路径,而不是直接利用加密后的共享文件的存储地址。利用哈希不可逆的特性,隐藏了加密后的共享文件的真实地址,提高了存储的安全性。
进一步地,如图4所示,在另一种基于区块链的文件存储方法中,用户通过客户端(此处为第一客户端)发送原始的共享文件,用户的属性存储在第一客户端中,用户上传文件之后,第一客户端会自动向存储系统上传经过ECC加密后的共享文件。其中,第一客户端向文件存储系统发送加密后的共享文件,并从存储网络中获取共享文件的哈希地址作为文件路径。在获得共享文件的哈希地址之后,第一客户端将该共享文件的哈希地址(也即文件路径)以及基于属性解密加密后的私钥(也即加密后的第一解密秘钥)存储成对到区块链节点之中。而接收用户通过客户端(此次为第二客户端)在区块链中获取文件路径以及加密后的第一解密秘钥,利用文件路径获取加密后的共享文件,利用加密后的第一解密秘钥以及加密后的共享文件得到原始的共享文件。
进一步地,作为上述基于区块链的文件存储方法的具体实现,本申请实施例提供了一种基于区块链的文件存储系统,如图5所示,该系统包括:第一加密模块、第一上传模块、密钥生成模块、第二上传模块、第二加密模块、第一解密模块以及第二解密模块。
第一加密模块,用于随机生成第一加密密钥以及第一解密密钥,并利用第一加密密钥加密共享文件;
第一上传模块,用于将加密后的共享文件上传至存储网络中,并获取加密后的共享文件在存储网络中的文件路径;
密钥生成模块,用于随机生成第二加密密钥以及多个第二解密密钥,其中多个第二解密密钥与多个第二客户端一一对应;
第二上传模块,用于将第二加密密钥发送至第一客户端,将第二解密密钥发送至第二客户端;
第二加密模块,用于利用第二加密密钥加密第一解密密钥,并将文件路径以及加密后的第一解密密钥上传至区块链中;
第一解密模块,用于在区块链中获取文件路径以及加密后的第一解密密钥,并利用第二解密密钥解密加密后的第一解密密钥,得到第一解密密钥;
第二解密模块,用于根据文件路径,在存储网络中获取加密后的共享文件,并利用第一解密密钥解密加密后的共享文件,得到共享文件。
在具体的应用场景中,可选地,第一加密模块,具体用于:
第一客户端随机生成第一解密密钥;
第一客户端采用椭圆加密法生成与第一解密密钥对应的第一加密密钥;
第一客户端采用椭圆加密法,利用第一加密密钥加密共享文件。
在具体的应用场景中,可选地,密钥生成模块,具体用于:
证书颁发中心随机生成第二加密密钥;
证书颁发中心根据第一客户端发送的定向分享策略,确定至少一个目标属性;
若第二客户端具有目标属性,则证书颁发中心生成与第二客户端对应的第二解密密钥。
在具体的应用场景中,可选地,密钥生成模块,还用于:
证书颁发中心根据目标属性建立每个第二客户端对应的第二客户端凭证,并根据第二客户端凭证建立第二客户端集合,其中,第二客户端集合包括由第二客户端代码以及第二客户端凭证组成的键值对;
证书颁发中心根据至少一个目标属性建立属性集合,其中,属性集合包括由目标属性编码以及属性撤销标识组成的键值对;
第一解密模块,还用于:
第二客户端利用第二客户端凭证以及属性撤销标识,验证第二客户端的权限是否被撤销;
若被撤销,则解密结束。
在具体的应用场景中,可选地,密钥生成模块还用于:
证书颁发中心解析撤销指令,得到待撤销第二客户端;
证书颁发中心在第二客户端集合中查找待撤销第二客户端对应的待撤销第二客户端凭证;
证书颁发中心在属性集合中查找待撤销第二客户端的待撤销目标属性对应的属性撤销标识;
根据待撤销第二客户端凭证更新待撤销目标属性对应的属性撤销标识。
在具体的应用场景中,可选地,第一加密模块,具体用于:
在椭圆上确定基点G,并生成与第一解密密钥k对应的第一加密密钥K,其中K=kG;
利用随机数r、基点G以及第一加密密钥K,将编码至椭圆上的共享文件M加密,得到加密后的共享文件C,其中C={C1,C2}={M+rK,rG};
第二解密模块,具体用于:
利用加密后的共享文件C,根据M=C1-kC2,得到编码至椭圆上的共享文件M,并对所述编码至椭圆上的共享文件M进行解码得到所述共享文件。
在具体的应用场景中,可选地,文件路径为文件在网络存储中的哈希地址。
需要说明的是,本申请实施例提供的一种基于区块链的文件存储系统所涉及各功能模块的其他相应描述,可以参考图1至图4中的对应描述,在此不再赘述。
基于上述如图1至图4所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1至图3所示的基于区块链的文件存储方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
基于上述如图1至图4所示的方法,以及图5所示的虚拟系统实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1至图4所示的基于区块链的文件存储方法。
可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的单元或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的系统中的单元可以按照实施场景描述进行分布于实施场景的系统中,也可以进行相应变化位于不同于本实施场景的一个或多个系统中。上述实施场景的单元可以合并为一个单元,也可以进一步拆分成多个子单元。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

Claims (10)

1.一种基于区块链的文件存储方法,其特征在于,所述方法包括:
第一客户端随机生成第一加密密钥以及第一解密密钥,并利用所述第一加密密钥加密共享文件;
所述第一客户端将加密后的共享文件上传至存储网络中,并获取所述加密后的共享文件在所述存储网络中的文件路径;
证书颁发中心随机生成第二加密密钥以及多个第二解密密钥,其中所述多个第二解密密钥与多个第二客户端一一对应;
所述证书颁发中心将所述第二加密密钥发送至所述第一客户端,将所述第二解密密钥发送至所述第二客户端;
所述第一客户端利用所述第二加密密钥加密所述第一解密密钥,并将所述文件路径以及加密后的第一解密密钥上传至区块链中;
所述第二客户端在所述区块链中获取所述文件路径以及所述加密后的第一解密密钥,并利用所述第二解密密钥解密所述加密后的第一解密密钥,得到所述第一解密密钥;
所述第二客户端根据所述文件路径,在所述存储网络中获取所述加密后的共享文件,并利用所述第一解密密钥解密所述加密后的共享文件,得到所述共享文件。
2.根据权利要求1所述的文件存储方法,其特征在于,所述第一客户端随机生成第一加密密钥以及第一解密密钥,并利用所述第一加密密钥加密共享文件,具体包括:
所述第一客户端随机生成所述第一解密密钥;
所述第一客户端采用椭圆加密法生成与所述第一解密密钥对应的所述第一加密密钥;
所述第一客户端采用所述椭圆加密法,利用所述第一加密密钥加密所述共享文件。
3.根据权利要求1所述的文件存储方法,其特征在于,所述证书颁发中心随机生成第二加密密钥以及多个第二解密密钥,其中所述多个第二解密密钥与多个第二客户端一一对应,具体包括:
所述证书颁发中心随机生成所述第二加密密钥;
所述证书颁发中心根据所述第一客户端发送的定向分享策略,确定至少一个目标属性;
若所述第二客户端具有所述目标属性,则所述证书颁发中心生成与所述第二客户端对应的第二解密密钥。
4.根据权利要求3所述的文件存储方法,其特征在于,所述方法还包括:
所述证书颁发中心根据所述目标属性建立每个所述第二客户端对应的第二客户端凭证,并根据所述第二客户端凭证建立第二客户端集合,其中,所述第二客户端集合包括由第二客户端代码以及所述第二客户端凭证组成的键值对;
所述证书颁发中心根据所述至少一个目标属性建立属性集合,其中,所述属性集合包括由目标属性编码以及属性撤销标识组成的键值对;
在所述利用所述第二解密密钥解密所述加密后的第一解密密钥之前,还包括:
所述第二客户端利用所述第二客户端凭证以及所述属性撤销标识,验证所述第二客户端的权限是否被撤销;
若被撤销,则解密结束。
5.根据权利要求4所述的文件存储方法,其特征在于,所述方法还包括:
所述证书颁发中心解析撤销指令,得到待撤销第二客户端;
所述证书颁发中心在所述第二客户端集合中查找所述待撤销第二客户端对应的待撤销第二客户端凭证;
所述证书颁发中心在所述属性集合中查找所述待撤销第二客户端的待撤销目标属性对应的属性撤销标识;
根据所述待撤销第二客户端凭证更新所述待撤销目标属性对应的属性撤销标识。
6.根据权利要求2所述的文件存储方法,其特征在于,所述第一客户端采用椭圆加密法生成与所述第一解密密钥对应的所述第一加密密钥,具体包括:
在椭圆上确定基点G,并生成与所述第一解密密钥k对应的所述第一加密密钥K,其中K=kG;
所述第一客户端采用所述椭圆加密法,利用所述第一加密密钥加密所述共享文件,具体包括:
利用随机数r、所述基点G以及所述第一加密密钥K,将编码至椭圆上的共享文件M加密,得到加密后的共享文件C,其中C={C1,C2}={M+rK,rG};
所述利用所述第一解密密钥解密所述加密后的共享文件,具体包括:
利用所述加密后的共享文件C,根据M=C1-kC2,得到所述编码至椭圆上的共享文件M,并对所述编码至椭圆上的共享文件M进行解码得到所述共享文件。
7.根据权利要求1所述的文件存储方法,其特征在于,所述文件路径为所述文件在所述网络存储中的哈希地址。
8.一种基于区块链的文件存储系统,其特征在于,所述系统包括:
第一加密模块,用于随机生成第一加密密钥以及第一解密密钥,并利用所述第一加密密钥加密共享文件;
第一上传模块,用于将加密后的共享文件上传至存储网络中,并获取所述加密后的共享文件在所述存储网络中的文件路径;
密钥生成模块,用于随机生成第二加密密钥以及多个第二解密密钥,其中所述多个第二解密密钥与多个第二客户端一一对应;
第二上传模块,用于将所述第二加密密钥发送至所述第一客户端,将所述第二解密密钥发送至所述第二客户端;
第二加密模块,用于利用所述第二加密密钥加密所述第一解密密钥,并将所述文件路径以及加密后的第一解密密钥上传至区块链中;
第一解密模块,用于在所述区块链中获取所述文件路径以及所述加密后的第一解密密钥,并利用所述第二解密密钥解密所述加密后的第一解密密钥,得到所述第一解密密钥;
第二解密模块,用于根据所述文件路径,在所述存储网络中获取所述加密后的共享文件,并利用所述第一解密密钥解密所述加密后的共享文件,得到所述共享文件。
9.一种可读存储介质,其上存储有程序或指令,其特征在于,所述程序或指令被处理器执行时实现如权利要求1至7中任一项所述的文件存储方法的步骤。
10.一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7中任一项所述的文件存储方法。
CN202111641422.3A 2021-12-29 2021-12-29 基于区块链的文件存储方法及系统、存储介质 Pending CN114461592A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111641422.3A CN114461592A (zh) 2021-12-29 2021-12-29 基于区块链的文件存储方法及系统、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111641422.3A CN114461592A (zh) 2021-12-29 2021-12-29 基于区块链的文件存储方法及系统、存储介质

Publications (1)

Publication Number Publication Date
CN114461592A true CN114461592A (zh) 2022-05-10

Family

ID=81408583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111641422.3A Pending CN114461592A (zh) 2021-12-29 2021-12-29 基于区块链的文件存储方法及系统、存储介质

Country Status (1)

Country Link
CN (1) CN114461592A (zh)

Similar Documents

Publication Publication Date Title
US10785019B2 (en) Data transmission method and apparatus
CN111740828B (zh) 一种密钥生成方法以及装置、设备、加解密方法
JP6221014B1 (ja) 安全な共有鍵共有システム及び方法
AU2015335689B2 (en) Efficient start-up for secured connections and related services
CN108241517B (zh) 一种软件升级方法、客户端及电子设备
CN107800539B (zh) 认证方法、认证装置和认证系统
CN108347404B (zh) 一种身份认证方法及装置
US10367640B2 (en) Shared secret data production system
CN106941404B (zh) 密钥保护方法及装置
US11128452B2 (en) Encrypted data sharing with a hierarchical key structure
JP2020532928A (ja) デジタル署名方法、装置及びシステム
CN108768628B (zh) 设备端加密方法、装置、系统和网关
CN114584306B (zh) 一种数据处理方法和相关装置
JPWO2019093478A1 (ja) 鍵交換装置、鍵交換システム、鍵交換方法、及び鍵交換プログラム
CN112115461B (zh) 设备认证方法、装置、计算机设备和存储介质
CN112118113A (zh) 一种基于sm2算法的多方协同群签名方法及装置、系统、介质
CN113726517A (zh) 一种信息共享方法及装置
CN114553590A (zh) 数据传输方法及相关设备
CN113259722B (zh) 一种安全视频物联网密钥管理方法、装置和系统
US20160148002A1 (en) Key storage apparatus, key storage method and program therefor
KR102269753B1 (ko) 컨소시엄 블록체인 네트워크에서의 프라이빗 키를 백업 및 복원하는 방법 및 장치
US11570008B2 (en) Pseudonym credential configuration method and apparatus
KR101812311B1 (ko) 사용자 단말 및 속성 재암호 기반의 사용자 단말 데이터 공유 방법
CN114117406A (zh) 一种数据处理方法、装置、设备及存储介质
CN114461592A (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