开放版式文档OFD访问控制方法和装置转让专利

申请号 : CN202311191652.3

文献号 : CN116933296B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蔡佳杰张治

申请人 : 福昕鲲鹏(北京)信息科技有限公司

摘要 :

本发明提供一种开放版式文档OFD访问控制方法和装置,涉及数据安全技术领域,该方法包括:第一设备对第一用户的OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件;第一设备将目标OFD文件上传至分布式存储网络,获取目标OFD文件在分布式存储网络的存储地址;第一设备将目标OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约;智能合约用于基于维护的OFD文件地址及访问策略合集数据清单,对第二用户提交的属性集合进行验证,控制第二用户对OFD文件的访问。本发明的方法实现了对OFD文件的精准有效的访问控制。

权利要求 :

1.一种开放版式文档OFD访问控制方法,其特征在于,包括:

第一设备对第一用户的OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件;所述目标图元对象为加密后的图元对象;所述目标OFD文件为包含加密后的图元对象的OFD文件;所述第一用户为所述OFD文件的拥有者;

第一设备将所述目标OFD文件上传至分布式存储网络,获取所述目标OFD文件在所述分布式存储网络的存储地址;

第一设备将所述目标OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约;所述OFD文件的访问策略合集用于指示OFD文件中的各个图元对象的访问策略;所述智能合约用于基于维护的OFD文件地址及访问策略合集数据清单,对第二用户提交的属性集合进行验证,控制第二用户对所述OFD文件的访问;

所述智能合约用于以下至少一项:

为各个用户分配属性集合;

根据维护的OFD文件地址、访问策略合集数据清单以及第二用户的属性集合,确定第二用户对应的至少一个目标OFD文件的地址列表;所述目标OFD文件是所述第二用户具有访问权限的目标OFD文件;所述第二用户为所述目标OFD文件的使用者;

根据维护的OFD文件地址及访问策略合集数据清单,对第二用户提交的属性集合进行验证,根据第二用户提交的需访问的目标OFD文件在分布式存储网络的存储地址,生成解密后的OFD文件;

所述对第二用户提交的属性集合进行验证,包括:

所述智能合约基于全同态加密算法对OFD文件的访问策略合集进行加密,确定访问策略密文;

所述智能合约基于全同态加密算法对第二用户的属性集合进行加密,确定用户属性密文;

所述智能合约基于所述访问策略密文和用户属性密文,确定第二用户对所述目标OFD文件中的各个目标图元对象的访问权限的验证结果。

2.根据权利要求1所述的开放版式文档OFD访问控制方法,其特征在于,所述第一设备对第一用户的OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件,包括:第一设备利用密文策略属性基加密算法CP‑ABE对OFD文件中的至少一个图元对象进行加密,生成所述目标图元对象和目标OFD文件。

3.根据权利要求1所述的开放版式文档OFD访问控制方法,其特征在于,所述智能合约基于所述访问策略密文和用户属性密文,确定第二用户对所述目标OFD文件中的各个目标图元对象的访问权限的验证结果,包括:利用如下公式确定第二用户对所述目标OFD文件中的各个目标图元对象的访问权限的验证结果:;

其中,SEAL.Decrypt表示全同态解密算法;Sa表示访问策略密文;Sp表示用户属性密文; 表示验证结果。

4.一种开放版式文档OFD访问控制方法,其特征在于,包括:

第二设备将第二用户的属性集合提交至智能合约,获取目标OFD文件地址列表集;目标OFD文件为所述智能合约基于所述第二用户的属性集合确定的所述第二用户具有访问权限的目标OFD文件;所述目标OFD文件为包含加密后的图元对象的OFD文件;

第二设备将第二用户的属性集合和第二用户需要访问的目标OFD文件在分布式存储网络上的存储地址提交至智能合约,得到解密后的OFD文件;所述OFD文件为智能合约基于第二用户的属性集合以及OFD文件的访问策略合集,对目标OFD文件中的目标图元对象进行解密后得到的;所述目标图元对象为智能合约基于第二用户的属性集合以及OFD文件的访问策略合集确定的第二用户具有访问权限的目标图元对象;所述智能合约用于将第一设备对应的OFD文件的访问策略密文和第二设备对应的属性集密文通过全同态解密算法进行匹配后,利用CP‑ABE解密OFD文件并发送至第二设备;所述第一设备用于对OFD文件进行加密并将加密后的OFD文件的访问策略发送至智能合约。

