CN117540707A - 数据协同编辑方法、装置及系统 - Google Patents

数据协同编辑方法、装置及系统 Download PDF

Info

Publication number
CN117540707A
CN117540707A CN202311319693.6A CN202311319693A CN117540707A CN 117540707 A CN117540707 A CN 117540707A CN 202311319693 A CN202311319693 A CN 202311319693A CN 117540707 A CN117540707 A CN 117540707A
Authority
CN
China
Prior art keywords
file
data
ciphertext
editing
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.)
Pending
Application number
CN202311319693.6A
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.)
China Mobile Communications Group Co Ltd
China Mobile Internet Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Internet 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 China Mobile Communications Group Co Ltd, China Mobile Internet Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202311319693.6A priority Critical patent/CN117540707A/zh
Publication of CN117540707A publication Critical patent/CN117540707A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供了一种数据协同编辑方法、装置及系统。其中方法包括:区块链节点利用数据文件的创建用户上传的编辑权限信息加密随机信息得到编辑权限验证信息,其他用户端在编辑该数据文件时,需要将获取的数据文件密文解密成数据文件,然后将编辑后的文件增量数据和产生的编辑权限验证信息发送给区块链节点,区块链节点通过比对该用户发送的编辑权限验证信息解密后的随机信息和自身存储的随机信息是否一致,从而验证该用户是否具有文件编辑权限。实现数据文件的创建用户对数据文件编辑权限的控制。通过区块链技术解决中心化服务的信任问题,结合属性加密技术提升了数据的安全性。

Description

