CN114244838A - 区块链数据的加密方法及系统、解密方法、装置及设备 - Google Patents

区块链数据的加密方法及系统、解密方法、装置及设备 Download PDF

Info

Publication number
CN114244838A
CN114244838A CN202111556254.8A CN202111556254A CN114244838A CN 114244838 A CN114244838 A CN 114244838A CN 202111556254 A CN202111556254 A CN 202111556254A CN 114244838 A CN114244838 A CN 114244838A
Authority
CN
China
Prior art keywords
node
data
ciphertext
key
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111556254.8A
Other languages
English (en)
Other versions
CN114244838B (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.)
Neusoft Corp
Original Assignee
Neusoft Corp
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 Neusoft Corp filed Critical Neusoft Corp
Priority to CN202111556254.8A priority Critical patent/CN114244838B/zh
Publication of CN114244838A publication Critical patent/CN114244838A/zh
Application granted granted Critical
Publication of CN114244838B publication Critical patent/CN114244838B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • 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/0435Network 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 symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例公开了区块链数据的加密方法、解密方法、装置及系统,加密方法应用于区块链系统,区块链系统包括第一节点和至少一个第二节点。第一节点将目标数据划分为多个数据片。数据片与访问策略树的层级一一对应且数量相等。第一节点将各个数据片以及访问策略树相应层级的策略参数发送给第二节点。第二节点使用对称密钥对每个数据片进行加密,生成数据片密文。第二节点使用公钥以及访问策略树相应层级的策略参数对对称密钥进行加密,得到密钥密文。第二节点将数据片密文和密钥密文发送给第一节点。第一节点将各个数据片密文组成的数据片密文集合和密钥密文进行上链存储。如此,使得整个加密过程更加细粒度,提高了区块链数据的安全性。

Description