5.一种开放版式文档OFD访问控制装置,其特征在于,包括:

加密模块,用于对第一用户的OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件;所述目标图元对象为加密后的图元对象;所述目标OFD文件为包含加密后的图元对象的OFD文件;所述第一用户为OFD文件的拥有者;

存储模块,用于将所述目标OFD文件上传至分布式存储网络,获取所述目标OFD文件在所述分布式存储网络的存储地址;

访问控制模块,用于将所述目标OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约;所述OFD文件的访问策略合集用于指示OFD文件中的各个图元对象的访问策略;所述智能合约用于基于维护的OFD文件地址及访问策略合集数据清单,对第二用户提交的属性集合进行验证,控制第二用户对OFD文件的访问;

所述智能合约用于以下至少一项:

为各个用户分配属性集合;

根据维护的OFD文件地址、访问策略合集数据清单以及第二用户的属性集合,确定第二用户对应的至少一个目标OFD文件的地址列表;所述目标OFD文件是所述第二用户具有访问权限的目标OFD文件;所述第二用户为所述目标OFD文件的使用者;

根据维护的OFD文件地址及访问策略合集数据清单,对第二用户提交的属性集合进行验证,根据第二用户提交的需访问的目标OFD文件在分布式存储网络的存储地址,生成解密后的OFD文件;

所述对第二用户提交的属性集合进行验证,包括:

所述智能合约基于全同态加密算法对OFD文件的访问策略合集进行加密,确定访问策略密文;

所述智能合约基于全同态加密算法对第二用户的属性集合进行加密,确定用户属性密文;

所述智能合约基于所述访问策略密文和用户属性密文,确定第二用户对所述目标OFD文件中的各个目标图元对象的访问权限的验证结果。

6.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述的开放版式文档OFD访问控制方法。

7.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至4任一项所述的开放版式文档OFD访问控制方法。

说明书 :

开放版式文档OFD访问控制方法和装置

技术领域

[0001] 本发明涉及数据安全技术领域,尤其涉及一种开放版式文档OFD访问控制方法和装置。

背景技术

[0002] 开放版式文档(Open Fixed‑layout Document,OFD)属于中国的一种自主的文件存储格式,具有完全自主的知识产权,用于实现电子公文格式的统一,方便地进行电子文档的存储、读取以及编辑。
[0003] 相关技术中,仍无有效的方法实现OFD文档访问权限的精准控制,使得OFD文档的访问和存储存在着巨大的安全隐患。因此如何实现对OFD文档访问权限的精准控制从而提升OFD文档的安全性,是本领域技术人员亟需解决的技术问题。

发明内容

