CN115086337B - 文件处理方法、装置、存储介质以及电子设备 - Google Patents

文件处理方法、装置、存储介质以及电子设备 Download PDF

Info

Publication number
CN115086337B
CN115086337B CN202210719469.5A CN202210719469A CN115086337B CN 115086337 B CN115086337 B CN 115086337B CN 202210719469 A CN202210719469 A CN 202210719469A CN 115086337 B CN115086337 B CN 115086337B
Authority
CN
China
Prior art keywords
account
file
access
tree
identification information
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
CN202210719469.5A
Other languages
English (en)
Other versions
CN115086337A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202210719469.5A priority Critical patent/CN115086337B/zh
Publication of CN115086337A publication Critical patent/CN115086337A/zh
Application granted granted Critical
Publication of CN115086337B publication Critical patent/CN115086337B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • 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)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种文件处理方法、装置、存储介质以及电子设备。涉及区块链技术领域,该方法包括:获取基于第一账户存储的第一文件,第一文件的第一标识信息;对第一文件进行分块加密处理,得到第一分块文件,并获取第一分块文件的第二标识信息;基于第一文件,第一标识信息,第一分块文件以及第二标识信息构建第一目录树;获取第二账户的第一身份标识信息,第二账户对第一目录树的第一访问权限信息;根据第一目录树、第一身份标识信息和第一访问权限信息,构建第一访问树;基于第一访问树进行业务处理。通过本申请,解决了相关技术中基于区块链的去中心化文件处理方法存在的隐私泄露风险大,难以保证多个物理节点中数据的一致性同步的问题。

Description