区块链数据的加密方法及系统、解密方法、装置及设备
技术领域
本申请涉及数据处理技术领域,具体涉及一种区块链数据的加密方法及系统、一种区块链数据的解密方法、装置及设备。
背景技术
随着区块链技术的不断发展,区块链用户会根据需求将数据存储在区块链上,例如,用户个人信息。由于用户个人信息等数据不能被泄露,因此需要采用加密技术对区块链上的数据进行加密保存。当其他用户需要获取数据时,可以在获取密钥后解密得到数据。目前,应用于区块链数据的加密技术的安全性有待进一步提高。
发明内容
有鉴于此,本申请实施例提供一种区块链数据的加密方法、一种区块链数据的解密方法、装置及系统,以提高区块链数据的安全性。
为解决上述问题,本申请实施例提供的技术方案如下:
一种区块链数据的加密方法,其特征在于,所述方法应用于区块链系统,所述区块链系统包括第一节点以及至少一个第二节点,所述方法包括:
所述第一节点将所述目标数据划分为多个数据片,所述数据片的数量与所述目标数据对应的访问策略树包括的层级数量相等,所述数据片与所述访问策略树的层级一一对应;
所述第一节点将各个所述数据片以及所述访问策略树相应层级的策略参数发送给所述第二节点;
所述第二节点使用对称密钥对接收到的每个所述数据片进行加密,生成数据片密文,将所述数据片密文发送给所述第一节点;
所述第一节点获取各个所述数据片对应的数据片密文组成数据片密文集合;
所述第二节点使用公钥以及所述访问策略树相应层级的策略参数对所述对称密钥进行加密,得到密钥密文,将所述密钥密文发送给所述第一节点;
所述第一节点将所述数据片密文集合以及所述密钥密文进行上链存储。
在一种可能的实现方式中,所述第一节点将所述目标数据划分为多个数据片,包括:
所述第一节点选取n个第一随机数,n为正整数,n为所述数据片的数量;
将第i个第一随机数除以n个第一随机数之和,再乘以所述目标数据的数据长度,得到第i个数据片的数据长度;i的取值为1至n的每个整数;
按照各个数据片的数据长度,将所述目标数据划分为n个数据片。
在一种可能的实现方式中,所述访问策略树的叶子节点表征权限属性信息,所述访问策略树的分支节点表征其子节点的属性组合条件;所述第二节点使用公钥以及所述访问策略树相应层级的策略参数对所述对称密钥进行加密,得到密钥密文,将所述密钥密文发送给所述第一节点,包括:
所述第二节点根据公钥以及所述访问策略树相应层级的第二随机数,计算所述对称密钥的双线性映射密文对;
当所述访问策略树相应层级为分支节点所属层级,根据所述公钥、所述访问策略树相应层级上目标分支节点的子节点所属层级的第二随机数、所述目标分支节点的标识、所述目标分支节点的子节点的属性信息,计算所述目标分支节点对应的密文对;所述目标分支节点分别为所述访问策略树相应层级上的每一个分支节点;所述目标分支节点的标识表征其子节点的属性组合条件;
当所述访问策略树相应层级为叶子节点所属层级,根据所述公钥、所述访问策略树相应层级的第二随机数以及所述目标叶子节点的权限属性信息,计算所述目标叶子节点对应的密文对;所述目标叶子节点分别为所述访问策略树相应层级上的每一个叶子节点;
将所述访问策略树相应层级上的各个分支节点对应的密文对或者所述访问策略树相应层级上的各个叶子节点对应的密文对,以及所述对称密钥的双线性映射密文对作为密钥密文发送给所述第一节点。
在一种可能的实现方式中,当所述目标分支节点的子节点为叶子节点,所述目标分支节点的子节点的属性信息根据所述目标分支节点的子节点的权限属性信息确定;当所述目标分支节点的子节点为分支节点,所述目标分支节点的子节点的属性信息根据所述目标分支节点的子节点的属性信息确定。
在一种可能的实现方式中,所述方法还包括:
所述第一节点计算目标数据的哈希值;
所述第一节点将所述目标数据的哈希值进行上链存储。
一种区块链数据的解密方法,所述方法应用于区块链系统,所述区块链系统包括第三节点,所述方法包括:
所述第三节点获取数据片密文集合以及密钥密文;所述数据片密文集合以及所述密钥密文是根据上述区块链数据的加密方法生成的;
根据数据消费者属性信息以及公钥,计算私钥;
使用所述私钥对所述密钥密文进行解密;
如果使用所述私钥对所述密钥密文进行解密得到对称密钥,使用所述对称密钥对所述数据片密文集合进行解密,得到数据片;
由各个所述数据片拼接得到完整目标数据。
在一种可能的实现方式中,所述使用所述私钥对所述密钥密文进行解密,包括:
根据访问策略树相应层级的策略参数以及所述私钥对所述密钥密文中进行解密,得到解码值;
由所述解码值、所述私钥以及所述密钥密文,得到所述访问策略树相应层级对应的对称密钥。
在一种可能的实现方式中,所述方法还包括:
所述第三节点获取目标数据的哈希值;
计算所述完整目标数据的哈希值;
如果所述完整目标数据的哈希值与所述目标数据的哈希值一致,确定获取所述目标数据成功。
一种区块链数据的加密系统,所述加密系统部署于区块链系统,所述加密系统包括第一节点以及至少一个第二节点;
所述第一节点,用于将所述目标数据划分为多个数据片,所述数据片的数量与所述目标数据对应的访问策略树包括的层级数量相等,所述数据片与所述访问策略树的层级一一对应;将各个所述数据片以及所述访问策略树相应层级的策略参数发送给所述第二节点;
所述第二节点,用于使用对称密钥对接收到的每个所述数据片进行加密,生成数据片密文,将所述数据片密文发送给所述第一节点;使用公钥以及所述访问策略树相应层级的策略参数对所述对称密钥进行加密,得到密钥密文,将所述密钥密文发送给所述第一节点;
所述第一节点,还用于获取各个所述数据片对应的数据片密文组成数据片密文集合;将所述数据片密文集合以及所述密钥密文进行上链存储。
一种区块链数据的解密装置,所述装置应用于区块链系统,所述区块链系统包括第三节点,所述装置包括:
第一获取单元,用于所述第三节点获取目标数据的哈希值、数据片密文集合以及密钥密文;所述目标数据的哈希值、数据片密文集合以及密钥密文是根据上述区块链数据的加密方法生成的;
第一计算单元,用于根据数据消费者属性信息以及公钥,计算私钥;
第一解密单元,用于使用所述私钥对所述密钥密文进行解密;
第二解密单元,用于如果使用所述私钥对所述密钥密文进行解密得到对称密钥,使用所述对称密钥对所述数据片密文集合进行解密,得到数据片;
拼接单元,用于由各个所述数据片拼接得到完整目标数据。
一种区块链数据的解密设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述的区块链数据的解密方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上述的区块链数据的解密方法。
由此可见,本申请实施例具有如下有益效果:
本申请实施例提供的区块链数据的加密方法应用于区块链系统,区块链系统包括第一节点以及至少一个第二节点。第一节点将数据加密并存储在区块链上以使其他节点可以访问。具体地,第一节点将目标数据划分为多个数据片。数据片的数量和目标数据对应的访问策略树包括的层级数量相等且数据片与访问策略树的层级一一对应。第一节点将各个数据片以及访问策略树相应层级的策略参数发送给第二节点,以使第二节点使用对称密钥对接收到的每个数据片进行加密,生成数据片密文,并使第二节点使用公钥以及访问策略树相应层级的策略参数对对称密钥进行加密,得到密钥密文。第二节点将数据片密文和密钥密文发送给第一节点,以使第一节点将各个数据片对应的数据片密文组成的数据片密文集合和密钥密文进行上链存储。如此,在构建访问策略树的基础上,通过对数据分片使用不同密钥进行加密,减少了密钥泄露的风险,利用至少一个第二节点进行加密,防止单个节点被攻破导致全部密钥泄露,从而使得整个加密过程更加安全,提高了区块链数据的安全性。
附图说明
图1为本申请施例提供的一种示例性应用场景的框架示意图;
图2为本申请实施例提供的一种区块链相关机构的示意图;
图3为本申请实施例提供的一种区块链数据的加密方法的流程图;
图4为本申请实施例提供的一种访问策略树的示意图;
图5为本申请实施例提供的一种分片多节点协同加密的示意图;
图6为本申请实施例提供的另一种示例性应用场景的框架示意图;
图7为本申请实施例提供的一种区块链数据的解密方法的流程图;
图8为本申请实施例提供的一种区块链数据的加密系统的结构示意图;
图9为本申请实施例提供的一种区块链数据的解密装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
为便于理解本申请提供的技术方案,下面将先对本申请涉及的背景技术进行说明。
随着区块链技术的不断发展,区块链用户会根据需求将数据存储在区块链上,例如,用户个人信息。由于区块链上的用户个人信息等数据不能被泄露,因此通常采用加密技术对区块链上的数据进行加密保存。当其他用户需要获取数据时,可以在获取密钥后解密得到数据。然而,在协商获得密钥的过程中,可能导致密钥泄露。因此,目前应用于区块链数据的加密技术的安全性有待进一步提高。
基于此,本申请实施例提供了一种区块链数据的加密方法及系统、一种区块链数据的解密方法、装置及设备。为了便于理解本申请实施例提供的区块链数据的加密方法,下面结合图1所示的场景示例进行说明。参见图1,该图为本申请实施例提供的示例性应用场景的框架示意图。
在一些可能的实现方式中,该方法应用于区块链系统,区块链系统包括第一节点以及至少一个第二节点。作为一种可选示例,第一节点可以为数据拥有者,为将数据加密上传到区块链的节点。
第一节点选择数据并确定目标数据,第一节点还要设置目标数据对应的访问策略树。其中,访问策略树为多层级结构,每层均有对应的策略参数。第二节点生成对称密钥。
基于此,第一节点确定目标数据后,将目标数据划分为多个数据片。其中,数据片的数量与目标数据对应的访问策略树包括的层级数量相等,数据片与访问策略树的层级一一对应。进而,第一节点将各个数据片以及访问策略树相应层级的策略参数发送给第二节点。
进而,第二节点使用对称密钥对接收到的每个数据片进行数据加密,生成数据片密文,将数据片密文发送给第一节点,再由第一节点将各个数据片对应的数据片密文组成数据片密文集合。另外,第二节点使用公钥以及访问策略树相应层级的策略参数对对称密钥进行密钥加密,得到密钥密文,将密钥密文发送给第一节点。其中,公钥是由可信授权机构签发的。
最后,第一节点将数据片密文集合以及密钥密文上链到区块链系统进行存储。
本领域技术人员可以理解,图1所示的框架示意图仅是本申请的实施方式可以在其中得以实现的一个示例。本申请实施方式的适用范围不受到该框架任何方面的限制。
为了便于说明,现先将在实际应用中,数据加密过程和数据解密过程涉及的结构和接口进行说明。
参见图2,图2为本申请实施例提供的一种区块链相关机构的示意图。如图2所示,涉及的机构包括可信授权机构、加密解密组件、数据上传与访问智能合约、属性管理机构、用户管理机构等五部分。
以上五部分机构的具体功能均由相应的内部功能接口实现,供节点调用。其中,可信授权机构包括四个功能接口,分别是公钥生成接口、主密钥生成接口、初始化接口和机构注册接口。其中,在本申请实施例的S305中,第二节点会对对称密钥进行加密。可信授权机构为该过程提供相关密钥和身份证明。具体地,在区块链系统启动时,区块链系统中的节点会调用可信授权机构的初始化接口,以指定的安全系数λ,构造生成元为g,阶数为p(p是一个与给定安全系数λ相关的最大质数)的乘法循环群G和GT,使得其满足双线性映射e:G×G→GT。其中,e满足双线性、非退化性和可计算性。主密钥生成接口和公钥生成接口中,随机选择两个随机数α,β∈Zp,Zp为正整数集合,是循环群G的一部分。计算Y=e(g,g)α,h=gβ,g,g是循环群G中随机取的两个元素,生成元g是循环群G中最基本的元素。并为计算过程生成签名signkey和验证密钥verifykey。组合得到公钥PK:(p,g,e,G,GT,Y,h,verifykey)和主密钥MK:(α,β,g)。在本申请实施例的S305中,公钥指的是PK和MK中元素的总和。
另外,在用户管理机构或属性管理机构进行注册时,节点会调用机构注册接口,为用户管理机构或属性管理机构的注册和初始化提供身份标识。
加密解密组件包括四个功能接口,分别是私钥生成接口、密钥加密接口、密钥解密接口和对称加密接口。数据上传与访问智能合约包括两个功能接口,分别是数据存储接口和数据访问接口。
用户管理机构包括三个功能接口,分别是用户注册接口、身份验证接口和访问策略构造接口。其中,区块链系统中有新用户时,需要先调用用户注册接口进行注册。注册时会为新用户生成唯一标识IDuser,用户有效时间Timeuser,登记用户属性集合Auser,并对注册信息进行签名Signuser。组合得到用户的可信身份标识(IDuser,Timeuser,Auser,Signuser)。其中,用户属性集合Auser中包括用户的各种权限属性信息,例如,权限属性信息为个人或单位的名称、证件号码、约定字符等。
属性管理机构包括一个功能接口,为属性管理接口。属性管理机构是部署于区块链系统的节点上的智能合约,为整个区块链系统管理已注册用户的权限属性信息。属性管理接口为用户属性集合Auser中的每个属性随机选取属性对应的随机数ai′j,ai′j∈Zp。其中,j表示第j个用户,i′表示用户属性集合中的第i′个属性,则i′j表示第j个用户的第i′个属性。并计算属性标识
Figure BDA0003418792280000071
并将属性标识保存在节点私有数据库或者联盟链中。
在一种可能的实现方式中,各个机构均部署于区块链系统中的每个节点上,供节点通过功能接口进行调用。
基于上述说明,下面将结合附图对本申请提供的区块链数据的加密方法进行详细说明。
参见图3,图3为本申请实施例提供的一种区块链数据的加密方法的流程图。该区块链数据的加密方法应用于区块链系统,区块链系统包括第一节点以及至少一个第二节点。如图3所示,该区块链数据的加密方法包括S301-S306:
S301:第一节点将目标数据划分为多个数据片,数据片的数量与目标数据对应的访问策略树包括的层级数量相等,数据片与访问策略树的层级一一对应。
目标数据为第一节点需要加密进而上链存储的数据。在实际应用中,当区块链中的第一节点接收到第一节点对应的用户的目标数据存储请求时,第一节点会先调用数据上传与访问智能合约的数据存储接口以实现用户上传目标数据的整个调度逻辑。第一节点调用数据存储接口之后,再对目标数据进行加密以进行后续的上链存储。
在为目标数据加密前,第一节点需要先构建目标数据对应的访问策略,再基于访问策略生成目标数据对应的树结构,即访问策略树。一般,目标数据对应的访问策略由第一节点对应的用户制定,第一节点获取即可。访问策略树用于后续的加密过程。
访问策略树为多层,包括根节点所在层、叶子节点所在层以及根节点所在层和叶子节点所在层中间的分支节点所在层。根节点所在层和叶子节点所在层均只有一层,分支节点所在层可以有多层。参见图4,图4为本申请实施例提供的一种访问策略树的示意图。图4所示的访问策略树为三层,每层上的节点有对应的节点坐标(x,y),x表示层数,y表示节点在所属层的位置。作为一种可选示例,根节点的层级为第一层,从上至下层级依次递增一层,最后一层为叶子节点。作为一种可选示例,节点在所属层级的位置从左到右依次递增一个。
基于此,如图4所示,节点坐标在图4所示的圆形之外进行标示。第一层中的节点为根节点,根节点的坐标为(1,1)。第二层中的节点为分支节点,分支节点的坐标分别为(2,1)、(2,2)和(2,3)。第三层中的节点为叶子节点,叶子节点的坐标分别为(3,1)、(3,2)、(3,3)、(3,4)和(3,5)。当x=y时的坐标节点,可以被称为级节点。
其中,访问策略树的叶子节点表征可进行数据访问的权限属性信息,为用户在注册时登记的用户属性集合中全部或者部分属性信息。访问策略树的分支节点表征其子节点的属性组合条件。在一种可能的实现方式中,根节点和分支节点的属性组合条件的表现形式为(Nall,Nsome),且Nall≥Nsome。如图4所示,属性组合条件在图4所示的圆形之内用(Nall,Nsome)进行标示。例如(3,2),其中“3”表示该分支节点下总共有3个叶子节点,“2”表示只需满足该分支节点下的三个叶子节点中的任意两个的权限属性信息即可。另外,每个访问策略树都具有自身的标识IDpolicy和可信签名Signpolicy。属性管理机构将用户属性组合条件(Nall,Nsome)与IDpolicy,Signpolicy进行映射能得到分支节点的唯一标识aril
需要说明的是,叶子节点表征的权限属性信息和分支节点表征的其子节点的属性组合条件共同组成了目标数据对应的访问策略。后续区块链数据解密时,如果数据访问节点的用户属性集合能够和访问策略树相匹配,则能得到加密目标数据的对称密钥。可知,本申请实施例中采用树形结构的访问策略,能够将用户的属性信息层次分明地组合在一起,为多节点协同加密数据、加密对称密钥提供了基础。
在实际应用中,当第一节点构造访问策略时,第一节点需要调用用户管理机构中的访问策略构造接口,根据用户设置的访问策略并基于权限属性信息以及用户组合条件构建访问策略树,并为树中的每个节点映射随机数ai′j
在构建目标数据对应的访问策略树之后,为了防止加密目标数据的第二节点被恶意攻击,导致目标数据和加密目标数据的对称密钥泄露,本申请实施例中第一节点将目标数据划分为多个数据片。数据片的数量与目标数据对应的访问策略树包括的层级数量相等。例如,访问策略树分为n级,节点将待加密数据分为n片。而且,数据片与访问策略树的层级一一对应。例如,第一个数据片和访问策略树的第一层级相对应。如此,一旦某个第二节点被恶意进攻,只是泄露该节点加密后的密文,并不能获得完整数据,能够提高目标数据的安全性。
在一种可能的实现方式中,本申请实施例提供了一种第一节点将目标数据划分为多个数据片的具体实施方式,具体请参见下文B1-B3。
S302:第一节点将各个数据片以及访问策略树相应层级的策略参数发送给第二节点。
访问策略树规定了用于目标数据加密的相应层级的策略参数,如叶子节点的权限属性信息对应的随机数ai′j、分支节点的唯一标识aril以及分支节点的属性组合条件。
数据片与访问策略树的层级一一对应,以使发给第二节点的数据片和访问策略树的策略参数为一一对应的。例如,第一个数据片和访问策略树的第一层级相对应,则可将第一个数据片和第一层级的策略参数发给一个第二节点。
作为一种可选示例,当第二节点的数量少于数据片的数量时,一个第二节点可以接收多个数据片。为了目标数据的安全性,使每个第二节点尽可能少地获取数据片。作为一种优选示例,第二节点的数量和数据片的数量相同。每个数据片发送给一个第二节点。如此,减少了单个节点的加密成本。
S303:第二节点使用对称密钥对接收到的每个数据片进行加密,生成数据片密文,将数据片密文发送给第一节点。
例如,各个数据片为{file1,file2,...,filen},file1表示第一个数据片。对称密钥deckey为{key1,key2,...,keyn},key1表示第一个对称密钥,对称密钥的数量和数据片的数量相同。数据片和对称密钥一一对应。例如,第i个数据片密文encfilei为利用第i个对称密钥keyi对数据片filei加密生成的,i=1,2,...,n。即可以使用第一个对称密钥对第一个数据片进行加密,生成对应的数据片密文。
在实际应用中,得到数据片的第二节点调用加密解密组件中的对称加密接口生成对称密钥并加密数据片。
S304:第一节点获取各个数据片对应的数据片密文组成数据片密文集合。
在第二节点使用对称密钥对接收到的每个数据片进行加密后,将数据片密文发送给第一节点,则第一节点从各个第二节点获取到全部数据片对应的数据片密文后,可以组成数据片密文集合。例如,数据片密文集合为encfile。
S305:第二节点使用公钥以及访问策略树相应层级的策略参数对对称密钥进行加密,得到密钥密文,将密钥密文发送给第一节点。
在本申请实施例,公钥指的是可信授权机构的主密钥生成接口和公钥生成接口分别生成的PK和MK中元素的总和。
可以理解的是,数据片的数量与目标数据对应的访问策略树包括的层级数量相等,数据片与访问策略树的层级一一对应,是为了采用相应层级的访问策略树的策略参数对对称密钥进行加密。例如,使用公钥和访问策略树第i个层级的策略参数对第i个对称密钥keyi,生成的密钥密文为enckeyi,所有的密钥密文为enckey。
在实际应用中,第二节点调用加密解密组件中的密钥加密接口加密对称密钥,得到对称密钥的密文,即密钥密文。
在一种可能的实现方式中,本申请实施例提供了一种第二节点使用公钥以及访问策略树相应层级的策略参数对对称密钥进行加密,得到密钥密文,将密钥密文发送给第一节点的具体实施方式,具体请参见下文C1-C4。
为了便于理解,结合附图对S301-S305的内容进行说明。参见图5,图5为本申请实施例提供的一种分片多节点协同加密的示意图。如图5所示,以2个数据片,2个第二节点,2层访问策略树为例,第一节点将目标数据划分为数据片1和数据片2,并构建访问策略树。第一节点将数据片1分发给了第二节点1,将数据片2分发给了第二节点2。
第二节点1生成对称密钥key1,使用对称密钥key1对数据片1进行对称加密,生成数据片密文回收给第一节点。并且采用公钥和策略参数1对对称密钥key1进行加密,生成密钥密文回收给第一节点。其中策略参数1对应于访问策略树的第二层(两个叶子节点A和B)。
第二节点2生成对称密钥key2,使用对称密钥key2对数据片2进行对称加密,生成数据片密文回收给第一节点。并且采用公钥和策略参数2对对称密钥key2进行加密,生成密钥密文回收给第一节点。其中策略参数2对应于访问策略树的第一层(为两个叶子节点A和B的父节点“&”)。
第一节点获取2个数据片密文组成数据片密文集合,并获取2个密钥密文。
S306:第一节点将数据片密文集合以及密钥密文进行上链存储。
例如,第一节点将数据片密文集合encfile以及密钥密文enckey进行上链存储。
基于S301-S306的内容可知,本申请实施例提供了一种区块链数据的加密方法,应用于区块链系统,区块链系统包括第一节点以及至少一个第二节点。第一节点将数据加密并存储在区块链上以使其他节点可以访问。具体地,第一节点将目标数据划分为多个数据片。数据片的数量和目标数据对应的访问策略树包括的层级数量相等且数据片与访问策略树的层级一一对应。第一节点将各个数据片以及访问策略树相应层级的策略参数发送给第二节点,以使第二节点使用对称密钥对接收到的每个数据片进行加密,生成数据片密文,还使第二节点使用公钥以及访问策略树相应层级的策略参数对对称密钥进行加密,得到密钥密文。第二节点将数据片密文和密钥密文发送给第一节点,以使第一节点将各个数据片对应的数据片密文组成的数据片密文集合和密钥密文进行上链存储。如此,在构建访问策略树的基础上,通过对数据分片使用不同密钥进行加密,减少了密钥泄露的风险,利用至少一个第二节点进行加密,防止单个节点被攻破导致全部密钥泄露,使得整个加密过程更加细粒度,提高了区块链数据的安全性。
为了使得目标数据更加安全,在一种可能的实现方式中,本申请实施例还提供了另一种区块链数据的加密方法,除了S301-S306,还包括:
A1:第一节点计算目标数据的哈希值。
可以理解的是,目标数据的哈希值为固定长度。
A2:第一节点将目标数据的哈希值进行上链存储。
基于A1-A2可知,将目标数据的哈希值进行上链存储以便数据访问节点能够在得到目标数据时,计算目标数据的哈希值,再与链上存储的哈希值进行比对,以便验证目标数据是否被更改。
在一种可能的实现方式中,本申请实施例提供了一种S301中第一节点将目标数据划分为多个数据片的具体实施方式,包括:
B1:第一节点选取n个第一随机数,n为正整数,n为数据片的数量。
例如,第一随机数为φi,i=1,2,...,n,φi∈Zp
B2:将第i个第一随机数除以n个第一随机数之和,再乘以目标数据的数据长度,得到第i个数据片的数据长度;i的取值为1至n的每个整数。
即,第i个第一随机数的数值大小除以n个第一随机数之和作为第i个数据片在整个数据中所占的长度比例。则第i个数据片的数据长度通过以下公式获取:
Figure BDA0003418792280000121
其中,lengthi为第i个数据片的数据长度,length为完整数据的总长度。
B3:按照各个数据片的数据长度,将目标数据划分为n个数据片。
基于B1-B3,可将目标数据划分为n个数据片,且满足随机性,数据片的随机划分有利于提高后续加密的数据片的安全性。
另外,在本申请实施例中也可以预设各个数据片的长度,从而将目标数据划分为多个数据片。
在一种可能的实现方式中,本申请实施例提供了一种S305中第二节点使用公钥以及访问策略树相应层级的策略参数对对称密钥进行加密,得到密钥密文,将密钥密文发送给第一节点的具体实施方式,包括:
C1:第二节点根据公钥以及访问策略树相应层级的第二随机数,计算对称密钥的双线性映射密文对。
第二节点获取可信授权机构签发的公钥PK以及访问策略树相应层级的第二随机数。其中,在n层级的访问策略树中,访问策略树的每个层级被分配一个第二随机数ki,i=1,2,...,n,且ki∈Zp
基于与对称密钥keyi对应的访问策略树相应层级的第二随机数,即ki,通过以下公式计算关于对称密钥keyi的双线性映射密文对(Ci,C′i)为:
Figure BDA0003418792280000122
Figure BDA0003418792280000123
C2:当访问策略树相应层级为分支节点所属层级,根据公钥、访问策略树相应层级上目标分支节点的子节点所属层级的第二随机数、目标分支节点的标识、目标分支节点的子节点的属性信息,计算目标分支节点对应的密文对;目标分支节点分别为访问策略树相应层级上的每一个分支节点;目标分支节点的标识表征其子节点的属性组合条件。
在一种可能的实现方式中,在访问策略树里,设节点坐标为(x,y)的每个节点(x,y)都对应一个多项式Q(x,y),每个多项式的阶为kx-1,其中x=i。在访问策略树中,设置分支节点
Figure BDA0003418792280000131
即分支节点对应的多项式的常数项为kx。则,密钥加密接口通过以下公式计算访问策略树中的分级节点关于属性组合条件的密文对(C(x,y),C(x,y)):
Figure BDA0003418792280000132
Figure BDA0003418792280000133
其中,e(g,g)和α属于公钥中的参数,aril为目标分支节点的标识。δi′j为目标分支节点的子节点的属性信息。
需要说明的是,当目标分支节点的子节点为叶子节点,目标分支节点的子节点的属性信息根据目标分支节点的子节点的权限属性信息确定。例如,如图4所示的访问策略树,δi′j=ai′j。ai′j为目标分支节点的子节点的权限属性信息,即为叶子节点的权限属性信息。
当目标分支节点的子节点为分支节点,目标分支节点的子节点的属性信息根据目标分支节点的子节点的属性信息确定。可以理解的是,属性信息包括多个权限属性信息。例如,当访问策略树为四层且目标分支节点位于第二层级时,δi′j为目标分支节点的子节点的属性信息根据目标分支节点的子节点的属性信息确定,即根据目标分支节点的子节点的子节点的权限属性信息进行确定。也就是说,若层级大于三层,δi′j包括相连接的下面层级子节点的属性信息,直至到达叶子节点。
另外,(x,y)children为访问策略树相应层级上目标分支节点的子节点。
Figure BDA0003418792280000134
为访问策略树相应层级上目标分支节点的子节点所属层级的第二随机数。
C3:当访问策略树相应层级为叶子节点所属层级,根据公钥、访问策略树相应层级的第二随机数以及目标叶子节点的权限属性信息,计算目标叶子节点对应的密文对;目标叶子节点分别为访问策略树相应层级上的每一个叶子节点。
在一种可能的实现方式中,在访问策略树中,设置叶子节点对应的多项式Q(x,y)(0)=ki。密钥加密接口通过以下公式计算访问策略树中的叶子节点关于属性信息的密文对(C(x,y),C′(x,y)):
Figure BDA0003418792280000141
Figure BDA0003418792280000142
其中,g属于公钥,Q(x,y)(0)=ki为访问策略树相应层级的第二随机数,ai′j为目标叶子节点的权限属性信息。
C4:将访问策略树相应层级上的各个分支节点对应的密文对或者访问策略树相应层级上的各个叶子节点对应的密文对,以及对称密钥的双线性映射密文对作为密钥密文发送给第一节点。
即,组合得到密钥密文enckey为(Ci,Ci′,C(x,y),C′(x,y)),并将密钥密文发送给第一节点。其中,访问策略树相应层级上的各个分支节点对应的密文对或者访问策略树相应层级上的各个叶子节点对应的密文对是为了验证数据访问节点的用户属性集合是否和访问策略树相匹配。相匹配的情况下,数据访问节点能够使用私钥对密钥密文进行解密以获取对称密钥(见下文中的S702-S703)。
为了便于理解本申请实施例提供的区块链数据的解密方法,下面结合图6所示的场景示例进行说明。参见图6,该图为本申请实施例提供的示例性应用场景的框架示意图。
在一些可能的实现方式中,该方法应用于区块链系统,区块链系统包括第三节点。作为一种可选示例,第三节点为数据消费者(即数据访问节点),为访问链上数据的节点。
第三节点向区块链系统请求获取数据片密文集合以及密钥密文。数据片密文集合以及密钥密文是根据上述任一项实施例所述的区块链数据的加密方法生成的。
第三节点根据数据消费者属性信息以及公钥,计算私钥。其中,数据消费者属性信息即为第三节点属性信息。进而,第三节点使用私钥对密钥密文进行解密。
如果使用私钥对密钥密文进行解密得到对称密钥,第三节点使用对称密钥对数据片密文集合进行解密,得到数据片。最后,由各个数据片拼接可得到完整目标数据。
本领域技术人员可以理解,图6所示的框架示意图仅是本申请的实施方式可以在其中得以实现的一个示例。本申请实施方式的适用范围不受到该框架任何方面的限制。
基于上述说明,下面将结合附图对本申请提供的区块链数据的解密方法进行详细说明。
参见图7,图7为本申请实施例提供的一种区块链数据的解密方法的流程图。该区块链数据的解密方法应用于区块链系统,区块链系统包括第三节点。如图7所示,该区块链数据的解密方法包括S701-S705:
S701:第三节点获取数据片密文集合以及密钥密文;数据片密文集合以及密钥密文是根据上述任一项实施例区块链数据的加密方法生成的。
第三节点发送区块链数据获取请求到区块链系统。具体实施时,第三节点调用数据上传与访问智能合约的数据访问接口获取区块链数据的数据片密文集合encfile和密钥密文enckey。其中,数据片密文集合encfile以及密钥密文enckey是根据上述任一项实施例区块链数据的加密方法生成的。数据访问接口实现了第三节点访问数据的调度逻辑。
另外,当第三节点对区块链数据进行请求时,第三节点首先会调用用户管理机构的身份验证接口以证明其合法身份,包括验证身份标识、有效时间和签名等。
S702:根据数据消费者属性信息以及公钥,计算私钥。
第三节点设置自身的属性集合,即数据消费者属性信息。其中,数据消费者属性信息即为第三节点属性信息。
第三节点调用加密解密组件中的私钥生成接口,根据数据消费者属性集合A和可信授权机构的PK、MK计算私钥SK。其中,在本申请实施例中可认为可信授权机构的PK、MK为公钥。
在一种可能的实现方式中,第三节点调用私钥生成接口生成数据访问过程中用于解密对称密钥的私钥。具体地,私钥生成接口为每个属性随机选取两个随机数r和λi′,λi′,r∈Zp。并通过以下公式计算私钥(D,Di′,D′i′):
Figure BDA0003418792280000151
Figure BDA0003418792280000152
Figure BDA0003418792280000153
可以理解的是,密钥加密接口、密钥解密接口和对称加密接口是数据访问控制中加密访问策略、解密访问策略、加密和解密数据的关键。
S703:使用私钥对密钥密文进行解密。
第三节点调用加密解密组件中的密钥解密接口,使用私钥SK对密文encfile进行解密计算。如果第三节点(即数据消费者)的属性集合符合访问策略树,能够得到密钥deckey。
在一种可能的实现方式中,本申请实施例提供了一种使用私钥对密钥密文进行解密的具体实施方式,具体请参见下文E1-E2。
S704:如果使用私钥对密钥密文进行解密得到对称密钥,使用对称密钥对数据片密文集合进行解密,得到数据片。
如果使用私钥对密钥密文进行解密得到对称密钥,第三节点使用对称密钥集合deckey,即{key1,key2,...,keyn}对数据片密文集合encfile进行对称解密,得到数据片。
S705:由各个数据片拼接得到完整目标数据。
第三节点对各个数据片进行拼接,以得到完整目标数据。
基于上述S701-S705的内容可知,第三节点向区块链系统请求获取数据片密文集合以及密钥密文。数据片密文集合以及密钥密文是根据上述任一项实施例所述的区块链数据的加密方法生成的。第三节点根据数据消费者属性信息以及公钥,计算私钥。其中,数据消费者属性信息即为第三节点属性信息。进而,第三节点使用私钥对密钥密文进行解密。如果使用私钥对密钥密文进行解密得到对称密钥,第三节点使用对称密钥对数据片密文集合进行解密,得到数据片。最后,由各个数据片拼接可得到完整目标数据。如此,使用基于用户属性的加密方案,数据消费者的属性集合与访问策略树中属性的多层组合匹配,能够较为细粒度控制了用户访问区块链数据的权限。数据消费者只能够根据自身具有的条件来访问应得的数据。
而对于众多的数据消费者,用户管理机构只需对其拥有的属性进行增删调整,便可灵活控制其在区块链中的数据访问能力。
本申请实施例还提供了另一种区块链数据的解密方法,除了S701-S705,该解密方法还包括:
D1:第三节点获取目标数据的哈希值。
可以理解的是,第三节点从区块链系统上获取目标数据的哈希值为期望的哈希值。
D2:计算完整目标数据的哈希值。
第三节点计算得到的完整目标数据的哈希值为实际得到的哈希值。
D3:如果完整目标数据的哈希值与目标数据的哈希值一致,确定获取目标数据成功。
如果完整目标数据的哈希值与目标数据的哈希值一致,表明目标数据没有被其他节点篡改,确定获取目标数据成功。
在一种可能的实现方式中,本申请实施例提供了一种S703中使用私钥对密钥密文进行解密的具体实施方式,包括:
E1:根据访问策略树相应层级的策略参数以及私钥对密钥密文中进行解密,得到解码值。
节点解密访问策略树中叶子节点的属性时,可以得到如下解码值:
Figure BDA0003418792280000171
其中,decode表示解密,decode(enckey,SK,(x,y))表示解码值。Di′和D′i′属于私钥中的参数。叶子节点的权限属性信息对应的随机数ai′j属于访问策略树相应层级的策略参数。C(x,y)和C′(x,y)属于密钥密文。
另外,节点解密访问策略树中分级节点的属性组合条件时,设S(x,y)为该节点(x,y)的子节点集合,Δi,S(x,y)(0)为拉格朗日系数。
Figure BDA0003418792280000172
其中,叶子节点的权限属性信息对应的随机数ai′j、分支节点的唯一标识aril以及分支节点的属性组合条件均为访问策略树相应层级的策略参数。z为S(x,y)中的子节点。
第三节点判断当前计算的访问策略树的节点是否为分支节点,如果该分支节点的叶子节点集合S(x,y)满足该分支节点的属性组合关系标识aril所映射的策略,则aril=1,即
Figure BDA0003418792280000173
E2:由解码值、私钥以及密钥密文,得到访问策略树相应层级对应的对称密钥。
按如下公式计算得到密钥keyi
Figure BDA0003418792280000174
Figure BDA0003418792280000175
其中,D属于私钥中的参数。C′i和Ci属于密钥密文。解码值为
Figure BDA0003418792280000176
基于上述方法实施例所提供的一种区块链数据的加密方法,本申请实施例还提供了一种区块链数据的加密系统。下面将结合附图对该区块链数据的加密系统进行说明。
参见图8,图8为本申请实施例提供的一种区块链数据的加密系统的结构示意图。如图8所示,该加密系统部署于区块链系统,所述包括第一节点801以及至少一个第二节点802。
所述第一节点801,用于将所述目标数据划分为多个数据片,所述数据片的数量与所述目标数据对应的访问策略树包括的层级数量相等,所述数据片与所述访问策略树的层级一一对应;将各个所述数据片以及所述访问策略树相应层级的策略参数发送给所述第二节点802。
所述第二节点802,用于使用对称密钥对接收到的每个所述数据片进行加密,生成数据片密文,将所述数据片密文发送给所述第一节点801;使用公钥以及所述访问策略树相应层级的策略参数对所述对称密钥进行加密,得到密钥密文,将所述密钥密文发送给所述第一节点801。
所述第一节点801,还用于获取各个所述数据片对应的数据片密文组成数据片密文集合;将所述数据片密文集合以及所述密钥密文进行上链存储。
在一种可能的实现方式中,所述第一节点具体用于:选取n个第一随机数,n为正整数,n为所述数据片的数量;将第i个第一随机数除以n个第一随机数之和,再乘以所述目标数据的数据长度,得到第i个数据片的数据长度;i的取值为1至n的每个整数;按照各个数据片的数据长度,将所述目标数据划分为n个数据片。
在一种可能的实现方式中,所述访问策略树的叶子节点表征权限属性信息,所述访问策略树的分支节点表征其子节点的属性组合条件;所述第二节点具体用于:据公钥以及所述访问策略树相应层级的第二随机数,计算所述对称密钥的双线性映射密文对。
当所述访问策略树相应层级为分支节点所属层级,根据所述公钥、所述访问策略树相应层级上目标分支节点的子节点所属层级的第二随机数、所述目标分支节点的标识、所述目标分支节点的子节点的属性信息,计算所述目标分支节点对应的密文对;所述目标分支节点分别为所述访问策略树相应层级上的每一个分支节点;所述目标分支节点的标识表征其子节点的属性组合条件。
当所述访问策略树相应层级为叶子节点所属层级,根据所述公钥、所述访问策略树相应层级的第二随机数以及所述目标叶子节点的权限属性信息,计算所述目标叶子节点对应的密文对;所述目标叶子节点分别为所述访问策略树相应层级上的每一个叶子节点;
将所述访问策略树相应层级上的各个分支节点对应的密文对或者所述访问策略树相应层级上的各个叶子节点对应的密文对,以及所述对称密钥的双线性映射密文对作为密钥密文发送给所述第一节点。
在一种可能的实现方式中,当所述目标分支节点的子节点为叶子节点,所述目标分支节点的子节点的属性信息根据所述目标分支节点的子节点的权限属性信息确定;当所述目标分支节点的子节点为分支节点,所述目标分支节点的子节点的属性信息根据所述目标分支节点的子节点的属性信息确定。
在一种可能的实现方式中,所述第一节点还用于计算目标数据的哈希值,并将所述目标数据的哈希值进行上链存储。
本申请实施例提供了一种区块链数据的加密系统,区块链数据的加密系统包括第一节点以及至少一个第二节点。第一节点将数据加密并存储在区块链上以使其他节点可以访问。具体地,第一节点将目标数据划分为多个数据片。数据片的数量和目标数据对应的访问策略树包括的层级数量相等且数据片与访问策略树的层级一一对应。第一节点将各个数据片以及访问策略树相应层级的策略参数发送给第二节点,以使第二节点使用对称密钥对接收到的每个数据片进行加密,生成数据片密文,还使第二节点使用公钥以及访问策略树相应层级的策略参数对对称密钥进行加密,得到密钥密文。第二节点将数据片密文和密钥密文发送给第一节点,以使第二节点将各个数据片对应的数据片密文组成的数据片密文集合和密钥密文进行上链存储。如此,在构建访问策略树的基础上,通过数据分片以及利用至少一个第二节点加密分片数据,使得整个加密过程更加细粒度,提高了区块链数据的安全性。
基于上述方法实施例所提供的一种区块链数据的解密方法,本申请实施例还提供了一种区块链数据的解密装置。下面将结合附图对该区块链数据的解密装置进行说明。
参见图9,图9为本申请实施例提供的一种区块链数据的解密装置的结构示意图。该装置应用于区块链系统,区块链系统包括第三节点。如图9所示,该区块链数据的解密装置包括:
第一获取单元901,用于所述第三节点获取数据片密文集合以及密钥密文;所述数据片密文集合以及所述密钥密文是根据上述任一项实施例所述区块链数据的加密方法生成的;
第一计算单元902,用于根据数据消费者属性信息以及公钥,计算私钥;
第一解密单元903,用于使用所述私钥对所述密钥密文进行解密;
第二解密单元904,用于如果使用所述私钥对所述密钥密文进行解密得到对称密钥,使用所述对称密钥对所述数据片密文集合进行解密,得到数据片;
拼接单元905,用于由各个所述数据片拼接得到完整目标数据。
在一种可能的实现方式中,所述第一解密单元903,具体用于:
根据访问策略树相应层级的策略参数以及所述私钥对所述密钥密文中进行解密,得到解码值;由所述解码值、所述私钥以及所述密钥密文,得到所述访问策略树相应层级对应的对称密钥。
在一种可能的实现方式中,所述装置还包括:
第二获取单元,用于所述第三节点获取目标数据的哈希值;
第二计算单元,用于计算所述完整目标数据的哈希值;
确定单元,用于如果所述完整目标数据的哈希值与所述目标数据的哈希值一致,确定获取所述目标数据成功。
另外,本申请实施例还提供了一种区块链数据的解密设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述任一项实施例所述的区块链数据的解密方法。
另外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上述任一项实施例所述的区块链数据的解密方法。
本申请实施例还提供了一种区块链数据的解密装置及设备,第三节点向区块链系统请求获取数据片密文集合以及密钥密文。数据片密文集合以及密钥密文是根据上述任一项实施例所述的区块链数据的加密方法生成的。第三节点根据数据消费者属性信息以及公钥,计算私钥。其中,数据消费者属性信息即为第三节点属性信息。进而,第三节点使用私钥对密钥密文进行解密。如果使用私钥对密钥密文进行解密得到对称密钥,第三节点使用对称密钥对数据片密文集合进行解密,得到数据片。最后,由各个数据片拼接可得到完整目标数据。如此,使用基于用户属性的加密方案,数据消费者的属性集合与访问策略树中属性的多层组合匹配,能够较为细粒度控制了用户访问区块链数据的权限。数据消费者只能够根据自身具有的条件来访问应得的数据。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (12)