数据协同编辑方法、装置及系统
技术领域
本申请涉及文件协同编辑技术领域,尤其涉及一种数据协同编辑方法、装置及系统。
背景技术
现有技术中,数据协同编辑方案主要由中心化的服务商提供,这种中心化的数据协同方式虽然可以高效地进行数据同步和存储,但中心化的数据存储会存在严重的信任问题,一旦服务商被攻击或者人为导致数据泄露,将威胁用户的隐私安全。此外,中心化的服务商也可能会由于各种外部原因导致停止运营,从而造成用户数据丢失,为用户带来不可挽回的损失。
发明内容
本申请提供了一种数据协同编辑方法、装置及系统,以提高数据的安全性。本申请的技术方案如下:
第一方面,本申请实施例提供了一种数据协同编辑方法,所述方法应用于用户端,包括:
从区块链节点获取存储于区块链上的第一数据文件密文,解密所述第一数据文件密文得到第一数据文件;
编辑所述第一数据文件,获取文件增量数据,并加密所述文件增量数据,得到文件增量数据密文;
获取所有区块链节点的第一编辑权限验证信息,并基于所述所有区块链节点的第一编辑权限验证信息,得到所有区块链节点的第二编辑权限验证信息;其中,所述第一编辑权限验证信息是所述区块链节点通过编辑权限信息加密第一随机信息得到的,所述编辑权限信息为创建所述第一数据文件密文的用户端传输至所述区块链节点的;所述第二编辑权限验证信息用于所述区块链节点验证所述第一客户端是否具有文件编辑权限;
将所述文件增量数据密文和所有区块链节点的第二编辑权限验证信息传输至所述区块链节点,实现数据文件编辑。
在一些实现方式中,所述方法还包括:
从所述区块链节点获取所述第一数据文件密文和所述文件增量数据密文;
解密所述第一数据文件密文和所述文件增量数据密文;
在解密所述文件增量数据密文失败后,向所述区块链节点发送增量数据重传请求;以便所有区块链节点通知具有解密所述文件增量数据密文能力的用户端重新得到所述文件增量数据密文并上传至所述区块链。
在一些实现方式中,所述编辑所述第一数据文件,获取文件增量数据,并加密所述文件增量数据,得到文件增量数据密文;包括:
编辑所述第一数据文件,得到编辑后的第一数据文件;
通过二进制差分算法,计算所述第一数据文件与所述编辑后的第一数据文件之间的差异数据,提取所述差异数据作为所述第一数据文件的文件增量数据;
通过解密权限信息对所述文件增量数据进行加密,得到文件增量数据密文;其中,所述解密权限信息为所述第二用户端存储所述第一数据文件密文至所述区块链时上传的。
在一些实现方式中,所述基于所述所有区块链节点的第一编辑权限验证信息,得到所有区块链节点的第二编辑权限验证信息;包括:
针对每个区块链节点的第一编辑权限验证信息,解密所述第一编辑权限验证信息得到随机信息;
通过区块链节点公钥加密所述随机信息,得到第二编辑权限验证信息;
得到所有区块链节点的第二编辑权限验证信息。
在一些实现方式中,所述从区块链节点获取存储于区块链上的第一数据文件密文,解密所述第一数据文件密文得到第一数据文件,包括:
基于所述第一数据文件存储于所述区块链上的文件索引,从区块链节点获取所述第一数据文件对应的第一数据文件密文;其中,所述第一数据文件密文为所述创建所述第一数据文件密文的用户端通过属性加密私钥加密所述第一数据文件得到的;
通过属性加密私钥解密所述第一数据文件密文,得到所述第一数据文件。
在一些实现方式中,所述文件索引为所述创建所述第一数据文件密文的用户端通过用户私钥加密所述第一数据文件密文得到并传输至所述区块链节点的。
在一些实现方式中,所述得到文件增量数据密文之后,还包括:
修改所述第一数据文件存储于区块链上的文件索引,得到新的文件索引,以便将所述新的文件索引和所述文件增量数据密文同时传输至所述区块链节点;其中,所述新的文件索引用于用户端获取所述第一数据文件密文和所述文件增量数据密文。
在一些实现方式中,所述编辑权限信息为编辑权限属性树,所述解密权限信息为解密权限属性树。
第二方面,本申请实施例提供了一种数据协同编辑方法,所述方法应用于区块链节点,包括:
接收来自第一用户端的文件编辑请求,所述文件编辑请求包括编辑第一数据文件时产生的文件增量数据密文和第二编辑权限验证信息;
基于所述第二编辑权限验证信息,验证所述第一用户端是否具有文件编辑权限;
验证通过后,存储所述文件增量数据密文,并建立所述文件增量数据密文与所述第一数据文件对应的第一数据文件密文的关联关系;
其中,所述第二编辑权限验证信息是基于从所述区块链节点获取的第一编辑权限验证信息得到的,所述第一编辑权限验证信息是所述区块链节点通过编辑权限信息加密第一随机信息得到的,所述编辑权限信息为创建所述第一数据文件的第二用户端传输至所述区块链节点的。
在一些实现方式中,所述基于所述第二编辑权限验证信息,验证所述第一用户端是否具有文件编辑权限,包括:
解密所述第二编辑权限验证信息,得到第二随机信息;
比对所述第二随机信息与所述第一随机信息是否一致;
在所述第二随机信息与所述第一随机信息一致时,验证所述第一用户端具有文件编辑权限。
在一些实现方式中,所述接收来自第一用户端的文件编辑请求之前,还包括:
接收来自所述第二用户端的文件提交请求,所述文件提交请求包括所述第二用户端创建的所述第一数据文件密文、解密权限信息和所述编辑权限信息;其中,所述解密权限信息用于用户端加密文件增量数据得到文件增量数据密文;
校验所述文件提交请求,并在校验通过后,广播所述文件提交请求至所有区块链节点;
在所有区块链节点共识成功后,将所述第一数据文件密文存储于区块链上;
生成第一随机信息,通过所述编辑权限信息加密所述第一随机信息,得到并存储所述第一编辑权限验证信息。
在一些实现方式中,所述文件提交请求还包括文件签名信息,所述将所述第一数据文件密文存储于区块链上,还包括:
将所述文件签名信息作为所述第一数据文件密文在所述区块链节点上的文件索引。
在一些实现方式中,所述编辑权限信息为编辑权限属性树,所述解密权限信息为解密权限属性树。
在一些实现方式中,所述方法还包括:
接收来自所述第一用户端或所述第二用户端的秘钥生成请求,并将所述秘钥生成请求广播至所有区块链节点;
基于第一随机数和第二随机数生成属性秘钥参数;所述属性秘钥参数用于用户端生成属性加密私钥;所述第二用户端通过所述属性加密私钥解密所述第一数据文件密文得到第一数据文件,所述第一用户端通过所述属性加密私钥解密所述第一数据文件密文得到第一数据文件。
在一些实现方式中,所述方法还包括:
接收来自用户端的增量数据重传请求,将所述增量数据重传请求广播至所有区块链节点;以便所有区块链节点通知具有解密所述文件增量数据密文能力的用户端重新得到所述文件增量数据密文并上传至所述区块链。
在一些实现方式中,所述方法还包括:
接收来自所述第二用户端的删除无效增量数据请求,删除对应的文件增量数据密文。
第三方面,本申请实施例提供了一种数据协同编辑系统,包括:
用户端,被配置为执行第一方面所述的数据协同编辑方法;
区块链节点,被配置为执行第二方面所述的数据协同编辑方法。
第四方面,本申请实施例提供了一种数据协同编辑装置,所述装置配置于用户端,包括:
文件获取模块,用于从区块链节点获取存储于区块链上的第一数据文件密文,解密所述第一数据文件密文得到第一数据文件;
文件处理模块,用于编辑所述第一数据文件,获取文件增量数据,并加密所述文件增量数据,得到文件增量数据密文;
信息生成模块,用于获取所有区块链节点的第一编辑权限验证信息,并基于所述所有区块链节点的第一编辑权限验证信息,得到所有区块链节点的第二编辑权限验证信息;其中,所述第一编辑权限验证信息是所述区块链节点通过编辑权限信息加密第一随机信息得到的,所述编辑权限信息为创建所述第一数据文件密文的用户端传输至所述区块链节点的;所述第二编辑权限验证信息用于所述区块链节点验证所述第一客户端是否具有文件编辑权限;
数据传输模块,用于将所述文件增量数据密文和所有区块链节点的第二编辑权限验证信息传输至所述区块链节点,实现数据文件编辑。
在一些实现方式中,文件获取模块,还用于:
从所述区块链节点获取所述第一数据文件密文和所述文件增量数据密文;
解密所述第一数据文件密文和所述文件增量数据密文;
在解密所述文件增量数据密文失败后,向所述区块链节点发送增量数据重传请求;以便所有区块链节点通知具有解密所述文件增量数据密文能力的用户端重新得到所述文件增量数据密文并上传至所述区块链。
在一些实现方式中,文件处理模块,具体用于:
编辑所述第一数据文件,得到编辑后的第一数据文件;
通过二进制差分算法,计算所述第一数据文件与所述编辑后的第一数据文件之间的差异数据,提取所述差异数据作为所述第一数据文件的文件增量数据;
通过解密权限信息对所述文件增量数据进行加密,得到文件增量数据密文;其中,所述解密权限信息为所述第二用户端存储所述第一数据文件密文至所述区块链时上传的。
在一些实现方式中,信息生成模块,具体用于:
针对每个区块链节点的第一编辑权限验证信息,解密所述第一编辑权限验证信息得到随机信息;
通过区块链节点公钥加密所述随机信息,得到第二编辑权限验证信息;
得到所有区块链节点的第二编辑权限验证信息。
在一些实现方式中,文件获取模块从区块链节点获取存储于区块链上的第一数据文件密文,解密所述第一数据文件密文得到第一数据文件时,具体用于:
基于所述第一数据文件存储于所述区块链上的文件索引,从区块链节点获取所述第一数据文件对应的第一数据文件密文;其中,所述第一数据文件密文为所述创建所述第一数据文件密文的用户端通过属性加密私钥加密所述第一数据文件得到的;
通过属性加密私钥解密所述第一数据文件密文,得到所述第一数据文件。
在一些实现方式中,所述文件索引为所述创建所述第一数据文件密文的用户端通过用户私钥加密所述第一数据文件密文得到并传输至所述区块链节点的。
在一些实现方式中,文件处理模块,还用于:
修改所述第一数据文件存储于区块链上的文件索引,得到新的文件索引,以便将所述新的文件索引和所述文件增量数据密文同时传输至所述区块链节点;其中,所述新的文件索引用于用户端获取所述第一数据文件密文和所述文件增量数据密文。
在一些实现方式中,所述编辑权限信息为编辑权限属性树,所述解密权限信息为解密权限属性树。
第五方面,本申请实施例提供了一种数据协同编辑装置,所述装置配置于区块链节点,包括:
收发模块,用于接收来自第一用户端的文件编辑请求,所述文件编辑请求包括编辑第一数据文件时产生的文件增量数据密文和第二编辑权限验证信息;
验证模块,用于基于所述第二编辑权限验证信息,验证所述第一用户端是否具有文件编辑权限;
数据处理模块,用于验证通过后,存储所述文件增量数据密文,并建立所述文件增量数据密文与所述第一数据文件对应的第一数据文件密文的关联关系;
其中,所述第二编辑权限验证信息是基于从所述区块链节点获取的第一编辑权限验证信息得到的,所述第一编辑权限验证信息是所述区块链节点通过编辑权限信息加密第一随机信息得到的,所述编辑权限信息为创建所述第一数据文件的第二用户端传输至所述区块链节点的。
在一些实现方式中,验证模块,具体用于:
解密所述第二编辑权限验证信息,得到第二随机信息;
比对所述第二随机信息与所述第一随机信息是否一致;
在所述第二随机信息与所述第一随机信息一致时,验证所述第一用户端具有文件编辑权限。
在一些实现方式中,收发模块,还用于:
接收来自所述第二用户端的文件提交请求,所述文件提交请求包括所述第二用户端创建的所述第一数据文件密文、解密权限信息和所述编辑权限信息;其中,所述解密权限信息用于用户端加密文件增量数据得到文件增量数据密文;
校验所述文件提交请求,并在校验通过后,广播所述文件提交请求至所有区块链节点;
在所有区块链节点共识成功后,将所述第一数据文件密文存储于区块链上;
生成第一随机信息,通过所述编辑权限信息加密所述第一随机信息,得到并存储所述第一编辑权限验证信息。
在一些实现方式中,所述文件提交请求还包括文件签名信息,数据处理模块,还用于:
将所述文件签名信息作为所述第一数据文件密文在所述区块链节点上的文件索引。
在一些实现方式中,所述编辑权限信息为编辑权限属性树,所述解密权限信息为解密权限属性树。
在一些实现方式中,收发模块,还用于:
接收来自所述第一用户端或所述第二用户端的秘钥生成请求,并将所述秘钥生成请求广播至所有区块链节点;
基于第一随机数和第二随机数生成属性秘钥参数;所述属性秘钥参数用于用户端生成属性加密私钥;所述第二用户端通过所述属性加密私钥解密所述第一数据文件密文得到第一数据文件,所述第一用户端通过所述属性加密私钥解密所述第一数据文件密文得到第一数据文件。
在一些实现方式中,收发模块,还用于:
接收来自用户端的增量数据重传请求,将所述增量数据重传请求广播至所有区块链节点;以便所有区块链节点通知具有解密所述文件增量数据密文能力的用户端重新得到所述文件增量数据密文并上传至所述区块链。
在一些实现方式中,收发模块,还用于:
接收来自所述第二用户端的删除无效增量数据请求,删除对应的文件增量数据密文。
第六方面,本申请实施例提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请第一方面实施例所述的数据协同编辑方法。
第七方面,本申请实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请第一方面实施例所述的数据协同编辑方法。
第八方面,本申请实施例提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现本申请第一方面实施例所述的数据协同编辑方法的步骤。
本申请实施例提供的技术方案至少带来以下有益效果:
创建数据文件的用户端存储数据文件于区块链时,同时上传区块链编辑权限信息,区块链节点通过该编辑权限信息加密随机信息得到编辑权限验证信息,以验证编辑该数据文件的用户端是否具有文件编辑权限,从而实现数据文件的创建用户对数据文件编辑权限的控制。同时,创建数据文件的用户端通过属性加密技术加密数据文件,以控制其他用户端对该数据文件的查看权限。通过区块链技术解决中心化服务的信任问题,并且单一节区块链点的失效也不会影响用户数据和系统运行。此外,通过属性加密技术提升了数据的安全性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理,并不构成对本申请的不当限定。
图1是根据一示例性实施例示出的一种数据协同编辑方法的流程图。
图2是根据一示例示出的用户解密权限属性树和编辑权限属性树的示例图。
图3是根据另一示例性实施例示出的一种数据协同编辑方法的流程图。
图4是根据一示例性实施例示出的一种数据协同编辑系统的结构示意图。
图5是根据一示例性实施例示出的一种数据协同编辑装置的框图。
图6是根据另一示例性实施例示出的一种数据协同编辑装置的框图。
图7是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
互联网和信息技术的飞速发展,给社会诸多方面都带了前所未有的变革。其中人与人之前的协作方式也因互联网技术有了根本性的改变,通过将传统的实体化数据通过数字化转换为二进制数据,极大提升了数据的传输和交换效率,实现多人协作数据的高效传递和有序合并,从而提高工作效率。
现有的数据协同编辑方案主要由中心化的服务商提供,用户通过在中心化服务商进行注册,获得数据操作的相关权限,进而通过中心化服务商进行数据的存储和转发,实现用户间的数据协作。这种中心化的数据协同方式虽然可以高效的进行数据同步和存储,但中心化的数据存储会有严重的信任问题,一旦服务商被攻击或者人为导致数据泄露,将威胁用户的隐私安全。中心化的服务商可能会由于各种外部的原因导致停止运营,大概率会造成用户数据的丢失,为用户造成不可挽回的损失。
图1是根据本申请一个实施例的数据协同编辑方法的流程图。需要说明的是,本申请实施例的数据协同编辑方法可应用于本申请实施例的数据协同编辑装置。该数据协同编辑装置可被配置于用户终端等电子设备上。如图1所示,该数据协同编辑方法可以包括如下步骤。
步骤S101,从区块链节点获取存储于区块链上的第一数据文件密文,解密第一数据文件密文得到第一数据文件。
用户端需要编辑存储于区块链上的数据文件时,需要先从区块链上获取对应的数据文件。
作为一种实现方式,基于第一数据文件存储于区块链上的文件索引,从区块链节点获取第一数据文件对应的第一数据文件密文;其中,第一数据文件密文为创建第一数据文件密文的用户端通过属性加密私钥加密第一数据文件得到的;通过属性加密私钥解密第一数据文件密文,得到第一数据文件。
首先需要说明的是,由N个区块链节点Ni构建为区块链网络,每个区块链节点Ni通过在素数域中选择一个随机数αi并对外保密,再选择一个随机数β并将随机数β同步给至其他区块链节点,每个区块链节点根据随机数αi和随机数β可以生成系统公钥PK。
这里需要说明的是,用户端向区块链节点发起文件数据提交等区块链操作请求之前,用户端需要获取区块链私钥SKb与属性加密私钥SKp,属性加密私钥SKp用于对属性加密数据解密。
作为一种实现方式,用户端获取区块链私钥SKb的实现方式为:通过秘钥生成算法得到,例如secp256k1算法生成。可以理解为,用户端要对区块链进行操作则需要一个账号,区块链私钥则可以理解为操作区块链的账号,用户端提交数据、编辑数据等操作均需要此账号。
作为一种实现方式,用户端获取属性加密私钥SKp的实现方式为:用户端向每个区块链节点发送密钥生成请求,区块链节点Ni在对用户端的身份信息进行校验并存储后,根据αi和β生成属性秘钥参数用户端在收集到所有区块链节点生成的属性秘钥参数Di参数后,在本地计算生成属性加密私钥SKp
本实施例,创建数据文件的用户端通过属性加密技术加密数据文件,以控制其他用户端对该数据文件的查看权限,且通过属性加密技术提高数据的安全性。
这里需要说明的是,文件索引为创建第一数据文件密文的用户端通过用户私钥加密第一数据文件密文得到并传输至区块链节点的。
示例性的,下面以用户A创建数据文件,同时分配数据查看权限和数据编辑权限为例,对用户端创建数据文件的过程进行描述。
用户A创建或者获取原始数据文件Do,将原始数据文件Do通过属性树进行加密得到数据文件密文De,其中,属性树的属性中包含解密权限属性树Td和编辑权限属性树Te,编辑权限属性树Te为解密权限属性树Td的子集。用户A采用自己的区块链公钥PKb对上传的数据文件密文De进行签名,生成文件签名信息SD。最后用户A向区块链节点发送的数据信息D=(De,SD,Td,Te)。
示例性的,如图2所示的属性树,其中,非叶节点的节点中数据分为左右部分,左面部分代表解密权限属性,右边部分代表编辑权限属性。
示例性的,用户B通过数据文件对应的文件索引SD,获取区块链上指定的数据文件密文De。用户B采用之前生成的属性加密私钥SKp对数据文件密文De进行解密,从而获取用户A上传的数据文件Do
这里还需要说明的是,创建数据文件的用户端还可以更新上传的解密权限信息和编辑权限信息。在本实施例中,为更新解密权限属性树Td和编辑权限属性树Te
示例性的,用户A还可以更新随原始的数据文件上传至区块链的解密权限属性树Td和编辑权限属性树Te。这里需要说明的是,只有原始数据文件的上传用户端可以对原始数据文件的解密权限属性树Td和编辑权限属性树Te进行更新修改。原始数据文件的上传用户A可以对原始数据文件Do的解密权限属性树Td和编辑权限属性树Te进行更新修改。
在一些实施例中,在用户端提交权限修改请求后,区块链节点对用户端提交的修改目标寻址文件进行记录回溯,找到数据文件的前置指针为空的记录,并判断该记录的提交用户端的文件索引(SD)是否与当前文件权限修改请求的用户提交的文件索引一致,若一致则通过校验,不一致则用户没有修改属性树的权限,拒绝用户请求。用户端发起修改指定寻址地址上的文件权限修改请求,可分为2种情况,第一种情况,对查看属性树的修改,这种是一种深度修改,用户需要重新运行上述用户端向区块链节点上传原始的数据文件的过程,即将数据文件重新进行属性加密后,重新上传到区块链,区块链节点删除旧的数据文件。
在用户更新编辑权限属性树Te之后,由区块链节点重新根据Te生成并更新Sr(i)数据。后续其他用户提交编辑数据请求,需要获取新的Esr(i)数据进行解密。
步骤S102,编辑第一数据文件,获取文件增量数据,并加密文件增量数据,得到文件增量数据密文。
作为一种实现方式,编辑第一数据文件,得到编辑后的第一数据文件;通过二进制差分算法,计算第一数据文件与编辑后的第一数据文件之间的差异数据,提取差异数据作为第一数据文件的文件增量数据;通过解密权限信息对文件增量数据进行加密,得到文件增量数据密文;其中,解密权限信息为第二用户端存储第一数据文件密文至区块链时上传的。
在一些实施例中,得到文件增量数据密文之后,还包括:
修改第一数据文件存储于区块链上的文件索引,得到新的文件索引,以便将新的文件索引和文件增量数据密文同时传输至区块链节点;其中,新的文件索引用于用户端获取第一数据文件密文和文件增量数据密文。
示例性的,以用户C编辑数据文件Do,并将编辑内容提交到区块链为例对数据文件的编辑方法进行说明。用户C解密用户A上传的数据文件密文De得到原始的数据文件Do之后,对该数据文件Do进行修改,形成新的数据文件Do1。用户C在本地对数据文件Do和新的数据文件Do1通过二进制差分算法计算文件差异,并提取文件差异数据设置为文件增量数据Do1-o,用户C根据解密权限属性树Td对文件增量数据Do1-o进行属性加密生成文件增量数据密文De(o1-0),并设置修改原始的数据文件Do的寻址地址SD,更新寻址地址SD后,用户端才能获取最新的数据文件。
步骤S103,获取所有区块链节点的第一编辑权限验证信息,并基于所有区块链节点的第一编辑权限验证信息,得到所有区块链节点的第二编辑权限验证信息;其中,第一编辑权限验证信息是区块链节点通过编辑权限信息加密第一随机信息得到的,编辑权限信息为创建第一数据文件密文的用户端传输至区块链节点的;第二编辑权限验证信息用于区块链节点验证第一客户端是否具有文件编辑权限。
作为一种实现方式,针对每个区块链节点的第一编辑权限验证信息,解密第一编辑权限验证信息得到随机信息;通过区块链节点公钥加密随机信息,得到第二编辑权限验证信息;得到所有区块链节点的第二编辑权限验证信息。
在本实施例中,编辑权限信息为编辑权限属性树,解密权限信息为解密权限属性树。
示例性的,用户C需要获取所有区块链节点Ni的编辑权限验证信息Esr(i),将Esr(i)解密后获取字符串Sr(i),再将Sr(i)通过区块链节点公钥PKb进行加密,同时将所有加密Sr(i)后得到的Esr(0-N)作为数据发送。
步骤S104,将文件增量数据密文和所有区块链节点的第二编辑权限验证信息传输至区块链节点,实现数据文件编辑。
示例性的,用户C提交至区块链节点的数据Du为:Du=(De(o1-0),Esr(0-N),SD),其中,N为区块链节点的总个数。
在数据文件被编辑后,该数据文件的创建用户和其他用户可以查看和编辑最新编辑后的数据文件。例如,用户A和其他用户可以查看编辑后的新的数据文件。
需要说明的是,如果用户端不是第一个编辑第一数据文件的用户,则需要获取第一数据文件密文和文件增量数据密文,从而获取最新的数据文件,从而对其进行编辑。在这种情况下,有可能存在异常情况,例如,用户端无法解密该文件增量数据密文。
由此,在一些实施例中,从区块链节点获取第一数据文件密文和文件增量数据密文;解密第一数据文件密文和文件增量数据密文;在解密文件增量数据密文失败后,向区块链节点发送增量数据重传请求;以便所有区块链节点通知具有解密文件增量数据密文能力的用户端重新得到文件增量数据密文并上传至区块链。
示例性的,用户B和用户A通过查询区块链上SD的后继数据块,查找新增的数据块,获取新增的数据块的增量数据密文,并对该增量数据文件密文和原始的数据文件密文进行解密与合并,从而获取到更新后的数据文件。在解密增量数据文件密文时,例如当用户B可以解密原始的数据文件密文得到Do,但无法解密部分增量数据文件密文De(o1-0)时,表明该增量数据文件密文的上传用户C在上传数据时,没有严格采用原始的属性树加密,此时用户B可向区块链发起广播,以请求可以解密该增量数据文件密文的用户采用原始解密权限树Td进行重新加密上传,如果有用户响应该通知,则流程终止;如果所有用户不能响应该请求,最终由原始数据文件的上传用户A处理该请求。如果用户A也无法解密该增量数据文件密文,则表示该增量数据块无效,由用户A向区块链发起删除无效增量数据块请求,以删除该不能解密的增量数据块。
本申请实施例的数据协同编辑方法,创建数据文件的用户端存储数据文件于区块链时,同时上传区块链编辑权限信息,区块链节点通过该编辑权限信息加密随机信息得到编辑权限验证信息,以验证编辑该数据文件的用户端是否具有文件编辑权限,从而实现数据文件的创建用户对数据文件编辑权限的控制。同时,创建数据文件的用户端通过属性加密技术加密数据文件,以控制其他用户端对该数据文件的查看权限。通过区块链技术解决中心化服务的信任问题,并且单一节区块链点的失效也不会影响用户数据和系统运行。此外,通过属性加密技术提升了数据的安全性。
在上述实施例的基础上,图3是根据本申请一个实施例的数据协同编辑方法的流程图。需要说明的是,本申请实施例的数据协同编辑方法可应用于本申请实施例的数据协同编辑装置。该数据协同编辑装置可被配置于区块链节点等电子设备上。如图3所示,该数据协同编辑方法可以包括如下步骤。
步骤S301,接收来自第一用户端的文件编辑请求,文件编辑请求包括编辑第一数据文件时产生的文件增量数据密文和第二编辑权限验证信息;其中,第二编辑权限验证信息是基于从区块链节点获取的第一编辑权限验证信息得到的,第一编辑权限验证信息是区块链节点通过编辑权限信息加密第一随机信息得到的,编辑权限信息为创建第一数据文件的第二用户端传输至区块链节点的。
还需要说明的是,接收文件编辑请求之前,需要先接收并存储该文件编辑请求对应的数据文件。
以上述实施例中的示例进行说明,示例性的,用户A发布通过属性加密后的数据文件至区块链网络之后,区块链节点校验用户A发布的数据文件,校验通过后在其他区块链节点间广播该数据文件。
作为一种实现方式,区块链节点校验用户A上传的数据文件的实现方式为:根据用户A发送密钥生成请求用于生成属性加密私钥SKp时,存储于区块链节点的用户公钥信息来校验用户A的合法性。根据用户A上传的数据文件密文De、文件签名信息SD进行签名校验,以确定数据的安全性。
若以上校验通过,则在区块链中广播该文件操作请求,并在其他节点中继续校验。在所有区块链节点共识成功后,用户A创建的数据文件被存储到区块链上,并且以文件签名信息SD作为该数据文件的在区块链节点上的寻址地址。
区块链节点会读取用户A上传的编辑权限属性树Te,并在区块链节点中生成随机信息,例如生成随机的字符串Sr,并将字符串Sr以文件签名信息SD进行映射存储,即存储该数据文件相关的随机信息,该随机信息用于验证用户的编辑权限。当有用户请求该数据文件后,区块链节点用编辑权限属性树Te对该字符串Sr进行属性加密,生成编辑权限验证信息Esr,区块链节点将该编辑权限验证信息Esr和其他数据一并发送给该用户。
在存储该数据文件之后,才能接收用户端对该数据文件的文件编辑请求。
步骤S302,基于第二编辑权限验证信息,验证第一用户端是否具有文件编辑权限。
区块链节点对于编辑用户端上传的数据需要进行校验,校验通过之后进行存储。
对用户端是否具有编辑权限进行校验,作为一种实现方式,解密第二编辑权限验证信息,得到第二随机信息;比对第二随机信息与第一随机信息是否一致;在第二随机信息与第一随机信息一致时,验证第一用户端具有文件编辑权限。
示例性的,解密用户C提交的ESr(i)数据得到随机信息,通过寻址地址SD查找本地存储的字符串Sr,并判断两者是否相等,如果相等,则接受用户C的文件编辑请求。如果不相等,则表示用户C没有对该数据文件Do的编辑权限,用户C提交的数据不能被存储于区块链上。
步骤S303,验证通过后,存储文件增量数据密文,并建立文件增量数据密文与第一数据文件对应的第一数据文件密文的关联关系。
还需要说明的是,在校验用户端是否具有编辑权限之前,还需要校验用户端是否为合法用户。
示例性的,区块链节点接收用户C的文件编辑请求之后,则区块链节点创建增量数据块,并建立该增量数据块与前一数据块之间的双向指针,将原始数据文件与增量数据文件连接起来。
本申请实施例的数据协同编辑方法,创建数据文件的用户端存储数据文件于区块链时,同时上传区块链编辑权限信息,区块链节点通过该编辑权限信息加密随机信息得到编辑权限验证信息,以验证编辑该数据文件的用户端是否具有文件编辑权限,从而实现数据文件的创建用户对数据文件编辑权限的控制。同时,创建数据文件的用户端通过属性加密技术加密数据文件,以控制其他用户端对该数据文件的查看权限。通过区块链技术解决中心化服务的信任问题,并且单一节区块链点的失效也不会影响用户数据和系统运行。此外,通过属性加密技术提升了数据的安全性。
在上述任一实施例的基础上,图4是根据一示例示出的一种数据协同编辑系统的结构图。参见图4,该数据协同编辑系统包括多个区块链节点401和多个用户端402。用户端402上传创建的数据文件至区块链节点401,以将数据文件存储于区块链。多个用户端402可以协同编辑该数据文件,并将编辑后的新的数据文件上传至区块链,从而实现数据的协同编辑。
对应上述方法实施例,图5是根据一示例性实施例示出的一种数据协同编辑装置的框图,该装置被配置于用户端。参照图5,该数据协同编辑装置可以包括:文件获取模块501、文件处理模块502、信息生成模块503和数据传输模块504。
具体地,文件获取模块501,用于从区块链节点获取存储于区块链上的第一数据文件密文,解密第一数据文件密文得到第一数据文件;
文件处理模块502,用于编辑第一数据文件,获取文件增量数据,并加密文件增量数据,得到文件增量数据密文;
信息生成模块503,用于获取所有区块链节点的第一编辑权限验证信息,并基于所有区块链节点的第一编辑权限验证信息,得到所有区块链节点的第二编辑权限验证信息;其中,第一编辑权限验证信息是区块链节点通过编辑权限信息加密第一随机信息得到的,编辑权限信息为创建第一数据文件密文的用户端传输至区块链节点的;第二编辑权限验证信息用于区块链节点验证第一客户端是否具有文件编辑权限;
数据传输模块504,用于将文件增量数据密文和所有区块链节点的第二编辑权限验证信息传输至区块链节点,实现数据文件编辑。
在一些实现方式中,文件获取模块501,还用于:
从区块链节点获取第一数据文件密文和文件增量数据密文;
解密第一数据文件密文和文件增量数据密文;
在解密文件增量数据密文失败后,向区块链节点发送增量数据重传请求;以便所有区块链节点通知具有解密文件增量数据密文能力的用户端重新得到文件增量数据密文并上传至区块链。
在一些实现方式中,文件处理模块502,具体用于:
编辑第一数据文件,得到编辑后的第一数据文件;
通过二进制差分算法,计算第一数据文件与编辑后的第一数据文件之间的差异数据,提取差异数据作为第一数据文件的文件增量数据;
通过解密权限信息对文件增量数据进行加密,得到文件增量数据密文;其中,解密权限信息为第二用户端存储第一数据文件密文至区块链时上传的。
在一些实现方式中,信息生成模块503,具体用于:
针对每个区块链节点的第一编辑权限验证信息,解密第一编辑权限验证信息得到随机信息;
通过区块链节点公钥加密随机信息,得到第二编辑权限验证信息;
得到所有区块链节点的第二编辑权限验证信息。
在一些实现方式中,文件获取模块501从区块链节点获取存储于区块链上的第一数据文件密文,解密第一数据文件密文得到第一数据文件时,具体用于:
基于第一数据文件存储于区块链上的文件索引,从区块链节点获取第一数据文件对应的第一数据文件密文;其中,第一数据文件密文为创建第一数据文件密文的用户端通过属性加密私钥加密第一数据文件得到的;
通过属性加密私钥解密第一数据文件密文,得到第一数据文件。
在一些实现方式中,文件索引为创建第一数据文件密文的用户端通过用户私钥加密第一数据文件密文得到并传输至区块链节点的。
在一些实现方式中,文件处理模块502,还用于:
修改第一数据文件存储于区块链上的文件索引,得到新的文件索引,以便将新的文件索引和文件增量数据密文同时传输至区块链节点;其中,新的文件索引用于用户端获取第一数据文件密文和文件增量数据密文。
在一些实现方式中,编辑权限信息为编辑权限属性树,解密权限信息为解密权限属性树。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例的数据协同编辑装置,创建数据文件的用户端存储数据文件于区块链时,同时上传区块链编辑权限信息,区块链节点通过该编辑权限信息加密随机信息得到编辑权限验证信息,以验证编辑该数据文件的用户端是否具有文件编辑权限,从而实现数据文件的创建用户对数据文件编辑权限的控制。同时,创建数据文件的用户端通过属性加密技术加密数据文件,以控制其他用户端对该数据文件的查看权限。通过区块链技术解决中心化服务的信任问题,并且单一节区块链点的失效也不会影响用户数据和系统运行。此外,通过属性加密技术提升了数据的安全性。
对应上述方法实施例,图6是根据一示例性实施例示出的一种数据协同编辑装置的框图,该装置被配置于区块链节点。参照图6,该数据协同编辑装置可以包括:收发模块601、验证模块602和数据处理模块603。
具体地,收发模块601,用于接收来自第一用户端的文件编辑请求,文件编辑请求包括编辑第一数据文件时产生的文件增量数据密文和第二编辑权限验证信息;
验证模块602,用于基于第二编辑权限验证信息,验证第一用户端是否具有文件编辑权限;
数据处理模块603,用于验证通过后,存储文件增量数据密文,并建立文件增量数据密文与第一数据文件对应的第一数据文件密文的关联关系;
其中,第二编辑权限验证信息是基于从区块链节点获取的第一编辑权限验证信息得到的,第一编辑权限验证信息是区块链节点通过编辑权限信息加密第一随机信息得到的,编辑权限信息为创建第一数据文件的第二用户端传输至区块链节点的。
在一些实现方式中,验证模块602,具体用于:
解密第二编辑权限验证信息,得到第二随机信息;
比对第二随机信息与第一随机信息是否一致;
在第二随机信息与第一随机信息一致时,验证第一用户端具有文件编辑权限。
在一些实现方式中,收发模块601,还用于:
接收来自第二用户端的文件提交请求,文件提交请求包括第二用户端创建的第一数据文件密文、解密权限信息和编辑权限信息;其中,解密权限信息用于用户端加密文件增量数据得到文件增量数据密文;
校验文件提交请求,并在校验通过后,广播文件提交请求至所有区块链节点;
在所有区块链节点共识成功后,将第一数据文件密文存储于区块链上;
生成第一随机信息,通过编辑权限信息加密第一随机信息,得到并存储第一编辑权限验证信息。
在一些实现方式中,文件提交请求还包括文件签名信息,数据处理模块603,还用于:
将文件签名信息作为第一数据文件密文在区块链节点上的文件索引。
在一些实现方式中,编辑权限信息为编辑权限属性树,解密权限信息为解密权限属性树。
在一些实现方式中,收发模块601,还用于:
接收来自第一用户端或第二用户端的秘钥生成请求,并将秘钥生成请求广播至所有区块链节点;
基于第一随机数和第二随机数生成属性秘钥参数;属性秘钥参数用于用户端生成属性加密私钥;第二用户端通过属性加密私钥解密第一数据文件密文得到第一数据文件,第一用户端通过属性加密私钥解密第一数据文件密文得到第一数据文件。
在一些实现方式中,收发模块601,还用于:
接收来自用户端的增量数据重传请求,将增量数据重传请求广播至所有区块链节点;以便所有区块链节点通知具有解密文件增量数据密文能力的用户端重新得到文件增量数据密文并上传至区块链。
在一些实现方式中,收发模块601,还用于:
接收来自第二用户端的删除无效增量数据请求,删除对应的文件增量数据密文。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例的数据协同编辑装置,创建数据文件的用户端存储数据文件于区块链时,同时上传区块链编辑权限信息,区块链节点通过该编辑权限信息加密随机信息得到编辑权限验证信息,以验证编辑该数据文件的用户端是否具有文件编辑权限,从而实现数据文件的创建用户对数据文件编辑权限的控制。同时,创建数据文件的用户端通过属性加密技术加密数据文件,以控制其他用户端对该数据文件的查看权限。通过区块链技术解决中心化服务的信任问题,并且单一节区块链点的失效也不会影响用户数据和系统运行。此外,通过属性加密技术提升了数据的安全性。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图7所示,是根据本申请实施例的用于实现数据协同编辑的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图7所示,该电子设备包括:一个或多个处理器701、存储器702,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器701为例。
存储器702即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的数据协同编辑的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的数据协同编辑的方法。
存储器702作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的数据协同编辑的方法对应的程序指令/模块(例如,附图6所示的收发模块601、验证模块602和数据处理模块603)。处理器701通过运行存储在存储器702中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的数据协同编辑的方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据数据协同编辑的电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至数据协同编辑的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
数据协同编辑的方法的电子设备还可以包括:输入装置703和输出装置704。处理器701、存储器702、输入装置703和输出装置704可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置703可接收输入的数字或字符信息,以及产生与数据协同编辑的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置704可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
在示例性实施例中,还提供了一种计算机程序产品,当计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述方法。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (21)