文件处理方法、装置、存储介质以及电子设备
技术领域
本申请涉及区块链技术领域,具体而言,涉及一种文件处理方法、装置、存储介质以及电子设备。
背景技术
区块链应用的发展促使链上数据规模呈几何指数级增长,传统区块链技术由于链上存储瓶颈的限制,采用中心化存储技术实行链下存储,存在资源使用量大、服务器单点故障、数据丢失、隐私泄露等问题,不符合去中心化数据保护的原则,使区块链沦为伪链。但在去中心化环境下,数据文件被分片保存在不同物理位置,每一个物理节点都存在数据泄漏的风险。此外,文件对象树(File Object Tree)通过链接关联文件和目录,分布在不同的物理节点,要临时设置目录权限,须对多个物理节点的文件对象树进行同步,难以保证同步的一致性效果。
针对相关技术中基于区块链的去中心化文件处理方法存在的隐私泄露风险大,难以保证多个物理节点中数据的一致性同步的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种文件处理方法、装置、存储介质以及电子设备,以解决相关技术中基于区块链的去中心化文件处理方法存在的隐私泄露风险大,难以保证多个物理节点中数据的一致性同步的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种文件处理方法。该方法包括:获取基于第一账户存储的第一文件,以及上述第一文件的第一标识信息;对上述第一文件进行分块加密处理,得到第一分块文件,并获取上述第一分块文件的第二标识信息;基于上述第一文件,上述第一标识信息,上述第一分块文件以及上述第二标识信息构建第一目录树;获取第二账户的第一身份标识信息,以及上述第二账户对上述第一目录树的第一访问权限信息;根据上述第一目录树、上述第一身份标识信息和上述第一访问权限信息,构建第一访问树;基于上述第一访问树进行业务处理。
为了实现上述目的,根据本申请的另一方面,提供了一种文件处理装置。该装置包括:第一获取模块,用于获取基于第一账户存储的第一文件,以及上述第一文件的第一标识信息;分块加密模块,用于对上述第一文件进行分块加密处理,得到第一分块文件,并获取上述第一分块文件的第二标识信息;第一构建模块,用于基于上述第一文件,上述第一标识信息,上述第一分块文件以及上述第二标识信息构建第一目录树;第二获取模块,用于获取第二账户的第一身份标识信息,以及上述第二账户对上述第一目录树的第一访问权限信息;第二构建模块,用于根据上述第一目录树、上述第一身份标识信息和上述第一访问权限信息,构建第一访问树;业务处理模块,用于基于上述第一访问树进行业务处理。
为了实现上述目的,根据本申请的另一方面,提供了一种非易失性存储介质,上述非易失性存储介质存储有多条指令,上述指令适于由处理器加载并执行任意一项上述的文件处理方法。
为了实现上述目的,根据本申请的另一方面,提供了一种电子设备,该电子设备包括一个或多个处理器和存储器,上述存储器用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现任意一项上述的文件处理方法。
通过本申请,采用以下步骤:获取基于第一账户存储的第一文件,以及上述第一文件的第一标识信息;对上述第一文件进行分块加密处理,得到第一分块文件,并获取上述第一分块文件的第二标识信息;基于上述第一文件,上述第一标识信息,上述第一分块文件以及上述第二标识信息构建第一目录树;获取第二账户的第一身份标识信息,以及上述第二账户对上述第一目录树的第一访问权限信息;根据上述第一目录树、上述第一身份标识信息和上述第一访问权限信息,构建第一访问树;基于上述第一访问树进行业务处理,达到了构建携带有文件目录信息以及用户访问权限的访问数进行业务处理,以保证用户隐私安全的目的,解决了相关技术中基于区块链的去中心化文件处理方法存在的隐私泄露风险大,难以保证多个物理节点中数据的一致性同步的问题。进而达到了提升去中心化文件处理效率,实现多个物理节点中数据的一致性同步,有效保证用户隐私安全的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的文件处理方法的流程图;
图2是根据本申请实施例的一种可选的文件分块结构示意图;
图3是根据本申请实施例的一种可选的去中心化存储节点的结构图;
图4是根据本申请实施例的一种可选的区块链节点的结构图;
图5是根据本申请实施例的一种可选的文件处理方法的流程图;
图6是根据本申请实施例的一种可选的分布式文件目录授权系统图;
图7是根据本申请实施例的一种可选的分布式文件目录授权系统框架图;
图8是根据本申请实施例的文件处理装置的示意图;
图9是根据本申请实施例的电子设备示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
数字身份(Digital Identity),指通过数字化信息将个体可识别的刻画出来,将真实的身份信息浓缩为数字代码形式的公/私钥,以便对个体的行为信息进行绑定、查询和验证。
分散式存储(Decentralized storage),指在分散、不可信的网络环境中,将数据分散存储在多台独立的设备上,打破中心化存储垄断,解决存储服务器单点成为系统性能的瓶颈,满足更加安全、可信、可控的存储需求。
区块链(Blockchain),一种利用密码学保证访问安全、利用个人对个人(对等网络,peer to peer)P2P通讯技术实现对等通信、利用共识机制实现记账合法性,利用链式结构存储数据实现不可篡改的共同记账解决方案。
访问树(Access Tree),指一种用阈值门(与门和或门)构建的树型数据结构,访问树的叶子节点由对象(属性)组成,非叶子节点由阈值门构成,根节点的值取决于孩子节点的阈值信息。
基于有向无环图的梅克尔树(DAG Merkle Tree),一种利用有向无环图(DAG)性质产生的Merkle Tree,父节点的哈希等于所有子节点的哈希,其子节点可能来源于不同的低层,但不会出现在同层和高层,因此DAG Merkle Tree的节点可能有多个父亲,但不会出现环路。
文件对象树(File Object Tree),指一种用内容哈希链接构建目录树结构,目录树的节点由连接数组和长度构成,连接数组存储内容哈希,满足DAG Merkle Tree的验证条件。
星际文件系统(IPFS),一种点对点的分布是文件系统,旨在连接所有相同文件系统的计算机设备,类似于web,但与中心化web不同的是IPFS是一个单一的去中心化文件存储群集。
区块链应用的发展促使链上数据规模呈几何指数级增长,传统区块链技术由于链上存储瓶颈的限制,采用中心化存储技术实行链下存储,存在资源使用量大、服务器单点故障、数据丢失、隐私泄露等问题,不符合去中心化数据保护的原则,使区块链沦为伪链。去中心化存储技术能够有效解决数据多份备份和共享问题,实现一份数据,多点、多地分片存储,体现了安全性和效率,但也给数据文件的访问安全提出了更高的要求。
去中心化存储技术是一种点对点的分布式文件传输系统,通过将文件分片存储和多点并发传输,节约内容存储空间,提高分布式文件系统的传输效率。但在去中心化环境下,文件数据的授权访问却带来新的挑战,一是数据文件被分片保存在不同物理位置,每一个物理节点都存在数据泄漏的风险;二是文件对象树(File Object Tree)通过链接关联文件和目录,分布在不同的物理节点,要临时设置目录权限,须对多个物理节点的文件对象树进行同步,难以保证同步的一致性效果。星际文件系统(IPFS)是一种点对点的分布是文件系统,旨在连接所有有相同文件系统的计算机设备,类似于web网络,但与中心化web网络不同的是IPFS是一个单一的去中心化文件存储群集。当前在去中心化文件存储访问控制方面,采用PKI技术进行加密认证,建立类似“朋友圈”的认证机制,但针对特定目标用户的目录权限控制研究还不多,为实现企业级可信的文件存证和共享功能,在分散式文件目录树的权限管理、访问控制等服务能力仍有较大提升空间。
基于上述问题,本申请实施例提供了一种文件处理方法,下面结合优选的实施步骤对本申请进行说明,图1是根据本申请实施例提供的文件处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取基于第一账户存储的第一文件,以及上述第一文件的第一标识信息;
步骤S104,对上述第一文件进行分块加密处理,得到第一分块文件,并获取上述第一分块文件的第二标识信息;
步骤S106,基于上述第一文件,上述第一标识信息,上述第一分块文件以及上述第二标识信息构建第一目录树;
步骤S108,获取第二账户的第一身份标识信息,以及上述第二账户对上述第一目录树的第一访问权限信息;
步骤S110,根据上述第一目录树、上述第一身份标识信息和上述第一访问权限信息,构建第一访问树;
步骤S112,基于上述第一访问树进行业务处理。
可选的,上述步骤S102至步骤S112所提供的方法可应用于云端设备,其中,上述云端设备包括去中心化存储节点,以及与上述去中心化存储节点对应的目标区块链节点,上述去中心化存储节点和上述目标区块链节点对应于同一个物理设备。
可以理解,在本申请实施例中,上述第一账户具有上传文件数据的权限,以及将自身持有的文件(如上述第一文件)的访问权限授权给所在区块链网络中的其他账户(如上述第二账户),即被授权的第二账户具有第一目录树的访问权限。
可选的,上述第一标识信息可以为上述第一文件的第一哈希值,上述第一哈希值是基于上述第一文件对应的唯一数字身份标识DID计算得到的;上述第二标识信息可以为上述第一分块文件的第二哈希值,上述第二哈希值是基于上述第一分块文件对应的唯一数字身份标识DID计算得到的;上述第一身份标识信息可以为第二账户对应的唯一数字身份标识。
可选的,上述基于上述第一访问树进行业务处理,包括以下至少之一:基于上述第一访问树进行文件上传处理;基于上述第一访问树进行访问授权处理;基于上述第一访问树进行文件访问处理。
可选的,在本申请实施例提供的文件处理方法中,上述第一目录树携带有上述第一文件以及与上述第一文件对应的第一分块文件的标识信息(即哈希值)。上述第一访问树携带有第一目录树,第二账户的第一身份标识信息(即唯一数字身份标识),以及第二账户对第一目录树的访问权限。例如,当用户想要执行文件上传、文件访问授权以及文件访问等业务处理时,通过该第一访问树既可以验证该用户对目录树的访问权限,同时在此基础上通过密钥形式进一步验证用户的业务处理权限,只有当用户具有访问权限并具有正确密钥的情况下,才能执行业务处理操作,提高数据保密程度,进而有效保障用户隐私安全。此外,通过该目录树、访问树的文件分布式存储形式,可以是有效实现文件数据在各个相关物理节点的一致性同步。
在本申请实施例提供的文件处理方法中,采用以下步骤:获取基于第一账户存储的第一文件,以及上述第一文件的第一标识信息;对上述第一文件进行分块加密处理,得到第一分块文件,并获取上述第一分块文件的第二标识信息;基于上述第一文件,上述第一标识信息,上述第一分块文件以及上述第二标识信息构建第一目录树;获取第二账户的第一身份标识信息,以及上述第二账户对上述第一目录树的第一访问权限信息;根据上述第一目录树、上述第一身份标识信息和上述第一访问权限信息,构建第一访问树;基于上述第一访问树进行业务处理,达到了构建携带有文件目录信息以及用户访问权限的访问数进行业务处理,以保证用户隐私安全的目的,解决了相关技术中基于区块链的去中心化文件处理方法存在的隐私泄露风险大,难以保证多个物理节点中数据的一致性同步的问题。进而达到了提升去中心化文件处理效率,实现多个物理节点中数据的一致性同步,有效保证用户隐私安全的效果。
需要说明的是,在区块链网络中,所有区块链节点、用户、文件实体(片断)具有全局唯一数字身份标识符DID,DID符合W3C DID规范,形式化表示为:
DID={id|id="did":"method-name":"{0,1}*"}
其中,method-name表示DID所在的域,{0,1}*表示256位的标识号,标明数字身份在域中的地址。DID是节点及用户在区块链网络的数字身份标识ID,通过区块链网络同步到共识记账节点,并存储在区块中。区块链网络提供智能合约,为访问者提供交互服务。
在一种可选的实施例中,上述方法应用于云端设备,其中,上述云端设备包括去中心化存储节点,以及与上述去中心化存储节点对应的目标区块链节点,上述基于上述第一访问树进行文件上传处理,包括:
步骤S112,响应作用于上述第一账户的文件上传请求,获取待上传文件;
步骤S114,对上述第一账户进行身份验证;
步骤S116,在上述第一账户的上述身份验证通过的情况下,对上述待上传文件进行分块加密处理,得到与上述待上传文件对应的第二分块文件,以及与上述第二分块文件对应的第三标识信息;
步骤S118,将上述第二分块文件以及上述第三标识信息更新至上述第一目录树,得到第二目录树。
可选的,上述步骤S112至步骤S118的执行主体为上述云端设备中的去中心化存储节点,在接收到第一账户发起的文件上传请求后,去中心化存储节点获取来自于第一账户对应的客户端的待上传文件,并在上述第一账户身份验证通过的情况下对上述待上传文件进行分块加密处理,得到与上述待上传文件对应的第二分块文件,以及与上述第二分块文件对应的第三标识信息;将上述第二分块文件以及上述第三标识信息更新至上述第一目录树,得到第二目录树。
可选的,在上述第一账户的上述身份验证通过的情况下,根据文件分块的增加请求,调用哈希聚合函数将第二分块文件对应的各子节点文件分块哈希、多主体数字身份进行聚合,生成哈希值;同时,生成目录权限凭证,然后将目录权限凭证通过秘密分享的方式上传到区块链网络,对第一访问树对应的目录权限表进行更新。
可选的,将上述待上传文件分块为如下格式的第二分块文件,具体形式如图2所示:
BlockM=(Hc,Tx,Mk,u,λx,...,chksum)
其中,BlockM表示文件分块的数据格式,DidA1,...,DidAn表示文件拥有者的多主体的身份标识ID,M是文件分块数据,Mk是公钥,u是身份属性,Did表示接收者身份标识ID。
可选的,采用预设的文件分块策略对上述待上传文件进行分块处理。上述文件分块策略包括固定长度分块和拉宾Rabin分块,本申请实施例采用Rabin分块算法对上述待上传文件进行分块,具体算法格式如下:
M(Parent)=M(child1)||M(child2)||...||M(childn)||DidA1||DidA2||....||DidAn
其中,M(Parent)表示根节点(对应于上述待上传文件)文件分片的Rabin指纹信息(即哈希值),M(childi)表示子节点(对应于上述第二分块文件)文件分片的Rabin指纹信息(即哈希值)。
在一种可选的实施例中,上述去中心化存储节点对上述第一账户进行身份验证,包括:
获取上述第一目录树的加密密文;
基于上述第一访问树验证上述第一账户对上述第一目录树的第一访问权限;
在上述第一账户对上述第一目录树的第一访问权限验证通过的情况下,采用上述第一账户持有的第一主密钥对上述加密密文进行解密处理,若上述第一账户对上述加密密文解密成功,则确定上述第一账户的上述身份验证通过。
可选的,在初始化设置过程中,通过如下方式获取到上述第一账户持有的第一主密钥:设G1为双射(Bilinear Map)乘法循环群,阶为奇数p,生成元为g。且存在双射e,使得e:G1×G1→G2。引入身份属性加密作为算法的基础,设Didi(i∈[1,...n])表示区块链网络中每一个账户(即区块链节点)对应的唯一数字身份标识DID;身份属性表示为u={Did1,Did2,....,Didk},由区块链网络中每一个账户(即区块链节点)对应的唯一数字身份标识构成;且k≤n,ti(i≤k)为随机数,公钥参数PK表示为:其中,y=t1t2...t|u|。上述第一主密钥Mk表示为:Mk=(t1,t2,...,t|u|,y)。
可选的,通过如下方式获取到上述第一目录树的加密密文Hc:加密函数Encrypt表示为3元组(H,u,Pk),其中,H表示上述第一目录树中的分布式文件哈希,u={Did1,Did2,....,Didk}由区块链网络中每一个账户(即区块链节点)对应的唯一数字身份标识构成,H∈G2,选择随机数s∈Zp(p为大素数),pk表示为{Hi=Ti s}i∈|u|,则上述第一目录树的H的密文Hc表示为:Hc=(u,H′=HYs,{Hi=Ti s}i∈|u|)。
可选的,基于上述第一访问树验证上述第一账户对上述第一目录树的第一访问权限,包括:执行访问树检索算法AccessTree(Tx,Did,λx),输入第一访问树Tx,第一账户的数字身份Did和区块链节点x的阈值λx,输出上述第一账户的数字身份Did是否符合访问树的判断结果,即:
可选的,如果AccessTree输出结果非0,执行文件目录验证算法DecryptNode(Hc,D,T,x),输入第一目录树对应的加密密文Hc,第一账户持有的第一私钥D,第一访问树T及区块链节点x,输出解密的文件目录链接H(即第一目录树的明文),设i=attr(x)为x的属性,则上述目录验证算法的具体表示如下。
需要说明的是,基于本申请实施例,当用户想要执行文件上传、文件访问授权以及文件访问等业务处理时,通过该第一访问树既可以验证该用户对目录树的访问权限,同时在此基础上通过密钥形式进一步验证用户的业务处理权限,只有当用户具有访问权限并具有正确密钥的情况下,才能执行业务处理操作,提高数据保密程度,进而有效保障用户隐私安全。此外,通过该目录树、访问树的文件分布式存储形式,可以是有效实现文件数据在各个相关物理节点的一致性同步。
可选的,如图3所示为根据本申请实施例的一种可选的去中心化存储节点的示意图,如图3所述,该去中心化存储节点(即DS节点2)包括通讯模块21,属性加密模块22以及文件分片(Chunk)模块23,其中,上述通讯模块21用于为DS节点2建立安全通道,实现分散式存储报文收发。上述属性加密模块22用于构建第一目录树,并对分散式文件目录(即第一目录树)进行授权和验证处理,授权算法以身份属性加密算法为基础,主要包括文件目录授权和文件目录验证两个阶段,其中,文件目录授权阶段主要进行初始化设置,生成第一账户对应的第一主密钥,以及对上述第一目录树进行身份加密,生成上述第一目录树对应的加密密文。
在一种可选的实施例中,上述方法还包括:
步骤S122,在上述第一账户的上述身份验证通过的情况下,根据上述第一账户的文件上传请求更新上述第一访问树,得到第二访问树;
步骤S124,基于上述第一访问树验证上述第一账户对上述第一目录树的第二访问权限;
步骤S126,在上述第一账户对上述第一目录树的第二访问权限验证通过的情况下,将上述第二访问树广播至区块链网络中的其他区块链节点。
可选的,上述步骤S122至步骤S126的执行主体为上述云端设备中的目标区块链节点,在上述去中心化存储节点对上述第一账户的上述身份验证通过的情况下,上述目标区块链节点根据上述第一账户的文件上传请求更新上述第一访问树,得到第二访问树,并基于上述第一访问树验证上述第一账户对上述第一目录树的第二访问权限,在上述第一账户对上述第一目录树的第二访问权限验证通过的情况下,将上述第二访问树广播至区块链网络中的其他区块链节点,有效实现文件数据的实时同步。
可选的,基于上述第一访问树验证上述第一账户对上述第一目录树的第二访问权限,包括:设上述第一访问树为T,T的非叶子节点表示为阈值门,其值由孩子节点和阈值来确定,形式上非叶子节点nonLeaf表示为:
nonLeaf(x)={vx,Childrenx,Gatex,kx}
其中,vx是非叶子节点x的阈值,Childrenx是x的孩子,Gatex是阈值门,kx=num(x)是x的阈值,当Gatex=OR,即或门时,kx=1;当Gatex=AND,即与门时,kx=num(x)表示x的孩子数。叶子节点leaf表示为:leaf(x)={Didx,kx},其中,Didx是x的数字身份标识符,kx为阈值,用于设置不同的访问权限,定义:
表示不同的访问权限。设Tx表示访问树在区块链节点x的查询结果,Tx(DidA)表示第一账户A数字身份标识DidA的文件目录权限查询结果。
作为一种可选的实施例,图4是根据本申请实施例的一种可选的区块链节点的结构图,如图4所示,该区块链节点3的技术结构主要包括:通讯模块31,合约处理模块32,访问处置模块33,共识验证模块34。其中,上述通讯模块31用于负责各区块链节点间的通信交互,完成一般区块链节点通讯信息,包括收发合约交易信息、共识信息、区块同步信息、网络状态信息等。上述合约处理模块32用于从通讯模块31接收合约交易信息,生成合约唯一标识,将合约唯一标识、输入参数等组装成智能合约交易,调用智能合约并执行。上述访问处置模块33用于根据用户数字身份查询、更新访问树,通过访问树获取用户访问权限;同时,结合数字身份及访问权限,生成用户身份密钥。上述共识验证模块34负责对接收到交易请求进行共识处理,如达成共识,调用智能合约模块23用于执行智能合约,并最终形成记录在案,可供日后审计追溯或验证。
可选的,通过执行密钥生成算法输出用户身份密钥,用户与解密加密密文,如果访问树的判断结果为允许访问(即T(u)≥1),则说明目标用户满足访问数据文件的认证条件。密钥生成算法步骤如下:
输入:(u,Mk);
输出:用户身份私钥D;
步骤S1:对目录树T的每个节点x,选取多项式qx
步骤S1.1:对于每个节点x,设置多项式qx的阶数dx,使得dx=kx-1,其中kx表示目录树T节点x的阈值Tx,其中0≤kx≤numx,numx表示节点x的孩子节点数;
步骤S1.2:对于T的根节点r,结合其他孩子节点的值,设置qr(0)=y和dr
步骤S1.3:对其他节点x,设置qx(0)=qparent(x)(index(x)),选取dx其他随机节点完成qx定义。
步骤S2:对每个叶子节点x,为目标用户设置一下秘密参数值:
步骤S3:反复执行步骤2,输出用户身份私钥D=(Di,i∈[1,k])。
作为一种可选的实施例,图5示出了基于上述第一访问树进行文件上传处理,即上传文件数据的流程图,如图5所示,该过程具体包括如下步骤:
步骤S501:数据所有者(即第一账户)通过客户端发起上传文件数据请求。
步骤S502:中心化存储节点DS节点的交易处理模块接收到上传文件数据请求后,生成上述第一账户对应的用户身份密钥和交易处理请求报文。
步骤S503:执行文件授权处理,设置待上传文件对应的数字身份标识Did,及身份属性加密的属性u,输出主密钥Mk,执行对文件目录属性加密处理,主要包括文件目录授权和文件目录验证两个阶段,其中,文件目录授权阶段主要进行初始化设置,生成第一账户对应的第一主密钥,以及对上述第一目录树进行身份加密,生成上述第一目录树对应的加密密文。
步骤S504:查询更第一新访问树,更新第一访问树的叶子节点和非叶子节点函数设置,得到第二访问树。
步骤S505:根据访问结果解密Hc,并组装报文,将第二访问树广播到其他区块链节点,实现一致性同步。
步骤S506:区块链节点将目录权限更新结果(即第二访问树)反馈给分布式存储节点(即DS节点),如果更新成功,执行文件分块策略,对文件进行分块处理,文件上传成功。
步骤S507:将上传文件数据成功状态返回数据所有者的客户端。
在一种可选的实施例中,上述方法应用于云端设备,其中,上述云端设备包括去中心化存储节点,以及与上述去中心化存储节点对应的目标区块链节点,上述基于上述第一访问树进行访问授权处理,包括:
响应作用于上述第一账户对第三账户的访问授权请求,并对上述第一账户进行身份验证;
根据上述访问授权请求获取上述第三账户的第三身份标识信息,以及上述第三账户对上述第一目录树的第二访问权限信息;
在对上述第一账户的上述身份验证通过的情况下,将上述第三身份标识信息和上述第二访问权限信息更新至上述第一访问树,得到第三访问树;
基于上述第一访问树验证上述第一账户对上述第一目录树的第二访问权限;
在上述第一账户对上述第一目录树的第二访问权限验证通过的情况下,将上述第三访问树广播至区块链网络中的其他区块链节点。
可选的,去中心化存储节点响应作用于上述第一账户对第三账户的访问授权请求,并对上述第一账户进行身份验证;去中心化存储节点根据上述访问授权请求获取上述第三账户的第三身份标识信息,以及上述第三账户对上述第一目录树的第二访问权限信息;去中心化存储节点在对上述第一账户的上述身份验证通过的情况下,将上述第三身份标识信息和上述第二访问权限信息更新至上述第一访问树,得到第三访问树;目标区块链节点基于上述第一访问树验证上述第一账户对上述第一目录树的第二访问权限;目标区块链节点在上述第一账户对上述第一目录树的第二访问权限验证通过的情况下,将上述第三访问树广播至区块链网络中的其他区块链节点。
可选的,图5还示出了基于上述第一访问树进行访问授权处理,即文件目录授权的流程图,如图5所示,该过程具体包括如下步骤:
步骤S601:数据所有者通过客户端发起文件授权请求(即访问授权请求);
步骤S602:去中心化存储节点(即DS节点)的交易处理模块接收文件授权请求,重新组装交易报文;
步骤S603:进行目录授权处理,添加目标用户B的数字身份标识Did,生成用户身份密钥和目录权限凭证,包括文件授权和生成目录授权凭证两个阶段,具体处理参考S503;
步骤S604:上述DS节点对应的目标区块链节点的交易处理模块接收到智能合约存证目录权限凭证请求报文,开始解析请求报文,执行智能合约,更新区块链目录权限表,即更新第一访问树;
步骤S605:根据访问结果解密第一目录树对应的加密密文Hc,组装报文广播到其他区块链节点,参考步骤S505;
步骤S606:目标区块链节点将目录权限更新结果反馈给DS节点需要说明的是,第一目录树对应的第一分块文件中号可以携带有其他账户对该第一目录树的访问权限,因此在目标区块链节点将目录权限更新结果反馈给DS节点后,对第一目录树中记载的访问权限进行更新,如将第三账户对第一目录树的第二访问权限更新至上述第一目录树,得到第二目录树,至此访问权限更新成功;
步骤S607:将文件授权成功状态返回数据所有者(即第一账户)的客户端。
在一种可选的实施例中,上述方法应用于云端设备,其中,上述云端设备包括去中心化存储节点,以及与上述去中心化存储节点对应的目标区块链节点,上述基于上述第一访问树进行文件访问处理,包括:
响应作用于第三账户对目标文件的文件访问请求;
获取上述目标文件对应的第三标识信息,上述第三账户的第三身份标识信息,以及上述第三账户对上述第一目录树的第二访问权限信息;
基于上述第一访问树验证上述第三账户对上述第一目录树的第三访问权限;
在上述第一账户对上述第一目录树的第一访问权限验证通过的情况下,采用上述第三账户持有的第二主密钥对上述第一目录树对应的加密密文进行解密处理,若上述第三账户对上述加密密文解密成功,则确定上述第三账户的身份验证通过,并得到上述第一目录树的明文;
将上述第一目录树的明文返回至上述第三账户。
可选的,去中心化存储节点响应作用于第三账户对目标文件的文件访问请求;去中心化存储节点获取上述目标文件对应的第三标识信息,上述第三账户的第三身份标识信息,以及上述第三账户对上述第一目录树的第二访问权限信息;目标区块链节点基于上述第一访问树验证上述第三账户对上述第一目录树的第三访问权限;目标区块链节点在上述第一账户对上述第一目录树的第一访问权限验证通过的情况下,采用上述第三账户持有的第二主密钥对上述第一目录树对应的加密密文进行解密处理,若上述第三账户对上述加密密文解密成功,则确定上述第三账户的身份验证通过,并得到上述第一目录树的明文;目标区块链节点将上述第一目录树的明文返回至上述第三账户。
可选的,图5还示出了基于上述第一访问树进行文件访问处理,即访问文件数据的流程图,如图5所示,该过程具体包括如下步骤:
步骤S701:目标用户B通过客户端向DS节点发出分散式数据文件查询请求;
步骤S702:DS节点的交易处理模块接受文件数据上传请求,拼装交易执行报文;
步骤S703:查找待查询文件对应的分布式哈希地址Hc,组织目标用户B的数字身份标识Did及阈值Deta,上传区块链网络;
步骤S704:执行智能合约,根据第一访问树T和Did,输出是否符合访问树的判断结果,如果输出结果非0,输出解密的文件目录链接H,得到第一目录树的明文,否则拒绝;
步骤S705:根据目录权限返回结果,执行解密处理。即:如果AccessTree输出结果非0,执行文件目录验证算法DecryptNode(Hc,D,T,x),输入密文Hc,用户私钥D,访问树T及节点x,输出解密的文件目录链接H,设i=attr(x)为x的属性,则:
如果目录验证算法返回正确true,则进一步检索数据文件信息,否则拒绝查询请求;
步骤S706:将查询数据文件返回到目标用户客户端,完成交易。
可选的,本申请实施例提供的文件处理方法可应用于如图6所示的分布式文件目录授权系统,该系统主要包括客户端1、去中心化存储节点2(即DS节点2)、区块链节点3。其中,客户端1用于发起智能合约部署请求、分散式存储交易请求、分散式存储查询请求等。上述DS节点2,即去中心化存储节点,用于接收客户端1的文件读写请求,进行分散式文件读写,交易信息存证到区块链节点,客户端A和客户端B分别接入DS节点,将通过DS节点发布文件读取请求,接收按文件读取结果。上述区块链节点3用于完成交易执行、交易验证、交易广播、共识和存储等功能的节点。具有区块链的一般特性。通过客户端发起文件读取指令,同时经过文件读写存证的智能合约执行后的交易记录也会保存在区块链上。
可选的,图7示出了一种分布式文件处理系统框架图,如图7所示,该分布式文件目录授权系统框架包括客户端访问层41,文件分散式存储网络42,区块链网络43。其中,上述客户端访问层41用于提供运营商访问的客户端软件,便于发起分散式存储请求,接收分散式存储结果。客户端可在区块链平台上发布链码,客户产生上传或下载的行为数据后,可调用链码发起交易请求,将行为数据上链,根据客户使用场景,提交到各个场景对应的通道上(客户端可以直接上送客户行为数据,无需加工处理,具体数据处理逻辑可交由场景提供商执行)。供应商也可以发布链码,可以查询属于自己通道的数据,可以对自己通道的数据进行处理分析。上述文件分散式存储网络42用于根据客户端提交的上传(下载)、查询等请求,通过分散式存储逻辑配置参数、数据、业务逻辑等,同时加密形成文件分块数据,其哈希值广播给区块链网络43。场景提供商还可以发布联合运营链码,通过链码调用DS节点服务,每个区块链节点都有对应的DS节点服务,链码可以指定需要哪些DS服务进行联合计算。场景提供商通过链码发起联合计算请求,原本其它通道的提供商数据相互之间是无法访问的,通过DS可以在不泄漏各自数据的情况进行分散式数据存储。上述区块链网络43用于接收和解密文件分散式存储报文,触发预设的智能合约逻辑,形成分散式存储的日志结果。区块链网络可提供托管节点,对于有能力的提供商也可提供本地节点部署。每个场景提供商在区块链上有各自的通道,场景提供商无法获取其它通道也即其他提供商的数据信息。
需要说明的是,本申请提出的文件处理方法以及应用于该方法的分布式文件目录授权系统,用于解决分散式文件中文件和目录权限的访问控制问题,该方法引入与分散式内容相对应的访问树,访问树定义了文件内容、用户数字身份的对应关系,并存证在区块链网络,当增加文件及目录的访问权限时,只需添加访问树中文件目录哈希的用户数字身份,认证时,分散式文件系统从区块链网络检索访问树,获取文件目录及数字身份的访问权限关系,就可以验证目标用户是否具有访问权限,是否可以认证通过,从而根据认证结果执行数据访问处理。本申请充分利用区块链多方共享、可信存证的特点,在区块链网络上构建多方共享的访问树权限管理结构,既方便更新和访问,又提供一致性共识同步能力,确保用户在最近的存储节点获取最新的访问树。本申请还在文件对象树中创新引入了属性加密技术,将数字身份嵌入到分散式文件目录结构中,有效解决分散式文件目录安全访问控制难题,便于广泛应用在安全数据分享、金融业务等业务场景中。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种文件处理装置,需要说明的是,本申请实施例的文件处理装置可以用于执行本申请实施例所提供的用于文件处理方法。以下对本申请实施例提供的文件处理装置进行介绍。
图8是根据本申请实施例的文件处理装置的示意图。如图8所示,该装置包括:第一获取模块800、分块加密模块802、第一构建模块804、第二构建模块808、业务处理模块810,其中:
上述第一获取模块800,用于获取基于第一账户存储的第一文件,以及上述第一文件的第一标识信息;
上述分块加密模块802,连接于上述第一获取模块800,用于对上述第一文件进行分块加密处理,得到第一分块文件,并获取上述第一分块文件的第二标识信息;
上述第一构建模块804,连接于上述分块加密模块802,用于基于上述第一文件,上述第一标识信息,上述第一分块文件以及上述第二标识信息构建第一目录树;
上述第二获取模块806,连接于上述第一构建模块804,用于获取第二账户的第二身份标识信息,以及上述第二账户对上述第一目录树的第一访问权限信息;
上述第二构建模块808,连接于上述第二获取模块806,用于根据上述第一目录树、上述第二身份标识信息和上述第一访问权限信息,构建第一访问树;
上述业务处理模块810,连接于上述第二构建模块808,用于基于上述第一访问树进行业务处理。
可选的,在本申请实施例提供的文件处理装置中,通过设置上述第一获取模块800,用于获取基于第一账户存储的第一文件,以及上述第一文件的第一标识信息;上述分块加密模块802,用于对上述第一文件进行分块加密处理,得到第一分块文件,并获取上述第一分块文件的第二标识信息;上述第一构建模块804,用于基于上述第一文件,上述第一标识信息,上述第一分块文件以及上述第二标识信息构建第一目录树;上述第二获取模块806,用于获取第二账户的第二身份标识信息,以及上述第二账户对上述第一目录树的第一访问权限信息;上述第二构建模块808,用于根据上述第一目录树、上述第二身份标识信息和上述第一访问权限信息,构建第一访问树;上述业务处理模块810,用于基于上述第一访问树进行业务处理,达到了构建携带有文件目录信息以及用户访问权限的访问数进行业务处理,以保证用户隐私安全的目的,解决了相关技术中基于区块链的去中心化文件处理方法存在的隐私泄露风险大,难以保证多个物理节点中数据的一致性同步的问题。进而达到了提升去中心化文件处理效率,实现多个物理节点中数据的一致性同步,有效保证用户隐私安全的效果。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,例如,对于后者,可以通过以下方式实现:上述各个模块可以位于同一处理器中;或者,上述各个模块以任意组合的方式位于不同的处理器中。
此处需要说明的是,上述第一获取模块800、分块加密模块802、第一构建模块804、第二构建模块808、业务处理模块810对应于实施例中的步骤S102至步骤S112,上述模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在计算机终端中。
需要说明的是,本实施例的可选或优选实施方式可以参见实施例中的相关描述,此处不再赘述。
上述文件处理装置包括处理器和存储器,上述单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来(本申请的目的)。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现上述文件处理方法。
本申请实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述文件处理方法。
如图9所示,本申请实施例提供了一种电子设备,该电子设备10包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获取基于第一账户存储的第一文件,以及上述第一文件的第一标识信息;对上述第一文件进行分块加密处理,得到第一分块文件,并获取上述第一分块文件的第二标识信息;基于上述第一文件,上述第一标识信息,上述第一分块文件以及上述第二标识信息构建第一目录树;获取第二账户的第二身份标识信息,以及上述第二账户对上述第一目录树的第一访问权限信息;根据上述第一目录树、上述第二身份标识信息和上述第一访问权限信息,构建第一访问树;基于上述第一访问树进行业务处理。本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取基于第一账户存储的第一文件,以及上述第一文件的第一标识信息;对上述第一文件进行分块加密处理,得到第一分块文件,并获取上述第一分块文件的第二标识信息;基于上述第一文件,上述第一标识信息,上述第一分块文件以及上述第二标识信息构建第一目录树;获取第二账户的第二身份标识信息,以及上述第二账户对上述第一目录树的第一访问权限信息;根据上述第一目录树、上述第二身份标识信息和上述第一访问权限信息,构建第一访问树;基于上述第一访问树进行业务处理。
可选的,上述计算机程序产品还适于执行初始化有如下方法步骤的程序:基于上述第一访问树进行文件上传处理;基于上述第一访问树进行访问授权处理;基于上述第一访问树进行文件访问处理。
可选的,上述计算机程序产品还适于执行初始化有如下方法步骤的程序:响应作用于上述第一账户的文件上传请求,获取待上传文件;对上述第一账户进行身份验证;在上述第一账户的上述身份验证通过的情况下,对上述待上传文件进行分块加密处理,得到与上述待上传文件对应的第二分块文件,以及与上述第二分块文件对应的第三标识信息;将上述第二分块文件以及上述第三标识信息更新至上述第一目录树,得到第二目录树。
可选的,上述计算机程序产品还适于执行初始化有如下方法步骤的程序:获取上述第一目录树的加密密文;基于上述第一访问树验证上述第一账户对上述第一目录树的第一访问权限;在上述第一账户对上述第一目录树的第一访问权限验证通过的情况下,采用上述第一账户持有的第一主密钥对上述加密密文进行解密处理,若上述第一账户对上述加密密文解密成功,则确定上述第一账户的上述身份验证通过。
可选的,上述计算机程序产品还适于执行初始化有如下方法步骤的程序:在上述第一账户的上述身份验证通过的情况下,根据上述第一账户的文件上传请求更新上述第一访问树,得到第二访问树;基于上述第一访问树验证上述第一账户对上述第一目录树的第二访问权限;在上述第一账户对上述第一目录树的第二访问权限验证通过的情况下,将上述第二访问树广播至区块链系统中的其他区块链节点。
可选的,上述计算机程序产品还适于执行初始化有如下方法步骤的程序:响应作用于上述第一账户对第三账户的访问授权请求,并对上述第一账户进行身份验证;根据上述访问授权请求获取上述第三账户的第三身份标识信息,以及上述第三账户对上述第一目录树的第二访问权限信息;在对上述第一账户的上述身份验证通过的情况下,将上述第三身份标识信息和上述第二访问权限信息更新至上述第一访问树,得到第三访问树;基于上述第一访问树验证上述第一账户对上述第一目录树的第二访问权限;在上述第一账户对上述第一目录树的第二访问权限验证通过的情况下,将上述第三访问树广播至区块链系统中的其他区块链节点。
可选的,上述计算机程序产品还适于执行初始化有如下方法步骤的程序:响应作用于第三账户对目标文件的文件访问请求;获取上述目标文件对应的第三标识信息,上述第三账户的第三身份标识信息,以及上述第三账户对上述第一目录树的第二访问权限信息;基于上述第一访问树验证上述第三账户对上述第一目录树的第三访问权限;在上述第一账户对上述第一目录树的第一访问权限验证通过的情况下,采用上述第三账户持有的第二主密钥对上述第一目录树对应的加密密文进行解密处理,若上述第三账户对上述加密密文解密成功,则确定上述第三账户的身份验证通过,并得到上述第一目录树的明文;将上述第一目录树的明文返回至上述第三账户。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (6)