[0004] 针对现有技术中的问题,本发明实施例提供一种开放版式文档OFD访问控制方法和装置。
[0005] 具体地,本发明实施例提供了以下技术方案:
[0006] 第一方面,本发明实施例提供了一种开放版式文档OFD访问控制方法,包括:
[0007] 第一设备对第一用户的OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件;目标图元对象为加密后的图元对象;目标OFD文件为包含加密后的图元对象的OFD文件;第一用户为OFD文件的拥有者;
[0008] 第一设备将目标OFD文件上传至分布式存储网络,获取目标OFD文件在分布式存储网络的存储地址;
[0009] 第一设备将目标OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约;OFD文件的访问策略合集用于指示OFD文件中的各个图元对象的访问策略;智能合约用于基于维护的OFD文件地址及访问策略合集数据清单,对第二用户提交的属性集合进行验证,控制第二用户对OFD文件的访问。
[0010] 进一步地,第一设备对OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件,包括:
[0011] 第一设备利用密文策略属性基加密算法CP‑ABE对OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件。
[0012] 进一步地,智能合约用于以下至少一项:
[0013] 为各个用户分配属性集合;
[0014] 根据维护的OFD文件地址、访问策略合集数据清单以及第二用户的属性集合,确定第二用户对应的至少一个目标OFD文件的地址列表;目标OFD文件是第二用户具有访问权限的目标OFD文件;第二用户为目标OFD文件的使用者;
[0015] 根据维护的OFD文件地址及访问策略合集数据清单,对第二用户提交的属性集合进行验证,根据第二用户提交的需访问的目标OFD文件在分布式存储网络的存储地址,生成解密后的OFD文件。
[0016] 进一步地,对第二用户提交的属性集合进行验证,包括:
[0017] 智能合约基于全同态加密算法对OFD文件的访问策略合集进行加密,确定访问策略密文;
[0018] 智能合约基于全同态加密算法对第二用户的属性集合进行加密,确定用户属性密文;
[0019] 智能合约基于访问策略密文和用户属性密文,确定第二用户对目标OFD文件中的各个目标图元对象的访问权限的验证结果。
[0020] 进一步地,智能合约基于访问策略密文和用户属性密文,确定第二用户对目标OFD文件中的各个目标图元对象的访问权限的验证结果,包括:
[0021] 利用如下公式确定第二用户对目标OFD文件中的各个目标图元对象的访问权限的验证结果:
[0022] SEAL.Decrypt(Sa*Sp);
[0023] 其中,SEAL.Decrypt表示全同态解密算法;Sa表示访问策略密文;Sp表示用户属性密文;SEAL.Decrypt(Sa*Sp)表示验证结果。
[0024] 第二方面,本发明实施例提供了一种开放版式文档OFD访问控制方法,包括:
[0025] 第二设备将第二用户的属性集合提交至智能合约,获取目标OFD文件地址列表集;目标OFD文件为智能合约基于第二用户的属性集合确定的第二用户具有访问权限的目标OFD文件;目标OFD文件为包含加密后的图元对象的OFD文件;
[0026] 第二设备将第二用户的属性集合和第二用户需要访问的目标OFD文件在分布式存储网络上的存储地址提交至智能合约,得到解密后的OFD文件;OFD文件为智能合约基于第二用户的属性集合以及OFD文件的访问策略合集,对目标OFD文件中的目标图元对象进行解密后得到的;目标图元对象为智能合约基于第二用户的属性集合以及OFD文件的访问策略合集确定的第二用户具有访问权限的目标图元对象。
[0027] 第三方面,本发明实施例还提供了一种开放版式文档OFD访问控制装置,包括:
[0028] 加密模块,用于对第一用户的OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件;所述目标图元对象为加密后的图元对象;所述目标OFD文件为包含加密后的图元对象的OFD文件;所述第一用户为所述OFD文件的拥有者;
[0029] 存储模块,用于将所述目标OFD文件上传至分布式存储网络,获取所述目标OFD文件在所述分布式存储网络的存储地址;
[0030] 访问控制模块,用于将所述目标OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约;所述OFD文件的访问策略合集用于指示OFD文件中的各个图元对象的访问策略;所述智能合约用于基于维护的OFD文件地址及访问策略合集数据清单,对第二用户提交的属性集合进行验证,控制第二用户对所述OFD文件的访问。
[0031] 第四方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述或第二方面所述开放版式文档OFD访问控制方法。
[0032] 第五方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述或第二方面所述开放版式文档OFD访问控制方法。
[0033] 第六方面,本发明实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面所述或第二方面所述开放版式文档OFD访问控制方法。
[0034] 本发明实施例提供的开放版式文档OFD访问控制方法和装置,第一设备对第一用户的OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件,并将目标OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约,从而使得区块链上的智能合约基于第一设备发送的OFD文件的访问策略合集就可以对第二用户(OFD文档的使用者)对存储在分布式存储网络中的OFD文件中的加密的OFD图元对象的访问进行精确有效的控制。

附图说明

[0035] 为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0036] 图1是本发明实施例提供的开放版式文档OFD访问控制方法的流程示意图;
[0037] 图2是本发明实施例提供的开放版式文档OFD访问控制方法的另一流程示意图;
[0038] 图3是本发明实施例提供的开放版式文档OFD访问控制装置的结构示意图;
[0039] 图4是本发明实施例提供的电子设备的结构示意图。

具体实施方式