1.一种区块链数据的加密方法,其特征在于,所述方法应用于区块链系统,所述区块链系统包括第一节点以及至少一个第二节点,所述方法包括:
所述第一节点将所述目标数据划分为多个数据片,所述数据片的数量与所述目标数据对应的访问策略树包括的层级数量相等,所述数据片与所述访问策略树的层级一一对应;
所述第一节点将各个所述数据片以及所述访问策略树相应层级的策略参数发送给所述第二节点;
所述第二节点使用对称密钥对接收到的每个所述数据片进行加密,生成数据片密文,将所述数据片密文发送给所述第一节点;
所述第一节点获取各个所述数据片对应的数据片密文组成数据片密文集合;
所述第二节点使用公钥以及所述访问策略树相应层级的策略参数对所述对称密钥进行加密,得到密钥密文,将所述密钥密文发送给所述第一节点;
所述第一节点将所述数据片密文集合以及所述密钥密文进行上链存储。
2.根据权利要求1所述的方法,其特征在于,所述第一节点将所述目标数据划分为多个数据片,包括:
所述第一节点选取n个第一随机数,n为正整数,n为所述数据片的数量;
将第i个第一随机数除以n个第一随机数之和,再乘以所述目标数据的数据长度,得到第i个数据片的数据长度;i的取值为1至n的每个整数;
按照各个数据片的数据长度,将所述目标数据划分为n个数据片。
3.根据权利要求1所述的方法,其特征在于,所述访问策略树的叶子节点表征权限属性信息,所述访问策略树的分支节点表征其子节点的属性组合条件;所述第二节点使用公钥以及所述访问策略树相应层级的策略参数对所述对称密钥进行加密,得到密钥密文,将所述密钥密文发送给所述第一节点,包括:
所述第二节点根据公钥以及所述访问策略树相应层级的第二随机数,计算所述对称密钥的双线性映射密文对;
当所述访问策略树相应层级为分支节点所属层级,根据所述公钥、所述访问策略树相应层级上目标分支节点的子节点所属层级的第二随机数、所述目标分支节点的标识、所述目标分支节点的子节点的属性信息,计算所述目标分支节点对应的密文对;所述目标分支节点分别为所述访问策略树相应层级上的每一个分支节点;所述目标分支节点的标识表征其子节点的属性组合条件;
当所述访问策略树相应层级为叶子节点所属层级,根据所述公钥、所述访问策略树相应层级的第二随机数以及所述目标叶子节点的权限属性信息,计算所述目标叶子节点对应的密文对;所述目标叶子节点分别为所述访问策略树相应层级上的每一个叶子节点;
将所述访问策略树相应层级上的各个分支节点对应的密文对或者所述访问策略树相应层级上的各个叶子节点对应的密文对,以及所述对称密钥的双线性映射密文对作为密钥密文发送给所述第一节点。
4.根据权利要求3所述的方法,其特征在于,当所述目标分支节点的子节点为叶子节点,所述目标分支节点的子节点的属性信息根据所述目标分支节点的子节点的权限属性信息确定;当所述目标分支节点的子节点为分支节点,所述目标分支节点的子节点的属性信息根据所述目标分支节点的子节点的属性信息确定。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
所述第一节点计算目标数据的哈希值;
所述第一节点将所述目标数据的哈希值进行上链存储。
6.一种区块链数据的解密方法,其特征在于,所述方法应用于区块链系统,所述区块链系统包括第三节点,所述方法包括:
所述第三节点获取数据片密文集合以及密钥密文;所述数据片密文集合以及所述密钥密文是根据权利要求1-4任一项所述区块链数据的加密方法生成的;
根据数据消费者属性信息以及公钥,计算私钥;
使用所述私钥对所述密钥密文进行解密;
如果使用所述私钥对所述密钥密文进行解密得到对称密钥,使用所述对称密钥对所述数据片密文集合进行解密,得到数据片;
由各个所述数据片拼接得到完整目标数据。
7.根据权利要求6所述的方法,其特征在于,所述使用所述私钥对所述密钥密文进行解密,包括:
根据访问策略树相应层级的策略参数以及所述私钥对所述密钥密文中进行解密,得到解码值;
由所述解码值、所述私钥以及所述密钥密文,得到所述访问策略树相应层级对应的对称密钥。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述第三节点获取目标数据的哈希值;
计算所述完整目标数据的哈希值;
如果所述完整目标数据的哈希值与所述目标数据的哈希值一致,确定获取所述目标数据成功。
9.一种区块链数据的加密系统,其特征在于,所述加密系统部署于区块链系统,所述加密系统包括第一节点以及至少一个第二节点;
所述第一节点,用于将所述目标数据划分为多个数据片,所述数据片的数量与所述目标数据对应的访问策略树包括的层级数量相等,所述数据片与所述访问策略树的层级一一对应;将各个所述数据片以及所述访问策略树相应层级的策略参数发送给所述第二节点;
所述第二节点,用于使用对称密钥对接收到的每个所述数据片进行加密,生成数据片密文,将所述数据片密文发送给所述第一节点;使用公钥以及所述访问策略树相应层级的策略参数对所述对称密钥进行加密,得到密钥密文,将所述密钥密文发送给所述第一节点;
所述第一节点,还用于获取各个所述数据片对应的数据片密文组成数据片密文集合;将所述数据片密文集合以及所述密钥密文进行上链存储。
10.一种区块链数据的解密装置,其特征在于,所述装置应用于区块链系统,所述区块链系统包括第三节点,所述装置包括:
第一获取单元,用于所述第三节点获取目标数据的哈希值、数据片密文集合以及密钥密文;所述目标数据的哈希值、数据片密文集合以及密钥密文是根据权利要求1-4任一项所述区块链数据的加密方法生成的;
第一计算单元,用于根据数据消费者属性信息以及公钥,计算私钥;
第一解密单元,用于使用所述私钥对所述密钥密文进行解密;
第二解密单元,用于如果使用所述私钥对所述密钥密文进行解密得到对称密钥,使用所述对称密钥对所述数据片密文集合进行解密,得到数据片;
拼接单元,用于由各个所述数据片拼接得到完整目标数据。
11.一种区块链数据的解密设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求6-8任一项所述的区块链数据的解密方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如权利要求6-8任一项所述的区块链数据的解密方法。
CN202111556254.8A 2021-12-17 2021-12-17 区块链数据的加密方法及系统、解密方法、装置及设备 Active CN114244838B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111556254.8A CN114244838B (zh) 2021-12-17 2021-12-17 区块链数据的加密方法及系统、解密方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111556254.8A CN114244838B (zh) 2021-12-17 2021-12-17 区块链数据的加密方法及系统、解密方法、装置及设备