1.一种文件处理方法,其特征在于,包括:
获取基于第一账户存储的第一文件,以及所述第一文件的第一标识信息;
对所述第一文件进行分块加密处理,得到第一分块文件,并获取所述第一分块文件的第二标识信息;
基于所述第一文件,所述第一标识信息,所述第一分块文件以及所述第二标识信息构建第一目录树;
获取第二账户的第一身份标识信息,以及所述第二账户对所述第一目录树的第一访问权限信息;
根据所述第一目录树、所述第一身份标识信息和所述第一访问权限信息,构建第一访问树;
基于所述第一访问树进行业务处理;
其中,所述基于所述第一访问树进行业务处理,包括以下至少之一:
基于所述第一访问树进行文件上传处理,包括:响应作用于所述第一账户的文件上传请求,获取待上传文件;对所述第一账户进行身份验证;在所述第一账户的所述身份验证通过的情况下,对所述待上传文件进行分块加密处理,得到与所述待上传文件对应的第二分块文件,以及与所述第二分块文件对应的第三标识信息;将所述第二分块文件以及所述第三标识信息更新至所述第一目录树,得到第二目录树;
基于所述第一访问树进行访问授权处理,包括:响应作用于所述第一账户对第三账户的访问授权请求,并对所述第一账户进行身份验证;根据所述访问授权请求获取所述第三账户的第三身份标识信息,以及所述第三账户对所述第一目录树的第二访问权限信息;在对所述第一账户的所述身份验证通过的情况下,将所述第三身份标识信息和所述第二访问权限信息更新至所述第一访问树,得到第三访问树;基于所述第一访问树验证所述第一账户对所述第一目录树的第二访问权限;在所述第一账户对所述第一目录树的第二访问权限验证通过的情况下,将所述第三访问树广播至区块链网络中的其他区块链节点;
基于所述第一访问树进行文件访问处理,包括:响应作用于第三账户对目标文件的文件访问请求;获取所述目标文件对应的第三标识信息,所述第三账户的第三身份标识信息,以及所述第三账户对所述第一目录树的第二访问权限信息;基于所述第一访问树验证所述第三账户对所述第一目录树的第三访问权限;在所述第一账户对所述第一目录树的第一访问权限验证通过的情况下,采用所述第三账户持有的第二主密钥对所述第一目录树对应的加密密文进行解密处理,若所述第三账户对所述加密密文解密成功,则确定所述第三账户的身份验证通过,并得到所述第一目录树的明文;将所述第一目录树的明文返回至所述第三账户。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一账户进行身份验证,包括:
获取所述第一目录树的加密密文;
基于所述第一访问树验证所述第一账户对所述第一目录树的第一访问权限;
在所述第一账户对所述第一目录树的第一访问权限验证通过的情况下,采用所述第一账户持有的第一主密钥对所述加密密文进行解密处理,若所述第一账户对所述加密密文解密成功,则确定所述第一账户的所述身份验证通过。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一账户的所述身份验证通过的情况下,根据所述第一账户的文件上传请求更新所述第一访问树,得到第二访问树;
基于所述第一访问树验证所述第一账户对所述第一目录树的第二访问权限;
在所述第一账户对所述第一目录树的第二访问权限验证通过的情况下,将所述第二访问树广播至区块链网络中的其他区块链节点。
4.一种文件处理装置,其特征在于,包括:
第一获取模块,用于获取基于第一账户存储的第一文件,以及所述第一文件的第一标识信息;
分块加密模块,用于对所述第一文件进行分块加密处理,得到第一分块文件,并获取所述第一分块文件的第二标识信息;
第一构建模块,用于基于所述第一文件,所述第一标识信息,所述第一分块文件以及所述第二标识信息构建第一目录树;
第二获取模块,用于获取第二账户的第一身份标识信息,以及所述第二账户对所述第一目录树的第一访问权限信息;
第二构建模块,用于根据所述第一目录树、所述第一身份标识信息和所述第一访问权限信息,构建第一访问树;
业务处理模块,用于基于所述第一访问树进行业务处理;
其中,所述业务处理模块还用于以下至少之一:
响应作用于所述第一账户的文件上传请求,获取待上传文件;对所述第一账户进行身份验证;在所述第一账户的所述身份验证通过的情况下,对所述待上传文件进行分块加密处理,得到与所述待上传文件对应的第二分块文件,以及与所述第二分块文件对应的第三标识信息;将所述第二分块文件以及所述第三标识信息更新至所述第一目录树,得到第二目录树;
响应作用于所述第一账户对第三账户的访问授权请求,并对所述第一账户进行身份验证;根据所述访问授权请求获取所述第三账户的第三身份标识信息,以及所述第三账户对所述第一目录树的第二访问权限信息;在对所述第一账户的所述身份验证通过的情况下,将所述第三身份标识信息和所述第二访问权限信息更新至所述第一访问树,得到第三访问树;基于所述第一访问树验证所述第一账户对所述第一目录树的第二访问权限;在所述第一账户对所述第一目录树的第二访问权限验证通过的情况下,将所述第三访问树广播至区块链网络中的其他区块链节点;
响应作用于第三账户对目标文件的文件访问请求;获取所述目标文件对应的第三标识信息,所述第三账户的第三身份标识信息,以及所述第三账户对所述第一目录树的第二访问权限信息;基于所述第一访问树验证所述第三账户对所述第一目录树的第三访问权限;在所述第一账户对所述第一目录树的第一访问权限验证通过的情况下,采用所述第三账户持有的第二主密钥对所述第一目录树对应的加密密文进行解密处理,若所述第三账户对所述加密密文解密成功,则确定所述第三账户的身份验证通过,并得到所述第一目录树的明文;将所述第一目录树的明文返回至所述第三账户。
5.一种非易失性存储介质,其特征在于,所述非易失性存储介质存储有多条指令,所述指令适于由处理器加载并执行权利要求1至3中任意一项所述的文件处理方法。
6.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至3中任意一项所述的文件处理方法。
CN202210719469.5A 2022-06-23 2022-06-23 文件处理方法、装置、存储介质以及电子设备 Active CN115086337B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210719469.5A CN115086337B (zh) 2022-06-23 2022-06-23 文件处理方法、装置、存储介质以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210719469.5A CN115086337B (zh) 2022-06-23 2022-06-23 文件处理方法、装置、存储介质以及电子设备