[0040] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041] 本发明实施例的方法可以应用于OFD文档的访问控制场景中,实现对OFD文件的精准有效的访问控制。
[0042] 相关技术中,仍无有效的方法实现OFD文档访问权限的精准控制,使得OFD文档的访问和存储存在着巨大的安全隐患。因此如何实现对OFD文档访问权限的精准控制从而提升OFD文档的安全性,是本领域技术人员亟需解决的技术问题。
[0043] 本发明实施例的开放版式文档OFD访问控制方法,第一设备对第一用户的OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件,并将目标OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约,从而使得区块链上的智能合约基于第一设备发送的OFD文件的访问策略合集就可以对第二用户(OFD文档的使用者)对存储在分布式存储网络中的OFD文件中的加密的OFD图元对象的访问进行精确有效的控制。
[0044] 下面结合图1‑图4以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0045] 图1是本发明实施例提供的开放版式文档OFD访问控制方法一实施例的流程示意图。如图1所示,本实施例提供的方法,包括:
[0046] 步骤101、第一设备对第一用户的OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件;目标图元对象为加密后的图元对象;目标OFD文件为包含加密后的图元对象的OFD文件;第一用户为OFD文件的拥有者;
[0047] 具体地,开放版式文档(Open Fixed‑layout Document,OFD)属于中国的一种自主的文件存储格式,具有完全自主的知识产权,用于实现电子公文格式的统一,方便地进行电子文档的存储、读取以及编辑。但是相关技术中,仍无有效的方法实现OFD文档访问权限的精准控制,使得OFD文档的访问和存储存在着巨大的安全隐患。
[0048] 为了解决上述问题,本发明实施例中,第一设备对第一用户的OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件;其中,OFD文件中的图元对象包括文字、图形、图像等;第一用户为拥有OFD文件且需要对拥有的OFD文件进行访问控制的用户。也就是本申请中通过对OFD文件中的图元对象进行加密,从而实现了基于OFD图元对象维度的加密和访问控制,使得OFD文档的加密和访问控制更加的精准,提高了OFD文档控制的精确性和效率;而且通过对OFD文件中的图元对象进行加密的方式,使得用户可以选择性的对需要进行访问控制的OFD图元对象进行针对性和精准化的加密,而不需要对整个OFD文档进行加密,提高了OFD文档访问控制的灵活性和精准性。
[0049] 步骤102、第一设备将目标OFD文件上传至分布式存储网络,获取目标OFD文件在分布式存储网络的存储地址;
[0050] 具体地,第一设备在对OFD文件中的至少一个图元对象进行加密,得到包含有加密后的图元对象的OFD文件之后,第一设备将目标OFD文件上传至分布式存储网络并获取目标OFD文件在分布式存储网络的存储地址;可选地,可以将目标OFD文件上传至IPFS网络。
[0051] 步骤103、第一设备将目标OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约;OFD文件的访问策略合集用于指示OFD文件中的各个图元对象的访问策略;智能合约用于基于维护的OFD文件地址及访问策略合集数据清单,对第二用户提交的属性集合进行验证,控制第二用户对OFD文件的访问。
[0052] 具体地,第一设备在将目标OFD文件上传至分布式存储网络并获取目标OFD文件在分布式存储网络的存储地址后,第一设备将目标OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约;其中,OFD文件的访问策略合集为第一用户对OFD文件中的各个OFD图元对象设置的访问策略,从而使得区块链上的智能合约基于第一设备发送的OFD文件的访问策略合集就可以对第二用户(OFD文档的使用者)对存储在分布式存储网络中的OFD文件中的加密的OFD图元对象的访问进行精确有效的控制,有效提升了OFD文件的访问安全性。
[0053] 上述实施例的方法,第一设备对第一用户的OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件,并将目标OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约,从而使得区块链上的智能合约基于第一设备发送的OFD文件的访问策略合集就可以对第二用户(OFD文档的使用者)对存储在分布式存储网络中的OFD文件中的加密的OFD图元对象的访问进行精确有效的控制;也就是在进行OFD文件的访问控制过程中,第一设备只需对OFD文件中的OFD图元对象进行加密并将加密后的OFD文件的访问策略发送至智能合约;第二设备只需要将自身的属性集发送至智能合约;进一步智能合约通过获取到的第一设备对应的OFD文件的访问策略和第二设备对应的属性集就可以实现对OFD文件的访问控制,也就使得第一设备、第二设备和智能合约中各个部件只需存储和获取极少的信息,就可以高效、准确的进行OFD文件的访问控制。本申请中的OFD文件访问控制方法,第一方面通过OFD文档的拥有者(第一用户)对OFD图元对象的加密,实现了基于OFD图元对象维度的加密和访问控制,使得OFD文档的加密和访问控制更加的精准,提高了OFD文档访问控制的精确性和灵活性;第二方面,将加密后的OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约,从而有效地避免了OFD文件的访问权限被篡改的风险;第三方面,可以对不同的OFD图元对象设置不同的访问策略,从而在实现对OFD文档中各个图元对象的精细化的访问控制的情况下,还使得OFD文件的安全性更高,也就是攻击者即使获取了OFD文件中的部分图元对象的访问权限,但OFD文件中其他图元对象仍是不可见的,大大提升了OFD文件的安全性,降低了OFD文件的不可控的泄露风险;第四方面,本申请中创新性的利用智能合约存储OFD文件中各个OFD图元对象的访问策略,进而通过部署在区块链上的智能合约进行OFD文件的访问控制,效率更高,避免了利用客户端进行访问控制需要配置大量的数据,且客户端中数据容易被篡改的缺陷,提高了访问控制的安全性、便捷性以及效率;第五方面,通过分布式存储网络存储加密后的OFD文件,使得分布式存储网络和部署在区块链上的智能合约的功能相互配合,实现了加密OFD文件与OFD文件访问策略的隔离,提升了OFD文件的安全性。
[0054] 在一实施例中,第一设备对OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件,包括:
[0055] 第一设备利用密文策略属性基加密算法CP‑ABE对OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件。
[0056] 具体地,本申请实施例中基于密文策略属性基加密算法CP‑ABE对OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件,高效的实现了对OFD文件中OFD图元对象的加密,从而实现了基于OFD图元对象维度的加密和访问控制,使得OFD文档的加密和访问控制更加的精准,提高了OFD文档控制的精确性和效率。
[0057] 例如,数据拥有者对OFD文件中的图元对象Gi利用CP‑ABE进行加密,输出图元对象Gi加密密文Si,将OFD文件F中图元对象Gi的描述信息均转换为密文Si,OFD文件等价转换为局部内容加密文件Fs。
[0058] 在一实施例中,智能合约用于以下至少一项:
[0059] 为各个用户分配属性集合;
[0060] 根据维护的OFD文件地址、访问策略合集数据清单以及第二用户的属性集合,确定第二用户对应的至少一个目标OFD文件的地址列表;目标OFD文件是第二用户具有访问权限的目标OFD文件;第二用户为目标OFD文件的使用者;
[0061] 根据维护的OFD文件地址及访问策略合集数据清单,对第二用户提交的属性集合进行验证,根据第二用户提交的需访问的目标OFD文件在分布式存储网络的存储地址,生成解密后的OFD文件。
[0062] 具体地,本申请实施例中部署在区块链上的智能合约通过为系统上的各个用户分配属性集合,进而在第二用户(OFD文件的使用者)需要进行OFD文件的访问过程中,智能合约通过接收第二用户提交的属性集合,从而根据第一用户发送的OFD文件的访问策略,也就可以准确确定第二用户对各个OFD文件的访问权限,并向第二用户发送具有访问权限的OFD文件的地址列表;进而第二用户在确定OFD文件的地址列表中存在需访问的OFD文件的情况下,可以进一步将第二用户的属性集合以及第二用户提交的需访问的目标OFD文件在分布式存储网络的存储地址进行验证,并在智能合约验证成功的情况下,智能合约将解密后的OFD文件发送至第二用户进行访问,从而基于区块链上的智能合约高效准确地实现了对存储在分布式存储网络上的加密的OFD文件的访问控制,提高了OFD文件访问控制的高效性和准确性。
[0063] 上述实施例的方法,部署在区块链上的智能合约通过为系统上的各个用户分配属性集合,进而根据第一用户发送的OFD文件的访问策略对第二用户的属性集进行验证,也就可以准确确定第二用户对各个OFD文件的访问权限,也就是基于区块链上的智能合约高效准确地实现了对存储在分布式存储网络上的加密的OFD文件的访问控制,避免了利用客户端进行访问控制需要配置大量的数据,且客户端中数据容易被篡改的缺陷,提高了OFD文件访问控制的高效性、安全性、准确性和便捷性。
[0064] 在一实施例中,对第二用户提交的属性集合进行验证,包括:
[0065] 智能合约基于全同态加密算法对OFD文件的访问策略合集进行加密,确定访问策略密文;
[0066] 智能合约基于全同态加密算法对第二用户的属性集合进行加密,确定用户属性密文;
[0067] 智能合约基于访问策略密文和用户属性密文,确定第二用户对目标OFD文件中的各个目标图元对象的访问权限的验证结果。
[0068] 具体地,在第二设备提交第二用户的属性集后,智能合约通过全同态加密算法对OFD文件的访问策略合集进行加密,确定访问策略密文;通过全同态加密算法对第二用户的属性集合进行加密,确定用户属性密文;进而智能合约通过对OFD文件的访问策略密文和用户属性密文进行匹配,确定第二用户是否具有对OFD文件中各个OFD图元对象的访问权限;从而智能合约基于同态加密算法、OFD文件的访问策略合集和第二用户的属性集合,就可以实现对OFD文档中各个图元对象的精细化的访问控制,使得OFD文件的安全性更高,也就是攻击者即使获取了OFD文件中的部分图元对象的访问权限,但OFD文件中其他图元对象仍是不可见的,大大提升了OFD文件的安全性,降低了OFD文件的不可控的泄露风险。
[0069] 可选地,智能合约基于访问策略密文和用户属性密文,确定第二用户对目标OFD文件中的各个目标图元对象的访问权限的验证结果,包括:
[0070] 利用如下公式确定第二用户对目标OFD文件中的各个目标图元对象的访问权限的验证结果:
[0071] SEAL.Decrypt(Sa*Sp);
[0072] 其中,SEAL.Decrypt表示全同态解密算法;Sa表示访问策略密文;Sp表示用户属性密文;SEAL.Decrypt(Sa*Sp)表示验证结果。
[0073] 具体地,部署在区块链上的智能合约通过全同态加密算法对OFD文件的访问策略密文和用户属性密文进行匹配,确定第二用户是否具有对OFD文件中各个OFD图元对象的访问权限。可选地,若SEAL.Decrypt(Sa*Sp)结果全为1,则表示第二用户的属性集满足OFD文件中所有OFD图元对象的访问策略,验证成功,则智能合约将通过CP‑ABE解密后的OFD文件中的OFD图元对象发送至第二用户。
[0074] 上述实施例的方法,首先通过全同态解密算法对OFD文件的访问策略密文和用户属性密文进行匹配,只有在OFD文件的访问策略密文和用户属性密文匹配成功的情况下,智能合约才会进一步基于CP‑ABE解密OFD文件中的OFD图元对象发送至第二用户,即通过访问策略密文和用户属性密文进行匹配实现对OFD文档中各个图元对象的访问权限的精细化控制和验证,以及CP‑ABE加密和解密,两个方面加强了OFD文件中OFD图元对象访问控制的有效性,极大地提升了OFD文件中图元对象的访问安全性。
[0075] 在一实施例中,在进行OFD文件的访问控制过程中,
[0076] 第二设备将第二用户的属性集合提交至智能合约,获取目标OFD文件地址列表集;目标OFD文件为智能合约基于第二用户的属性集合确定的第二用户具有访问权限的目标OFD文件;目标OFD文件为包含加密后的图元对象的OFD文件;
[0077] 第二设备将第二用户的属性集合和第二用户需要访问的目标OFD文件在分布式存储网络上的存储地址提交至智能合约,得到解密后的OFD文件;OFD文件为智能合约基于第二用户的属性集合以及OFD文件的访问策略合集,对目标OFD文件中的目标图元对象进行解密后得到的;目标图元对象为智能合约基于第二用户的属性集合以及OFD文件的访问策略合集确定的第二用户具有访问权限的目标图元对象。
[0078] 具体地,本申请实施例中,在进行OFD文件的访问过程中,第一设备只需对OFD文件进行加密并将加密后的OFD文件的访问策略发送至智能合约;第二设备只需要将自身的属性集发送至智能合约;进一步智能合约将第一设备对应的OFD文件的访问策略密文和第二设备对应的属性集密文通过全同态解密算法进行匹配后,将利用CP‑ABE解密后的OFD文件发送至第二设备,从而使得第一设备、第二设备和智能合约中各个部件只需存储和获取极少的信息,就可以高效、准确的进行OFD文件的访问控制。
[0079] 上述实施例的方法,在进行OFD文件的访问过程中,智能合约将第一设备对应的OFD文件的访问策略密文和第二设备对应的属性集密文通过全同态解密算法进行匹配后,将利用CP‑ABE解密后的OFD文件发送至第二设备,从而使得第一设备、第二设备和智能合约中各个部件只需存储和获取极少的信息,就可以高效、准确的进行OFD文件的访问控制。本申请中的OFD文件访问控制方法,第一方面通过OFD文档的拥有者(第一用户)对OFD图元对象的加密,实现了基于OFD图元对象维度的加密和访问控制,使得OFD文档的加密和访问控制更加的精准,提高了OFD文档访问控制的精确性和灵活性;第二方面,将加密后的OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约,从而有效地避免了OFD文件的访问权限被篡改的风险;第三方面,可以对不同的OFD图元对象设置不同的访问策略,从而在实现对OFD文档中各个图元对象的精细化的访问控制的情况下,还使得OFD文件的安全性更高,也就是攻击者即使获取了OFD文件中的部分图元对象的访问权限,但OFD文件中其他图元对象仍是不可见的,大大提升了OFD文件的安全性,降低了OFD文件的不可控的泄露风险;第四方面,本申请中创新性的利用智能合约存储OFD文件中各个OFD图元对象的访问策略,进而通过部署在区块链上的智能合约进行OFD文件的访问控制,效率更高,避免了利用客户端进行访问控制需要配置大量的数据,且客户端中数据容易被篡改的缺陷,提高了访问控制的安全性、便捷性以及效率;第五方面,通过分布式存储网络存储加密后的OFD文件,使得分布式存储网络和部署在区块链上的智能合约的功能相互配合,实现了加密OFD文件与OFD文件访问策略的隔离,提升了OFD文件的安全性。
[0080] 示例性的,本发明实施例中的OFD访问控制方法具体流程如图2所示:
[0081] 步骤201:对区块链环境进行初始化,其中包括:
[0082] 在区块链上的智能合约中,选择合适的椭圆曲线对和配对群参数执行主密钥对的生成。主密钥对包括公共主密钥PubKey(Public Master Key)和私密主密钥PriKey(Private Master Key),将公共主密钥、私密主密钥内容以文件形式上传存储至IPFS网络中,将PubKey、PriKey在IPFS网络中的存储地址保存在智能合约中;
[0083] 确定CP‑ABE方案中的全局属性集GA,将GA上传存储于IPFS网络中,并将其存储地址保存在智能合约中;
[0084] 用户在区块链网络进行注册,分配用户身份UID和属性集合A;
[0085] 步骤202:数据拥有者通过SDK工具包提取OFD版式文件F的图元对象集合G={G1,G2,…,Gn},图元对象Gi依次设置访问策略Pi,执行加密函数Enc(Gi, Pi),对所述图元对象Gi利用CP‑ABE进行加密,输出图元对象Gi加密密文Si,最终所述OFD版式文件F中图元对象Gi的描述信息均转换为密文Si,最终所述OFD版本文件F的图元对象集合G等价转换为加密的图元对象集合S={S1,S2,…,Sn},所述OFD版式文件F等价转换为Fs;
[0086] 数据拥有者调用密文上传函数Upload(Fs)将所述转换结果Fs上传到IPFS网络,获取密文FS在IPFS网络的存储地址ξ;
[0087] 步骤203:数据拥有者调用智能合约接口将所述访问策略合集P={P1,P2,…,Pn}、所述存储地址ξ提交至部署在区块链上的智能合约;
[0088] 步骤204:数据使用者调用智能合约接口提交自身属性集A={A1,A2,…,A3}生成属性密钥λ,智能合约进行属性集判定,返回属性验证成功的文件地址列表н={н1,н2,…, нn},нi∈н且ξ=н。数据使用者获得有权限访问的版式文件列表;
[0089] 步骤205:数据使用者请求所述OFD版式文件F内容调用智能合约接口提交数据使用者自身属性集A和所述版式文件Fs在IPFS网络存储地址ξ到智能合约,智能合约生成属性密钥λ,进行所述属性集验证,属性集验证通过,智能合约根据密文存储地址获取密文Fs,结合所述属性集P解密图元对象获取明文文件F,返回满足权限策略的明文F’给数据使用者。
[0090] 可选地,属性密钥λ由智能合约读取所述公共主密钥PubKey和私密主密钥PriKey和数据使用者自身数据集A={Ø},执行CPABE.KeyGen(PubKey,PriKey,A)输出用户树形私钥λ。
[0091] 可选地,所述属性集验证,执行全同态加密访问策略SEAL.Encrypt(P)输出访问策略密文Sp,全同态加密所述用户属性合集A输出用户属性密文Sa,属性集验证计算SEAL.Decrypt(Sa*Sp)输出解密结果Sr,如果解密结果Sr等于全1,则属性集满足访问策略,验证成功。
[0092] 可选地,所述图元对象Si解密执行CPABE.dec(PubKey,λ,Gi)输出明文Gi。
[0093] 下面对本发明提供的开放版式文档OFD访问控制装置进行描述,下文描述的开放版式文档OFD访问控制装置与上文描述的开放版式文档OFD访问控制方法可相互对应参照。
[0094] 图3是本发明提供的开放版式文档OFD访问控制装置的结构示意图。本实施例提供的开放版式文档OFD访问控制装置,包括:
[0095] 加密模块310,用于对第一用户的OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件;所述目标图元对象为加密后的图元对象;所述目标OFD文件为包含加密后的图元对象的OFD文件;所述第一用户为所述OFD文件的拥有者;
[0096] 存储模块320,用于将所述目标OFD文件上传至分布式存储网络,获取所述目标OFD文件在所述分布式存储网络的存储地址;
[0097] 访问控制模块330,用于将所述目标OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约;所述OFD文件的访问策略合集用于指示OFD文件中的各个图元对象的访问策略;所述智能合约用于对第二用户提交的属性集合进行验证,控制第二用户对所述OFD文件的访问。
[0098] 可选地,所述加密模块310,具体用于:利用密文策略属性基加密算法CP‑ABE对OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件。
[0099] 可选地,所述智能合约用于以下至少一项:
[0100] 为各个用户分配属性集合;
[0101] 根据第二用户的属性集合,确定第二用户对应的至少一个目标OFD文件的地址列表;目标OFD文件是第二用户具有访问权限的目标OFD文件;第二用户为目标OFD文件的使用者;
[0102] 对第二用户提交的属性集合进行验证,根据第二用户提交的需访问的目标OFD文件在分布式存储网络的存储地址,生成解密后的OFD文件。
[0103] 可选地,所述智能合约用于基于全同态加密算法对OFD文件的访问策略合集进行加密,确定访问策略密文;
[0104] 智能合约基于全同态加密算法对第二用户的属性集合进行加密,确定用户属性密文;
[0105] 智能合约基于访问策略密文和用户属性密文,确定第二用户对目标OFD文件中的各个目标图元对象的访问权限的验证结果。
[0106] 可选地,智能合约用于利用如下公式确定第二用户对目标OFD文件中的各个目标图元对象的访问权限的验证结果:
[0107] SEAL.Decrypt(Sa*Sp);
[0108] 其中,SEAL.Decrypt表示全同态解密算法;Sa表示访问策略密文;Sp表示用户属性密文;SEAL.Decrypt(Sa*Sp)表示验证结果。
[0109] 本发明实施例的装置,其用于执行前述任一方法实施例中的方法,其实现原理和技术效果类似,此次不再赘述。
[0110] 图4示例了一种电子设备的实体结构示意图,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行开放版式文档OFD访问控制方法,该方法包括:对第一用户的OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件;目标图元对象为加密后的图元对象;目标OFD文件为包含加密后的图元对象的OFD文件;第一用户为OFD文件的拥有者;将目标OFD文件上传至分布式存储网络,获取目标OFD文件在分布式存储网络的存储地址;将目标OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约;OFD文件的访问策略合集用于指示OFD文件中的各个图元对象的访问策略;智能合约用于对第二用户提交的属性集合进行验证,控制第二用户对OFD文件的访问。
[0111] 此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0112] 另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的开放版式文档OFD访问控制方法,该方法包括:对第一用户的OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件;目标图元对象为加密后的图元对象;目标OFD文件为包含加密后的图元对象的OFD文件;第一用户为OFD文件的拥有者;将目标OFD文件上传至分布式存储网络,获取目标OFD文件在分布式存储网络的存储地址;将目标OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约;OFD文件的访问策略合集用于指示OFD文件中的各个图元对象的访问策略;智能合约用于对第二用户提交的属性集合进行验证,控制第二用户对OFD文件的访问。
[0113] 又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的开放版式文档OFD访问控制方法,该方法包括:对第一用户的OFD文件中的至少一个图元对象进行加密,生成目标图元对象和目标OFD文件;目标图元对象为加密后的图元对象;目标OFD文件为包含加密后的图元对象的OFD文件;第一用户为OFD文件的拥有者;将目标OFD文件上传至分布式存储网络,获取目标OFD文件在分布式存储网络的存储地址;将目标OFD文件在分布式存储网络的存储地址和OFD文件的访问策略合集提交至部署在区块链上的智能合约;OFD文件的访问策略合集用于指示OFD文件中的各个图元对象的访问策略;智能合约用于对第二用户提交的属性集合进行验证,控制第二用户对OFD文件的访问。
[0114] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0115] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0116] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。