CN111598695A - 一种区块链数据访问方法及装置 - Google Patents
一种区块链数据访问方法及装置 Download PDFInfo
- Publication number
- CN111598695A CN111598695A CN202010419221.8A CN202010419221A CN111598695A CN 111598695 A CN111598695 A CN 111598695A CN 202010419221 A CN202010419221 A CN 202010419221A CN 111598695 A CN111598695 A CN 111598695A
- Authority
- CN
- China
- Prior art keywords
- user
- data
- attribute set
- access
- user node
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Computer Hardware Design (AREA)
- Strategic Management (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例公开了一种区块链数据访问方法及装置,具体为,当第一用户节点访问区块链系统中所存储的数据时,预先接收服务器发送的解密密钥和公钥。其中,解密密钥是根据第一用户节点的用户属性、公钥和主密钥生成。当获取到待访问数据时,利用解密密钥和公钥对待访问数据进行解密获得明文数据。其中,待访问数据是由第二用户节点根据访问策略、公钥对明文数据进行加密生成并上传至区块链系统中。其中,访问策略是根据包括第一用户节点的用户属性集合生成的。即,当第一用户节点访问第二用户节点上传的密文数据时,利用对应的解密密钥和公钥进行解密,从而保证第二用户节点上传的数据仅被允许访问的用户所查看,提高数据访问的安全性。
Description
技术领域
本申请涉及数据加密技术领域,具体涉及一种区块链数据访问方法及装置。
背景技术
区块链公开、透明、对等的特征一方面给各行业的业务场景应用的快速发展带来契机,另一方面也为行业应用的安全性造成挑战。区块链中的交易及业务信息存储在所有的节点中,任何人都可以看到所有的信息,尽管明文存储有助于对信息的公开验证,但也导致了用户行为以及商业信息泄露的风险。
发明内容
有鉴于此,本申请实施例提供一种区块链数据访问方法及装置,以实现安全访问区块链中所存储的数据。
为解决上述问题,本申请实施例提供的技术方案如下:
在本申请实施例第一方面,提供了一种区块链数据访问方法,所述方法应用于第一用户节点,包括:
接收服务器发送的解密密钥和公钥,所述解密密钥是由所述服务器根据所述第一用户节点的用户属性集合、所述公钥以及主密钥生成的,所述第一用户节点的用户属性集合是由所述服务器根据所述第一用户节点的用户信息获取的;
获取待访问数据,所述待访问数据是由第二用户节点根据访问策略、公钥对明文数据加密后生成的密文数据,所述访问策略是根据包括所述第一用户节点的用户属性集合的用户属性集合清单生成的;
利用所述解密密钥和所述公钥对所述待访问数据进行解密,获得所述明文数据。
在一种可能的实现方式中,所述接收服务器发送的解密密钥和公钥之前,所述方法还包括:
向服务器发送用户信息,以使得所述服务器根据所述用户信息获取所述第一用户节点的用户属性集合,并根据所述第一用户节点的用户属性集合、公钥和主密钥生成解密密钥。
在一种可能的实现方式中,,所述方法还包括:
接收所述服务器发送的用户标识,所述用户标识是由所述服务器根据所述用户信息生成的。
在一种可能的实现方式中,所述获取待访问数据包括:
通过用户标识从区块链系统中查找允许访问的数据,所述允许访问的数据是由所述第二用户节点上传至所述区块链系统;
从所述区块链系统中获取所述允许访问的数据。
在一种可能的实现方式中,所述访问策略是由所述服务器根据包括所述第一用户节点的用户属性集合的用户属性集合清单生成,并发送给所述第二用户节点;或,所述访问策略是由所述第二用户节点根据包括所述第一用户节点的用户属性集合的用户属性集合清单生成。
在本申请实施例第二方面,提供了一种区块链数据访问方法,所述方法应用于第二用户节点,包括:
向服务器发送允许访问用户清单,所述允许访问用户清单中包括所述第一用户节点;
接收所述服务器发送的响应消息,所述响应消息除了包括公钥,还包括用户属性集合清单或访问策略,所述用户属性集合清单中包括所述第一用户节点的用户属性集合;
根据所述响应消息获取访问策略;
根据所述访问策略、公钥对明文数据进行加密生成密文数据。
在一种可能的实现方式中,当所述响应消息包括所述用户属性集合清单时,所述根据所述响应消息获取访问策略,包括:
根据所述用户属性集合清单生成访问策略。
在本申请实施例第三方面,提供了一种区块链数据访问方法,所述方法应用于服务器,包括:
接收第一用户节点发送的用户信息;
根据所述用户信息获取用户属性集合;
根据用户属性集合、公钥和主密钥生成解密密钥;
将所述解密密钥和公钥发送给第一用户节点。
在一种可能的实现方式中,所述根据所述用户信息获取用户属性集合,包括:
根据所述用户信息生成用户标识,并对所述用户标识进行属性解析获得用户属性集合;或,
将所述用户信息作为用户属性集合。
在一种可能的实现方式中,所述方法还包括:
存储所述用户标识与所述用户属性集合之间的对应关系;和/或,
存储所述用户标识与所述解密密钥之间的对应关系。
在一种可能的实现方式中,所述根据用户属性集合、公钥和主密钥生成解密密钥之前,所述方法还包括:
根据输入的随机参数生成公钥和主密钥。
在一种可能的实现方式中,所述方法还包括:
接收第二用户节点发送的允许访问用户清单,所述允许访问用户清单中包括所述第一用户节点;
获取所述允许访问用户清单中各个用户节点对应的用户标识;
根据各个所述用户标识查找对应的用户属性集合,并生成用户属性集合清单,所述用户属性集合清单包括所述第一用户节点的用户属性集合;
向所述第二用户节点发送响应消息,所述响应消息除了包括公钥,还包括用户属性集合清单或访问策略。
在一种可能的实现方式中,当所述响应消息包括所述访问策略时,在向所述第二用户节点发送响应消息之前,所述方法还包括:
根据所述用户属性集合清单生成访问策略。
在本申请实施例第四方面,提供了一种区块链数据访问装置,所述装置设于第一用户节点,包括:
第一接收单元,用于接收服务器发送的解密密钥和公钥,所述解密密钥是由所述服务器根据所述第一用户节点的用户属性集合、所述公钥以及主密钥生成的,所述第一用户节点的用户属性集合是由所述服务器根据所述第一用户节点的用户信息获取的;
第一获取单元,用于获取待访问数据,所述待访问数据是由第二用户节点根据访问策略、公钥对明文数据加密后生成的密文数据,所述访问策略是根据包括所述第一用户节点的用户属性集合的用户属性集合清单生成的;
解密单元,用于利用所述解密密钥和所述公钥对所述待访问数据进行解密,获得所述明文数据。
在本申请实施例第五方面,提供了一种区块链数据访问装置,所述装置设于第二用户节点,包括:
第二发送单元,用于向服务器发送允许访问用户清单,所述允许访问用户清单中包括所述第一用户节点;
第三接收单元,用于接收所述服务器发送的响应消息,所述响应消息除了包括公钥,还包括用户属性集合清单或访问策略,所述用户属性集合清单中包括所述第一用户节点的用户属性集合;
第二获取单元,用于根据所述响应消息获取访问策略;
加密单元,用于根据所述访问策略、公钥对明文数据进行加密生成密文数据。
在本申请实施例第六方面,提供了一种区块链数据访问装置,所述装置设于服务器,包括:
第四接收单元,用于接收第一用户节点发送的用户信息;
第三获取单元,用于根据所述用户信息获取用户属性集合;
第一生成单元,用于根据用户属性集合、公钥和主密钥生成解密密钥;
第三发送单元,用于将所述解密密钥和公钥发送给第一用户节点。
由此可见,本申请实施例具有如下有益效果:
当第一用户节点访问区块链系统中所存储的数据时,预先接收服务器发送的解密密钥和公钥,其中,解密密钥是根据第一用户节点的用户属性、公钥和主密钥生成。当获取到待访问数据时,可以利用解密密钥和公钥对该待访问数据进行解密获得明文数据。其中,待访问数据是由第二用户节点根据访问策略、公钥对明文数据进行加密生成并上传至区块链系统中的加密数据。其中,访问策略是根据包括第一用户节点的用户属性集合生成的。即,作为数据的上传者(第二用户节点),可以利用其访问策略(第二用户节点所允许访问的各个用户节点对应的用户属性集合生成的)和公钥对明文数据进行加密并上传。当第一用户节点需要访问第二用户节点上传的密文数据时,通过对应的解密密钥和公钥进行解密,从而保证第二用户节点上传的数据仅被允许访问的用户所查看,提高数据访问的安全性,避免信息泄露。
附图说明
图1a为本申请实施例提供的一种算法实现框架图;
图1b为本申请实施例提供的一种访问结构示意图;
图2为本申请实施例提供的一种区块链数据访问信令交互图;
图3为本申请实施例提供的一种应用场景示意图;
图4为本申请实施例提供的一种区块链数据访问装置结构图;
图5为本申请实施例提供的另一种区块链数据访问装置结构图;
图6为本申请实施例提供的又一种区块链数据访问装置结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
为便于理解本申请实施例提供的技术方案,下面将先对本申请实施例涉及的技术术语进行说明。
区块链:是一种创新的应用程序模型,集成了分布式数据存储、点对点传输、共识机制、数字加密技术和其他计算机技术,具有去中心化、安全可靠和公开透明的特点。
物联网标识:是指按一定规则赋予物品易于机器和人识别、处理的标识符或代码,它是物联网对象在信息网络中的身份识别,是一个物理编码,它实现了物的数字化。用户标识即对象标识符(Object identifier,OID),用于对任何类型的对象、概念或者“事物”进行全球无歧义、唯一命名。需要说明的是,本实施例中的用户标识可以物联网标识。
密文策略属性基加密算法(Ciphertext Policy Attribute Based Encryption,CP-ABE):密文对应于一个访问结构而密钥对应于属性集合,解密当且仅当属性集合中的属性能够满足此访问结构。其中,访问结构是安全系统研究的术语,系统的访问结构是指被授权的集合的结构。需要说明的是,本申请实施例中的访问策略即为访问结构。
为便于理解基于属性加密的CP-ABE算法,参见图1a所示的加解密实现流程,如图1a所示。首先,通过输入安全参数,利用随机算法生成主密钥MK和公钥PK。其次,根据获取的用户属性集合清单中各个用户属性集合生成访问结构(访问策略)A,并利用访问结构A、公钥PK对输入的消息m进行加密,获得密文E。同时,根据输入的用户节点X的用户属性集合X、主密钥MK和公钥PK生成解密密钥D,并将该解密密钥D发送给用户节点X。用户节点X在接收到密文E后,当用户属性集合X满足访问结构A时,可以利用解密密钥D和公钥PK对密文E进行解密获得消息m。
进一步地,参见图1b所述的访问结构,如图1b所述的访问结构,其根据获得的用户属性集合清单生成的。可以理解的是,当某一用户节点的用户属性集合满足该访问结构时,可以利用基于用户属性集合生成的解密密钥进行解密。例如,用户节点X的用户属性集合为[ECNU、CS、Professor],通过与访问结构比对可知,该用户属性集合满足访问结构,则用户节点X可以用解密密钥D和公钥PK对密文进行解密。再例如,用户节点P的用户属性集合为[CS、Male、Professor],通过与访问结构比对值,Male不属于访问结构,则用户节点P无法对密文进行解密。
发明人在对传统的数据共享方式以及CP-ABE算法中发现,可以采用区块链的方式实现数据共享,并结合CP-ABE算法,使数据上传者设置允许访问的用户清单,以实现区块链数据细粒度访问控制,保证数据安全访问。
基于此,本申请实施例提供了一种区块链数据访问方法,利用服务器生成每个用户节点的用户属性集合,并对用户属性集合进行统一管理,同时利用该服务器发放公钥、私钥(解密密钥)。
需要说明的是,本申请实施例中的服务器可以为构成物联网标识平台的服务器,本实施在此不做限定。其中,构成物理网标识平台的服务器可以根据用户节点发送的用户信息为用户节点分配物联网标识。
为便于理解本申请实施例所提供的方法,下面将结合附图对本申请实施例的实现进行说明。其中,第一用户节点和第二用户节点为区块链系统中的任意两个用户节点,第一用户节点为访问数据的节点,第二节点为上传数据的节点。
参见图2,该图为本申请实施例提供的一种区块链数据访问信令交互图,如图2所示,包括:
S201:第一用户节点向服务器发送用户信息。
本实施例中,第一用户节点可以向服务器发送对应的用户信息,以便服务器根据该用户信息为该第一用户节点分配用户标识以及生成用户属性集合等。具体地,区块链系统中的每个用户节点均可以向服务器发送用户信息。该用户信息可以包括标识该第一用户节点的身份信息,例如所属国家、单位等。
S202:服务器根据用户信息获取用户属性集合,并根据用户属性集合、公钥以及主密钥生成解密密钥。
本实施例中,服务器获取第一用户节点的用户信息后,根据该用户信息获取属性集合。同时,根据用户属性集合、公钥PK和主密钥MK生成解密密钥D。具体地,服务器将用户属性集合、公钥PK和主密钥MK作为随机函数的输入,获得输出结果,即为解密密钥D。其中,公钥PK和主密钥MK是由服务器随机生成的,具体地,输入随机参数至随机函数,生成公钥PK和主密钥MK。
具体地,服务器在根据用户信息获取用户属性集合时,可以通过以下几种方式获取。
一种是,根据用户信息生成用户标识,进而对用户标识进行属性分析,获得用户属性集合。另一种是,直接将用户信息作为用户属性集合,减轻服务器的工作负载,加快生成用户属性集合的效率。再一种是,当接收到用户信息时,触发服务器利用随机生成字段的方式生成用户属性集合。即,服务器可以利用随机算法生成一系列字段作为用户属性集合。可以理解的是,由于随机算法的随机性是的服务器为不同用户节点所生成的用户属性集合是不相同的,从而保证每个用户节点的用户属性集合是唯一的。例如,服务器利用随机生成字段的方式生成的格式为:“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”。其中,每个x是0-9或a-f范围内的一个4位十六进制数。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF,将其划分为若干个字段,作为用户属性集合。
通过上述可知,服务器还可以根据用户信息生成用户标识,同时将该用户标识发送给第一用户节点,以便第一用户节点利用该用户标识在整个网络环境中唯一地标识自身。
可选的,服务器还可以存储用户标识与用户属性集合之间的对应关系,以便后续利用该对应关系查收用户属性集合。同时,还可以存储用户标识与解密秘钥D之间的对应关系,当发生数据泄露情况时,可以根据上述对应关系追查数据泄露的源头。
S203:服务器将解密密钥D和公钥PK发送给第一用户节点。
本实施例中,当服务器利用第一用户节点对应的用户属性集合生成解密密钥D后,将该解密密钥D以及公钥PK发送给第一用户节点,以便该第一用户节点可以进行解密。
S204:第二用户节点向服务器发送允许访问用户清单。
本实施例中,对于上传数据的节点,即第二用户节点,可以设置其上传数据所允许访问的用户清单,该允许访问用户清单包括第一用户节点。具体地,区块链系统中任一上传数据的用户节点均可以向服务器发送允许访问用户清单,该允许访问用户清单中包括一个或多个允许访问该用户节点上传数据的用户节点。
S205:服务器获取允许访问用户清单中各个用户节点对应的用户标识。
S206:服务器根据各个用户节点对应的用户标识查找对应的用户属性集合,并生成用户属性集合清单。
本实施例中,服务器在获取到第二用户节点发送的允许访问用户清单后,获取该允许访问用户清单中各个用户节点对应的用户标识。然后,在利用每个用户节点对应的用户标识以及用户标识与用户属性集合之间的映射关系查找每个用户节点对应的用户属性集合。同时,根据所有用户节点各自对应的用户属性集合生成用户属性集合清单。即,该用户属性集合清单中包括允许访问的各个用户节点的用户属性集合。
举例说明,在具体实现时,服务器可以存储用户节点与用户标识之间的对应关系,当获取到允许访问用户清单后,根据用户清单中用户节点以及对应关系查找各个用户节点对应的用户标识。
S207:服务器向第二用户节点发送响应消息,其中,响应消息除了包括公钥,还包括用户属性集合清单或访问策略。
本实施例中,服务器在查找到各个用户节点对应的用户属性集合后,可以向第二用户节点发送响应消息。该响应消息中不仅包括公钥PK,还可以包括用户属性集合清单或访问策略。
即,当服务器具有生成访问策略功能时,在查找到各个用户属性集合后,可以根据用户属性集合清单生成访问策略,则将访问策略作为响应消息的一部分发送给第二客户节点。如果服务器不具有生成访问策略的功能,则将用户属性集合清单通过响应消息发送给第二用户节点。或者其虽具有生成访问策略功能但当前计算负荷较大,为缓解服务器的压力,则将用户属性集合清单通过响应消息发送给第二用户节点,由第二用户节点根据用户属性集合清单生成访问策略。具体地,服务器根据用户属性集合清单中各个用户属性集合构建访问策略,如图1b所示。
S208:第二用户节点根据响应消息获取访问策略。
本实施例中,第二用户节点接收到响应消息后,可以根据该响应消息获取访问策略。具体地,当响应消息包括用户属性集合清单时,第二用户节点根据响应消息中的用户属性集合清单生成访问策略。其中,第二用户节点根据用户属性集合清单构建访问策略,如图1b所示。当响应消息包括访问策略时,第二用户节点从响应消息中直接提取该访问策略。
S209:第二用户节点根据访问策略、公钥对明文数据进行加密生成密文数据。
第二用户节点在获取到访问策略时,利用访问策略、公钥PK对明文数据m进行加密生成密文数据E,并将该密文数据E上传至区块链系统中,以便区块链系统中允许访问的用户节点进行访问。
S210:第一用户节点获取待访问数据,该待访问数据是由第二用户节点生成并上传至区块链系统。
当第一用户节点需要访问第二用户节点所上传的密文数据时,从区块链系统中获取该密文数据,即待访问数据。具体地,第一用户节点可以根据服务器所分配的用户标识从区块链系统中查询允许访问的数据;然后,从区块链系统中获取该允许访问的数据,即待访问数据。
S211:第一用户节点利用解密密钥、公钥对待访问数据进行解密,获得明文数据。
在第一用户节点获取到待访问数据时,利用预先获取的解密密钥D和公钥PK对待访问数据进行解密,获得明文数据m。
可见,当第一用户节点访问区块链系统中所存储的数据时,预先接收服务器发送的解密密钥和公钥,其中,解密密钥是根据第一用户节点的用户属性、公钥和主密钥生成。当获取到待访问数据时,可以利用解密密钥和公钥对该待访问数据进行解密获得明文数据。其中,待访问数据是由第二用户节点根据访问策略、公钥对明文数据进行加密生成并上传至区块链系统中的加密数据。其中,访问策略是根据第一用户节点的用户属性集合生成的。即,作为数据的上传者(第二用户节点),可以利用其访问策略(第二用户节点所允许访问的各个用户节点对应的用户属性集合生成的)和公钥对明文数据进行加密并上传。当第一用户节点需要访问第二用户节点上传的密文数据时,通过对应的解密密钥和公钥进行解密,从而保证第二用户节点上传的数据仅被允许访问的用户所查看,提高数据访问的安全性,避免信息泄露。
在实际应用中,服务器、第一用户节点和第二用户节点均是由多个功能模块组成的。如图3所示,服务器包括用户标识生成模块、属性分析模块、密钥生成模块和标识查询模块。第一用户节点包括加解密模块和区块链取证模块。第二用户节点包括访问策略生成模块、加解密模块和区块链存证模块。需要说明的是,第一用户节点也可以作为上传数据的节点,包括访问策略生成模块等。
为便于理解各个模块的功能,下面将结合图3进行说明。
其中,用户标识生成模块:根据用户信息生成用户标识。
标识查询模块,根据用户信息查询已生成的用户标识。
区块链存证模块,用于区块链数据的存储。
区块链取证模块,用于读取区块链数据。
属性分析模块,根据已生成的用户标识,对标识编码进行解析,生成该用户标识所对应用户的属性集合。
密钥生成模块,该模块功能分为两部分:一是通过随机算法,输入一个隐藏的安全参数,输出公钥PK和主密钥MK;二是根据某用户节点的用户属性集合,结合公钥PK和主密钥MK,生成该用户的私钥(解密密钥),用于解密数据。
访问策略生成模块,根据指定的用户属性集合清单,生成访问控制策略。
加解密模块,该模块基于CP-ABE算法,实现对数据的加解密操作。
具体地,上述各个模块相互协作的过程如下:
1)服务器利用密钥生成模块,产生公钥PK和一个主密钥MK。
2)第一用户节点向服务器发送用户信息,服务器生成用户标识的同时,利用属性分析模块产生第一用户节点的用户属性集合,并利用密钥生成模块,生成私钥D(解密密钥)。然后将用户标识与私钥统一发送给第一用户节点,并将用户标识在本地进行保存管理。
3)当第二用户节点需要上传数据并设置访问权限时,首先将具有访问权限的用户清单发送给服务器。服务器应用标识查询模块取得用户清单中各个用户节点对应的的用户标识。然后根据用户标识获取各个用户标识对应的用户属性集合,并发送给第二用户节点。
4)第二用户节点接收到用户属性集合清单后,通过应用访问策略生成模块,生成访问策略T。然后利用加解密模块,将访问策略T、公钥PK和数据M加密生成密文E。再通过区块链存证模块,将密文E上传至区块链(同时上传的还可以包括该密文的信息说明、访问权限等备注信息)。
5)第一用户节点利用区块链取证模块通过浏览或查询的方式,查阅到可访问数据时,利用加解密模块,输入私钥D与公钥PK将密文解密,得到数据M。
即,通过利用服务器为用户节点生成用户属性集合,进而根据允许访问的用户节点的用户属性集合生成访问策略,以根据访问策略以及加密算法对上传的数据进行加密。当区块链系统中的某一用户节点需要访问数据时,当且仅当其对应的用户属性集合满足访问策略时,才可以利用服务器为其分配的解密密钥和公钥对密文数据进行解密,保证存储数据的安全访问。
基于上述方法实施例,本申请实施例还提供了区块链数据访问装置,下面将结合附图对该装置进行说明。
参见图4,该图为本申请实施例提供的一种区块链数据访问装置,该装置设于第一用户节点,包括:
第一接收单元401,用于接收服务器发送的解密密钥和公钥,所述解密密钥是由所述服务器根据所述第一用户节点的用户属性集合、所述公钥以及主密钥生成的,所述第一用户节点的用户属性集合是由所述服务器根据所述第一用户节点的用户信息获取的;
第一获取单元402,用于获取待访问数据,所述待访问数据是由第二用户节点根据访问策略、公钥对明文数据加密后生成的密文数据,所述访问策略是根据所述第一用户节点的用户属性集合生成的;
解密单元403,用于利用所述解密密钥和所述公钥对所述待访问数据进行解密,获得所述明文数据。
在一种可能的实现方式中,所述装置还包括:
第一发送单元,用于在利用所述第一接收单元接收解密密钥和公钥之前,向服务器发送用户信息,以使得所述服务器根据所述用户信息获取所述第一用户节点的用户属性集合,并根据所述第一用户节点的用户属性集合、公钥和主密钥生成解密密钥。
在一种可能的实现方式中,所述装置还包括:
第二接收单元,用于接收所述服务器发送的用户标识,所述用户标识是由所述服务器根据所述用户信息生成的。
在一种可能的实现方式中,所述第一获取单元,包括:
查找子单元,用于通过用户标识从区块链系统中查找允许访问的数据,所述允许访问的数据是由所述第二用户节点上传至所述区块链系统;
获取子单元,用于从所述区块链系统中获取所述允许访问的数据。
在一种可能的实现方式中,所述访问策略是由所述服务器根据包括所述第一用户节点的用户属性集合的用户属性集合清单生成,并发送给所述第二用户节点;或,所述访问策略是由所述第二用户节点根据包括所述第一用户节点的用户属性集合的用户属性集合清单生成。
需要说明的是,本实施例中各个单元的实现可以参见上述方法实施例,本实施例在此不再赘述。
参见图5,该图为本申请实施例提供的另一种区块链数据访问装置,该装置设于第二用户节点,包括:
第二发送单元501,用于向服务器发送允许访问用户清单,所述允许访问用户清单中包括所述第一用户节点;
第三接收单元502,用于接收所述服务器发送的响应消息,所述响应消息除了包括公钥,还包括用户属性集合清单或访问策略,所述用户属性集合清单中包括所述第一用户节点的用户属性集合;
第二获取单元503,用于根据所述响应消息获取访问策略;
加密单元504,用于根据所述访问策略、公钥对明文数据进行加密生成密文数据。
在一种可能的实现方式中,当所述响应消息包括所述用户属性集合清单时,所述第一获取单元,具体用于根据所述用户属性集合清单生成访问策略。
需要说明的是,本实施例中,各个单元的实现可以参见上述方法实施例,本实施例在此不再赘述。
参见图6,该图为本申请实施例提供的又一种区块链数据访问装置,该装置设于服务器,包括:
第四接收单元601,用于接收第一用户节点发送的用户信息;
第三获取单元602,用于根据所述用户信息获取用户属性集合;
第一生成单元603,用于根据用户属性集合、公钥和主密钥生成解密密钥;
第三发送单元604,用于将所述解密密钥和公钥发送给第一用户节点。
在一种可能的实现方式中,所述第三发送单元,具体用于根据所述用户信息生成用户标识,并对所述用户标识进行属性解析获得用户属性集合;或,将所述用户信息作为用户属性集合。
在一种可能的实现方式中,所述装置还包括:
存储单元,用于存储所述用户标识与所述用户属性集合之间的对应关系;和/或,存储所述用户标识与所述解密密钥之间的对应关系。
在一种可能的实现方式中,所述第一生成单元,还用于根据输入的随机参数生成公钥和主密钥。
在一种可能的实现方式中,所述装置还包括:
第五接收单元,用于接收第二用户节点发送的允许访问用户清单,所述允许访问用户清单中包括所述第一用户节点;
第四获取单元,用于获取所述允许访问用户清单中各个用户节点对应的用户标识;
第二生成单元,用于根据各个所述用户标识查找对应的用户属性集合,并生成用户属性集合清单,所述用户属性集合清单包括所述第一用户节点的用户属性集合;
第四发送单元,用于向所述第二用户节点发送响应消息,所述响应消息除了包括公钥,还包括用户属性集合清单或访问策略。
在一种可能的实现方式中,当所述响应消息包括所述访问策略时,所述装置还包括:
第三生成单元,用于根据所述用户属性集合清单生成访问策略。
需要说明的是,本实施例中各个单元的实现可以参见上述方法实施例,本实施例在此不再赘述。
另外,本申请实施例还提供了一种用户节点,所述设备包括:处理器和存储器;所述存储器,用于存储指令;所述处理器,用于执行所述存储器中的所述指令,执行上述第一用户节点或第二用户节点所对应的方法。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序代码或指令,当其在计算机上运行时,使得所述计算机执行以上第一用户节点或第二用户节点所对应的方法。
本申请实施例还提供了一种服务器,所述设备包括:处理器和存储器;所述存储器,用于存储指令;所述处理器,用于执行所述存储器中的所述指令,执行上述服务器所对应的方法。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序代码或指令,当其在计算机上运行时,使得所述计算机执行以上服务器所对应的方法。
通过上述描述可知,当第一用户节点访问区块链系统中所存储的数据时,预先接收服务器发送的解密密钥和公钥,其中,解密密钥是根据第一用户节点的用户属性、公钥和主密钥生成。当获取到待访问数据时,可以利用解密密钥和公钥对该待访问数据进行解密获得明文数据。其中,待访问数据是由第二用户节点根据访问策略、公钥对明文数据进行加密生成并上传至区块链系统中的加密数据。其中,访问策略是根据第一用户节点的用户属性集合生成的。即,作为数据的上传者(第二用户节点),可以利用其访问策略(第二用户节点所允许访问的各个用户节点对应的用户属性集合生成的)和公钥对明文数据进行加密并上传。当第一用户节点需要访问第二用户节点上传的密文数据时,通过对应的解密密钥和公钥进行解密,从而保证第二用户节点上传的数据仅被允许访问的用户所查看,提高数据访问的安全性,避免信息泄露。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“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 (16)
1.一种区块链数据访问方法,其特征在于,所述方法应用于第一用户节点,包括:
接收服务器发送的解密密钥和公钥,所述解密密钥是由所述服务器根据所述第一用户节点的用户属性集合、所述公钥以及主密钥生成的,所述第一用户节点的用户属性集合是由所述服务器根据所述第一用户节点的用户信息获取的;
获取待访问数据,所述待访问数据是由第二用户节点根据访问策略、公钥对明文数据加密后生成的密文数据,所述访问策略是根据包括所述第一用户节点的用户属性集合的用户属性集合清单生成的;
利用所述解密密钥和所述公钥对所述待访问数据进行解密,获得所述明文数据。
2.根据权利要求1所述的方法,其特征在于,所述接收服务器发送的解密密钥和公钥之前,所述方法还包括:
向服务器发送用户信息,以使得所述服务器根据所述用户信息获取所述第一用户节点的用户属性集合,并根据所述第一用户节点的用户属性集合、公钥和主密钥生成解密密钥。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收所述服务器发送的用户标识,所述用户标识是由所述服务器根据所述用户信息生成的。
4.根据权利要求1所述的方法,其特征在于,所述获取待访问数据包括:
通过用户标识从区块链系统中查找允许访问的数据,所述允许访问的数据是由所述第二用户节点上传至所述区块链系统;
从所述区块链系统中获取所述允许访问的数据。
5.根据权利要求1所述的方法,其特征在于,所述访问策略是由所述服务器根据包括所述第一用户节点的用户属性集合的用户属性集合清单生成,并发送给所述第二用户节点;或,所述访问策略是由所述第二用户节点根据包括所述第一用户节点的用户属性集合的用户属性集合清单生成。
6.一种区块链数据访问方法,其特征在于,所述方法应用于第二用户节点,包括:
向服务器发送允许访问用户清单,所述允许访问用户清单中包括第一用户节点;
接收所述服务器发送的响应消息,所述响应消息除了包括公钥,还包括用户属性集合清单或访问策略,所述用户属性集合清单中包括所述第一用户节点的用户属性集合;
根据所述响应消息获取访问策略;
根据所述访问策略、公钥对明文数据进行加密生成密文数据。
7.根据权利要求6所述的方法,其特征在于,当所述响应消息包括所述用户属性集合清单时,所述根据所述响应消息获取访问策略,包括:
根据所述用户属性集合清单生成访问策略。
8.一种区块链数据访问方法,其特征在于,所述方法应用于服务器,包括:
接收第一用户节点发送的用户信息;
根据所述用户信息获取用户属性集合;
根据用户属性集合、公钥和主密钥生成解密密钥;
将所述解密密钥和公钥发送给第一用户节点。
9.根据权利要求8所述的方法,其特征在于,所述根据所述用户信息获取用户属性集合,包括:
根据所述用户信息生成用户标识,并对所述用户标识进行属性解析获得用户属性集合;或,
将所述用户信息作为用户属性集合。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
存储所述用户标识与所述用户属性集合之间的对应关系;和/或,
存储所述用户标识与所述解密密钥之间的对应关系。
11.根据权利要求8所述的方法,其特征在于,所述根据用户属性集合、公钥和主密钥生成解密密钥之前,所述方法还包括:
根据输入的随机参数生成公钥和主密钥。
12.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收第二用户节点发送的允许访问用户清单,所述允许访问用户清单中包括所述第一用户节点;
获取所述允许访问用户清单中各个用户节点对应的用户标识;
根据各个所述用户标识查找对应的用户属性集合,并生成用户属性集合清单,所述用户属性集合清单包括所述第一用户节点的用户属性集合;
向所述第二用户节点发送响应消息,所述响应消息除了包括公钥,还包括用户属性集合清单或访问策略。
13.根据权利要求12所述的方法,其特征在于,当所述响应消息包括所述访问策略时,在向所述第二用户节点发送响应消息之前,所述方法还包括:
根据所述用户属性集合清单生成访问策略。
14.一种区块链数据访问装置,其特征在于,所述装置设于第一用户节点,包括:
第一接收单元,用于接收服务器发送的解密密钥和公钥,所述解密密钥是由所述服务器根据所述第一用户节点的用户属性集合、所述公钥以及主密钥生成的,所述第一用户节点的用户属性集合是由所述服务器根据所述第一用户节点的用户信息获取的;
第一获取单元,用于获取待访问数据,所述待访问数据是由第二用户节点根据访问策略、公钥对明文数据加密后生成的密文数据,所述访问策略是根据包括所述第一用户节点的用户属性集合的用户属性集合清单生成的;
解密单元,用于利用所述解密密钥和所述公钥对所述待访问数据进行解密,获得所述明文数据。
15.一种区块链数据访问装置,其特征在于,所述装置设于第二用户节点,包括:
第二发送单元,用于向服务器发送允许访问用户清单,所述允许访问用户清单中包括第一用户节点;
第三接收单元,用于接收所述服务器发送的响应消息,所述响应消息除了包括公钥,还包括用户属性集合清单或访问策略,所述用户属性集合清单中包括所述第一用户节点的用户属性集合;
第二获取单元,用于根据所述响应消息获取访问策略;
加密单元,用于根据所述访问策略、公钥对明文数据进行加密生成密文数据。
16.一种区块链数据访问装置,其特征在于,所述装置设于服务器,包括:
第四接收单元,用于接收第一用户节点发送的用户信息;
第三获取单元,用于根据所述用户信息获取用户属性集合;
第一生成单元,用于根据用户属性集合、公钥和主密钥生成解密密钥;
第三发送单元,用于将所述解密密钥和所述公钥发送给第一用户节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010419221.8A CN111598695A (zh) | 2020-05-18 | 2020-05-18 | 一种区块链数据访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010419221.8A CN111598695A (zh) | 2020-05-18 | 2020-05-18 | 一种区块链数据访问方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111598695A true CN111598695A (zh) | 2020-08-28 |
Family
ID=72182931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010419221.8A Pending CN111598695A (zh) | 2020-05-18 | 2020-05-18 | 一种区块链数据访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111598695A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112039880A (zh) * | 2020-08-30 | 2020-12-04 | 河南大学 | 基于区块链分布式外包的双重策略访问控制方法 |
CN112152778A (zh) * | 2020-09-22 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 一种节点管理方法、装置、及电子设备 |
CN112487375A (zh) * | 2020-12-10 | 2021-03-12 | 链博(成都)科技有限公司 | 一种基于区块链的身份认证方法、系统及设备 |
CN114244838A (zh) * | 2021-12-17 | 2022-03-25 | 东软集团股份有限公司 | 区块链数据的加密方法及系统、解密方法、装置及设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000015266U (ko) * | 1998-12-31 | 2000-07-25 | 서평원 | 씨디엠에이 수신기의 의사잡음코드 제어회로 |
CN103618729A (zh) * | 2013-09-03 | 2014-03-05 | 南京邮电大学 | 一种应用于云存储的多机构层次化属性基加密方法 |
CN109189727A (zh) * | 2018-09-14 | 2019-01-11 | 江西理工大学 | 一种基于属性代理重加密的区块链密文云存储共享方法 |
CN109768987A (zh) * | 2019-02-26 | 2019-05-17 | 重庆邮电大学 | 一种基于区块链的数据文件安全隐私存储和分享方法 |
CN110400642A (zh) * | 2019-06-12 | 2019-11-01 | 梁胤豪 | 一种基于区块链技术的医疗数据共享系统及设计方法 |
CN110503560A (zh) * | 2019-09-27 | 2019-11-26 | 深圳市网心科技有限公司 | 基于区块链的数据交易方法、数据交易装置及系统 |
CN110519041A (zh) * | 2019-07-29 | 2019-11-29 | 同济大学 | 一种基于sm9标识加密的属性基加密方法 |
CN111130757A (zh) * | 2019-12-31 | 2020-05-08 | 华中科技大学 | 一种基于区块链的多云cp-abe访问控制方法 |
-
2020
- 2020-05-18 CN CN202010419221.8A patent/CN111598695A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000015266U (ko) * | 1998-12-31 | 2000-07-25 | 서평원 | 씨디엠에이 수신기의 의사잡음코드 제어회로 |
CN103618729A (zh) * | 2013-09-03 | 2014-03-05 | 南京邮电大学 | 一种应用于云存储的多机构层次化属性基加密方法 |
CN109189727A (zh) * | 2018-09-14 | 2019-01-11 | 江西理工大学 | 一种基于属性代理重加密的区块链密文云存储共享方法 |
CN109768987A (zh) * | 2019-02-26 | 2019-05-17 | 重庆邮电大学 | 一种基于区块链的数据文件安全隐私存储和分享方法 |
CN110400642A (zh) * | 2019-06-12 | 2019-11-01 | 梁胤豪 | 一种基于区块链技术的医疗数据共享系统及设计方法 |
CN110519041A (zh) * | 2019-07-29 | 2019-11-29 | 同济大学 | 一种基于sm9标识加密的属性基加密方法 |
CN110503560A (zh) * | 2019-09-27 | 2019-11-26 | 深圳市网心科技有限公司 | 基于区块链的数据交易方法、数据交易装置及系统 |
CN111130757A (zh) * | 2019-12-31 | 2020-05-08 | 华中科技大学 | 一种基于区块链的多云cp-abe访问控制方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112039880A (zh) * | 2020-08-30 | 2020-12-04 | 河南大学 | 基于区块链分布式外包的双重策略访问控制方法 |
CN112039880B (zh) * | 2020-08-30 | 2021-07-30 | 河南大学 | 基于区块链分布式外包的双重策略访问控制方法 |
CN112152778A (zh) * | 2020-09-22 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 一种节点管理方法、装置、及电子设备 |
CN112152778B (zh) * | 2020-09-22 | 2022-03-15 | 腾讯科技(深圳)有限公司 | 一种节点管理方法、装置、及电子设备 |
CN112487375A (zh) * | 2020-12-10 | 2021-03-12 | 链博(成都)科技有限公司 | 一种基于区块链的身份认证方法、系统及设备 |
CN114244838A (zh) * | 2021-12-17 | 2022-03-25 | 东软集团股份有限公司 | 区块链数据的加密方法及系统、解密方法、装置及设备 |
CN114244838B (zh) * | 2021-12-17 | 2024-06-04 | 东软集团股份有限公司 | 区块链数据的加密方法及系统、解密方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | A fast CP-ABE system for cyber-physical security and privacy in mobile healthcare network | |
CN109862041B (zh) | 一种数字身份认证方法、设备、装置、系统及存储介质 | |
He et al. | Certificateless public key authenticated encryption with keyword search for industrial internet of things | |
Atiewi et al. | Scalable and secure big data IoT system based on multifactor authentication and lightweight cryptography | |
CN111598695A (zh) | 一种区块链数据访问方法及装置 | |
Jayaprakash et al. | Cloud data encryption and authentication based on enhanced Merkle hash tree method. | |
JP6180177B2 (ja) | プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム | |
WO2018020371A1 (en) | Blockchain-implemented method and system | |
Jiang et al. | Verifiable search meets blockchain: A privacy-preserving framework for outsourced encrypted data | |
US11128457B2 (en) | Cryptographic key generation using external entropy generation | |
US20200145389A1 (en) | Controlling Access to Data | |
Yang et al. | Flexible wildcard searchable encryption system | |
CN104158827A (zh) | 密文数据共享方法、装置、查询服务器和上传数据客户端 | |
CN111131282B (zh) | 请求加密方法、装置、电子设备及存储介质 | |
JP2016526851A (ja) | 暗号鍵を共有するためのシステム | |
CN115905238A (zh) | 隐匿查询方法、装置、电子设备和存储介质 | |
Ma et al. | CP‐ABE‐Based Secure and Verifiable Data Deletion in Cloud | |
CN115021913B (zh) | 工业互联网标识解析体系密钥生成方法、系统与存储介质 | |
Belim et al. | Distribution of cryptographic keys in systems with a hierarchy of objects | |
CN110188545B (zh) | 一种基于链式数据库的数据加密方法及装置 | |
Jeong et al. | Secure cloud storage service using bloom filters for the internet of things | |
CN113836571B (zh) | 基于云和区块链的医疗数据拥有终端位置匹配方法及系统 | |
CN107360252B (zh) | 一种异构云域授权的数据安全访问方法 | |
Song et al. | LSDedup: Layered secure deduplication for cloud storage | |
Maarof et al. | Authentication protocol for securing internet of things |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200828 |