Publications (2)

Publication Number Publication Date
CN114244838A true CN114244838A (zh) 2022-03-25
CN114244838B CN114244838B (zh) 2024-06-04

Family

ID=80758502

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111556254.8A Active CN114244838B (zh) 2021-12-17 2021-12-17 区块链数据的加密方法及系统、解密方法、装置及设备

Country Status (1)

Country Link
CN (1) CN114244838B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115567247A (zh) * 2022-08-31 2023-01-03 西安电子科技大学 一种去中心化的多权威隐私保护数据访问控制方法及系统
CN115760324A (zh) * 2022-11-14 2023-03-07 临沂大学 一种线上的招投标方法、设备及计算机存储介质
CN118071285A (zh) * 2024-02-06 2024-05-24 广州机施建设集团有限公司 一种基于多重混合加密的建设工程总承包项目管理系统

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103618729A (zh) * 2013-09-03 2014-03-05 南京邮电大学 一种应用于云存储的多机构层次化属性基加密方法
US20160359856A1 (en) * 2014-12-31 2016-12-08 Shenzhen University Method, apparatus, and system for access control of shared data
CN106612321A (zh) * 2016-07-05 2017-05-03 四川用联信息技术有限公司 云存储中一种访问权限管理方法
CN107846397A (zh) * 2017-09-30 2018-03-27 北京理工大学 一种基于属性基加密的云存储访问控制方法
US20180139042A1 (en) * 2016-11-16 2018-05-17 StreamSpace, LLC Decentralized nodal network for providing security of files in distributed filesystems
CN109120639A (zh) * 2018-09-26 2019-01-01 众安信息技术服务有限公司 一种基于区块链的数据云存储加密方法及系统
CN109768987A (zh) * 2019-02-26 2019-05-17 重庆邮电大学 一种基于区块链的数据文件安全隐私存储和分享方法
WO2019179625A1 (en) * 2018-03-22 2019-09-26 Telefonaktiebolaget Lm Ericsson (Publ) Distributed data storage network nodes and methods
CN110784463A (zh) * 2019-10-24 2020-02-11 深圳市超算科技开发有限公司 一种基于区块链的文件存储和访问方法及系统
CN111130757A (zh) * 2019-12-31 2020-05-08 华中科技大学 一种基于区块链的多云cp-abe访问控制方法
CN111368318A (zh) * 2020-03-04 2020-07-03 江苏大学 一种面向多模态区块链交易的客体追踪方法
CN111598695A (zh) * 2020-05-18 2020-08-28 国网电子商务有限公司 一种区块链数据访问方法及装置
CN111859444A (zh) * 2020-06-12 2020-10-30 中国科学院信息工程研究所 一种基于属性加密的区块链数据监管方法及系统
CN112163240A (zh) * 2020-10-21 2021-01-01 汪金玲 一种基于区块链的分布式政务架构统一方法及系统
CN112637278A (zh) * 2020-12-09 2021-04-09 云南财经大学 基于区块链和属性基加密的数据共享方法、系统及计算机可读存储介质
CN113242219A (zh) * 2021-04-26 2021-08-10 卓尔智联(武汉)研究院有限公司 数据传输方法、区块链网络及存储介质
CN113468556A (zh) * 2021-06-07 2021-10-01 北京邮电大学 完全策略隐藏的数据访问控制方法及其相关设备

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103618729A (zh) * 2013-09-03 2014-03-05 南京邮电大学 一种应用于云存储的多机构层次化属性基加密方法
US20160359856A1 (en) * 2014-12-31 2016-12-08 Shenzhen University Method, apparatus, and system for access control of shared data
CN106612321A (zh) * 2016-07-05 2017-05-03 四川用联信息技术有限公司 云存储中一种访问权限管理方法
US20180139042A1 (en) * 2016-11-16 2018-05-17 StreamSpace, LLC Decentralized nodal network for providing security of files in distributed filesystems
CN107846397A (zh) * 2017-09-30 2018-03-27 北京理工大学 一种基于属性基加密的云存储访问控制方法
WO2019179625A1 (en) * 2018-03-22 2019-09-26 Telefonaktiebolaget Lm Ericsson (Publ) Distributed data storage network nodes and methods
CN109120639A (zh) * 2018-09-26 2019-01-01 众安信息技术服务有限公司 一种基于区块链的数据云存储加密方法及系统
CN109768987A (zh) * 2019-02-26 2019-05-17 重庆邮电大学 一种基于区块链的数据文件安全隐私存储和分享方法
CN110784463A (zh) * 2019-10-24 2020-02-11 深圳市超算科技开发有限公司 一种基于区块链的文件存储和访问方法及系统
CN111130757A (zh) * 2019-12-31 2020-05-08 华中科技大学 一种基于区块链的多云cp-abe访问控制方法
CN111368318A (zh) * 2020-03-04 2020-07-03 江苏大学 一种面向多模态区块链交易的客体追踪方法
CN111598695A (zh) * 2020-05-18 2020-08-28 国网电子商务有限公司 一种区块链数据访问方法及装置
CN111859444A (zh) * 2020-06-12 2020-10-30 中国科学院信息工程研究所 一种基于属性加密的区块链数据监管方法及系统
CN112163240A (zh) * 2020-10-21 2021-01-01 汪金玲 一种基于区块链的分布式政务架构统一方法及系统
CN112637278A (zh) * 2020-12-09 2021-04-09 云南财经大学 基于区块链和属性基加密的数据共享方法、系统及计算机可读存储介质
CN113242219A (zh) * 2021-04-26 2021-08-10 卓尔智联(武汉)研究院有限公司 数据传输方法、区块链网络及存储介质
CN113468556A (zh) * 2021-06-07 2021-10-01 北京邮电大学 完全策略隐藏的数据访问控制方法及其相关设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
杨许亮;: "基于区块链的缺陷度量数据防窜改识别仿真", 计算机仿真, no. 08, 15 August 2020 (2020-08-15) *
毛瀚宇;聂铁铮;申德荣;于戈;徐石成: "区块链即服务平台关键技术及发展综述", 《计算机科学》, 15 November 2021 (2021-11-15) *
王秀利, 江晓舟, 李洋: "应用区块链的数据访问控制与共享模型", 《软件学报》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115567247A (zh) * 2022-08-31 2023-01-03 西安电子科技大学 一种去中心化的多权威隐私保护数据访问控制方法及系统
CN115567247B (zh) * 2022-08-31 2024-03-19 西安电子科技大学 一种去中心化的多权威隐私保护数据访问控制方法及系统
CN115760324A (zh) * 2022-11-14 2023-03-07 临沂大学 一种线上的招投标方法、设备及计算机存储介质
CN115760324B (zh) * 2022-11-14 2023-09-22 临沂大学 一种线上的招投标方法、设备及计算机存储介质
CN118071285A (zh) * 2024-02-06 2024-05-24 广州机施建设集团有限公司 一种基于多重混合加密的建设工程总承包项目管理系统