1.一种数据协同编辑方法,其特征在于,所述方法应用于用户端,包括:
从区块链节点获取存储于区块链上的第一数据文件密文,解密所述第一数据文件密文得到第一数据文件;
编辑所述第一数据文件,获取文件增量数据,并加密所述文件增量数据,得到文件增量数据密文;
获取所有区块链节点的第一编辑权限验证信息,并基于所述所有区块链节点的第一编辑权限验证信息,得到所有区块链节点的第二编辑权限验证信息;其中,所述第一编辑权限验证信息是所述区块链节点通过编辑权限信息加密第一随机信息得到的,所述编辑权限信息为创建所述第一数据文件密文的用户端传输至所述区块链节点的;所述第二编辑权限验证信息用于所述区块链节点验证所述第一客户端是否具有文件编辑权限;
将所述文件增量数据密文和所有区块链节点的第二编辑权限验证信息传输至所述区块链节点,实现数据文件编辑。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从所述区块链节点获取所述第一数据文件密文和所述文件增量数据密文;
解密所述第一数据文件密文和所述文件增量数据密文;
在解密所述文件增量数据密文失败后,向所述区块链节点发送增量数据重传请求;以便所有区块链节点通知具有解密所述文件增量数据密文能力的用户端重新得到所述文件增量数据密文并上传至所述区块链。
3.根据权利要求1所述的方法,其特征在于,所述编辑所述第一数据文件,获取文件增量数据,并加密所述文件增量数据,得到文件增量数据密文;包括:
编辑所述第一数据文件,得到编辑后的第一数据文件;
通过二进制差分算法,计算所述第一数据文件与所述编辑后的第一数据文件之间的差异数据,提取所述差异数据作为所述第一数据文件的文件增量数据;
通过解密权限信息对所述文件增量数据进行加密,得到文件增量数据密文;其中,所述解密权限信息为所述第二用户端存储所述第一数据文件密文至所述区块链时上传的。
4.根据权利要求1所述的方法,其特征在于,所述基于所述所有区块链节点的第一编辑权限验证信息,得到所有区块链节点的第二编辑权限验证信息;包括:
针对每个区块链节点的第一编辑权限验证信息,解密所述第一编辑权限验证信息得到随机信息;
通过区块链节点公钥加密所述随机信息,得到第二编辑权限验证信息;
得到所有区块链节点的第二编辑权限验证信息。
5.根据权利要求1所述的方法,其特征在于,所述从区块链节点获取存储于区块链上的第一数据文件密文,解密所述第一数据文件密文得到第一数据文件,包括:
基于所述第一数据文件存储于所述区块链上的文件索引,从区块链节点获取所述第一数据文件对应的第一数据文件密文;其中,所述第一数据文件密文为所述创建所述第一数据文件密文的用户端通过属性加密私钥加密所述第一数据文件得到的;
通过属性加密私钥解密所述第一数据文件密文,得到所述第一数据文件。
6.根据权利要求5所述的方法,其特征在于,所述文件索引为所述创建所述第一数据文件密文的用户端通过用户私钥加密所述第一数据文件密文得到并传输至所述区块链节点的。
7.根据权利要求6所述的方法,其特征在于,所述得到文件增量数据密文之后,还包括:
修改所述第一数据文件存储于区块链上的文件索引,得到新的文件索引,以便将所述新的文件索引和所述文件增量数据密文同时传输至所述区块链节点;其中,所述新的文件索引用于用户端获取所述第一数据文件密文和所述文件增量数据密文。
8.根据权利要求3所述的方法,其特征在于,所述编辑权限信息为编辑权限属性树,所述解密权限信息为解密权限属性树。
9.一种数据协同编辑方法,其特征在于,所述方法应用于区块链节点,包括:
接收来自第一用户端的文件编辑请求,所述文件编辑请求包括编辑第一数据文件时产生的文件增量数据密文和第二编辑权限验证信息;
基于所述第二编辑权限验证信息,验证所述第一用户端是否具有文件编辑权限;
验证通过后,存储所述文件增量数据密文,并建立所述文件增量数据密文与所述第一数据文件对应的第一数据文件密文的关联关系;
其中,所述第二编辑权限验证信息是基于从所述区块链节点获取的第一编辑权限验证信息得到的,所述第一编辑权限验证信息是所述区块链节点通过编辑权限信息加密第一随机信息得到的,所述编辑权限信息为创建所述第一数据文件的第二用户端传输至所述区块链节点的。
10.根据权利要求9所述的方法,其特征在于,所述基于所述第二编辑权限验证信息,验证所述第一用户端是否具有文件编辑权限,包括:
解密所述第二编辑权限验证信息,得到第二随机信息;
比对所述第二随机信息与所述第一随机信息是否一致;
在所述第二随机信息与所述第一随机信息一致时,验证所述第一用户端具有文件编辑权限。
11.根据权利要求9所述的方法,其特征在于,所述接收来自第一用户端的文件编辑请求之前,还包括:
接收来自所述第二用户端的文件提交请求,所述文件提交请求包括所述第二用户端创建的所述第一数据文件密文、解密权限信息和所述编辑权限信息;其中,所述解密权限信息用于用户端加密文件增量数据得到文件增量数据密文;
校验所述文件提交请求,并在校验通过后,广播所述文件提交请求至所有区块链节点;
在所有区块链节点共识成功后,将所述第一数据文件密文存储于区块链上;
生成第一随机信息,通过所述编辑权限信息加密所述第一随机信息,得到并存储所述第一编辑权限验证信息。
12.根据权利要求9所述的方法,其特征在于,所述文件提交请求还包括文件签名信息,所述将所述第一数据文件密文存储于区块链上,还包括:
将所述文件签名信息作为所述第一数据文件密文在所述区块链节点上的文件索引。
13.根据权利要求11所述的方法,其特征在于,所述编辑权限信息为编辑权限属性树,所述解密权限信息为解密权限属性树。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
接收来自所述第一用户端或所述第二用户端的秘钥生成请求,并将所述秘钥生成请求广播至所有区块链节点;
基于第一随机数和第二随机数生成属性秘钥参数;所述属性秘钥参数用于用户端生成属性加密私钥;所述第二用户端通过所述属性加密私钥解密所述第一数据文件密文得到第一数据文件,所述第一用户端通过所述属性加密私钥解密所述第一数据文件密文得到第一数据文件。
15.根据权利要求9所述的方法,其特征在于,所述方法还包括:
接收来自用户端的增量数据重传请求,将所述增量数据重传请求广播至所有区块链节点;以便所有区块链节点通知具有解密所述文件增量数据密文能力的用户端重新得到所述文件增量数据密文并上传至所述区块链。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
接收来自所述第二用户端的删除无效增量数据请求,删除对应的文件增量数据密文。
17.一种数据协同编辑系统,其特征在于,包括:
用户端,被配置为执行如权利要求1至8中任一项所述的数据协同编辑方法;
区块链节点,被配置为执行如权利要求9至16中任一项所述的数据协同编辑方法。
18.一种数据协同编辑装置,其特征在于,所述装置配置于用户端,包括:
文件获取模块,用于从区块链节点获取存储于区块链上的第一数据文件密文,解密所述第一数据文件密文得到第一数据文件;
文件处理模块,用于编辑所述第一数据文件,获取文件增量数据,并加密所述文件增量数据,得到文件增量数据密文;
信息生成模块,用于获取所有区块链节点的第一编辑权限验证信息,并基于所述所有区块链节点的第一编辑权限验证信息,得到所有区块链节点的第二编辑权限验证信息;其中,所述第一编辑权限验证信息是所述区块链节点通过编辑权限信息加密第一随机信息得到的,所述编辑权限信息为创建所述第一数据文件密文的用户端传输至所述区块链节点的;所述第二编辑权限验证信息用于所述区块链节点验证所述第一客户端是否具有文件编辑权限;
数据传输模块,用于将所述文件增量数据密文和所有区块链节点的第二编辑权限验证信息传输至所述区块链节点,实现数据文件编辑。
19.一种数据协同编辑装置,其特征在于,所述装置配置于区块链节点,包括:
收发模块,用于接收来自第一用户端的文件编辑请求,所述文件编辑请求包括编辑第一数据文件时产生的文件增量数据密文和第二编辑权限验证信息;
验证模块,用于基于所述第二编辑权限验证信息,验证所述第一用户端是否具有文件编辑权限;
数据处理模块,用于验证通过后,存储所述文件增量数据密文,并建立所述文件增量数据密文与所述第一数据文件对应的第一数据文件密文的关联关系;
其中,所述第二编辑权限验证信息是基于从所述区块链节点获取的第一编辑权限验证信息得到的,所述第一编辑权限验证信息是所述区块链节点通过编辑权限信息加密第一随机信息得到的,所述编辑权限信息为创建所述第一数据文件的第二用户端传输至所述区块链节点的。
20.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至8中任一项所述的数据协同编辑方法,或者,权利要求9至16中任一项所述的数据协同编辑方法。
21.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1至8中任一项所述的数据协同编辑方法,或者,权利要求9至16中任一项所述的数据协同编辑方法。
CN202311319693.6A 2023-10-11 2023-10-11 数据协同编辑方法、装置及系统 Pending CN117540707A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311319693.6A CN117540707A (zh) 2023-10-11 2023-10-11 数据协同编辑方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311319693.6A CN117540707A (zh) 2023-10-11 2023-10-11 数据协同编辑方法、装置及系统