Publications (2)

Publication Number Publication Date
CN115086337A CN115086337A (zh) 2022-09-20
CN115086337B true CN115086337B (zh) 2024-04-26

Family

ID=83255043

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210719469.5A Active CN115086337B (zh) 2022-06-23 2022-06-23 文件处理方法、装置、存储介质以及电子设备

Country Status (1)

Country Link
CN (1) CN115086337B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115238257B (zh) * 2022-09-26 2023-01-06 深圳市亲邻科技有限公司 门禁人脸权限更新方法、装置、计算机设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552491B1 (en) * 2007-12-04 2017-01-24 Crimson Corporation Systems and methods for securing data
CN107451486A (zh) * 2017-06-30 2017-12-08 华为技术有限公司 一种文件系统的权限设置方法及装置
CN114491455A (zh) * 2022-03-16 2022-05-13 中国工商银行股份有限公司 目录授权的方法和装置、处理器及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11546341B2 (en) * 2020-02-14 2023-01-03 Sap Se Secure group file sharing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552491B1 (en) * 2007-12-04 2017-01-24 Crimson Corporation Systems and methods for securing data
CN107451486A (zh) * 2017-06-30 2017-12-08 华为技术有限公司 一种文件系统的权限设置方法及装置
CN114491455A (zh) * 2022-03-16 2022-05-13 中国工商银行股份有限公司 目录授权的方法和装置、处理器及电子设备