Also Published As

Publication number Publication date
CN114244838B (zh) 2024-06-04

Similar Documents

Publication Publication Date Title
CN111835500B (zh) 基于同态加密与区块链的可搜索加密数据安全共享方法
JP5562687B2 (ja) 第1のユーザによって第2のユーザに送信される通信の安全化
CN111130757A (zh) 一种基于区块链的多云cp-abe访问控制方法
CN110213042A (zh) 一种基于无证书代理重加密的云数据去重方法
CN114244838B (zh) 区块链数据的加密方法及系统、解密方法、装置及设备
CN105721158A (zh) 云安全隐私性和完整性保护方法和系统
CN105959111A (zh) 基于云计算和可信计算的信息安全大数据资源访问控制系统
CN106059763A (zh) 云环境下属性基多机构层次化密文策略权重加密方法
Li et al. A Lightweight Fine‐Grained Searchable Encryption Scheme in Fog‐Based Healthcare IoT Networks
CN113434875A (zh) 一种基于区块链的轻量化访问方法及系统
Zhang et al. Conditional anonymous certificateless public auditing scheme supporting data dynamics for cloud storage systems
WO2022242572A1 (zh) 一种个人数字身份管理系统与方法
CN112382376A (zh) 基于区块链的医疗器械管理追溯系统
CN116318663A (zh) 一种基于隐私保护的多策略安全密文数据共享方法
Chen et al. Multi-user boolean searchable encryption supporting fast ranking in mobile clouds
CN113079177B (zh) 一种基于时间及解密次数限制的遥感数据共享方法
Zou et al. Blockchain-assisted multi-keyword fuzzy search encryption for secure data sharing
CN111447058B (zh) 基于中国剩余定理的图书资源访问控制方法
Zhang et al. A Data Sharing Scheme Based on Blockchain System and Attribute-Based Encryption
WO2023134576A1 (zh) 数据加密方法、属性授权中心及存储介质
CN116827670A (zh) 一种基于国密算法的智能医疗数据安全共享方法
CN117195244A (zh) 基于区块链和代理重加密的数据安全存储与共享方法
Zhang et al. MKSS: An Effective Multi-authority Keyword Search Scheme for edge–cloud collaboration
Ding et al. Secure Multi‐Keyword Search and Access Control over Electronic Health Records in Wireless Body Area Networks
CN113792315B (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