Publications (1)

Publication Number Publication Date
CN117540707A true CN117540707A (zh) 2024-02-09

Family

ID=89792637

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311319693.6A Pending CN117540707A (zh) 2023-10-11 2023-10-11 数据协同编辑方法、装置及系统

Country Status (1)

Country Link
CN (1) CN117540707A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104657170A (zh) * 2013-11-25 2015-05-27 腾讯科技(上海)有限公司 一种数据更新方法、装置及系统
CN113536389A (zh) * 2021-06-15 2021-10-22 复旦大学 一种细粒度可控的去中心化可编辑区块链构造方法和系统
CN115694808A (zh) * 2022-10-31 2023-02-03 上海晏鼠计算机技术股份有限公司 一种基于区块链的云端协作系统
CN116226926A (zh) * 2023-05-08 2023-06-06 东信和平科技股份有限公司 一种基于区块链的数据安全交互方法、装置、设备和介质
US20230269239A1 (en) * 2022-02-23 2023-08-24 Microsoft Technology Licensing, Llc Secure collaboration with file encryption on download

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104657170A (zh) * 2013-11-25 2015-05-27 腾讯科技(上海)有限公司 一种数据更新方法、装置及系统
CN113536389A (zh) * 2021-06-15 2021-10-22 复旦大学 一种细粒度可控的去中心化可编辑区块链构造方法和系统
US20230269239A1 (en) * 2022-02-23 2023-08-24 Microsoft Technology Licensing, Llc Secure collaboration with file encryption on download
CN115694808A (zh) * 2022-10-31 2023-02-03 上海晏鼠计算机技术股份有限公司 一种基于区块链的云端协作系统
CN116226926A (zh) * 2023-05-08 2023-06-06 东信和平科技股份有限公司 一种基于区块链的数据安全交互方法、装置、设备和介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
罗彬等: "可编辑区块链的研究现状与挑战", 《信息安全学报》, vol. 8, no. 4, 31 July 2023 (2023-07-31), pages 62 - 84 *