Also Published As

Publication number Publication date
CN115086337A (zh) 2022-09-20

Similar Documents

Publication Publication Date Title
Li et al. FADB: A fine-grained access control scheme for VANET data based on blockchain
CN110419193B (zh) 用于安全智能家居环境的基于ksi的认证和通信方法及其系统
WO2019237796A1 (zh) 资源获取、分发、下载方法、装置、设备及存储介质
WO2020082160A1 (en) Methods and systems for secure data communication
CN112784306B (zh) 一种基于密钥分片多签的跨链托管方法及系统
CN111523133A (zh) 一种区块链与云端数据协同共享方法
CN110177109B (zh) 一种基于标识密码和联盟链的双代理跨域认证系统
TW202226802A (zh) 分布式帳本系統
Rabaninejad et al. An identity-based online/offline secure cloud storage auditing scheme
Dwivedi et al. Smart contract and ipfs-based trustworthy secure data storage and device authentication scheme in fog computing environment
CN115086337B (zh) 文件处理方法、装置、存储介质以及电子设备
CN115906181A (zh) 一种基于区块链属性的加密文件确权方法、装置及系统
Zhang et al. Efficient auditing scheme for secure data storage in fog-to-cloud computing
CN110910110A (zh) 一种数据处理方法、装置及计算机存储介质
Vasilopoulos et al. Message-locked proofs of retrievability with secure deduplication
CN115412568A (zh) 分布式数据传输方法、装置及系统
CN114710370B (zh) 基于雾区块链和属性加密的细粒度访问控制方法及系统
WO2020010270A1 (en) Dynamic routing using a distributed hash table
Shafieinejad et al. Secure cloud file sharing scheme using blockchain and attribute-based encryption
US20230045486A1 (en) Apparatus and Methods for Encrypted Communication
Suguna et al. Privacy preserving auditing protocol for remote data storage
CN114491455A (zh) 目录授权的方法和装置、处理器及电子设备
CN112041834B (zh) 使用分布式账本进行数据交换的系统和方法
CN114006708A (zh) 基于区块链的密钥中心认证方法和设备
CN114615279B (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