Similar Documents

Publication Publication Date Title
EP3916604B1 (en) Method and apparatus for processing privacy data of block chain, device, storage medium and computer program product
KR102487137B1 (ko) 블록체인 기반의 다자간 컴퓨팅 방법, 장치, 기기 및 매체
US10965713B2 (en) Centrally managing data for orchestrating and managing user accounts and access control and security policies remotely across multiple devices
US11005812B2 (en) Autonomous decentralization of centralized stateful security services with systematic tamper resistance
US11082482B2 (en) Block chain encoding with fair delay for distributed network devices
EP1522167B1 (en) A method and an apparatus for retrieving a value secured in a key management system
CN111737366B (zh) 区块链的隐私数据处理方法、装置、设备以及存储介质
JP7069286B2 (ja) プライバシーデータの処理方法、プライバシーデータの処理装置、機器及び媒体
CN110771091A (zh) 用于网络连接式装置的安全的系统和方法
CN111352996A (zh) 基于区块链网络的数据共享方法、装置、设备及介质
US10749670B2 (en) Block chain decoding with fair delay for distributed network devices
CN109474616B (zh) 多平台数据共享方法和装置及计算机可读存储介质
CN112100144A (zh) 区块链文件共享方法、装置、存储介质及电子设备
CN112182109A (zh) 基于区块链的分布式数据编码存储方法和电子设备
CN113517981B (zh) 一种密钥管理方法、代码版本的管理方法及装置
CN111400743B (zh) 基于区块链网络的事务处理方法、装置、电子设备和介质
CN117540707A (zh) 数据协同编辑方法、装置及系统
CN112565156B (zh) 信息注册方法、装置和系统
CN109657481B (zh) 数据管理方法及装置
US10554789B2 (en) Key based authorization for programmatic clients
CN110611674A (zh) 不同计算机系统之间的协议交互方法、系统及存储介质
CN116032519B (zh) 数据处理方法、设备及计算机可读存储介质
CN111756675B (zh) 数据处理方法、装置、设备和系统
CN112187462B (zh) 数据处理方法、装置、电子设备及计算机可读介质
CN118041530A (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